├── .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 | [![npm version](https://badge.fury.io/js/gulp-louis.svg)](http://badge.fury.io/js/gulp-louis) 6 | [![Greenkeeper badge](https://badges.greenkeeper.io/AvraamMavridis/gulp-louis.svg)](https://greenkeeper.io/) 7 | 8 | [![NPM](https://nodei.co/npm/gulp-louis.png?downloads=true&downloadRank=true&stars=true)](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 | ![Screenshot1](http://oi62.tinypic.com/ay63nn.jpg) 94 | 95 | *Output without specified performance budget* 96 | 97 | ![Screenshot1](http://oi59.tinypic.com/xg9us6.jpg) 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 | --------------------------------------------------------------------------------