From c443f54e01c789e5b8a57db136201acad9917dc2 Mon Sep 17 00:00:00 2001 From: RainLoop Team Date: Thu, 26 May 2016 01:38:32 +0300 Subject: [PATCH] Webpack2 (first look) Small fixes --- dev/View/Popup/ComposeOpenPgp.js | 3 - dev/View/Popup/NewOpenPgpKey.js | 10 +- dev/boot.jsx | 18 +- dev/common.jsx | 4 +- gulpfile.js | 14 +- npm-shrinkwrap.json | 1704 ++++------- package.json | 19 +- vendors/Q/.coverignore | 1 - vendors/Q/.jshintrc | 27 - vendors/Q/.mailmap | 2 - vendors/Q/.travis.yml | 5 - vendors/Q/CHANGES.md | 762 ----- vendors/Q/CONTRIBUTING.md | 40 - vendors/Q/Gruntfile.js | 16 - vendors/Q/LICENSE | 18 - vendors/Q/README.md | 869 ------ vendors/Q/VERSIONS.md | 18 - vendors/Q/benchmark/compare-with-callbacks.js | 71 - vendors/Q/benchmark/scenarios.js | 36 - vendors/Q/design/README.js | 1026 ------- vendors/Q/design/q0.js | 22 - vendors/Q/design/q1.js | 26 - vendors/Q/design/q2.js | 33 - vendors/Q/design/q3.js | 30 - vendors/Q/design/q4.js | 48 - vendors/Q/design/q5.js | 56 - vendors/Q/design/q6.js | 64 - vendors/Q/design/q7.js | 126 - vendors/Q/examples/all.js | 21 - vendors/Q/examples/async-generators/0.html | 36 - .../Q/examples/async-generators/1-return.js | 19 - .../async-generators/2-error-propagation.js | 21 - .../Q/examples/async-generators/3-spawn.js | 21 - .../async-generators/4-flow-control.js | 42 - vendors/Q/examples/async-generators/README.md | 66 - vendors/Q/package.json | 79 - vendors/Q/q.js | 1937 ------------ vendors/Q/q.min.js | 2 - vendors/Q/q.png | Bin 34119 -> 0 bytes vendors/Q/q.svg | 114 - vendors/Q/queue.js | 35 - vendors/Q/ref_send.md | 26 - vendors/Q/spec/aplus-adapter.js | 15 - vendors/Q/spec/lib/jasmine-1.2.0/MIT.LICENSE | 20 - .../Q/spec/lib/jasmine-1.2.0/jasmine-html.js | 616 ---- vendors/Q/spec/lib/jasmine-1.2.0/jasmine.css | 81 - vendors/Q/spec/lib/jasmine-1.2.0/jasmine.js | 2529 ---------------- vendors/Q/spec/lib/jasmine-promise.js | 91 - vendors/Q/spec/q-spec.html | 52 - vendors/Q/spec/q-spec.js | 2611 ----------------- vendors/Q/spec/queue-spec.js | 180 -- vendors/es6-promise-polyfill/.gitignore | 2 - vendors/es6-promise-polyfill/.npmignore | 3 - vendors/es6-promise-polyfill/.travis.yml | 6 - vendors/es6-promise-polyfill/CHANGELOG.md | 18 - vendors/es6-promise-polyfill/LICENSE | 22 - vendors/es6-promise-polyfill/README.md | 88 - vendors/es6-promise-polyfill/bower.json | 11 - vendors/es6-promise-polyfill/package.json | 27 - vendors/es6-promise-polyfill/promise.js | 346 --- vendors/es6-promise-polyfill/promise.min.js | 6 - .../es6-promise-polyfill/test/test-adapter.js | 22 - vendors/labjs/LAB-debug.min.js | 2 - vendors/labjs/LAB.js | 5 - vendors/labjs/LAB.min.js | 2 - vendors/labjs/LAB.src.js | 514 ---- vendors/labjs/README.md | 100 - vendors/labjs/fLAB.src.js | 191 -- webpack.config.js | 26 +- 69 files changed, 683 insertions(+), 14390 deletions(-) delete mode 100644 vendors/Q/.coverignore delete mode 100644 vendors/Q/.jshintrc delete mode 100644 vendors/Q/.mailmap delete mode 100644 vendors/Q/.travis.yml delete mode 100644 vendors/Q/CHANGES.md delete mode 100644 vendors/Q/CONTRIBUTING.md delete mode 100644 vendors/Q/Gruntfile.js delete mode 100644 vendors/Q/LICENSE delete mode 100644 vendors/Q/README.md delete mode 100644 vendors/Q/VERSIONS.md delete mode 100644 vendors/Q/benchmark/compare-with-callbacks.js delete mode 100644 vendors/Q/benchmark/scenarios.js delete mode 100644 vendors/Q/design/README.js delete mode 100644 vendors/Q/design/q0.js delete mode 100644 vendors/Q/design/q1.js delete mode 100644 vendors/Q/design/q2.js delete mode 100644 vendors/Q/design/q3.js delete mode 100644 vendors/Q/design/q4.js delete mode 100644 vendors/Q/design/q5.js delete mode 100644 vendors/Q/design/q6.js delete mode 100644 vendors/Q/design/q7.js delete mode 100644 vendors/Q/examples/all.js delete mode 100644 vendors/Q/examples/async-generators/0.html delete mode 100644 vendors/Q/examples/async-generators/1-return.js delete mode 100644 vendors/Q/examples/async-generators/2-error-propagation.js delete mode 100644 vendors/Q/examples/async-generators/3-spawn.js delete mode 100644 vendors/Q/examples/async-generators/4-flow-control.js delete mode 100644 vendors/Q/examples/async-generators/README.md delete mode 100644 vendors/Q/package.json delete mode 100644 vendors/Q/q.js delete mode 100644 vendors/Q/q.min.js delete mode 100644 vendors/Q/q.png delete mode 100644 vendors/Q/q.svg delete mode 100644 vendors/Q/queue.js delete mode 100644 vendors/Q/ref_send.md delete mode 100644 vendors/Q/spec/aplus-adapter.js delete mode 100644 vendors/Q/spec/lib/jasmine-1.2.0/MIT.LICENSE delete mode 100644 vendors/Q/spec/lib/jasmine-1.2.0/jasmine-html.js delete mode 100644 vendors/Q/spec/lib/jasmine-1.2.0/jasmine.css delete mode 100644 vendors/Q/spec/lib/jasmine-1.2.0/jasmine.js delete mode 100644 vendors/Q/spec/lib/jasmine-promise.js delete mode 100644 vendors/Q/spec/q-spec.html delete mode 100644 vendors/Q/spec/q-spec.js delete mode 100644 vendors/Q/spec/queue-spec.js delete mode 100644 vendors/es6-promise-polyfill/.gitignore delete mode 100644 vendors/es6-promise-polyfill/.npmignore delete mode 100644 vendors/es6-promise-polyfill/.travis.yml delete mode 100644 vendors/es6-promise-polyfill/CHANGELOG.md delete mode 100644 vendors/es6-promise-polyfill/LICENSE delete mode 100644 vendors/es6-promise-polyfill/README.md delete mode 100644 vendors/es6-promise-polyfill/bower.json delete mode 100644 vendors/es6-promise-polyfill/package.json delete mode 100644 vendors/es6-promise-polyfill/promise.js delete mode 100644 vendors/es6-promise-polyfill/promise.min.js delete mode 100644 vendors/es6-promise-polyfill/test/test-adapter.js delete mode 100644 vendors/labjs/LAB-debug.min.js delete mode 100644 vendors/labjs/LAB.js delete mode 100644 vendors/labjs/LAB.min.js delete mode 100644 vendors/labjs/LAB.src.js delete mode 100644 vendors/labjs/README.md delete mode 100644 vendors/labjs/fLAB.src.js diff --git a/dev/View/Popup/ComposeOpenPgp.js b/dev/View/Popup/ComposeOpenPgp.js index ad9721b3f..c59fb0e2f 100644 --- a/dev/View/Popup/ComposeOpenPgp.js +++ b/dev/View/Popup/ComposeOpenPgp.js @@ -184,7 +184,6 @@ { if (oPrivateKey && 0 === aPublicKeys.length) { -// oPromise = PgpStore.openpgp.signClearMessage([oPrivateKey], self.text()); // 1.2.0 oPromise = PgpStore.openpgp.sign({ data: self.text(), privateKeys: [oPrivateKey] @@ -192,7 +191,6 @@ } else if (oPrivateKey && 0 < aPublicKeys.length) { -// oPromise = PgpStore.openpgp.signAndEncryptMessage(aPublicKeys, oPrivateKey, self.text()); // 1.2.0 oPromise = PgpStore.openpgp.encrypt({ data: self.text(), publicKeys: aPublicKeys, @@ -201,7 +199,6 @@ } else if (!oPrivateKey && 0 < aPublicKeys.length) { -// oPromise = PgpStore.openpgp.encryptMessage(aPublicKeys, self.text()); // 1.2.0 oPromise = PgpStore.openpgp.encrypt({ data: self.text(), publicKeys: aPublicKeys diff --git a/dev/View/Popup/NewOpenPgpKey.js b/dev/View/Popup/NewOpenPgpKey.js index 263b13de7..aacf12f34 100644 --- a/dev/View/Popup/NewOpenPgpKey.js +++ b/dev/View/Popup/NewOpenPgpKey.js @@ -41,7 +41,7 @@ var self = this, - oUserIds = {}, + oUserId = {}, oOpenpgpKeyring = PgpStore.openpgpKeyring ; @@ -51,10 +51,10 @@ return false; } - oUserIds['email'] = this.email(); + oUserId['email'] = this.email(); if ('' !== this.name()) { - oUserIds['name'] = this.name(); + oUserId['name'] = this.name(); } this.submitRequest(true); @@ -65,8 +65,8 @@ try { - mPromise = PgpStore.openpgp.generateKeyPair({ - 'userId': oUserIds, + mPromise = PgpStore.openpgp.generateKey({ + 'userIds': [oUserId], 'numBits': Utils.pInt(self.keyBitLength()), 'passphrase': Utils.trim(self.password()) }); diff --git a/dev/boot.jsx b/dev/boot.jsx index b09d8223e..d12ed58b8 100644 --- a/dev/boot.jsx +++ b/dev/boot.jsx @@ -1,25 +1,27 @@ import window from 'window'; + import {Promise} from 'es6-promise-polyfill/promise.js'; -import {progressJs} from 'progress.js/src/progress.js'; -import jassl from 'jassl'; +import {jassl} from 'jassl'; +import {progressJs} from '../vendors/progress.js/src/progress.js'; window.Promise = window.Promise || Promise; window.progressJs = window.progressJs || progressJs(); window.jassl = jassl; window.progressJs.onbeforeend(() => { - if (window.$) + const _$ = window.$; + if (_$) { - window.$('.progressjs-container').hide(); + _$('.progressjs-container').hide(); window.setTimeout(() => { - window.$('.progressjs-container').remove(); - }, 100); + _$('.progressjs-container').remove(); + }, 200); } }); -require('json2/json2.js'); -require('modernizr/modernizr-custom.js'); +require('../vendors/json2/json2.js'); +require('../vendors/modernizr/modernizr-custom.js'); require('Common/Booter.jsx'); diff --git a/dev/common.jsx b/dev/common.jsx index 9ca1d48e9..9cb888c82 100644 --- a/dev/common.jsx +++ b/dev/common.jsx @@ -3,8 +3,8 @@ import window from 'window'; import $ from '$'; import JSON from 'JSON'; import _ from '_'; -import Q from 'Q'; +import Promise from 'Promise'; import moment from 'moment'; import key from 'key'; -export {window, $, JSON, _, Q, moment, key}; +export {window, $, JSON, _, Promise, moment, key}; diff --git a/gulpfile.js b/gulpfile.js index 29488ba28..53b20168b 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -181,7 +181,6 @@ cfg.paths.js = { 'vendors/jquery-wakeup/jquery.wakeup.min.js', 'vendors/jquery-letterfx/jquery-letterfx.min.js', 'vendors/jquery-backstretch/jquery.backstretch.min.js', - 'vendors/queue/queue.min.js', 'vendors/inputosaurus/inputosaurus.min.js', 'vendors/moment/min/moment.min.js ', 'vendors/tinycon/tinycon.min.js ', @@ -231,8 +230,6 @@ gulp.task('less:main', function() { gulp.task('css:main-begin', ['less:main'], function() { var -// csslint = require('gulp-csslint'), -// csscomb = require('gulp-csscomb'), autoprefixer = require('gulp-autoprefixer') ; @@ -240,9 +237,6 @@ gulp.task('css:main-begin', ['less:main'], function() { .pipe(concat(cfg.paths.css.main.name)) .pipe(autoprefixer('last 3 versions', '> 1%', 'ie 9', 'Firefox ESR', 'Opera 12.1')) .pipe(replace(/\.\.\/(img|images|fonts|svg)\//g, '$1/')) -// .pipe(csscomb()) -// .pipe(csslint()) -// .pipe(csslint.reporter()) .pipe(eol('\n', true)) .pipe(gulp.dest(cfg.paths.staticCSS)) .pipe(livereload()); @@ -338,7 +332,10 @@ gulp.task('js:webpack', [/*'js:webpack:clear'*/], function(callback) { if (webpackCfg && webpackCfg.plugins) { webpackCfg.plugins.push(new webpack.DefinePlugin({ - 'RL_COMMUNITY': !!cfg.community + 'RL_COMMUNITY': !!cfg.community, + 'process.env': { + NODE_ENV: '"production"' + } })); } @@ -479,9 +476,6 @@ regOtherMinTask('other:pace', 'vendors/simple-pace/', 'simple-pace.js', 'simple- regOtherMinTask('other:rl', 'vendors/rl/', 'rl.js', 'rl-1.5.min.js', '/*! RainLoop Index Helper v1.5 (c) 2015 RainLoop Team; Licensed under MIT */\n'); -regOtherMinTask('other:q', 'vendors/Q/', 'q.js', 'q.min.js', - '/*! (c) 2009-2012 Kris Kowal Licensed under MIT */\n'); - gulp.task('fontastic-fonts:clear', function() { return cleanDir('rainloop/v/' + cfg.devVersion + '/static/css/fonts/rainloop.*'); }); diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index ab572151d..690f8f7a8 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -33,9 +33,9 @@ "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" }, "ansi-escapes": { - "version": "1.3.0", + "version": "1.4.0", "from": "ansi-escapes@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.3.0.tgz" + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz" }, "ansi-regex": { "version": "2.0.0", @@ -112,10 +112,15 @@ "from": "asn1@0.1.11", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz" }, + "asn1.js": { + "version": "4.6.0", + "from": "asn1.js@>=4.0.0 <5.0.0", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.6.0.tgz" + }, "assert": { - "version": "1.3.0", + "version": "1.4.0", "from": "assert@>=1.1.1 <2.0.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.3.0.tgz" + "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.0.tgz" }, "assert-plus": { "version": "0.1.5", @@ -153,33 +158,14 @@ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz" }, "babel-code-frame": { - "version": "6.7.5", - "from": "babel-code-frame@>=6.7.5 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.7.5.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "version": "6.8.0", + "from": "babel-code-frame@>=6.8.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.8.0.tgz" }, "babel-core": { - "version": "6.7.6", + "version": "6.9.0", "from": "babel-core@>=6.1.4 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.7.6.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - }, - "lodash": { - "version": "3.10.1", - "from": "lodash@>=3.10.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" - } - } + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.9.0.tgz" }, "babel-eslint": { "version": "4.1.8", @@ -196,6 +182,11 @@ "from": "babylon@>=5.8.38 <6.0.0", "resolved": "https://registry.npmjs.org/babylon/-/babylon-5.8.38.tgz" }, + "core-js": { + "version": "1.2.6", + "from": "core-js@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.6.tgz" + }, "globals": { "version": "6.4.1", "from": "globals@>=6.4.0 <7.0.0", @@ -214,199 +205,79 @@ } }, "babel-generator": { - "version": "6.7.5", - "from": "babel-generator@>=6.7.5 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.7.5.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - }, - "lodash": { - "version": "3.10.1", - "from": "lodash@>=3.10.1 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" - } - } + "version": "6.9.0", + "from": "babel-generator@>=6.9.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.9.0.tgz" }, "babel-helper-bindify-decorators": { - "version": "6.6.5", - "from": "babel-helper-bindify-decorators@>=6.6.5 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.6.5.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "version": "6.8.0", + "from": "babel-helper-bindify-decorators@>=6.8.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.8.0.tgz" }, "babel-helper-builder-binary-assignment-operator-visitor": { - "version": "6.6.5", - "from": "babel-helper-builder-binary-assignment-operator-visitor@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.6.5.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "version": "6.8.0", + "from": "babel-helper-builder-binary-assignment-operator-visitor@>=6.8.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.8.0.tgz" }, "babel-helper-call-delegate": { - "version": "6.6.5", - "from": "babel-helper-call-delegate@>=6.6.5 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.6.5.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@5.8.38", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "version": "6.8.0", + "from": "babel-helper-call-delegate@>=6.8.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.8.0.tgz" }, "babel-helper-define-map": { - "version": "6.6.5", - "from": "babel-helper-define-map@>=6.6.5 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.6.5.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - }, - "lodash": { - "version": "3.10.1", - "from": "lodash@>=3.10.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" - } - } + "version": "6.9.0", + "from": "babel-helper-define-map@>=6.9.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.9.0.tgz" }, "babel-helper-explode-assignable-expression": { - "version": "6.6.5", - "from": "babel-helper-explode-assignable-expression@>=6.6.5 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.6.5.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "version": "6.8.0", + "from": "babel-helper-explode-assignable-expression@>=6.8.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.8.0.tgz" }, "babel-helper-explode-class": { - "version": "6.6.5", - "from": "babel-helper-explode-class@>=6.6.5 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.6.5.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "version": "6.8.0", + "from": "babel-helper-explode-class@>=6.8.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.8.0.tgz" }, "babel-helper-function-name": { - "version": "6.6.0", - "from": "babel-helper-function-name@>=6.6.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.6.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "version": "6.8.0", + "from": "babel-helper-function-name@>=6.8.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.8.0.tgz" }, "babel-helper-get-function-arity": { - "version": "6.6.5", - "from": "babel-helper-get-function-arity@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.6.5.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "version": "6.8.0", + "from": "babel-helper-get-function-arity@>=6.8.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.8.0.tgz" }, "babel-helper-hoist-variables": { - "version": "6.6.5", - "from": "babel-helper-hoist-variables@>=6.6.5 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.6.5.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@5.8.38", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "version": "6.8.0", + "from": "babel-helper-hoist-variables@>=6.8.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.8.0.tgz" }, "babel-helper-optimise-call-expression": { - "version": "6.6.0", - "from": "babel-helper-optimise-call-expression@>=6.6.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.6.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@5.8.38", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "version": "6.8.0", + "from": "babel-helper-optimise-call-expression@>=6.8.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.8.0.tgz" }, "babel-helper-regex": { - "version": "6.6.5", - "from": "babel-helper-regex@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.6.5.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@5.8.38", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - }, - "lodash": { - "version": "3.10.1", - "from": "lodash@3.10.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" - } - } + "version": "6.9.0", + "from": "babel-helper-regex@>=6.8.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.9.0.tgz" }, "babel-helper-remap-async-to-generator": { - "version": "6.7.0", - "from": "babel-helper-remap-async-to-generator@>=6.7.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.7.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "version": "6.8.0", + "from": "babel-helper-remap-async-to-generator@>=6.8.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.8.0.tgz" }, "babel-helper-replace-supers": { - "version": "6.7.0", - "from": "babel-helper-replace-supers@>=6.6.5 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.7.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@5.8.38", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "version": "6.8.0", + "from": "babel-helper-replace-supers@>=6.8.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.8.0.tgz" }, "babel-helpers": { - "version": "6.6.0", - "from": "babel-helpers@>=6.6.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.6.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "version": "6.8.0", + "from": "babel-helpers@>=6.8.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.8.0.tgz" }, "babel-loader": { "version": "6.2.4", @@ -414,28 +285,14 @@ "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-6.2.4.tgz" }, "babel-messages": { - "version": "6.7.2", - "from": "babel-messages@>=6.7.2 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.7.2.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "version": "6.8.0", + "from": "babel-messages@>=6.8.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.8.0.tgz" }, "babel-plugin-check-es2015-constants": { - "version": "6.7.2", + "version": "6.8.0", "from": "babel-plugin-check-es2015-constants@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.7.2.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.8.0.tgz" }, "babel-plugin-constant-folding": { "version": "1.0.1", @@ -475,7 +332,14 @@ "babel-plugin-proto-to-assign": { "version": "1.0.4", "from": "babel-plugin-proto-to-assign@>=1.0.3 <2.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-proto-to-assign/-/babel-plugin-proto-to-assign-1.0.4.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-proto-to-assign/-/babel-plugin-proto-to-assign-1.0.4.tgz", + "dependencies": { + "lodash": { + "version": "3.10.1", + "from": "lodash@>=3.9.3 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" + } + } }, "babel-plugin-react-constant-elements": { "version": "1.0.3", @@ -503,494 +367,209 @@ "resolved": "https://registry.npmjs.org/babel-plugin-runtime/-/babel-plugin-runtime-1.0.7.tgz" }, "babel-plugin-syntax-async-functions": { - "version": "6.5.0", - "from": "babel-plugin-syntax-async-functions@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.5.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "version": "6.8.0", + "from": "babel-plugin-syntax-async-functions@>=6.8.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.8.0.tgz" }, "babel-plugin-syntax-class-constructor-call": { - "version": "6.5.0", - "from": "babel-plugin-syntax-class-constructor-call@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.5.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "version": "6.8.0", + "from": "babel-plugin-syntax-class-constructor-call@>=6.8.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.8.0.tgz" }, "babel-plugin-syntax-class-properties": { - "version": "6.5.0", - "from": "babel-plugin-syntax-class-properties@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.5.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "version": "6.8.0", + "from": "babel-plugin-syntax-class-properties@>=6.8.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.8.0.tgz" }, "babel-plugin-syntax-decorators": { - "version": "6.5.0", - "from": "babel-plugin-syntax-decorators@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.5.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "version": "6.8.0", + "from": "babel-plugin-syntax-decorators@>=6.8.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.8.0.tgz" }, "babel-plugin-syntax-do-expressions": { - "version": "6.5.0", - "from": "babel-plugin-syntax-do-expressions@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-do-expressions/-/babel-plugin-syntax-do-expressions-6.5.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "version": "6.8.0", + "from": "babel-plugin-syntax-do-expressions@>=6.8.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-do-expressions/-/babel-plugin-syntax-do-expressions-6.8.0.tgz" }, "babel-plugin-syntax-exponentiation-operator": { - "version": "6.5.0", - "from": "babel-plugin-syntax-exponentiation-operator@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.5.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "version": "6.8.0", + "from": "babel-plugin-syntax-exponentiation-operator@>=6.8.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.8.0.tgz" }, "babel-plugin-syntax-export-extensions": { - "version": "6.5.0", - "from": "babel-plugin-syntax-export-extensions@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.5.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "version": "6.8.0", + "from": "babel-plugin-syntax-export-extensions@>=6.8.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.8.0.tgz" }, "babel-plugin-syntax-function-bind": { - "version": "6.5.0", - "from": "babel-plugin-syntax-function-bind@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-function-bind/-/babel-plugin-syntax-function-bind-6.5.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "version": "6.8.0", + "from": "babel-plugin-syntax-function-bind@>=6.8.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-function-bind/-/babel-plugin-syntax-function-bind-6.8.0.tgz" }, "babel-plugin-syntax-object-rest-spread": { - "version": "6.5.0", - "from": "babel-plugin-syntax-object-rest-spread@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.5.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "version": "6.8.0", + "from": "babel-plugin-syntax-object-rest-spread@>=6.8.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.8.0.tgz" }, "babel-plugin-syntax-trailing-function-commas": { - "version": "6.5.0", + "version": "6.8.0", "from": "babel-plugin-syntax-trailing-function-commas@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.5.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.8.0.tgz" }, "babel-plugin-transform-async-to-generator": { - "version": "6.7.4", + "version": "6.8.0", "from": "babel-plugin-transform-async-to-generator@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.7.4.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.8.0.tgz" }, "babel-plugin-transform-class-constructor-call": { - "version": "6.6.5", + "version": "6.8.0", "from": "babel-plugin-transform-class-constructor-call@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.6.5.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.8.0.tgz" }, "babel-plugin-transform-class-properties": { - "version": "6.6.0", - "from": "babel-plugin-transform-class-properties@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.6.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "version": "6.9.0", + "from": "babel-plugin-transform-class-properties@>=6.9.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.9.0.tgz" }, "babel-plugin-transform-decorators": { - "version": "6.6.5", + "version": "6.8.0", "from": "babel-plugin-transform-decorators@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.6.5.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.8.0.tgz" }, "babel-plugin-transform-do-expressions": { - "version": "6.5.0", + "version": "6.8.0", "from": "babel-plugin-transform-do-expressions@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-do-expressions/-/babel-plugin-transform-do-expressions-6.5.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "resolved": "https://registry.npmjs.org/babel-plugin-transform-do-expressions/-/babel-plugin-transform-do-expressions-6.8.0.tgz" }, "babel-plugin-transform-es2015-arrow-functions": { - "version": "6.5.2", + "version": "6.8.0", "from": "babel-plugin-transform-es2015-arrow-functions@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.5.2.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@5.8.38", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.8.0.tgz" }, "babel-plugin-transform-es2015-block-scoped-functions": { - "version": "6.6.5", + "version": "6.8.0", "from": "babel-plugin-transform-es2015-block-scoped-functions@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.6.5.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@5.8.38", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.8.0.tgz" }, "babel-plugin-transform-es2015-block-scoping": { - "version": "6.7.1", - "from": "babel-plugin-transform-es2015-block-scoping@>=6.6.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.7.1.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@5.8.38", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - }, - "lodash": { - "version": "3.10.1", - "from": "lodash@>=3.10.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" - } - } + "version": "6.9.0", + "from": "babel-plugin-transform-es2015-block-scoping@>=6.9.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.9.0.tgz" }, "babel-plugin-transform-es2015-classes": { - "version": "6.6.5", - "from": "babel-plugin-transform-es2015-classes@>=6.6.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.6.5.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@5.8.38", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "version": "6.9.0", + "from": "babel-plugin-transform-es2015-classes@>=6.9.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.9.0.tgz" }, "babel-plugin-transform-es2015-computed-properties": { - "version": "6.6.5", + "version": "6.8.0", "from": "babel-plugin-transform-es2015-computed-properties@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.6.5.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@5.8.38", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.8.0.tgz" }, "babel-plugin-transform-es2015-destructuring": { - "version": "6.6.5", - "from": "babel-plugin-transform-es2015-destructuring@>=6.6.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.6.5.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@5.8.38", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "version": "6.9.0", + "from": "babel-plugin-transform-es2015-destructuring@>=6.9.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.9.0.tgz" }, "babel-plugin-transform-es2015-duplicate-keys": { - "version": "6.6.4", + "version": "6.8.0", "from": "babel-plugin-transform-es2015-duplicate-keys@>=6.6.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.6.4.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@5.8.38", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.8.0.tgz" }, "babel-plugin-transform-es2015-for-of": { - "version": "6.6.0", + "version": "6.8.0", "from": "babel-plugin-transform-es2015-for-of@>=6.6.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.6.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@5.8.38", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.8.0.tgz" }, "babel-plugin-transform-es2015-function-name": { - "version": "6.5.0", - "from": "babel-plugin-transform-es2015-function-name@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.5.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@5.8.38", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "version": "6.9.0", + "from": "babel-plugin-transform-es2015-function-name@>=6.9.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.9.0.tgz" }, "babel-plugin-transform-es2015-literals": { - "version": "6.5.0", + "version": "6.8.0", "from": "babel-plugin-transform-es2015-literals@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.5.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@5.8.38", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.8.0.tgz" }, "babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.7.4", + "version": "6.8.0", "from": "babel-plugin-transform-es2015-modules-commonjs@>=6.6.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.7.4.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@5.8.38", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.8.0.tgz" }, "babel-plugin-transform-es2015-object-super": { - "version": "6.6.5", + "version": "6.8.0", "from": "babel-plugin-transform-es2015-object-super@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.6.5.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@5.8.38", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.8.0.tgz" }, "babel-plugin-transform-es2015-parameters": { - "version": "6.7.0", - "from": "babel-plugin-transform-es2015-parameters@>=6.6.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.7.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@5.8.38", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "version": "6.9.0", + "from": "babel-plugin-transform-es2015-parameters@>=6.9.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.9.0.tgz" }, "babel-plugin-transform-es2015-shorthand-properties": { - "version": "6.5.0", + "version": "6.8.0", "from": "babel-plugin-transform-es2015-shorthand-properties@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.5.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@5.8.38", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.8.0.tgz" }, "babel-plugin-transform-es2015-spread": { - "version": "6.6.5", + "version": "6.8.0", "from": "babel-plugin-transform-es2015-spread@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.6.5.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@5.8.38", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.8.0.tgz" }, "babel-plugin-transform-es2015-sticky-regex": { - "version": "6.5.0", + "version": "6.8.0", "from": "babel-plugin-transform-es2015-sticky-regex@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.5.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@5.8.38", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.8.0.tgz" }, "babel-plugin-transform-es2015-template-literals": { - "version": "6.6.5", + "version": "6.8.0", "from": "babel-plugin-transform-es2015-template-literals@>=6.6.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.6.5.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@5.8.38", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.8.0.tgz" }, "babel-plugin-transform-es2015-typeof-symbol": { - "version": "6.6.0", + "version": "6.8.0", "from": "babel-plugin-transform-es2015-typeof-symbol@>=6.6.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.6.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@5.8.38", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.8.0.tgz" }, "babel-plugin-transform-es2015-unicode-regex": { - "version": "6.5.0", + "version": "6.8.0", "from": "babel-plugin-transform-es2015-unicode-regex@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.5.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@5.8.38", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.8.0.tgz" }, "babel-plugin-transform-exponentiation-operator": { - "version": "6.5.0", + "version": "6.8.0", "from": "babel-plugin-transform-exponentiation-operator@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.5.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.8.0.tgz" }, "babel-plugin-transform-export-extensions": { - "version": "6.5.0", + "version": "6.8.0", "from": "babel-plugin-transform-export-extensions@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.5.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "resolved": "https://registry.npmjs.org/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.8.0.tgz" }, "babel-plugin-transform-function-bind": { - "version": "6.5.2", + "version": "6.8.0", "from": "babel-plugin-transform-function-bind@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-function-bind/-/babel-plugin-transform-function-bind-6.5.2.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "resolved": "https://registry.npmjs.org/babel-plugin-transform-function-bind/-/babel-plugin-transform-function-bind-6.8.0.tgz" }, "babel-plugin-transform-object-rest-spread": { - "version": "6.6.5", + "version": "6.8.0", "from": "babel-plugin-transform-object-rest-spread@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.6.5.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.8.0.tgz" }, "babel-plugin-transform-regenerator": { - "version": "6.6.5", - "from": "babel-plugin-transform-regenerator@>=6.6.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.6.5.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@5.8.38", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "version": "6.9.0", + "from": "babel-plugin-transform-regenerator@*", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.9.0.tgz" }, "babel-plugin-transform-runtime": { - "version": "6.8.0", - "from": "babel-plugin-transform-runtime@>=6.1.18 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.8.0.tgz" + "version": "6.9.0", + "from": "babel-plugin-transform-runtime@*", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.9.0.tgz" }, "babel-plugin-transform-strict-mode": { - "version": "6.6.5", - "from": "babel-plugin-transform-strict-mode@>=6.6.5 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.6.5.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@5.8.38", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "version": "6.8.0", + "from": "babel-plugin-transform-strict-mode@>=6.8.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.8.0.tgz" }, "babel-plugin-undeclared-variables-check": { "version": "1.0.2", @@ -1003,18 +582,23 @@ "resolved": "https://registry.npmjs.org/babel-plugin-undefined-to-void/-/babel-plugin-undefined-to-void-1.1.6.tgz" }, "babel-preset-es2015": { - "version": "6.6.0", + "version": "6.9.0", "from": "babel-preset-es2015@*", - "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.6.0.tgz" + "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.9.0.tgz" }, "babel-preset-es2015-loose": { "version": "7.0.0", - "from": "babel-preset-es2015-loose@>=7.0.0 <8.0.0", + "from": "babel-preset-es2015-loose@*", "resolved": "https://registry.npmjs.org/babel-preset-es2015-loose/-/babel-preset-es2015-loose-7.0.0.tgz" }, + "babel-preset-es2015-loose-native-modules": { + "version": "1.0.0", + "from": "babel-preset-es2015-loose-native-modules@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-preset-es2015-loose-native-modules/-/babel-preset-es2015-loose-native-modules-1.0.0.tgz" + }, "babel-preset-stage-0": { "version": "6.5.0", - "from": "babel-preset-stage-0@>=6.1.18 <7.0.0", + "from": "babel-preset-stage-0@>=6.5.0 <7.0.0", "resolved": "https://registry.npmjs.org/babel-preset-stage-0/-/babel-preset-stage-0-6.5.0.tgz" }, "babel-preset-stage-1": { @@ -1032,114 +616,45 @@ "from": "babel-preset-stage-3@>=6.3.13 <7.0.0", "resolved": "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.5.0.tgz" }, + "babel-regenerator-runtime": { + "version": "6.5.0", + "from": "babel-regenerator-runtime@*", + "resolved": "https://registry.npmjs.org/babel-regenerator-runtime/-/babel-regenerator-runtime-6.5.0.tgz" + }, "babel-register": { - "version": "6.7.2", - "from": "babel-register@>=6.7.2 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.7.2.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz", - "dependencies": { - "core-js": { - "version": "1.2.6", - "from": "core-js@1.2.6", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.6.tgz" - } - } - }, - "core-js": { - "version": "2.2.2", - "from": "core-js@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.2.2.tgz" - }, - "lodash": { - "version": "3.10.1", - "from": "lodash@>=3.10.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" - } - } + "version": "6.9.0", + "from": "babel-register@>=6.9.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.9.0.tgz" }, "babel-runtime": { - "version": "6.6.1", + "version": "6.9.0", "from": "babel-runtime@>=6.1.18 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.6.1.tgz", - "dependencies": { - "core-js": { - "version": "2.3.0", - "from": "core-js@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.3.0.tgz" - } - } + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.9.0.tgz" }, "babel-template": { - "version": "6.7.0", - "from": "babel-template@>=6.7.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.7.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - }, - "lodash": { - "version": "3.10.1", - "from": "lodash@>=3.10.1 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" - } - } + "version": "6.9.0", + "from": "babel-template@>=6.9.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.9.0.tgz" }, "babel-traverse": { - "version": "6.7.6", - "from": "babel-traverse@>=6.7.6 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.7.6.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - }, - "lodash": { - "version": "3.10.1", - "from": "lodash@>=3.10.1 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" - } - } + "version": "6.9.0", + "from": "babel-traverse@>=6.9.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.9.0.tgz" }, "babel-types": { - "version": "6.7.2", - "from": "babel-types@>=6.7.2 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.7.2.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - }, - "lodash": { - "version": "3.10.1", - "from": "lodash@>=3.10.1 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" - } - } + "version": "6.9.0", + "from": "babel-types@>=6.9.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.9.0.tgz" }, "babylon": { - "version": "6.7.0", + "version": "6.8.0", "from": "babylon@>=6.7.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.7.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.8.0.tgz" }, "balanced-match": { - "version": "0.3.0", - "from": "balanced-match@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.3.0.tgz" + "version": "0.4.1", + "from": "balanced-match@>=0.4.1 <0.5.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.1.tgz" }, "Base64": { "version": "0.2.1", @@ -1147,9 +662,9 @@ "resolved": "https://registry.npmjs.org/Base64/-/Base64-0.2.1.tgz" }, "base64-js": { - "version": "0.0.8", - "from": "base64-js@0.0.8", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz" + "version": "1.1.2", + "from": "base64-js@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.1.2.tgz" }, "beeper": { "version": "1.1.0", @@ -1162,20 +677,25 @@ "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.1.3.tgz" }, "binary-extensions": { - "version": "1.4.0", + "version": "1.4.1", "from": "binary-extensions@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.4.0.tgz" + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.4.1.tgz" }, "binaryextensions": { - "version": "1.0.0", + "version": "1.0.1", "from": "binaryextensions@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-1.0.0.tgz" + "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-1.0.1.tgz" }, "bluebird": { "version": "2.10.2", "from": "bluebird@>=2.9.33 <3.0.0", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.10.2.tgz" }, + "bn.js": { + "version": "4.11.3", + "from": "bn.js@>=4.1.1 <5.0.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.3.tgz" + }, "body-parser": { "version": "1.14.2", "from": "body-parser@>=1.14.0 <1.15.0", @@ -1194,20 +714,50 @@ "resolved": "https://registry.npmjs.org/boom/-/boom-0.4.2.tgz" }, "brace-expansion": { - "version": "1.1.3", + "version": "1.1.4", "from": "brace-expansion@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.3.tgz" + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.4.tgz" }, "braces": { - "version": "1.8.3", + "version": "1.8.5", "from": "braces@>=1.8.2 <2.0.0", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.3.tgz" + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz" }, "breakable": { "version": "1.0.0", "from": "breakable@>=1.0.0 <1.1.0", "resolved": "https://registry.npmjs.org/breakable/-/breakable-1.0.0.tgz" }, + "brorand": { + "version": "1.0.5", + "from": "brorand@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.0.5.tgz" + }, + "browserify-aes": { + "version": "1.0.6", + "from": "browserify-aes@>=1.0.4 <2.0.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.0.6.tgz" + }, + "browserify-cipher": { + "version": "1.0.0", + "from": "browserify-cipher@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz" + }, + "browserify-des": { + "version": "1.0.0", + "from": "browserify-des@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz" + }, + "browserify-rsa": { + "version": "4.0.1", + "from": "browserify-rsa@>=4.0.0 <5.0.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz" + }, + "browserify-sign": { + "version": "4.0.0", + "from": "browserify-sign@>=4.0.0 <5.0.0", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.0.tgz" + }, "browserify-zlib": { "version": "0.1.4", "from": "browserify-zlib@>=0.1.4 <0.2.0", @@ -1219,19 +769,41 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.3.1.tgz" }, "buffer": { - "version": "3.6.0", - "from": "buffer@>=3.0.3 <4.0.0", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-3.6.0.tgz" + "version": "4.6.0", + "from": "buffer@>=4.3.0 <5.0.0", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.6.0.tgz" }, "buffer-crc32": { "version": "0.2.5", "from": "buffer-crc32@>=0.2.3 <0.3.0", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.5.tgz" }, + "buffer-shims": { + "version": "1.0.0", + "from": "buffer-shims@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz" + }, + "buffer-xor": { + "version": "1.0.3", + "from": "buffer-xor@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz" + }, "bufferstreams": { - "version": "1.1.0", - "from": "bufferstreams@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/bufferstreams/-/bufferstreams-1.1.0.tgz" + "version": "1.0.1", + "from": "bufferstreams@1.0.1", + "resolved": "https://registry.npmjs.org/bufferstreams/-/bufferstreams-1.0.1.tgz", + "dependencies": { + "isarray": { + "version": "0.0.1", + "from": "isarray@0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + }, + "readable-stream": { + "version": "1.1.14", + "from": "readable-stream@>=1.0.33 <2.0.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz" + } + } }, "builtin-modules": { "version": "1.1.1", @@ -1261,9 +833,9 @@ } }, "caniuse-db": { - "version": "1.0.30000452", + "version": "1.0.30000469", "from": "caniuse-db@>=1.0.30000444 <2.0.0", - "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000452.tgz" + "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000469.tgz" }, "cardinal": { "version": "0.5.0", @@ -1281,19 +853,29 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz" }, "chokidar": { - "version": "1.4.3", - "from": "chokidar@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.4.3.tgz" + "version": "1.5.1", + "from": "chokidar@>=1.4.3 <2.0.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.5.1.tgz" + }, + "cipher-base": { + "version": "1.0.2", + "from": "cipher-base@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.2.tgz" }, "clean-css": { - "version": "2.2.23", - "from": "clean-css@>=2.2.0 <2.3.0", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-2.2.23.tgz", + "version": "3.4.13", + "from": "clean-css@>=3.4.13 <4.0.0", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-3.4.13.tgz", "dependencies": { "commander": { - "version": "2.2.0", - "from": "commander@>=2.2.0 <2.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.2.0.tgz" + "version": "2.8.1", + "from": "commander@>=2.8.0 <2.9.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz" + }, + "source-map": { + "version": "0.4.4", + "from": "source-map@>=0.4.0 <0.5.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz" } } }, @@ -1408,18 +990,18 @@ }, "console-browserify": { "version": "1.1.0", - "from": "console-browserify@>=1.1.0 <2.0.0", + "from": "console-browserify@>=1.1.0 <1.2.0", "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz" }, "constants-browserify": { - "version": "0.0.1", - "from": "constants-browserify@0.0.1", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-0.0.1.tgz" + "version": "1.0.0", + "from": "constants-browserify@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz" }, "content-type": { - "version": "1.0.1", + "version": "1.0.2", "from": "content-type@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.1.tgz" + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz" }, "convert-source-map": { "version": "1.2.0", @@ -1427,53 +1009,39 @@ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.2.0.tgz" }, "core-js": { - "version": "1.2.6", - "from": "core-js@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.6.tgz" + "version": "2.4.0", + "from": "core-js@>=2.4.0 <3.0.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.0.tgz" }, "core-util-is": { "version": "1.0.2", "from": "core-util-is@>=1.0.0 <1.1.0", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" }, + "create-ecdh": { + "version": "4.0.0", + "from": "create-ecdh@>=4.0.0 <5.0.0", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz" + }, + "create-hash": { + "version": "1.1.2", + "from": "create-hash@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.2.tgz" + }, + "create-hmac": { + "version": "1.1.4", + "from": "create-hmac@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.4.tgz" + }, "cryptiles": { "version": "0.2.2", "from": "cryptiles@>=0.2.0 <0.3.0", "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-0.2.2.tgz" }, "crypto-browserify": { - "version": "3.2.8", - "from": "crypto-browserify@>=3.2.6 <3.3.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.2.8.tgz" - }, - "csscomb": { - "version": "3.1.8", - "from": "csscomb@>=3.1.7 <4.0.0", - "resolved": "https://registry.npmjs.org/csscomb/-/csscomb-3.1.8.tgz", - "dependencies": { - "commander": { - "version": "2.0.0", - "from": "commander@2.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.0.0.tgz" - } - } - }, - "csscomb-core": { - "version": "3.0.0-3.1", - "from": "csscomb-core@3.0.0-3.1", - "resolved": "https://registry.npmjs.org/csscomb-core/-/csscomb-core-3.0.0-3.1.tgz", - "dependencies": { - "minimatch": { - "version": "0.2.12", - "from": "minimatch@0.2.12", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.12.tgz" - } - } - }, - "csslint": { - "version": "0.10.0", - "from": "csslint@>=0.10.0 <0.11.0", - "resolved": "https://registry.npmjs.org/csslint/-/csslint-0.10.0.tgz" + "version": "3.11.0", + "from": "crypto-browserify@>=3.11.0 <4.0.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.11.0.tgz" }, "ctype": { "version": "0.5.3", @@ -1550,6 +1118,11 @@ "from": "deprecated@>=0.0.1 <0.0.2", "resolved": "https://registry.npmjs.org/deprecated/-/deprecated-0.0.1.tgz" }, + "des.js": { + "version": "1.0.0", + "from": "des.js@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz" + }, "detect-indent": { "version": "3.0.1", "from": "detect-indent@>=3.0.1 <4.0.0", @@ -1560,6 +1133,11 @@ "from": "detective@>=4.3.1 <5.0.0", "resolved": "https://registry.npmjs.org/detective/-/detective-4.3.1.tgz" }, + "diffie-hellman": { + "version": "5.0.2", + "from": "diffie-hellman@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz" + }, "doctrine": { "version": "0.7.2", "from": "doctrine@>=0.7.1 <0.8.0", @@ -1653,10 +1231,15 @@ "from": "ee-first@1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" }, + "elliptic": { + "version": "6.2.7", + "from": "elliptic@>=6.0.0 <7.0.0", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.2.7.tgz" + }, "emojis-list": { - "version": "1.0.1", - "from": "emojis-list@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-1.0.1.tgz" + "version": "2.0.1", + "from": "emojis-list@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.0.1.tgz" }, "end-of-stream": { "version": "0.1.5", @@ -1664,16 +1247,9 @@ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-0.1.5.tgz" }, "enhanced-resolve": { - "version": "0.9.1", - "from": "enhanced-resolve@>=0.9.0 <0.10.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz", - "dependencies": { - "memory-fs": { - "version": "0.2.0", - "from": "memory-fs@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz" - } - } + "version": "2.2.2", + "from": "enhanced-resolve@>=2.2.0 <3.0.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-2.2.2.tgz" }, "entities": { "version": "1.0.0", @@ -1705,6 +1281,11 @@ "from": "es6-map@>=0.1.3 <0.2.0", "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.3.tgz" }, + "es6-promise-polyfill": { + "version": "1.2.0", + "from": "es6-promise-polyfill@>=1.2.0 <2.0.0", + "resolved": "https://registry.npmjs.org/es6-promise-polyfill/-/es6-promise-polyfill-1.2.0.tgz" + }, "es6-set": { "version": "0.1.4", "from": "es6-set@>=0.1.3 <0.2.0", @@ -1799,6 +1380,11 @@ "from": "events@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/events/-/events-1.1.0.tgz" }, + "evp_bytestokey": { + "version": "1.0.0", + "from": "evp_bytestokey@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz" + }, "exit": { "version": "0.1.2", "from": "exit@>=0.1.0 <0.2.0", @@ -1815,9 +1401,9 @@ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz" }, "expand-range": { - "version": "1.8.1", + "version": "1.8.2", "from": "expand-range@>=1.8.1 <2.0.0", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.1.tgz" + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz" }, "extend": { "version": "2.0.1", @@ -1845,9 +1431,9 @@ "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.7.3.tgz" }, "figures": { - "version": "1.5.0", + "version": "1.7.0", "from": "figures@>=1.3.5 <2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.5.0.tgz" + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz" }, "file-entry-cache": { "version": "1.2.4", @@ -2021,9 +1607,9 @@ "resolved": "https://registry.npmjs.org/globals/-/globals-8.18.0.tgz" }, "globby": { - "version": "4.0.0", + "version": "4.1.0", "from": "globby@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/globby/-/globby-4.1.0.tgz", "dependencies": { "glob": { "version": "6.0.4", @@ -2069,15 +1655,10 @@ "from": "glogg@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.0.tgz" }, - "gonzales-pe": { - "version": "3.0.0-28", - "from": "gonzales-pe@3.0.0-28", - "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-3.0.0-28.tgz" - }, "graceful-fs": { - "version": "4.1.3", + "version": "4.1.4", "from": "graceful-fs@>=4.1.2 <5.0.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.3.tgz" + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.4.tgz" }, "graceful-readlink": { "version": "1.0.1", @@ -2105,24 +1686,14 @@ "resolved": "https://registry.npmjs.org/gulp-beautify/-/gulp-beautify-2.0.0.tgz" }, "gulp-clean-css": { - "version": "2.0.7", + "version": "2.0.8", "from": "gulp-clean-css@>=2.0.7 <3.0.0", - "resolved": "https://registry.npmjs.org/gulp-clean-css/-/gulp-clean-css-2.0.7.tgz", + "resolved": "https://registry.npmjs.org/gulp-clean-css/-/gulp-clean-css-2.0.8.tgz", "dependencies": { - "clean-css": { - "version": "3.4.12", - "from": "clean-css@>=3.4.12 <4.0.0", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-3.4.12.tgz" - }, - "commander": { - "version": "2.8.1", - "from": "commander@>=2.8.0 <2.9.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz" - }, - "source-map": { - "version": "0.4.4", - "from": "source-map@>=0.4.0 <0.5.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz" + "readable-stream": { + "version": "2.1.4", + "from": "readable-stream@>=2.1.4 <3.0.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.4.tgz" } } }, @@ -2138,16 +1709,6 @@ } } }, - "gulp-csscomb": { - "version": "3.0.7", - "from": "gulp-csscomb@*", - "resolved": "https://registry.npmjs.org/gulp-csscomb/-/gulp-csscomb-3.0.7.tgz" - }, - "gulp-csslint": { - "version": "0.3.0", - "from": "gulp-csslint@*", - "resolved": "https://registry.npmjs.org/gulp-csslint/-/gulp-csslint-0.3.0.tgz" - }, "gulp-eol": { "version": "0.1.2", "from": "gulp-eol@*", @@ -2262,7 +1823,14 @@ "gulp-eslint": { "version": "1.1.1", "from": "gulp-eslint@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/gulp-eslint/-/gulp-eslint-1.1.1.tgz" + "resolved": "https://registry.npmjs.org/gulp-eslint/-/gulp-eslint-1.1.1.tgz", + "dependencies": { + "bufferstreams": { + "version": "1.1.0", + "from": "bufferstreams@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/bufferstreams/-/bufferstreams-1.1.0.tgz" + } + } }, "gulp-header": { "version": "1.8.2", @@ -2281,7 +1849,8 @@ }, "isarray": { "version": "0.0.1", - "from": "isarray@0.0.1" + "from": "isarray@0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" }, "merge-stream": { "version": "0.1.8", @@ -2295,7 +1864,8 @@ }, "readable-stream": { "version": "1.0.34", - "from": "readable-stream@>=1.0.33-1 <1.1.0-0" + "from": "readable-stream@>=1.0.33-1 <1.1.0-0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz" }, "ternary-stream": { "version": "1.2.3", @@ -2310,13 +1880,14 @@ } }, "gulp-jshint": { - "version": "2.0.0", + "version": "2.0.1", "from": "gulp-jshint@*", - "resolved": "https://registry.npmjs.org/gulp-jshint/-/gulp-jshint-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/gulp-jshint/-/gulp-jshint-2.0.1.tgz", "dependencies": { "isarray": { "version": "0.0.1", - "from": "isarray@0.0.1" + "from": "isarray@0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" }, "rcloader": { "version": "0.1.2", @@ -2332,7 +1903,8 @@ }, "readable-stream": { "version": "1.0.34", - "from": "readable-stream@>=1.0.33-1 <1.1.0-0" + "from": "readable-stream@>=1.0.33-1 <1.1.0-0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz" }, "through2": { "version": "0.6.5", @@ -2353,11 +1925,13 @@ }, "isarray": { "version": "0.0.1", - "from": "isarray@0.0.1" + "from": "isarray@0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" }, "readable-stream": { "version": "1.0.34", - "from": "readable-stream@>=1.0.17 <1.1.0" + "from": "readable-stream@>=1.0.17 <1.1.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz" }, "source-map": { "version": "0.1.43", @@ -2376,7 +1950,8 @@ }, "xtend": { "version": "3.0.0", - "from": "xtend@>=3.0.0 <3.1.0" + "from": "xtend@>=3.0.0 <3.1.0", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz" } } }, @@ -2387,27 +1962,33 @@ "dependencies": { "ansi-regex": { "version": "0.2.1", - "from": "ansi-regex@>=0.2.0 <0.3.0" + "from": "ansi-regex@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz" }, "ansi-styles": { "version": "1.1.0", - "from": "ansi-styles@>=1.1.0 <2.0.0" + "from": "ansi-styles@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz" }, "chalk": { "version": "0.5.1", - "from": "chalk@>=0.5.1 <0.6.0" + "from": "chalk@>=0.5.1 <0.6.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz" }, "has-ansi": { "version": "0.1.0", - "from": "has-ansi@>=0.1.0 <0.2.0" + "from": "has-ansi@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz" }, "strip-ansi": { "version": "0.3.0", - "from": "strip-ansi@>=0.3.0 <0.4.0" + "from": "strip-ansi@>=0.3.0 <0.4.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz" }, "supports-color": { "version": "0.2.0", - "from": "supports-color@>=0.2.0 <0.3.0" + "from": "supports-color@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz" } } }, @@ -2430,11 +2011,13 @@ "dependencies": { "isarray": { "version": "0.0.1", - "from": "isarray@0.0.1" + "from": "isarray@0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" }, "readable-stream": { "version": "1.0.34", - "from": "readable-stream@>=1.0.33-1 <1.1.0-0" + "from": "readable-stream@>=1.0.33-1 <1.1.0-0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz" }, "through2": { "version": "0.6.5", @@ -2470,11 +2053,13 @@ "dependencies": { "isarray": { "version": "0.0.1", - "from": "isarray@0.0.1" + "from": "isarray@0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" }, "readable-stream": { "version": "1.0.34", - "from": "readable-stream@>=1.0.17 <1.1.0" + "from": "readable-stream@>=1.0.17 <1.1.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz" }, "strip-bom": { "version": "1.0.0", @@ -2488,7 +2073,8 @@ }, "xtend": { "version": "3.0.0", - "from": "xtend@>=3.0.0 <3.1.0" + "from": "xtend@>=3.0.0 <3.1.0", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz" } } }, @@ -2499,35 +2085,43 @@ "dependencies": { "ansi-regex": { "version": "0.2.1", - "from": "ansi-regex@>=0.2.0 <0.3.0" + "from": "ansi-regex@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz" }, "ansi-styles": { "version": "1.1.0", - "from": "ansi-styles@>=1.1.0 <2.0.0" + "from": "ansi-styles@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz" }, "chalk": { "version": "0.5.1", - "from": "chalk@>=0.5.1 <0.6.0" + "from": "chalk@>=0.5.1 <0.6.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz" }, "has-ansi": { "version": "0.1.0", - "from": "has-ansi@>=0.1.0 <0.2.0" + "from": "has-ansi@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz" }, "isarray": { "version": "0.0.1", - "from": "isarray@0.0.1" + "from": "isarray@0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" }, "readable-stream": { "version": "1.0.34", - "from": "readable-stream@>=1.0.33-1 <1.1.0-0" + "from": "readable-stream@>=1.0.33-1 <1.1.0-0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz" }, "strip-ansi": { "version": "0.3.0", - "from": "strip-ansi@>=0.3.0 <0.4.0" + "from": "strip-ansi@>=0.3.0 <0.4.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz" }, "supports-color": { "version": "0.2.0", - "from": "supports-color@>=0.2.0 <0.3.0" + "from": "supports-color@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz" }, "through2": { "version": "0.6.5", @@ -2595,6 +2189,11 @@ "from": "has-gulplog@>=0.1.0 <0.2.0", "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz" }, + "hash.js": { + "version": "1.0.3", + "from": "hash.js@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.0.3.tgz" + }, "hawk": { "version": "1.1.1", "from": "hawk@1.1.1", @@ -2611,9 +2210,9 @@ "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-1.0.0.tgz" }, "hosted-git-info": { - "version": "2.1.4", + "version": "2.1.5", "from": "hosted-git-info@>=2.1.4 <3.0.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.1.4.tgz" + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.1.5.tgz" }, "htmlparser2": { "version": "3.8.3", @@ -2648,9 +2247,9 @@ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.10.1.tgz" }, "https-browserify": { - "version": "0.0.0", - "from": "https-browserify@0.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.0.tgz" + "version": "0.0.1", + "from": "https-browserify@0.0.1", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz" }, "iconv-lite": { "version": "0.4.13", @@ -2680,9 +2279,9 @@ "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz" }, "inflight": { - "version": "1.0.4", + "version": "1.0.5", "from": "inflight@>=1.0.4 <2.0.0", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.4.tgz" + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.5.tgz" }, "inherits": { "version": "2.0.1", @@ -2697,12 +2296,19 @@ "inquirer": { "version": "0.11.4", "from": "inquirer@>=0.11.0 <0.12.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.11.4.tgz" + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.11.4.tgz", + "dependencies": { + "lodash": { + "version": "3.10.1", + "from": "lodash@>=3.3.1 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" + } + } }, "interpret": { - "version": "1.0.0", + "version": "1.0.1", "from": "interpret@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.0.tgz" + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.1.tgz" }, "invariant": { "version": "2.2.1", @@ -2719,11 +2325,6 @@ "from": "is@>=3.0.1 <4.0.0", "resolved": "https://registry.npmjs.org/is/-/is-3.1.0.tgz" }, - "is-absolute": { - "version": "0.1.7", - "from": "is-absolute@>=0.1.7 <0.2.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.1.7.tgz" - }, "is-arrayish": { "version": "0.2.1", "from": "is-arrayish@>=0.2.1 <0.3.0", @@ -2824,11 +2425,6 @@ "from": "is-property@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz" }, - "is-relative": { - "version": "0.1.3", - "from": "is-relative@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-0.1.3.tgz" - }, "is-resolvable": { "version": "1.0.0", "from": "is-resolvable@>=1.0.0 <2.0.0", @@ -2850,16 +2446,9 @@ "resolved": "https://registry.npmjs.org/isexe/-/isexe-1.1.2.tgz" }, "isobject": { - "version": "2.0.0", + "version": "2.1.0", "from": "isobject@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.0.0.tgz", - "dependencies": { - "isarray": { - "version": "0.0.1", - "from": "isarray@0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - } - } + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz" }, "istextorbinary": { "version": "1.0.2", @@ -2867,9 +2456,9 @@ "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-1.0.2.tgz" }, "jassl": { - "version": "1.0.0", + "version": "1.1.0", "from": "rainloop/jassl", - "resolved": "git://github.com/rainloop/jassl.git#c25ef96e2f4cd84cb812f4119da16daa81c3bf99" + "resolved": "git://github.com/rainloop/jassl.git#b792515427a200df94a067e5b774c35042b020d6" }, "js-base64": { "version": "2.1.9", @@ -2883,7 +2472,7 @@ }, "js-tokens": { "version": "1.0.3", - "from": "js-tokens@>=1.0.1 <2.0.0", + "from": "js-tokens@>=1.0.2 <2.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-1.0.3.tgz" }, "js-yaml": { @@ -2893,8 +2482,7 @@ "dependencies": { "esprima": { "version": "2.7.2", - "from": "esprima@2.7.2", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.2.tgz" + "from": "esprima@>=2.6.0 <3.0.0" } } }, @@ -2942,6 +2530,11 @@ } } }, + "json-loader": { + "version": "0.5.4", + "from": "json-loader@>=0.5.4 <0.6.0", + "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.4.tgz" + }, "json-stable-stringify": { "version": "1.0.1", "from": "json-stable-stringify@>=1.0.0 <2.0.0", @@ -2968,14 +2561,14 @@ "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz" }, "kind-of": { - "version": "3.0.2", + "version": "3.0.3", "from": "kind-of@>=3.0.2 <4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.0.2.tgz" + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.0.3.tgz" }, "lazy-cache": { - "version": "1.0.3", + "version": "1.0.4", "from": "lazy-cache@>=1.0.3 <2.0.0", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.3.tgz" + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz" }, "lcid": { "version": "1.0.0", @@ -2987,6 +2580,16 @@ "from": "less@>=1.7.4 <2.0.0", "resolved": "https://registry.npmjs.org/less/-/less-1.7.5.tgz", "dependencies": { + "clean-css": { + "version": "2.2.23", + "from": "clean-css@>=2.2.0 <2.3.0", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-2.2.23.tgz" + }, + "commander": { + "version": "2.2.0", + "from": "commander@>=2.2.0 <2.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.2.0.tgz" + }, "graceful-fs": { "version": "3.0.8", "from": "graceful-fs@>=3.0.2 <3.1.0", @@ -3024,10 +2627,15 @@ "from": "load-json-file@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz" }, + "loader-runner": { + "version": "2.1.1", + "from": "loader-runner@>=2.1.0 <3.0.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.1.1.tgz" + }, "loader-utils": { - "version": "0.2.14", + "version": "0.2.15", "from": "loader-utils@>=0.2.11 <0.3.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.14.tgz", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.15.tgz", "dependencies": { "json5": { "version": "0.5.0", @@ -3037,9 +2645,9 @@ } }, "lodash": { - "version": "3.9.3", - "from": "lodash@>=3.9.3 <3.10.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.9.3.tgz" + "version": "4.13.1", + "from": "lodash@>=4.2.0 <5.0.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.13.1.tgz" }, "lodash._arraycopy": { "version": "3.0.0", @@ -3323,9 +2931,9 @@ "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz" }, "loose-envify": { - "version": "1.1.0", + "version": "1.2.0", "from": "loose-envify@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.1.0.tgz" + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.2.0.tgz" }, "loud-rejection": { "version": "1.3.0", @@ -3378,9 +2986,14 @@ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.0.tgz" }, "micromatch": { - "version": "2.3.7", + "version": "2.3.8", "from": "micromatch@>=2.1.5 <3.0.0", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.7.tgz" + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.8.tgz" + }, + "miller-rabin": { + "version": "4.0.0", + "from": "miller-rabin@>=4.0.0 <5.0.0", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.0.tgz" }, "mime": { "version": "1.2.11", @@ -3388,9 +3001,9 @@ "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz" }, "mime-db": { - "version": "1.22.0", - "from": "mime-db@>=1.22.0 <1.23.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.22.0.tgz" + "version": "1.23.0", + "from": "mime-db@>=1.23.0 <1.24.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.23.0.tgz" }, "mime-types": { "version": "1.0.2", @@ -3409,6 +3022,11 @@ } } }, + "minimalistic-assert": { + "version": "1.0.0", + "from": "minimalistic-assert@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz" + }, "minimatch": { "version": "2.0.10", "from": "minimatch@>=2.0.3 <3.0.0", @@ -3462,21 +3080,9 @@ "resolved": "https://registry.npmjs.org/node-fs/-/node-fs-0.1.7.tgz" }, "node-libs-browser": { - "version": "0.5.3", - "from": "node-libs-browser@>=0.4.0 <=0.6.0", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.5.3.tgz", - "dependencies": { - "isarray": { - "version": "0.0.1", - "from": "isarray@0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - }, - "readable-stream": { - "version": "1.1.14", - "from": "readable-stream@>=1.1.13 <2.0.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz" - } - } + "version": "1.0.0", + "from": "node-libs-browser@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-1.0.0.tgz" }, "node-notifier": { "version": "4.2.3", @@ -3484,9 +3090,9 @@ "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-4.2.3.tgz" }, "node-uuid": { - "version": "1.4.0", - "from": "node-uuid@1.4.0", - "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.0.tgz" + "version": "1.4.7", + "from": "node-uuid@>=1.4.0 <1.5.0", + "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz" }, "node.extend": { "version": "1.1.5", @@ -3529,9 +3135,9 @@ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.3.0.tgz" }, "object-assign": { - "version": "4.0.1", + "version": "4.1.0", "from": "object-assign@>=4.0.1 <5.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.0.1.tgz" + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz" }, "object-keys": { "version": "0.4.0", @@ -3586,9 +3192,9 @@ "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz" }, "os-browserify": { - "version": "0.1.2", - "from": "os-browserify@>=0.1.2 <0.2.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.1.2.tgz" + "version": "0.2.1", + "from": "os-browserify@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.2.1.tgz" }, "os-homedir": { "version": "1.0.1", @@ -3615,6 +3221,11 @@ "from": "pako@>=0.2.0 <0.3.0", "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.8.tgz" }, + "parse-asn1": { + "version": "5.0.0", + "from": "parse-asn1@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.0.0.tgz" + }, "parse-glob": { "version": "3.0.4", "from": "parse-glob@>=3.0.4 <4.0.0", @@ -3625,11 +3236,6 @@ "from": "parse-json@>=2.2.0 <3.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz" }, - "parserlib": { - "version": "0.2.5", - "from": "parserlib@>=0.2.2 <0.3.0", - "resolved": "https://registry.npmjs.org/parserlib/-/parserlib-0.2.5.tgz" - }, "parseurl": { "version": "1.3.1", "from": "parseurl@>=1.3.0 <1.4.0", @@ -3665,10 +3271,10 @@ "from": "pause-stream@0.0.11", "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz" }, - "pbkdf2-compat": { - "version": "2.0.1", - "from": "pbkdf2-compat@2.0.1", - "resolved": "https://registry.npmjs.org/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz" + "pbkdf2": { + "version": "3.0.4", + "from": "pbkdf2@>=3.0.3 <4.0.0", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.4.tgz" }, "pify": { "version": "2.3.0", @@ -3686,9 +3292,9 @@ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz" }, "postcss": { - "version": "5.0.19", + "version": "5.0.21", "from": "postcss@>=5.0.4 <6.0.0", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.0.19.tgz", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.0.21.tgz", "dependencies": { "supports-color": { "version": "3.1.2", @@ -3723,14 +3329,14 @@ "resolved": "https://registry.npmjs.org/private/-/private-0.1.6.tgz" }, "process": { - "version": "0.11.2", + "version": "0.11.3", "from": "process@>=0.11.0 <0.12.0", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.2.tgz" + "resolved": "https://registry.npmjs.org/process/-/process-0.11.3.tgz" }, "process-nextick-args": { - "version": "1.0.6", + "version": "1.0.7", "from": "process-nextick-args@>=1.0.6 <1.1.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.6.tgz" + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz" }, "proto-list": { "version": "1.2.4", @@ -3742,6 +3348,11 @@ "from": "prr@>=0.0.0 <0.1.0", "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz" }, + "public-encrypt": { + "version": "4.0.0", + "from": "public-encrypt@>=4.0.0 <5.0.0", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz" + }, "punycode": { "version": "1.4.1", "from": "punycode@>=1.2.4 <2.0.0", @@ -3772,6 +3383,11 @@ "from": "randomatic@>=1.1.3 <2.0.0", "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.5.tgz" }, + "randombytes": { + "version": "2.0.3", + "from": "randombytes@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.3.tgz" + }, "raw-body": { "version": "2.1.6", "from": "raw-body@>=2.1.5 <2.2.0", @@ -3786,24 +3402,36 @@ }, "raw-loader": { "version": "0.5.1", - "from": "raw-loader@*" + "from": "raw-loader@>=0.5.1 <0.6.0" }, "rcfinder": { - "version": "0.1.8", + "version": "0.1.9", "from": "rcfinder@>=0.1.6 <0.2.0", - "resolved": "https://registry.npmjs.org/rcfinder/-/rcfinder-0.1.8.tgz", + "resolved": "https://registry.npmjs.org/rcfinder/-/rcfinder-0.1.9.tgz", "dependencies": { - "lodash": { - "version": "2.4.2", - "from": "lodash@>=2.4.1 <2.5.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz" + "lodash._baseclone": { + "version": "4.5.7", + "from": "lodash._baseclone@>=4.5.0 <4.6.0", + "resolved": "https://registry.npmjs.org/lodash._baseclone/-/lodash._baseclone-4.5.7.tgz" + }, + "lodash.clonedeep": { + "version": "4.3.2", + "from": "lodash.clonedeep@>=4.3.2 <5.0.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.3.2.tgz" } } }, "rcloader": { "version": "0.1.4", "from": "rcloader@>=0.1.2 <0.2.0", - "resolved": "https://registry.npmjs.org/rcloader/-/rcloader-0.1.4.tgz" + "resolved": "https://registry.npmjs.org/rcloader/-/rcloader-0.1.4.tgz", + "dependencies": { + "lodash": { + "version": "3.10.1", + "from": "lodash@>=3.0.1 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" + } + } }, "read-json-sync": { "version": "1.1.1", @@ -3863,9 +3491,9 @@ } }, "regenerate": { - "version": "1.2.1", + "version": "1.3.0", "from": "regenerate@>=1.2.1 <2.0.0", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.2.1.tgz" + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.0.tgz" }, "regenerator": { "version": "0.8.40", @@ -3916,7 +3544,7 @@ }, "repeating": { "version": "1.1.3", - "from": "repeating@>=1.1.3 <2.0.0", + "from": "repeating@>=1.1.0 <2.0.0", "resolved": "https://registry.npmjs.org/repeating/-/repeating-1.1.3.tgz" }, "replace-ext": { @@ -3974,9 +3602,9 @@ } }, "ripemd160": { - "version": "0.2.0", - "from": "ripemd160@0.2.0", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-0.2.0.tgz" + "version": "1.0.1", + "from": "ripemd160@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-1.0.1.tgz" }, "run-async": { "version": "0.1.0", @@ -3999,9 +3627,9 @@ "resolved": "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz" }, "sha.js": { - "version": "2.2.6", - "from": "sha.js@2.2.6", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.2.6.tgz" + "version": "2.4.5", + "from": "sha.js@>=2.3.6 <3.0.0", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.5.tgz" }, "shebang-regex": { "version": "1.0.0", @@ -4054,9 +3682,9 @@ "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.6.tgz" }, "source-map": { - "version": "0.5.3", + "version": "0.5.6", "from": "source-map@>=0.5.0 <0.6.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.3.tgz" + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz" }, "source-map-support": { "version": "0.2.10", @@ -4111,26 +3739,14 @@ "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.5.tgz" }, "statuses": { - "version": "1.2.1", + "version": "1.3.0", "from": "statuses@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz" + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.0.tgz" }, "stream-browserify": { - "version": "1.0.0", - "from": "stream-browserify@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-1.0.0.tgz", - "dependencies": { - "isarray": { - "version": "0.0.1", - "from": "isarray@0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - }, - "readable-stream": { - "version": "1.1.14", - "from": "readable-stream@>=1.0.27-1 <2.0.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz" - } - } + "version": "2.0.1", + "from": "stream-browserify@>=2.0.1 <3.0.0", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz" }, "stream-combiner": { "version": "0.0.4", @@ -4205,9 +3821,9 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" }, "tapable": { - "version": "0.1.10", - "from": "tapable@>=0.1.8 <0.2.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz" + "version": "0.2.4", + "from": "tapable@>=0.2.3 <0.3.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.4.tgz" }, "ternary-stream": { "version": "2.0.0", @@ -4220,9 +3836,9 @@ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" }, "textextensions": { - "version": "1.0.1", + "version": "1.0.2", "from": "textextensions@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-1.0.1.tgz" + "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-1.0.2.tgz" }, "through": { "version": "2.3.8", @@ -4266,7 +3882,7 @@ }, "trim-right": { "version": "1.0.1", - "from": "trim-right@>=1.0.1 <2.0.0", + "from": "trim-right@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz" }, "try-resolve": { @@ -4290,9 +3906,9 @@ "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz" }, "tunnel-agent": { - "version": "0.4.2", + "version": "0.4.3", "from": "tunnel-agent@>=0.4.0 <0.5.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.2.tgz" + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz" }, "type-check": { "version": "0.3.2", @@ -4300,14 +3916,14 @@ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz" }, "type-is": { - "version": "1.6.12", + "version": "1.6.13", "from": "type-is@>=1.6.10 <1.7.0", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.12.tgz", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.13.tgz", "dependencies": { "mime-types": { - "version": "2.1.10", - "from": "mime-types@>=2.1.10 <2.2.0", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.10.tgz" + "version": "2.1.11", + "from": "mime-types@>=2.1.11 <2.2.0", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.11.tgz" } } }, @@ -4359,9 +3975,9 @@ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" }, "url": { - "version": "0.10.3", - "from": "url@>=0.10.1 <0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", + "version": "0.11.0", + "from": "url@>=0.11.0 <0.12.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", "dependencies": { "punycode": { "version": "1.3.2", @@ -4403,24 +4019,7 @@ "vinyl-bufferstream": { "version": "1.0.1", "from": "vinyl-bufferstream@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/vinyl-bufferstream/-/vinyl-bufferstream-1.0.1.tgz", - "dependencies": { - "bufferstreams": { - "version": "1.0.1", - "from": "bufferstreams@1.0.1", - "resolved": "https://registry.npmjs.org/bufferstreams/-/bufferstreams-1.0.1.tgz" - }, - "isarray": { - "version": "0.0.1", - "from": "isarray@0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - }, - "readable-stream": { - "version": "1.1.14", - "from": "readable-stream@>=1.0.33 <2.0.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz" - } - } + "resolved": "https://registry.npmjs.org/vinyl-bufferstream/-/vinyl-bufferstream-1.0.1.tgz" }, "vinyl-fs": { "version": "0.3.14", @@ -4474,83 +4073,59 @@ "from": "vm-browserify@0.0.4", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz" }, - "vow": { - "version": "0.4.4", - "from": "vow@0.4.4", - "resolved": "https://registry.npmjs.org/vow/-/vow-0.4.4.tgz" - }, - "vow-fs": { - "version": "0.3.2", - "from": "vow-fs@0.3.2", - "resolved": "https://registry.npmjs.org/vow-fs/-/vow-fs-0.3.2.tgz", - "dependencies": { - "glob": { - "version": "3.2.8", - "from": "glob@3.2.8", - "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.8.tgz" - }, - "minimatch": { - "version": "0.2.14", - "from": "minimatch@>=0.2.11 <0.3.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz" - } - } - }, - "vow-queue": { - "version": "0.3.1", - "from": "vow-queue@0.3.1", - "resolved": "https://registry.npmjs.org/vow-queue/-/vow-queue-0.3.1.tgz" - }, "watchpack": { - "version": "0.2.9", - "from": "watchpack@>=0.2.1 <0.3.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-0.2.9.tgz", + "version": "1.1.0", + "from": "watchpack@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.1.0.tgz", "dependencies": { "async": { - "version": "0.9.2", - "from": "async@>=0.9.0 <0.10.0", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz" + "version": "2.0.0-rc.4", + "from": "async@2.0.0-rc.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.0.0-rc.4.tgz" } } }, "webpack": { - "version": "1.13.0", - "from": "webpack@*", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-1.13.0.tgz", + "version": "2.1.0-beta.7", + "from": "webpack@2.1.0-beta.7", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-2.1.0-beta.7.tgz", "dependencies": { "acorn": { "version": "3.1.0", "from": "acorn@>=3.0.0 <4.0.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.1.0.tgz" }, - "interpret": { - "version": "0.6.6", - "from": "interpret@>=0.6.4 <0.7.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-0.6.6.tgz" + "camelcase": { + "version": "2.1.1", + "from": "camelcase@>=2.0.1 <3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz" + }, + "cliui": { + "version": "3.2.0", + "from": "cliui@>=3.0.3 <4.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz" }, "supports-color": { "version": "3.1.2", "from": "supports-color@>=3.1.0 <4.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz" + }, + "yargs": { + "version": "3.32.0", + "from": "yargs@>=3.31.0 <4.0.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz" } } }, - "webpack-core": { - "version": "0.6.8", - "from": "webpack-core@>=0.6.0 <0.7.0", - "resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.8.tgz", - "dependencies": { - "source-map": { - "version": "0.4.4", - "from": "source-map@>=0.4.1 <0.5.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz" - } - } + "webpack-sources": { + "version": "0.1.2", + "from": "webpack-sources@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-0.1.2.tgz" }, "websocket-driver": { - "version": "0.6.4", + "version": "0.6.5", "from": "websocket-driver@>=0.3.6", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.4.tgz" + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz" }, "websocket-extensions": { "version": "0.1.1", @@ -4558,9 +4133,9 @@ "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.1.tgz" }, "which": { - "version": "1.2.4", + "version": "1.2.9", "from": "which@>=1.0.5 <2.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-1.2.4.tgz" + "resolved": "https://registry.npmjs.org/which/-/which-1.2.9.tgz" }, "window-size": { "version": "0.1.4", @@ -4572,10 +4147,15 @@ "from": "wordwrap@0.0.2", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz" }, + "wrap-ansi": { + "version": "2.0.0", + "from": "wrap-ansi@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.0.0.tgz" + }, "wrappy": { - "version": "1.0.1", + "version": "1.0.2", "from": "wrappy@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" }, "write": { "version": "0.2.1", @@ -4603,9 +4183,9 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.27.0.tgz" }, "yazl": { - "version": "2.3.0", + "version": "2.3.1", "from": "yazl@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/yazl/-/yazl-2.3.0.tgz" + "resolved": "https://registry.npmjs.org/yazl/-/yazl-2.3.1.tgz" } } } diff --git a/package.json b/package.json index 91446448a..4aa161b20 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,8 @@ "name": "RainLoop", "title": "RainLoop Webmail", "version": "1.10.1", - "release": "118", + "release": "120", + "private": true, "ownCloudPackageVersion": "4.17", "description": "Simple, modern & fast web-based email client", "homepage": "http://rainloop.net", @@ -43,25 +44,25 @@ ], "readmeFilename": "README.md", "engines": { - "node": ">= 0.10.0" + "node": ">= 4" }, "devDependencies": { "babel-core": "^6.1.4", "babel-eslint": "^4.1.5", "babel-loader": "^6.1.0", - "babel-plugin-transform-runtime": "^6.1.18", + "babel-plugin-transform-runtime": "^6.9.0", "babel-preset-es2015": "*", - "babel-preset-es2015-loose": "^7.0.0", - "babel-preset-stage-0": "^6.1.18", + "babel-preset-es2015-loose": "*", + "babel-preset-es2015-loose-native-modules": "^1.0.0", + "babel-preset-stage-0": "^6.5.0", "babel-runtime": "^6.1.18", + "es6-promise-polyfill": "^1.2.0", "eslint": "^1.9.0", "gulp": "~3.9.0", "gulp-autoprefixer": "*", "gulp-beautify": "*", "gulp-clean-css": "^2.0.7", "gulp-concat-util": "*", - "gulp-csscomb": "*", - "gulp-csslint": "*", "gulp-eol": "*", "gulp-eslint": "^1.1.0", "gulp-header": "*", @@ -82,11 +83,11 @@ "jassl": "github:rainloop/jassl", "jshint": "*", "jshint-summary": "*", - "lodash": "~3.9.3", + "json-loader": "^0.5.4", "node-fs": "*", "node-notifier": "~4.2.3", "raw-loader": "^0.5.1", "rimraf": "*", - "webpack": "*" + "webpack": "2.1.0-beta.7" } } diff --git a/vendors/Q/.coverignore b/vendors/Q/.coverignore deleted file mode 100644 index 1564ca042..000000000 --- a/vendors/Q/.coverignore +++ /dev/null @@ -1 +0,0 @@ -spec/ diff --git a/vendors/Q/.jshintrc b/vendors/Q/.jshintrc deleted file mode 100644 index 387bb8d21..000000000 --- a/vendors/Q/.jshintrc +++ /dev/null @@ -1,27 +0,0 @@ -{ - "browser": true, - "node": true, - - "curly": true, - "eqeqeq": true, - "es3": true, - "newcap": false, - "noarg": true, - "nonew": true, - "quotmark": "double", - "strict": true, - "trailing": true, - "undef": true, - "unused": true, - - "globals": { - "self": false, - "bootstrap": false, - "cajaVM": false, - "define": false, - "ReturnValue": false, - "ses": false, - "setImmediate": false, - "Q": true - } -} diff --git a/vendors/Q/.mailmap b/vendors/Q/.mailmap deleted file mode 100644 index 281850a34..000000000 --- a/vendors/Q/.mailmap +++ /dev/null @@ -1,2 +0,0 @@ -Domenic Denicola -Kris Kowal diff --git a/vendors/Q/.travis.yml b/vendors/Q/.travis.yml deleted file mode 100644 index d68110e66..000000000 --- a/vendors/Q/.travis.yml +++ /dev/null @@ -1,5 +0,0 @@ -language: node_js -node_js: - - "0.10" -script: - npm run lint && npm test diff --git a/vendors/Q/CHANGES.md b/vendors/Q/CHANGES.md deleted file mode 100644 index 5d9eca76b..000000000 --- a/vendors/Q/CHANGES.md +++ /dev/null @@ -1,762 +0,0 @@ - - -## 1.1.2 - - - Removed extraneous files from the npm package by using the "files" - whitelist in package.json instead of the .npmignore blacklist. - (@anton-rudeshko) - -## 1.1.1 - - - Fix a pair of regressions in bootstrapping, one which precluded - WebWorker support, and another that precluded support in - `` - - - diff --git a/vendors/Q/examples/async-generators/1-return.js b/vendors/Q/examples/async-generators/1-return.js deleted file mode 100644 index 7aab6db44..000000000 --- a/vendors/Q/examples/async-generators/1-return.js +++ /dev/null @@ -1,19 +0,0 @@ -"use strict"; - -var Q = require("../../q"); - -var generator = Q.async(function* () { - var ten = yield 10; - console.log(ten, 10); - var twenty = yield ten + 10; - console.log(twenty, 20); - var thirty = yield twenty + 10; - console.log(thirty, 30); - return thirty + 10; -}); - -generator().then(function (forty) { - console.log(forty, 40); -}, function (reason) { - console.log("reason", reason); -}); diff --git a/vendors/Q/examples/async-generators/2-error-propagation.js b/vendors/Q/examples/async-generators/2-error-propagation.js deleted file mode 100644 index ccd788bd5..000000000 --- a/vendors/Q/examples/async-generators/2-error-propagation.js +++ /dev/null @@ -1,21 +0,0 @@ -"use strict"; - -var Q = require("../../q"); - -var generator = Q.async(function* () { - try { - var ten = yield Q.reject(new Error("Rejected!")); - console.log("Should not get here 1"); - } catch (exception) { - console.log("Should get here 1"); - console.log(exception.message, "should be", "Rejected!"); - throw new Error("Threw!"); - } -}); - -generator().then(function () { - console.log("Should not get here 2"); -}, function (reason) { - console.log("Should get here 2"); - console.log(reason.message, "should be", "Threw!"); -}); diff --git a/vendors/Q/examples/async-generators/3-spawn.js b/vendors/Q/examples/async-generators/3-spawn.js deleted file mode 100644 index 85fe0672c..000000000 --- a/vendors/Q/examples/async-generators/3-spawn.js +++ /dev/null @@ -1,21 +0,0 @@ -"use strict"; - -var Q = require("../../q"); - -function foo() { - return Q.delay(5, 1000); -} - -function bar() { - return Q.delay(10, 1000); -} - -Q.spawn(function* () { - var x = yield foo(); - console.log(x); - - var y = yield bar(); - console.log(y); - - console.log("result", x + y); -}); diff --git a/vendors/Q/examples/async-generators/4-flow-control.js b/vendors/Q/examples/async-generators/4-flow-control.js deleted file mode 100644 index 017bf8a0d..000000000 --- a/vendors/Q/examples/async-generators/4-flow-control.js +++ /dev/null @@ -1,42 +0,0 @@ -"use strict"; - -var Q = require("../../q"); - -// We get back blocking semantics: can use promises with `if`, `while`, `for`, -// etc. -var filter = Q.async(function* (promises, test) { - var results = []; - for (var i = 0; i < promises.length; i++) { - var val = yield promises[i]; - if (test(val)) { - results.push(val); - } - } - return results; -}); - -var promises = [ - Q.delay("a", 500), - Q.delay("d", 1000), - Q("l") -]; - -filter(promises, function (letter) { - return "f" > letter; -}).done(function (all) { - console.log(all); // [ "a", "d" ] -}); - - -// we can use try and catch to handle rejected promises -var logRejections = Q.async(function* (work) { - try { - yield work; - console.log("Never end up here"); - } catch (e) { - console.log("Caught:", e.message); - } -}); - -var rejection = Q.reject(new Error("Oh dear")); -logRejections(rejection); // Caught: Oh dear diff --git a/vendors/Q/examples/async-generators/README.md b/vendors/Q/examples/async-generators/README.md deleted file mode 100644 index c409f0b0e..000000000 --- a/vendors/Q/examples/async-generators/README.md +++ /dev/null @@ -1,66 +0,0 @@ -:warning: Warning: The behavior described here is likely to be quickly -obseleted by developments in standardization and implementation. Tread with -care. - -Q has an `async` function. This can be used to decorate a generator function -such that `yield` is effectively equivalent to `await` or `defer` syntax as -supported by languages like Go and C# 5. - -Generator functions are presently on the standards track for ES6. As of July -2013, they are only fully supported by bleeding edge V8, which hasn't made it -out to a released Chromium yet but will probably be in Chromium 29. Even then, -they must be enabled from [chrome://flags](chrome://flags) as "Experimental -JavaScript features." SpiderMonkey (used in Firefox) includes an older style of -generators, but these are not supported by Q. - -Here's an example of using generators by themselves, without any Q features: - -```js -function* count() { - var i = 0; - while (true) { - yield i++; - } -} - -var counter = count(); -counter.next().value === 0; -counter.next().value === 1; -counter.next().value === 2; -``` - -`yield` can also return a value, if the `next` method of the generator is -called with a parameter: - -```js -var buffer = (function* () { - var x; - while (true) { - x = yield x; - } -}()); - -buffer.next(1).value === undefined; -buffer.next("a").value === 1; -buffer.value(2).value === "a"; -buffer.next().value === 2; -buffer.next().value === undefined; -buffer.next().value === undefined; -``` - -Inside functions wrapped with `Q.async`, we can use `yield` to wait for a -promise to settle: - -```js -var eventualAdd = Q.async(function* (oneP, twoP) { - var one = yield oneP; - var two = yield twoP; - return one + two; -}); - -eventualAdd(eventualOne, eventualTwo).then(function (three) { - three === 3; -}); -``` -You can see more examples of how this works, as well as the `Q.spawn` function, -in the other files in this folder. diff --git a/vendors/Q/package.json b/vendors/Q/package.json deleted file mode 100644 index fa99c9ee0..000000000 --- a/vendors/Q/package.json +++ /dev/null @@ -1,79 +0,0 @@ -{ - "name": "q", - "version": "1.1.2", - "description": "A library for promises (CommonJS/Promises/A,B,D)", - "homepage": "https://github.com/kriskowal/q", - "author": "Kris Kowal (https://github.com/kriskowal)", - "keywords": [ - "q", - "promise", - "promises", - "promises-a", - "promises-aplus", - "deferred", - "future", - "async", - "flow control", - "fluent", - "browser", - "node" - ], - "contributors": [ - "Kris Kowal (https://github.com/kriskowal)", - "Irakli Gozalishvili (http://jeditoolkit.com)", - "Domenic Denicola (http://domenicdenicola.com)" - ], - "bugs": { - "mail": "kris@cixar.com", - "url": "http://github.com/kriskowal/q/issues" - }, - "license": { - "type": "MIT", - "url": "http://github.com/kriskowal/q/raw/master/LICENSE" - }, - "main": "q.js", - "files": [ - "LICENSE", - "q.js", - "queue.js" - ], - "repository": { - "type": "git", - "url": "git://github.com/kriskowal/q.git" - }, - "engines": { - "node": ">=0.6.0", - "teleport": ">=0.2.0" - }, - "dependencies": {}, - "devDependencies": { - "jshint": "~2.1.9", - "cover": "*", - "jasmine-node": "1.11.0", - "opener": "*", - "promises-aplus-tests": "1.x", - "grunt": "~0.4.1", - "grunt-cli": "~0.1.9", - "grunt-contrib-uglify": "~0.2.2", - "matcha": "~0.2.0" - }, - "scripts": { - "test": "jasmine-node spec && promises-aplus-tests spec/aplus-adapter", - "test-browser": "opener spec/q-spec.html", - "benchmark": "matcha", - "lint": "jshint q.js", - "cover": "cover run node_modules/jasmine-node/bin/jasmine-node spec && cover report html && opener cover_html/index.html", - "minify": "grunt", - "prepublish": "grunt" - }, - "overlay": { - "teleport": { - "dependencies": { - "system": ">=0.0.4" - } - } - }, - "directories": { - "test": "./spec" - } -} diff --git a/vendors/Q/q.js b/vendors/Q/q.js deleted file mode 100644 index 49e945a26..000000000 --- a/vendors/Q/q.js +++ /dev/null @@ -1,1937 +0,0 @@ -// vim:ts=4:sts=4:sw=4: -/*! - * - * Copyright 2009-2012 Kris Kowal under the terms of the MIT - * license found at http://github.com/kriskowal/q/raw/master/LICENSE - * - * With parts by Tyler Close - * Copyright 2007-2009 Tyler Close under the terms of the MIT X license found - * at http://www.opensource.org/licenses/mit-license.html - * Forked at ref_send.js version: 2009-05-11 - * - * With parts by Mark Miller - * Copyright (C) 2011 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -(function (definition) { - "use strict"; - - // This file will function properly as a - - - - - - - - - - - - - - - - diff --git a/vendors/Q/spec/q-spec.js b/vendors/Q/spec/q-spec.js deleted file mode 100644 index 005e3cbaa..000000000 --- a/vendors/Q/spec/q-spec.js +++ /dev/null @@ -1,2611 +0,0 @@ -"use strict"; -/*jshint newcap: false*/ -/*global Q: true, describe: false, it: false, expect: false, beforeEach: false, - afterEach: false, require: false, jasmine: false, waitsFor: false, - runs: false */ - -if (typeof Q === "undefined" && typeof require !== "undefined") { - // For Node compatibility. - global.Q = require("../q"); - require("./lib/jasmine-promise"); -} - -var REASON = "this is not an error, but it might show up in the console"; - -// In browsers that support strict mode, it'll be `undefined`; otherwise, the global. -var calledAsFunctionThis = (function () { return this; }()); - -afterEach(function () { - Q.onerror = null; -}); - -describe("computing sum of integers using promises", function() { - it("should compute correct result without blowing stack", function () { - var array = []; - var iters = 1000; - for (var i = 1; i <= iters; i++) { - array.push(i); - } - - var pZero = Q.fulfill(0); - var result = array.reduce(function (promise, nextVal) { - return promise.then(function (currentVal) { - return Q.fulfill(currentVal + nextVal); - }); - }, pZero); - - return result.then(function (value) { - expect(value).toEqual(iters * (iters + 1) / 2); - }); - }); -}); - -describe("Q function", function () { - it("should result in a fulfilled promise when given a value", function () { - expect(Q(5).isFulfilled()).toBe(true); - }); - - it("should be the identity when given promise", function () { - var f = Q.fulfill(5); - var r = Q.reject(new Error("aaargh")); - var p = Q.promise(function () { }); - - expect(Q(f)).toBe(f); - expect(Q(r)).toBe(r); - expect(Q(p)).toBe(p); - }); -}); - -describe("defer and when", function () { - - it("resolve before when", function () { - var turn = 0; - var deferred = Q.defer(); - deferred.resolve(10); - var promise = Q.when(deferred.promise, function (value) { - expect(turn).toEqual(1); - expect(value).toEqual(10); - }); - turn++; - return promise; - }); - - it("reject before when", function () { - var turn = 0; - var deferred = Q.defer(); - deferred.reject(-1); - var promise = Q.when(deferred.promise, function () { - expect(true).toBe(false); - }, function (value) { - expect(turn).toEqual(1); - expect(value).toEqual(-1); - }); - turn++; - return promise; - }); - - it("when before resolve", function () { - var turn = 0; - var deferred = Q.defer(); - var promise = deferred.promise.then(function (value) { - expect(turn).toEqual(2); - expect(value).toEqual(10); - turn++; - }); - Q.nextTick(function () { - expect(turn).toEqual(1); - deferred.resolve(10); - turn++; - }); - turn++; - return promise; - }); - - it("when before reject", function () { - var turn = 0; - var deferred = Q.defer(); - var promise = deferred.promise.then(function () { - expect(true).toBe(false); - }, function (value) { - expect(turn).toEqual(2); - expect(value).toEqual(-1); - turn++; - }); - Q.nextTick(function () { - expect(turn).toEqual(1); - deferred.reject(-1); - turn++; - }); - turn++; - return promise; - }); - - it("resolves multiple observers", function (done) { - var nextTurn = false; - - var resolution = "Taram pam param!"; - var deferred = Q.defer(); - var count = 10; - var i = 0; - - function resolve(value) { - i++; - expect(value).toBe(resolution); - expect(nextTurn).toBe(true); - if (i === count) { - done(); - } - } - - while (++i <= count) { - Q.when(deferred.promise, resolve); - } - - deferred.resolve(resolution); - i = 0; - nextTurn = true; - }); - - it("observers called even after throw", function () { - var threw = false; - var deferred = Q.defer(); - Q.when(deferred.promise, function () { - threw = true; - throw new Error(REASON); - }); - var promise = Q.when(deferred.promise, function (value) { - expect(value).toEqual(10); - }, function () { - expect("not").toEqual("here"); - }); - deferred.resolve(10); - return promise; - }); - - it("returns `undefined` from the deferred's methods", function () { - expect(Q.defer().resolve()).toBe(undefined); - expect(Q.defer().reject()).toBe(undefined); - }); - -}); - -describe("always next tick", function () { - - it("generated by `resolve`", function () { - var turn = 0; - var promise = Q.when(Q(), function () { - expect(turn).toEqual(1); - }); - turn++; - return promise; - }); - - it("generated by `reject`", function () { - var turn = 0; - var promise = Q.when(Q.reject(), function () { - expect(true).toBe(false); - }, function () { - expect(turn).toEqual(1); - }); - turn++; - return promise; - }); - - it("allows overriding global nextTick", function () { - var spy = jasmine.createSpy(); - spyOn(Q, 'nextTick').andCallFake(function immediateTick(task){ - task(); - }); - - Q.when(Q(), spy); - - expect(spy).toHaveBeenCalled(); - expect(Q.nextTick).toHaveBeenCalled(); - }); -}); - -describe("progress", function () { - - it("calls a single progress listener", function () { - var progressed = false; - var deferred = Q.defer(); - - var promise = Q.when( - deferred.promise, - function () { - expect(progressed).toBe(true); - }, - function () { - expect(true).toBe(false); - }, - function () { - progressed = true; - } - ); - - deferred.notify(); - deferred.resolve(); - - return promise; - }); - - it("calls multiple progress listeners", function () { - var progressed1 = false; - var progressed2 = false; - var deferred = Q.defer(); - var promise = Q.when( - deferred.promise, - function () { - expect(progressed1).toBe(true); - expect(progressed2).toBe(true); - }, - function () { - expect(true).toBe(false); - }, - function () { - progressed1 = true; - } - ); - Q.when(deferred.promise, null, null, function () { - progressed2 = true; - }); - - deferred.notify(); - deferred.resolve(); - - return promise; - }); - - it("calls all progress listeners even if one throws", function () { - var progressed1 = false; - var progressed2 = false; - var progressed3 = false; - var deferred = Q.defer(); - var promise = Q.when( - deferred.promise, - function () { - expect(progressed1).toBe(true); - expect(progressed2).toBe(true); - expect(progressed3).toBe(true); - }, - function () { - expect(true).toBe(false); - }, - function () { - progressed1 = true; - } - ); - - Q.onerror = function () { }; - - Q.when(deferred.promise, null, null, function () { - progressed2 = true; - throw new Error("just a test, ok if it shows up in the console"); - }); - Q.when(deferred.promise, null, null, function () { - progressed3 = true; - }); - - deferred.notify(); - deferred.resolve(); - - return promise; - }); - - it("calls the progress listener even if later rejected", function () { - var progressed = false; - var deferred = Q.defer(); - var promise = Q.when( - deferred.promise, - function () { - expect(true).toBe(false); - }, - function () { - expect(progressed).toEqual(true); - }, - function () { - progressed = true; - } - ); - - deferred.notify(); - deferred.reject(); - - return promise; - }); - - it("calls the progress listener with the notify values", function () { - var progressValues = []; - var desiredProgressValues = [{}, {}, "foo", 5]; - var deferred = Q.defer(); - var promise = Q.when( - deferred.promise, - function () { - for (var i = 0; i < desiredProgressValues.length; ++i) { - var desired = desiredProgressValues[i]; - var actual = progressValues[i]; - expect(actual).toBe(desired); - } - }, - function () { - expect(true).toBe(false); - }, - function (value) { - progressValues.push(value); - } - ); - - for (var i = 0; i < desiredProgressValues.length; ++i) { - deferred.notify(desiredProgressValues[i]); - } - deferred.resolve(); - - return promise; - }); - - it("does not call the progress listener if notify is called after fulfillment", function () { - var deferred = Q.defer(); - var called = false; - - Q.when(deferred.promise, null, null, function () { - called = true; - }); - - deferred.resolve(); - deferred.notify(); - - return Q.delay(10).then(function () { - expect(called).toBe(false); - }); - }); - - it("does not call the progress listener if notify is called after rejection", function () { - var deferred = Q.defer(); - var called = false; - - Q.when(deferred.promise, null, null, function () { - called = true; - }); - - deferred.reject(); - deferred.notify(); - - return Q.delay(10).then(function () { - expect(called).toBe(false); - }); - }); - - it("should not save and re-emit progress notifications", function () { - var deferred = Q.defer(); - var progressValues = []; - - deferred.notify(1); - - var promise = Q.when( - deferred.promise, - function () { - expect(progressValues).toEqual([2]); - }, - function () { - expect(true).toBe(false); - }, - function (progressValue) { - progressValues.push(progressValue); - } - ); - - deferred.notify(2); - deferred.resolve(); - - return promise; - }); - - it("should allow attaching progress listeners w/ .progress", function () { - var progressed = false; - var deferred = Q.defer(); - - deferred.promise.progress(function () { - progressed = true; - }); - - deferred.notify(); - deferred.resolve(); - - return deferred.promise; - }); - - it("should allow attaching progress listeners w/ Q.progress", function () { - var progressed = false; - var deferred = Q.defer(); - - Q.progress(deferred.promise, function () { - progressed = true; - }); - - deferred.notify(); - deferred.resolve(); - - return deferred.promise; - }); - - it("should call the progress listener with undefined context", function () { - var progressed = false; - var progressContext = {}; - var deferred = Q.defer(); - var promise = Q.when( - deferred.promise, - function () { - expect(progressed).toBe(true); - expect(progressContext).toBe(calledAsFunctionThis); - }, - function () { - expect(true).toBe(false); - }, - function () { - progressed = true; - progressContext = this; - } - ); - - deferred.notify(); - deferred.resolve(); - - return promise; - }); - - it("should forward only the first notify argument to listeners", function () { - var progressValueArrays = []; - var deferred = Q.defer(); - - var promise = Q.when( - deferred.promise, - function () { - expect(progressValueArrays).toEqual([[1], [2], [4]]); - }, - function () { - expect(true).toBe(false); - }, - function () { - var args = Array.prototype.slice.call(arguments); - progressValueArrays.push(args); - } - ); - - deferred.notify(1); - deferred.notify(2, 3); - deferred.notify(4, 5, 6); - deferred.resolve(); - - return promise; - }); - - it("should work with .then as well", function () { - var progressed = false; - var deferred = Q.defer(); - - var promise = deferred.promise.then( - function () { - expect(progressed).toBe(true); - }, - function () { - expect(true).toBe(false); - }, - function () { - progressed = true; - } - ); - - deferred.notify(); - deferred.resolve(); - - return promise; - }); - - it("should re-throw all errors thrown by listeners to Q.onerror", function () { - var theError = new Error("boo!"); - - var def = Q.defer(); - def.promise.progress(function () { - throw theError; - }); - - var deferred = Q.defer(); - Q.onerror = function (error) { - expect(error).toBe(theError); - deferred.resolve(); - }; - Q.delay(100).then(deferred.reject); - - def.notify(); - - return deferred.promise; - }); -}); - -describe("promises for objects", function () { - - describe("get", function () { - - it("fulfills a promise", function () { - var deferred = Q.defer(); - deferred.resolve({a: 1}); - return deferred.promise.get("a") - .then(function (a) { - expect(a).toBe(1); - }); - }); - - it("propagates a rejection", function () { - var exception = new Error("boo!"); - return Q.fcall(function () { - throw exception; - }) - .get("a") - .then(function () { - expect("be").toBe("not to be"); - }, function (_exception) { - expect(_exception).toBe(exception); - }); - }); - - }); - - describe("set", function () { - - it("fulfills a promise", function () { - var object = {}; - return Q(object) - .set("a", 1) - .then(function (result) { - expect(result).toBe(undefined); - expect(object.a).toBe(1); - }); - }); - - it("propagates a rejection", function () { - var exception = new Error("Gah!"); - return Q.reject(exception) - .set("a", 1) - .then(function () { - expect("frozen over").toBe("quite warm"); - }, function (_exception) { - expect(_exception).toBe(exception); - }); - }); - - }); - - describe("del", function () { - - it("fulfills a promise", function () { - var object = {a: 10}; - return Q.fcall(function () { - return object; - }) - .del("a") - .then(function (result) { - expect("a" in object).toBe(false); - expect(result).toBe(void 0); - }, function () { - expect("up").toBe("down"); - }); - }); - - it("propagates a rejection", function () { - var exception = new Error("hah-hah"); - return Q.fcall(function () { - throw exception; - }) - .del("a") - .then(function () { - expect(true).toBe(false); - }, function (_exception) { - expect(_exception).toBe(exception); - }); - }); - - }); - - describe("post", function () { - - it("fulfills a promise", function () { - var subject = { - a: function a(value) { - this._a = value; - return 1 + value; - } - }; - return Q.when(Q.post(subject, "a", [1]), function (two) { - expect(subject._a).toBe(1); - expect(two).toBe(2); - }); - }); - - it("works as apply when given no name", function () { - return Q(function (a, b, c) { - return a + b + c; - }) - .post(undefined, [1, 2, 3]) - .then(function (sum) { - expect(sum).toEqual(6); - }); - }); - - }); - - describe("send", function () { - - it("fulfills a promise", function () { - var foo; - var subject = { - foo: function (_bar) { - return _bar; - }, - bar: function (_foo, _bar) { - foo = _foo; - return this.foo(_bar); - } - }; - return Q.send(subject, "bar", 1, 2) - .then(function (two) { - expect(foo).toEqual(1); - expect(two).toEqual(2); - }); - }); - - it("is rejected for undefined method", function () { - var subject = {}; - return Q(subject) - .send("foo") - .then(function () { - expect("here").toEqual("not here"); - }, function () { - }); - }); - - it("is rejected for undefined object", function () { - return Q() - .send("foo") - .then(function () { - expect("here").toEqual("not here"); - }, function () { - }); - }); - - }); - - describe("keys", function () { - - function Klass (a, b) { - this.a = a; - this.b = b; - } - Klass.prototype.notOwn = 1; - - it("fulfills a promise", function () { - return Q.keys(new Klass(10, 20)) - .then(function (keys) { - expect(keys.sort()).toEqual(["a", "b"]); - }); - }); - - }); - -}); - -describe("promises for functions", function () { - - describe("fapply", function () { - it("fulfills a promise using arguments", function () { - return Q(function (a, b, c) { - return a + b + c; - }) - .fapply([1, 2, 3]) - .then(function (sum) { - expect(sum).toEqual(6); - }); - }); - }); - - describe("fcall", function () { - it("fulfills a promise using arguments", function () { - return Q(function (a, b, c) { - return a + b + c; - }) - .fcall(1, 2, 3) - .then(function (sum) { - expect(sum).toEqual(6); - }); - }); - }); - - describe("fbind", function () { - - it("accepts a promise for a function", function () { - return Q.fbind(Q(function (high, low) { - return high - low; - })) - (2, 1) - .then(function (difference) { - expect(difference).toEqual(1); - }); - }); - - it("chains partial application on a promise for a function", function () { - return Q(function (a, b) { - return a * b; - }) - .fbind(2)(3) - .then(function (product) { - expect(product).toEqual(6); - }); - }); - - it("returns a fulfilled promise", function () { - var result = {}; - var bound = Q.fbind(function () { - return result; - }); - return bound() - .then(function (_result) { - expect(_result).toBe(result); - }); - }); - - it("returns a rejected promise from a thrown error", function () { - var exception = new Error("Boo!"); - var bound = Q.fbind(function () { - throw exception; - }); - return bound() - .then(function () { - expect("flying pigs").toBe("swillin' pigs"); - }, function (_exception) { - expect(_exception).toBe(exception); - }); - }); - - it("passes arguments through", function () { - var x = {}, y = {}; - var bound = Q.fbind(function (a, b) { - expect(a).toBe(x); - expect(b).toBe(y); - }); - return bound(x, y); - }); - - it("passes and also partially applies arguments", function () { - var x = {}, y = {}; - var bound = Q.fbind(function (a, b) { - expect(a).toBe(x); - expect(b).toBe(y); - }, x); - return bound(y); - }); - - it("doesn't bind `this`", function () { - var theThis = { me: "this" }; - var bound = Q.fbind(function () { - expect(this).toBe(theThis); - }); - - return bound.call(theThis); - }); - - }); - -}); - -describe("inspect", function () { - - it("for a fulfilled promise", function () { - expect(Q(10).inspect()).toEqual({ - state: "fulfilled", - value: 10 - }); - }); - - it("for a rejected promise", function () { - var error = new Error("In your face."); - var rejected = Q.reject(error); - expect(rejected.inspect()).toEqual({ - state: "rejected", - reason: error - }); - }); - - it("for a pending, unresolved promise", function () { - var pending = Q.defer().promise; - expect(pending.inspect()).toEqual({ state: "pending" }); - }); - - it("for a promise resolved to a rejected promise", function () { - var deferred = Q.defer(); - var error = new Error("Rejected!"); - var rejected = Q.reject(error); - deferred.resolve(rejected); - - expect(deferred.promise.inspect()).toEqual({ - state: "rejected", - reason: error - }); - }); - - it("for a promise resolved to a fulfilled promise", function () { - var deferred = Q.defer(); - var fulfilled = Q(10); - deferred.resolve(fulfilled); - - expect(deferred.promise.inspect()).toEqual({ - state: "fulfilled", - value: 10 - }); - }); - - it("for a promise resolved to a pending promise", function () { - var a = Q.defer(); - var b = Q.defer(); - a.resolve(b.promise); - - expect(a.promise.inspect()).toEqual({ state: "pending" }); - }); - -}); - -describe("promise states", function () { - - it("of fulfilled value", function () { - expect(Q.isFulfilled(void 0)).toBe(true); - expect(Q.isRejected(false)).toBe(false); - expect(Q.isPending(true)).toBe(false); - }); - - it("of fulfillment", function () { - var promise = Q(10); - expect(Q.isFulfilled(promise)).toBe(true); - expect(promise.isFulfilled()).toBe(true); - expect(Q.isRejected(promise)).toBe(false); - expect(promise.isRejected()).toBe(false); - expect(Q.isPending(promise)).toBe(false); - expect(promise.isPending()).toBe(false); - }); - - it("of rejection", function () { - var error = new Error("Oh, snap."); - var promise = Q.reject(error); - expect(promise.isFulfilled()).toBe(false); - expect(promise.isRejected()).toBe(true); - expect(promise.isPending()).toBe(false); - }); - - it("of rejection with a falsy value", function () { - var promise = Q.reject(undefined); - expect(promise.isFulfilled()).toBe(false); - expect(promise.isRejected()).toBe(true); - expect(promise.isPending()).toBe(false); - }); - - it("of deferred", function () { - var deferred = Q.defer(); - var promise = deferred.promise; - expect(promise.isFulfilled()).toBe(false); - expect(promise.isRejected()).toBe(false); - expect(promise.isPending()).toBe(true); - }); - - it("of deferred rejection", function () { - var deferred = Q.defer(); - var rejection = Q.reject(new Error("Rejected!")); - deferred.resolve(rejection); - var promise = deferred.promise; - expect(promise.isFulfilled()).toBe(false); - expect(promise.isRejected()).toBe(true); - expect(promise.isPending()).toBe(false); - }); - - it("of deferred fulfillment", function () { - var deferred = Q.defer(); - deferred.resolve(10); - var promise = deferred.promise; - expect(promise.isFulfilled()).toBe(true); - expect(promise.isRejected()).toBe(false); - expect(promise.isPending()).toBe(false); - }); - - it("of deferred deferred", function () { - var a = Q.defer(); - var b = Q.defer(); - a.resolve(b.promise); - var promise = a.promise; - expect(promise.isFulfilled()).toBe(false); - expect(promise.isRejected()).toBe(false); - expect(promise.isPending()).toBe(true); - }); - - it("of isFulfilled side effects", function () { - var deferred = Q.defer(); - var finished = false; - - waitsFor(function () { - return finished; - }); - - var parentPromise = deferred.promise; - - var childPromise = parentPromise.then(function () { - expect(parentPromise.isFulfilled()).toBe(true); - expect(childPromise.isFulfilled()).toBe(false); - - return parentPromise.then(function (value) { - finished = true; - return value + 1; - }); - }); - - deferred.resolve(1); - - runs(function () { - expect(childPromise.isPending()).toBe(false); - expect(childPromise.isRejected()).toBe(false); - expect(childPromise.isFulfilled()).toBe(true); - expect(childPromise.inspect().value).toBe(2); - }); - }); - -}); - -describe("propagation", function () { - - it("propagate through then with no callback", function () { - return Q(10) - .then() - .then(function (ten) { - expect(ten).toBe(10); - }); - }); - - it("propagate through then with modifying callback", function () { - return Q(10) - .then(function (ten) { - return ten + 10; - }) - .then(function (twen) { - expect(twen).toBe(20); - }); - }); - - it("errback recovers from exception", function () { - var error = new Error("Bah!"); - return Q.reject(error) - .then(null, function (_error) { - expect(_error).toBe(error); - return 10; - }) - .then(function (value) { - expect(value).toBe(10); - }); - }); - - it("rejection propagates through then with no errback", function () { - var error = new Error("Foolish mortals!"); - return Q.reject(error) - .then() - .then(null, function (_error) { - expect(_error).toBe(error); - }); - }); - - it("rejection intercepted and rethrown", function () { - var error = new Error("Foolish mortals!"); - var nextError = new Error("Silly humans!"); - return Q.reject(error) - .fail(function () { - throw nextError; - }) - .then(null, function (_error) { - expect(_error).toBe(nextError); - }); - }); - - it("resolution is forwarded through deferred promise", function () { - var a = Q.defer(); - var b = Q.defer(); - a.resolve(b.promise); - b.resolve(10); - return a.promise.then(function (eh) { - expect(eh).toEqual(10); - }); - }); - - it("should propagate progress by default", function () { - var d = Q.defer(); - - var progressValues = []; - var promise = d.promise - .then() - .then( - function () { - expect(progressValues).toEqual([1]); - }, - function () { - expect(true).toBe(false); - }, - function (progressValue) { - progressValues.push(progressValue); - } - ); - - d.notify(1); - d.resolve(); - - return promise; - }); - - it("should allow translation of progress in the progressback", function () { - var d = Q.defer(); - - var progressValues = []; - var promise = d.promise - .progress(function (p) { - return p + 5; - }) - .then( - function () { - expect(progressValues).toEqual([10]); - }, - function () { - expect(true).toBe(false); - }, - function (progressValue) { - progressValues.push(progressValue); - } - ); - - d.notify(5); - d.resolve(); - - return promise; - }); - - - it("should stop progress propagation if an error is thrown", function () { - var def = Q.defer(); - var p2 = def.promise.progress(function () { - throw new Error("boo!"); - }); - - Q.onerror = function () { /* just swallow it for this test */ }; - - var progressValues = []; - var result = p2.then( - function () { - expect(progressValues).toEqual([]); - }, - function () { - expect(true).toBe(false); - }, - function (progressValue) { - progressValues.push(progressValue); - } - ); - - def.notify(); - def.resolve(); - return result; - }); -}); - -describe("all", function () { - it("fulfills when passed an empty array", function () { - return Q.all([]); - }); - - it("rejects after any constituent promise is rejected", function () { - var toResolve = Q.defer(); // never resolve - var toReject = Q.defer(); - var promises = [toResolve.promise, toReject.promise]; - var promise = Q.all(promises); - - toReject.reject(new Error("Rejected")); - - return Q.delay(250) - .then(function () { - expect(promise.isRejected()).toBe(true); - }) - .timeout(1000); - }); - - it("resolves foreign thenables", function () { - var normal = Q(1); - var foreign = { then: function (f) { f(2); } }; - - return Q.all([normal, foreign]) - .then(function (result) { - expect(result).toEqual([1, 2]); - }); - }); - - it("fulfills when passed an sparse array", function () { - var toResolve = Q.defer(); - var promises = []; - promises[0] = Q(0); - promises[2] = toResolve.promise; - var promise = Q.all(promises); - - toResolve.resolve(2); - - return promise.then(function (result) { - expect(result).toEqual([0, void 0, 2]); - }); - }); - - it("modifies the input array", function () { - var input = [Q(0), Q(1)]; - - return Q.all(input).then(function (result) { - expect(result).toBe(input); - expect(input).toEqual([0, 1]); - }); - }); - - it("sends { index, value } progress updates", function () { - var deferred1 = Q.defer(); - var deferred2 = Q.defer(); - - var progressValues = []; - - Q.delay(50).then(function () { - deferred1.notify("a"); - }); - Q.delay(100).then(function () { - deferred2.notify("b"); - deferred2.resolve(); - }); - Q.delay(150).then(function () { - deferred1.notify("c"); - deferred1.resolve(); - }); - - return Q.all([deferred1.promise, deferred2.promise]).then( - function () { - expect(progressValues).toEqual([ - { index: 0, value: "a" }, - { index: 1, value: "b" }, - { index: 0, value: "c" } - ]); - }, - undefined, - function (progressValue) { - progressValues.push(progressValue); - } - ) - }); - -}); - -describe("allSettled", function () { - it("works on an empty array", function () { - return Q.allSettled([]) - .then(function (snapshots) { - expect(snapshots).toEqual([]); - }); - }); - - it("deals with a mix of non-promises and promises", function () { - return Q.allSettled([1, Q(2), Q.reject(3)]) - .then(function (snapshots) { - expect(snapshots).toEqual([ - { state: "fulfilled", value: 1 }, - { state: "fulfilled", value: 2 }, - { state: "rejected", reason: 3 } - ]); - }); - }); - - it("is settled after every constituent promise is settled", function () { - var toFulfill = Q.defer(); - var toReject = Q.defer(); - var promises = [toFulfill.promise, toReject.promise]; - var fulfilled; - var rejected; - - Q.fcall(function () { - toReject.reject(); - rejected = true; - }) - .delay(15) - .then(function () { - toFulfill.resolve(); - fulfilled = true; - }); - - return Q.allSettled(promises) - .then(function () { - expect(fulfilled).toBe(true); - expect(rejected).toBe(true); - }); - }); - - it("does not modify the input array", function () { - var input = [1, Q(2), Q.reject(3)]; - - return Q.allSettled(input) - .then(function (snapshots) { - expect(snapshots).not.toBe(input); - expect(snapshots).toEqual([ - { state: "fulfilled", value: 1 }, - { state: "fulfilled", value: 2 }, - { state: "rejected", reason: 3 } - ]); - }); - }); - -}); - -describe("spread", function () { - - it("spreads values across arguments", function () { - return Q.spread([1, 2, 3], function (a, b) { - expect(b).toBe(2); - }); - }); - - it("spreads promises for arrays across arguments", function () { - return Q([Q(10)]) - .spread(function (value) { - expect(value).toEqual(10); - }); - }); - - it("spreads arrays of promises across arguments", function () { - var deferredA = Q.defer(); - var deferredB = Q.defer(); - - var promise = Q.spread([deferredA.promise, deferredB.promise], - function (a, b) { - expect(a).toEqual(10); - expect(b).toEqual(20); - }); - - Q.delay(5).then(function () { - deferredA.resolve(10); - }); - Q.delay(10).then(function () { - deferredB.resolve(20); - }); - - return promise; - }); - - it("calls the errback when given a rejected promise", function () { - var err = new Error(); - return Q.spread([Q(10), Q.reject(err)], - function () { - expect(true).toBe(false); - }, - function (actual) { - expect(actual).toBe(err); - } - ); - }); - -}); - -describe("fin", function () { - - var exception1 = new Error("boo!"); - var exception2 = new TypeError("evil!"); - - describe("when the promise is fulfilled", function () { - - it("should call the callback", function () { - var called = false; - - return Q("foo") - .fin(function () { - called = true; - }) - .then(function () { - expect(called).toBe(true); - }); - }); - - it("should fulfill with the original value", function () { - return Q("foo") - .fin(function () { - return "bar"; - }) - .then(function (result) { - expect(result).toBe("foo"); - }); - }); - - describe("when the callback returns a promise", function () { - - describe("that is fulfilled", function () { - it("should fulfill with the original reason after that promise resolves", function () { - var promise = Q.delay(250); - - return Q("foo") - .fin(function () { - return promise; - }) - .then(function (result) { - expect(Q.isPending(promise)).toBe(false); - expect(result).toBe("foo"); - }); - }); - }); - - describe("that is rejected", function () { - it("should reject with this new rejection reason", function () { - return Q("foo") - .fin(function () { - return Q.reject(exception1); - }) - .then(function () { - expect(false).toBe(true); - }, - function (exception) { - expect(exception).toBe(exception1); - }); - }); - }); - - }); - - describe("when the callback throws an exception", function () { - it("should reject with this new exception", function () { - return Q("foo") - .fin(function () { - throw exception1; - }) - .then(function () { - expect(false).toBe(true); - }, - function (exception) { - expect(exception).toBe(exception1); - }); - }); - }); - - }); - - describe("when the promise is rejected", function () { - - it("should call the callback", function () { - var called = false; - - return Q.reject(exception1) - .fin(function () { - called = true; - }) - .then(function () { - expect(called).toBe(true); - }, function () { - expect(called).toBe(true); - }); - }); - - it("should reject with the original reason", function () { - return Q.reject(exception1) - .fin(function () { - return "bar"; - }) - .then(function () { - expect(false).toBe(true); - }, - function (exception) { - expect(exception).toBe(exception1); - }); - }); - - describe("when the callback returns a promise", function () { - - describe("that is fulfilled", function () { - it("should reject with the original reason after that promise resolves", function () { - var promise = Q.delay(250); - - return Q.reject(exception1) - .fin(function () { - return promise; - }) - .then(function () { - expect(false).toBe(true); - }, - function (exception) { - expect(exception).toBe(exception1); - expect(Q.isPending(promise)).toBe(false); - }); - }); - }); - - describe("that is rejected", function () { - it("should reject with the new reason", function () { - return Q.reject(exception1) - .fin(function () { - return Q.reject(exception2); - }) - .then(function () { - expect(false).toBe(true); - }, - function (exception) { - expect(exception).toBe(exception2); - }); - }); - }); - - }); - - describe("when the callback throws an exception", function () { - it("should reject with this new exception", function () { - return Q.reject(exception1) - .fin(function () { - throw exception2; - }) - .then(function () { - expect(false).toBe(true); - }, - function (exception) { - expect(exception).toBe(exception2); - }); - }); - }); - - }); - -}); - -// Almost like "fin" -describe("tap", function () { - var exception1 = new Error("boo!"); - - describe("when the promise is fulfilled", function () { - it("should call the callback", function () { - var called = false; - return Q("foo") - .tap(function () { - called = true; - }) - .then(function () { - expect(called).toBe(true); - }); - }); - - it("should fulfill with the original value", function () { - return Q("foo") - .tap(function () { - return "bar"; - }) - .then(function (result) { - expect(result).toBe("foo"); - }); - }); - - describe("when the callback returns a promise", function () { - describe("that is fulfilled", function () { - it("should fulfill with the original reason after that promise resolves", function () { - var promise = Q.delay(250); - - return Q("foo") - .tap(function () { - return promise; - }) - .then(function (result) { - expect(Q.isPending(promise)).toBe(false); - expect(result).toBe("foo"); - }); - }); - }); - - describe("that is rejected", function () { - it("should reject with this new rejection reason", function () { - return Q("foo") - .tap(function () { - return Q.reject(exception1); - }) - .then(function () { - expect(false).toBe(true); - }, - function (exception) { - expect(exception).toBe(exception1); - }); - }); - }); - - }); - - describe("when the callback throws an exception", function () { - it("should reject with this new exception", function () { - return Q("foo") - .tap(function () { - throw exception1; - }) - .then(function () { - expect(false).toBe(true); - }, - function (exception) { - expect(exception).toBe(exception1); - }); - }); - }); - - }); - - describe("when the promise is rejected", function () { - it("should not call the callback", function () { - var called = false; - - return Q.reject(exception1) - .tap(function () { - called = true; - }) - .then(function () { - expect(called).toBe(false); - }, function () { - expect(called).toBe(false); - }); - }); - }); -}); - - -describe("done", function () { - describe("when the promise is fulfilled", function () { - describe("and the callback does not throw", function () { - it("should call the callback and return nothing", function () { - var called = false; - - var promise = Q(); - - var returnValue = promise.done(function () { - called = true; - }); - - return promise.fail(function () { }).fin(function () { - expect(called).toBe(true); - expect(returnValue).toBe(undefined); - }); - }); - }); - - describe("and the callback throws", function () { - it("should rethrow that error in the next turn and return nothing", function () { - var turn = 0; - Q.nextTick(function () { - ++turn; - }); - - var returnValue = Q().done( - function () { - throw "foo"; - } - ); - - var deferred = Q.defer(); - Q.onerror = function (error) { - expect(turn).toBe(1); - expect(error).toBe("foo"); - expect(returnValue).toBe(undefined); - deferred.resolve(); - }; - Q.delay(100).then(deferred.reject); - - return deferred.promise; - }); - }); - }); - - describe("when the promise is rejected", function () { - describe("and the errback handles it", function () { - it("should call the errback and return nothing", function () { - var called = false; - - var promise = Q.reject(new Error()); - - var returnValue = promise.done( - function () { }, - function () { - called = true; - } - ); - - return promise.fail(function () { }).fin(function () { - expect(called).toBe(true); - expect(returnValue).toBe(undefined); - }); - }); - }); - - describe("and the errback throws", function () { - it("should rethrow that error in the next turn and return nothing", function () { - var turn = 0; - Q.nextTick(function () { - ++turn; - }); - - var returnValue = Q.reject("bar").done( - null, - function () { - throw "foo"; - } - ); - - var deferred = Q.defer(); - Q.onerror = function (error) { - expect(turn).toBe(1); - expect(error).toBe("foo"); - expect(returnValue).toBe(undefined); - deferred.resolve(); - }; - Q.delay(100).then(deferred.reject); - - return deferred.promise; - }); - }); - - describe("and there is no errback", function () { - it("should throw the original error in the next turn", function () { - var turn = 0; - Q.nextTick(function () { - ++turn; - }); - - var returnValue = Q.reject("bar").done(); - - var deferred = Q.defer(); - Q.onerror = function (error) { - expect(turn).toBe(1); - expect(error).toBe("bar"); - expect(returnValue).toBe(undefined); - deferred.resolve(); - }; - Q.delay(10).then(deferred.reject); - - return deferred.promise; - }); - }); - }); - - it("should attach a progress listener", function () { - var deferred = Q.defer(); - - var spy = jasmine.createSpy(); - deferred.promise.done(null, null, spy); - - deferred.notify(10); - deferred.resolve(); - - return deferred.promise.then(function () { - expect(spy).toHaveBeenCalledWith(10); - }); - }); -}); - -describe("timeout", function () { - it("should do nothing if the promise fulfills quickly", function () { - return Q.delay(10).timeout(200); - }); - - it("should do nothing if the promise rejects quickly", function () { - var goodError = new Error("haha!"); - return Q.delay(10) - .then(function () { - throw goodError; - }) - .timeout(200) - .then(undefined, function (error) { - expect(error).toBe(goodError); - }); - }); - - it("should reject with a timeout error if the promise is too slow", function () { - return Q.delay(100) - .timeout(10) - .then( - function () { - expect(true).toBe(false); - }, - function (error) { - expect(/time/i.test(error.message)).toBe(true); - } - ); - }); - - it("should pass through progress notifications", function () { - var deferred = Q.defer(); - - var progressValsSeen = []; - var promise = Q.timeout(deferred.promise, 300).then(function () { - expect(progressValsSeen).toEqual([1, 2, 3]); - }, undefined, function (progressVal) { - progressValsSeen.push(progressVal); - }); - - Q.delay(5).then(function () { deferred.notify(1); }); - Q.delay(15).then(function () { deferred.notify(2); }); - Q.delay(25).then(function () { deferred.notify(3); }); - Q.delay(35).then(function () { deferred.resolve(); }); - - return promise; - }); - - it("should reject with a custom timeout error if the promise is too slow and msg was provided", function () { - return Q.delay(100) - .timeout(10, "custom") - .then( - function () { - expect(true).toBe(false); - }, - function (error) { - expect(/custom/i.test(error.message)).toBe(true); - expect(error.code).toBe("ETIMEDOUT"); - } - ); - }); - - it("should reject with a custom timeout error if the promise is too slow and Error object was provided", function () { - var customError = new Error("custom"); - customError.isCustom = true; - return Q.delay(100) - .timeout(10, customError) - .then( - function () { - expect(true).toBe(false); - }, - function (error) { - expect(/custom/i.test(error.message)).toBe(true); - expect(error.isCustom).toBe(true); - } - ); - }); - -}); - -describe("delay", function () { - it("should delay fulfillment", function () { - var promise = Q(5).delay(50); - - setTimeout(function () { - expect(promise.isPending()).toBe(true); - }, 40); - - return promise; - }); - - it("should not delay rejection", function () { - var promise = Q.reject(5).delay(50); - - return Q.delay(20).then(function () { - expect(promise.isPending()).toBe(false); - }); - }); - - it("should treat a single argument as a time", function () { - var promise = Q.delay(50); - - setTimeout(function () { - expect(promise.isPending()).toBe(true); - }, 40); - - return promise; - }); - - it("should treat two arguments as a value + a time", function () { - var promise = Q.delay("what", 50); - - setTimeout(function () { - expect(promise.isPending()).toBe(true); - }, 40); - - return promise.then(function (value) { - expect(value).toBe("what"); - }); - }); - - it("should delay after resolution", function () { - var promise1 = Q.delay("what", 30); - var promise2 = promise1.delay(30); - - setTimeout(function () { - expect(promise1.isPending()).toBe(false); - expect(promise2.isPending()).toBe(true); - }, 40); - - return promise2.then(function (value) { - expect(value).toBe("what"); - }); - }); - - - it("should pass through progress notifications from passed promises", function () { - var deferred = Q.defer(); - - var progressValsSeen = []; - var promise = Q.delay(deferred.promise, 100).then(function () { - expect(progressValsSeen).toEqual([1, 2, 3]); - }, undefined, function (progressVal) { - progressValsSeen.push(progressVal); - }); - - Q.delay(5).then(function () { deferred.notify(1); }); - Q.delay(15).then(function () { deferred.notify(2); }); - Q.delay(25).then(function () { deferred.notify(3); }); - Q.delay(35).then(function () { deferred.resolve(); }); - - return promise; - }); -}); - -describe("thenResolve", function () { - describe("Resolving with a non-thenable value", function () { - it("returns a promise for that object once the promise is resolved", function () { - var waited = false; - return Q.delay(20) - .then(function () { - waited = true; - }) - .thenResolve("foo") - .then(function (val) { - expect(waited).toBe(true); - expect(val).toBe("foo"); - }); - }); - - describe("based off a rejected promise", function () { - it("does nothing, letting the rejection flow through", function () { - return Q.reject("boo") - .thenResolve("foo") - .then( - function () { - expect(true).toBe(false); - }, - function (reason) { - expect(reason).toBe("boo"); - } - ); - }); - }); - }); - - describe("Resolving with an promise", function () { - it("returns a promise for the result of that promise once the promise is resolved", function () { - var waited = false; - return Q.delay(20) - .then(function () { - waited = true; - }) - .thenResolve(Q("foo")) - .then(function (val) { - expect(waited).toBe(true); - expect(val).toBe("foo"); - }); - }); - }); -}); - -describe("thenReject", function () { - describe("Rejecting with a reason", function () { - it("returns a promise rejected with that object once the original promise is resolved", function () { - var waited = false; - return Q.delay(20) - .then(function () { - waited = true; - }) - .thenReject("foo") - .then( - function () { - expect(true).toBe(false); - }, - function (reason) { - expect(waited).toBe(true); - expect(reason).toBe("foo"); - } - ); - }); - - describe("based off a rejected promise", function () { - it("does nothing, letting the rejection flow through", function () { - return Q.reject("boo") - .thenResolve("foo") - .then( - function () { - expect(true).toBe(false); - }, - function (reason) { - expect(reason).toBe("boo"); - } - ); - }); - }); - }); -}); - -describe("thenables", function () { - - it("assimilates a thenable with fulfillment with resolve", function () { - return Q({ - then: function (resolved) { - resolved(10); - } - }) - .then(function (ten) { - expect(ten).toEqual(10); - }) - .then(function (undefined) { - expect(undefined).toEqual(void 0); - }); - }); - - it("assimilates a thenable with progress and fulfillment (using resolve)", function () { - var progressValueArrays = []; - return Q({ - then: function (fulfilled, rejected, progressed) { - Q.nextTick(function () { - progressed(1, 2); - progressed(3, 4, 5); - fulfilled(); - }); - } - }) - .progress(function () { - progressValueArrays.push(Array.prototype.slice.call(arguments)); - }) - .then(function () { - expect(progressValueArrays).toEqual([[1], [3]]); - }); - }); - - it("assimilates a thenable with progress and fulfillment (using when)", function () { - var progressValueArrays = []; - return Q.when({ - then: function (fulfilled, rejected, progressed) { - Q.nextTick(function () { - progressed(1, 2); - progressed(3, 4, 5); - fulfilled(); - }); - } - }) - .progress(function () { - progressValueArrays.push(Array.prototype.slice.call(arguments)); - }) - .then(function () { - expect(progressValueArrays).toEqual([[1], [3]]); - }); - }); - - it("flows fulfillment into a promise pipeline", function () { - return Q({ - then: function (resolved) { - resolved([10]); - } - }) - .get(0) - .then(function (ten) { - expect(ten).toEqual(10); - }); - }); - - it("assimilates an immediately-fulfilled thenable in allSettled", function () { - return Q.allSettled([ - {then: function (win) { - win(10); - }} - ]) - .then(function (snapshots) { - expect(snapshots).toEqual([{ state: "fulfilled", value: 10 }]); - }); - }); - - it("assimilates an eventually-fulfilled thenable in allSettled", function () { - return Q.allSettled([ - {then: function (win) { - setTimeout(function () { - win(10); - }, 100); - }} - ]) - .then(function (snapshots) { - expect(snapshots).toEqual([{ state: "fulfilled", value: 10 }]); - }); - }); - -}); - -describe("node support", function () { - - var exception = new Error("That is not your favorite color."); - - var obj = { - method: function (a, b, c, callback) { - callback(null, a + b + c); - }, - thispChecker: function (callback) { - callback(null, this === obj); - }, - errorCallbacker: function (a, b, c, callback) { - callback(exception); - }, - errorThrower: function () { - throw exception; - } - }; - - describe("nfapply", function () { - - it("fulfills with callback result", function () { - return Q.nfapply(function (a, b, c, callback) { - callback(null, a + b + c); - }, [1, 2, 3]) - .then(function (sum) { - expect(sum).toEqual(6); - }); - }); - - it("rejects with callback error", function () { - var exception = new Error("That is not your favorite color."); - return Q.nfapply(function (a, b, c, callback) { - callback(exception); - }, [1, 2, 3]) - .then(function () { - expect(true).toBe(false); - }, function (_exception) { - expect(_exception).toBe(exception); - }); - }); - - }); - - describe("nfcall", function () { - it("fulfills with callback result", function () { - return Q.nfcall(function (a, b, c, callback) { - callback(null, a + b + c); - }, 1, 2, 3) - .then(function (sum) { - expect(sum).toEqual(6); - }); - }); - - it("rejects with callback error", function () { - var exception = new Error("That is not your favorite color."); - return Q.nfcall(function (a, b, c, callback) { - callback(exception); - }, 1, 2, 3) - .then(function () { - expect(true).toBe(false); - }, function (_exception) { - expect(_exception).toBe(exception); - }); - }); - - }); - - describe("nfbind", function () { - - it("mixes partial application with complete application", function () { - return Q.nfbind(function (a, b, c, d, callback) { - callback(null, a + b + c + d); - }, 1, 2).call({}, 3, 4) - .then(function (ten) { - expect(ten).toBe(10); - }); - }); - - }); - - describe("nbind", function () { - - it("binds this, and mixes partial application with complete application", function () { - return Q.nbind(function (a, b, c, callback) { - callback(null, this + a + b + c); - }, 1, 2).call(3 /* effectively ignored as fn bound to 1 */, 4, 5) - .then(function (twelve) { - expect(twelve).toBe(12); - }); - }); - - it("second arg binds this", function() { - var expectedThis = { test: null }; - - return Q.nbind(function(callback) { - callback(null, this); - }, expectedThis).call() - .then(function(actualThis) { - expect(actualThis).toEqual(expectedThis); - }); - }); - - }); - - describe("npost", function () { - - it("fulfills with callback result", function () { - return Q.npost(obj, "method", [1, 2, 3]) - .then(function (sum) { - expect(sum).toEqual(6); - }); - }); - - it("gets the correct thisp", function () { - return Q.npost(obj, "thispChecker", []) - .then(function (result) { - expect(result).toBe(true); - }); - }); - - it("rejects with callback error", function () { - return Q.npost(obj, "errorCallbacker", [1, 2, 3]) - .then(function () { - expect("blue").toBe("no, yellow!"); - }, function (_exception) { - expect(_exception).toBe(exception); - }); - }); - - it("rejects with thrown error", function () { - return Q.npost(obj, "errorThrower", [1, 2, 3]) - .then(function () { - expect(true).toBe(false); - }, function (_exception) { - expect(_exception).toBe(exception); - }); - }); - - it("works on promises for objects with Node methods", function () { - return Q(obj) - .npost("method", [1, 2, 3]) - .then(function (sum) { - expect(sum).toEqual(6); - }); - }); - - }); - - describe("nsend", function () { - - it("fulfills with callback result", function () { - return Q.nsend(obj, "method", 1, 2, 3) - .then(function (sum) { - expect(sum).toEqual(6); - }); - }); - - it("gets the correct thisp", function () { - return Q.nsend(obj, "thispChecker") - .then(function (result) { - expect(result).toBe(true); - }); - }); - - it("rejects with callback error", function () { - return Q.nsend(obj, "errorCallbacker", 1, 2, 3) - .then(function () { - expect("blue").toBe("no, yellow!"); - }, function (_exception) { - expect(_exception).toBe(exception); - }); - }); - - it("rejects with thrown error", function () { - return Q.nsend(obj, "errorThrower", 1, 2, 3) - .then(function () { - expect(true).toBe(false); - }, function (_exception) { - expect(_exception).toBe(exception); - }); - }); - - it("works on promises for objects with Node methods", function () { - return Q(obj) - .nsend("method", 1, 2, 3) - .then(function (sum) { - expect(sum).toEqual(6); - }); - }); - - }); - - describe("deferred.makeNodeResolver", function () { - - it("fulfills a promise with a single callback argument", function () { - var deferred = Q.defer(); - var callback = deferred.makeNodeResolver(); - callback(null, 10); - return deferred.promise.then(function (value) { - expect(value).toBe(10); - }); - }); - - it("fulfills a promise with multiple callback arguments", function () { - var deferred = Q.defer(); - var callback = deferred.makeNodeResolver(); - callback(null, 10, 20); - return deferred.promise.then(function (value) { - expect(value).toEqual([10, 20]); - }); - }); - - it("rejects a promise", function () { - var deferred = Q.defer(); - var callback = deferred.makeNodeResolver(); - var exception = new Error("Holy Exception of Anitoch"); - callback(exception); - return deferred.promise.then(function () { - expect(5).toBe(3); - }, function (_exception) { - expect(_exception).toBe(exception); - }); - }); - - }); - - describe("nodeify", function () { - - it("calls back with a resolution", function () { - var spy = jasmine.createSpy(); - Q(10).nodeify(spy); - waitsFor(function () { - return spy.argsForCall.length; - }); - runs(function () { - expect(spy.argsForCall).toEqual([[null, 10]]); - }); - }); - - it("calls back with an error", function () { - var spy = jasmine.createSpy(); - Q.reject(10).nodeify(spy); - waitsFor(function () { - return spy.argsForCall.length; - }); - runs(function () { - expect(spy.argsForCall).toEqual([[10]]); - }); - }); - - it("forwards a promise", function () { - return Q(10).nodeify().then(function (ten) { - expect(ten).toBe(10); - }); - }); - - }); - -}); - -describe("isPromise", function () { - it("returns true if passed a promise", function () { - expect(Q.isPromise(Q(10))).toBe(true); - }); - - it("returns false if not passed a promise", function () { - expect(Q.isPromise(undefined)).toBe(false); - expect(Q.isPromise(null)).toBe(false); - expect(Q.isPromise(10)).toBe(false); - expect(Q.isPromise("str")).toBe(false); - expect(Q.isPromise("")).toBe(false); - expect(Q.isPromise(true)).toBe(false); - expect(Q.isPromise(false)).toBe(false); - expect(Q.isPromise({})).toBe(false); - expect(Q.isPromise({ - then: function () {} - })).toBe(false); - expect(Q.isPromise(function () {})).toBe(false); - }); -}); - -describe("isPromiseAlike", function () { - it("returns true if passed a promise like object", function () { - expect(Q.isPromiseAlike(Q(10))).toBe(true); - expect(Q.isPromiseAlike({ - then: function () {} - })).toBe(true); - }); - - it("returns false if not passed a promise like object", function () { - expect(Q.isPromiseAlike(undefined)).toBe(false); - expect(Q.isPromiseAlike(null)).toBe(false); - expect(Q.isPromiseAlike(10)).toBe(false); - expect(Q.isPromiseAlike("str")).toBe(false); - expect(Q.isPromiseAlike("")).toBe(false); - expect(Q.isPromiseAlike(true)).toBe(false); - expect(Q.isPromiseAlike(false)).toBe(false); - expect(Q.isPromiseAlike({})).toBe(false); - expect(Q.isPromiseAlike(function () {})).toBe(false); - }); -}); - -if (typeof require === "function") { - var domain; - try { - domain = require("domain"); - } catch (e) { } - - if (domain) { - var EventEmitter = require("events").EventEmitter; - - describe("node domain support", function () { - var d; - - beforeEach(function () { - d = domain.create(); - }); - afterEach(function() { - d.dispose(); - }); - - it("should work for non-promise async inside a promise handler", - function (done) { - var error = new Error("should be caught by the domain"); - - d.run(function () { - Q().then(function () { - setTimeout(function () { - throw error; - }, 10); - }); - }); - - var errorTimeout = setTimeout(function () { - done(new Error("Wasn't caught")); - }, 100); - - d.on("error", function (theError) { - expect(theError).toBe(error); - clearTimeout(errorTimeout); - done(); - }); - }); - - it("should transfer errors from `done` into the domain", - function (done) { - var error = new Error("should be caught by the domain"); - - d.run(function () { - Q.reject(error).done(); - }); - - var errorTimeout = setTimeout(function () { - done(new Error("Wasn't caught")); - }, 100); - - d.on("error", function (theError) { - expect(theError).toBe(error); - clearTimeout(errorTimeout); - done(); - }); - }); - - it("should take care of re-used event emitters", function (done) { - // See discussion in https://github.com/kriskowal/q/issues/120 - var error = new Error("should be caught by the domain"); - - var e = new EventEmitter(); - - d.run(function () { - callAsync().done(); - }); - setTimeout(function () { - e.emit("beep"); - }, 100); - - var errorTimeout = setTimeout(function () { - done(new Error("Wasn't caught")); - }, 500); - - d.on("error", function (theError) { - expect(theError).toBe(error); - clearTimeout(errorTimeout); - done(); - }); - - function callAsync() { - var def = Q.defer(); - e.once("beep", function () { - def.reject(error); - }); - return def.promise; - } - }); - }); - } -} - -describe("decorator functions", function () { - describe("promised", function () { - var exception = new Error("That is not the meaning of life."); - it("resolves promised arguments", function () { - var sum = Q.promised(function add(a, b) { - return a + b; - }); - return sum(Q(4), Q(5)).then(function (sum) { - expect(sum).toEqual(9); - }); - }); - it("resolves promised `this`", function () { - var inc = Q.promised(function inc(a) { - return this + a; - }); - return inc.call(Q(4), Q(5)).then(function (sum) { - expect(sum).toEqual(9); - }); - }); - it("is rejected if an argument is rejected", function () { - var sum = Q.promised(function add(a, b) { - return a + b; - }); - return sum(Q.reject(exception), Q(4)).then(function () { - expect(4).toEqual(42); - }, function (_exception) { - expect(_exception).toBe(exception); - }); - }); - it("is rejected if `this` is rejected", function () { - var inc = Q.promised(function inc(a) { - return this + a; - }); - return inc.call(Q.reject(exception), Q(4)).then(function () { - expect(4).toEqual(42); - }, function (_exception) { - expect(_exception).toBe(exception); - }); - }); - }); -}); - -describe("stack trace formatting", function () { - it("doesn't mangle a stack trace that gets handled twice", function () { - var d1 = Q.defer(); - var d2 = Q.defer(); - var captured = []; - d1.promise.done(); - d2.promise.done(); - - Q.onerror = function (err) { - captured.push(err.stack); - }; - - var error = new Error("boom!"); - d1.reject(error); - d2.reject(error); - - return Q.all([d1.promise.fail(function () {}), d2.promise.fail(function () { })]) - .then(function () { - expect(captured[0]).toEqual(captured[1]); - }); - }); -}); - -describe("possible regressions", function () { - - describe("gh-9", function () { - it("treats falsy values as resolved values without error", function () { - expect(Q.isPending(null)).toEqual(false); - expect(Q.isPending(void 0)).toEqual(false); - expect(Q.isPending(false)).toEqual(false); - expect(Q.isPending()).toEqual(false); - }); - }); - - describe("gh-22", function () { - it("ensures that the array prototype is intact", function () { - var keys = []; - for (var key in []) { - keys.push(key); - } - expect(keys.length).toBe(0); - }); - }); - - describe("gh-73", function () { - it("does not choke on non-error rejection reasons", function () { - Q.reject(REASON).done(); - - var deferred = Q.defer(); - - Q.onerror = function (error) { - expect(error).toBe(REASON); - deferred.resolve(); - }; - Q.delay(10).then(deferred.reject); - - return deferred.promise; - }); - }); - - describe("gh-90", function () { - it("does not choke on rejection reasons with an undefined `stack`", function () { - var error = new RangeError(REASON); - error.stack = undefined; - Q.reject(error).done(); - - var deferred = Q.defer(); - - Q.onerror = function (theError) { - expect(theError).toBe(error); - deferred.resolve(); - }; - Q.delay(10).then(deferred.reject); - - return deferred.promise; - }); - }); - - describe("gh-75", function () { - it("does not double-resolve misbehaved promises", function () { - var badPromise = Q.makePromise({ - post: function () { return "hello"; } - }); - - var resolutions = 0; - function onResolution() { - ++resolutions; - } - - return Q.when(badPromise, onResolution, onResolution).then(function () { - expect(resolutions).toBe(1); - }); - }); - }); - -}); - -describe("unhandled rejection reporting", function () { - beforeEach(function () { - Q.resetUnhandledRejections(); - }); - - it("doesn't report a resolve, then reject (gh-252)", function () { - var deferred = Q.defer(); - deferred.resolve(); - deferred.reject(); - - expect(Q.getUnhandledReasons().length).toEqual(0); - }); - - it("doesn't report when you chain off a rejection", function () { - return Q.reject("this will be handled").get("property").fail(function () { - // now it should be handled. - }).fin(function() { - expect(Q.getUnhandledReasons().length).toEqual(0); - }); - }); - - it("reports the most basic case", function () { - Q.reject("a reason"); - - expect(Q.getUnhandledReasons()).toEqual(["(no stack) a reason"]); - }); - - it("reports a stack trace", function () { - var error = new Error("a reason"); - Q.reject(error); - - expect(Q.getUnhandledReasons()).toEqual([error.stack]); - }); - - it("doesn't let you mutate the internal array", function () { - Q.reject("a reason"); - - Q.getUnhandledReasons().length = 0; - expect(Q.getUnhandledReasons()).toEqual(["(no stack) a reason"]); - }); - - it("resets after calling `Q.resetUnhandledRejections`", function () { - Q.reject("a reason"); - - Q.resetUnhandledRejections(); - expect(Q.getUnhandledReasons()).toEqual([]); - }); - - it("stops tracking after calling `Q.stopUnhandledRejectionTracking`", function () { - Q.reject("a reason"); - - Q.stopUnhandledRejectionTracking(); - - Q.reject("another reason"); - - expect(Q.getUnhandledReasons()).toEqual([]); - }); -}); diff --git a/vendors/Q/spec/queue-spec.js b/vendors/Q/spec/queue-spec.js deleted file mode 100644 index 4cec14e23..000000000 --- a/vendors/Q/spec/queue-spec.js +++ /dev/null @@ -1,180 +0,0 @@ - -var Q = require("../q"); -var Queue = require("../queue"); - -global.Q = Q; -require("./lib/jasmine-promise"); - -describe("queue", function () { - - it("should enqueue then dequeue", function () { - var queue = Queue(); - queue.put(1); - return queue.get().then(function (value) { - expect(value).toBe(1); - }); - }); - - it("should dequeue then enqueue", function () { - var queue = Queue(); - var promise = queue.get().then(function (value) { - expect(value).toBe(1); - }); - queue.put(1); - return promise; - }); - - it("should stream", function () { - var queue = Queue(); - - Q.try(function () { - return Q.delay(20).then(function () { - queue.put(1); - }) - }) - .then(function () { - return Q.delay(20).then(function () { - queue.put(2); - }) - }) - .then(function () { - return Q.delay(20).then(function () { - queue.put(3); - }) - }) - .done(); - - return Q.try(function () { - return queue.get() - .then(function (value) { - expect(value).toBe(1); - }); - }) - .then(function () { - return queue.get() - .then(function (value) { - expect(value).toBe(2); - }); - }) - .then(function () { - return queue.get() - .then(function (value) { - expect(value).toBe(3); - }); - }) - - }); - - it("should be order agnostic", function () { - var queue = Queue(); - - Q.try(function () { - return Q.delay(20).then(function () { - queue.put(1); - }) - }) - .then(function () { - return Q.delay(20).then(function () { - queue.put(2); - }) - }) - .then(function () { - return Q.delay(20).then(function () { - queue.put(3); - }) - }) - .done(); - - return Q.all([ - queue.get() - .then(function (value) { - expect(value).toBe(1); - }), - queue.get() - .then(function (value) { - expect(value).toBe(2); - }), - queue.get() - .then(function (value) { - expect(value).toBe(3); - }) - ]); - }); - - it("should close", function () { - - var queue = Queue(); - - Q.try(function () { - return Q.delay(20).then(function () { - queue.put(1); - }) - }) - .then(function () { - return Q.delay(20).then(function () { - queue.put(2); - }) - }) - .then(function () { - queue.close(); - }) - .done(); - - return Q.try(function () { - return queue.get() - .then(function (value) { - expect(value).toBe(1); - }); - }) - .then(function () { - return queue.get() - .then(function (value) { - expect(value).toBe(2); - }); - }) - .then(function () { - return queue.get() - .then(function (value) { - expect(false).toBe(true); // should not get here - }); - }) - .catch(function (error) { - expect(error.message).toBe("Can't get value from closed queue"); - return queue.get(); - }) - .catch(function (error) { - expect(error.message).toBe("Can't get value from closed queue"); - }) - .then(function () { - return queue.closed; - }) - .then(function (error) { - expect(error.message).toBe("Can't get value from closed queue"); - }) - }); - - it("should close with alternate error", function () { - - var queue = Queue(); - queue.close(new Error("Alternate reason")); - - return Q.try(function () { - return queue.get(); - }) - .catch(function (error) { - expect(error.message).toBe("Alternate reason"); - return queue.get(); - }) - .catch(function (error) { - expect(error.message).toBe("Alternate reason"); - }) - .then(function () { - return queue.closed; - }) - .then(function (error) { - expect(error.message).toBe("Alternate reason"); - }) - }); - -}); - diff --git a/vendors/es6-promise-polyfill/.gitignore b/vendors/es6-promise-polyfill/.gitignore deleted file mode 100644 index 8e88a2f34..000000000 --- a/vendors/es6-promise-polyfill/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/node_modules -/tmp \ No newline at end of file diff --git a/vendors/es6-promise-polyfill/.npmignore b/vendors/es6-promise-polyfill/.npmignore deleted file mode 100644 index 3a517ea5f..000000000 --- a/vendors/es6-promise-polyfill/.npmignore +++ /dev/null @@ -1,3 +0,0 @@ -/node_modules/ -/tmp -/test diff --git a/vendors/es6-promise-polyfill/.travis.yml b/vendors/es6-promise-polyfill/.travis.yml deleted file mode 100644 index 838637781..000000000 --- a/vendors/es6-promise-polyfill/.travis.yml +++ /dev/null @@ -1,6 +0,0 @@ -language: node_js -sudo: false -node_js: - - "0.12" - - "node" - - "iojs" diff --git a/vendors/es6-promise-polyfill/CHANGELOG.md b/vendors/es6-promise-polyfill/CHANGELOG.md deleted file mode 100644 index a135450b8..000000000 --- a/vendors/es6-promise-polyfill/CHANGELOG.md +++ /dev/null @@ -1,18 +0,0 @@ -## 1.2.0 (December 8, 2015) - -- Support for IE8 and below -- Promises/A+ tests added - -## 1.1.0 (October 16, 2015) - -- Change way to get reference to `global`, since `Function()()` may be prohibited -- Add AMD support - -## 1.0.1 (September 14, 2015) - -- Fix exports - use polyfill only if native implementation isn't supported -- Add license - -## 1.0.0 (June 19, 2014) - -- Init release diff --git a/vendors/es6-promise-polyfill/LICENSE b/vendors/es6-promise-polyfill/LICENSE deleted file mode 100644 index 48d269614..000000000 --- a/vendors/es6-promise-polyfill/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -(The MIT License) - -Copyright (c) 2014 Roman Dvornov - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendors/es6-promise-polyfill/README.md b/vendors/es6-promise-polyfill/README.md deleted file mode 100644 index b212dab53..000000000 --- a/vendors/es6-promise-polyfill/README.md +++ /dev/null @@ -1,88 +0,0 @@ -[![NPM version](https://img.shields.io/npm/v/es6-promise-polyfill.svg)](https://www.npmjs.com/package/es6-promise-polyfill) -[![Build Status](https://travis-ci.org/lahmatiy/es6-promise-polyfill.svg?branch=master)](https://travis-ci.org/lahmatiy/es6-promise-polyfill) - -# ES6 Promise polyfill - -This is a polyfill of [ES6 Promise](https://github.com/domenic/promises-unwrapping). The implementation based on [Jake Archibald implementation](https://github.com/jakearchibald/es6-promise) a subset of [rsvp.js](https://github.com/tildeio/rsvp.js). If you're wanting extra features and more debugging options, check out the [full library](https://github.com/tildeio/rsvp.js). - -For API details and how to use promises, see the JavaScript Promises HTML5Rocks article. - -## Notes - -The main target: implementation should be conformance with browser's implementations and to be minimal as possible in size. So it's strictly polyfill of ES6 Promise specification and nothing more. - -It passes both [Promises/A+ test suite](https://github.com/promises-aplus/promises-tests) and [rsvp.js test suite](https://github.com/jakearchibald/es6-promise/tree/master/test). And as small as 2,6KB min (or 1KB min+gzip). - -The polyfill uses `setImmediate` if available, or fallback to use `setTimeout`. Use [setImmediate polyfill](https://github.com/YuzuJS/setImmediate) by @YuzuJS to reach better performance. - -## How to use - -### Browser - -To install: - -```sh -bower install es6-promise-polyfill -``` - -To use: - -```html - - -``` - -### Node.js - -To install: - -```sh -npm install es6-promise-polyfill -``` - -To use: - -```js -var Promise = require('es6-promise-polyfill').Promise; -var promise = new Promise(...); -``` - -### AMD - -To install: - -```sh -npm install es6-promise-polyfill -``` - -To use: - -```js -define(['es6-promise-polyfill'], function(Promise) { - var promise = new Promise(...); -}); -``` - -## Usage in IE<9 - -`catch` is a reserved word in IE<9, meaning `promise.catch(func)` throws a syntax error. To work around this, use a string to access the property: - -```js -promise['catch'](function(err) { - // ... -}); -``` - -Or use `.then` instead: - -```js -promise.then(undefined, function(err) { - // ... -}); -``` - -## License - -Licensed under the MIT License. diff --git a/vendors/es6-promise-polyfill/bower.json b/vendors/es6-promise-polyfill/bower.json deleted file mode 100644 index 76957310d..000000000 --- a/vendors/es6-promise-polyfill/bower.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "es6-promise-polyfill", - "version": "1.1.1", - "main": "promise.js", - "ignore": [ - ".*", - "**/.*", - "node_modules", - "test" - ] -} diff --git a/vendors/es6-promise-polyfill/package.json b/vendors/es6-promise-polyfill/package.json deleted file mode 100644 index da6c7f4e6..000000000 --- a/vendors/es6-promise-polyfill/package.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "es6-promise-polyfill", - "description": "Polyfill for ES6 Promise", - "version": "1.2.0", - "author": "Roman Dvornov ", - "license": "MIT", - "repository": "lahmatiy/es6-promise-polyfill", - "bugs": { - "url": "https://github.com/lahmatiy/es6-promise-polyfill/issues" - }, - "main": "promise.js", - "dependencies": { - }, - "devDependencies": { - "promises-aplus-tests": "*" - }, - "scripts": { - "test": "promises-aplus-tests test/test-adapter" - }, - "keywords": [ - "es6", - "es2015", - "polyfill", - "promise", - "promises" - ] -} diff --git a/vendors/es6-promise-polyfill/promise.js b/vendors/es6-promise-polyfill/promise.js deleted file mode 100644 index 290740d41..000000000 --- a/vendors/es6-promise-polyfill/promise.js +++ /dev/null @@ -1,346 +0,0 @@ -(function(global){ - -// -// Check for native Promise and it has correct interface -// - -var NativePromise = global['Promise']; -var nativePromiseSupported = - NativePromise && - // Some of these methods are missing from - // Firefox/Chrome experimental implementations - 'resolve' in NativePromise && - 'reject' in NativePromise && - 'all' in NativePromise && - 'race' in NativePromise && - // Older version of the spec had a resolver object - // as the arg rather than a function - (function(){ - var resolve; - new NativePromise(function(r){ resolve = r; }); - return typeof resolve === 'function'; - })(); - - -// -// export if necessary -// - -if (typeof exports !== 'undefined' && exports) -{ - // node.js - exports.Promise = nativePromiseSupported ? NativePromise : Promise; - exports.Polyfill = Promise; -} -else -{ - // AMD - if (typeof define == 'function' && define.amd) - { - define(function(){ - return nativePromiseSupported ? NativePromise : Promise; - }); - } - else - { - // in browser add to global - if (!nativePromiseSupported) - global['Promise'] = Promise; - } -} - - -// -// Polyfill -// - -var PENDING = 'pending'; -var SEALED = 'sealed'; -var FULFILLED = 'fulfilled'; -var REJECTED = 'rejected'; -var NOOP = function(){}; - -function isArray(value) { - return Object.prototype.toString.call(value) === '[object Array]'; -} - -// async calls -var asyncSetTimer = typeof setImmediate !== 'undefined' ? setImmediate : setTimeout; -var asyncQueue = []; -var asyncTimer; - -function asyncFlush(){ - // run promise callbacks - for (var i = 0; i < asyncQueue.length; i++) - asyncQueue[i][0](asyncQueue[i][1]); - - // reset async asyncQueue - asyncQueue = []; - asyncTimer = false; -} - -function asyncCall(callback, arg){ - asyncQueue.push([callback, arg]); - - if (!asyncTimer) - { - asyncTimer = true; - asyncSetTimer(asyncFlush, 0); - } -} - - -function invokeResolver(resolver, promise) { - function resolvePromise(value) { - resolve(promise, value); - } - - function rejectPromise(reason) { - reject(promise, reason); - } - - try { - resolver(resolvePromise, rejectPromise); - } catch(e) { - rejectPromise(e); - } -} - -function invokeCallback(subscriber){ - var owner = subscriber.owner; - var settled = owner.state_; - var value = owner.data_; - var callback = subscriber[settled]; - var promise = subscriber.then; - - if (typeof callback === 'function') - { - settled = FULFILLED; - try { - value = callback(value); - } catch(e) { - reject(promise, e); - } - } - - if (!handleThenable(promise, value)) - { - if (settled === FULFILLED) - resolve(promise, value); - - if (settled === REJECTED) - reject(promise, value); - } -} - -function handleThenable(promise, value) { - var resolved; - - try { - if (promise === value) - throw new TypeError('A promises callback cannot return that same promise.'); - - if (value && (typeof value === 'function' || typeof value === 'object')) - { - var then = value.then; // then should be retrived only once - - if (typeof then === 'function') - { - then.call(value, function(val){ - if (!resolved) - { - resolved = true; - - if (value !== val) - resolve(promise, val); - else - fulfill(promise, val); - } - }, function(reason){ - if (!resolved) - { - resolved = true; - - reject(promise, reason); - } - }); - - return true; - } - } - } catch (e) { - if (!resolved) - reject(promise, e); - - return true; - } - - return false; -} - -function resolve(promise, value){ - if (promise === value || !handleThenable(promise, value)) - fulfill(promise, value); -} - -function fulfill(promise, value){ - if (promise.state_ === PENDING) - { - promise.state_ = SEALED; - promise.data_ = value; - - asyncCall(publishFulfillment, promise); - } -} - -function reject(promise, reason){ - if (promise.state_ === PENDING) - { - promise.state_ = SEALED; - promise.data_ = reason; - - asyncCall(publishRejection, promise); - } -} - -function publish(promise) { - var callbacks = promise.then_; - promise.then_ = undefined; - - for (var i = 0; i < callbacks.length; i++) { - invokeCallback(callbacks[i]); - } -} - -function publishFulfillment(promise){ - promise.state_ = FULFILLED; - publish(promise); -} - -function publishRejection(promise){ - promise.state_ = REJECTED; - publish(promise); -} - -/** -* @class -*/ -function Promise(resolver){ - if (typeof resolver !== 'function') - throw new TypeError('Promise constructor takes a function argument'); - - if (this instanceof Promise === false) - throw new TypeError('Failed to construct \'Promise\': Please use the \'new\' operator, this object constructor cannot be called as a function.'); - - this.then_ = []; - - invokeResolver(resolver, this); -} - -Promise.prototype = { - constructor: Promise, - - state_: PENDING, - then_: null, - data_: undefined, - - then: function(onFulfillment, onRejection){ - var subscriber = { - owner: this, - then: new this.constructor(NOOP), - fulfilled: onFulfillment, - rejected: onRejection - }; - - if (this.state_ === FULFILLED || this.state_ === REJECTED) - { - // already resolved, call callback async - asyncCall(invokeCallback, subscriber); - } - else - { - // subscribe - this.then_.push(subscriber); - } - - return subscriber.then; - }, - - 'catch': function(onRejection) { - return this.then(null, onRejection); - } -}; - -Promise.all = function(promises){ - var Class = this; - - if (!isArray(promises)) - throw new TypeError('You must pass an array to Promise.all().'); - - return new Class(function(resolve, reject){ - var results = []; - var remaining = 0; - - function resolver(index){ - remaining++; - return function(value){ - results[index] = value; - if (!--remaining) - resolve(results); - }; - } - - for (var i = 0, promise; i < promises.length; i++) - { - promise = promises[i]; - - if (promise && typeof promise.then === 'function') - promise.then(resolver(i), reject); - else - results[i] = promise; - } - - if (!remaining) - resolve(results); - }); -}; - -Promise.race = function(promises){ - var Class = this; - - if (!isArray(promises)) - throw new TypeError('You must pass an array to Promise.race().'); - - return new Class(function(resolve, reject) { - for (var i = 0, promise; i < promises.length; i++) - { - promise = promises[i]; - - if (promise && typeof promise.then === 'function') - promise.then(resolve, reject); - else - resolve(promise); - } - }); -}; - -Promise.resolve = function(value){ - var Class = this; - - if (value && typeof value === 'object' && value.constructor === Class) - return value; - - return new Class(function(resolve){ - resolve(value); - }); -}; - -Promise.reject = function(reason){ - var Class = this; - - return new Class(function(resolve, reject){ - reject(reason); - }); -}; - -})(typeof window != 'undefined' ? window : typeof global != 'undefined' ? global : typeof self != 'undefined' ? self : this); diff --git a/vendors/es6-promise-polyfill/promise.min.js b/vendors/es6-promise-polyfill/promise.min.js deleted file mode 100644 index 50fb31d38..000000000 --- a/vendors/es6-promise-polyfill/promise.min.js +++ /dev/null @@ -1,6 +0,0 @@ -(function(t){function z(){for(var a=0;a0){for(var a=0;a=0;){d=q.shift();a=a[d.type].apply(null,d.args)}return a},noConflict:function(){j.$LAB=N;return p},sandbox:function(){return M()}};return p}j.$LAB=M();(function(a,c,b){if(document.readyState==null&&document[a]){document.readyState="loading";document[a](c,b=function(){document.removeEventListener(c,b,false);document.readyState="complete"},false)}})("addEventListener","DOMContentLoaded")})(this); \ No newline at end of file diff --git a/vendors/labjs/LAB.js b/vendors/labjs/LAB.js deleted file mode 100644 index e710dfea2..000000000 --- a/vendors/labjs/LAB.js +++ /dev/null @@ -1,5 +0,0 @@ -/*! LAB.js (LABjs :: Loading And Blocking JavaScript) - v2.0.3 (c) Kyle Simpson - MIT License -*/ -(function(o){var K=o.$LAB,y="UseLocalXHR",z="AlwaysPreserveOrder",u="AllowDuplicates",A="CacheBust",B="BasePath",C=/^[^?#]*\//.exec(location.href)[0],D=/^\w+\:\/\/\/?[^\/]+/.exec(C)[0],i=document.head||document.getElementsByTagName("head"),L=(o.opera&&Object.prototype.toString.call(o.opera)=="[object Opera]")||("MozAppearance"in document.documentElement.style),q=document.createElement("script"),E=typeof q.preload=="boolean",r=E||(q.readyState&&q.readyState=="uninitialized"),F=!r&&q.async===true,M=!r&&!F&&!L;function G(a){return Object.prototype.toString.call(a)=="[object Function]"}function H(a){return Object.prototype.toString.call(a)=="[object Array]"}function N(a,c){var b=/^\w+\:\/\//;if(/^\/\/\/?/.test(a)){a=location.protocol+a}else if(!b.test(a)&&a.charAt(0)!="/"){a=(c||"")+a}return b.test(a)?a:((a.charAt(0)=="/"?D:C)+a)}function s(a,c){for(var b in a){if(a.hasOwnProperty(b)){c[b]=a[b]}}return c}function O(a){var c=false;for(var b=0;b0){for(var a=0;a=0;){d=n.shift();a=a[d.type].apply(null,d.args)}return a},noConflict:function(){o.$LAB=K;return m},sandbox:function(){return J()}};return m}o.$LAB=J();(function(a,c,b){if(document.readyState==null&&document[a]){document.readyState="loading";document[a](c,b=function(){document.removeEventListener(c,b,false);document.readyState="complete"},false)}})("addEventListener","DOMContentLoaded")})(this); \ No newline at end of file diff --git a/vendors/labjs/LAB.min.js b/vendors/labjs/LAB.min.js deleted file mode 100644 index 6ad5fa833..000000000 --- a/vendors/labjs/LAB.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! LAB.js (LABjs :: Loading And Blocking JavaScript) v2.0.3 (c) Kyle Simpson MIT License */ -(function(o){var K=o.$LAB,y="UseLocalXHR",z="AlwaysPreserveOrder",u="AllowDuplicates",A="CacheBust",B="BasePath",C=/^[^?#]*\//.exec(location.href)[0],D=/^\w+\:\/\/\/?[^\/]+/.exec(C)[0],i=document.head||document.getElementsByTagName("head"),L=(o.opera&&Object.prototype.toString.call(o.opera)=="[object Opera]")||("MozAppearance"in document.documentElement.style),q=document.createElement("script"),E=typeof q.preload=="boolean",r=E||(q.readyState&&q.readyState=="uninitialized"),F=!r&&q.async===true,M=!r&&!F&&!L;function G(a){return Object.prototype.toString.call(a)=="[object Function]"}function H(a){return Object.prototype.toString.call(a)=="[object Array]"}function N(a,c){var b=/^\w+\:\/\//;if(/^\/\/\/?/.test(a)){a=location.protocol+a}else if(!b.test(a)&&a.charAt(0)!="/"){a=(c||"")+a}return b.test(a)?a:((a.charAt(0)=="/"?D:C)+a)}function s(a,c){for(var b in a){if(a.hasOwnProperty(b)){c[b]=a[b]}}return c}function O(a){var c=false;for(var b=0;b0){for(var a=0;a=0;){d=n.shift();a=a[d.type].apply(null,d.args)}return a},noConflict:function(){o.$LAB=K;return m},sandbox:function(){return J()}};return m}o.$LAB=J();(function(a,c,b){if(document.readyState==null&&document[a]){document.readyState="loading";document[a](c,b=function(){document.removeEventListener(c,b,false);document.readyState="complete"},false)}})("addEventListener","DOMContentLoaded")})(this); \ No newline at end of file diff --git a/vendors/labjs/LAB.src.js b/vendors/labjs/LAB.src.js deleted file mode 100644 index 99807cd22..000000000 --- a/vendors/labjs/LAB.src.js +++ /dev/null @@ -1,514 +0,0 @@ -/*! LAB.js (LABjs :: Loading And Blocking JavaScript) - v2.0.3 (c) Kyle Simpson - MIT License -*/ - -(function(global){ - var _$LAB = global.$LAB, - - // constants for the valid keys of the options object - _UseLocalXHR = "UseLocalXHR", - _AlwaysPreserveOrder = "AlwaysPreserveOrder", - _AllowDuplicates = "AllowDuplicates", - _CacheBust = "CacheBust", - /*!START_DEBUG*/_Debug = "Debug",/*!END_DEBUG*/ - _BasePath = "BasePath", - - // stateless variables used across all $LAB instances - root_page = /^[^?#]*\//.exec(location.href)[0], - root_domain = /^\w+\:\/\/\/?[^\/]+/.exec(root_page)[0], - append_to = document.head || document.getElementsByTagName("head"), - - // inferences... ick, but still necessary - opera_or_gecko = (global.opera && Object.prototype.toString.call(global.opera) == "[object Opera]") || ("MozAppearance" in document.documentElement.style), - -/*!START_DEBUG*/ - // console.log() and console.error() wrappers - log_msg = function(){}, - log_error = log_msg, -/*!END_DEBUG*/ - - // feature sniffs (yay!) - test_script_elem = document.createElement("script"), - explicit_preloading = typeof test_script_elem.preload == "boolean", // http://wiki.whatwg.org/wiki/Script_Execution_Control#Proposal_1_.28Nicholas_Zakas.29 - real_preloading = explicit_preloading || (test_script_elem.readyState && test_script_elem.readyState == "uninitialized"), // will a script preload with `src` set before DOM append? - script_ordered_async = !real_preloading && test_script_elem.async === true, // http://wiki.whatwg.org/wiki/Dynamic_Script_Execution_Order - - // XHR preloading (same-domain) and cache-preloading (remote-domain) are the fallbacks (for some browsers) - xhr_or_cache_preloading = !real_preloading && !script_ordered_async && !opera_or_gecko - ; - -/*!START_DEBUG*/ - // define console wrapper functions if applicable - if (global.console && global.console.log) { - if (!global.console.error) global.console.error = global.console.log; - log_msg = function(msg) { global.console.log(msg); }; - log_error = function(msg,err) { global.console.error(msg,err); }; - } -/*!END_DEBUG*/ - - // test for function - function is_func(func) { return Object.prototype.toString.call(func) == "[object Function]"; } - - // test for array - function is_array(arr) { return Object.prototype.toString.call(arr) == "[object Array]"; } - - // make script URL absolute/canonical - function canonical_uri(src,base_path) { - var absolute_regex = /^\w+\:\/\//; - - // is `src` is protocol-relative (begins with // or ///), prepend protocol - if (/^\/\/\/?/.test(src)) { - src = location.protocol + src; - } - // is `src` page-relative? (not an absolute URL, and not a domain-relative path, beginning with /) - else if (!absolute_regex.test(src) && src.charAt(0) != "/") { - // prepend `base_path`, if any - src = (base_path || "") + src; - } - // make sure to return `src` as absolute - return absolute_regex.test(src) ? src : ((src.charAt(0) == "/" ? root_domain : root_page) + src); - } - - // merge `source` into `target` - function merge_objs(source,target) { - for (var k in source) { if (source.hasOwnProperty(k)) { - target[k] = source[k]; // TODO: does this need to be recursive for our purposes? - }} - return target; - } - - // does the chain group have any ready-to-execute scripts? - function check_chain_group_scripts_ready(chain_group) { - var any_scripts_ready = false; - for (var i=0; i 0) { - for (var i=0; i=0;) { - val = queue.shift(); - $L = $L[val.type].apply(null,val.args); - } - return $L; - }, - - // rollback `[global].$LAB` to what it was before this file was loaded, the return this current instance of $LAB - noConflict:function(){ - global.$LAB = _$LAB; - return instanceAPI; - }, - - // create another clean instance of $LAB - sandbox:function(){ - return create_sandbox(); - } - }; - - return instanceAPI; - } - - // create the main instance of $LAB - global.$LAB = create_sandbox(); - - - /* The following "hack" was suggested by Andrea Giammarchi and adapted from: http://webreflection.blogspot.com/2009/11/195-chars-to-help-lazy-loading.html - NOTE: this hack only operates in FF and then only in versions where document.readyState is not present (FF < 3.6?). - - The hack essentially "patches" the **page** that LABjs is loaded onto so that it has a proper conforming document.readyState, so that if a script which does - proper and safe dom-ready detection is loaded onto a page, after dom-ready has passed, it will still be able to detect this state, by inspecting the now hacked - document.readyState property. The loaded script in question can then immediately trigger any queued code executions that were waiting for the DOM to be ready. - For instance, jQuery 1.4+ has been patched to take advantage of document.readyState, which is enabled by this hack. But 1.3.2 and before are **not** safe or - fixed by this hack, and should therefore **not** be lazy-loaded by script loader tools such as LABjs. - */ - (function(addEvent,domLoaded,handler){ - if (document.readyState == null && document[addEvent]){ - document.readyState = "loading"; - document[addEvent](domLoaded,handler = function(){ - document.removeEventListener(domLoaded,handler,false); - document.readyState = "complete"; - },false); - } - })("addEventListener","DOMContentLoaded"); - -})(this); \ No newline at end of file diff --git a/vendors/labjs/README.md b/vendors/labjs/README.md deleted file mode 100644 index e4bfae915..000000000 --- a/vendors/labjs/README.md +++ /dev/null @@ -1,100 +0,0 @@ -LABjs (Loading And Blocking JavaScript) -======================================= - -**NOTE: LABjs is still supported, and still encouraged to be used if it makes sense for your project. But, no further development beyond bug fixes is expected. LABjs is almost 4 years old, and has been stable (no bug fixes/patches) for almost 2 years. Thank you to the community for your support of this project over the last 4 years.** - -LABjs is a dynamic script loader intended to replace the use of the ugly, non-performant <script> tag with a flexible and performance-optimized alternative API. - -The defining characteristic of LABjs is the ability to load *all* JavaScript files in parallel, as fast as the browser will allow, but giving you the option to ensure proper execution order if you have dependencies between files. - -For instance, the following "<script> tag soup": - - - - - - - - -With LABjs becomes: - - - - -The differences between the two snippets is that with regular <script> tags, you cannot control their loading and executing behavior reliably cross-browser. Some new browsers will load them in parallel but execute them serially, delaying execution of a smaller (quicker loading) script in the pessimistic assumption of dependency on previous scripts. Older browsers will load *and* execute them one-at-a-time, completely losing any parallel loading speed optimizations and slowing the whole process drastically. - -All browsers will, however, block other page resources (like stylesheets, images, etc) while these scripts are loading, which causes the rest of the page's content loading to appear much more sluggish to the user. - -LABjs by contrast will load ALL the scripts in parallel, and will execute them as soon as possible, unless you express an execution order dependency in the chain by inserting .wait(). In addition, you can "couple" inline script logic to execute in the proper order in your chain as desired by passing a function to .wait(...). - -It's important to realize that explicitly, separate $LAB chains operate completely independently, meaning there will be no explicit waiting for execution order between them. - -NOTE: JavaScript execution is always still a single-threaded, first-come-first-served environment. Also, some browsers use internal loading queues which create implicit "blocking" on script execution between separate chains. Also, the 'AllowDuplicates:false' config option will de-duplicate across chains, meaning chain B can be made to implicitly "wait" on chain A if chain B references a same script URL as chain A, and that script is still downloading. - - -Build Process -------------- - -There is no "official" build process or script. There is however "BUILD.md" which lists the steps that I take to prepare the LAB.min.js and LAB-debug.min.js files. - - -Configuration -------------- - -There are a number of configuration options which can be specified either globally (for all $LAB chains on the page) or per chain. - -For instance: - - $LAB.setGlobalDefaults({AlwaysPreserveOrder:true}); - -would tell all $LAB chains to insert an implicit .wait() call in between each .script() call. The behavior is identical to if you just put the .wait() call in yourself. - - - $LAB.setOptions({AlwaysPreserveOrder:true}).script(...)... - -would tell just this particular $LAB chain to do the same. - - -The configuration options available are: - -* `UseLocalXHR`: true/false (default true): use XHR to preload scripts from local (same-domain) locations -* `AlwaysPreserveOrder`: true/false (default false): whether to insert an implicit .wait() call after each script load request... if turned on, prevents immediate execution of loaded files and instead executes all scripts in order -* `AllowDuplicates`: true/false (default true): whether to inspect the current page and $LAB loading cache to see if the same script URL has already been requested and allow (true) or ignore (false) if so. NOTE: in v1.2.0 and before, this didn't work correctly across multiple $LAB chains, but as of v2.0, it works correctly. -* `CacheBust`: true/false (default false): adds a cache-busting parameter (random number) to the end of a script URL -* `BasePath`: {string} (default ""): a path string to prepend to every script request's URL - - -Protocol-relative URLs ----------------------- - -Browsers have long supported "protocol-relative URLs", which basically means leaving off the "http:" or "https:" portion of a URL (leaving just the "//domain.tld/path/..." part), which causes that URL to be assumed to be the same protocol as the parent page. The benefit is that if you have a page that can be viewed in either HTTP or HTTPS, and your resources can (and need to be) served through either HTTP or HTTPS, respectively, you can simply list your URLs as protocol-relative and the browser will auto-select based on which protocol the page is viewed in. - -LABjs now supports specifying such URLs to any script URL setting. NOTE: This is the recommended way to specify URLs for script resources if: a) the page you're serving can be viewed in both HTTP and HTTPS; and b) the script resource you're linking to can be accessed using the exact same domain/path with exception to the protocol. - -A common example of such a resource is the CDN locations on the Google Ajax API, where popular frameworks like jQuery and Dojo are hosted. If you are linking to such CDN resources, you are strongly encouraged to change to using protocol-relative URLs, like "//ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js" instead of "http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js" or "https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js". - - -New in v2.0 ------------ - -* `AllowDuplicates` now actually works across chains. This is very important for those who want to use multiple/nested $LAB chains as part of a shared-dependency loading mechanism. -* Chains are now fully resumable, meaning you can save the return value from the last call to a chained function, and then use that saved value later as the starting point to resume the chain from where it left off. -* Queueing is now built-in, with `queueScript`, `queueWait` and `runQueue` -- this important for those who want to build up the chain across multiple files or inline <script> elements (like in the CMS case), but want to defer starting the loading of the code starting until later (usually at the bottom of the page). -* LABjs now supports `noConflict` (for rolling back to a previous version/copy of $LAB on the page) and `sandbox` (for creating a new pristine sandboxed copy of the current $LAB) -* LABjs now relies on feature-testing for `async=false` and implicit/explicit "true preloading" (currently only IE, but in the spec process). Ugly/hacky "cache preloading" is now only used for "older webkit" (before March 2011 nightlies, etc), and even then, only for remote files. -* For XHR preloading (only used in "older webkit" for local files, by default), to support better debugability, "// @sourceURL=..." is appended to the end of the code, to map the XHR/injected code to a real file name. Currently, browsers only support this for eval() (not script injection, like LABjs uses). It is hoped that browsers will soon support this annotation for their developer-tools. -* Speaking of debugging, LABjs now supports a DEBUG mode (only if you use the source file, or if you use the LABjs-debug.min.js production file) *and* enable the "Debug" config option, which captures all the inner workings (and any errors in .wait() calls) to the browser's console.log, if present. -* LABjs now supports a "CacheBust" config option, which will attempt to make sure all loaded scripts are forcibly loaded new on each page refresh, by auto-appending a random number parameter to each URL. ****This is really only practical/advised for DEV environments, where you want to ensure that the code reloads every time. Doing so in production would be really bad for user performance.***** -* As part of LABjs' rewrite, the code style is now significantly improved in readability (most "minification" hacks have been removed), and it's also using more memory-savvy code, such as far fewer closures. As a result, LABjs should run leaner and faster, if only by a little bit. The goal is to get LABjs out of the way so your scripts load and run as fast as possible. -* "AppendTo", "UsePreloading", and "UseCachePreloading" options were removed as they are no longer useful. This is the only backwards-incompatible change (no actual API changes, just config), and the change should just cause older usage code to continue to operate as normal while ignoring the no longer supported options. Still, test your code carefully if you've been using either of those 3 config options before. - diff --git a/vendors/labjs/fLAB.src.js b/vendors/labjs/fLAB.src.js deleted file mode 100644 index f48c1fe51..000000000 --- a/vendors/labjs/fLAB.src.js +++ /dev/null @@ -1,191 +0,0 @@ -// fLAB.js (file:// protocol adapter for LABjs 1.x only) -// v0.2 (c) Kyle Simpson -// MIT License - -(function(global){ - var orig_$LAB = global.$LAB, - oDOC = global.document, - oDOCLOC = oDOC.location, - local_filesystem = (oDOCLOC.protocol === "file:") - ; - if (!orig_$LAB || !local_filesystem) return; // only adapt LABjs with fLABjs wrapper if LABjs exists and we're currently in local filesystem - - var sUNDEF = "undefined", // constants used for compression optimization - sSTRING = "string", - sHEAD = "head", - sBODY = "body", - sFUNCTION = "function", - sSCRIPT = "script", - sSRCURI = "srcuri", - sDONE = "done", - sWHICH = "which", - bTRUE = true, - bFALSE = false, - fSETTIMEOUT = global.setTimeout, - fGETELEMENTSBYTAGNAME = function(tn){return oDOC.getElementsByTagName(tn);}, - fOBJTOSTRING = Object.prototype.toString, - fNOOP = function(){}, - append_to = {}, - all_scripts = {}, - PAGEROOT = /^[^?#]*\//.exec(oDOCLOC.href)[0], - DOCROOT = /^file:\/\/(localhost)?(\/[a-z]:)?/i.exec(PAGEROOT)[0], - docScripts = fGETELEMENTSBYTAGNAME(sSCRIPT), - - is_ie = !+"\v1", // feature detection based on Andrea Giammarchi's solution: http://webreflection.blogspot.com/2009/01/32-bytes-to-know-if-your-browser-is-ie.html - sync_script_loading = is_ie, // only IE is currently known to do synchronous loading of file:// scripts, others require core LABjs async functionality - - global_defs = { - dupe:bFALSE, // allow duplicate scripts? - preserve:bFALSE, // preserve execution order of all loaded scripts (regardless of preloading) - base:"", // base path to prepend to all non-absolute-path scripts - which:sHEAD // which DOM object ("head" or "body") to append scripts to - } - ; - - append_to[sHEAD] = fGETELEMENTSBYTAGNAME(sHEAD); - append_to[sBODY] = fGETELEMENTSBYTAGNAME(sBODY); - - function canonicalScriptURI(src,base_path) { - if (typeof src !== sSTRING) src = ""; - if (typeof base_path !== sSTRING) base_path = ""; - var ret = (/^file\:\/\//.test(src) ? "" : base_path) + src; - return ((/^file\:\/\//.test(ret) ? "" : (ret.charAt(0) === "/" ? DOCROOT : PAGEROOT)) + ret); - } - function scriptTagExists(uri) { // checks if a script uri has ever been loaded into this page's DOM - var i = 0, script; - while (script = docScripts[i++]) { - if (typeof script.src === sSTRING && uri === canonicalScriptURI(script.src)) return bTRUE; - } - return bFALSE; - } - function engine(opts) { - if (typeof opts === sUNDEF) opts = global_defs; - - var ready = bFALSE, - _which = opts.which, - _base_path = opts.base, - waitFunc = fNOOP, - scripts_loading = bFALSE, - publicAPI, - scripts = {}, - orig_engine = null - ; - - function createScriptTag(scriptentry,src,type,charset) { - if (append_to[scriptentry[sWHICH]][0] === null) { // append_to object not yet ready - fSETTIMEOUT(arguments.callee,25); - return; - } - var scriptElem = oDOC.createElement(sSCRIPT), fSETATTRIBUTE = function(attr,val){scriptElem.setAttribute(attr,val);}; - fSETATTRIBUTE("type",type); - if (typeof charset === sSTRING) fSETATTRIBUTE("charset",charset); - fSETATTRIBUTE("src",src); - append_to[scriptentry[sWHICH]][0].appendChild(scriptElem); - } - function loadScript(o) { - if (typeof o.allowDup === sUNDEF) o.allowDup = opts.dupe; - var src = o.src, type = o.type, charset = o.charset, allowDup = o.allowDup, - src_uri = canonicalScriptURI(src,_base_path), scriptentry; - if (typeof type !== sSTRING) type = "text/javascript"; - if (typeof charset !== sSTRING) charset = null; - allowDup = !(!allowDup); - - if (!allowDup && - ( - (typeof all_scripts[src_uri] !== sUNDEF && all_scripts[src_uri] !== null) || - scriptTagExists(src_uri) - ) - ) { - return; - } - if (typeof scripts[src_uri] === sUNDEF) scripts[src_uri] = {}; - scriptentry = scripts[src_uri]; - if (typeof scriptentry[sWHICH] === sUNDEF) scriptentry[sWHICH] = _which; - scriptentry[sDONE] = bFALSE; - scriptentry[sSRCURI] = src_uri; - scripts_loading = bTRUE; - - all_scripts[scriptentry[sSRCURI]] = bTRUE; - createScriptTag(scriptentry,src_uri,type,charset); - } - function serializeArgs(args) { - var sargs = [], i; - for (i=0; i