├── .gitignore
├── .travis.yml
├── README.md
├── analyze.js
├── gulpfile.js
├── index.html
├── louis.js
├── package-lock.json
├── package.json
├── performanceBudget.js
├── test
└── test.js
└── validate.js
/.gitignore:
--------------------------------------------------------------------------------
1 | /node_modules
2 | results.json
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: node_js
2 | node_js:
3 | - "node"
4 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Louis
2 |
3 | **Louis** is a gulp task that is used to analyze the performance of a website against a performance budget.
4 |
5 | [](http://badge.fury.io/js/gulp-louis)
6 | [](https://greenkeeper.io/)
7 |
8 | [](https://nodei.co/npm/gulp-louis/)
9 |
10 | ## Introduction
11 |
12 | There are many definitions of the **performance budget** on the web, my favourite is from Zachary Brady.
13 |
14 | ***A performance budget provides values against which design, development, content, or any aspect of a site that may affect performance, can be made.***
15 |
16 | The aim of the plugin is to analyze the performance of the website against a performance bugdet. There are various metrics against which we can set a performance budget e.g. number of requests, imageSize etc.
17 |
18 |
19 | ## Getting started
20 |
21 |
22 | #### Installation
23 | #### 1. [Usage](#usage)
24 | #### 2. [Example](#example)
25 | #### 3. [Output](#output)
26 | #### 4. [Options](#options)
27 | #### 5. [Performance Budget Options](#performance-budget-options)
28 | #### 6. [Change log](#change-log)
29 |
30 | ## Getting Started
31 |
32 |
33 | ### Usage
34 |
35 | ```bash
36 | $ npm install --save-dev gulp-louis
37 | ```
38 |
39 | ```js
40 | import louis = require('gulp-louis');
41 |
42 | gulp.task('louis', function(done) {
43 | louis({
44 | timeout: 60,
45 | viewport: '1280x1024',
46 | engine: 'webkit',
47 | userAgent: 'Chrome/37.0.2062.120',
48 | noExternals: false,
49 | performanceBudget: {
50 | requests: 2,
51 | medianLatency: 10,
52 | slowestResponse: 1000
53 | }
54 | }, done);
55 | });
56 |
57 | gulp.task('default', ['louis']);
58 | ```
59 |
60 |
61 | ### Example
62 |
63 | *Example 1 (with specified url)*
64 |
65 | ```js
66 | louis({
67 | url: 'http://localhost:8000/',
68 | timeout: 200,
69 | performanceBudget: {
70 | requests: 10,
71 | domComplete: 3000
72 | }
73 | })
74 | ```
75 |
76 | *Example 2 (without url)*
77 | This will launch a server and look for an **index.html** in the same folder as the gulpfile.js, then it will analyze the performance of this website.
78 |
79 | ```js
80 | louis({
81 | timeout: 10,
82 | performanceBudget: {
83 | requests: 10,
84 | headersSize: 200
85 | }
86 | })
87 | ```
88 |
89 | ### Output
90 |
91 | *Output with specified performance budget*
92 |
93 | 
94 |
95 | *Output without specified performance budget*
96 |
97 | 
98 |
99 |
100 | ### Options
101 |
102 | **All options are optional**
103 |
104 | * `url` url of the website to be analyzed, if it is not specified **Louis** will launch a server and load the **index.html** if this exist on the same directory as the **gulpfile.js**
105 | * `timeout` timeout for the run (defaults to 15 seconds)
106 | * `viewport` dimensions ('1280x1024' is the default)
107 | * `engine` webkit or gecko (webkit is default)
108 | * `userAgent` default is Chrome/37.0.2062.120
109 | * `noExternals` true or false, default is false, block requests to 3rd party domains
110 | * `outputFileName` name of file to write the results, default is "results.json"
111 | * `performanceBudget` object with metrics, see below
112 | * `proxy` specifies the (optional) proxy server to use
113 |
114 | ### Performance Budget Options
115 |
116 | The performance budget option can contain some or all of these values:
117 |
118 | ```requests, gzipRequests, postRequests, httpsRequests, notFound, bodySize, contentLength, httpTrafficCompleted, timeToFirstByte, timeToLastByte, ajaxRequests, htmlCount, htmlSize, cssCount, cssSize, jsCount, jsSize, jsonCount, jsonSize, imageCount, imageSize, videoCount, videoSize, webfontCount, webfontSize, base64Count, base64Size, otherCount, otherSize, cacheHits, cacheMisses, cachePasses, cachingNotSpecified, cachingTooShort, cachingDisabled, oldCachingHeaders, consoleMessages, cookiesSent, cookiesRecv, domainsWithCookies, documentCookiesLength, documentCookiesCount, documentHeight, commentsSize, whiteSpacesSize, DOMelementsCount, DOMelementMaxDepth, nodesWithInlineCSS, imagesScaledDown, imagesWithoutDimensions, DOMidDuplicated, hiddenContentSize, DOMmutationsInsertsv, DOMmutationsRemoves, DOMmutationsAttributes, DOMqueries, DOMqueriesWithoutResults, DOMqueriesById, DOMqueriesByClassName, DOMqueriesByTagName, DOMqueriesByQuerySelectorAll , DOMinserts, DOMqueriesDuplicated, DOMqueriesAvoidable, domains, maxRequestsPerDomain, medianRequestsPerDomain, eventsBound, eventsDispatched, globalVariables, globalVariablesFalsy, headersCount, headersSentCount, headersRecvCount, headersSize, headersSentSize, headersRecvSize, headersBiggerThanContent, jQueryVersion, jQueryVersionsLoaded, jQueryOnDOMReadyFunctions, jQueryWindowOnLoadFunctions, jQuerySizzleCalls, jQueryEventTriggers, jQueryDOMReads, jQueryDOMWrites, jQueryDOMWriteReadSwitches, documentWriteCalls, evalCalls, jsErrors, closedConnections, localStorageEntries, redirects, redirectsTime, repaints, firstPaint, requestsToDomContentLoaded, requestsToDomComplete, assetsNotGzipped, assetsWithQueryString, assetsWithCookies, smallImages, smallCssFiles, smallJsFiles, multipleRequests, timeToFirstCss, timeToFirstJs, timeToFirstImage, domInteractive, domContentLoaded, domContentLoadedEnd, domComplete, timeBackend, timeFrontend, statusCodesTrail, windowAlerts, windowConfirms, windowPrompts, bodyHTMLSize, iframesCount, smallestResponse, biggestResponse, fastestResponse, slowestResponse, smallestLatency, biggestLatency, medianResponse, medianLatency```
119 |
120 | Example:
121 | ```js
122 | performanceBudget = {
123 | cssSize: 200
124 | jsSize: 2000
125 | consoleMessages: 0
126 | imageSize: 5000
127 | domContentLoaded: 2000
128 | smallestLatency: 1000
129 | }
130 | ```
131 |
132 |
133 | ### Change log
134 |
135 | #### [2.3.2] - 2018-03-16
136 |
137 | - Fix / appended to outputFile causing throw in unix systems
138 |
139 | #### [2.3.1] - 2018-02-28
140 |
141 | - Update dependencies
142 |
143 | #### [2.3.0] - 2016-10-07
144 |
145 | - Added proxy-option
146 |
147 | #### [2.2.1] - 2016-09-29
148 |
149 | - Update dependencies
150 |
151 | #### [2.2.0] - 2016-09-29
152 |
153 | - Add outputFilename-option
154 |
155 | #### [2.1.1] - 2016-09-16
156 |
157 | - Update dependencies
158 |
159 | #### [2.1.0] - 2016-09-15
160 |
161 | - Change the results.json to a file with the same of tested domain.
162 |
163 | #### [2.0.0] - 2016-08-29
164 |
165 | - Run phantomas from local path
166 | - Update depedencies
167 |
168 | #### [1.1.0] - 2016-08-19
169 |
170 | - Fix phantomas path
171 |
172 | #### [1.0.14] - 2015-11-23
173 |
174 | Bug Fixes
175 |
176 | - Fix path to phantomas command …
177 |
178 | - Add missing gulp-connect dependency
179 |
180 | - Change "main" script to "louis.js"
181 |
182 | #### [1.0.10] - 2015-02-21
183 | #### [1.0.9] - 2015-02-21
184 | #### [1.0.8] - 2015-02-20
185 | #### [1.0.7] - 2015-02-17
186 | #### [1.0.0] - 2015-02-16
187 |
188 |
189 | ## License
190 |
191 | Released under the MIT license.
192 |
--------------------------------------------------------------------------------
/analyze.js:
--------------------------------------------------------------------------------
1 | // Internal dependencies
2 | var exec = require('child_process').exec;
3 | var fs = require('fs');
4 | var checkBudget = require('./performanceBudget');
5 |
6 | // External dependencies
7 | var clc = require('cli-color');
8 |
9 | // Config
10 | var validate = require('./validate');
11 |
12 | // Build the phantomas command
13 | // {options} object
14 | function buildCommand(options) {
15 | validate(options);
16 |
17 | var command = 'node node_modules/phantomas/bin/phantomas.js ' + options.url;
18 |
19 | command += ' --runs ' + options.runs;
20 | command += ' --timeout ' + options.timeout;
21 | command += ' --viewport ' + options.viewport;
22 |
23 | if (options.proxy) command += ' --proxy ' + options.proxy;
24 |
25 | if (options.noExternals) command += ' --no-externals';
26 |
27 | return command;
28 | }
29 |
30 | // Execute and analyze the results
31 | // {options} object
32 | function analyze(options, callback) {
33 | command = buildCommand(options);
34 |
35 | exec(command + ' --reporter=json > ' + options.outputFileName, function(
36 | error,
37 | stdout,
38 | stderr
39 | ) {
40 | if (error !== null) {
41 | console.log(error);
42 | return false;
43 | } else {
44 | fs.readFile(options.outputFileName, function(error, data) {
45 | data = JSON.parse(data);
46 | metrics = data.metrics;
47 |
48 | //if the performanceBudget object is not empty analyze based on that
49 | if (Object.keys(options['performanceBudget']).length > 0) {
50 | checkBudget(options.performanceBudget, data);
51 | callback();
52 | } else {
53 | var m = Object.keys(metrics);
54 | var m_length = m.length;
55 | console.log(
56 | '\n' + clc.black.bgWhiteBright('Metrics analyzed') + '\n'
57 | );
58 | while (m_length--) {
59 | console.log(
60 | clc.black.bgYellowBright.underline(m[m_length]) +
61 | ' ' +
62 | clc.yellow.bgBlack(metrics[m[m_length]])
63 | );
64 | }
65 | callback();
66 | }
67 | });
68 | }
69 | });
70 | }
71 |
72 | module.exports = analyze;
73 |
--------------------------------------------------------------------------------
/gulpfile.js:
--------------------------------------------------------------------------------
1 | var gulp = require('gulp');
2 | var louis = require('./louis');
3 |
4 | gulp.task('louis', function() {
5 | louis({
6 | timeout: 60,
7 | viewport: '1280x1024',
8 | engine: 'webkit',
9 | userAgent: 'Chrome/37.0.2062.120',
10 | noExternals: false,
11 | performanceBudget: {
12 | requests: 2,
13 | medianLatency: 10,
14 | slowestResponse: 1000
15 | }
16 | });
17 | });
18 |
19 | gulp.task('default', ['louis']);
20 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | A website to analyze
4 | Louis Performance Analyze Task
5 |
6 |
--------------------------------------------------------------------------------
/louis.js:
--------------------------------------------------------------------------------
1 | // Internal dependencies
2 | var analyze = require('./analyze');
3 | // External dependencies
4 | var connect = require('gulp-connect');
5 |
6 | var defaultOptions = {
7 | runs: 1,
8 | outputFileName: 'results.json',
9 | url: 'http://localhost:8888', // the url to be tested
10 | proxy: undefined, // the proxy server to use
11 | timeout: 15, // timeout for phantomas run
12 | viewport: '1280x1024',
13 | // engine: 'webkit', // experimental webkit, gecko
14 | userAgent: 'Chrome/37.0.2062.120',
15 | noExternals: false, // --no-externals block requests to 3rd party domains
16 | performanceBudget: {} // performanceBudget object
17 | };
18 |
19 | var louis = function(options, callback) {
20 | options = options || {};
21 | options.runs = defaultOptions.runs;
22 | // options.engine = options.engine || defaultOptions.engine;
23 | options.timeout = options.timeout || defaultOptions.timeout;
24 | options.viewport = options.viewport || defaultOptions.viewport;
25 | options.userAgent = options.userAgent || defaultOptions.userAgent;
26 | options.noExternals = options.noExternals || defaultOptions.noExternals;
27 | options.performanceBudget =
28 | options.performanceBudget || defaultOptions.performanceBudget;
29 | options.outputFileName = options.outputFileName
30 | ? options.outputFileName
31 | : options.url
32 | ? options.url.replace(/^(https?|ftp):\/\//, '').replace(/\//, '') +
33 | '.json'
34 | : defaultOptions.outputFileName;
35 | options.proxy = options.proxy || defaultOptions.proxy;
36 |
37 | if (!!options.url) {
38 | options.url = options.url || defaultOptions.url;
39 | } else {
40 | options.url = options.url || defaultOptions.url;
41 | connect.server({
42 | port: 8888
43 | });
44 | }
45 |
46 | analyze(options, function() {
47 | connect.serverClose();
48 | if (callback)
49 | callback();
50 | });
51 | };
52 |
53 | module.exports = louis;
54 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "gulp-louis",
3 | "version": "2.4.2",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "accepts": {
8 | "version": "1.3.5",
9 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz",
10 | "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=",
11 | "requires": {
12 | "mime-types": "~2.1.18",
13 | "negotiator": "0.6.1"
14 | }
15 | },
16 | "agent-base": {
17 | "version": "4.2.1",
18 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz",
19 | "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==",
20 | "requires": {
21 | "es6-promisify": "^5.0.0"
22 | }
23 | },
24 | "ajv": {
25 | "version": "6.6.2",
26 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.6.2.tgz",
27 | "integrity": "sha512-FBHEW6Jf5TB9MGBgUUA9XHkTbjXYfAUjY43ACMfmdMRHniyoMHjHjzD50OK8LGDWQwp4rWEsIq5kEqq7rvIM1g==",
28 | "optional": true,
29 | "requires": {
30 | "fast-deep-equal": "^2.0.1",
31 | "fast-json-stable-stringify": "^2.0.0",
32 | "json-schema-traverse": "^0.4.1",
33 | "uri-js": "^4.2.2"
34 | }
35 | },
36 | "analyze-css": {
37 | "version": "0.12.6",
38 | "resolved": "https://registry.npmjs.org/analyze-css/-/analyze-css-0.12.6.tgz",
39 | "integrity": "sha512-fGXG/VxD62+2BGDxyzoKaPepw8YT7yvqbpIpwm5N2Ko5Y9TIAxxeGYKNzlmNjsQG5QoNvJY/xCwicFVnGsfVMw==",
40 | "requires": {
41 | "cli": "^1.0.1",
42 | "css": "^2.2.3",
43 | "css-shorthand-properties": "^1.1.0",
44 | "debug": "^3.1.0",
45 | "fast-stats": "0.0.x",
46 | "glob": "^7.1.2",
47 | "http-proxy-agent": "^2.1.0",
48 | "node-fetch": "^2.1.2",
49 | "onecolor": "^3.0.4",
50 | "optimist": "0.6.x",
51 | "slick": "~1.12.1",
52 | "specificity": "^0.3.2"
53 | },
54 | "dependencies": {
55 | "debug": {
56 | "version": "3.2.6",
57 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
58 | "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
59 | "requires": {
60 | "ms": "^2.1.1"
61 | }
62 | },
63 | "ms": {
64 | "version": "2.1.1",
65 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
66 | "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
67 | }
68 | }
69 | },
70 | "ansi-colors": {
71 | "version": "2.0.5",
72 | "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-2.0.5.tgz",
73 | "integrity": "sha512-yAdfUZ+c2wetVNIFsNRn44THW+Lty6S5TwMpUfLA/UaGhiXbBv/F8E60/1hMLd0cnF/CDoWH8vzVaI5bAcHCjw=="
74 | },
75 | "ansi-gray": {
76 | "version": "0.1.1",
77 | "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz",
78 | "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=",
79 | "requires": {
80 | "ansi-wrap": "0.1.0"
81 | }
82 | },
83 | "ansi-regex": {
84 | "version": "2.1.1",
85 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
86 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
87 | },
88 | "ansi-wrap": {
89 | "version": "0.1.0",
90 | "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz",
91 | "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768="
92 | },
93 | "ansicolors": {
94 | "version": "0.3.2",
95 | "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz",
96 | "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk="
97 | },
98 | "ansistyles": {
99 | "version": "0.1.3",
100 | "resolved": "https://registry.npmjs.org/ansistyles/-/ansistyles-0.1.3.tgz",
101 | "integrity": "sha1-XeYEFb2gcbs3EnhUyGT0GyMlRTk="
102 | },
103 | "anymatch": {
104 | "version": "2.0.0",
105 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
106 | "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
107 | "dev": true,
108 | "requires": {
109 | "micromatch": "^3.1.4",
110 | "normalize-path": "^2.1.1"
111 | }
112 | },
113 | "append-buffer": {
114 | "version": "1.0.2",
115 | "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz",
116 | "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=",
117 | "dev": true,
118 | "requires": {
119 | "buffer-equal": "^1.0.0"
120 | }
121 | },
122 | "archy": {
123 | "version": "1.0.0",
124 | "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz",
125 | "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=",
126 | "dev": true
127 | },
128 | "argparse": {
129 | "version": "1.0.10",
130 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
131 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
132 | "requires": {
133 | "sprintf-js": "~1.0.2"
134 | }
135 | },
136 | "arr-diff": {
137 | "version": "4.0.0",
138 | "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
139 | "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA="
140 | },
141 | "arr-filter": {
142 | "version": "1.1.2",
143 | "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz",
144 | "integrity": "sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4=",
145 | "dev": true,
146 | "requires": {
147 | "make-iterator": "^1.0.0"
148 | }
149 | },
150 | "arr-flatten": {
151 | "version": "1.1.0",
152 | "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
153 | "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
154 | "dev": true
155 | },
156 | "arr-map": {
157 | "version": "2.0.2",
158 | "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz",
159 | "integrity": "sha1-Onc0X/wc814qkYJWAfnljy4kysQ=",
160 | "dev": true,
161 | "requires": {
162 | "make-iterator": "^1.0.0"
163 | }
164 | },
165 | "arr-union": {
166 | "version": "3.1.0",
167 | "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
168 | "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ="
169 | },
170 | "array-each": {
171 | "version": "1.0.1",
172 | "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz",
173 | "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=",
174 | "dev": true
175 | },
176 | "array-initial": {
177 | "version": "1.1.0",
178 | "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz",
179 | "integrity": "sha1-L6dLJnOTccOUe9enrcc74zSz15U=",
180 | "dev": true,
181 | "requires": {
182 | "array-slice": "^1.0.0",
183 | "is-number": "^4.0.0"
184 | },
185 | "dependencies": {
186 | "is-number": {
187 | "version": "4.0.0",
188 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
189 | "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==",
190 | "dev": true
191 | }
192 | }
193 | },
194 | "array-last": {
195 | "version": "1.3.0",
196 | "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz",
197 | "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==",
198 | "dev": true,
199 | "requires": {
200 | "is-number": "^4.0.0"
201 | },
202 | "dependencies": {
203 | "is-number": {
204 | "version": "4.0.0",
205 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
206 | "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==",
207 | "dev": true
208 | }
209 | }
210 | },
211 | "array-slice": {
212 | "version": "1.1.0",
213 | "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz",
214 | "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==",
215 | "dev": true
216 | },
217 | "array-sort": {
218 | "version": "1.0.0",
219 | "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz",
220 | "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==",
221 | "dev": true,
222 | "requires": {
223 | "default-compare": "^1.0.0",
224 | "get-value": "^2.0.6",
225 | "kind-of": "^5.0.2"
226 | },
227 | "dependencies": {
228 | "kind-of": {
229 | "version": "5.1.0",
230 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
231 | "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
232 | "dev": true
233 | }
234 | }
235 | },
236 | "array-unique": {
237 | "version": "0.3.2",
238 | "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
239 | "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
240 | "dev": true
241 | },
242 | "ascii-table": {
243 | "version": "0.0.9",
244 | "resolved": "https://registry.npmjs.org/ascii-table/-/ascii-table-0.0.9.tgz",
245 | "integrity": "sha1-BqZgTWpV1L9BqaR9mHLXp42jHnM="
246 | },
247 | "asn1": {
248 | "version": "0.2.4",
249 | "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
250 | "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
251 | "optional": true,
252 | "requires": {
253 | "safer-buffer": "~2.1.0"
254 | }
255 | },
256 | "assert-plus": {
257 | "version": "1.0.0",
258 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
259 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
260 | },
261 | "assertion-error": {
262 | "version": "1.1.0",
263 | "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
264 | "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
265 | "dev": true
266 | },
267 | "assign-symbols": {
268 | "version": "1.0.0",
269 | "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
270 | "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c="
271 | },
272 | "async": {
273 | "version": "2.6.1",
274 | "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz",
275 | "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==",
276 | "requires": {
277 | "lodash": "^4.17.10"
278 | }
279 | },
280 | "async-done": {
281 | "version": "1.3.1",
282 | "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.1.tgz",
283 | "integrity": "sha512-R1BaUeJ4PMoLNJuk+0tLJgjmEqVsdN118+Z8O+alhnQDQgy0kmD5Mqi0DNEmMx2LM0Ed5yekKu+ZXYvIHceicg==",
284 | "dev": true,
285 | "requires": {
286 | "end-of-stream": "^1.1.0",
287 | "once": "^1.3.2",
288 | "process-nextick-args": "^1.0.7",
289 | "stream-exhaust": "^1.0.1"
290 | },
291 | "dependencies": {
292 | "process-nextick-args": {
293 | "version": "1.0.7",
294 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
295 | "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=",
296 | "dev": true
297 | }
298 | }
299 | },
300 | "async-each": {
301 | "version": "1.0.1",
302 | "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz",
303 | "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=",
304 | "dev": true
305 | },
306 | "async-settle": {
307 | "version": "1.0.0",
308 | "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz",
309 | "integrity": "sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs=",
310 | "dev": true,
311 | "requires": {
312 | "async-done": "^1.2.2"
313 | }
314 | },
315 | "asynckit": {
316 | "version": "0.4.0",
317 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
318 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
319 | "optional": true
320 | },
321 | "atob": {
322 | "version": "2.1.2",
323 | "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
324 | "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg=="
325 | },
326 | "aws-sign2": {
327 | "version": "0.7.0",
328 | "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
329 | "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
330 | "optional": true
331 | },
332 | "aws4": {
333 | "version": "1.8.0",
334 | "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
335 | "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
336 | "optional": true
337 | },
338 | "bach": {
339 | "version": "1.2.0",
340 | "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz",
341 | "integrity": "sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA=",
342 | "dev": true,
343 | "requires": {
344 | "arr-filter": "^1.1.1",
345 | "arr-flatten": "^1.0.1",
346 | "arr-map": "^2.0.0",
347 | "array-each": "^1.0.0",
348 | "array-initial": "^1.0.0",
349 | "array-last": "^1.1.1",
350 | "async-done": "^1.2.2",
351 | "async-settle": "^1.0.0",
352 | "now-and-later": "^2.0.0"
353 | }
354 | },
355 | "balanced-match": {
356 | "version": "1.0.0",
357 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
358 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
359 | },
360 | "base": {
361 | "version": "0.11.2",
362 | "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
363 | "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
364 | "dev": true,
365 | "requires": {
366 | "cache-base": "^1.0.1",
367 | "class-utils": "^0.3.5",
368 | "component-emitter": "^1.2.1",
369 | "define-property": "^1.0.0",
370 | "isobject": "^3.0.1",
371 | "mixin-deep": "^1.2.0",
372 | "pascalcase": "^0.1.1"
373 | },
374 | "dependencies": {
375 | "define-property": {
376 | "version": "1.0.0",
377 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
378 | "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
379 | "dev": true,
380 | "requires": {
381 | "is-descriptor": "^1.0.0"
382 | }
383 | },
384 | "is-accessor-descriptor": {
385 | "version": "1.0.0",
386 | "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
387 | "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
388 | "dev": true,
389 | "requires": {
390 | "kind-of": "^6.0.0"
391 | }
392 | },
393 | "is-data-descriptor": {
394 | "version": "1.0.0",
395 | "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
396 | "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
397 | "dev": true,
398 | "requires": {
399 | "kind-of": "^6.0.0"
400 | }
401 | },
402 | "is-descriptor": {
403 | "version": "1.0.2",
404 | "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
405 | "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
406 | "dev": true,
407 | "requires": {
408 | "is-accessor-descriptor": "^1.0.0",
409 | "is-data-descriptor": "^1.0.0",
410 | "kind-of": "^6.0.2"
411 | }
412 | }
413 | }
414 | },
415 | "batch": {
416 | "version": "0.6.1",
417 | "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz",
418 | "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY="
419 | },
420 | "bcrypt-pbkdf": {
421 | "version": "1.0.2",
422 | "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
423 | "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
424 | "optional": true,
425 | "requires": {
426 | "tweetnacl": "^0.14.3"
427 | }
428 | },
429 | "binary-extensions": {
430 | "version": "1.12.0",
431 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.12.0.tgz",
432 | "integrity": "sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg==",
433 | "dev": true
434 | },
435 | "body": {
436 | "version": "5.1.0",
437 | "resolved": "https://registry.npmjs.org/body/-/body-5.1.0.tgz",
438 | "integrity": "sha1-5LoM5BCkaTYyM2dgnstOZVMSUGk=",
439 | "requires": {
440 | "continuable-cache": "^0.3.1",
441 | "error": "^7.0.0",
442 | "raw-body": "~1.1.0",
443 | "safe-json-parse": "~1.0.1"
444 | }
445 | },
446 | "brace-expansion": {
447 | "version": "1.1.11",
448 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
449 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
450 | "requires": {
451 | "balanced-match": "^1.0.0",
452 | "concat-map": "0.0.1"
453 | }
454 | },
455 | "braces": {
456 | "version": "2.3.2",
457 | "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
458 | "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
459 | "dev": true,
460 | "requires": {
461 | "arr-flatten": "^1.1.0",
462 | "array-unique": "^0.3.2",
463 | "extend-shallow": "^2.0.1",
464 | "fill-range": "^4.0.0",
465 | "isobject": "^3.0.1",
466 | "repeat-element": "^1.1.2",
467 | "snapdragon": "^0.8.1",
468 | "snapdragon-node": "^2.0.1",
469 | "split-string": "^3.0.2",
470 | "to-regex": "^3.0.1"
471 | },
472 | "dependencies": {
473 | "extend-shallow": {
474 | "version": "2.0.1",
475 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
476 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
477 | "dev": true,
478 | "requires": {
479 | "is-extendable": "^0.1.0"
480 | }
481 | },
482 | "is-extendable": {
483 | "version": "0.1.1",
484 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
485 | "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
486 | "dev": true
487 | }
488 | }
489 | },
490 | "browser-stdout": {
491 | "version": "1.3.1",
492 | "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
493 | "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
494 | "dev": true
495 | },
496 | "buffer-equal": {
497 | "version": "1.0.0",
498 | "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz",
499 | "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=",
500 | "dev": true
501 | },
502 | "buffer-from": {
503 | "version": "1.1.1",
504 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
505 | "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="
506 | },
507 | "builtin-modules": {
508 | "version": "1.1.1",
509 | "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
510 | "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
511 | "dev": true
512 | },
513 | "bytes": {
514 | "version": "1.0.0",
515 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz",
516 | "integrity": "sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g="
517 | },
518 | "cache-base": {
519 | "version": "1.0.1",
520 | "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
521 | "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
522 | "dev": true,
523 | "requires": {
524 | "collection-visit": "^1.0.0",
525 | "component-emitter": "^1.2.1",
526 | "get-value": "^2.0.6",
527 | "has-value": "^1.0.0",
528 | "isobject": "^3.0.1",
529 | "set-value": "^2.0.0",
530 | "to-object-path": "^0.3.0",
531 | "union-value": "^1.0.0",
532 | "unset-value": "^1.0.0"
533 | }
534 | },
535 | "camelcase": {
536 | "version": "3.0.0",
537 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
538 | "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
539 | "dev": true
540 | },
541 | "caseless": {
542 | "version": "0.12.0",
543 | "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
544 | "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
545 | "optional": true
546 | },
547 | "chai": {
548 | "version": "4.2.0",
549 | "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz",
550 | "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==",
551 | "dev": true,
552 | "requires": {
553 | "assertion-error": "^1.1.0",
554 | "check-error": "^1.0.2",
555 | "deep-eql": "^3.0.1",
556 | "get-func-name": "^2.0.0",
557 | "pathval": "^1.1.0",
558 | "type-detect": "^4.0.5"
559 | }
560 | },
561 | "check-error": {
562 | "version": "1.0.2",
563 | "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz",
564 | "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=",
565 | "dev": true
566 | },
567 | "chokidar": {
568 | "version": "2.0.4",
569 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz",
570 | "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==",
571 | "dev": true,
572 | "requires": {
573 | "anymatch": "^2.0.0",
574 | "async-each": "^1.0.0",
575 | "braces": "^2.3.0",
576 | "fsevents": "^1.2.2",
577 | "glob-parent": "^3.1.0",
578 | "inherits": "^2.0.1",
579 | "is-binary-path": "^1.0.0",
580 | "is-glob": "^4.0.0",
581 | "lodash.debounce": "^4.0.8",
582 | "normalize-path": "^2.1.1",
583 | "path-is-absolute": "^1.0.0",
584 | "readdirp": "^2.0.0",
585 | "upath": "^1.0.5"
586 | }
587 | },
588 | "class-utils": {
589 | "version": "0.3.6",
590 | "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
591 | "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
592 | "dev": true,
593 | "requires": {
594 | "arr-union": "^3.1.0",
595 | "define-property": "^0.2.5",
596 | "isobject": "^3.0.0",
597 | "static-extend": "^0.1.1"
598 | },
599 | "dependencies": {
600 | "define-property": {
601 | "version": "0.2.5",
602 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
603 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
604 | "dev": true,
605 | "requires": {
606 | "is-descriptor": "^0.1.0"
607 | }
608 | }
609 | }
610 | },
611 | "cli": {
612 | "version": "1.0.1",
613 | "resolved": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz",
614 | "integrity": "sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ=",
615 | "requires": {
616 | "exit": "0.1.2",
617 | "glob": "^7.1.1"
618 | }
619 | },
620 | "cli-color": {
621 | "version": "1.4.0",
622 | "resolved": "https://registry.npmjs.org/cli-color/-/cli-color-1.4.0.tgz",
623 | "integrity": "sha512-xu6RvQqqrWEo6MPR1eixqGPywhYBHRs653F9jfXB2Hx4jdM/3WxiNE1vppRmxtMIfl16SFYTpYlrnqH/HsK/2w==",
624 | "requires": {
625 | "ansi-regex": "^2.1.1",
626 | "d": "1",
627 | "es5-ext": "^0.10.46",
628 | "es6-iterator": "^2.0.3",
629 | "memoizee": "^0.4.14",
630 | "timers-ext": "^0.1.5"
631 | }
632 | },
633 | "cliui": {
634 | "version": "3.2.0",
635 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
636 | "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
637 | "dev": true,
638 | "requires": {
639 | "string-width": "^1.0.1",
640 | "strip-ansi": "^3.0.1",
641 | "wrap-ansi": "^2.0.0"
642 | }
643 | },
644 | "clone": {
645 | "version": "2.1.2",
646 | "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
647 | "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=",
648 | "dev": true
649 | },
650 | "clone-buffer": {
651 | "version": "1.0.0",
652 | "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz",
653 | "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=",
654 | "dev": true
655 | },
656 | "clone-stats": {
657 | "version": "1.0.0",
658 | "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz",
659 | "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=",
660 | "dev": true
661 | },
662 | "cloneable-readable": {
663 | "version": "1.1.2",
664 | "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.2.tgz",
665 | "integrity": "sha512-Bq6+4t+lbM8vhTs/Bef5c5AdEMtapp/iFb6+s4/Hh9MVTt8OLKH7ZOOZSCT+Ys7hsHvqv0GuMPJ1lnQJVHvxpg==",
666 | "dev": true,
667 | "requires": {
668 | "inherits": "^2.0.1",
669 | "process-nextick-args": "^2.0.0",
670 | "readable-stream": "^2.3.5"
671 | }
672 | },
673 | "code-point-at": {
674 | "version": "1.1.0",
675 | "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
676 | "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
677 | "dev": true
678 | },
679 | "collection-map": {
680 | "version": "1.0.0",
681 | "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz",
682 | "integrity": "sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw=",
683 | "dev": true,
684 | "requires": {
685 | "arr-map": "^2.0.2",
686 | "for-own": "^1.0.0",
687 | "make-iterator": "^1.0.0"
688 | }
689 | },
690 | "collection-visit": {
691 | "version": "1.0.0",
692 | "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
693 | "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
694 | "dev": true,
695 | "requires": {
696 | "map-visit": "^1.0.0",
697 | "object-visit": "^1.0.0"
698 | }
699 | },
700 | "color-support": {
701 | "version": "1.1.3",
702 | "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
703 | "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg=="
704 | },
705 | "combined-stream": {
706 | "version": "1.0.7",
707 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz",
708 | "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==",
709 | "requires": {
710 | "delayed-stream": "~1.0.0"
711 | }
712 | },
713 | "commander": {
714 | "version": "2.15.1",
715 | "resolved": "http://registry.npmjs.org/commander/-/commander-2.15.1.tgz",
716 | "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==",
717 | "dev": true
718 | },
719 | "component-emitter": {
720 | "version": "1.2.1",
721 | "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
722 | "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
723 | "dev": true
724 | },
725 | "concat-map": {
726 | "version": "0.0.1",
727 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
728 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
729 | },
730 | "concat-stream": {
731 | "version": "1.6.2",
732 | "resolved": "http://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
733 | "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
734 | "requires": {
735 | "buffer-from": "^1.0.0",
736 | "inherits": "^2.0.3",
737 | "readable-stream": "^2.2.2",
738 | "typedarray": "^0.0.6"
739 | }
740 | },
741 | "connect": {
742 | "version": "3.6.6",
743 | "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.6.tgz",
744 | "integrity": "sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ=",
745 | "requires": {
746 | "debug": "2.6.9",
747 | "finalhandler": "1.1.0",
748 | "parseurl": "~1.3.2",
749 | "utils-merge": "1.0.1"
750 | }
751 | },
752 | "connect-livereload": {
753 | "version": "0.6.1",
754 | "resolved": "https://registry.npmjs.org/connect-livereload/-/connect-livereload-0.6.1.tgz",
755 | "integrity": "sha512-3R0kMOdL7CjJpU66fzAkCe6HNtd3AavCS4m+uW4KtJjrdGPT0SQEZieAYd+cm+lJoBznNQ4lqipYWkhBMgk00g=="
756 | },
757 | "continuable-cache": {
758 | "version": "0.3.1",
759 | "resolved": "https://registry.npmjs.org/continuable-cache/-/continuable-cache-0.3.1.tgz",
760 | "integrity": "sha1-vXJ6f67XfnH/OYWskzUakSczrQ8="
761 | },
762 | "convert-source-map": {
763 | "version": "1.6.0",
764 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz",
765 | "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==",
766 | "dev": true,
767 | "requires": {
768 | "safe-buffer": "~5.1.1"
769 | }
770 | },
771 | "copy-descriptor": {
772 | "version": "0.1.1",
773 | "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
774 | "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
775 | "dev": true
776 | },
777 | "copy-props": {
778 | "version": "2.0.4",
779 | "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.4.tgz",
780 | "integrity": "sha512-7cjuUME+p+S3HZlbllgsn2CDwS+5eCCX16qBgNC4jgSTf49qR1VKy/Zhl400m0IQXl/bPGEVqncgUUMjrr4s8A==",
781 | "dev": true,
782 | "requires": {
783 | "each-props": "^1.3.0",
784 | "is-plain-object": "^2.0.1"
785 | }
786 | },
787 | "core-util-is": {
788 | "version": "1.0.2",
789 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
790 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
791 | },
792 | "css": {
793 | "version": "2.2.4",
794 | "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz",
795 | "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==",
796 | "requires": {
797 | "inherits": "^2.0.3",
798 | "source-map": "^0.6.1",
799 | "source-map-resolve": "^0.5.2",
800 | "urix": "^0.1.0"
801 | }
802 | },
803 | "css-shorthand-properties": {
804 | "version": "1.1.1",
805 | "resolved": "https://registry.npmjs.org/css-shorthand-properties/-/css-shorthand-properties-1.1.1.tgz",
806 | "integrity": "sha512-Md+Juc7M3uOdbAFwOYlTrccIZ7oCFuzrhKYQjdeUEW/sE1hv17Jp/Bws+ReOPpGVBTYCBoYo+G17V5Qo8QQ75A=="
807 | },
808 | "csv-string": {
809 | "version": "3.1.5",
810 | "resolved": "https://registry.npmjs.org/csv-string/-/csv-string-3.1.5.tgz",
811 | "integrity": "sha512-vkKwis9X1l31JwPsnqaoNo3PZx7k+07dlDDJ0jXgq7tCH3lIxiIaD9sAt9ETBjKFUR+nNi7PnTTpZuFy6kJe4w=="
812 | },
813 | "d": {
814 | "version": "1.0.0",
815 | "resolved": "http://registry.npmjs.org/d/-/d-1.0.0.tgz",
816 | "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
817 | "requires": {
818 | "es5-ext": "^0.10.9"
819 | }
820 | },
821 | "dashdash": {
822 | "version": "1.14.1",
823 | "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
824 | "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
825 | "optional": true,
826 | "requires": {
827 | "assert-plus": "^1.0.0"
828 | }
829 | },
830 | "debug": {
831 | "version": "2.6.9",
832 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
833 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
834 | "requires": {
835 | "ms": "2.0.0"
836 | }
837 | },
838 | "decamelize": {
839 | "version": "1.2.0",
840 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
841 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
842 | "dev": true
843 | },
844 | "decode-uri-component": {
845 | "version": "0.2.0",
846 | "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
847 | "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU="
848 | },
849 | "deep-eql": {
850 | "version": "3.0.1",
851 | "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz",
852 | "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==",
853 | "dev": true,
854 | "requires": {
855 | "type-detect": "^4.0.0"
856 | }
857 | },
858 | "default-compare": {
859 | "version": "1.0.0",
860 | "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz",
861 | "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==",
862 | "dev": true,
863 | "requires": {
864 | "kind-of": "^5.0.2"
865 | },
866 | "dependencies": {
867 | "kind-of": {
868 | "version": "5.1.0",
869 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
870 | "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
871 | "dev": true
872 | }
873 | }
874 | },
875 | "default-resolution": {
876 | "version": "2.0.0",
877 | "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz",
878 | "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=",
879 | "dev": true
880 | },
881 | "define-properties": {
882 | "version": "1.1.3",
883 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
884 | "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
885 | "dev": true,
886 | "requires": {
887 | "object-keys": "^1.0.12"
888 | }
889 | },
890 | "define-property": {
891 | "version": "2.0.2",
892 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
893 | "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
894 | "dev": true,
895 | "requires": {
896 | "is-descriptor": "^1.0.2",
897 | "isobject": "^3.0.1"
898 | },
899 | "dependencies": {
900 | "is-accessor-descriptor": {
901 | "version": "1.0.0",
902 | "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
903 | "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
904 | "dev": true,
905 | "requires": {
906 | "kind-of": "^6.0.0"
907 | }
908 | },
909 | "is-data-descriptor": {
910 | "version": "1.0.0",
911 | "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
912 | "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
913 | "dev": true,
914 | "requires": {
915 | "kind-of": "^6.0.0"
916 | }
917 | },
918 | "is-descriptor": {
919 | "version": "1.0.2",
920 | "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
921 | "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
922 | "dev": true,
923 | "requires": {
924 | "is-accessor-descriptor": "^1.0.0",
925 | "is-data-descriptor": "^1.0.0",
926 | "kind-of": "^6.0.2"
927 | }
928 | }
929 | }
930 | },
931 | "delayed-stream": {
932 | "version": "1.0.0",
933 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
934 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
935 | },
936 | "depd": {
937 | "version": "1.1.2",
938 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
939 | "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
940 | },
941 | "destroy": {
942 | "version": "1.0.4",
943 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
944 | "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
945 | },
946 | "detect-file": {
947 | "version": "1.0.0",
948 | "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz",
949 | "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=",
950 | "dev": true
951 | },
952 | "diff": {
953 | "version": "3.5.0",
954 | "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
955 | "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
956 | "dev": true
957 | },
958 | "duplexify": {
959 | "version": "3.6.1",
960 | "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.1.tgz",
961 | "integrity": "sha512-vM58DwdnKmty+FSPzT14K9JXb90H+j5emaR4KYbr2KTIz00WHGbWOe5ghQTx233ZCLZtrGDALzKwcjEtSt35mA==",
962 | "dev": true,
963 | "requires": {
964 | "end-of-stream": "^1.0.0",
965 | "inherits": "^2.0.1",
966 | "readable-stream": "^2.0.0",
967 | "stream-shift": "^1.0.0"
968 | }
969 | },
970 | "each-props": {
971 | "version": "1.3.2",
972 | "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz",
973 | "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==",
974 | "dev": true,
975 | "requires": {
976 | "is-plain-object": "^2.0.1",
977 | "object.defaults": "^1.1.0"
978 | }
979 | },
980 | "ecc-jsbn": {
981 | "version": "0.1.2",
982 | "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
983 | "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
984 | "optional": true,
985 | "requires": {
986 | "jsbn": "~0.1.0",
987 | "safer-buffer": "^2.1.0"
988 | }
989 | },
990 | "ee-first": {
991 | "version": "1.1.1",
992 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
993 | "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
994 | },
995 | "encodeurl": {
996 | "version": "1.0.2",
997 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
998 | "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
999 | },
1000 | "end-of-stream": {
1001 | "version": "1.4.1",
1002 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
1003 | "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
1004 | "dev": true,
1005 | "requires": {
1006 | "once": "^1.4.0"
1007 | }
1008 | },
1009 | "error": {
1010 | "version": "7.0.2",
1011 | "resolved": "https://registry.npmjs.org/error/-/error-7.0.2.tgz",
1012 | "integrity": "sha1-pfdf/02ZJhJt2sDqXcOOaJFTywI=",
1013 | "requires": {
1014 | "string-template": "~0.2.1",
1015 | "xtend": "~4.0.0"
1016 | }
1017 | },
1018 | "error-ex": {
1019 | "version": "1.3.2",
1020 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
1021 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
1022 | "dev": true,
1023 | "requires": {
1024 | "is-arrayish": "^0.2.1"
1025 | }
1026 | },
1027 | "es5-ext": {
1028 | "version": "0.10.46",
1029 | "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.46.tgz",
1030 | "integrity": "sha512-24XxRvJXNFwEMpJb3nOkiRJKRoupmjYmOPVlI65Qy2SrtxwOTB+g6ODjBKOtwEHbYrhWRty9xxOWLNdClT2djw==",
1031 | "requires": {
1032 | "es6-iterator": "~2.0.3",
1033 | "es6-symbol": "~3.1.1",
1034 | "next-tick": "1"
1035 | }
1036 | },
1037 | "es6-iterator": {
1038 | "version": "2.0.3",
1039 | "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
1040 | "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
1041 | "requires": {
1042 | "d": "1",
1043 | "es5-ext": "^0.10.35",
1044 | "es6-symbol": "^3.1.1"
1045 | }
1046 | },
1047 | "es6-promise": {
1048 | "version": "4.2.5",
1049 | "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.5.tgz",
1050 | "integrity": "sha512-n6wvpdE43VFtJq+lUDYDBFUwV8TZbuGXLV4D6wKafg13ldznKsyEvatubnmUe31zcvelSzOHF+XbaT+Bl9ObDg=="
1051 | },
1052 | "es6-promisify": {
1053 | "version": "5.0.0",
1054 | "resolved": "http://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
1055 | "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=",
1056 | "requires": {
1057 | "es6-promise": "^4.0.3"
1058 | }
1059 | },
1060 | "es6-symbol": {
1061 | "version": "3.1.1",
1062 | "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
1063 | "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
1064 | "requires": {
1065 | "d": "1",
1066 | "es5-ext": "~0.10.14"
1067 | }
1068 | },
1069 | "es6-weak-map": {
1070 | "version": "2.0.2",
1071 | "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz",
1072 | "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=",
1073 | "requires": {
1074 | "d": "1",
1075 | "es5-ext": "^0.10.14",
1076 | "es6-iterator": "^2.0.1",
1077 | "es6-symbol": "^3.1.1"
1078 | }
1079 | },
1080 | "escape-html": {
1081 | "version": "1.0.3",
1082 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
1083 | "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
1084 | },
1085 | "escape-string-regexp": {
1086 | "version": "1.0.5",
1087 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
1088 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
1089 | "dev": true
1090 | },
1091 | "esprima": {
1092 | "version": "4.0.1",
1093 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
1094 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
1095 | },
1096 | "etag": {
1097 | "version": "1.8.1",
1098 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
1099 | "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
1100 | },
1101 | "event-emitter": {
1102 | "version": "0.3.5",
1103 | "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
1104 | "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
1105 | "requires": {
1106 | "d": "1",
1107 | "es5-ext": "~0.10.14"
1108 | }
1109 | },
1110 | "exit": {
1111 | "version": "0.1.2",
1112 | "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
1113 | "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw="
1114 | },
1115 | "expand-brackets": {
1116 | "version": "2.1.4",
1117 | "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
1118 | "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
1119 | "dev": true,
1120 | "requires": {
1121 | "debug": "^2.3.3",
1122 | "define-property": "^0.2.5",
1123 | "extend-shallow": "^2.0.1",
1124 | "posix-character-classes": "^0.1.0",
1125 | "regex-not": "^1.0.0",
1126 | "snapdragon": "^0.8.1",
1127 | "to-regex": "^3.0.1"
1128 | },
1129 | "dependencies": {
1130 | "define-property": {
1131 | "version": "0.2.5",
1132 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
1133 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
1134 | "dev": true,
1135 | "requires": {
1136 | "is-descriptor": "^0.1.0"
1137 | }
1138 | },
1139 | "extend-shallow": {
1140 | "version": "2.0.1",
1141 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
1142 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
1143 | "dev": true,
1144 | "requires": {
1145 | "is-extendable": "^0.1.0"
1146 | }
1147 | },
1148 | "is-extendable": {
1149 | "version": "0.1.1",
1150 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
1151 | "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
1152 | "dev": true
1153 | }
1154 | }
1155 | },
1156 | "expand-tilde": {
1157 | "version": "2.0.2",
1158 | "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz",
1159 | "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=",
1160 | "dev": true,
1161 | "requires": {
1162 | "homedir-polyfill": "^1.0.1"
1163 | }
1164 | },
1165 | "extend": {
1166 | "version": "3.0.2",
1167 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
1168 | "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
1169 | },
1170 | "extend-shallow": {
1171 | "version": "3.0.2",
1172 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
1173 | "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
1174 | "requires": {
1175 | "assign-symbols": "^1.0.0",
1176 | "is-extendable": "^1.0.1"
1177 | }
1178 | },
1179 | "extglob": {
1180 | "version": "2.0.4",
1181 | "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
1182 | "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
1183 | "dev": true,
1184 | "requires": {
1185 | "array-unique": "^0.3.2",
1186 | "define-property": "^1.0.0",
1187 | "expand-brackets": "^2.1.4",
1188 | "extend-shallow": "^2.0.1",
1189 | "fragment-cache": "^0.2.1",
1190 | "regex-not": "^1.0.0",
1191 | "snapdragon": "^0.8.1",
1192 | "to-regex": "^3.0.1"
1193 | },
1194 | "dependencies": {
1195 | "define-property": {
1196 | "version": "1.0.0",
1197 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
1198 | "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
1199 | "dev": true,
1200 | "requires": {
1201 | "is-descriptor": "^1.0.0"
1202 | }
1203 | },
1204 | "extend-shallow": {
1205 | "version": "2.0.1",
1206 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
1207 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
1208 | "dev": true,
1209 | "requires": {
1210 | "is-extendable": "^0.1.0"
1211 | }
1212 | },
1213 | "is-accessor-descriptor": {
1214 | "version": "1.0.0",
1215 | "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
1216 | "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
1217 | "dev": true,
1218 | "requires": {
1219 | "kind-of": "^6.0.0"
1220 | }
1221 | },
1222 | "is-data-descriptor": {
1223 | "version": "1.0.0",
1224 | "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
1225 | "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
1226 | "dev": true,
1227 | "requires": {
1228 | "kind-of": "^6.0.0"
1229 | }
1230 | },
1231 | "is-descriptor": {
1232 | "version": "1.0.2",
1233 | "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
1234 | "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
1235 | "dev": true,
1236 | "requires": {
1237 | "is-accessor-descriptor": "^1.0.0",
1238 | "is-data-descriptor": "^1.0.0",
1239 | "kind-of": "^6.0.2"
1240 | }
1241 | },
1242 | "is-extendable": {
1243 | "version": "0.1.1",
1244 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
1245 | "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
1246 | "dev": true
1247 | }
1248 | }
1249 | },
1250 | "extract-zip": {
1251 | "version": "1.6.7",
1252 | "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz",
1253 | "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=",
1254 | "optional": true,
1255 | "requires": {
1256 | "concat-stream": "1.6.2",
1257 | "debug": "2.6.9",
1258 | "mkdirp": "0.5.1",
1259 | "yauzl": "2.4.1"
1260 | }
1261 | },
1262 | "extsprintf": {
1263 | "version": "1.3.0",
1264 | "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
1265 | "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
1266 | },
1267 | "fancy-log": {
1268 | "version": "1.3.3",
1269 | "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz",
1270 | "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==",
1271 | "requires": {
1272 | "ansi-gray": "^0.1.1",
1273 | "color-support": "^1.1.3",
1274 | "parse-node-version": "^1.0.0",
1275 | "time-stamp": "^1.0.0"
1276 | }
1277 | },
1278 | "fast-deep-equal": {
1279 | "version": "2.0.1",
1280 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
1281 | "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
1282 | "optional": true
1283 | },
1284 | "fast-json-stable-stringify": {
1285 | "version": "2.0.0",
1286 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
1287 | "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
1288 | "optional": true
1289 | },
1290 | "fast-stats": {
1291 | "version": "0.0.4",
1292 | "resolved": "https://registry.npmjs.org/fast-stats/-/fast-stats-0.0.4.tgz",
1293 | "integrity": "sha512-u9JXZ4iVnLmhbqDAXTx9MH2yCWemZFwn+dKjYld2KKKzk/Yqm0uogg66HoKUc1bnmLhEUogyJeSSd1xAOCFzhg=="
1294 | },
1295 | "faye-websocket": {
1296 | "version": "0.10.0",
1297 | "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz",
1298 | "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=",
1299 | "requires": {
1300 | "websocket-driver": ">=0.5.1"
1301 | }
1302 | },
1303 | "fd-slicer": {
1304 | "version": "1.0.1",
1305 | "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz",
1306 | "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=",
1307 | "optional": true,
1308 | "requires": {
1309 | "pend": "~1.2.0"
1310 | }
1311 | },
1312 | "fill-range": {
1313 | "version": "4.0.0",
1314 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
1315 | "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
1316 | "dev": true,
1317 | "requires": {
1318 | "extend-shallow": "^2.0.1",
1319 | "is-number": "^3.0.0",
1320 | "repeat-string": "^1.6.1",
1321 | "to-regex-range": "^2.1.0"
1322 | },
1323 | "dependencies": {
1324 | "extend-shallow": {
1325 | "version": "2.0.1",
1326 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
1327 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
1328 | "dev": true,
1329 | "requires": {
1330 | "is-extendable": "^0.1.0"
1331 | }
1332 | },
1333 | "is-extendable": {
1334 | "version": "0.1.1",
1335 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
1336 | "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
1337 | "dev": true
1338 | }
1339 | }
1340 | },
1341 | "finalhandler": {
1342 | "version": "1.1.0",
1343 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz",
1344 | "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=",
1345 | "requires": {
1346 | "debug": "2.6.9",
1347 | "encodeurl": "~1.0.1",
1348 | "escape-html": "~1.0.3",
1349 | "on-finished": "~2.3.0",
1350 | "parseurl": "~1.3.2",
1351 | "statuses": "~1.3.1",
1352 | "unpipe": "~1.0.0"
1353 | }
1354 | },
1355 | "find-up": {
1356 | "version": "1.1.2",
1357 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
1358 | "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
1359 | "dev": true,
1360 | "requires": {
1361 | "path-exists": "^2.0.0",
1362 | "pinkie-promise": "^2.0.0"
1363 | }
1364 | },
1365 | "findup-sync": {
1366 | "version": "2.0.0",
1367 | "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz",
1368 | "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=",
1369 | "dev": true,
1370 | "requires": {
1371 | "detect-file": "^1.0.0",
1372 | "is-glob": "^3.1.0",
1373 | "micromatch": "^3.0.4",
1374 | "resolve-dir": "^1.0.1"
1375 | },
1376 | "dependencies": {
1377 | "is-glob": {
1378 | "version": "3.1.0",
1379 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
1380 | "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
1381 | "dev": true,
1382 | "requires": {
1383 | "is-extglob": "^2.1.0"
1384 | }
1385 | }
1386 | }
1387 | },
1388 | "fined": {
1389 | "version": "1.1.1",
1390 | "resolved": "https://registry.npmjs.org/fined/-/fined-1.1.1.tgz",
1391 | "integrity": "sha512-jQp949ZmEbiYHk3gkbdtpJ0G1+kgtLQBNdP5edFP7Fh+WAYceLQz6yO1SBj72Xkg8GVyTB3bBzAYrHJVh5Xd5g==",
1392 | "dev": true,
1393 | "requires": {
1394 | "expand-tilde": "^2.0.2",
1395 | "is-plain-object": "^2.0.3",
1396 | "object.defaults": "^1.1.0",
1397 | "object.pick": "^1.2.0",
1398 | "parse-filepath": "^1.0.1"
1399 | }
1400 | },
1401 | "flagged-respawn": {
1402 | "version": "1.0.1",
1403 | "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz",
1404 | "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==",
1405 | "dev": true
1406 | },
1407 | "flush-write-stream": {
1408 | "version": "1.0.3",
1409 | "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz",
1410 | "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==",
1411 | "dev": true,
1412 | "requires": {
1413 | "inherits": "^2.0.1",
1414 | "readable-stream": "^2.0.4"
1415 | }
1416 | },
1417 | "for-in": {
1418 | "version": "1.0.2",
1419 | "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
1420 | "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
1421 | "dev": true
1422 | },
1423 | "for-own": {
1424 | "version": "1.0.0",
1425 | "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz",
1426 | "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=",
1427 | "dev": true,
1428 | "requires": {
1429 | "for-in": "^1.0.1"
1430 | }
1431 | },
1432 | "forever-agent": {
1433 | "version": "0.6.1",
1434 | "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
1435 | "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
1436 | "optional": true
1437 | },
1438 | "form-data": {
1439 | "version": "2.3.3",
1440 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
1441 | "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
1442 | "optional": true,
1443 | "requires": {
1444 | "asynckit": "^0.4.0",
1445 | "combined-stream": "^1.0.6",
1446 | "mime-types": "^2.1.12"
1447 | }
1448 | },
1449 | "fragment-cache": {
1450 | "version": "0.2.1",
1451 | "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
1452 | "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
1453 | "dev": true,
1454 | "requires": {
1455 | "map-cache": "^0.2.2"
1456 | }
1457 | },
1458 | "fresh": {
1459 | "version": "0.5.2",
1460 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
1461 | "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
1462 | },
1463 | "fs-extra": {
1464 | "version": "1.0.0",
1465 | "resolved": "http://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz",
1466 | "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=",
1467 | "optional": true,
1468 | "requires": {
1469 | "graceful-fs": "^4.1.2",
1470 | "jsonfile": "^2.1.0",
1471 | "klaw": "^1.0.0"
1472 | }
1473 | },
1474 | "fs-mkdirp-stream": {
1475 | "version": "1.0.0",
1476 | "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz",
1477 | "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=",
1478 | "dev": true,
1479 | "requires": {
1480 | "graceful-fs": "^4.1.11",
1481 | "through2": "^2.0.3"
1482 | }
1483 | },
1484 | "fs.realpath": {
1485 | "version": "1.0.0",
1486 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
1487 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
1488 | },
1489 | "fsevents": {
1490 | "version": "1.2.4",
1491 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz",
1492 | "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==",
1493 | "dev": true,
1494 | "optional": true,
1495 | "requires": {
1496 | "nan": "^2.9.2",
1497 | "node-pre-gyp": "^0.10.0"
1498 | },
1499 | "dependencies": {
1500 | "abbrev": {
1501 | "version": "1.1.1",
1502 | "bundled": true,
1503 | "dev": true,
1504 | "optional": true
1505 | },
1506 | "ansi-regex": {
1507 | "version": "2.1.1",
1508 | "bundled": true,
1509 | "dev": true
1510 | },
1511 | "aproba": {
1512 | "version": "1.2.0",
1513 | "bundled": true,
1514 | "dev": true,
1515 | "optional": true
1516 | },
1517 | "are-we-there-yet": {
1518 | "version": "1.1.4",
1519 | "bundled": true,
1520 | "dev": true,
1521 | "optional": true,
1522 | "requires": {
1523 | "delegates": "^1.0.0",
1524 | "readable-stream": "^2.0.6"
1525 | }
1526 | },
1527 | "balanced-match": {
1528 | "version": "1.0.0",
1529 | "bundled": true,
1530 | "dev": true,
1531 | "optional": true
1532 | },
1533 | "brace-expansion": {
1534 | "version": "1.1.11",
1535 | "bundled": true,
1536 | "dev": true,
1537 | "optional": true,
1538 | "requires": {
1539 | "balanced-match": "^1.0.0",
1540 | "concat-map": "0.0.1"
1541 | }
1542 | },
1543 | "chownr": {
1544 | "version": "1.0.1",
1545 | "bundled": true,
1546 | "dev": true,
1547 | "optional": true
1548 | },
1549 | "code-point-at": {
1550 | "version": "1.1.0",
1551 | "bundled": true,
1552 | "dev": true,
1553 | "optional": true
1554 | },
1555 | "concat-map": {
1556 | "version": "0.0.1",
1557 | "bundled": true,
1558 | "dev": true,
1559 | "optional": true
1560 | },
1561 | "console-control-strings": {
1562 | "version": "1.1.0",
1563 | "bundled": true,
1564 | "dev": true,
1565 | "optional": true
1566 | },
1567 | "core-util-is": {
1568 | "version": "1.0.2",
1569 | "bundled": true,
1570 | "dev": true,
1571 | "optional": true
1572 | },
1573 | "debug": {
1574 | "version": "2.6.9",
1575 | "bundled": true,
1576 | "dev": true,
1577 | "optional": true,
1578 | "requires": {
1579 | "ms": "2.0.0"
1580 | }
1581 | },
1582 | "deep-extend": {
1583 | "version": "0.5.1",
1584 | "bundled": true,
1585 | "dev": true,
1586 | "optional": true
1587 | },
1588 | "delegates": {
1589 | "version": "1.0.0",
1590 | "bundled": true,
1591 | "dev": true,
1592 | "optional": true
1593 | },
1594 | "detect-libc": {
1595 | "version": "1.0.3",
1596 | "bundled": true,
1597 | "dev": true,
1598 | "optional": true
1599 | },
1600 | "fs-minipass": {
1601 | "version": "1.2.5",
1602 | "bundled": true,
1603 | "dev": true,
1604 | "optional": true,
1605 | "requires": {
1606 | "minipass": "^2.2.1"
1607 | }
1608 | },
1609 | "fs.realpath": {
1610 | "version": "1.0.0",
1611 | "bundled": true,
1612 | "dev": true,
1613 | "optional": true
1614 | },
1615 | "gauge": {
1616 | "version": "2.7.4",
1617 | "bundled": true,
1618 | "dev": true,
1619 | "optional": true,
1620 | "requires": {
1621 | "aproba": "^1.0.3",
1622 | "console-control-strings": "^1.0.0",
1623 | "has-unicode": "^2.0.0",
1624 | "object-assign": "^4.1.0",
1625 | "signal-exit": "^3.0.0",
1626 | "string-width": "^1.0.1",
1627 | "strip-ansi": "^3.0.1",
1628 | "wide-align": "^1.1.0"
1629 | }
1630 | },
1631 | "glob": {
1632 | "version": "7.1.2",
1633 | "bundled": true,
1634 | "dev": true,
1635 | "optional": true,
1636 | "requires": {
1637 | "fs.realpath": "^1.0.0",
1638 | "inflight": "^1.0.4",
1639 | "inherits": "2",
1640 | "minimatch": "^3.0.4",
1641 | "once": "^1.3.0",
1642 | "path-is-absolute": "^1.0.0"
1643 | }
1644 | },
1645 | "has-unicode": {
1646 | "version": "2.0.1",
1647 | "bundled": true,
1648 | "dev": true,
1649 | "optional": true
1650 | },
1651 | "iconv-lite": {
1652 | "version": "0.4.21",
1653 | "bundled": true,
1654 | "dev": true,
1655 | "optional": true,
1656 | "requires": {
1657 | "safer-buffer": "^2.1.0"
1658 | }
1659 | },
1660 | "ignore-walk": {
1661 | "version": "3.0.1",
1662 | "bundled": true,
1663 | "dev": true,
1664 | "optional": true,
1665 | "requires": {
1666 | "minimatch": "^3.0.4"
1667 | }
1668 | },
1669 | "inflight": {
1670 | "version": "1.0.6",
1671 | "bundled": true,
1672 | "dev": true,
1673 | "optional": true,
1674 | "requires": {
1675 | "once": "^1.3.0",
1676 | "wrappy": "1"
1677 | }
1678 | },
1679 | "inherits": {
1680 | "version": "2.0.3",
1681 | "bundled": true,
1682 | "dev": true,
1683 | "optional": true
1684 | },
1685 | "ini": {
1686 | "version": "1.3.5",
1687 | "bundled": true,
1688 | "dev": true,
1689 | "optional": true
1690 | },
1691 | "is-fullwidth-code-point": {
1692 | "version": "1.0.0",
1693 | "bundled": true,
1694 | "dev": true,
1695 | "optional": true,
1696 | "requires": {
1697 | "number-is-nan": "^1.0.0"
1698 | }
1699 | },
1700 | "isarray": {
1701 | "version": "1.0.0",
1702 | "bundled": true,
1703 | "dev": true,
1704 | "optional": true
1705 | },
1706 | "minimatch": {
1707 | "version": "3.0.4",
1708 | "bundled": true,
1709 | "dev": true,
1710 | "optional": true,
1711 | "requires": {
1712 | "brace-expansion": "^1.1.7"
1713 | }
1714 | },
1715 | "minimist": {
1716 | "version": "0.0.8",
1717 | "bundled": true,
1718 | "dev": true,
1719 | "optional": true
1720 | },
1721 | "minipass": {
1722 | "version": "2.2.4",
1723 | "bundled": true,
1724 | "dev": true,
1725 | "optional": true,
1726 | "requires": {
1727 | "safe-buffer": "^5.1.1",
1728 | "yallist": "^3.0.0"
1729 | }
1730 | },
1731 | "minizlib": {
1732 | "version": "1.1.0",
1733 | "bundled": true,
1734 | "dev": true,
1735 | "optional": true,
1736 | "requires": {
1737 | "minipass": "^2.2.1"
1738 | }
1739 | },
1740 | "mkdirp": {
1741 | "version": "0.5.1",
1742 | "bundled": true,
1743 | "dev": true,
1744 | "optional": true,
1745 | "requires": {
1746 | "minimist": "0.0.8"
1747 | }
1748 | },
1749 | "ms": {
1750 | "version": "2.0.0",
1751 | "bundled": true,
1752 | "dev": true,
1753 | "optional": true
1754 | },
1755 | "needle": {
1756 | "version": "2.2.0",
1757 | "bundled": true,
1758 | "dev": true,
1759 | "optional": true,
1760 | "requires": {
1761 | "debug": "^2.1.2",
1762 | "iconv-lite": "^0.4.4",
1763 | "sax": "^1.2.4"
1764 | }
1765 | },
1766 | "node-pre-gyp": {
1767 | "version": "0.10.0",
1768 | "bundled": true,
1769 | "dev": true,
1770 | "optional": true,
1771 | "requires": {
1772 | "detect-libc": "^1.0.2",
1773 | "mkdirp": "^0.5.1",
1774 | "needle": "^2.2.0",
1775 | "nopt": "^4.0.1",
1776 | "npm-packlist": "^1.1.6",
1777 | "npmlog": "^4.0.2",
1778 | "rc": "^1.1.7",
1779 | "rimraf": "^2.6.1",
1780 | "semver": "^5.3.0",
1781 | "tar": "^4"
1782 | }
1783 | },
1784 | "nopt": {
1785 | "version": "4.0.1",
1786 | "bundled": true,
1787 | "dev": true,
1788 | "optional": true,
1789 | "requires": {
1790 | "abbrev": "1",
1791 | "osenv": "^0.1.4"
1792 | }
1793 | },
1794 | "npm-bundled": {
1795 | "version": "1.0.3",
1796 | "bundled": true,
1797 | "dev": true,
1798 | "optional": true
1799 | },
1800 | "npm-packlist": {
1801 | "version": "1.1.10",
1802 | "bundled": true,
1803 | "dev": true,
1804 | "optional": true,
1805 | "requires": {
1806 | "ignore-walk": "^3.0.1",
1807 | "npm-bundled": "^1.0.1"
1808 | }
1809 | },
1810 | "npmlog": {
1811 | "version": "4.1.2",
1812 | "bundled": true,
1813 | "dev": true,
1814 | "optional": true,
1815 | "requires": {
1816 | "are-we-there-yet": "~1.1.2",
1817 | "console-control-strings": "~1.1.0",
1818 | "gauge": "~2.7.3",
1819 | "set-blocking": "~2.0.0"
1820 | }
1821 | },
1822 | "number-is-nan": {
1823 | "version": "1.0.1",
1824 | "bundled": true,
1825 | "dev": true,
1826 | "optional": true
1827 | },
1828 | "object-assign": {
1829 | "version": "4.1.1",
1830 | "bundled": true,
1831 | "dev": true,
1832 | "optional": true
1833 | },
1834 | "once": {
1835 | "version": "1.4.0",
1836 | "bundled": true,
1837 | "dev": true,
1838 | "optional": true,
1839 | "requires": {
1840 | "wrappy": "1"
1841 | }
1842 | },
1843 | "os-homedir": {
1844 | "version": "1.0.2",
1845 | "bundled": true,
1846 | "dev": true,
1847 | "optional": true
1848 | },
1849 | "os-tmpdir": {
1850 | "version": "1.0.2",
1851 | "bundled": true,
1852 | "dev": true,
1853 | "optional": true
1854 | },
1855 | "osenv": {
1856 | "version": "0.1.5",
1857 | "bundled": true,
1858 | "dev": true,
1859 | "optional": true,
1860 | "requires": {
1861 | "os-homedir": "^1.0.0",
1862 | "os-tmpdir": "^1.0.0"
1863 | }
1864 | },
1865 | "path-is-absolute": {
1866 | "version": "1.0.1",
1867 | "bundled": true,
1868 | "dev": true,
1869 | "optional": true
1870 | },
1871 | "process-nextick-args": {
1872 | "version": "2.0.0",
1873 | "bundled": true,
1874 | "dev": true,
1875 | "optional": true
1876 | },
1877 | "rc": {
1878 | "version": "1.2.7",
1879 | "bundled": true,
1880 | "dev": true,
1881 | "optional": true,
1882 | "requires": {
1883 | "deep-extend": "^0.5.1",
1884 | "ini": "~1.3.0",
1885 | "minimist": "^1.2.0",
1886 | "strip-json-comments": "~2.0.1"
1887 | },
1888 | "dependencies": {
1889 | "minimist": {
1890 | "version": "1.2.0",
1891 | "bundled": true,
1892 | "dev": true,
1893 | "optional": true
1894 | }
1895 | }
1896 | },
1897 | "readable-stream": {
1898 | "version": "2.3.6",
1899 | "bundled": true,
1900 | "dev": true,
1901 | "optional": true,
1902 | "requires": {
1903 | "core-util-is": "~1.0.0",
1904 | "inherits": "~2.0.3",
1905 | "isarray": "~1.0.0",
1906 | "process-nextick-args": "~2.0.0",
1907 | "safe-buffer": "~5.1.1",
1908 | "string_decoder": "~1.1.1",
1909 | "util-deprecate": "~1.0.1"
1910 | }
1911 | },
1912 | "rimraf": {
1913 | "version": "2.6.2",
1914 | "bundled": true,
1915 | "dev": true,
1916 | "optional": true,
1917 | "requires": {
1918 | "glob": "^7.0.5"
1919 | }
1920 | },
1921 | "safe-buffer": {
1922 | "version": "5.1.1",
1923 | "bundled": true,
1924 | "dev": true
1925 | },
1926 | "safer-buffer": {
1927 | "version": "2.1.2",
1928 | "bundled": true,
1929 | "dev": true,
1930 | "optional": true
1931 | },
1932 | "sax": {
1933 | "version": "1.2.4",
1934 | "bundled": true,
1935 | "dev": true,
1936 | "optional": true
1937 | },
1938 | "semver": {
1939 | "version": "5.5.0",
1940 | "bundled": true,
1941 | "dev": true,
1942 | "optional": true
1943 | },
1944 | "set-blocking": {
1945 | "version": "2.0.0",
1946 | "bundled": true,
1947 | "dev": true,
1948 | "optional": true
1949 | },
1950 | "signal-exit": {
1951 | "version": "3.0.2",
1952 | "bundled": true,
1953 | "dev": true,
1954 | "optional": true
1955 | },
1956 | "string-width": {
1957 | "version": "1.0.2",
1958 | "bundled": true,
1959 | "dev": true,
1960 | "optional": true,
1961 | "requires": {
1962 | "code-point-at": "^1.0.0",
1963 | "is-fullwidth-code-point": "^1.0.0",
1964 | "strip-ansi": "^3.0.0"
1965 | }
1966 | },
1967 | "string_decoder": {
1968 | "version": "1.1.1",
1969 | "bundled": true,
1970 | "dev": true,
1971 | "optional": true,
1972 | "requires": {
1973 | "safe-buffer": "~5.1.0"
1974 | }
1975 | },
1976 | "strip-ansi": {
1977 | "version": "3.0.1",
1978 | "bundled": true,
1979 | "dev": true,
1980 | "requires": {
1981 | "ansi-regex": "^2.0.0"
1982 | }
1983 | },
1984 | "strip-json-comments": {
1985 | "version": "2.0.1",
1986 | "bundled": true,
1987 | "dev": true,
1988 | "optional": true
1989 | },
1990 | "tar": {
1991 | "version": "4.4.1",
1992 | "bundled": true,
1993 | "dev": true,
1994 | "optional": true,
1995 | "requires": {
1996 | "chownr": "^1.0.1",
1997 | "fs-minipass": "^1.2.5",
1998 | "minipass": "^2.2.4",
1999 | "minizlib": "^1.1.0",
2000 | "mkdirp": "^0.5.0",
2001 | "safe-buffer": "^5.1.1",
2002 | "yallist": "^3.0.2"
2003 | }
2004 | },
2005 | "util-deprecate": {
2006 | "version": "1.0.2",
2007 | "bundled": true,
2008 | "dev": true,
2009 | "optional": true
2010 | },
2011 | "wide-align": {
2012 | "version": "1.1.2",
2013 | "bundled": true,
2014 | "dev": true,
2015 | "optional": true,
2016 | "requires": {
2017 | "string-width": "^1.0.2"
2018 | }
2019 | },
2020 | "wrappy": {
2021 | "version": "1.0.2",
2022 | "bundled": true,
2023 | "dev": true
2024 | },
2025 | "yallist": {
2026 | "version": "3.0.2",
2027 | "bundled": true,
2028 | "dev": true
2029 | }
2030 | }
2031 | },
2032 | "function-bind": {
2033 | "version": "1.1.1",
2034 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
2035 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
2036 | "dev": true
2037 | },
2038 | "get-caller-file": {
2039 | "version": "1.0.3",
2040 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
2041 | "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==",
2042 | "dev": true
2043 | },
2044 | "get-func-name": {
2045 | "version": "2.0.0",
2046 | "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz",
2047 | "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=",
2048 | "dev": true
2049 | },
2050 | "get-value": {
2051 | "version": "2.0.6",
2052 | "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
2053 | "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
2054 | "dev": true
2055 | },
2056 | "getpass": {
2057 | "version": "0.1.7",
2058 | "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
2059 | "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
2060 | "optional": true,
2061 | "requires": {
2062 | "assert-plus": "^1.0.0"
2063 | }
2064 | },
2065 | "glob": {
2066 | "version": "7.1.3",
2067 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
2068 | "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
2069 | "requires": {
2070 | "fs.realpath": "^1.0.0",
2071 | "inflight": "^1.0.4",
2072 | "inherits": "2",
2073 | "minimatch": "^3.0.4",
2074 | "once": "^1.3.0",
2075 | "path-is-absolute": "^1.0.0"
2076 | }
2077 | },
2078 | "glob-parent": {
2079 | "version": "3.1.0",
2080 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
2081 | "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
2082 | "dev": true,
2083 | "requires": {
2084 | "is-glob": "^3.1.0",
2085 | "path-dirname": "^1.0.0"
2086 | },
2087 | "dependencies": {
2088 | "is-glob": {
2089 | "version": "3.1.0",
2090 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
2091 | "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
2092 | "dev": true,
2093 | "requires": {
2094 | "is-extglob": "^2.1.0"
2095 | }
2096 | }
2097 | }
2098 | },
2099 | "glob-stream": {
2100 | "version": "6.1.0",
2101 | "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz",
2102 | "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=",
2103 | "dev": true,
2104 | "requires": {
2105 | "extend": "^3.0.0",
2106 | "glob": "^7.1.1",
2107 | "glob-parent": "^3.1.0",
2108 | "is-negated-glob": "^1.0.0",
2109 | "ordered-read-streams": "^1.0.0",
2110 | "pumpify": "^1.3.5",
2111 | "readable-stream": "^2.1.5",
2112 | "remove-trailing-separator": "^1.0.1",
2113 | "to-absolute-glob": "^2.0.0",
2114 | "unique-stream": "^2.0.2"
2115 | }
2116 | },
2117 | "glob-watcher": {
2118 | "version": "5.0.3",
2119 | "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.3.tgz",
2120 | "integrity": "sha512-8tWsULNEPHKQ2MR4zXuzSmqbdyV5PtwwCaWSGQ1WwHsJ07ilNeN1JB8ntxhckbnpSHaf9dXFUHzIWvm1I13dsg==",
2121 | "dev": true,
2122 | "requires": {
2123 | "anymatch": "^2.0.0",
2124 | "async-done": "^1.2.0",
2125 | "chokidar": "^2.0.0",
2126 | "is-negated-glob": "^1.0.0",
2127 | "just-debounce": "^1.0.0",
2128 | "object.defaults": "^1.1.0"
2129 | }
2130 | },
2131 | "global-modules": {
2132 | "version": "1.0.0",
2133 | "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz",
2134 | "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==",
2135 | "dev": true,
2136 | "requires": {
2137 | "global-prefix": "^1.0.1",
2138 | "is-windows": "^1.0.1",
2139 | "resolve-dir": "^1.0.0"
2140 | }
2141 | },
2142 | "global-prefix": {
2143 | "version": "1.0.2",
2144 | "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz",
2145 | "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=",
2146 | "dev": true,
2147 | "requires": {
2148 | "expand-tilde": "^2.0.2",
2149 | "homedir-polyfill": "^1.0.1",
2150 | "ini": "^1.3.4",
2151 | "is-windows": "^1.0.1",
2152 | "which": "^1.2.14"
2153 | }
2154 | },
2155 | "glogg": {
2156 | "version": "1.0.2",
2157 | "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz",
2158 | "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==",
2159 | "dev": true,
2160 | "requires": {
2161 | "sparkles": "^1.0.0"
2162 | }
2163 | },
2164 | "graceful-fs": {
2165 | "version": "4.1.15",
2166 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz",
2167 | "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA=="
2168 | },
2169 | "growl": {
2170 | "version": "1.10.5",
2171 | "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
2172 | "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==",
2173 | "dev": true
2174 | },
2175 | "gulp": {
2176 | "version": "4.0.0",
2177 | "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.0.tgz",
2178 | "integrity": "sha1-lXZsYB2t5Kd+0+eyttwDiBtZY2Y=",
2179 | "dev": true,
2180 | "requires": {
2181 | "glob-watcher": "^5.0.0",
2182 | "gulp-cli": "^2.0.0",
2183 | "undertaker": "^1.0.0",
2184 | "vinyl-fs": "^3.0.0"
2185 | },
2186 | "dependencies": {
2187 | "ansi-colors": {
2188 | "version": "1.1.0",
2189 | "resolved": "http://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz",
2190 | "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==",
2191 | "dev": true,
2192 | "requires": {
2193 | "ansi-wrap": "^0.1.0"
2194 | }
2195 | },
2196 | "gulp-cli": {
2197 | "version": "2.0.1",
2198 | "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.0.1.tgz",
2199 | "integrity": "sha512-RxujJJdN8/O6IW2nPugl7YazhmrIEjmiVfPKrWt68r71UCaLKS71Hp0gpKT+F6qOUFtr7KqtifDKaAJPRVvMYQ==",
2200 | "dev": true,
2201 | "requires": {
2202 | "ansi-colors": "^1.0.1",
2203 | "archy": "^1.0.0",
2204 | "array-sort": "^1.0.0",
2205 | "color-support": "^1.1.3",
2206 | "concat-stream": "^1.6.0",
2207 | "copy-props": "^2.0.1",
2208 | "fancy-log": "^1.3.2",
2209 | "gulplog": "^1.0.0",
2210 | "interpret": "^1.1.0",
2211 | "isobject": "^3.0.1",
2212 | "liftoff": "^2.5.0",
2213 | "matchdep": "^2.0.0",
2214 | "mute-stdout": "^1.0.0",
2215 | "pretty-hrtime": "^1.0.0",
2216 | "replace-homedir": "^1.0.0",
2217 | "semver-greatest-satisfied-range": "^1.1.0",
2218 | "v8flags": "^3.0.1",
2219 | "yargs": "^7.1.0"
2220 | }
2221 | }
2222 | }
2223 | },
2224 | "gulp-connect": {
2225 | "version": "5.7.0",
2226 | "resolved": "https://registry.npmjs.org/gulp-connect/-/gulp-connect-5.7.0.tgz",
2227 | "integrity": "sha512-8tRcC6wgXMLakpPw9M7GRJIhxkYdgZsXwn7n56BA2bQYGLR9NOPhMzx7js+qYDy6vhNkbApGKURjAw1FjY4pNA==",
2228 | "requires": {
2229 | "ansi-colors": "^2.0.5",
2230 | "connect": "^3.6.6",
2231 | "connect-livereload": "^0.6.0",
2232 | "fancy-log": "^1.3.2",
2233 | "map-stream": "^0.0.7",
2234 | "send": "^0.16.2",
2235 | "serve-index": "^1.9.1",
2236 | "serve-static": "^1.13.2",
2237 | "tiny-lr": "^1.1.1"
2238 | }
2239 | },
2240 | "gulplog": {
2241 | "version": "1.0.0",
2242 | "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz",
2243 | "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=",
2244 | "dev": true,
2245 | "requires": {
2246 | "glogg": "^1.0.0"
2247 | }
2248 | },
2249 | "har-schema": {
2250 | "version": "2.0.0",
2251 | "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
2252 | "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
2253 | "optional": true
2254 | },
2255 | "har-validator": {
2256 | "version": "5.1.3",
2257 | "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
2258 | "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
2259 | "optional": true,
2260 | "requires": {
2261 | "ajv": "^6.5.5",
2262 | "har-schema": "^2.0.0"
2263 | }
2264 | },
2265 | "has-flag": {
2266 | "version": "3.0.0",
2267 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
2268 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
2269 | "dev": true
2270 | },
2271 | "has-symbols": {
2272 | "version": "1.0.0",
2273 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
2274 | "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=",
2275 | "dev": true
2276 | },
2277 | "has-value": {
2278 | "version": "1.0.0",
2279 | "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
2280 | "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
2281 | "dev": true,
2282 | "requires": {
2283 | "get-value": "^2.0.6",
2284 | "has-values": "^1.0.0",
2285 | "isobject": "^3.0.0"
2286 | }
2287 | },
2288 | "has-values": {
2289 | "version": "1.0.0",
2290 | "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
2291 | "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
2292 | "dev": true,
2293 | "requires": {
2294 | "is-number": "^3.0.0",
2295 | "kind-of": "^4.0.0"
2296 | },
2297 | "dependencies": {
2298 | "kind-of": {
2299 | "version": "4.0.0",
2300 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
2301 | "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
2302 | "dev": true,
2303 | "requires": {
2304 | "is-buffer": "^1.1.5"
2305 | }
2306 | }
2307 | }
2308 | },
2309 | "hasha": {
2310 | "version": "2.2.0",
2311 | "resolved": "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz",
2312 | "integrity": "sha1-eNfL/B5tZjA/55g3NlmEUXsvbuE=",
2313 | "optional": true,
2314 | "requires": {
2315 | "is-stream": "^1.0.1",
2316 | "pinkie-promise": "^2.0.0"
2317 | }
2318 | },
2319 | "he": {
2320 | "version": "1.1.1",
2321 | "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz",
2322 | "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=",
2323 | "dev": true
2324 | },
2325 | "hoek": {
2326 | "version": "6.1.2",
2327 | "resolved": "https://registry.npmjs.org/hoek/-/hoek-6.1.2.tgz",
2328 | "integrity": "sha512-6qhh/wahGYZHFSFw12tBbJw5fsAhhwrrG/y3Cs0YMTv2WzMnL0oLPnQJjv1QJvEfylRSOFuP+xCu+tdx0tD16Q=="
2329 | },
2330 | "homedir-polyfill": {
2331 | "version": "1.0.1",
2332 | "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz",
2333 | "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=",
2334 | "dev": true,
2335 | "requires": {
2336 | "parse-passwd": "^1.0.0"
2337 | }
2338 | },
2339 | "hosted-git-info": {
2340 | "version": "2.7.1",
2341 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz",
2342 | "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==",
2343 | "dev": true
2344 | },
2345 | "http-errors": {
2346 | "version": "1.6.3",
2347 | "resolved": "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
2348 | "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
2349 | "requires": {
2350 | "depd": "~1.1.2",
2351 | "inherits": "2.0.3",
2352 | "setprototypeof": "1.1.0",
2353 | "statuses": ">= 1.4.0 < 2"
2354 | },
2355 | "dependencies": {
2356 | "statuses": {
2357 | "version": "1.5.0",
2358 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
2359 | "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
2360 | }
2361 | }
2362 | },
2363 | "http-parser-js": {
2364 | "version": "0.5.0",
2365 | "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.0.tgz",
2366 | "integrity": "sha512-cZdEF7r4gfRIq7ezX9J0T+kQmJNOub71dWbgAXVHDct80TKP4MCETtZQ31xyv38UwgzkWPYF/Xc0ge55dW9Z9w=="
2367 | },
2368 | "http-proxy-agent": {
2369 | "version": "2.1.0",
2370 | "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz",
2371 | "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==",
2372 | "requires": {
2373 | "agent-base": "4",
2374 | "debug": "3.1.0"
2375 | },
2376 | "dependencies": {
2377 | "debug": {
2378 | "version": "3.1.0",
2379 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
2380 | "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
2381 | "requires": {
2382 | "ms": "2.0.0"
2383 | }
2384 | }
2385 | }
2386 | },
2387 | "http-signature": {
2388 | "version": "1.2.0",
2389 | "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
2390 | "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
2391 | "optional": true,
2392 | "requires": {
2393 | "assert-plus": "^1.0.0",
2394 | "jsprim": "^1.2.2",
2395 | "sshpk": "^1.7.0"
2396 | }
2397 | },
2398 | "inflight": {
2399 | "version": "1.0.6",
2400 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
2401 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
2402 | "requires": {
2403 | "once": "^1.3.0",
2404 | "wrappy": "1"
2405 | }
2406 | },
2407 | "inherits": {
2408 | "version": "2.0.3",
2409 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
2410 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
2411 | },
2412 | "ini": {
2413 | "version": "1.3.5",
2414 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
2415 | "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
2416 | "dev": true
2417 | },
2418 | "interpret": {
2419 | "version": "1.1.0",
2420 | "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz",
2421 | "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=",
2422 | "dev": true
2423 | },
2424 | "invert-kv": {
2425 | "version": "1.0.0",
2426 | "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
2427 | "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
2428 | "dev": true
2429 | },
2430 | "is-absolute": {
2431 | "version": "1.0.0",
2432 | "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz",
2433 | "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==",
2434 | "dev": true,
2435 | "requires": {
2436 | "is-relative": "^1.0.0",
2437 | "is-windows": "^1.0.1"
2438 | }
2439 | },
2440 | "is-accessor-descriptor": {
2441 | "version": "0.1.6",
2442 | "resolved": "http://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
2443 | "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
2444 | "dev": true,
2445 | "requires": {
2446 | "kind-of": "^3.0.2"
2447 | },
2448 | "dependencies": {
2449 | "kind-of": {
2450 | "version": "3.2.2",
2451 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
2452 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
2453 | "dev": true,
2454 | "requires": {
2455 | "is-buffer": "^1.1.5"
2456 | }
2457 | }
2458 | }
2459 | },
2460 | "is-arrayish": {
2461 | "version": "0.2.1",
2462 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
2463 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
2464 | "dev": true
2465 | },
2466 | "is-binary-path": {
2467 | "version": "1.0.1",
2468 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
2469 | "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
2470 | "dev": true,
2471 | "requires": {
2472 | "binary-extensions": "^1.0.0"
2473 | }
2474 | },
2475 | "is-buffer": {
2476 | "version": "1.1.6",
2477 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
2478 | "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
2479 | "dev": true
2480 | },
2481 | "is-builtin-module": {
2482 | "version": "1.0.0",
2483 | "resolved": "http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
2484 | "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
2485 | "dev": true,
2486 | "requires": {
2487 | "builtin-modules": "^1.0.0"
2488 | }
2489 | },
2490 | "is-data-descriptor": {
2491 | "version": "0.1.4",
2492 | "resolved": "http://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
2493 | "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
2494 | "dev": true,
2495 | "requires": {
2496 | "kind-of": "^3.0.2"
2497 | },
2498 | "dependencies": {
2499 | "kind-of": {
2500 | "version": "3.2.2",
2501 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
2502 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
2503 | "dev": true,
2504 | "requires": {
2505 | "is-buffer": "^1.1.5"
2506 | }
2507 | }
2508 | }
2509 | },
2510 | "is-descriptor": {
2511 | "version": "0.1.6",
2512 | "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
2513 | "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
2514 | "dev": true,
2515 | "requires": {
2516 | "is-accessor-descriptor": "^0.1.6",
2517 | "is-data-descriptor": "^0.1.4",
2518 | "kind-of": "^5.0.0"
2519 | },
2520 | "dependencies": {
2521 | "kind-of": {
2522 | "version": "5.1.0",
2523 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
2524 | "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
2525 | "dev": true
2526 | }
2527 | }
2528 | },
2529 | "is-extendable": {
2530 | "version": "1.0.1",
2531 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
2532 | "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
2533 | "requires": {
2534 | "is-plain-object": "^2.0.4"
2535 | }
2536 | },
2537 | "is-extglob": {
2538 | "version": "2.1.1",
2539 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
2540 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
2541 | "dev": true
2542 | },
2543 | "is-fullwidth-code-point": {
2544 | "version": "1.0.0",
2545 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
2546 | "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
2547 | "dev": true,
2548 | "requires": {
2549 | "number-is-nan": "^1.0.0"
2550 | }
2551 | },
2552 | "is-glob": {
2553 | "version": "4.0.0",
2554 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz",
2555 | "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=",
2556 | "dev": true,
2557 | "requires": {
2558 | "is-extglob": "^2.1.1"
2559 | }
2560 | },
2561 | "is-negated-glob": {
2562 | "version": "1.0.0",
2563 | "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz",
2564 | "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=",
2565 | "dev": true
2566 | },
2567 | "is-number": {
2568 | "version": "3.0.0",
2569 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
2570 | "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
2571 | "dev": true,
2572 | "requires": {
2573 | "kind-of": "^3.0.2"
2574 | },
2575 | "dependencies": {
2576 | "kind-of": {
2577 | "version": "3.2.2",
2578 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
2579 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
2580 | "dev": true,
2581 | "requires": {
2582 | "is-buffer": "^1.1.5"
2583 | }
2584 | }
2585 | }
2586 | },
2587 | "is-plain-object": {
2588 | "version": "2.0.4",
2589 | "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
2590 | "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
2591 | "requires": {
2592 | "isobject": "^3.0.1"
2593 | }
2594 | },
2595 | "is-promise": {
2596 | "version": "2.1.0",
2597 | "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
2598 | "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
2599 | },
2600 | "is-relative": {
2601 | "version": "1.0.0",
2602 | "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz",
2603 | "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==",
2604 | "dev": true,
2605 | "requires": {
2606 | "is-unc-path": "^1.0.0"
2607 | }
2608 | },
2609 | "is-stream": {
2610 | "version": "1.1.0",
2611 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
2612 | "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
2613 | "optional": true
2614 | },
2615 | "is-typedarray": {
2616 | "version": "1.0.0",
2617 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
2618 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
2619 | "optional": true
2620 | },
2621 | "is-unc-path": {
2622 | "version": "1.0.0",
2623 | "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz",
2624 | "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==",
2625 | "dev": true,
2626 | "requires": {
2627 | "unc-path-regex": "^0.1.2"
2628 | }
2629 | },
2630 | "is-utf8": {
2631 | "version": "0.2.1",
2632 | "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
2633 | "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
2634 | "dev": true
2635 | },
2636 | "is-valid-glob": {
2637 | "version": "1.0.0",
2638 | "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz",
2639 | "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=",
2640 | "dev": true
2641 | },
2642 | "is-windows": {
2643 | "version": "1.0.2",
2644 | "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
2645 | "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
2646 | "dev": true
2647 | },
2648 | "isarray": {
2649 | "version": "1.0.0",
2650 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
2651 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
2652 | },
2653 | "isemail": {
2654 | "version": "3.2.0",
2655 | "resolved": "https://registry.npmjs.org/isemail/-/isemail-3.2.0.tgz",
2656 | "integrity": "sha512-zKqkK+O+dGqevc93KNsbZ/TqTUFd46MwWjYOoMrjIMZ51eU7DtQG3Wmd9SQQT7i7RVnuTPEiYEWHU3MSbxC1Tg==",
2657 | "requires": {
2658 | "punycode": "2.x.x"
2659 | }
2660 | },
2661 | "isexe": {
2662 | "version": "2.0.0",
2663 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
2664 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
2665 | },
2666 | "isobject": {
2667 | "version": "3.0.1",
2668 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
2669 | "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
2670 | },
2671 | "isstream": {
2672 | "version": "0.1.2",
2673 | "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
2674 | "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
2675 | "optional": true
2676 | },
2677 | "joi": {
2678 | "version": "14.3.1",
2679 | "resolved": "https://registry.npmjs.org/joi/-/joi-14.3.1.tgz",
2680 | "integrity": "sha512-LQDdM+pkOrpAn4Lp+neNIFV3axv1Vna3j38bisbQhETPMANYRbFJFUyOZcOClYvM/hppMhGWuKSFEK9vjrB+bQ==",
2681 | "requires": {
2682 | "hoek": "6.x.x",
2683 | "isemail": "3.x.x",
2684 | "topo": "3.x.x"
2685 | }
2686 | },
2687 | "js-yaml": {
2688 | "version": "3.12.0",
2689 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz",
2690 | "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==",
2691 | "requires": {
2692 | "argparse": "^1.0.7",
2693 | "esprima": "^4.0.0"
2694 | }
2695 | },
2696 | "jsbn": {
2697 | "version": "0.1.1",
2698 | "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
2699 | "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
2700 | },
2701 | "json-schema": {
2702 | "version": "0.2.3",
2703 | "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
2704 | "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
2705 | "optional": true
2706 | },
2707 | "json-schema-traverse": {
2708 | "version": "0.4.1",
2709 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
2710 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
2711 | "optional": true
2712 | },
2713 | "json-stable-stringify-without-jsonify": {
2714 | "version": "1.0.1",
2715 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
2716 | "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
2717 | "dev": true
2718 | },
2719 | "json-stringify-safe": {
2720 | "version": "5.0.1",
2721 | "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
2722 | "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
2723 | "optional": true
2724 | },
2725 | "jsonfile": {
2726 | "version": "2.4.0",
2727 | "resolved": "http://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
2728 | "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=",
2729 | "optional": true,
2730 | "requires": {
2731 | "graceful-fs": "^4.1.6"
2732 | }
2733 | },
2734 | "jsprim": {
2735 | "version": "1.4.1",
2736 | "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
2737 | "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
2738 | "optional": true,
2739 | "requires": {
2740 | "assert-plus": "1.0.0",
2741 | "extsprintf": "1.3.0",
2742 | "json-schema": "0.2.3",
2743 | "verror": "1.10.0"
2744 | }
2745 | },
2746 | "just-debounce": {
2747 | "version": "1.0.0",
2748 | "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.0.0.tgz",
2749 | "integrity": "sha1-h/zPrv/AtozRnVX2cilD+SnqNeo=",
2750 | "dev": true
2751 | },
2752 | "kew": {
2753 | "version": "0.7.0",
2754 | "resolved": "http://registry.npmjs.org/kew/-/kew-0.7.0.tgz",
2755 | "integrity": "sha1-edk9LTM2PW/dKXCzNdkUGtWR15s=",
2756 | "optional": true
2757 | },
2758 | "kind-of": {
2759 | "version": "6.0.2",
2760 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
2761 | "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
2762 | "dev": true
2763 | },
2764 | "klaw": {
2765 | "version": "1.3.1",
2766 | "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz",
2767 | "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=",
2768 | "optional": true,
2769 | "requires": {
2770 | "graceful-fs": "^4.1.9"
2771 | }
2772 | },
2773 | "last-run": {
2774 | "version": "1.1.1",
2775 | "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz",
2776 | "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=",
2777 | "dev": true,
2778 | "requires": {
2779 | "default-resolution": "^2.0.0",
2780 | "es6-weak-map": "^2.0.1"
2781 | }
2782 | },
2783 | "lazystream": {
2784 | "version": "1.0.0",
2785 | "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz",
2786 | "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=",
2787 | "dev": true,
2788 | "requires": {
2789 | "readable-stream": "^2.0.5"
2790 | }
2791 | },
2792 | "lcid": {
2793 | "version": "1.0.0",
2794 | "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
2795 | "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
2796 | "dev": true,
2797 | "requires": {
2798 | "invert-kv": "^1.0.0"
2799 | }
2800 | },
2801 | "lead": {
2802 | "version": "1.0.0",
2803 | "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz",
2804 | "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=",
2805 | "dev": true,
2806 | "requires": {
2807 | "flush-write-stream": "^1.0.2"
2808 | }
2809 | },
2810 | "liftoff": {
2811 | "version": "2.5.0",
2812 | "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz",
2813 | "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=",
2814 | "dev": true,
2815 | "requires": {
2816 | "extend": "^3.0.0",
2817 | "findup-sync": "^2.0.0",
2818 | "fined": "^1.0.1",
2819 | "flagged-respawn": "^1.0.0",
2820 | "is-plain-object": "^2.0.4",
2821 | "object.map": "^1.0.0",
2822 | "rechoir": "^0.6.2",
2823 | "resolve": "^1.1.7"
2824 | }
2825 | },
2826 | "livereload-js": {
2827 | "version": "2.4.0",
2828 | "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.4.0.tgz",
2829 | "integrity": "sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw=="
2830 | },
2831 | "load-json-file": {
2832 | "version": "1.1.0",
2833 | "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
2834 | "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
2835 | "dev": true,
2836 | "requires": {
2837 | "graceful-fs": "^4.1.2",
2838 | "parse-json": "^2.2.0",
2839 | "pify": "^2.0.0",
2840 | "pinkie-promise": "^2.0.0",
2841 | "strip-bom": "^2.0.0"
2842 | }
2843 | },
2844 | "lodash": {
2845 | "version": "4.17.11",
2846 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
2847 | "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg=="
2848 | },
2849 | "lodash.debounce": {
2850 | "version": "4.0.8",
2851 | "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
2852 | "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=",
2853 | "dev": true
2854 | },
2855 | "lru-queue": {
2856 | "version": "0.1.0",
2857 | "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz",
2858 | "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=",
2859 | "requires": {
2860 | "es5-ext": "~0.10.2"
2861 | }
2862 | },
2863 | "make-iterator": {
2864 | "version": "1.0.1",
2865 | "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz",
2866 | "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==",
2867 | "dev": true,
2868 | "requires": {
2869 | "kind-of": "^6.0.2"
2870 | }
2871 | },
2872 | "map-cache": {
2873 | "version": "0.2.2",
2874 | "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
2875 | "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
2876 | "dev": true
2877 | },
2878 | "map-stream": {
2879 | "version": "0.0.7",
2880 | "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz",
2881 | "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg="
2882 | },
2883 | "map-visit": {
2884 | "version": "1.0.0",
2885 | "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
2886 | "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
2887 | "dev": true,
2888 | "requires": {
2889 | "object-visit": "^1.0.0"
2890 | }
2891 | },
2892 | "matchdep": {
2893 | "version": "2.0.0",
2894 | "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz",
2895 | "integrity": "sha1-xvNINKDY28OzfCfui7yyfHd1WC4=",
2896 | "dev": true,
2897 | "requires": {
2898 | "findup-sync": "^2.0.0",
2899 | "micromatch": "^3.0.4",
2900 | "resolve": "^1.4.0",
2901 | "stack-trace": "0.0.10"
2902 | }
2903 | },
2904 | "memoizee": {
2905 | "version": "0.4.14",
2906 | "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.14.tgz",
2907 | "integrity": "sha512-/SWFvWegAIYAO4NQMpcX+gcra0yEZu4OntmUdrBaWrJncxOqAziGFlHxc7yjKVK2uu3lpPW27P27wkR82wA8mg==",
2908 | "requires": {
2909 | "d": "1",
2910 | "es5-ext": "^0.10.45",
2911 | "es6-weak-map": "^2.0.2",
2912 | "event-emitter": "^0.3.5",
2913 | "is-promise": "^2.1",
2914 | "lru-queue": "0.1",
2915 | "next-tick": "1",
2916 | "timers-ext": "^0.1.5"
2917 | }
2918 | },
2919 | "micromatch": {
2920 | "version": "3.1.10",
2921 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
2922 | "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
2923 | "dev": true,
2924 | "requires": {
2925 | "arr-diff": "^4.0.0",
2926 | "array-unique": "^0.3.2",
2927 | "braces": "^2.3.1",
2928 | "define-property": "^2.0.2",
2929 | "extend-shallow": "^3.0.2",
2930 | "extglob": "^2.0.4",
2931 | "fragment-cache": "^0.2.1",
2932 | "kind-of": "^6.0.2",
2933 | "nanomatch": "^1.2.9",
2934 | "object.pick": "^1.3.0",
2935 | "regex-not": "^1.0.0",
2936 | "snapdragon": "^0.8.1",
2937 | "to-regex": "^3.0.2"
2938 | }
2939 | },
2940 | "mime": {
2941 | "version": "1.4.1",
2942 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
2943 | "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ=="
2944 | },
2945 | "mime-db": {
2946 | "version": "1.37.0",
2947 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz",
2948 | "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg=="
2949 | },
2950 | "mime-types": {
2951 | "version": "2.1.21",
2952 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz",
2953 | "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==",
2954 | "requires": {
2955 | "mime-db": "~1.37.0"
2956 | }
2957 | },
2958 | "minimatch": {
2959 | "version": "3.0.4",
2960 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
2961 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
2962 | "requires": {
2963 | "brace-expansion": "^1.1.7"
2964 | }
2965 | },
2966 | "minimist": {
2967 | "version": "0.0.10",
2968 | "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz",
2969 | "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8="
2970 | },
2971 | "mixin-deep": {
2972 | "version": "1.3.1",
2973 | "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz",
2974 | "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==",
2975 | "dev": true,
2976 | "requires": {
2977 | "for-in": "^1.0.2",
2978 | "is-extendable": "^1.0.1"
2979 | }
2980 | },
2981 | "mkdirp": {
2982 | "version": "0.5.1",
2983 | "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
2984 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
2985 | "requires": {
2986 | "minimist": "0.0.8"
2987 | },
2988 | "dependencies": {
2989 | "minimist": {
2990 | "version": "0.0.8",
2991 | "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
2992 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
2993 | }
2994 | }
2995 | },
2996 | "mocha": {
2997 | "version": "5.2.0",
2998 | "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz",
2999 | "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==",
3000 | "dev": true,
3001 | "requires": {
3002 | "browser-stdout": "1.3.1",
3003 | "commander": "2.15.1",
3004 | "debug": "3.1.0",
3005 | "diff": "3.5.0",
3006 | "escape-string-regexp": "1.0.5",
3007 | "glob": "7.1.2",
3008 | "growl": "1.10.5",
3009 | "he": "1.1.1",
3010 | "minimatch": "3.0.4",
3011 | "mkdirp": "0.5.1",
3012 | "supports-color": "5.4.0"
3013 | },
3014 | "dependencies": {
3015 | "debug": {
3016 | "version": "3.1.0",
3017 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
3018 | "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
3019 | "dev": true,
3020 | "requires": {
3021 | "ms": "2.0.0"
3022 | }
3023 | },
3024 | "glob": {
3025 | "version": "7.1.2",
3026 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
3027 | "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
3028 | "dev": true,
3029 | "requires": {
3030 | "fs.realpath": "^1.0.0",
3031 | "inflight": "^1.0.4",
3032 | "inherits": "2",
3033 | "minimatch": "^3.0.4",
3034 | "once": "^1.3.0",
3035 | "path-is-absolute": "^1.0.0"
3036 | }
3037 | }
3038 | }
3039 | },
3040 | "ms": {
3041 | "version": "2.0.0",
3042 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
3043 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
3044 | },
3045 | "mute-stdout": {
3046 | "version": "1.0.1",
3047 | "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz",
3048 | "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==",
3049 | "dev": true
3050 | },
3051 | "nan": {
3052 | "version": "2.12.1",
3053 | "resolved": "https://registry.npmjs.org/nan/-/nan-2.12.1.tgz",
3054 | "integrity": "sha512-JY7V6lRkStKcKTvHO5NVSQRv+RV+FIL5pvDoLiAtSL9pKlC5x9PKQcZDsq7m4FO4d57mkhC6Z+QhAh3Jdk5JFw==",
3055 | "dev": true,
3056 | "optional": true
3057 | },
3058 | "nanomatch": {
3059 | "version": "1.2.13",
3060 | "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
3061 | "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
3062 | "dev": true,
3063 | "requires": {
3064 | "arr-diff": "^4.0.0",
3065 | "array-unique": "^0.3.2",
3066 | "define-property": "^2.0.2",
3067 | "extend-shallow": "^3.0.2",
3068 | "fragment-cache": "^0.2.1",
3069 | "is-windows": "^1.0.2",
3070 | "kind-of": "^6.0.2",
3071 | "object.pick": "^1.3.0",
3072 | "regex-not": "^1.0.0",
3073 | "snapdragon": "^0.8.1",
3074 | "to-regex": "^3.0.1"
3075 | }
3076 | },
3077 | "negotiator": {
3078 | "version": "0.6.1",
3079 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
3080 | "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk="
3081 | },
3082 | "next-tick": {
3083 | "version": "1.0.0",
3084 | "resolved": "http://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
3085 | "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw="
3086 | },
3087 | "node-fetch": {
3088 | "version": "2.3.0",
3089 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.3.0.tgz",
3090 | "integrity": "sha512-MOd8pV3fxENbryESLgVIeaGKrdl+uaYhCSSVkjeOb/31/njTpcis5aWfdqgNlHIrKOLRbMnfPINPOML2CIFeXA=="
3091 | },
3092 | "node-statsd": {
3093 | "version": "0.1.1",
3094 | "resolved": "https://registry.npmjs.org/node-statsd/-/node-statsd-0.1.1.tgz",
3095 | "integrity": "sha1-J6WTSHY9CvegN6wqAx/vPwUQE9M="
3096 | },
3097 | "normalize-package-data": {
3098 | "version": "2.4.0",
3099 | "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
3100 | "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==",
3101 | "dev": true,
3102 | "requires": {
3103 | "hosted-git-info": "^2.1.4",
3104 | "is-builtin-module": "^1.0.0",
3105 | "semver": "2 || 3 || 4 || 5",
3106 | "validate-npm-package-license": "^3.0.1"
3107 | }
3108 | },
3109 | "normalize-path": {
3110 | "version": "2.1.1",
3111 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
3112 | "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
3113 | "dev": true,
3114 | "requires": {
3115 | "remove-trailing-separator": "^1.0.1"
3116 | }
3117 | },
3118 | "now-and-later": {
3119 | "version": "2.0.0",
3120 | "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.0.tgz",
3121 | "integrity": "sha1-vGHLtFbXnLMiB85HygUTb/Ln1u4=",
3122 | "dev": true,
3123 | "requires": {
3124 | "once": "^1.3.2"
3125 | }
3126 | },
3127 | "number-is-nan": {
3128 | "version": "1.0.1",
3129 | "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
3130 | "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
3131 | "dev": true
3132 | },
3133 | "oauth-sign": {
3134 | "version": "0.9.0",
3135 | "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
3136 | "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
3137 | "optional": true
3138 | },
3139 | "object-assign": {
3140 | "version": "4.1.1",
3141 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
3142 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
3143 | },
3144 | "object-copy": {
3145 | "version": "0.1.0",
3146 | "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
3147 | "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
3148 | "dev": true,
3149 | "requires": {
3150 | "copy-descriptor": "^0.1.0",
3151 | "define-property": "^0.2.5",
3152 | "kind-of": "^3.0.3"
3153 | },
3154 | "dependencies": {
3155 | "define-property": {
3156 | "version": "0.2.5",
3157 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
3158 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
3159 | "dev": true,
3160 | "requires": {
3161 | "is-descriptor": "^0.1.0"
3162 | }
3163 | },
3164 | "kind-of": {
3165 | "version": "3.2.2",
3166 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
3167 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
3168 | "dev": true,
3169 | "requires": {
3170 | "is-buffer": "^1.1.5"
3171 | }
3172 | }
3173 | }
3174 | },
3175 | "object-keys": {
3176 | "version": "1.0.12",
3177 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz",
3178 | "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==",
3179 | "dev": true
3180 | },
3181 | "object-visit": {
3182 | "version": "1.0.1",
3183 | "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
3184 | "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
3185 | "dev": true,
3186 | "requires": {
3187 | "isobject": "^3.0.0"
3188 | }
3189 | },
3190 | "object.assign": {
3191 | "version": "4.1.0",
3192 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
3193 | "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
3194 | "dev": true,
3195 | "requires": {
3196 | "define-properties": "^1.1.2",
3197 | "function-bind": "^1.1.1",
3198 | "has-symbols": "^1.0.0",
3199 | "object-keys": "^1.0.11"
3200 | }
3201 | },
3202 | "object.defaults": {
3203 | "version": "1.1.0",
3204 | "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz",
3205 | "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=",
3206 | "dev": true,
3207 | "requires": {
3208 | "array-each": "^1.0.1",
3209 | "array-slice": "^1.0.0",
3210 | "for-own": "^1.0.0",
3211 | "isobject": "^3.0.0"
3212 | }
3213 | },
3214 | "object.map": {
3215 | "version": "1.0.1",
3216 | "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz",
3217 | "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=",
3218 | "dev": true,
3219 | "requires": {
3220 | "for-own": "^1.0.0",
3221 | "make-iterator": "^1.0.0"
3222 | }
3223 | },
3224 | "object.pick": {
3225 | "version": "1.3.0",
3226 | "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
3227 | "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
3228 | "dev": true,
3229 | "requires": {
3230 | "isobject": "^3.0.1"
3231 | }
3232 | },
3233 | "object.reduce": {
3234 | "version": "1.0.1",
3235 | "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz",
3236 | "integrity": "sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=",
3237 | "dev": true,
3238 | "requires": {
3239 | "for-own": "^1.0.0",
3240 | "make-iterator": "^1.0.0"
3241 | }
3242 | },
3243 | "on-finished": {
3244 | "version": "2.3.0",
3245 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
3246 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
3247 | "requires": {
3248 | "ee-first": "1.1.1"
3249 | }
3250 | },
3251 | "once": {
3252 | "version": "1.4.0",
3253 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
3254 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
3255 | "requires": {
3256 | "wrappy": "1"
3257 | }
3258 | },
3259 | "onecolor": {
3260 | "version": "3.1.0",
3261 | "resolved": "https://registry.npmjs.org/onecolor/-/onecolor-3.1.0.tgz",
3262 | "integrity": "sha512-YZSypViXzu3ul5LMu/m6XjJ9ol8qAy9S2VjHl5E6UlhUH1KGKWabyEJifn0Jjpw23bYDzC2ucKMPGiH5kfwSGQ=="
3263 | },
3264 | "optimist": {
3265 | "version": "0.6.1",
3266 | "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
3267 | "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
3268 | "requires": {
3269 | "minimist": "~0.0.1",
3270 | "wordwrap": "~0.0.2"
3271 | }
3272 | },
3273 | "optimist-config-file": {
3274 | "version": "1.0.1",
3275 | "resolved": "https://registry.npmjs.org/optimist-config-file/-/optimist-config-file-1.0.1.tgz",
3276 | "integrity": "sha1-tUBUiKztcKjnhJ/V+Jx4aCckvpM=",
3277 | "requires": {
3278 | "ansistyles": "^0.1.3",
3279 | "debug": "^2.6.8",
3280 | "js-yaml": "^3.8.4",
3281 | "optimist": "^0.6.1"
3282 | }
3283 | },
3284 | "ordered-read-streams": {
3285 | "version": "1.0.1",
3286 | "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz",
3287 | "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=",
3288 | "dev": true,
3289 | "requires": {
3290 | "readable-stream": "^2.0.1"
3291 | }
3292 | },
3293 | "os-locale": {
3294 | "version": "1.4.0",
3295 | "resolved": "http://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
3296 | "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
3297 | "dev": true,
3298 | "requires": {
3299 | "lcid": "^1.0.0"
3300 | }
3301 | },
3302 | "parse-filepath": {
3303 | "version": "1.0.2",
3304 | "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz",
3305 | "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=",
3306 | "dev": true,
3307 | "requires": {
3308 | "is-absolute": "^1.0.0",
3309 | "map-cache": "^0.2.0",
3310 | "path-root": "^0.1.1"
3311 | }
3312 | },
3313 | "parse-json": {
3314 | "version": "2.2.0",
3315 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
3316 | "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
3317 | "dev": true,
3318 | "requires": {
3319 | "error-ex": "^1.2.0"
3320 | }
3321 | },
3322 | "parse-node-version": {
3323 | "version": "1.0.0",
3324 | "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.0.tgz",
3325 | "integrity": "sha512-02GTVHD1u0nWc20n2G7WX/PgdhNFG04j5fi1OkaJzPWLTcf6vh6229Lta1wTmXG/7Dg42tCssgkccVt7qvd8Kg=="
3326 | },
3327 | "parse-passwd": {
3328 | "version": "1.0.0",
3329 | "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz",
3330 | "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=",
3331 | "dev": true
3332 | },
3333 | "parseurl": {
3334 | "version": "1.3.2",
3335 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
3336 | "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M="
3337 | },
3338 | "pascalcase": {
3339 | "version": "0.1.1",
3340 | "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
3341 | "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
3342 | "dev": true
3343 | },
3344 | "path-dirname": {
3345 | "version": "1.0.2",
3346 | "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
3347 | "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
3348 | "dev": true
3349 | },
3350 | "path-exists": {
3351 | "version": "2.1.0",
3352 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
3353 | "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
3354 | "dev": true,
3355 | "requires": {
3356 | "pinkie-promise": "^2.0.0"
3357 | }
3358 | },
3359 | "path-is-absolute": {
3360 | "version": "1.0.1",
3361 | "resolved": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
3362 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
3363 | },
3364 | "path-parse": {
3365 | "version": "1.0.6",
3366 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
3367 | "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
3368 | "dev": true
3369 | },
3370 | "path-root": {
3371 | "version": "0.1.1",
3372 | "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz",
3373 | "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=",
3374 | "dev": true,
3375 | "requires": {
3376 | "path-root-regex": "^0.1.0"
3377 | }
3378 | },
3379 | "path-root-regex": {
3380 | "version": "0.1.2",
3381 | "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz",
3382 | "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=",
3383 | "dev": true
3384 | },
3385 | "path-type": {
3386 | "version": "1.1.0",
3387 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
3388 | "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
3389 | "dev": true,
3390 | "requires": {
3391 | "graceful-fs": "^4.1.2",
3392 | "pify": "^2.0.0",
3393 | "pinkie-promise": "^2.0.0"
3394 | }
3395 | },
3396 | "pathval": {
3397 | "version": "1.1.0",
3398 | "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz",
3399 | "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=",
3400 | "dev": true
3401 | },
3402 | "pend": {
3403 | "version": "1.2.0",
3404 | "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
3405 | "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=",
3406 | "optional": true
3407 | },
3408 | "performance-now": {
3409 | "version": "2.1.0",
3410 | "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
3411 | "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
3412 | "optional": true
3413 | },
3414 | "phantomas": {
3415 | "version": "1.20.1",
3416 | "resolved": "https://registry.npmjs.org/phantomas/-/phantomas-1.20.1.tgz",
3417 | "integrity": "sha512-F2xbmc+R2ZIDQpmOTSdTKB72ewC2sqSt5y8bBWydfEln98xNXbC49eWRDtA3FydkKRaIj7v9MWk0nF9KGmPDYw==",
3418 | "requires": {
3419 | "analyze-css": "^0.12.6",
3420 | "ansicolors": "~0.3.2",
3421 | "ansistyles": "~0.1.0",
3422 | "ascii-table": "0.0.9",
3423 | "async": "^2.6.1",
3424 | "csv-string": "^3.1.3",
3425 | "debug": "^3.1.0",
3426 | "js-yaml": "^3.11.0",
3427 | "node-statsd": "0.1.1",
3428 | "optimist": "^0.6.1",
3429 | "optimist-config-file": "^1.0.1",
3430 | "phantomjs-prebuilt-macbre": "^2.5.0-dev2",
3431 | "progress": "~2.0.0",
3432 | "q": "^1.5.0",
3433 | "slimerjs": "^0.10.3",
3434 | "tap-producer-macbre": "0.0.3",
3435 | "travis-fold": ">=0.1.2",
3436 | "uuid": "^3.0.1"
3437 | },
3438 | "dependencies": {
3439 | "debug": {
3440 | "version": "3.2.6",
3441 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
3442 | "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
3443 | "requires": {
3444 | "ms": "^2.1.1"
3445 | }
3446 | },
3447 | "ms": {
3448 | "version": "2.1.1",
3449 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
3450 | "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
3451 | }
3452 | }
3453 | },
3454 | "phantomjs-prebuilt-macbre": {
3455 | "version": "2.5.0-dev2",
3456 | "resolved": "https://registry.npmjs.org/phantomjs-prebuilt-macbre/-/phantomjs-prebuilt-macbre-2.5.0-dev2.tgz",
3457 | "integrity": "sha512-QNNogRkEBdchBqgbvnY+0ZPFaeu0mfaKDaRGvXZWwj4OM8Mq/fLsZUZmlzTbiLrFkYfgzLwTyMbsooKqMrBTig==",
3458 | "optional": true,
3459 | "requires": {
3460 | "es6-promise": "~4.0.3",
3461 | "extract-zip": "^1.6.7",
3462 | "fs-extra": "~1.0.0",
3463 | "hasha": "~2.2.0",
3464 | "kew": "~0.7.0",
3465 | "progress": "~1.1.8",
3466 | "request": "^2.87.0",
3467 | "request-progress": "~2.0.1",
3468 | "which": "~1.2.10"
3469 | },
3470 | "dependencies": {
3471 | "es6-promise": {
3472 | "version": "4.0.5",
3473 | "resolved": "http://registry.npmjs.org/es6-promise/-/es6-promise-4.0.5.tgz",
3474 | "integrity": "sha1-eILzCt3lskDM+n99eMVIMwlRrkI=",
3475 | "optional": true
3476 | },
3477 | "progress": {
3478 | "version": "1.1.8",
3479 | "resolved": "http://registry.npmjs.org/progress/-/progress-1.1.8.tgz",
3480 | "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=",
3481 | "optional": true
3482 | }
3483 | }
3484 | },
3485 | "pify": {
3486 | "version": "2.3.0",
3487 | "resolved": "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
3488 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
3489 | "dev": true
3490 | },
3491 | "pinkie": {
3492 | "version": "2.0.4",
3493 | "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
3494 | "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA="
3495 | },
3496 | "pinkie-promise": {
3497 | "version": "2.0.1",
3498 | "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
3499 | "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
3500 | "requires": {
3501 | "pinkie": "^2.0.0"
3502 | }
3503 | },
3504 | "plugin-error": {
3505 | "version": "1.0.1",
3506 | "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz",
3507 | "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==",
3508 | "requires": {
3509 | "ansi-colors": "^1.0.1",
3510 | "arr-diff": "^4.0.0",
3511 | "arr-union": "^3.1.0",
3512 | "extend-shallow": "^3.0.2"
3513 | },
3514 | "dependencies": {
3515 | "ansi-colors": {
3516 | "version": "1.1.0",
3517 | "resolved": "http://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz",
3518 | "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==",
3519 | "requires": {
3520 | "ansi-wrap": "^0.1.0"
3521 | }
3522 | }
3523 | }
3524 | },
3525 | "posix-character-classes": {
3526 | "version": "0.1.1",
3527 | "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
3528 | "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
3529 | "dev": true
3530 | },
3531 | "pretty-hrtime": {
3532 | "version": "1.0.3",
3533 | "resolved": "http://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz",
3534 | "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=",
3535 | "dev": true
3536 | },
3537 | "process-nextick-args": {
3538 | "version": "2.0.0",
3539 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
3540 | "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
3541 | },
3542 | "progress": {
3543 | "version": "2.0.3",
3544 | "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
3545 | "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA=="
3546 | },
3547 | "psl": {
3548 | "version": "1.1.31",
3549 | "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz",
3550 | "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==",
3551 | "optional": true
3552 | },
3553 | "pump": {
3554 | "version": "2.0.1",
3555 | "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
3556 | "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
3557 | "dev": true,
3558 | "requires": {
3559 | "end-of-stream": "^1.1.0",
3560 | "once": "^1.3.1"
3561 | }
3562 | },
3563 | "pumpify": {
3564 | "version": "1.5.1",
3565 | "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz",
3566 | "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==",
3567 | "dev": true,
3568 | "requires": {
3569 | "duplexify": "^3.6.0",
3570 | "inherits": "^2.0.3",
3571 | "pump": "^2.0.0"
3572 | }
3573 | },
3574 | "punycode": {
3575 | "version": "2.1.1",
3576 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
3577 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
3578 | },
3579 | "q": {
3580 | "version": "1.5.1",
3581 | "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
3582 | "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc="
3583 | },
3584 | "qs": {
3585 | "version": "6.6.0",
3586 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.6.0.tgz",
3587 | "integrity": "sha512-KIJqT9jQJDQx5h5uAVPimw6yVg2SekOKu959OCtktD3FjzbpvaPr8i4zzg07DOMz+igA4W/aNM7OV8H37pFYfA=="
3588 | },
3589 | "range-parser": {
3590 | "version": "1.2.0",
3591 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
3592 | "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4="
3593 | },
3594 | "raw-body": {
3595 | "version": "1.1.7",
3596 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz",
3597 | "integrity": "sha1-HQJ8K/oRasxmI7yo8AAWVyqH1CU=",
3598 | "requires": {
3599 | "bytes": "1",
3600 | "string_decoder": "0.10"
3601 | }
3602 | },
3603 | "read-pkg": {
3604 | "version": "1.1.0",
3605 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
3606 | "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
3607 | "dev": true,
3608 | "requires": {
3609 | "load-json-file": "^1.0.0",
3610 | "normalize-package-data": "^2.3.2",
3611 | "path-type": "^1.0.0"
3612 | }
3613 | },
3614 | "read-pkg-up": {
3615 | "version": "1.0.1",
3616 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
3617 | "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
3618 | "dev": true,
3619 | "requires": {
3620 | "find-up": "^1.0.0",
3621 | "read-pkg": "^1.0.0"
3622 | }
3623 | },
3624 | "readable-stream": {
3625 | "version": "2.3.6",
3626 | "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
3627 | "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
3628 | "requires": {
3629 | "core-util-is": "~1.0.0",
3630 | "inherits": "~2.0.3",
3631 | "isarray": "~1.0.0",
3632 | "process-nextick-args": "~2.0.0",
3633 | "safe-buffer": "~5.1.1",
3634 | "string_decoder": "~1.1.1",
3635 | "util-deprecate": "~1.0.1"
3636 | },
3637 | "dependencies": {
3638 | "string_decoder": {
3639 | "version": "1.1.1",
3640 | "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
3641 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
3642 | "requires": {
3643 | "safe-buffer": "~5.1.0"
3644 | }
3645 | }
3646 | }
3647 | },
3648 | "readdirp": {
3649 | "version": "2.2.1",
3650 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
3651 | "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
3652 | "dev": true,
3653 | "requires": {
3654 | "graceful-fs": "^4.1.11",
3655 | "micromatch": "^3.1.10",
3656 | "readable-stream": "^2.0.2"
3657 | }
3658 | },
3659 | "rechoir": {
3660 | "version": "0.6.2",
3661 | "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
3662 | "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
3663 | "dev": true,
3664 | "requires": {
3665 | "resolve": "^1.1.6"
3666 | }
3667 | },
3668 | "regex-not": {
3669 | "version": "1.0.2",
3670 | "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
3671 | "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
3672 | "dev": true,
3673 | "requires": {
3674 | "extend-shallow": "^3.0.2",
3675 | "safe-regex": "^1.1.0"
3676 | }
3677 | },
3678 | "remove-bom-buffer": {
3679 | "version": "3.0.0",
3680 | "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz",
3681 | "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==",
3682 | "dev": true,
3683 | "requires": {
3684 | "is-buffer": "^1.1.5",
3685 | "is-utf8": "^0.2.1"
3686 | }
3687 | },
3688 | "remove-bom-stream": {
3689 | "version": "1.2.0",
3690 | "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz",
3691 | "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=",
3692 | "dev": true,
3693 | "requires": {
3694 | "remove-bom-buffer": "^3.0.0",
3695 | "safe-buffer": "^5.1.0",
3696 | "through2": "^2.0.3"
3697 | }
3698 | },
3699 | "remove-trailing-separator": {
3700 | "version": "1.1.0",
3701 | "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
3702 | "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
3703 | "dev": true
3704 | },
3705 | "repeat-element": {
3706 | "version": "1.1.3",
3707 | "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
3708 | "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==",
3709 | "dev": true
3710 | },
3711 | "repeat-string": {
3712 | "version": "1.6.1",
3713 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
3714 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
3715 | "dev": true
3716 | },
3717 | "replace-ext": {
3718 | "version": "1.0.0",
3719 | "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz",
3720 | "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=",
3721 | "dev": true
3722 | },
3723 | "replace-homedir": {
3724 | "version": "1.0.0",
3725 | "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz",
3726 | "integrity": "sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw=",
3727 | "dev": true,
3728 | "requires": {
3729 | "homedir-polyfill": "^1.0.1",
3730 | "is-absolute": "^1.0.0",
3731 | "remove-trailing-separator": "^1.1.0"
3732 | }
3733 | },
3734 | "request": {
3735 | "version": "2.88.0",
3736 | "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
3737 | "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
3738 | "optional": true,
3739 | "requires": {
3740 | "aws-sign2": "~0.7.0",
3741 | "aws4": "^1.8.0",
3742 | "caseless": "~0.12.0",
3743 | "combined-stream": "~1.0.6",
3744 | "extend": "~3.0.2",
3745 | "forever-agent": "~0.6.1",
3746 | "form-data": "~2.3.2",
3747 | "har-validator": "~5.1.0",
3748 | "http-signature": "~1.2.0",
3749 | "is-typedarray": "~1.0.0",
3750 | "isstream": "~0.1.2",
3751 | "json-stringify-safe": "~5.0.1",
3752 | "mime-types": "~2.1.19",
3753 | "oauth-sign": "~0.9.0",
3754 | "performance-now": "^2.1.0",
3755 | "qs": "~6.5.2",
3756 | "safe-buffer": "^5.1.2",
3757 | "tough-cookie": "~2.4.3",
3758 | "tunnel-agent": "^0.6.0",
3759 | "uuid": "^3.3.2"
3760 | },
3761 | "dependencies": {
3762 | "qs": {
3763 | "version": "6.5.2",
3764 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
3765 | "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
3766 | "optional": true
3767 | }
3768 | }
3769 | },
3770 | "request-progress": {
3771 | "version": "2.0.1",
3772 | "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz",
3773 | "integrity": "sha1-XTa7V5YcZzqlt4jbyBQf3yO0Tgg=",
3774 | "optional": true,
3775 | "requires": {
3776 | "throttleit": "^1.0.0"
3777 | }
3778 | },
3779 | "require-directory": {
3780 | "version": "2.1.1",
3781 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
3782 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
3783 | "dev": true
3784 | },
3785 | "require-main-filename": {
3786 | "version": "1.0.1",
3787 | "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
3788 | "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
3789 | "dev": true
3790 | },
3791 | "resolve": {
3792 | "version": "1.9.0",
3793 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.9.0.tgz",
3794 | "integrity": "sha512-TZNye00tI67lwYvzxCxHGjwTNlUV70io54/Ed4j6PscB8xVfuBJpRenI/o6dVk0cY0PYTY27AgCoGGxRnYuItQ==",
3795 | "dev": true,
3796 | "requires": {
3797 | "path-parse": "^1.0.6"
3798 | }
3799 | },
3800 | "resolve-dir": {
3801 | "version": "1.0.1",
3802 | "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz",
3803 | "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=",
3804 | "dev": true,
3805 | "requires": {
3806 | "expand-tilde": "^2.0.0",
3807 | "global-modules": "^1.0.0"
3808 | }
3809 | },
3810 | "resolve-options": {
3811 | "version": "1.1.0",
3812 | "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz",
3813 | "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=",
3814 | "dev": true,
3815 | "requires": {
3816 | "value-or-function": "^3.0.0"
3817 | }
3818 | },
3819 | "resolve-url": {
3820 | "version": "0.2.1",
3821 | "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
3822 | "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo="
3823 | },
3824 | "ret": {
3825 | "version": "0.1.15",
3826 | "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
3827 | "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
3828 | "dev": true
3829 | },
3830 | "safe-buffer": {
3831 | "version": "5.1.2",
3832 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
3833 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
3834 | },
3835 | "safe-json-parse": {
3836 | "version": "1.0.1",
3837 | "resolved": "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-1.0.1.tgz",
3838 | "integrity": "sha1-PnZyPjjf3aE8mx0poeB//uSzC1c="
3839 | },
3840 | "safe-regex": {
3841 | "version": "1.1.0",
3842 | "resolved": "http://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
3843 | "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
3844 | "dev": true,
3845 | "requires": {
3846 | "ret": "~0.1.10"
3847 | }
3848 | },
3849 | "safer-buffer": {
3850 | "version": "2.1.2",
3851 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
3852 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
3853 | },
3854 | "semver": {
3855 | "version": "5.6.0",
3856 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz",
3857 | "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==",
3858 | "dev": true
3859 | },
3860 | "semver-greatest-satisfied-range": {
3861 | "version": "1.1.0",
3862 | "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz",
3863 | "integrity": "sha1-E+jCZYq5aRywzXEJMkAoDTb3els=",
3864 | "dev": true,
3865 | "requires": {
3866 | "sver-compat": "^1.5.0"
3867 | }
3868 | },
3869 | "send": {
3870 | "version": "0.16.2",
3871 | "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz",
3872 | "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==",
3873 | "requires": {
3874 | "debug": "2.6.9",
3875 | "depd": "~1.1.2",
3876 | "destroy": "~1.0.4",
3877 | "encodeurl": "~1.0.2",
3878 | "escape-html": "~1.0.3",
3879 | "etag": "~1.8.1",
3880 | "fresh": "0.5.2",
3881 | "http-errors": "~1.6.2",
3882 | "mime": "1.4.1",
3883 | "ms": "2.0.0",
3884 | "on-finished": "~2.3.0",
3885 | "range-parser": "~1.2.0",
3886 | "statuses": "~1.4.0"
3887 | },
3888 | "dependencies": {
3889 | "statuses": {
3890 | "version": "1.4.0",
3891 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
3892 | "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew=="
3893 | }
3894 | }
3895 | },
3896 | "serve-index": {
3897 | "version": "1.9.1",
3898 | "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz",
3899 | "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=",
3900 | "requires": {
3901 | "accepts": "~1.3.4",
3902 | "batch": "0.6.1",
3903 | "debug": "2.6.9",
3904 | "escape-html": "~1.0.3",
3905 | "http-errors": "~1.6.2",
3906 | "mime-types": "~2.1.17",
3907 | "parseurl": "~1.3.2"
3908 | }
3909 | },
3910 | "serve-static": {
3911 | "version": "1.13.2",
3912 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz",
3913 | "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==",
3914 | "requires": {
3915 | "encodeurl": "~1.0.2",
3916 | "escape-html": "~1.0.3",
3917 | "parseurl": "~1.3.2",
3918 | "send": "0.16.2"
3919 | }
3920 | },
3921 | "set-blocking": {
3922 | "version": "2.0.0",
3923 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
3924 | "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
3925 | "dev": true
3926 | },
3927 | "set-value": {
3928 | "version": "2.0.0",
3929 | "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz",
3930 | "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==",
3931 | "dev": true,
3932 | "requires": {
3933 | "extend-shallow": "^2.0.1",
3934 | "is-extendable": "^0.1.1",
3935 | "is-plain-object": "^2.0.3",
3936 | "split-string": "^3.0.1"
3937 | },
3938 | "dependencies": {
3939 | "extend-shallow": {
3940 | "version": "2.0.1",
3941 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
3942 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
3943 | "dev": true,
3944 | "requires": {
3945 | "is-extendable": "^0.1.0"
3946 | }
3947 | },
3948 | "is-extendable": {
3949 | "version": "0.1.1",
3950 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
3951 | "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
3952 | "dev": true
3953 | }
3954 | }
3955 | },
3956 | "setprototypeof": {
3957 | "version": "1.1.0",
3958 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
3959 | "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ=="
3960 | },
3961 | "slick": {
3962 | "version": "1.12.2",
3963 | "resolved": "https://registry.npmjs.org/slick/-/slick-1.12.2.tgz",
3964 | "integrity": "sha1-vQSN23TefRymkV+qSldXCzVQwtc="
3965 | },
3966 | "slimerjs": {
3967 | "version": "0.10.3",
3968 | "resolved": "https://registry.npmjs.org/slimerjs/-/slimerjs-0.10.3.tgz",
3969 | "integrity": "sha1-v9lesGNOgaI7I4M6Qi9ovjLP/sg=",
3970 | "optional": true
3971 | },
3972 | "snapdragon": {
3973 | "version": "0.8.2",
3974 | "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
3975 | "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
3976 | "dev": true,
3977 | "requires": {
3978 | "base": "^0.11.1",
3979 | "debug": "^2.2.0",
3980 | "define-property": "^0.2.5",
3981 | "extend-shallow": "^2.0.1",
3982 | "map-cache": "^0.2.2",
3983 | "source-map": "^0.5.6",
3984 | "source-map-resolve": "^0.5.0",
3985 | "use": "^3.1.0"
3986 | },
3987 | "dependencies": {
3988 | "define-property": {
3989 | "version": "0.2.5",
3990 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
3991 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
3992 | "dev": true,
3993 | "requires": {
3994 | "is-descriptor": "^0.1.0"
3995 | }
3996 | },
3997 | "extend-shallow": {
3998 | "version": "2.0.1",
3999 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
4000 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
4001 | "dev": true,
4002 | "requires": {
4003 | "is-extendable": "^0.1.0"
4004 | }
4005 | },
4006 | "is-extendable": {
4007 | "version": "0.1.1",
4008 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
4009 | "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
4010 | "dev": true
4011 | },
4012 | "source-map": {
4013 | "version": "0.5.7",
4014 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
4015 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
4016 | "dev": true
4017 | }
4018 | }
4019 | },
4020 | "snapdragon-node": {
4021 | "version": "2.1.1",
4022 | "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
4023 | "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
4024 | "dev": true,
4025 | "requires": {
4026 | "define-property": "^1.0.0",
4027 | "isobject": "^3.0.0",
4028 | "snapdragon-util": "^3.0.1"
4029 | },
4030 | "dependencies": {
4031 | "define-property": {
4032 | "version": "1.0.0",
4033 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
4034 | "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
4035 | "dev": true,
4036 | "requires": {
4037 | "is-descriptor": "^1.0.0"
4038 | }
4039 | },
4040 | "is-accessor-descriptor": {
4041 | "version": "1.0.0",
4042 | "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
4043 | "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
4044 | "dev": true,
4045 | "requires": {
4046 | "kind-of": "^6.0.0"
4047 | }
4048 | },
4049 | "is-data-descriptor": {
4050 | "version": "1.0.0",
4051 | "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
4052 | "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
4053 | "dev": true,
4054 | "requires": {
4055 | "kind-of": "^6.0.0"
4056 | }
4057 | },
4058 | "is-descriptor": {
4059 | "version": "1.0.2",
4060 | "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
4061 | "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
4062 | "dev": true,
4063 | "requires": {
4064 | "is-accessor-descriptor": "^1.0.0",
4065 | "is-data-descriptor": "^1.0.0",
4066 | "kind-of": "^6.0.2"
4067 | }
4068 | }
4069 | }
4070 | },
4071 | "snapdragon-util": {
4072 | "version": "3.0.1",
4073 | "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
4074 | "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
4075 | "dev": true,
4076 | "requires": {
4077 | "kind-of": "^3.2.0"
4078 | },
4079 | "dependencies": {
4080 | "kind-of": {
4081 | "version": "3.2.2",
4082 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
4083 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
4084 | "dev": true,
4085 | "requires": {
4086 | "is-buffer": "^1.1.5"
4087 | }
4088 | }
4089 | }
4090 | },
4091 | "source-map": {
4092 | "version": "0.6.1",
4093 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
4094 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
4095 | },
4096 | "source-map-resolve": {
4097 | "version": "0.5.2",
4098 | "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz",
4099 | "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==",
4100 | "requires": {
4101 | "atob": "^2.1.1",
4102 | "decode-uri-component": "^0.2.0",
4103 | "resolve-url": "^0.2.1",
4104 | "source-map-url": "^0.4.0",
4105 | "urix": "^0.1.0"
4106 | }
4107 | },
4108 | "source-map-url": {
4109 | "version": "0.4.0",
4110 | "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
4111 | "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM="
4112 | },
4113 | "sparkles": {
4114 | "version": "1.0.1",
4115 | "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz",
4116 | "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==",
4117 | "dev": true
4118 | },
4119 | "spdx-correct": {
4120 | "version": "3.1.0",
4121 | "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz",
4122 | "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==",
4123 | "dev": true,
4124 | "requires": {
4125 | "spdx-expression-parse": "^3.0.0",
4126 | "spdx-license-ids": "^3.0.0"
4127 | }
4128 | },
4129 | "spdx-exceptions": {
4130 | "version": "2.2.0",
4131 | "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz",
4132 | "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==",
4133 | "dev": true
4134 | },
4135 | "spdx-expression-parse": {
4136 | "version": "3.0.0",
4137 | "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
4138 | "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
4139 | "dev": true,
4140 | "requires": {
4141 | "spdx-exceptions": "^2.1.0",
4142 | "spdx-license-ids": "^3.0.0"
4143 | }
4144 | },
4145 | "spdx-license-ids": {
4146 | "version": "3.0.3",
4147 | "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.3.tgz",
4148 | "integrity": "sha512-uBIcIl3Ih6Phe3XHK1NqboJLdGfwr1UN3k6wSD1dZpmPsIkb8AGNbZYJ1fOBk834+Gxy8rpfDxrS6XLEMZMY2g==",
4149 | "dev": true
4150 | },
4151 | "specificity": {
4152 | "version": "0.3.2",
4153 | "resolved": "https://registry.npmjs.org/specificity/-/specificity-0.3.2.tgz",
4154 | "integrity": "sha512-Nc/QN/A425Qog7j9aHmwOrlwX2e7pNI47ciwxwy4jOlvbbMHkNNJchit+FX+UjF3IAdiaaV5BKeWuDUnws6G1A=="
4155 | },
4156 | "split-string": {
4157 | "version": "3.1.0",
4158 | "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
4159 | "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
4160 | "dev": true,
4161 | "requires": {
4162 | "extend-shallow": "^3.0.0"
4163 | }
4164 | },
4165 | "sprintf-js": {
4166 | "version": "1.0.3",
4167 | "resolved": "http://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
4168 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
4169 | },
4170 | "sshpk": {
4171 | "version": "1.16.0",
4172 | "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.0.tgz",
4173 | "integrity": "sha512-Zhev35/y7hRMcID/upReIvRse+I9SVhyVre/KTJSJQWMz3C3+G+HpO7m1wK/yckEtujKZ7dS4hkVxAnmHaIGVQ==",
4174 | "optional": true,
4175 | "requires": {
4176 | "asn1": "~0.2.3",
4177 | "assert-plus": "^1.0.0",
4178 | "bcrypt-pbkdf": "^1.0.0",
4179 | "dashdash": "^1.12.0",
4180 | "ecc-jsbn": "~0.1.1",
4181 | "getpass": "^0.1.1",
4182 | "jsbn": "~0.1.0",
4183 | "safer-buffer": "^2.0.2",
4184 | "tweetnacl": "~0.14.0"
4185 | }
4186 | },
4187 | "stack-trace": {
4188 | "version": "0.0.10",
4189 | "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
4190 | "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=",
4191 | "dev": true
4192 | },
4193 | "static-extend": {
4194 | "version": "0.1.2",
4195 | "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
4196 | "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
4197 | "dev": true,
4198 | "requires": {
4199 | "define-property": "^0.2.5",
4200 | "object-copy": "^0.1.0"
4201 | },
4202 | "dependencies": {
4203 | "define-property": {
4204 | "version": "0.2.5",
4205 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
4206 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
4207 | "dev": true,
4208 | "requires": {
4209 | "is-descriptor": "^0.1.0"
4210 | }
4211 | }
4212 | }
4213 | },
4214 | "statuses": {
4215 | "version": "1.3.1",
4216 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz",
4217 | "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4="
4218 | },
4219 | "stream-exhaust": {
4220 | "version": "1.0.2",
4221 | "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz",
4222 | "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==",
4223 | "dev": true
4224 | },
4225 | "stream-shift": {
4226 | "version": "1.0.0",
4227 | "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz",
4228 | "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=",
4229 | "dev": true
4230 | },
4231 | "string-template": {
4232 | "version": "0.2.1",
4233 | "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz",
4234 | "integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0="
4235 | },
4236 | "string-width": {
4237 | "version": "1.0.2",
4238 | "resolved": "http://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
4239 | "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
4240 | "dev": true,
4241 | "requires": {
4242 | "code-point-at": "^1.0.0",
4243 | "is-fullwidth-code-point": "^1.0.0",
4244 | "strip-ansi": "^3.0.0"
4245 | }
4246 | },
4247 | "string_decoder": {
4248 | "version": "0.10.31",
4249 | "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
4250 | "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
4251 | },
4252 | "strip-ansi": {
4253 | "version": "3.0.1",
4254 | "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
4255 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
4256 | "dev": true,
4257 | "requires": {
4258 | "ansi-regex": "^2.0.0"
4259 | }
4260 | },
4261 | "strip-bom": {
4262 | "version": "2.0.0",
4263 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
4264 | "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
4265 | "dev": true,
4266 | "requires": {
4267 | "is-utf8": "^0.2.0"
4268 | }
4269 | },
4270 | "supports-color": {
4271 | "version": "5.4.0",
4272 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
4273 | "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==",
4274 | "dev": true,
4275 | "requires": {
4276 | "has-flag": "^3.0.0"
4277 | }
4278 | },
4279 | "sver-compat": {
4280 | "version": "1.5.0",
4281 | "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz",
4282 | "integrity": "sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg=",
4283 | "dev": true,
4284 | "requires": {
4285 | "es6-iterator": "^2.0.1",
4286 | "es6-symbol": "^3.1.1"
4287 | }
4288 | },
4289 | "tap-producer-macbre": {
4290 | "version": "0.0.3",
4291 | "resolved": "https://registry.npmjs.org/tap-producer-macbre/-/tap-producer-macbre-0.0.3.tgz",
4292 | "integrity": "sha1-M6FLw1xKvEtbtGw8eMEIE861XX4=",
4293 | "requires": {
4294 | "inherits": "^2.0.1",
4295 | "yamlish": "^0.0.7"
4296 | }
4297 | },
4298 | "throttleit": {
4299 | "version": "1.0.0",
4300 | "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz",
4301 | "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=",
4302 | "optional": true
4303 | },
4304 | "through2": {
4305 | "version": "2.0.5",
4306 | "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
4307 | "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
4308 | "dev": true,
4309 | "requires": {
4310 | "readable-stream": "~2.3.6",
4311 | "xtend": "~4.0.1"
4312 | }
4313 | },
4314 | "through2-filter": {
4315 | "version": "3.0.0",
4316 | "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz",
4317 | "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==",
4318 | "dev": true,
4319 | "requires": {
4320 | "through2": "~2.0.0",
4321 | "xtend": "~4.0.0"
4322 | }
4323 | },
4324 | "time-stamp": {
4325 | "version": "1.1.0",
4326 | "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz",
4327 | "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM="
4328 | },
4329 | "timers-ext": {
4330 | "version": "0.1.7",
4331 | "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz",
4332 | "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==",
4333 | "requires": {
4334 | "es5-ext": "~0.10.46",
4335 | "next-tick": "1"
4336 | }
4337 | },
4338 | "tiny-lr": {
4339 | "version": "1.1.1",
4340 | "resolved": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-1.1.1.tgz",
4341 | "integrity": "sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA==",
4342 | "requires": {
4343 | "body": "^5.1.0",
4344 | "debug": "^3.1.0",
4345 | "faye-websocket": "~0.10.0",
4346 | "livereload-js": "^2.3.0",
4347 | "object-assign": "^4.1.0",
4348 | "qs": "^6.4.0"
4349 | },
4350 | "dependencies": {
4351 | "debug": {
4352 | "version": "3.2.6",
4353 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
4354 | "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
4355 | "requires": {
4356 | "ms": "^2.1.1"
4357 | }
4358 | },
4359 | "ms": {
4360 | "version": "2.1.1",
4361 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
4362 | "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
4363 | }
4364 | }
4365 | },
4366 | "to-absolute-glob": {
4367 | "version": "2.0.2",
4368 | "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz",
4369 | "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=",
4370 | "dev": true,
4371 | "requires": {
4372 | "is-absolute": "^1.0.0",
4373 | "is-negated-glob": "^1.0.0"
4374 | }
4375 | },
4376 | "to-object-path": {
4377 | "version": "0.3.0",
4378 | "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
4379 | "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
4380 | "dev": true,
4381 | "requires": {
4382 | "kind-of": "^3.0.2"
4383 | },
4384 | "dependencies": {
4385 | "kind-of": {
4386 | "version": "3.2.2",
4387 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
4388 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
4389 | "dev": true,
4390 | "requires": {
4391 | "is-buffer": "^1.1.5"
4392 | }
4393 | }
4394 | }
4395 | },
4396 | "to-regex": {
4397 | "version": "3.0.2",
4398 | "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
4399 | "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
4400 | "dev": true,
4401 | "requires": {
4402 | "define-property": "^2.0.2",
4403 | "extend-shallow": "^3.0.2",
4404 | "regex-not": "^1.0.2",
4405 | "safe-regex": "^1.1.0"
4406 | }
4407 | },
4408 | "to-regex-range": {
4409 | "version": "2.1.1",
4410 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
4411 | "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
4412 | "dev": true,
4413 | "requires": {
4414 | "is-number": "^3.0.0",
4415 | "repeat-string": "^1.6.1"
4416 | }
4417 | },
4418 | "to-through": {
4419 | "version": "2.0.0",
4420 | "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz",
4421 | "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=",
4422 | "dev": true,
4423 | "requires": {
4424 | "through2": "^2.0.3"
4425 | }
4426 | },
4427 | "topo": {
4428 | "version": "3.0.3",
4429 | "resolved": "https://registry.npmjs.org/topo/-/topo-3.0.3.tgz",
4430 | "integrity": "sha512-IgpPtvD4kjrJ7CRA3ov2FhWQADwv+Tdqbsf1ZnPUSAtCJ9e1Z44MmoSGDXGk4IppoZA7jd/QRkNddlLJWlUZsQ==",
4431 | "requires": {
4432 | "hoek": "6.x.x"
4433 | }
4434 | },
4435 | "tough-cookie": {
4436 | "version": "2.4.3",
4437 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
4438 | "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
4439 | "optional": true,
4440 | "requires": {
4441 | "psl": "^1.1.24",
4442 | "punycode": "^1.4.1"
4443 | },
4444 | "dependencies": {
4445 | "punycode": {
4446 | "version": "1.4.1",
4447 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
4448 | "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
4449 | "optional": true
4450 | }
4451 | }
4452 | },
4453 | "travis-fold": {
4454 | "version": "0.1.2",
4455 | "resolved": "https://registry.npmjs.org/travis-fold/-/travis-fold-0.1.2.tgz",
4456 | "integrity": "sha1-/sAF+dyqJZo/lFnOWmkGq6TFRdo="
4457 | },
4458 | "tunnel-agent": {
4459 | "version": "0.6.0",
4460 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
4461 | "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
4462 | "optional": true,
4463 | "requires": {
4464 | "safe-buffer": "^5.0.1"
4465 | }
4466 | },
4467 | "tweetnacl": {
4468 | "version": "0.14.5",
4469 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
4470 | "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
4471 | },
4472 | "type-detect": {
4473 | "version": "4.0.8",
4474 | "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
4475 | "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
4476 | "dev": true
4477 | },
4478 | "typedarray": {
4479 | "version": "0.0.6",
4480 | "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
4481 | "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
4482 | },
4483 | "unc-path-regex": {
4484 | "version": "0.1.2",
4485 | "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
4486 | "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=",
4487 | "dev": true
4488 | },
4489 | "undertaker": {
4490 | "version": "1.2.0",
4491 | "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.2.0.tgz",
4492 | "integrity": "sha1-M52kZGJS0ILcN45wgGcpl1DhG0k=",
4493 | "dev": true,
4494 | "requires": {
4495 | "arr-flatten": "^1.0.1",
4496 | "arr-map": "^2.0.0",
4497 | "bach": "^1.0.0",
4498 | "collection-map": "^1.0.0",
4499 | "es6-weak-map": "^2.0.1",
4500 | "last-run": "^1.1.0",
4501 | "object.defaults": "^1.0.0",
4502 | "object.reduce": "^1.0.0",
4503 | "undertaker-registry": "^1.0.0"
4504 | }
4505 | },
4506 | "undertaker-registry": {
4507 | "version": "1.0.1",
4508 | "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz",
4509 | "integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=",
4510 | "dev": true
4511 | },
4512 | "union-value": {
4513 | "version": "1.0.0",
4514 | "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz",
4515 | "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=",
4516 | "dev": true,
4517 | "requires": {
4518 | "arr-union": "^3.1.0",
4519 | "get-value": "^2.0.6",
4520 | "is-extendable": "^0.1.1",
4521 | "set-value": "^0.4.3"
4522 | },
4523 | "dependencies": {
4524 | "extend-shallow": {
4525 | "version": "2.0.1",
4526 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
4527 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
4528 | "dev": true,
4529 | "requires": {
4530 | "is-extendable": "^0.1.0"
4531 | }
4532 | },
4533 | "is-extendable": {
4534 | "version": "0.1.1",
4535 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
4536 | "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
4537 | "dev": true
4538 | },
4539 | "set-value": {
4540 | "version": "0.4.3",
4541 | "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz",
4542 | "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=",
4543 | "dev": true,
4544 | "requires": {
4545 | "extend-shallow": "^2.0.1",
4546 | "is-extendable": "^0.1.1",
4547 | "is-plain-object": "^2.0.1",
4548 | "to-object-path": "^0.3.0"
4549 | }
4550 | }
4551 | }
4552 | },
4553 | "unique-stream": {
4554 | "version": "2.3.1",
4555 | "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz",
4556 | "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==",
4557 | "dev": true,
4558 | "requires": {
4559 | "json-stable-stringify-without-jsonify": "^1.0.1",
4560 | "through2-filter": "^3.0.0"
4561 | }
4562 | },
4563 | "unpipe": {
4564 | "version": "1.0.0",
4565 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
4566 | "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
4567 | },
4568 | "unset-value": {
4569 | "version": "1.0.0",
4570 | "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
4571 | "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
4572 | "dev": true,
4573 | "requires": {
4574 | "has-value": "^0.3.1",
4575 | "isobject": "^3.0.0"
4576 | },
4577 | "dependencies": {
4578 | "has-value": {
4579 | "version": "0.3.1",
4580 | "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
4581 | "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
4582 | "dev": true,
4583 | "requires": {
4584 | "get-value": "^2.0.3",
4585 | "has-values": "^0.1.4",
4586 | "isobject": "^2.0.0"
4587 | },
4588 | "dependencies": {
4589 | "isobject": {
4590 | "version": "2.1.0",
4591 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
4592 | "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
4593 | "dev": true,
4594 | "requires": {
4595 | "isarray": "1.0.0"
4596 | }
4597 | }
4598 | }
4599 | },
4600 | "has-values": {
4601 | "version": "0.1.4",
4602 | "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
4603 | "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
4604 | "dev": true
4605 | }
4606 | }
4607 | },
4608 | "upath": {
4609 | "version": "1.1.0",
4610 | "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz",
4611 | "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==",
4612 | "dev": true
4613 | },
4614 | "uri-js": {
4615 | "version": "4.2.2",
4616 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
4617 | "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
4618 | "optional": true,
4619 | "requires": {
4620 | "punycode": "^2.1.0"
4621 | }
4622 | },
4623 | "urix": {
4624 | "version": "0.1.0",
4625 | "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
4626 | "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI="
4627 | },
4628 | "use": {
4629 | "version": "3.1.1",
4630 | "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
4631 | "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
4632 | "dev": true
4633 | },
4634 | "util-deprecate": {
4635 | "version": "1.0.2",
4636 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
4637 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
4638 | },
4639 | "utils-merge": {
4640 | "version": "1.0.1",
4641 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
4642 | "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
4643 | },
4644 | "uuid": {
4645 | "version": "3.3.2",
4646 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
4647 | "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA=="
4648 | },
4649 | "v8flags": {
4650 | "version": "3.1.2",
4651 | "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.1.2.tgz",
4652 | "integrity": "sha512-MtivA7GF24yMPte9Rp/BWGCYQNaUj86zeYxV/x2RRJMKagImbbv3u8iJC57lNhWLPcGLJmHcHmFWkNsplbbLWw==",
4653 | "dev": true,
4654 | "requires": {
4655 | "homedir-polyfill": "^1.0.1"
4656 | }
4657 | },
4658 | "validate-npm-package-license": {
4659 | "version": "3.0.4",
4660 | "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
4661 | "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
4662 | "dev": true,
4663 | "requires": {
4664 | "spdx-correct": "^3.0.0",
4665 | "spdx-expression-parse": "^3.0.0"
4666 | }
4667 | },
4668 | "value-or-function": {
4669 | "version": "3.0.0",
4670 | "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz",
4671 | "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=",
4672 | "dev": true
4673 | },
4674 | "verror": {
4675 | "version": "1.10.0",
4676 | "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
4677 | "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
4678 | "optional": true,
4679 | "requires": {
4680 | "assert-plus": "^1.0.0",
4681 | "core-util-is": "1.0.2",
4682 | "extsprintf": "^1.2.0"
4683 | }
4684 | },
4685 | "vinyl": {
4686 | "version": "2.2.0",
4687 | "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz",
4688 | "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==",
4689 | "dev": true,
4690 | "requires": {
4691 | "clone": "^2.1.1",
4692 | "clone-buffer": "^1.0.0",
4693 | "clone-stats": "^1.0.0",
4694 | "cloneable-readable": "^1.0.0",
4695 | "remove-trailing-separator": "^1.0.1",
4696 | "replace-ext": "^1.0.0"
4697 | }
4698 | },
4699 | "vinyl-fs": {
4700 | "version": "3.0.3",
4701 | "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz",
4702 | "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==",
4703 | "dev": true,
4704 | "requires": {
4705 | "fs-mkdirp-stream": "^1.0.0",
4706 | "glob-stream": "^6.1.0",
4707 | "graceful-fs": "^4.0.0",
4708 | "is-valid-glob": "^1.0.0",
4709 | "lazystream": "^1.0.0",
4710 | "lead": "^1.0.0",
4711 | "object.assign": "^4.0.4",
4712 | "pumpify": "^1.3.5",
4713 | "readable-stream": "^2.3.3",
4714 | "remove-bom-buffer": "^3.0.0",
4715 | "remove-bom-stream": "^1.2.0",
4716 | "resolve-options": "^1.1.0",
4717 | "through2": "^2.0.0",
4718 | "to-through": "^2.0.0",
4719 | "value-or-function": "^3.0.0",
4720 | "vinyl": "^2.0.0",
4721 | "vinyl-sourcemap": "^1.1.0"
4722 | }
4723 | },
4724 | "vinyl-sourcemap": {
4725 | "version": "1.1.0",
4726 | "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz",
4727 | "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=",
4728 | "dev": true,
4729 | "requires": {
4730 | "append-buffer": "^1.0.2",
4731 | "convert-source-map": "^1.5.0",
4732 | "graceful-fs": "^4.1.6",
4733 | "normalize-path": "^2.1.1",
4734 | "now-and-later": "^2.0.0",
4735 | "remove-bom-buffer": "^3.0.0",
4736 | "vinyl": "^2.0.0"
4737 | }
4738 | },
4739 | "websocket-driver": {
4740 | "version": "0.7.0",
4741 | "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz",
4742 | "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=",
4743 | "requires": {
4744 | "http-parser-js": ">=0.4.0",
4745 | "websocket-extensions": ">=0.1.1"
4746 | }
4747 | },
4748 | "websocket-extensions": {
4749 | "version": "0.1.3",
4750 | "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz",
4751 | "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg=="
4752 | },
4753 | "which": {
4754 | "version": "1.2.14",
4755 | "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz",
4756 | "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=",
4757 | "requires": {
4758 | "isexe": "^2.0.0"
4759 | }
4760 | },
4761 | "which-module": {
4762 | "version": "1.0.0",
4763 | "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
4764 | "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=",
4765 | "dev": true
4766 | },
4767 | "wordwrap": {
4768 | "version": "0.0.3",
4769 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
4770 | "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc="
4771 | },
4772 | "wrap-ansi": {
4773 | "version": "2.1.0",
4774 | "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
4775 | "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
4776 | "dev": true,
4777 | "requires": {
4778 | "string-width": "^1.0.1",
4779 | "strip-ansi": "^3.0.1"
4780 | }
4781 | },
4782 | "wrappy": {
4783 | "version": "1.0.2",
4784 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
4785 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
4786 | },
4787 | "xtend": {
4788 | "version": "4.0.1",
4789 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
4790 | "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68="
4791 | },
4792 | "y18n": {
4793 | "version": "3.2.1",
4794 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
4795 | "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
4796 | "dev": true
4797 | },
4798 | "yamlish": {
4799 | "version": "0.0.7",
4800 | "resolved": "https://registry.npmjs.org/yamlish/-/yamlish-0.0.7.tgz",
4801 | "integrity": "sha1-tK+aHcxjYYhzw9bkUewyE8OaV/s="
4802 | },
4803 | "yargs": {
4804 | "version": "7.1.0",
4805 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz",
4806 | "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=",
4807 | "dev": true,
4808 | "requires": {
4809 | "camelcase": "^3.0.0",
4810 | "cliui": "^3.2.0",
4811 | "decamelize": "^1.1.1",
4812 | "get-caller-file": "^1.0.1",
4813 | "os-locale": "^1.4.0",
4814 | "read-pkg-up": "^1.0.1",
4815 | "require-directory": "^2.1.1",
4816 | "require-main-filename": "^1.0.1",
4817 | "set-blocking": "^2.0.0",
4818 | "string-width": "^1.0.2",
4819 | "which-module": "^1.0.0",
4820 | "y18n": "^3.2.1",
4821 | "yargs-parser": "^5.0.0"
4822 | }
4823 | },
4824 | "yargs-parser": {
4825 | "version": "5.0.0",
4826 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz",
4827 | "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=",
4828 | "dev": true,
4829 | "requires": {
4830 | "camelcase": "^3.0.0"
4831 | }
4832 | },
4833 | "yauzl": {
4834 | "version": "2.4.1",
4835 | "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz",
4836 | "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=",
4837 | "optional": true,
4838 | "requires": {
4839 | "fd-slicer": "~1.0.1"
4840 | }
4841 | }
4842 | }
4843 | }
4844 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "gulp-louis",
3 | "version": "2.4.2",
4 | "homepage": "https://github.com/AvraamMavridis/gulp-louis",
5 | "repository": {
6 | "type": "git",
7 | "url": "https://github.com/AvraamMavridis/gulp-louis"
8 | },
9 | "author": "Avraam Mavridis",
10 | "description": "Performance measurment plugin for gulp based on Phantomas",
11 | "main": "louis.js",
12 | "scripts": {
13 | "test": "mocha"
14 | },
15 | "keywords": [
16 | "gulpplugin",
17 | "gulp",
18 | "perfmatters",
19 | "phantomas",
20 | "performance",
21 | "speed",
22 | "analyze",
23 | "website",
24 | "website performance tools",
25 | "website performance monitoring",
26 | "website performance metrics",
27 | "website performance optimization",
28 | "website performance analyzer"
29 | ],
30 | "license": "ISC",
31 | "dependencies": {
32 | "cli-color": "^1.4.0",
33 | "gulp-connect": "^5.7.0",
34 | "joi": "^14.3.1",
35 | "phantomas": "^1.20.1",
36 | "plugin-error": "^1.0.1"
37 | },
38 | "devDependencies": {
39 | "chai": "^4.2.0",
40 | "gulp": "^4.0.0",
41 | "mocha": "^5.2.0"
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/performanceBudget.js:
--------------------------------------------------------------------------------
1 | var clc = require('cli-color');
2 |
3 | var checkBudget = function(budgetOptions, data){
4 | metrics = data.metrics;
5 | console.log('\n' + clc.black.bgWhiteBright('Metrics analyzed against performance budget') + '\n');
6 |
7 | var b_options = Object.keys(budgetOptions);
8 | var b_length = b_options.length;
9 |
10 | while(b_length--)
11 | if(metrics[b_options[b_length]] > budgetOptions[b_options[b_length]]){
12 | console.log(clc.whiteBright.bgRed(b_options[b_length] + ': ') +
13 | clc.red.bgWhiteBright(' Expected < ' + budgetOptions[b_options[b_length]]) +
14 | clc.red.bgWhiteBright.underline(' Actual = ' + metrics[b_options[b_length]]));
15 | }
16 | else{
17 | console.log(clc.whiteBright.bgGreen(b_options[b_length] + ': ') +
18 | clc.green.bgWhiteBright(' Expected < ' + budgetOptions[b_options[b_length]]) +
19 | clc.green.bgWhiteBright.underline(' Actual = ' + metrics[b_options[b_length]]));
20 | }
21 | delete metrics[b_options[b_length]];
22 | };
23 |
24 | module.exports = checkBudget;
25 |
--------------------------------------------------------------------------------
/test/test.js:
--------------------------------------------------------------------------------
1 | // Dependencies
2 | var validate = require('../validate');
3 | var chai = require('chai');
4 | var expect = chai.expect;
5 |
6 | options = {
7 | url: 'https://www.npmjs.com/',
8 | timeout: 60,
9 | viewport: '1280x1024',
10 | userAgent: 'Chrome/37.0.2062.120',
11 | noExternals: false,
12 | performanceBudget: {
13 | requests: 2,
14 | medianLatency: 10,
15 | slowestResponse: 1000
16 | }
17 | };
18 |
19 | options2 = {
20 | someInvalid: 'invalid'
21 | };
22 |
23 | describe('Validation', function() {
24 | it('should return true when the options are valid', function() {
25 | validation = validate(options);
26 | expect(validation).to.be.true;
27 | });
28 | });
29 |
30 | describe('Validation', function() {
31 | it('should throw an exception when the options are not valid', function() {
32 | expect(validate).to.throw(Error);
33 | });
34 | });
35 |
--------------------------------------------------------------------------------
/validate.js:
--------------------------------------------------------------------------------
1 | var joi = require('joi');
2 | var clc = require('cli-color');
3 | var PluginError = require('plugin-error');
4 |
5 | const PLUGIN_NAME = 'gulp-louis';
6 |
7 | //options schema for validation
8 | var optionsSchema = {
9 | runs: joi.number(),
10 | url: joi.string(),
11 | engine: joi.string(),
12 | timeout: joi.number().integer().min(10),
13 | viewport: joi.string(),
14 | userAgent: joi.string(),
15 | noExternals: joi.boolean(),
16 | outputFileName: joi.string(),
17 | performanceBudget: joi.object(),
18 | proxy: joi.string()
19 | };
20 |
21 | //performance budget object schema for validation
22 | var performanceBudgetSchema = {
23 | requests: joi.number().integer().min(0),
24 | gzipRequests: joi.number().integer().min(0),
25 | postRequests: joi.number().integer().min(0),
26 | httpsRequests: joi.number().integer().min(0),
27 | notFound: joi.number().integer().min(0),
28 | bodySize: joi.number().integer().min(0),
29 | contentLength: joi.number().integer().min(0),
30 | httpTrafficCompleted: joi.number().integer().min(0),
31 | timeToFirstByte: joi.number().integer().min(0),
32 | timeToLastByte: joi.number().integer().min(0),
33 | ajaxRequests: joi.number().integer().min(0),
34 | htmlCount: joi.number().integer().min(0),
35 | htmlSize: joi.number().integer().min(0),
36 | cssCount: joi.number().integer().min(0),
37 | cssSize: joi.number().integer().min(0),
38 | jsCount: joi.number().integer().min(0),
39 | jsSize: joi.number().integer().min(0),
40 | jsonCount: joi.number().integer().min(0),
41 | jsonSize: joi.number().integer().min(0),
42 | imageCount: joi.number().integer().min(0),
43 | imageSize: joi.number().integer().min(0),
44 | videoCount: joi.number().integer().min(0),
45 | videoSize: joi.number().integer().min(0),
46 | webfontCount: joi.number().integer().min(0),
47 | webfontSize: joi.number().integer().min(0),
48 | base64Count: joi.number().integer().min(0),
49 | base64Size: joi.number().integer().min(0),
50 | otherCount: joi.number().integer().min(0),
51 | otherSize: joi.number().integer().min(0),
52 | cacheHits: joi.number().integer().min(0),
53 | cacheMisses: joi.number().integer().min(0),
54 | cachePasses: joi.number().integer().min(0),
55 | cachingNotSpecified: joi.number().integer().min(0),
56 | cachingTooShort: joi.number().integer().min(0),
57 | cachingDisabled: joi.number().integer().min(0),
58 | oldCachingHeaders: joi.number().integer().min(0),
59 | consoleMessages: joi.number().integer().min(0),
60 | cookiesSent: joi.number().integer().min(0),
61 | cookiesRecv: joi.number().integer().min(0),
62 | domainsWithCookies: joi.number().integer().min(0),
63 | documentCookiesLength: joi.number().integer().min(0),
64 | documentCookiesCount: joi.number().integer().min(0),
65 | documentHeight: joi.number().integer().min(0),
66 | commentsSize: joi.number().integer().min(0),
67 | whiteSpacesSize: joi.number().integer().min(0),
68 | DOMelementsCount: joi.number().integer().min(0),
69 | DOMelementMaxDepth: joi.number().integer().min(0),
70 | nodesWithInlineCSS: joi.number().integer().min(0),
71 | imagesScaledDown: joi.number().integer().min(0),
72 | imagesWithoutDimensions: joi.number().integer().min(0),
73 | DOMidDuplicated: joi.number().integer().min(0),
74 | hiddenContentSize: joi.number().integer().min(0),
75 | DOMmutationsInsertsv: joi.number().integer().min(0),
76 | DOMmutationsRemoves: joi.number().integer().min(0),
77 | DOMmutationsAttributes: joi.number().integer().min(0),
78 | DOMqueries: joi.number().integer().min(0),
79 | DOMqueriesWithoutResults: joi.number().integer().min(0),
80 | DOMqueriesById: joi.number().integer().min(0),
81 | DOMqueriesByClassName: joi.number().integer().min(0),
82 | DOMqueriesByTagName: joi.number().integer().min(0),
83 | DOMqueriesByQuerySelectorAll: joi.number().integer().min(0),
84 | DOMinserts: joi.number().integer().min(0),
85 | DOMqueriesDuplicated: joi.number().integer().min(0),
86 | DOMqueriesAvoidable: joi.number().integer().min(0),
87 | domains: joi.number().integer().min(0),
88 | maxRequestsPerDomain: joi.number().integer().min(0),
89 | medianRequestsPerDomain: joi.number().integer().min(0),
90 | eventsBound: joi.number().integer().min(0),
91 | eventsDispatched: joi.number().integer().min(0),
92 | globalVariables: joi.number().integer().min(0),
93 | globalVariablesFalsy: joi.number().integer().min(0),
94 | headersCount: joi.number().integer().min(0),
95 | headersSentCount: joi.number().integer().min(0),
96 | headersRecvCount: joi.number().integer().min(0),
97 | headersSize: joi.number().integer().min(0),
98 | headersSentSize: joi.number().integer().min(0),
99 | headersRecvSize: joi.number().integer().min(0),
100 | headersBiggerThanContent: joi.number().integer().min(0),
101 | jQueryVersion: joi.number().integer().min(0),
102 | jQueryVersionsLoaded: joi.number().integer().min(0),
103 | jQueryOnDOMReadyFunctions: joi.number().integer().min(0),
104 | jQueryWindowOnLoadFunctions: joi.number().integer().min(0),
105 | jQuerySizzleCalls: joi.number().integer().min(0),
106 | jQueryEventTriggers: joi.number().integer().min(0),
107 | jQueryDOMReads: joi.number().integer().min(0),
108 | jQueryDOMWrites: joi.number().integer().min(0),
109 | jQueryDOMWriteReadSwitches: joi.number().integer().min(0),
110 | documentWriteCalls: joi.number().integer().min(0),
111 | evalCalls: joi.number().integer().min(0),
112 | jsErrors: joi.number().integer().min(0),
113 | closedConnections: joi.number().integer().min(0),
114 | localStorageEntries: joi.number().integer().min(0),
115 | redirects: joi.number().integer().min(0),
116 | redirectsTime: joi.number().integer().min(0),
117 | repaints: joi.number().integer().min(0),
118 | firstPaint: joi.number().integer().min(0),
119 | requestsToDomContentLoaded: joi.number().integer().min(0),
120 | requestsToDomComplete: joi.number().integer().min(0),
121 | assetsNotGzipped: joi.number().integer().min(0),
122 | assetsWithQueryString: joi.number().integer().min(0),
123 | assetsWithCookies: joi.number().integer().min(0),
124 | smallImages: joi.number().integer().min(0),
125 | smallCssFiles: joi.number().integer().min(0),
126 | smallJsFiles: joi.number().integer().min(0),
127 | multipleRequests: joi.number().integer().min(0),
128 | timeToFirstCss: joi.number().integer().min(0),
129 | timeToFirstJs: joi.number().integer().min(0),
130 | timeToFirstImage: joi.number().integer().min(0),
131 | domInteractive: joi.number().integer().min(0),
132 | domContentLoaded: joi.number().integer().min(0),
133 | domContentLoadedEnd: joi.number().integer().min(0),
134 | domComplete: joi.number().integer().min(0),
135 | timeBackend: joi.number().integer().min(0),
136 | timeFrontend: joi.number().integer().min(0),
137 | statusCodesTrail: joi.number().integer().min(0),
138 | windowAlerts: joi.number().integer().min(0),
139 | windowConfirms: joi.number().integer().min(0),
140 | windowPrompts: joi.number().integer().min(0),
141 | bodyHTMLSize: joi.number().integer().min(0),
142 | iframesCount: joi.number().integer().min(0),
143 | smallestResponse: joi.number().integer().min(0),
144 | biggestResponse: joi.number().integer().min(0),
145 | fastestResponse: joi.number().integer().min(0),
146 | slowestResponse: joi.number().integer().min(0),
147 | smallestLatency: joi.number().integer().min(0),
148 | biggestLatency: joi.number().integer().min(0),
149 | medianResponse: joi.number().integer().min(0),
150 | medianLatency: joi.number().integer().min(0)
151 | };
152 |
153 | function validateHelper(options, schema){
154 | joi.validate(options, schema, function(err, value){
155 | if(err !== null){
156 | var length = err.details.length;
157 | while(length--)
158 | var message = err.details[length].message;
159 | console.log(clc.red.bgBlack('Error on options: ' + message));
160 | throw new PluginError(PLUGIN_NAME, message);
161 | }
162 | });
163 | }
164 |
165 | function validate(options){
166 | validateHelper(options, optionsSchema);
167 | validateHelper(options.performanceBudget, performanceBudgetSchema);
168 | return true;
169 | }
170 |
171 | module.exports = validate;
172 |
--------------------------------------------------------------------------------