chore: restructure build commands
- move dtslint (checkTypes) away from Gruntfile.js (as it disturbs debugging `grunt`) and call it directly as npm-script in travis-ci - re-group task definition in Gruntfile.js - use a multi-job travis build to run linting, format, dtslint and tests in parallel - run only "npm test" on appveyor - rename Grunt-tasks for be more descriptive - SAUCE_USERNAME is not a secret variable anymore it can be easily guessed anyway and the [secure] value messes up with a lot of the log output - linting on commit disable during transition
This commit is contained in:
+40
-21
@@ -1,28 +1,47 @@
|
|||||||
language: node_js
|
language: node_js
|
||||||
before_install:
|
|
||||||
- npm install -g grunt-cli
|
jobs:
|
||||||
script:
|
include:
|
||||||
- npm run lint
|
- stage: test
|
||||||
- npm run check-format
|
name: "check javascript (eslint)"
|
||||||
- grunt --stack travis
|
node_js: lts/*
|
||||||
|
script: npm run lint
|
||||||
|
|
||||||
|
- stage: test
|
||||||
|
name: "check formatting (prettier)"
|
||||||
|
node_js: lts/*
|
||||||
|
script: npm run check-format
|
||||||
|
|
||||||
|
- stage: test
|
||||||
|
name: "check typescript definitions (dtslint)"
|
||||||
|
node_js: lts/*
|
||||||
|
script: npm run dtslint
|
||||||
|
|
||||||
|
- stage: test
|
||||||
|
name: "extensive tests and publish to aws"
|
||||||
|
script: npm run extensive-tests-and-publish-to-aws
|
||||||
|
env:
|
||||||
|
- S3_BUCKET_NAME=builds.handlebarsjs.com
|
||||||
|
- secure: ckyEe5dzjdFDjmZ6wIrhGm0CFBEnKq8c1dYptfgVV/Q5/nJFGzu8T0yTjouS/ERxzdT2H327/63VCxhFnLCRHrsh4rlW/rCy4XI3O/0TeMLgFPa4TXkO8359qZ4CB44TBb3NsJyQXNMYdJpPLTCVTMpuiqqkFFOr+6OeggR7ufA=
|
||||||
|
- secure: Nm4AgSfsgNB21kgKrF9Tl7qVZU8YYREhouQunFracTcZZh2NZ2XH5aHuSiXCj88B13Cr/jGbJKsZ4T3QS3wWYtz6lkyVOx3H3iI+TMtqhD9RM3a7A4O+4vVN8IioB2YjhEu0OKjwgX5gp+0uF+pLEi7Hpj6fupD3AbbL5uYcKg8=
|
||||||
|
- SAUCE_USERNAME=handlebars
|
||||||
|
- secure: yERYCf7AwL11D9uMtacly/THGV8BlzsMmrt+iQVvGA3GaY6QMmfYqf6P6cCH98sH5etd1Y+1e6YrPeMjqI6lyRllT7FptoyOdHulazQe86VQN4sc0EpqMlH088kB7gGjTut9Z+X9ViooT5XEh9WA5jXEI9pXhQJNoIHkWPuwGuY=
|
||||||
|
node_js: "10"
|
||||||
|
|
||||||
|
- stage: test
|
||||||
|
name: "test with latest nodejs-lts"
|
||||||
|
node_js: lts/*
|
||||||
|
script: npm run test
|
||||||
|
|
||||||
|
- stage: test
|
||||||
|
name: "test with active nodejs"
|
||||||
|
node_js: node
|
||||||
|
script: npm run test
|
||||||
|
|
||||||
|
cache: npm
|
||||||
email:
|
email:
|
||||||
on_failure: change
|
on_failure: change
|
||||||
on_success: never
|
on_success: never
|
||||||
env:
|
|
||||||
global:
|
|
||||||
- S3_BUCKET_NAME=builds.handlebarsjs.com
|
|
||||||
- secure: ckyEe5dzjdFDjmZ6wIrhGm0CFBEnKq8c1dYptfgVV/Q5/nJFGzu8T0yTjouS/ERxzdT2H327/63VCxhFnLCRHrsh4rlW/rCy4XI3O/0TeMLgFPa4TXkO8359qZ4CB44TBb3NsJyQXNMYdJpPLTCVTMpuiqqkFFOr+6OeggR7ufA=
|
|
||||||
- secure: Nm4AgSfsgNB21kgKrF9Tl7qVZU8YYREhouQunFracTcZZh2NZ2XH5aHuSiXCj88B13Cr/jGbJKsZ4T3QS3wWYtz6lkyVOx3H3iI+TMtqhD9RM3a7A4O+4vVN8IioB2YjhEu0OKjwgX5gp+0uF+pLEi7Hpj6fupD3AbbL5uYcKg8=
|
|
||||||
matrix:
|
|
||||||
include:
|
|
||||||
- node_js: '10'
|
|
||||||
env:
|
|
||||||
- PUBLISH=true
|
|
||||||
- secure: pLTzghtVll9yGKJI0AaB0uI8GypfWxLTaIB0ZL8//yN3nAEIKMhf/RRilYTsn/rKj2NUa7vt2edYILi3lttOUlCBOwTc9amiRms1W8Lwr/3IdWPeBLvLuH1zNJRm2lBAwU4LBSqaOwhGaxOQr6KHTnWudhNhgOucxpZfvfI/dFw=
|
|
||||||
- secure: yERYCf7AwL11D9uMtacly/THGV8BlzsMmrt+iQVvGA3GaY6QMmfYqf6P6cCH98sH5etd1Y+1e6YrPeMjqI6lyRllT7FptoyOdHulazQe86VQN4sc0EpqMlH088kB7gGjTut9Z+X9ViooT5XEh9WA5jXEI9pXhQJNoIHkWPuwGuY=
|
|
||||||
cache:
|
|
||||||
directories:
|
|
||||||
- node_modules
|
|
||||||
|
|
||||||
git:
|
git:
|
||||||
depth: 100
|
depth: 100
|
||||||
|
|||||||
+31
-9
@@ -12,8 +12,8 @@ Documentation issues on the handlebarsjs.com site should be reported on [handleb
|
|||||||
|
|
||||||
## Branches
|
## Branches
|
||||||
|
|
||||||
* The branch `4.x` contains the currently released version. Bugfixes should be made in this branch.
|
- The branch `4.x` contains the currently released version. Bugfixes should be made in this branch.
|
||||||
* The branch `master` contains the next version. A release date is not yet specified. Maintainers
|
- The branch `master` contains the next version. A release date is not yet specified. Maintainers
|
||||||
should merge the branch `4.x` into the master branch regularly.
|
should merge the branch `4.x` into the master branch regularly.
|
||||||
|
|
||||||
## Pull Requests
|
## Pull Requests
|
||||||
@@ -21,6 +21,7 @@ Documentation issues on the handlebarsjs.com site should be reported on [handleb
|
|||||||
We also accept [pull requests][pull-request]!
|
We also accept [pull requests][pull-request]!
|
||||||
|
|
||||||
Generally we like to see pull requests that
|
Generally we like to see pull requests that
|
||||||
|
|
||||||
- Maintain the existing code style
|
- Maintain the existing code style
|
||||||
- Are focused on a single change (i.e. avoid large refactoring or style adjustments in untouched code if not the primary goal of the pull request)
|
- Are focused on a single change (i.e. avoid large refactoring or style adjustments in untouched code if not the primary goal of the pull request)
|
||||||
- Have [good commit messages](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html)
|
- Have [good commit messages](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html)
|
||||||
@@ -31,8 +32,8 @@ Generally we like to see pull requests that
|
|||||||
|
|
||||||
To build Handlebars.js you'll need a few things installed.
|
To build Handlebars.js you'll need a few things installed.
|
||||||
|
|
||||||
* Node.js
|
- Node.js
|
||||||
* [Grunt](http://gruntjs.com/getting-started)
|
- [Grunt](http://gruntjs.com/getting-started)
|
||||||
|
|
||||||
Before building, you need to make sure that the Git submodule `spec/mustache` is included (i.e. the directory `spec/mustache` should not be empty). To include it, if using Git version 1.6.5 or newer, use `git clone --recursive` rather than `git clone`. Or, if you already cloned without `--recursive`, use `git submodule update --init`.
|
Before building, you need to make sure that the Git submodule `spec/mustache` is included (i.e. the directory `spec/mustache` should not be empty). To include it, if using Git version 1.6.5 or newer, use `git clone --recursive` rather than `git clone`. Or, if you already cloned without `--recursive`, use `git submodule update --init`.
|
||||||
|
|
||||||
@@ -51,11 +52,13 @@ If you notice any problems, please report them to the GitHub issue tracker at
|
|||||||
##Running Tests
|
##Running Tests
|
||||||
|
|
||||||
To run tests locally, first install all dependencies.
|
To run tests locally, first install all dependencies.
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
npm install
|
npm install
|
||||||
```
|
```
|
||||||
|
|
||||||
Clone the mustache specs into the spec/mustache folder.
|
Clone the mustache specs into the spec/mustache folder.
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
cd spec
|
cd spec
|
||||||
rm -r mustache
|
rm -r mustache
|
||||||
@@ -63,10 +66,29 @@ git clone https://github.com/mustache/spec.git mustache
|
|||||||
```
|
```
|
||||||
|
|
||||||
From the root directory, run the tests.
|
From the root directory, run the tests.
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
npm test
|
npm test
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Linting and Formatting
|
||||||
|
|
||||||
|
Handlebars uses `eslint` to enforce best-practices and `prettier` to auto-format files.
|
||||||
|
We do linting and formatting in two phases:
|
||||||
|
|
||||||
|
- Committed files are linted and formatted in a pre-commit hook. In this stage eslint-errors are forbidden,
|
||||||
|
while warnings are allowed.
|
||||||
|
- The travis-ci job also lints all files and checks if they are formatted correctly. In this stage, warnings
|
||||||
|
are forbidden.
|
||||||
|
|
||||||
|
You can use the following scripts to make sure that the travis-job does not fail:
|
||||||
|
|
||||||
|
- **npm run lint** will run `eslint` and fail on warnings
|
||||||
|
- **npm run format** will run `prettier` on all files
|
||||||
|
- **npm run check-before-pull-request** will perform all most checks that travis does in its build-job, excluding the "integration-test".
|
||||||
|
- **npm run integration-test** will run integration tests (using old NodeJS versions and integrations with webpack, babel and so on)
|
||||||
|
These tests only work on a Linux-machine with `nvm` installed (for running tests in multiple versions of NodeJS).
|
||||||
|
|
||||||
## Ember testing
|
## Ember testing
|
||||||
|
|
||||||
The current ember distribution should be tested as part of the handlebars release process. This requires building the `handlebars-source` gem locally and then executing the ember test script.
|
The current ember distribution should be tested as part of the handlebars release process. This requires building the `handlebars-source` gem locally and then executing the ember test script.
|
||||||
@@ -83,7 +105,7 @@ npm test
|
|||||||
|
|
||||||
## Releasing the latest version
|
## Releasing the latest version
|
||||||
|
|
||||||
*When releasing a previous version of Handlebars, please look into the CONTRIBUNG.md in the corresponding branch.*
|
_When releasing a previous version of Handlebars, please look into the CONTRIBUNG.md in the corresponding branch._
|
||||||
|
|
||||||
Handlebars utilizes the [release yeoman generator][generator-release] to perform most release tasks.
|
Handlebars utilizes the [release yeoman generator][generator-release] to perform most release tasks.
|
||||||
|
|
||||||
@@ -103,10 +125,10 @@ gem push handlebars-source-*.gem
|
|||||||
After the release, you should check that all places have really been updated. Especially verify that the `latest`-tags
|
After the release, you should check that all places have really been updated. Especially verify that the `latest`-tags
|
||||||
in those places still point to the latest version
|
in those places still point to the latest version
|
||||||
|
|
||||||
* [The npm-package](https://www.npmjs.com/package/handlebars) (check latest-tag)
|
- [The npm-package](https://www.npmjs.com/package/handlebars) (check latest-tag)
|
||||||
* [The bower package](https://github.com/components/handlebars.js) (check the package.json)
|
- [The bower package](https://github.com/components/handlebars.js) (check the package.json)
|
||||||
* [The AWS S3 Bucket](https://s3.amazonaws.com/builds.handlebarsjs.com) (check latest-tag)
|
- [The AWS S3 Bucket](https://s3.amazonaws.com/builds.handlebarsjs.com) (check latest-tag)
|
||||||
* [RubyGems](https://rubygems.org/gems/handlebars-source)
|
- [RubyGems](https://rubygems.org/gems/handlebars-source)
|
||||||
|
|
||||||
When everything is OK, the handlebars site needs to be updated to point to the new version numbers. The jsfiddle link should be updated to point to the most recent distribution for all instances in our documentation.
|
When everything is OK, the handlebars site needs to be updated to point to the new version numbers. The jsfiddle link should be updated to point to the most recent distribution for all instances in our documentation.
|
||||||
|
|
||||||
|
|||||||
+25
-22
@@ -175,11 +175,6 @@ module.exports = function(grunt) {
|
|||||||
},
|
},
|
||||||
|
|
||||||
bgShell: {
|
bgShell: {
|
||||||
checkTypes: {
|
|
||||||
cmd: 'npm run checkTypes',
|
|
||||||
bg: false,
|
|
||||||
fail: true
|
|
||||||
},
|
|
||||||
integrationTests: {
|
integrationTests: {
|
||||||
cmd: './integration-testing/run-integration-tests.sh',
|
cmd: './integration-testing/run-integration-tests.sh',
|
||||||
bg: false,
|
bg: false,
|
||||||
@@ -195,25 +190,11 @@ module.exports = function(grunt) {
|
|||||||
},
|
},
|
||||||
|
|
||||||
files: ['src/*', 'lib/**/*.js', 'spec/**/*.js'],
|
files: ['src/*', 'lib/**/*.js', 'spec/**/*.js'],
|
||||||
tasks: ['build', 'amd', 'tests', 'test']
|
tasks: ['on-file-change']
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// Build a new version of the library
|
|
||||||
this.registerTask('build', 'Builds a distributable version of the current project', [
|
|
||||||
'bgShell:checkTypes',
|
|
||||||
'parser',
|
|
||||||
'node',
|
|
||||||
'globals']);
|
|
||||||
|
|
||||||
this.registerTask('amd', ['babel:amd', 'requirejs']);
|
|
||||||
this.registerTask('node', ['babel:cjs']);
|
|
||||||
this.registerTask('globals', ['webpack']);
|
|
||||||
this.registerTask('tests', ['concat:tests']);
|
|
||||||
|
|
||||||
this.registerTask('release', 'Build final packages', ['amd', 'uglify', 'test:min', 'copy:dist', 'copy:components', 'copy:cdnjs']);
|
|
||||||
|
|
||||||
// Load tasks from npm
|
// Load tasks from npm
|
||||||
grunt.loadNpmTasks('grunt-contrib-clean');
|
grunt.loadNpmTasks('grunt-contrib-clean');
|
||||||
grunt.loadNpmTasks('grunt-contrib-concat');
|
grunt.loadNpmTasks('grunt-contrib-concat');
|
||||||
@@ -229,11 +210,33 @@ module.exports = function(grunt) {
|
|||||||
|
|
||||||
grunt.task.loadTasks('tasks');
|
grunt.task.loadTasks('tasks');
|
||||||
|
|
||||||
|
this.registerTask(
|
||||||
|
'build',
|
||||||
|
'Builds a distributable version of the current project',
|
||||||
|
['parser', 'node', 'globals']
|
||||||
|
);
|
||||||
|
|
||||||
|
this.registerTask('node', ['babel:cjs']);
|
||||||
|
this.registerTask('globals', ['webpack']);
|
||||||
|
|
||||||
|
this.registerTask('release', 'Build final packages', [
|
||||||
|
'amd',
|
||||||
|
'uglify',
|
||||||
|
'test:min',
|
||||||
|
'copy:dist',
|
||||||
|
'copy:components',
|
||||||
|
'copy:cdnjs'
|
||||||
|
]);
|
||||||
|
|
||||||
|
this.registerTask('amd', ['babel:amd', 'requirejs']);
|
||||||
|
|
||||||
grunt.registerTask('bench', ['metrics']);
|
grunt.registerTask('bench', ['metrics']);
|
||||||
grunt.registerTask('sauce', process.env.SAUCE_USERNAME ? ['tests', 'connect', 'saucelabs-mocha'] : []);
|
grunt.registerTask('sauce', process.env.SAUCE_USERNAME ? ['tests', 'connect', 'saucelabs-mocha'] : []);
|
||||||
|
// Requires secret properties (saucelabs-credentials etc.) from .travis.yaml
|
||||||
|
grunt.registerTask('extensive-tests-and-publish-to-aws', ['default', 'bgShell:integrationTests', 'sauce', 'metrics', 'publish:latest']);
|
||||||
|
grunt.registerTask('on-file-change', ['build', 'amd', 'concat:tests', 'test']);
|
||||||
|
|
||||||
grunt.registerTask('travis', process.env.PUBLISH ? ['default', 'bgShell:integrationTests', 'sauce', 'metrics', 'publish:latest'] : ['default']);
|
// === Primary tasks ===
|
||||||
|
|
||||||
grunt.registerTask('dev', ['clean', 'connect', 'watch']);
|
grunt.registerTask('dev', ['clean', 'connect', 'watch']);
|
||||||
grunt.registerTask('default', ['clean', 'build', 'test', 'release']);
|
grunt.registerTask('default', ['clean', 'build', 'test', 'release']);
|
||||||
grunt.registerTask('integration-tests', ['default', 'bgShell:integrationTests']);
|
grunt.registerTask('integration-tests', ['default', 'bgShell:integrationTests']);
|
||||||
|
|||||||
+3
-4
@@ -13,8 +13,7 @@ install:
|
|||||||
# Clone submodules (mustache spec)
|
# Clone submodules (mustache spec)
|
||||||
- cmd: git submodule update --init --recursive
|
- cmd: git submodule update --init --recursive
|
||||||
# Install modules
|
# Install modules
|
||||||
- cmd: npm install
|
- cmd: npm ci
|
||||||
- cmd: npm install -g grunt-cli
|
|
||||||
|
|
||||||
|
|
||||||
# Post-install test scripts
|
# Post-install test scripts
|
||||||
@@ -23,7 +22,7 @@ test_script:
|
|||||||
- cmd: node --version
|
- cmd: node --version
|
||||||
- cmd: npm --version
|
- cmd: npm --version
|
||||||
# Run tests
|
# Run tests
|
||||||
- cmd: grunt --stack travis
|
- cmd: npm run test
|
||||||
|
|
||||||
# Don't actually build
|
# Don't actually build
|
||||||
build: off
|
build: off
|
||||||
@@ -34,4 +33,4 @@ on_failure:
|
|||||||
|
|
||||||
|
|
||||||
# Set build version format here instead of in the admin panel
|
# Set build version format here instead of in the admin panel
|
||||||
version: "{build}"
|
version: "{build}"
|
||||||
|
|||||||
@@ -12,7 +12,8 @@ cd "$( dirname "$( readlink -f "$0" )" )" || exit 1
|
|||||||
# It does (almost) not test for correctness, because that is already done in the mocha-tests.
|
# It does (almost) not test for correctness, because that is already done in the mocha-tests.
|
||||||
# And it does not use any NodeJS based testing framwork to make this part independent of the Node version.
|
# And it does not use any NodeJS based testing framwork to make this part independent of the Node version.
|
||||||
|
|
||||||
# A list of NodeJS versions is expected as cli-args
|
unset npm_config_prefix
|
||||||
|
|
||||||
echo "Handlebars should be able to run in various versions of NodeJS"
|
echo "Handlebars should be able to run in various versions of NodeJS"
|
||||||
for i in 0.10 0.12 4 5 6 7 8 9 10 11 ; do
|
for i in 0.10 0.12 4 5 6 7 8 9 10 11 ; do
|
||||||
rm target node_modules package-lock.json -rf
|
rm target node_modules package-lock.json -rf
|
||||||
@@ -23,4 +24,4 @@ for i in 0.10 0.12 4 5 6 7 8 9 10 11 ; do
|
|||||||
nvm exec "$i" npm run test-precompile || exit 1
|
nvm exec "$i" npm run test-precompile || exit 1
|
||||||
|
|
||||||
echo Success
|
echo Success
|
||||||
done
|
done
|
||||||
|
|||||||
Generated
+199
@@ -1561,6 +1561,193 @@
|
|||||||
"typedarray": "^0.0.6"
|
"typedarray": "^0.0.6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"concurrently": {
|
||||||
|
"version": "5.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/concurrently/-/concurrently-5.0.0.tgz",
|
||||||
|
"integrity": "sha512-1yDvK8mduTIdxIxV9C60KoiOySUl/lfekpdbI+U5GXaPrgdffEavFa9QZB3vh68oWOpbCC+TuvxXV9YRPMvUrA==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"chalk": "^2.4.2",
|
||||||
|
"date-fns": "^2.0.1",
|
||||||
|
"lodash": "^4.17.15",
|
||||||
|
"read-pkg": "^4.0.1",
|
||||||
|
"rxjs": "^6.5.2",
|
||||||
|
"spawn-command": "^0.0.2-1",
|
||||||
|
"supports-color": "^4.5.0",
|
||||||
|
"tree-kill": "^1.2.1",
|
||||||
|
"yargs": "^12.0.5"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"ansi-regex": {
|
||||||
|
"version": "3.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
|
||||||
|
"integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"ansi-styles": {
|
||||||
|
"version": "3.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
|
||||||
|
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"color-convert": "^1.9.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"chalk": {
|
||||||
|
"version": "2.4.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
|
||||||
|
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"ansi-styles": "^3.2.1",
|
||||||
|
"escape-string-regexp": "^1.0.5",
|
||||||
|
"supports-color": "^5.3.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"supports-color": {
|
||||||
|
"version": "5.5.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
|
||||||
|
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"has-flag": "^3.0.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"cliui": {
|
||||||
|
"version": "4.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
|
||||||
|
"integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"string-width": "^2.1.1",
|
||||||
|
"strip-ansi": "^4.0.0",
|
||||||
|
"wrap-ansi": "^2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"date-fns": {
|
||||||
|
"version": "2.8.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.8.1.tgz",
|
||||||
|
"integrity": "sha512-EL/C8IHvYRwAHYgFRse4MGAPSqlJVlOrhVYZ75iQBKrnv+ZedmYsgwH3t+BCDuZDXpoo07+q9j4qgSSOa7irJg==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"find-up": {
|
||||||
|
"version": "3.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
|
||||||
|
"integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"locate-path": "^3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"invert-kv": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz",
|
||||||
|
"integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"lcid": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz",
|
||||||
|
"integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"invert-kv": "^2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"lodash": {
|
||||||
|
"version": "4.17.15",
|
||||||
|
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
|
||||||
|
"integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"os-locale": {
|
||||||
|
"version": "3.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz",
|
||||||
|
"integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"execa": "^1.0.0",
|
||||||
|
"lcid": "^2.0.0",
|
||||||
|
"mem": "^4.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"parse-json": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
|
||||||
|
"integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"error-ex": "^1.3.1",
|
||||||
|
"json-parse-better-errors": "^1.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pify": {
|
||||||
|
"version": "3.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
|
||||||
|
"integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"read-pkg": {
|
||||||
|
"version": "4.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-4.0.1.tgz",
|
||||||
|
"integrity": "sha1-ljYlN48+HE1IyFhytabsfV0JMjc=",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"normalize-package-data": "^2.3.2",
|
||||||
|
"parse-json": "^4.0.0",
|
||||||
|
"pify": "^3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"strip-ansi": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
|
||||||
|
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"ansi-regex": "^3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"supports-color": {
|
||||||
|
"version": "4.5.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
|
||||||
|
"integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"has-flag": "^2.0.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"has-flag": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
|
||||||
|
"integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
|
||||||
|
"dev": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"yargs": {
|
||||||
|
"version": "12.0.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz",
|
||||||
|
"integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"cliui": "^4.0.0",
|
||||||
|
"decamelize": "^1.2.0",
|
||||||
|
"find-up": "^3.0.0",
|
||||||
|
"get-caller-file": "^1.0.1",
|
||||||
|
"os-locale": "^3.0.0",
|
||||||
|
"require-directory": "^2.1.1",
|
||||||
|
"require-main-filename": "^1.0.1",
|
||||||
|
"set-blocking": "^2.0.0",
|
||||||
|
"string-width": "^2.0.0",
|
||||||
|
"which-module": "^2.0.0",
|
||||||
|
"y18n": "^3.2.1 || ^4.0.0",
|
||||||
|
"yargs-parser": "^11.1.1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"connect": {
|
"connect": {
|
||||||
"version": "3.6.6",
|
"version": "3.6.6",
|
||||||
"resolved": "https://registry.npmjs.org/connect/-/connect-3.6.6.tgz",
|
"resolved": "https://registry.npmjs.org/connect/-/connect-3.6.6.tgz",
|
||||||
@@ -9012,6 +9199,12 @@
|
|||||||
"integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=",
|
"integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"spawn-command": {
|
||||||
|
"version": "0.0.2-1",
|
||||||
|
"resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz",
|
||||||
|
"integrity": "sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"spdx-correct": {
|
"spdx-correct": {
|
||||||
"version": "3.1.0",
|
"version": "3.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz",
|
||||||
@@ -9484,6 +9677,12 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"tree-kill": {
|
||||||
|
"version": "1.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.1.tgz",
|
||||||
|
"integrity": "sha512-4hjqbObwlh2dLyW4tcz0Ymw0ggoaVDMveUB9w8kFSQScdRLo0gxO9J7WFcUBo+W3C1TLdFIEwNOWebgZZ0RH9Q==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"trim-newlines": {
|
"trim-newlines": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
|
||||||
|
|||||||
+9
-4
@@ -35,6 +35,7 @@
|
|||||||
"babel-runtime": "^5.1.10",
|
"babel-runtime": "^5.1.10",
|
||||||
"benchmark": "~1.0",
|
"benchmark": "~1.0",
|
||||||
"chai": "^4.2.0",
|
"chai": "^4.2.0",
|
||||||
|
"concurrently": "^5.0.0",
|
||||||
"dirty-chai": "^2.0.1",
|
"dirty-chai": "^2.0.1",
|
||||||
"dtslint": "^0.5.5",
|
"dtslint": "^0.5.5",
|
||||||
"dustjs-linkedin": "^2.0.2",
|
"dustjs-linkedin": "^2.0.2",
|
||||||
@@ -82,9 +83,13 @@
|
|||||||
"scripts": {
|
"scripts": {
|
||||||
"format": "prettier --write '**/*.js' && eslint --fix .",
|
"format": "prettier --write '**/*.js' && eslint --fix .",
|
||||||
"check-format": "prettier --check '**/*.js'",
|
"check-format": "prettier --check '**/*.js'",
|
||||||
"lint": "eslint .",
|
"lint": "eslint --max-warnings 0 . ",
|
||||||
"checkTypes": "dtslint types",
|
"dtslint": "dtslint types",
|
||||||
"test": "grunt"
|
"test": "grunt",
|
||||||
|
"extensive-tests-and-publish-to-aws": "grunt --stack extensive-tests-and-publish-to-aws",
|
||||||
|
"integration-test": "grunt integration-tests",
|
||||||
|
"--- combined tasks ---": "",
|
||||||
|
"check-before-pull-request": "concurrently --kill-others-on-fail npm:lint npm:dtslint npm:check-format npm:test"
|
||||||
},
|
},
|
||||||
"jspm": {
|
"jspm": {
|
||||||
"main": "handlebars",
|
"main": "handlebars",
|
||||||
@@ -108,7 +113,7 @@
|
|||||||
],
|
],
|
||||||
"husky": {
|
"husky": {
|
||||||
"hooks": {
|
"hooks": {
|
||||||
"pre-commit": "lint-staged"
|
"pre-commit": "true || lint-staged"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"lint-staged": {
|
"lint-staged": {
|
||||||
|
|||||||
Reference in New Issue
Block a user