From ac0a4eb969511256868b04913b9d72734dec9e33 Mon Sep 17 00:00:00 2001 From: Darren Shen Date: Fri, 21 Jul 2017 10:57:33 +1000 Subject: [PATCH 01/27] Update release instructions --- CONTRIBUTING.md | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 15142a7e..50245de7 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -85,14 +85,17 @@ Example: `http://localhost:9876/base/test/web-platform-tests/web-animations/anim grunt # Optional "grunt test" to make sure everything still passes. git add -f *.min.js{,.map} - git rm .gitignore + git rm --ignore-unmatch .gitignore git commit -m 'Add build artifacts from '`cat .git/refs/heads/dev` - git push HEAD:refs/heads/master + git push origin master ``` -1. Draft a [new release](https://github.com/web-animations/web-animations-js/releases) at the - commit pushed to web-animations-js in step #4. Copy the release notes from `History.md` - added in step #2. +1. Draft a [new release](https://github.com/web-animations/web-animations-js/releases). + + * For the **tag version**, put the new version number of this release. + * For the **target**, select "master". + * For the **title**, look at previous releases for examples. + * For the **description**, copy the release notes from `History.md` added in step #2. 1. Once you've pushed to web-animations-js, run `npm publish` from that checked-out folder From 263d1a2d8a34aaeb46f4262c6d01ea0604a3a49e Mon Sep 17 00:00:00 2001 From: Eric Willigers Date: Fri, 21 Jul 2017 11:22:35 +1000 Subject: [PATCH 02/27] Add release notes for 2.3.1 package.json and History.md have been updated on master for 2.3.1 We copy these changes across to dev. --- History.md | 4 ++++ package.json | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/History.md b/History.md index 22e83052..6deef415 100644 --- a/History.md +++ b/History.md @@ -1,3 +1,7 @@ +### 2.3.1 - *July 20 2017* + + * Fix [https://github.com/web-animations/web-animations-js/issues/157](missing web-animations.min.js issue) + ### 2.3.0 - *July 20 2017* * [Support IE/Edge SVG transforms.](https://github.com/web-animations/web-animations-js/pull/148) diff --git a/package.json b/package.json index 413a22e9..65b5c9bb 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "type": "git", "url": "https://github.com/web-animations/web-animations-js.git" }, - "version": "2.3.0", + "version": "2.3.1", "keywords": [ "animations", "polyfill" From c6f0ac81a5344ff770e02f2637fd6763b08f26ce Mon Sep 17 00:00:00 2001 From: Darren Shen Date: Fri, 21 Jul 2017 16:35:56 +1000 Subject: [PATCH 03/27] Address comments --- CONTRIBUTING.md | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 50245de7..40ac14dc 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -45,6 +45,14 @@ Example: `http://localhost:9876/base/test/web-platform-tests/web-animations/anim ## Publishing a release +1. Clone a fresh copy of [web-animations-js](https://github.com/web-animations/web-animations-js). + +1. Make sure you are on the `dev` branch. + + ```sh + git checkout dev + ``` + 1. Determine the version number for the release * Increment the first number and reset others to 0 when there are large breaking changes @@ -70,8 +78,14 @@ Example: `http://localhost:9876/base/test/web-platform-tests/web-animations/anim 1. Build the polyfill with `npm install && grunt` then update `docs/experimental.md`'s Build Target Comparison with the current gzipped sizes. -1. Commit the above changes to web-animations-js/dev and merge to - web-animations-js/master. +1. Commit and push the above changes to web-animations-js/dev. + + ```sh + # Create a commit with above changes + git push origin dev + ``` + +1. Merge to local master branch: ```sh git checkout master From e2782af1a3715fed5b96c5366f89f9b204f8b9a0 Mon Sep 17 00:00:00 2001 From: ericwilligers Date: Mon, 14 Aug 2017 05:56:34 +1000 Subject: [PATCH 04/27] Do not write to readonly _isFinished The property _isFinished is readonly. cancel() should not attempt to write to the property. resolves #160 --- src/animation.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/animation.js b/src/animation.js index e9f64826..69b9d2f9 100644 --- a/src/animation.js +++ b/src/animation.js @@ -191,7 +191,6 @@ this._inEffect = false; this._idle = true; this._paused = false; - this._isFinished = true; this._finishedFlag = true; this._currentTime = 0; this._startTime = null; From c5bf98eb447a76910297b8ccd011ace3310d1372 Mon Sep 17 00:00:00 2001 From: Eric Willigers Date: Wed, 16 Aug 2017 15:36:46 +1000 Subject: [PATCH 05/27] Document that we require requestAnimationFrame We make clear that old Chrome versions are not supported, and mention the option of use a requestAnimationFrame polyfill. --- docs/support.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/support.md b/docs/support.md index e6ad592c..4fe76e66 100644 --- a/docs/support.md +++ b/docs/support.md @@ -13,12 +13,16 @@ Browser support The polyfill is supported on modern versions of all major browsers, including: -* Chrome +* Chrome 56+ * Firefox 27+ * IE10+ (including Edge) * Safari (iOS) 7.1+ * Safari (Mac) 9+ +In particular, the polyfill requires requestAnimationFrame. If your browser does not +have requestAnimationFrame, consider loading a requestAnimationFrame polyfill first +([example](https://gist.githubusercontent.com/paulirish/1579671/raw/682e5c880c92b445650c4880a6bf9f3897ec1c5b/rAF.js)). + Native fallback --------------- From 65caa28f25a3762fd96e59c27b1449f8f9f2a0bc Mon Sep 17 00:00:00 2001 From: Eric Willigers Date: Wed, 16 Aug 2017 15:51:42 +1000 Subject: [PATCH 06/27] Update minimatch dependency `npm install` was giving the warning `npm WARN deprecated minimatch@0.2.14: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue` We avoid the warning by using a recent minimatch version. --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 65b5c9bb..f97c8b06 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ "*.min.js.map" ], "devDependencies": { + "minimatch": "^3.0.4", "mocha": "1.21.4", "chai": "^1.9.1", "grunt": "~0.4.5", From 3f9af6bfacf642b7f8cd28d3c8128ff8e80ccb9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philip=20J=C3=A4genstedt?= Date: Wed, 13 Jun 2018 23:10:06 +0200 Subject: [PATCH 07/27] Update the Web Animations spec URLs (#191) --- History.md | 2 +- README.md | 2 +- docs/examples.md | 4 ++-- externs/web-animations.js | 2 +- src/normalize-keyframes.js | 2 +- src/timing-utilities.js | 18 +++++++++--------- 6 files changed, 15 insertions(+), 15 deletions(-) diff --git a/History.md b/History.md index 6deef415..4247c526 100644 --- a/History.md +++ b/History.md @@ -91,7 +91,7 @@ * Added arbitrary easing capitalisation. - * Added "id" effect option. (http://w3c.github.io/web-animations/#dom-keyframeanimationoptions-id) + * Added "id" effect option. (https://drafts.csswg.org/web-animations/#dom-keyframeanimationoptions-id) * Added "oncancel" event handler. diff --git a/README.md b/README.md index e3410b61..06a71f1a 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ Documentation * [Examples of usage](/docs/examples.md) * [Live demos](https://web-animations.github.io/web-animations-demos) * [MDN reference](https://developer.mozilla.org/en-US/docs/Web/API/Element/animate) -* [W3C specification](http://w3c.github.io/web-animations/) +* [W3C specification](https://drafts.csswg.org/web-animations/) We love feedback! ----------------- diff --git a/docs/examples.md b/docs/examples.md index 7957a29c..d61c16a7 100644 --- a/docs/examples.md +++ b/docs/examples.md @@ -69,7 +69,7 @@ element.animate([ Timing parameters ----------------- - Web Animations inherits many of its timing parameters from CSS Animations. -- See the [specification](http://w3c.github.io/web-animations/#animationeffecttimingreadonly) for details on each parameter. +- See the [specification](https://drafts.csswg.org/web-animations/#animationeffecttimingreadonly) for details on each parameter. [**Live demo**](http://jsbin.com/dabehipiyo/edit?js,output) ```javascript @@ -106,7 +106,7 @@ element.animate({ Playback controls ----------------- - element.animate() returns an Animation object with basic playback controls. -- See the [specification](http://w3c.github.io/web-animations/#the-animation-interface) for details on each method. +- See the [specification](https://drafts.csswg.org/web-animations/#the-animation-interface) for details on each method. [**Live demo**](http://jsbin.com/kutaqoxejo/edit?js,output) ```javascript diff --git a/externs/web-animations.js b/externs/web-animations.js index 7059b400..b3b604ba 100644 --- a/externs/web-animations.js +++ b/externs/web-animations.js @@ -18,7 +18,7 @@ /** * @fileoverview Basic externs for the Web Animations API. This is not * nessecarily exhaustive. For more information, see the spec- - * https://w3c.github.io/web-animations + * https://drafts.csswg.org/web-animations/ * @externs */ diff --git a/src/normalize-keyframes.js b/src/normalize-keyframes.js index 1fd02548..1337e47a 100644 --- a/src/normalize-keyframes.js +++ b/src/normalize-keyframes.js @@ -151,7 +151,7 @@ } function isNotAnimatable(property) { - // https://w3c.github.io/web-animations/#concept-not-animatable + // https://drafts.csswg.org/web-animations/#concept-not-animatable return property === 'display' || property.lastIndexOf('animation', 0) === 0 || property.lastIndexOf('transition', 0) === 0; } diff --git a/src/timing-utilities.js b/src/timing-utilities.js index 2f16f3b1..df8b8877 100644 --- a/src/timing-utilities.js +++ b/src/timing-utilities.js @@ -278,7 +278,7 @@ } function repeatedDuration(timing) { - // https://w3c.github.io/web-animations/#calculating-the-active-duration + // https://drafts.csswg.org/web-animations/#calculating-the-active-duration if (timing.duration === 0 || timing.iterations === 0) { return 0; } @@ -291,7 +291,7 @@ var PhaseActive = 3; function calculatePhase(activeDuration, localTime, timing) { - // https://w3c.github.io/web-animations/#animation-effect-phases-and-states + // https://drafts.csswg.org/web-animations/#animation-effect-phases-and-states if (localTime == null) { return PhaseNone; } @@ -308,7 +308,7 @@ } function calculateActiveTime(activeDuration, fillMode, localTime, phase, delay) { - // https://w3c.github.io/web-animations/#calculating-the-active-time + // https://drafts.csswg.org/web-animations/#calculating-the-active-time switch (phase) { case PhaseBefore: if (fillMode == 'backwards' || fillMode == 'both') @@ -326,7 +326,7 @@ } function calculateOverallProgress(iterationDuration, phase, iterations, activeTime, iterationStart) { - // https://w3c.github.io/web-animations/#calculating-the-overall-progress + // https://drafts.csswg.org/web-animations/#calculating-the-overall-progress var overallProgress = iterationStart; if (iterationDuration === 0) { if (phase !== PhaseBefore) { @@ -339,7 +339,7 @@ } function calculateSimpleIterationProgress(overallProgress, iterationStart, phase, iterations, activeTime, iterationDuration) { - // https://w3c.github.io/web-animations/#calculating-the-simple-iteration-progress + // https://drafts.csswg.org/web-animations/#calculating-the-simple-iteration-progress var simpleIterationProgress = (overallProgress === Infinity) ? iterationStart % 1 : overallProgress % 1; if (simpleIterationProgress === 0 && phase === PhaseAfter && iterations !== 0 && @@ -350,7 +350,7 @@ } function calculateCurrentIteration(phase, iterations, simpleIterationProgress, overallProgress) { - // https://w3c.github.io/web-animations/#calculating-the-current-iteration + // https://drafts.csswg.org/web-animations/#calculating-the-current-iteration if (phase === PhaseAfter && iterations === Infinity) { return Infinity; } @@ -361,7 +361,7 @@ } function calculateDirectedProgress(playbackDirection, currentIteration, simpleIterationProgress) { - // https://w3c.github.io/web-animations/#calculating-the-directed-progress + // https://drafts.csswg.org/web-animations/#calculating-the-directed-progress var currentDirection = playbackDirection; if (playbackDirection !== 'normal' && playbackDirection !== 'reverse') { var d = currentIteration; @@ -390,8 +390,8 @@ var currentIteration = calculateCurrentIteration(phase, timing.iterations, simpleIterationProgress, overallProgress); var directedProgress = calculateDirectedProgress(timing.direction, currentIteration, simpleIterationProgress); - // https://w3c.github.io/web-animations/#calculating-the-transformed-progress - // https://w3c.github.io/web-animations/#calculating-the-iteration-progress + // https://drafts.csswg.org/web-animations/#calculating-the-transformed-progress + // https://drafts.csswg.org/web-animations/#calculating-the-iteration-progress return timing._easingFunction(directedProgress); } From ae52749433415fe979396bb82e7e5a0bdf9a115a Mon Sep 17 00:00:00 2001 From: Alexander Marks Date: Tue, 11 Dec 2018 18:38:57 -0800 Subject: [PATCH 08/27] Minor fixes for Closure compilation compatibility. (#200) --- src/shadow-handler.js | 4 ++-- src/timing-utilities.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/shadow-handler.js b/src/shadow-handler.js index 3f8201d8..9a28b74b 100644 --- a/src/shadow-handler.js +++ b/src/shadow-handler.js @@ -26,12 +26,12 @@ shadow.inset = true; return result; } - var result = scope.consumeLengthOrPercent(string); + result = scope.consumeLengthOrPercent(string); if (result) { shadow.lengths.push(result[0]); return result; } - var result = scope.consumeColor(string); + result = scope.consumeColor(string); if (result) { shadow.color = result[0]; return result; diff --git a/src/timing-utilities.js b/src/timing-utilities.js index df8b8877..76264fcc 100644 --- a/src/timing-utilities.js +++ b/src/timing-utilities.js @@ -81,7 +81,7 @@ }, set iterationStart(value) { if ((isNaN(value) || value < 0) && isInvalidTimingDeprecated()) { - throw new TypeError('iterationStart must be a non-negative number, received: ' + timing.iterationStart); + throw new TypeError('iterationStart must be a non-negative number, received: ' + value); } this._setMember('iterationStart', value); }, @@ -192,9 +192,9 @@ } var start = 0, end = 1; + function f(a, b, m) { return 3 * a * (1 - m) * (1 - m) * m + 3 * b * (1 - m) * m * m + m * m * m}; while (start < end) { var mid = (start + end) / 2; - function f(a, b, m) { return 3 * a * (1 - m) * (1 - m) * m + 3 * b * (1 - m) * m * m + m * m * m}; var xEst = f(a, c, mid); if (Math.abs(x - xEst) < 0.00001) { return f(b, d, mid); From c4c1602c4f1a84a1cbe4d6f0656262b31d28e052 Mon Sep 17 00:00:00 2001 From: mgechev Date: Tue, 28 May 2019 20:37:40 +0200 Subject: [PATCH 09/27] Fix the wrapping IIFE of the prod bundle Currently, the semantics of [line 59 in `Gruntfile.js`](https://github.com/web-animations/web-animations-js/blob/ae52749433415fe979396bb82e7e5a0bdf9a115a/Gruntfile.js#L59) is - expose the library as a global called `true`. This causes two problems: 1. The wrapping mechanism of uglify breaks in strict mode (more below) 2. There's a leaking global variable called `true` The used version of uglify wraps the code in the following construct: ```js "(function(" + parameters.join(",") + "){ '$ORIG'; })(" + args.join(",") + ")"; ``` The IIFE passes the global `this` to a function and later tries to set the property name that we've assigned to `wrap`. This works fine in non-strict cases. The only side effect is the global `window.true` that we set to an empty object. In strict mode, however, global `this` equals to `undefined`. We try to set `undefined['true']` which cases a runtime error. We noticed the above scenario after enabling differential loading with `script[type="module"]`, which uses strict mode by default. It'll be fantastic if we can release the fix today, so we don't block the CLI release. Side note, the wrap function of uglify is fixed for strict mode [here](https://github.com/mishoo/UglifyJS2/pull/1811/files#diff-da84828c4bd7834c0040b0bbb51acdec). Maybe update of `grunt` and `grunt-contrib-uglify` is worth it. --- Gruntfile.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gruntfile.js b/Gruntfile.js index aad63761..4e9d60ca 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -56,7 +56,7 @@ module.exports = function(grunt) { var record = config.uglify[target]; record.options.sourceMapIn = source + '.map'; record.options.banner = grunt.file.read('templates/boilerplate'); - record.options.wrap = true; + record.options.enclose = true; record.options.compress.dead_code = true; record.options.mangle = { eval: true }; return name; From 8471f0b20ba337b93c9d85e480381407825a64bd Mon Sep 17 00:00:00 2001 From: Alan Cutter Date: Mon, 24 Jun 2019 17:56:46 +1000 Subject: [PATCH 10/27] Remove wpt --- .gitmodules | 4 ---- test/web-platform-tests | 1 - 2 files changed, 5 deletions(-) delete mode 160000 test/web-platform-tests diff --git a/.gitmodules b/.gitmodules index 3d9dfc5c..e69de29b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,4 +0,0 @@ -[submodule "test/web-platform-tests"] - path = test/web-platform-tests - url = https://github.com/alancutter/web-platform-tests.git - branch = nativeShippingAPI diff --git a/test/web-platform-tests b/test/web-platform-tests deleted file mode 160000 index d773d887..00000000 --- a/test/web-platform-tests +++ /dev/null @@ -1 +0,0 @@ -Subproject commit d773d88789f2e4eb0c4cd46062f93f5ba4e0521d From 1f7a1a0687a3e166aecc517fc01847a2fa16f2ed Mon Sep 17 00:00:00 2001 From: Alan Cutter Date: Mon, 24 Jun 2019 18:01:46 +1000 Subject: [PATCH 11/27] Add wpt back using master --- .gitmodules | 3 +++ test/web-platform-tests | 1 + 2 files changed, 4 insertions(+) create mode 160000 test/web-platform-tests diff --git a/.gitmodules b/.gitmodules index e69de29b..d965ba1d 100644 --- a/.gitmodules +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "test/web-platform-tests"] + path = test/web-platform-tests + url = git@github.com:web-platform-tests/wpt.git diff --git a/test/web-platform-tests b/test/web-platform-tests new file mode 160000 index 00000000..f9f56630 --- /dev/null +++ b/test/web-platform-tests @@ -0,0 +1 @@ +Subproject commit f9f566304cb595c12c82cbe7a7cbba72e83bb28f From 08d2c4abfe6e7fa62be33842f8fa5ca41e98754b Mon Sep 17 00:00:00 2001 From: Alan Cutter Date: Mon, 24 Jun 2019 18:02:22 +1000 Subject: [PATCH 12/27] Add npm fixes --- package-lock.json | 5421 +++++++++++++++++++++++++++++++++++++++++++++ package.json | 1 - 2 files changed, 5421 insertions(+), 1 deletion(-) create mode 100644 package-lock.json diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..d47a7744 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,5421 @@ +{ + "name": "web-animations-js", + "version": "2.3.1", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "accepts": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.2.13.tgz", + "integrity": "sha1-5fHzkoxtlf2WVYw27D2dDeSm7Oo=", + "dev": true, + "requires": { + "mime-types": "~2.1.6", + "negotiator": "0.5.3" + } + }, + "active-x-obfuscator": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/active-x-obfuscator/-/active-x-obfuscator-0.0.1.tgz", + "integrity": "sha1-CJuJs3FF/x2ex0r2UwvlUmyuHxo=", + "dev": true, + "requires": { + "zeparser": "0.0.5" + } + }, + "adm-zip": { + "version": "0.4.13", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.13.tgz", + "integrity": "sha512-fERNJX8sOXfel6qCBCMPvZLzENBEhZTzKqg6vrOW5pvoEaQuJhRU4ndTAh6lHOxn1I6jnz2NHra56ZODM751uw==", + "dev": true + }, + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "dev": true, + "requires": { + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" + } + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz", + "integrity": "sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg=", + "dev": true + }, + "anymatch": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "dev": true, + "requires": { + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" + } + }, + "archiver": { + "version": "0.4.10", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-0.4.10.tgz", + "integrity": "sha1-3w/qyPHRKV5ezrOiBVWQctIfR0c=", + "dev": true, + "requires": { + "iconv-lite": "~0.2.11", + "readable-stream": "~1.0.2" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "argparse": { + "version": "0.1.16", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz", + "integrity": "sha1-z9AeD7uj1srtBJ+9dY1A9lGW9Xw=", + "dev": true, + "requires": { + "underscore": "~1.7.0", + "underscore.string": "~2.4.0" + }, + "dependencies": { + "underscore.string": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz", + "integrity": "sha1-jN2PusTi0uoefi6Al8QvRCKA+Fs=", + "dev": true + } + } + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "asn1": { + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz", + "integrity": "sha1-VZvhg3bQik7E2+gId9J4GGObLfc=", + "dev": true + }, + "assert-plus": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.2.tgz", + "integrity": "sha1-2T/9u2esVQd3m+MWp9ZRRkF77vg=", + "dev": true + }, + "assertion-error": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.0.0.tgz", + "integrity": "sha1-x/hUOP3UZrx8oWq5DIFRN5el0js=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "async": { + "version": "0.1.22", + "resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz", + "integrity": "sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE=", + "dev": true + }, + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "aws-sign": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/aws-sign/-/aws-sign-0.3.0.tgz", + "integrity": "sha1-PYHKabR0seFlGHKLUcJP8Lvtxuk=", + "dev": true + }, + "aws-sign2": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz", + "integrity": "sha1-xXED96F/wDfwLXwuZLYC6iI/fWM=", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, + "base64-url": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/base64-url/-/base64-url-1.2.1.tgz", + "integrity": "sha1-GZ/WYXAqDnt9yubgaYuwicUvbXg=", + "dev": true + }, + "base64id": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-0.1.0.tgz", + "integrity": "sha1-As4P3u4M709ACA4ec+g08LG/zj8=", + "dev": true + }, + "basic-auth": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-1.0.4.tgz", + "integrity": "sha1-Awk1sB3nyblKgksp8/zLdQ06UpA=", + "dev": true + }, + "basic-auth-connect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/basic-auth-connect/-/basic-auth-connect-1.0.0.tgz", + "integrity": "sha1-/bC0OWLKe0BFanwrtI/hc9otISI=", + "dev": true + }, + "batch": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.5.3.tgz", + "integrity": "sha1-PzQU84AyF0O/wQQvmoP/HVgk1GQ=", + "dev": true + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true + }, + "bl": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/bl/-/bl-0.9.5.tgz", + "integrity": "sha1-wGt5evCF6gC8Unr8jvzxHeIjIFQ=", + "dev": true, + "requires": { + "readable-stream": "~1.0.26" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "bluebird": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz", + "integrity": "sha1-U0uQM8AiyVecVro7Plpcqvu2UOE=", + "dev": true + }, + "body-parser": { + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.13.3.tgz", + "integrity": "sha1-wIzzMMM1jhUQFqBXRvE/ApyX+pc=", + "dev": true, + "requires": { + "bytes": "2.1.0", + "content-type": "~1.0.1", + "debug": "~2.2.0", + "depd": "~1.0.1", + "http-errors": "~1.3.1", + "iconv-lite": "0.4.11", + "on-finished": "~2.3.0", + "qs": "4.0.0", + "raw-body": "~2.1.2", + "type-is": "~1.6.6" + }, + "dependencies": { + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "dev": true, + "requires": { + "ms": "0.7.1" + } + }, + "iconv-lite": { + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.11.tgz", + "integrity": "sha1-LstC/SlHRJIiCaLnxATayHk9it4=", + "dev": true + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "dev": true + }, + "qs": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-4.0.0.tgz", + "integrity": "sha1-wx2bdOwn33XlQ6hseHKO2NRiNgc=", + "dev": true + } + } + }, + "boom": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/boom/-/boom-0.4.2.tgz", + "integrity": "sha1-emNune1O/O+xnO9JR6PGffrukRs=", + "dev": true, + "requires": { + "hoek": "0.9.x" + }, + "dependencies": { + "hoek": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-0.9.1.tgz", + "integrity": "sha1-PTIkYrrfB3Fup+uFuviAec3c5QU=", + "dev": true + } + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true, + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "dev": true + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "bytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.1.0.tgz", + "integrity": "sha1-rJPEEOL/ycx89LRks4KJBn9eR7Q=", + "dev": true + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true + }, + "caseless": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.9.0.tgz", + "integrity": "sha1-t7Zc5r8UE4hlOc/VM/CzDv+pz4g=", + "dev": true + }, + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "dev": true, + "requires": { + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" + } + }, + "chai": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-1.10.0.tgz", + "integrity": "sha1-5AMcyHZURhp1lD5aNatG6vOcHrk=", + "dev": true, + "requires": { + "assertion-error": "1.0.0", + "deep-eql": "0.1.3" + } + }, + "chalk": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz", + "integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=", + "dev": true, + "requires": { + "ansi-styles": "~1.0.0", + "has-color": "~0.1.0", + "strip-ansi": "~0.1.0" + } + }, + "chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "dev": true, + "requires": { + "anymatch": "^1.3.0", + "async-each": "^1.0.0", + "fsevents": "^1.0.0", + "glob-parent": "^2.0.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^2.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0" + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dev": true, + "requires": { + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + } + }, + "closure-linter-wrapper": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/closure-linter-wrapper/-/closure-linter-wrapper-1.1.0.tgz", + "integrity": "sha1-1lTNhU56yMqhQNDKSMy/MChUsSg=", + "dev": true, + "requires": { + "colors": "^1.1.2" + } + }, + "coffee-script": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.3.3.tgz", + "integrity": "sha1-FQ1rTLUiiUNp7+1qIQHCC8f0pPQ=", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "colors": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.3.tgz", + "integrity": "sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg==", + "dev": true + }, + "combined-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz", + "integrity": "sha1-ATfmV7qlp1QcV6w3rF/AfXO03B8=", + "dev": true, + "requires": { + "delayed-stream": "0.0.5" + } + }, + "commander": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.1.0.tgz", + "integrity": "sha1-0SG7roYNmZKj1Re6lvVliOR8Z4E=", + "dev": true + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "compress-commons": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-0.2.9.tgz", + "integrity": "sha1-Qi2SdDDAGr0GzUVbbfwEy0z4ADw=", + "dev": true, + "requires": { + "buffer-crc32": "~0.2.1", + "crc32-stream": "~0.3.1", + "node-int64": "~0.3.0", + "readable-stream": "~1.0.26" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "compressible": { + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.17.tgz", + "integrity": "sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw==", + "dev": true, + "requires": { + "mime-db": ">= 1.40.0 < 2" + } + }, + "compression": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.5.2.tgz", + "integrity": "sha1-sDuNhub4rSloPLqN+R3cb/x3s5U=", + "dev": true, + "requires": { + "accepts": "~1.2.12", + "bytes": "2.1.0", + "compressible": "~2.0.5", + "debug": "~2.2.0", + "on-headers": "~1.0.0", + "vary": "~1.0.1" + }, + "dependencies": { + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "dev": true, + "requires": { + "ms": "0.7.1" + } + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "dev": true + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "connect": { + "version": "2.30.2", + "resolved": "https://registry.npmjs.org/connect/-/connect-2.30.2.tgz", + "integrity": "sha1-jam8vooFTT0xjXTf7JA7XDmhtgk=", + "dev": true, + "requires": { + "basic-auth-connect": "1.0.0", + "body-parser": "~1.13.3", + "bytes": "2.1.0", + "compression": "~1.5.2", + "connect-timeout": "~1.6.2", + "content-type": "~1.0.1", + "cookie": "0.1.3", + "cookie-parser": "~1.3.5", + "cookie-signature": "1.0.6", + "csurf": "~1.8.3", + "debug": "~2.2.0", + "depd": "~1.0.1", + "errorhandler": "~1.4.2", + "express-session": "~1.11.3", + "finalhandler": "0.4.0", + "fresh": "0.3.0", + "http-errors": "~1.3.1", + "method-override": "~2.3.5", + "morgan": "~1.6.1", + "multiparty": "3.3.2", + "on-headers": "~1.0.0", + "parseurl": "~1.3.0", + "pause": "0.1.0", + "qs": "4.0.0", + "response-time": "~2.3.1", + "serve-favicon": "~2.3.0", + "serve-index": "~1.7.2", + "serve-static": "~1.10.0", + "type-is": "~1.6.6", + "utils-merge": "1.0.0", + "vhost": "~3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "dev": true, + "requires": { + "ms": "0.7.1" + } + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "dev": true + }, + "qs": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-4.0.0.tgz", + "integrity": "sha1-wx2bdOwn33XlQ6hseHKO2NRiNgc=", + "dev": true + } + } + }, + "connect-timeout": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/connect-timeout/-/connect-timeout-1.6.2.tgz", + "integrity": "sha1-3ppexh4zoStu2qt7XwYumMWZuI4=", + "dev": true, + "requires": { + "debug": "~2.2.0", + "http-errors": "~1.3.1", + "ms": "0.7.1", + "on-headers": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "dev": true, + "requires": { + "ms": "0.7.1" + } + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "dev": true + } + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true + }, + "cookie": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.3.tgz", + "integrity": "sha1-5zSlwUF/zkctWu+Cw4HKu2TRpDU=", + "dev": true + }, + "cookie-jar": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/cookie-jar/-/cookie-jar-0.3.0.tgz", + "integrity": "sha1-vJon1OK5fhhs1XyeIGPLmfpozMw=", + "dev": true + }, + "cookie-parser": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.3.5.tgz", + "integrity": "sha1-nXVVcPtdF4kHcSJ6AjFNm+fPg1Y=", + "dev": true, + "requires": { + "cookie": "0.1.3", + "cookie-signature": "1.0.6" + } + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "crc": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/crc/-/crc-3.3.0.tgz", + "integrity": "sha1-+mIuG8OIvyVzCQgta2UgDOZwkLo=", + "dev": true + }, + "crc32-stream": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-0.3.4.tgz", + "integrity": "sha1-c7wltF+sHbZjIjGnv86JJ+nwZVI=", + "dev": true, + "requires": { + "buffer-crc32": "~0.2.1", + "readable-stream": "~1.0.24" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "cryptiles": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-0.2.2.tgz", + "integrity": "sha1-7ZH/HxetE9N0gohZT4pIoNJvMlw=", + "dev": true, + "requires": { + "boom": "0.4.x" + } + }, + "csrf": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/csrf/-/csrf-3.0.6.tgz", + "integrity": "sha1-thEg3c7q/JHnbtUxO7XAsmZ7cQo=", + "dev": true, + "requires": { + "rndm": "1.2.0", + "tsscmp": "1.0.5", + "uid-safe": "2.1.4" + } + }, + "csurf": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/csurf/-/csurf-1.8.3.tgz", + "integrity": "sha1-I/KhO/HY/OHQyZZYg5RELLqGpWo=", + "dev": true, + "requires": { + "cookie": "0.1.3", + "cookie-signature": "1.0.6", + "csrf": "~3.0.0", + "http-errors": "~1.3.1" + } + }, + "ctype": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.2.tgz", + "integrity": "sha1-/oCR1Gijc6Cwyf+Lv7NCXACXOh0=", + "dev": true + }, + "dateformat": { + "version": "1.0.2-1.2.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz", + "integrity": "sha1-sCIMAt6YYXQztyhRz0fePfLNvuk=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "deep-eql": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz", + "integrity": "sha1-71WKyrjeJSBs1xOQbXTlaTDrafI=", + "dev": true, + "requires": { + "type-detect": "0.1.1" + } + }, + "deep-equal": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-0.0.0.tgz", + "integrity": "sha1-mWedO70EcVb81FDT0B7rkGhpHoM=", + "dev": true + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, + "defined": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-0.0.0.tgz", + "integrity": "sha1-817qfXBekzuvE7LwOz+D2SFAOz4=", + "dev": true + }, + "delayed-stream": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz", + "integrity": "sha1-1LH0OpPoKW3+AmlPRoC8N6MTxz8=", + "dev": true + }, + "depd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.0.1.tgz", + "integrity": "sha1-gK7GTJ1tl+ZcwqnKqTwKpqv3Oqo=", + "dev": true + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "di": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", + "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", + "dev": true + }, + "diff": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/diff/-/diff-1.0.7.tgz", + "integrity": "sha1-JLuwAcSn1VIhaefKvbLCgU7ZHPQ=", + "dev": true + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "errorhandler": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/errorhandler/-/errorhandler-1.4.3.tgz", + "integrity": "sha1-t7cO2PNZ6duICS8tIMD4MUIK2D8=", + "dev": true, + "requires": { + "accepts": "~1.3.0", + "escape-html": "~1.0.3" + }, + "dependencies": { + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dev": true, + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "dev": true + } + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "esprima": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", + "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=", + "dev": true + }, + "etag": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz", + "integrity": "sha1-A9MLX2fdbmMtKUXTDWZScxo01dg=", + "dev": true + }, + "eventemitter2": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", + "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=", + "dev": true + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "dev": true, + "requires": { + "fill-range": "^2.1.0" + } + }, + "express-session": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.11.3.tgz", + "integrity": "sha1-XMmPP1/4Ttg1+Ry/CqvQxxB0AK8=", + "dev": true, + "requires": { + "cookie": "0.1.3", + "cookie-signature": "1.0.6", + "crc": "3.3.0", + "debug": "~2.2.0", + "depd": "~1.0.1", + "on-headers": "~1.0.0", + "parseurl": "~1.3.0", + "uid-safe": "~2.0.0", + "utils-merge": "1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "dev": true, + "requires": { + "ms": "0.7.1" + } + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "dev": true + }, + "uid-safe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.0.0.tgz", + "integrity": "sha1-p/PGymSh9qXQTsDvPkw9U2cxcTc=", + "dev": true, + "requires": { + "base64-url": "1.2.1" + } + } + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "dev": true + }, + "fill-range": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", + "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", + "dev": true, + "requires": { + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" + } + }, + "finalhandler": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.4.0.tgz", + "integrity": "sha1-llpS2ejQXSuFdUhUH7ibU6JJfZs=", + "dev": true, + "requires": { + "debug": "~2.2.0", + "escape-html": "1.0.2", + "on-finished": "~2.3.0", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "dev": true, + "requires": { + "ms": "0.7.1" + } + }, + "escape-html": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.2.tgz", + "integrity": "sha1-130y+pjjjC9BroXpJ44ODmuhAiw=", + "dev": true + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "dev": true + } + } + }, + "findup-sync": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.1.3.tgz", + "integrity": "sha1-fz56l7gjksZTvwZYm9hRkOk8NoM=", + "dev": true, + "requires": { + "glob": "~3.2.9", + "lodash": "~2.4.1" + }, + "dependencies": { + "glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz", + "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=", + "dev": true, + "requires": { + "inherits": "2", + "minimatch": "0.3" + } + }, + "lodash": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", + "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=", + "dev": true + }, + "minimatch": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz", + "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=", + "dev": true, + "requires": { + "lru-cache": "2", + "sigmund": "~1.0.0" + } + } + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "dev": true, + "requires": { + "for-in": "^1.0.1" + } + }, + "forever-agent": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.5.2.tgz", + "integrity": "sha1-bQ4JxJIflKJ/Y9O0nF/v8epMUTA=", + "dev": true + }, + "form-data": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.0.8.tgz", + "integrity": "sha1-CJDNEAXFzOzAudJKiAUskkQtDbU=", + "dev": true, + "requires": { + "async": "~0.2.7", + "combined-stream": "~0.0.4", + "mime": "~1.2.2" + }, + "dependencies": { + "async": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=", + "dev": true + } + } + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz", + "integrity": "sha1-ZR+DjiJCTnVm3hYdg1jKoZn4PU8=", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", + "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", + "dev": true, + "optional": true, + "requires": { + "nan": "^2.12.1", + "node-pre-gyp": "^0.12.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "debug": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "deep-extend": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.24", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true + }, + "minipass": { + "version": "2.3.5", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.3.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "^4.1.0", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.12.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.4.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.6.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.7.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "yallist": { + "version": "3.0.3", + "bundled": true, + "dev": true + } + } + }, + "generate-function": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", + "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", + "dev": true, + "requires": { + "is-property": "^1.0.2" + } + }, + "generate-object-property": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", + "dev": true, + "requires": { + "is-property": "^1.0.0" + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "getobject": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz", + "integrity": "sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw=", + "dev": true + }, + "glob": { + "version": "3.1.21", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", + "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=", + "dev": true, + "requires": { + "graceful-fs": "~1.2.0", + "inherits": "1", + "minimatch": "~0.2.11" + }, + "dependencies": { + "inherits": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", + "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=", + "dev": true + }, + "minimatch": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", + "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", + "dev": true, + "requires": { + "lru-cache": "2", + "sigmund": "~1.0.0" + } + } + } + }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "dev": true, + "requires": { + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" + } + }, + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true, + "requires": { + "is-glob": "^2.0.0" + } + }, + "graceful-fs": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", + "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=", + "dev": true + }, + "growl": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.8.1.tgz", + "integrity": "sha1-Sy3sjZB+k9szZiTc7AGDUC+MlCg=", + "dev": true + }, + "grunt": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/grunt/-/grunt-0.4.5.tgz", + "integrity": "sha1-VpN81RlDJK3/bSB2MYMqnWuk5/A=", + "dev": true, + "requires": { + "async": "~0.1.22", + "coffee-script": "~1.3.3", + "colors": "~0.6.2", + "dateformat": "1.0.2-1.2.3", + "eventemitter2": "~0.4.13", + "exit": "~0.1.1", + "findup-sync": "~0.1.2", + "getobject": "~0.1.0", + "glob": "~3.1.21", + "grunt-legacy-log": "~0.1.0", + "grunt-legacy-util": "~0.2.0", + "hooker": "~0.2.3", + "iconv-lite": "~0.2.11", + "js-yaml": "~2.0.5", + "lodash": "~0.9.2", + "minimatch": "~0.2.12", + "nopt": "~1.0.10", + "rimraf": "~2.2.8", + "underscore.string": "~2.2.1", + "which": "~1.0.5" + }, + "dependencies": { + "colors": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", + "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=", + "dev": true + }, + "minimatch": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", + "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", + "dev": true, + "requires": { + "lru-cache": "2", + "sigmund": "~1.0.0" + } + } + } + }, + "grunt-checkrepo": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/grunt-checkrepo/-/grunt-checkrepo-0.1.0.tgz", + "integrity": "sha1-4bhgKRhtAe98BfoJG/Z54Uzg1y0=", + "dev": true, + "requires": { + "semver": "~2.1.0", + "shelljs": "~0.2.5" + } + }, + "grunt-contrib-uglify": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/grunt-contrib-uglify/-/grunt-contrib-uglify-0.4.1.tgz", + "integrity": "sha1-1D87xuAsM1Vj+MT58IE/tLD/ebE=", + "dev": true, + "requires": { + "chalk": "^0.4.0", + "maxmin": "^0.1.0", + "uglify-js": "^2.4.0" + } + }, + "grunt-git-status": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/grunt-git-status/-/grunt-git-status-1.0.0.tgz", + "integrity": "sha1-qw9MfiUXKpUWkPd0assdtt8QiM8=", + "dev": true + }, + "grunt-gjslint": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/grunt-gjslint/-/grunt-gjslint-0.2.1.tgz", + "integrity": "sha1-e7BLC8rfWoLrrQ9RmZ1owyvgYD8=", + "dev": true + }, + "grunt-karma": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/grunt-karma/-/grunt-karma-0.8.3.tgz", + "integrity": "sha1-6ez3GBU68ZFKpTYCo3+F3gQxDn8=", + "dev": true, + "requires": { + "lodash": "~2.4.1" + }, + "dependencies": { + "lodash": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", + "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=", + "dev": true + } + } + }, + "grunt-legacy-log": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-0.1.3.tgz", + "integrity": "sha1-7ClCboAwIa9ZAp+H0vnNczWgVTE=", + "dev": true, + "requires": { + "colors": "~0.6.2", + "grunt-legacy-log-utils": "~0.1.1", + "hooker": "~0.2.3", + "lodash": "~2.4.1", + "underscore.string": "~2.3.3" + }, + "dependencies": { + "colors": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", + "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=", + "dev": true + }, + "lodash": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", + "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=", + "dev": true + }, + "underscore.string": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz", + "integrity": "sha1-ccCL9rQosRM/N+ePo6Icgvcymw0=", + "dev": true + } + } + }, + "grunt-legacy-log-utils": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-0.1.1.tgz", + "integrity": "sha1-wHBrndkGThFvNvI/5OawSGcsD34=", + "dev": true, + "requires": { + "colors": "~0.6.2", + "lodash": "~2.4.1", + "underscore.string": "~2.3.3" + }, + "dependencies": { + "colors": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", + "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=", + "dev": true + }, + "lodash": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", + "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=", + "dev": true + }, + "underscore.string": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz", + "integrity": "sha1-ccCL9rQosRM/N+ePo6Icgvcymw0=", + "dev": true + } + } + }, + "grunt-legacy-util": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-0.2.0.tgz", + "integrity": "sha1-kzJIhNv343qf98Am3/RR2UqeVUs=", + "dev": true, + "requires": { + "async": "~0.1.22", + "exit": "~0.1.1", + "getobject": "~0.1.0", + "hooker": "~0.2.3", + "lodash": "~0.9.2", + "underscore.string": "~2.2.1", + "which": "~1.0.5" + } + }, + "grunt-saucelabs": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/grunt-saucelabs/-/grunt-saucelabs-4.0.4.tgz", + "integrity": "sha1-OLFDJmIukE3rNS7Ow0NHMCAZ7hw=", + "dev": true, + "requires": { + "colors": "~0.6.0", + "request": "~2.12.0", + "saucelabs": "~0.0.7", + "wd": "~0.0.26" + }, + "dependencies": { + "colors": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", + "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=", + "dev": true + } + } + }, + "grunt-template": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/grunt-template/-/grunt-template-0.2.3.tgz", + "integrity": "sha1-JBVa/qeJhL5nMMHHc7uS3odHo3A=", + "dev": true + }, + "gzip-size": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-0.1.1.tgz", + "integrity": "sha1-rjNIO2/IIk6DQilt4Qjvk3V/duA=", + "dev": true, + "requires": { + "concat-stream": "^1.4.1", + "zlib-browserify": "^0.0.3" + } + }, + "har-validator": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-1.8.0.tgz", + "integrity": "sha1-2DhCsOtMQ1lgrrEIoGejqpTA7rI=", + "dev": true, + "requires": { + "bluebird": "^2.9.30", + "chalk": "^1.0.0", + "commander": "^2.8.1", + "is-my-json-valid": "^2.12.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "commander": { + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", + "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-color": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz", + "integrity": "sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hawk": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-0.13.1.tgz", + "integrity": "sha1-NheViCH1gxHk1/beKR/KZitBLvQ=", + "dev": true, + "requires": { + "boom": "0.4.x", + "cryptiles": "0.2.x", + "hoek": "0.8.x", + "sntp": "0.2.x" + } + }, + "hoek": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-0.8.5.tgz", + "integrity": "sha1-Hp/XcO9+vgJ0rfy1sIBqAlpeTp8=", + "dev": true + }, + "hooker": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz", + "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=", + "dev": true + }, + "http-errors": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", + "integrity": "sha1-GX4izevUGYWF6GlO9nhhl7ke2UI=", + "dev": true, + "requires": { + "inherits": "~2.0.1", + "statuses": "1" + } + }, + "http-proxy": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-0.10.4.tgz", + "integrity": "sha1-FLoM6qIZf4n6MN6p57CeGc2Twi8=", + "dev": true, + "requires": { + "colors": "0.x.x", + "optimist": "0.6.x", + "pkginfo": "0.3.x", + "utile": "~0.2.1" + }, + "dependencies": { + "colors": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", + "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=", + "dev": true + } + } + }, + "http-signature": { + "version": "0.9.11", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.9.11.tgz", + "integrity": "sha1-nognFFcjFeZ5Cl0KeVXv/x8Z5lM=", + "dev": true, + "requires": { + "asn1": "0.1.11", + "assert-plus": "0.1.2", + "ctype": "0.5.2" + } + }, + "i": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/i/-/i-0.3.6.tgz", + "integrity": "sha1-2WyScyB28HJxG2sQ/X1PZa2O4j0=", + "dev": true + }, + "iconv-lite": { + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz", + "integrity": "sha1-HOYKOleGSiktEyH/RgnKS7llrcg=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "dev": true + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "dev": true + }, + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "dev": true, + "requires": { + "is-primitive": "^2.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "is-my-ip-valid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz", + "integrity": "sha512-gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ==", + "dev": true + }, + "is-my-json-valid": { + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.20.0.tgz", + "integrity": "sha512-XTHBZSIIxNsIsZXg7XB5l8z/OBFosl1Wao4tXLpeC7eKU4Vm/kdop2azkPqULwnfGQjmeDIyey9g7afMMtdWAA==", + "dev": true, + "requires": { + "generate-function": "^2.0.0", + "generate-object-property": "^1.1.0", + "is-my-ip-valid": "^1.0.0", + "jsonpointer": "^4.0.0", + "xtend": "^4.0.0" + } + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "dev": true + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "dev": true + }, + "is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "jade": { + "version": "0.26.3", + "resolved": "https://registry.npmjs.org/jade/-/jade-0.26.3.tgz", + "integrity": "sha1-jxDXl32NefL2/4YqgbBRPMslaGw=", + "dev": true, + "requires": { + "commander": "0.6.1", + "mkdirp": "0.3.0" + }, + "dependencies": { + "commander": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-0.6.1.tgz", + "integrity": "sha1-+mihT2qUXVTbvlDYzbMyDp47GgY=", + "dev": true + }, + "mkdirp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz", + "integrity": "sha1-G79asbqCevI1dRQ0kEJkVfSB/h4=", + "dev": true + } + } + }, + "js-yaml": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-2.0.5.tgz", + "integrity": "sha1-olrmUJmZ6X3yeMZxnaEb0Gh3Q6g=", + "dev": true, + "requires": { + "argparse": "~ 0.1.11", + "esprima": "~ 1.0.2" + } + }, + "json-stringify-safe": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-4.0.0.tgz", + "integrity": "sha1-d8JxqupUMC5o7+rMtWq78GqbGlQ=", + "dev": true + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "dev": true + }, + "jsonpointer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", + "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=", + "dev": true + }, + "karma": { + "version": "0.12.37", + "resolved": "https://registry.npmjs.org/karma/-/karma-0.12.37.tgz", + "integrity": "sha1-Gp9/3szWneLoNeBO26wuzT+mReQ=", + "dev": true, + "requires": { + "chokidar": "^1.0.1", + "colors": "^1.1.0", + "connect": "^2.29.2", + "di": "^0.0.1", + "glob": "^5.0.6", + "graceful-fs": "^3.0.6", + "http-proxy": "^0.10", + "lodash": "^3.8.0", + "log4js": "^0.6.25", + "mime": "^1.3.4", + "minimatch": "^2.0.7", + "optimist": "^0.6.1", + "q": "^1.4.1", + "rimraf": "^2.3.3", + "socket.io": "0.9.16", + "source-map": "^0.4.2", + "useragent": "^2.1.6" + }, + "dependencies": { + "glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", + "dev": true, + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "graceful-fs": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz", + "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=", + "dev": true, + "requires": { + "natives": "^1.1.0" + } + }, + "lodash": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", + "dev": true + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + }, + "minimatch": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", + "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=", + "dev": true, + "requires": { + "brace-expansion": "^1.0.0" + } + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true + }, + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + }, + "dependencies": { + "glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "karma-chai": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/karma-chai/-/karma-chai-0.1.0.tgz", + "integrity": "sha1-vuWtQEAFF4Ea40u5RfdikJEIt5o=", + "dev": true + }, + "karma-chrome-launcher": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-0.1.12.tgz", + "integrity": "sha1-CsDiLlc2UPZUExL9ynlcOCTM+WI=", + "dev": true, + "requires": { + "which": "^1.0.9" + } + }, + "karma-firefox-launcher": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/karma-firefox-launcher/-/karma-firefox-launcher-0.1.7.tgz", + "integrity": "sha1-wF3YZTNpHmLzGVJZUJjovTV9OfM=", + "dev": true + }, + "karma-ie-launcher": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/karma-ie-launcher/-/karma-ie-launcher-0.1.5.tgz", + "integrity": "sha1-7kO9I49hxF3Y+8FpSxOlDftaPhs=", + "dev": true + }, + "karma-mocha": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/karma-mocha/-/karma-mocha-0.1.10.tgz", + "integrity": "sha1-Ke1R1LEhrxNzRE7FVbIKkFv0K5I=", + "dev": true + }, + "karma-safari-launcher": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/karma-safari-launcher/-/karma-safari-launcher-0.1.1.tgz", + "integrity": "sha1-pjgKzKtgpYP91iT0G5o/EP30EAg=", + "dev": true + }, + "karma-sauce-launcher": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/karma-sauce-launcher/-/karma-sauce-launcher-0.2.14.tgz", + "integrity": "sha1-5C5BJRfF9AU0yLun0Uu08Qcntqc=", + "dev": true, + "requires": { + "q": "~0.9.6", + "sauce-connect-launcher": "~0.11.1", + "saucelabs": "~0.1.0", + "wd": "~0.3.4" + }, + "dependencies": { + "archiver": { + "version": "0.14.4", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-0.14.4.tgz", + "integrity": "sha1-W53bn17hzu8hy487Ag5iQOy0MVw=", + "dev": true, + "requires": { + "async": "~0.9.0", + "buffer-crc32": "~0.2.1", + "glob": "~4.3.0", + "lazystream": "~0.1.0", + "lodash": "~3.2.0", + "readable-stream": "~1.0.26", + "tar-stream": "~1.1.0", + "zip-stream": "~0.5.0" + }, + "dependencies": { + "async": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", + "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", + "dev": true + }, + "lodash": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.2.0.tgz", + "integrity": "sha1-S/UKMkP5rrC6xBpV09WZBnWkYvs=", + "dev": true + } + } + }, + "assert-plus": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz", + "integrity": "sha1-7nQAlBMALYTOxyGcasgRgS5yMWA=", + "dev": true + }, + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", + "dev": true + }, + "boom": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "dev": true, + "requires": { + "hoek": "2.x.x" + } + }, + "cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "dev": true, + "requires": { + "boom": "2.x.x" + } + }, + "ctype": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz", + "integrity": "sha1-gsGMJGH3QRTvFsE1IkrQuRRMoS8=", + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.2.0.tgz", + "integrity": "sha1-Jvi8JtpkQOKZy9z7aQNcT3em5GY=", + "dev": true, + "requires": { + "async": "~0.9.0", + "combined-stream": "~0.0.4", + "mime-types": "~2.0.3" + }, + "dependencies": { + "async": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", + "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", + "dev": true + } + } + }, + "glob": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-4.3.5.tgz", + "integrity": "sha1-gPuwjKVA8jiszl0R0em8QedRc9M=", + "dev": true, + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^2.0.1", + "once": "^1.3.0" + } + }, + "hawk": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-2.3.1.tgz", + "integrity": "sha1-HnMc45RH+h0PbXB/e87r7A/R7B8=", + "dev": true, + "requires": { + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" + } + }, + "hoek": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", + "dev": true + }, + "http-signature": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.10.1.tgz", + "integrity": "sha1-T72sEyVZqoMjEh5UB3nAoBKyfmY=", + "dev": true, + "requires": { + "asn1": "0.1.11", + "assert-plus": "^0.1.5", + "ctype": "0.5.3" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "lodash": { + "version": "3.9.3", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.9.3.tgz", + "integrity": "sha1-AVnoaDL+/8bWHYUrEqlTuZSWvTI=", + "dev": true + }, + "mime-db": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.12.0.tgz", + "integrity": "sha1-PQxjGA9FjrENMlqqN9fFiuMS6dc=", + "dev": true + }, + "mime-types": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.14.tgz", + "integrity": "sha1-MQ4VnbI+B3+Lsit0jav6SVcUCqY=", + "dev": true, + "requires": { + "mime-db": "~1.12.0" + } + }, + "minimatch": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", + "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=", + "dev": true, + "requires": { + "brace-expansion": "^1.0.0" + } + }, + "oauth-sign": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.6.0.tgz", + "integrity": "sha1-fb6uRPbKRU4fFoRR1jB0ZzWBPOM=", + "dev": true + }, + "qs": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-2.4.2.tgz", + "integrity": "sha1-9854jld33wtQENp/fE5zujJHD1o=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "request": { + "version": "2.55.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.55.0.tgz", + "integrity": "sha1-11wc32eddrsQD5v/4f5VG1wk6T0=", + "dev": true, + "requires": { + "aws-sign2": "~0.5.0", + "bl": "~0.9.0", + "caseless": "~0.9.0", + "combined-stream": "~0.0.5", + "forever-agent": "~0.6.0", + "form-data": "~0.2.0", + "har-validator": "^1.4.0", + "hawk": "~2.3.0", + "http-signature": "~0.10.0", + "isstream": "~0.1.1", + "json-stringify-safe": "~5.0.0", + "mime-types": "~2.0.1", + "node-uuid": "~1.4.0", + "oauth-sign": "~0.6.0", + "qs": "~2.4.0", + "stringstream": "~0.0.4", + "tough-cookie": ">=0.12.0", + "tunnel-agent": "~0.4.0" + } + }, + "saucelabs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-0.1.1.tgz", + "integrity": "sha1-Xg6hzz1zXW6hX96Utb2mvBXSwG0=", + "dev": true + }, + "sntp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "dev": true, + "requires": { + "hoek": "2.x.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "tunnel-agent": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", + "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=", + "dev": true + }, + "underscore.string": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.0.3.tgz", + "integrity": "sha1-Rhe4waJQz25QZPu7Nj0PqWzxRVI=", + "dev": true + }, + "wd": { + "version": "0.3.12", + "resolved": "https://registry.npmjs.org/wd/-/wd-0.3.12.tgz", + "integrity": "sha1-P7Tx11n4yF3eU5PRczT/4D6bsyk=", + "dev": true, + "requires": { + "archiver": "~0.14.0", + "async": "~1.0.0", + "lodash": "~3.9.3", + "q": "~1.4.1", + "request": "~2.55.0", + "underscore.string": "~3.0.3", + "vargs": "~0.1.0" + }, + "dependencies": { + "q": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", + "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=", + "dev": true + } + } + } + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "dev": true + }, + "lazystream": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-0.1.0.tgz", + "integrity": "sha1-GyXWPHcqTCDwpe0KnXf0hLbhaSA=", + "dev": true, + "requires": { + "readable-stream": "~1.0.2" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "lodash": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz", + "integrity": "sha1-jzSZxSRdNG1oLlsNO0B2fgnxqSw=", + "dev": true + }, + "log4js": { + "version": "0.6.38", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-0.6.38.tgz", + "integrity": "sha1-LElBFmldb7JUgJQ9P8hy5mKlIv0=", + "dev": true, + "requires": { + "readable-stream": "~1.0.2", + "semver": "~4.3.3" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "semver": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", + "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=", + "dev": true + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "dev": true + }, + "lru-cache": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", + "dev": true + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "math-random": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", + "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==", + "dev": true + }, + "maxmin": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/maxmin/-/maxmin-0.1.0.tgz", + "integrity": "sha1-ldgcUonjqdMPf8fcVZwCTlAwydA=", + "dev": true, + "requires": { + "chalk": "^0.4.0", + "gzip-size": "^0.1.0", + "pretty-bytes": "^0.1.0" + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true + }, + "method-override": { + "version": "2.3.10", + "resolved": "https://registry.npmjs.org/method-override/-/method-override-2.3.10.tgz", + "integrity": "sha1-49r41d7hDdLc59SuiNYrvud0drQ=", + "dev": true, + "requires": { + "debug": "2.6.9", + "methods": "~1.1.2", + "parseurl": "~1.3.2", + "vary": "~1.1.2" + }, + "dependencies": { + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true + } + } + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + } + }, + "mime": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz", + "integrity": "sha1-WCA+7Ybjpe8XrtK32evUfwpg3RA=", + "dev": true + }, + "mime-db": { + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==", + "dev": true + }, + "mime-types": { + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "dev": true, + "requires": { + "mime-db": "1.40.0" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", + "dev": true + }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + } + } + }, + "mocha": { + "version": "1.21.4", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-1.21.4.tgz", + "integrity": "sha1-531pw3c7o+K0/mtijCi13UOICtw=", + "dev": true, + "requires": { + "commander": "2.0.0", + "debug": "*", + "diff": "1.0.7", + "glob": "3.2.3", + "growl": "1.8.x", + "jade": "0.26.3", + "mkdirp": "0.3.5" + }, + "dependencies": { + "commander": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.0.0.tgz", + "integrity": "sha1-0bhvkB+LZL2UG96tr5JFMDk76Sg=", + "dev": true + }, + "glob": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.3.tgz", + "integrity": "sha1-4xPusknHr/qlxHUoaw4RW1mDlGc=", + "dev": true, + "requires": { + "graceful-fs": "~2.0.0", + "inherits": "2", + "minimatch": "~0.2.11" + } + }, + "graceful-fs": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-2.0.3.tgz", + "integrity": "sha1-fNLNsiiko/Nule+mzBQt59GhNtA=", + "dev": true + }, + "minimatch": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", + "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", + "dev": true, + "requires": { + "lru-cache": "2", + "sigmund": "~1.0.0" + } + }, + "mkdirp": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz", + "integrity": "sha1-3j5fiWHIjHh+4TaN+EmsRBPsqNc=", + "dev": true + } + } + }, + "morgan": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.6.1.tgz", + "integrity": "sha1-X9gYOYxoGcuiinzWZk8pL+HAu/I=", + "dev": true, + "requires": { + "basic-auth": "~1.0.3", + "debug": "~2.2.0", + "depd": "~1.0.1", + "on-finished": "~2.3.0", + "on-headers": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "dev": true, + "requires": { + "ms": "0.7.1" + } + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "dev": true + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "multiparty": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/multiparty/-/multiparty-3.3.2.tgz", + "integrity": "sha1-Nd5oBNwZZD5SSfPT473GyM4wHT8=", + "dev": true, + "requires": { + "readable-stream": "~1.1.9", + "stream-counter": "~0.2.0" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "nan": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", + "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", + "dev": true, + "optional": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, + "natives": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.6.tgz", + "integrity": "sha512-6+TDFewD4yxY14ptjKaS63GVdtKiES1pTPyxn9Jb0rBqPMZ7VcCiooEhPNsr+mqHtMGxa/5c/HhcC4uPEUw/nA==", + "dev": true + }, + "ncp": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/ncp/-/ncp-0.4.2.tgz", + "integrity": "sha1-q8xsvT7C7Spyn/bnwfqPAXhKhXQ=", + "dev": true + }, + "negotiator": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.5.3.tgz", + "integrity": "sha1-Jp1cR2gQ7JLtvntsLygxY4T5p+g=", + "dev": true + }, + "node-int64": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.3.3.tgz", + "integrity": "sha1-LW5rLs5d6FiLQ9iNG8QbJs0fqE0=", + "dev": true + }, + "node-uuid": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz", + "integrity": "sha1-sEDrCSOWivq/jTL7HxfxFn/auQc=", + "dev": true + }, + "nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "dev": true, + "requires": { + "abbrev": "1" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "oauth-sign": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.3.0.tgz", + "integrity": "sha1-y1QPk7srIqfVlBaRoojWDo6pOG4=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "dev": true, + "requires": { + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true, + "requires": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + } + }, + "options": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz", + "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=", + "dev": true + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "dev": true, + "requires": { + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "pause": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/pause/-/pause-0.1.0.tgz", + "integrity": "sha1-68ikqGGf8LioGsFRPDQ0/0af23Q=", + "dev": true + }, + "pkginfo": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz", + "integrity": "sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE=", + "dev": true + }, + "policyfile": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/policyfile/-/policyfile-0.0.4.tgz", + "integrity": "sha1-1rgurZiueeviKOLa9ZAzEeyYLk0=", + "dev": true + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "dev": true + }, + "pretty-bytes": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-0.1.2.tgz", + "integrity": "sha1-zZApTVihyk6KXQ+5yCJZmIgazwA=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "psl": { + "version": "1.1.33", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.33.tgz", + "integrity": "sha512-LTDP2uSrsc7XCb5lO7A8BI1qYxRe/8EqlRvMeEl6rsnYAqDOl8xHR+8lSAIVfrNaSAlTPTNOCgNjWcoUL3AZsw==", + "dev": true + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "q": { + "version": "0.9.7", + "resolved": "https://registry.npmjs.org/q/-/q-0.9.7.tgz", + "integrity": "sha1-TeLmyzspCIyeTLwDv51C+5bOL3U=", + "dev": true + }, + "qs": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/qs/-/qs-0.6.6.tgz", + "integrity": "sha1-bgFQmP9RlouKPIGQAdXyyJvEsQc=", + "dev": true + }, + "random-bytes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", + "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs=", + "dev": true + }, + "randomatic": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", + "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", + "dev": true, + "requires": { + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, + "range-parser": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.0.3.tgz", + "integrity": "sha1-aHKCNTXGkuLCoBA4Jq/YLC4P8XU=", + "dev": true + }, + "raw-body": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.7.tgz", + "integrity": "sha1-rf6s4uT7MJgFgBTQjActzFl1h3Q=", + "dev": true, + "requires": { + "bytes": "2.4.0", + "iconv-lite": "0.4.13", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz", + "integrity": "sha1-fZcZb51br39pNeJZhVSe3SpsIzk=", + "dev": true + }, + "iconv-lite": { + "version": "0.4.13", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz", + "integrity": "sha1-H4irpKsLFQjoMSrMOTRfNumS4vI=", + "dev": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "graceful-fs": { + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", + "dev": true + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + } + } + }, + "redis": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/redis/-/redis-0.7.3.tgz", + "integrity": "sha1-7le3pE0l7BWU5ENl2BZfp9HUgRo=", + "dev": true, + "optional": true + }, + "regex-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "dev": true, + "requires": { + "is-equal-shallow": "^0.1.3" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "request": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.12.0.tgz", + "integrity": "sha1-EfRvILPQ9ISMY4OZHIB5CvFsjkg=", + "dev": true, + "requires": { + "form-data": "~0.0.3", + "mime": "~1.2.7" + }, + "dependencies": { + "form-data": { + "version": "0.0.3", + "bundled": true, + "dev": true, + "requires": { + "async": "~0.1.9", + "combined-stream": "0.0.3", + "mime": "~1.2.2" + }, + "dependencies": { + "async": { + "version": "0.1.9", + "bundled": true, + "dev": true + }, + "combined-stream": { + "version": "0.0.3", + "bundled": true, + "dev": true, + "requires": { + "delayed-stream": "0.0.5" + }, + "dependencies": { + "delayed-stream": { + "version": "0.0.5", + "bundled": true, + "dev": true + } + } + } + } + }, + "mime": { + "version": "1.2.7", + "bundled": true, + "dev": true + } + } + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "response-time": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/response-time/-/response-time-2.3.2.tgz", + "integrity": "sha1-/6cbq5UtYvfB1Jt0NDVfvGjf/Fo=", + "dev": true, + "requires": { + "depd": "~1.1.0", + "on-headers": "~1.0.1" + }, + "dependencies": { + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + } + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "dev": true, + "requires": { + "align-text": "^0.1.1" + } + }, + "rimraf": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", + "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=", + "dev": true + }, + "rndm": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/rndm/-/rndm-1.2.0.tgz", + "integrity": "sha1-8z/pz7Urv9UgqhgyO8ZdsRCht2w=", + "dev": true + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "sauce-connect-launcher": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/sauce-connect-launcher/-/sauce-connect-launcher-0.11.1.tgz", + "integrity": "sha1-ZfUdiJEkn9q6rxdZlzTeGQJHYSk=", + "dev": true, + "requires": { + "adm-zip": "~0.4.3", + "async": "0.9.0", + "lodash": "3.5.0", + "rimraf": "2.2.6" + }, + "dependencies": { + "async": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.0.tgz", + "integrity": "sha1-rDYTsdqb7RtHUQu0ZRuJMeRxRsc=", + "dev": true + }, + "lodash": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.5.0.tgz", + "integrity": "sha1-Gbs/TVEnjwuMgY7RRcdOz5/kDm0=", + "dev": true + }, + "rimraf": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.6.tgz", + "integrity": "sha1-xZWXVpsU2VatKcrMQr3d9fDqT0w=", + "dev": true + } + } + }, + "saucelabs": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-0.0.9.tgz", + "integrity": "sha1-CrP/0XCCpa6Sd+d+9rY5EPXbLGg=", + "dev": true + }, + "semver": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-2.1.0.tgz", + "integrity": "sha1-NWKUqQaQtph3TWLPNdfJH5g+coo=", + "dev": true + }, + "send": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.13.2.tgz", + "integrity": "sha1-dl52B8gFVFK7pvCwUllTUJhgNt4=", + "dev": true, + "requires": { + "debug": "~2.2.0", + "depd": "~1.1.0", + "destroy": "~1.0.4", + "escape-html": "~1.0.3", + "etag": "~1.7.0", + "fresh": "0.3.0", + "http-errors": "~1.3.1", + "mime": "1.3.4", + "ms": "0.7.1", + "on-finished": "~2.3.0", + "range-parser": "~1.0.3", + "statuses": "~1.2.1" + }, + "dependencies": { + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "dev": true, + "requires": { + "ms": "0.7.1" + } + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, + "mime": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", + "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=", + "dev": true + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "dev": true + }, + "statuses": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz", + "integrity": "sha1-3e1FzBglbVHtQK7BQkidXGECbSg=", + "dev": true + } + } + }, + "serve-favicon": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.3.2.tgz", + "integrity": "sha1-3UGeJo3gEqtysxnTN/IQUBP5OB8=", + "dev": true, + "requires": { + "etag": "~1.7.0", + "fresh": "0.3.0", + "ms": "0.7.2", + "parseurl": "~1.3.1" + }, + "dependencies": { + "ms": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", + "dev": true + } + } + }, + "serve-index": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.7.3.tgz", + "integrity": "sha1-egV/xu4o3GP2RWbl+lexEahq7NI=", + "dev": true, + "requires": { + "accepts": "~1.2.13", + "batch": "0.5.3", + "debug": "~2.2.0", + "escape-html": "~1.0.3", + "http-errors": "~1.3.1", + "mime-types": "~2.1.9", + "parseurl": "~1.3.1" + }, + "dependencies": { + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "dev": true, + "requires": { + "ms": "0.7.1" + } + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "dev": true + } + } + }, + "serve-static": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.10.3.tgz", + "integrity": "sha1-zlpuzTEB/tXsCYJ9rCKpwpv7BTU=", + "dev": true, + "requires": { + "escape-html": "~1.0.3", + "parseurl": "~1.3.1", + "send": "0.13.2" + } + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "shelljs": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.2.6.tgz", + "integrity": "sha1-kEktcv/MgVmXa6umL7D2iE8MM3g=", + "dev": true + }, + "sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + } + }, + "sntp": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-0.2.4.tgz", + "integrity": "sha1-+4hfGLDzqtGJ+CSGJTa87ux1CQA=", + "dev": true, + "requires": { + "hoek": "0.9.x" + }, + "dependencies": { + "hoek": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-0.9.1.tgz", + "integrity": "sha1-PTIkYrrfB3Fup+uFuviAec3c5QU=", + "dev": true + } + } + }, + "socket.io": { + "version": "0.9.16", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-0.9.16.tgz", + "integrity": "sha1-O6sEROSbVfu8FXQk29Qao3WlGnY=", + "dev": true, + "requires": { + "base64id": "0.1.0", + "policyfile": "0.0.4", + "redis": "0.7.3", + "socket.io-client": "0.9.16" + } + }, + "socket.io-client": { + "version": "0.9.16", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-0.9.16.tgz", + "integrity": "sha1-TadRXF53MEHRtCOXBBW8xDDzX8Y=", + "dev": true, + "requires": { + "active-x-obfuscator": "0.0.1", + "uglify-js": "1.2.5", + "ws": "0.4.x", + "xmlhttprequest": "1.4.2" + }, + "dependencies": { + "uglify-js": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-1.2.5.tgz", + "integrity": "sha1-tULCx29477NLIAsgF3Y0Mw/3ArY=", + "dev": true + } + } + }, + "source-map": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", + "dev": true, + "requires": { + "amdefine": ">=0.0.4" + } + }, + "source-map-resolve": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "dev": true, + "requires": { + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true + }, + "stream-counter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/stream-counter/-/stream-counter-0.2.0.tgz", + "integrity": "sha1-3tJmVWMZyLDiIoErnPOyb6fZR94=", + "dev": true, + "requires": { + "readable-stream": "~1.1.8" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "stringstream": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.6.tgz", + "integrity": "sha512-87GEBAkegbBcweToUrdzf3eLhWNg06FJTebl4BVJz/JgWy8CvEr9dRtX5qWphiynMSQlxxi+QqN0z5T32SLlhA==", + "dev": true + }, + "strip-ansi": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz", + "integrity": "sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE=", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "tape": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/tape/-/tape-0.2.2.tgz", + "integrity": "sha1-ZMz6S37PSgBgAH5hcW1CR4FnFjc=", + "dev": true, + "requires": { + "deep-equal": "~0.0.0", + "defined": "~0.0.0", + "jsonify": "~0.0.0" + } + }, + "tar-stream": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.1.5.tgz", + "integrity": "sha1-vpIYwTDCACnhB7D5Z/sj3gV50Tw=", + "dev": true, + "requires": { + "bl": "^0.9.0", + "end-of-stream": "^1.0.0", + "readable-stream": "~1.0.33", + "xtend": "^4.0.0" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "tinycolor": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tinycolor/-/tinycolor-0.0.1.tgz", + "integrity": "sha1-MgtaUtg6u1l42Bo+iH1K77FaYWQ=", + "dev": true + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + } + } + }, + "tough-cookie": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", + "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", + "dev": true, + "requires": { + "ip-regex": "^2.1.0", + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "tsscmp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.5.tgz", + "integrity": "sha1-fcSjOvcVgatDN9qR2FylQn69mpc=", + "dev": true + }, + "tunnel-agent": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.3.0.tgz", + "integrity": "sha1-rWgbaPUyGtKCfEz7G31d8s/pQu4=", + "dev": true + }, + "type-detect": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz", + "integrity": "sha1-C6XsKohWQORw6k6FBZcZANrFiCI=", + "dev": true + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "dev": true, + "requires": { + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "dev": true, + "optional": true + }, + "uid-safe": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.4.tgz", + "integrity": "sha1-Otbzg2jG1MjHXsF2I/t5qh0HHYE=", + "dev": true, + "requires": { + "random-bytes": "~1.0.0" + } + }, + "underscore": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", + "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=", + "dev": true + }, + "underscore.string": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.2.1.tgz", + "integrity": "sha1-18D6KvXVoaZ/QlPa7pgTLnM/Dxk=", + "dev": true + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^0.4.3" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" + } + } + } + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "useragent": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.3.0.tgz", + "integrity": "sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw==", + "dev": true, + "requires": { + "lru-cache": "4.1.x", + "tmp": "0.0.x" + }, + "dependencies": { + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "utile": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/utile/-/utile-0.2.1.tgz", + "integrity": "sha1-kwyI6ZCY1iIINMNWy9mncFItkNc=", + "dev": true, + "requires": { + "async": "~0.2.9", + "deep-equal": "*", + "i": "0.3.x", + "mkdirp": "0.x.x", + "ncp": "0.4.x", + "rimraf": "2.x.x" + }, + "dependencies": { + "async": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=", + "dev": true + } + } + }, + "utils-merge": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", + "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg=", + "dev": true + }, + "vargs": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/vargs/-/vargs-0.1.0.tgz", + "integrity": "sha1-a2GE2mUgzDIEzhtAfKwm2SYJ6/8=", + "dev": true + }, + "vary": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.0.1.tgz", + "integrity": "sha1-meSYFWaihhGN+yuBc1ffeZM3bRA=", + "dev": true + }, + "vhost": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/vhost/-/vhost-3.0.2.tgz", + "integrity": "sha1-L7HezUxGaqiLD5NBrzPcGv8keNU=", + "dev": true + }, + "wd": { + "version": "0.0.34", + "resolved": "https://registry.npmjs.org/wd/-/wd-0.0.34.tgz", + "integrity": "sha1-yNAMzbsoYvkUt71ZNTMKU8+ohWI=", + "dev": true, + "requires": { + "archiver": "~0.4.6", + "async": "0.2.x", + "q": "0.9.x", + "request": "~2.21.0", + "underscore": "1.4.x", + "vargs": "~0.1.0" + }, + "dependencies": { + "async": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=", + "dev": true + }, + "request": { + "version": "2.21.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.21.0.tgz", + "integrity": "sha1-VyirnEXlqHyZ2szVMCmLZnOoaNc=", + "dev": true, + "requires": { + "aws-sign": "~0.3.0", + "cookie-jar": "~0.3.0", + "forever-agent": "~0.5.0", + "form-data": "0.0.8", + "hawk": "~0.13.0", + "http-signature": "~0.9.11", + "json-stringify-safe": "~4.0.0", + "mime": "~1.2.9", + "node-uuid": "~1.4.0", + "oauth-sign": "~0.3.0", + "qs": "~0.6.0", + "tunnel-agent": "~0.3.0" + } + }, + "underscore": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz", + "integrity": "sha1-YaajIBBiKvoHljvzJSA88SI51gQ=", + "dev": true + } + } + }, + "which": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/which/-/which-1.0.9.tgz", + "integrity": "sha1-RgwdoPgQED0DIam2M6+eV15kSG8=", + "dev": true + }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "dev": true + }, + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "ws": { + "version": "0.4.32", + "resolved": "https://registry.npmjs.org/ws/-/ws-0.4.32.tgz", + "integrity": "sha1-eHphVEFPPJntg8V3IVOyD+sM7DI=", + "dev": true, + "requires": { + "commander": "~2.1.0", + "nan": "~1.0.0", + "options": ">=0.0.5", + "tinycolor": "0.x" + }, + "dependencies": { + "nan": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-1.0.0.tgz", + "integrity": "sha1-riT4hQgY1mL8q1rPfzuVv6oszzg=", + "dev": true + } + } + }, + "xmlhttprequest": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.4.2.tgz", + "integrity": "sha1-AUU6HZvtHo8XL2SVu/TIxCYyFQA=", + "dev": true + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "dev": true, + "requires": { + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "window-size": "0.1.0" + } + }, + "zeparser": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/zeparser/-/zeparser-0.0.5.tgz", + "integrity": "sha1-A3JlYbwmjy5URPVMZlt/1KjAKeI=", + "dev": true + }, + "zip-stream": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-0.5.2.tgz", + "integrity": "sha1-Mty8UG0Nq00hNyYlvX66rDwv/1Y=", + "dev": true, + "requires": { + "compress-commons": "~0.2.0", + "lodash": "~3.2.0", + "readable-stream": "~1.0.26" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "lodash": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.2.0.tgz", + "integrity": "sha1-S/UKMkP5rrC6xBpV09WZBnWkYvs=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "zlib-browserify": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/zlib-browserify/-/zlib-browserify-0.0.3.tgz", + "integrity": "sha1-JAzNv9AgP6hCsTDe77FBQSLIzFA=", + "dev": true, + "requires": { + "tape": "~0.2.2" + } + } + } +} diff --git a/package.json b/package.json index f97c8b06..fc463485 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,6 @@ "karma-sauce-launcher": "~0.2.3", "grunt-checkrepo": "~0.1.0", "grunt-saucelabs": "~4.0.2", - "grunt-checkrepo": "~0.1.0", "grunt-git-status": "~1.0.0", "grunt-template": "~0.2.3", "source-map": "~0.1.40" From 1f52dd65576f8409f0bb6f787f6f80c1bff447fd Mon Sep 17 00:00:00 2001 From: Alan Cutter Date: Mon, 24 Jun 2019 18:17:55 +1000 Subject: [PATCH 13/27] Update karma version --- Gruntfile.js | 5 +- package-lock.json | 2854 ++++++++++++++++++--------------------------- package.json | 4 +- 3 files changed, 1148 insertions(+), 1715 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index 4e9d60ca..bac72207 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -191,10 +191,9 @@ module.exports = function(grunt) { return new Promise(function(resolve) { var karmaConfig = require('karma/lib/config').parseConfig(require('path').resolve('test/karma-config.js'), {}); configCallback(karmaConfig); - var karmaServer = require('karma').server; - karmaServer.start(karmaConfig, function(exitCode) { + new (require('karma').Server)(karmaConfig, function(exitCode) { resolve(exitCode == 0); - }); + }).start(); }); } diff --git a/package-lock.json b/package-lock.json index d47a7744..644dd310 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,22 +11,13 @@ "dev": true }, "accepts": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.2.13.tgz", - "integrity": "sha1-5fHzkoxtlf2WVYw27D2dDeSm7Oo=", - "dev": true, - "requires": { - "mime-types": "~2.1.6", - "negotiator": "0.5.3" - } - }, - "active-x-obfuscator": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/active-x-obfuscator/-/active-x-obfuscator-0.0.1.tgz", - "integrity": "sha1-CJuJs3FF/x2ex0r2UwvlUmyuHxo=", + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", "dev": true, "requires": { - "zeparser": "0.0.5" + "mime-types": "~2.1.24", + "negotiator": "0.6.2" } }, "adm-zip": { @@ -35,6 +26,12 @@ "integrity": "sha512-fERNJX8sOXfel6qCBCMPvZLzENBEhZTzKqg6vrOW5pvoEaQuJhRU4ndTAh6lHOxn1I6jnz2NHra56ZODM751uw==", "dev": true }, + "after": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", + "dev": true + }, "align-text": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", @@ -65,13 +62,24 @@ "dev": true }, "anymatch": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", - "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "requires": { - "micromatch": "^2.1.5", - "normalize-path": "^2.0.0" + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } } }, "archiver": { @@ -129,13 +137,10 @@ } }, "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1" - } + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true }, "arr-flatten": { "version": "1.1.0", @@ -150,9 +155,15 @@ "dev": true }, "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "arraybuffer.slice": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", + "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==", "dev": true }, "asn1": { @@ -191,6 +202,12 @@ "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", "dev": true }, + "async-limiter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", + "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==", + "dev": true + }, "atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", @@ -209,6 +226,12 @@ "integrity": "sha1-xXED96F/wDfwLXwuZLYC6iI/fWM=", "dev": true }, + "backo2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", + "dev": true + }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", @@ -268,12 +291,6 @@ "kind-of": "^6.0.2" } }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, "kind-of": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", @@ -282,35 +299,26 @@ } } }, - "base64-url": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/base64-url/-/base64-url-1.2.1.tgz", - "integrity": "sha1-GZ/WYXAqDnt9yubgaYuwicUvbXg=", + "base64-arraybuffer": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", + "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", "dev": true }, "base64id": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-0.1.0.tgz", - "integrity": "sha1-As4P3u4M709ACA4ec+g08LG/zj8=", - "dev": true - }, - "basic-auth": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-1.0.4.tgz", - "integrity": "sha1-Awk1sB3nyblKgksp8/zLdQ06UpA=", - "dev": true - }, - "basic-auth-connect": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/basic-auth-connect/-/basic-auth-connect-1.0.0.tgz", - "integrity": "sha1-/bC0OWLKe0BFanwrtI/hc9otISI=", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", + "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=", "dev": true }, - "batch": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.5.3.tgz", - "integrity": "sha1-PzQU84AyF0O/wQQvmoP/HVgk1GQ=", - "dev": true + "better-assert": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", + "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", + "dev": true, + "requires": { + "callsite": "1.0.0" + } }, "binary-extensions": { "version": "1.13.1", @@ -353,6 +361,12 @@ } } }, + "blob": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", + "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==", + "dev": true + }, "bluebird": { "version": "2.11.0", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz", @@ -360,48 +374,36 @@ "dev": true }, "body-parser": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.13.3.tgz", - "integrity": "sha1-wIzzMMM1jhUQFqBXRvE/ApyX+pc=", + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", "dev": true, "requires": { - "bytes": "2.1.0", - "content-type": "~1.0.1", - "debug": "~2.2.0", - "depd": "~1.0.1", - "http-errors": "~1.3.1", - "iconv-lite": "0.4.11", + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", "on-finished": "~2.3.0", - "qs": "4.0.0", - "raw-body": "~2.1.2", - "type-is": "~1.6.6" + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" }, "dependencies": { - "debug": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, "requires": { - "ms": "0.7.1" + "safer-buffer": ">= 2.1.2 < 3" } }, - "iconv-lite": { - "version": "0.4.11", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.11.tgz", - "integrity": "sha1-LstC/SlHRJIiCaLnxATayHk9it4=", - "dev": true - }, - "ms": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", - "dev": true - }, "qs": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-4.0.0.tgz", - "integrity": "sha1-wx2bdOwn33XlQ6hseHKO2NRiNgc=", + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", "dev": true } } @@ -434,22 +436,51 @@ } }, "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + } + }, + "buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", "dev": true, "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" } }, + "buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", + "dev": true + }, "buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", "dev": true }, + "buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", + "dev": true + }, "buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", @@ -457,9 +488,9 @@ "dev": true }, "bytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.1.0.tgz", - "integrity": "sha1-rJPEEOL/ycx89LRks4KJBn9eR7Q=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", "dev": true }, "cache-base": { @@ -477,16 +508,14 @@ "to-object-path": "^0.3.0", "union-value": "^1.0.0", "unset-value": "^1.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } } }, + "callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", + "dev": true + }, "camelcase": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", @@ -531,20 +560,23 @@ } }, "chokidar": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.6.tgz", + "integrity": "sha512-V2jUo67OKkc6ySiRpJrjlpJKl9kDuG+Xb8VgsGzb+aEouhgS1D0weyPU4lEzdAcsCAvrih2J2BqyXqHWvVLw5g==", "dev": true, "requires": { - "anymatch": "^1.3.0", - "async-each": "^1.0.0", - "fsevents": "^1.0.0", - "glob-parent": "^2.0.0", - "inherits": "^2.0.1", + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", "is-binary-path": "^1.0.0", - "is-glob": "^2.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", "path-is-absolute": "^1.0.0", - "readdirp": "^2.0.0" + "readdirp": "^2.2.1", + "upath": "^1.1.1" } }, "class-utils": { @@ -557,23 +589,6 @@ "define-property": "^0.2.5", "isobject": "^3.0.0", "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } } }, "cliui": { @@ -627,10 +642,10 @@ "delayed-stream": "0.0.5" } }, - "commander": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.1.0.tgz", - "integrity": "sha1-0SG7roYNmZKj1Re6lvVliOR8Z4E=", + "component-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", + "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", "dev": true }, "component-emitter": { @@ -639,6 +654,12 @@ "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", "dev": true }, + "component-inherit": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", + "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", + "dev": true + }, "compress-commons": { "version": "0.2.9", "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-0.2.9.tgz", @@ -677,46 +698,6 @@ } } }, - "compressible": { - "version": "2.0.17", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.17.tgz", - "integrity": "sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw==", - "dev": true, - "requires": { - "mime-db": ">= 1.40.0 < 2" - } - }, - "compression": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.5.2.tgz", - "integrity": "sha1-sDuNhub4rSloPLqN+R3cb/x3s5U=", - "dev": true, - "requires": { - "accepts": "~1.2.12", - "bytes": "2.1.0", - "compressible": "~2.0.5", - "debug": "~2.2.0", - "on-headers": "~1.0.0", - "vary": "~1.0.1" - }, - "dependencies": { - "debug": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "dev": true, - "requires": { - "ms": "0.7.1" - } - }, - "ms": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", - "dev": true - } - } - }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -736,94 +717,15 @@ } }, "connect": { - "version": "2.30.2", - "resolved": "https://registry.npmjs.org/connect/-/connect-2.30.2.tgz", - "integrity": "sha1-jam8vooFTT0xjXTf7JA7XDmhtgk=", - "dev": true, - "requires": { - "basic-auth-connect": "1.0.0", - "body-parser": "~1.13.3", - "bytes": "2.1.0", - "compression": "~1.5.2", - "connect-timeout": "~1.6.2", - "content-type": "~1.0.1", - "cookie": "0.1.3", - "cookie-parser": "~1.3.5", - "cookie-signature": "1.0.6", - "csurf": "~1.8.3", - "debug": "~2.2.0", - "depd": "~1.0.1", - "errorhandler": "~1.4.2", - "express-session": "~1.11.3", - "finalhandler": "0.4.0", - "fresh": "0.3.0", - "http-errors": "~1.3.1", - "method-override": "~2.3.5", - "morgan": "~1.6.1", - "multiparty": "3.3.2", - "on-headers": "~1.0.0", - "parseurl": "~1.3.0", - "pause": "0.1.0", - "qs": "4.0.0", - "response-time": "~2.3.1", - "serve-favicon": "~2.3.0", - "serve-index": "~1.7.2", - "serve-static": "~1.10.0", - "type-is": "~1.6.6", - "utils-merge": "1.0.0", - "vhost": "~3.0.1" - }, - "dependencies": { - "debug": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "dev": true, - "requires": { - "ms": "0.7.1" - } - }, - "ms": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", - "dev": true - }, - "qs": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-4.0.0.tgz", - "integrity": "sha1-wx2bdOwn33XlQ6hseHKO2NRiNgc=", - "dev": true - } - } - }, - "connect-timeout": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/connect-timeout/-/connect-timeout-1.6.2.tgz", - "integrity": "sha1-3ppexh4zoStu2qt7XwYumMWZuI4=", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", "dev": true, "requires": { - "debug": "~2.2.0", - "http-errors": "~1.3.1", - "ms": "0.7.1", - "on-headers": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "dev": true, - "requires": { - "ms": "0.7.1" - } - }, - "ms": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", - "dev": true - } + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" } }, "content-type": { @@ -833,9 +735,9 @@ "dev": true }, "cookie": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.3.tgz", - "integrity": "sha1-5zSlwUF/zkctWu+Cw4HKu2TRpDU=", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", "dev": true }, "cookie-jar": { @@ -844,40 +746,24 @@ "integrity": "sha1-vJon1OK5fhhs1XyeIGPLmfpozMw=", "dev": true }, - "cookie-parser": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.3.5.tgz", - "integrity": "sha1-nXVVcPtdF4kHcSJ6AjFNm+fPg1Y=", - "dev": true, - "requires": { - "cookie": "0.1.3", - "cookie-signature": "1.0.6" - } - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true - }, "copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", "dev": true }, + "core-js": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.9.tgz", + "integrity": "sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A==", + "dev": true + }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, - "crc": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/crc/-/crc-3.3.0.tgz", - "integrity": "sha1-+mIuG8OIvyVzCQgta2UgDOZwkLo=", - "dev": true - }, "crc32-stream": { "version": "0.3.4", "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-0.3.4.tgz", @@ -923,35 +809,24 @@ "boom": "0.4.x" } }, - "csrf": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/csrf/-/csrf-3.0.6.tgz", - "integrity": "sha1-thEg3c7q/JHnbtUxO7XAsmZ7cQo=", - "dev": true, - "requires": { - "rndm": "1.2.0", - "tsscmp": "1.0.5", - "uid-safe": "2.1.4" - } - }, - "csurf": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/csurf/-/csurf-1.8.3.tgz", - "integrity": "sha1-I/KhO/HY/OHQyZZYg5RELLqGpWo=", - "dev": true, - "requires": { - "cookie": "0.1.3", - "cookie-signature": "1.0.6", - "csrf": "~3.0.0", - "http-errors": "~1.3.1" - } - }, "ctype": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.2.tgz", "integrity": "sha1-/oCR1Gijc6Cwyf+Lv7NCXACXOh0=", "dev": true }, + "custom-event": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", + "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", + "dev": true + }, + "date-format": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.0.0.tgz", + "integrity": "sha512-M6UqVvZVgFYqZL1SfHsRGIQSz3ZL+qgbsV5Lp1Vj61LZVYuEwcMXYay7DRDtYs2HQQBK5hQtQ0fD9aEJ89V0LA==", + "dev": true + }, "dateformat": { "version": "1.0.2-1.2.3", "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz", @@ -995,56 +870,12 @@ "dev": true }, "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - } + "is-descriptor": "^0.1.0" } }, "defined": { @@ -1060,15 +891,9 @@ "dev": true }, "depd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.0.1.tgz", - "integrity": "sha1-gK7GTJ1tl+ZcwqnKqTwKpqv3Oqo=", - "dev": true - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", "dev": true }, "di": { @@ -1083,12 +908,30 @@ "integrity": "sha1-JLuwAcSn1VIhaefKvbLCgU7ZHPQ=", "dev": true }, + "dom-serialize": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", + "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", + "dev": true, + "requires": { + "custom-event": "~1.0.0", + "ent": "~2.2.0", + "extend": "^3.0.0", + "void-elements": "^2.0.0" + } + }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", "dev": true }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true + }, "end-of-stream": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", @@ -1098,36 +941,88 @@ "once": "^1.4.0" } }, - "errorhandler": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/errorhandler/-/errorhandler-1.4.3.tgz", - "integrity": "sha1-t7cO2PNZ6duICS8tIMD4MUIK2D8=", + "engine.io": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.1.tgz", + "integrity": "sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w==", "dev": true, "requires": { - "accepts": "~1.3.0", - "escape-html": "~1.0.3" + "accepts": "~1.3.4", + "base64id": "1.0.0", + "cookie": "0.3.1", + "debug": "~3.1.0", + "engine.io-parser": "~2.1.0", + "ws": "~3.3.1" }, "dependencies": { - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "dev": true, "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" + "ms": "2.0.0" } - }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + } + } + }, + "engine.io-client": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz", + "integrity": "sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "component-inherit": "0.0.3", + "debug": "~3.1.0", + "engine.io-parser": "~2.1.1", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "ws": "~3.3.1", + "xmlhttprequest-ssl": "~1.5.4", + "yeast": "0.1.2" + }, + "dependencies": { + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } } } }, - "escape-html": { - "version": "1.0.3", + "engine.io-parser": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.3.tgz", + "integrity": "sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==", + "dev": true, + "requires": { + "after": "0.8.2", + "arraybuffer.slice": "~0.0.7", + "base64-arraybuffer": "0.1.5", + "blob": "0.0.5", + "has-binary2": "~1.0.2" + } + }, + "ent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", + "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", + "dev": true + }, + "escape-html": { + "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", "dev": true @@ -1144,18 +1039,18 @@ "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=", "dev": true }, - "etag": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz", - "integrity": "sha1-A9MLX2fdbmMtKUXTDWZScxo01dg=", - "dev": true - }, "eventemitter2": { "version": "0.4.14", "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=", "dev": true }, + "eventemitter3": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", + "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==", + "dev": true + }, "exit": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", @@ -1163,148 +1058,122 @@ "dev": true }, "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "is-posix-bracket": "^0.1.0" + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" } }, - "expand-range": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "fill-range": "^2.1.0" + "is-extendable": "^0.1.0" } }, - "express-session": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.11.3.tgz", - "integrity": "sha1-XMmPP1/4Ttg1+Ry/CqvQxxB0AK8=", + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "requires": { - "cookie": "0.1.3", - "cookie-signature": "1.0.6", - "crc": "3.3.0", - "debug": "~2.2.0", - "depd": "~1.0.1", - "on-headers": "~1.0.0", - "parseurl": "~1.3.0", - "uid-safe": "~2.0.0", - "utils-merge": "1.0.0" + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { - "debug": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "ms": "0.7.1" + "is-descriptor": "^1.0.0" } }, - "ms": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", - "dev": true + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } }, - "uid-safe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.0.0.tgz", - "integrity": "sha1-p/PGymSh9qXQTsDvPkw9U2cxcTc=", + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "base64-url": "1.2.1" + "kind-of": "^6.0.0" } - } - } - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-plain-object": "^2.0.4" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true } } }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", - "dev": true - }, "fill-range": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", - "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "is-number": "^2.1.0", - "isobject": "^2.0.0", - "randomatic": "^3.0.0", - "repeat-element": "^1.1.2", - "repeat-string": "^1.5.2" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" } }, "finalhandler": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.4.0.tgz", - "integrity": "sha1-llpS2ejQXSuFdUhUH7ibU6JJfZs=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", "dev": true, "requires": { - "debug": "~2.2.0", - "escape-html": "1.0.2", + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "dev": true, - "requires": { - "ms": "0.7.1" - } - }, - "escape-html": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.2.tgz", - "integrity": "sha1-130y+pjjjC9BroXpJ44ODmuhAiw=", - "dev": true - }, - "ms": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", - "dev": true - } } }, "findup-sync": { @@ -1345,21 +1214,44 @@ } } }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "flatted": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.0.tgz", + "integrity": "sha512-R+H8IZclI8AAkSBRQJLVOsxwAoHd6WC40b4QTNWIjzAa6BXOBfQcM587MXDTVPeYaopFNWHUFLx7eNmHDSxMWg==", "dev": true }, - "for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "follow-redirects": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.7.0.tgz", + "integrity": "sha512-m/pZQy4Gj287eNy94nivy5wchN3Kp+Q5WgUPNy5lJSZ3sgkVKSYV/ZChMAQVIgx1SqfZ2zBZtPA2YlXIWxxJOQ==", "dev": true, "requires": { - "for-in": "^1.0.1" + "debug": "^3.2.6" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } } }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, "forever-agent": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.5.2.tgz", @@ -1394,11 +1286,24 @@ "map-cache": "^0.2.2" } }, - "fresh": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz", - "integrity": "sha1-ZR+DjiJCTnVm3hYdg1jKoZn4PU8=", - "dev": true + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "dependencies": { + "graceful-fs": { + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", + "dev": true + } + } }, "fs.realpath": { "version": "1.0.0", @@ -1994,23 +1899,25 @@ } } }, - "glob-base": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", - "dev": true, - "requires": { - "glob-parent": "^2.0.0", - "is-glob": "^2.0.0" - } - }, "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { - "is-glob": "^2.0.0" + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } } }, "graceful-fs": { @@ -2105,18 +2012,18 @@ "dev": true }, "grunt-karma": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/grunt-karma/-/grunt-karma-0.8.3.tgz", - "integrity": "sha1-6ez3GBU68ZFKpTYCo3+F3gQxDn8=", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/grunt-karma/-/grunt-karma-3.0.2.tgz", + "integrity": "sha512-imNhQO1bR1O7X6/3F5vO0o7mKy4xdkpSd40QVfxGO70cBAFcOqjv2Zu5QzsfEsSrppuu3N0vIQPbfBRjeGdpWg==", "dev": true, "requires": { - "lodash": "~2.4.1" + "lodash": "^4.17.10" }, "dependencies": { "lodash": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", - "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=", + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", "dev": true } } @@ -2293,12 +2200,35 @@ "ansi-regex": "^2.0.0" } }, + "has-binary2": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", + "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", + "dev": true, + "requires": { + "isarray": "2.0.1" + }, + "dependencies": { + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + } + } + }, "has-color": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz", "integrity": "sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8=", "dev": true }, + "has-cors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", + "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", + "dev": true + }, "has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", @@ -2308,14 +2238,6 @@ "get-value": "^2.0.6", "has-values": "^1.0.0", "isobject": "^3.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } } }, "has-values": { @@ -2328,26 +2250,6 @@ "kind-of": "^4.0.0" }, "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "kind-of": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", @@ -2384,33 +2286,35 @@ "dev": true }, "http-errors": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", - "integrity": "sha1-GX4izevUGYWF6GlO9nhhl7ke2UI=", + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", "dev": true, "requires": { - "inherits": "~2.0.1", - "statuses": "1" + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } } }, "http-proxy": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-0.10.4.tgz", - "integrity": "sha1-FLoM6qIZf4n6MN6p57CeGc2Twi8=", + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.17.0.tgz", + "integrity": "sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==", "dev": true, "requires": { - "colors": "0.x.x", - "optimist": "0.6.x", - "pkginfo": "0.3.x", - "utile": "~0.2.1" - }, - "dependencies": { - "colors": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", - "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=", - "dev": true - } + "eventemitter3": "^3.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" } }, "http-signature": { @@ -2424,18 +2328,18 @@ "ctype": "0.5.2" } }, - "i": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/i/-/i-0.3.6.tgz", - "integrity": "sha1-2WyScyB28HJxG2sQ/X1PZa2O4j0=", - "dev": true - }, "iconv-lite": { "version": "0.2.11", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz", "integrity": "sha1-HOYKOleGSiktEyH/RgnKS7llrcg=", "dev": true }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "dev": true + }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -2510,21 +2414,6 @@ } } }, - "is-dotfile": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", - "dev": true - }, - "is-equal-shallow": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", - "dev": true, - "requires": { - "is-primitive": "^2.0.0" - } - }, "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", @@ -2532,18 +2421,18 @@ "dev": true }, "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", "dev": true }, "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", "dev": true, "requires": { - "is-extglob": "^1.0.0" + "is-extglob": "^2.1.1" } }, "is-my-ip-valid": { @@ -2566,9 +2455,9 @@ } }, "is-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { "kind-of": "^3.0.2" @@ -2581,28 +2470,8 @@ "dev": true, "requires": { "isobject": "^3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } } }, - "is-posix-bracket": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", - "dev": true - }, - "is-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", - "dev": true - }, "is-property": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", @@ -2621,15 +2490,21 @@ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "isbinaryfile": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz", + "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==", "dev": true, "requires": { - "isarray": "1.0.0" + "buffer-alloc": "^1.2.0" } }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, "isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", @@ -2676,10 +2551,28 @@ "integrity": "sha1-d8JxqupUMC5o7+rMtWq78GqbGlQ=", "dev": true }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + }, + "dependencies": { + "graceful-fs": { + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", + "dev": true, + "optional": true + } + } + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", "dev": true }, "jsonpointer": { @@ -2689,77 +2582,76 @@ "dev": true }, "karma": { - "version": "0.12.37", - "resolved": "https://registry.npmjs.org/karma/-/karma-0.12.37.tgz", - "integrity": "sha1-Gp9/3szWneLoNeBO26wuzT+mReQ=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/karma/-/karma-4.1.0.tgz", + "integrity": "sha512-xckiDqyNi512U4dXGOOSyLKPwek6X/vUizSy2f3geYevbLj+UIdvNwbn7IwfUIL2g1GXEPWt/87qFD1fBbl/Uw==", "dev": true, "requires": { - "chokidar": "^1.0.1", + "bluebird": "^3.3.0", + "body-parser": "^1.16.1", + "braces": "^2.3.2", + "chokidar": "^2.0.3", "colors": "^1.1.0", - "connect": "^2.29.2", + "connect": "^3.6.0", + "core-js": "^2.2.0", "di": "^0.0.1", - "glob": "^5.0.6", - "graceful-fs": "^3.0.6", - "http-proxy": "^0.10", - "lodash": "^3.8.0", - "log4js": "^0.6.25", - "mime": "^1.3.4", - "minimatch": "^2.0.7", + "dom-serialize": "^2.2.0", + "flatted": "^2.0.0", + "glob": "^7.1.1", + "graceful-fs": "^4.1.2", + "http-proxy": "^1.13.0", + "isbinaryfile": "^3.0.0", + "lodash": "^4.17.11", + "log4js": "^4.0.0", + "mime": "^2.3.1", + "minimatch": "^3.0.2", "optimist": "^0.6.1", - "q": "^1.4.1", - "rimraf": "^2.3.3", - "socket.io": "0.9.16", - "source-map": "^0.4.2", - "useragent": "^2.1.6" + "qjobs": "^1.1.4", + "range-parser": "^1.2.0", + "rimraf": "^2.6.0", + "safe-buffer": "^5.0.1", + "socket.io": "2.1.1", + "source-map": "^0.6.1", + "tmp": "0.0.33", + "useragent": "2.3.0" }, "dependencies": { + "bluebird": { + "version": "3.5.5", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz", + "integrity": "sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==", + "dev": true + }, "glob": { - "version": "5.0.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", - "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", "dev": true, "requires": { + "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "2 || 3", + "minimatch": "^3.0.4", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "graceful-fs": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz", - "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=", - "dev": true, - "requires": { - "natives": "^1.1.0" - } + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", + "dev": true }, "lodash": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", - "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", "dev": true }, "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true - }, - "minimatch": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", - "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=", - "dev": true, - "requires": { - "brace-expansion": "^1.0.0" - } - }, - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", + "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==", "dev": true }, "rimraf": { @@ -2769,41 +2661,13 @@ "dev": true, "requires": { "glob": "^7.1.3" - }, - "dependencies": { - "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } } }, "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true, - "requires": { - "amdefine": ">=0.0.4" - } + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, @@ -3197,43 +3061,31 @@ "dev": true }, "log4js": { - "version": "0.6.38", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-0.6.38.tgz", - "integrity": "sha1-LElBFmldb7JUgJQ9P8hy5mKlIv0=", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-4.3.2.tgz", + "integrity": "sha512-72GjgSP+ifL156MD/bXEhE7UlFLKS2KkCXujodb1nl1z6PpKhCfS+41dyNQ7zKi4iM49TQl+aWLEISXGLcGCCQ==", "dev": true, "requires": { - "readable-stream": "~1.0.2", - "semver": "~4.3.3" + "date-format": "^2.0.0", + "debug": "^4.1.1", + "flatted": "^2.0.0", + "rfdc": "^1.1.2", + "streamroller": "^1.0.5" }, "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" + "ms": "^2.1.1" } }, - "semver": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", - "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=", - "dev": true - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true } } @@ -3265,12 +3117,6 @@ "object-visit": "^1.0.0" } }, - "math-random": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", - "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==", - "dev": true - }, "maxmin": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/maxmin/-/maxmin-0.1.0.tgz", @@ -3288,53 +3134,93 @@ "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", "dev": true }, - "method-override": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/method-override/-/method-override-2.3.10.tgz", - "integrity": "sha1-49r41d7hDdLc59SuiNYrvud0drQ=", + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { - "debug": "2.6.9", - "methods": "~1.1.2", - "parseurl": "~1.3.2", - "vary": "~1.1.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" }, "dependencies": { - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", "dev": true } } }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true - }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true, - "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" - } - }, "mime": { "version": "1.2.11", "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz", @@ -3392,23 +3278,6 @@ } } }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - } - } - }, "mocha": { "version": "1.21.4", "resolved": "https://registry.npmjs.org/mocha/-/mocha-1.21.4.tgz", @@ -3465,78 +3334,12 @@ } } }, - "morgan": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.6.1.tgz", - "integrity": "sha1-X9gYOYxoGcuiinzWZk8pL+HAu/I=", - "dev": true, - "requires": { - "basic-auth": "~1.0.3", - "debug": "~2.2.0", - "depd": "~1.0.1", - "on-finished": "~2.3.0", - "on-headers": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "dev": true, - "requires": { - "ms": "0.7.1" - } - }, - "ms": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", - "dev": true - } - } - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, - "multiparty": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/multiparty/-/multiparty-3.3.2.tgz", - "integrity": "sha1-Nd5oBNwZZD5SSfPT473GyM4wHT8=", - "dev": true, - "requires": { - "readable-stream": "~1.1.9", - "stream-counter": "~0.2.0" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - } - } - }, "nan": { "version": "2.14.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", @@ -3563,80 +3366,117 @@ "to-regex": "^3.0.1" }, "dependencies": { - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + } }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - } - } - }, - "natives": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.6.tgz", - "integrity": "sha512-6+TDFewD4yxY14ptjKaS63GVdtKiES1pTPyxn9Jb0rBqPMZ7VcCiooEhPNsr+mqHtMGxa/5c/HhcC4uPEUw/nA==", - "dev": true - }, - "ncp": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/ncp/-/ncp-0.4.2.tgz", - "integrity": "sha1-q8xsvT7C7Spyn/bnwfqPAXhKhXQ=", - "dev": true - }, - "negotiator": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.5.3.tgz", - "integrity": "sha1-Jp1cR2gQ7JLtvntsLygxY4T5p+g=", - "dev": true - }, - "node-int64": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.3.3.tgz", - "integrity": "sha1-LW5rLs5d6FiLQ9iNG8QbJs0fqE0=", - "dev": true - }, - "node-uuid": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz", - "integrity": "sha1-sEDrCSOWivq/jTL7HxfxFn/auQc=", - "dev": true - }, - "nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", - "dev": true, - "requires": { - "abbrev": "1" + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } } }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "dev": true + }, + "node-int64": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.3.3.tgz", + "integrity": "sha1-LW5rLs5d6FiLQ9iNG8QbJs0fqE0=", + "dev": true + }, + "node-uuid": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz", + "integrity": "sha1-sEDrCSOWivq/jTL7HxfxFn/auQc=", + "dev": true + }, + "nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", "dev": true, "requires": { - "remove-trailing-separator": "^1.0.1" + "abbrev": "1" } }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, "oauth-sign": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.3.0.tgz", "integrity": "sha1-y1QPk7srIqfVlBaRoojWDo6pOG4=", "dev": true }, + "object-component": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", + "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=", + "dev": true + }, "object-copy": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", @@ -3646,17 +3486,6 @@ "copy-descriptor": "^0.1.0", "define-property": "^0.2.5", "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } } }, "object-visit": { @@ -3666,24 +3495,6 @@ "dev": true, "requires": { "isobject": "^3.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, - "object.omit": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", - "dev": true, - "requires": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" } }, "object.pick": { @@ -3693,14 +3504,6 @@ "dev": true, "requires": { "isobject": "^3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } } }, "on-finished": { @@ -3712,12 +3515,6 @@ "ee-first": "1.1.1" } }, - "on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "dev": true - }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -3737,28 +3534,28 @@ "wordwrap": "~0.0.2" } }, - "options": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz", - "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=", - "dev": true - }, "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true }, - "parse-glob": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "parseqs": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", + "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", "dev": true, "requires": { - "glob-base": "^0.3.0", - "is-dotfile": "^1.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.0" + "better-assert": "~1.0.0" + } + }, + "parseuri": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", + "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", + "dev": true, + "requires": { + "better-assert": "~1.0.0" } }, "parseurl": { @@ -3773,42 +3570,24 @@ "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", "dev": true }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, - "pause": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/pause/-/pause-0.1.0.tgz", - "integrity": "sha1-68ikqGGf8LioGsFRPDQ0/0af23Q=", - "dev": true - }, - "pkginfo": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz", - "integrity": "sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE=", - "dev": true - }, - "policyfile": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/policyfile/-/policyfile-0.0.4.tgz", - "integrity": "sha1-1rgurZiueeviKOLa9ZAzEeyYLk0=", - "dev": true - }, "posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", "dev": true }, - "preserve": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", - "dev": true - }, "pretty-bytes": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-0.1.2.tgz", @@ -3845,71 +3624,44 @@ "integrity": "sha1-TeLmyzspCIyeTLwDv51C+5bOL3U=", "dev": true }, + "qjobs": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", + "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", + "dev": true + }, "qs": { "version": "0.6.6", "resolved": "https://registry.npmjs.org/qs/-/qs-0.6.6.tgz", "integrity": "sha1-bgFQmP9RlouKPIGQAdXyyJvEsQc=", "dev": true }, - "random-bytes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", - "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs=", - "dev": true - }, - "randomatic": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", - "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", - "dev": true, - "requires": { - "is-number": "^4.0.0", - "kind-of": "^6.0.0", - "math-random": "^1.0.1" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - } - } - }, "range-parser": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.0.3.tgz", - "integrity": "sha1-aHKCNTXGkuLCoBA4Jq/YLC4P8XU=", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", "dev": true }, "raw-body": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.7.tgz", - "integrity": "sha1-rf6s4uT7MJgFgBTQjActzFl1h3Q=", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", "dev": true, "requires": { - "bytes": "2.4.0", - "iconv-lite": "0.4.13", + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", "unpipe": "1.0.0" }, "dependencies": { - "bytes": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz", - "integrity": "sha1-fZcZb51br39pNeJZhVSe3SpsIzk=", - "dev": true - }, "iconv-lite": { - "version": "0.4.13", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz", - "integrity": "sha1-H4irpKsLFQjoMSrMOTRfNumS4vI=", - "dev": true + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } } } }, @@ -3939,304 +3691,14 @@ "readable-stream": "^2.0.2" }, "dependencies": { - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, "graceful-fs": { "version": "4.1.15", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", "dev": true - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } } } }, - "redis": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/redis/-/redis-0.7.3.tgz", - "integrity": "sha1-7le3pE0l7BWU5ENl2BZfp9HUgRo=", - "dev": true, - "optional": true - }, - "regex-cache": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", - "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", - "dev": true, - "requires": { - "is-equal-shallow": "^0.1.3" - } - }, "regex-not": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", @@ -4245,6 +3707,27 @@ "requires": { "extend-shallow": "^3.0.2", "safe-regex": "^1.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, "remove-trailing-separator": { @@ -4314,36 +3797,30 @@ } } }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, "resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", "dev": true }, - "response-time": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/response-time/-/response-time-2.3.2.tgz", - "integrity": "sha1-/6cbq5UtYvfB1Jt0NDVfvGjf/Fo=", - "dev": true, - "requires": { - "depd": "~1.1.0", - "on-headers": "~1.0.1" - }, - "dependencies": { - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true - } - } - }, "ret": { "version": "0.1.15", "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", "dev": true }, + "rfdc": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.4.tgz", + "integrity": "sha512-5C9HXdzK8EAqN7JDif30jqsBzavB7wLpaubisuQIGHWf2gUXSpzy6ArX/+Da8RjFpagWsCn+pIgxTMAmKw9Zug==", + "dev": true + }, "right-align": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", @@ -4359,12 +3836,6 @@ "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=", "dev": true }, - "rndm": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/rndm/-/rndm-1.2.0.tgz", - "integrity": "sha1-8z/pz7Urv9UgqhgyO8ZdsRCht2w=", - "dev": true - }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -4380,6 +3851,12 @@ "ret": "~0.1.10" } }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, "sauce-connect-launcher": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/sauce-connect-launcher/-/sauce-connect-launcher-0.11.1.tgz", @@ -4401,146 +3878,28 @@ "lodash": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.5.0.tgz", - "integrity": "sha1-Gbs/TVEnjwuMgY7RRcdOz5/kDm0=", - "dev": true - }, - "rimraf": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.6.tgz", - "integrity": "sha1-xZWXVpsU2VatKcrMQr3d9fDqT0w=", - "dev": true - } - } - }, - "saucelabs": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-0.0.9.tgz", - "integrity": "sha1-CrP/0XCCpa6Sd+d+9rY5EPXbLGg=", - "dev": true - }, - "semver": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-2.1.0.tgz", - "integrity": "sha1-NWKUqQaQtph3TWLPNdfJH5g+coo=", - "dev": true - }, - "send": { - "version": "0.13.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.13.2.tgz", - "integrity": "sha1-dl52B8gFVFK7pvCwUllTUJhgNt4=", - "dev": true, - "requires": { - "debug": "~2.2.0", - "depd": "~1.1.0", - "destroy": "~1.0.4", - "escape-html": "~1.0.3", - "etag": "~1.7.0", - "fresh": "0.3.0", - "http-errors": "~1.3.1", - "mime": "1.3.4", - "ms": "0.7.1", - "on-finished": "~2.3.0", - "range-parser": "~1.0.3", - "statuses": "~1.2.1" - }, - "dependencies": { - "debug": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "dev": true, - "requires": { - "ms": "0.7.1" - } - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true - }, - "mime": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", - "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=", - "dev": true - }, - "ms": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", - "dev": true - }, - "statuses": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz", - "integrity": "sha1-3e1FzBglbVHtQK7BQkidXGECbSg=", - "dev": true - } - } - }, - "serve-favicon": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.3.2.tgz", - "integrity": "sha1-3UGeJo3gEqtysxnTN/IQUBP5OB8=", - "dev": true, - "requires": { - "etag": "~1.7.0", - "fresh": "0.3.0", - "ms": "0.7.2", - "parseurl": "~1.3.1" - }, - "dependencies": { - "ms": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", - "dev": true - } - } - }, - "serve-index": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.7.3.tgz", - "integrity": "sha1-egV/xu4o3GP2RWbl+lexEahq7NI=", - "dev": true, - "requires": { - "accepts": "~1.2.13", - "batch": "0.5.3", - "debug": "~2.2.0", - "escape-html": "~1.0.3", - "http-errors": "~1.3.1", - "mime-types": "~2.1.9", - "parseurl": "~1.3.1" - }, - "dependencies": { - "debug": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "dev": true, - "requires": { - "ms": "0.7.1" - } + "integrity": "sha1-Gbs/TVEnjwuMgY7RRcdOz5/kDm0=", + "dev": true }, - "ms": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "rimraf": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.6.tgz", + "integrity": "sha1-xZWXVpsU2VatKcrMQr3d9fDqT0w=", "dev": true } } }, - "serve-static": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.10.3.tgz", - "integrity": "sha1-zlpuzTEB/tXsCYJ9rCKpwpv7BTU=", - "dev": true, - "requires": { - "escape-html": "~1.0.3", - "parseurl": "~1.3.1", - "send": "0.13.2" - } + "saucelabs": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-0.0.9.tgz", + "integrity": "sha1-CrP/0XCCpa6Sd+d+9rY5EPXbLGg=", + "dev": true + }, + "semver": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-2.1.0.tgz", + "integrity": "sha1-NWKUqQaQtph3TWLPNdfJH5g+coo=", + "dev": true }, "set-value": { "version": "2.0.0", @@ -4552,19 +3911,14 @@ "is-extendable": "^0.1.1", "is-plain-object": "^2.0.3", "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } } }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "dev": true + }, "shelljs": { "version": "0.2.6", "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.2.6.tgz", @@ -4593,24 +3947,6 @@ "use": "^3.1.0" }, "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -4668,12 +4004,6 @@ "kind-of": "^6.0.2" } }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, "kind-of": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", @@ -4709,33 +4039,105 @@ } }, "socket.io": { - "version": "0.9.16", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-0.9.16.tgz", - "integrity": "sha1-O6sEROSbVfu8FXQk29Qao3WlGnY=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz", + "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==", "dev": true, "requires": { - "base64id": "0.1.0", - "policyfile": "0.0.4", - "redis": "0.7.3", - "socket.io-client": "0.9.16" + "debug": "~3.1.0", + "engine.io": "~3.2.0", + "has-binary2": "~1.0.2", + "socket.io-adapter": "~1.1.0", + "socket.io-client": "2.1.1", + "socket.io-parser": "~3.2.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } } }, + "socket.io-adapter": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz", + "integrity": "sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs=", + "dev": true + }, "socket.io-client": { - "version": "0.9.16", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-0.9.16.tgz", - "integrity": "sha1-TadRXF53MEHRtCOXBBW8xDDzX8Y=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.1.tgz", + "integrity": "sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ==", + "dev": true, + "requires": { + "backo2": "1.0.2", + "base64-arraybuffer": "0.1.5", + "component-bind": "1.0.0", + "component-emitter": "1.2.1", + "debug": "~3.1.0", + "engine.io-client": "~3.2.0", + "has-binary2": "~1.0.2", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "object-component": "0.0.3", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "socket.io-parser": "~3.2.0", + "to-array": "0.1.4" + }, + "dependencies": { + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "socket.io-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz", + "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==", "dev": true, "requires": { - "active-x-obfuscator": "0.0.1", - "uglify-js": "1.2.5", - "ws": "0.4.x", - "xmlhttprequest": "1.4.2" + "component-emitter": "1.2.1", + "debug": "~3.1.0", + "isarray": "2.0.1" }, "dependencies": { - "uglify-js": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-1.2.5.tgz", - "integrity": "sha1-tULCx29477NLIAsgF3Y0Mw/3ArY=", + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", "dev": true } } @@ -4775,6 +4177,27 @@ "dev": true, "requires": { "extend-shallow": "^3.0.0" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, "static-extend": { @@ -4785,17 +4208,6 @@ "requires": { "define-property": "^0.2.5", "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } } }, "statuses": { @@ -4804,37 +4216,47 @@ "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", "dev": true }, - "stream-counter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/stream-counter/-/stream-counter-0.2.0.tgz", - "integrity": "sha1-3tJmVWMZyLDiIoErnPOyb6fZR94=", + "streamroller": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-1.0.5.tgz", + "integrity": "sha512-iGVaMcyF5PcUY0cPbW3xFQUXnr9O4RZXNBBjhuLZgrjLO4XCLLGfx4T2sGqygSeylUjwgWRsnNbT9aV0Zb8AYw==", "dev": true, "requires": { - "readable-stream": "~1.1.8" + "async": "^2.6.2", + "date-format": "^2.0.0", + "debug": "^3.2.6", + "fs-extra": "^7.0.1", + "lodash": "^4.17.11" }, "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true + "async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz", + "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==", + "dev": true, + "requires": { + "lodash": "^4.17.11" + } }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" + "ms": "^2.1.1" } }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true } } @@ -4915,12 +4337,6 @@ } } }, - "tinycolor": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/tinycolor/-/tinycolor-0.0.1.tgz", - "integrity": "sha1-MgtaUtg6u1l42Bo+iH1K77FaYWQ=", - "dev": true - }, "tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -4930,6 +4346,12 @@ "os-tmpdir": "~1.0.2" } }, + "to-array": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", + "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", + "dev": true + }, "to-object-path": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", @@ -4949,6 +4371,72 @@ "extend-shallow": "^3.0.2", "regex-not": "^1.0.2", "safe-regex": "^1.1.0" + }, + "dependencies": { + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } } }, "to-regex-range": { @@ -4959,19 +4447,14 @@ "requires": { "is-number": "^3.0.0", "repeat-string": "^1.6.1" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - } } }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "dev": true + }, "tough-cookie": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", @@ -4983,12 +4466,6 @@ "punycode": "^2.1.1" } }, - "tsscmp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.5.tgz", - "integrity": "sha1-fcSjOvcVgatDN9qR2FylQn69mpc=", - "dev": true - }, "tunnel-agent": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.3.0.tgz", @@ -5043,14 +4520,11 @@ "dev": true, "optional": true }, - "uid-safe": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.4.tgz", - "integrity": "sha1-Otbzg2jG1MjHXsF2I/t5qh0HHYE=", - "dev": true, - "requires": { - "random-bytes": "~1.0.0" - } + "ultron": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", + "dev": true }, "underscore": { "version": "1.7.0", @@ -5076,15 +4550,6 @@ "set-value": "^0.4.3" }, "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, "set-value": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", @@ -5099,6 +4564,12 @@ } } }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + }, "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -5142,15 +4613,15 @@ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true } } }, + "upath": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz", + "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==", + "dev": true + }, "urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", @@ -5191,32 +4662,10 @@ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true }, - "utile": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/utile/-/utile-0.2.1.tgz", - "integrity": "sha1-kwyI6ZCY1iIINMNWy9mncFItkNc=", - "dev": true, - "requires": { - "async": "~0.2.9", - "deep-equal": "*", - "i": "0.3.x", - "mkdirp": "0.x.x", - "ncp": "0.4.x", - "rimraf": "2.x.x" - }, - "dependencies": { - "async": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", - "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=", - "dev": true - } - } - }, "utils-merge": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", - "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", "dev": true }, "vargs": { @@ -5225,16 +4674,10 @@ "integrity": "sha1-a2GE2mUgzDIEzhtAfKwm2SYJ6/8=", "dev": true }, - "vary": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.0.1.tgz", - "integrity": "sha1-meSYFWaihhGN+yuBc1ffeZM3bRA=", - "dev": true - }, - "vhost": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vhost/-/vhost-3.0.2.tgz", - "integrity": "sha1-L7HezUxGaqiLD5NBrzPcGv8keNU=", + "void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", + "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", "dev": true }, "wd": { @@ -5310,29 +4753,20 @@ "dev": true }, "ws": { - "version": "0.4.32", - "resolved": "https://registry.npmjs.org/ws/-/ws-0.4.32.tgz", - "integrity": "sha1-eHphVEFPPJntg8V3IVOyD+sM7DI=", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", + "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", "dev": true, "requires": { - "commander": "~2.1.0", - "nan": "~1.0.0", - "options": ">=0.0.5", - "tinycolor": "0.x" - }, - "dependencies": { - "nan": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-1.0.0.tgz", - "integrity": "sha1-riT4hQgY1mL8q1rPfzuVv6oszzg=", - "dev": true - } + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" } }, - "xmlhttprequest": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.4.2.tgz", - "integrity": "sha1-AUU6HZvtHo8XL2SVu/TIxCYyFQA=", + "xmlhttprequest-ssl": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", + "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=", "dev": true }, "xtend": { @@ -5359,10 +4793,10 @@ "window-size": "0.1.0" } }, - "zeparser": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/zeparser/-/zeparser-0.0.5.tgz", - "integrity": "sha1-A3JlYbwmjy5URPVMZlt/1KjAKeI=", + "yeast": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", + "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", "dev": true }, "zip-stream": { diff --git a/package.json b/package.json index fc463485..42058487 100644 --- a/package.json +++ b/package.json @@ -26,8 +26,8 @@ "grunt-contrib-uglify": "^0.4.0", "grunt-gjslint": "^0.2.1", "closure-linter-wrapper": "^1.0.0", - "grunt-karma": "^0.8.2", - "karma": "^0.12.14", + "grunt-karma": "3.x", + "karma": "4.x", "karma-mocha": "^0.1.3", "karma-chai": "^0.1.0", "karma-chrome-launcher": "~0.1.4", From 00661e85e8934f54e27eafad685e49cb387ed258 Mon Sep 17 00:00:00 2001 From: Alan Cutter Date: Mon, 24 Jun 2019 18:26:55 +1000 Subject: [PATCH 14/27] Use HTTPS URL for WPT --- .gitmodules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitmodules b/.gitmodules index d965ba1d..cda89c08 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ [submodule "test/web-platform-tests"] path = test/web-platform-tests - url = git@github.com:web-platform-tests/wpt.git + url = https://github.com/web-platform-tests/wpt.git From 10e073a73e871f195033afe03f2d56930f0a7754 Mon Sep 17 00:00:00 2001 From: Alan Cutter Date: Mon, 24 Jun 2019 18:55:20 +1000 Subject: [PATCH 15/27] Update Travis xvfb config according to https://docs.travis-ci.com/user/gui-and-headless-browsers/ --- .travis.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.travis.yml b/.travis.yml index bf9039b2..c390ecbb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,3 +1,8 @@ +dist: xenial + +services: + - xvfb + language: node_js node_js: @@ -9,3 +14,4 @@ install: before_script: - export DISPLAY=:99.0 - sh -e /etc/init.d/xvfb start + - sleep 3 # give xvfb some time to start From ea965e27bf9fdd68bc3dccfa1f273b8c997d9309 Mon Sep 17 00:00:00 2001 From: Alan Cutter Date: Mon, 24 Jun 2019 19:03:23 +1000 Subject: [PATCH 16/27] xvfb-run --- .travis.yml | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/.travis.yml b/.travis.yml index c390ecbb..91ec17c1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,17 +1,6 @@ dist: xenial - -services: - - xvfb - +services: xvfb language: node_js - -node_js: - - "6.10.2" - -install: - - BROWSER="Firefox-stable" ./.travis-setup.sh - -before_script: - - export DISPLAY=:99.0 - - sh -e /etc/init.d/xvfb start - - sleep 3 # give xvfb some time to start +node_js: "6.10.2" +install: BROWSER="Firefox-stable" ./.travis-setup.sh +script: xvfb-run npm test From 27b72a00b541efe5229fca81f8900eea82eff6a1 Mon Sep 17 00:00:00 2001 From: Alan Cutter Date: Mon, 24 Jun 2019 19:10:04 +1000 Subject: [PATCH 17/27] xvfb-run -a --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 91ec17c1..4a25d33f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,4 +3,4 @@ services: xvfb language: node_js node_js: "6.10.2" install: BROWSER="Firefox-stable" ./.travis-setup.sh -script: xvfb-run npm test +script: xvfb-run -a npm test From d2d1807b24bc6956dcba990872c12bd16e7ad73c Mon Sep 17 00:00:00 2001 From: Alan Cutter Date: Mon, 24 Jun 2019 19:17:37 +1000 Subject: [PATCH 18/27] Update node --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 4a25d33f..b3755942 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,6 @@ dist: xenial services: xvfb language: node_js -node_js: "6.10.2" +node_js: "10.15.3" install: BROWSER="Firefox-stable" ./.travis-setup.sh script: xvfb-run -a npm test From 956819d597781e9ef46aae50f85985cf2cf89803 Mon Sep 17 00:00:00 2001 From: Alan Cutter Date: Tue, 25 Jun 2019 00:07:11 +1000 Subject: [PATCH 19/27] package lock changed for some reason --- package-lock.json | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index 644dd310..564581f5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1352,12 +1352,14 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -1372,17 +1374,20 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -1499,7 +1504,8 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -1511,6 +1517,7 @@ "version": "1.0.0", "bundled": true, "dev": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -1525,6 +1532,7 @@ "version": "3.0.4", "bundled": true, "dev": true, + "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -1532,12 +1540,14 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "minipass": { "version": "2.3.5", "bundled": true, "dev": true, + "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -1556,6 +1566,7 @@ "version": "0.5.1", "bundled": true, "dev": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -1636,7 +1647,8 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -1648,6 +1660,7 @@ "version": "1.4.0", "bundled": true, "dev": true, + "optional": true, "requires": { "wrappy": "1" } @@ -1769,6 +1782,7 @@ "version": "1.0.2", "bundled": true, "dev": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", From dba5b91d5b74aa82031a7a9ea2a8ad5b9afeaffe Mon Sep 17 00:00:00 2001 From: Alan Cutter Date: Tue, 25 Jun 2019 00:31:27 +1000 Subject: [PATCH 20/27] Support normalising to 1 param step function --- src/timing-utilities.js | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/timing-utilities.js b/src/timing-utilities.js index 76264fcc..eb4ef7a5 100644 --- a/src/timing-utilities.js +++ b/src/timing-utilities.js @@ -237,7 +237,8 @@ var styleForCleaning = null; var numberString = '\\s*(-?\\d+\\.?\\d*|-?\\.\\d+)\\s*'; var cubicBezierRe = new RegExp('cubic-bezier\\(' + numberString + ',' + numberString + ',' + numberString + ',' + numberString + '\\)'); - var stepRe = /steps\(\s*(\d+)\s*,\s*(start|middle|end)\s*\)/; + var step1Re = /steps\(\s*(\d+)\s*\)/; + var step2Re = /steps\(\s*(\d+)\s*,\s*(start|middle|end)\s*\)/; function normalizeEasing(easing) { if (!styleForCleaning) { @@ -260,9 +261,13 @@ if (cubicData) { return cubic.apply(this, cubicData.slice(1).map(Number)); } - var stepData = stepRe.exec(normalizedEasing); - if (stepData) { - return step(Number(stepData[1]), {'start': Start, 'middle': Middle, 'end': End}[stepData[2]]); + var step1Data = step1Re.exec(normalizedEasing); + if (step1Data) { + return step(Number(step1Data[1]), End); + } + var step2Data = step2Re.exec(normalizedEasing); + if (step2Data) { + return step(Number(step2Data[1]), {'start': Start, 'middle': Middle, 'end': End}[step2Data[2]]); } var preset = presets[normalizedEasing]; if (preset) { From 6e64c73f147da2f26253cc6f01d012989c3b0b74 Mon Sep 17 00:00:00 2001 From: Alan Cutter Date: Tue, 25 Jun 2019 10:20:30 +1000 Subject: [PATCH 21/27] Update test expectations --- test/web-platform-tests-expectations.js | 2776 +++-------------------- 1 file changed, 302 insertions(+), 2474 deletions(-) diff --git a/test/web-platform-tests-expectations.js b/test/web-platform-tests-expectations.js index 22461d15..97a805a4 100644 --- a/test/web-platform-tests-expectations.js +++ b/test/web-platform-tests-expectations.js @@ -20,2680 +20,508 @@ module.exports = { }, failures: { 'test/web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-context.html': { - 'Effect values reflect changes to font-size when computed style is not immediately flushed': - 'assert_equals: Effect value after updating font-size on parent element expected "300px" but got "150px"', - }, - }, - }, - { - configuration: { - target: 'web-animations', - withNativeFallback: false, - }, - failures: { - 'test/web-platform-tests/web-animations/interfaces/Animatable/animate-basic.html': { - 'Element.animate() creates an Animation object': - 'assert_equals: Returned object is an Animation expected "[object Animation]" but got "[object Object]"', - - 'Element.animate() does not accept property-indexed keyframes with an invalid easing value': - 'assert_throws: function "function () {\n div.animate(subtest.input, 2000);\n }" did not throw', - }, - - 'test/web-platform-tests/web-animations/interfaces/Animation/cancel.html': { - 'Animated style is cleared after calling Animation.cancel()': - 'assert_not_equals: transform style is animated before cancelling got disallowed value "none"', - }, - - 'test/web-platform-tests/web-animations/interfaces/Animation/pause.html': { - 'pause() from idle': - 'assert_equals: initially pause-pending expected "pending" but got "paused"', - }, - - 'test/web-platform-tests/web-animations/interfaces/KeyframeEffect/effect-easing.html': { - 'effect easing produces negative values 1 with keyframe easing cubic-bezier(0, 0, 0, 0)': - 'assert_approx_equals: The left of the animation should be approximately -29.501119758965654 at 250ms expected -29.501119758965654 +/- 0.01 but got 0', - - 'effect easing produces values greater than 1 with keyframe easing cubic-bezier(1, 1, 1, 1)': - 'assert_approx_equals: The left of the animation should be approximately 102.40666638411385 at 250ms expected 102.40666638411385 +/- 0.01 but got 100', - - 'effect easing which produces values greater than 1 and the tangent on the upper boundary is infinity with keyframe easing producing values greater than 1': - 'assert_approx_equals: The left of the animation should be approximately 100 at 240ms expected 100 +/- 0.01 but got 99.5333', - }, - }, - }, - - { - configuration: { - target: 'web-animations-next', - withNativeFallback: true, - }, - failures: { - 'test/web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-context.html': { - 'Effect values reflect changes to font-size when computed style is not immediately flushed': - 'assert_equals: Effect value after updating font-size on parent element expected "300px" but got "150px"', - }, - - 'test/web-platform-tests/web-animations/interfaces/Animatable/animate-basic.html': { - 'Element.animate() creates an Animation object': - 'assert_equals: Returned object is an Animation expected "[object Animation]" but got "[object Object]"', - }, - - 'test/web-platform-tests/web-animations/interfaces/Animatable/animate-effect.html': { - 'Element.animate() accepts a double as an options argument': - 'assert_equals: expected "auto" but got "none"', - - 'Element.animate() accepts a keyframe sequence where greater shorthand precedes lesser shorthand': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a keyframe sequence where lesser shorthand precedes greater shorthand': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a keyframe sequence where longhand precedes shorthand': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a keyframe sequence where shorthand precedes longhand': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a keyframe sequence with a CSS variable reference': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a keyframe sequence with a CSS variable reference in a shorthand property': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a keyframe sequence with different composite values, but the same composite value for a given offset': - 'add compositing is not supported', - - 'Element.animate() accepts a keyframe sequence with different easing values, but the same easing value for a given offset': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a keyframe sequence with duplicate values for a given interior offset': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a keyframe sequence with duplicate values for offsets 0 and 1': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a keyframe sequence with repeated values at offset 1 with different easings': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a one property keyframe sequence with all omitted offsets': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a one property keyframe sequence with some omitted offsets': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a one property one keyframe sequence': - 'Animation to or from an underlying value is not yet supported.', - - 'Element.animate() accepts a one property one non-array value property-indexed keyframes specification': - 'Animation to or from an underlying value is not yet supported.', - - 'Element.animate() accepts a one property one value property-indexed keyframes specification': - 'Animation to or from an underlying value is not yet supported.', - - 'Element.animate() accepts a one property two keyframe sequence': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a one property two keyframe sequence that needs to stringify its values': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a one property two value property-indexed keyframes specification': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a one property two value property-indexed keyframes specification that needs to stringify its values': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a one property two value property-indexed keyframes specification where the first value is invalid': - 'Animation to or from an underlying value is not yet supported.', - - 'Element.animate() accepts a one property two value property-indexed keyframes specification where the second value is invalid': - 'Animation to or from an underlying value is not yet supported.', - - 'Element.animate() accepts a one shorthand property two keyframe sequence': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a one shorthand property two value property-indexed keyframes specification': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a property-indexed keyframes specification with a CSS variable reference': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a property-indexed keyframes specification with a CSS variable reference in a shorthand property': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a property-indexed keyframes specification with an invalid value': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a single keyframe sequence with omitted offsets': - 'Animation to or from an underlying value is not yet supported.', - - 'Element.animate() accepts a two property (a shorthand and one of its component longhands) two keyframe sequence': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a two property (one shorthand and one of its longhand components) two value property-indexed keyframes specification': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a two property four keyframe sequence': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a two property keyframe sequence where one property is missing from the first keyframe': - 'Animation to or from an underlying value is not yet supported.', - - 'Element.animate() accepts a two property keyframe sequence where one property is missing from the last keyframe': - 'Animation to or from an underlying value is not yet supported.', - - 'Element.animate() accepts a two property keyframe sequence with some omitted offsets': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a two property property-indexed keyframes specification with different numbers of values': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a two property two keyframe sequence': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a two property two value property-indexed keyframes specification': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts an absent options argument': - 'assert_equals: expected (string) "auto" but got (number) 0', - - 'Element.animate() creates an Animation object with a KeyframeEffect': - 'assert_equals: Returned Animation has a KeyframeEffect expected "[object KeyframeEffect]" but got "[object Object]"', - }, - - 'test/web-platform-tests/web-animations/interfaces/Animatable/animate-pseudo-element.html': { - 'CSSPseudoElement.animate() creates an Animation object': - 'document.getAnimations is not a function', - - 'CSSPseudoElement.animate() creates an Animation object targeting to the correct CSSPseudoElement object': - 'document.getAnimations is not a function', - }, - - 'test/web-platform-tests/web-animations/interfaces/Animation/finish.html': { - 'Test finish() resolves finished promise synchronously with an animation without a target': - 'KeyframeEffectReadOnly is not defined', - - 'Test finish() while pause-pending with negative playbackRate': - 'FLAKY_TEST_RESULT', - - 'Test finish() while pause-pending with positive playbackRate': - 'FLAKY_TEST_RESULT', - - 'Test finish() while play-pending': - 'FLAKY_TEST_RESULT', - - 'Test finishing of animation with a current time past the effect end': - 'animation.effect.getComputedTiming is not a function', - - 'Test normally finished animation resolves finished promise synchronously with an animation without a target': - 'KeyframeEffectReadOnly is not defined', - }, - - 'test/web-platform-tests/web-animations/interfaces/Animation/finished.html': { - 'Test finished promise is not resolved once the animation falls out finished state even though the current finished promise is generated soon after animation state became finished': - 'assert_unreached: Animation.finished should not be resolved Reached unreachable code', - - 'Test finished promise is not resolved when the animation falls out finished state immediately': - 'assert_unreached: Animation.finished should not be resolved Reached unreachable code', - - 'cancelling an idle animation still replaces the finished promise': - 'assert_not_equals: A redundant call to cancel() should still generate a new finished promise got disallowed value object "[object Promise]"', - }, - - 'test/web-platform-tests/web-animations/interfaces/Animation/oncancel.html': { - 'oncancel event is fired when animation.cancel() is called.': - 'FLAKY_TEST_RESULT', - }, - - 'test/web-platform-tests/web-animations/interfaces/Animation/onfinish.html': { - 'onfinish event is fired when animation.finish() is called': - 'FLAKY_TEST_RESULT', - }, - - 'test/web-platform-tests/web-animations/interfaces/Animation/playbackRate.html': { - 'Test the effect of setting playbackRate while playing animation': - 'FLAKY_TEST_RESULT', - }, - - 'test/web-platform-tests/web-animations/interfaces/Animation/reverse.html': { - 'reverse() when playbackRate < 0 and currentTime < 0': - 'assert_equals: reverse() should start playing from the start of animation time if the playbackRate < 0 and the currentTime < 0 expected 0 but got -200000', - - 'reverse() when playbackRate < 0 and currentTime < 0 and the target effect end is positive infinity': - 'assert_equals: reverse() should start playing from the start of animation time if the playbackRate < 0 and the currentTime < 0 and the target effect is positive infinity expected 0 but got -200000', - - 'reverse() when playbackRate < 0 and currentTime > effect end': - 'assert_equals: reverse() should start playing from the start of animation time if the playbackRate < 0 and the currentTime > effect end expected 0 but got 200000', - - 'reverse() when playbackRate > 0 and currentTime < 0': - 'assert_equals: reverse() should start playing from the animation effect end if the playbackRate > 0 and the currentTime < 0 expected 100000 but got -200000', - - 'reverse() when playbackRate > 0 and currentTime > effect end': - 'assert_equals: reverse() should start playing from the animation effect end if the playbackRate > 0 and the currentTime > effect end expected 100000 but got 200000', - }, - - 'test/web-platform-tests/web-animations/interfaces/AnimationEffectTiming/delay.html': { - 'Test adding a positive delay to an animation without a backwards fill makes it no longer active': - 'anim.effect.getComputedTiming is not a function', - - 'Test finishing an animation using a large negative delay': - 'anim.effect.getComputedTiming is not a function', - - 'Test seeking an animation by setting a negative delay': - 'anim.effect.getComputedTiming is not a function', - - 'set delay -100': - 'anim.effect.getComputedTiming is not a function', - - 'set delay 100': - 'anim.effect.getComputedTiming is not a function', - }, - - 'test/web-platform-tests/web-animations/interfaces/AnimationEffectTiming/duration.html': { - 'set NaN duration in animate using a duration parameter': - 'assert_throws: function "function () {\n div.animate({ opacity: [ 0, 1 ] }, NaN);\n }" did not throw', - - 'set auto duration in animate as object': - 'assert_equals: set duration \'auto\' expected (string) "auto" but got (number) 0', - - 'set duration 123.45': - 'anim.effect.getComputedTiming is not a function', - - 'set duration Infinity': - 'anim.effect.getComputedTiming is not a function', - - 'set duration auto': - 'anim.effect.getComputedTiming is not a function', - }, - - 'test/web-platform-tests/web-animations/interfaces/AnimationEffectTiming/easing.html': { - 'Change the easing while the animation is running': - 'anim.effect.getComputedTiming is not a function', - - 'ease function': - 'animation.effect.getComputedTiming is not a function', - - 'ease-in function': - 'animation.effect.getComputedTiming is not a function', - - 'ease-in-out function': - 'animation.effect.getComputedTiming is not a function', - - 'ease-out function': - 'animation.effect.getComputedTiming is not a function', - - 'easing function which produces values greater than 1': - 'animation.effect.getComputedTiming is not a function', - - 'linear function': - 'animation.effect.getComputedTiming is not a function', - - 'steps(end) function': - 'animation.effect.getComputedTiming is not a function', - - 'steps(start) function': - 'animation.effect.getComputedTiming is not a function', - }, - - 'test/web-platform-tests/web-animations/interfaces/AnimationEffectTiming/endDelay.html': { - 'onfinish event is fired currentTime is after endTime': - 'FLAKY_TEST_RESULT', - - 'set endDelay -1000': - 'anim.effect.getComputedTiming is not a function', - - 'set endDelay 123.45': - 'anim.effect.getComputedTiming is not a function', - }, - - 'test/web-platform-tests/web-animations/interfaces/AnimationEffectTiming/fill.html': { - 'set fill backwards': - 'anim.effect.getComputedTiming is not a function', - - 'set fill both': - 'anim.effect.getComputedTiming is not a function', - - 'set fill forwards': - 'anim.effect.getComputedTiming is not a function', - - 'set fill none': - 'anim.effect.getComputedTiming is not a function', - }, - - 'test/web-platform-tests/web-animations/interfaces/AnimationEffectTiming/getAnimations.html': { - 'when currentTime changed in duration:1000, delay: -500, endDelay: -500': - 'assert_equals: when currentTime 0 expected 0 but got 1', - - 'when currentTime changed in duration:1000, delay: 500, endDelay: -500': - 'assert_equals: set currentTime 1000 expected 0 but got 1', - - 'when duration is changed': - 'assert_equals: set duration 102000 expected (object) object "[object Object]" but got (undefined) undefined', - - 'when endDelay is changed': - 'assert_equals: set negative endDelay so as endTime is less than currentTime expected 0 but got 1', - - 'when iterations is changed': - 'assert_equals: set iterations 10 expected (object) object "[object Object]" but got (undefined) undefined', - }, - - 'test/web-platform-tests/web-animations/interfaces/AnimationEffectTiming/getComputedStyle.html': { - 'change currentTime when fill forwards and endDelay is negative': - 'assert_equals: set currentTime same as endTime expected "0" but got "0.5"', - - 'changed duration immediately updates its computed styles': - 'FLAKY_TEST_RESULT', - - 'changed iterations immediately updates its computed styles': - 'FLAKY_TEST_RESULT', - }, - - 'test/web-platform-tests/web-animations/interfaces/AnimationEffectTiming/iterationStart.html': { - 'Test invalid iterationStart value': - 'assert_throws: function "function () {\n anim.effect.timing.iterationStart = -1;\n }" threw object "ReferenceError: timing is not defined" ("ReferenceError") expected object "[object Object]" ("TypeError")', - - 'Test that changing the iterationStart affects computed timing during the active phase': - 'anim.effect.getComputedTiming is not a function', - - 'Test that changing the iterationStart affects computed timing when backwards-filling': - 'anim.effect.getComputedTiming is not a function', - - 'Test that changing the iterationStart affects computed timing when forwards-filling': - 'anim.effect.getComputedTiming is not a function', - }, - - 'test/web-platform-tests/web-animations/interfaces/AnimationEffectTiming/iterations.html': { - 'set iterations 2': - 'anim.effect.getComputedTiming is not a function', - - 'set iterations Infinity': - 'anim.effect.getComputedTiming is not a function', - }, - - 'test/web-platform-tests/web-animations/interfaces/AnimationTimeline/document-timeline.html': { - 'document.timeline.currentTime liveness tests': - 'assert_true: document.timeline.currentTime increases between script blocks expected true got false', - - 'document.timeline.currentTime value tests': - 'assert_true: document.timeline.currentTime is positive expected true got false', - }, - - 'test/web-platform-tests/web-animations/interfaces/AnimationTimeline/idlharness.html': { - 'AnimationTimeline interface object length': - 'assert_own_property: self does not have own property "AnimationTimeline" expected property "AnimationTimeline" missing', - - 'AnimationTimeline interface object name': - 'assert_own_property: self does not have own property "AnimationTimeline" expected property "AnimationTimeline" missing', - - 'AnimationTimeline interface: attribute currentTime': - 'assert_own_property: self does not have own property "AnimationTimeline" expected property "AnimationTimeline" missing', - - 'AnimationTimeline interface: document.timeline must inherit property "currentTime" with the proper type (0)': - 'assert_inherits: property "currentTime" found on object expected in prototype chain', - - 'AnimationTimeline interface: existence and properties of interface object': - 'assert_own_property: self does not have own property "AnimationTimeline" expected property "AnimationTimeline" missing', - - 'AnimationTimeline interface: existence and properties of interface prototype object': - 'assert_own_property: self does not have own property "AnimationTimeline" expected property "AnimationTimeline" missing', - - 'AnimationTimeline interface: existence and properties of interface prototype object\'s "constructor" property': - 'assert_own_property: self does not have own property "AnimationTimeline" expected property "AnimationTimeline" missing', - - 'DocumentTimeline interface object length': - 'assert_own_property: self does not have own property "DocumentTimeline" expected property "DocumentTimeline" missing', - - 'DocumentTimeline interface object name': - 'assert_own_property: self does not have own property "DocumentTimeline" expected property "DocumentTimeline" missing', - - 'DocumentTimeline interface: existence and properties of interface object': - 'assert_own_property: self does not have own property "DocumentTimeline" expected property "DocumentTimeline" missing', - - 'DocumentTimeline interface: existence and properties of interface prototype object': - 'assert_own_property: self does not have own property "DocumentTimeline" expected property "DocumentTimeline" missing', - - 'DocumentTimeline interface: existence and properties of interface prototype object\'s "constructor" property': - 'assert_own_property: self does not have own property "DocumentTimeline" expected property "DocumentTimeline" missing', - - 'DocumentTimeline must be primary interface of document.timeline': - 'assert_own_property: self does not have own property "DocumentTimeline" expected property "DocumentTimeline" missing', - - 'Stringification of document.timeline': - 'assert_equals: class string of document.timeline expected "[object DocumentTimeline]" but got "[object Object]"', - }, - - 'test/web-platform-tests/web-animations/interfaces/Document/getAnimations.html': { - 'Test document.getAnimations for non-animated content': - 'document.getAnimations is not a function', - - 'Test document.getAnimations for script-generated animations': - 'document.getAnimations is not a function', - - 'Test document.getAnimations with null target': - 'KeyframeEffectReadOnly is not defined', - - 'Test the order of document.getAnimations with script generated animations': - 'document.getAnimations is not a function', - }, - - 'test/web-platform-tests/web-animations/interfaces/KeyframeEffect/constructor.html': { - 'Invalid KeyframeEffectReadOnly option by -Infinity': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target,\n { left: ["10px", "20px"] },\n stest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "[object Object]" ("TypeError")', - - 'Invalid KeyframeEffectReadOnly option by NaN': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target,\n { left: ["10px", "20px"] },\n stest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "[object Object]" ("TypeError")', - - 'Invalid KeyframeEffectReadOnly option by a NaN duration': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target,\n { left: ["10px", "20px"] },\n stest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "[object Object]" ("TypeError")', - - 'Invalid KeyframeEffectReadOnly option by a NaN iterations': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target,\n { left: ["10px", "20px"] },\n stest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "[object Object]" ("TypeError")', - - 'Invalid KeyframeEffectReadOnly option by a blank easing': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target,\n { left: ["10px", "20px"] },\n stest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "[object Object]" ("TypeError")', - - 'Invalid KeyframeEffectReadOnly option by a multi-value easing': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target,\n { left: ["10px", "20px"] },\n stest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "[object Object]" ("TypeError")', - - 'Invalid KeyframeEffectReadOnly option by a negative Infinity duration': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target,\n { left: ["10px", "20px"] },\n stest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "[object Object]" ("TypeError")', - - 'Invalid KeyframeEffectReadOnly option by a negative Infinity iterations': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target,\n { left: ["10px", "20px"] },\n stest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "[object Object]" ("TypeError")', - - 'Invalid KeyframeEffectReadOnly option by a negative duration': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target,\n { left: ["10px", "20px"] },\n stest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "[object Object]" ("TypeError")', - - 'Invalid KeyframeEffectReadOnly option by a negative iterations': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target,\n { left: ["10px", "20px"] },\n stest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "[object Object]" ("TypeError")', - - 'Invalid KeyframeEffectReadOnly option by a negative value': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target,\n { left: ["10px", "20px"] },\n stest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "[object Object]" ("TypeError")', - - 'Invalid KeyframeEffectReadOnly option by a string duration': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target,\n { left: ["10px", "20px"] },\n stest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "[object Object]" ("TypeError")', - - 'Invalid KeyframeEffectReadOnly option by a variable easing': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target,\n { left: ["10px", "20px"] },\n stest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "[object Object]" ("TypeError")', - - 'Invalid KeyframeEffectReadOnly option by an \'inherit\' easing': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target,\n { left: ["10px", "20px"] },\n stest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "[object Object]" ("TypeError")', - - 'Invalid KeyframeEffectReadOnly option by an \'initial\' easing': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target,\n { left: ["10px", "20px"] },\n stest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "[object Object]" ("TypeError")', - - 'Invalid KeyframeEffectReadOnly option by an unrecognized easing': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target,\n { left: ["10px", "20px"] },\n stest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "[object Object]" ("TypeError")', - - 'Invalid easing [a blank easing] in keyframe sequence should be thrown': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target, subtest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "TypeError" ("TypeError")', - - 'Invalid easing [a multi-value easing] in keyframe sequence should be thrown': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target, subtest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "TypeError" ("TypeError")', - - 'Invalid easing [a variable easing] in keyframe sequence should be thrown': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target, subtest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "TypeError" ("TypeError")', - - 'Invalid easing [an \'inherit\' easing] in keyframe sequence should be thrown': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target, subtest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "TypeError" ("TypeError")', - - 'Invalid easing [an \'initial\' easing] in keyframe sequence should be thrown': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target, subtest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "TypeError" ("TypeError")', - - 'Invalid easing [an unrecognized easing] in keyframe sequence should be thrown': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target, subtest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "TypeError" ("TypeError")', - - 'KeyframeEffect constructor creates an AnimationEffectTiming timing object': - 'assert_equals: expected "[object KeyframeEffect]" but got "[object Object]"', - - 'KeyframeEffectReadOnly constructor throws with a keyframe sequence with an invalid easing value': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target, subtest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "[object Object]" ("TypeError")', - - 'KeyframeEffectReadOnly constructor throws with keyframes not loosely sorted by offset': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target, subtest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "[object Object]" ("TypeError")', - - 'KeyframeEffectReadOnly constructor throws with keyframes with an invalid composite value': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target, subtest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "[object Object]" ("TypeError")', - - 'KeyframeEffectReadOnly constructor throws with keyframes with an out-of-bounded negative offset': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target, subtest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "[object Object]" ("TypeError")', - - 'KeyframeEffectReadOnly constructor throws with keyframes with an out-of-bounded positive offset': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target, subtest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "[object Object]" ("TypeError")', - - 'KeyframeEffectReadOnly constructor throws with property-indexed keyframes with an invalid easing value': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target, subtest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "[object Object]" ("TypeError")', - - 'a KeyframeEffectReadOnly can be constructed with a keyframe sequence where greater shorthand precedes lesser shorthand': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a keyframe sequence where lesser shorthand precedes greater shorthand': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a keyframe sequence where longhand precedes shorthand': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a keyframe sequence where shorthand precedes longhand': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a keyframe sequence with a CSS variable reference': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a keyframe sequence with a CSS variable reference in a shorthand property': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a keyframe sequence with different composite values, but the same composite value for a given offset': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a keyframe sequence with different easing values, but the same easing value for a given offset': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a keyframe sequence with duplicate values for a given interior offset': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a keyframe sequence with duplicate values for offsets 0 and 1': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a keyframe sequence with repeated values at offset 1 with different easings': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a one property keyframe sequence with all omitted offsets': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a one property keyframe sequence with some omitted offsets': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a one property one keyframe sequence': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a one property one non-array value property-indexed keyframes specification': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a one property one value property-indexed keyframes specification': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a one property two keyframe sequence': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a one property two keyframe sequence that needs to stringify its values': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a one property two value property-indexed keyframes specification': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a one property two value property-indexed keyframes specification that needs to stringify its values': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a one property two value property-indexed keyframes specification where the first value is invalid': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a one property two value property-indexed keyframes specification where the second value is invalid': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a one shorthand property two keyframe sequence': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a one shorthand property two value property-indexed keyframes specification': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a property-indexed keyframes specification with a CSS variable reference': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a property-indexed keyframes specification with a CSS variable reference in a shorthand property': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a property-indexed keyframes specification with an invalid value': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a single keyframe sequence with omitted offsets': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a two property (a shorthand and one of its component longhands) two keyframe sequence': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a two property (one shorthand and one of its longhand components) two value property-indexed keyframes specification': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a two property four keyframe sequence': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a two property keyframe sequence where one property is missing from the first keyframe': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a two property keyframe sequence where one property is missing from the last keyframe': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a two property keyframe sequence with some omitted offsets': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a two property property-indexed keyframes specification with different numbers of values': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a two property two keyframe sequence': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a two property two value property-indexed keyframes specification': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with no frames': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed by +Infinity': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed by a double value': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed by a forwards fill': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed by a normal KeyframeEffectOptions object': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed by an Infinity duration': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed by an Infinity iterations': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed by an auto duration': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed by an auto fill': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed by an empty KeyframeEffectOptions object': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed with a keyframe sequence where greater shorthand precedes lesser shorthand roundtrips': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed with a keyframe sequence where lesser shorthand precedes greater shorthand roundtrips': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed with a keyframe sequence where longhand precedes shorthand roundtrips': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed with a keyframe sequence where shorthand precedes longhand roundtrips': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed with a keyframe sequence with a CSS variable reference in a shorthand property roundtrips': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed with a keyframe sequence with a CSS variable reference roundtrips': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed with a keyframe sequence with different composite values, but the same composite value for a given offset roundtrips': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed with a keyframe sequence with different easing values, but the same easing value for a given offset roundtrips': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed with a keyframe sequence with duplicate values for a given interior offset roundtrips': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed with a keyframe sequence with duplicate values for offsets 0 and 1 roundtrips': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed with a keyframe sequence with repeated values at offset 1 with different easings roundtrips': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed with a one property keyframe sequence with all omitted offsets roundtrips': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed with a one property keyframe sequence with some omitted offsets roundtrips': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed with a one property one keyframe sequence roundtrips': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed with a one property one non-array value property-indexed keyframes specification roundtrips': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed with a one property one value property-indexed keyframes specification roundtrips': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed with a one property two keyframe sequence roundtrips': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed with a one property two keyframe sequence that needs to stringify its values roundtrips': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed with a one property two value property-indexed keyframes specification roundtrips': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed with a one property two value property-indexed keyframes specification that needs to stringify its values roundtrips': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed with a one property two value property-indexed keyframes specification where the first value is invalid roundtrips': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed with a one property two value property-indexed keyframes specification where the second value is invalid roundtrips': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed with a one shorthand property two keyframe sequence roundtrips': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed with a one shorthand property two value property-indexed keyframes specification roundtrips': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed with a property-indexed keyframes specification with a CSS variable reference in a shorthand property roundtrips': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed with a property-indexed keyframes specification with a CSS variable reference roundtrips': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed with a property-indexed keyframes specification with an invalid value roundtrips': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed with a single keyframe sequence with omitted offsets roundtrips': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed with a two property (a shorthand and one of its component longhands) two keyframe sequence roundtrips': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed with a two property (one shorthand and one of its longhand components) two value property-indexed keyframes specification roundtrips': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed with a two property four keyframe sequence roundtrips': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed with a two property keyframe sequence where one property is missing from the first keyframe roundtrips': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed with a two property keyframe sequence where one property is missing from the last keyframe roundtrips': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed with a two property keyframe sequence with some omitted offsets roundtrips': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed with a two property property-indexed keyframes specification with different numbers of values roundtrips': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed with a two property two keyframe sequence roundtrips': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed with a two property two value property-indexed keyframes specification roundtrips': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed with null target': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed without any KeyframeEffectOptions object': - 'KeyframeEffectReadOnly is not defined', - - 'composite values are parsed correctly when passed to the KeyframeEffectReadOnly constructor in KeyframeTimingOptions': - 'KeyframeEffectReadOnly is not defined', - - 'composite values are parsed correctly when passed to the KeyframeEffectReadOnly constructor in property-indexed keyframes': - 'KeyframeEffectReadOnly is not defined', - - 'composite values are parsed correctly when passed to the KeyframeEffectReadOnly constructor in regular keyframes': - 'KeyframeEffectReadOnly is not defined', - - 'easing values are parsed correctly when passed to the KeyframeEffectReadOnly constructor in KeyframeTimingOptions': - 'KeyframeEffectReadOnly is not defined', - - 'easing values are parsed correctly when passed to the KeyframeEffectReadOnly constructor in a property-indexed keyframe': - 'KeyframeEffectReadOnly is not defined', - - 'easing values are parsed correctly when passed to the KeyframeEffectReadOnly constructor in regular keyframes': - 'KeyframeEffectReadOnly is not defined', - - 'the KeyframeEffectReadOnly constructor reads keyframe properties in the expected order': - 'KeyframeEffectReadOnly is not defined', - }, - - 'test/web-platform-tests/web-animations/interfaces/KeyframeEffect/effect-easing-steps.html': { - 'Test bounds point of step(4, start) easing with iterationStart 0.75 and delay': - 'animation.effect.getComputedTiming is not a function', - - 'Test bounds point of step-end easing with iterationStart and delay': - 'animation.effect.getComputedTiming is not a function', - - 'Test bounds point of step-end easing with iterationStart not at a transition point': - 'animation.effect.getComputedTiming is not a function', - - 'Test bounds point of step-start easing': - 'animation.effect.getComputedTiming is not a function', - - 'Test bounds point of step-start easing in keyframe': - 'animation.effect.getComputedTiming is not a function', - - 'Test bounds point of step-start easing with alternate direction': - 'animation.effect.getComputedTiming is not a function', - - 'Test bounds point of step-start easing with alternate-reverse direction': - 'animation.effect.getComputedTiming is not a function', - - 'Test bounds point of step-start easing with compositor': - 'animation.effect.getComputedTiming is not a function', - - 'Test bounds point of step-start easing with iterationStart and delay': - 'animation.effect.getComputedTiming is not a function', - - 'Test bounds point of step-start easing with iterationStart and reverse direction': - 'animation.effect.getComputedTiming is not a function', - - 'Test bounds point of step-start easing with iterationStart not at a transition point': - 'animation.effect.getComputedTiming is not a function', - - 'Test bounds point of step-start easing with reverse direction': - 'animation.effect.getComputedTiming is not a function', - }, - - 'test/web-platform-tests/web-animations/interfaces/KeyframeEffect/getComputedTiming.html': { - 'getComputedTiming().activeDuration for a non-zero duration and default iteration count': - 'KeyframeEffectReadOnly is not defined', - - 'getComputedTiming().activeDuration for a non-zero duration and fractional iteration count': - 'KeyframeEffectReadOnly is not defined', - - 'getComputedTiming().activeDuration for a non-zero duration and integral iteration count': - 'KeyframeEffectReadOnly is not defined', - - 'getComputedTiming().activeDuration for a zero duration and default iteration count': - 'KeyframeEffectReadOnly is not defined', - - 'getComputedTiming().activeDuration for a zero duration and fractional iteration count': - 'KeyframeEffectReadOnly is not defined', - - 'getComputedTiming().activeDuration for a zero duration and infinite iteration count': - 'KeyframeEffectReadOnly is not defined', - - 'getComputedTiming().activeDuration for a zero duration and zero iteration count': - 'KeyframeEffectReadOnly is not defined', - - 'getComputedTiming().activeDuration for an empty KeyframeEffectOptions object': - 'KeyframeEffectReadOnly is not defined', - - 'getComputedTiming().activeDuration for an infinite duration and default iteration count': - 'KeyframeEffectReadOnly is not defined', - - 'getComputedTiming().activeDuration for an infinite duration and fractional iteration count': - 'KeyframeEffectReadOnly is not defined', - - 'getComputedTiming().activeDuration for an infinite duration and infinite iteration count': - 'KeyframeEffectReadOnly is not defined', - - 'getComputedTiming().activeDuration for an infinite duration and zero iteration count': - 'KeyframeEffectReadOnly is not defined', - - 'getComputedTiming().activeDuration for an non-zero duration and infinite iteration count': - 'KeyframeEffectReadOnly is not defined', - - 'getComputedTiming().activeDuration for an non-zero duration and zero iteration count': - 'KeyframeEffectReadOnly is not defined', - - 'getComputedTiming().endTime for a non-zero duration and default iteration count': - 'KeyframeEffectReadOnly is not defined', - - 'getComputedTiming().endTime for a non-zero duration and non-default iteration count': - 'KeyframeEffectReadOnly is not defined', - - 'getComputedTiming().endTime for a non-zero duration and non-zero delay': - 'KeyframeEffectReadOnly is not defined', - - 'getComputedTiming().endTime for a non-zero duration, non-zero delay and non-default iteration': - 'KeyframeEffectReadOnly is not defined', - - 'getComputedTiming().endTime for a zero duration and negative delay': - 'KeyframeEffectReadOnly is not defined', - - 'getComputedTiming().endTime for an empty KeyframeEffectOptions object': - 'KeyframeEffectReadOnly is not defined', - - 'getComputedTiming().endTime for an infinite duration': - 'KeyframeEffectReadOnly is not defined', - - 'getComputedTiming().endTime for an infinite duration and delay': - 'KeyframeEffectReadOnly is not defined', - - 'getComputedTiming().endTime for an infinite duration and negative delay': - 'KeyframeEffectReadOnly is not defined', - - 'getComputedTiming().endTime for an infinite iteration count': - 'KeyframeEffectReadOnly is not defined', - - 'getComputedTiming().endTime for an non-zero duration and negative delay': - 'KeyframeEffectReadOnly is not defined', - - 'getComputedTiming().endTime for an non-zero duration and negative delay greater than active duration': - 'KeyframeEffectReadOnly is not defined', - - 'values of getComputedTiming() when a KeyframeEffectReadOnly is constructed by +Infinity': - 'KeyframeEffectReadOnly is not defined', - - 'values of getComputedTiming() when a KeyframeEffectReadOnly is constructed by a double value': - 'KeyframeEffectReadOnly is not defined', - - 'values of getComputedTiming() when a KeyframeEffectReadOnly is constructed by a forwards fill': - 'KeyframeEffectReadOnly is not defined', - - 'values of getComputedTiming() when a KeyframeEffectReadOnly is constructed by a normal KeyframeEffectOptions object': - 'KeyframeEffectReadOnly is not defined', - - 'values of getComputedTiming() when a KeyframeEffectReadOnly is constructed by an Infinity duration': - 'KeyframeEffectReadOnly is not defined', - - 'values of getComputedTiming() when a KeyframeEffectReadOnly is constructed by an Infinity iterations': - 'KeyframeEffectReadOnly is not defined', - - 'values of getComputedTiming() when a KeyframeEffectReadOnly is constructed by an auto duration': - 'KeyframeEffectReadOnly is not defined', - - 'values of getComputedTiming() when a KeyframeEffectReadOnly is constructed by an auto fill': - 'KeyframeEffectReadOnly is not defined', - - 'values of getComputedTiming() when a KeyframeEffectReadOnly is constructed by an empty KeyframeEffectOptions object': - 'KeyframeEffectReadOnly is not defined', - - 'values of getComputedTiming() when a KeyframeEffectReadOnly is constructed without any KeyframeEffectOptions object': - 'KeyframeEffectReadOnly is not defined', - }, - - 'test/web-platform-tests/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument.html': { - 'non-animatable property \'animation\' is not accessed when using a keyframe sequence': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'animation\' is not accessed when using a property-indexed keyframe object': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'animationDelay\' is not accessed when using a keyframe sequence': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'animationDelay\' is not accessed when using a property-indexed keyframe object': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'animationDirection\' is not accessed when using a keyframe sequence': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'animationDirection\' is not accessed when using a property-indexed keyframe object': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'animationDuration\' is not accessed when using a keyframe sequence': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'animationDuration\' is not accessed when using a property-indexed keyframe object': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'animationFillMode\' is not accessed when using a keyframe sequence': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'animationFillMode\' is not accessed when using a property-indexed keyframe object': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'animationIterationCount\' is not accessed when using a keyframe sequence': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'animationIterationCount\' is not accessed when using a property-indexed keyframe object': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'animationName\' is not accessed when using a keyframe sequence': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'animationName\' is not accessed when using a property-indexed keyframe object': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'animationPlayState\' is not accessed when using a keyframe sequence': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'animationPlayState\' is not accessed when using a property-indexed keyframe object': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'animationTimingFunction\' is not accessed when using a keyframe sequence': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'animationTimingFunction\' is not accessed when using a property-indexed keyframe object': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'display\' is not accessed when using a keyframe sequence': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'display\' is not accessed when using a property-indexed keyframe object': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'transition\' is not accessed when using a keyframe sequence': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'transition\' is not accessed when using a property-indexed keyframe object': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'transitionDelay\' is not accessed when using a keyframe sequence': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'transitionDelay\' is not accessed when using a property-indexed keyframe object': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'transitionDuration\' is not accessed when using a keyframe sequence': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'transitionDuration\' is not accessed when using a property-indexed keyframe object': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'transitionProperty\' is not accessed when using a keyframe sequence': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'transitionProperty\' is not accessed when using a property-indexed keyframe object': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'transitionTimingFunction\' is not accessed when using a keyframe sequence': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'transitionTimingFunction\' is not accessed when using a property-indexed keyframe object': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'unsupportedProperty\' is not accessed when using a keyframe sequence': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'unsupportedProperty\' is not accessed when using a property-indexed keyframe object': - 'KeyframeEffectReadOnly is not defined', - }, - - 'test/web-platform-tests/web-animations/interfaces/KeyframeEffect/setKeyframes.html': { - 'Keyframes can be replaced with a keyframe sequence where greater shorthand precedes lesser shorthand': - 'effect.setKeyframes is not a function', - - 'Keyframes can be replaced with a keyframe sequence where lesser shorthand precedes greater shorthand': - 'effect.setKeyframes is not a function', - - 'Keyframes can be replaced with a keyframe sequence where longhand precedes shorthand': - 'effect.setKeyframes is not a function', - - 'Keyframes can be replaced with a keyframe sequence where shorthand precedes longhand': - 'effect.setKeyframes is not a function', - - 'Keyframes can be replaced with a keyframe sequence with a CSS variable reference': - 'effect.setKeyframes is not a function', - - 'Keyframes can be replaced with a keyframe sequence with a CSS variable reference in a shorthand property': - 'effect.setKeyframes is not a function', - - 'Keyframes can be replaced with a keyframe sequence with different composite values, but the same composite value for a given offset': - 'effect.setKeyframes is not a function', - - 'Keyframes can be replaced with a keyframe sequence with different easing values, but the same easing value for a given offset': - 'effect.setKeyframes is not a function', - - 'Keyframes can be replaced with a keyframe sequence with duplicate values for a given interior offset': - 'effect.setKeyframes is not a function', - - 'Keyframes can be replaced with a keyframe sequence with duplicate values for offsets 0 and 1': - 'effect.setKeyframes is not a function', - - 'Keyframes can be replaced with a keyframe sequence with repeated values at offset 1 with different easings': - 'effect.setKeyframes is not a function', - - 'Keyframes can be replaced with a one property keyframe sequence with all omitted offsets': - 'effect.setKeyframes is not a function', - - 'Keyframes can be replaced with a one property keyframe sequence with some omitted offsets': - 'effect.setKeyframes is not a function', - - 'Keyframes can be replaced with a one property one keyframe sequence': - 'effect.setKeyframes is not a function', - - 'Keyframes can be replaced with a one property one non-array value property-indexed keyframes specification': - 'effect.setKeyframes is not a function', - - 'Keyframes can be replaced with a one property one value property-indexed keyframes specification': - 'effect.setKeyframes is not a function', - - 'Keyframes can be replaced with a one property two keyframe sequence': - 'effect.setKeyframes is not a function', - - 'Keyframes can be replaced with a one property two keyframe sequence that needs to stringify its values': - 'effect.setKeyframes is not a function', - - 'Keyframes can be replaced with a one property two value property-indexed keyframes specification': - 'effect.setKeyframes is not a function', - - 'Keyframes can be replaced with a one property two value property-indexed keyframes specification that needs to stringify its values': - 'effect.setKeyframes is not a function', - - 'Keyframes can be replaced with a one property two value property-indexed keyframes specification where the first value is invalid': - 'effect.setKeyframes is not a function', - - 'Keyframes can be replaced with a one property two value property-indexed keyframes specification where the second value is invalid': - 'effect.setKeyframes is not a function', - - 'Keyframes can be replaced with a one shorthand property two keyframe sequence': - 'effect.setKeyframes is not a function', - - 'Keyframes can be replaced with a one shorthand property two value property-indexed keyframes specification': - 'effect.setKeyframes is not a function', - - 'Keyframes can be replaced with a property-indexed keyframes specification with a CSS variable reference': - 'effect.setKeyframes is not a function', - - 'Keyframes can be replaced with a property-indexed keyframes specification with a CSS variable reference in a shorthand property': - 'effect.setKeyframes is not a function', - - 'Keyframes can be replaced with a property-indexed keyframes specification with an invalid value': - 'effect.setKeyframes is not a function', - - 'Keyframes can be replaced with a single keyframe sequence with omitted offsets': - 'effect.setKeyframes is not a function', - - 'Keyframes can be replaced with a two property (a shorthand and one of its component longhands) two keyframe sequence': - 'effect.setKeyframes is not a function', - - 'Keyframes can be replaced with a two property (one shorthand and one of its longhand components) two value property-indexed keyframes specification': - 'effect.setKeyframes is not a function', - - 'Keyframes can be replaced with a two property four keyframe sequence': - 'effect.setKeyframes is not a function', - - 'Keyframes can be replaced with a two property keyframe sequence where one property is missing from the first keyframe': - 'effect.setKeyframes is not a function', - - 'Keyframes can be replaced with a two property keyframe sequence where one property is missing from the last keyframe': - 'effect.setKeyframes is not a function', - - 'Keyframes can be replaced with a two property keyframe sequence with some omitted offsets': - 'effect.setKeyframes is not a function', - - 'Keyframes can be replaced with a two property property-indexed keyframes specification with different numbers of values': - 'effect.setKeyframes is not a function', - - 'Keyframes can be replaced with a two property two keyframe sequence': - 'effect.setKeyframes is not a function', - - 'Keyframes can be replaced with a two property two value property-indexed keyframes specification': - 'effect.setKeyframes is not a function', - - 'Keyframes can be replaced with an empty keyframe': - 'effect.setKeyframes is not a function', - }, - - 'test/web-platform-tests/web-animations/interfaces/KeyframeEffect/setTarget.html': { - 'Test setting target from a valid target to another target': - 'assert_equals: Value of 1st element (currently not targeted) after changing the effect target expected "10px" but got "50px"', - - 'Test setting target from a valid target to null': - 'assert_equals: Value after clearing the target expected "10px" but got "50px"', - - 'Test setting target from null to a valid target': - 'assert_equals: Value at 50% progress after setting new target expected "50px" but got "10px"', - }, - - 'test/web-platform-tests/web-animations/timing-model/animation-effects/current-iteration.html': { - 'Test currentIteration during before and after phase when fill is none': - 'anim.effect.getComputedTiming is not a function', - - 'Test fractional iterations: iterations:3.5 iterationStart:0 duration:0 delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', - - 'Test fractional iterations: iterations:3.5 iterationStart:0 duration:100 delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', - - 'Test fractional iterations: iterations:3.5 iterationStart:0 duration:Infinity delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', - - 'Test fractional iterations: iterations:3.5 iterationStart:2.5 duration:0 delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', - - 'Test fractional iterations: iterations:3.5 iterationStart:2.5 duration:100 delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', - - 'Test fractional iterations: iterations:3.5 iterationStart:2.5 duration:Infinity delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', - - 'Test fractional iterations: iterations:3.5 iterationStart:3 duration:0 delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', - - 'Test fractional iterations: iterations:3.5 iterationStart:3 duration:100 delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', - - 'Test fractional iterations: iterations:3.5 iterationStart:3 duration:Infinity delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', - - 'Test infinity iterations: iterations:Infinity iterationStart:0 duration:0 delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', - - 'Test infinity iterations: iterations:Infinity iterationStart:0 duration:100 delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', - - 'Test infinity iterations: iterations:Infinity iterationStart:0 duration:Infinity delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', - - 'Test infinity iterations: iterations:Infinity iterationStart:2.5 duration:0 delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', - - 'Test infinity iterations: iterations:Infinity iterationStart:2.5 duration:100 delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', - - 'Test infinity iterations: iterations:Infinity iterationStart:2.5 duration:Infinity delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', - - 'Test infinity iterations: iterations:Infinity iterationStart:3 duration:0 delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', - - 'Test infinity iterations: iterations:Infinity iterationStart:3 duration:100 delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', - - 'Test infinity iterations: iterations:Infinity iterationStart:3 duration:Infinity delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', - - 'Test integer iterations: iterations:3 iterationStart:0 duration:0 delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', - - 'Test integer iterations: iterations:3 iterationStart:0 duration:100 delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', - - 'Test integer iterations: iterations:3 iterationStart:0 duration:Infinity delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', - - 'Test integer iterations: iterations:3 iterationStart:2.5 duration:0 delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', - - 'Test integer iterations: iterations:3 iterationStart:2.5 duration:100 delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', - - 'Test integer iterations: iterations:3 iterationStart:2.5 duration:Infinity delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', - - 'Test integer iterations: iterations:3 iterationStart:3 duration:0 delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', - - 'Test integer iterations: iterations:3 iterationStart:3 duration:100 delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', - - 'Test integer iterations: iterations:3 iterationStart:3 duration:Infinity delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', - - 'Test zero iterations: iterations:0 iterationStart:0 duration:0 delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', - - 'Test zero iterations: iterations:0 iterationStart:0 duration:100 delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', - - 'Test zero iterations: iterations:0 iterationStart:0 duration:Infinity delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', - - 'Test zero iterations: iterations:0 iterationStart:2.5 duration:0 delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', - - 'Test zero iterations: iterations:0 iterationStart:2.5 duration:100 delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', - - 'Test zero iterations: iterations:0 iterationStart:2.5 duration:Infinity delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', - - 'Test zero iterations: iterations:0 iterationStart:3 duration:0 delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', - - 'Test zero iterations: iterations:0 iterationStart:3 duration:100 delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', - - 'Test zero iterations: iterations:0 iterationStart:3 duration:Infinity delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', - }, - - 'test/web-platform-tests/web-animations/timing-model/animations/set-the-animation-start-time.html': { - 'Setting an unresolved start time an animation without an active timeline does not clear the current time': - 'Animation with null timeline is not supported', - - 'Setting an unresolved start time sets the hold time': - 'Value being assigned to Animation.startTime is not a finite floating-point value.', - - 'Setting the start time clears the hold time': - 'Value being assigned to Animation.startTime is not a finite floating-point value.', - - 'Setting the start time of an animation without an active timeline': - 'Animation with null timeline is not supported', - - 'Setting the start time resolves a pending pause task': - 'Value being assigned to Animation.startTime is not a finite floating-point value.', - - 'Setting the start time resolves a pending ready promise': - 'Value being assigned to Animation.startTime is not a finite floating-point value.', - - 'Setting the start time updates the finished state': - 'Value being assigned to Animation.startTime is not a finite floating-point value.', - }, - }, - }, - - { - configuration: { - target: 'web-animations-next', - withNativeFallback: false, - }, - failures: { - 'test/web-platform-tests/web-animations/interfaces/Animatable/animate-basic.html': { - 'Element.animate() creates an Animation object': - 'assert_equals: Returned object is an Animation expected "[object Animation]" but got "[object Object]"', - - 'Element.animate() does not accept property-indexed keyframes with an invalid easing value': - 'assert_throws: function "function () {\n div.animate(subtest.input, 2000);\n }" did not throw', - }, - - 'test/web-platform-tests/web-animations/interfaces/Animatable/animate-effect.html': { - 'Element.animate() accepts a double as an options argument': - 'assert_equals: expected "auto" but got "none"', - - 'Element.animate() accepts a keyframe sequence where greater shorthand precedes lesser shorthand': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a keyframe sequence where lesser shorthand precedes greater shorthand': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a keyframe sequence where longhand precedes shorthand': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a keyframe sequence where shorthand precedes longhand': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a keyframe sequence with a CSS variable reference': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a keyframe sequence with a CSS variable reference in a shorthand property': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a keyframe sequence with different composite values, but the same composite value for a given offset': - 'add compositing is not supported', - - 'Element.animate() accepts a keyframe sequence with different easing values, but the same easing value for a given offset': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a keyframe sequence with duplicate values for a given interior offset': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a keyframe sequence with duplicate values for offsets 0 and 1': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a keyframe sequence with repeated values at offset 1 with different easings': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a one property keyframe sequence with all omitted offsets': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a one property keyframe sequence with some omitted offsets': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a one property one keyframe sequence': - 'Partial keyframes are not supported', - - 'Element.animate() accepts a one property one non-array value property-indexed keyframes specification': - 'Partial keyframes are not supported', - - 'Element.animate() accepts a one property one value property-indexed keyframes specification': - 'Partial keyframes are not supported', - - 'Element.animate() accepts a one property two keyframe sequence': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a one property two keyframe sequence that needs to stringify its values': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a one property two value property-indexed keyframes specification': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a one property two value property-indexed keyframes specification that needs to stringify its values': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a one property two value property-indexed keyframes specification where the first value is invalid': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a one property two value property-indexed keyframes specification where the second value is invalid': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a one shorthand property two keyframe sequence': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a one shorthand property two value property-indexed keyframes specification': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a property-indexed keyframes specification with a CSS variable reference': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a property-indexed keyframes specification with a CSS variable reference in a shorthand property': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a property-indexed keyframes specification with an invalid value': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a single keyframe sequence with omitted offsets': - 'Partial keyframes are not supported', - - 'Element.animate() accepts a two property (a shorthand and one of its component longhands) two keyframe sequence': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a two property (one shorthand and one of its longhand components) two value property-indexed keyframes specification': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a two property four keyframe sequence': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a two property keyframe sequence where one property is missing from the first keyframe': - 'Partial keyframes are not supported', - - 'Element.animate() accepts a two property keyframe sequence where one property is missing from the last keyframe': - 'Partial keyframes are not supported', - - 'Element.animate() accepts a two property keyframe sequence with some omitted offsets': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a two property property-indexed keyframes specification with different numbers of values': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a two property two keyframe sequence': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts a two property two value property-indexed keyframes specification': - 'anim.effect.getKeyframes is not a function', - - 'Element.animate() accepts an absent options argument': - 'assert_equals: expected (string) "auto" but got (number) 0', - - 'Element.animate() creates an Animation object with a KeyframeEffect': - 'assert_equals: Returned Animation has a KeyframeEffect expected "[object KeyframeEffect]" but got "[object Object]"', - }, - - 'test/web-platform-tests/web-animations/interfaces/Animatable/animate-pseudo-element.html': { - 'CSSPseudoElement.animate() creates an Animation object': - 'document.getAnimations is not a function', - - 'CSSPseudoElement.animate() creates an Animation object targeting to the correct CSSPseudoElement object': - 'document.getAnimations is not a function', - }, - - 'test/web-platform-tests/web-animations/interfaces/Animation/cancel.html': { - 'Animated style is cleared after calling Animation.cancel()': - 'assert_not_equals: transform style is animated before cancelling got disallowed value "none"', - }, - - 'test/web-platform-tests/web-animations/interfaces/Animation/finish.html': { - 'Test exceptions when finishing infinite animation': - 'assert_throws: function "function () {\n animation.finish();\n }" did not throw', - - 'Test exceptions when finishing non-running animation': - 'assert_throws: function "function () {\n animation.finish();\n }" did not throw', - - 'Test finish() resolves finished promise synchronously with an animation without a target': - 'KeyframeEffectReadOnly is not defined', - - 'Test finish() while pause-pending with negative playbackRate': - 'assert_equals: The play state of a pause-pending animation should become "finished" after finish() is called expected "finished" but got "paused"', - - 'Test finish() while pause-pending with positive playbackRate': - 'assert_equals: The play state of a pause-pending animation should become "finished" after finish() is called expected "finished" but got "paused"', - - 'Test finish() while paused': - 'assert_equals: The play state of a paused animation should become "finished" after finish() is called expected "finished" but got "paused"', - - 'Test finish() while play-pending': - 'assert_approx_equals: The start time of a play-pending animation should be set after calling finish() expected NaN +/- 0.0005 but got 0', - - 'Test finishing of animation with a current time past the effect end': - 'animation.effect.getComputedTiming is not a function', - - 'Test normally finished animation resolves finished promise synchronously with an animation without a target': - 'KeyframeEffectReadOnly is not defined', - }, - - 'test/web-platform-tests/web-animations/interfaces/Animation/finished.html': { - 'Test finished promise changes for animation duration changes': - 'assert_equals: currentTime should be unchanged when duration shortened expected 50000 but got 25000', - - 'Test finished promise is not resolved once the animation falls out finished state even though the current finished promise is generated soon after animation state became finished': - 'assert_unreached: Animation.finished should not be resolved Reached unreachable code', - - 'Test finished promise is not resolved when the animation falls out finished state immediately': - 'assert_unreached: Animation.finished should not be resolved Reached unreachable code', - - 'cancelling an already-finished animation replaces the finished promise': - 'assert_not_equals: A new finished promise should be created when cancelling a finished animation got disallowed value object "[object Promise]"', - - 'cancelling an idle animation still replaces the finished promise': - 'assert_not_equals: A redundant call to cancel() should still generate a new finished promise got disallowed value object "[object Promise]"', - }, - - 'test/web-platform-tests/web-animations/interfaces/Animation/oncancel.html': { - 'oncancel event is fired when animation.cancel() is called.': - 'FLAKY_TEST_RESULT', - }, - - 'test/web-platform-tests/web-animations/interfaces/Animation/onfinish.html': { - 'onfinish event is fired when animation.finish() is called': - 'FLAKY_TEST_RESULT', - }, - - 'test/web-platform-tests/web-animations/interfaces/Animation/pause.html': { - 'pause() from idle': - 'assert_equals: initially pause-pending expected "pending" but got "paused"', - }, - - 'test/web-platform-tests/web-animations/interfaces/Animation/playbackRate.html': { - 'Test the effect of setting playbackRate while playing animation': - 'FLAKY_TEST_RESULT', - }, - - 'test/web-platform-tests/web-animations/interfaces/Animation/reverse.html': { - 'reverse() when playbackRate < 0 and currentTime < 0': - 'assert_equals: reverse() should start playing from the start of animation time if the playbackRate < 0 and the currentTime < 0 expected 0 but got -200000', - - 'reverse() when playbackRate < 0 and currentTime < 0 and the target effect end is positive infinity': - 'assert_equals: reverse() should start playing from the start of animation time if the playbackRate < 0 and the currentTime < 0 and the target effect is positive infinity expected 0 but got -200000', - - 'reverse() when playbackRate < 0 and currentTime > effect end': - 'assert_equals: reverse() should start playing from the start of animation time if the playbackRate < 0 and the currentTime > effect end expected 0 but got 200000', - - 'reverse() when playbackRate > 0 and currentTime < 0': - 'assert_equals: reverse() should start playing from the animation effect end if the playbackRate > 0 and the currentTime < 0 expected 100000 but got -200000', - - 'reverse() when playbackRate > 0 and currentTime > effect end': - 'assert_equals: reverse() should start playing from the animation effect end if the playbackRate > 0 and the currentTime > effect end expected 100000 but got 200000', - }, - - 'test/web-platform-tests/web-animations/interfaces/AnimationEffectTiming/delay.html': { - 'Test adding a positive delay to an animation without a backwards fill makes it no longer active': - 'anim.effect.getComputedTiming is not a function', - - 'Test finishing an animation using a large negative delay': - 'anim.effect.getComputedTiming is not a function', - - 'Test seeking an animation by setting a negative delay': - 'anim.effect.getComputedTiming is not a function', - - 'set delay -100': - 'anim.effect.getComputedTiming is not a function', - - 'set delay 100': - 'anim.effect.getComputedTiming is not a function', - }, - - 'test/web-platform-tests/web-animations/interfaces/AnimationEffectTiming/duration.html': { - 'set 100 string duration in animate using an options object': - 'assert_throws: function "function () {\n div.animate({ opacity: [ 0, 1 ] }, { duration: \'100\' });\n }" did not throw', - - 'set NaN duration in animate using a duration parameter': - 'assert_throws: function "function () {\n div.animate({ opacity: [ 0, 1 ] }, NaN);\n }" did not throw', - - 'set NaN duration in animate using an options object': - 'assert_throws: function "function () {\n div.animate({ opacity: [ 0, 1 ] }, { duration: NaN });\n }" did not throw', - - 'set abc string duration in animate using an options object': - 'assert_throws: function "function () {\n div.animate({ opacity: [ 0, 1 ] }, { duration: \'abc\' });\n }" did not throw', - - 'set auto duration in animate as object': - 'assert_equals: set duration \'auto\' expected (string) "auto" but got (number) 0', - - 'set duration 123.45': - 'anim.effect.getComputedTiming is not a function', - - 'set duration Infinity': - 'anim.effect.getComputedTiming is not a function', - - 'set duration auto': - 'anim.effect.getComputedTiming is not a function', - - 'set duration string 100': - 'assert_throws: function "function () {\n anim.effect.timing.duration = \'100\';\n }" did not throw', - }, - - 'test/web-platform-tests/web-animations/interfaces/AnimationEffectTiming/easing.html': { - 'Change the easing while the animation is running': - 'anim.effect.getComputedTiming is not a function', - - 'ease function': - 'animation.effect.getComputedTiming is not a function', + 'Effect values reflect changes to font-size from reparenting': + 'animation.ready is undefined', - 'ease-in function': - 'animation.effect.getComputedTiming is not a function', - - 'ease-in-out function': - 'animation.effect.getComputedTiming is not a function', - - 'ease-out function': - 'animation.effect.getComputedTiming is not a function', - - 'easing function which produces values greater than 1': - 'animation.effect.getComputedTiming is not a function', - - 'linear function': - 'animation.effect.getComputedTiming is not a function', - - 'steps(end) function': - 'animation.effect.getComputedTiming is not a function', - - 'steps(start) function': - 'animation.effect.getComputedTiming is not a function', - }, - - 'test/web-platform-tests/web-animations/interfaces/AnimationEffectTiming/endDelay.html': { - 'onfinish event is fired currentTime is after endTime': - 'FLAKY_TEST_RESULT', - - 'set endDelay -1000': - 'anim.effect.getComputedTiming is not a function', - - 'set endDelay 123.45': - 'anim.effect.getComputedTiming is not a function', - - 'set endDelay Infinity': - 'assert_throws: we can not assign Infinity to timing.endDelay function "function () {\n anim.effect.timing.endDelay = Infinity;\n }" did not throw', + 'Effect values reflect changes to font-size when computed style is not immediately flushed': + 'animation.ready is undefined', - 'set endDelay negative Infinity': - 'assert_throws: we can not assign negative Infinity to timing.endDelay function "function () {\n anim.effect.timing.endDelay = -Infinity;\n }" did not throw', + 'Effect values reflect changes to target element': + 'animation.effect is undefined', }, - 'test/web-platform-tests/web-animations/interfaces/AnimationEffectTiming/fill.html': { - 'set fill backwards': - 'anim.effect.getComputedTiming is not a function', - - 'set fill both': - 'anim.effect.getComputedTiming is not a function', + 'test/web-platform-tests/web-animations/interfaces/Animation/cancel.html': { + 'After cancelling an animation, it can still be re-used': + 'animation.ready is undefined', - 'set fill forwards': - 'anim.effect.getComputedTiming is not a function', + 'After cancelling an animation, it can still be seeked': + 'animation.effect is undefined', - 'set fill none': - 'anim.effect.getComputedTiming is not a function', + 'Animated style is cleared after calling Animation.cancel()': + 'animation.ready is undefined', }, - 'test/web-platform-tests/web-animations/interfaces/AnimationEffectTiming/getAnimations.html': { - 'when currentTime changed in duration:1000, delay: -500, endDelay: -500': - 'assert_equals: when currentTime 0 expected 0 but got 1', - - 'when currentTime changed in duration:1000, delay: 500, endDelay: -500': - 'assert_equals: set currentTime 1000 expected 0 but got 1', - - 'when duration is changed': - 'assert_equals: set duration 102000 expected (object) object "[object Object]" but got (undefined) undefined', - - 'when endDelay is changed': - 'assert_equals: set negative endDelay so as endTime is less than currentTime expected 0 but got 1', - - 'when iterations is changed': - 'assert_equals: set iterations 10 expected (object) object "[object Object]" but got (undefined) undefined', - }, + 'test/web-platform-tests/web-animations/interfaces/Animation/pause.html': { + 'pause() a running animation': + 'animation.ready is undefined', - 'test/web-platform-tests/web-animations/interfaces/AnimationEffectTiming/getComputedStyle.html': { - 'change currentTime when fill forwards and endDelay is positive': - 'assert_equals: set currentTime just a little before duration expected "0.0001" but got "0"', + 'pause() from idle': + 'animation.ready is undefined', - 'changed duration immediately updates its computed styles': - 'FLAKY_TEST_RESULT', + 'pause() from idle with a negative playbackRate': + 'animation.ready is undefined', - 'changed iterations immediately updates its computed styles': - 'FLAKY_TEST_RESULT', + 'pause() on a finished animation': + 'animation.ready is undefined', }, - 'test/web-platform-tests/web-animations/interfaces/AnimationEffectTiming/iterationStart.html': { - 'Test invalid iterationStart value': - 'assert_throws: function "function () {\n anim.effect.timing.iterationStart = -1;\n }" threw object "ReferenceError: timing is not defined" ("ReferenceError") expected object "[object Object]" ("TypeError")', - - 'Test that changing the iterationStart affects computed timing during the active phase': - 'anim.effect.getComputedTiming is not a function', - - 'Test that changing the iterationStart affects computed timing when backwards-filling': - 'anim.effect.getComputedTiming is not a function', - - 'Test that changing the iterationStart affects computed timing when forwards-filling': - 'anim.effect.getComputedTiming is not a function', + 'test/web-platform-tests/web-animations/interfaces/Animation/play.html': { + 'play() throws when seeking an infinite-duration animation played in reverse': + 'animation.ready is undefined', }, - 'test/web-platform-tests/web-animations/interfaces/AnimationEffectTiming/iterations.html': { - 'set iterations 2': - 'anim.effect.getComputedTiming is not a function', + 'test/web-platform-tests/web-animations/interfaces/Animation/startTime.html': { + 'startTime is resolved when running': + 'animation.ready is undefined', - 'set iterations Infinity': - 'anim.effect.getComputedTiming is not a function', - }, + 'startTime of a newly created (idle) animation is unresolved': + 'KeyframeEffect is not defined', - 'test/web-platform-tests/web-animations/interfaces/AnimationTimeline/document-timeline.html': { - 'document.timeline.currentTime liveness tests': - 'assert_true: document.timeline.currentTime increases between script blocks expected true got false', + 'startTime of a pause-pending animation is unresolved': + 'KeyframeEffect is not defined', - 'document.timeline.currentTime value tests': - 'assert_true: document.timeline.currentTime is positive expected true got false', + 'startTime of a play-pending animation is unresolved': + 'KeyframeEffect is not defined', }, - 'test/web-platform-tests/web-animations/interfaces/AnimationTimeline/idlharness.html': { - 'AnimationTimeline interface object length': - 'assert_own_property: self does not have own property "AnimationTimeline" expected property "AnimationTimeline" missing', - - 'AnimationTimeline interface object name': - 'assert_own_property: self does not have own property "AnimationTimeline" expected property "AnimationTimeline" missing', - - 'AnimationTimeline interface: attribute currentTime': - 'assert_own_property: self does not have own property "AnimationTimeline" expected property "AnimationTimeline" missing', + 'test/web-platform-tests/web-animations/timing-model/animation-effects/active-time.html': { + 'Active time in active phase and negative start delay is the local time minus the start delay': + 'anim.effect is undefined', - 'AnimationTimeline interface: document.timeline must inherit property "currentTime" with the proper type (0)': - 'assert_inherits: property "currentTime" found on object expected in prototype chain', + 'Active time in active phase and no start delay is the local time': + 'anim.effect is undefined', - 'AnimationTimeline interface: existence and properties of interface object': - 'assert_own_property: self does not have own property "AnimationTimeline" expected property "AnimationTimeline" missing', + 'Active time in active phase and positive start delay is the local time minus the start delay': + 'anim.effect is undefined', - 'AnimationTimeline interface: existence and properties of interface prototype object': - 'assert_own_property: self does not have own property "AnimationTimeline" expected property "AnimationTimeline" missing', + 'Active time in after phase with \'both\' fill is the active duration': + 'anim.effect is undefined', - 'AnimationTimeline interface: existence and properties of interface prototype object\'s "constructor" property': - 'assert_own_property: self does not have own property "AnimationTimeline" expected property "AnimationTimeline" missing', + 'Active time in after phase with backwards-only fill is unresolved': + 'anim.effect is undefined', - 'DocumentTimeline interface object length': - 'assert_own_property: self does not have own property "DocumentTimeline" expected property "DocumentTimeline" missing', + 'Active time in after phase with forwards fill and negative end delay greater in magnitude than the active duration is zero': + 'anim.effect is undefined', - 'DocumentTimeline interface object name': - 'assert_own_property: self does not have own property "DocumentTimeline" expected property "DocumentTimeline" missing', + 'Active time in after phase with forwards fill and negative end delay greater in magnitude than the sum of the active duration and start delay is zero': + 'anim.effect is undefined', - 'DocumentTimeline interface: existence and properties of interface object': - 'assert_own_property: self does not have own property "DocumentTimeline" expected property "DocumentTimeline" missing', + 'Active time in after phase with forwards fill and negative end delay is the active duration + end delay': + 'anim.effect is undefined', - 'DocumentTimeline interface: existence and properties of interface prototype object': - 'assert_own_property: self does not have own property "DocumentTimeline" expected property "DocumentTimeline" missing', + 'Active time in after phase with forwards fill and positive end delay is the active duration': + 'anim.effect is undefined', - 'DocumentTimeline interface: existence and properties of interface prototype object\'s "constructor" property': - 'assert_own_property: self does not have own property "DocumentTimeline" expected property "DocumentTimeline" missing', + 'Active time in after phase with forwards fill is the active duration': + 'anim.effect is undefined', - 'DocumentTimeline must be primary interface of document.timeline': - 'assert_own_property: self does not have own property "DocumentTimeline" expected property "DocumentTimeline" missing', + 'Active time in after phase with forwards fill, zero-duration, and infinite iteration count is the active duration': + 'anim.effect is undefined', - 'Stringification of document.timeline': - 'assert_equals: class string of document.timeline expected "[object DocumentTimeline]" but got "[object Object]"', - }, - - 'test/web-platform-tests/web-animations/interfaces/Document/getAnimations.html': { - 'Test document.getAnimations for non-animated content': - 'document.getAnimations is not a function', + 'Active time in after phase with no fill is unresolved': + 'anim.effect is undefined', - 'Test document.getAnimations for script-generated animations': - 'document.getAnimations is not a function', + 'Active time in before phase': + 'anim.effect is undefined', - 'Test document.getAnimations with null target': - 'KeyframeEffectReadOnly is not defined', - - 'Test the order of document.getAnimations with script generated animations': - 'document.getAnimations is not a function', + 'Active time when the local time is unresolved, is unresolved': + 'KeyframeEffect is not defined', }, - 'test/web-platform-tests/web-animations/interfaces/KeyframeEffect/constructor.html': { - 'Invalid KeyframeEffectReadOnly option by -Infinity': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target,\n { left: ["10px", "20px"] },\n stest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "[object Object]" ("TypeError")', - - 'Invalid KeyframeEffectReadOnly option by NaN': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target,\n { left: ["10px", "20px"] },\n stest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "[object Object]" ("TypeError")', - - 'Invalid KeyframeEffectReadOnly option by a NaN duration': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target,\n { left: ["10px", "20px"] },\n stest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "[object Object]" ("TypeError")', - - 'Invalid KeyframeEffectReadOnly option by a NaN iterations': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target,\n { left: ["10px", "20px"] },\n stest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "[object Object]" ("TypeError")', - - 'Invalid KeyframeEffectReadOnly option by a blank easing': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target,\n { left: ["10px", "20px"] },\n stest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "[object Object]" ("TypeError")', - - 'Invalid KeyframeEffectReadOnly option by a multi-value easing': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target,\n { left: ["10px", "20px"] },\n stest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "[object Object]" ("TypeError")', - - 'Invalid KeyframeEffectReadOnly option by a negative Infinity duration': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target,\n { left: ["10px", "20px"] },\n stest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "[object Object]" ("TypeError")', - - 'Invalid KeyframeEffectReadOnly option by a negative Infinity iterations': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target,\n { left: ["10px", "20px"] },\n stest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "[object Object]" ("TypeError")', - - 'Invalid KeyframeEffectReadOnly option by a negative duration': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target,\n { left: ["10px", "20px"] },\n stest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "[object Object]" ("TypeError")', - - 'Invalid KeyframeEffectReadOnly option by a negative iterations': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target,\n { left: ["10px", "20px"] },\n stest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "[object Object]" ("TypeError")', - - 'Invalid KeyframeEffectReadOnly option by a negative value': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target,\n { left: ["10px", "20px"] },\n stest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "[object Object]" ("TypeError")', - - 'Invalid KeyframeEffectReadOnly option by a string duration': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target,\n { left: ["10px", "20px"] },\n stest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "[object Object]" ("TypeError")', - - 'Invalid KeyframeEffectReadOnly option by a variable easing': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target,\n { left: ["10px", "20px"] },\n stest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "[object Object]" ("TypeError")', - - 'Invalid KeyframeEffectReadOnly option by an \'inherit\' easing': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target,\n { left: ["10px", "20px"] },\n stest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "[object Object]" ("TypeError")', - - 'Invalid KeyframeEffectReadOnly option by an \'initial\' easing': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target,\n { left: ["10px", "20px"] },\n stest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "[object Object]" ("TypeError")', - - 'Invalid KeyframeEffectReadOnly option by an unrecognized easing': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target,\n { left: ["10px", "20px"] },\n stest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "[object Object]" ("TypeError")', - - 'Invalid easing [a blank easing] in keyframe sequence should be thrown': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target, subtest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "TypeError" ("TypeError")', - - 'Invalid easing [a multi-value easing] in keyframe sequence should be thrown': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target, subtest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "TypeError" ("TypeError")', - - 'Invalid easing [a variable easing] in keyframe sequence should be thrown': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target, subtest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "TypeError" ("TypeError")', - - 'Invalid easing [an \'inherit\' easing] in keyframe sequence should be thrown': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target, subtest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "TypeError" ("TypeError")', - - 'Invalid easing [an \'initial\' easing] in keyframe sequence should be thrown': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target, subtest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "TypeError" ("TypeError")', - - 'Invalid easing [an unrecognized easing] in keyframe sequence should be thrown': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target, subtest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "TypeError" ("TypeError")', - - 'KeyframeEffect constructor creates an AnimationEffectTiming timing object': - 'assert_equals: expected "[object KeyframeEffect]" but got "[object Object]"', - - 'KeyframeEffectReadOnly constructor throws with a keyframe sequence with an invalid easing value': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target, subtest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "[object Object]" ("TypeError")', - - 'KeyframeEffectReadOnly constructor throws with keyframes not loosely sorted by offset': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target, subtest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "[object Object]" ("TypeError")', - - 'KeyframeEffectReadOnly constructor throws with keyframes with an invalid composite value': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target, subtest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "[object Object]" ("TypeError")', - - 'KeyframeEffectReadOnly constructor throws with keyframes with an out-of-bounded negative offset': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target, subtest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "[object Object]" ("TypeError")', - - 'KeyframeEffectReadOnly constructor throws with keyframes with an out-of-bounded positive offset': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target, subtest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "[object Object]" ("TypeError")', - - 'KeyframeEffectReadOnly constructor throws with property-indexed keyframes with an invalid easing value': - 'assert_throws: function "function () {\n new KeyframeEffectReadOnly(target, subtest.input);\n }" threw object "ReferenceError: KeyframeEffectReadOnly is not defined" ("ReferenceError") expected object "[object Object]" ("TypeError")', - - 'a KeyframeEffectReadOnly can be constructed with a keyframe sequence where greater shorthand precedes lesser shorthand': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a keyframe sequence where lesser shorthand precedes greater shorthand': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a keyframe sequence where longhand precedes shorthand': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a keyframe sequence where shorthand precedes longhand': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a keyframe sequence with a CSS variable reference': - 'KeyframeEffectReadOnly is not defined', + 'test/web-platform-tests/web-animations/timing-model/animation-effects/simple-iteration-progress.html': { + 'Test end delay: duration:100 delay:1 fill:both endDelay:-100': + 'effect is undefined', - 'a KeyframeEffectReadOnly can be constructed with a keyframe sequence with a CSS variable reference in a shorthand property': - 'KeyframeEffectReadOnly is not defined', + 'Test end delay: duration:100 delay:1 fill:both endDelay:-200': + 'effect is undefined', - 'a KeyframeEffectReadOnly can be constructed with a keyframe sequence with different composite values, but the same composite value for a given offset': - 'KeyframeEffectReadOnly is not defined', + 'Test end delay: duration:100 delay:1 fill:both endDelay:-50': + 'effect is undefined', - 'a KeyframeEffectReadOnly can be constructed with a keyframe sequence with different easing values, but the same easing value for a given offset': - 'KeyframeEffectReadOnly is not defined', + 'Test end delay: duration:100 delay:1 fill:both endDelay:50': + 'effect is undefined', - 'a KeyframeEffectReadOnly can be constructed with a keyframe sequence with duplicate values for a given interior offset': - 'KeyframeEffectReadOnly is not defined', + 'Test end delay: iterationStart:0.5 duration:100 delay:1 fill:both endDelay:-100': + 'effect is undefined', - 'a KeyframeEffectReadOnly can be constructed with a keyframe sequence with duplicate values for offsets 0 and 1': - 'KeyframeEffectReadOnly is not defined', + 'Test end delay: iterationStart:0.5 duration:100 delay:1 fill:both endDelay:-50': + 'effect is undefined', - 'a KeyframeEffectReadOnly can be constructed with a keyframe sequence with repeated values at offset 1 with different easings': - 'KeyframeEffectReadOnly is not defined', + 'Test end delay: iterationStart:0.5 duration:100 delay:1 fill:both endDelay:50': + 'effect is undefined', - 'a KeyframeEffectReadOnly can be constructed with a one property keyframe sequence with all omitted offsets': - 'KeyframeEffectReadOnly is not defined', + 'Test end delay: iterations:1 iterationStart:2 duration:100 delay:1 fill:both endDelay:-100': + 'effect is undefined', - 'a KeyframeEffectReadOnly can be constructed with a one property keyframe sequence with some omitted offsets': - 'KeyframeEffectReadOnly is not defined', + 'Test end delay: iterations:1 iterationStart:2 duration:100 delay:1 fill:both endDelay:-50': + 'effect is undefined', - 'a KeyframeEffectReadOnly can be constructed with a one property one keyframe sequence': - 'KeyframeEffectReadOnly is not defined', + 'Test end delay: iterations:2 duration:100 delay:1 fill:both endDelay:-100': + 'effect is undefined', - 'a KeyframeEffectReadOnly can be constructed with a one property one non-array value property-indexed keyframes specification': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a one property one value property-indexed keyframes specification': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a one property two keyframe sequence': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a one property two keyframe sequence that needs to stringify its values': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a one property two value property-indexed keyframes specification': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a one property two value property-indexed keyframes specification that needs to stringify its values': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a one property two value property-indexed keyframes specification where the first value is invalid': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a one property two value property-indexed keyframes specification where the second value is invalid': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a one shorthand property two keyframe sequence': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a one shorthand property two value property-indexed keyframes specification': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a property-indexed keyframes specification with a CSS variable reference': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a property-indexed keyframes specification with a CSS variable reference in a shorthand property': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a property-indexed keyframes specification with an invalid value': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a single keyframe sequence with omitted offsets': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a two property (a shorthand and one of its component longhands) two keyframe sequence': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a two property (one shorthand and one of its longhand components) two value property-indexed keyframes specification': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a two property four keyframe sequence': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a two property keyframe sequence where one property is missing from the first keyframe': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a two property keyframe sequence where one property is missing from the last keyframe': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a two property keyframe sequence with some omitted offsets': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a two property property-indexed keyframes specification with different numbers of values': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a two property two keyframe sequence': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with a two property two value property-indexed keyframes specification': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly can be constructed with no frames': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed by +Infinity': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed by a double value': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed by a forwards fill': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed by a normal KeyframeEffectOptions object': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed by an Infinity duration': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed by an Infinity iterations': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed by an auto duration': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed by an auto fill': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed by an empty KeyframeEffectOptions object': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed with a keyframe sequence where greater shorthand precedes lesser shorthand roundtrips': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed with a keyframe sequence where lesser shorthand precedes greater shorthand roundtrips': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed with a keyframe sequence where longhand precedes shorthand roundtrips': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed with a keyframe sequence where shorthand precedes longhand roundtrips': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed with a keyframe sequence with a CSS variable reference in a shorthand property roundtrips': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed with a keyframe sequence with a CSS variable reference roundtrips': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed with a keyframe sequence with different composite values, but the same composite value for a given offset roundtrips': - 'KeyframeEffectReadOnly is not defined', - - 'a KeyframeEffectReadOnly constructed with a keyframe sequence with different easing values, but the same easing value for a given offset roundtrips': - 'KeyframeEffectReadOnly is not defined', + 'Test fractional iterations: iterations:3.5 iterationStart:0 duration:0 delay:1 fill:both': + 'effect is undefined', - 'a KeyframeEffectReadOnly constructed with a keyframe sequence with duplicate values for a given interior offset roundtrips': - 'KeyframeEffectReadOnly is not defined', + 'Test fractional iterations: iterations:3.5 iterationStart:0 duration:100 delay:1 fill:both': + 'effect is undefined', - 'a KeyframeEffectReadOnly constructed with a keyframe sequence with duplicate values for offsets 0 and 1 roundtrips': - 'KeyframeEffectReadOnly is not defined', + 'Test fractional iterations: iterations:3.5 iterationStart:0 duration:Infinity delay:1 fill:both': + 'effect is undefined', - 'a KeyframeEffectReadOnly constructed with a keyframe sequence with repeated values at offset 1 with different easings roundtrips': - 'KeyframeEffectReadOnly is not defined', + 'Test fractional iterations: iterations:3.5 iterationStart:2.5 duration:0 delay:1 fill:both': + 'effect is undefined', - 'a KeyframeEffectReadOnly constructed with a one property keyframe sequence with all omitted offsets roundtrips': - 'KeyframeEffectReadOnly is not defined', + 'Test fractional iterations: iterations:3.5 iterationStart:2.5 duration:100 delay:1 fill:both': + 'effect is undefined', - 'a KeyframeEffectReadOnly constructed with a one property keyframe sequence with some omitted offsets roundtrips': - 'KeyframeEffectReadOnly is not defined', + 'Test fractional iterations: iterations:3.5 iterationStart:2.5 duration:Infinity delay:1 fill:both': + 'effect is undefined', - 'a KeyframeEffectReadOnly constructed with a one property one keyframe sequence roundtrips': - 'KeyframeEffectReadOnly is not defined', + 'Test fractional iterations: iterations:3.5 iterationStart:3 duration:0 delay:1 fill:both': + 'effect is undefined', - 'a KeyframeEffectReadOnly constructed with a one property one non-array value property-indexed keyframes specification roundtrips': - 'KeyframeEffectReadOnly is not defined', + 'Test fractional iterations: iterations:3.5 iterationStart:3 duration:100 delay:1 fill:both': + 'effect is undefined', - 'a KeyframeEffectReadOnly constructed with a one property one value property-indexed keyframes specification roundtrips': - 'KeyframeEffectReadOnly is not defined', + 'Test fractional iterations: iterations:3.5 iterationStart:3 duration:Infinity delay:1 fill:both': + 'effect is undefined', - 'a KeyframeEffectReadOnly constructed with a one property two keyframe sequence roundtrips': - 'KeyframeEffectReadOnly is not defined', + 'Test infinity iterations: iterations:Infinity iterationStart:0 duration:0 delay:1 fill:both': + 'effect is undefined', - 'a KeyframeEffectReadOnly constructed with a one property two keyframe sequence that needs to stringify its values roundtrips': - 'KeyframeEffectReadOnly is not defined', + 'Test infinity iterations: iterations:Infinity iterationStart:0 duration:100 delay:1 fill:both': + 'effect is undefined', - 'a KeyframeEffectReadOnly constructed with a one property two value property-indexed keyframes specification roundtrips': - 'KeyframeEffectReadOnly is not defined', + 'Test infinity iterations: iterations:Infinity iterationStart:0 duration:Infinity delay:1 fill:both': + 'effect is undefined', - 'a KeyframeEffectReadOnly constructed with a one property two value property-indexed keyframes specification that needs to stringify its values roundtrips': - 'KeyframeEffectReadOnly is not defined', + 'Test infinity iterations: iterations:Infinity iterationStart:2.5 duration:0 delay:1 fill:both': + 'effect is undefined', - 'a KeyframeEffectReadOnly constructed with a one property two value property-indexed keyframes specification where the first value is invalid roundtrips': - 'KeyframeEffectReadOnly is not defined', + 'Test infinity iterations: iterations:Infinity iterationStart:2.5 duration:100 delay:1 fill:both': + 'effect is undefined', - 'a KeyframeEffectReadOnly constructed with a one property two value property-indexed keyframes specification where the second value is invalid roundtrips': - 'KeyframeEffectReadOnly is not defined', + 'Test infinity iterations: iterations:Infinity iterationStart:2.5 duration:Infinity delay:1 fill:both': + 'effect is undefined', - 'a KeyframeEffectReadOnly constructed with a one shorthand property two keyframe sequence roundtrips': - 'KeyframeEffectReadOnly is not defined', + 'Test infinity iterations: iterations:Infinity iterationStart:3 duration:0 delay:1 fill:both': + 'effect is undefined', - 'a KeyframeEffectReadOnly constructed with a one shorthand property two value property-indexed keyframes specification roundtrips': - 'KeyframeEffectReadOnly is not defined', + 'Test infinity iterations: iterations:Infinity iterationStart:3 duration:100 delay:1 fill:both': + 'effect is undefined', - 'a KeyframeEffectReadOnly constructed with a property-indexed keyframes specification with a CSS variable reference in a shorthand property roundtrips': - 'KeyframeEffectReadOnly is not defined', + 'Test infinity iterations: iterations:Infinity iterationStart:3 duration:Infinity delay:1 fill:both': + 'effect is undefined', - 'a KeyframeEffectReadOnly constructed with a property-indexed keyframes specification with a CSS variable reference roundtrips': - 'KeyframeEffectReadOnly is not defined', + 'Test integer iterations: iterations:3 iterationStart:0 duration:0 delay:1 fill:both': + 'effect is undefined', - 'a KeyframeEffectReadOnly constructed with a property-indexed keyframes specification with an invalid value roundtrips': - 'KeyframeEffectReadOnly is not defined', + 'Test integer iterations: iterations:3 iterationStart:0 duration:100 delay:1 fill:both': + 'effect is undefined', - 'a KeyframeEffectReadOnly constructed with a single keyframe sequence with omitted offsets roundtrips': - 'KeyframeEffectReadOnly is not defined', + 'Test integer iterations: iterations:3 iterationStart:0 duration:Infinity delay:1 fill:both': + 'effect is undefined', - 'a KeyframeEffectReadOnly constructed with a two property (a shorthand and one of its component longhands) two keyframe sequence roundtrips': - 'KeyframeEffectReadOnly is not defined', + 'Test integer iterations: iterations:3 iterationStart:2.5 duration:0 delay:1 fill:both': + 'effect is undefined', - 'a KeyframeEffectReadOnly constructed with a two property (one shorthand and one of its longhand components) two value property-indexed keyframes specification roundtrips': - 'KeyframeEffectReadOnly is not defined', + 'Test integer iterations: iterations:3 iterationStart:2.5 duration:100 delay:1 fill:both': + 'effect is undefined', - 'a KeyframeEffectReadOnly constructed with a two property four keyframe sequence roundtrips': - 'KeyframeEffectReadOnly is not defined', + 'Test integer iterations: iterations:3 iterationStart:2.5 duration:Infinity delay:1 fill:both': + 'effect is undefined', - 'a KeyframeEffectReadOnly constructed with a two property keyframe sequence where one property is missing from the first keyframe roundtrips': - 'KeyframeEffectReadOnly is not defined', + 'Test integer iterations: iterations:3 iterationStart:3 duration:0 delay:1 fill:both': + 'effect is undefined', - 'a KeyframeEffectReadOnly constructed with a two property keyframe sequence where one property is missing from the last keyframe roundtrips': - 'KeyframeEffectReadOnly is not defined', + 'Test integer iterations: iterations:3 iterationStart:3 duration:100 delay:1 fill:both': + 'effect is undefined', - 'a KeyframeEffectReadOnly constructed with a two property keyframe sequence with some omitted offsets roundtrips': - 'KeyframeEffectReadOnly is not defined', + 'Test integer iterations: iterations:3 iterationStart:3 duration:Infinity delay:1 fill:both': + 'effect is undefined', - 'a KeyframeEffectReadOnly constructed with a two property property-indexed keyframes specification with different numbers of values roundtrips': - 'KeyframeEffectReadOnly is not defined', + 'Test negative playback rate: duration:0 delay:1 fill:both playbackRate:-1': + 'effect is undefined', - 'a KeyframeEffectReadOnly constructed with a two property two keyframe sequence roundtrips': - 'KeyframeEffectReadOnly is not defined', + 'Test negative playback rate: duration:0 iterations:0 delay:1 fill:both playbackRate:-1': + 'effect is undefined', - 'a KeyframeEffectReadOnly constructed with a two property two value property-indexed keyframes specification roundtrips': - 'KeyframeEffectReadOnly is not defined', + 'Test negative playback rate: duration:1 delay:1 fill:both playbackRate:-1': + 'effect is undefined', - 'a KeyframeEffectReadOnly constructed with null target': - 'KeyframeEffectReadOnly is not defined', + 'Test zero iterations: iterations:0 iterationStart:0 duration:0 delay:1 fill:both': + 'effect is undefined', - 'a KeyframeEffectReadOnly constructed without any KeyframeEffectOptions object': - 'KeyframeEffectReadOnly is not defined', + 'Test zero iterations: iterations:0 iterationStart:0 duration:100 delay:1 fill:both': + 'effect is undefined', - 'composite values are parsed correctly when passed to the KeyframeEffectReadOnly constructor in KeyframeTimingOptions': - 'KeyframeEffectReadOnly is not defined', + 'Test zero iterations: iterations:0 iterationStart:0 duration:Infinity delay:1 fill:both': + 'effect is undefined', - 'composite values are parsed correctly when passed to the KeyframeEffectReadOnly constructor in property-indexed keyframes': - 'KeyframeEffectReadOnly is not defined', + 'Test zero iterations: iterations:0 iterationStart:2.5 duration:0 delay:1 fill:both': + 'effect is undefined', - 'composite values are parsed correctly when passed to the KeyframeEffectReadOnly constructor in regular keyframes': - 'KeyframeEffectReadOnly is not defined', + 'Test zero iterations: iterations:0 iterationStart:2.5 duration:100 delay:1 fill:both': + 'effect is undefined', - 'easing values are parsed correctly when passed to the KeyframeEffectReadOnly constructor in KeyframeTimingOptions': - 'KeyframeEffectReadOnly is not defined', + 'Test zero iterations: iterations:0 iterationStart:2.5 duration:Infinity delay:1 fill:both': + 'effect is undefined', - 'easing values are parsed correctly when passed to the KeyframeEffectReadOnly constructor in a property-indexed keyframe': - 'KeyframeEffectReadOnly is not defined', + 'Test zero iterations: iterations:0 iterationStart:3 duration:0 delay:1 fill:both': + 'effect is undefined', - 'easing values are parsed correctly when passed to the KeyframeEffectReadOnly constructor in regular keyframes': - 'KeyframeEffectReadOnly is not defined', + 'Test zero iterations: iterations:0 iterationStart:3 duration:100 delay:1 fill:both': + 'effect is undefined', - 'the KeyframeEffectReadOnly constructor reads keyframe properties in the expected order': - 'KeyframeEffectReadOnly is not defined', + 'Test zero iterations: iterations:0 iterationStart:3 duration:Infinity delay:1 fill:both': + 'effect is undefined', }, + }, + }, + { + configuration: { + target: 'web-animations', + withNativeFallback: false, + }, + failures: { + 'test/web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-context.html': { + 'Effect values reflect changes to font-size from reparenting': + 'animation.ready is undefined', - 'test/web-platform-tests/web-animations/interfaces/KeyframeEffect/effect-easing-steps.html': { - 'Test bounds point of step(4, start) easing with iterationStart 0.75 and delay': - 'animation.effect.getComputedTiming is not a function', - - 'Test bounds point of step-end easing with iterationStart and delay': - 'animation.effect.getComputedTiming is not a function', - - 'Test bounds point of step-end easing with iterationStart not at a transition point': - 'animation.effect.getComputedTiming is not a function', - - 'Test bounds point of step-start easing': - 'animation.effect.getComputedTiming is not a function', - - 'Test bounds point of step-start easing in keyframe': - 'animation.effect.getComputedTiming is not a function', - - 'Test bounds point of step-start easing with alternate direction': - 'animation.effect.getComputedTiming is not a function', - - 'Test bounds point of step-start easing with alternate-reverse direction': - 'animation.effect.getComputedTiming is not a function', - - 'Test bounds point of step-start easing with compositor': - 'animation.effect.getComputedTiming is not a function', - - 'Test bounds point of step-start easing with iterationStart and delay': - 'animation.effect.getComputedTiming is not a function', - - 'Test bounds point of step-start easing with iterationStart and reverse direction': - 'animation.effect.getComputedTiming is not a function', - - 'Test bounds point of step-start easing with iterationStart not at a transition point': - 'animation.effect.getComputedTiming is not a function', + 'Effect values reflect changes to font-size when computed style is not immediately flushed': + 'animation.ready is undefined', - 'Test bounds point of step-start easing with reverse direction': - 'animation.effect.getComputedTiming is not a function', + 'Effect values reflect changes to target element': + 'animation.effect is undefined', }, - 'test/web-platform-tests/web-animations/interfaces/KeyframeEffect/effect-easing.html': { - 'effect easing produces negative values 1 with keyframe easing cubic-bezier(0, 0, 0, 0)': - 'assert_approx_equals: The left of the animation should be approximately -29.501119758965654 at 250ms expected -29.501119758965654 +/- 0.01 but got 0', + 'test/web-platform-tests/web-animations/interfaces/Animation/cancel.html': { + 'After cancelling an animation, it can still be re-used': + 'animation.ready is undefined', - 'effect easing produces values greater than 1 with keyframe easing cubic-bezier(1, 1, 1, 1)': - 'assert_approx_equals: The left of the animation should be approximately 102.40666638411385 at 250ms expected 102.40666638411385 +/- 0.01 but got 100', + 'After cancelling an animation, it can still be seeked': + 'animation.effect is undefined', - 'effect easing which produces values greater than 1 and the tangent on the upper boundary is infinity with keyframe easing producing values greater than 1': - 'assert_approx_equals: The left of the animation should be approximately 100 at 240ms expected 100 +/- 0.01 but got 99.5333', + 'Animated style is cleared after calling Animation.cancel()': + 'animation.ready is undefined', }, - 'test/web-platform-tests/web-animations/interfaces/KeyframeEffect/getComputedTiming.html': { - 'getComputedTiming().activeDuration for a non-zero duration and default iteration count': - 'KeyframeEffectReadOnly is not defined', - - 'getComputedTiming().activeDuration for a non-zero duration and fractional iteration count': - 'KeyframeEffectReadOnly is not defined', - - 'getComputedTiming().activeDuration for a non-zero duration and integral iteration count': - 'KeyframeEffectReadOnly is not defined', - - 'getComputedTiming().activeDuration for a zero duration and default iteration count': - 'KeyframeEffectReadOnly is not defined', - - 'getComputedTiming().activeDuration for a zero duration and fractional iteration count': - 'KeyframeEffectReadOnly is not defined', - - 'getComputedTiming().activeDuration for a zero duration and infinite iteration count': - 'KeyframeEffectReadOnly is not defined', - - 'getComputedTiming().activeDuration for a zero duration and zero iteration count': - 'KeyframeEffectReadOnly is not defined', - - 'getComputedTiming().activeDuration for an empty KeyframeEffectOptions object': - 'KeyframeEffectReadOnly is not defined', - - 'getComputedTiming().activeDuration for an infinite duration and default iteration count': - 'KeyframeEffectReadOnly is not defined', - - 'getComputedTiming().activeDuration for an infinite duration and fractional iteration count': - 'KeyframeEffectReadOnly is not defined', - - 'getComputedTiming().activeDuration for an infinite duration and infinite iteration count': - 'KeyframeEffectReadOnly is not defined', - - 'getComputedTiming().activeDuration for an infinite duration and zero iteration count': - 'KeyframeEffectReadOnly is not defined', - - 'getComputedTiming().activeDuration for an non-zero duration and infinite iteration count': - 'KeyframeEffectReadOnly is not defined', - - 'getComputedTiming().activeDuration for an non-zero duration and zero iteration count': - 'KeyframeEffectReadOnly is not defined', - - 'getComputedTiming().endTime for a non-zero duration and default iteration count': - 'KeyframeEffectReadOnly is not defined', - - 'getComputedTiming().endTime for a non-zero duration and non-default iteration count': - 'KeyframeEffectReadOnly is not defined', - - 'getComputedTiming().endTime for a non-zero duration and non-zero delay': - 'KeyframeEffectReadOnly is not defined', - - 'getComputedTiming().endTime for a non-zero duration, non-zero delay and non-default iteration': - 'KeyframeEffectReadOnly is not defined', - - 'getComputedTiming().endTime for a zero duration and negative delay': - 'KeyframeEffectReadOnly is not defined', - - 'getComputedTiming().endTime for an empty KeyframeEffectOptions object': - 'KeyframeEffectReadOnly is not defined', - - 'getComputedTiming().endTime for an infinite duration': - 'KeyframeEffectReadOnly is not defined', - - 'getComputedTiming().endTime for an infinite duration and delay': - 'KeyframeEffectReadOnly is not defined', - - 'getComputedTiming().endTime for an infinite duration and negative delay': - 'KeyframeEffectReadOnly is not defined', - - 'getComputedTiming().endTime for an infinite iteration count': - 'KeyframeEffectReadOnly is not defined', - - 'getComputedTiming().endTime for an non-zero duration and negative delay': - 'KeyframeEffectReadOnly is not defined', - - 'getComputedTiming().endTime for an non-zero duration and negative delay greater than active duration': - 'KeyframeEffectReadOnly is not defined', - - 'values of getComputedTiming() when a KeyframeEffectReadOnly is constructed by +Infinity': - 'KeyframeEffectReadOnly is not defined', - - 'values of getComputedTiming() when a KeyframeEffectReadOnly is constructed by a double value': - 'KeyframeEffectReadOnly is not defined', - - 'values of getComputedTiming() when a KeyframeEffectReadOnly is constructed by a forwards fill': - 'KeyframeEffectReadOnly is not defined', - - 'values of getComputedTiming() when a KeyframeEffectReadOnly is constructed by a normal KeyframeEffectOptions object': - 'KeyframeEffectReadOnly is not defined', - - 'values of getComputedTiming() when a KeyframeEffectReadOnly is constructed by an Infinity duration': - 'KeyframeEffectReadOnly is not defined', - - 'values of getComputedTiming() when a KeyframeEffectReadOnly is constructed by an Infinity iterations': - 'KeyframeEffectReadOnly is not defined', - - 'values of getComputedTiming() when a KeyframeEffectReadOnly is constructed by an auto duration': - 'KeyframeEffectReadOnly is not defined', + 'test/web-platform-tests/web-animations/interfaces/Animation/pause.html': { + 'pause() a running animation': + 'animation.ready is undefined', - 'values of getComputedTiming() when a KeyframeEffectReadOnly is constructed by an auto fill': - 'KeyframeEffectReadOnly is not defined', + 'pause() from idle': + 'assert_true: initially pause-pending expected true got undefined', - 'values of getComputedTiming() when a KeyframeEffectReadOnly is constructed by an empty KeyframeEffectOptions object': - 'KeyframeEffectReadOnly is not defined', + 'pause() from idle with a negative playbackRate': + 'animation.ready is undefined', - 'values of getComputedTiming() when a KeyframeEffectReadOnly is constructed without any KeyframeEffectOptions object': - 'KeyframeEffectReadOnly is not defined', + 'pause() on a finished animation': + 'animation.ready is undefined', }, - 'test/web-platform-tests/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument.html': { - 'non-animatable property \'animation\' is not accessed when using a keyframe sequence': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'animation\' is not accessed when using a property-indexed keyframe object': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'animationDelay\' is not accessed when using a keyframe sequence': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'animationDelay\' is not accessed when using a property-indexed keyframe object': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'animationDirection\' is not accessed when using a keyframe sequence': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'animationDirection\' is not accessed when using a property-indexed keyframe object': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'animationDuration\' is not accessed when using a keyframe sequence': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'animationDuration\' is not accessed when using a property-indexed keyframe object': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'animationFillMode\' is not accessed when using a keyframe sequence': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'animationFillMode\' is not accessed when using a property-indexed keyframe object': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'animationIterationCount\' is not accessed when using a keyframe sequence': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'animationIterationCount\' is not accessed when using a property-indexed keyframe object': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'animationName\' is not accessed when using a keyframe sequence': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'animationName\' is not accessed when using a property-indexed keyframe object': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'animationPlayState\' is not accessed when using a keyframe sequence': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'animationPlayState\' is not accessed when using a property-indexed keyframe object': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'animationTimingFunction\' is not accessed when using a keyframe sequence': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'animationTimingFunction\' is not accessed when using a property-indexed keyframe object': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'display\' is not accessed when using a keyframe sequence': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'display\' is not accessed when using a property-indexed keyframe object': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'transition\' is not accessed when using a keyframe sequence': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'transition\' is not accessed when using a property-indexed keyframe object': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'transitionDelay\' is not accessed when using a keyframe sequence': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'transitionDelay\' is not accessed when using a property-indexed keyframe object': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'transitionDuration\' is not accessed when using a keyframe sequence': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'transitionDuration\' is not accessed when using a property-indexed keyframe object': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'transitionProperty\' is not accessed when using a keyframe sequence': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'transitionProperty\' is not accessed when using a property-indexed keyframe object': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'transitionTimingFunction\' is not accessed when using a keyframe sequence': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'transitionTimingFunction\' is not accessed when using a property-indexed keyframe object': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'unsupportedProperty\' is not accessed when using a keyframe sequence': - 'KeyframeEffectReadOnly is not defined', - - 'non-animatable property \'unsupportedProperty\' is not accessed when using a property-indexed keyframe object': - 'KeyframeEffectReadOnly is not defined', + 'test/web-platform-tests/web-animations/interfaces/Animation/play.html': { + 'play() throws when seeking an infinite-duration animation played in reverse': + 'animation.ready is undefined', }, - 'test/web-platform-tests/web-animations/interfaces/KeyframeEffect/setKeyframes.html': { - 'Keyframes can be replaced with a keyframe sequence where greater shorthand precedes lesser shorthand': - 'effect.setKeyframes is not a function', - - 'Keyframes can be replaced with a keyframe sequence where lesser shorthand precedes greater shorthand': - 'effect.setKeyframes is not a function', - - 'Keyframes can be replaced with a keyframe sequence where longhand precedes shorthand': - 'effect.setKeyframes is not a function', - - 'Keyframes can be replaced with a keyframe sequence where shorthand precedes longhand': - 'effect.setKeyframes is not a function', - - 'Keyframes can be replaced with a keyframe sequence with a CSS variable reference': - 'effect.setKeyframes is not a function', - - 'Keyframes can be replaced with a keyframe sequence with a CSS variable reference in a shorthand property': - 'effect.setKeyframes is not a function', - - 'Keyframes can be replaced with a keyframe sequence with different composite values, but the same composite value for a given offset': - 'effect.setKeyframes is not a function', - - 'Keyframes can be replaced with a keyframe sequence with different easing values, but the same easing value for a given offset': - 'effect.setKeyframes is not a function', - - 'Keyframes can be replaced with a keyframe sequence with duplicate values for a given interior offset': - 'effect.setKeyframes is not a function', - - 'Keyframes can be replaced with a keyframe sequence with duplicate values for offsets 0 and 1': - 'effect.setKeyframes is not a function', - - 'Keyframes can be replaced with a keyframe sequence with repeated values at offset 1 with different easings': - 'effect.setKeyframes is not a function', - - 'Keyframes can be replaced with a one property keyframe sequence with all omitted offsets': - 'effect.setKeyframes is not a function', - - 'Keyframes can be replaced with a one property keyframe sequence with some omitted offsets': - 'effect.setKeyframes is not a function', - - 'Keyframes can be replaced with a one property one keyframe sequence': - 'effect.setKeyframes is not a function', + 'test/web-platform-tests/web-animations/interfaces/Animation/startTime.html': { + 'startTime is resolved when running': + 'animation.ready is undefined', - 'Keyframes can be replaced with a one property one non-array value property-indexed keyframes specification': - 'effect.setKeyframes is not a function', + 'startTime of a newly created (idle) animation is unresolved': + 'KeyframeEffect is not defined', - 'Keyframes can be replaced with a one property one value property-indexed keyframes specification': - 'effect.setKeyframes is not a function', + 'startTime of a pause-pending animation is unresolved': + 'KeyframeEffect is not defined', - 'Keyframes can be replaced with a one property two keyframe sequence': - 'effect.setKeyframes is not a function', - - 'Keyframes can be replaced with a one property two keyframe sequence that needs to stringify its values': - 'effect.setKeyframes is not a function', + 'startTime of a play-pending animation is unresolved': + 'KeyframeEffect is not defined', + }, - 'Keyframes can be replaced with a one property two value property-indexed keyframes specification': - 'effect.setKeyframes is not a function', + 'test/web-platform-tests/web-animations/timing-model/animation-effects/active-time.html': { + 'Active time in active phase and negative start delay is the local time minus the start delay': + 'anim.effect is undefined', - 'Keyframes can be replaced with a one property two value property-indexed keyframes specification that needs to stringify its values': - 'effect.setKeyframes is not a function', + 'Active time in active phase and no start delay is the local time': + 'anim.effect is undefined', - 'Keyframes can be replaced with a one property two value property-indexed keyframes specification where the first value is invalid': - 'effect.setKeyframes is not a function', + 'Active time in active phase and positive start delay is the local time minus the start delay': + 'anim.effect is undefined', - 'Keyframes can be replaced with a one property two value property-indexed keyframes specification where the second value is invalid': - 'effect.setKeyframes is not a function', + 'Active time in after phase with \'both\' fill is the active duration': + 'anim.effect is undefined', - 'Keyframes can be replaced with a one shorthand property two keyframe sequence': - 'effect.setKeyframes is not a function', + 'Active time in after phase with backwards-only fill is unresolved': + 'anim.effect is undefined', - 'Keyframes can be replaced with a one shorthand property two value property-indexed keyframes specification': - 'effect.setKeyframes is not a function', + 'Active time in after phase with forwards fill and negative end delay greater in magnitude than the active duration is zero': + 'anim.effect is undefined', - 'Keyframes can be replaced with a property-indexed keyframes specification with a CSS variable reference': - 'effect.setKeyframes is not a function', + 'Active time in after phase with forwards fill and negative end delay greater in magnitude than the sum of the active duration and start delay is zero': + 'anim.effect is undefined', - 'Keyframes can be replaced with a property-indexed keyframes specification with a CSS variable reference in a shorthand property': - 'effect.setKeyframes is not a function', + 'Active time in after phase with forwards fill and negative end delay is the active duration + end delay': + 'anim.effect is undefined', - 'Keyframes can be replaced with a property-indexed keyframes specification with an invalid value': - 'effect.setKeyframes is not a function', + 'Active time in after phase with forwards fill and positive end delay is the active duration': + 'anim.effect is undefined', - 'Keyframes can be replaced with a single keyframe sequence with omitted offsets': - 'effect.setKeyframes is not a function', + 'Active time in after phase with forwards fill is the active duration': + 'anim.effect is undefined', - 'Keyframes can be replaced with a two property (a shorthand and one of its component longhands) two keyframe sequence': - 'effect.setKeyframes is not a function', + 'Active time in after phase with forwards fill, zero-duration, and infinite iteration count is the active duration': + 'anim.effect is undefined', - 'Keyframes can be replaced with a two property (one shorthand and one of its longhand components) two value property-indexed keyframes specification': - 'effect.setKeyframes is not a function', + 'Active time in after phase with no fill is unresolved': + 'anim.effect is undefined', - 'Keyframes can be replaced with a two property four keyframe sequence': - 'effect.setKeyframes is not a function', + 'Active time in before phase': + 'anim.effect is undefined', - 'Keyframes can be replaced with a two property keyframe sequence where one property is missing from the first keyframe': - 'effect.setKeyframes is not a function', + 'Active time when the local time is unresolved, is unresolved': + 'KeyframeEffect is not defined', + }, - 'Keyframes can be replaced with a two property keyframe sequence where one property is missing from the last keyframe': - 'effect.setKeyframes is not a function', + 'test/web-platform-tests/web-animations/timing-model/animation-effects/simple-iteration-progress.html': { + 'Test end delay: duration:100 delay:1 fill:both endDelay:-100': + 'effect is undefined', - 'Keyframes can be replaced with a two property keyframe sequence with some omitted offsets': - 'effect.setKeyframes is not a function', + 'Test end delay: duration:100 delay:1 fill:both endDelay:-200': + 'effect is undefined', - 'Keyframes can be replaced with a two property property-indexed keyframes specification with different numbers of values': - 'effect.setKeyframes is not a function', + 'Test end delay: duration:100 delay:1 fill:both endDelay:-50': + 'effect is undefined', - 'Keyframes can be replaced with a two property two keyframe sequence': - 'effect.setKeyframes is not a function', + 'Test end delay: duration:100 delay:1 fill:both endDelay:50': + 'effect is undefined', - 'Keyframes can be replaced with a two property two value property-indexed keyframes specification': - 'effect.setKeyframes is not a function', + 'Test end delay: iterationStart:0.5 duration:100 delay:1 fill:both endDelay:-100': + 'effect is undefined', - 'Keyframes can be replaced with an empty keyframe': - 'effect.setKeyframes is not a function', - }, + 'Test end delay: iterationStart:0.5 duration:100 delay:1 fill:both endDelay:-50': + 'effect is undefined', - 'test/web-platform-tests/web-animations/interfaces/KeyframeEffect/setTarget.html': { - 'Test setting target from a valid target to another target': - 'assert_equals: Value of 1st element (currently not targeted) after changing the effect target expected "10px" but got "50px"', + 'Test end delay: iterationStart:0.5 duration:100 delay:1 fill:both endDelay:50': + 'effect is undefined', - 'Test setting target from a valid target to null': - 'assert_equals: Value after clearing the target expected "10px" but got "50px"', + 'Test end delay: iterations:1 iterationStart:2 duration:100 delay:1 fill:both endDelay:-100': + 'effect is undefined', - 'Test setting target from null to a valid target': - 'assert_equals: Value at 50% progress after setting new target expected "50px" but got "10px"', - }, + 'Test end delay: iterations:1 iterationStart:2 duration:100 delay:1 fill:both endDelay:-50': + 'effect is undefined', - 'test/web-platform-tests/web-animations/timing-model/animation-effects/current-iteration.html': { - 'Test currentIteration during before and after phase when fill is none': - 'anim.effect.getComputedTiming is not a function', + 'Test end delay: iterations:2 duration:100 delay:1 fill:both endDelay:-100': + 'effect is undefined', 'Test fractional iterations: iterations:3.5 iterationStart:0 duration:0 delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', + 'effect is undefined', 'Test fractional iterations: iterations:3.5 iterationStart:0 duration:100 delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', + 'effect is undefined', 'Test fractional iterations: iterations:3.5 iterationStart:0 duration:Infinity delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', + 'effect is undefined', 'Test fractional iterations: iterations:3.5 iterationStart:2.5 duration:0 delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', + 'effect is undefined', 'Test fractional iterations: iterations:3.5 iterationStart:2.5 duration:100 delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', + 'effect is undefined', 'Test fractional iterations: iterations:3.5 iterationStart:2.5 duration:Infinity delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', + 'effect is undefined', 'Test fractional iterations: iterations:3.5 iterationStart:3 duration:0 delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', + 'effect is undefined', 'Test fractional iterations: iterations:3.5 iterationStart:3 duration:100 delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', + 'effect is undefined', 'Test fractional iterations: iterations:3.5 iterationStart:3 duration:Infinity delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', + 'effect is undefined', 'Test infinity iterations: iterations:Infinity iterationStart:0 duration:0 delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', + 'effect is undefined', 'Test infinity iterations: iterations:Infinity iterationStart:0 duration:100 delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', + 'effect is undefined', 'Test infinity iterations: iterations:Infinity iterationStart:0 duration:Infinity delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', + 'effect is undefined', 'Test infinity iterations: iterations:Infinity iterationStart:2.5 duration:0 delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', + 'effect is undefined', 'Test infinity iterations: iterations:Infinity iterationStart:2.5 duration:100 delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', + 'effect is undefined', 'Test infinity iterations: iterations:Infinity iterationStart:2.5 duration:Infinity delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', + 'effect is undefined', 'Test infinity iterations: iterations:Infinity iterationStart:3 duration:0 delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', + 'effect is undefined', 'Test infinity iterations: iterations:Infinity iterationStart:3 duration:100 delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', + 'effect is undefined', 'Test infinity iterations: iterations:Infinity iterationStart:3 duration:Infinity delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', + 'effect is undefined', 'Test integer iterations: iterations:3 iterationStart:0 duration:0 delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', + 'effect is undefined', 'Test integer iterations: iterations:3 iterationStart:0 duration:100 delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', + 'effect is undefined', 'Test integer iterations: iterations:3 iterationStart:0 duration:Infinity delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', + 'effect is undefined', 'Test integer iterations: iterations:3 iterationStart:2.5 duration:0 delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', + 'effect is undefined', 'Test integer iterations: iterations:3 iterationStart:2.5 duration:100 delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', + 'effect is undefined', 'Test integer iterations: iterations:3 iterationStart:2.5 duration:Infinity delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', + 'effect is undefined', 'Test integer iterations: iterations:3 iterationStart:3 duration:0 delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', + 'effect is undefined', 'Test integer iterations: iterations:3 iterationStart:3 duration:100 delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', + 'effect is undefined', 'Test integer iterations: iterations:3 iterationStart:3 duration:Infinity delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', + 'effect is undefined', + + 'Test negative playback rate: duration:0 delay:1 fill:both playbackRate:-1': + 'effect is undefined', + + 'Test negative playback rate: duration:0 iterations:0 delay:1 fill:both playbackRate:-1': + 'effect is undefined', + + 'Test negative playback rate: duration:1 delay:1 fill:both playbackRate:-1': + 'effect is undefined', 'Test zero iterations: iterations:0 iterationStart:0 duration:0 delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', + 'effect is undefined', 'Test zero iterations: iterations:0 iterationStart:0 duration:100 delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', + 'effect is undefined', 'Test zero iterations: iterations:0 iterationStart:0 duration:Infinity delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', + 'effect is undefined', 'Test zero iterations: iterations:0 iterationStart:2.5 duration:0 delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', + 'effect is undefined', 'Test zero iterations: iterations:0 iterationStart:2.5 duration:100 delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', + 'effect is undefined', 'Test zero iterations: iterations:0 iterationStart:2.5 duration:Infinity delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', + 'effect is undefined', 'Test zero iterations: iterations:0 iterationStart:3 duration:0 delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', + 'effect is undefined', 'Test zero iterations: iterations:0 iterationStart:3 duration:100 delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', + 'effect is undefined', 'Test zero iterations: iterations:0 iterationStart:3 duration:Infinity delay:1 fill:both': - 'anim.effect.getComputedTiming is not a function', - }, - - 'test/web-platform-tests/web-animations/timing-model/animations/set-the-animation-start-time.html': { - 'Setting an unresolved start time an animation without an active timeline does not clear the current time': - 'Animation with null timeline is not supported', - - 'Setting an unresolved start time sets the hold time': - 'assert_equals: expected "running" but got "idle"', - - 'Setting the start time clears the hold time': - 'assert_approx_equals: The current time is calculated from the start time, not the hold time expected 2000 +/- 0.0005 but got 1000', - - 'Setting the start time of an animation without an active timeline': - 'Animation with null timeline is not supported', - - 'Setting the start time resolves a pending pause task': - 'assert_equals: Animation is in pause-pending state expected "pending" but got "paused"', - - 'Setting the start time updates the finished state': - 'assert_equals: Seeked to finished state using the startTime expected "finished" but got "idle"', + 'effect is undefined', }, }, }, - ], }; From a44c04da0865efb368dbb9bc7e475ab7ed3708a9 Mon Sep 17 00:00:00 2001 From: Alan Cutter Date: Tue, 25 Jun 2019 11:07:18 +1000 Subject: [PATCH 22/27] Update version of Firefox for test expectations --- test/web-platform-tests-expectations.js | 259 ------------------------ 1 file changed, 259 deletions(-) diff --git a/test/web-platform-tests-expectations.js b/test/web-platform-tests-expectations.js index 97a805a4..850bde36 100644 --- a/test/web-platform-tests-expectations.js +++ b/test/web-platform-tests-expectations.js @@ -19,253 +19,6 @@ module.exports = { withNativeFallback: true, }, failures: { - 'test/web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-context.html': { - 'Effect values reflect changes to font-size from reparenting': - 'animation.ready is undefined', - - 'Effect values reflect changes to font-size when computed style is not immediately flushed': - 'animation.ready is undefined', - - 'Effect values reflect changes to target element': - 'animation.effect is undefined', - }, - - 'test/web-platform-tests/web-animations/interfaces/Animation/cancel.html': { - 'After cancelling an animation, it can still be re-used': - 'animation.ready is undefined', - - 'After cancelling an animation, it can still be seeked': - 'animation.effect is undefined', - - 'Animated style is cleared after calling Animation.cancel()': - 'animation.ready is undefined', - }, - - 'test/web-platform-tests/web-animations/interfaces/Animation/pause.html': { - 'pause() a running animation': - 'animation.ready is undefined', - - 'pause() from idle': - 'animation.ready is undefined', - - 'pause() from idle with a negative playbackRate': - 'animation.ready is undefined', - - 'pause() on a finished animation': - 'animation.ready is undefined', - }, - - 'test/web-platform-tests/web-animations/interfaces/Animation/play.html': { - 'play() throws when seeking an infinite-duration animation played in reverse': - 'animation.ready is undefined', - }, - - 'test/web-platform-tests/web-animations/interfaces/Animation/startTime.html': { - 'startTime is resolved when running': - 'animation.ready is undefined', - - 'startTime of a newly created (idle) animation is unresolved': - 'KeyframeEffect is not defined', - - 'startTime of a pause-pending animation is unresolved': - 'KeyframeEffect is not defined', - - 'startTime of a play-pending animation is unresolved': - 'KeyframeEffect is not defined', - }, - - 'test/web-platform-tests/web-animations/timing-model/animation-effects/active-time.html': { - 'Active time in active phase and negative start delay is the local time minus the start delay': - 'anim.effect is undefined', - - 'Active time in active phase and no start delay is the local time': - 'anim.effect is undefined', - - 'Active time in active phase and positive start delay is the local time minus the start delay': - 'anim.effect is undefined', - - 'Active time in after phase with \'both\' fill is the active duration': - 'anim.effect is undefined', - - 'Active time in after phase with backwards-only fill is unresolved': - 'anim.effect is undefined', - - 'Active time in after phase with forwards fill and negative end delay greater in magnitude than the active duration is zero': - 'anim.effect is undefined', - - 'Active time in after phase with forwards fill and negative end delay greater in magnitude than the sum of the active duration and start delay is zero': - 'anim.effect is undefined', - - 'Active time in after phase with forwards fill and negative end delay is the active duration + end delay': - 'anim.effect is undefined', - - 'Active time in after phase with forwards fill and positive end delay is the active duration': - 'anim.effect is undefined', - - 'Active time in after phase with forwards fill is the active duration': - 'anim.effect is undefined', - - 'Active time in after phase with forwards fill, zero-duration, and infinite iteration count is the active duration': - 'anim.effect is undefined', - - 'Active time in after phase with no fill is unresolved': - 'anim.effect is undefined', - - 'Active time in before phase': - 'anim.effect is undefined', - - 'Active time when the local time is unresolved, is unresolved': - 'KeyframeEffect is not defined', - }, - - 'test/web-platform-tests/web-animations/timing-model/animation-effects/simple-iteration-progress.html': { - 'Test end delay: duration:100 delay:1 fill:both endDelay:-100': - 'effect is undefined', - - 'Test end delay: duration:100 delay:1 fill:both endDelay:-200': - 'effect is undefined', - - 'Test end delay: duration:100 delay:1 fill:both endDelay:-50': - 'effect is undefined', - - 'Test end delay: duration:100 delay:1 fill:both endDelay:50': - 'effect is undefined', - - 'Test end delay: iterationStart:0.5 duration:100 delay:1 fill:both endDelay:-100': - 'effect is undefined', - - 'Test end delay: iterationStart:0.5 duration:100 delay:1 fill:both endDelay:-50': - 'effect is undefined', - - 'Test end delay: iterationStart:0.5 duration:100 delay:1 fill:both endDelay:50': - 'effect is undefined', - - 'Test end delay: iterations:1 iterationStart:2 duration:100 delay:1 fill:both endDelay:-100': - 'effect is undefined', - - 'Test end delay: iterations:1 iterationStart:2 duration:100 delay:1 fill:both endDelay:-50': - 'effect is undefined', - - 'Test end delay: iterations:2 duration:100 delay:1 fill:both endDelay:-100': - 'effect is undefined', - - 'Test fractional iterations: iterations:3.5 iterationStart:0 duration:0 delay:1 fill:both': - 'effect is undefined', - - 'Test fractional iterations: iterations:3.5 iterationStart:0 duration:100 delay:1 fill:both': - 'effect is undefined', - - 'Test fractional iterations: iterations:3.5 iterationStart:0 duration:Infinity delay:1 fill:both': - 'effect is undefined', - - 'Test fractional iterations: iterations:3.5 iterationStart:2.5 duration:0 delay:1 fill:both': - 'effect is undefined', - - 'Test fractional iterations: iterations:3.5 iterationStart:2.5 duration:100 delay:1 fill:both': - 'effect is undefined', - - 'Test fractional iterations: iterations:3.5 iterationStart:2.5 duration:Infinity delay:1 fill:both': - 'effect is undefined', - - 'Test fractional iterations: iterations:3.5 iterationStart:3 duration:0 delay:1 fill:both': - 'effect is undefined', - - 'Test fractional iterations: iterations:3.5 iterationStart:3 duration:100 delay:1 fill:both': - 'effect is undefined', - - 'Test fractional iterations: iterations:3.5 iterationStart:3 duration:Infinity delay:1 fill:both': - 'effect is undefined', - - 'Test infinity iterations: iterations:Infinity iterationStart:0 duration:0 delay:1 fill:both': - 'effect is undefined', - - 'Test infinity iterations: iterations:Infinity iterationStart:0 duration:100 delay:1 fill:both': - 'effect is undefined', - - 'Test infinity iterations: iterations:Infinity iterationStart:0 duration:Infinity delay:1 fill:both': - 'effect is undefined', - - 'Test infinity iterations: iterations:Infinity iterationStart:2.5 duration:0 delay:1 fill:both': - 'effect is undefined', - - 'Test infinity iterations: iterations:Infinity iterationStart:2.5 duration:100 delay:1 fill:both': - 'effect is undefined', - - 'Test infinity iterations: iterations:Infinity iterationStart:2.5 duration:Infinity delay:1 fill:both': - 'effect is undefined', - - 'Test infinity iterations: iterations:Infinity iterationStart:3 duration:0 delay:1 fill:both': - 'effect is undefined', - - 'Test infinity iterations: iterations:Infinity iterationStart:3 duration:100 delay:1 fill:both': - 'effect is undefined', - - 'Test infinity iterations: iterations:Infinity iterationStart:3 duration:Infinity delay:1 fill:both': - 'effect is undefined', - - 'Test integer iterations: iterations:3 iterationStart:0 duration:0 delay:1 fill:both': - 'effect is undefined', - - 'Test integer iterations: iterations:3 iterationStart:0 duration:100 delay:1 fill:both': - 'effect is undefined', - - 'Test integer iterations: iterations:3 iterationStart:0 duration:Infinity delay:1 fill:both': - 'effect is undefined', - - 'Test integer iterations: iterations:3 iterationStart:2.5 duration:0 delay:1 fill:both': - 'effect is undefined', - - 'Test integer iterations: iterations:3 iterationStart:2.5 duration:100 delay:1 fill:both': - 'effect is undefined', - - 'Test integer iterations: iterations:3 iterationStart:2.5 duration:Infinity delay:1 fill:both': - 'effect is undefined', - - 'Test integer iterations: iterations:3 iterationStart:3 duration:0 delay:1 fill:both': - 'effect is undefined', - - 'Test integer iterations: iterations:3 iterationStart:3 duration:100 delay:1 fill:both': - 'effect is undefined', - - 'Test integer iterations: iterations:3 iterationStart:3 duration:Infinity delay:1 fill:both': - 'effect is undefined', - - 'Test negative playback rate: duration:0 delay:1 fill:both playbackRate:-1': - 'effect is undefined', - - 'Test negative playback rate: duration:0 iterations:0 delay:1 fill:both playbackRate:-1': - 'effect is undefined', - - 'Test negative playback rate: duration:1 delay:1 fill:both playbackRate:-1': - 'effect is undefined', - - 'Test zero iterations: iterations:0 iterationStart:0 duration:0 delay:1 fill:both': - 'effect is undefined', - - 'Test zero iterations: iterations:0 iterationStart:0 duration:100 delay:1 fill:both': - 'effect is undefined', - - 'Test zero iterations: iterations:0 iterationStart:0 duration:Infinity delay:1 fill:both': - 'effect is undefined', - - 'Test zero iterations: iterations:0 iterationStart:2.5 duration:0 delay:1 fill:both': - 'effect is undefined', - - 'Test zero iterations: iterations:0 iterationStart:2.5 duration:100 delay:1 fill:both': - 'effect is undefined', - - 'Test zero iterations: iterations:0 iterationStart:2.5 duration:Infinity delay:1 fill:both': - 'effect is undefined', - - 'Test zero iterations: iterations:0 iterationStart:3 duration:0 delay:1 fill:both': - 'effect is undefined', - - 'Test zero iterations: iterations:0 iterationStart:3 duration:100 delay:1 fill:both': - 'effect is undefined', - - 'Test zero iterations: iterations:0 iterationStart:3 duration:Infinity delay:1 fill:both': - 'effect is undefined', - }, }, }, { @@ -318,15 +71,6 @@ module.exports = { 'test/web-platform-tests/web-animations/interfaces/Animation/startTime.html': { 'startTime is resolved when running': 'animation.ready is undefined', - - 'startTime of a newly created (idle) animation is unresolved': - 'KeyframeEffect is not defined', - - 'startTime of a pause-pending animation is unresolved': - 'KeyframeEffect is not defined', - - 'startTime of a play-pending animation is unresolved': - 'KeyframeEffect is not defined', }, 'test/web-platform-tests/web-animations/timing-model/animation-effects/active-time.html': { @@ -368,9 +112,6 @@ module.exports = { 'Active time in before phase': 'anim.effect is undefined', - - 'Active time when the local time is unresolved, is unresolved': - 'KeyframeEffect is not defined', }, 'test/web-platform-tests/web-animations/timing-model/animation-effects/simple-iteration-progress.html': { From a16d2f8fa083e8eea15798d984efe8855c39da98 Mon Sep 17 00:00:00 2001 From: Alan Cutter Date: Tue, 25 Jun 2019 11:21:58 +1000 Subject: [PATCH 23/27] Reduce web-animations-next WPT testing and update expectations --- target-config.js | 4 +- test/web-platform-tests-expectations.js | 435 ++++++++++++++++++++++++ 2 files changed, 438 insertions(+), 1 deletion(-) diff --git a/target-config.js b/target-config.js index 05caf2a5..49d2b94d 100644 --- a/target-config.js +++ b/target-config.js @@ -127,7 +127,9 @@ ]; var webAnimationsNextWebPlatformTests = [ - 'test/web-platform-tests/web-animations/**/*.html', + // TODO: Bring web-animations-next back up to speed with the spec to reenable testing everything. + // 'test/web-platform-tests/web-animations/**/*.html', + ...webAnimations1WebPlatformTests, ]; // This object specifies the source and test files for different Web Animation build targets. diff --git a/test/web-platform-tests-expectations.js b/test/web-platform-tests-expectations.js index 850bde36..a5764b15 100644 --- a/test/web-platform-tests-expectations.js +++ b/test/web-platform-tests-expectations.js @@ -264,5 +264,440 @@ module.exports = { }, }, }, + { + configuration: { + target: 'web-animations-next', + withNativeFallback: true, + }, + failures: { + 'test/web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-context.html': { + 'Effect values reflect changes to target element': + 'assert_equals: Effect value after updating target element expected "300px" but got "0px"', + }, + + 'test/web-platform-tests/web-animations/interfaces/Animation/cancel.html': { + 'After cancelling an animation, it can still be seeked': + 'animation.effect.updateTiming is not a function', + }, + + 'test/web-platform-tests/web-animations/interfaces/Animation/pause.html': { + 'pause() from idle': + 'assert_true: initially pause-pending expected true got undefined', + }, + + 'test/web-platform-tests/web-animations/interfaces/Animation/startTime.html': { + 'startTime is resolved when running': + 'assert_greater_than: startTime when running expected a number but got a "object"', + }, + + 'test/web-platform-tests/web-animations/timing-model/animation-effects/active-time.html': { + 'Active time in active phase and negative start delay is the local time minus the start delay': + 'anim.effect.getComputedTiming is not a function', + + 'Active time in active phase and no start delay is the local time': + 'anim.effect.getComputedTiming is not a function', + + 'Active time in active phase and positive start delay is the local time minus the start delay': + 'anim.effect.getComputedTiming is not a function', + + 'Active time in after phase with \'both\' fill is the active duration': + 'anim.effect.getComputedTiming is not a function', + + 'Active time in after phase with backwards-only fill is unresolved': + 'anim.effect.getComputedTiming is not a function', + + 'Active time in after phase with forwards fill and negative end delay greater in magnitude than the active duration is zero': + 'anim.effect.getComputedTiming is not a function', + + 'Active time in after phase with forwards fill and negative end delay greater in magnitude than the sum of the active duration and start delay is zero': + 'anim.effect.getComputedTiming is not a function', + + 'Active time in after phase with forwards fill and negative end delay is the active duration + end delay': + 'anim.effect.getComputedTiming is not a function', + + 'Active time in after phase with forwards fill and positive end delay is the active duration': + 'anim.effect.getComputedTiming is not a function', + + 'Active time in after phase with forwards fill is the active duration': + 'anim.effect.getComputedTiming is not a function', + + 'Active time in after phase with forwards fill, zero-duration, and infinite iteration count is the active duration': + 'anim.effect.getComputedTiming is not a function', + + 'Active time in after phase with no fill is unresolved': + 'anim.effect.getComputedTiming is not a function', + + 'Active time in before phase': + 'anim.effect.getComputedTiming is not a function', + + 'Active time when the local time is unresolved, is unresolved': + 'effect.getComputedTiming is not a function', + }, + + 'test/web-platform-tests/web-animations/timing-model/animation-effects/simple-iteration-progress.html': { + 'Test end delay: duration:100 delay:1 fill:both endDelay:-100': + 'effect.getComputedTiming is not a function', + + 'Test end delay: duration:100 delay:1 fill:both endDelay:-200': + 'effect.getComputedTiming is not a function', + + 'Test end delay: duration:100 delay:1 fill:both endDelay:-50': + 'effect.getComputedTiming is not a function', + + 'Test end delay: duration:100 delay:1 fill:both endDelay:50': + 'effect.getComputedTiming is not a function', + + 'Test end delay: iterationStart:0.5 duration:100 delay:1 fill:both endDelay:-100': + 'effect.getComputedTiming is not a function', + + 'Test end delay: iterationStart:0.5 duration:100 delay:1 fill:both endDelay:-50': + 'effect.getComputedTiming is not a function', + + 'Test end delay: iterationStart:0.5 duration:100 delay:1 fill:both endDelay:50': + 'effect.getComputedTiming is not a function', + + 'Test end delay: iterations:1 iterationStart:2 duration:100 delay:1 fill:both endDelay:-100': + 'effect.getComputedTiming is not a function', + + 'Test end delay: iterations:1 iterationStart:2 duration:100 delay:1 fill:both endDelay:-50': + 'effect.getComputedTiming is not a function', + + 'Test end delay: iterations:2 duration:100 delay:1 fill:both endDelay:-100': + 'effect.getComputedTiming is not a function', + + 'Test fractional iterations: iterations:3.5 iterationStart:0 duration:0 delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test fractional iterations: iterations:3.5 iterationStart:0 duration:100 delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test fractional iterations: iterations:3.5 iterationStart:0 duration:Infinity delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test fractional iterations: iterations:3.5 iterationStart:2.5 duration:0 delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test fractional iterations: iterations:3.5 iterationStart:2.5 duration:100 delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test fractional iterations: iterations:3.5 iterationStart:2.5 duration:Infinity delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test fractional iterations: iterations:3.5 iterationStart:3 duration:0 delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test fractional iterations: iterations:3.5 iterationStart:3 duration:100 delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test fractional iterations: iterations:3.5 iterationStart:3 duration:Infinity delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test infinity iterations: iterations:Infinity iterationStart:0 duration:0 delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test infinity iterations: iterations:Infinity iterationStart:0 duration:100 delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test infinity iterations: iterations:Infinity iterationStart:0 duration:Infinity delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test infinity iterations: iterations:Infinity iterationStart:2.5 duration:0 delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test infinity iterations: iterations:Infinity iterationStart:2.5 duration:100 delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test infinity iterations: iterations:Infinity iterationStart:2.5 duration:Infinity delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test infinity iterations: iterations:Infinity iterationStart:3 duration:0 delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test infinity iterations: iterations:Infinity iterationStart:3 duration:100 delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test infinity iterations: iterations:Infinity iterationStart:3 duration:Infinity delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test integer iterations: iterations:3 iterationStart:0 duration:0 delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test integer iterations: iterations:3 iterationStart:0 duration:100 delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test integer iterations: iterations:3 iterationStart:0 duration:Infinity delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test integer iterations: iterations:3 iterationStart:2.5 duration:0 delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test integer iterations: iterations:3 iterationStart:2.5 duration:100 delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test integer iterations: iterations:3 iterationStart:2.5 duration:Infinity delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test integer iterations: iterations:3 iterationStart:3 duration:0 delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test integer iterations: iterations:3 iterationStart:3 duration:100 delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test integer iterations: iterations:3 iterationStart:3 duration:Infinity delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test negative playback rate: duration:0 delay:1 fill:both playbackRate:-1': + 'effect.getComputedTiming is not a function', + + 'Test negative playback rate: duration:0 iterations:0 delay:1 fill:both playbackRate:-1': + 'effect.getComputedTiming is not a function', + + 'Test negative playback rate: duration:1 delay:1 fill:both playbackRate:-1': + 'effect.getComputedTiming is not a function', + + 'Test zero iterations: iterations:0 iterationStart:0 duration:0 delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test zero iterations: iterations:0 iterationStart:0 duration:100 delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test zero iterations: iterations:0 iterationStart:0 duration:Infinity delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test zero iterations: iterations:0 iterationStart:2.5 duration:0 delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test zero iterations: iterations:0 iterationStart:2.5 duration:100 delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test zero iterations: iterations:0 iterationStart:2.5 duration:Infinity delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test zero iterations: iterations:0 iterationStart:3 duration:0 delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test zero iterations: iterations:0 iterationStart:3 duration:100 delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test zero iterations: iterations:0 iterationStart:3 duration:Infinity delay:1 fill:both': + 'effect.getComputedTiming is not a function', + }, + }, + }, + { + configuration: { + target: 'web-animations-next', + withNativeFallback: false, + }, + failures: { + 'test/web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-context.html': { + 'Effect values reflect changes to target element': + 'assert_equals: Effect value after updating target element expected "300px" but got "0px"', + }, + + 'test/web-platform-tests/web-animations/interfaces/Animation/cancel.html': { + 'After cancelling an animation, it can still be seeked': + 'animation.effect.updateTiming is not a function', + }, + + 'test/web-platform-tests/web-animations/interfaces/Animation/pause.html': { + 'pause() from idle': + 'assert_true: initially pause-pending expected true got undefined', + }, + + 'test/web-platform-tests/web-animations/timing-model/animation-effects/active-time.html': { + 'Active time in active phase and negative start delay is the local time minus the start delay': + 'anim.effect.getComputedTiming is not a function', + + 'Active time in active phase and no start delay is the local time': + 'anim.effect.getComputedTiming is not a function', + + 'Active time in active phase and positive start delay is the local time minus the start delay': + 'anim.effect.getComputedTiming is not a function', + + 'Active time in after phase with \'both\' fill is the active duration': + 'anim.effect.getComputedTiming is not a function', + + 'Active time in after phase with backwards-only fill is unresolved': + 'anim.effect.getComputedTiming is not a function', + + 'Active time in after phase with forwards fill and negative end delay greater in magnitude than the active duration is zero': + 'anim.effect.getComputedTiming is not a function', + + 'Active time in after phase with forwards fill and negative end delay greater in magnitude than the sum of the active duration and start delay is zero': + 'anim.effect.getComputedTiming is not a function', + + 'Active time in after phase with forwards fill and negative end delay is the active duration + end delay': + 'anim.effect.getComputedTiming is not a function', + + 'Active time in after phase with forwards fill and positive end delay is the active duration': + 'anim.effect.getComputedTiming is not a function', + + 'Active time in after phase with forwards fill is the active duration': + 'anim.effect.getComputedTiming is not a function', + + 'Active time in after phase with forwards fill, zero-duration, and infinite iteration count is the active duration': + 'anim.effect.getComputedTiming is not a function', + + 'Active time in after phase with no fill is unresolved': + 'anim.effect.getComputedTiming is not a function', + + 'Active time in before phase': + 'anim.effect.getComputedTiming is not a function', + + 'Active time when the local time is unresolved, is unresolved': + 'effect.getComputedTiming is not a function', + }, + + 'test/web-platform-tests/web-animations/timing-model/animation-effects/simple-iteration-progress.html': { + 'Test end delay: duration:100 delay:1 fill:both endDelay:-100': + 'effect.getComputedTiming is not a function', + + 'Test end delay: duration:100 delay:1 fill:both endDelay:-200': + 'effect.getComputedTiming is not a function', + + 'Test end delay: duration:100 delay:1 fill:both endDelay:-50': + 'effect.getComputedTiming is not a function', + + 'Test end delay: duration:100 delay:1 fill:both endDelay:50': + 'effect.getComputedTiming is not a function', + + 'Test end delay: iterationStart:0.5 duration:100 delay:1 fill:both endDelay:-100': + 'effect.getComputedTiming is not a function', + + 'Test end delay: iterationStart:0.5 duration:100 delay:1 fill:both endDelay:-50': + 'effect.getComputedTiming is not a function', + + 'Test end delay: iterationStart:0.5 duration:100 delay:1 fill:both endDelay:50': + 'effect.getComputedTiming is not a function', + + 'Test end delay: iterations:1 iterationStart:2 duration:100 delay:1 fill:both endDelay:-100': + 'effect.getComputedTiming is not a function', + + 'Test end delay: iterations:1 iterationStart:2 duration:100 delay:1 fill:both endDelay:-50': + 'effect.getComputedTiming is not a function', + + 'Test end delay: iterations:2 duration:100 delay:1 fill:both endDelay:-100': + 'effect.getComputedTiming is not a function', + + 'Test fractional iterations: iterations:3.5 iterationStart:0 duration:0 delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test fractional iterations: iterations:3.5 iterationStart:0 duration:100 delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test fractional iterations: iterations:3.5 iterationStart:0 duration:Infinity delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test fractional iterations: iterations:3.5 iterationStart:2.5 duration:0 delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test fractional iterations: iterations:3.5 iterationStart:2.5 duration:100 delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test fractional iterations: iterations:3.5 iterationStart:2.5 duration:Infinity delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test fractional iterations: iterations:3.5 iterationStart:3 duration:0 delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test fractional iterations: iterations:3.5 iterationStart:3 duration:100 delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test fractional iterations: iterations:3.5 iterationStart:3 duration:Infinity delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test infinity iterations: iterations:Infinity iterationStart:0 duration:0 delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test infinity iterations: iterations:Infinity iterationStart:0 duration:100 delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test infinity iterations: iterations:Infinity iterationStart:0 duration:Infinity delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test infinity iterations: iterations:Infinity iterationStart:2.5 duration:0 delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test infinity iterations: iterations:Infinity iterationStart:2.5 duration:100 delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test infinity iterations: iterations:Infinity iterationStart:2.5 duration:Infinity delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test infinity iterations: iterations:Infinity iterationStart:3 duration:0 delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test infinity iterations: iterations:Infinity iterationStart:3 duration:100 delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test infinity iterations: iterations:Infinity iterationStart:3 duration:Infinity delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test integer iterations: iterations:3 iterationStart:0 duration:0 delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test integer iterations: iterations:3 iterationStart:0 duration:100 delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test integer iterations: iterations:3 iterationStart:0 duration:Infinity delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test integer iterations: iterations:3 iterationStart:2.5 duration:0 delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test integer iterations: iterations:3 iterationStart:2.5 duration:100 delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test integer iterations: iterations:3 iterationStart:2.5 duration:Infinity delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test integer iterations: iterations:3 iterationStart:3 duration:0 delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test integer iterations: iterations:3 iterationStart:3 duration:100 delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test integer iterations: iterations:3 iterationStart:3 duration:Infinity delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test negative playback rate: duration:0 delay:1 fill:both playbackRate:-1': + 'effect.getComputedTiming is not a function', + + 'Test negative playback rate: duration:0 iterations:0 delay:1 fill:both playbackRate:-1': + 'effect.getComputedTiming is not a function', + + 'Test negative playback rate: duration:1 delay:1 fill:both playbackRate:-1': + 'effect.getComputedTiming is not a function', + + 'Test zero iterations: iterations:0 iterationStart:0 duration:0 delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test zero iterations: iterations:0 iterationStart:0 duration:100 delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test zero iterations: iterations:0 iterationStart:0 duration:Infinity delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test zero iterations: iterations:0 iterationStart:2.5 duration:0 delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test zero iterations: iterations:0 iterationStart:2.5 duration:100 delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test zero iterations: iterations:0 iterationStart:2.5 duration:Infinity delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test zero iterations: iterations:0 iterationStart:3 duration:0 delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test zero iterations: iterations:0 iterationStart:3 duration:100 delay:1 fill:both': + 'effect.getComputedTiming is not a function', + + 'Test zero iterations: iterations:0 iterationStart:3 duration:Infinity delay:1 fill:both': + 'effect.getComputedTiming is not a function', + }, + }, + }, ], }; From f095a3080d5d3f11a29d155a851a92921c535a50 Mon Sep 17 00:00:00 2001 From: Alan Cutter Date: Tue, 25 Jun 2019 11:25:28 +1000 Subject: [PATCH 24/27] Update package-lock.json --- package-lock.json | 28 +++++++--------------------- 1 file changed, 7 insertions(+), 21 deletions(-) diff --git a/package-lock.json b/package-lock.json index 564581f5..644dd310 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1352,14 +1352,12 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, - "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -1374,20 +1372,17 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "core-util-is": { "version": "1.0.2", @@ -1504,8 +1499,7 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "ini": { "version": "1.3.5", @@ -1517,7 +1511,6 @@ "version": "1.0.0", "bundled": true, "dev": true, - "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -1532,7 +1525,6 @@ "version": "3.0.4", "bundled": true, "dev": true, - "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -1540,14 +1532,12 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "minipass": { "version": "2.3.5", "bundled": true, "dev": true, - "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -1566,7 +1556,6 @@ "version": "0.5.1", "bundled": true, "dev": true, - "optional": true, "requires": { "minimist": "0.0.8" } @@ -1647,8 +1636,7 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "object-assign": { "version": "4.1.1", @@ -1660,7 +1648,6 @@ "version": "1.4.0", "bundled": true, "dev": true, - "optional": true, "requires": { "wrappy": "1" } @@ -1782,7 +1769,6 @@ "version": "1.0.2", "bundled": true, "dev": true, - "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", From 3e9a2ce4c77eb5892fd9d32ef4e33a3fa394fb4b Mon Sep 17 00:00:00 2001 From: Alan Cutter Date: Tue, 25 Jun 2019 11:32:34 +1000 Subject: [PATCH 25/27] Ignore package-lock.json --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 6a22cf4f..503ed8cc 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +package-lock.json node_modules !node_modules/mocha/mocha.css !node_modules/mocha/mocha.js From b2745c154e5455785099a4a6f82ecc882a87abc1 Mon Sep 17 00:00:00 2001 From: Alan Cutter Date: Tue, 25 Jun 2019 11:38:55 +1000 Subject: [PATCH 26/27] Unignore package-lock.json and revert after npm install instead --- .gitignore | 1 - .travis-setup.sh | 9 ++++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 503ed8cc..6a22cf4f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,3 @@ -package-lock.json node_modules !node_modules/mocha/mocha.css !node_modules/mocha/mocha.js diff --git a/.travis-setup.sh b/.travis-setup.sh index f0f76a99..00ca7389 100755 --- a/.travis-setup.sh +++ b/.travis-setup.sh @@ -26,6 +26,9 @@ uname -a cat /etc/lsb-release npm install +# npm may update the package-lock.json. Revert this to avoid failing grunt-checkrepo. +git checkout HEAD package-lock.json + npm install -g grunt-cli sudo apt-get update --fix-missing @@ -62,19 +65,19 @@ Chrome) sudo dpkg --install $CHROME || sudo apt-get -f install which google-chrome ls -l `which google-chrome` - + if [ -f /opt/google/chrome/chrome-sandbox ]; then export CHROME_SANDBOX=/opt/google/chrome/chrome-sandbox else export CHROME_SANDBOX=$(ls /opt/google/chrome*/chrome-sandbox) fi - + # Download a custom chrome-sandbox which works inside OpenVC containers (used on travis). sudo rm -f $CHROME_SANDBOX sudo wget https://googledrive.com/host/0B5VlNZ_Rvdw6NTJoZDBSVy1ZdkE -O $CHROME_SANDBOX sudo chown root:root $CHROME_SANDBOX; sudo chmod 4755 $CHROME_SANDBOX sudo md5sum $CHROME_SANDBOX - + google-chrome --version ;; From 480630912ad1e6e1b462363a88c0b8e93b5168fb Mon Sep 17 00:00:00 2001 From: Alan Cutter Date: Tue, 25 Jun 2019 18:31:16 +1000 Subject: [PATCH 27/27] Create release 2.3.2 --- History.md | 6 ++++++ package-lock.json | 2 +- package.json | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/History.md b/History.md index 4247c526..1d1227fc 100644 --- a/History.md +++ b/History.md @@ -1,3 +1,9 @@ +### 2.3.2 - *June 25 2019* + + * [Fix the wrapping IIFE of the prod bundle.](https://github.com/web-animations/web-animations-js/issues/208) + * [Minor fixes for Closure compilation compatibility.](https://github.com/web-animations/web-animations-js/issues/200) + * [Fixed `Cannot set property _isFinished of # which has only a getter`](https://github.com/web-animations/web-animations-js/issues/165) + ### 2.3.1 - *July 20 2017* * Fix [https://github.com/web-animations/web-animations-js/issues/157](missing web-animations.min.js issue) diff --git a/package-lock.json b/package-lock.json index 644dd310..d90f0e50 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "web-animations-js", - "version": "2.3.1", + "version": "2.3.2", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 42058487..8d386c70 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "type": "git", "url": "https://github.com/web-animations/web-animations-js.git" }, - "version": "2.3.1", + "version": "2.3.2", "keywords": [ "animations", "polyfill"