├── .gitignore ├── LICENSE ├── README.md ├── package-lock.json ├── package.json ├── src ├── __tests__ │ └── formatMoney.spec.ts ├── formatMoney.ts └── string │ ├── __tests__ │ ├── format.spec.ts │ └── reverse.spec.ts │ ├── format.ts │ ├── match.ts │ └── reverse.ts ├── test-preprocessor.js └── tsconfig.json /.gitignore: -------------------------------------------------------------------------------- 1 | .vscode/ 2 | node_modules/ 3 | target/ 4 | *.log -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Mateusz Sokola 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Function Composition in Typescript 2 | 3 | The example of function composition in Typescript with Lodash. 4 | 5 | ## How to run 6 | ``` 7 | npm i 8 | npm test 9 | ``` -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "function-composition-typescript", 3 | "version": "1.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@types/jest": { 8 | "version": "21.1.5", 9 | "resolved": "https://registry.npmjs.org/@types/jest/-/jest-21.1.5.tgz", 10 | "integrity": "sha512-HwBIPK96DROvcB4EX5mA7L2nzhZ3sh8AcDSFODB4eG43S3q3d0+oo356J51qCxw9Bbn7G1DOmBmrw6vf+WiGTg==", 11 | "dev": true 12 | }, 13 | "@types/lodash": { 14 | "version": "4.14.80", 15 | "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.80.tgz", 16 | "integrity": "sha512-FumgRtCaxilKUcgMnZCzH6K3gntIwLiLLIaR+UBGNZpT/N3ne2dKrDSGoGIxSHYpAjnq6kIVV0r51U+kLXX59A==" 17 | }, 18 | "abab": { 19 | "version": "1.0.4", 20 | "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz", 21 | "integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4=", 22 | "dev": true 23 | }, 24 | "acorn": { 25 | "version": "4.0.13", 26 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", 27 | "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", 28 | "dev": true 29 | }, 30 | "acorn-globals": { 31 | "version": "3.1.0", 32 | "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz", 33 | "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=", 34 | "dev": true, 35 | "requires": { 36 | "acorn": "4.0.13" 37 | } 38 | }, 39 | "ajv": { 40 | "version": "5.3.0", 41 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.3.0.tgz", 42 | "integrity": "sha1-RBT/dKUIecII7l/cgm4ywwNUnto=", 43 | "dev": true, 44 | "requires": { 45 | "co": "4.6.0", 46 | "fast-deep-equal": "1.0.0", 47 | "fast-json-stable-stringify": "2.0.0", 48 | "json-schema-traverse": "0.3.1" 49 | } 50 | }, 51 | "align-text": { 52 | "version": "0.1.4", 53 | "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", 54 | "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", 55 | "dev": true, 56 | "requires": { 57 | "kind-of": "3.2.2", 58 | "longest": "1.0.1", 59 | "repeat-string": "1.6.1" 60 | } 61 | }, 62 | "amdefine": { 63 | "version": "1.0.1", 64 | "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", 65 | "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", 66 | "dev": true 67 | }, 68 | "ansi-escapes": { 69 | "version": "3.0.0", 70 | "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.0.0.tgz", 71 | "integrity": "sha512-O/klc27mWNUigtv0F8NJWbLF00OcegQalkqKURWdosW08YZKi4m6CnSUSvIZG1otNJbTWhN01Hhz389DW7mvDQ==", 72 | "dev": true 73 | }, 74 | "ansi-regex": { 75 | "version": "2.1.1", 76 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", 77 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", 78 | "dev": true 79 | }, 80 | "ansi-styles": { 81 | "version": "3.2.0", 82 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", 83 | "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", 84 | "dev": true, 85 | "requires": { 86 | "color-convert": "1.9.0" 87 | } 88 | }, 89 | "anymatch": { 90 | "version": "1.3.2", 91 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", 92 | "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", 93 | "dev": true, 94 | "requires": { 95 | "micromatch": "2.3.11", 96 | "normalize-path": "2.1.1" 97 | } 98 | }, 99 | "append-transform": { 100 | "version": "0.4.0", 101 | "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", 102 | "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", 103 | "dev": true, 104 | "requires": { 105 | "default-require-extensions": "1.0.0" 106 | } 107 | }, 108 | "argparse": { 109 | "version": "1.0.9", 110 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", 111 | "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", 112 | "dev": true, 113 | "requires": { 114 | "sprintf-js": "1.0.3" 115 | } 116 | }, 117 | "arr-diff": { 118 | "version": "2.0.0", 119 | "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", 120 | "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", 121 | "dev": true, 122 | "requires": { 123 | "arr-flatten": "1.1.0" 124 | } 125 | }, 126 | "arr-flatten": { 127 | "version": "1.1.0", 128 | "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", 129 | "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", 130 | "dev": true 131 | }, 132 | "array-equal": { 133 | "version": "1.0.0", 134 | "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", 135 | "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", 136 | "dev": true 137 | }, 138 | "array-unique": { 139 | "version": "0.2.1", 140 | "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", 141 | "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", 142 | "dev": true 143 | }, 144 | "arrify": { 145 | "version": "1.0.1", 146 | "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", 147 | "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", 148 | "dev": true 149 | }, 150 | "asn1": { 151 | "version": "0.2.3", 152 | "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", 153 | "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", 154 | "dev": true 155 | }, 156 | "assert-plus": { 157 | "version": "1.0.0", 158 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 159 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", 160 | "dev": true 161 | }, 162 | "astral-regex": { 163 | "version": "1.0.0", 164 | "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", 165 | "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", 166 | "dev": true 167 | }, 168 | "async": { 169 | "version": "2.5.0", 170 | "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", 171 | "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==", 172 | "dev": true, 173 | "requires": { 174 | "lodash": "4.17.4" 175 | } 176 | }, 177 | "asynckit": { 178 | "version": "0.4.0", 179 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 180 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", 181 | "dev": true 182 | }, 183 | "aws-sign2": { 184 | "version": "0.7.0", 185 | "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", 186 | "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", 187 | "dev": true 188 | }, 189 | "aws4": { 190 | "version": "1.6.0", 191 | "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", 192 | "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", 193 | "dev": true 194 | }, 195 | "babel-code-frame": { 196 | "version": "6.26.0", 197 | "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", 198 | "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", 199 | "dev": true, 200 | "requires": { 201 | "chalk": "1.1.3", 202 | "esutils": "2.0.2", 203 | "js-tokens": "3.0.2" 204 | }, 205 | "dependencies": { 206 | "ansi-styles": { 207 | "version": "2.2.1", 208 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", 209 | "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", 210 | "dev": true 211 | }, 212 | "chalk": { 213 | "version": "1.1.3", 214 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", 215 | "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", 216 | "dev": true, 217 | "requires": { 218 | "ansi-styles": "2.2.1", 219 | "escape-string-regexp": "1.0.5", 220 | "has-ansi": "2.0.0", 221 | "strip-ansi": "3.0.1", 222 | "supports-color": "2.0.0" 223 | } 224 | }, 225 | "strip-ansi": { 226 | "version": "3.0.1", 227 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", 228 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 229 | "dev": true, 230 | "requires": { 231 | "ansi-regex": "2.1.1" 232 | } 233 | }, 234 | "supports-color": { 235 | "version": "2.0.0", 236 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", 237 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", 238 | "dev": true 239 | } 240 | } 241 | }, 242 | "babel-core": { 243 | "version": "6.26.0", 244 | "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz", 245 | "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", 246 | "dev": true, 247 | "requires": { 248 | "babel-code-frame": "6.26.0", 249 | "babel-generator": "6.26.0", 250 | "babel-helpers": "6.24.1", 251 | "babel-messages": "6.23.0", 252 | "babel-register": "6.26.0", 253 | "babel-runtime": "6.26.0", 254 | "babel-template": "6.26.0", 255 | "babel-traverse": "6.26.0", 256 | "babel-types": "6.26.0", 257 | "babylon": "6.18.0", 258 | "convert-source-map": "1.5.0", 259 | "debug": "2.6.9", 260 | "json5": "0.5.1", 261 | "lodash": "4.17.4", 262 | "minimatch": "3.0.4", 263 | "path-is-absolute": "1.0.1", 264 | "private": "0.1.8", 265 | "slash": "1.0.0", 266 | "source-map": "0.5.7" 267 | } 268 | }, 269 | "babel-generator": { 270 | "version": "6.26.0", 271 | "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", 272 | "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", 273 | "dev": true, 274 | "requires": { 275 | "babel-messages": "6.23.0", 276 | "babel-runtime": "6.26.0", 277 | "babel-types": "6.26.0", 278 | "detect-indent": "4.0.0", 279 | "jsesc": "1.3.0", 280 | "lodash": "4.17.4", 281 | "source-map": "0.5.7", 282 | "trim-right": "1.0.1" 283 | } 284 | }, 285 | "babel-helpers": { 286 | "version": "6.24.1", 287 | "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", 288 | "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", 289 | "dev": true, 290 | "requires": { 291 | "babel-runtime": "6.26.0", 292 | "babel-template": "6.26.0" 293 | } 294 | }, 295 | "babel-jest": { 296 | "version": "21.2.0", 297 | "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-21.2.0.tgz", 298 | "integrity": "sha512-O0W2qLoWu1QOoOGgxiR2JID4O6WSpxPiQanrkyi9SSlM0PJ60Ptzlck47lhtnr9YZO3zYOsxHwnyeWJ6AffoBQ==", 299 | "dev": true, 300 | "requires": { 301 | "babel-plugin-istanbul": "4.1.5", 302 | "babel-preset-jest": "21.2.0" 303 | } 304 | }, 305 | "babel-messages": { 306 | "version": "6.23.0", 307 | "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", 308 | "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", 309 | "dev": true, 310 | "requires": { 311 | "babel-runtime": "6.26.0" 312 | } 313 | }, 314 | "babel-plugin-istanbul": { 315 | "version": "4.1.5", 316 | "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.5.tgz", 317 | "integrity": "sha1-Z2DN2Xf0EdPhdbsGTyvDJ9mbK24=", 318 | "dev": true, 319 | "requires": { 320 | "find-up": "2.1.0", 321 | "istanbul-lib-instrument": "1.9.1", 322 | "test-exclude": "4.1.1" 323 | } 324 | }, 325 | "babel-plugin-jest-hoist": { 326 | "version": "21.2.0", 327 | "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-21.2.0.tgz", 328 | "integrity": "sha512-yi5QuiVyyvhBUDLP4ButAnhYzkdrUwWDtvUJv71hjH3fclhnZg4HkDeqaitcR2dZZx/E67kGkRcPVjtVu+SJfQ==", 329 | "dev": true 330 | }, 331 | "babel-plugin-syntax-object-rest-spread": { 332 | "version": "6.13.0", 333 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", 334 | "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=", 335 | "dev": true 336 | }, 337 | "babel-preset-jest": { 338 | "version": "21.2.0", 339 | "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-21.2.0.tgz", 340 | "integrity": "sha512-hm9cBnr2h3J7yXoTtAVV0zg+3vg0Q/gT2GYuzlreTU0EPkJRtlNgKJJ3tBKEn0+VjAi3JykV6xCJkuUYttEEfA==", 341 | "dev": true, 342 | "requires": { 343 | "babel-plugin-jest-hoist": "21.2.0", 344 | "babel-plugin-syntax-object-rest-spread": "6.13.0" 345 | } 346 | }, 347 | "babel-register": { 348 | "version": "6.26.0", 349 | "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", 350 | "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", 351 | "dev": true, 352 | "requires": { 353 | "babel-core": "6.26.0", 354 | "babel-runtime": "6.26.0", 355 | "core-js": "2.5.1", 356 | "home-or-tmp": "2.0.0", 357 | "lodash": "4.17.4", 358 | "mkdirp": "0.5.1", 359 | "source-map-support": "0.4.18" 360 | } 361 | }, 362 | "babel-runtime": { 363 | "version": "6.26.0", 364 | "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", 365 | "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", 366 | "dev": true, 367 | "requires": { 368 | "core-js": "2.5.1", 369 | "regenerator-runtime": "0.11.0" 370 | } 371 | }, 372 | "babel-template": { 373 | "version": "6.26.0", 374 | "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", 375 | "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", 376 | "dev": true, 377 | "requires": { 378 | "babel-runtime": "6.26.0", 379 | "babel-traverse": "6.26.0", 380 | "babel-types": "6.26.0", 381 | "babylon": "6.18.0", 382 | "lodash": "4.17.4" 383 | } 384 | }, 385 | "babel-traverse": { 386 | "version": "6.26.0", 387 | "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", 388 | "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", 389 | "dev": true, 390 | "requires": { 391 | "babel-code-frame": "6.26.0", 392 | "babel-messages": "6.23.0", 393 | "babel-runtime": "6.26.0", 394 | "babel-types": "6.26.0", 395 | "babylon": "6.18.0", 396 | "debug": "2.6.9", 397 | "globals": "9.18.0", 398 | "invariant": "2.2.2", 399 | "lodash": "4.17.4" 400 | } 401 | }, 402 | "babel-types": { 403 | "version": "6.26.0", 404 | "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", 405 | "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", 406 | "dev": true, 407 | "requires": { 408 | "babel-runtime": "6.26.0", 409 | "esutils": "2.0.2", 410 | "lodash": "4.17.4", 411 | "to-fast-properties": "1.0.3" 412 | } 413 | }, 414 | "babylon": { 415 | "version": "6.18.0", 416 | "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", 417 | "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", 418 | "dev": true 419 | }, 420 | "balanced-match": { 421 | "version": "1.0.0", 422 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 423 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", 424 | "dev": true 425 | }, 426 | "bcrypt-pbkdf": { 427 | "version": "1.0.1", 428 | "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", 429 | "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", 430 | "dev": true, 431 | "optional": true, 432 | "requires": { 433 | "tweetnacl": "0.14.5" 434 | } 435 | }, 436 | "boom": { 437 | "version": "4.3.1", 438 | "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", 439 | "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", 440 | "dev": true, 441 | "requires": { 442 | "hoek": "4.2.0" 443 | } 444 | }, 445 | "brace-expansion": { 446 | "version": "1.1.8", 447 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", 448 | "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", 449 | "dev": true, 450 | "requires": { 451 | "balanced-match": "1.0.0", 452 | "concat-map": "0.0.1" 453 | } 454 | }, 455 | "braces": { 456 | "version": "1.8.5", 457 | "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", 458 | "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", 459 | "dev": true, 460 | "requires": { 461 | "expand-range": "1.8.2", 462 | "preserve": "0.2.0", 463 | "repeat-element": "1.1.2" 464 | } 465 | }, 466 | "browser-resolve": { 467 | "version": "1.11.2", 468 | "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz", 469 | "integrity": "sha1-j/CbCixCFxihBRwmCzLkj0QpOM4=", 470 | "dev": true, 471 | "requires": { 472 | "resolve": "1.1.7" 473 | } 474 | }, 475 | "bser": { 476 | "version": "2.0.0", 477 | "resolved": "https://registry.npmjs.org/bser/-/bser-2.0.0.tgz", 478 | "integrity": "sha1-mseNPtXZFYBP2HrLFYvHlxR6Fxk=", 479 | "dev": true, 480 | "requires": { 481 | "node-int64": "0.4.0" 482 | } 483 | }, 484 | "builtin-modules": { 485 | "version": "1.1.1", 486 | "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", 487 | "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", 488 | "dev": true 489 | }, 490 | "callsites": { 491 | "version": "2.0.0", 492 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", 493 | "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", 494 | "dev": true 495 | }, 496 | "camelcase": { 497 | "version": "1.2.1", 498 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", 499 | "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", 500 | "dev": true, 501 | "optional": true 502 | }, 503 | "caseless": { 504 | "version": "0.12.0", 505 | "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", 506 | "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", 507 | "dev": true 508 | }, 509 | "center-align": { 510 | "version": "0.1.3", 511 | "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", 512 | "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", 513 | "dev": true, 514 | "optional": true, 515 | "requires": { 516 | "align-text": "0.1.4", 517 | "lazy-cache": "1.0.4" 518 | } 519 | }, 520 | "chalk": { 521 | "version": "2.3.0", 522 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", 523 | "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", 524 | "dev": true, 525 | "requires": { 526 | "ansi-styles": "3.2.0", 527 | "escape-string-regexp": "1.0.5", 528 | "supports-color": "4.5.0" 529 | } 530 | }, 531 | "ci-info": { 532 | "version": "1.1.1", 533 | "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.1.tgz", 534 | "integrity": "sha512-vHDDF/bP9RYpTWtUhpJRhCFdvvp3iDWvEbuDbWgvjUrNGV1MXJrE0MPcwGtEled04m61iwdBLUIHZtDgzWS4ZQ==", 535 | "dev": true 536 | }, 537 | "cliui": { 538 | "version": "2.1.0", 539 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", 540 | "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", 541 | "dev": true, 542 | "optional": true, 543 | "requires": { 544 | "center-align": "0.1.3", 545 | "right-align": "0.1.3", 546 | "wordwrap": "0.0.2" 547 | }, 548 | "dependencies": { 549 | "wordwrap": { 550 | "version": "0.0.2", 551 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", 552 | "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", 553 | "dev": true, 554 | "optional": true 555 | } 556 | } 557 | }, 558 | "co": { 559 | "version": "4.6.0", 560 | "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", 561 | "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", 562 | "dev": true 563 | }, 564 | "code-point-at": { 565 | "version": "1.1.0", 566 | "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", 567 | "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", 568 | "dev": true 569 | }, 570 | "color-convert": { 571 | "version": "1.9.0", 572 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz", 573 | "integrity": "sha1-Gsz5fdc5uYO/mU1W/sj5WFNkG3o=", 574 | "dev": true, 575 | "requires": { 576 | "color-name": "1.1.3" 577 | } 578 | }, 579 | "color-name": { 580 | "version": "1.1.3", 581 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 582 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", 583 | "dev": true 584 | }, 585 | "combined-stream": { 586 | "version": "1.0.5", 587 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", 588 | "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", 589 | "dev": true, 590 | "requires": { 591 | "delayed-stream": "1.0.0" 592 | } 593 | }, 594 | "concat-map": { 595 | "version": "0.0.1", 596 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 597 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 598 | "dev": true 599 | }, 600 | "content-type-parser": { 601 | "version": "1.0.2", 602 | "resolved": "https://registry.npmjs.org/content-type-parser/-/content-type-parser-1.0.2.tgz", 603 | "integrity": "sha512-lM4l4CnMEwOLHAHr/P6MEZwZFPJFtAAKgL6pogbXmVZggIqXhdB6RbBtPOTsw2FcXwYhehRGERJmRrjOiIB8pQ==", 604 | "dev": true 605 | }, 606 | "convert-source-map": { 607 | "version": "1.5.0", 608 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz", 609 | "integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU=", 610 | "dev": true 611 | }, 612 | "core-js": { 613 | "version": "2.5.1", 614 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", 615 | "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", 616 | "dev": true 617 | }, 618 | "core-util-is": { 619 | "version": "1.0.2", 620 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 621 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", 622 | "dev": true 623 | }, 624 | "cross-spawn": { 625 | "version": "5.1.0", 626 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", 627 | "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", 628 | "dev": true, 629 | "requires": { 630 | "lru-cache": "4.1.1", 631 | "shebang-command": "1.2.0", 632 | "which": "1.3.0" 633 | } 634 | }, 635 | "cryptiles": { 636 | "version": "3.1.2", 637 | "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", 638 | "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", 639 | "dev": true, 640 | "requires": { 641 | "boom": "5.2.0" 642 | }, 643 | "dependencies": { 644 | "boom": { 645 | "version": "5.2.0", 646 | "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", 647 | "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", 648 | "dev": true, 649 | "requires": { 650 | "hoek": "4.2.0" 651 | } 652 | } 653 | } 654 | }, 655 | "cssom": { 656 | "version": "0.3.2", 657 | "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.2.tgz", 658 | "integrity": "sha1-uANhcMefB6kP8vFuIihAJ6JDhIs=", 659 | "dev": true 660 | }, 661 | "cssstyle": { 662 | "version": "0.2.37", 663 | "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz", 664 | "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=", 665 | "dev": true, 666 | "requires": { 667 | "cssom": "0.3.2" 668 | } 669 | }, 670 | "dashdash": { 671 | "version": "1.14.1", 672 | "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", 673 | "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", 674 | "dev": true, 675 | "requires": { 676 | "assert-plus": "1.0.0" 677 | } 678 | }, 679 | "debug": { 680 | "version": "2.6.9", 681 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 682 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 683 | "dev": true, 684 | "requires": { 685 | "ms": "2.0.0" 686 | } 687 | }, 688 | "decamelize": { 689 | "version": "1.2.0", 690 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", 691 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", 692 | "dev": true 693 | }, 694 | "deep-is": { 695 | "version": "0.1.3", 696 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", 697 | "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", 698 | "dev": true 699 | }, 700 | "default-require-extensions": { 701 | "version": "1.0.0", 702 | "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", 703 | "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", 704 | "dev": true, 705 | "requires": { 706 | "strip-bom": "2.0.0" 707 | } 708 | }, 709 | "delayed-stream": { 710 | "version": "1.0.0", 711 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 712 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", 713 | "dev": true 714 | }, 715 | "detect-indent": { 716 | "version": "4.0.0", 717 | "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", 718 | "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", 719 | "dev": true, 720 | "requires": { 721 | "repeating": "2.0.1" 722 | } 723 | }, 724 | "diff": { 725 | "version": "3.4.0", 726 | "resolved": "https://registry.npmjs.org/diff/-/diff-3.4.0.tgz", 727 | "integrity": "sha512-QpVuMTEoJMF7cKzi6bvWhRulU1fZqZnvyVQgNhPaxxuTYwyjn/j1v9falseQ/uXWwPnO56RBfwtg4h/EQXmucA==", 728 | "dev": true 729 | }, 730 | "ecc-jsbn": { 731 | "version": "0.1.1", 732 | "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", 733 | "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", 734 | "dev": true, 735 | "optional": true, 736 | "requires": { 737 | "jsbn": "0.1.1" 738 | } 739 | }, 740 | "errno": { 741 | "version": "0.1.4", 742 | "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", 743 | "integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=", 744 | "dev": true, 745 | "requires": { 746 | "prr": "0.0.0" 747 | } 748 | }, 749 | "error-ex": { 750 | "version": "1.3.1", 751 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", 752 | "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", 753 | "dev": true, 754 | "requires": { 755 | "is-arrayish": "0.2.1" 756 | } 757 | }, 758 | "escape-string-regexp": { 759 | "version": "1.0.5", 760 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 761 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 762 | "dev": true 763 | }, 764 | "escodegen": { 765 | "version": "1.9.0", 766 | "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz", 767 | "integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==", 768 | "dev": true, 769 | "requires": { 770 | "esprima": "3.1.3", 771 | "estraverse": "4.2.0", 772 | "esutils": "2.0.2", 773 | "optionator": "0.8.2", 774 | "source-map": "0.5.7" 775 | }, 776 | "dependencies": { 777 | "esprima": { 778 | "version": "3.1.3", 779 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", 780 | "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", 781 | "dev": true 782 | } 783 | } 784 | }, 785 | "esprima": { 786 | "version": "4.0.0", 787 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", 788 | "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", 789 | "dev": true 790 | }, 791 | "estraverse": { 792 | "version": "4.2.0", 793 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", 794 | "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", 795 | "dev": true 796 | }, 797 | "esutils": { 798 | "version": "2.0.2", 799 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", 800 | "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", 801 | "dev": true 802 | }, 803 | "exec-sh": { 804 | "version": "0.2.1", 805 | "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.1.tgz", 806 | "integrity": "sha512-aLt95pexaugVtQerpmE51+4QfWrNc304uez7jvj6fWnN8GeEHpttB8F36n8N7uVhUMbH/1enbxQ9HImZ4w/9qg==", 807 | "dev": true, 808 | "requires": { 809 | "merge": "1.2.0" 810 | } 811 | }, 812 | "execa": { 813 | "version": "0.7.0", 814 | "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", 815 | "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", 816 | "dev": true, 817 | "requires": { 818 | "cross-spawn": "5.1.0", 819 | "get-stream": "3.0.0", 820 | "is-stream": "1.1.0", 821 | "npm-run-path": "2.0.2", 822 | "p-finally": "1.0.0", 823 | "signal-exit": "3.0.2", 824 | "strip-eof": "1.0.0" 825 | } 826 | }, 827 | "expand-brackets": { 828 | "version": "0.1.5", 829 | "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", 830 | "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", 831 | "dev": true, 832 | "requires": { 833 | "is-posix-bracket": "0.1.1" 834 | } 835 | }, 836 | "expand-range": { 837 | "version": "1.8.2", 838 | "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", 839 | "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", 840 | "dev": true, 841 | "requires": { 842 | "fill-range": "2.2.3" 843 | } 844 | }, 845 | "expect": { 846 | "version": "21.2.1", 847 | "resolved": "https://registry.npmjs.org/expect/-/expect-21.2.1.tgz", 848 | "integrity": "sha512-orfQQqFRTX0jH7znRIGi8ZMR8kTNpXklTTz8+HGTpmTKZo3Occ6JNB5FXMb8cRuiiC/GyDqsr30zUa66ACYlYw==", 849 | "dev": true, 850 | "requires": { 851 | "ansi-styles": "3.2.0", 852 | "jest-diff": "21.2.1", 853 | "jest-get-type": "21.2.0", 854 | "jest-matcher-utils": "21.2.1", 855 | "jest-message-util": "21.2.1", 856 | "jest-regex-util": "21.2.0" 857 | } 858 | }, 859 | "extend": { 860 | "version": "3.0.1", 861 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", 862 | "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", 863 | "dev": true 864 | }, 865 | "extglob": { 866 | "version": "0.3.2", 867 | "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", 868 | "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", 869 | "dev": true, 870 | "requires": { 871 | "is-extglob": "1.0.0" 872 | } 873 | }, 874 | "extsprintf": { 875 | "version": "1.3.0", 876 | "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", 877 | "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", 878 | "dev": true 879 | }, 880 | "fast-deep-equal": { 881 | "version": "1.0.0", 882 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", 883 | "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=", 884 | "dev": true 885 | }, 886 | "fast-json-stable-stringify": { 887 | "version": "2.0.0", 888 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", 889 | "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", 890 | "dev": true 891 | }, 892 | "fast-levenshtein": { 893 | "version": "2.0.6", 894 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 895 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", 896 | "dev": true 897 | }, 898 | "fb-watchman": { 899 | "version": "2.0.0", 900 | "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz", 901 | "integrity": "sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg=", 902 | "dev": true, 903 | "requires": { 904 | "bser": "2.0.0" 905 | } 906 | }, 907 | "filename-regex": { 908 | "version": "2.0.1", 909 | "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", 910 | "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", 911 | "dev": true 912 | }, 913 | "fileset": { 914 | "version": "2.0.3", 915 | "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", 916 | "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", 917 | "dev": true, 918 | "requires": { 919 | "glob": "7.1.2", 920 | "minimatch": "3.0.4" 921 | } 922 | }, 923 | "fill-range": { 924 | "version": "2.2.3", 925 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", 926 | "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", 927 | "dev": true, 928 | "requires": { 929 | "is-number": "2.1.0", 930 | "isobject": "2.1.0", 931 | "randomatic": "1.1.7", 932 | "repeat-element": "1.1.2", 933 | "repeat-string": "1.6.1" 934 | } 935 | }, 936 | "find-up": { 937 | "version": "2.1.0", 938 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", 939 | "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", 940 | "dev": true, 941 | "requires": { 942 | "locate-path": "2.0.0" 943 | } 944 | }, 945 | "for-in": { 946 | "version": "1.0.2", 947 | "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", 948 | "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", 949 | "dev": true 950 | }, 951 | "for-own": { 952 | "version": "0.1.5", 953 | "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", 954 | "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", 955 | "dev": true, 956 | "requires": { 957 | "for-in": "1.0.2" 958 | } 959 | }, 960 | "forever-agent": { 961 | "version": "0.6.1", 962 | "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", 963 | "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", 964 | "dev": true 965 | }, 966 | "form-data": { 967 | "version": "2.3.1", 968 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz", 969 | "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=", 970 | "dev": true, 971 | "requires": { 972 | "asynckit": "0.4.0", 973 | "combined-stream": "1.0.5", 974 | "mime-types": "2.1.17" 975 | } 976 | }, 977 | "fs.realpath": { 978 | "version": "1.0.0", 979 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 980 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 981 | "dev": true 982 | }, 983 | "fsevents": { 984 | "version": "1.1.2", 985 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.2.tgz", 986 | "integrity": "sha512-Sn44E5wQW4bTHXvQmvSHwqbuiXtduD6Rrjm2ZtUEGbyrig+nUH3t/QD4M4/ZXViY556TBpRgZkHLDx3JxPwxiw==", 987 | "dev": true, 988 | "optional": true, 989 | "requires": { 990 | "nan": "2.7.0", 991 | "node-pre-gyp": "0.6.36" 992 | }, 993 | "dependencies": { 994 | "abbrev": { 995 | "version": "1.1.0", 996 | "bundled": true, 997 | "dev": true, 998 | "optional": true 999 | }, 1000 | "ajv": { 1001 | "version": "4.11.8", 1002 | "bundled": true, 1003 | "dev": true, 1004 | "optional": true, 1005 | "requires": { 1006 | "co": "4.6.0", 1007 | "json-stable-stringify": "1.0.1" 1008 | } 1009 | }, 1010 | "ansi-regex": { 1011 | "version": "2.1.1", 1012 | "bundled": true, 1013 | "dev": true 1014 | }, 1015 | "aproba": { 1016 | "version": "1.1.1", 1017 | "bundled": true, 1018 | "dev": true, 1019 | "optional": true 1020 | }, 1021 | "are-we-there-yet": { 1022 | "version": "1.1.4", 1023 | "bundled": true, 1024 | "dev": true, 1025 | "optional": true, 1026 | "requires": { 1027 | "delegates": "1.0.0", 1028 | "readable-stream": "2.2.9" 1029 | } 1030 | }, 1031 | "asn1": { 1032 | "version": "0.2.3", 1033 | "bundled": true, 1034 | "dev": true, 1035 | "optional": true 1036 | }, 1037 | "assert-plus": { 1038 | "version": "0.2.0", 1039 | "bundled": true, 1040 | "dev": true, 1041 | "optional": true 1042 | }, 1043 | "asynckit": { 1044 | "version": "0.4.0", 1045 | "bundled": true, 1046 | "dev": true, 1047 | "optional": true 1048 | }, 1049 | "aws-sign2": { 1050 | "version": "0.6.0", 1051 | "bundled": true, 1052 | "dev": true, 1053 | "optional": true 1054 | }, 1055 | "aws4": { 1056 | "version": "1.6.0", 1057 | "bundled": true, 1058 | "dev": true, 1059 | "optional": true 1060 | }, 1061 | "balanced-match": { 1062 | "version": "0.4.2", 1063 | "bundled": true, 1064 | "dev": true 1065 | }, 1066 | "bcrypt-pbkdf": { 1067 | "version": "1.0.1", 1068 | "bundled": true, 1069 | "dev": true, 1070 | "optional": true, 1071 | "requires": { 1072 | "tweetnacl": "0.14.5" 1073 | } 1074 | }, 1075 | "block-stream": { 1076 | "version": "0.0.9", 1077 | "bundled": true, 1078 | "dev": true, 1079 | "requires": { 1080 | "inherits": "2.0.3" 1081 | } 1082 | }, 1083 | "boom": { 1084 | "version": "2.10.1", 1085 | "bundled": true, 1086 | "dev": true, 1087 | "requires": { 1088 | "hoek": "2.16.3" 1089 | } 1090 | }, 1091 | "brace-expansion": { 1092 | "version": "1.1.7", 1093 | "bundled": true, 1094 | "dev": true, 1095 | "requires": { 1096 | "balanced-match": "0.4.2", 1097 | "concat-map": "0.0.1" 1098 | } 1099 | }, 1100 | "buffer-shims": { 1101 | "version": "1.0.0", 1102 | "bundled": true, 1103 | "dev": true 1104 | }, 1105 | "caseless": { 1106 | "version": "0.12.0", 1107 | "bundled": true, 1108 | "dev": true, 1109 | "optional": true 1110 | }, 1111 | "co": { 1112 | "version": "4.6.0", 1113 | "bundled": true, 1114 | "dev": true, 1115 | "optional": true 1116 | }, 1117 | "code-point-at": { 1118 | "version": "1.1.0", 1119 | "bundled": true, 1120 | "dev": true 1121 | }, 1122 | "combined-stream": { 1123 | "version": "1.0.5", 1124 | "bundled": true, 1125 | "dev": true, 1126 | "requires": { 1127 | "delayed-stream": "1.0.0" 1128 | } 1129 | }, 1130 | "concat-map": { 1131 | "version": "0.0.1", 1132 | "bundled": true, 1133 | "dev": true 1134 | }, 1135 | "console-control-strings": { 1136 | "version": "1.1.0", 1137 | "bundled": true, 1138 | "dev": true 1139 | }, 1140 | "core-util-is": { 1141 | "version": "1.0.2", 1142 | "bundled": true, 1143 | "dev": true 1144 | }, 1145 | "cryptiles": { 1146 | "version": "2.0.5", 1147 | "bundled": true, 1148 | "dev": true, 1149 | "optional": true, 1150 | "requires": { 1151 | "boom": "2.10.1" 1152 | } 1153 | }, 1154 | "dashdash": { 1155 | "version": "1.14.1", 1156 | "bundled": true, 1157 | "dev": true, 1158 | "optional": true, 1159 | "requires": { 1160 | "assert-plus": "1.0.0" 1161 | }, 1162 | "dependencies": { 1163 | "assert-plus": { 1164 | "version": "1.0.0", 1165 | "bundled": true, 1166 | "dev": true, 1167 | "optional": true 1168 | } 1169 | } 1170 | }, 1171 | "debug": { 1172 | "version": "2.6.8", 1173 | "bundled": true, 1174 | "dev": true, 1175 | "optional": true, 1176 | "requires": { 1177 | "ms": "2.0.0" 1178 | } 1179 | }, 1180 | "deep-extend": { 1181 | "version": "0.4.2", 1182 | "bundled": true, 1183 | "dev": true, 1184 | "optional": true 1185 | }, 1186 | "delayed-stream": { 1187 | "version": "1.0.0", 1188 | "bundled": true, 1189 | "dev": true 1190 | }, 1191 | "delegates": { 1192 | "version": "1.0.0", 1193 | "bundled": true, 1194 | "dev": true, 1195 | "optional": true 1196 | }, 1197 | "ecc-jsbn": { 1198 | "version": "0.1.1", 1199 | "bundled": true, 1200 | "dev": true, 1201 | "optional": true, 1202 | "requires": { 1203 | "jsbn": "0.1.1" 1204 | } 1205 | }, 1206 | "extend": { 1207 | "version": "3.0.1", 1208 | "bundled": true, 1209 | "dev": true, 1210 | "optional": true 1211 | }, 1212 | "extsprintf": { 1213 | "version": "1.0.2", 1214 | "bundled": true, 1215 | "dev": true 1216 | }, 1217 | "forever-agent": { 1218 | "version": "0.6.1", 1219 | "bundled": true, 1220 | "dev": true, 1221 | "optional": true 1222 | }, 1223 | "form-data": { 1224 | "version": "2.1.4", 1225 | "bundled": true, 1226 | "dev": true, 1227 | "optional": true, 1228 | "requires": { 1229 | "asynckit": "0.4.0", 1230 | "combined-stream": "1.0.5", 1231 | "mime-types": "2.1.15" 1232 | } 1233 | }, 1234 | "fs.realpath": { 1235 | "version": "1.0.0", 1236 | "bundled": true, 1237 | "dev": true 1238 | }, 1239 | "fstream": { 1240 | "version": "1.0.11", 1241 | "bundled": true, 1242 | "dev": true, 1243 | "requires": { 1244 | "graceful-fs": "4.1.11", 1245 | "inherits": "2.0.3", 1246 | "mkdirp": "0.5.1", 1247 | "rimraf": "2.6.1" 1248 | } 1249 | }, 1250 | "fstream-ignore": { 1251 | "version": "1.0.5", 1252 | "bundled": true, 1253 | "dev": true, 1254 | "optional": true, 1255 | "requires": { 1256 | "fstream": "1.0.11", 1257 | "inherits": "2.0.3", 1258 | "minimatch": "3.0.4" 1259 | } 1260 | }, 1261 | "gauge": { 1262 | "version": "2.7.4", 1263 | "bundled": true, 1264 | "dev": true, 1265 | "optional": true, 1266 | "requires": { 1267 | "aproba": "1.1.1", 1268 | "console-control-strings": "1.1.0", 1269 | "has-unicode": "2.0.1", 1270 | "object-assign": "4.1.1", 1271 | "signal-exit": "3.0.2", 1272 | "string-width": "1.0.2", 1273 | "strip-ansi": "3.0.1", 1274 | "wide-align": "1.1.2" 1275 | } 1276 | }, 1277 | "getpass": { 1278 | "version": "0.1.7", 1279 | "bundled": true, 1280 | "dev": true, 1281 | "optional": true, 1282 | "requires": { 1283 | "assert-plus": "1.0.0" 1284 | }, 1285 | "dependencies": { 1286 | "assert-plus": { 1287 | "version": "1.0.0", 1288 | "bundled": true, 1289 | "dev": true, 1290 | "optional": true 1291 | } 1292 | } 1293 | }, 1294 | "glob": { 1295 | "version": "7.1.2", 1296 | "bundled": true, 1297 | "dev": true, 1298 | "requires": { 1299 | "fs.realpath": "1.0.0", 1300 | "inflight": "1.0.6", 1301 | "inherits": "2.0.3", 1302 | "minimatch": "3.0.4", 1303 | "once": "1.4.0", 1304 | "path-is-absolute": "1.0.1" 1305 | } 1306 | }, 1307 | "graceful-fs": { 1308 | "version": "4.1.11", 1309 | "bundled": true, 1310 | "dev": true 1311 | }, 1312 | "har-schema": { 1313 | "version": "1.0.5", 1314 | "bundled": true, 1315 | "dev": true, 1316 | "optional": true 1317 | }, 1318 | "har-validator": { 1319 | "version": "4.2.1", 1320 | "bundled": true, 1321 | "dev": true, 1322 | "optional": true, 1323 | "requires": { 1324 | "ajv": "4.11.8", 1325 | "har-schema": "1.0.5" 1326 | } 1327 | }, 1328 | "has-unicode": { 1329 | "version": "2.0.1", 1330 | "bundled": true, 1331 | "dev": true, 1332 | "optional": true 1333 | }, 1334 | "hawk": { 1335 | "version": "3.1.3", 1336 | "bundled": true, 1337 | "dev": true, 1338 | "optional": true, 1339 | "requires": { 1340 | "boom": "2.10.1", 1341 | "cryptiles": "2.0.5", 1342 | "hoek": "2.16.3", 1343 | "sntp": "1.0.9" 1344 | } 1345 | }, 1346 | "hoek": { 1347 | "version": "2.16.3", 1348 | "bundled": true, 1349 | "dev": true 1350 | }, 1351 | "http-signature": { 1352 | "version": "1.1.1", 1353 | "bundled": true, 1354 | "dev": true, 1355 | "optional": true, 1356 | "requires": { 1357 | "assert-plus": "0.2.0", 1358 | "jsprim": "1.4.0", 1359 | "sshpk": "1.13.0" 1360 | } 1361 | }, 1362 | "inflight": { 1363 | "version": "1.0.6", 1364 | "bundled": true, 1365 | "dev": true, 1366 | "requires": { 1367 | "once": "1.4.0", 1368 | "wrappy": "1.0.2" 1369 | } 1370 | }, 1371 | "inherits": { 1372 | "version": "2.0.3", 1373 | "bundled": true, 1374 | "dev": true 1375 | }, 1376 | "ini": { 1377 | "version": "1.3.4", 1378 | "bundled": true, 1379 | "dev": true, 1380 | "optional": true 1381 | }, 1382 | "is-fullwidth-code-point": { 1383 | "version": "1.0.0", 1384 | "bundled": true, 1385 | "dev": true, 1386 | "requires": { 1387 | "number-is-nan": "1.0.1" 1388 | } 1389 | }, 1390 | "is-typedarray": { 1391 | "version": "1.0.0", 1392 | "bundled": true, 1393 | "dev": true, 1394 | "optional": true 1395 | }, 1396 | "isarray": { 1397 | "version": "1.0.0", 1398 | "bundled": true, 1399 | "dev": true 1400 | }, 1401 | "isstream": { 1402 | "version": "0.1.2", 1403 | "bundled": true, 1404 | "dev": true, 1405 | "optional": true 1406 | }, 1407 | "jodid25519": { 1408 | "version": "1.0.2", 1409 | "bundled": true, 1410 | "dev": true, 1411 | "optional": true, 1412 | "requires": { 1413 | "jsbn": "0.1.1" 1414 | } 1415 | }, 1416 | "jsbn": { 1417 | "version": "0.1.1", 1418 | "bundled": true, 1419 | "dev": true, 1420 | "optional": true 1421 | }, 1422 | "json-schema": { 1423 | "version": "0.2.3", 1424 | "bundled": true, 1425 | "dev": true, 1426 | "optional": true 1427 | }, 1428 | "json-stable-stringify": { 1429 | "version": "1.0.1", 1430 | "bundled": true, 1431 | "dev": true, 1432 | "optional": true, 1433 | "requires": { 1434 | "jsonify": "0.0.0" 1435 | } 1436 | }, 1437 | "json-stringify-safe": { 1438 | "version": "5.0.1", 1439 | "bundled": true, 1440 | "dev": true, 1441 | "optional": true 1442 | }, 1443 | "jsonify": { 1444 | "version": "0.0.0", 1445 | "bundled": true, 1446 | "dev": true, 1447 | "optional": true 1448 | }, 1449 | "jsprim": { 1450 | "version": "1.4.0", 1451 | "bundled": true, 1452 | "dev": true, 1453 | "optional": true, 1454 | "requires": { 1455 | "assert-plus": "1.0.0", 1456 | "extsprintf": "1.0.2", 1457 | "json-schema": "0.2.3", 1458 | "verror": "1.3.6" 1459 | }, 1460 | "dependencies": { 1461 | "assert-plus": { 1462 | "version": "1.0.0", 1463 | "bundled": true, 1464 | "dev": true, 1465 | "optional": true 1466 | } 1467 | } 1468 | }, 1469 | "mime-db": { 1470 | "version": "1.27.0", 1471 | "bundled": true, 1472 | "dev": true 1473 | }, 1474 | "mime-types": { 1475 | "version": "2.1.15", 1476 | "bundled": true, 1477 | "dev": true, 1478 | "requires": { 1479 | "mime-db": "1.27.0" 1480 | } 1481 | }, 1482 | "minimatch": { 1483 | "version": "3.0.4", 1484 | "bundled": true, 1485 | "dev": true, 1486 | "requires": { 1487 | "brace-expansion": "1.1.7" 1488 | } 1489 | }, 1490 | "minimist": { 1491 | "version": "0.0.8", 1492 | "bundled": true, 1493 | "dev": true 1494 | }, 1495 | "mkdirp": { 1496 | "version": "0.5.1", 1497 | "bundled": true, 1498 | "dev": true, 1499 | "requires": { 1500 | "minimist": "0.0.8" 1501 | } 1502 | }, 1503 | "ms": { 1504 | "version": "2.0.0", 1505 | "bundled": true, 1506 | "dev": true, 1507 | "optional": true 1508 | }, 1509 | "node-pre-gyp": { 1510 | "version": "0.6.36", 1511 | "bundled": true, 1512 | "dev": true, 1513 | "optional": true, 1514 | "requires": { 1515 | "mkdirp": "0.5.1", 1516 | "nopt": "4.0.1", 1517 | "npmlog": "4.1.0", 1518 | "rc": "1.2.1", 1519 | "request": "2.81.0", 1520 | "rimraf": "2.6.1", 1521 | "semver": "5.3.0", 1522 | "tar": "2.2.1", 1523 | "tar-pack": "3.4.0" 1524 | } 1525 | }, 1526 | "nopt": { 1527 | "version": "4.0.1", 1528 | "bundled": true, 1529 | "dev": true, 1530 | "optional": true, 1531 | "requires": { 1532 | "abbrev": "1.1.0", 1533 | "osenv": "0.1.4" 1534 | } 1535 | }, 1536 | "npmlog": { 1537 | "version": "4.1.0", 1538 | "bundled": true, 1539 | "dev": true, 1540 | "optional": true, 1541 | "requires": { 1542 | "are-we-there-yet": "1.1.4", 1543 | "console-control-strings": "1.1.0", 1544 | "gauge": "2.7.4", 1545 | "set-blocking": "2.0.0" 1546 | } 1547 | }, 1548 | "number-is-nan": { 1549 | "version": "1.0.1", 1550 | "bundled": true, 1551 | "dev": true 1552 | }, 1553 | "oauth-sign": { 1554 | "version": "0.8.2", 1555 | "bundled": true, 1556 | "dev": true, 1557 | "optional": true 1558 | }, 1559 | "object-assign": { 1560 | "version": "4.1.1", 1561 | "bundled": true, 1562 | "dev": true, 1563 | "optional": true 1564 | }, 1565 | "once": { 1566 | "version": "1.4.0", 1567 | "bundled": true, 1568 | "dev": true, 1569 | "requires": { 1570 | "wrappy": "1.0.2" 1571 | } 1572 | }, 1573 | "os-homedir": { 1574 | "version": "1.0.2", 1575 | "bundled": true, 1576 | "dev": true, 1577 | "optional": true 1578 | }, 1579 | "os-tmpdir": { 1580 | "version": "1.0.2", 1581 | "bundled": true, 1582 | "dev": true, 1583 | "optional": true 1584 | }, 1585 | "osenv": { 1586 | "version": "0.1.4", 1587 | "bundled": true, 1588 | "dev": true, 1589 | "optional": true, 1590 | "requires": { 1591 | "os-homedir": "1.0.2", 1592 | "os-tmpdir": "1.0.2" 1593 | } 1594 | }, 1595 | "path-is-absolute": { 1596 | "version": "1.0.1", 1597 | "bundled": true, 1598 | "dev": true 1599 | }, 1600 | "performance-now": { 1601 | "version": "0.2.0", 1602 | "bundled": true, 1603 | "dev": true, 1604 | "optional": true 1605 | }, 1606 | "process-nextick-args": { 1607 | "version": "1.0.7", 1608 | "bundled": true, 1609 | "dev": true 1610 | }, 1611 | "punycode": { 1612 | "version": "1.4.1", 1613 | "bundled": true, 1614 | "dev": true, 1615 | "optional": true 1616 | }, 1617 | "qs": { 1618 | "version": "6.4.0", 1619 | "bundled": true, 1620 | "dev": true, 1621 | "optional": true 1622 | }, 1623 | "rc": { 1624 | "version": "1.2.1", 1625 | "bundled": true, 1626 | "dev": true, 1627 | "optional": true, 1628 | "requires": { 1629 | "deep-extend": "0.4.2", 1630 | "ini": "1.3.4", 1631 | "minimist": "1.2.0", 1632 | "strip-json-comments": "2.0.1" 1633 | }, 1634 | "dependencies": { 1635 | "minimist": { 1636 | "version": "1.2.0", 1637 | "bundled": true, 1638 | "dev": true, 1639 | "optional": true 1640 | } 1641 | } 1642 | }, 1643 | "readable-stream": { 1644 | "version": "2.2.9", 1645 | "bundled": true, 1646 | "dev": true, 1647 | "requires": { 1648 | "buffer-shims": "1.0.0", 1649 | "core-util-is": "1.0.2", 1650 | "inherits": "2.0.3", 1651 | "isarray": "1.0.0", 1652 | "process-nextick-args": "1.0.7", 1653 | "string_decoder": "1.0.1", 1654 | "util-deprecate": "1.0.2" 1655 | } 1656 | }, 1657 | "request": { 1658 | "version": "2.81.0", 1659 | "bundled": true, 1660 | "dev": true, 1661 | "optional": true, 1662 | "requires": { 1663 | "aws-sign2": "0.6.0", 1664 | "aws4": "1.6.0", 1665 | "caseless": "0.12.0", 1666 | "combined-stream": "1.0.5", 1667 | "extend": "3.0.1", 1668 | "forever-agent": "0.6.1", 1669 | "form-data": "2.1.4", 1670 | "har-validator": "4.2.1", 1671 | "hawk": "3.1.3", 1672 | "http-signature": "1.1.1", 1673 | "is-typedarray": "1.0.0", 1674 | "isstream": "0.1.2", 1675 | "json-stringify-safe": "5.0.1", 1676 | "mime-types": "2.1.15", 1677 | "oauth-sign": "0.8.2", 1678 | "performance-now": "0.2.0", 1679 | "qs": "6.4.0", 1680 | "safe-buffer": "5.0.1", 1681 | "stringstream": "0.0.5", 1682 | "tough-cookie": "2.3.2", 1683 | "tunnel-agent": "0.6.0", 1684 | "uuid": "3.0.1" 1685 | } 1686 | }, 1687 | "rimraf": { 1688 | "version": "2.6.1", 1689 | "bundled": true, 1690 | "dev": true, 1691 | "requires": { 1692 | "glob": "7.1.2" 1693 | } 1694 | }, 1695 | "safe-buffer": { 1696 | "version": "5.0.1", 1697 | "bundled": true, 1698 | "dev": true 1699 | }, 1700 | "semver": { 1701 | "version": "5.3.0", 1702 | "bundled": true, 1703 | "dev": true, 1704 | "optional": true 1705 | }, 1706 | "set-blocking": { 1707 | "version": "2.0.0", 1708 | "bundled": true, 1709 | "dev": true, 1710 | "optional": true 1711 | }, 1712 | "signal-exit": { 1713 | "version": "3.0.2", 1714 | "bundled": true, 1715 | "dev": true, 1716 | "optional": true 1717 | }, 1718 | "sntp": { 1719 | "version": "1.0.9", 1720 | "bundled": true, 1721 | "dev": true, 1722 | "optional": true, 1723 | "requires": { 1724 | "hoek": "2.16.3" 1725 | } 1726 | }, 1727 | "sshpk": { 1728 | "version": "1.13.0", 1729 | "bundled": true, 1730 | "dev": true, 1731 | "optional": true, 1732 | "requires": { 1733 | "asn1": "0.2.3", 1734 | "assert-plus": "1.0.0", 1735 | "bcrypt-pbkdf": "1.0.1", 1736 | "dashdash": "1.14.1", 1737 | "ecc-jsbn": "0.1.1", 1738 | "getpass": "0.1.7", 1739 | "jodid25519": "1.0.2", 1740 | "jsbn": "0.1.1", 1741 | "tweetnacl": "0.14.5" 1742 | }, 1743 | "dependencies": { 1744 | "assert-plus": { 1745 | "version": "1.0.0", 1746 | "bundled": true, 1747 | "dev": true, 1748 | "optional": true 1749 | } 1750 | } 1751 | }, 1752 | "string-width": { 1753 | "version": "1.0.2", 1754 | "bundled": true, 1755 | "dev": true, 1756 | "requires": { 1757 | "code-point-at": "1.1.0", 1758 | "is-fullwidth-code-point": "1.0.0", 1759 | "strip-ansi": "3.0.1" 1760 | } 1761 | }, 1762 | "string_decoder": { 1763 | "version": "1.0.1", 1764 | "bundled": true, 1765 | "dev": true, 1766 | "requires": { 1767 | "safe-buffer": "5.0.1" 1768 | } 1769 | }, 1770 | "stringstream": { 1771 | "version": "0.0.5", 1772 | "bundled": true, 1773 | "dev": true, 1774 | "optional": true 1775 | }, 1776 | "strip-ansi": { 1777 | "version": "3.0.1", 1778 | "bundled": true, 1779 | "dev": true, 1780 | "requires": { 1781 | "ansi-regex": "2.1.1" 1782 | } 1783 | }, 1784 | "strip-json-comments": { 1785 | "version": "2.0.1", 1786 | "bundled": true, 1787 | "dev": true, 1788 | "optional": true 1789 | }, 1790 | "tar": { 1791 | "version": "2.2.1", 1792 | "bundled": true, 1793 | "dev": true, 1794 | "requires": { 1795 | "block-stream": "0.0.9", 1796 | "fstream": "1.0.11", 1797 | "inherits": "2.0.3" 1798 | } 1799 | }, 1800 | "tar-pack": { 1801 | "version": "3.4.0", 1802 | "bundled": true, 1803 | "dev": true, 1804 | "optional": true, 1805 | "requires": { 1806 | "debug": "2.6.8", 1807 | "fstream": "1.0.11", 1808 | "fstream-ignore": "1.0.5", 1809 | "once": "1.4.0", 1810 | "readable-stream": "2.2.9", 1811 | "rimraf": "2.6.1", 1812 | "tar": "2.2.1", 1813 | "uid-number": "0.0.6" 1814 | } 1815 | }, 1816 | "tough-cookie": { 1817 | "version": "2.3.2", 1818 | "bundled": true, 1819 | "dev": true, 1820 | "optional": true, 1821 | "requires": { 1822 | "punycode": "1.4.1" 1823 | } 1824 | }, 1825 | "tunnel-agent": { 1826 | "version": "0.6.0", 1827 | "bundled": true, 1828 | "dev": true, 1829 | "optional": true, 1830 | "requires": { 1831 | "safe-buffer": "5.0.1" 1832 | } 1833 | }, 1834 | "tweetnacl": { 1835 | "version": "0.14.5", 1836 | "bundled": true, 1837 | "dev": true, 1838 | "optional": true 1839 | }, 1840 | "uid-number": { 1841 | "version": "0.0.6", 1842 | "bundled": true, 1843 | "dev": true, 1844 | "optional": true 1845 | }, 1846 | "util-deprecate": { 1847 | "version": "1.0.2", 1848 | "bundled": true, 1849 | "dev": true 1850 | }, 1851 | "uuid": { 1852 | "version": "3.0.1", 1853 | "bundled": true, 1854 | "dev": true, 1855 | "optional": true 1856 | }, 1857 | "verror": { 1858 | "version": "1.3.6", 1859 | "bundled": true, 1860 | "dev": true, 1861 | "optional": true, 1862 | "requires": { 1863 | "extsprintf": "1.0.2" 1864 | } 1865 | }, 1866 | "wide-align": { 1867 | "version": "1.1.2", 1868 | "bundled": true, 1869 | "dev": true, 1870 | "optional": true, 1871 | "requires": { 1872 | "string-width": "1.0.2" 1873 | } 1874 | }, 1875 | "wrappy": { 1876 | "version": "1.0.2", 1877 | "bundled": true, 1878 | "dev": true 1879 | } 1880 | } 1881 | }, 1882 | "get-caller-file": { 1883 | "version": "1.0.2", 1884 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", 1885 | "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", 1886 | "dev": true 1887 | }, 1888 | "get-stream": { 1889 | "version": "3.0.0", 1890 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", 1891 | "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", 1892 | "dev": true 1893 | }, 1894 | "getpass": { 1895 | "version": "0.1.7", 1896 | "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", 1897 | "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", 1898 | "dev": true, 1899 | "requires": { 1900 | "assert-plus": "1.0.0" 1901 | } 1902 | }, 1903 | "glob": { 1904 | "version": "7.1.2", 1905 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", 1906 | "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", 1907 | "dev": true, 1908 | "requires": { 1909 | "fs.realpath": "1.0.0", 1910 | "inflight": "1.0.6", 1911 | "inherits": "2.0.3", 1912 | "minimatch": "3.0.4", 1913 | "once": "1.4.0", 1914 | "path-is-absolute": "1.0.1" 1915 | } 1916 | }, 1917 | "glob-base": { 1918 | "version": "0.3.0", 1919 | "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", 1920 | "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", 1921 | "dev": true, 1922 | "requires": { 1923 | "glob-parent": "2.0.0", 1924 | "is-glob": "2.0.1" 1925 | } 1926 | }, 1927 | "glob-parent": { 1928 | "version": "2.0.0", 1929 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", 1930 | "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", 1931 | "dev": true, 1932 | "requires": { 1933 | "is-glob": "2.0.1" 1934 | } 1935 | }, 1936 | "globals": { 1937 | "version": "9.18.0", 1938 | "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", 1939 | "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", 1940 | "dev": true 1941 | }, 1942 | "graceful-fs": { 1943 | "version": "4.1.11", 1944 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", 1945 | "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", 1946 | "dev": true 1947 | }, 1948 | "growly": { 1949 | "version": "1.3.0", 1950 | "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", 1951 | "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", 1952 | "dev": true 1953 | }, 1954 | "handlebars": { 1955 | "version": "4.0.11", 1956 | "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", 1957 | "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", 1958 | "dev": true, 1959 | "requires": { 1960 | "async": "1.5.2", 1961 | "optimist": "0.6.1", 1962 | "source-map": "0.4.4", 1963 | "uglify-js": "2.8.29" 1964 | }, 1965 | "dependencies": { 1966 | "async": { 1967 | "version": "1.5.2", 1968 | "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", 1969 | "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", 1970 | "dev": true 1971 | }, 1972 | "source-map": { 1973 | "version": "0.4.4", 1974 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", 1975 | "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", 1976 | "dev": true, 1977 | "requires": { 1978 | "amdefine": "1.0.1" 1979 | } 1980 | } 1981 | } 1982 | }, 1983 | "har-schema": { 1984 | "version": "2.0.0", 1985 | "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", 1986 | "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", 1987 | "dev": true 1988 | }, 1989 | "har-validator": { 1990 | "version": "5.0.3", 1991 | "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", 1992 | "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", 1993 | "dev": true, 1994 | "requires": { 1995 | "ajv": "5.3.0", 1996 | "har-schema": "2.0.0" 1997 | } 1998 | }, 1999 | "has-ansi": { 2000 | "version": "2.0.0", 2001 | "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", 2002 | "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", 2003 | "dev": true, 2004 | "requires": { 2005 | "ansi-regex": "2.1.1" 2006 | } 2007 | }, 2008 | "has-flag": { 2009 | "version": "2.0.0", 2010 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", 2011 | "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", 2012 | "dev": true 2013 | }, 2014 | "hawk": { 2015 | "version": "6.0.2", 2016 | "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", 2017 | "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", 2018 | "dev": true, 2019 | "requires": { 2020 | "boom": "4.3.1", 2021 | "cryptiles": "3.1.2", 2022 | "hoek": "4.2.0", 2023 | "sntp": "2.1.0" 2024 | } 2025 | }, 2026 | "hoek": { 2027 | "version": "4.2.0", 2028 | "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz", 2029 | "integrity": "sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ==", 2030 | "dev": true 2031 | }, 2032 | "home-or-tmp": { 2033 | "version": "2.0.0", 2034 | "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", 2035 | "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", 2036 | "dev": true, 2037 | "requires": { 2038 | "os-homedir": "1.0.2", 2039 | "os-tmpdir": "1.0.2" 2040 | } 2041 | }, 2042 | "hosted-git-info": { 2043 | "version": "2.5.0", 2044 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", 2045 | "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==", 2046 | "dev": true 2047 | }, 2048 | "html-encoding-sniffer": { 2049 | "version": "1.0.2", 2050 | "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", 2051 | "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", 2052 | "dev": true, 2053 | "requires": { 2054 | "whatwg-encoding": "1.0.3" 2055 | } 2056 | }, 2057 | "http-signature": { 2058 | "version": "1.2.0", 2059 | "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", 2060 | "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", 2061 | "dev": true, 2062 | "requires": { 2063 | "assert-plus": "1.0.0", 2064 | "jsprim": "1.4.1", 2065 | "sshpk": "1.13.1" 2066 | } 2067 | }, 2068 | "iconv-lite": { 2069 | "version": "0.4.19", 2070 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", 2071 | "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==", 2072 | "dev": true 2073 | }, 2074 | "imurmurhash": { 2075 | "version": "0.1.4", 2076 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 2077 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", 2078 | "dev": true 2079 | }, 2080 | "inflight": { 2081 | "version": "1.0.6", 2082 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 2083 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 2084 | "dev": true, 2085 | "requires": { 2086 | "once": "1.4.0", 2087 | "wrappy": "1.0.2" 2088 | } 2089 | }, 2090 | "inherits": { 2091 | "version": "2.0.3", 2092 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 2093 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", 2094 | "dev": true 2095 | }, 2096 | "invariant": { 2097 | "version": "2.2.2", 2098 | "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", 2099 | "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", 2100 | "dev": true, 2101 | "requires": { 2102 | "loose-envify": "1.3.1" 2103 | } 2104 | }, 2105 | "invert-kv": { 2106 | "version": "1.0.0", 2107 | "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", 2108 | "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", 2109 | "dev": true 2110 | }, 2111 | "is-arrayish": { 2112 | "version": "0.2.1", 2113 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 2114 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", 2115 | "dev": true 2116 | }, 2117 | "is-buffer": { 2118 | "version": "1.1.6", 2119 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", 2120 | "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", 2121 | "dev": true 2122 | }, 2123 | "is-builtin-module": { 2124 | "version": "1.0.0", 2125 | "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", 2126 | "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", 2127 | "dev": true, 2128 | "requires": { 2129 | "builtin-modules": "1.1.1" 2130 | } 2131 | }, 2132 | "is-ci": { 2133 | "version": "1.0.10", 2134 | "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.0.10.tgz", 2135 | "integrity": "sha1-9zkzayYyNlBhqdSCcM1WrjNpMY4=", 2136 | "dev": true, 2137 | "requires": { 2138 | "ci-info": "1.1.1" 2139 | } 2140 | }, 2141 | "is-dotfile": { 2142 | "version": "1.0.3", 2143 | "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", 2144 | "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", 2145 | "dev": true 2146 | }, 2147 | "is-equal-shallow": { 2148 | "version": "0.1.3", 2149 | "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", 2150 | "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", 2151 | "dev": true, 2152 | "requires": { 2153 | "is-primitive": "2.0.0" 2154 | } 2155 | }, 2156 | "is-extendable": { 2157 | "version": "0.1.1", 2158 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", 2159 | "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", 2160 | "dev": true 2161 | }, 2162 | "is-extglob": { 2163 | "version": "1.0.0", 2164 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", 2165 | "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", 2166 | "dev": true 2167 | }, 2168 | "is-finite": { 2169 | "version": "1.0.2", 2170 | "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", 2171 | "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", 2172 | "dev": true, 2173 | "requires": { 2174 | "number-is-nan": "1.0.1" 2175 | } 2176 | }, 2177 | "is-fullwidth-code-point": { 2178 | "version": "1.0.0", 2179 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", 2180 | "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", 2181 | "dev": true, 2182 | "requires": { 2183 | "number-is-nan": "1.0.1" 2184 | } 2185 | }, 2186 | "is-glob": { 2187 | "version": "2.0.1", 2188 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", 2189 | "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", 2190 | "dev": true, 2191 | "requires": { 2192 | "is-extglob": "1.0.0" 2193 | } 2194 | }, 2195 | "is-number": { 2196 | "version": "2.1.0", 2197 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", 2198 | "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", 2199 | "dev": true, 2200 | "requires": { 2201 | "kind-of": "3.2.2" 2202 | } 2203 | }, 2204 | "is-posix-bracket": { 2205 | "version": "0.1.1", 2206 | "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", 2207 | "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", 2208 | "dev": true 2209 | }, 2210 | "is-primitive": { 2211 | "version": "2.0.0", 2212 | "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", 2213 | "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", 2214 | "dev": true 2215 | }, 2216 | "is-stream": { 2217 | "version": "1.1.0", 2218 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", 2219 | "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", 2220 | "dev": true 2221 | }, 2222 | "is-typedarray": { 2223 | "version": "1.0.0", 2224 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", 2225 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", 2226 | "dev": true 2227 | }, 2228 | "is-utf8": { 2229 | "version": "0.2.1", 2230 | "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", 2231 | "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", 2232 | "dev": true 2233 | }, 2234 | "isarray": { 2235 | "version": "1.0.0", 2236 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 2237 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", 2238 | "dev": true 2239 | }, 2240 | "isexe": { 2241 | "version": "2.0.0", 2242 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 2243 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 2244 | "dev": true 2245 | }, 2246 | "isobject": { 2247 | "version": "2.1.0", 2248 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", 2249 | "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", 2250 | "dev": true, 2251 | "requires": { 2252 | "isarray": "1.0.0" 2253 | } 2254 | }, 2255 | "isstream": { 2256 | "version": "0.1.2", 2257 | "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", 2258 | "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", 2259 | "dev": true 2260 | }, 2261 | "istanbul-api": { 2262 | "version": "1.2.1", 2263 | "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.2.1.tgz", 2264 | "integrity": "sha512-oFCwXvd65amgaPCzqrR+a2XjanS1MvpXN6l/MlMUTv6uiA1NOgGX+I0uyq8Lg3GDxsxPsaP1049krz3hIJ5+KA==", 2265 | "dev": true, 2266 | "requires": { 2267 | "async": "2.5.0", 2268 | "fileset": "2.0.3", 2269 | "istanbul-lib-coverage": "1.1.1", 2270 | "istanbul-lib-hook": "1.1.0", 2271 | "istanbul-lib-instrument": "1.9.1", 2272 | "istanbul-lib-report": "1.1.2", 2273 | "istanbul-lib-source-maps": "1.2.2", 2274 | "istanbul-reports": "1.1.3", 2275 | "js-yaml": "3.10.0", 2276 | "mkdirp": "0.5.1", 2277 | "once": "1.4.0" 2278 | } 2279 | }, 2280 | "istanbul-lib-coverage": { 2281 | "version": "1.1.1", 2282 | "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz", 2283 | "integrity": "sha512-0+1vDkmzxqJIn5rcoEqapSB4DmPxE31EtI2dF2aCkV5esN9EWHxZ0dwgDClivMXJqE7zaYQxq30hj5L0nlTN5Q==", 2284 | "dev": true 2285 | }, 2286 | "istanbul-lib-hook": { 2287 | "version": "1.1.0", 2288 | "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz", 2289 | "integrity": "sha512-U3qEgwVDUerZ0bt8cfl3dSP3S6opBoOtk3ROO5f2EfBr/SRiD9FQqzwaZBqFORu8W7O0EXpai+k7kxHK13beRg==", 2290 | "dev": true, 2291 | "requires": { 2292 | "append-transform": "0.4.0" 2293 | } 2294 | }, 2295 | "istanbul-lib-instrument": { 2296 | "version": "1.9.1", 2297 | "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.9.1.tgz", 2298 | "integrity": "sha512-RQmXeQ7sphar7k7O1wTNzVczF9igKpaeGQAG9qR2L+BS4DCJNTI9nytRmIVYevwO0bbq+2CXvJmYDuz0gMrywA==", 2299 | "dev": true, 2300 | "requires": { 2301 | "babel-generator": "6.26.0", 2302 | "babel-template": "6.26.0", 2303 | "babel-traverse": "6.26.0", 2304 | "babel-types": "6.26.0", 2305 | "babylon": "6.18.0", 2306 | "istanbul-lib-coverage": "1.1.1", 2307 | "semver": "5.4.1" 2308 | } 2309 | }, 2310 | "istanbul-lib-report": { 2311 | "version": "1.1.2", 2312 | "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.2.tgz", 2313 | "integrity": "sha512-UTv4VGx+HZivJQwAo1wnRwe1KTvFpfi/NYwN7DcsrdzMXwpRT/Yb6r4SBPoHWj4VuQPakR32g4PUUeyKkdDkBA==", 2314 | "dev": true, 2315 | "requires": { 2316 | "istanbul-lib-coverage": "1.1.1", 2317 | "mkdirp": "0.5.1", 2318 | "path-parse": "1.0.5", 2319 | "supports-color": "3.2.3" 2320 | }, 2321 | "dependencies": { 2322 | "has-flag": { 2323 | "version": "1.0.0", 2324 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", 2325 | "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", 2326 | "dev": true 2327 | }, 2328 | "supports-color": { 2329 | "version": "3.2.3", 2330 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", 2331 | "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", 2332 | "dev": true, 2333 | "requires": { 2334 | "has-flag": "1.0.0" 2335 | } 2336 | } 2337 | } 2338 | }, 2339 | "istanbul-lib-source-maps": { 2340 | "version": "1.2.2", 2341 | "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.2.tgz", 2342 | "integrity": "sha512-8BfdqSfEdtip7/wo1RnrvLpHVEd8zMZEDmOFEnpC6dg0vXflHt9nvoAyQUzig2uMSXfF2OBEYBV3CVjIL9JvaQ==", 2343 | "dev": true, 2344 | "requires": { 2345 | "debug": "3.1.0", 2346 | "istanbul-lib-coverage": "1.1.1", 2347 | "mkdirp": "0.5.1", 2348 | "rimraf": "2.6.2", 2349 | "source-map": "0.5.7" 2350 | }, 2351 | "dependencies": { 2352 | "debug": { 2353 | "version": "3.1.0", 2354 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", 2355 | "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", 2356 | "dev": true, 2357 | "requires": { 2358 | "ms": "2.0.0" 2359 | } 2360 | } 2361 | } 2362 | }, 2363 | "istanbul-reports": { 2364 | "version": "1.1.3", 2365 | "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.1.3.tgz", 2366 | "integrity": "sha512-ZEelkHh8hrZNI5xDaKwPMFwDsUf5wIEI2bXAFGp1e6deR2mnEKBPhLJEgr4ZBt8Gi6Mj38E/C8kcy9XLggVO2Q==", 2367 | "dev": true, 2368 | "requires": { 2369 | "handlebars": "4.0.11" 2370 | } 2371 | }, 2372 | "jest": { 2373 | "version": "21.2.1", 2374 | "resolved": "https://registry.npmjs.org/jest/-/jest-21.2.1.tgz", 2375 | "integrity": "sha512-mXN0ppPvWYoIcC+R+ctKxAJ28xkt/Z5Js875padm4GbgUn6baeR5N4Ng6LjatIRpUQDZVJABT7Y4gucFjPryfw==", 2376 | "dev": true, 2377 | "requires": { 2378 | "jest-cli": "21.2.1" 2379 | }, 2380 | "dependencies": { 2381 | "jest-cli": { 2382 | "version": "21.2.1", 2383 | "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-21.2.1.tgz", 2384 | "integrity": "sha512-T1BzrbFxDIW/LLYQqVfo94y/hhaj1NzVQkZgBumAC+sxbjMROI7VkihOdxNR758iYbQykL2ZOWUBurFgkQrzdg==", 2385 | "dev": true, 2386 | "requires": { 2387 | "ansi-escapes": "3.0.0", 2388 | "chalk": "2.3.0", 2389 | "glob": "7.1.2", 2390 | "graceful-fs": "4.1.11", 2391 | "is-ci": "1.0.10", 2392 | "istanbul-api": "1.2.1", 2393 | "istanbul-lib-coverage": "1.1.1", 2394 | "istanbul-lib-instrument": "1.9.1", 2395 | "istanbul-lib-source-maps": "1.2.2", 2396 | "jest-changed-files": "21.2.0", 2397 | "jest-config": "21.2.1", 2398 | "jest-environment-jsdom": "21.2.1", 2399 | "jest-haste-map": "21.2.0", 2400 | "jest-message-util": "21.2.1", 2401 | "jest-regex-util": "21.2.0", 2402 | "jest-resolve-dependencies": "21.2.0", 2403 | "jest-runner": "21.2.1", 2404 | "jest-runtime": "21.2.1", 2405 | "jest-snapshot": "21.2.1", 2406 | "jest-util": "21.2.1", 2407 | "micromatch": "2.3.11", 2408 | "node-notifier": "5.1.2", 2409 | "pify": "3.0.0", 2410 | "slash": "1.0.0", 2411 | "string-length": "2.0.0", 2412 | "strip-ansi": "4.0.0", 2413 | "which": "1.3.0", 2414 | "worker-farm": "1.5.0", 2415 | "yargs": "9.0.1" 2416 | } 2417 | } 2418 | } 2419 | }, 2420 | "jest-changed-files": { 2421 | "version": "21.2.0", 2422 | "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-21.2.0.tgz", 2423 | "integrity": "sha512-+lCNP1IZLwN1NOIvBcV5zEL6GENK6TXrDj4UxWIeLvIsIDa+gf6J7hkqsW2qVVt/wvH65rVvcPwqXdps5eclTQ==", 2424 | "dev": true, 2425 | "requires": { 2426 | "throat": "4.1.0" 2427 | } 2428 | }, 2429 | "jest-config": { 2430 | "version": "21.2.1", 2431 | "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-21.2.1.tgz", 2432 | "integrity": "sha512-fJru5HtlD/5l2o25eY9xT0doK3t2dlglrqoGpbktduyoI0T5CwuB++2YfoNZCrgZipTwPuAGonYv0q7+8yDc/A==", 2433 | "dev": true, 2434 | "requires": { 2435 | "chalk": "2.3.0", 2436 | "glob": "7.1.2", 2437 | "jest-environment-jsdom": "21.2.1", 2438 | "jest-environment-node": "21.2.1", 2439 | "jest-get-type": "21.2.0", 2440 | "jest-jasmine2": "21.2.1", 2441 | "jest-regex-util": "21.2.0", 2442 | "jest-resolve": "21.2.0", 2443 | "jest-util": "21.2.1", 2444 | "jest-validate": "21.2.1", 2445 | "pretty-format": "21.2.1" 2446 | } 2447 | }, 2448 | "jest-diff": { 2449 | "version": "21.2.1", 2450 | "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-21.2.1.tgz", 2451 | "integrity": "sha512-E5fu6r7PvvPr5qAWE1RaUwIh/k6Zx/3OOkZ4rk5dBJkEWRrUuSgbMt2EO8IUTPTd6DOqU3LW6uTIwX5FRvXoFA==", 2452 | "dev": true, 2453 | "requires": { 2454 | "chalk": "2.3.0", 2455 | "diff": "3.4.0", 2456 | "jest-get-type": "21.2.0", 2457 | "pretty-format": "21.2.1" 2458 | } 2459 | }, 2460 | "jest-docblock": { 2461 | "version": "21.2.0", 2462 | "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-21.2.0.tgz", 2463 | "integrity": "sha512-5IZ7sY9dBAYSV+YjQ0Ovb540Ku7AO9Z5o2Cg789xj167iQuZ2cG+z0f3Uct6WeYLbU6aQiM2pCs7sZ+4dotydw==", 2464 | "dev": true 2465 | }, 2466 | "jest-environment-jsdom": { 2467 | "version": "21.2.1", 2468 | "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-21.2.1.tgz", 2469 | "integrity": "sha512-mecaeNh0eWmzNrUNMWARysc0E9R96UPBamNiOCYL28k7mksb1d0q6DD38WKP7ABffjnXyUWJPVaWRgUOivwXwg==", 2470 | "dev": true, 2471 | "requires": { 2472 | "jest-mock": "21.2.0", 2473 | "jest-util": "21.2.1", 2474 | "jsdom": "9.12.0" 2475 | } 2476 | }, 2477 | "jest-environment-node": { 2478 | "version": "21.2.1", 2479 | "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-21.2.1.tgz", 2480 | "integrity": "sha512-R211867wx9mVBVHzrjGRGTy5cd05K7eqzQl/WyZixR/VkJ4FayS8qkKXZyYnwZi6Rxo6WEV81cDbiUx/GfuLNw==", 2481 | "dev": true, 2482 | "requires": { 2483 | "jest-mock": "21.2.0", 2484 | "jest-util": "21.2.1" 2485 | } 2486 | }, 2487 | "jest-get-type": { 2488 | "version": "21.2.0", 2489 | "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-21.2.0.tgz", 2490 | "integrity": "sha512-y2fFw3C+D0yjNSDp7ab1kcd6NUYfy3waPTlD8yWkAtiocJdBRQqNoRqVfMNxgj+IjT0V5cBIHJO0z9vuSSZ43Q==", 2491 | "dev": true 2492 | }, 2493 | "jest-haste-map": { 2494 | "version": "21.2.0", 2495 | "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-21.2.0.tgz", 2496 | "integrity": "sha512-5LhsY/loPH7wwOFRMs+PT4aIAORJ2qwgbpMFlbWbxfN0bk3ZCwxJ530vrbSiTstMkYLao6JwBkLhCJ5XbY7ZHw==", 2497 | "dev": true, 2498 | "requires": { 2499 | "fb-watchman": "2.0.0", 2500 | "graceful-fs": "4.1.11", 2501 | "jest-docblock": "21.2.0", 2502 | "micromatch": "2.3.11", 2503 | "sane": "2.2.0", 2504 | "worker-farm": "1.5.0" 2505 | } 2506 | }, 2507 | "jest-jasmine2": { 2508 | "version": "21.2.1", 2509 | "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-21.2.1.tgz", 2510 | "integrity": "sha512-lw8FXXIEekD+jYNlStfgNsUHpfMWhWWCgHV7n0B7mA/vendH7vBFs8xybjQsDzJSduptBZJHqQX9SMssya9+3A==", 2511 | "dev": true, 2512 | "requires": { 2513 | "chalk": "2.3.0", 2514 | "expect": "21.2.1", 2515 | "graceful-fs": "4.1.11", 2516 | "jest-diff": "21.2.1", 2517 | "jest-matcher-utils": "21.2.1", 2518 | "jest-message-util": "21.2.1", 2519 | "jest-snapshot": "21.2.1", 2520 | "p-cancelable": "0.3.0" 2521 | } 2522 | }, 2523 | "jest-matcher-utils": { 2524 | "version": "21.2.1", 2525 | "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-21.2.1.tgz", 2526 | "integrity": "sha512-kn56My+sekD43dwQPrXBl9Zn9tAqwoy25xxe7/iY4u+mG8P3ALj5IK7MLHZ4Mi3xW7uWVCjGY8cm4PqgbsqMCg==", 2527 | "dev": true, 2528 | "requires": { 2529 | "chalk": "2.3.0", 2530 | "jest-get-type": "21.2.0", 2531 | "pretty-format": "21.2.1" 2532 | } 2533 | }, 2534 | "jest-message-util": { 2535 | "version": "21.2.1", 2536 | "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-21.2.1.tgz", 2537 | "integrity": "sha512-EbC1X2n0t9IdeMECJn2BOg7buOGivCvVNjqKMXTzQOu7uIfLml+keUfCALDh8o4rbtndIeyGU8/BKfoTr/LVDQ==", 2538 | "dev": true, 2539 | "requires": { 2540 | "chalk": "2.3.0", 2541 | "micromatch": "2.3.11", 2542 | "slash": "1.0.0" 2543 | } 2544 | }, 2545 | "jest-mock": { 2546 | "version": "21.2.0", 2547 | "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-21.2.0.tgz", 2548 | "integrity": "sha512-aZDfyVf0LEoABWiY6N0d+O963dUQSyUa4qgzurHR3TBDPen0YxKCJ6l2i7lQGh1tVdsuvdrCZ4qPj+A7PievCw==", 2549 | "dev": true 2550 | }, 2551 | "jest-regex-util": { 2552 | "version": "21.2.0", 2553 | "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-21.2.0.tgz", 2554 | "integrity": "sha512-BKQ1F83EQy0d9Jen/mcVX7D+lUt2tthhK/2gDWRgLDJRNOdRgSp1iVqFxP8EN1ARuypvDflRfPzYT8fQnoBQFQ==", 2555 | "dev": true 2556 | }, 2557 | "jest-resolve": { 2558 | "version": "21.2.0", 2559 | "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-21.2.0.tgz", 2560 | "integrity": "sha512-vefQ/Lr+VdNvHUZFQXWtOqHX3HEdOc2MtSahBO89qXywEbUxGPB9ZLP9+BHinkxb60UT2Q/tTDOS6rYc6Mwigw==", 2561 | "dev": true, 2562 | "requires": { 2563 | "browser-resolve": "1.11.2", 2564 | "chalk": "2.3.0", 2565 | "is-builtin-module": "1.0.0" 2566 | } 2567 | }, 2568 | "jest-resolve-dependencies": { 2569 | "version": "21.2.0", 2570 | "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-21.2.0.tgz", 2571 | "integrity": "sha512-ok8ybRFU5ScaAcfufIQrCbdNJSRZ85mkxJ1EhUp8Bhav1W1/jv/rl1Q6QoVQHObNxmKnbHVKrfLZbCbOsXQ+bQ==", 2572 | "dev": true, 2573 | "requires": { 2574 | "jest-regex-util": "21.2.0" 2575 | } 2576 | }, 2577 | "jest-runner": { 2578 | "version": "21.2.1", 2579 | "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-21.2.1.tgz", 2580 | "integrity": "sha512-Anb72BOQlHqF/zETqZ2K20dbYsnqW/nZO7jV8BYENl+3c44JhMrA8zd1lt52+N7ErnsQMd2HHKiVwN9GYSXmrg==", 2581 | "dev": true, 2582 | "requires": { 2583 | "jest-config": "21.2.1", 2584 | "jest-docblock": "21.2.0", 2585 | "jest-haste-map": "21.2.0", 2586 | "jest-jasmine2": "21.2.1", 2587 | "jest-message-util": "21.2.1", 2588 | "jest-runtime": "21.2.1", 2589 | "jest-util": "21.2.1", 2590 | "pify": "3.0.0", 2591 | "throat": "4.1.0", 2592 | "worker-farm": "1.5.0" 2593 | } 2594 | }, 2595 | "jest-runtime": { 2596 | "version": "21.2.1", 2597 | "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-21.2.1.tgz", 2598 | "integrity": "sha512-6omlpA3+NSE+rHwD0PQjNEjZeb2z+oRmuehMfM1tWQVum+E0WV3pFt26Am0DUfQkkPyTABvxITRjCUclYgSOsA==", 2599 | "dev": true, 2600 | "requires": { 2601 | "babel-core": "6.26.0", 2602 | "babel-jest": "21.2.0", 2603 | "babel-plugin-istanbul": "4.1.5", 2604 | "chalk": "2.3.0", 2605 | "convert-source-map": "1.5.0", 2606 | "graceful-fs": "4.1.11", 2607 | "jest-config": "21.2.1", 2608 | "jest-haste-map": "21.2.0", 2609 | "jest-regex-util": "21.2.0", 2610 | "jest-resolve": "21.2.0", 2611 | "jest-util": "21.2.1", 2612 | "json-stable-stringify": "1.0.1", 2613 | "micromatch": "2.3.11", 2614 | "slash": "1.0.0", 2615 | "strip-bom": "3.0.0", 2616 | "write-file-atomic": "2.3.0", 2617 | "yargs": "9.0.1" 2618 | }, 2619 | "dependencies": { 2620 | "strip-bom": { 2621 | "version": "3.0.0", 2622 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", 2623 | "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", 2624 | "dev": true 2625 | } 2626 | } 2627 | }, 2628 | "jest-snapshot": { 2629 | "version": "21.2.1", 2630 | "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-21.2.1.tgz", 2631 | "integrity": "sha512-bpaeBnDpdqaRTzN8tWg0DqOTo2DvD3StOemxn67CUd1p1Po+BUpvePAp44jdJ7Pxcjfg+42o4NHw1SxdCA2rvg==", 2632 | "dev": true, 2633 | "requires": { 2634 | "chalk": "2.3.0", 2635 | "jest-diff": "21.2.1", 2636 | "jest-matcher-utils": "21.2.1", 2637 | "mkdirp": "0.5.1", 2638 | "natural-compare": "1.4.0", 2639 | "pretty-format": "21.2.1" 2640 | } 2641 | }, 2642 | "jest-util": { 2643 | "version": "21.2.1", 2644 | "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-21.2.1.tgz", 2645 | "integrity": "sha512-r20W91rmHY3fnCoO7aOAlyfC51x2yeV3xF+prGsJAUsYhKeV670ZB8NO88Lwm7ASu8SdH0S+U+eFf498kjhA4g==", 2646 | "dev": true, 2647 | "requires": { 2648 | "callsites": "2.0.0", 2649 | "chalk": "2.3.0", 2650 | "graceful-fs": "4.1.11", 2651 | "jest-message-util": "21.2.1", 2652 | "jest-mock": "21.2.0", 2653 | "jest-validate": "21.2.1", 2654 | "mkdirp": "0.5.1" 2655 | } 2656 | }, 2657 | "jest-validate": { 2658 | "version": "21.2.1", 2659 | "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-21.2.1.tgz", 2660 | "integrity": "sha512-k4HLI1rZQjlU+EC682RlQ6oZvLrE5SCh3brseQc24vbZTxzT/k/3urar5QMCVgjadmSO7lECeGdc6YxnM3yEGg==", 2661 | "dev": true, 2662 | "requires": { 2663 | "chalk": "2.3.0", 2664 | "jest-get-type": "21.2.0", 2665 | "leven": "2.1.0", 2666 | "pretty-format": "21.2.1" 2667 | } 2668 | }, 2669 | "js-tokens": { 2670 | "version": "3.0.2", 2671 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", 2672 | "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", 2673 | "dev": true 2674 | }, 2675 | "js-yaml": { 2676 | "version": "3.10.0", 2677 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz", 2678 | "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", 2679 | "dev": true, 2680 | "requires": { 2681 | "argparse": "1.0.9", 2682 | "esprima": "4.0.0" 2683 | } 2684 | }, 2685 | "jsbn": { 2686 | "version": "0.1.1", 2687 | "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", 2688 | "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", 2689 | "dev": true, 2690 | "optional": true 2691 | }, 2692 | "jsdom": { 2693 | "version": "9.12.0", 2694 | "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-9.12.0.tgz", 2695 | "integrity": "sha1-6MVG//ywbADUgzyoRBD+1/igl9Q=", 2696 | "dev": true, 2697 | "requires": { 2698 | "abab": "1.0.4", 2699 | "acorn": "4.0.13", 2700 | "acorn-globals": "3.1.0", 2701 | "array-equal": "1.0.0", 2702 | "content-type-parser": "1.0.2", 2703 | "cssom": "0.3.2", 2704 | "cssstyle": "0.2.37", 2705 | "escodegen": "1.9.0", 2706 | "html-encoding-sniffer": "1.0.2", 2707 | "nwmatcher": "1.4.3", 2708 | "parse5": "1.5.1", 2709 | "request": "2.83.0", 2710 | "sax": "1.2.4", 2711 | "symbol-tree": "3.2.2", 2712 | "tough-cookie": "2.3.3", 2713 | "webidl-conversions": "4.0.2", 2714 | "whatwg-encoding": "1.0.3", 2715 | "whatwg-url": "4.8.0", 2716 | "xml-name-validator": "2.0.1" 2717 | } 2718 | }, 2719 | "jsesc": { 2720 | "version": "1.3.0", 2721 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", 2722 | "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", 2723 | "dev": true 2724 | }, 2725 | "json-schema": { 2726 | "version": "0.2.3", 2727 | "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", 2728 | "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", 2729 | "dev": true 2730 | }, 2731 | "json-schema-traverse": { 2732 | "version": "0.3.1", 2733 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", 2734 | "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", 2735 | "dev": true 2736 | }, 2737 | "json-stable-stringify": { 2738 | "version": "1.0.1", 2739 | "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", 2740 | "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", 2741 | "dev": true, 2742 | "requires": { 2743 | "jsonify": "0.0.0" 2744 | } 2745 | }, 2746 | "json-stringify-safe": { 2747 | "version": "5.0.1", 2748 | "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", 2749 | "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", 2750 | "dev": true 2751 | }, 2752 | "json5": { 2753 | "version": "0.5.1", 2754 | "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", 2755 | "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", 2756 | "dev": true 2757 | }, 2758 | "jsonify": { 2759 | "version": "0.0.0", 2760 | "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", 2761 | "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", 2762 | "dev": true 2763 | }, 2764 | "jsprim": { 2765 | "version": "1.4.1", 2766 | "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", 2767 | "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", 2768 | "dev": true, 2769 | "requires": { 2770 | "assert-plus": "1.0.0", 2771 | "extsprintf": "1.3.0", 2772 | "json-schema": "0.2.3", 2773 | "verror": "1.10.0" 2774 | } 2775 | }, 2776 | "kind-of": { 2777 | "version": "3.2.2", 2778 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 2779 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 2780 | "dev": true, 2781 | "requires": { 2782 | "is-buffer": "1.1.6" 2783 | } 2784 | }, 2785 | "lazy-cache": { 2786 | "version": "1.0.4", 2787 | "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", 2788 | "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", 2789 | "dev": true, 2790 | "optional": true 2791 | }, 2792 | "lcid": { 2793 | "version": "1.0.0", 2794 | "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", 2795 | "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", 2796 | "dev": true, 2797 | "requires": { 2798 | "invert-kv": "1.0.0" 2799 | } 2800 | }, 2801 | "leven": { 2802 | "version": "2.1.0", 2803 | "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", 2804 | "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=", 2805 | "dev": true 2806 | }, 2807 | "levn": { 2808 | "version": "0.3.0", 2809 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", 2810 | "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", 2811 | "dev": true, 2812 | "requires": { 2813 | "prelude-ls": "1.1.2", 2814 | "type-check": "0.3.2" 2815 | } 2816 | }, 2817 | "load-json-file": { 2818 | "version": "1.1.0", 2819 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", 2820 | "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", 2821 | "dev": true, 2822 | "requires": { 2823 | "graceful-fs": "4.1.11", 2824 | "parse-json": "2.2.0", 2825 | "pify": "2.3.0", 2826 | "pinkie-promise": "2.0.1", 2827 | "strip-bom": "2.0.0" 2828 | }, 2829 | "dependencies": { 2830 | "pify": { 2831 | "version": "2.3.0", 2832 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 2833 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", 2834 | "dev": true 2835 | } 2836 | } 2837 | }, 2838 | "locate-path": { 2839 | "version": "2.0.0", 2840 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", 2841 | "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", 2842 | "dev": true, 2843 | "requires": { 2844 | "p-locate": "2.0.0", 2845 | "path-exists": "3.0.0" 2846 | } 2847 | }, 2848 | "lodash": { 2849 | "version": "4.17.4", 2850 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", 2851 | "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" 2852 | }, 2853 | "longest": { 2854 | "version": "1.0.1", 2855 | "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", 2856 | "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", 2857 | "dev": true 2858 | }, 2859 | "loose-envify": { 2860 | "version": "1.3.1", 2861 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", 2862 | "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", 2863 | "dev": true, 2864 | "requires": { 2865 | "js-tokens": "3.0.2" 2866 | } 2867 | }, 2868 | "lru-cache": { 2869 | "version": "4.1.1", 2870 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", 2871 | "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", 2872 | "dev": true, 2873 | "requires": { 2874 | "pseudomap": "1.0.2", 2875 | "yallist": "2.1.2" 2876 | } 2877 | }, 2878 | "makeerror": { 2879 | "version": "1.0.11", 2880 | "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", 2881 | "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", 2882 | "dev": true, 2883 | "requires": { 2884 | "tmpl": "1.0.4" 2885 | } 2886 | }, 2887 | "mem": { 2888 | "version": "1.1.0", 2889 | "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", 2890 | "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", 2891 | "dev": true, 2892 | "requires": { 2893 | "mimic-fn": "1.1.0" 2894 | } 2895 | }, 2896 | "merge": { 2897 | "version": "1.2.0", 2898 | "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.0.tgz", 2899 | "integrity": "sha1-dTHjnUlJwoGma4xabgJl6LBYlNo=", 2900 | "dev": true 2901 | }, 2902 | "micromatch": { 2903 | "version": "2.3.11", 2904 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", 2905 | "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", 2906 | "dev": true, 2907 | "requires": { 2908 | "arr-diff": "2.0.0", 2909 | "array-unique": "0.2.1", 2910 | "braces": "1.8.5", 2911 | "expand-brackets": "0.1.5", 2912 | "extglob": "0.3.2", 2913 | "filename-regex": "2.0.1", 2914 | "is-extglob": "1.0.0", 2915 | "is-glob": "2.0.1", 2916 | "kind-of": "3.2.2", 2917 | "normalize-path": "2.1.1", 2918 | "object.omit": "2.0.1", 2919 | "parse-glob": "3.0.4", 2920 | "regex-cache": "0.4.4" 2921 | } 2922 | }, 2923 | "mime-db": { 2924 | "version": "1.30.0", 2925 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", 2926 | "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=", 2927 | "dev": true 2928 | }, 2929 | "mime-types": { 2930 | "version": "2.1.17", 2931 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", 2932 | "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", 2933 | "dev": true, 2934 | "requires": { 2935 | "mime-db": "1.30.0" 2936 | } 2937 | }, 2938 | "mimic-fn": { 2939 | "version": "1.1.0", 2940 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz", 2941 | "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=", 2942 | "dev": true 2943 | }, 2944 | "minimatch": { 2945 | "version": "3.0.4", 2946 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 2947 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 2948 | "dev": true, 2949 | "requires": { 2950 | "brace-expansion": "1.1.8" 2951 | } 2952 | }, 2953 | "minimist": { 2954 | "version": "0.0.8", 2955 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 2956 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", 2957 | "dev": true 2958 | }, 2959 | "mkdirp": { 2960 | "version": "0.5.1", 2961 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 2962 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 2963 | "dev": true, 2964 | "requires": { 2965 | "minimist": "0.0.8" 2966 | } 2967 | }, 2968 | "ms": { 2969 | "version": "2.0.0", 2970 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 2971 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", 2972 | "dev": true 2973 | }, 2974 | "nan": { 2975 | "version": "2.7.0", 2976 | "resolved": "https://registry.npmjs.org/nan/-/nan-2.7.0.tgz", 2977 | "integrity": "sha1-2Vv3IeyHfgjbJ27T/G63j5CDrUY=", 2978 | "dev": true, 2979 | "optional": true 2980 | }, 2981 | "natural-compare": { 2982 | "version": "1.4.0", 2983 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", 2984 | "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", 2985 | "dev": true 2986 | }, 2987 | "node-int64": { 2988 | "version": "0.4.0", 2989 | "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", 2990 | "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", 2991 | "dev": true 2992 | }, 2993 | "node-notifier": { 2994 | "version": "5.1.2", 2995 | "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.1.2.tgz", 2996 | "integrity": "sha1-L6nhJgX6EACdRFSdb82KY93g5P8=", 2997 | "dev": true, 2998 | "requires": { 2999 | "growly": "1.3.0", 3000 | "semver": "5.4.1", 3001 | "shellwords": "0.1.1", 3002 | "which": "1.3.0" 3003 | } 3004 | }, 3005 | "normalize-package-data": { 3006 | "version": "2.4.0", 3007 | "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", 3008 | "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", 3009 | "dev": true, 3010 | "requires": { 3011 | "hosted-git-info": "2.5.0", 3012 | "is-builtin-module": "1.0.0", 3013 | "semver": "5.4.1", 3014 | "validate-npm-package-license": "3.0.1" 3015 | } 3016 | }, 3017 | "normalize-path": { 3018 | "version": "2.1.1", 3019 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", 3020 | "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", 3021 | "dev": true, 3022 | "requires": { 3023 | "remove-trailing-separator": "1.1.0" 3024 | } 3025 | }, 3026 | "npm-run-path": { 3027 | "version": "2.0.2", 3028 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", 3029 | "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", 3030 | "dev": true, 3031 | "requires": { 3032 | "path-key": "2.0.1" 3033 | } 3034 | }, 3035 | "number-is-nan": { 3036 | "version": "1.0.1", 3037 | "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", 3038 | "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", 3039 | "dev": true 3040 | }, 3041 | "nwmatcher": { 3042 | "version": "1.4.3", 3043 | "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.3.tgz", 3044 | "integrity": "sha512-IKdSTiDWCarf2JTS5e9e2+5tPZGdkRJ79XjYV0pzK8Q9BpsFyBq1RGKxzs7Q8UBushGw7m6TzVKz6fcY99iSWw==", 3045 | "dev": true 3046 | }, 3047 | "oauth-sign": { 3048 | "version": "0.8.2", 3049 | "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", 3050 | "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", 3051 | "dev": true 3052 | }, 3053 | "object-assign": { 3054 | "version": "4.1.1", 3055 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 3056 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", 3057 | "dev": true 3058 | }, 3059 | "object.omit": { 3060 | "version": "2.0.1", 3061 | "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", 3062 | "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", 3063 | "dev": true, 3064 | "requires": { 3065 | "for-own": "0.1.5", 3066 | "is-extendable": "0.1.1" 3067 | } 3068 | }, 3069 | "once": { 3070 | "version": "1.4.0", 3071 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 3072 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 3073 | "dev": true, 3074 | "requires": { 3075 | "wrappy": "1.0.2" 3076 | } 3077 | }, 3078 | "optimist": { 3079 | "version": "0.6.1", 3080 | "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", 3081 | "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", 3082 | "dev": true, 3083 | "requires": { 3084 | "minimist": "0.0.8", 3085 | "wordwrap": "0.0.3" 3086 | } 3087 | }, 3088 | "optionator": { 3089 | "version": "0.8.2", 3090 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", 3091 | "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", 3092 | "dev": true, 3093 | "requires": { 3094 | "deep-is": "0.1.3", 3095 | "fast-levenshtein": "2.0.6", 3096 | "levn": "0.3.0", 3097 | "prelude-ls": "1.1.2", 3098 | "type-check": "0.3.2", 3099 | "wordwrap": "1.0.0" 3100 | }, 3101 | "dependencies": { 3102 | "wordwrap": { 3103 | "version": "1.0.0", 3104 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", 3105 | "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", 3106 | "dev": true 3107 | } 3108 | } 3109 | }, 3110 | "os-homedir": { 3111 | "version": "1.0.2", 3112 | "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", 3113 | "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", 3114 | "dev": true 3115 | }, 3116 | "os-locale": { 3117 | "version": "2.1.0", 3118 | "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", 3119 | "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", 3120 | "dev": true, 3121 | "requires": { 3122 | "execa": "0.7.0", 3123 | "lcid": "1.0.0", 3124 | "mem": "1.1.0" 3125 | } 3126 | }, 3127 | "os-tmpdir": { 3128 | "version": "1.0.2", 3129 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", 3130 | "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", 3131 | "dev": true 3132 | }, 3133 | "p-cancelable": { 3134 | "version": "0.3.0", 3135 | "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", 3136 | "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==", 3137 | "dev": true 3138 | }, 3139 | "p-finally": { 3140 | "version": "1.0.0", 3141 | "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", 3142 | "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", 3143 | "dev": true 3144 | }, 3145 | "p-limit": { 3146 | "version": "1.1.0", 3147 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", 3148 | "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=", 3149 | "dev": true 3150 | }, 3151 | "p-locate": { 3152 | "version": "2.0.0", 3153 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", 3154 | "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", 3155 | "dev": true, 3156 | "requires": { 3157 | "p-limit": "1.1.0" 3158 | } 3159 | }, 3160 | "parse-glob": { 3161 | "version": "3.0.4", 3162 | "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", 3163 | "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", 3164 | "dev": true, 3165 | "requires": { 3166 | "glob-base": "0.3.0", 3167 | "is-dotfile": "1.0.3", 3168 | "is-extglob": "1.0.0", 3169 | "is-glob": "2.0.1" 3170 | } 3171 | }, 3172 | "parse-json": { 3173 | "version": "2.2.0", 3174 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", 3175 | "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", 3176 | "dev": true, 3177 | "requires": { 3178 | "error-ex": "1.3.1" 3179 | } 3180 | }, 3181 | "parse5": { 3182 | "version": "1.5.1", 3183 | "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz", 3184 | "integrity": "sha1-m387DeMr543CQBsXVzzK8Pb1nZQ=", 3185 | "dev": true 3186 | }, 3187 | "path-exists": { 3188 | "version": "3.0.0", 3189 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", 3190 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", 3191 | "dev": true 3192 | }, 3193 | "path-is-absolute": { 3194 | "version": "1.0.1", 3195 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 3196 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 3197 | "dev": true 3198 | }, 3199 | "path-key": { 3200 | "version": "2.0.1", 3201 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", 3202 | "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", 3203 | "dev": true 3204 | }, 3205 | "path-parse": { 3206 | "version": "1.0.5", 3207 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", 3208 | "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", 3209 | "dev": true 3210 | }, 3211 | "path-type": { 3212 | "version": "1.1.0", 3213 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", 3214 | "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", 3215 | "dev": true, 3216 | "requires": { 3217 | "graceful-fs": "4.1.11", 3218 | "pify": "2.3.0", 3219 | "pinkie-promise": "2.0.1" 3220 | }, 3221 | "dependencies": { 3222 | "pify": { 3223 | "version": "2.3.0", 3224 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 3225 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", 3226 | "dev": true 3227 | } 3228 | } 3229 | }, 3230 | "performance-now": { 3231 | "version": "2.1.0", 3232 | "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", 3233 | "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", 3234 | "dev": true 3235 | }, 3236 | "pify": { 3237 | "version": "3.0.0", 3238 | "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", 3239 | "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", 3240 | "dev": true 3241 | }, 3242 | "pinkie": { 3243 | "version": "2.0.4", 3244 | "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", 3245 | "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", 3246 | "dev": true 3247 | }, 3248 | "pinkie-promise": { 3249 | "version": "2.0.1", 3250 | "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", 3251 | "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", 3252 | "dev": true, 3253 | "requires": { 3254 | "pinkie": "2.0.4" 3255 | } 3256 | }, 3257 | "prelude-ls": { 3258 | "version": "1.1.2", 3259 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", 3260 | "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", 3261 | "dev": true 3262 | }, 3263 | "preserve": { 3264 | "version": "0.2.0", 3265 | "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", 3266 | "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", 3267 | "dev": true 3268 | }, 3269 | "pretty-format": { 3270 | "version": "21.2.1", 3271 | "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-21.2.1.tgz", 3272 | "integrity": "sha512-ZdWPGYAnYfcVP8yKA3zFjCn8s4/17TeYH28MXuC8vTp0o21eXjbFGcOAXZEaDaOFJjc3h2qa7HQNHNshhvoh2A==", 3273 | "dev": true, 3274 | "requires": { 3275 | "ansi-regex": "3.0.0", 3276 | "ansi-styles": "3.2.0" 3277 | }, 3278 | "dependencies": { 3279 | "ansi-regex": { 3280 | "version": "3.0.0", 3281 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", 3282 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", 3283 | "dev": true 3284 | } 3285 | } 3286 | }, 3287 | "private": { 3288 | "version": "0.1.8", 3289 | "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", 3290 | "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", 3291 | "dev": true 3292 | }, 3293 | "prr": { 3294 | "version": "0.0.0", 3295 | "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", 3296 | "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=", 3297 | "dev": true 3298 | }, 3299 | "pseudomap": { 3300 | "version": "1.0.2", 3301 | "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", 3302 | "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", 3303 | "dev": true 3304 | }, 3305 | "punycode": { 3306 | "version": "1.4.1", 3307 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", 3308 | "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", 3309 | "dev": true 3310 | }, 3311 | "qs": { 3312 | "version": "6.5.1", 3313 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", 3314 | "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==", 3315 | "dev": true 3316 | }, 3317 | "randomatic": { 3318 | "version": "1.1.7", 3319 | "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", 3320 | "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", 3321 | "dev": true, 3322 | "requires": { 3323 | "is-number": "3.0.0", 3324 | "kind-of": "4.0.0" 3325 | }, 3326 | "dependencies": { 3327 | "is-number": { 3328 | "version": "3.0.0", 3329 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", 3330 | "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", 3331 | "dev": true, 3332 | "requires": { 3333 | "kind-of": "3.2.2" 3334 | }, 3335 | "dependencies": { 3336 | "kind-of": { 3337 | "version": "3.2.2", 3338 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 3339 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 3340 | "dev": true, 3341 | "requires": { 3342 | "is-buffer": "1.1.6" 3343 | } 3344 | } 3345 | } 3346 | }, 3347 | "kind-of": { 3348 | "version": "4.0.0", 3349 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", 3350 | "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", 3351 | "dev": true, 3352 | "requires": { 3353 | "is-buffer": "1.1.6" 3354 | } 3355 | } 3356 | } 3357 | }, 3358 | "read-pkg": { 3359 | "version": "1.1.0", 3360 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", 3361 | "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", 3362 | "dev": true, 3363 | "requires": { 3364 | "load-json-file": "1.1.0", 3365 | "normalize-package-data": "2.4.0", 3366 | "path-type": "1.1.0" 3367 | } 3368 | }, 3369 | "read-pkg-up": { 3370 | "version": "1.0.1", 3371 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", 3372 | "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", 3373 | "dev": true, 3374 | "requires": { 3375 | "find-up": "1.1.2", 3376 | "read-pkg": "1.1.0" 3377 | }, 3378 | "dependencies": { 3379 | "find-up": { 3380 | "version": "1.1.2", 3381 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", 3382 | "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", 3383 | "dev": true, 3384 | "requires": { 3385 | "path-exists": "2.1.0", 3386 | "pinkie-promise": "2.0.1" 3387 | } 3388 | }, 3389 | "path-exists": { 3390 | "version": "2.1.0", 3391 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", 3392 | "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", 3393 | "dev": true, 3394 | "requires": { 3395 | "pinkie-promise": "2.0.1" 3396 | } 3397 | } 3398 | } 3399 | }, 3400 | "regenerator-runtime": { 3401 | "version": "0.11.0", 3402 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", 3403 | "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==", 3404 | "dev": true 3405 | }, 3406 | "regex-cache": { 3407 | "version": "0.4.4", 3408 | "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", 3409 | "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", 3410 | "dev": true, 3411 | "requires": { 3412 | "is-equal-shallow": "0.1.3" 3413 | } 3414 | }, 3415 | "remove-trailing-separator": { 3416 | "version": "1.1.0", 3417 | "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", 3418 | "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", 3419 | "dev": true 3420 | }, 3421 | "repeat-element": { 3422 | "version": "1.1.2", 3423 | "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", 3424 | "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", 3425 | "dev": true 3426 | }, 3427 | "repeat-string": { 3428 | "version": "1.6.1", 3429 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", 3430 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", 3431 | "dev": true 3432 | }, 3433 | "repeating": { 3434 | "version": "2.0.1", 3435 | "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", 3436 | "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", 3437 | "dev": true, 3438 | "requires": { 3439 | "is-finite": "1.0.2" 3440 | } 3441 | }, 3442 | "request": { 3443 | "version": "2.83.0", 3444 | "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz", 3445 | "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==", 3446 | "dev": true, 3447 | "requires": { 3448 | "aws-sign2": "0.7.0", 3449 | "aws4": "1.6.0", 3450 | "caseless": "0.12.0", 3451 | "combined-stream": "1.0.5", 3452 | "extend": "3.0.1", 3453 | "forever-agent": "0.6.1", 3454 | "form-data": "2.3.1", 3455 | "har-validator": "5.0.3", 3456 | "hawk": "6.0.2", 3457 | "http-signature": "1.2.0", 3458 | "is-typedarray": "1.0.0", 3459 | "isstream": "0.1.2", 3460 | "json-stringify-safe": "5.0.1", 3461 | "mime-types": "2.1.17", 3462 | "oauth-sign": "0.8.2", 3463 | "performance-now": "2.1.0", 3464 | "qs": "6.5.1", 3465 | "safe-buffer": "5.1.1", 3466 | "stringstream": "0.0.5", 3467 | "tough-cookie": "2.3.3", 3468 | "tunnel-agent": "0.6.0", 3469 | "uuid": "3.1.0" 3470 | } 3471 | }, 3472 | "require-directory": { 3473 | "version": "2.1.1", 3474 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", 3475 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", 3476 | "dev": true 3477 | }, 3478 | "require-main-filename": { 3479 | "version": "1.0.1", 3480 | "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", 3481 | "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", 3482 | "dev": true 3483 | }, 3484 | "resolve": { 3485 | "version": "1.1.7", 3486 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", 3487 | "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", 3488 | "dev": true 3489 | }, 3490 | "right-align": { 3491 | "version": "0.1.3", 3492 | "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", 3493 | "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", 3494 | "dev": true, 3495 | "optional": true, 3496 | "requires": { 3497 | "align-text": "0.1.4" 3498 | } 3499 | }, 3500 | "rimraf": { 3501 | "version": "2.6.2", 3502 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", 3503 | "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", 3504 | "dev": true, 3505 | "requires": { 3506 | "glob": "7.1.2" 3507 | } 3508 | }, 3509 | "safe-buffer": { 3510 | "version": "5.1.1", 3511 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", 3512 | "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", 3513 | "dev": true 3514 | }, 3515 | "sane": { 3516 | "version": "2.2.0", 3517 | "resolved": "https://registry.npmjs.org/sane/-/sane-2.2.0.tgz", 3518 | "integrity": "sha512-OSJxhHO0CgPUw3lUm3GhfREAfza45smvEI9ozuFrxKG10GHVo0ryW9FK5VYlLvxj0SV7HVKHW0voYJIRu27GWg==", 3519 | "dev": true, 3520 | "requires": { 3521 | "anymatch": "1.3.2", 3522 | "exec-sh": "0.2.1", 3523 | "fb-watchman": "2.0.0", 3524 | "fsevents": "1.1.2", 3525 | "minimatch": "3.0.4", 3526 | "minimist": "1.2.0", 3527 | "walker": "1.0.7", 3528 | "watch": "0.18.0" 3529 | }, 3530 | "dependencies": { 3531 | "minimist": { 3532 | "version": "1.2.0", 3533 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", 3534 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", 3535 | "dev": true 3536 | } 3537 | } 3538 | }, 3539 | "sax": { 3540 | "version": "1.2.4", 3541 | "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", 3542 | "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", 3543 | "dev": true 3544 | }, 3545 | "semver": { 3546 | "version": "5.4.1", 3547 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", 3548 | "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", 3549 | "dev": true 3550 | }, 3551 | "set-blocking": { 3552 | "version": "2.0.0", 3553 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", 3554 | "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", 3555 | "dev": true 3556 | }, 3557 | "shebang-command": { 3558 | "version": "1.2.0", 3559 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", 3560 | "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", 3561 | "dev": true, 3562 | "requires": { 3563 | "shebang-regex": "1.0.0" 3564 | } 3565 | }, 3566 | "shebang-regex": { 3567 | "version": "1.0.0", 3568 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", 3569 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", 3570 | "dev": true 3571 | }, 3572 | "shellwords": { 3573 | "version": "0.1.1", 3574 | "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", 3575 | "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", 3576 | "dev": true 3577 | }, 3578 | "signal-exit": { 3579 | "version": "3.0.2", 3580 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", 3581 | "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", 3582 | "dev": true 3583 | }, 3584 | "slash": { 3585 | "version": "1.0.0", 3586 | "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", 3587 | "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", 3588 | "dev": true 3589 | }, 3590 | "sntp": { 3591 | "version": "2.1.0", 3592 | "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", 3593 | "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", 3594 | "dev": true, 3595 | "requires": { 3596 | "hoek": "4.2.0" 3597 | } 3598 | }, 3599 | "source-map": { 3600 | "version": "0.5.7", 3601 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 3602 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", 3603 | "dev": true 3604 | }, 3605 | "source-map-support": { 3606 | "version": "0.4.18", 3607 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", 3608 | "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", 3609 | "dev": true, 3610 | "requires": { 3611 | "source-map": "0.5.7" 3612 | } 3613 | }, 3614 | "spdx-correct": { 3615 | "version": "1.0.2", 3616 | "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", 3617 | "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", 3618 | "dev": true, 3619 | "requires": { 3620 | "spdx-license-ids": "1.2.2" 3621 | } 3622 | }, 3623 | "spdx-expression-parse": { 3624 | "version": "1.0.4", 3625 | "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", 3626 | "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", 3627 | "dev": true 3628 | }, 3629 | "spdx-license-ids": { 3630 | "version": "1.2.2", 3631 | "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", 3632 | "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", 3633 | "dev": true 3634 | }, 3635 | "sprintf-js": { 3636 | "version": "1.0.3", 3637 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", 3638 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", 3639 | "dev": true 3640 | }, 3641 | "sshpk": { 3642 | "version": "1.13.1", 3643 | "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", 3644 | "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", 3645 | "dev": true, 3646 | "requires": { 3647 | "asn1": "0.2.3", 3648 | "assert-plus": "1.0.0", 3649 | "bcrypt-pbkdf": "1.0.1", 3650 | "dashdash": "1.14.1", 3651 | "ecc-jsbn": "0.1.1", 3652 | "getpass": "0.1.7", 3653 | "jsbn": "0.1.1", 3654 | "tweetnacl": "0.14.5" 3655 | } 3656 | }, 3657 | "string-length": { 3658 | "version": "2.0.0", 3659 | "resolved": "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz", 3660 | "integrity": "sha1-1A27aGo6zpYMHP/KVivyxF+DY+0=", 3661 | "dev": true, 3662 | "requires": { 3663 | "astral-regex": "1.0.0", 3664 | "strip-ansi": "4.0.0" 3665 | } 3666 | }, 3667 | "string-width": { 3668 | "version": "2.1.1", 3669 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", 3670 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", 3671 | "dev": true, 3672 | "requires": { 3673 | "is-fullwidth-code-point": "2.0.0", 3674 | "strip-ansi": "4.0.0" 3675 | }, 3676 | "dependencies": { 3677 | "is-fullwidth-code-point": { 3678 | "version": "2.0.0", 3679 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 3680 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", 3681 | "dev": true 3682 | } 3683 | } 3684 | }, 3685 | "stringstream": { 3686 | "version": "0.0.5", 3687 | "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", 3688 | "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", 3689 | "dev": true 3690 | }, 3691 | "strip-ansi": { 3692 | "version": "4.0.0", 3693 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", 3694 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", 3695 | "dev": true, 3696 | "requires": { 3697 | "ansi-regex": "3.0.0" 3698 | }, 3699 | "dependencies": { 3700 | "ansi-regex": { 3701 | "version": "3.0.0", 3702 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", 3703 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", 3704 | "dev": true 3705 | } 3706 | } 3707 | }, 3708 | "strip-bom": { 3709 | "version": "2.0.0", 3710 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", 3711 | "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", 3712 | "dev": true, 3713 | "requires": { 3714 | "is-utf8": "0.2.1" 3715 | } 3716 | }, 3717 | "strip-eof": { 3718 | "version": "1.0.0", 3719 | "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", 3720 | "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", 3721 | "dev": true 3722 | }, 3723 | "supports-color": { 3724 | "version": "4.5.0", 3725 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", 3726 | "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", 3727 | "dev": true, 3728 | "requires": { 3729 | "has-flag": "2.0.0" 3730 | } 3731 | }, 3732 | "symbol-tree": { 3733 | "version": "3.2.2", 3734 | "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz", 3735 | "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=", 3736 | "dev": true 3737 | }, 3738 | "test-exclude": { 3739 | "version": "4.1.1", 3740 | "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.1.1.tgz", 3741 | "integrity": "sha512-35+Asrsk3XHJDBgf/VRFexPgh3UyETv8IAn/LRTiZjVy6rjPVqdEk8dJcJYBzl1w0XCJM48lvTy8SfEsCWS4nA==", 3742 | "dev": true, 3743 | "requires": { 3744 | "arrify": "1.0.1", 3745 | "micromatch": "2.3.11", 3746 | "object-assign": "4.1.1", 3747 | "read-pkg-up": "1.0.1", 3748 | "require-main-filename": "1.0.1" 3749 | } 3750 | }, 3751 | "throat": { 3752 | "version": "4.1.0", 3753 | "resolved": "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz", 3754 | "integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=", 3755 | "dev": true 3756 | }, 3757 | "tmpl": { 3758 | "version": "1.0.4", 3759 | "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", 3760 | "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=", 3761 | "dev": true 3762 | }, 3763 | "to-fast-properties": { 3764 | "version": "1.0.3", 3765 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", 3766 | "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", 3767 | "dev": true 3768 | }, 3769 | "tough-cookie": { 3770 | "version": "2.3.3", 3771 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", 3772 | "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", 3773 | "dev": true, 3774 | "requires": { 3775 | "punycode": "1.4.1" 3776 | } 3777 | }, 3778 | "tr46": { 3779 | "version": "0.0.3", 3780 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", 3781 | "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", 3782 | "dev": true 3783 | }, 3784 | "trim-right": { 3785 | "version": "1.0.1", 3786 | "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", 3787 | "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", 3788 | "dev": true 3789 | }, 3790 | "tunnel-agent": { 3791 | "version": "0.6.0", 3792 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", 3793 | "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", 3794 | "dev": true, 3795 | "requires": { 3796 | "safe-buffer": "5.1.1" 3797 | } 3798 | }, 3799 | "tweetnacl": { 3800 | "version": "0.14.5", 3801 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", 3802 | "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", 3803 | "dev": true, 3804 | "optional": true 3805 | }, 3806 | "type-check": { 3807 | "version": "0.3.2", 3808 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", 3809 | "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", 3810 | "dev": true, 3811 | "requires": { 3812 | "prelude-ls": "1.1.2" 3813 | } 3814 | }, 3815 | "typescript": { 3816 | "version": "2.5.3", 3817 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.5.3.tgz", 3818 | "integrity": "sha512-ptLSQs2S4QuS6/OD1eAKG+S5G8QQtrU5RT32JULdZQtM1L3WTi34Wsu48Yndzi8xsObRAB9RPt/KhA9wlpEF6w==" 3819 | }, 3820 | "uglify-js": { 3821 | "version": "2.8.29", 3822 | "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", 3823 | "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", 3824 | "dev": true, 3825 | "optional": true, 3826 | "requires": { 3827 | "source-map": "0.5.7", 3828 | "uglify-to-browserify": "1.0.2", 3829 | "yargs": "3.10.0" 3830 | }, 3831 | "dependencies": { 3832 | "yargs": { 3833 | "version": "3.10.0", 3834 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", 3835 | "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", 3836 | "dev": true, 3837 | "optional": true, 3838 | "requires": { 3839 | "camelcase": "1.2.1", 3840 | "cliui": "2.1.0", 3841 | "decamelize": "1.2.0", 3842 | "window-size": "0.1.0" 3843 | } 3844 | } 3845 | } 3846 | }, 3847 | "uglify-to-browserify": { 3848 | "version": "1.0.2", 3849 | "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", 3850 | "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", 3851 | "dev": true, 3852 | "optional": true 3853 | }, 3854 | "uuid": { 3855 | "version": "3.1.0", 3856 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", 3857 | "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==", 3858 | "dev": true 3859 | }, 3860 | "validate-npm-package-license": { 3861 | "version": "3.0.1", 3862 | "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", 3863 | "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", 3864 | "dev": true, 3865 | "requires": { 3866 | "spdx-correct": "1.0.2", 3867 | "spdx-expression-parse": "1.0.4" 3868 | } 3869 | }, 3870 | "verror": { 3871 | "version": "1.10.0", 3872 | "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", 3873 | "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", 3874 | "dev": true, 3875 | "requires": { 3876 | "assert-plus": "1.0.0", 3877 | "core-util-is": "1.0.2", 3878 | "extsprintf": "1.3.0" 3879 | } 3880 | }, 3881 | "walker": { 3882 | "version": "1.0.7", 3883 | "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", 3884 | "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", 3885 | "dev": true, 3886 | "requires": { 3887 | "makeerror": "1.0.11" 3888 | } 3889 | }, 3890 | "watch": { 3891 | "version": "0.18.0", 3892 | "resolved": "https://registry.npmjs.org/watch/-/watch-0.18.0.tgz", 3893 | "integrity": "sha1-KAlUdsbffJDJYxOJkMClQj60uYY=", 3894 | "dev": true, 3895 | "requires": { 3896 | "exec-sh": "0.2.1", 3897 | "minimist": "1.2.0" 3898 | }, 3899 | "dependencies": { 3900 | "minimist": { 3901 | "version": "1.2.0", 3902 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", 3903 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", 3904 | "dev": true 3905 | } 3906 | } 3907 | }, 3908 | "webidl-conversions": { 3909 | "version": "4.0.2", 3910 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", 3911 | "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", 3912 | "dev": true 3913 | }, 3914 | "whatwg-encoding": { 3915 | "version": "1.0.3", 3916 | "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.3.tgz", 3917 | "integrity": "sha512-jLBwwKUhi8WtBfsMQlL4bUUcT8sMkAtQinscJAe/M4KHCkHuUJAF6vuB0tueNIw4c8ziO6AkRmgY+jL3a0iiPw==", 3918 | "dev": true, 3919 | "requires": { 3920 | "iconv-lite": "0.4.19" 3921 | } 3922 | }, 3923 | "whatwg-url": { 3924 | "version": "4.8.0", 3925 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-4.8.0.tgz", 3926 | "integrity": "sha1-0pgaqRSMHgCkHFphMRZqtGg7vMA=", 3927 | "dev": true, 3928 | "requires": { 3929 | "tr46": "0.0.3", 3930 | "webidl-conversions": "3.0.1" 3931 | }, 3932 | "dependencies": { 3933 | "webidl-conversions": { 3934 | "version": "3.0.1", 3935 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", 3936 | "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", 3937 | "dev": true 3938 | } 3939 | } 3940 | }, 3941 | "which": { 3942 | "version": "1.3.0", 3943 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", 3944 | "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", 3945 | "dev": true, 3946 | "requires": { 3947 | "isexe": "2.0.0" 3948 | } 3949 | }, 3950 | "which-module": { 3951 | "version": "2.0.0", 3952 | "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", 3953 | "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", 3954 | "dev": true 3955 | }, 3956 | "window-size": { 3957 | "version": "0.1.0", 3958 | "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", 3959 | "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", 3960 | "dev": true, 3961 | "optional": true 3962 | }, 3963 | "wordwrap": { 3964 | "version": "0.0.3", 3965 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", 3966 | "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", 3967 | "dev": true 3968 | }, 3969 | "worker-farm": { 3970 | "version": "1.5.0", 3971 | "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.5.0.tgz", 3972 | "integrity": "sha512-DHRiUggxtbruaTwnLDm2/BRDKZIoOYvrgYUj5Bam4fU6Gtvc0FaEyoswFPBjMXAweGW2H4BDNIpy//1yXXuaqQ==", 3973 | "dev": true, 3974 | "requires": { 3975 | "errno": "0.1.4", 3976 | "xtend": "4.0.1" 3977 | } 3978 | }, 3979 | "wrap-ansi": { 3980 | "version": "2.1.0", 3981 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", 3982 | "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", 3983 | "dev": true, 3984 | "requires": { 3985 | "string-width": "1.0.2", 3986 | "strip-ansi": "3.0.1" 3987 | }, 3988 | "dependencies": { 3989 | "string-width": { 3990 | "version": "1.0.2", 3991 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", 3992 | "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", 3993 | "dev": true, 3994 | "requires": { 3995 | "code-point-at": "1.1.0", 3996 | "is-fullwidth-code-point": "1.0.0", 3997 | "strip-ansi": "3.0.1" 3998 | } 3999 | }, 4000 | "strip-ansi": { 4001 | "version": "3.0.1", 4002 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", 4003 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 4004 | "dev": true, 4005 | "requires": { 4006 | "ansi-regex": "2.1.1" 4007 | } 4008 | } 4009 | } 4010 | }, 4011 | "wrappy": { 4012 | "version": "1.0.2", 4013 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 4014 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 4015 | "dev": true 4016 | }, 4017 | "write-file-atomic": { 4018 | "version": "2.3.0", 4019 | "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz", 4020 | "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", 4021 | "dev": true, 4022 | "requires": { 4023 | "graceful-fs": "4.1.11", 4024 | "imurmurhash": "0.1.4", 4025 | "signal-exit": "3.0.2" 4026 | } 4027 | }, 4028 | "xml-name-validator": { 4029 | "version": "2.0.1", 4030 | "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz", 4031 | "integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU=", 4032 | "dev": true 4033 | }, 4034 | "xtend": { 4035 | "version": "4.0.1", 4036 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", 4037 | "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", 4038 | "dev": true 4039 | }, 4040 | "y18n": { 4041 | "version": "3.2.1", 4042 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", 4043 | "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", 4044 | "dev": true 4045 | }, 4046 | "yallist": { 4047 | "version": "2.1.2", 4048 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", 4049 | "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", 4050 | "dev": true 4051 | }, 4052 | "yargs": { 4053 | "version": "9.0.1", 4054 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-9.0.1.tgz", 4055 | "integrity": "sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=", 4056 | "dev": true, 4057 | "requires": { 4058 | "camelcase": "4.1.0", 4059 | "cliui": "3.2.0", 4060 | "decamelize": "1.2.0", 4061 | "get-caller-file": "1.0.2", 4062 | "os-locale": "2.1.0", 4063 | "read-pkg-up": "2.0.0", 4064 | "require-directory": "2.1.1", 4065 | "require-main-filename": "1.0.1", 4066 | "set-blocking": "2.0.0", 4067 | "string-width": "2.1.1", 4068 | "which-module": "2.0.0", 4069 | "y18n": "3.2.1", 4070 | "yargs-parser": "7.0.0" 4071 | }, 4072 | "dependencies": { 4073 | "camelcase": { 4074 | "version": "4.1.0", 4075 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", 4076 | "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", 4077 | "dev": true 4078 | }, 4079 | "cliui": { 4080 | "version": "3.2.0", 4081 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", 4082 | "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", 4083 | "dev": true, 4084 | "requires": { 4085 | "string-width": "1.0.2", 4086 | "strip-ansi": "3.0.1", 4087 | "wrap-ansi": "2.1.0" 4088 | }, 4089 | "dependencies": { 4090 | "string-width": { 4091 | "version": "1.0.2", 4092 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", 4093 | "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", 4094 | "dev": true, 4095 | "requires": { 4096 | "code-point-at": "1.1.0", 4097 | "is-fullwidth-code-point": "1.0.0", 4098 | "strip-ansi": "3.0.1" 4099 | } 4100 | } 4101 | } 4102 | }, 4103 | "load-json-file": { 4104 | "version": "2.0.0", 4105 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", 4106 | "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", 4107 | "dev": true, 4108 | "requires": { 4109 | "graceful-fs": "4.1.11", 4110 | "parse-json": "2.2.0", 4111 | "pify": "2.3.0", 4112 | "strip-bom": "3.0.0" 4113 | } 4114 | }, 4115 | "path-type": { 4116 | "version": "2.0.0", 4117 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", 4118 | "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", 4119 | "dev": true, 4120 | "requires": { 4121 | "pify": "2.3.0" 4122 | } 4123 | }, 4124 | "pify": { 4125 | "version": "2.3.0", 4126 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 4127 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", 4128 | "dev": true 4129 | }, 4130 | "read-pkg": { 4131 | "version": "2.0.0", 4132 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", 4133 | "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", 4134 | "dev": true, 4135 | "requires": { 4136 | "load-json-file": "2.0.0", 4137 | "normalize-package-data": "2.4.0", 4138 | "path-type": "2.0.0" 4139 | } 4140 | }, 4141 | "read-pkg-up": { 4142 | "version": "2.0.0", 4143 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", 4144 | "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", 4145 | "dev": true, 4146 | "requires": { 4147 | "find-up": "2.1.0", 4148 | "read-pkg": "2.0.0" 4149 | } 4150 | }, 4151 | "strip-ansi": { 4152 | "version": "3.0.1", 4153 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", 4154 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 4155 | "dev": true, 4156 | "requires": { 4157 | "ansi-regex": "2.1.1" 4158 | } 4159 | }, 4160 | "strip-bom": { 4161 | "version": "3.0.0", 4162 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", 4163 | "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", 4164 | "dev": true 4165 | } 4166 | } 4167 | }, 4168 | "yargs-parser": { 4169 | "version": "7.0.0", 4170 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", 4171 | "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", 4172 | "dev": true, 4173 | "requires": { 4174 | "camelcase": "4.1.0" 4175 | }, 4176 | "dependencies": { 4177 | "camelcase": { 4178 | "version": "4.1.0", 4179 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", 4180 | "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", 4181 | "dev": true 4182 | } 4183 | } 4184 | } 4185 | } 4186 | } 4187 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "function-composition-typescript", 3 | "version": "1.0.0", 4 | "description": "a Function Composition Example In Typescript", 5 | "homepage": "https://medium.com/@mateuszsokola", 6 | "main": "index.js", 7 | "scripts": { 8 | "test": "./node_modules/.bin/jest" 9 | }, 10 | "jest": { 11 | "moduleFileExtensions": [ 12 | "ts", 13 | "tsx", 14 | "js" 15 | ], 16 | "transform": { 17 | "^.+\\.(ts|tsx)$": "/test-preprocessor.js" 18 | }, 19 | "testMatch": [ 20 | "**/__tests__/*.spec.(ts|tsx|js)" 21 | ] 22 | }, 23 | "repository": { 24 | "type": "git", 25 | "url": "git+https://github.com/mateuszsokola/function-composition-typescript.git" 26 | }, 27 | "author": "Mateusz Sokola", 28 | "license": "MIT", 29 | "dependencies": { 30 | "@types/lodash": "^4.14.80", 31 | "lodash": "^4.17.4", 32 | "typescript": "^2.5.3" 33 | }, 34 | "devDependencies": { 35 | "@types/jest": "^21.1.5", 36 | "jest": "^21.2.1" 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/__tests__/formatMoney.spec.ts: -------------------------------------------------------------------------------- 1 | import formatMoney from "../formatMoney"; 2 | 3 | describe("formatMoney", ():void => { 4 | it("formates positive numbers", ():void => { 5 | expect(formatMoney(0)).toBe("0.00"); 6 | expect(formatMoney(1)).toBe("0.01"); 7 | expect(formatMoney(100)).toBe("1.00"); 8 | expect(formatMoney(1299)).toBe("12.99"); 9 | expect(formatMoney(10000000)).toBe("100,000.00"); 10 | }) 11 | 12 | it("formates negative numbers", ():void => { 13 | expect(formatMoney(-1)).toBe("-0.01"); 14 | expect(formatMoney(-100)).toBe("-1.00"); 15 | expect(formatMoney(-1299)).toBe("-12.99"); 16 | expect(formatMoney(-10000000)).toBe("-100,000.00"); 17 | }) 18 | 19 | it("throws error when non-integer numbers given", ():void => { 20 | expect(():string => formatMoney(0.1)).toThrowError("Number must be integer") 21 | }) 22 | }) -------------------------------------------------------------------------------- /src/formatMoney.ts: -------------------------------------------------------------------------------- 1 | import { join } from "lodash"; 2 | 3 | import format from "./string/format"; 4 | 5 | /** 6 | * Decimal separator 7 | */ 8 | export const decimalSeparator:string = "."; 9 | 10 | /** 11 | * Thousand separator 12 | */ 13 | export const thousandSeparator:string = ","; 14 | 15 | /** 16 | * Thousand Regular Expression 17 | */ 18 | const thousandRegExp:RegExp = /[0-9]{1,3}/g; 19 | 20 | /** 21 | * Dollar formatter 22 | */ 23 | const formatDollars:Function = format(thousandRegExp, thousandSeparator); 24 | 25 | /** 26 | * Converts number to string. If amount of cents is lower than 10, appends "0" in front of the string. 27 | * 28 | * @example 29 | * ``` 30 | * formatCents(0) // 00 31 | * formatCents(9) // 09 32 | * formatCents(25) // 25 33 | * formatCents(250) // 250 34 | * ``` 35 | * @param {number} cents 36 | * @returns {string} 37 | */ 38 | function formatCents(cents:number): string { 39 | if (cents < 10) { 40 | return `0${cents}`; 41 | } 42 | 43 | return `${cents}`; 44 | } 45 | 46 | /** 47 | * Formats given amount (in cents) to the US money format. 48 | * NOTE: Use cents (100 = $1) 49 | * 50 | * @example 51 | * ``` 52 | * formatMoney(999) // 9.99 53 | * formatMoney(129999) // 1,299.99 54 | * ``` 55 | * @param {number} amountInCents 56 | * @returns {string} 57 | */ 58 | export default function formatMoney(amountInCents: number): string { 59 | // throws error if non-integer 60 | if (! Number.isInteger(amountInCents)) { 61 | throw new Error("Number must be integer"); 62 | } 63 | 64 | // absolute number, it supports number below 0. 65 | const inCents = Math.abs(amountInCents); 66 | 67 | // take cents out 68 | const cents:number = inCents % 100; 69 | // dollars = (total - cents) / 100 70 | const dollars:number = (inCents - cents) / 100; 71 | 72 | // format dollars and cents 73 | const moneyString:string = join([formatDollars(dollars), formatCents(cents)], decimalSeparator); 74 | 75 | // if below 0 append "-" in front of the output 76 | const amountChar:string = amountInCents < 0 ? "-" : ""; 77 | 78 | // e.g. -1234.99 79 | return `${amountChar}${moneyString}`; 80 | } 81 | -------------------------------------------------------------------------------- /src/string/__tests__/format.spec.ts: -------------------------------------------------------------------------------- 1 | import format from "../format"; 2 | 3 | describe("string#format", ():void => { 4 | it("is a function factory", ():void => { 5 | const formatter:Function = format(/a-z/g, ","); 6 | 7 | expect(formatter).toBeInstanceOf(Function) 8 | }) 9 | 10 | it("appends separator to matching string", ():void => { 11 | const formatter:Function = format(/[0-9]{1,3}/g, ","); 12 | 13 | expect(formatter("1000")).toBe("1,000"); 14 | expect(formatter("10100")).toBe("10,100"); 15 | expect(formatter("100000000")).toBe("100,000,000"); 16 | }) 17 | 18 | it("return empty string if no match", ():void => { 19 | const formatter:Function = format(/[0-9]{1,3}/g, ","); 20 | 21 | expect(formatter("")).toBe(""); 22 | }) 23 | }) -------------------------------------------------------------------------------- /src/string/__tests__/reverse.spec.ts: -------------------------------------------------------------------------------- 1 | import reverse from "../reverse"; 2 | 3 | describe("string#reverse", ():void => { 4 | it("reverses string", ():void => { 5 | expect(reverse("abcdef")).toBe("fedcba"); 6 | expect(reverse("adam")).toBe("mada"); 7 | }) 8 | 9 | it("keeps upper letters", ():void => { 10 | expect(reverse("Adam")).toBe("madA"); 11 | expect(reverse("Mateusz")).toBe("zsuetaM"); 12 | }) 13 | 14 | it("retrieves empty string when given empty string or null", ():void => { 15 | expect(reverse("")).toBe(""); 16 | expect(reverse(null)).toBe(""); 17 | 18 | }) 19 | }) -------------------------------------------------------------------------------- /src/string/format.ts: -------------------------------------------------------------------------------- 1 | import { curryRight, flow, join } from "lodash"; 2 | 3 | import match from "./match"; 4 | import reverse from "./reverse"; 5 | 6 | /** 7 | * Reversed curry of string#match function. 8 | * 9 | * @example 10 | * ``` 11 | * matchCurry(RegExp)(string) 12 | * ``` 13 | */ 14 | const matchCurry:Function = curryRight(match); 15 | 16 | /** 17 | * Reversed curry of lodash#join function. 18 | * 19 | * @example 20 | * ``` 21 | * joinCurry(separator)(string) 22 | * ``` 23 | * @link https://github.com/lodash/lodash/blob/4.17.4/lodash.js#L7608 24 | */ 25 | const joinCurry:Function = curryRight(join); 26 | 27 | /** 28 | * A Format factory. 29 | * 30 | * @example 31 | * ``` 32 | * format(RegExp, separator)(string) 33 | * ``` 34 | * @param {RegExp} match 35 | * @param {string} string 36 | * @returns {Fuction} 37 | */ 38 | export default function format(match:RegExp, separator:string):Function { 39 | return flow([ 40 | reverse, 41 | matchCurry(match), 42 | joinCurry(separator), 43 | reverse, 44 | ]); 45 | } -------------------------------------------------------------------------------- /src/string/match.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * String#match 3 | * 4 | * @param {string} string 5 | * @param {RegExp} regexp 6 | */ 7 | export default function match(string:string, regexp: RegExp):Array { 8 | return string.match(regexp) || []; 9 | } 10 | -------------------------------------------------------------------------------- /src/string/reverse.ts: -------------------------------------------------------------------------------- 1 | import { curryRight, flow, join, split, reverse } from "lodash"; 2 | 3 | /** 4 | * Reversed curry of lodash#split function. 5 | * 6 | * @example 7 | * ``` 8 | * splitCurry(limit)(separator)(string) 9 | * ``` 10 | * @link https://github.com/lodash/lodash/blob/4.17.4/lodash.js#L6856 11 | */ 12 | const splitCurry:Function = curryRight(split); 13 | 14 | /** 15 | * Reversed curry of lodash#join function. 16 | * 17 | * @example 18 | * ``` 19 | * joinCurry(separator)(string) 20 | * ``` 21 | * @link https://github.com/lodash/lodash/blob/4.17.4/lodash.js#L7608 22 | */ 23 | const joinCurry:Function = curryRight(join); 24 | 25 | /** 26 | * Retrieves reverted string. 27 | * 28 | * @param {string} string 29 | * @returns {string} 30 | */ 31 | export default flow([ 32 | splitCurry(undefined)(""), // "abc" => ["a", "b", "c"] 33 | reverse, // ["a", "b", "c"] => ["c", "b", "a"] 34 | joinCurry(""), // ["c", "b", "a"] => "cba" 35 | ]); -------------------------------------------------------------------------------- /test-preprocessor.js: -------------------------------------------------------------------------------- 1 | const tsc = require('typescript'); 2 | const tsConfig = require('./tsconfig.json'); 3 | 4 | module.exports = { 5 | process(src, path) { 6 | if (path.endsWith('.ts') || path.endsWith('.tsx') || path.endsWith('.js')) { 7 | return tsc.transpile(src, tsConfig.compilerOptions, path, []); 8 | } 9 | return src; 10 | }, 11 | }; -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "sourceMap": true, 4 | "strictNullChecks": true, 5 | "skipLibCheck": true, 6 | "module": "commonjs", 7 | "target": "es6" 8 | }, 9 | "include": [ 10 | "./src/**/*" 11 | ], 12 | "exclude": [ 13 | "node_modules" 14 | ] 15 | } --------------------------------------------------------------------------------