├── .gitignore ├── .travis.yml ├── README.md ├── dist ├── index.d.ts └── index.js ├── nodemon.json ├── package-lock.json ├── package.json ├── src └── index.ts ├── tests └── index.js └── tsconfig.json /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .vscode 3 | node_modules 4 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "8" 4 | - "7" 5 | - "6" 6 | - "5" 7 | - "4" 8 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![Build Status](https://travis-ci.org/xpepermint/typeablejs.svg?branch=master) [![NPM Version](https://badge.fury.io/js/typeable.svg)](https://badge.fury.io/js/typeable) [![Dependency Status](https://gemnasium.com/xpepermint/typeablejs.svg)](https://gemnasium.com/xpepermint/typeablejs) 2 | 3 | # typeable.js 4 | 5 | > A library for checking and casting types. 6 | 7 | This is a light weight open source package for use on **server** or in **browser** (using module bundler). The source code is available on [GitHub](https://github.com/xpepermint/typeablejs) where you can also find our [issue tracker](https://github.com/xpepermint/typeablejs/issues). 8 | 9 | ## Related Projects 10 | 11 | * [RawModel.js](https://github.com/xpepermint/rawmodeljs): Strongly-typed JavaScript object with support for validation and error handling. 12 | * [Validatable.js](https://github.com/xpepermint/validatablejs): A library for synchronous and asynchronous validation. 13 | * [Handleable.js](https://github.com/xpepermint/handleablejs): A library for synchronous and asynchronous error handling. 14 | 15 | ## Install 16 | 17 | Run the command below to install the package. 18 | 19 | ``` 20 | $ npm install --save typeable 21 | ``` 22 | 23 | ## Examples 24 | 25 | ```js 26 | import {cast} from 'typeable'; 27 | 28 | // general use 29 | cast(100, 'String'); // => '100' 30 | cast('true', 'Boolean'); // => true 31 | cast('10.13', 'Integer'); // => 10 32 | cast('10.13', 'Float'); // => 10.13 33 | cast('10.13', 'Number'); // => 10.13 34 | cast(1229380112300, 'Date'); // => Date(2008-12-15T22:28:32.300Z) 35 | cast('John', ['Any']); // => ['John'] 36 | cast(100, ['String']); // => ['100'] 37 | cast([100], ['String']); // => ['100'] 38 | cast('true', ['Boolean']); // => [true] 39 | cast(['true'], ['Boolean']); // => [true] 40 | cast('10.13', ['Integer']); // => [10] 41 | cast(['10.13'], ['Integer']); // => [10] 42 | cast('10.13', ['Float']); // => [10.13] 43 | cast(['10.13'], ['Float']); // => [10.13] 44 | cast('10.13', ['Number']); // => [10.13] 45 | cast(['10.13'], ['Number']); // => [10.13] 46 | cast(1229380112300, ['Date']); // => [Date(2008-12-15T22:28:32.300Z)] 47 | cast([1229380112300], ['Date']); // => [Date(2008-12-15T22:28:32.300Z)] 48 | 49 | // short syntax 50 | cast('10.13', 'Integer'); // => 10 51 | 52 | // custom types 53 | cast('value', (value) => `custom ${value}`); // => 'custom value' 54 | ``` 55 | 56 | ## API 57 | 58 | ### Data Types 59 | 60 | | Type | Description 61 | |------|------------ 62 | | 'Any' | A value of different types (excluding arrays). 63 | | ['Any'] | An array with values of different types. 64 | | 'String' | A string value. 65 | | ['String'] | An array of string values. 66 | | 'Boolean' | A boolean value. 67 | | ['Boolean'] | An array of boolean values. 68 | | 'Number' | An integer or a float number. 69 | | ['Number'] | An array of integer or float numbers. 70 | | 'Integer' | An integer number. 71 | | ['Integer'] | An array of integer numbers. 72 | | 'Float' | A float number. 73 | | ['Float'] | An array of float numbers. 74 | | 'Date' | A date. 75 | | ['Date'] | An array of dates. 76 | | Function | Custom type. 77 | | [Function] | Custom type. 78 | 79 | ### Methods 80 | 81 | **cast(value, type)**:Any 82 | > Converts the `value` to the specified `type`. 83 | 84 | | Name | Type | Required | Default | Description 85 | |------|------|----------|---------|------------ 86 | | value | Any | Yes | - | A value to be casted. 87 | | type | String | Yes | - | Data type name. 88 | 89 | **isAbsent(value)**:Boolean 90 | > Returns `true` if the `value` represents an empty value. 91 | 92 | **isArray(value)**:Boolean 93 | > Returns `true` if the `value` is an array. 94 | 95 | **isBoolean(value)**:Boolean 96 | > Returns `true` if the `value` is a boolean value. 97 | 98 | **isClass(value)**:Boolean 99 | > Returns `true` if the `value` represents a class object. 100 | 101 | **isDate(value)**:Boolean 102 | > Returns `true` if the `value` is a date object. 103 | 104 | **isFloat(value)**:Boolean 105 | > Returns `true` if the `value` is a float number. 106 | 107 | **isFunction(value)**:Boolean 108 | > Returns `true` if the `value` represents a function. 109 | 110 | **isInfinite(value)**:Boolean 111 | > Returns `true` if the provided `value` represents infinite number. 112 | 113 | **isInteger(value)**:Boolean 114 | > Returns `true` if the `value` is an integer number. 115 | 116 | **isNull(value)**:Boolean 117 | > Returns `true` if the provided `value` is `null`. 118 | 119 | **isNumber(value)**:Boolean 120 | > Returns `true` if the `value` is a number. 121 | 122 | **isObject(value)**:Boolean 123 | > Returns `true` if the `value` is an object (an object with keys). 124 | 125 | **isPresent(value)**:Boolean 126 | > Returns `true` if the `value` represents a present value. 127 | 128 | **isPromise(value)**:Boolean 129 | > Returns `true` if the `value` represents a promise object. 130 | 131 | **isString(value)**:Boolean 132 | > Returns `true` if the `value` is a string value. 133 | 134 | **isUndefined(value)**:Boolean 135 | > Returns `true` if the provided `value` is of type `undefined`. 136 | 137 | **isValue(value)**:Boolean 138 | > Returns `true` if the `value` is some sort of expected value. 139 | 140 | **toArray(value)**:Array 141 | > Converts the `value` to an array object. 142 | 143 | **toBoolean(value)**:Boolean 144 | > Converts the `value` to a boolean value. 145 | 146 | **toDate(value)**:Date 147 | > Converts the `value` to a date object. 148 | 149 | **toFloat(value)**:Number 150 | > Converts the `value` to a float value. 151 | 152 | **toInteger(value)**:Number 153 | > Converts the `value` to an integer value. 154 | 155 | **toNumber(value)**:Number 156 | > Converts the `value` to a number value. 157 | 158 | **toString(value)**:String 159 | > Converts the `value` to a string value. 160 | 161 | ## License (MIT) 162 | 163 | ``` 164 | Copyright (c) 2016 Kristijan Sedlak 165 | 166 | Permission is hereby granted, free of charge, to any person obtaining a copy 167 | of this software and associated documentation files (the "Software"), to deal 168 | in the Software without restriction, including without limitation the rights 169 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 170 | copies of the Software, and to permit persons to whom the Software is 171 | furnished to do so, subject to the following conditions: 172 | 173 | The above copyright notice and this permission notice shall be included in 174 | all copies or substantial portions of the Software. 175 | 176 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 177 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 178 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 179 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 180 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 181 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 182 | THE SOFTWARE. 183 | ``` 184 | -------------------------------------------------------------------------------- /dist/index.d.ts: -------------------------------------------------------------------------------- 1 | export declare function isUndefined(v: any): boolean; 2 | export declare function isNull(v: any): boolean; 3 | export declare function isInfinite(v: any): boolean; 4 | export declare function isValue(v: any): boolean; 5 | export declare function isString(v: any): boolean; 6 | export declare function isBoolean(v: any): boolean; 7 | export declare function isNumber(v: any): boolean; 8 | export declare function isInteger(v: any): boolean; 9 | export declare function isFloat(v: any): boolean; 10 | export declare function isDate(v: any): boolean; 11 | export declare function isObject(v: any): boolean; 12 | export declare function isArray(v: any): boolean; 13 | export declare function isAbsent(v: any): boolean; 14 | export declare function isPresent(v: any): boolean; 15 | export declare function isFunction(v: any): boolean; 16 | export declare function isClass(v: any): boolean; 17 | export declare function isPromise(v: any): boolean; 18 | export declare function toString(v: any): any; 19 | export declare function toBoolean(v: any): any; 20 | export declare function toInteger(v: any): any; 21 | export declare function toFloat(v: any): any; 22 | export declare function toNumber(v: any): any; 23 | export declare function toDate(v: any): Date; 24 | export declare function toArray(v: any): Array; 25 | export declare function cast(value: any, type: any): any; 26 | -------------------------------------------------------------------------------- /dist/index.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | /* 3 | * Returns `true` if the provided value is of type `undefined`. 4 | */ 5 | exports.__esModule = true; 6 | function isUndefined(v) { 7 | return typeof v === 'undefined' || v === undefined; 8 | } 9 | exports.isUndefined = isUndefined; 10 | /* 11 | * Returns `true` if the provided value is `null`. 12 | */ 13 | function isNull(v) { 14 | return v === null; 15 | } 16 | exports.isNull = isNull; 17 | /* 18 | * Returns `true` if the provided value represents infinite number. 19 | */ 20 | function isInfinite(v) { 21 | return v === Infinity; 22 | } 23 | exports.isInfinite = isInfinite; 24 | /* 25 | * Returns `true` if the `value` is some sort of expected value. 26 | */ 27 | function isValue(v) { 28 | return (!isUndefined(v) 29 | && !isNull(v) 30 | && !(isNumber(v) && isNaN(v)) 31 | && !isInfinite(v)); 32 | } 33 | exports.isValue = isValue; 34 | /* 35 | * Returns `true` if the `value` is a string value. 36 | */ 37 | function isString(v) { 38 | return typeof v === 'string'; 39 | } 40 | exports.isString = isString; 41 | /* 42 | * Returns `true` if the `value` is a boolean value. 43 | */ 44 | function isBoolean(v) { 45 | return typeof v === 'boolean'; 46 | } 47 | exports.isBoolean = isBoolean; 48 | /* 49 | * Returns `true` if the `value` is a number. 50 | */ 51 | function isNumber(v) { 52 | return typeof v === 'number'; 53 | } 54 | exports.isNumber = isNumber; 55 | /* 56 | * Returns `true` if the `value` is an integer number. 57 | */ 58 | function isInteger(v) { 59 | return isNumber(v) ? v % 1 === 0 : false; 60 | } 61 | exports.isInteger = isInteger; 62 | /* 63 | * Returns `true` if the `value` is a float number. 64 | */ 65 | function isFloat(v) { 66 | return (isNumber(v) 67 | && isFinite(v)); 68 | } 69 | exports.isFloat = isFloat; 70 | /* 71 | * Returns `true` if the `value` is a date object. 72 | */ 73 | function isDate(v) { 74 | return (!isUndefined(v) 75 | && !isNull(v) 76 | && v.constructor === Date 77 | && isInteger(v.getTime())); 78 | } 79 | exports.isDate = isDate; 80 | /* 81 | * Returns `true` if the `value` is an object (an object with keys). 82 | */ 83 | function isObject(v) { 84 | return (!isUndefined(v) 85 | && !isNull(v) 86 | && v.constructor === Object); 87 | } 88 | exports.isObject = isObject; 89 | /* 90 | * Returns `true` if the `value` is an array. 91 | */ 92 | function isArray(v) { 93 | return Array.isArray(v); 94 | } 95 | exports.isArray = isArray; 96 | /* 97 | * Returns `true` if the `value` represents an empty value. 98 | */ 99 | function isAbsent(v) { 100 | return (isUndefined(v) 101 | || isNull(v) 102 | || (isNumber(v) && isNaN(v)) 103 | || isString(v) && v === '' 104 | || isArray(v) && v.length === 0 105 | || isObject(v) && Object.keys(v).length === 0); 106 | } 107 | exports.isAbsent = isAbsent; 108 | /* 109 | * Returns `true` if the `value` represents a present value. 110 | */ 111 | function isPresent(v) { 112 | return !isAbsent(v); 113 | } 114 | exports.isPresent = isPresent; 115 | /* 116 | * Returns `true` if the `value` represents a function. 117 | */ 118 | function isFunction(v) { 119 | return typeof v === 'function'; 120 | } 121 | exports.isFunction = isFunction; 122 | /* 123 | * Returns `true` if the `value` represents a class object. 124 | */ 125 | function isClass(v) { 126 | return isFunction(v); 127 | } 128 | exports.isClass = isClass; 129 | /* 130 | * Returns `true` if the `value` represents a promise object. 131 | */ 132 | function isPromise(v) { 133 | return (isPresent(v) 134 | && v.constructor 135 | && v.constructor.name === 'Promise'); 136 | } 137 | exports.isPromise = isPromise; 138 | /* 139 | * Converts the `value` to a string value. 140 | */ 141 | function toString(v) { 142 | if (isString(v)) { 143 | return v; 144 | } 145 | else if (isUndefined(v) || isNull(v)) { 146 | return null; 147 | } 148 | else { 149 | return toString(v.toString()); 150 | } 151 | } 152 | exports.toString = toString; 153 | /* 154 | * Converts the `value` to a boolean value. 155 | */ 156 | function toBoolean(v) { 157 | if (isBoolean(v)) { 158 | return v; 159 | } 160 | else if (isUndefined(v) || isNull(v)) { 161 | return null; 162 | } 163 | else { 164 | return (parseFloat(v) > 0 165 | || isInfinite(v) 166 | || v === '1' 167 | || v === 'true' 168 | || v === 'yes' 169 | || v === '+'); 170 | } 171 | } 172 | exports.toBoolean = toBoolean; 173 | /* 174 | * Converts the `value` to an integer value. 175 | */ 176 | function toInteger(v) { 177 | if (isInteger(v)) { 178 | return v; 179 | } 180 | else if (isUndefined(v) || isNull(v)) { 181 | return null; 182 | } 183 | else if (isFloat(v)) { 184 | return parseInt(v); 185 | } 186 | else { 187 | var pv = parseInt(v); 188 | if (isInteger(pv)) { 189 | return pv; 190 | } 191 | else if (toBoolean(v)) { 192 | return 1; 193 | } 194 | else { 195 | return 0; 196 | } 197 | } 198 | } 199 | exports.toInteger = toInteger; 200 | /* 201 | * Converts the `value` to a float value. 202 | */ 203 | function toFloat(v) { 204 | if (isFloat(v)) { 205 | return v; 206 | } 207 | else if (isUndefined(v) || isNull(v)) { 208 | return null; 209 | } 210 | else { 211 | var pv = parseFloat(v); 212 | if (isFloat(pv)) { 213 | return pv; 214 | } 215 | else if (toBoolean(v)) { 216 | return 1; 217 | } 218 | else { 219 | return 0; 220 | } 221 | } 222 | } 223 | exports.toFloat = toFloat; 224 | /* 225 | * Converts the `value` to a number value (alias of toFloat). 226 | */ 227 | function toNumber(v) { 228 | return toFloat(v); 229 | } 230 | exports.toNumber = toNumber; 231 | /* 232 | * Converts the `value` to a date object. 233 | */ 234 | function toDate(v) { 235 | var date = isDate(v) ? v : new Date(v); 236 | var time = date.getTime(); 237 | var isValid = (isPresent(v) 238 | && isInteger(time)); 239 | return isValid ? date : null; 240 | } 241 | exports.toDate = toDate; 242 | /* 243 | * Converts the `value` to an array object. 244 | */ 245 | function toArray(v) { 246 | if (isArray(v)) { 247 | return v; 248 | } 249 | else if (isUndefined(v) || isNull(v)) { 250 | return null; 251 | } 252 | else if (!isValue(v)) { 253 | return []; 254 | } 255 | else { 256 | return [v]; 257 | } 258 | } 259 | exports.toArray = toArray; 260 | /* 261 | * Converts the `value` to the specified `type`. 262 | */ 263 | function cast(value, type) { 264 | if (isUndefined(value) || isNull(value)) { // nullify 265 | return null; 266 | } 267 | if (isArray(type)) { 268 | return toArray(value).map(function (i) { return cast(i, type[0]); }); 269 | } 270 | else if (isFunction(type)) { 271 | return type(value); 272 | } 273 | else if (isString(type)) { 274 | var converter = { 275 | 'Any': function (v) { return value; }, 276 | 'String': toString, 277 | 'Boolean': toBoolean, 278 | 'Integer': toInteger, 279 | 'Float': toFloat, 280 | 'Number': toNumber, 281 | 'Date': toDate 282 | }[type]; 283 | if (converter) { 284 | return converter(value); 285 | } 286 | else { 287 | throw new Error("Unknown type " + type); 288 | } 289 | } 290 | else { 291 | return value; 292 | } 293 | } 294 | exports.cast = cast; 295 | -------------------------------------------------------------------------------- /nodemon.json: -------------------------------------------------------------------------------- 1 | { 2 | "ignore": ["dist/*"], 3 | "ext": "js,ts" 4 | } 5 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "typeable", 3 | "version": "2.4.1", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@ava/babel-plugin-throws-helper": { 8 | "version": "2.0.0", 9 | "resolved": "https://registry.npmjs.org/@ava/babel-plugin-throws-helper/-/babel-plugin-throws-helper-2.0.0.tgz", 10 | "integrity": "sha1-L8H+PCEacQcaTsp7j3r1hCzRrnw=", 11 | "dev": true 12 | }, 13 | "@ava/babel-preset-stage-4": { 14 | "version": "1.1.0", 15 | "resolved": "https://registry.npmjs.org/@ava/babel-preset-stage-4/-/babel-preset-stage-4-1.1.0.tgz", 16 | "integrity": "sha512-oWqTnIGXW3k72UFidXzW0ONlO7hnO9x02S/QReJ7NBGeiBH9cUHY9+EfV6C8PXC6YJH++WrliEq03wMSJGNZFg==", 17 | "dev": true, 18 | "requires": { 19 | "babel-plugin-check-es2015-constants": "6.22.0", 20 | "babel-plugin-syntax-trailing-function-commas": "6.22.0", 21 | "babel-plugin-transform-async-to-generator": "6.24.1", 22 | "babel-plugin-transform-es2015-destructuring": "6.23.0", 23 | "babel-plugin-transform-es2015-function-name": "6.24.1", 24 | "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", 25 | "babel-plugin-transform-es2015-parameters": "6.24.1", 26 | "babel-plugin-transform-es2015-spread": "6.22.0", 27 | "babel-plugin-transform-es2015-sticky-regex": "6.24.1", 28 | "babel-plugin-transform-es2015-unicode-regex": "6.24.1", 29 | "babel-plugin-transform-exponentiation-operator": "6.24.1", 30 | "package-hash": "1.2.0" 31 | }, 32 | "dependencies": { 33 | "md5-hex": { 34 | "version": "1.3.0", 35 | "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-1.3.0.tgz", 36 | "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", 37 | "dev": true, 38 | "requires": { 39 | "md5-o-matic": "0.1.1" 40 | } 41 | }, 42 | "package-hash": { 43 | "version": "1.2.0", 44 | "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-1.2.0.tgz", 45 | "integrity": "sha1-AD5WzVe3NqbtYRTMK4FUJnJ3DkQ=", 46 | "dev": true, 47 | "requires": { 48 | "md5-hex": "1.3.0" 49 | } 50 | } 51 | } 52 | }, 53 | "@ava/babel-preset-transform-test-files": { 54 | "version": "3.0.0", 55 | "resolved": "https://registry.npmjs.org/@ava/babel-preset-transform-test-files/-/babel-preset-transform-test-files-3.0.0.tgz", 56 | "integrity": "sha1-ze0RlqjY2TgaUJJAq5LpGl7Aafc=", 57 | "dev": true, 58 | "requires": { 59 | "@ava/babel-plugin-throws-helper": "2.0.0", 60 | "babel-plugin-espower": "2.4.0" 61 | } 62 | }, 63 | "@ava/write-file-atomic": { 64 | "version": "2.2.0", 65 | "resolved": "https://registry.npmjs.org/@ava/write-file-atomic/-/write-file-atomic-2.2.0.tgz", 66 | "integrity": "sha512-BTNB3nGbEfJT+69wuqXFr/bQH7Vr7ihx2xGOMNqPgDGhwspoZhiWumDDZNjBy7AScmqS5CELIOGtPVXESyrnDA==", 67 | "dev": true, 68 | "requires": { 69 | "graceful-fs": "4.1.11", 70 | "imurmurhash": "0.1.4", 71 | "slide": "1.1.6" 72 | } 73 | }, 74 | "@concordance/react": { 75 | "version": "1.0.0", 76 | "resolved": "https://registry.npmjs.org/@concordance/react/-/react-1.0.0.tgz", 77 | "integrity": "sha512-htrsRaQX8Iixlsek8zQU7tE8wcsTQJ5UhZkSPEA8slCDAisKpC/2VgU/ucPn32M5/LjGGXRaUEKvEw1Wiuu4zQ==", 78 | "dev": true, 79 | "requires": { 80 | "arrify": "1.0.1" 81 | } 82 | }, 83 | "@ladjs/time-require": { 84 | "version": "0.1.4", 85 | "resolved": "https://registry.npmjs.org/@ladjs/time-require/-/time-require-0.1.4.tgz", 86 | "integrity": "sha512-weIbJqTMfQ4r1YX85u54DKfjLZs2jwn1XZ6tIOP/pFgMwhIN5BAtaCp/1wn9DzyLsDR9tW0R2NIePcVJ45ivQQ==", 87 | "dev": true, 88 | "requires": { 89 | "chalk": "0.4.0", 90 | "date-time": "0.1.1", 91 | "pretty-ms": "0.2.2", 92 | "text-table": "0.2.0" 93 | }, 94 | "dependencies": { 95 | "ansi-styles": { 96 | "version": "1.0.0", 97 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz", 98 | "integrity": "sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg=", 99 | "dev": true 100 | }, 101 | "chalk": { 102 | "version": "0.4.0", 103 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz", 104 | "integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=", 105 | "dev": true, 106 | "requires": { 107 | "ansi-styles": "1.0.0", 108 | "has-color": "0.1.7", 109 | "strip-ansi": "0.1.1" 110 | } 111 | }, 112 | "pretty-ms": { 113 | "version": "0.2.2", 114 | "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-0.2.2.tgz", 115 | "integrity": "sha1-2oeaaC/zOjcBEEbxPWJ/Z8c7hPY=", 116 | "dev": true, 117 | "requires": { 118 | "parse-ms": "0.1.2" 119 | } 120 | }, 121 | "strip-ansi": { 122 | "version": "0.1.1", 123 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz", 124 | "integrity": "sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE=", 125 | "dev": true 126 | } 127 | } 128 | }, 129 | "ansi-align": { 130 | "version": "2.0.0", 131 | "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", 132 | "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", 133 | "dev": true, 134 | "requires": { 135 | "string-width": "2.1.1" 136 | } 137 | }, 138 | "ansi-escapes": { 139 | "version": "3.1.0", 140 | "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", 141 | "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", 142 | "dev": true 143 | }, 144 | "ansi-regex": { 145 | "version": "2.1.1", 146 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", 147 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", 148 | "dev": true 149 | }, 150 | "ansi-styles": { 151 | "version": "3.2.1", 152 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 153 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 154 | "dev": true, 155 | "requires": { 156 | "color-convert": "1.9.1" 157 | } 158 | }, 159 | "anymatch": { 160 | "version": "1.3.2", 161 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", 162 | "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", 163 | "dev": true, 164 | "requires": { 165 | "micromatch": "2.3.11", 166 | "normalize-path": "2.1.1" 167 | } 168 | }, 169 | "argparse": { 170 | "version": "1.0.10", 171 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", 172 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", 173 | "dev": true, 174 | "requires": { 175 | "sprintf-js": "1.0.3" 176 | } 177 | }, 178 | "arr-diff": { 179 | "version": "2.0.0", 180 | "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", 181 | "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", 182 | "dev": true, 183 | "requires": { 184 | "arr-flatten": "1.1.0" 185 | } 186 | }, 187 | "arr-exclude": { 188 | "version": "1.0.0", 189 | "resolved": "https://registry.npmjs.org/arr-exclude/-/arr-exclude-1.0.0.tgz", 190 | "integrity": "sha1-38fC5VKicHI8zaBM8xKMjL/lxjE=", 191 | "dev": true 192 | }, 193 | "arr-flatten": { 194 | "version": "1.1.0", 195 | "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", 196 | "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", 197 | "dev": true 198 | }, 199 | "array-differ": { 200 | "version": "1.0.0", 201 | "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", 202 | "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", 203 | "dev": true 204 | }, 205 | "array-find-index": { 206 | "version": "1.0.2", 207 | "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", 208 | "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", 209 | "dev": true 210 | }, 211 | "array-union": { 212 | "version": "1.0.2", 213 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", 214 | "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", 215 | "dev": true, 216 | "requires": { 217 | "array-uniq": "1.0.3" 218 | } 219 | }, 220 | "array-uniq": { 221 | "version": "1.0.3", 222 | "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", 223 | "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", 224 | "dev": true 225 | }, 226 | "array-unique": { 227 | "version": "0.2.1", 228 | "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", 229 | "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", 230 | "dev": true 231 | }, 232 | "arrify": { 233 | "version": "1.0.1", 234 | "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", 235 | "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", 236 | "dev": true 237 | }, 238 | "async-each": { 239 | "version": "1.0.1", 240 | "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", 241 | "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", 242 | "dev": true 243 | }, 244 | "auto-bind": { 245 | "version": "1.2.0", 246 | "resolved": "https://registry.npmjs.org/auto-bind/-/auto-bind-1.2.0.tgz", 247 | "integrity": "sha512-Zw7pZp7tztvKnWWtoII4AmqH5a2PV3ZN5F0BPRTGcc1kpRm4b6QXQnPU7Znbl6BfPfqOVOV29g4JeMqZQaqqOA==", 248 | "dev": true 249 | }, 250 | "ava": { 251 | "version": "0.25.0", 252 | "resolved": "https://registry.npmjs.org/ava/-/ava-0.25.0.tgz", 253 | "integrity": "sha512-4lGNJCf6xL8SvsKVEKxEE46se7JAUIAZoKHw9itTQuwcsydhpAMkBs5gOOiWiwt0JKNIuXWc2/r4r8ZdcNrBEw==", 254 | "dev": true, 255 | "requires": { 256 | "@ava/babel-preset-stage-4": "1.1.0", 257 | "@ava/babel-preset-transform-test-files": "3.0.0", 258 | "@ava/write-file-atomic": "2.2.0", 259 | "@concordance/react": "1.0.0", 260 | "@ladjs/time-require": "0.1.4", 261 | "ansi-escapes": "3.1.0", 262 | "ansi-styles": "3.2.1", 263 | "arr-flatten": "1.1.0", 264 | "array-union": "1.0.2", 265 | "array-uniq": "1.0.3", 266 | "arrify": "1.0.1", 267 | "auto-bind": "1.2.0", 268 | "ava-init": "0.2.1", 269 | "babel-core": "6.26.0", 270 | "babel-generator": "6.26.1", 271 | "babel-plugin-syntax-object-rest-spread": "6.13.0", 272 | "bluebird": "3.5.1", 273 | "caching-transform": "1.0.1", 274 | "chalk": "2.4.0", 275 | "chokidar": "1.7.0", 276 | "clean-stack": "1.3.0", 277 | "clean-yaml-object": "0.1.0", 278 | "cli-cursor": "2.1.0", 279 | "cli-spinners": "1.3.1", 280 | "cli-truncate": "1.1.0", 281 | "co-with-promise": "4.6.0", 282 | "code-excerpt": "2.1.1", 283 | "common-path-prefix": "1.0.0", 284 | "concordance": "3.0.0", 285 | "convert-source-map": "1.5.1", 286 | "core-assert": "0.2.1", 287 | "currently-unhandled": "0.4.1", 288 | "debug": "3.1.0", 289 | "dot-prop": "4.2.0", 290 | "empower-core": "0.6.2", 291 | "equal-length": "1.0.1", 292 | "figures": "2.0.0", 293 | "find-cache-dir": "1.0.0", 294 | "fn-name": "2.0.1", 295 | "get-port": "3.2.0", 296 | "globby": "6.1.0", 297 | "has-flag": "2.0.0", 298 | "hullabaloo-config-manager": "1.1.1", 299 | "ignore-by-default": "1.0.1", 300 | "import-local": "0.1.1", 301 | "indent-string": "3.2.0", 302 | "is-ci": "1.1.0", 303 | "is-generator-fn": "1.0.0", 304 | "is-obj": "1.0.1", 305 | "is-observable": "1.1.0", 306 | "is-promise": "2.1.0", 307 | "last-line-stream": "1.0.0", 308 | "lodash.clonedeepwith": "4.5.0", 309 | "lodash.debounce": "4.0.8", 310 | "lodash.difference": "4.5.0", 311 | "lodash.flatten": "4.4.0", 312 | "loud-rejection": "1.6.0", 313 | "make-dir": "1.2.0", 314 | "matcher": "1.1.0", 315 | "md5-hex": "2.0.0", 316 | "meow": "3.7.0", 317 | "ms": "2.1.1", 318 | "multimatch": "2.1.0", 319 | "observable-to-promise": "0.5.0", 320 | "option-chain": "1.0.0", 321 | "package-hash": "2.0.0", 322 | "pkg-conf": "2.1.0", 323 | "plur": "2.1.2", 324 | "pretty-ms": "3.1.0", 325 | "require-precompiled": "0.1.0", 326 | "resolve-cwd": "2.0.0", 327 | "safe-buffer": "5.1.1", 328 | "semver": "5.5.0", 329 | "slash": "1.0.0", 330 | "source-map-support": "0.5.4", 331 | "stack-utils": "1.0.1", 332 | "strip-ansi": "4.0.0", 333 | "strip-bom-buf": "1.0.0", 334 | "supertap": "1.0.0", 335 | "supports-color": "5.4.0", 336 | "trim-off-newlines": "1.0.1", 337 | "unique-temp-dir": "1.0.0", 338 | "update-notifier": "2.5.0" 339 | } 340 | }, 341 | "ava-init": { 342 | "version": "0.2.1", 343 | "resolved": "https://registry.npmjs.org/ava-init/-/ava-init-0.2.1.tgz", 344 | "integrity": "sha512-lXwK5LM+2g1euDRqW1mcSX/tqzY1QU7EjKpqayFPPtNRmbSYZ8RzPO5tqluTToijmtjp2M+pNpVdbcHssC4glg==", 345 | "dev": true, 346 | "requires": { 347 | "arr-exclude": "1.0.0", 348 | "execa": "0.7.0", 349 | "has-yarn": "1.0.0", 350 | "read-pkg-up": "2.0.0", 351 | "write-pkg": "3.1.0" 352 | } 353 | }, 354 | "babel-code-frame": { 355 | "version": "6.26.0", 356 | "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", 357 | "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", 358 | "dev": true, 359 | "requires": { 360 | "chalk": "1.1.3", 361 | "esutils": "2.0.2", 362 | "js-tokens": "3.0.2" 363 | }, 364 | "dependencies": { 365 | "ansi-styles": { 366 | "version": "2.2.1", 367 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", 368 | "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", 369 | "dev": true 370 | }, 371 | "chalk": { 372 | "version": "1.1.3", 373 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", 374 | "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", 375 | "dev": true, 376 | "requires": { 377 | "ansi-styles": "2.2.1", 378 | "escape-string-regexp": "1.0.5", 379 | "has-ansi": "2.0.0", 380 | "strip-ansi": "3.0.1", 381 | "supports-color": "2.0.0" 382 | } 383 | }, 384 | "strip-ansi": { 385 | "version": "3.0.1", 386 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", 387 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 388 | "dev": true, 389 | "requires": { 390 | "ansi-regex": "2.1.1" 391 | } 392 | }, 393 | "supports-color": { 394 | "version": "2.0.0", 395 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", 396 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", 397 | "dev": true 398 | } 399 | } 400 | }, 401 | "babel-core": { 402 | "version": "6.26.0", 403 | "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz", 404 | "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", 405 | "dev": true, 406 | "requires": { 407 | "babel-code-frame": "6.26.0", 408 | "babel-generator": "6.26.1", 409 | "babel-helpers": "6.24.1", 410 | "babel-messages": "6.23.0", 411 | "babel-register": "6.26.0", 412 | "babel-runtime": "6.26.0", 413 | "babel-template": "6.26.0", 414 | "babel-traverse": "6.26.0", 415 | "babel-types": "6.26.0", 416 | "babylon": "6.18.0", 417 | "convert-source-map": "1.5.1", 418 | "debug": "2.6.9", 419 | "json5": "0.5.1", 420 | "lodash": "4.17.5", 421 | "minimatch": "3.0.4", 422 | "path-is-absolute": "1.0.1", 423 | "private": "0.1.8", 424 | "slash": "1.0.0", 425 | "source-map": "0.5.7" 426 | }, 427 | "dependencies": { 428 | "debug": { 429 | "version": "2.6.9", 430 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 431 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 432 | "dev": true, 433 | "requires": { 434 | "ms": "2.0.0" 435 | } 436 | }, 437 | "ms": { 438 | "version": "2.0.0", 439 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 440 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", 441 | "dev": true 442 | } 443 | } 444 | }, 445 | "babel-generator": { 446 | "version": "6.26.1", 447 | "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", 448 | "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", 449 | "dev": true, 450 | "requires": { 451 | "babel-messages": "6.23.0", 452 | "babel-runtime": "6.26.0", 453 | "babel-types": "6.26.0", 454 | "detect-indent": "4.0.0", 455 | "jsesc": "1.3.0", 456 | "lodash": "4.17.5", 457 | "source-map": "0.5.7", 458 | "trim-right": "1.0.1" 459 | }, 460 | "dependencies": { 461 | "jsesc": { 462 | "version": "1.3.0", 463 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", 464 | "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", 465 | "dev": true 466 | } 467 | } 468 | }, 469 | "babel-helper-builder-binary-assignment-operator-visitor": { 470 | "version": "6.24.1", 471 | "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", 472 | "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", 473 | "dev": true, 474 | "requires": { 475 | "babel-helper-explode-assignable-expression": "6.24.1", 476 | "babel-runtime": "6.26.0", 477 | "babel-types": "6.26.0" 478 | } 479 | }, 480 | "babel-helper-call-delegate": { 481 | "version": "6.24.1", 482 | "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", 483 | "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", 484 | "dev": true, 485 | "requires": { 486 | "babel-helper-hoist-variables": "6.24.1", 487 | "babel-runtime": "6.26.0", 488 | "babel-traverse": "6.26.0", 489 | "babel-types": "6.26.0" 490 | } 491 | }, 492 | "babel-helper-explode-assignable-expression": { 493 | "version": "6.24.1", 494 | "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", 495 | "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", 496 | "dev": true, 497 | "requires": { 498 | "babel-runtime": "6.26.0", 499 | "babel-traverse": "6.26.0", 500 | "babel-types": "6.26.0" 501 | } 502 | }, 503 | "babel-helper-function-name": { 504 | "version": "6.24.1", 505 | "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", 506 | "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", 507 | "dev": true, 508 | "requires": { 509 | "babel-helper-get-function-arity": "6.24.1", 510 | "babel-runtime": "6.26.0", 511 | "babel-template": "6.26.0", 512 | "babel-traverse": "6.26.0", 513 | "babel-types": "6.26.0" 514 | } 515 | }, 516 | "babel-helper-get-function-arity": { 517 | "version": "6.24.1", 518 | "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", 519 | "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", 520 | "dev": true, 521 | "requires": { 522 | "babel-runtime": "6.26.0", 523 | "babel-types": "6.26.0" 524 | } 525 | }, 526 | "babel-helper-hoist-variables": { 527 | "version": "6.24.1", 528 | "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", 529 | "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", 530 | "dev": true, 531 | "requires": { 532 | "babel-runtime": "6.26.0", 533 | "babel-types": "6.26.0" 534 | } 535 | }, 536 | "babel-helper-regex": { 537 | "version": "6.26.0", 538 | "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", 539 | "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", 540 | "dev": true, 541 | "requires": { 542 | "babel-runtime": "6.26.0", 543 | "babel-types": "6.26.0", 544 | "lodash": "4.17.5" 545 | } 546 | }, 547 | "babel-helper-remap-async-to-generator": { 548 | "version": "6.24.1", 549 | "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", 550 | "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", 551 | "dev": true, 552 | "requires": { 553 | "babel-helper-function-name": "6.24.1", 554 | "babel-runtime": "6.26.0", 555 | "babel-template": "6.26.0", 556 | "babel-traverse": "6.26.0", 557 | "babel-types": "6.26.0" 558 | } 559 | }, 560 | "babel-helpers": { 561 | "version": "6.24.1", 562 | "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", 563 | "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", 564 | "dev": true, 565 | "requires": { 566 | "babel-runtime": "6.26.0", 567 | "babel-template": "6.26.0" 568 | } 569 | }, 570 | "babel-messages": { 571 | "version": "6.23.0", 572 | "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", 573 | "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", 574 | "dev": true, 575 | "requires": { 576 | "babel-runtime": "6.26.0" 577 | } 578 | }, 579 | "babel-plugin-check-es2015-constants": { 580 | "version": "6.22.0", 581 | "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", 582 | "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", 583 | "dev": true, 584 | "requires": { 585 | "babel-runtime": "6.26.0" 586 | } 587 | }, 588 | "babel-plugin-espower": { 589 | "version": "2.4.0", 590 | "resolved": "https://registry.npmjs.org/babel-plugin-espower/-/babel-plugin-espower-2.4.0.tgz", 591 | "integrity": "sha512-/+SRpy7pKgTI28oEHfn1wkuM5QFAdRq8WNsOOih1dVrdV6A/WbNbRZyl0eX5eyDgtb0lOE27PeDFuCX2j8OxVg==", 592 | "dev": true, 593 | "requires": { 594 | "babel-generator": "6.26.1", 595 | "babylon": "6.18.0", 596 | "call-matcher": "1.0.1", 597 | "core-js": "2.5.5", 598 | "espower-location-detector": "1.0.0", 599 | "espurify": "1.7.0", 600 | "estraverse": "4.2.0" 601 | } 602 | }, 603 | "babel-plugin-syntax-async-functions": { 604 | "version": "6.13.0", 605 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", 606 | "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", 607 | "dev": true 608 | }, 609 | "babel-plugin-syntax-exponentiation-operator": { 610 | "version": "6.13.0", 611 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", 612 | "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", 613 | "dev": true 614 | }, 615 | "babel-plugin-syntax-object-rest-spread": { 616 | "version": "6.13.0", 617 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", 618 | "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=", 619 | "dev": true 620 | }, 621 | "babel-plugin-syntax-trailing-function-commas": { 622 | "version": "6.22.0", 623 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", 624 | "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=", 625 | "dev": true 626 | }, 627 | "babel-plugin-transform-async-to-generator": { 628 | "version": "6.24.1", 629 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", 630 | "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", 631 | "dev": true, 632 | "requires": { 633 | "babel-helper-remap-async-to-generator": "6.24.1", 634 | "babel-plugin-syntax-async-functions": "6.13.0", 635 | "babel-runtime": "6.26.0" 636 | } 637 | }, 638 | "babel-plugin-transform-es2015-destructuring": { 639 | "version": "6.23.0", 640 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", 641 | "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", 642 | "dev": true, 643 | "requires": { 644 | "babel-runtime": "6.26.0" 645 | } 646 | }, 647 | "babel-plugin-transform-es2015-function-name": { 648 | "version": "6.24.1", 649 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", 650 | "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", 651 | "dev": true, 652 | "requires": { 653 | "babel-helper-function-name": "6.24.1", 654 | "babel-runtime": "6.26.0", 655 | "babel-types": "6.26.0" 656 | } 657 | }, 658 | "babel-plugin-transform-es2015-modules-commonjs": { 659 | "version": "6.26.0", 660 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz", 661 | "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=", 662 | "dev": true, 663 | "requires": { 664 | "babel-plugin-transform-strict-mode": "6.24.1", 665 | "babel-runtime": "6.26.0", 666 | "babel-template": "6.26.0", 667 | "babel-types": "6.26.0" 668 | } 669 | }, 670 | "babel-plugin-transform-es2015-parameters": { 671 | "version": "6.24.1", 672 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", 673 | "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", 674 | "dev": true, 675 | "requires": { 676 | "babel-helper-call-delegate": "6.24.1", 677 | "babel-helper-get-function-arity": "6.24.1", 678 | "babel-runtime": "6.26.0", 679 | "babel-template": "6.26.0", 680 | "babel-traverse": "6.26.0", 681 | "babel-types": "6.26.0" 682 | } 683 | }, 684 | "babel-plugin-transform-es2015-spread": { 685 | "version": "6.22.0", 686 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", 687 | "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", 688 | "dev": true, 689 | "requires": { 690 | "babel-runtime": "6.26.0" 691 | } 692 | }, 693 | "babel-plugin-transform-es2015-sticky-regex": { 694 | "version": "6.24.1", 695 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", 696 | "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", 697 | "dev": true, 698 | "requires": { 699 | "babel-helper-regex": "6.26.0", 700 | "babel-runtime": "6.26.0", 701 | "babel-types": "6.26.0" 702 | } 703 | }, 704 | "babel-plugin-transform-es2015-unicode-regex": { 705 | "version": "6.24.1", 706 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", 707 | "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", 708 | "dev": true, 709 | "requires": { 710 | "babel-helper-regex": "6.26.0", 711 | "babel-runtime": "6.26.0", 712 | "regexpu-core": "2.0.0" 713 | } 714 | }, 715 | "babel-plugin-transform-exponentiation-operator": { 716 | "version": "6.24.1", 717 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", 718 | "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", 719 | "dev": true, 720 | "requires": { 721 | "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", 722 | "babel-plugin-syntax-exponentiation-operator": "6.13.0", 723 | "babel-runtime": "6.26.0" 724 | } 725 | }, 726 | "babel-plugin-transform-strict-mode": { 727 | "version": "6.24.1", 728 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", 729 | "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", 730 | "dev": true, 731 | "requires": { 732 | "babel-runtime": "6.26.0", 733 | "babel-types": "6.26.0" 734 | } 735 | }, 736 | "babel-register": { 737 | "version": "6.26.0", 738 | "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", 739 | "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", 740 | "dev": true, 741 | "requires": { 742 | "babel-core": "6.26.0", 743 | "babel-runtime": "6.26.0", 744 | "core-js": "2.5.5", 745 | "home-or-tmp": "2.0.0", 746 | "lodash": "4.17.5", 747 | "mkdirp": "0.5.1", 748 | "source-map-support": "0.4.18" 749 | }, 750 | "dependencies": { 751 | "source-map-support": { 752 | "version": "0.4.18", 753 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", 754 | "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", 755 | "dev": true, 756 | "requires": { 757 | "source-map": "0.5.7" 758 | } 759 | } 760 | } 761 | }, 762 | "babel-runtime": { 763 | "version": "6.26.0", 764 | "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", 765 | "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", 766 | "dev": true, 767 | "requires": { 768 | "core-js": "2.5.5", 769 | "regenerator-runtime": "0.11.1" 770 | } 771 | }, 772 | "babel-template": { 773 | "version": "6.26.0", 774 | "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", 775 | "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", 776 | "dev": true, 777 | "requires": { 778 | "babel-runtime": "6.26.0", 779 | "babel-traverse": "6.26.0", 780 | "babel-types": "6.26.0", 781 | "babylon": "6.18.0", 782 | "lodash": "4.17.5" 783 | } 784 | }, 785 | "babel-traverse": { 786 | "version": "6.26.0", 787 | "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", 788 | "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", 789 | "dev": true, 790 | "requires": { 791 | "babel-code-frame": "6.26.0", 792 | "babel-messages": "6.23.0", 793 | "babel-runtime": "6.26.0", 794 | "babel-types": "6.26.0", 795 | "babylon": "6.18.0", 796 | "debug": "2.6.9", 797 | "globals": "9.18.0", 798 | "invariant": "2.2.4", 799 | "lodash": "4.17.5" 800 | }, 801 | "dependencies": { 802 | "debug": { 803 | "version": "2.6.9", 804 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 805 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 806 | "dev": true, 807 | "requires": { 808 | "ms": "2.0.0" 809 | } 810 | }, 811 | "ms": { 812 | "version": "2.0.0", 813 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 814 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", 815 | "dev": true 816 | } 817 | } 818 | }, 819 | "babel-types": { 820 | "version": "6.26.0", 821 | "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", 822 | "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", 823 | "dev": true, 824 | "requires": { 825 | "babel-runtime": "6.26.0", 826 | "esutils": "2.0.2", 827 | "lodash": "4.17.5", 828 | "to-fast-properties": "1.0.3" 829 | } 830 | }, 831 | "babylon": { 832 | "version": "6.18.0", 833 | "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", 834 | "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", 835 | "dev": true 836 | }, 837 | "balanced-match": { 838 | "version": "1.0.0", 839 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 840 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", 841 | "dev": true 842 | }, 843 | "binary-extensions": { 844 | "version": "1.11.0", 845 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", 846 | "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=", 847 | "dev": true 848 | }, 849 | "bluebird": { 850 | "version": "3.5.1", 851 | "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", 852 | "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==", 853 | "dev": true 854 | }, 855 | "boxen": { 856 | "version": "1.3.0", 857 | "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", 858 | "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", 859 | "dev": true, 860 | "requires": { 861 | "ansi-align": "2.0.0", 862 | "camelcase": "4.1.0", 863 | "chalk": "2.4.0", 864 | "cli-boxes": "1.0.0", 865 | "string-width": "2.1.1", 866 | "term-size": "1.2.0", 867 | "widest-line": "2.0.0" 868 | }, 869 | "dependencies": { 870 | "camelcase": { 871 | "version": "4.1.0", 872 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", 873 | "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", 874 | "dev": true 875 | } 876 | } 877 | }, 878 | "brace-expansion": { 879 | "version": "1.1.11", 880 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 881 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 882 | "dev": true, 883 | "requires": { 884 | "balanced-match": "1.0.0", 885 | "concat-map": "0.0.1" 886 | } 887 | }, 888 | "braces": { 889 | "version": "1.8.5", 890 | "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", 891 | "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", 892 | "dev": true, 893 | "requires": { 894 | "expand-range": "1.8.2", 895 | "preserve": "0.2.0", 896 | "repeat-element": "1.1.2" 897 | } 898 | }, 899 | "buf-compare": { 900 | "version": "1.0.1", 901 | "resolved": "https://registry.npmjs.org/buf-compare/-/buf-compare-1.0.1.tgz", 902 | "integrity": "sha1-/vKNqLgROgoNtEMLC2Rntpcws0o=", 903 | "dev": true 904 | }, 905 | "builtin-modules": { 906 | "version": "1.1.1", 907 | "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", 908 | "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", 909 | "dev": true 910 | }, 911 | "caching-transform": { 912 | "version": "1.0.1", 913 | "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-1.0.1.tgz", 914 | "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=", 915 | "dev": true, 916 | "requires": { 917 | "md5-hex": "1.3.0", 918 | "mkdirp": "0.5.1", 919 | "write-file-atomic": "1.3.4" 920 | }, 921 | "dependencies": { 922 | "md5-hex": { 923 | "version": "1.3.0", 924 | "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-1.3.0.tgz", 925 | "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", 926 | "dev": true, 927 | "requires": { 928 | "md5-o-matic": "0.1.1" 929 | } 930 | }, 931 | "write-file-atomic": { 932 | "version": "1.3.4", 933 | "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", 934 | "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", 935 | "dev": true, 936 | "requires": { 937 | "graceful-fs": "4.1.11", 938 | "imurmurhash": "0.1.4", 939 | "slide": "1.1.6" 940 | } 941 | } 942 | } 943 | }, 944 | "call-matcher": { 945 | "version": "1.0.1", 946 | "resolved": "https://registry.npmjs.org/call-matcher/-/call-matcher-1.0.1.tgz", 947 | "integrity": "sha1-UTTQd5hPcSpU2tPL9i3ijc5BbKg=", 948 | "dev": true, 949 | "requires": { 950 | "core-js": "2.5.5", 951 | "deep-equal": "1.0.1", 952 | "espurify": "1.7.0", 953 | "estraverse": "4.2.0" 954 | } 955 | }, 956 | "call-signature": { 957 | "version": "0.0.2", 958 | "resolved": "https://registry.npmjs.org/call-signature/-/call-signature-0.0.2.tgz", 959 | "integrity": "sha1-qEq8glpV70yysCi9dOIFpluaSZY=", 960 | "dev": true 961 | }, 962 | "camelcase": { 963 | "version": "2.1.1", 964 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", 965 | "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", 966 | "dev": true 967 | }, 968 | "camelcase-keys": { 969 | "version": "2.1.0", 970 | "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", 971 | "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", 972 | "dev": true, 973 | "requires": { 974 | "camelcase": "2.1.1", 975 | "map-obj": "1.0.1" 976 | } 977 | }, 978 | "capture-stack-trace": { 979 | "version": "1.0.0", 980 | "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz", 981 | "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=", 982 | "dev": true 983 | }, 984 | "chalk": { 985 | "version": "2.4.0", 986 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.0.tgz", 987 | "integrity": "sha512-Wr/w0f4o9LuE7K53cD0qmbAMM+2XNLzR29vFn5hqko4sxGlUsyy363NvmyGIyk5tpe9cjTr9SJYbysEyPkRnFw==", 988 | "dev": true, 989 | "requires": { 990 | "ansi-styles": "3.2.1", 991 | "escape-string-regexp": "1.0.5", 992 | "supports-color": "5.4.0" 993 | } 994 | }, 995 | "chokidar": { 996 | "version": "1.7.0", 997 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", 998 | "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", 999 | "dev": true, 1000 | "requires": { 1001 | "anymatch": "1.3.2", 1002 | "async-each": "1.0.1", 1003 | "fsevents": "1.1.3", 1004 | "glob-parent": "2.0.0", 1005 | "inherits": "2.0.3", 1006 | "is-binary-path": "1.0.1", 1007 | "is-glob": "2.0.1", 1008 | "path-is-absolute": "1.0.1", 1009 | "readdirp": "2.1.0" 1010 | } 1011 | }, 1012 | "ci-info": { 1013 | "version": "1.1.3", 1014 | "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.3.tgz", 1015 | "integrity": "sha512-SK/846h/Rcy8q9Z9CAwGBLfCJ6EkjJWdpelWDufQpqVDYq2Wnnv8zlSO6AMQap02jvhVruKKpEtQOufo3pFhLg==", 1016 | "dev": true 1017 | }, 1018 | "clean-stack": { 1019 | "version": "1.3.0", 1020 | "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-1.3.0.tgz", 1021 | "integrity": "sha1-noIVAa6XmYbEax1m0tQy2y/UrjE=", 1022 | "dev": true 1023 | }, 1024 | "clean-yaml-object": { 1025 | "version": "0.1.0", 1026 | "resolved": "https://registry.npmjs.org/clean-yaml-object/-/clean-yaml-object-0.1.0.tgz", 1027 | "integrity": "sha1-Y/sRDcLOGoTcIfbZM0h20BCui2g=", 1028 | "dev": true 1029 | }, 1030 | "cli-boxes": { 1031 | "version": "1.0.0", 1032 | "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", 1033 | "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", 1034 | "dev": true 1035 | }, 1036 | "cli-cursor": { 1037 | "version": "2.1.0", 1038 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", 1039 | "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", 1040 | "dev": true, 1041 | "requires": { 1042 | "restore-cursor": "2.0.0" 1043 | } 1044 | }, 1045 | "cli-spinners": { 1046 | "version": "1.3.1", 1047 | "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.3.1.tgz", 1048 | "integrity": "sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg==", 1049 | "dev": true 1050 | }, 1051 | "cli-truncate": { 1052 | "version": "1.1.0", 1053 | "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-1.1.0.tgz", 1054 | "integrity": "sha512-bAtZo0u82gCfaAGfSNxUdTI9mNyza7D8w4CVCcaOsy7sgwDzvx6ekr6cuWJqY3UGzgnQ1+4wgENup5eIhgxEYA==", 1055 | "dev": true, 1056 | "requires": { 1057 | "slice-ansi": "1.0.0", 1058 | "string-width": "2.1.1" 1059 | } 1060 | }, 1061 | "co-with-promise": { 1062 | "version": "4.6.0", 1063 | "resolved": "https://registry.npmjs.org/co-with-promise/-/co-with-promise-4.6.0.tgz", 1064 | "integrity": "sha1-QT59tvWJOmC5Qs9JLEvsk9tBWrc=", 1065 | "dev": true, 1066 | "requires": { 1067 | "pinkie-promise": "1.0.0" 1068 | } 1069 | }, 1070 | "code-excerpt": { 1071 | "version": "2.1.1", 1072 | "resolved": "https://registry.npmjs.org/code-excerpt/-/code-excerpt-2.1.1.tgz", 1073 | "integrity": "sha512-tJLhH3EpFm/1x7heIW0hemXJTUU5EWl2V0EIX558jp05Mt1U6DVryCgkp3l37cxqs+DNbNgxG43SkwJXpQ14Jw==", 1074 | "dev": true, 1075 | "requires": { 1076 | "convert-to-spaces": "1.0.2" 1077 | } 1078 | }, 1079 | "color-convert": { 1080 | "version": "1.9.1", 1081 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", 1082 | "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", 1083 | "dev": true, 1084 | "requires": { 1085 | "color-name": "1.1.3" 1086 | } 1087 | }, 1088 | "color-name": { 1089 | "version": "1.1.3", 1090 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 1091 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", 1092 | "dev": true 1093 | }, 1094 | "common-path-prefix": { 1095 | "version": "1.0.0", 1096 | "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-1.0.0.tgz", 1097 | "integrity": "sha1-zVL28HEuC6q5fW+XModPIvR3UsA=", 1098 | "dev": true 1099 | }, 1100 | "commondir": { 1101 | "version": "1.0.1", 1102 | "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", 1103 | "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", 1104 | "dev": true 1105 | }, 1106 | "concat-map": { 1107 | "version": "0.0.1", 1108 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 1109 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 1110 | "dev": true 1111 | }, 1112 | "concordance": { 1113 | "version": "3.0.0", 1114 | "resolved": "https://registry.npmjs.org/concordance/-/concordance-3.0.0.tgz", 1115 | "integrity": "sha512-CZBzJ3/l5QJjlZM20WY7+5GP5pMTw+1UEbThcpMw8/rojsi5sBCiD8ZbBLtD+jYpRGAkwuKuqk108c154V9eyQ==", 1116 | "dev": true, 1117 | "requires": { 1118 | "date-time": "2.1.0", 1119 | "esutils": "2.0.2", 1120 | "fast-diff": "1.1.2", 1121 | "function-name-support": "0.2.0", 1122 | "js-string-escape": "1.0.1", 1123 | "lodash.clonedeep": "4.5.0", 1124 | "lodash.flattendeep": "4.4.0", 1125 | "lodash.merge": "4.6.1", 1126 | "md5-hex": "2.0.0", 1127 | "semver": "5.5.0", 1128 | "well-known-symbols": "1.0.0" 1129 | }, 1130 | "dependencies": { 1131 | "date-time": { 1132 | "version": "2.1.0", 1133 | "resolved": "https://registry.npmjs.org/date-time/-/date-time-2.1.0.tgz", 1134 | "integrity": "sha512-/9+C44X7lot0IeiyfgJmETtRMhBidBYM2QFFIkGa0U1k+hSyY87Nw7PY3eDqpvCBm7I3WCSfPeZskW/YYq6m4g==", 1135 | "dev": true, 1136 | "requires": { 1137 | "time-zone": "1.0.0" 1138 | } 1139 | } 1140 | } 1141 | }, 1142 | "configstore": { 1143 | "version": "3.1.2", 1144 | "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz", 1145 | "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", 1146 | "dev": true, 1147 | "requires": { 1148 | "dot-prop": "4.2.0", 1149 | "graceful-fs": "4.1.11", 1150 | "make-dir": "1.2.0", 1151 | "unique-string": "1.0.0", 1152 | "write-file-atomic": "2.3.0", 1153 | "xdg-basedir": "3.0.0" 1154 | } 1155 | }, 1156 | "convert-source-map": { 1157 | "version": "1.5.1", 1158 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", 1159 | "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", 1160 | "dev": true 1161 | }, 1162 | "convert-to-spaces": { 1163 | "version": "1.0.2", 1164 | "resolved": "https://registry.npmjs.org/convert-to-spaces/-/convert-to-spaces-1.0.2.tgz", 1165 | "integrity": "sha1-fj5Iu+bZl7FBfdyihoIEtNPYVxU=", 1166 | "dev": true 1167 | }, 1168 | "core-assert": { 1169 | "version": "0.2.1", 1170 | "resolved": "https://registry.npmjs.org/core-assert/-/core-assert-0.2.1.tgz", 1171 | "integrity": "sha1-+F4s+b/tKPdzzIs/pcW2m9wC/j8=", 1172 | "dev": true, 1173 | "requires": { 1174 | "buf-compare": "1.0.1", 1175 | "is-error": "2.2.1" 1176 | } 1177 | }, 1178 | "core-js": { 1179 | "version": "2.5.5", 1180 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.5.tgz", 1181 | "integrity": "sha1-sU3ek2xkDAV5prUMq8wTLdYSfjs=", 1182 | "dev": true 1183 | }, 1184 | "core-util-is": { 1185 | "version": "1.0.2", 1186 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 1187 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", 1188 | "dev": true 1189 | }, 1190 | "create-error-class": { 1191 | "version": "3.0.2", 1192 | "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", 1193 | "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", 1194 | "dev": true, 1195 | "requires": { 1196 | "capture-stack-trace": "1.0.0" 1197 | } 1198 | }, 1199 | "cross-spawn": { 1200 | "version": "5.1.0", 1201 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", 1202 | "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", 1203 | "dev": true, 1204 | "requires": { 1205 | "lru-cache": "4.1.2", 1206 | "shebang-command": "1.2.0", 1207 | "which": "1.3.0" 1208 | } 1209 | }, 1210 | "crypto-random-string": { 1211 | "version": "1.0.0", 1212 | "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", 1213 | "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", 1214 | "dev": true 1215 | }, 1216 | "currently-unhandled": { 1217 | "version": "0.4.1", 1218 | "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", 1219 | "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", 1220 | "dev": true, 1221 | "requires": { 1222 | "array-find-index": "1.0.2" 1223 | } 1224 | }, 1225 | "date-time": { 1226 | "version": "0.1.1", 1227 | "resolved": "https://registry.npmjs.org/date-time/-/date-time-0.1.1.tgz", 1228 | "integrity": "sha1-7S9tk9l5DOL9ZtW1/z7dW7y/Owc=", 1229 | "dev": true 1230 | }, 1231 | "debug": { 1232 | "version": "3.1.0", 1233 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", 1234 | "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", 1235 | "dev": true, 1236 | "requires": { 1237 | "ms": "2.0.0" 1238 | }, 1239 | "dependencies": { 1240 | "ms": { 1241 | "version": "2.0.0", 1242 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 1243 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", 1244 | "dev": true 1245 | } 1246 | } 1247 | }, 1248 | "decamelize": { 1249 | "version": "1.2.0", 1250 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", 1251 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", 1252 | "dev": true 1253 | }, 1254 | "deep-equal": { 1255 | "version": "1.0.1", 1256 | "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", 1257 | "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", 1258 | "dev": true 1259 | }, 1260 | "deep-extend": { 1261 | "version": "0.4.2", 1262 | "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", 1263 | "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", 1264 | "dev": true 1265 | }, 1266 | "detect-indent": { 1267 | "version": "4.0.0", 1268 | "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", 1269 | "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", 1270 | "dev": true, 1271 | "requires": { 1272 | "repeating": "2.0.1" 1273 | } 1274 | }, 1275 | "dot-prop": { 1276 | "version": "4.2.0", 1277 | "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", 1278 | "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", 1279 | "dev": true, 1280 | "requires": { 1281 | "is-obj": "1.0.1" 1282 | } 1283 | }, 1284 | "duplexer3": { 1285 | "version": "0.1.4", 1286 | "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", 1287 | "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", 1288 | "dev": true 1289 | }, 1290 | "empower-core": { 1291 | "version": "0.6.2", 1292 | "resolved": "https://registry.npmjs.org/empower-core/-/empower-core-0.6.2.tgz", 1293 | "integrity": "sha1-Wt71ZgiOMfuoC6CjbfR9cJQWkUQ=", 1294 | "dev": true, 1295 | "requires": { 1296 | "call-signature": "0.0.2", 1297 | "core-js": "2.5.5" 1298 | } 1299 | }, 1300 | "equal-length": { 1301 | "version": "1.0.1", 1302 | "resolved": "https://registry.npmjs.org/equal-length/-/equal-length-1.0.1.tgz", 1303 | "integrity": "sha1-IcoRLUirJLTh5//A5TOdMf38J0w=", 1304 | "dev": true 1305 | }, 1306 | "error-ex": { 1307 | "version": "1.3.1", 1308 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", 1309 | "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", 1310 | "dev": true, 1311 | "requires": { 1312 | "is-arrayish": "0.2.1" 1313 | } 1314 | }, 1315 | "es6-error": { 1316 | "version": "4.1.1", 1317 | "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", 1318 | "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", 1319 | "dev": true 1320 | }, 1321 | "escape-string-regexp": { 1322 | "version": "1.0.5", 1323 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 1324 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 1325 | "dev": true 1326 | }, 1327 | "espower-location-detector": { 1328 | "version": "1.0.0", 1329 | "resolved": "https://registry.npmjs.org/espower-location-detector/-/espower-location-detector-1.0.0.tgz", 1330 | "integrity": "sha1-oXt+zFnTDheeK+9z+0E3cEyzMbU=", 1331 | "dev": true, 1332 | "requires": { 1333 | "is-url": "1.2.4", 1334 | "path-is-absolute": "1.0.1", 1335 | "source-map": "0.5.7", 1336 | "xtend": "4.0.1" 1337 | } 1338 | }, 1339 | "esprima": { 1340 | "version": "4.0.0", 1341 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", 1342 | "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", 1343 | "dev": true 1344 | }, 1345 | "espurify": { 1346 | "version": "1.7.0", 1347 | "resolved": "https://registry.npmjs.org/espurify/-/espurify-1.7.0.tgz", 1348 | "integrity": "sha1-HFz2y8zDLm9jk4C9T5kfq5up0iY=", 1349 | "dev": true, 1350 | "requires": { 1351 | "core-js": "2.5.5" 1352 | } 1353 | }, 1354 | "estraverse": { 1355 | "version": "4.2.0", 1356 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", 1357 | "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", 1358 | "dev": true 1359 | }, 1360 | "esutils": { 1361 | "version": "2.0.2", 1362 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", 1363 | "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", 1364 | "dev": true 1365 | }, 1366 | "execa": { 1367 | "version": "0.7.0", 1368 | "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", 1369 | "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", 1370 | "dev": true, 1371 | "requires": { 1372 | "cross-spawn": "5.1.0", 1373 | "get-stream": "3.0.0", 1374 | "is-stream": "1.1.0", 1375 | "npm-run-path": "2.0.2", 1376 | "p-finally": "1.0.0", 1377 | "signal-exit": "3.0.2", 1378 | "strip-eof": "1.0.0" 1379 | } 1380 | }, 1381 | "expand-brackets": { 1382 | "version": "0.1.5", 1383 | "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", 1384 | "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", 1385 | "dev": true, 1386 | "requires": { 1387 | "is-posix-bracket": "0.1.1" 1388 | } 1389 | }, 1390 | "expand-range": { 1391 | "version": "1.8.2", 1392 | "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", 1393 | "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", 1394 | "dev": true, 1395 | "requires": { 1396 | "fill-range": "2.2.3" 1397 | } 1398 | }, 1399 | "extglob": { 1400 | "version": "0.3.2", 1401 | "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", 1402 | "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", 1403 | "dev": true, 1404 | "requires": { 1405 | "is-extglob": "1.0.0" 1406 | } 1407 | }, 1408 | "fast-diff": { 1409 | "version": "1.1.2", 1410 | "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.1.2.tgz", 1411 | "integrity": "sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig==", 1412 | "dev": true 1413 | }, 1414 | "figures": { 1415 | "version": "2.0.0", 1416 | "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", 1417 | "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", 1418 | "dev": true, 1419 | "requires": { 1420 | "escape-string-regexp": "1.0.5" 1421 | } 1422 | }, 1423 | "filename-regex": { 1424 | "version": "2.0.1", 1425 | "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", 1426 | "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", 1427 | "dev": true 1428 | }, 1429 | "fill-range": { 1430 | "version": "2.2.3", 1431 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", 1432 | "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", 1433 | "dev": true, 1434 | "requires": { 1435 | "is-number": "2.1.0", 1436 | "isobject": "2.1.0", 1437 | "randomatic": "1.1.7", 1438 | "repeat-element": "1.1.2", 1439 | "repeat-string": "1.6.1" 1440 | } 1441 | }, 1442 | "find-cache-dir": { 1443 | "version": "1.0.0", 1444 | "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", 1445 | "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", 1446 | "dev": true, 1447 | "requires": { 1448 | "commondir": "1.0.1", 1449 | "make-dir": "1.2.0", 1450 | "pkg-dir": "2.0.0" 1451 | } 1452 | }, 1453 | "find-up": { 1454 | "version": "2.1.0", 1455 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", 1456 | "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", 1457 | "dev": true, 1458 | "requires": { 1459 | "locate-path": "2.0.0" 1460 | } 1461 | }, 1462 | "fn-name": { 1463 | "version": "2.0.1", 1464 | "resolved": "https://registry.npmjs.org/fn-name/-/fn-name-2.0.1.tgz", 1465 | "integrity": "sha1-UhTXU3pNBqSjAcDMJi/rhBiAAuc=", 1466 | "dev": true 1467 | }, 1468 | "for-in": { 1469 | "version": "1.0.2", 1470 | "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", 1471 | "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", 1472 | "dev": true 1473 | }, 1474 | "for-own": { 1475 | "version": "0.1.5", 1476 | "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", 1477 | "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", 1478 | "dev": true, 1479 | "requires": { 1480 | "for-in": "1.0.2" 1481 | } 1482 | }, 1483 | "fs.realpath": { 1484 | "version": "1.0.0", 1485 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1486 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 1487 | "dev": true 1488 | }, 1489 | "fsevents": { 1490 | "version": "1.1.3", 1491 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.3.tgz", 1492 | "integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==", 1493 | "dev": true, 1494 | "optional": true, 1495 | "requires": { 1496 | "nan": "2.10.0", 1497 | "node-pre-gyp": "0.6.39" 1498 | }, 1499 | "dependencies": { 1500 | "abbrev": { 1501 | "version": "1.1.0", 1502 | "bundled": true, 1503 | "dev": true, 1504 | "optional": true 1505 | }, 1506 | "ajv": { 1507 | "version": "4.11.8", 1508 | "bundled": true, 1509 | "dev": true, 1510 | "optional": true, 1511 | "requires": { 1512 | "co": "4.6.0", 1513 | "json-stable-stringify": "1.0.1" 1514 | } 1515 | }, 1516 | "ansi-regex": { 1517 | "version": "2.1.1", 1518 | "bundled": true, 1519 | "dev": true 1520 | }, 1521 | "aproba": { 1522 | "version": "1.1.1", 1523 | "bundled": true, 1524 | "dev": true, 1525 | "optional": true 1526 | }, 1527 | "are-we-there-yet": { 1528 | "version": "1.1.4", 1529 | "bundled": true, 1530 | "dev": true, 1531 | "optional": true, 1532 | "requires": { 1533 | "delegates": "1.0.0", 1534 | "readable-stream": "2.2.9" 1535 | } 1536 | }, 1537 | "asn1": { 1538 | "version": "0.2.3", 1539 | "bundled": true, 1540 | "dev": true, 1541 | "optional": true 1542 | }, 1543 | "assert-plus": { 1544 | "version": "0.2.0", 1545 | "bundled": true, 1546 | "dev": true, 1547 | "optional": true 1548 | }, 1549 | "asynckit": { 1550 | "version": "0.4.0", 1551 | "bundled": true, 1552 | "dev": true, 1553 | "optional": true 1554 | }, 1555 | "aws-sign2": { 1556 | "version": "0.6.0", 1557 | "bundled": true, 1558 | "dev": true, 1559 | "optional": true 1560 | }, 1561 | "aws4": { 1562 | "version": "1.6.0", 1563 | "bundled": true, 1564 | "dev": true, 1565 | "optional": true 1566 | }, 1567 | "balanced-match": { 1568 | "version": "0.4.2", 1569 | "bundled": true, 1570 | "dev": true 1571 | }, 1572 | "bcrypt-pbkdf": { 1573 | "version": "1.0.1", 1574 | "bundled": true, 1575 | "dev": true, 1576 | "optional": true, 1577 | "requires": { 1578 | "tweetnacl": "0.14.5" 1579 | } 1580 | }, 1581 | "block-stream": { 1582 | "version": "0.0.9", 1583 | "bundled": true, 1584 | "dev": true, 1585 | "requires": { 1586 | "inherits": "2.0.3" 1587 | } 1588 | }, 1589 | "boom": { 1590 | "version": "2.10.1", 1591 | "bundled": true, 1592 | "dev": true, 1593 | "requires": { 1594 | "hoek": "2.16.3" 1595 | } 1596 | }, 1597 | "brace-expansion": { 1598 | "version": "1.1.7", 1599 | "bundled": true, 1600 | "dev": true, 1601 | "requires": { 1602 | "balanced-match": "0.4.2", 1603 | "concat-map": "0.0.1" 1604 | } 1605 | }, 1606 | "buffer-shims": { 1607 | "version": "1.0.0", 1608 | "bundled": true, 1609 | "dev": true 1610 | }, 1611 | "caseless": { 1612 | "version": "0.12.0", 1613 | "bundled": true, 1614 | "dev": true, 1615 | "optional": true 1616 | }, 1617 | "co": { 1618 | "version": "4.6.0", 1619 | "bundled": true, 1620 | "dev": true, 1621 | "optional": true 1622 | }, 1623 | "code-point-at": { 1624 | "version": "1.1.0", 1625 | "bundled": true, 1626 | "dev": true 1627 | }, 1628 | "combined-stream": { 1629 | "version": "1.0.5", 1630 | "bundled": true, 1631 | "dev": true, 1632 | "requires": { 1633 | "delayed-stream": "1.0.0" 1634 | } 1635 | }, 1636 | "concat-map": { 1637 | "version": "0.0.1", 1638 | "bundled": true, 1639 | "dev": true 1640 | }, 1641 | "console-control-strings": { 1642 | "version": "1.1.0", 1643 | "bundled": true, 1644 | "dev": true 1645 | }, 1646 | "core-util-is": { 1647 | "version": "1.0.2", 1648 | "bundled": true, 1649 | "dev": true 1650 | }, 1651 | "cryptiles": { 1652 | "version": "2.0.5", 1653 | "bundled": true, 1654 | "dev": true, 1655 | "requires": { 1656 | "boom": "2.10.1" 1657 | } 1658 | }, 1659 | "dashdash": { 1660 | "version": "1.14.1", 1661 | "bundled": true, 1662 | "dev": true, 1663 | "optional": true, 1664 | "requires": { 1665 | "assert-plus": "1.0.0" 1666 | }, 1667 | "dependencies": { 1668 | "assert-plus": { 1669 | "version": "1.0.0", 1670 | "bundled": true, 1671 | "dev": true, 1672 | "optional": true 1673 | } 1674 | } 1675 | }, 1676 | "debug": { 1677 | "version": "2.6.8", 1678 | "bundled": true, 1679 | "dev": true, 1680 | "optional": true, 1681 | "requires": { 1682 | "ms": "2.0.0" 1683 | } 1684 | }, 1685 | "deep-extend": { 1686 | "version": "0.4.2", 1687 | "bundled": true, 1688 | "dev": true, 1689 | "optional": true 1690 | }, 1691 | "delayed-stream": { 1692 | "version": "1.0.0", 1693 | "bundled": true, 1694 | "dev": true 1695 | }, 1696 | "delegates": { 1697 | "version": "1.0.0", 1698 | "bundled": true, 1699 | "dev": true, 1700 | "optional": true 1701 | }, 1702 | "detect-libc": { 1703 | "version": "1.0.2", 1704 | "bundled": true, 1705 | "dev": true, 1706 | "optional": true 1707 | }, 1708 | "ecc-jsbn": { 1709 | "version": "0.1.1", 1710 | "bundled": true, 1711 | "dev": true, 1712 | "optional": true, 1713 | "requires": { 1714 | "jsbn": "0.1.1" 1715 | } 1716 | }, 1717 | "extend": { 1718 | "version": "3.0.1", 1719 | "bundled": true, 1720 | "dev": true, 1721 | "optional": true 1722 | }, 1723 | "extsprintf": { 1724 | "version": "1.0.2", 1725 | "bundled": true, 1726 | "dev": true 1727 | }, 1728 | "forever-agent": { 1729 | "version": "0.6.1", 1730 | "bundled": true, 1731 | "dev": true, 1732 | "optional": true 1733 | }, 1734 | "form-data": { 1735 | "version": "2.1.4", 1736 | "bundled": true, 1737 | "dev": true, 1738 | "optional": true, 1739 | "requires": { 1740 | "asynckit": "0.4.0", 1741 | "combined-stream": "1.0.5", 1742 | "mime-types": "2.1.15" 1743 | } 1744 | }, 1745 | "fs.realpath": { 1746 | "version": "1.0.0", 1747 | "bundled": true, 1748 | "dev": true 1749 | }, 1750 | "fstream": { 1751 | "version": "1.0.11", 1752 | "bundled": true, 1753 | "dev": true, 1754 | "requires": { 1755 | "graceful-fs": "4.1.11", 1756 | "inherits": "2.0.3", 1757 | "mkdirp": "0.5.1", 1758 | "rimraf": "2.6.1" 1759 | } 1760 | }, 1761 | "fstream-ignore": { 1762 | "version": "1.0.5", 1763 | "bundled": true, 1764 | "dev": true, 1765 | "optional": true, 1766 | "requires": { 1767 | "fstream": "1.0.11", 1768 | "inherits": "2.0.3", 1769 | "minimatch": "3.0.4" 1770 | } 1771 | }, 1772 | "gauge": { 1773 | "version": "2.7.4", 1774 | "bundled": true, 1775 | "dev": true, 1776 | "optional": true, 1777 | "requires": { 1778 | "aproba": "1.1.1", 1779 | "console-control-strings": "1.1.0", 1780 | "has-unicode": "2.0.1", 1781 | "object-assign": "4.1.1", 1782 | "signal-exit": "3.0.2", 1783 | "string-width": "1.0.2", 1784 | "strip-ansi": "3.0.1", 1785 | "wide-align": "1.1.2" 1786 | } 1787 | }, 1788 | "getpass": { 1789 | "version": "0.1.7", 1790 | "bundled": true, 1791 | "dev": true, 1792 | "optional": true, 1793 | "requires": { 1794 | "assert-plus": "1.0.0" 1795 | }, 1796 | "dependencies": { 1797 | "assert-plus": { 1798 | "version": "1.0.0", 1799 | "bundled": true, 1800 | "dev": true, 1801 | "optional": true 1802 | } 1803 | } 1804 | }, 1805 | "glob": { 1806 | "version": "7.1.2", 1807 | "bundled": true, 1808 | "dev": true, 1809 | "requires": { 1810 | "fs.realpath": "1.0.0", 1811 | "inflight": "1.0.6", 1812 | "inherits": "2.0.3", 1813 | "minimatch": "3.0.4", 1814 | "once": "1.4.0", 1815 | "path-is-absolute": "1.0.1" 1816 | } 1817 | }, 1818 | "graceful-fs": { 1819 | "version": "4.1.11", 1820 | "bundled": true, 1821 | "dev": true 1822 | }, 1823 | "har-schema": { 1824 | "version": "1.0.5", 1825 | "bundled": true, 1826 | "dev": true, 1827 | "optional": true 1828 | }, 1829 | "har-validator": { 1830 | "version": "4.2.1", 1831 | "bundled": true, 1832 | "dev": true, 1833 | "optional": true, 1834 | "requires": { 1835 | "ajv": "4.11.8", 1836 | "har-schema": "1.0.5" 1837 | } 1838 | }, 1839 | "has-unicode": { 1840 | "version": "2.0.1", 1841 | "bundled": true, 1842 | "dev": true, 1843 | "optional": true 1844 | }, 1845 | "hawk": { 1846 | "version": "3.1.3", 1847 | "bundled": true, 1848 | "dev": true, 1849 | "requires": { 1850 | "boom": "2.10.1", 1851 | "cryptiles": "2.0.5", 1852 | "hoek": "2.16.3", 1853 | "sntp": "1.0.9" 1854 | } 1855 | }, 1856 | "hoek": { 1857 | "version": "2.16.3", 1858 | "bundled": true, 1859 | "dev": true 1860 | }, 1861 | "http-signature": { 1862 | "version": "1.1.1", 1863 | "bundled": true, 1864 | "dev": true, 1865 | "optional": true, 1866 | "requires": { 1867 | "assert-plus": "0.2.0", 1868 | "jsprim": "1.4.0", 1869 | "sshpk": "1.13.0" 1870 | } 1871 | }, 1872 | "inflight": { 1873 | "version": "1.0.6", 1874 | "bundled": true, 1875 | "dev": true, 1876 | "requires": { 1877 | "once": "1.4.0", 1878 | "wrappy": "1.0.2" 1879 | } 1880 | }, 1881 | "inherits": { 1882 | "version": "2.0.3", 1883 | "bundled": true, 1884 | "dev": true 1885 | }, 1886 | "ini": { 1887 | "version": "1.3.4", 1888 | "bundled": true, 1889 | "dev": true, 1890 | "optional": true 1891 | }, 1892 | "is-fullwidth-code-point": { 1893 | "version": "1.0.0", 1894 | "bundled": true, 1895 | "dev": true, 1896 | "requires": { 1897 | "number-is-nan": "1.0.1" 1898 | } 1899 | }, 1900 | "is-typedarray": { 1901 | "version": "1.0.0", 1902 | "bundled": true, 1903 | "dev": true, 1904 | "optional": true 1905 | }, 1906 | "isarray": { 1907 | "version": "1.0.0", 1908 | "bundled": true, 1909 | "dev": true 1910 | }, 1911 | "isstream": { 1912 | "version": "0.1.2", 1913 | "bundled": true, 1914 | "dev": true, 1915 | "optional": true 1916 | }, 1917 | "jodid25519": { 1918 | "version": "1.0.2", 1919 | "bundled": true, 1920 | "dev": true, 1921 | "optional": true, 1922 | "requires": { 1923 | "jsbn": "0.1.1" 1924 | } 1925 | }, 1926 | "jsbn": { 1927 | "version": "0.1.1", 1928 | "bundled": true, 1929 | "dev": true, 1930 | "optional": true 1931 | }, 1932 | "json-schema": { 1933 | "version": "0.2.3", 1934 | "bundled": true, 1935 | "dev": true, 1936 | "optional": true 1937 | }, 1938 | "json-stable-stringify": { 1939 | "version": "1.0.1", 1940 | "bundled": true, 1941 | "dev": true, 1942 | "optional": true, 1943 | "requires": { 1944 | "jsonify": "0.0.0" 1945 | } 1946 | }, 1947 | "json-stringify-safe": { 1948 | "version": "5.0.1", 1949 | "bundled": true, 1950 | "dev": true, 1951 | "optional": true 1952 | }, 1953 | "jsonify": { 1954 | "version": "0.0.0", 1955 | "bundled": true, 1956 | "dev": true, 1957 | "optional": true 1958 | }, 1959 | "jsprim": { 1960 | "version": "1.4.0", 1961 | "bundled": true, 1962 | "dev": true, 1963 | "optional": true, 1964 | "requires": { 1965 | "assert-plus": "1.0.0", 1966 | "extsprintf": "1.0.2", 1967 | "json-schema": "0.2.3", 1968 | "verror": "1.3.6" 1969 | }, 1970 | "dependencies": { 1971 | "assert-plus": { 1972 | "version": "1.0.0", 1973 | "bundled": true, 1974 | "dev": true, 1975 | "optional": true 1976 | } 1977 | } 1978 | }, 1979 | "mime-db": { 1980 | "version": "1.27.0", 1981 | "bundled": true, 1982 | "dev": true 1983 | }, 1984 | "mime-types": { 1985 | "version": "2.1.15", 1986 | "bundled": true, 1987 | "dev": true, 1988 | "requires": { 1989 | "mime-db": "1.27.0" 1990 | } 1991 | }, 1992 | "minimatch": { 1993 | "version": "3.0.4", 1994 | "bundled": true, 1995 | "dev": true, 1996 | "requires": { 1997 | "brace-expansion": "1.1.7" 1998 | } 1999 | }, 2000 | "minimist": { 2001 | "version": "0.0.8", 2002 | "bundled": true, 2003 | "dev": true 2004 | }, 2005 | "mkdirp": { 2006 | "version": "0.5.1", 2007 | "bundled": true, 2008 | "dev": true, 2009 | "requires": { 2010 | "minimist": "0.0.8" 2011 | } 2012 | }, 2013 | "ms": { 2014 | "version": "2.0.0", 2015 | "bundled": true, 2016 | "dev": true, 2017 | "optional": true 2018 | }, 2019 | "node-pre-gyp": { 2020 | "version": "0.6.39", 2021 | "bundled": true, 2022 | "dev": true, 2023 | "optional": true, 2024 | "requires": { 2025 | "detect-libc": "1.0.2", 2026 | "hawk": "3.1.3", 2027 | "mkdirp": "0.5.1", 2028 | "nopt": "4.0.1", 2029 | "npmlog": "4.1.0", 2030 | "rc": "1.2.1", 2031 | "request": "2.81.0", 2032 | "rimraf": "2.6.1", 2033 | "semver": "5.3.0", 2034 | "tar": "2.2.1", 2035 | "tar-pack": "3.4.0" 2036 | } 2037 | }, 2038 | "nopt": { 2039 | "version": "4.0.1", 2040 | "bundled": true, 2041 | "dev": true, 2042 | "optional": true, 2043 | "requires": { 2044 | "abbrev": "1.1.0", 2045 | "osenv": "0.1.4" 2046 | } 2047 | }, 2048 | "npmlog": { 2049 | "version": "4.1.0", 2050 | "bundled": true, 2051 | "dev": true, 2052 | "optional": true, 2053 | "requires": { 2054 | "are-we-there-yet": "1.1.4", 2055 | "console-control-strings": "1.1.0", 2056 | "gauge": "2.7.4", 2057 | "set-blocking": "2.0.0" 2058 | } 2059 | }, 2060 | "number-is-nan": { 2061 | "version": "1.0.1", 2062 | "bundled": true, 2063 | "dev": true 2064 | }, 2065 | "oauth-sign": { 2066 | "version": "0.8.2", 2067 | "bundled": true, 2068 | "dev": true, 2069 | "optional": true 2070 | }, 2071 | "object-assign": { 2072 | "version": "4.1.1", 2073 | "bundled": true, 2074 | "dev": true, 2075 | "optional": true 2076 | }, 2077 | "once": { 2078 | "version": "1.4.0", 2079 | "bundled": true, 2080 | "dev": true, 2081 | "requires": { 2082 | "wrappy": "1.0.2" 2083 | } 2084 | }, 2085 | "os-homedir": { 2086 | "version": "1.0.2", 2087 | "bundled": true, 2088 | "dev": true, 2089 | "optional": true 2090 | }, 2091 | "os-tmpdir": { 2092 | "version": "1.0.2", 2093 | "bundled": true, 2094 | "dev": true, 2095 | "optional": true 2096 | }, 2097 | "osenv": { 2098 | "version": "0.1.4", 2099 | "bundled": true, 2100 | "dev": true, 2101 | "optional": true, 2102 | "requires": { 2103 | "os-homedir": "1.0.2", 2104 | "os-tmpdir": "1.0.2" 2105 | } 2106 | }, 2107 | "path-is-absolute": { 2108 | "version": "1.0.1", 2109 | "bundled": true, 2110 | "dev": true 2111 | }, 2112 | "performance-now": { 2113 | "version": "0.2.0", 2114 | "bundled": true, 2115 | "dev": true, 2116 | "optional": true 2117 | }, 2118 | "process-nextick-args": { 2119 | "version": "1.0.7", 2120 | "bundled": true, 2121 | "dev": true 2122 | }, 2123 | "punycode": { 2124 | "version": "1.4.1", 2125 | "bundled": true, 2126 | "dev": true, 2127 | "optional": true 2128 | }, 2129 | "qs": { 2130 | "version": "6.4.0", 2131 | "bundled": true, 2132 | "dev": true, 2133 | "optional": true 2134 | }, 2135 | "rc": { 2136 | "version": "1.2.1", 2137 | "bundled": true, 2138 | "dev": true, 2139 | "optional": true, 2140 | "requires": { 2141 | "deep-extend": "0.4.2", 2142 | "ini": "1.3.4", 2143 | "minimist": "1.2.0", 2144 | "strip-json-comments": "2.0.1" 2145 | }, 2146 | "dependencies": { 2147 | "minimist": { 2148 | "version": "1.2.0", 2149 | "bundled": true, 2150 | "dev": true, 2151 | "optional": true 2152 | } 2153 | } 2154 | }, 2155 | "readable-stream": { 2156 | "version": "2.2.9", 2157 | "bundled": true, 2158 | "dev": true, 2159 | "requires": { 2160 | "buffer-shims": "1.0.0", 2161 | "core-util-is": "1.0.2", 2162 | "inherits": "2.0.3", 2163 | "isarray": "1.0.0", 2164 | "process-nextick-args": "1.0.7", 2165 | "string_decoder": "1.0.1", 2166 | "util-deprecate": "1.0.2" 2167 | } 2168 | }, 2169 | "request": { 2170 | "version": "2.81.0", 2171 | "bundled": true, 2172 | "dev": true, 2173 | "optional": true, 2174 | "requires": { 2175 | "aws-sign2": "0.6.0", 2176 | "aws4": "1.6.0", 2177 | "caseless": "0.12.0", 2178 | "combined-stream": "1.0.5", 2179 | "extend": "3.0.1", 2180 | "forever-agent": "0.6.1", 2181 | "form-data": "2.1.4", 2182 | "har-validator": "4.2.1", 2183 | "hawk": "3.1.3", 2184 | "http-signature": "1.1.1", 2185 | "is-typedarray": "1.0.0", 2186 | "isstream": "0.1.2", 2187 | "json-stringify-safe": "5.0.1", 2188 | "mime-types": "2.1.15", 2189 | "oauth-sign": "0.8.2", 2190 | "performance-now": "0.2.0", 2191 | "qs": "6.4.0", 2192 | "safe-buffer": "5.0.1", 2193 | "stringstream": "0.0.5", 2194 | "tough-cookie": "2.3.2", 2195 | "tunnel-agent": "0.6.0", 2196 | "uuid": "3.0.1" 2197 | } 2198 | }, 2199 | "rimraf": { 2200 | "version": "2.6.1", 2201 | "bundled": true, 2202 | "dev": true, 2203 | "requires": { 2204 | "glob": "7.1.2" 2205 | } 2206 | }, 2207 | "safe-buffer": { 2208 | "version": "5.0.1", 2209 | "bundled": true, 2210 | "dev": true 2211 | }, 2212 | "semver": { 2213 | "version": "5.3.0", 2214 | "bundled": true, 2215 | "dev": true, 2216 | "optional": true 2217 | }, 2218 | "set-blocking": { 2219 | "version": "2.0.0", 2220 | "bundled": true, 2221 | "dev": true, 2222 | "optional": true 2223 | }, 2224 | "signal-exit": { 2225 | "version": "3.0.2", 2226 | "bundled": true, 2227 | "dev": true, 2228 | "optional": true 2229 | }, 2230 | "sntp": { 2231 | "version": "1.0.9", 2232 | "bundled": true, 2233 | "dev": true, 2234 | "requires": { 2235 | "hoek": "2.16.3" 2236 | } 2237 | }, 2238 | "sshpk": { 2239 | "version": "1.13.0", 2240 | "bundled": true, 2241 | "dev": true, 2242 | "optional": true, 2243 | "requires": { 2244 | "asn1": "0.2.3", 2245 | "assert-plus": "1.0.0", 2246 | "bcrypt-pbkdf": "1.0.1", 2247 | "dashdash": "1.14.1", 2248 | "ecc-jsbn": "0.1.1", 2249 | "getpass": "0.1.7", 2250 | "jodid25519": "1.0.2", 2251 | "jsbn": "0.1.1", 2252 | "tweetnacl": "0.14.5" 2253 | }, 2254 | "dependencies": { 2255 | "assert-plus": { 2256 | "version": "1.0.0", 2257 | "bundled": true, 2258 | "dev": true, 2259 | "optional": true 2260 | } 2261 | } 2262 | }, 2263 | "string-width": { 2264 | "version": "1.0.2", 2265 | "bundled": true, 2266 | "dev": true, 2267 | "requires": { 2268 | "code-point-at": "1.1.0", 2269 | "is-fullwidth-code-point": "1.0.0", 2270 | "strip-ansi": "3.0.1" 2271 | } 2272 | }, 2273 | "string_decoder": { 2274 | "version": "1.0.1", 2275 | "bundled": true, 2276 | "dev": true, 2277 | "requires": { 2278 | "safe-buffer": "5.0.1" 2279 | } 2280 | }, 2281 | "stringstream": { 2282 | "version": "0.0.5", 2283 | "bundled": true, 2284 | "dev": true, 2285 | "optional": true 2286 | }, 2287 | "strip-ansi": { 2288 | "version": "3.0.1", 2289 | "bundled": true, 2290 | "dev": true, 2291 | "requires": { 2292 | "ansi-regex": "2.1.1" 2293 | } 2294 | }, 2295 | "strip-json-comments": { 2296 | "version": "2.0.1", 2297 | "bundled": true, 2298 | "dev": true, 2299 | "optional": true 2300 | }, 2301 | "tar": { 2302 | "version": "2.2.1", 2303 | "bundled": true, 2304 | "dev": true, 2305 | "requires": { 2306 | "block-stream": "0.0.9", 2307 | "fstream": "1.0.11", 2308 | "inherits": "2.0.3" 2309 | } 2310 | }, 2311 | "tar-pack": { 2312 | "version": "3.4.0", 2313 | "bundled": true, 2314 | "dev": true, 2315 | "optional": true, 2316 | "requires": { 2317 | "debug": "2.6.8", 2318 | "fstream": "1.0.11", 2319 | "fstream-ignore": "1.0.5", 2320 | "once": "1.4.0", 2321 | "readable-stream": "2.2.9", 2322 | "rimraf": "2.6.1", 2323 | "tar": "2.2.1", 2324 | "uid-number": "0.0.6" 2325 | } 2326 | }, 2327 | "tough-cookie": { 2328 | "version": "2.3.2", 2329 | "bundled": true, 2330 | "dev": true, 2331 | "optional": true, 2332 | "requires": { 2333 | "punycode": "1.4.1" 2334 | } 2335 | }, 2336 | "tunnel-agent": { 2337 | "version": "0.6.0", 2338 | "bundled": true, 2339 | "dev": true, 2340 | "optional": true, 2341 | "requires": { 2342 | "safe-buffer": "5.0.1" 2343 | } 2344 | }, 2345 | "tweetnacl": { 2346 | "version": "0.14.5", 2347 | "bundled": true, 2348 | "dev": true, 2349 | "optional": true 2350 | }, 2351 | "uid-number": { 2352 | "version": "0.0.6", 2353 | "bundled": true, 2354 | "dev": true, 2355 | "optional": true 2356 | }, 2357 | "util-deprecate": { 2358 | "version": "1.0.2", 2359 | "bundled": true, 2360 | "dev": true 2361 | }, 2362 | "uuid": { 2363 | "version": "3.0.1", 2364 | "bundled": true, 2365 | "dev": true, 2366 | "optional": true 2367 | }, 2368 | "verror": { 2369 | "version": "1.3.6", 2370 | "bundled": true, 2371 | "dev": true, 2372 | "optional": true, 2373 | "requires": { 2374 | "extsprintf": "1.0.2" 2375 | } 2376 | }, 2377 | "wide-align": { 2378 | "version": "1.1.2", 2379 | "bundled": true, 2380 | "dev": true, 2381 | "optional": true, 2382 | "requires": { 2383 | "string-width": "1.0.2" 2384 | } 2385 | }, 2386 | "wrappy": { 2387 | "version": "1.0.2", 2388 | "bundled": true, 2389 | "dev": true 2390 | } 2391 | } 2392 | }, 2393 | "function-name-support": { 2394 | "version": "0.2.0", 2395 | "resolved": "https://registry.npmjs.org/function-name-support/-/function-name-support-0.2.0.tgz", 2396 | "integrity": "sha1-VdO/qm6v1QWlD5vIH99XVkoLsHE=", 2397 | "dev": true 2398 | }, 2399 | "get-port": { 2400 | "version": "3.2.0", 2401 | "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", 2402 | "integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=", 2403 | "dev": true 2404 | }, 2405 | "get-stdin": { 2406 | "version": "4.0.1", 2407 | "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", 2408 | "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", 2409 | "dev": true 2410 | }, 2411 | "get-stream": { 2412 | "version": "3.0.0", 2413 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", 2414 | "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", 2415 | "dev": true 2416 | }, 2417 | "glob": { 2418 | "version": "7.1.2", 2419 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", 2420 | "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", 2421 | "dev": true, 2422 | "requires": { 2423 | "fs.realpath": "1.0.0", 2424 | "inflight": "1.0.6", 2425 | "inherits": "2.0.3", 2426 | "minimatch": "3.0.4", 2427 | "once": "1.4.0", 2428 | "path-is-absolute": "1.0.1" 2429 | } 2430 | }, 2431 | "glob-base": { 2432 | "version": "0.3.0", 2433 | "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", 2434 | "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", 2435 | "dev": true, 2436 | "requires": { 2437 | "glob-parent": "2.0.0", 2438 | "is-glob": "2.0.1" 2439 | } 2440 | }, 2441 | "glob-parent": { 2442 | "version": "2.0.0", 2443 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", 2444 | "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", 2445 | "dev": true, 2446 | "requires": { 2447 | "is-glob": "2.0.1" 2448 | } 2449 | }, 2450 | "global-dirs": { 2451 | "version": "0.1.1", 2452 | "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", 2453 | "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", 2454 | "dev": true, 2455 | "requires": { 2456 | "ini": "1.3.5" 2457 | } 2458 | }, 2459 | "globals": { 2460 | "version": "9.18.0", 2461 | "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", 2462 | "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", 2463 | "dev": true 2464 | }, 2465 | "globby": { 2466 | "version": "6.1.0", 2467 | "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", 2468 | "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", 2469 | "dev": true, 2470 | "requires": { 2471 | "array-union": "1.0.2", 2472 | "glob": "7.1.2", 2473 | "object-assign": "4.1.1", 2474 | "pify": "2.3.0", 2475 | "pinkie-promise": "2.0.1" 2476 | }, 2477 | "dependencies": { 2478 | "pinkie": { 2479 | "version": "2.0.4", 2480 | "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", 2481 | "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", 2482 | "dev": true 2483 | }, 2484 | "pinkie-promise": { 2485 | "version": "2.0.1", 2486 | "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", 2487 | "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", 2488 | "dev": true, 2489 | "requires": { 2490 | "pinkie": "2.0.4" 2491 | } 2492 | } 2493 | } 2494 | }, 2495 | "got": { 2496 | "version": "6.7.1", 2497 | "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", 2498 | "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", 2499 | "dev": true, 2500 | "requires": { 2501 | "create-error-class": "3.0.2", 2502 | "duplexer3": "0.1.4", 2503 | "get-stream": "3.0.0", 2504 | "is-redirect": "1.0.0", 2505 | "is-retry-allowed": "1.1.0", 2506 | "is-stream": "1.1.0", 2507 | "lowercase-keys": "1.0.1", 2508 | "safe-buffer": "5.1.1", 2509 | "timed-out": "4.0.1", 2510 | "unzip-response": "2.0.1", 2511 | "url-parse-lax": "1.0.0" 2512 | } 2513 | }, 2514 | "graceful-fs": { 2515 | "version": "4.1.11", 2516 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", 2517 | "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", 2518 | "dev": true 2519 | }, 2520 | "has-ansi": { 2521 | "version": "2.0.0", 2522 | "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", 2523 | "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", 2524 | "dev": true, 2525 | "requires": { 2526 | "ansi-regex": "2.1.1" 2527 | } 2528 | }, 2529 | "has-color": { 2530 | "version": "0.1.7", 2531 | "resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz", 2532 | "integrity": "sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8=", 2533 | "dev": true 2534 | }, 2535 | "has-flag": { 2536 | "version": "2.0.0", 2537 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", 2538 | "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", 2539 | "dev": true 2540 | }, 2541 | "has-yarn": { 2542 | "version": "1.0.0", 2543 | "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-1.0.0.tgz", 2544 | "integrity": "sha1-ieJdtgS3Jcj1l2//Ct3JIbgopac=", 2545 | "dev": true 2546 | }, 2547 | "home-or-tmp": { 2548 | "version": "2.0.0", 2549 | "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", 2550 | "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", 2551 | "dev": true, 2552 | "requires": { 2553 | "os-homedir": "1.0.2", 2554 | "os-tmpdir": "1.0.2" 2555 | } 2556 | }, 2557 | "hosted-git-info": { 2558 | "version": "2.6.0", 2559 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz", 2560 | "integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw==", 2561 | "dev": true 2562 | }, 2563 | "hullabaloo-config-manager": { 2564 | "version": "1.1.1", 2565 | "resolved": "https://registry.npmjs.org/hullabaloo-config-manager/-/hullabaloo-config-manager-1.1.1.tgz", 2566 | "integrity": "sha512-ztKnkZV0TmxnumCDHHgLGNiDnotu4EHCp9YMkznWuo4uTtCyJ+cu+RNcxUeXYKTllpvLFWnbfWry09yzszgg+A==", 2567 | "dev": true, 2568 | "requires": { 2569 | "dot-prop": "4.2.0", 2570 | "es6-error": "4.1.1", 2571 | "graceful-fs": "4.1.11", 2572 | "indent-string": "3.2.0", 2573 | "json5": "0.5.1", 2574 | "lodash.clonedeep": "4.5.0", 2575 | "lodash.clonedeepwith": "4.5.0", 2576 | "lodash.isequal": "4.5.0", 2577 | "lodash.merge": "4.6.1", 2578 | "md5-hex": "2.0.0", 2579 | "package-hash": "2.0.0", 2580 | "pkg-dir": "2.0.0", 2581 | "resolve-from": "3.0.0", 2582 | "safe-buffer": "5.1.1" 2583 | } 2584 | }, 2585 | "ignore-by-default": { 2586 | "version": "1.0.1", 2587 | "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", 2588 | "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", 2589 | "dev": true 2590 | }, 2591 | "import-lazy": { 2592 | "version": "2.1.0", 2593 | "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", 2594 | "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", 2595 | "dev": true 2596 | }, 2597 | "import-local": { 2598 | "version": "0.1.1", 2599 | "resolved": "https://registry.npmjs.org/import-local/-/import-local-0.1.1.tgz", 2600 | "integrity": "sha1-sReVcqrNwRxqkQCftDDbyrX2aKg=", 2601 | "dev": true, 2602 | "requires": { 2603 | "pkg-dir": "2.0.0", 2604 | "resolve-cwd": "2.0.0" 2605 | } 2606 | }, 2607 | "imurmurhash": { 2608 | "version": "0.1.4", 2609 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 2610 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", 2611 | "dev": true 2612 | }, 2613 | "indent-string": { 2614 | "version": "3.2.0", 2615 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", 2616 | "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", 2617 | "dev": true 2618 | }, 2619 | "inflight": { 2620 | "version": "1.0.6", 2621 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 2622 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 2623 | "dev": true, 2624 | "requires": { 2625 | "once": "1.4.0", 2626 | "wrappy": "1.0.2" 2627 | } 2628 | }, 2629 | "inherits": { 2630 | "version": "2.0.3", 2631 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 2632 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", 2633 | "dev": true 2634 | }, 2635 | "ini": { 2636 | "version": "1.3.5", 2637 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", 2638 | "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", 2639 | "dev": true 2640 | }, 2641 | "invariant": { 2642 | "version": "2.2.4", 2643 | "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", 2644 | "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", 2645 | "dev": true, 2646 | "requires": { 2647 | "loose-envify": "1.3.1" 2648 | } 2649 | }, 2650 | "irregular-plurals": { 2651 | "version": "1.4.0", 2652 | "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-1.4.0.tgz", 2653 | "integrity": "sha1-LKmwM2UREYVUEvFr5dd8YqRYp2Y=", 2654 | "dev": true 2655 | }, 2656 | "is-arrayish": { 2657 | "version": "0.2.1", 2658 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 2659 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", 2660 | "dev": true 2661 | }, 2662 | "is-binary-path": { 2663 | "version": "1.0.1", 2664 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", 2665 | "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", 2666 | "dev": true, 2667 | "requires": { 2668 | "binary-extensions": "1.11.0" 2669 | } 2670 | }, 2671 | "is-buffer": { 2672 | "version": "1.1.6", 2673 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", 2674 | "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", 2675 | "dev": true 2676 | }, 2677 | "is-builtin-module": { 2678 | "version": "1.0.0", 2679 | "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", 2680 | "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", 2681 | "dev": true, 2682 | "requires": { 2683 | "builtin-modules": "1.1.1" 2684 | } 2685 | }, 2686 | "is-ci": { 2687 | "version": "1.1.0", 2688 | "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.1.0.tgz", 2689 | "integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==", 2690 | "dev": true, 2691 | "requires": { 2692 | "ci-info": "1.1.3" 2693 | } 2694 | }, 2695 | "is-dotfile": { 2696 | "version": "1.0.3", 2697 | "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", 2698 | "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", 2699 | "dev": true 2700 | }, 2701 | "is-equal-shallow": { 2702 | "version": "0.1.3", 2703 | "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", 2704 | "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", 2705 | "dev": true, 2706 | "requires": { 2707 | "is-primitive": "2.0.0" 2708 | } 2709 | }, 2710 | "is-error": { 2711 | "version": "2.2.1", 2712 | "resolved": "https://registry.npmjs.org/is-error/-/is-error-2.2.1.tgz", 2713 | "integrity": "sha1-aEqW2EB2V3yY9M20DG0mpRI78Zw=", 2714 | "dev": true 2715 | }, 2716 | "is-extendable": { 2717 | "version": "0.1.1", 2718 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", 2719 | "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", 2720 | "dev": true 2721 | }, 2722 | "is-extglob": { 2723 | "version": "1.0.0", 2724 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", 2725 | "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", 2726 | "dev": true 2727 | }, 2728 | "is-finite": { 2729 | "version": "1.0.2", 2730 | "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", 2731 | "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", 2732 | "dev": true, 2733 | "requires": { 2734 | "number-is-nan": "1.0.1" 2735 | } 2736 | }, 2737 | "is-fullwidth-code-point": { 2738 | "version": "2.0.0", 2739 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 2740 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", 2741 | "dev": true 2742 | }, 2743 | "is-generator-fn": { 2744 | "version": "1.0.0", 2745 | "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-1.0.0.tgz", 2746 | "integrity": "sha1-lp1J4bszKfa7fwkIm+JleLLd1Go=", 2747 | "dev": true 2748 | }, 2749 | "is-glob": { 2750 | "version": "2.0.1", 2751 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", 2752 | "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", 2753 | "dev": true, 2754 | "requires": { 2755 | "is-extglob": "1.0.0" 2756 | } 2757 | }, 2758 | "is-installed-globally": { 2759 | "version": "0.1.0", 2760 | "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", 2761 | "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", 2762 | "dev": true, 2763 | "requires": { 2764 | "global-dirs": "0.1.1", 2765 | "is-path-inside": "1.0.1" 2766 | } 2767 | }, 2768 | "is-npm": { 2769 | "version": "1.0.0", 2770 | "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", 2771 | "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=", 2772 | "dev": true 2773 | }, 2774 | "is-number": { 2775 | "version": "2.1.0", 2776 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", 2777 | "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", 2778 | "dev": true, 2779 | "requires": { 2780 | "kind-of": "3.2.2" 2781 | } 2782 | }, 2783 | "is-obj": { 2784 | "version": "1.0.1", 2785 | "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", 2786 | "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", 2787 | "dev": true 2788 | }, 2789 | "is-observable": { 2790 | "version": "1.1.0", 2791 | "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz", 2792 | "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==", 2793 | "dev": true, 2794 | "requires": { 2795 | "symbol-observable": "1.2.0" 2796 | } 2797 | }, 2798 | "is-path-inside": { 2799 | "version": "1.0.1", 2800 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", 2801 | "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", 2802 | "dev": true, 2803 | "requires": { 2804 | "path-is-inside": "1.0.2" 2805 | } 2806 | }, 2807 | "is-plain-obj": { 2808 | "version": "1.1.0", 2809 | "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", 2810 | "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", 2811 | "dev": true 2812 | }, 2813 | "is-posix-bracket": { 2814 | "version": "0.1.1", 2815 | "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", 2816 | "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", 2817 | "dev": true 2818 | }, 2819 | "is-primitive": { 2820 | "version": "2.0.0", 2821 | "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", 2822 | "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", 2823 | "dev": true 2824 | }, 2825 | "is-promise": { 2826 | "version": "2.1.0", 2827 | "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", 2828 | "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", 2829 | "dev": true 2830 | }, 2831 | "is-redirect": { 2832 | "version": "1.0.0", 2833 | "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", 2834 | "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", 2835 | "dev": true 2836 | }, 2837 | "is-retry-allowed": { 2838 | "version": "1.1.0", 2839 | "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", 2840 | "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=", 2841 | "dev": true 2842 | }, 2843 | "is-stream": { 2844 | "version": "1.1.0", 2845 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", 2846 | "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", 2847 | "dev": true 2848 | }, 2849 | "is-url": { 2850 | "version": "1.2.4", 2851 | "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", 2852 | "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", 2853 | "dev": true 2854 | }, 2855 | "is-utf8": { 2856 | "version": "0.2.1", 2857 | "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", 2858 | "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", 2859 | "dev": true 2860 | }, 2861 | "isarray": { 2862 | "version": "1.0.0", 2863 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 2864 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", 2865 | "dev": true 2866 | }, 2867 | "isexe": { 2868 | "version": "2.0.0", 2869 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 2870 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 2871 | "dev": true 2872 | }, 2873 | "isobject": { 2874 | "version": "2.1.0", 2875 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", 2876 | "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", 2877 | "dev": true, 2878 | "requires": { 2879 | "isarray": "1.0.0" 2880 | } 2881 | }, 2882 | "js-string-escape": { 2883 | "version": "1.0.1", 2884 | "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", 2885 | "integrity": "sha1-4mJbrbwNZ8dTPp7cEGjFh65BN+8=", 2886 | "dev": true 2887 | }, 2888 | "js-tokens": { 2889 | "version": "3.0.2", 2890 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", 2891 | "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", 2892 | "dev": true 2893 | }, 2894 | "js-yaml": { 2895 | "version": "3.11.0", 2896 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.11.0.tgz", 2897 | "integrity": "sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw==", 2898 | "dev": true, 2899 | "requires": { 2900 | "argparse": "1.0.10", 2901 | "esprima": "4.0.0" 2902 | } 2903 | }, 2904 | "jsesc": { 2905 | "version": "0.5.0", 2906 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", 2907 | "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", 2908 | "dev": true 2909 | }, 2910 | "json-parse-better-errors": { 2911 | "version": "1.0.2", 2912 | "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", 2913 | "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", 2914 | "dev": true 2915 | }, 2916 | "json5": { 2917 | "version": "0.5.1", 2918 | "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", 2919 | "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", 2920 | "dev": true 2921 | }, 2922 | "kind-of": { 2923 | "version": "3.2.2", 2924 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 2925 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 2926 | "dev": true, 2927 | "requires": { 2928 | "is-buffer": "1.1.6" 2929 | } 2930 | }, 2931 | "last-line-stream": { 2932 | "version": "1.0.0", 2933 | "resolved": "https://registry.npmjs.org/last-line-stream/-/last-line-stream-1.0.0.tgz", 2934 | "integrity": "sha1-0bZNafhv8kry0EiDos7uFFIKVgA=", 2935 | "dev": true, 2936 | "requires": { 2937 | "through2": "2.0.3" 2938 | } 2939 | }, 2940 | "latest-version": { 2941 | "version": "3.1.0", 2942 | "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", 2943 | "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", 2944 | "dev": true, 2945 | "requires": { 2946 | "package-json": "4.0.1" 2947 | } 2948 | }, 2949 | "load-json-file": { 2950 | "version": "2.0.0", 2951 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", 2952 | "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", 2953 | "dev": true, 2954 | "requires": { 2955 | "graceful-fs": "4.1.11", 2956 | "parse-json": "2.2.0", 2957 | "pify": "2.3.0", 2958 | "strip-bom": "3.0.0" 2959 | } 2960 | }, 2961 | "locate-path": { 2962 | "version": "2.0.0", 2963 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", 2964 | "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", 2965 | "dev": true, 2966 | "requires": { 2967 | "p-locate": "2.0.0", 2968 | "path-exists": "3.0.0" 2969 | } 2970 | }, 2971 | "lodash": { 2972 | "version": "4.17.5", 2973 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", 2974 | "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", 2975 | "dev": true 2976 | }, 2977 | "lodash.clonedeep": { 2978 | "version": "4.5.0", 2979 | "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", 2980 | "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", 2981 | "dev": true 2982 | }, 2983 | "lodash.clonedeepwith": { 2984 | "version": "4.5.0", 2985 | "resolved": "https://registry.npmjs.org/lodash.clonedeepwith/-/lodash.clonedeepwith-4.5.0.tgz", 2986 | "integrity": "sha1-buMFc6A6GmDWcKYu8zwQzxr9vdQ=", 2987 | "dev": true 2988 | }, 2989 | "lodash.debounce": { 2990 | "version": "4.0.8", 2991 | "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", 2992 | "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", 2993 | "dev": true 2994 | }, 2995 | "lodash.difference": { 2996 | "version": "4.5.0", 2997 | "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", 2998 | "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=", 2999 | "dev": true 3000 | }, 3001 | "lodash.flatten": { 3002 | "version": "4.4.0", 3003 | "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", 3004 | "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=", 3005 | "dev": true 3006 | }, 3007 | "lodash.flattendeep": { 3008 | "version": "4.4.0", 3009 | "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", 3010 | "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", 3011 | "dev": true 3012 | }, 3013 | "lodash.isequal": { 3014 | "version": "4.5.0", 3015 | "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", 3016 | "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=", 3017 | "dev": true 3018 | }, 3019 | "lodash.merge": { 3020 | "version": "4.6.1", 3021 | "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.1.tgz", 3022 | "integrity": "sha512-AOYza4+Hf5z1/0Hztxpm2/xiPZgi/cjMqdnKTUWTBSKchJlxXXuUSxCCl8rJlf4g6yww/j6mA8nC8Hw/EZWxKQ==", 3023 | "dev": true 3024 | }, 3025 | "loose-envify": { 3026 | "version": "1.3.1", 3027 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", 3028 | "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", 3029 | "dev": true, 3030 | "requires": { 3031 | "js-tokens": "3.0.2" 3032 | } 3033 | }, 3034 | "loud-rejection": { 3035 | "version": "1.6.0", 3036 | "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", 3037 | "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", 3038 | "dev": true, 3039 | "requires": { 3040 | "currently-unhandled": "0.4.1", 3041 | "signal-exit": "3.0.2" 3042 | } 3043 | }, 3044 | "lowercase-keys": { 3045 | "version": "1.0.1", 3046 | "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", 3047 | "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", 3048 | "dev": true 3049 | }, 3050 | "lru-cache": { 3051 | "version": "4.1.2", 3052 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.2.tgz", 3053 | "integrity": "sha512-wgeVXhrDwAWnIF/yZARsFnMBtdFXOg1b8RIrhilp+0iDYN4mdQcNZElDZ0e4B64BhaxeQ5zN7PMyvu7we1kPeQ==", 3054 | "dev": true, 3055 | "requires": { 3056 | "pseudomap": "1.0.2", 3057 | "yallist": "2.1.2" 3058 | } 3059 | }, 3060 | "make-dir": { 3061 | "version": "1.2.0", 3062 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.2.0.tgz", 3063 | "integrity": "sha512-aNUAa4UMg/UougV25bbrU4ZaaKNjJ/3/xnvg/twpmKROPdKZPZ9wGgI0opdZzO8q/zUFawoUuixuOv33eZ61Iw==", 3064 | "dev": true, 3065 | "requires": { 3066 | "pify": "3.0.0" 3067 | }, 3068 | "dependencies": { 3069 | "pify": { 3070 | "version": "3.0.0", 3071 | "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", 3072 | "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", 3073 | "dev": true 3074 | } 3075 | } 3076 | }, 3077 | "map-obj": { 3078 | "version": "1.0.1", 3079 | "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", 3080 | "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", 3081 | "dev": true 3082 | }, 3083 | "matcher": { 3084 | "version": "1.1.0", 3085 | "resolved": "https://registry.npmjs.org/matcher/-/matcher-1.1.0.tgz", 3086 | "integrity": "sha512-aZGv6JBTHqfqAd09jmAlbKnAICTfIvb5Z8gXVxPB5WZtFfHMaAMdACL7tQflD2V+6/8KNcY8s6DYtWLgpJP5lA==", 3087 | "dev": true, 3088 | "requires": { 3089 | "escape-string-regexp": "1.0.5" 3090 | } 3091 | }, 3092 | "md5-hex": { 3093 | "version": "2.0.0", 3094 | "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-2.0.0.tgz", 3095 | "integrity": "sha1-0FiOnxx0lUSS7NJKwKxs6ZfZLjM=", 3096 | "dev": true, 3097 | "requires": { 3098 | "md5-o-matic": "0.1.1" 3099 | } 3100 | }, 3101 | "md5-o-matic": { 3102 | "version": "0.1.1", 3103 | "resolved": "https://registry.npmjs.org/md5-o-matic/-/md5-o-matic-0.1.1.tgz", 3104 | "integrity": "sha1-givM1l4RfFFPqxdrJZRdVBAKA8M=", 3105 | "dev": true 3106 | }, 3107 | "meow": { 3108 | "version": "3.7.0", 3109 | "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", 3110 | "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", 3111 | "dev": true, 3112 | "requires": { 3113 | "camelcase-keys": "2.1.0", 3114 | "decamelize": "1.2.0", 3115 | "loud-rejection": "1.6.0", 3116 | "map-obj": "1.0.1", 3117 | "minimist": "1.2.0", 3118 | "normalize-package-data": "2.4.0", 3119 | "object-assign": "4.1.1", 3120 | "read-pkg-up": "1.0.1", 3121 | "redent": "1.0.0", 3122 | "trim-newlines": "1.0.0" 3123 | }, 3124 | "dependencies": { 3125 | "find-up": { 3126 | "version": "1.1.2", 3127 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", 3128 | "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", 3129 | "dev": true, 3130 | "requires": { 3131 | "path-exists": "2.1.0", 3132 | "pinkie-promise": "2.0.1" 3133 | } 3134 | }, 3135 | "load-json-file": { 3136 | "version": "1.1.0", 3137 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", 3138 | "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", 3139 | "dev": true, 3140 | "requires": { 3141 | "graceful-fs": "4.1.11", 3142 | "parse-json": "2.2.0", 3143 | "pify": "2.3.0", 3144 | "pinkie-promise": "2.0.1", 3145 | "strip-bom": "2.0.0" 3146 | } 3147 | }, 3148 | "minimist": { 3149 | "version": "1.2.0", 3150 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", 3151 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", 3152 | "dev": true 3153 | }, 3154 | "path-exists": { 3155 | "version": "2.1.0", 3156 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", 3157 | "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", 3158 | "dev": true, 3159 | "requires": { 3160 | "pinkie-promise": "2.0.1" 3161 | } 3162 | }, 3163 | "path-type": { 3164 | "version": "1.1.0", 3165 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", 3166 | "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", 3167 | "dev": true, 3168 | "requires": { 3169 | "graceful-fs": "4.1.11", 3170 | "pify": "2.3.0", 3171 | "pinkie-promise": "2.0.1" 3172 | } 3173 | }, 3174 | "pinkie": { 3175 | "version": "2.0.4", 3176 | "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", 3177 | "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", 3178 | "dev": true 3179 | }, 3180 | "pinkie-promise": { 3181 | "version": "2.0.1", 3182 | "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", 3183 | "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", 3184 | "dev": true, 3185 | "requires": { 3186 | "pinkie": "2.0.4" 3187 | } 3188 | }, 3189 | "read-pkg": { 3190 | "version": "1.1.0", 3191 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", 3192 | "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", 3193 | "dev": true, 3194 | "requires": { 3195 | "load-json-file": "1.1.0", 3196 | "normalize-package-data": "2.4.0", 3197 | "path-type": "1.1.0" 3198 | } 3199 | }, 3200 | "read-pkg-up": { 3201 | "version": "1.0.1", 3202 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", 3203 | "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", 3204 | "dev": true, 3205 | "requires": { 3206 | "find-up": "1.1.2", 3207 | "read-pkg": "1.1.0" 3208 | } 3209 | }, 3210 | "strip-bom": { 3211 | "version": "2.0.0", 3212 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", 3213 | "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", 3214 | "dev": true, 3215 | "requires": { 3216 | "is-utf8": "0.2.1" 3217 | } 3218 | } 3219 | } 3220 | }, 3221 | "micromatch": { 3222 | "version": "2.3.11", 3223 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", 3224 | "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", 3225 | "dev": true, 3226 | "requires": { 3227 | "arr-diff": "2.0.0", 3228 | "array-unique": "0.2.1", 3229 | "braces": "1.8.5", 3230 | "expand-brackets": "0.1.5", 3231 | "extglob": "0.3.2", 3232 | "filename-regex": "2.0.1", 3233 | "is-extglob": "1.0.0", 3234 | "is-glob": "2.0.1", 3235 | "kind-of": "3.2.2", 3236 | "normalize-path": "2.1.1", 3237 | "object.omit": "2.0.1", 3238 | "parse-glob": "3.0.4", 3239 | "regex-cache": "0.4.4" 3240 | } 3241 | }, 3242 | "mimic-fn": { 3243 | "version": "1.2.0", 3244 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", 3245 | "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", 3246 | "dev": true 3247 | }, 3248 | "minimatch": { 3249 | "version": "3.0.4", 3250 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 3251 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 3252 | "dev": true, 3253 | "requires": { 3254 | "brace-expansion": "1.1.11" 3255 | } 3256 | }, 3257 | "minimist": { 3258 | "version": "0.0.8", 3259 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 3260 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", 3261 | "dev": true 3262 | }, 3263 | "mkdirp": { 3264 | "version": "0.5.1", 3265 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 3266 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 3267 | "dev": true, 3268 | "requires": { 3269 | "minimist": "0.0.8" 3270 | } 3271 | }, 3272 | "ms": { 3273 | "version": "2.1.1", 3274 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", 3275 | "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", 3276 | "dev": true 3277 | }, 3278 | "multimatch": { 3279 | "version": "2.1.0", 3280 | "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", 3281 | "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", 3282 | "dev": true, 3283 | "requires": { 3284 | "array-differ": "1.0.0", 3285 | "array-union": "1.0.2", 3286 | "arrify": "1.0.1", 3287 | "minimatch": "3.0.4" 3288 | } 3289 | }, 3290 | "nan": { 3291 | "version": "2.10.0", 3292 | "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", 3293 | "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==", 3294 | "dev": true, 3295 | "optional": true 3296 | }, 3297 | "normalize-package-data": { 3298 | "version": "2.4.0", 3299 | "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", 3300 | "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", 3301 | "dev": true, 3302 | "requires": { 3303 | "hosted-git-info": "2.6.0", 3304 | "is-builtin-module": "1.0.0", 3305 | "semver": "5.5.0", 3306 | "validate-npm-package-license": "3.0.3" 3307 | } 3308 | }, 3309 | "normalize-path": { 3310 | "version": "2.1.1", 3311 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", 3312 | "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", 3313 | "dev": true, 3314 | "requires": { 3315 | "remove-trailing-separator": "1.1.0" 3316 | } 3317 | }, 3318 | "npm-run-path": { 3319 | "version": "2.0.2", 3320 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", 3321 | "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", 3322 | "dev": true, 3323 | "requires": { 3324 | "path-key": "2.0.1" 3325 | } 3326 | }, 3327 | "number-is-nan": { 3328 | "version": "1.0.1", 3329 | "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", 3330 | "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", 3331 | "dev": true 3332 | }, 3333 | "object-assign": { 3334 | "version": "4.1.1", 3335 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 3336 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", 3337 | "dev": true 3338 | }, 3339 | "object.omit": { 3340 | "version": "2.0.1", 3341 | "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", 3342 | "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", 3343 | "dev": true, 3344 | "requires": { 3345 | "for-own": "0.1.5", 3346 | "is-extendable": "0.1.1" 3347 | } 3348 | }, 3349 | "observable-to-promise": { 3350 | "version": "0.5.0", 3351 | "resolved": "https://registry.npmjs.org/observable-to-promise/-/observable-to-promise-0.5.0.tgz", 3352 | "integrity": "sha1-yCjw8NxH6fhq+KSXfF1VB2znqR8=", 3353 | "dev": true, 3354 | "requires": { 3355 | "is-observable": "0.2.0", 3356 | "symbol-observable": "1.2.0" 3357 | }, 3358 | "dependencies": { 3359 | "is-observable": { 3360 | "version": "0.2.0", 3361 | "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-0.2.0.tgz", 3362 | "integrity": "sha1-s2ExHYPG5dcmyr9eJQsCNxBvWuI=", 3363 | "dev": true, 3364 | "requires": { 3365 | "symbol-observable": "0.2.4" 3366 | }, 3367 | "dependencies": { 3368 | "symbol-observable": { 3369 | "version": "0.2.4", 3370 | "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-0.2.4.tgz", 3371 | "integrity": "sha1-lag9smGG1q9+ehjb2XYKL4bQj0A=", 3372 | "dev": true 3373 | } 3374 | } 3375 | } 3376 | } 3377 | }, 3378 | "once": { 3379 | "version": "1.4.0", 3380 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 3381 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 3382 | "dev": true, 3383 | "requires": { 3384 | "wrappy": "1.0.2" 3385 | } 3386 | }, 3387 | "onetime": { 3388 | "version": "2.0.1", 3389 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", 3390 | "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", 3391 | "dev": true, 3392 | "requires": { 3393 | "mimic-fn": "1.2.0" 3394 | } 3395 | }, 3396 | "option-chain": { 3397 | "version": "1.0.0", 3398 | "resolved": "https://registry.npmjs.org/option-chain/-/option-chain-1.0.0.tgz", 3399 | "integrity": "sha1-k41zvU4Xg/lI00AjZEraI2aeMPI=", 3400 | "dev": true 3401 | }, 3402 | "os-homedir": { 3403 | "version": "1.0.2", 3404 | "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", 3405 | "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", 3406 | "dev": true 3407 | }, 3408 | "os-tmpdir": { 3409 | "version": "1.0.2", 3410 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", 3411 | "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", 3412 | "dev": true 3413 | }, 3414 | "p-finally": { 3415 | "version": "1.0.0", 3416 | "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", 3417 | "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", 3418 | "dev": true 3419 | }, 3420 | "p-limit": { 3421 | "version": "1.2.0", 3422 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", 3423 | "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", 3424 | "dev": true, 3425 | "requires": { 3426 | "p-try": "1.0.0" 3427 | } 3428 | }, 3429 | "p-locate": { 3430 | "version": "2.0.0", 3431 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", 3432 | "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", 3433 | "dev": true, 3434 | "requires": { 3435 | "p-limit": "1.2.0" 3436 | } 3437 | }, 3438 | "p-try": { 3439 | "version": "1.0.0", 3440 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", 3441 | "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", 3442 | "dev": true 3443 | }, 3444 | "package-hash": { 3445 | "version": "2.0.0", 3446 | "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-2.0.0.tgz", 3447 | "integrity": "sha1-eK4ybIngWk2BO2hgGXevBcANKg0=", 3448 | "dev": true, 3449 | "requires": { 3450 | "graceful-fs": "4.1.11", 3451 | "lodash.flattendeep": "4.4.0", 3452 | "md5-hex": "2.0.0", 3453 | "release-zalgo": "1.0.0" 3454 | } 3455 | }, 3456 | "package-json": { 3457 | "version": "4.0.1", 3458 | "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", 3459 | "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", 3460 | "dev": true, 3461 | "requires": { 3462 | "got": "6.7.1", 3463 | "registry-auth-token": "3.3.2", 3464 | "registry-url": "3.1.0", 3465 | "semver": "5.5.0" 3466 | } 3467 | }, 3468 | "parse-glob": { 3469 | "version": "3.0.4", 3470 | "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", 3471 | "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", 3472 | "dev": true, 3473 | "requires": { 3474 | "glob-base": "0.3.0", 3475 | "is-dotfile": "1.0.3", 3476 | "is-extglob": "1.0.0", 3477 | "is-glob": "2.0.1" 3478 | } 3479 | }, 3480 | "parse-json": { 3481 | "version": "2.2.0", 3482 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", 3483 | "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", 3484 | "dev": true, 3485 | "requires": { 3486 | "error-ex": "1.3.1" 3487 | } 3488 | }, 3489 | "parse-ms": { 3490 | "version": "0.1.2", 3491 | "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-0.1.2.tgz", 3492 | "integrity": "sha1-3T+iXtbC78e93hKtm0bBY6opIk4=", 3493 | "dev": true 3494 | }, 3495 | "path-exists": { 3496 | "version": "3.0.0", 3497 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", 3498 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", 3499 | "dev": true 3500 | }, 3501 | "path-is-absolute": { 3502 | "version": "1.0.1", 3503 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 3504 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 3505 | "dev": true 3506 | }, 3507 | "path-is-inside": { 3508 | "version": "1.0.2", 3509 | "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", 3510 | "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", 3511 | "dev": true 3512 | }, 3513 | "path-key": { 3514 | "version": "2.0.1", 3515 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", 3516 | "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", 3517 | "dev": true 3518 | }, 3519 | "path-type": { 3520 | "version": "2.0.0", 3521 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", 3522 | "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", 3523 | "dev": true, 3524 | "requires": { 3525 | "pify": "2.3.0" 3526 | } 3527 | }, 3528 | "pify": { 3529 | "version": "2.3.0", 3530 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 3531 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", 3532 | "dev": true 3533 | }, 3534 | "pinkie": { 3535 | "version": "1.0.0", 3536 | "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-1.0.0.tgz", 3537 | "integrity": "sha1-Wkfyi6EBXQIBvae/DzWOR77Ix+Q=", 3538 | "dev": true 3539 | }, 3540 | "pinkie-promise": { 3541 | "version": "1.0.0", 3542 | "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-1.0.0.tgz", 3543 | "integrity": "sha1-0dpn9UglY7t89X8oauKCLs+/NnA=", 3544 | "dev": true, 3545 | "requires": { 3546 | "pinkie": "1.0.0" 3547 | } 3548 | }, 3549 | "pkg-conf": { 3550 | "version": "2.1.0", 3551 | "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", 3552 | "integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=", 3553 | "dev": true, 3554 | "requires": { 3555 | "find-up": "2.1.0", 3556 | "load-json-file": "4.0.0" 3557 | }, 3558 | "dependencies": { 3559 | "load-json-file": { 3560 | "version": "4.0.0", 3561 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", 3562 | "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", 3563 | "dev": true, 3564 | "requires": { 3565 | "graceful-fs": "4.1.11", 3566 | "parse-json": "4.0.0", 3567 | "pify": "3.0.0", 3568 | "strip-bom": "3.0.0" 3569 | } 3570 | }, 3571 | "parse-json": { 3572 | "version": "4.0.0", 3573 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", 3574 | "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", 3575 | "dev": true, 3576 | "requires": { 3577 | "error-ex": "1.3.1", 3578 | "json-parse-better-errors": "1.0.2" 3579 | } 3580 | }, 3581 | "pify": { 3582 | "version": "3.0.0", 3583 | "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", 3584 | "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", 3585 | "dev": true 3586 | } 3587 | } 3588 | }, 3589 | "pkg-dir": { 3590 | "version": "2.0.0", 3591 | "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", 3592 | "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", 3593 | "dev": true, 3594 | "requires": { 3595 | "find-up": "2.1.0" 3596 | } 3597 | }, 3598 | "plur": { 3599 | "version": "2.1.2", 3600 | "resolved": "https://registry.npmjs.org/plur/-/plur-2.1.2.tgz", 3601 | "integrity": "sha1-dIJFLBoPUI4+NE6uwxLJHCncZVo=", 3602 | "dev": true, 3603 | "requires": { 3604 | "irregular-plurals": "1.4.0" 3605 | } 3606 | }, 3607 | "prepend-http": { 3608 | "version": "1.0.4", 3609 | "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", 3610 | "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", 3611 | "dev": true 3612 | }, 3613 | "preserve": { 3614 | "version": "0.2.0", 3615 | "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", 3616 | "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", 3617 | "dev": true 3618 | }, 3619 | "pretty-ms": { 3620 | "version": "3.1.0", 3621 | "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-3.1.0.tgz", 3622 | "integrity": "sha1-6crJx2v27lL+lC3ZxsQhMVOxKIE=", 3623 | "dev": true, 3624 | "requires": { 3625 | "parse-ms": "1.0.1", 3626 | "plur": "2.1.2" 3627 | }, 3628 | "dependencies": { 3629 | "parse-ms": { 3630 | "version": "1.0.1", 3631 | "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-1.0.1.tgz", 3632 | "integrity": "sha1-VjRtR0nXjyNDDKDHE4UK75GqNh0=", 3633 | "dev": true 3634 | } 3635 | } 3636 | }, 3637 | "private": { 3638 | "version": "0.1.8", 3639 | "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", 3640 | "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", 3641 | "dev": true 3642 | }, 3643 | "process-nextick-args": { 3644 | "version": "2.0.0", 3645 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", 3646 | "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", 3647 | "dev": true 3648 | }, 3649 | "pseudomap": { 3650 | "version": "1.0.2", 3651 | "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", 3652 | "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", 3653 | "dev": true 3654 | }, 3655 | "randomatic": { 3656 | "version": "1.1.7", 3657 | "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", 3658 | "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", 3659 | "dev": true, 3660 | "requires": { 3661 | "is-number": "3.0.0", 3662 | "kind-of": "4.0.0" 3663 | }, 3664 | "dependencies": { 3665 | "is-number": { 3666 | "version": "3.0.0", 3667 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", 3668 | "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", 3669 | "dev": true, 3670 | "requires": { 3671 | "kind-of": "3.2.2" 3672 | }, 3673 | "dependencies": { 3674 | "kind-of": { 3675 | "version": "3.2.2", 3676 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 3677 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 3678 | "dev": true, 3679 | "requires": { 3680 | "is-buffer": "1.1.6" 3681 | } 3682 | } 3683 | } 3684 | }, 3685 | "kind-of": { 3686 | "version": "4.0.0", 3687 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", 3688 | "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", 3689 | "dev": true, 3690 | "requires": { 3691 | "is-buffer": "1.1.6" 3692 | } 3693 | } 3694 | } 3695 | }, 3696 | "rc": { 3697 | "version": "1.2.6", 3698 | "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.6.tgz", 3699 | "integrity": "sha1-6xiYnG1PTxYsOZ953dKfODVWgJI=", 3700 | "dev": true, 3701 | "requires": { 3702 | "deep-extend": "0.4.2", 3703 | "ini": "1.3.5", 3704 | "minimist": "1.2.0", 3705 | "strip-json-comments": "2.0.1" 3706 | }, 3707 | "dependencies": { 3708 | "minimist": { 3709 | "version": "1.2.0", 3710 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", 3711 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", 3712 | "dev": true 3713 | } 3714 | } 3715 | }, 3716 | "read-pkg": { 3717 | "version": "2.0.0", 3718 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", 3719 | "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", 3720 | "dev": true, 3721 | "requires": { 3722 | "load-json-file": "2.0.0", 3723 | "normalize-package-data": "2.4.0", 3724 | "path-type": "2.0.0" 3725 | } 3726 | }, 3727 | "read-pkg-up": { 3728 | "version": "2.0.0", 3729 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", 3730 | "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", 3731 | "dev": true, 3732 | "requires": { 3733 | "find-up": "2.1.0", 3734 | "read-pkg": "2.0.0" 3735 | } 3736 | }, 3737 | "readable-stream": { 3738 | "version": "2.3.6", 3739 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", 3740 | "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", 3741 | "dev": true, 3742 | "requires": { 3743 | "core-util-is": "1.0.2", 3744 | "inherits": "2.0.3", 3745 | "isarray": "1.0.0", 3746 | "process-nextick-args": "2.0.0", 3747 | "safe-buffer": "5.1.1", 3748 | "string_decoder": "1.1.1", 3749 | "util-deprecate": "1.0.2" 3750 | } 3751 | }, 3752 | "readdirp": { 3753 | "version": "2.1.0", 3754 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", 3755 | "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", 3756 | "dev": true, 3757 | "requires": { 3758 | "graceful-fs": "4.1.11", 3759 | "minimatch": "3.0.4", 3760 | "readable-stream": "2.3.6", 3761 | "set-immediate-shim": "1.0.1" 3762 | } 3763 | }, 3764 | "redent": { 3765 | "version": "1.0.0", 3766 | "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", 3767 | "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", 3768 | "dev": true, 3769 | "requires": { 3770 | "indent-string": "2.1.0", 3771 | "strip-indent": "1.0.1" 3772 | }, 3773 | "dependencies": { 3774 | "indent-string": { 3775 | "version": "2.1.0", 3776 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", 3777 | "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", 3778 | "dev": true, 3779 | "requires": { 3780 | "repeating": "2.0.1" 3781 | } 3782 | } 3783 | } 3784 | }, 3785 | "regenerate": { 3786 | "version": "1.3.3", 3787 | "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz", 3788 | "integrity": "sha512-jVpo1GadrDAK59t/0jRx5VxYWQEDkkEKi6+HjE3joFVLfDOh9Xrdh0dF1eSq+BI/SwvTQ44gSscJ8N5zYL61sg==", 3789 | "dev": true 3790 | }, 3791 | "regenerator-runtime": { 3792 | "version": "0.11.1", 3793 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", 3794 | "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", 3795 | "dev": true 3796 | }, 3797 | "regex-cache": { 3798 | "version": "0.4.4", 3799 | "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", 3800 | "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", 3801 | "dev": true, 3802 | "requires": { 3803 | "is-equal-shallow": "0.1.3" 3804 | } 3805 | }, 3806 | "regexpu-core": { 3807 | "version": "2.0.0", 3808 | "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", 3809 | "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", 3810 | "dev": true, 3811 | "requires": { 3812 | "regenerate": "1.3.3", 3813 | "regjsgen": "0.2.0", 3814 | "regjsparser": "0.1.5" 3815 | } 3816 | }, 3817 | "registry-auth-token": { 3818 | "version": "3.3.2", 3819 | "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", 3820 | "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", 3821 | "dev": true, 3822 | "requires": { 3823 | "rc": "1.2.6", 3824 | "safe-buffer": "5.1.1" 3825 | } 3826 | }, 3827 | "registry-url": { 3828 | "version": "3.1.0", 3829 | "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", 3830 | "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", 3831 | "dev": true, 3832 | "requires": { 3833 | "rc": "1.2.6" 3834 | } 3835 | }, 3836 | "regjsgen": { 3837 | "version": "0.2.0", 3838 | "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", 3839 | "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", 3840 | "dev": true 3841 | }, 3842 | "regjsparser": { 3843 | "version": "0.1.5", 3844 | "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", 3845 | "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", 3846 | "dev": true, 3847 | "requires": { 3848 | "jsesc": "0.5.0" 3849 | } 3850 | }, 3851 | "release-zalgo": { 3852 | "version": "1.0.0", 3853 | "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", 3854 | "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", 3855 | "dev": true, 3856 | "requires": { 3857 | "es6-error": "4.1.1" 3858 | } 3859 | }, 3860 | "remove-trailing-separator": { 3861 | "version": "1.1.0", 3862 | "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", 3863 | "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", 3864 | "dev": true 3865 | }, 3866 | "repeat-element": { 3867 | "version": "1.1.2", 3868 | "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", 3869 | "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", 3870 | "dev": true 3871 | }, 3872 | "repeat-string": { 3873 | "version": "1.6.1", 3874 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", 3875 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", 3876 | "dev": true 3877 | }, 3878 | "repeating": { 3879 | "version": "2.0.1", 3880 | "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", 3881 | "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", 3882 | "dev": true, 3883 | "requires": { 3884 | "is-finite": "1.0.2" 3885 | } 3886 | }, 3887 | "require-precompiled": { 3888 | "version": "0.1.0", 3889 | "resolved": "https://registry.npmjs.org/require-precompiled/-/require-precompiled-0.1.0.tgz", 3890 | "integrity": "sha1-WhtS63Dr7UPrmC6XTIWrWVceVvo=", 3891 | "dev": true 3892 | }, 3893 | "resolve-cwd": { 3894 | "version": "2.0.0", 3895 | "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", 3896 | "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", 3897 | "dev": true, 3898 | "requires": { 3899 | "resolve-from": "3.0.0" 3900 | } 3901 | }, 3902 | "resolve-from": { 3903 | "version": "3.0.0", 3904 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", 3905 | "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", 3906 | "dev": true 3907 | }, 3908 | "restore-cursor": { 3909 | "version": "2.0.0", 3910 | "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", 3911 | "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", 3912 | "dev": true, 3913 | "requires": { 3914 | "onetime": "2.0.1", 3915 | "signal-exit": "3.0.2" 3916 | } 3917 | }, 3918 | "safe-buffer": { 3919 | "version": "5.1.1", 3920 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", 3921 | "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", 3922 | "dev": true 3923 | }, 3924 | "semver": { 3925 | "version": "5.5.0", 3926 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", 3927 | "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", 3928 | "dev": true 3929 | }, 3930 | "semver-diff": { 3931 | "version": "2.1.0", 3932 | "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", 3933 | "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", 3934 | "dev": true, 3935 | "requires": { 3936 | "semver": "5.5.0" 3937 | } 3938 | }, 3939 | "serialize-error": { 3940 | "version": "2.1.0", 3941 | "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz", 3942 | "integrity": "sha1-ULZ51WNc34Rme9yOWa9OW4HV9go=", 3943 | "dev": true 3944 | }, 3945 | "set-immediate-shim": { 3946 | "version": "1.0.1", 3947 | "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", 3948 | "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", 3949 | "dev": true 3950 | }, 3951 | "shebang-command": { 3952 | "version": "1.2.0", 3953 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", 3954 | "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", 3955 | "dev": true, 3956 | "requires": { 3957 | "shebang-regex": "1.0.0" 3958 | } 3959 | }, 3960 | "shebang-regex": { 3961 | "version": "1.0.0", 3962 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", 3963 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", 3964 | "dev": true 3965 | }, 3966 | "signal-exit": { 3967 | "version": "3.0.2", 3968 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", 3969 | "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", 3970 | "dev": true 3971 | }, 3972 | "slash": { 3973 | "version": "1.0.0", 3974 | "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", 3975 | "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", 3976 | "dev": true 3977 | }, 3978 | "slice-ansi": { 3979 | "version": "1.0.0", 3980 | "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", 3981 | "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", 3982 | "dev": true, 3983 | "requires": { 3984 | "is-fullwidth-code-point": "2.0.0" 3985 | } 3986 | }, 3987 | "slide": { 3988 | "version": "1.1.6", 3989 | "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", 3990 | "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", 3991 | "dev": true 3992 | }, 3993 | "sort-keys": { 3994 | "version": "2.0.0", 3995 | "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", 3996 | "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", 3997 | "dev": true, 3998 | "requires": { 3999 | "is-plain-obj": "1.1.0" 4000 | } 4001 | }, 4002 | "source-map": { 4003 | "version": "0.5.7", 4004 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 4005 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", 4006 | "dev": true 4007 | }, 4008 | "source-map-support": { 4009 | "version": "0.5.4", 4010 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.4.tgz", 4011 | "integrity": "sha512-PETSPG6BjY1AHs2t64vS2aqAgu6dMIMXJULWFBGbh2Gr8nVLbCFDo6i/RMMvviIQ2h1Z8+5gQhVKSn2je9nmdg==", 4012 | "dev": true, 4013 | "requires": { 4014 | "source-map": "0.6.1" 4015 | }, 4016 | "dependencies": { 4017 | "source-map": { 4018 | "version": "0.6.1", 4019 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 4020 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 4021 | "dev": true 4022 | } 4023 | } 4024 | }, 4025 | "spdx-correct": { 4026 | "version": "3.0.0", 4027 | "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", 4028 | "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", 4029 | "dev": true, 4030 | "requires": { 4031 | "spdx-expression-parse": "3.0.0", 4032 | "spdx-license-ids": "3.0.0" 4033 | } 4034 | }, 4035 | "spdx-exceptions": { 4036 | "version": "2.1.0", 4037 | "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", 4038 | "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", 4039 | "dev": true 4040 | }, 4041 | "spdx-expression-parse": { 4042 | "version": "3.0.0", 4043 | "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", 4044 | "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", 4045 | "dev": true, 4046 | "requires": { 4047 | "spdx-exceptions": "2.1.0", 4048 | "spdx-license-ids": "3.0.0" 4049 | } 4050 | }, 4051 | "spdx-license-ids": { 4052 | "version": "3.0.0", 4053 | "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", 4054 | "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", 4055 | "dev": true 4056 | }, 4057 | "sprintf-js": { 4058 | "version": "1.0.3", 4059 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", 4060 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", 4061 | "dev": true 4062 | }, 4063 | "stack-utils": { 4064 | "version": "1.0.1", 4065 | "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.1.tgz", 4066 | "integrity": "sha1-1PM6tU6OOHeLDKXP07OvsS22hiA=", 4067 | "dev": true 4068 | }, 4069 | "string-width": { 4070 | "version": "2.1.1", 4071 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", 4072 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", 4073 | "dev": true, 4074 | "requires": { 4075 | "is-fullwidth-code-point": "2.0.0", 4076 | "strip-ansi": "4.0.0" 4077 | } 4078 | }, 4079 | "string_decoder": { 4080 | "version": "1.1.1", 4081 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 4082 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 4083 | "dev": true, 4084 | "requires": { 4085 | "safe-buffer": "5.1.1" 4086 | } 4087 | }, 4088 | "strip-ansi": { 4089 | "version": "4.0.0", 4090 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", 4091 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", 4092 | "dev": true, 4093 | "requires": { 4094 | "ansi-regex": "3.0.0" 4095 | }, 4096 | "dependencies": { 4097 | "ansi-regex": { 4098 | "version": "3.0.0", 4099 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", 4100 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", 4101 | "dev": true 4102 | } 4103 | } 4104 | }, 4105 | "strip-bom": { 4106 | "version": "3.0.0", 4107 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", 4108 | "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", 4109 | "dev": true 4110 | }, 4111 | "strip-bom-buf": { 4112 | "version": "1.0.0", 4113 | "resolved": "https://registry.npmjs.org/strip-bom-buf/-/strip-bom-buf-1.0.0.tgz", 4114 | "integrity": "sha1-HLRar1dTD0yvhsf3UXnSyaUd1XI=", 4115 | "dev": true, 4116 | "requires": { 4117 | "is-utf8": "0.2.1" 4118 | } 4119 | }, 4120 | "strip-eof": { 4121 | "version": "1.0.0", 4122 | "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", 4123 | "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", 4124 | "dev": true 4125 | }, 4126 | "strip-indent": { 4127 | "version": "1.0.1", 4128 | "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", 4129 | "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", 4130 | "dev": true, 4131 | "requires": { 4132 | "get-stdin": "4.0.1" 4133 | } 4134 | }, 4135 | "strip-json-comments": { 4136 | "version": "2.0.1", 4137 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", 4138 | "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", 4139 | "dev": true 4140 | }, 4141 | "supertap": { 4142 | "version": "1.0.0", 4143 | "resolved": "https://registry.npmjs.org/supertap/-/supertap-1.0.0.tgz", 4144 | "integrity": "sha512-HZJ3geIMPgVwKk2VsmO5YHqnnJYl6bV5A9JW2uzqV43WmpgliNEYbuvukfor7URpaqpxuw3CfZ3ONdVbZjCgIA==", 4145 | "dev": true, 4146 | "requires": { 4147 | "arrify": "1.0.1", 4148 | "indent-string": "3.2.0", 4149 | "js-yaml": "3.11.0", 4150 | "serialize-error": "2.1.0", 4151 | "strip-ansi": "4.0.0" 4152 | } 4153 | }, 4154 | "supports-color": { 4155 | "version": "5.4.0", 4156 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", 4157 | "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", 4158 | "dev": true, 4159 | "requires": { 4160 | "has-flag": "3.0.0" 4161 | }, 4162 | "dependencies": { 4163 | "has-flag": { 4164 | "version": "3.0.0", 4165 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 4166 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", 4167 | "dev": true 4168 | } 4169 | } 4170 | }, 4171 | "symbol-observable": { 4172 | "version": "1.2.0", 4173 | "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", 4174 | "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", 4175 | "dev": true 4176 | }, 4177 | "term-size": { 4178 | "version": "1.2.0", 4179 | "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", 4180 | "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", 4181 | "dev": true, 4182 | "requires": { 4183 | "execa": "0.7.0" 4184 | } 4185 | }, 4186 | "text-table": { 4187 | "version": "0.2.0", 4188 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", 4189 | "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", 4190 | "dev": true 4191 | }, 4192 | "through2": { 4193 | "version": "2.0.3", 4194 | "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", 4195 | "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", 4196 | "dev": true, 4197 | "requires": { 4198 | "readable-stream": "2.3.6", 4199 | "xtend": "4.0.1" 4200 | } 4201 | }, 4202 | "time-zone": { 4203 | "version": "1.0.0", 4204 | "resolved": "https://registry.npmjs.org/time-zone/-/time-zone-1.0.0.tgz", 4205 | "integrity": "sha1-mcW/VZWJZq9tBtg73zgA3IL67F0=", 4206 | "dev": true 4207 | }, 4208 | "timed-out": { 4209 | "version": "4.0.1", 4210 | "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", 4211 | "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", 4212 | "dev": true 4213 | }, 4214 | "to-fast-properties": { 4215 | "version": "1.0.3", 4216 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", 4217 | "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", 4218 | "dev": true 4219 | }, 4220 | "trim-newlines": { 4221 | "version": "1.0.0", 4222 | "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", 4223 | "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", 4224 | "dev": true 4225 | }, 4226 | "trim-off-newlines": { 4227 | "version": "1.0.1", 4228 | "resolved": "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz", 4229 | "integrity": "sha1-n5up2e+odkw4dpi8v+sshI8RrbM=", 4230 | "dev": true 4231 | }, 4232 | "trim-right": { 4233 | "version": "1.0.1", 4234 | "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", 4235 | "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", 4236 | "dev": true 4237 | }, 4238 | "typescript": { 4239 | "version": "2.8.1", 4240 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.8.1.tgz", 4241 | "integrity": "sha512-Ao/f6d/4EPLq0YwzsQz8iXflezpTkQzqAyenTiw4kCUGr1uPiFLC3+fZ+gMZz6eeI/qdRUqvC+HxIJzUAzEFdg==", 4242 | "dev": true 4243 | }, 4244 | "uid2": { 4245 | "version": "0.0.3", 4246 | "resolved": "https://registry.npmjs.org/uid2/-/uid2-0.0.3.tgz", 4247 | "integrity": "sha1-SDEm4Rd03y9xuLY53NeZw3YWK4I=", 4248 | "dev": true 4249 | }, 4250 | "unique-string": { 4251 | "version": "1.0.0", 4252 | "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", 4253 | "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", 4254 | "dev": true, 4255 | "requires": { 4256 | "crypto-random-string": "1.0.0" 4257 | } 4258 | }, 4259 | "unique-temp-dir": { 4260 | "version": "1.0.0", 4261 | "resolved": "https://registry.npmjs.org/unique-temp-dir/-/unique-temp-dir-1.0.0.tgz", 4262 | "integrity": "sha1-bc6VsmgcoAPuv7MEpBX5y6vMU4U=", 4263 | "dev": true, 4264 | "requires": { 4265 | "mkdirp": "0.5.1", 4266 | "os-tmpdir": "1.0.2", 4267 | "uid2": "0.0.3" 4268 | } 4269 | }, 4270 | "unzip-response": { 4271 | "version": "2.0.1", 4272 | "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", 4273 | "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", 4274 | "dev": true 4275 | }, 4276 | "update-notifier": { 4277 | "version": "2.5.0", 4278 | "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz", 4279 | "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", 4280 | "dev": true, 4281 | "requires": { 4282 | "boxen": "1.3.0", 4283 | "chalk": "2.4.0", 4284 | "configstore": "3.1.2", 4285 | "import-lazy": "2.1.0", 4286 | "is-ci": "1.1.0", 4287 | "is-installed-globally": "0.1.0", 4288 | "is-npm": "1.0.0", 4289 | "latest-version": "3.1.0", 4290 | "semver-diff": "2.1.0", 4291 | "xdg-basedir": "3.0.0" 4292 | } 4293 | }, 4294 | "url-parse-lax": { 4295 | "version": "1.0.0", 4296 | "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", 4297 | "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", 4298 | "dev": true, 4299 | "requires": { 4300 | "prepend-http": "1.0.4" 4301 | } 4302 | }, 4303 | "util-deprecate": { 4304 | "version": "1.0.2", 4305 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 4306 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", 4307 | "dev": true 4308 | }, 4309 | "validate-npm-package-license": { 4310 | "version": "3.0.3", 4311 | "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", 4312 | "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", 4313 | "dev": true, 4314 | "requires": { 4315 | "spdx-correct": "3.0.0", 4316 | "spdx-expression-parse": "3.0.0" 4317 | } 4318 | }, 4319 | "well-known-symbols": { 4320 | "version": "1.0.0", 4321 | "resolved": "https://registry.npmjs.org/well-known-symbols/-/well-known-symbols-1.0.0.tgz", 4322 | "integrity": "sha1-c8eK6Bp3Jqj6WY4ogIAcixYiVRg=", 4323 | "dev": true 4324 | }, 4325 | "which": { 4326 | "version": "1.3.0", 4327 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", 4328 | "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", 4329 | "dev": true, 4330 | "requires": { 4331 | "isexe": "2.0.0" 4332 | } 4333 | }, 4334 | "widest-line": { 4335 | "version": "2.0.0", 4336 | "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.0.tgz", 4337 | "integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=", 4338 | "dev": true, 4339 | "requires": { 4340 | "string-width": "2.1.1" 4341 | } 4342 | }, 4343 | "wrappy": { 4344 | "version": "1.0.2", 4345 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 4346 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 4347 | "dev": true 4348 | }, 4349 | "write-file-atomic": { 4350 | "version": "2.3.0", 4351 | "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz", 4352 | "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", 4353 | "dev": true, 4354 | "requires": { 4355 | "graceful-fs": "4.1.11", 4356 | "imurmurhash": "0.1.4", 4357 | "signal-exit": "3.0.2" 4358 | } 4359 | }, 4360 | "write-json-file": { 4361 | "version": "2.3.0", 4362 | "resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-2.3.0.tgz", 4363 | "integrity": "sha1-K2TIozAE1UuGmMdtWFp3zrYdoy8=", 4364 | "dev": true, 4365 | "requires": { 4366 | "detect-indent": "5.0.0", 4367 | "graceful-fs": "4.1.11", 4368 | "make-dir": "1.2.0", 4369 | "pify": "3.0.0", 4370 | "sort-keys": "2.0.0", 4371 | "write-file-atomic": "2.3.0" 4372 | }, 4373 | "dependencies": { 4374 | "detect-indent": { 4375 | "version": "5.0.0", 4376 | "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz", 4377 | "integrity": "sha1-OHHMCmoALow+Wzz38zYmRnXwa50=", 4378 | "dev": true 4379 | }, 4380 | "pify": { 4381 | "version": "3.0.0", 4382 | "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", 4383 | "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", 4384 | "dev": true 4385 | } 4386 | } 4387 | }, 4388 | "write-pkg": { 4389 | "version": "3.1.0", 4390 | "resolved": "https://registry.npmjs.org/write-pkg/-/write-pkg-3.1.0.tgz", 4391 | "integrity": "sha1-AwqZlMyZk9JbTnWp8aGSNgcpHOk=", 4392 | "dev": true, 4393 | "requires": { 4394 | "sort-keys": "2.0.0", 4395 | "write-json-file": "2.3.0" 4396 | } 4397 | }, 4398 | "xdg-basedir": { 4399 | "version": "3.0.0", 4400 | "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", 4401 | "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", 4402 | "dev": true 4403 | }, 4404 | "xtend": { 4405 | "version": "4.0.1", 4406 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", 4407 | "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", 4408 | "dev": true 4409 | }, 4410 | "yallist": { 4411 | "version": "2.1.2", 4412 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", 4413 | "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", 4414 | "dev": true 4415 | } 4416 | } 4417 | } 4418 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "typeable", 3 | "version": "2.4.1", 4 | "description": "A library for checking and casting types.", 5 | "main": "./dist/index.js", 6 | "types": "./dist/index.d.ts", 7 | "ava": { 8 | "files": [ 9 | "./tests/*.js" 10 | ], 11 | "concurrency": 4, 12 | "failFast": true 13 | }, 14 | "scripts": { 15 | "clean": "rm -Rf ./dist", 16 | "build": "npm run clean; tsc", 17 | "prepublish": "npm run build", 18 | "test": "npm run build && ava" 19 | }, 20 | "repository": { 21 | "type": "git", 22 | "url": "git+https://github.com/xpepermint/typeablejs.git" 23 | }, 24 | "bugs": { 25 | "url": "https://github.com/xpepermint/typeablejs/issues" 26 | }, 27 | "homepage": "https://github.com/xpepermint/typeablejs#readme", 28 | "keywords": [ 29 | "type", 30 | "types", 31 | "convert", 32 | "converter", 33 | "cast", 34 | "casting", 35 | "string", 36 | "boolean", 37 | "integer", 38 | "number", 39 | "date", 40 | "custom" 41 | ], 42 | "author": "Kristijan Sedlak (Xpepermint)", 43 | "license": "MIT", 44 | "devDependencies": { 45 | "ava": "^0.25.0", 46 | "typescript": "^2.8.1" 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Returns `true` if the provided value is of type `undefined`. 3 | */ 4 | 5 | export function isUndefined (v) { 6 | return typeof v === 'undefined' || v === undefined; 7 | } 8 | 9 | /* 10 | * Returns `true` if the provided value is `null`. 11 | */ 12 | 13 | export function isNull (v) { 14 | return v === null; 15 | } 16 | 17 | /* 18 | * Returns `true` if the provided value represents infinite number. 19 | */ 20 | 21 | export function isInfinite (v) { 22 | return v === Infinity; 23 | } 24 | 25 | /* 26 | * Returns `true` if the `value` is some sort of expected value. 27 | */ 28 | 29 | export function isValue (v) { 30 | return ( 31 | !isUndefined(v) 32 | && !isNull(v) 33 | && !(isNumber(v) && isNaN(v)) 34 | && !isInfinite(v) 35 | ); 36 | } 37 | 38 | /* 39 | * Returns `true` if the `value` is a string value. 40 | */ 41 | 42 | export function isString (v) { 43 | return typeof v === 'string'; 44 | } 45 | 46 | /* 47 | * Returns `true` if the `value` is a boolean value. 48 | */ 49 | 50 | export function isBoolean (v) { 51 | return typeof v === 'boolean'; 52 | } 53 | 54 | /* 55 | * Returns `true` if the `value` is a number. 56 | */ 57 | 58 | export function isNumber (v) { 59 | return typeof v === 'number'; 60 | } 61 | 62 | /* 63 | * Returns `true` if the `value` is an integer number. 64 | */ 65 | 66 | export function isInteger (v) { 67 | return isNumber(v) ? v % 1 === 0 : false; 68 | } 69 | 70 | /* 71 | * Returns `true` if the `value` is a float number. 72 | */ 73 | 74 | export function isFloat (v) { 75 | return ( 76 | isNumber(v) 77 | && isFinite(v) 78 | ); 79 | } 80 | 81 | /* 82 | * Returns `true` if the `value` is a date object. 83 | */ 84 | 85 | export function isDate (v) { 86 | return ( 87 | !isUndefined(v) 88 | && !isNull(v) 89 | && v.constructor === Date 90 | && isInteger(v.getTime()) 91 | ); 92 | } 93 | 94 | /* 95 | * Returns `true` if the `value` is an object (an object with keys). 96 | */ 97 | 98 | export function isObject (v) { 99 | return ( 100 | !isUndefined(v) 101 | && !isNull(v) 102 | && v.constructor === Object 103 | ); 104 | } 105 | 106 | /* 107 | * Returns `true` if the `value` is an array. 108 | */ 109 | 110 | export function isArray (v) { 111 | return Array.isArray(v); 112 | } 113 | 114 | /* 115 | * Returns `true` if the `value` represents an empty value. 116 | */ 117 | 118 | export function isAbsent (v) { 119 | return ( 120 | isUndefined(v) 121 | || isNull(v) 122 | || (isNumber(v) && isNaN(v)) 123 | || isString(v) && v === '' 124 | || isArray(v) && v.length === 0 125 | || isObject(v) && Object.keys(v).length === 0 126 | ); 127 | } 128 | 129 | /* 130 | * Returns `true` if the `value` represents a present value. 131 | */ 132 | 133 | export function isPresent (v) { 134 | return !isAbsent(v); 135 | } 136 | 137 | /* 138 | * Returns `true` if the `value` represents a function. 139 | */ 140 | 141 | export function isFunction (v) { 142 | return typeof v === 'function'; 143 | } 144 | 145 | /* 146 | * Returns `true` if the `value` represents a class object. 147 | */ 148 | 149 | export function isClass (v) { 150 | return isFunction(v); 151 | } 152 | 153 | /* 154 | * Returns `true` if the `value` represents a promise object. 155 | */ 156 | 157 | export function isPromise (v) { 158 | return ( 159 | isPresent(v) 160 | && v.constructor 161 | && v.constructor.name === 'Promise' 162 | ); 163 | } 164 | 165 | /* 166 | * Converts the `value` to a string value. 167 | */ 168 | 169 | export function toString (v) { 170 | if (isString(v)) { 171 | return v; 172 | } 173 | else if (isUndefined(v) || isNull(v)) { 174 | return null; 175 | } 176 | else { 177 | return toString(v.toString()); 178 | } 179 | } 180 | 181 | /* 182 | * Converts the `value` to a boolean value. 183 | */ 184 | 185 | export function toBoolean (v) { 186 | if (isBoolean(v)) { 187 | return v; 188 | } 189 | else if (isUndefined(v) || isNull(v)) { 190 | return null; 191 | } 192 | else { 193 | return ( 194 | parseFloat(v) > 0 195 | || isInfinite(v) 196 | || v === '1' 197 | || v === 'true' 198 | || v === 'yes' 199 | || v === '+' 200 | ); 201 | } 202 | } 203 | 204 | /* 205 | * Converts the `value` to an integer value. 206 | */ 207 | 208 | export function toInteger (v) { 209 | if (isInteger(v)) { 210 | return v; 211 | } 212 | else if (isUndefined(v) || isNull(v)) { 213 | return null; 214 | } 215 | else if (isFloat(v)) { 216 | return parseInt(v); 217 | } 218 | else { 219 | var pv = parseInt(v); 220 | if (isInteger(pv)) { 221 | return pv; 222 | } 223 | else if (toBoolean(v)) { 224 | return 1; 225 | } 226 | else { 227 | return 0; 228 | } 229 | } 230 | } 231 | 232 | /* 233 | * Converts the `value` to a float value. 234 | */ 235 | 236 | export function toFloat (v) { 237 | if (isFloat(v)) { 238 | return v; 239 | } 240 | else if (isUndefined(v) || isNull(v)) { 241 | return null; 242 | } 243 | else { 244 | var pv = parseFloat(v); 245 | if (isFloat(pv)) { 246 | return pv; 247 | } 248 | else if (toBoolean(v)) { 249 | return 1; 250 | } 251 | else { 252 | return 0; 253 | } 254 | } 255 | } 256 | 257 | /* 258 | * Converts the `value` to a number value (alias of toFloat). 259 | */ 260 | 261 | export function toNumber (v) { 262 | return toFloat(v); 263 | } 264 | 265 | /* 266 | * Converts the `value` to a date object. 267 | */ 268 | 269 | export function toDate (v): Date { 270 | var date = isDate(v) ? v : new Date(v); 271 | var time = date.getTime(); 272 | var isValid = ( 273 | isPresent(v) 274 | && isInteger(time) 275 | ); 276 | 277 | return isValid ? date : null; 278 | } 279 | 280 | /* 281 | * Converts the `value` to an array object. 282 | */ 283 | 284 | export function toArray (v): Array { 285 | if (isArray(v)) { 286 | return v; 287 | } 288 | else if (isUndefined(v) || isNull(v)) { 289 | return null; 290 | } 291 | else if (!isValue(v)) { 292 | return []; 293 | } 294 | else { 295 | return [v]; 296 | } 297 | } 298 | 299 | /* 300 | * Converts the `value` to the specified `type`. 301 | */ 302 | 303 | export function cast (value, type) { 304 | if (isUndefined(value) || isNull(value)) { // nullify 305 | return null; 306 | } 307 | 308 | if (isArray(type)) { 309 | return toArray(value).map(i => cast(i, type[0])); 310 | } 311 | else if (isFunction(type)) { 312 | return type(value); 313 | } 314 | else if (isString(type)) { 315 | let converter = { 316 | 'Any': (v) => value, 317 | 'String': toString, 318 | 'Boolean': toBoolean, 319 | 'Integer': toInteger, 320 | 'Float': toFloat, 321 | 'Number': toNumber, 322 | 'Date': toDate 323 | }[type]; 324 | if (converter) { 325 | return converter(value); 326 | } 327 | else { 328 | throw new Error(`Unknown type ${type}`); 329 | } 330 | } 331 | else { 332 | return value; 333 | } 334 | } 335 | -------------------------------------------------------------------------------- /tests/index.js: -------------------------------------------------------------------------------- 1 | import test from 'ava'; 2 | import * as typeable from '../dist'; 3 | 4 | test('isUndefined', (t) => { 5 | t.is(typeable.isUndefined(), true); 6 | t.is(typeable.isUndefined(undefined), true); 7 | t.is(typeable.isUndefined(''), false); 8 | }); 9 | 10 | test('isNull', (t) => { 11 | t.is(typeable.isNull(null), true); 12 | t.is(typeable.isNull(undefined), false); 13 | t.is(typeable.isNull(''), false); 14 | }); 15 | 16 | test('isInfinite', (t) => { 17 | t.is(typeable.isInfinite(Infinity), true); 18 | t.is(typeable.isInfinite(0), false); 19 | t.is(typeable.isInfinite(''), false); 20 | }); 21 | 22 | test('isValue', (t) => { 23 | t.is(typeable.isValue(undefined), false); 24 | t.is(typeable.isValue(null), false); 25 | t.is(typeable.isValue(NaN), false); 26 | t.is(typeable.isValue(Infinity), false); 27 | t.is(typeable.isValue(0), true); 28 | t.is(typeable.isValue(''), true); 29 | t.is(typeable.isValue(new Date()), true); 30 | t.is(typeable.isValue([]), true); 31 | t.is(typeable.isValue({}), true); 32 | }); 33 | 34 | test('isString', (t) => { 35 | t.is(typeable.isString(''), true); 36 | t.is(typeable.isString('foo'), true); 37 | t.is(typeable.isString(null), false); 38 | }); 39 | 40 | test('isBoolean', (t) => { 41 | t.is(typeable.isBoolean(true), true); 42 | t.is(typeable.isBoolean(false), true); 43 | t.is(typeable.isBoolean('true'), false); 44 | }); 45 | 46 | test('isNumber', (t) => { 47 | t.is(typeable.isNumber(0), true); 48 | t.is(typeable.isNumber(100.0), true); 49 | t.is(typeable.isNumber(-100.0), true); 50 | t.is(typeable.isNumber(NaN), true); 51 | t.is(typeable.isNumber(Infinity), true); 52 | t.is(typeable.isNumber(undefined), false); 53 | t.is(typeable.isNumber(null), false); 54 | t.is(typeable.isNumber(''), false); 55 | t.is(typeable.isNumber('100'), false); 56 | }); 57 | 58 | test('isInteger', (t) => { 59 | t.is(typeable.isInteger(0), true); 60 | t.is(typeable.isInteger(10), true); 61 | t.is(typeable.isInteger(-10), true); 62 | t.is(typeable.isInteger(10.1), false); 63 | t.is(typeable.isInteger(Infinity), false); 64 | t.is(typeable.isInteger(NaN), false); 65 | t.is(typeable.isInteger(null), false); 66 | t.is(typeable.isInteger(undefined), false); 67 | }); 68 | 69 | test('isFloat', (t) => { 70 | t.is(typeable.isFloat(0), true); 71 | t.is(typeable.isFloat(-100), true); 72 | t.is(typeable.isFloat(100), true); 73 | t.is(typeable.isFloat(0.1), true); 74 | t.is(typeable.isFloat(-0.1), true); 75 | t.is(typeable.isFloat(Infinity), false); 76 | t.is(typeable.isFloat(NaN), false); 77 | t.is(typeable.isFloat(null), false); 78 | t.is(typeable.isFloat(undefined), false); 79 | }); 80 | 81 | test('isDate', (t) => { 82 | t.is(typeable.isDate(new Date()), true); 83 | t.is(typeable.isDate(new Date('ksjlfjsdfjsd')), false); 84 | t.is(typeable.isDate(null), false); 85 | t.is(typeable.isDate(undefined), false); 86 | t.is(typeable.isDate(NaN), false); 87 | t.is(typeable.isDate(Infinity), false); 88 | t.is(typeable.isDate(0), false); 89 | t.is(typeable.isDate(100), false); 90 | t.is(typeable.isDate(''), false); 91 | }); 92 | 93 | test('isObject', (t) => { 94 | t.is(typeable.isObject({}), true); 95 | t.is(typeable.isObject(Infinity), false); 96 | t.is(typeable.isObject(NaN), false); 97 | t.is(typeable.isObject(null), false); 98 | t.is(typeable.isObject(undefined), false); 99 | t.is(typeable.isObject(0), false); 100 | t.is(typeable.isObject(''), false); 101 | t.is(typeable.isObject(new Date()), false); 102 | }); 103 | 104 | test('isArray', (t) => { 105 | t.is(typeable.isArray([]), true); 106 | t.is(typeable.isArray([1]), true); 107 | t.is(typeable.isArray({}), false); 108 | t.is(typeable.isArray(Infinity), false); 109 | t.is(typeable.isArray(NaN), false); 110 | t.is(typeable.isArray(null), false); 111 | t.is(typeable.isArray(undefined), false); 112 | t.is(typeable.isArray(0), false); 113 | t.is(typeable.isArray(''), false); 114 | }); 115 | 116 | test('isAbsent', (t) => { 117 | t.is(typeable.isAbsent(undefined), true); 118 | t.is(typeable.isAbsent(null), true); 119 | t.is(typeable.isAbsent(NaN), true); 120 | t.is(typeable.isAbsent([]), true); 121 | t.is(typeable.isAbsent({}), true); 122 | t.is(typeable.isAbsent(''), true); 123 | t.is(typeable.isAbsent(0), false); 124 | t.is(typeable.isAbsent(Infinity), false); 125 | t.is(typeable.isAbsent([1]), false); 126 | }); 127 | 128 | test('isPresent', (t) => { 129 | t.is(typeable.isPresent(0), true); 130 | t.is(typeable.isPresent(Infinity), true); 131 | t.is(typeable.isPresent([1]), true); 132 | t.is(typeable.isPresent(undefined), false); 133 | t.is(typeable.isPresent(null), false); 134 | t.is(typeable.isPresent(NaN), false); 135 | t.is(typeable.isPresent([]), false); 136 | t.is(typeable.isPresent({}), false); 137 | t.is(typeable.isPresent(''), false); 138 | }); 139 | 140 | test('isFunction', (t) => { 141 | t.is(typeable.isFunction(undefined), false); 142 | t.is(typeable.isFunction(null), false); 143 | t.is(typeable.isFunction(NaN), false); 144 | t.is(typeable.isFunction(() => {}), true); 145 | t.is(typeable.isFunction(function() {}), true); 146 | t.is(typeable.isPresent(class {}), true); 147 | }); 148 | 149 | test('isClass', (t) => { 150 | t.is(typeable.isFunction(undefined), false); 151 | t.is(typeable.isFunction(null), false); 152 | t.is(typeable.isFunction(NaN), false); 153 | t.is(typeable.isFunction(() => {}), true); 154 | t.is(typeable.isFunction(function() {}), true); 155 | t.is(typeable.isPresent(class {}), true); 156 | }); 157 | 158 | test('isPromise', (t) => { 159 | t.is(typeable.isPromise(undefined), false); 160 | t.is(typeable.isPromise(null), false); 161 | t.is(typeable.isPromise(NaN), false); 162 | t.is(typeable.isPromise(() => {}), false); 163 | t.is(typeable.isPromise(function() {}), false); 164 | t.is(typeable.isPromise(class {}), false); 165 | t.is(typeable.isPromise(Promise.resolve({})), true); 166 | t.is(typeable.isPromise(new Promise((a,b) => {})), true); 167 | }); 168 | 169 | test('toString', (t) => { 170 | t.is(typeable.toString(), null); 171 | t.is(typeable.toString(undefined), null); 172 | t.is(typeable.toString(null), null); 173 | t.is(typeable.toString(''), ''); 174 | t.is(typeable.toString(NaN), 'NaN'); 175 | t.is(typeable.toString(Infinity), 'Infinity'); 176 | t.is(typeable.toString(true), 'true'); 177 | t.is(typeable.toString(100.1), '100.1'); 178 | t.is(typeable.toString([1,2]), '1,2'); 179 | }); 180 | 181 | test('toBoolean', (t) => { 182 | t.is(typeable.toBoolean(), null); 183 | t.is(typeable.toBoolean(undefined), null); 184 | t.is(typeable.toBoolean(null), null); 185 | t.is(typeable.toBoolean(false), false); 186 | t.is(typeable.toBoolean(NaN), false); 187 | t.is(typeable.toBoolean(0), false); 188 | t.is(typeable.toBoolean(-100), false); 189 | t.is(typeable.toBoolean('-'), false); 190 | t.is(typeable.toBoolean('0'), false); 191 | t.is(typeable.toBoolean('-10'), false); 192 | t.is(typeable.toBoolean('false'), false); 193 | t.is(typeable.toBoolean(true), true); 194 | t.is(typeable.toBoolean(1), true); 195 | t.is(typeable.toBoolean(100), true); 196 | t.is(typeable.toBoolean(Infinity), true); 197 | t.is(typeable.toBoolean('+'), true); 198 | t.is(typeable.toBoolean('1'), true); 199 | t.is(typeable.toBoolean('100'), true); 200 | t.is(typeable.toBoolean('true'), true); 201 | t.is(typeable.toBoolean('yes'), true); 202 | }); 203 | 204 | test('toInteger', (t) => { 205 | t.is(typeable.toInteger(), null); 206 | t.is(typeable.toInteger(undefined), null); 207 | t.is(typeable.toInteger(null), null); 208 | t.is(typeable.toInteger(false), 0); 209 | t.is(typeable.toInteger(NaN), 0); 210 | t.is(typeable.toInteger(0), 0); 211 | t.is(typeable.toInteger(-100), -100); 212 | t.is(typeable.toInteger('-100'), -100); 213 | t.is(typeable.toInteger('-100.0'), -100); 214 | t.is(typeable.toInteger('false'), 0); 215 | t.is(typeable.toInteger(Infinity), 1); 216 | t.is(typeable.toInteger('true'), 1); 217 | t.is(typeable.toInteger('yes'), 1); 218 | }); 219 | 220 | test('toFloat', (t) => { 221 | t.is(typeable.toFloat(), null); 222 | t.is(typeable.toFloat(undefined), null); 223 | t.is(typeable.toFloat(null), null); 224 | t.is(typeable.toFloat(false), 0); 225 | t.is(typeable.toFloat(NaN), 0); 226 | t.is(typeable.toFloat(0), 0); 227 | t.is(typeable.toFloat(-100), -100); 228 | t.is(typeable.toFloat('-100'), -100); 229 | t.is(typeable.toFloat('-100.0'), -100); 230 | t.is(typeable.toFloat('-100.99'), -100.99); 231 | t.is(typeable.toFloat('false'), 0); 232 | t.is(typeable.toFloat(Infinity), 1); 233 | t.is(typeable.toFloat('true'), 1); 234 | t.is(typeable.toFloat('yes'), 1); 235 | }); 236 | 237 | test('toNumber', (t) => { 238 | t.is(typeable.toNumber(), null); 239 | t.is(typeable.toNumber(undefined), null); 240 | t.is(typeable.toNumber(null), null); 241 | t.is(typeable.toNumber(false), 0); 242 | t.is(typeable.toNumber(NaN), 0); 243 | t.is(typeable.toNumber(0), 0); 244 | t.is(typeable.toNumber(-100), -100); 245 | t.is(typeable.toNumber('-100'), -100); 246 | t.is(typeable.toNumber('-100.0'), -100); 247 | t.is(typeable.toNumber('-100.99'), -100.99); 248 | t.is(typeable.toNumber('false'), 0); 249 | t.is(typeable.toNumber(Infinity), 1); 250 | t.is(typeable.toNumber('true'), 1); 251 | t.is(typeable.toNumber('yes'), 1); 252 | }); 253 | 254 | test('toDate', (t) => { 255 | let d = new Date(); 256 | t.is(typeable.toDate(d), d); 257 | t.deepEqual(typeable.toDate(100000), new Date(100000)); 258 | t.deepEqual(typeable.toDate('2016-01-02'), new Date('2016-01-02')); 259 | t.is(typeable.toDate(), null); 260 | t.is(typeable.toDate(undefined), null); 261 | t.is(typeable.toDate(null), null); 262 | t.is(typeable.toDate('8sadufsdjfk1231'), null); 263 | }); 264 | 265 | test('toArray', (t) => { 266 | t.deepEqual(typeable.toArray(), null); 267 | t.deepEqual(typeable.toArray(undefined), null); 268 | t.deepEqual(typeable.toArray(null), null); 269 | t.deepEqual(typeable.toArray(NaN), []); 270 | t.deepEqual(typeable.toArray(Infinity), []); 271 | t.deepEqual(typeable.toArray([]), []); 272 | t.deepEqual(typeable.toArray({}), [{}]); 273 | t.deepEqual(typeable.toArray(''), ['']); 274 | t.deepEqual(typeable.toArray(0), [0]); 275 | t.deepEqual(typeable.toArray('john'), ['john']); 276 | }); 277 | 278 | test('cast (Any type)', (t) => { 279 | t.is(typeable.cast(100, 'Any'), 100); 280 | t.is(typeable.cast('100', 'Any'), '100'); 281 | t.deepEqual(typeable.cast(100, ['Any']), [100]); 282 | t.deepEqual(typeable.cast('100', ['Any']), ['100']); 283 | t.deepEqual(typeable.cast(['100', 200], ['Any']), ['100', 200]); 284 | }); 285 | 286 | test('cast (general type)', (t) => { 287 | t.is(typeable.cast(100, 'String'), '100'); 288 | t.is(typeable.cast('true', 'Boolean'), true); 289 | t.is(typeable.cast('10.13', 'Integer'), 10); 290 | t.is(typeable.cast('10.13', 'Float'), 10.13); 291 | t.is(typeable.cast('10.13', 'Number'), 10.13); 292 | 293 | t.deepEqual(typeable.cast(100000, 'Date'), new Date(100000)); 294 | t.deepEqual(typeable.cast('john', ['Any']), ['john']); 295 | t.deepEqual(typeable.cast(100, ['String']), ['100']); 296 | t.deepEqual(typeable.cast([100], ['String']), ['100']); 297 | t.deepEqual(typeable.cast('true', ['Boolean']), [true]); 298 | t.deepEqual(typeable.cast(['true'], ['Boolean']), [true]); 299 | t.deepEqual(typeable.cast('10.13', ['Integer']), [10]); 300 | t.deepEqual(typeable.cast(['10.13'], ['Integer']), [10]); 301 | t.deepEqual(typeable.cast('10.13', ['Float']), [10.13]); 302 | t.deepEqual(typeable.cast(['10.13'], ['Float']), [10.13]); 303 | t.deepEqual(typeable.cast('10.13', ['Number']), [10.13]); 304 | t.deepEqual(typeable.cast(['10.13'], ['Number']), [10.13]); 305 | t.deepEqual(typeable.cast(100000, ['Date']), [new Date(100000)]); 306 | t.deepEqual(typeable.cast([100000], ['Date']), [new Date(100000)]); 307 | }); 308 | 309 | test('cast (null type)', (t) => { 310 | t.deepEqual(typeable.cast(100, null), 100); 311 | t.deepEqual(typeable.cast(100, undefined), 100); 312 | }); 313 | 314 | test('cast (custom type)', (t) => { 315 | t.deepEqual(typeable.cast('foo', (v) => `${v}-bar`), 'foo-bar'); 316 | t.deepEqual(typeable.cast('foo', [(v) => `${v}-bar`]), ['foo-bar']); 317 | t.deepEqual(typeable.cast(['foo0', 'foo1'], [(v) => `${v}-bar`]), ['foo0-bar', 'foo1-bar']); 318 | t.throws(() => { typeable.cast({ my: 'object' }, 'object') }, 'Unknown type object'); 319 | }); 320 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "module": "commonjs", 4 | "target": "es3", 5 | "noImplicitAny": false, 6 | "sourceMap": false, 7 | "outDir": "dist", 8 | "declaration": true 9 | } 10 | } 11 | --------------------------------------------------------------------------------