diff --git a/.eslintignore b/.eslintignore index ed2ae9c3ba..c2d254a5c8 100644 --- a/.eslintignore +++ b/.eslintignore @@ -8,3 +8,4 @@ options/* reports/* web/ext/* web/dist/* +web/build/* diff --git a/.travis.yml b/.travis.yml index 03fd7fa8b2..e3c337a664 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,6 @@ language: node_js node_js: -- '6.8.1' +- '8.8.1' before_install: npm install -g grunt-cli install: npm install +before_script: npm run build:tests diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4403c5772d..a9a0ccbc5e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -42,7 +42,9 @@ Please lint your code with `npm run lint`. Our style rules are defined in `.styl ### Unit Tests -All of the unit tests for this project need to pass before your submission will be accepted. You can run `npm test` in the command line after making changes to verify that the tests pass. If you add new functionality, please consider adding tests for that functionality as well. +All of the unit tests for this project need to pass before your submission will be accepted. You can run `npm build && npm test` in the command line after making changes to verify that the tests pass. If you add new functionality, please consider adding tests for that functionality as well. + +Note for Windows users: `npm test` may fail unless you [install PhantomJS manually](http://phantomjs.org/download.html). ### End-to-end Tests diff --git a/Gruntfile.js b/Gruntfile.js index 304067280b..e855b0c181 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -39,15 +39,6 @@ module.exports = function(grunt) { optionsPath: optionsPath, apache_version: grunt.option('apache-version') || '22', - buster: { - console: {}, - report: { - test: { - reporter: 'xml' - } - } - }, - copy: { apache: { src: 'etc/dev/worldview-dev.httpd<%=apache_version%>.conf', @@ -240,14 +231,6 @@ module.exports = function(grunt) { } }, - eslint: { - options: { - configFile: '.eslintrc', - format: 'stylish' - }, - src: ['**/*.js', '!node_modules/**/*', '!build/**/*', '!dist/**/*', '!lib/**/*', '!options/**/*', '!web/dist/**/*', '!web/ext/**/*', '!etc/**/*'] - }, - exec: { config: { command: 'bash -c "PATH=' + pythonPath + ':"${PATH}" bin/wv-options-build "' + env @@ -309,21 +292,6 @@ module.exports = function(grunt) { } }, - lineremover: { - // After removing all the references, there - // are a lot of blank lines in index.html. Remove them - release: { - files: [ - { - expand: true, - cwd: 'build', - src: ['**/web/**/*.html'], - dest: 'build' - } - ] - } - }, - markdown: { metadata: { files: [ @@ -412,24 +380,6 @@ module.exports = function(grunt) { ] }, - // Remove all development links and uncomment - // all the release links - links: { - src: [ - 'build/**/web/index.html', 'build/**/web/pages/*.html' - ], - overwrite: true, - replacements: [ - { - from: /.*link.dev.*/g, - to: '' - }, { - from: /.*link.prod.*(!--|\/\*)(.*)(--|\*\/).*/g, - to: '$2' - } - ] - }, - rpm_sources: { src: [ 'build/rpmbuild/SOURCES/*', 'build/rpmbuild/SPECS/*', '!**/*.tar.bz2' @@ -486,13 +436,8 @@ module.exports = function(grunt) { }); - grunt.loadNpmTasks('grunt-buster'); grunt.loadNpmTasks('grunt-contrib-clean'); - grunt.loadNpmTasks('grunt-contrib-compress'); grunt.loadNpmTasks('grunt-contrib-copy'); - grunt.loadNpmTasks('gruntify-eslint'); - grunt.loadNpmTasks('grunt-contrib-watch'); - grunt.loadNpmTasks('grunt-line-remover'); grunt.loadNpmTasks('grunt-exec'); grunt.loadNpmTasks('grunt-git-rev-parse'); grunt.loadNpmTasks('grunt-markdown'); @@ -526,8 +471,6 @@ module.exports = function(grunt) { 'remove:source', 'exec:empty', 'copy:release', - 'replace:links', - 'lineremover', 'mkdir:dist', 'exec:tar_source_debug', 'copy:dist_source_debug_versioned', @@ -574,13 +517,9 @@ module.exports = function(grunt) { ]); grunt.registerTask('apache-config', ['load_branding', 'copy:apache', 'replace:apache']); - grunt.registerTask('update-packages', ['exec:python_packages']); - grunt.registerTask('check', ['lint', 'test']); grunt.registerTask('clean', ['remove:build']); grunt.registerTask('distclean', ['remove:build', 'remove:dist']); - grunt.registerTask('lint', ['eslint']); - grunt.registerTask('test', ['buster:console']); grunt.registerTask('default', [ 'update-packages', diff --git a/buster.js b/buster.js index 3bc2b9dbf2..42c9e20b2e 100644 --- a/buster.js +++ b/buster.js @@ -3,29 +3,8 @@ var config = module.exports; config['wv'] = { rootPath: './', environment: 'browser', - libs: [ - 'web/ext/main/lodash-2.4.1/lodash.js', - 'web/ext/main/jquery-2.1.4/jquery.js', - 'web/ext/main/jquery.migrate-1.2.1/jquery-migrate.min.js', - 'web/ext/main/jscache-gitba01cdc/cache.js', - 'web/ext/proj/proj4js-2.3.3-1/proj4.js', - 'node_modules/openlayers/dist/ol-debug.js', - 'test/fixtures.js' - ], src: [ - 'web/js/util/wv.*.js', - 'web/js/wv.*.js', - '!web/js/wv.main.js', - 'web/js/ui/wv.ui.js', - 'web/js/ui/wv.ui.mouse.js', - 'web/js/ui/wv.ui.indicator.js', - 'web/js/date/wv.*.js', - 'web/js/layers/wv.*.js', - 'web/js/link/wv.*.js', - 'web/js/palettes/wv.*.js', - 'web/js/proj/wv.*.js', - 'web/js/data/wv.*.js', - 'web/js/map/wv.*.js' + 'web/build/wv-test-bundle.js' ], - tests: ['test/**/*.js'] + tests: ['test/**/*-spec.js'] }; diff --git a/package-lock.json b/package-lock.json index 04d8ff3932..ab76b84901 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,6 +14,13 @@ "through": "2.3.8" } }, + "abab": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz", + "integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4=", + "dev": true, + "optional": true + }, "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", @@ -55,6 +62,25 @@ "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", "dev": true }, + "acorn-globals": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-1.0.9.tgz", + "integrity": "sha1-VbtemGkVB7dFedBRNBMhfDgMVM8=", + "dev": true, + "optional": true, + "requires": { + "acorn": "2.7.0" + }, + "dependencies": { + "acorn": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz", + "integrity": "sha1-q259nYhqrKiwhbwzEreaGYQz8Oc=", + "dev": true, + "optional": true + } + } + }, "acorn-jsx": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", @@ -123,6 +149,17 @@ "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", "dev": true }, + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "dev": true, + "requires": { + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" + } + }, "alphanum-sort": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", @@ -147,12 +184,6 @@ "integrity": "sha512-O/klc27mWNUigtv0F8NJWbLF00OcegQalkqKURWdosW08YZKi4m6CnSUSvIZG1otNJbTWhN01Hhz389DW7mvDQ==", "dev": true }, - "ansi-grid": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/ansi-grid/-/ansi-grid-0.5.0.tgz", - "integrity": "sha1-v9QxIjFxSVsXvqT002WTpsIYLGg=", - "dev": true - }, "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", @@ -190,48 +221,6 @@ "integrity": "sha1-rglCYAspkS8NKxTsYMRejzMLYRA=", "dev": true }, - "archiver": { - "version": "0.4.10", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-0.4.10.tgz", - "integrity": "sha1-3w/qyPHRKV5ezrOiBVWQctIfR0c=", - "dev": true, - "requires": { - "iconv-lite": "0.2.11", - "readable-stream": "1.0.34" - }, - "dependencies": { - "iconv-lite": { - "version": "0.2.11", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz", - "integrity": "sha1-HOYKOleGSiktEyH/RgnKS7llrcg=", - "dev": true - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "0.0.1", - "string_decoder": "0.10.31" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - } - } - }, "argparse": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", @@ -395,9 +384,9 @@ } }, "async": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", - "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", "dev": true }, "async-each": { @@ -1049,6 +1038,7 @@ "version": "6.16.0", "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.16.0.tgz", "integrity": "sha1-LUUCHfh+JqN0ttTRqcZZZNF/JCI=", + "dev": true, "requires": { "babel-runtime": "6.26.0", "core-js": "2.5.3", @@ -1120,6 +1110,7 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, "requires": { "core-js": "2.5.3", "regenerator-runtime": "0.11.1" @@ -1128,7 +1119,8 @@ "regenerator-runtime": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true } } }, @@ -1227,9 +1219,9 @@ "dev": true }, "bane": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/bane/-/bane-1.0.0.tgz", - "integrity": "sha1-lJ/okStCs481Lh+tIE2CXa+h/0A=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/bane/-/bane-1.1.2.tgz", + "integrity": "sha1-vGQkjMgjFgx98/I4uH/mLEThB7k=", "dev": true }, "base64-js": { @@ -1266,6 +1258,12 @@ "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=", "dev": true }, + "bindings": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz", + "integrity": "sha1-FK1hE4EtLTfXLme0ystLtyZQXxE=", + "dev": true + }, "bl": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/bl/-/bl-1.0.3.tgz", @@ -1317,69 +1315,6 @@ "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", "dev": true }, - "body-parser": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.14.2.tgz", - "integrity": "sha1-EBXLH+LEQ4WCWVgdtTMy+NDPUPk=", - "dev": true, - "requires": { - "bytes": "2.2.0", - "content-type": "1.0.4", - "debug": "2.2.0", - "depd": "1.1.1", - "http-errors": "1.3.1", - "iconv-lite": "0.4.13", - "on-finished": "2.3.0", - "qs": "5.2.0", - "raw-body": "2.1.7", - "type-is": "1.6.15" - }, - "dependencies": { - "bytes": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.2.0.tgz", - "integrity": "sha1-/TVGSkA/b5EXwt42Cez/nK4ABYg=", - "dev": true - }, - "debug": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "dev": true, - "requires": { - "ms": "0.7.1" - } - }, - "http-errors": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", - "integrity": "sha1-GX4izevUGYWF6GlO9nhhl7ke2UI=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "statuses": "1.3.1" - } - }, - "iconv-lite": { - "version": "0.4.13", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz", - "integrity": "sha1-H4irpKsLFQjoMSrMOTRfNumS4vI=", - "dev": true - }, - "ms": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", - "dev": true - }, - "qs": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-5.2.0.tgz", - "integrity": "sha1-qfMRQq9GjLcrJbMBNrokVoNJFr4=", - "dev": true - } - } - }, "boom": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", @@ -1708,210 +1643,180 @@ "dev": true }, "buster": { - "version": "0.7.12", - "resolved": "https://registry.npmjs.org/buster/-/buster-0.7.12.tgz", - "integrity": "sha1-g0ocPa8vrl+iXQFYYRwNt9whiRU=", + "version": "github:busterjs/buster#0a0568f1169f66d0a1a19fad7fe0de9b44b934c8", "dev": true, "requires": { - "async": "0.2.10", - "bane": "1.0.0", - "buster-autotest": "0.4.2", - "buster-server-cli": "0.3.4", + "async": "1.5.2", + "bane": "1.1.2", + "buster-autotest": "0.6.0", + "buster-ci": "0.3.0", + "buster-server-cli": "0.4.0", "buster-sinon": "0.7.2", - "buster-static": "0.6.5", - "buster-syntax": "0.4.3", - "buster-test": "0.7.14", - "buster-test-cli": "0.8.8", + "buster-static": "0.7.0", + "buster-syntax": "0.5.0", + "buster-test": "0.8.0", + "buster-test-cli": "0.9.0", "evented-logger": "1.0.1", - "formatio": "1.0.2", - "lodash": "1.0.2", - "platform": "1.0.0", - "referee": "1.0.3", + "formatio": "1.1.1", + "lodash": "3.10.1", + "platform": "1.3.4", + "referee": "1.2.0", "referee-sinon": "1.0.3", "samsam": "1.1.2", - "sinon": "1.9.1", + "sinon": "1.17.7", "stack-filter": "1.0.1", - "when": "https://github.com/cujojs/when/tarball/1.8.1" + "when": "3.7.8" }, "dependencies": { - "buster-static": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/buster-static/-/buster-static-0.6.5.tgz", - "integrity": "sha1-9A4lZOCGr9OhU3Q1eNfJrfYeJDE=", - "dev": true, - "requires": { - "async": "0.8.0", - "buster-cli": "0.6.3", - "buster-test": "0.7.14", - "mkdirp": "0.3.5", - "ramp-resources": "1.0.5", - "stack-filter": "1.0.1", - "when": "https://github.com/cujojs/when/tarball/1.8.1" - }, - "dependencies": { - "async": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/async/-/async-0.8.0.tgz", - "integrity": "sha1-7mXsdymML/FFa8RBigUtDwZDURI=", - "dev": true - } - } - }, - "formatio": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/formatio/-/formatio-1.0.2.tgz", - "integrity": "sha1-55kcoUT/fYz/B7uayGqbeca6R+8=", - "dev": true, - "requires": { - "samsam": "1.1.2" - } - }, "lodash": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", - "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=", - "dev": true - }, - "mkdirp": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz", - "integrity": "sha1-3j5fiWHIjHh+4TaN+EmsRBPsqNc=", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", "dev": true - }, - "sinon": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-1.9.1.tgz", - "integrity": "sha1-DaxiK9Pw5vlmKnQxuvZfWMNFnWk=", - "dev": true, - "requires": { - "formatio": "1.0.2", - "util": "0.10.3" - } } } }, "buster-analyzer": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/buster-analyzer/-/buster-analyzer-0.5.0.tgz", - "integrity": "sha1-KZXzmTZYPpzZEJVbmOg1e+fHopU=", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/buster-analyzer/-/buster-analyzer-0.6.0.tgz", + "integrity": "sha1-lw6/ofR22MvQgiUXBtJ6f2k2bnk=", "dev": true, "requires": { - "bane": "1.0.0", - "when": "https://github.com/cujojs/when/tarball/1.8.1" + "bane": "1.1.2" } }, "buster-autotest": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/buster-autotest/-/buster-autotest-0.4.2.tgz", - "integrity": "sha1-TY/uKYG7K5jPW4mqCu2zBOj6LIM=", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/buster-autotest/-/buster-autotest-0.6.0.tgz", + "integrity": "sha1-Wy2Dshh2TCHxmswQXYPj4CzRMec=", "dev": true, "requires": { - "fs-watch-tree": "0.2.5", - "multi-glob": "0.4.0" + "chokidar": "1.7.0", + "multi-glob": "1.0.1" + } + }, + "buster-ci": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/buster-ci/-/buster-ci-0.3.0.tgz", + "integrity": "sha1-urgk4Y4QkklHb10NxL9b5L5OaKw=", + "dev": true, + "requires": { + "async": "1.5.2", + "buster-ci-agent": "0.2.0", + "buster-server-cli": "0.4.0", + "buster-syntax": "0.5.0", + "buster-test-cli": "0.9.0", + "faye": "1.2.4", + "formatio": "1.1.1", + "stream-logger": "1.0.1", + "when": "3.7.8" + } + }, + "buster-ci-agent": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/buster-ci-agent/-/buster-ci-agent-0.2.0.tgz", + "integrity": "sha1-nVRjmYMLmVxlNSEonkff4stz2YA=", + "dev": true, + "requires": { + "async": "1.5.2", + "evented-logger": "1.0.1", + "faye": "1.2.4", + "ffi": "2.2.0", + "formatio": "1.1.1", + "ref": "1.3.5" } }, "buster-cli": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/buster-cli/-/buster-cli-0.6.3.tgz", - "integrity": "sha1-XSZTPf8MMB3jJB8IlGsf6DczMwk=", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/buster-cli/-/buster-cli-0.8.0.tgz", + "integrity": "sha1-I2VvBRv3uU+s2AR33FCo6yMy/9w=", "dev": true, "requires": { "ansi-colorizer": "1.0.1", - "bane": "1.0.0", - "buster-configuration": "0.7.6", + "bane": "1.1.2", + "buster-configuration": "0.8.1", "minimatch": "3.0.4", - "posix-argv-parser": "1.0.2", - "rimraf": "1.0.9", + "posix-argv-parser": "2.0.0", + "rimraf": "2.5.4", "stream-logger": "1.0.1" - }, - "dependencies": { - "rimraf": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-1.0.9.tgz", - "integrity": "sha1-vkgB/3bCum8cUMeOlwDrHSHyOfE=", - "dev": true - } } }, "buster-configuration": { - "version": "0.7.6", - "resolved": "https://registry.npmjs.org/buster-configuration/-/buster-configuration-0.7.6.tgz", - "integrity": "sha1-o4RYOMLg0TK2HvZYtfeEFD2LuzY=", + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/buster-configuration/-/buster-configuration-0.8.1.tgz", + "integrity": "sha1-xgL1hEoMm6xsr0xoTK/2b+VyEd8=", "dev": true, "requires": { - "async": "0.1.22", - "bane": "1.0.0", - "glob": "3.1.21", - "lodash": "1.0.2", - "ramp-resources": "1.0.5", - "when": "https://github.com/cujojs/when/tarball/1.3.0" + "async": "1.5.2", + "bane": "1.1.2", + "glob": "5.0.15", + "lodash": "3.10.1", + "ramp-resources": "2.0.2", + "when": "3.7.8" }, "dependencies": { - "async": { - "version": "0.1.22", - "resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz", - "integrity": "sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE=", - "dev": true - }, "glob": { - "version": "3.1.21", - "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", - "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=", + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", "dev": true, "requires": { - "graceful-fs": "1.2.3", - "inherits": "1.0.2", - "minimatch": "0.2.14" + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, - "inherits": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", - "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=", - "dev": true - }, "lodash": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", - "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=", - "dev": true - }, - "minimatch": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", - "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", - "dev": true, - "requires": { - "lru-cache": "2.7.3", - "sigmund": "1.0.1" - } - }, - "when": { - "version": "https://github.com/cujojs/when/tarball/1.3.0", - "integrity": "sha1-iZ6Im5KeUtrodC+Ts9SzWoe+PXs=", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", "dev": true } } }, "buster-server-cli": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/buster-server-cli/-/buster-server-cli-0.3.4.tgz", - "integrity": "sha1-lbodQX/4LsBMykuyIpqAQC7Pfe8=", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/buster-server-cli/-/buster-server-cli-0.4.0.tgz", + "integrity": "sha1-67/SxVF1x5wAaHlsmwgH4XnguHU=", "dev": true, "requires": { - "buster-cli": "0.6.3", - "ejs": "0.4.3", - "paperboy": "0.0.5", + "buster-cli": "0.8.0", + "ejs": "2.5.7", + "finalhandler": "0.4.1", "phantom-proxy": "0.1.792", - "platform": "1.2.0", - "ramp": "1.0.6", - "ramp-resources": "1.0.5" + "platform": "1.3.4", + "ramp": "2.0.2", + "ramp-resources": "2.0.2", + "serve-static": "1.12.1" }, "dependencies": { - "platform": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/platform/-/platform-1.2.0.tgz", - "integrity": "sha1-X63g01dXrcmNW09LnSwfHhOsBLA=", + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "dev": true, + "requires": { + "ms": "0.7.1" + } + }, + "finalhandler": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.4.1.tgz", + "integrity": "sha1-haF8bFmpRxfSYtYSMNSw6+PUoU0=", + "dev": true, + "requires": { + "debug": "2.2.0", + "escape-html": "1.0.3", + "on-finished": "2.3.0", + "unpipe": "1.0.0" + } + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", "dev": true } } @@ -1922,104 +1827,137 @@ "integrity": "sha1-FUGAbyU40IYyuDPs2wgZYnkDezc=", "dev": true }, + "buster-static": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/buster-static/-/buster-static-0.7.0.tgz", + "integrity": "sha1-bs5GvT8YJncZg7g1ZBw9EnpERaM=", + "dev": true, + "requires": { + "async": "1.5.2", + "buster-cli": "0.8.0", + "buster-test": "0.8.0", + "mkdirp": "0.5.1", + "ramp-resources": "2.0.2", + "stack-filter": "1.0.1", + "when": "3.7.8" + } + }, "buster-syntax": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/buster-syntax/-/buster-syntax-0.4.3.tgz", - "integrity": "sha1-rkJRTg6sg9iQdacGp+W7kAVwsHM=", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/buster-syntax/-/buster-syntax-0.5.0.tgz", + "integrity": "sha1-q/pGCfJYGJnqdCdLJrNnIdoYdtE=", "dev": true, "requires": { - "jsdom": "0.10.6", - "uglify-js": "1.2.5" + "uglify-js": "2.8.29" }, "dependencies": { - "jsdom": { - "version": "0.10.6", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-0.10.6.tgz", - "integrity": "sha1-o7HYdUVLoBZVdYKWeZOewAa/Wrg=", + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", "dev": true, - "optional": true, "requires": { - "cssom": "0.3.2", - "cssstyle": "0.2.37", - "htmlparser2": "3.9.2", - "nwmatcher": "1.3.9", - "request": "2.83.0", - "xmlhttprequest": "1.8.0" + "center-align": "0.1.3", + "right-align": "0.1.3", + "wordwrap": "0.0.2" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "dev": true, + "requires": { + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" + } + }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "dev": true + }, + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true + }, + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "dev": true, + "requires": { + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", + "window-size": "0.1.0" } - }, - "nwmatcher": { - "version": "1.3.9", - "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.3.9.tgz", - "integrity": "sha1-i6tIb/f6Pf0IZla76LFxFtNpLSo=", - "dev": true, - "optional": true } } }, "buster-test": { - "version": "0.7.14", - "resolved": "https://registry.npmjs.org/buster-test/-/buster-test-0.7.14.tgz", - "integrity": "sha1-lMCQckUYm5F1xPSimpoepMmUQoE=", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/buster-test/-/buster-test-0.8.0.tgz", + "integrity": "sha1-sTSlqo8uGxzxB5Q/+c0mlmuN0qo=", "dev": true, "requires": { "ansi-colorizer": "1.0.1", - "async": "0.1.22", - "bane": "1.0.0", - "lodash": "1.0.2", - "platform": "1.2.0", - "when": "https://github.com/cujojs/when/tarball/1.8.1" + "async": "1.5.2", + "bane": "1.1.2", + "jsdom": "7.2.2", + "lodash": "3.10.1", + "platform": "1.3.4", + "semver-compare": "1.0.0", + "when": "3.7.8" }, "dependencies": { - "async": { - "version": "0.1.22", - "resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz", - "integrity": "sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE=", - "dev": true - }, "lodash": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", - "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=", - "dev": true - }, - "platform": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/platform/-/platform-1.2.0.tgz", - "integrity": "sha1-X63g01dXrcmNW09LnSwfHhOsBLA=", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", "dev": true } } }, "buster-test-cli": { - "version": "0.8.8", - "resolved": "https://registry.npmjs.org/buster-test-cli/-/buster-test-cli-0.8.8.tgz", - "integrity": "sha1-6LtEdbj5ViVMDfQass92WYR700c=", + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/buster-test-cli/-/buster-test-cli-0.9.0.tgz", + "integrity": "sha1-uxhVn79TwfmYrtMXWFzS2kAj/lM=", "dev": true, "requires": { "ansi-colorizer": "1.0.1", - "ansi-grid": "0.5.0", - "bane": "1.0.0", - "buster-analyzer": "0.5.0", - "buster-cli": "0.6.3", - "buster-test": "0.7.14", - "ejs": "0.4.3", - "lodash": "1.0.2", - "platform": "1.2.0", - "ramp": "1.0.6", + "bane": "1.1.2", + "buster-analyzer": "0.6.0", + "buster-cli": "0.8.0", + "buster-test": "0.8.0", + "ejs": "2.5.7", + "lodash": "3.10.1", + "platform": "1.3.4", + "ramp": "2.0.2", "stack-filter": "1.0.1", - "when": "https://github.com/cujojs/when/tarball/1.8.1" + "when": "3.7.8" }, "dependencies": { "lodash": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", - "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=", - "dev": true - }, - "platform": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/platform/-/platform-1.2.0.tgz", - "integrity": "sha1-X63g01dXrcmNW09LnSwfHhOsBLA=", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", "dev": true } } @@ -2140,6 +2078,16 @@ "integrity": "sha1-U7ai+BW7d7nChx97mnLDol8djok=", "dev": true }, + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "dev": true, + "requires": { + "align-text": "0.1.4", + "lazy-cache": "1.0.4" + } + }, "chai-nightwatch": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/chai-nightwatch/-/chai-nightwatch-0.1.1.tgz", @@ -2771,16 +2719,11 @@ "integrity": "sha1-E9NgO1z2O++/haiAHjeqkA20aYU=", "dev": true }, - "cookiejar": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.1.tgz", - "integrity": "sha1-Qa1XsbVVlR7BcUEqgZQrHoIA00o=", - "dev": true - }, "core-js": { "version": "2.5.3", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", - "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=" + "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", + "dev": true }, "core-util-is": { "version": "1.0.2", @@ -2889,28 +2832,6 @@ } } }, - "cross-spawn-async": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/cross-spawn-async/-/cross-spawn-async-2.2.5.tgz", - "integrity": "sha1-hF/wwINKPe2dFg2sptOQkGuyiMw=", - "dev": true, - "requires": { - "lru-cache": "4.1.1", - "which": "1.3.0" - }, - "dependencies": { - "lru-cache": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", - "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", - "dev": true, - "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" - } - } - } - }, "cryptiles": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", @@ -2952,6 +2873,15 @@ "randomfill": "1.0.3" } }, + "csprng": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/csprng/-/csprng-0.1.2.tgz", + "integrity": "sha1-S8aPEvo2jSUqWYQcusqXSxirReI=", + "dev": true, + "requires": { + "sequin": "0.1.1" + } + }, "css": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/css/-/css-2.2.1.tgz", @@ -4240,9 +4170,9 @@ "dev": true }, "ejs": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-0.4.3.tgz", - "integrity": "sha1-gUPDZWlVuJNNtdnag+m+cxdvH08=", + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.5.7.tgz", + "integrity": "sha1-zIcsFoiArjxxiXYv1f/ACJbJUYo=", "dev": true }, "electron-to-chromium": { @@ -4751,7 +4681,7 @@ "integrity": "sha1-n+1Zxc7MhzFuzv25X76RDwPmNqc=", "dev": true, "requires": { - "bane": "1.0.0", + "bane": "1.1.2", "lodash": "3.10.1" }, "dependencies": { @@ -5078,6 +5008,14 @@ "dev": true, "requires": { "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + } } }, "readable-stream": { @@ -5127,13 +5065,16 @@ "dev": true }, "faye": { - "version": "0.8.11", - "resolved": "https://registry.npmjs.org/faye/-/faye-0.8.11.tgz", - "integrity": "sha1-BrJfIsm+Uevm/m2NWd7m5UZ1GWc=", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/faye/-/faye-1.2.4.tgz", + "integrity": "sha1-l47YpY8dSB5cH5i6y4lZ3l7FxkM=", "dev": true, "requires": { - "cookiejar": "2.1.1", - "faye-websocket": "0.11.1" + "asap": "2.0.6", + "csprng": "0.1.2", + "faye-websocket": "0.11.1", + "tough-cookie": "2.3.3", + "tunnel-agent": "0.6.0" } }, "faye-websocket": { @@ -5175,6 +5116,20 @@ "pend": "1.2.0" } }, + "ffi": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ffi/-/ffi-2.2.0.tgz", + "integrity": "sha1-vxiwRmain3EiftVoldVDCvRwQvo=", + "dev": true, + "optional": true, + "requires": { + "bindings": "1.2.1", + "debug": "2.6.9", + "nan": "2.8.0", + "ref": "1.3.5", + "ref-struct": "1.1.0" + } + }, "figures": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", @@ -5364,6 +5319,12 @@ "mime": "1.2.11" }, "dependencies": { + "async": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=", + "dev": true + }, "mime": { "version": "1.2.11", "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz", @@ -5430,33 +5391,6 @@ } } }, - "fs-watch-tree": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/fs-watch-tree/-/fs-watch-tree-0.2.5.tgz", - "integrity": "sha1-tIoBTJgw/1PlI1bqIwVsHA1suS0=", - "dev": true, - "requires": { - "minimatch": "0.2.14", - "when": "https://github.com/cujojs/when/tarball/1.3.0" - }, - "dependencies": { - "minimatch": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", - "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", - "dev": true, - "requires": { - "lru-cache": "2.7.3", - "sigmund": "1.0.1" - } - }, - "when": { - "version": "https://github.com/cujojs/when/tarball/1.3.0", - "integrity": "sha1-iZ6Im5KeUtrodC+Ts9SzWoe+PXs=", - "dev": true - } - } - }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -5476,13 +5410,15 @@ "dependencies": { "abbrev": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", + "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=", "dev": true, "optional": true }, "ajv": { "version": "4.11.8", - "bundled": true, + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", "dev": true, "optional": true, "requires": { @@ -5492,18 +5428,21 @@ }, "ansi-regex": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true }, "aproba": { "version": "1.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.1.tgz", + "integrity": "sha1-ldNgDwdxCqDpKYxyatXs8urLq6s=", "dev": true, "optional": true }, "are-we-there-yet": { "version": "1.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", + "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", "dev": true, "optional": true, "requires": { @@ -5513,42 +5452,49 @@ }, "asn1": { "version": "0.2.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", "dev": true, "optional": true }, "assert-plus": { "version": "0.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", "dev": true, "optional": true }, "asynckit": { "version": "0.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", "dev": true, "optional": true }, "aws-sign2": { "version": "0.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", "dev": true, "optional": true }, "aws4": { "version": "1.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", "dev": true, "optional": true }, "balanced-match": { "version": "0.4.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", "dev": true }, "bcrypt-pbkdf": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", "dev": true, "optional": true, "requires": { @@ -5557,7 +5503,8 @@ }, "block-stream": { "version": "0.0.9", - "bundled": true, + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", "dev": true, "requires": { "inherits": "2.0.3" @@ -5565,7 +5512,8 @@ }, "boom": { "version": "2.10.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", "dev": true, "requires": { "hoek": "2.16.3" @@ -5573,7 +5521,8 @@ }, "brace-expansion": { "version": "1.1.7", - "bundled": true, + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz", + "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=", "dev": true, "requires": { "balanced-match": "0.4.2", @@ -5582,29 +5531,34 @@ }, "buffer-shims": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", + "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=", "dev": true }, "caseless": { "version": "0.12.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", "dev": true, "optional": true }, "co": { "version": "4.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", "dev": true, "optional": true }, "code-point-at": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true }, "combined-stream": { "version": "1.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", "dev": true, "requires": { "delayed-stream": "1.0.0" @@ -5612,22 +5566,26 @@ }, "concat-map": { "version": "0.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, "console-control-strings": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", "dev": true }, "core-util-is": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, "cryptiles": { "version": "2.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", "dev": true, "requires": { "boom": "2.10.1" @@ -5635,7 +5593,8 @@ }, "dashdash": { "version": "1.14.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dev": true, "optional": true, "requires": { @@ -5644,7 +5603,8 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "dev": true, "optional": true } @@ -5652,7 +5612,8 @@ }, "debug": { "version": "2.6.8", - "bundled": true, + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", + "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", "dev": true, "optional": true, "requires": { @@ -5661,30 +5622,35 @@ }, "deep-extend": { "version": "0.4.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", + "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", "dev": true, "optional": true }, "delayed-stream": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "dev": true }, "delegates": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", "dev": true, "optional": true }, "detect-libc": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.2.tgz", + "integrity": "sha1-ca1dIEvxempsqPRQxhRUBm70YeE=", "dev": true, "optional": true }, "ecc-jsbn": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", "dev": true, "optional": true, "requires": { @@ -5693,24 +5659,28 @@ }, "extend": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", "dev": true, "optional": true }, "extsprintf": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", + "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=", "dev": true }, "forever-agent": { "version": "0.6.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", "dev": true, "optional": true }, "form-data": { "version": "2.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", "dev": true, "optional": true, "requires": { @@ -5721,12 +5691,14 @@ }, "fs.realpath": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, "fstream": { "version": "1.0.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", + "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", "dev": true, "requires": { "graceful-fs": "4.1.11", @@ -5737,7 +5709,8 @@ }, "fstream-ignore": { "version": "1.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", + "integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=", "dev": true, "optional": true, "requires": { @@ -5748,7 +5721,8 @@ }, "gauge": { "version": "2.7.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "dev": true, "optional": true, "requires": { @@ -5764,7 +5738,8 @@ }, "getpass": { "version": "0.1.7", - "bundled": true, + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "dev": true, "optional": true, "requires": { @@ -5773,7 +5748,8 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "dev": true, "optional": true } @@ -5781,7 +5757,8 @@ }, "glob": { "version": "7.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { "fs.realpath": "1.0.0", @@ -5794,18 +5771,21 @@ }, "graceful-fs": { "version": "4.1.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", "dev": true }, "har-schema": { "version": "1.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", + "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", "dev": true, "optional": true }, "har-validator": { "version": "4.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", + "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", "dev": true, "optional": true, "requires": { @@ -5815,13 +5795,15 @@ }, "has-unicode": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "dev": true, "optional": true }, "hawk": { "version": "3.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", "dev": true, "requires": { "boom": "2.10.1", @@ -5832,12 +5814,14 @@ }, "hoek": { "version": "2.16.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", "dev": true }, "http-signature": { "version": "1.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", "dev": true, "optional": true, "requires": { @@ -5848,7 +5832,8 @@ }, "inflight": { "version": "1.0.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { "once": "1.4.0", @@ -5857,18 +5842,21 @@ }, "inherits": { "version": "2.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true }, "ini": { "version": "1.3.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", + "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", "dev": true, "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { "number-is-nan": "1.0.1" @@ -5876,24 +5864,28 @@ }, "is-typedarray": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true, "optional": true }, "isarray": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, "isstream": { "version": "0.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", "dev": true, "optional": true }, "jodid25519": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", + "integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=", "dev": true, "optional": true, "requires": { @@ -5902,19 +5894,22 @@ }, "jsbn": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", "dev": true, "optional": true }, "json-schema": { "version": "0.2.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", "dev": true, "optional": true }, "json-stable-stringify": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", "dev": true, "optional": true, "requires": { @@ -5923,19 +5918,22 @@ }, "json-stringify-safe": { "version": "5.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", "dev": true, "optional": true }, "jsonify": { "version": "0.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", "dev": true, "optional": true }, "jsprim": { "version": "1.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", + "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=", "dev": true, "optional": true, "requires": { @@ -5947,7 +5945,8 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "dev": true, "optional": true } @@ -5955,12 +5954,14 @@ }, "mime-db": { "version": "1.27.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz", + "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=", "dev": true }, "mime-types": { "version": "2.1.15", - "bundled": true, + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", + "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=", "dev": true, "requires": { "mime-db": "1.27.0" @@ -5968,7 +5969,8 @@ }, "minimatch": { "version": "3.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { "brace-expansion": "1.1.7" @@ -5976,12 +5978,14 @@ }, "minimist": { "version": "0.0.8", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "dev": true }, "mkdirp": { "version": "0.5.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "dev": true, "requires": { "minimist": "0.0.8" @@ -5989,7 +5993,8 @@ }, "ms": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true, "optional": true }, @@ -6002,7 +6007,8 @@ }, "node-pre-gyp": { "version": "0.6.39", - "bundled": true, + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz", + "integrity": "sha512-OsJV74qxnvz/AMGgcfZoDaeDXKD3oY3QVIbBmwszTFkRisTSXbMQyn4UWzUMOtA5SVhrBZOTp0wcoSBgfMfMmQ==", "dev": true, "optional": true, "requires": { @@ -6021,7 +6027,8 @@ }, "nopt": { "version": "4.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", "dev": true, "optional": true, "requires": { @@ -6031,7 +6038,8 @@ }, "npmlog": { "version": "4.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.0.tgz", + "integrity": "sha512-ocolIkZYZt8UveuiDS0yAkkIjid1o7lPG8cYm05yNYzBn8ykQtaiPMEGp8fY9tKdDgm8okpdKzkvu1y9hUYugA==", "dev": true, "optional": true, "requires": { @@ -6043,24 +6051,28 @@ }, "number-is-nan": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true }, "oauth-sign": { "version": "0.8.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", "dev": true, "optional": true }, "object-assign": { "version": "4.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true, "optional": true }, "once": { "version": "1.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { "wrappy": "1.0.2" @@ -6068,19 +6080,22 @@ }, "os-homedir": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "dev": true, "optional": true }, "os-tmpdir": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true, "optional": true }, "osenv": { "version": "0.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", + "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", "dev": true, "optional": true, "requires": { @@ -6090,35 +6105,41 @@ }, "path-is-absolute": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, "performance-now": { "version": "0.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", + "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", "dev": true, "optional": true }, "process-nextick-args": { "version": "1.0.7", - "bundled": true, + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", "dev": true }, "punycode": { "version": "1.4.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", "dev": true, "optional": true }, "qs": { "version": "6.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", + "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", "dev": true, "optional": true }, "rc": { "version": "1.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", + "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=", "dev": true, "optional": true, "requires": { @@ -6130,7 +6151,8 @@ "dependencies": { "minimist": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true, "optional": true } @@ -6138,7 +6160,8 @@ }, "readable-stream": { "version": "2.2.9", - "bundled": true, + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", + "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", "dev": true, "requires": { "buffer-shims": "1.0.0", @@ -6152,7 +6175,8 @@ }, "request": { "version": "2.81.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", + "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", "dev": true, "optional": true, "requires": { @@ -6182,7 +6206,8 @@ }, "rimraf": { "version": "2.6.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", + "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", "dev": true, "requires": { "glob": "7.1.2" @@ -6190,30 +6215,35 @@ }, "safe-buffer": { "version": "5.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", + "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=", "dev": true }, "semver": { "version": "5.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", "dev": true, "optional": true }, "set-blocking": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true, "optional": true }, "signal-exit": { "version": "3.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true, "optional": true }, "sntp": { "version": "1.0.9", - "bundled": true, + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", "dev": true, "requires": { "hoek": "2.16.3" @@ -6221,7 +6251,8 @@ }, "sshpk": { "version": "1.13.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.0.tgz", + "integrity": "sha1-/yo+T9BEl1Vf7Zezmg/YL6+zozw=", "dev": true, "optional": true, "requires": { @@ -6238,7 +6269,8 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "dev": true, "optional": true } @@ -6246,7 +6278,8 @@ }, "string-width": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { "code-point-at": "1.1.0", @@ -6256,7 +6289,8 @@ }, "string_decoder": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz", + "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=", "dev": true, "requires": { "safe-buffer": "5.0.1" @@ -6264,13 +6298,15 @@ }, "stringstream": { "version": "0.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", "dev": true, "optional": true }, "strip-ansi": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { "ansi-regex": "2.1.1" @@ -6278,13 +6314,15 @@ }, "strip-json-comments": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true, "optional": true }, "tar": { "version": "2.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", "dev": true, "requires": { "block-stream": "0.0.9", @@ -6294,7 +6332,8 @@ }, "tar-pack": { "version": "3.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.4.0.tgz", + "integrity": "sha1-I74tf2cagzk3bL2wuP4/3r8xeYQ=", "dev": true, "optional": true, "requires": { @@ -6310,7 +6349,8 @@ }, "tough-cookie": { "version": "2.3.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", + "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", "dev": true, "optional": true, "requires": { @@ -6319,7 +6359,8 @@ }, "tunnel-agent": { "version": "0.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "dev": true, "optional": true, "requires": { @@ -6328,30 +6369,35 @@ }, "tweetnacl": { "version": "0.14.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", "dev": true, "optional": true }, "uid-number": { "version": "0.0.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", + "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=", "dev": true, "optional": true }, "util-deprecate": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true }, "uuid": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", + "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=", "dev": true, "optional": true }, "verror": { "version": "1.3.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", + "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=", "dev": true, "optional": true, "requires": { @@ -6360,7 +6406,8 @@ }, "wide-align": { "version": "1.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", + "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", "dev": true, "optional": true, "requires": { @@ -6369,7 +6416,8 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true } } @@ -6448,15 +6496,6 @@ "integrity": "sha1-szmUr0V6gRVwDUEPMXczy+egkEs=", "dev": true }, - "gaze": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.2.tgz", - "integrity": "sha1-hHIkZ3rbiHDWeSV+0ziP22HkAQU=", - "dev": true, - "requires": { - "globule": "1.2.0" - } - }, "geckodriver": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/geckodriver/-/geckodriver-1.2.0.tgz", @@ -6644,25 +6683,6 @@ "ternary": "1.0.0" } }, - "globule": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.0.tgz", - "integrity": "sha1-HcScaCLdnoovoAuiopUAboZkvQk=", - "dev": true, - "requires": { - "glob": "7.1.2", - "lodash": "4.17.4", - "minimatch": "3.0.4" - }, - "dependencies": { - "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", - "dev": true - } - } - }, "gonzales-pe": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.2.3.tgz", @@ -6906,26 +6926,6 @@ } } }, - "grunt-buster": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/grunt-buster/-/grunt-buster-0.4.2.tgz", - "integrity": "sha1-eRwcvIDEjria0mnG/palTlNoWRk=", - "dev": true, - "requires": { - "cross-spawn-async": "2.2.5", - "resolve-bin": "0.3.0", - "when": "3.7.8", - "which": "1.3.0" - }, - "dependencies": { - "when": { - "version": "3.7.8", - "resolved": "https://registry.npmjs.org/when/-/when-3.7.8.tgz", - "integrity": "sha1-xxMLan6gRpPoQs3J56Hyqjmjn4I=", - "dev": true - } - } - }, "grunt-contrib-clean": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clean-1.0.0.tgz", @@ -6944,17 +6944,6 @@ } } }, - "grunt-contrib-compress": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/grunt-contrib-compress/-/grunt-contrib-compress-0.5.3.tgz", - "integrity": "sha1-ujtbL/Q4xFMFeeaWLKuAaWWA6+0=", - "dev": true, - "requires": { - "archiver": "0.4.10", - "lazystream": "0.1.0", - "prettysize": "0.0.3" - } - }, "grunt-contrib-concat": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/grunt-contrib-concat/-/grunt-contrib-concat-1.0.1.tgz", @@ -7035,32 +7024,6 @@ } } }, - "grunt-contrib-watch": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-watch/-/grunt-contrib-watch-1.0.0.tgz", - "integrity": "sha1-hKGnodar0m7VaEE0lscxM+mQAY8=", - "dev": true, - "requires": { - "async": "1.5.2", - "gaze": "1.1.2", - "lodash": "3.10.1", - "tiny-lr": "0.2.1" - }, - "dependencies": { - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - }, - "lodash": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", - "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", - "dev": true - } - } - }, "grunt-exec": { "version": "0.4.7", "resolved": "https://registry.npmjs.org/grunt-exec/-/grunt-exec-0.4.7.tgz", @@ -7160,12 +7123,6 @@ } } }, - "grunt-line-remover": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/grunt-line-remover/-/grunt-line-remover-0.0.2.tgz", - "integrity": "sha1-OCIcxr64o2uCUnY4ddu2NIIh6i0=", - "dev": true - }, "grunt-markdown": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/grunt-markdown/-/grunt-markdown-0.7.0.tgz", @@ -7212,15 +7169,6 @@ "integrity": "sha1-252c5Z4v5J2id+nbwZXD4Rz7FsI=", "dev": true }, - "gruntify-eslint": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/gruntify-eslint/-/gruntify-eslint-4.0.0.tgz", - "integrity": "sha512-wEa2WjMGVDzQbq1QmOiDX51/CfaAIS5xx1oSKIjfWVLl/fYbV7PtfWsUhuaQrPIy1se4Crpg3kZFZndw02l16g==", - "dev": true, - "requires": { - "eslint": "4.13.1" - } - }, "gzip-size": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-3.0.0.tgz", @@ -8101,6 +8049,81 @@ "resolved": "https://registry.npmjs.org/jscrollpane/-/jscrollpane-2.0.22.tgz", "integrity": "sha1-WwMSK2A46FvUvYp4kZMvbRv+mAs=" }, + "jsdom": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-7.2.2.tgz", + "integrity": "sha1-QLQCdwwr2iNGkJa+6Rq2deOx/G4=", + "dev": true, + "optional": true, + "requires": { + "abab": "1.0.4", + "acorn": "2.7.0", + "acorn-globals": "1.0.9", + "cssom": "0.3.2", + "cssstyle": "0.2.37", + "escodegen": "1.9.0", + "nwmatcher": "1.4.3", + "parse5": "1.5.1", + "request": "2.83.0", + "sax": "1.2.4", + "symbol-tree": "3.2.2", + "tough-cookie": "2.3.3", + "webidl-conversions": "2.0.1", + "whatwg-url-compat": "0.6.5", + "xml-name-validator": "2.0.1" + }, + "dependencies": { + "acorn": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz", + "integrity": "sha1-q259nYhqrKiwhbwzEreaGYQz8Oc=", + "dev": true, + "optional": true + }, + "escodegen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz", + "integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==", + "dev": true, + "optional": true, + "requires": { + "esprima": "3.1.3", + "estraverse": "4.2.0", + "esutils": "2.0.2", + "optionator": "0.8.2", + "source-map": "0.5.7" + } + }, + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true, + "optional": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true, + "optional": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "optional": true + }, + "xml-name-validator": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz", + "integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU=", + "dev": true, + "optional": true + } + } + }, "jsesc": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", @@ -8328,29 +8351,12 @@ "labeled-stream-splicer": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.0.tgz", - "integrity": "sha1-pS4dE4AkwAuGscDJH2d5GLiuClk=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "isarray": "0.0.1", - "stream-splicer": "2.0.0" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - } - } - }, - "lazystream": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-0.1.0.tgz", - "integrity": "sha1-GyXWPHcqTCDwpe0KnXf0hLbhaSA=", + "integrity": "sha1-pS4dE4AkwAuGscDJH2d5GLiuClk=", "dev": true, "requires": { - "readable-stream": "1.0.34" + "inherits": "2.0.3", + "isarray": "0.0.1", + "stream-splicer": "2.0.0" }, "dependencies": { "isarray": { @@ -8358,27 +8364,15 @@ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", "dev": true - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "0.0.1", - "string_decoder": "0.10.31" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true } } }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "dev": true + }, "lcid": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", @@ -8453,12 +8447,6 @@ "astw": "2.2.0" } }, - "livereload-js": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.2.2.tgz", - "integrity": "sha1-bIclfmSKtHW8JOoldFftzB+NC8I=", - "dev": true - }, "load-json-file": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", @@ -8793,6 +8781,12 @@ "integrity": "sha1-fD2mL/yzDw9agKJWbKJORdigHzE=", "dev": true }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "dev": true + }, "longest-streak": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.2.tgz", @@ -9183,9 +9177,9 @@ } }, "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true }, "minimist-options": { @@ -9205,6 +9199,14 @@ "dev": true, "requires": { "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + } } }, "mkpath": { @@ -9331,9 +9333,9 @@ "dev": true }, "mori": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/mori/-/mori-0.2.1.tgz", - "integrity": "sha1-rrmoe5y/VWkoDH7GoRDaCImymLE=", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/mori/-/mori-0.3.2.tgz", + "integrity": "sha1-GlPaFlKH877wyrYjmMSTG+zoCj8=", "dev": true }, "mothership": { @@ -9358,14 +9360,35 @@ "dev": true }, "multi-glob": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/multi-glob/-/multi-glob-0.4.0.tgz", - "integrity": "sha1-GqnQhdljeX8Xr5JziEDthDqY0HA=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/multi-glob/-/multi-glob-1.0.1.tgz", + "integrity": "sha1-5n0qtEKdJ2BubrTbNQlK/JF4h1A=", "dev": true, "requires": { - "async": "0.2.10", - "glob": "7.1.2", - "lodash": "4.15.0" + "async": "1.5.2", + "glob": "5.0.15", + "lodash": "3.10.1" + }, + "dependencies": { + "glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", + "dev": true, + "requires": { + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "lodash": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", + "dev": true + } } }, "multimatch": { @@ -9398,9 +9421,9 @@ } }, "nan": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-1.0.0.tgz", - "integrity": "sha1-riT4hQgY1mL8q1rPfzuVv6oszzg=", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.8.0.tgz", + "integrity": "sha1-7XFfP+neArV6XmJS2QqWZ14fCFo=", "dev": true }, "natural-compare": { @@ -9702,6 +9725,13 @@ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true }, + "nwmatcher": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.3.tgz", + "integrity": "sha512-IKdSTiDWCarf2JTS5e9e2+5tPZGdkRJ79XjYV0pzK8Q9BpsFyBq1RGKxzs7Q8UBushGw7m6TzVKz6fcY99iSWw==", + "dev": true, + "optional": true + }, "oauth-sign": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", @@ -9784,10 +9814,16 @@ "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "dev": true, "requires": { - "minimist": "0.0.8", + "minimist": "0.0.10", "wordwrap": "0.0.3" }, "dependencies": { + "minimist": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", + "dev": true + }, "wordwrap": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", @@ -9996,12 +10032,6 @@ "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==", "dev": true }, - "paperboy": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/paperboy/-/paperboy-0.0.5.tgz", - "integrity": "sha1-D/NSBMUyKJ8BVrV3RW5vWB7TSLw=", - "dev": true - }, "parents": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", @@ -10065,6 +10095,13 @@ "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", "dev": true }, + "parse5": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz", + "integrity": "sha1-m387DeMr543CQBsXVzzK8Pb1nZQ=", + "dev": true, + "optional": true + }, "parseurl": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", @@ -10244,6 +10281,12 @@ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.3.tgz", "integrity": "sha1-WV4lHBNww6aLqyE20ONIuBBa3xM=", "dev": true + }, + "underscore": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz", + "integrity": "sha1-YaajIBBiKvoHljvzJSA88SI51gQ=", + "dev": true } } }, @@ -10546,9 +10589,9 @@ } }, "platform": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/platform/-/platform-1.0.0.tgz", - "integrity": "sha1-XMxFrd4M6iyCAWdcZX5wyf+HOkk=", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.4.tgz", + "integrity": "sha1-bw+xftqqSPIUQrOpdcBjEw8cPr0=", "dev": true }, "plur": { @@ -10573,12 +10616,12 @@ "dev": true }, "posix-argv-parser": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/posix-argv-parser/-/posix-argv-parser-1.0.2.tgz", - "integrity": "sha1-9D2zPmKpT4DZRsnezOvaAXbFvnY=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/posix-argv-parser/-/posix-argv-parser-2.0.0.tgz", + "integrity": "sha1-w4TbMZ029+O7VLyJ8PkQX/DWWl0=", "dev": true, "requires": { - "when": "https://github.com/cujojs/when/tarball/1.8.1" + "when": "3.7.8" } }, "postcss": { @@ -12817,12 +12860,6 @@ "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", "dev": true }, - "prettysize": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/prettysize/-/prettysize-0.0.3.tgz", - "integrity": "sha1-FK//amReWRpN3xxykZwjtBRhgaE=", - "dev": true - }, "private": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", @@ -13035,94 +13072,90 @@ "integrity": "sha1-AmMIGPmq5OyrJvAQP5jQYcF8WPM=" }, "ramp": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/ramp/-/ramp-1.0.6.tgz", - "integrity": "sha1-rNjALXP/e5HJ3ATGHbeQsjAZIm0=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ramp/-/ramp-2.0.2.tgz", + "integrity": "sha1-5069y/PnhpjNSlAz9b5vN+9cNVw=", "dev": true, "requires": { - "ejs": "0.8.8", - "faye": "0.8.11", - "mori": "0.2.1", + "ejs": "2.5.7", + "faye": "1.1.2", + "mori": "0.3.2", "node-uuid": "1.4.8", - "ramp-resources": "1.0.5", - "when": "2.2.1" + "ramp-resources": "2.0.2", + "when": "3.7.8" }, "dependencies": { - "ejs": { - "version": "0.8.8", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-0.8.8.tgz", - "integrity": "sha1-/9xW3MNdApJt1QrRNDm7xUBh1Zg=", - "dev": true + "csprng": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/csprng/-/csprng-0.1.2.tgz", + "integrity": "sha1-S8aPEvo2jSUqWYQcusqXSxirReI=", + "dev": true, + "requires": { + "sequin": "0.1.1" + } }, - "when": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/when/-/when-2.2.1.tgz", - "integrity": "sha1-sd75lAFzULgIf26adZarKDO9xxI=", - "dev": true + "faye": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/faye/-/faye-1.1.2.tgz", + "integrity": "sha1-195MlOO5FotMLCslTes9JktgroA=", + "dev": true, + "requires": { + "csprng": "0.1.2", + "faye-websocket": "0.11.1", + "tough-cookie": "2.3.3", + "tunnel-agent": "0.6.0" + } + }, + "tough-cookie": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", + "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", + "dev": true, + "requires": { + "punycode": "1.4.1" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } } } }, "ramp-resources": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/ramp-resources/-/ramp-resources-1.0.5.tgz", - "integrity": "sha1-yyq0pttIDqmx8956mXoxDuiUzG8=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ramp-resources/-/ramp-resources-2.0.2.tgz", + "integrity": "sha1-/C46MdJaL5Yup7yXy3GyvYbiy4Q=", "dev": true, "requires": { - "glob": "3.2.11", - "lodash": "0.5.2", + "glob": "5.0.15", + "lodash": "3.10.1", "mime": "1.6.0", - "minimatch": "0.1.5", - "when": "https://github.com/cujojs/when/tarball/1.3.0" + "minimatch": "3.0.4", + "when": "3.7.8" }, "dependencies": { "glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz", - "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=", + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", "dev": true, "requires": { + "inflight": "1.0.6", "inherits": "2.0.3", - "minimatch": "0.3.0" - }, - "dependencies": { - "minimatch": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz", - "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=", - "dev": true, - "requires": { - "lru-cache": "2.7.3", - "sigmund": "1.0.1" - } - } + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "lodash": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-0.5.2.tgz", - "integrity": "sha1-TIc/k73d6qB0AaZ1+OF97Vr5qCc=", - "dev": true - }, - "minimatch": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.1.5.tgz", - "integrity": "sha1-t2LzEgZsu/5QRipoNgv8nKDMsbk=", - "dev": true, - "requires": { - "lru-cache": "1.0.6" - }, - "dependencies": { - "lru-cache": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-1.0.6.tgz", - "integrity": "sha1-qlD5cEdCKsclQ72hd6nJ0BjZhFI=", - "dev": true - } - } - }, - "when": { - "version": "https://github.com/cujojs/when/tarball/1.3.0", - "integrity": "sha1-iZ6Im5KeUtrodC+Ts9SzWoe+PXs=", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", "dev": true } } @@ -13433,21 +13466,43 @@ } } }, + "ref": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ref/-/ref-1.3.5.tgz", + "integrity": "sha512-2cBCniTtxcGUjDpvFfVpw323a83/0RLSGJJY5l5lcomZWhYpU2cuLdsvYqMixvsdLJ9+sTdzEkju8J8ZHDM2nA==", + "dev": true, + "requires": { + "bindings": "1.2.1", + "debug": "2.6.9", + "nan": "2.8.0" + } + }, + "ref-struct": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ref-struct/-/ref-struct-1.1.0.tgz", + "integrity": "sha1-XV7mWtQc78Olxf60BYcmHkee3BM=", + "dev": true, + "optional": true, + "requires": { + "debug": "2.6.9", + "ref": "1.3.5" + } + }, "referee": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/referee/-/referee-1.0.3.tgz", - "integrity": "sha1-wOt5ux/dwbQoinhmB20b53nmRvM=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/referee/-/referee-1.2.0.tgz", + "integrity": "sha1-eneb7llVx4r/fYjAFhxaH0VFjJA=", "dev": true, "requires": { - "bane": "1.0.0", - "lodash": "1.0.2", + "bane": "1.1.2", + "lodash": "3.10.1", "samsam": "1.1.2" }, "dependencies": { "lodash": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", - "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", "dev": true } } @@ -13467,7 +13522,8 @@ "regenerator-runtime": { "version": "0.9.6", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.9.6.tgz", - "integrity": "sha1-0z65XQ0gAaS+OWWXB8UbDLcc4Ck=" + "integrity": "sha1-0z65XQ0gAaS+OWWXB8UbDLcc4Ck=", + "dev": true }, "regenerator-transform": { "version": "0.10.1", @@ -13765,23 +13821,6 @@ "path-parse": "1.0.5" } }, - "resolve-bin": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/resolve-bin/-/resolve-bin-0.3.0.tgz", - "integrity": "sha1-eY+1toraFbgPkGzjnVE0OhdWmqE=", - "dev": true, - "requires": { - "find-parent-dir": "0.1.0" - }, - "dependencies": { - "find-parent-dir": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/find-parent-dir/-/find-parent-dir-0.1.0.tgz", - "integrity": "sha1-EBuOyk+ye5QmMYei+txWuVyqh9Q=", - "dev": true - } - } - }, "resolve-dir": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-0.1.1.tgz", @@ -13822,6 +13861,15 @@ "signal-exit": "3.0.2" } }, + "right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "dev": true, + "requires": { + "align-text": "0.1.4" + } + }, "rimraf": { "version": "2.5.4", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.4.tgz", @@ -13850,6 +13898,12 @@ "is-promise": "2.1.0" } }, + "run-script-os": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/run-script-os/-/run-script-os-1.0.2.tgz", + "integrity": "sha1-mAMz9vakFMFebwLFh5FkgM3ilk8=", + "dev": true + }, "rw": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", @@ -13905,6 +13959,12 @@ "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", "dev": true }, + "semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", + "dev": true + }, "send": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/send/-/send-0.1.0.tgz", @@ -13925,6 +13985,12 @@ } } }, + "sequin": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/sequin/-/sequin-0.1.1.tgz", + "integrity": "sha1-XC04nWajg3NOqvvEXt6ywcsb5wE=", + "dev": true + }, "serve-static": { "version": "1.12.1", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.12.1.tgz", @@ -15774,6 +15840,13 @@ } } }, + "symbol-tree": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz", + "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=", + "dev": true, + "optional": true + }, "sync-request": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/sync-request/-/sync-request-4.1.0.tgz", @@ -15981,52 +16054,6 @@ "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.0.2.tgz", "integrity": "sha512-2NM0auVBGft5tee/OxP4PI3d8WItkDM+fPnaRAVo6xTDI2knbz9eC5ArWGqtGlYqiH3RU5yMpdyTTO7MguC4ow==" }, - "tiny-lr": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-0.2.1.tgz", - "integrity": "sha1-s/26gC5dVqM8L28QeUsy5Hescp0=", - "dev": true, - "requires": { - "body-parser": "1.14.2", - "debug": "2.2.0", - "faye-websocket": "0.10.0", - "livereload-js": "2.2.2", - "parseurl": "1.3.2", - "qs": "5.1.0" - }, - "dependencies": { - "debug": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "dev": true, - "requires": { - "ms": "0.7.1" - } - }, - "faye-websocket": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", - "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", - "dev": true, - "requires": { - "websocket-driver": "0.7.0" - } - }, - "ms": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", - "dev": true - }, - "qs": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz", - "integrity": "sha1-TZMuXH6kEcynajEtOaYGIA/VDNk=", - "dev": true - } - } - }, "tinycolor": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/tinycolor/-/tinycolor-0.0.1.tgz", @@ -16069,11 +16096,17 @@ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", "dev": true, - "optional": true, "requires": { "punycode": "1.4.1" } }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", + "dev": true, + "optional": true + }, "transformify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/transformify/-/transformify-0.1.2.tgz", @@ -16156,7 +16189,6 @@ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "dev": true, - "optional": true, "requires": { "safe-buffer": "5.1.1" } @@ -16210,6 +16242,13 @@ "integrity": "sha1-tULCx29477NLIAsgF3Y0Mw/3ArY=", "dev": true }, + "uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "dev": true, + "optional": true + }, "uglifyify": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/uglifyify/-/uglifyify-4.0.5.tgz", @@ -16260,9 +16299,9 @@ "dev": true }, "underscore": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz", - "integrity": "sha1-YaajIBBiKvoHljvzJSA88SI51gQ=", + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", + "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=", "dev": true }, "underscore.string": { @@ -16541,6 +16580,13 @@ "xtend": "4.0.1" } }, + "webidl-conversions": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-2.0.1.tgz", + "integrity": "sha1-O/glj30xjHRDw28uFpQCoaZwNQY=", + "dev": true, + "optional": true + }, "websocket-driver": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz", @@ -16562,9 +16608,20 @@ "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz", "integrity": "sha1-nITsLc9oGH/wC8ZOEnS0QhduHIQ=" }, + "whatwg-url-compat": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/whatwg-url-compat/-/whatwg-url-compat-0.6.5.tgz", + "integrity": "sha1-AImBEa9om7CXVBzVpFymyHmERb8=", + "dev": true, + "optional": true, + "requires": { + "tr46": "0.0.3" + } + }, "when": { - "version": "https://github.com/cujojs/when/tarball/1.8.1", - "integrity": "sha1-sbqqctx3tPjCZ7yy/r5mjS/ArYc=", + "version": "3.7.8", + "resolved": "https://registry.npmjs.org/when/-/when-3.7.8.tgz", + "integrity": "sha1-xxMLan6gRpPoQs3J56Hyqjmjn4I=", "dev": true }, "whet.extend": { @@ -16688,6 +16745,12 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-2.1.0.tgz", "integrity": "sha1-0SG7roYNmZKj1Re6lvVliOR8Z4E=", "dev": true + }, + "nan": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-1.0.0.tgz", + "integrity": "sha1-riT4hQgY1mL8q1rPfzuVv6oszzg=", + "dev": true } } }, diff --git a/package.json b/package.json index 9a606fd333..9ac0af628c 100644 --- a/package.json +++ b/package.json @@ -15,10 +15,15 @@ "scripts": { "preinstall": "node version-check.js", "start": "node ./bin/www", - "test": "grunt test lint", + "test": "npm run lint && run-p test:server test:run", + "test:server": "buster-server -c", + "test:run": "sleep 2 && buster-test && npm run test:end", + "test:end": "run-script-os", + "test:end:darwin:linux": "pkill -f buster-server", + "test:end:win32": "tskill node", "lint": "run-s lint:*", - "lint:css": "grunt stylelint", - "lint:js": "grunt eslint", + "lint:css": "stylelint ./web/css/**/*.css", + "lint:js": "eslint .", "e2e": "run-s --print-name --continue-on-error --silent e2e:*", "e2e:chrome": "nightwatch -e chrome", "e2e:firefox": "nightwatch -e firefox --skiptags wip", @@ -26,12 +31,14 @@ "report": "node e2e/create-report.js", "build": "run-s --print-name build:* && grunt", "build:css": "node ./tasks/buildCSS", - "build:js": "node ./tasks/buildJS" + "build:js": "node ./tasks/buildJS", + "build:tests": "node ./tasks/buildJS --tests" }, "devDependencies": { "autoprefixer": "7.1.1", "babel-core": "^6.26.0", "babel-eslint": "^7.2.3", + "babel-polyfill": "^6.16.0", "babel-preset-env": "^1.6.1", "babelify": "^7.3.0", "browserify": "^14.4.0", @@ -39,11 +46,12 @@ "browserify-shim": "^3.8.14", "browserstack-capabilities": "^0.4.0", "browserstack-local": "^1.3.0", - "buster": "0.7.12", + "buster": "github:busterjs/buster#v0.8.0", "chromedriver": "2.25.1", "cssnano": "^3.10.0", "cucumber": "^3.0.2", "cucumber-html-reporter": "^3.0.4", + "eslint": "^4.13.0", "eslint-config-standard": "^10.2.1", "eslint-plugin-import": "^2.8.0", "eslint-plugin-node": "^5.2.1", @@ -52,21 +60,17 @@ "express": "4.15.2", "geckodriver": "1.2.0", "grunt": "0.4.x", - "grunt-buster": "0.4.x", "grunt-contrib-clean": "1.0.x", - "grunt-contrib-compress": "0.5.x", "grunt-contrib-concat": "1.0.x", "grunt-contrib-copy": "1.0.x", - "grunt-contrib-watch": "^1.0.0", "grunt-exec": "0.4.x", "grunt-git-rev-parse": "0.1.x", - "grunt-line-remover": "0.0.x", "grunt-markdown": "0.7.x", "grunt-minjson": "0.4.x", "grunt-mkdir": "0.1.x", "grunt-rename": "0.1.x", "grunt-text-replace": "0.4.x", - "gruntify-eslint": "^4.0.0", + "minimist": "^1.2.0", "moment": "2.13.x", "nightwatch": "^0.9.16", "nightwatch-cucumber": "^8.2.10", @@ -75,14 +79,15 @@ "postcss-cli": "^4.1.1", "postcss-import": "^11.0.0", "postcss-url": "^7.2.1", + "run-script-os": "^1.0.2", "selenium-server-standalone-jar": "3.0.1", "stylefmt": "^6.0.0", "stylelint": "^8.0.0", "uglifyify": "^4.0.5", + "underscore": "^1.8.3", "watchify": "^3.9.0" }, "dependencies": { - "babel-polyfill": "6.16.0", "bluebird": "3.4.6", "cachai": "^1.0.2", "clipboard": "^1.7.1", diff --git a/tasks/buildJS.js b/tasks/buildJS.js index cfd10ba43d..d208f16d57 100644 --- a/tasks/buildJS.js +++ b/tasks/buildJS.js @@ -1,12 +1,15 @@ #!/usr/bin/env node const fs = require('fs'); const browserify = require('browserify'); -const watchify = require('watchify'); +// const watchify = require('watchify'); +const minimist = require('minimist'); +const argv = minimist(process.argv.slice(2)); const isDebug = process.env.NODE_ENV === 'development'; +const isTest = argv.tests; const outputDir = './web/build/'; -const entryPoint = './web/js/main.js'; -const outputPath = outputDir + 'wv.js'; +const entryPoint = isTest ? './test/main.js' : './web/js/main.js'; +const outputPath = outputDir + (isTest ? 'wv-test-bundle.js' : 'wv.js'); var bundler = browserify(entryPoint, { debug: isDebug, // Include source maps (makes bundle size larger) diff --git a/test/wv.brand-test.js b/test/brand-spec.js similarity index 100% rename from test/wv.brand-test.js rename to test/brand-spec.js diff --git a/test/date/wv.date-test.js b/test/date/date-spec.js similarity index 100% rename from test/date/wv.date-test.js rename to test/date/date-spec.js diff --git a/test/date/wv.date.model-test.js b/test/date/model-spec.js similarity index 100% rename from test/date/wv.date.model-test.js rename to test/date/model-spec.js diff --git a/test/fixtures.js b/test/fixtures.js index 3a33003545..d6252cf2a1 100644 --- a/test/fixtures.js +++ b/test/fixtures.js @@ -1,6 +1,8 @@ -// FIXME: OL3 -proj4.defs('EPSG:3413', '+title=WGS 84 / NSIDC Sea Ice Polar Stereographic North +proj=stere +lat_0=90 +lat_ts=70 +lon_0=-45 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs'); -proj4.defs('EPSG:3031', '+title=WGS 84 / Antarctic Polar Stereographic +proj=stere +lat_0=-90 +lat_ts=-71 +lon_0=0 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs'); +import { dateModel } from '../web/js/date/model'; +import { layersModel } from '../web/js/layers/model'; +import { mapModel } from '../web/js/map/model'; +import { palettesModel } from '../web/js/palettes/model'; +import { projectionModel } from '../web/js/projection/model'; var fixtures = { red: 'ff0000ff', @@ -148,11 +150,13 @@ fixtures.config = function () { fixtures.models = function (config) { var models = {}; - models.date = wv.date.model(config); - models.proj = wv.proj.model(config); - models.layers = wv.layers.model(models, config); - models.palettes = wv.palettes.model(models, config); - models.map = wv.map.model(models, config); + models.date = dateModel(config); + models.proj = projectionModel(config); + models.layers = layersModel(models, config); + models.palettes = palettesModel(models, config); + models.map = mapModel(models, config); return models; }; + +export default fixtures; diff --git a/test/layers/wv.layers.model.dateRange-test.js b/test/layers/dateRange-spec.js similarity index 100% rename from test/layers/wv.layers.model.dateRange-test.js rename to test/layers/dateRange-spec.js diff --git a/test/layers/wv.layers-test.js b/test/layers/layers-spec.js similarity index 100% rename from test/layers/wv.layers-test.js rename to test/layers/layers-spec.js diff --git a/test/layers/wv.layers.model-test.js b/test/layers/model-spec.js similarity index 100% rename from test/layers/wv.layers.model-test.js rename to test/layers/model-spec.js diff --git a/test/link/wv.link.model-test.js b/test/link/model-spec.js similarity index 100% rename from test/link/wv.link.model-test.js rename to test/link/model-spec.js diff --git a/test/main.js b/test/main.js new file mode 100644 index 0000000000..e8aa437076 --- /dev/null +++ b/test/main.js @@ -0,0 +1,58 @@ +// This file is an entry point used to build a testable bundle of the WV core +// It exposes some internal methods on a global `wv` var for testing purposes +import underscore from 'underscore'; +import 'babel-polyfill'; // Polyfill fixes a bug in Phantom 2.1.x +import brand from '../web/js/brand'; +import { parse as dateParser } from '../web/js/date/date'; +import { dateModel } from '../web/js/date/model'; +import { parse as layerParser } from '../web/js/layers/layers'; +import { layersModel } from '../web/js/layers/model'; +import { linkModel } from '../web/js/link/model'; +import { parse as mapParser } from '../web/js/map/map'; +import { mapModel } from '../web/js/map/model'; +import { MapRunningData } from '../web/js/map/runningdata'; +import palettes from '../web/js/palettes/palettes'; +import { palettesModel } from '../web/js/palettes/model'; +import { parse as projectionParser } from '../web/js/projection/projection'; +import { projectionModel } from '../web/js/projection/model'; +import { projectionChange } from '../web/js/projection/change'; +import ui from '../web/js/ui/ui'; +import uiIndicator from '../web/js/ui/indicator'; +import uiMouse from '../web/js/ui/mouse'; +import util from '../web/js/util/util'; +import fixtures from './fixtures.js'; + +palettes.model = palettesModel; +ui.indicator = uiIndicator; +ui.mouse = uiMouse; + +window.wv = { + brand: brand, + date: { + parse: dateParser, + model: dateModel + }, + layers: { + parse: layerParser, + model: layersModel + }, + link: { + model: linkModel + }, + map: { + parse: mapParser, + model: mapModel, + runningdata: MapRunningData + }, + palettes: palettes, + proj: { + parse: projectionParser, + model: projectionModel, + change: projectionChange + }, + ui: ui, + util: util +}; + +window.fixtures = fixtures; +window._ = underscore; diff --git a/test/map/wv.map-test.js b/test/map/map-spec.js similarity index 100% rename from test/map/wv.map-test.js rename to test/map/map-spec.js diff --git a/test/map/wv.map.model-test.js b/test/map/model-spec.js similarity index 100% rename from test/map/wv.map.model-test.js rename to test/map/model-spec.js diff --git a/test/map/wv.map.runningdata-test.js b/test/map/runningdata-spec.js similarity index 97% rename from test/map/wv.map.runningdata-test.js rename to test/map/runningdata-spec.js index 437444236c..148a0b1651 100644 --- a/test/map/wv.map.runningdata-test.js +++ b/test/map/runningdata-spec.js @@ -3,7 +3,7 @@ buster.testCase('wv.map.runningdata', { errors: null, setUp: function () { - models = { + var models = { layers: { events: { on: this.stub() diff --git a/test/palettes/wv.palettes.model-test.js b/test/palettes/model-spec.js similarity index 100% rename from test/palettes/wv.palettes.model-test.js rename to test/palettes/model-spec.js diff --git a/test/palettes/wv.palettes-test.js b/test/palettes/palettes-spec.js similarity index 100% rename from test/palettes/wv.palettes-test.js rename to test/palettes/palettes-spec.js diff --git a/test/proj/wv.proj.change-test.js b/test/projection/change-spec.js similarity index 100% rename from test/proj/wv.proj.change-test.js rename to test/projection/change-spec.js diff --git a/test/proj/wv.proj.model-test.js b/test/projection/model-spec.js similarity index 100% rename from test/proj/wv.proj.model-test.js rename to test/projection/model-spec.js diff --git a/test/proj/wv.proj-test.js b/test/projection/projection-spec.js similarity index 100% rename from test/proj/wv.proj-test.js rename to test/projection/projection-spec.js diff --git a/test/ui/wv.ui.indicator-test.js b/test/ui/indicator-spec.js similarity index 100% rename from test/ui/wv.ui.indicator-test.js rename to test/ui/indicator-spec.js diff --git a/test/ui/wv.ui.mouse-test.js b/test/ui/mouse-spec.js similarity index 100% rename from test/ui/wv.ui.mouse-test.js rename to test/ui/mouse-spec.js diff --git a/test/util/wv.util.browser-test.js b/test/util/browser-spec.js similarity index 88% rename from test/util/wv.util.browser-test.js rename to test/util/browser-spec.js index adfb5827b8..32a2b1ba4a 100644 --- a/test/util/wv.util.browser-test.js +++ b/test/util/browser-spec.js @@ -106,36 +106,28 @@ buster.testCase('wv.util.browser', { */ 'Large device': function () { - this.stub(window, '$') - .returns({ - width: this.stub() - .returns(1000), - height: this.stub() - .returns(1000) - }); + var dimensions = this.stub( + wv.util.browser.tests, + 'getWindowDimensions' + ); + dimensions.returns([1000, 1000]); buster.refute(wv.util.browser.tests.small()); buster.refute(wv.util.browser.tests.constrained()); }, - 'Small device': function () { - this.stub(window, '$') - .returns({ - width: this.stub() - .returns(200), - height: this.stub() - .returns(200) - }); + var dimensions = this.stub( + wv.util.browser.tests, + 'getWindowDimensions' + ); + dimensions.returns([200, 200]); buster.assert(wv.util.browser.tests.small()); }, - 'Constrained device, height': function () { - this.stub(window, '$') - .returns({ - width: this.stub() - .returns(1000), - height: this.stub() - .returns(300) - }); + var dimensions = this.stub( + wv.util.browser.tests, + 'getWindowDimensions' + ); + dimensions.returns([1000, 300]); buster.assert(wv.util.browser.tests.constrained()); } }); diff --git a/test/util/wv.util.events-test.js b/test/util/events-spec.js similarity index 100% rename from test/util/wv.util.events-test.js rename to test/util/events-spec.js diff --git a/test/util/wv.util-test.js b/test/util/util-spec.js similarity index 100% rename from test/util/wv.util-test.js rename to test/util/util-spec.js diff --git a/web/css/layers.modal.css b/web/css/layers.modal.css index bea1711d07..1b791d5a0e 100644 --- a/web/css/layers.modal.css +++ b/web/css/layers.modal.css @@ -518,7 +518,8 @@ line-height: 20px; } -.layers-all-header.has-checkbox.checked::before {color: white; +.layers-all-header.has-checkbox.checked::before { + color: #fff; content: '\2713'; background-color: #d54f21; } diff --git a/web/js/brand.js b/web/js/brand.js index fddfacf6e0..c4916aa8da 100644 --- a/web/js/brand.js +++ b/web/js/brand.js @@ -1,4 +1,4 @@ -import loIndexOf from 'lodash/indexof'; +import loIndexOf from 'lodash/indexOf'; /** * @class wv.brand * @static diff --git a/web/js/main.js b/web/js/main.js index f45b19f828..31a4fddf0b 100644 --- a/web/js/main.js +++ b/web/js/main.js @@ -30,7 +30,7 @@ import {parse as mapParser} from './map/map'; import {mapModel} from './map/model'; import {mapui} from './map/ui'; import {mapRotate} from './map/rotation'; -import {mapRunningData} from './map/runningdata'; +import {MapRunningData} from './map/runningdata'; import {mapLayerBuilder} from './map/layerbuilder'; import {mapDatelineBuilder} from './map/datelinebuilder'; import {mapPrecacheTile} from './map/precachetile'; @@ -200,7 +200,7 @@ window.onload = () => { // HACK: Map needs to be created before the data download model var mapComponents = { Rotation: mapRotate, - Runningdata: mapRunningData, + Runningdata: MapRunningData, Layerbuilder: mapLayerBuilder, Dateline: mapDatelineBuilder, Precache: mapPrecacheTile diff --git a/web/js/map/ui.js b/web/js/map/ui.js index f4ffc872ac..2c7363f598 100644 --- a/web/js/map/ui.js +++ b/web/js/map/ui.js @@ -885,7 +885,7 @@ export function mapui(models, config) { var isDataTabActive = (typeof models.data !== 'undefined' && models.data.active); var isMapAnimating = (typeof models.anim !== 'undefined' && models.anim.rangeState.playing); if (isEventsTabActive || isDataTabActive || isMapAnimating) return; - + dataRunner.newPoint(pixels, map); } $(map.getViewport()) diff --git a/web/js/palettes/palettes.js b/web/js/palettes/palettes.js index 8594a9312d..7795069428 100644 --- a/web/js/palettes/palettes.js +++ b/web/js/palettes/palettes.js @@ -138,7 +138,7 @@ export default (function (self) { // Only for permalink 1.1 support self.parse = function (state, errors, config) { if (state.palettes) { - if (!palettes.supported) { + if (!self.supported) { // FIXME: This should go in errors delete state.palettes; wvui.notify('The custom palette feature is not supported ' + diff --git a/web/js/util/browser.js b/web/js/util/browser.js index 090a38bb4b..983d56d016 100644 --- a/web/js/util/browser.js +++ b/web/js/util/browser.js @@ -194,13 +194,15 @@ export default (function () { }; self.tests.small = function () { - return $(window) - .width() < self.mobileWidth; + return self.tests.getWindowDimensions()[0] < self.mobileWidth; + }; + + self.tests.getWindowDimensions = function () { + return [$(window).width(), $(window).height()]; }; self.tests.constrained = function () { - return $(window) - .height() < self.constrainedHeight; + return self.tests.getWindowDimensions()[1] < self.constrainedHeight; }; self.tests.history = function () {