├── .editorconfig ├── .gitignore ├── .prettierrc ├── .travis.yml ├── NOTES.md ├── README.md ├── package-lock.json ├── package.json ├── renovate.json └── src ├── FUN.md ├── PARTY.md ├── __tests__ ├── chill.test.js ├── fun.test.js └── party.test.js ├── chill.js ├── fun.js ├── index.js └── party.js /.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see http://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | end_of_line = lf 9 | insert_final_newline = true 10 | trim_trailing_whitespace = true -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "singleQuote": true 3 | } 4 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | 3 | node_js: 4 | - '10' 5 | 6 | script: 7 | - npm run test:ci 8 | -------------------------------------------------------------------------------- /NOTES.md: -------------------------------------------------------------------------------- 1 | # pipe vs compose 2 | 3 | For some reason I've thought I needed a function for doing function composition. 4 | My real intention was to use something to pipe results from one computation to another as composition passes the value from right to left. 5 | 6 | This article about [Pipe Function in JavaScript](https://medium.com/@venomnert/pipe-function-in-javascript-8a22097a538e) has provided help in remembering what I wanted to achieve. 7 | 8 | In fact I have seen this many times before in [staltz/callbag-pipe](https://github.com/staltz/callbag-pipe) and RxJS. 9 | 10 | ## API considerations 11 | 12 | To enable the option to compose pipelines out of smaller parts with async code, all functional helpers would need to be able to work with Promises. 13 | 14 | ```js 15 | const fetchUser = id => 16 | fetch('/user/' + id) 17 | .then(res => res.json()) 18 | 19 | const fn = pipe( 20 | fromPromise(fetchUser), 21 | map(x => x + 1), 22 | withDefault(10) 23 | ) 24 | 25 | const id = await fn(10023) 26 | ``` 27 | 28 | # AST Analysis 29 | 30 | - [eslint/generator-eslint](https://github.com/eslint/generator-eslint) Yeoman generator ofr ESLint plugins and rules. 31 | - [Writing Custom Lint Rules for Your Picky Developers](https://flexport.engineering/writing-custom-lint-rules-for-your-picky-developers-67732afa1803) article about writing a simple ESLint rule. 32 | - [Working with Rules](https://eslint.org/docs/developer-guide/working-with-rules) official ESLint docs about writing rules. 33 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # chilled-js 2 | 3 | What if JavaScript could chill a little bit with all the errors being thrown here and there? 4 | 5 | [![Build Status](https://travis-ci.org/halfzebra/chilled-js.svg?branch=master)](https://travis-ci.org/halfzebra/chilled-js) 6 | 7 | ## TL;DR 8 | 9 | ```js 10 | function parse(raw) { 11 | try { 12 | return [ null, JSON.parse(raw) ] 13 | } catch (err) { 14 | return [ err, null ] 15 | } 16 | } 17 | 18 | let [ err, ok ] = parse(...) 19 | ``` 20 | 21 | ## Comparing to other kinds of error handling 22 | 23 | | | Nullable | try..catch and throw | Callback | Promise | chilled | 24 | | :--- | :---: | :---: | :---: | :---: | :---: | 25 | | Sync | :heavy_check_mark: | :heavy_check_mark: | | | :heavy_check_mark: | 26 | | Async | | | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | 27 | | Error Context | | :confused: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | 28 | | Composability | :heavy_check_mark: | | | :heavy_check_mark: | :heavy_check_mark: | 29 | 30 | Dr. Freeze saying "Everybody Chill!" 31 | 32 | ## Usage 33 | 34 | ### Sync 35 | 36 | Helps to capture the error close to the context when working with functions which throw exceptions. 37 | 38 | ```js 39 | const parse = chill(JSON.parse) 40 | 41 | let [ err, ok ] = parse('{ "id": 1 }') 42 | 43 | if (err) { 44 | // Handle the error. 45 | } 46 | 47 | console.log(ok) 48 | ``` 49 | 50 | ### Async 51 | 52 | Removes exception bubbling when using Async Await. 53 | 54 | ```js 55 | const url = 'https://jsonplaceholder.typicode.com/todos/1' 56 | 57 | async function () { 58 | let [ err, ok ] = await chill( 59 | () => fetch(url).then(response => response.json()) 60 | )() 61 | 62 | if (err) { 63 | // Handle the error. 64 | } 65 | 66 | // Celebrate the success at async programming! 67 | console.log(ok) 68 | }() 69 | ``` 70 | 71 | ## Inspiration 72 | 73 | - [Error handling and Go](https://blog.golang.org/error-handling-and-go) 74 | - [Result](https://package.elm-lang.org/packages/elm/core/latest/Result) type from Elm 75 | - [Data.Either](http://hackage.haskell.org/package/base-4.12.0.0/docs/Data-Either.html) type from Haskell 76 | - [scopsy/await-to-js](https://github.com/scopsy/await-to-js) a JavaScript library exploring a similar concept 77 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "requires": true, 3 | "lockfileVersion": 1, 4 | "dependencies": { 5 | "@babel/code-frame": { 6 | "version": "7.5.5", 7 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", 8 | "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", 9 | "dev": true, 10 | "requires": { 11 | "@babel/highlight": "^7.0.0" 12 | } 13 | }, 14 | "@babel/core": { 15 | "version": "7.7.7", 16 | "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.7.7.tgz", 17 | "integrity": "sha512-jlSjuj/7z138NLZALxVgrx13AOtqip42ATZP7+kYl53GvDV6+4dCek1mVUo8z8c8Xnw/mx2q3d9HWh3griuesQ==", 18 | "dev": true, 19 | "requires": { 20 | "@babel/code-frame": "^7.5.5", 21 | "@babel/generator": "^7.7.7", 22 | "@babel/helpers": "^7.7.4", 23 | "@babel/parser": "^7.7.7", 24 | "@babel/template": "^7.7.4", 25 | "@babel/traverse": "^7.7.4", 26 | "@babel/types": "^7.7.4", 27 | "convert-source-map": "^1.7.0", 28 | "debug": "^4.1.0", 29 | "json5": "^2.1.0", 30 | "lodash": "^4.17.13", 31 | "resolve": "^1.3.2", 32 | "semver": "^5.4.1", 33 | "source-map": "^0.5.0" 34 | }, 35 | "dependencies": { 36 | "debug": { 37 | "version": "4.1.1", 38 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", 39 | "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", 40 | "dev": true, 41 | "requires": { 42 | "ms": "^2.1.1" 43 | } 44 | }, 45 | "ms": { 46 | "version": "2.1.2", 47 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 48 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 49 | "dev": true 50 | }, 51 | "source-map": { 52 | "version": "0.5.7", 53 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 54 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", 55 | "dev": true 56 | } 57 | } 58 | }, 59 | "@babel/generator": { 60 | "version": "7.7.7", 61 | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.7.tgz", 62 | "integrity": "sha512-/AOIBpHh/JU1l0ZFS4kiRCBnLi6OTHzh0RPk3h9isBxkkqELtQNFi1Vr/tiG9p1yfoUdKVwISuXWQR+hwwM4VQ==", 63 | "dev": true, 64 | "requires": { 65 | "@babel/types": "^7.7.4", 66 | "jsesc": "^2.5.1", 67 | "lodash": "^4.17.13", 68 | "source-map": "^0.5.0" 69 | }, 70 | "dependencies": { 71 | "source-map": { 72 | "version": "0.5.7", 73 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 74 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", 75 | "dev": true 76 | } 77 | } 78 | }, 79 | "@babel/helper-function-name": { 80 | "version": "7.7.4", 81 | "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.4.tgz", 82 | "integrity": "sha512-AnkGIdiBhEuiwdoMnKm7jfPfqItZhgRaZfMg1XX3bS25INOnLPjPG1Ppnajh8eqgt5kPJnfqrRHqFqmjKDZLzQ==", 83 | "dev": true, 84 | "requires": { 85 | "@babel/helper-get-function-arity": "^7.7.4", 86 | "@babel/template": "^7.7.4", 87 | "@babel/types": "^7.7.4" 88 | } 89 | }, 90 | "@babel/helper-get-function-arity": { 91 | "version": "7.7.4", 92 | "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz", 93 | "integrity": "sha512-QTGKEdCkjgzgfJ3bAyRwF4yyT3pg+vDgan8DSivq1eS0gwi+KGKE5x8kRcbeFTb/673mkO5SN1IZfmCfA5o+EA==", 94 | "dev": true, 95 | "requires": { 96 | "@babel/types": "^7.7.4" 97 | } 98 | }, 99 | "@babel/helper-plugin-utils": { 100 | "version": "7.0.0", 101 | "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", 102 | "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==", 103 | "dev": true 104 | }, 105 | "@babel/helper-split-export-declaration": { 106 | "version": "7.7.4", 107 | "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.4.tgz", 108 | "integrity": "sha512-guAg1SXFcVr04Guk9eq0S4/rWS++sbmyqosJzVs8+1fH5NI+ZcmkaSkc7dmtAFbHFva6yRJnjW3yAcGxjueDug==", 109 | "dev": true, 110 | "requires": { 111 | "@babel/types": "^7.7.4" 112 | } 113 | }, 114 | "@babel/helpers": { 115 | "version": "7.7.4", 116 | "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.7.4.tgz", 117 | "integrity": "sha512-ak5NGZGJ6LV85Q1Zc9gn2n+ayXOizryhjSUBTdu5ih1tlVCJeuQENzc4ItyCVhINVXvIT/ZQ4mheGIsfBkpskg==", 118 | "dev": true, 119 | "requires": { 120 | "@babel/template": "^7.7.4", 121 | "@babel/traverse": "^7.7.4", 122 | "@babel/types": "^7.7.4" 123 | } 124 | }, 125 | "@babel/highlight": { 126 | "version": "7.5.0", 127 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", 128 | "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==", 129 | "dev": true, 130 | "requires": { 131 | "chalk": "^2.0.0", 132 | "esutils": "^2.0.2", 133 | "js-tokens": "^4.0.0" 134 | } 135 | }, 136 | "@babel/parser": { 137 | "version": "7.7.7", 138 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.7.tgz", 139 | "integrity": "sha512-WtTZMZAZLbeymhkd/sEaPD8IQyGAhmuTuvTzLiCFM7iXiVdY0gc0IaI+cW0fh1BnSMbJSzXX6/fHllgHKwHhXw==", 140 | "dev": true 141 | }, 142 | "@babel/plugin-syntax-object-rest-spread": { 143 | "version": "7.7.4", 144 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.7.4.tgz", 145 | "integrity": "sha512-mObR+r+KZq0XhRVS2BrBKBpr5jqrqzlPvS9C9vuOf5ilSwzloAl7RPWLrgKdWS6IreaVrjHxTjtyqFiOisaCwg==", 146 | "dev": true, 147 | "requires": { 148 | "@babel/helper-plugin-utils": "^7.0.0" 149 | } 150 | }, 151 | "@babel/template": { 152 | "version": "7.7.4", 153 | "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.4.tgz", 154 | "integrity": "sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw==", 155 | "dev": true, 156 | "requires": { 157 | "@babel/code-frame": "^7.0.0", 158 | "@babel/parser": "^7.7.4", 159 | "@babel/types": "^7.7.4" 160 | } 161 | }, 162 | "@babel/traverse": { 163 | "version": "7.7.4", 164 | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.7.4.tgz", 165 | "integrity": "sha512-P1L58hQyupn8+ezVA2z5KBm4/Zr4lCC8dwKCMYzsa5jFMDMQAzaBNy9W5VjB+KAmBjb40U7a/H6ao+Xo+9saIw==", 166 | "dev": true, 167 | "requires": { 168 | "@babel/code-frame": "^7.5.5", 169 | "@babel/generator": "^7.7.4", 170 | "@babel/helper-function-name": "^7.7.4", 171 | "@babel/helper-split-export-declaration": "^7.7.4", 172 | "@babel/parser": "^7.7.4", 173 | "@babel/types": "^7.7.4", 174 | "debug": "^4.1.0", 175 | "globals": "^11.1.0", 176 | "lodash": "^4.17.13" 177 | }, 178 | "dependencies": { 179 | "debug": { 180 | "version": "4.1.1", 181 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", 182 | "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", 183 | "dev": true, 184 | "requires": { 185 | "ms": "^2.1.1" 186 | } 187 | }, 188 | "ms": { 189 | "version": "2.1.2", 190 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 191 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 192 | "dev": true 193 | } 194 | } 195 | }, 196 | "@babel/types": { 197 | "version": "7.7.4", 198 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", 199 | "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", 200 | "dev": true, 201 | "requires": { 202 | "esutils": "^2.0.2", 203 | "lodash": "^4.17.13", 204 | "to-fast-properties": "^2.0.0" 205 | } 206 | }, 207 | "@cnakazawa/watch": { 208 | "version": "1.0.3", 209 | "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.3.tgz", 210 | "integrity": "sha512-r5160ogAvGyHsal38Kux7YYtodEKOj89RGb28ht1jh3SJb08VwRwAKKJL0bGb04Zd/3r9FL3BFIc3bBidYffCA==", 211 | "dev": true, 212 | "requires": { 213 | "exec-sh": "^0.3.2", 214 | "minimist": "^1.2.0" 215 | } 216 | }, 217 | "@jest/console": { 218 | "version": "24.9.0", 219 | "resolved": "https://registry.npmjs.org/@jest/console/-/console-24.9.0.tgz", 220 | "integrity": "sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ==", 221 | "dev": true, 222 | "requires": { 223 | "@jest/source-map": "^24.9.0", 224 | "chalk": "^2.0.1", 225 | "slash": "^2.0.0" 226 | } 227 | }, 228 | "@jest/core": { 229 | "version": "24.9.0", 230 | "resolved": "https://registry.npmjs.org/@jest/core/-/core-24.9.0.tgz", 231 | "integrity": "sha512-Fogg3s4wlAr1VX7q+rhV9RVnUv5tD7VuWfYy1+whMiWUrvl7U3QJSJyWcDio9Lq2prqYsZaeTv2Rz24pWGkJ2A==", 232 | "dev": true, 233 | "requires": { 234 | "@jest/console": "^24.7.1", 235 | "@jest/reporters": "^24.9.0", 236 | "@jest/test-result": "^24.9.0", 237 | "@jest/transform": "^24.9.0", 238 | "@jest/types": "^24.9.0", 239 | "ansi-escapes": "^3.0.0", 240 | "chalk": "^2.0.1", 241 | "exit": "^0.1.2", 242 | "graceful-fs": "^4.1.15", 243 | "jest-changed-files": "^24.9.0", 244 | "jest-config": "^24.9.0", 245 | "jest-haste-map": "^24.9.0", 246 | "jest-message-util": "^24.9.0", 247 | "jest-regex-util": "^24.3.0", 248 | "jest-resolve": "^24.9.0", 249 | "jest-resolve-dependencies": "^24.9.0", 250 | "jest-runner": "^24.9.0", 251 | "jest-runtime": "^24.9.0", 252 | "jest-snapshot": "^24.9.0", 253 | "jest-util": "^24.9.0", 254 | "jest-validate": "^24.9.0", 255 | "jest-watcher": "^24.9.0", 256 | "micromatch": "^3.1.10", 257 | "p-each-series": "^1.0.0", 258 | "realpath-native": "^1.1.0", 259 | "rimraf": "^2.5.4", 260 | "slash": "^2.0.0", 261 | "strip-ansi": "^5.0.0" 262 | } 263 | }, 264 | "@jest/environment": { 265 | "version": "24.9.0", 266 | "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-24.9.0.tgz", 267 | "integrity": "sha512-5A1QluTPhvdIPFYnO3sZC3smkNeXPVELz7ikPbhUj0bQjB07EoE9qtLrem14ZUYWdVayYbsjVwIiL4WBIMV4aQ==", 268 | "dev": true, 269 | "requires": { 270 | "@jest/fake-timers": "^24.9.0", 271 | "@jest/transform": "^24.9.0", 272 | "@jest/types": "^24.9.0", 273 | "jest-mock": "^24.9.0" 274 | } 275 | }, 276 | "@jest/fake-timers": { 277 | "version": "24.9.0", 278 | "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-24.9.0.tgz", 279 | "integrity": "sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A==", 280 | "dev": true, 281 | "requires": { 282 | "@jest/types": "^24.9.0", 283 | "jest-message-util": "^24.9.0", 284 | "jest-mock": "^24.9.0" 285 | } 286 | }, 287 | "@jest/reporters": { 288 | "version": "24.9.0", 289 | "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-24.9.0.tgz", 290 | "integrity": "sha512-mu4X0yjaHrffOsWmVLzitKmmmWSQ3GGuefgNscUSWNiUNcEOSEQk9k3pERKEQVBb0Cnn88+UESIsZEMH3o88Gw==", 291 | "dev": true, 292 | "requires": { 293 | "@jest/environment": "^24.9.0", 294 | "@jest/test-result": "^24.9.0", 295 | "@jest/transform": "^24.9.0", 296 | "@jest/types": "^24.9.0", 297 | "chalk": "^2.0.1", 298 | "exit": "^0.1.2", 299 | "glob": "^7.1.2", 300 | "istanbul-lib-coverage": "^2.0.2", 301 | "istanbul-lib-instrument": "^3.0.1", 302 | "istanbul-lib-report": "^2.0.4", 303 | "istanbul-lib-source-maps": "^3.0.1", 304 | "istanbul-reports": "^2.2.6", 305 | "jest-haste-map": "^24.9.0", 306 | "jest-resolve": "^24.9.0", 307 | "jest-runtime": "^24.9.0", 308 | "jest-util": "^24.9.0", 309 | "jest-worker": "^24.6.0", 310 | "node-notifier": "^5.4.2", 311 | "slash": "^2.0.0", 312 | "source-map": "^0.6.0", 313 | "string-length": "^2.0.0" 314 | } 315 | }, 316 | "@jest/source-map": { 317 | "version": "24.9.0", 318 | "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-24.9.0.tgz", 319 | "integrity": "sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg==", 320 | "dev": true, 321 | "requires": { 322 | "callsites": "^3.0.0", 323 | "graceful-fs": "^4.1.15", 324 | "source-map": "^0.6.0" 325 | } 326 | }, 327 | "@jest/test-result": { 328 | "version": "24.9.0", 329 | "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-24.9.0.tgz", 330 | "integrity": "sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA==", 331 | "dev": true, 332 | "requires": { 333 | "@jest/console": "^24.9.0", 334 | "@jest/types": "^24.9.0", 335 | "@types/istanbul-lib-coverage": "^2.0.0" 336 | } 337 | }, 338 | "@jest/test-sequencer": { 339 | "version": "24.9.0", 340 | "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-24.9.0.tgz", 341 | "integrity": "sha512-6qqsU4o0kW1dvA95qfNog8v8gkRN9ph6Lz7r96IvZpHdNipP2cBcb07J1Z45mz/VIS01OHJ3pY8T5fUY38tg4A==", 342 | "dev": true, 343 | "requires": { 344 | "@jest/test-result": "^24.9.0", 345 | "jest-haste-map": "^24.9.0", 346 | "jest-runner": "^24.9.0", 347 | "jest-runtime": "^24.9.0" 348 | } 349 | }, 350 | "@jest/transform": { 351 | "version": "24.9.0", 352 | "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-24.9.0.tgz", 353 | "integrity": "sha512-TcQUmyNRxV94S0QpMOnZl0++6RMiqpbH/ZMccFB/amku6Uwvyb1cjYX7xkp5nGNkbX4QPH/FcB6q1HBTHynLmQ==", 354 | "dev": true, 355 | "requires": { 356 | "@babel/core": "^7.1.0", 357 | "@jest/types": "^24.9.0", 358 | "babel-plugin-istanbul": "^5.1.0", 359 | "chalk": "^2.0.1", 360 | "convert-source-map": "^1.4.0", 361 | "fast-json-stable-stringify": "^2.0.0", 362 | "graceful-fs": "^4.1.15", 363 | "jest-haste-map": "^24.9.0", 364 | "jest-regex-util": "^24.9.0", 365 | "jest-util": "^24.9.0", 366 | "micromatch": "^3.1.10", 367 | "pirates": "^4.0.1", 368 | "realpath-native": "^1.1.0", 369 | "slash": "^2.0.0", 370 | "source-map": "^0.6.1", 371 | "write-file-atomic": "2.4.1" 372 | } 373 | }, 374 | "@jest/types": { 375 | "version": "24.9.0", 376 | "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", 377 | "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", 378 | "dev": true, 379 | "requires": { 380 | "@types/istanbul-lib-coverage": "^2.0.0", 381 | "@types/istanbul-reports": "^1.1.1", 382 | "@types/yargs": "^13.0.0" 383 | } 384 | }, 385 | "@types/babel__core": { 386 | "version": "7.1.3", 387 | "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.3.tgz", 388 | "integrity": "sha512-8fBo0UR2CcwWxeX7WIIgJ7lXjasFxoYgRnFHUj+hRvKkpiBJbxhdAPTCY6/ZKM0uxANFVzt4yObSLuTiTnazDA==", 389 | "dev": true, 390 | "requires": { 391 | "@babel/parser": "^7.1.0", 392 | "@babel/types": "^7.0.0", 393 | "@types/babel__generator": "*", 394 | "@types/babel__template": "*", 395 | "@types/babel__traverse": "*" 396 | } 397 | }, 398 | "@types/babel__generator": { 399 | "version": "7.6.1", 400 | "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.1.tgz", 401 | "integrity": "sha512-bBKm+2VPJcMRVwNhxKu8W+5/zT7pwNEqeokFOmbvVSqGzFneNxYcEBro9Ac7/N9tlsaPYnZLK8J1LWKkMsLAew==", 402 | "dev": true, 403 | "requires": { 404 | "@babel/types": "^7.0.0" 405 | } 406 | }, 407 | "@types/babel__template": { 408 | "version": "7.0.2", 409 | "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.0.2.tgz", 410 | "integrity": "sha512-/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg==", 411 | "dev": true, 412 | "requires": { 413 | "@babel/parser": "^7.1.0", 414 | "@babel/types": "^7.0.0" 415 | } 416 | }, 417 | "@types/babel__traverse": { 418 | "version": "7.0.8", 419 | "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.8.tgz", 420 | "integrity": "sha512-yGeB2dHEdvxjP0y4UbRtQaSkXJ9649fYCmIdRoul5kfAoGCwxuCbMhag0k3RPfnuh9kPGm8x89btcfDEXdVWGw==", 421 | "dev": true, 422 | "requires": { 423 | "@babel/types": "^7.3.0" 424 | } 425 | }, 426 | "@types/istanbul-lib-coverage": { 427 | "version": "2.0.1", 428 | "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz", 429 | "integrity": "sha512-hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg==", 430 | "dev": true 431 | }, 432 | "@types/istanbul-lib-report": { 433 | "version": "1.1.1", 434 | "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz", 435 | "integrity": "sha512-3BUTyMzbZa2DtDI2BkERNC6jJw2Mr2Y0oGI7mRxYNBPxppbtEK1F66u3bKwU2g+wxwWI7PAoRpJnOY1grJqzHg==", 436 | "dev": true, 437 | "requires": { 438 | "@types/istanbul-lib-coverage": "*" 439 | } 440 | }, 441 | "@types/istanbul-reports": { 442 | "version": "1.1.1", 443 | "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.1.tgz", 444 | "integrity": "sha512-UpYjBi8xefVChsCoBpKShdxTllC9pwISirfoZsUa2AAdQg/Jd2KQGtSbw+ya7GPo7x/wAPlH6JBhKhAsXUEZNA==", 445 | "dev": true, 446 | "requires": { 447 | "@types/istanbul-lib-coverage": "*", 448 | "@types/istanbul-lib-report": "*" 449 | } 450 | }, 451 | "@types/stack-utils": { 452 | "version": "1.0.1", 453 | "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz", 454 | "integrity": "sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==", 455 | "dev": true 456 | }, 457 | "@types/yargs": { 458 | "version": "13.0.4", 459 | "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.4.tgz", 460 | "integrity": "sha512-Ke1WmBbIkVM8bpvsNEcGgQM70XcEh/nbpxQhW7FhrsbCsXSY9BmLB1+LHtD7r9zrsOcFlLiF+a/UeJsdfw3C5A==", 461 | "dev": true, 462 | "requires": { 463 | "@types/yargs-parser": "*" 464 | } 465 | }, 466 | "@types/yargs-parser": { 467 | "version": "13.1.0", 468 | "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-13.1.0.tgz", 469 | "integrity": "sha512-gCubfBUZ6KxzoibJ+SCUc/57Ms1jz5NjHe4+dI2krNmU5zCPAphyLJYyTOg06ueIyfj+SaCUqmzun7ImlxDcKg==", 470 | "dev": true 471 | }, 472 | "abab": { 473 | "version": "2.0.3", 474 | "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.3.tgz", 475 | "integrity": "sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg==", 476 | "dev": true 477 | }, 478 | "acorn": { 479 | "version": "5.7.3", 480 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", 481 | "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", 482 | "dev": true 483 | }, 484 | "acorn-globals": { 485 | "version": "4.3.4", 486 | "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz", 487 | "integrity": "sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==", 488 | "dev": true, 489 | "requires": { 490 | "acorn": "^6.0.1", 491 | "acorn-walk": "^6.0.1" 492 | }, 493 | "dependencies": { 494 | "acorn": { 495 | "version": "6.4.0", 496 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.0.tgz", 497 | "integrity": "sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw==", 498 | "dev": true 499 | } 500 | } 501 | }, 502 | "acorn-walk": { 503 | "version": "6.2.0", 504 | "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz", 505 | "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==", 506 | "dev": true 507 | }, 508 | "ajv": { 509 | "version": "6.10.2", 510 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", 511 | "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", 512 | "dev": true, 513 | "requires": { 514 | "fast-deep-equal": "^2.0.1", 515 | "fast-json-stable-stringify": "^2.0.0", 516 | "json-schema-traverse": "^0.4.1", 517 | "uri-js": "^4.2.2" 518 | } 519 | }, 520 | "ansi-escapes": { 521 | "version": "3.2.0", 522 | "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", 523 | "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", 524 | "dev": true 525 | }, 526 | "ansi-regex": { 527 | "version": "4.1.0", 528 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", 529 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", 530 | "dev": true 531 | }, 532 | "ansi-styles": { 533 | "version": "3.2.1", 534 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 535 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 536 | "dev": true, 537 | "requires": { 538 | "color-convert": "^1.9.0" 539 | } 540 | }, 541 | "anymatch": { 542 | "version": "2.0.0", 543 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", 544 | "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", 545 | "dev": true, 546 | "requires": { 547 | "micromatch": "^3.1.4", 548 | "normalize-path": "^2.1.1" 549 | } 550 | }, 551 | "arr-diff": { 552 | "version": "4.0.0", 553 | "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", 554 | "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", 555 | "dev": true 556 | }, 557 | "arr-flatten": { 558 | "version": "1.1.0", 559 | "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", 560 | "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", 561 | "dev": true 562 | }, 563 | "arr-union": { 564 | "version": "3.1.0", 565 | "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", 566 | "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", 567 | "dev": true 568 | }, 569 | "array-equal": { 570 | "version": "1.0.0", 571 | "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", 572 | "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", 573 | "dev": true 574 | }, 575 | "array-unique": { 576 | "version": "0.3.2", 577 | "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", 578 | "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", 579 | "dev": true 580 | }, 581 | "asn1": { 582 | "version": "0.2.4", 583 | "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", 584 | "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", 585 | "dev": true, 586 | "requires": { 587 | "safer-buffer": "~2.1.0" 588 | } 589 | }, 590 | "assert-plus": { 591 | "version": "1.0.0", 592 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 593 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", 594 | "dev": true 595 | }, 596 | "assign-symbols": { 597 | "version": "1.0.0", 598 | "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", 599 | "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", 600 | "dev": true 601 | }, 602 | "astral-regex": { 603 | "version": "1.0.0", 604 | "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", 605 | "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", 606 | "dev": true 607 | }, 608 | "async-limiter": { 609 | "version": "1.0.1", 610 | "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", 611 | "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", 612 | "dev": true 613 | }, 614 | "asynckit": { 615 | "version": "0.4.0", 616 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 617 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", 618 | "dev": true 619 | }, 620 | "atob": { 621 | "version": "2.1.2", 622 | "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", 623 | "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", 624 | "dev": true 625 | }, 626 | "aws-sign2": { 627 | "version": "0.7.0", 628 | "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", 629 | "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", 630 | "dev": true 631 | }, 632 | "aws4": { 633 | "version": "1.9.0", 634 | "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.0.tgz", 635 | "integrity": "sha512-Uvq6hVe90D0B2WEnUqtdgY1bATGz3mw33nH9Y+dmA+w5DHvUmBgkr5rM/KCHpCsiFNRUfokW/szpPPgMK2hm4A==", 636 | "dev": true 637 | }, 638 | "babel-jest": { 639 | "version": "24.9.0", 640 | "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-24.9.0.tgz", 641 | "integrity": "sha512-ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw==", 642 | "dev": true, 643 | "requires": { 644 | "@jest/transform": "^24.9.0", 645 | "@jest/types": "^24.9.0", 646 | "@types/babel__core": "^7.1.0", 647 | "babel-plugin-istanbul": "^5.1.0", 648 | "babel-preset-jest": "^24.9.0", 649 | "chalk": "^2.4.2", 650 | "slash": "^2.0.0" 651 | } 652 | }, 653 | "babel-plugin-istanbul": { 654 | "version": "5.2.0", 655 | "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz", 656 | "integrity": "sha512-5LphC0USA8t4i1zCtjbbNb6jJj/9+X6P37Qfirc/70EQ34xKlMW+a1RHGwxGI+SwWpNwZ27HqvzAobeqaXwiZw==", 657 | "dev": true, 658 | "requires": { 659 | "@babel/helper-plugin-utils": "^7.0.0", 660 | "find-up": "^3.0.0", 661 | "istanbul-lib-instrument": "^3.3.0", 662 | "test-exclude": "^5.2.3" 663 | } 664 | }, 665 | "babel-plugin-jest-hoist": { 666 | "version": "24.9.0", 667 | "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz", 668 | "integrity": "sha512-2EMA2P8Vp7lG0RAzr4HXqtYwacfMErOuv1U3wrvxHX6rD1sV6xS3WXG3r8TRQ2r6w8OhvSdWt+z41hQNwNm3Xw==", 669 | "dev": true, 670 | "requires": { 671 | "@types/babel__traverse": "^7.0.6" 672 | } 673 | }, 674 | "babel-preset-jest": { 675 | "version": "24.9.0", 676 | "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz", 677 | "integrity": "sha512-izTUuhE4TMfTRPF92fFwD2QfdXaZW08qvWTFCI51V8rW5x00UuPgc3ajRoWofXOuxjfcOM5zzSYsQS3H8KGCAg==", 678 | "dev": true, 679 | "requires": { 680 | "@babel/plugin-syntax-object-rest-spread": "^7.0.0", 681 | "babel-plugin-jest-hoist": "^24.9.0" 682 | } 683 | }, 684 | "balanced-match": { 685 | "version": "1.0.0", 686 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 687 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", 688 | "dev": true 689 | }, 690 | "base": { 691 | "version": "0.11.2", 692 | "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", 693 | "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", 694 | "dev": true, 695 | "requires": { 696 | "cache-base": "^1.0.1", 697 | "class-utils": "^0.3.5", 698 | "component-emitter": "^1.2.1", 699 | "define-property": "^1.0.0", 700 | "isobject": "^3.0.1", 701 | "mixin-deep": "^1.2.0", 702 | "pascalcase": "^0.1.1" 703 | }, 704 | "dependencies": { 705 | "define-property": { 706 | "version": "1.0.0", 707 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", 708 | "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", 709 | "dev": true, 710 | "requires": { 711 | "is-descriptor": "^1.0.0" 712 | } 713 | }, 714 | "is-accessor-descriptor": { 715 | "version": "1.0.0", 716 | "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", 717 | "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", 718 | "dev": true, 719 | "requires": { 720 | "kind-of": "^6.0.0" 721 | } 722 | }, 723 | "is-data-descriptor": { 724 | "version": "1.0.0", 725 | "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", 726 | "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", 727 | "dev": true, 728 | "requires": { 729 | "kind-of": "^6.0.0" 730 | } 731 | }, 732 | "is-descriptor": { 733 | "version": "1.0.2", 734 | "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", 735 | "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", 736 | "dev": true, 737 | "requires": { 738 | "is-accessor-descriptor": "^1.0.0", 739 | "is-data-descriptor": "^1.0.0", 740 | "kind-of": "^6.0.2" 741 | } 742 | } 743 | } 744 | }, 745 | "bcrypt-pbkdf": { 746 | "version": "1.0.2", 747 | "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", 748 | "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", 749 | "dev": true, 750 | "requires": { 751 | "tweetnacl": "^0.14.3" 752 | } 753 | }, 754 | "bindings": { 755 | "version": "1.5.0", 756 | "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", 757 | "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", 758 | "dev": true, 759 | "optional": true, 760 | "requires": { 761 | "file-uri-to-path": "1.0.0" 762 | } 763 | }, 764 | "brace-expansion": { 765 | "version": "1.1.11", 766 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 767 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 768 | "dev": true, 769 | "requires": { 770 | "balanced-match": "^1.0.0", 771 | "concat-map": "0.0.1" 772 | } 773 | }, 774 | "braces": { 775 | "version": "2.3.2", 776 | "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", 777 | "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", 778 | "dev": true, 779 | "requires": { 780 | "arr-flatten": "^1.1.0", 781 | "array-unique": "^0.3.2", 782 | "extend-shallow": "^2.0.1", 783 | "fill-range": "^4.0.0", 784 | "isobject": "^3.0.1", 785 | "repeat-element": "^1.1.2", 786 | "snapdragon": "^0.8.1", 787 | "snapdragon-node": "^2.0.1", 788 | "split-string": "^3.0.2", 789 | "to-regex": "^3.0.1" 790 | }, 791 | "dependencies": { 792 | "extend-shallow": { 793 | "version": "2.0.1", 794 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", 795 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", 796 | "dev": true, 797 | "requires": { 798 | "is-extendable": "^0.1.0" 799 | } 800 | } 801 | } 802 | }, 803 | "browser-process-hrtime": { 804 | "version": "0.1.3", 805 | "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz", 806 | "integrity": "sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw==", 807 | "dev": true 808 | }, 809 | "browser-resolve": { 810 | "version": "1.11.3", 811 | "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", 812 | "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", 813 | "dev": true, 814 | "requires": { 815 | "resolve": "1.1.7" 816 | }, 817 | "dependencies": { 818 | "resolve": { 819 | "version": "1.1.7", 820 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", 821 | "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", 822 | "dev": true 823 | } 824 | } 825 | }, 826 | "bser": { 827 | "version": "2.1.1", 828 | "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", 829 | "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", 830 | "dev": true, 831 | "requires": { 832 | "node-int64": "^0.4.0" 833 | } 834 | }, 835 | "buffer-from": { 836 | "version": "1.1.1", 837 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", 838 | "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", 839 | "dev": true 840 | }, 841 | "cache-base": { 842 | "version": "1.0.1", 843 | "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", 844 | "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", 845 | "dev": true, 846 | "requires": { 847 | "collection-visit": "^1.0.0", 848 | "component-emitter": "^1.2.1", 849 | "get-value": "^2.0.6", 850 | "has-value": "^1.0.0", 851 | "isobject": "^3.0.1", 852 | "set-value": "^2.0.0", 853 | "to-object-path": "^0.3.0", 854 | "union-value": "^1.0.0", 855 | "unset-value": "^1.0.0" 856 | } 857 | }, 858 | "callsites": { 859 | "version": "3.1.0", 860 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 861 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 862 | "dev": true 863 | }, 864 | "camelcase": { 865 | "version": "5.3.1", 866 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", 867 | "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", 868 | "dev": true 869 | }, 870 | "capture-exit": { 871 | "version": "2.0.0", 872 | "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", 873 | "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", 874 | "dev": true, 875 | "requires": { 876 | "rsvp": "^4.8.4" 877 | } 878 | }, 879 | "caseless": { 880 | "version": "0.12.0", 881 | "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", 882 | "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", 883 | "dev": true 884 | }, 885 | "chalk": { 886 | "version": "2.4.2", 887 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 888 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 889 | "dev": true, 890 | "requires": { 891 | "ansi-styles": "^3.2.1", 892 | "escape-string-regexp": "^1.0.5", 893 | "supports-color": "^5.3.0" 894 | } 895 | }, 896 | "ci-info": { 897 | "version": "2.0.0", 898 | "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", 899 | "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", 900 | "dev": true 901 | }, 902 | "class-utils": { 903 | "version": "0.3.6", 904 | "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", 905 | "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", 906 | "dev": true, 907 | "requires": { 908 | "arr-union": "^3.1.0", 909 | "define-property": "^0.2.5", 910 | "isobject": "^3.0.0", 911 | "static-extend": "^0.1.1" 912 | }, 913 | "dependencies": { 914 | "define-property": { 915 | "version": "0.2.5", 916 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", 917 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", 918 | "dev": true, 919 | "requires": { 920 | "is-descriptor": "^0.1.0" 921 | } 922 | } 923 | } 924 | }, 925 | "cliui": { 926 | "version": "5.0.0", 927 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", 928 | "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", 929 | "dev": true, 930 | "requires": { 931 | "string-width": "^3.1.0", 932 | "strip-ansi": "^5.2.0", 933 | "wrap-ansi": "^5.1.0" 934 | } 935 | }, 936 | "co": { 937 | "version": "4.6.0", 938 | "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", 939 | "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", 940 | "dev": true 941 | }, 942 | "collection-visit": { 943 | "version": "1.0.0", 944 | "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", 945 | "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", 946 | "dev": true, 947 | "requires": { 948 | "map-visit": "^1.0.0", 949 | "object-visit": "^1.0.0" 950 | } 951 | }, 952 | "color-convert": { 953 | "version": "1.9.3", 954 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 955 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 956 | "dev": true, 957 | "requires": { 958 | "color-name": "1.1.3" 959 | } 960 | }, 961 | "color-name": { 962 | "version": "1.1.3", 963 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 964 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", 965 | "dev": true 966 | }, 967 | "combined-stream": { 968 | "version": "1.0.8", 969 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", 970 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", 971 | "dev": true, 972 | "requires": { 973 | "delayed-stream": "~1.0.0" 974 | } 975 | }, 976 | "commander": { 977 | "version": "2.20.3", 978 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", 979 | "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", 980 | "dev": true, 981 | "optional": true 982 | }, 983 | "component-emitter": { 984 | "version": "1.3.0", 985 | "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", 986 | "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", 987 | "dev": true 988 | }, 989 | "concat-map": { 990 | "version": "0.0.1", 991 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 992 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 993 | "dev": true 994 | }, 995 | "convert-source-map": { 996 | "version": "1.7.0", 997 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", 998 | "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", 999 | "dev": true, 1000 | "requires": { 1001 | "safe-buffer": "~5.1.1" 1002 | } 1003 | }, 1004 | "copy-descriptor": { 1005 | "version": "0.1.1", 1006 | "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", 1007 | "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", 1008 | "dev": true 1009 | }, 1010 | "core-util-is": { 1011 | "version": "1.0.2", 1012 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 1013 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", 1014 | "dev": true 1015 | }, 1016 | "cross-spawn": { 1017 | "version": "6.0.5", 1018 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", 1019 | "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", 1020 | "dev": true, 1021 | "requires": { 1022 | "nice-try": "^1.0.4", 1023 | "path-key": "^2.0.1", 1024 | "semver": "^5.5.0", 1025 | "shebang-command": "^1.2.0", 1026 | "which": "^1.2.9" 1027 | } 1028 | }, 1029 | "cssom": { 1030 | "version": "0.3.8", 1031 | "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", 1032 | "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", 1033 | "dev": true 1034 | }, 1035 | "cssstyle": { 1036 | "version": "1.4.0", 1037 | "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.4.0.tgz", 1038 | "integrity": "sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA==", 1039 | "dev": true, 1040 | "requires": { 1041 | "cssom": "0.3.x" 1042 | } 1043 | }, 1044 | "dashdash": { 1045 | "version": "1.14.1", 1046 | "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", 1047 | "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", 1048 | "dev": true, 1049 | "requires": { 1050 | "assert-plus": "^1.0.0" 1051 | } 1052 | }, 1053 | "data-urls": { 1054 | "version": "1.1.0", 1055 | "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz", 1056 | "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==", 1057 | "dev": true, 1058 | "requires": { 1059 | "abab": "^2.0.0", 1060 | "whatwg-mimetype": "^2.2.0", 1061 | "whatwg-url": "^7.0.0" 1062 | }, 1063 | "dependencies": { 1064 | "whatwg-url": { 1065 | "version": "7.1.0", 1066 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", 1067 | "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", 1068 | "dev": true, 1069 | "requires": { 1070 | "lodash.sortby": "^4.7.0", 1071 | "tr46": "^1.0.1", 1072 | "webidl-conversions": "^4.0.2" 1073 | } 1074 | } 1075 | } 1076 | }, 1077 | "debug": { 1078 | "version": "2.6.9", 1079 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 1080 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 1081 | "dev": true, 1082 | "requires": { 1083 | "ms": "2.0.0" 1084 | } 1085 | }, 1086 | "decamelize": { 1087 | "version": "1.2.0", 1088 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", 1089 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", 1090 | "dev": true 1091 | }, 1092 | "decode-uri-component": { 1093 | "version": "0.2.0", 1094 | "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", 1095 | "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", 1096 | "dev": true 1097 | }, 1098 | "deep-is": { 1099 | "version": "0.1.3", 1100 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", 1101 | "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", 1102 | "dev": true 1103 | }, 1104 | "define-properties": { 1105 | "version": "1.1.3", 1106 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", 1107 | "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", 1108 | "dev": true, 1109 | "requires": { 1110 | "object-keys": "^1.0.12" 1111 | } 1112 | }, 1113 | "define-property": { 1114 | "version": "2.0.2", 1115 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", 1116 | "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", 1117 | "dev": true, 1118 | "requires": { 1119 | "is-descriptor": "^1.0.2", 1120 | "isobject": "^3.0.1" 1121 | }, 1122 | "dependencies": { 1123 | "is-accessor-descriptor": { 1124 | "version": "1.0.0", 1125 | "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", 1126 | "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", 1127 | "dev": true, 1128 | "requires": { 1129 | "kind-of": "^6.0.0" 1130 | } 1131 | }, 1132 | "is-data-descriptor": { 1133 | "version": "1.0.0", 1134 | "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", 1135 | "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", 1136 | "dev": true, 1137 | "requires": { 1138 | "kind-of": "^6.0.0" 1139 | } 1140 | }, 1141 | "is-descriptor": { 1142 | "version": "1.0.2", 1143 | "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", 1144 | "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", 1145 | "dev": true, 1146 | "requires": { 1147 | "is-accessor-descriptor": "^1.0.0", 1148 | "is-data-descriptor": "^1.0.0", 1149 | "kind-of": "^6.0.2" 1150 | } 1151 | } 1152 | } 1153 | }, 1154 | "delayed-stream": { 1155 | "version": "1.0.0", 1156 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 1157 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", 1158 | "dev": true 1159 | }, 1160 | "detect-newline": { 1161 | "version": "2.1.0", 1162 | "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", 1163 | "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", 1164 | "dev": true 1165 | }, 1166 | "diff-sequences": { 1167 | "version": "24.9.0", 1168 | "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-24.9.0.tgz", 1169 | "integrity": "sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew==", 1170 | "dev": true 1171 | }, 1172 | "domexception": { 1173 | "version": "1.0.1", 1174 | "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", 1175 | "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", 1176 | "dev": true, 1177 | "requires": { 1178 | "webidl-conversions": "^4.0.2" 1179 | } 1180 | }, 1181 | "ecc-jsbn": { 1182 | "version": "0.1.2", 1183 | "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", 1184 | "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", 1185 | "dev": true, 1186 | "requires": { 1187 | "jsbn": "~0.1.0", 1188 | "safer-buffer": "^2.1.0" 1189 | } 1190 | }, 1191 | "emoji-regex": { 1192 | "version": "7.0.3", 1193 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", 1194 | "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", 1195 | "dev": true 1196 | }, 1197 | "end-of-stream": { 1198 | "version": "1.4.4", 1199 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", 1200 | "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", 1201 | "dev": true, 1202 | "requires": { 1203 | "once": "^1.4.0" 1204 | } 1205 | }, 1206 | "error-ex": { 1207 | "version": "1.3.2", 1208 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", 1209 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", 1210 | "dev": true, 1211 | "requires": { 1212 | "is-arrayish": "^0.2.1" 1213 | } 1214 | }, 1215 | "es-abstract": { 1216 | "version": "1.17.0", 1217 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.0.tgz", 1218 | "integrity": "sha512-yYkE07YF+6SIBmg1MsJ9dlub5L48Ek7X0qz+c/CPCHS9EBXfESorzng4cJQjJW5/pB6vDF41u7F8vUhLVDqIug==", 1219 | "dev": true, 1220 | "requires": { 1221 | "es-to-primitive": "^1.2.1", 1222 | "function-bind": "^1.1.1", 1223 | "has": "^1.0.3", 1224 | "has-symbols": "^1.0.1", 1225 | "is-callable": "^1.1.5", 1226 | "is-regex": "^1.0.5", 1227 | "object-inspect": "^1.7.0", 1228 | "object-keys": "^1.1.1", 1229 | "object.assign": "^4.1.0", 1230 | "string.prototype.trimleft": "^2.1.1", 1231 | "string.prototype.trimright": "^2.1.1" 1232 | } 1233 | }, 1234 | "es-to-primitive": { 1235 | "version": "1.2.1", 1236 | "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", 1237 | "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", 1238 | "dev": true, 1239 | "requires": { 1240 | "is-callable": "^1.1.4", 1241 | "is-date-object": "^1.0.1", 1242 | "is-symbol": "^1.0.2" 1243 | } 1244 | }, 1245 | "escape-string-regexp": { 1246 | "version": "1.0.5", 1247 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 1248 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 1249 | "dev": true 1250 | }, 1251 | "escodegen": { 1252 | "version": "1.12.1", 1253 | "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.12.1.tgz", 1254 | "integrity": "sha512-Q8t2YZ+0e0pc7NRVj3B4tSQ9rim1oi4Fh46k2xhJ2qOiEwhQfdjyEQddWdj7ZFaKmU+5104vn1qrcjEPWq+bgQ==", 1255 | "dev": true, 1256 | "requires": { 1257 | "esprima": "^3.1.3", 1258 | "estraverse": "^4.2.0", 1259 | "esutils": "^2.0.2", 1260 | "optionator": "^0.8.1", 1261 | "source-map": "~0.6.1" 1262 | } 1263 | }, 1264 | "esprima": { 1265 | "version": "3.1.3", 1266 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", 1267 | "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", 1268 | "dev": true 1269 | }, 1270 | "estraverse": { 1271 | "version": "4.3.0", 1272 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", 1273 | "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", 1274 | "dev": true 1275 | }, 1276 | "esutils": { 1277 | "version": "2.0.3", 1278 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", 1279 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", 1280 | "dev": true 1281 | }, 1282 | "exec-sh": { 1283 | "version": "0.3.4", 1284 | "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz", 1285 | "integrity": "sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A==", 1286 | "dev": true 1287 | }, 1288 | "execa": { 1289 | "version": "1.0.0", 1290 | "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", 1291 | "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", 1292 | "dev": true, 1293 | "requires": { 1294 | "cross-spawn": "^6.0.0", 1295 | "get-stream": "^4.0.0", 1296 | "is-stream": "^1.1.0", 1297 | "npm-run-path": "^2.0.0", 1298 | "p-finally": "^1.0.0", 1299 | "signal-exit": "^3.0.0", 1300 | "strip-eof": "^1.0.0" 1301 | } 1302 | }, 1303 | "exit": { 1304 | "version": "0.1.2", 1305 | "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", 1306 | "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", 1307 | "dev": true 1308 | }, 1309 | "expand-brackets": { 1310 | "version": "2.1.4", 1311 | "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", 1312 | "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", 1313 | "dev": true, 1314 | "requires": { 1315 | "debug": "^2.3.3", 1316 | "define-property": "^0.2.5", 1317 | "extend-shallow": "^2.0.1", 1318 | "posix-character-classes": "^0.1.0", 1319 | "regex-not": "^1.0.0", 1320 | "snapdragon": "^0.8.1", 1321 | "to-regex": "^3.0.1" 1322 | }, 1323 | "dependencies": { 1324 | "define-property": { 1325 | "version": "0.2.5", 1326 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", 1327 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", 1328 | "dev": true, 1329 | "requires": { 1330 | "is-descriptor": "^0.1.0" 1331 | } 1332 | }, 1333 | "extend-shallow": { 1334 | "version": "2.0.1", 1335 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", 1336 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", 1337 | "dev": true, 1338 | "requires": { 1339 | "is-extendable": "^0.1.0" 1340 | } 1341 | } 1342 | } 1343 | }, 1344 | "expect": { 1345 | "version": "24.9.0", 1346 | "resolved": "https://registry.npmjs.org/expect/-/expect-24.9.0.tgz", 1347 | "integrity": "sha512-wvVAx8XIol3Z5m9zvZXiyZOQ+sRJqNTIm6sGjdWlaZIeupQGO3WbYI+15D/AmEwZywL6wtJkbAbJtzkOfBuR0Q==", 1348 | "dev": true, 1349 | "requires": { 1350 | "@jest/types": "^24.9.0", 1351 | "ansi-styles": "^3.2.0", 1352 | "jest-get-type": "^24.9.0", 1353 | "jest-matcher-utils": "^24.9.0", 1354 | "jest-message-util": "^24.9.0", 1355 | "jest-regex-util": "^24.9.0" 1356 | } 1357 | }, 1358 | "extend": { 1359 | "version": "3.0.2", 1360 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", 1361 | "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", 1362 | "dev": true 1363 | }, 1364 | "extend-shallow": { 1365 | "version": "3.0.2", 1366 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", 1367 | "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", 1368 | "dev": true, 1369 | "requires": { 1370 | "assign-symbols": "^1.0.0", 1371 | "is-extendable": "^1.0.1" 1372 | }, 1373 | "dependencies": { 1374 | "is-extendable": { 1375 | "version": "1.0.1", 1376 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", 1377 | "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", 1378 | "dev": true, 1379 | "requires": { 1380 | "is-plain-object": "^2.0.4" 1381 | } 1382 | } 1383 | } 1384 | }, 1385 | "extglob": { 1386 | "version": "2.0.4", 1387 | "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", 1388 | "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", 1389 | "dev": true, 1390 | "requires": { 1391 | "array-unique": "^0.3.2", 1392 | "define-property": "^1.0.0", 1393 | "expand-brackets": "^2.1.4", 1394 | "extend-shallow": "^2.0.1", 1395 | "fragment-cache": "^0.2.1", 1396 | "regex-not": "^1.0.0", 1397 | "snapdragon": "^0.8.1", 1398 | "to-regex": "^3.0.1" 1399 | }, 1400 | "dependencies": { 1401 | "define-property": { 1402 | "version": "1.0.0", 1403 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", 1404 | "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", 1405 | "dev": true, 1406 | "requires": { 1407 | "is-descriptor": "^1.0.0" 1408 | } 1409 | }, 1410 | "extend-shallow": { 1411 | "version": "2.0.1", 1412 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", 1413 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", 1414 | "dev": true, 1415 | "requires": { 1416 | "is-extendable": "^0.1.0" 1417 | } 1418 | }, 1419 | "is-accessor-descriptor": { 1420 | "version": "1.0.0", 1421 | "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", 1422 | "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", 1423 | "dev": true, 1424 | "requires": { 1425 | "kind-of": "^6.0.0" 1426 | } 1427 | }, 1428 | "is-data-descriptor": { 1429 | "version": "1.0.0", 1430 | "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", 1431 | "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", 1432 | "dev": true, 1433 | "requires": { 1434 | "kind-of": "^6.0.0" 1435 | } 1436 | }, 1437 | "is-descriptor": { 1438 | "version": "1.0.2", 1439 | "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", 1440 | "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", 1441 | "dev": true, 1442 | "requires": { 1443 | "is-accessor-descriptor": "^1.0.0", 1444 | "is-data-descriptor": "^1.0.0", 1445 | "kind-of": "^6.0.2" 1446 | } 1447 | } 1448 | } 1449 | }, 1450 | "extsprintf": { 1451 | "version": "1.3.0", 1452 | "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", 1453 | "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", 1454 | "dev": true 1455 | }, 1456 | "fast-deep-equal": { 1457 | "version": "2.0.1", 1458 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", 1459 | "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", 1460 | "dev": true 1461 | }, 1462 | "fast-json-stable-stringify": { 1463 | "version": "2.1.0", 1464 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 1465 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", 1466 | "dev": true 1467 | }, 1468 | "fast-levenshtein": { 1469 | "version": "2.0.6", 1470 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 1471 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", 1472 | "dev": true 1473 | }, 1474 | "fb-watchman": { 1475 | "version": "2.0.1", 1476 | "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", 1477 | "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", 1478 | "dev": true, 1479 | "requires": { 1480 | "bser": "2.1.1" 1481 | } 1482 | }, 1483 | "file-uri-to-path": { 1484 | "version": "1.0.0", 1485 | "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", 1486 | "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", 1487 | "dev": true, 1488 | "optional": true 1489 | }, 1490 | "fill-range": { 1491 | "version": "4.0.0", 1492 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", 1493 | "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", 1494 | "dev": true, 1495 | "requires": { 1496 | "extend-shallow": "^2.0.1", 1497 | "is-number": "^3.0.0", 1498 | "repeat-string": "^1.6.1", 1499 | "to-regex-range": "^2.1.0" 1500 | }, 1501 | "dependencies": { 1502 | "extend-shallow": { 1503 | "version": "2.0.1", 1504 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", 1505 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", 1506 | "dev": true, 1507 | "requires": { 1508 | "is-extendable": "^0.1.0" 1509 | } 1510 | } 1511 | } 1512 | }, 1513 | "find-up": { 1514 | "version": "3.0.0", 1515 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", 1516 | "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", 1517 | "dev": true, 1518 | "requires": { 1519 | "locate-path": "^3.0.0" 1520 | } 1521 | }, 1522 | "for-in": { 1523 | "version": "1.0.2", 1524 | "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", 1525 | "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", 1526 | "dev": true 1527 | }, 1528 | "forever-agent": { 1529 | "version": "0.6.1", 1530 | "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", 1531 | "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", 1532 | "dev": true 1533 | }, 1534 | "form-data": { 1535 | "version": "2.3.3", 1536 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", 1537 | "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", 1538 | "dev": true, 1539 | "requires": { 1540 | "asynckit": "^0.4.0", 1541 | "combined-stream": "^1.0.6", 1542 | "mime-types": "^2.1.12" 1543 | } 1544 | }, 1545 | "fragment-cache": { 1546 | "version": "0.2.1", 1547 | "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", 1548 | "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", 1549 | "dev": true, 1550 | "requires": { 1551 | "map-cache": "^0.2.2" 1552 | } 1553 | }, 1554 | "fs.realpath": { 1555 | "version": "1.0.0", 1556 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1557 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 1558 | "dev": true 1559 | }, 1560 | "fsevents": { 1561 | "version": "1.2.11", 1562 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.11.tgz", 1563 | "integrity": "sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw==", 1564 | "dev": true, 1565 | "optional": true, 1566 | "requires": { 1567 | "bindings": "^1.5.0", 1568 | "nan": "^2.12.1", 1569 | "node-pre-gyp": "*" 1570 | }, 1571 | "dependencies": { 1572 | "abbrev": { 1573 | "version": "1.1.1", 1574 | "bundled": true, 1575 | "dev": true, 1576 | "optional": true 1577 | }, 1578 | "ansi-regex": { 1579 | "version": "2.1.1", 1580 | "bundled": true, 1581 | "dev": true, 1582 | "optional": true 1583 | }, 1584 | "aproba": { 1585 | "version": "1.2.0", 1586 | "bundled": true, 1587 | "dev": true, 1588 | "optional": true 1589 | }, 1590 | "are-we-there-yet": { 1591 | "version": "1.1.5", 1592 | "bundled": true, 1593 | "dev": true, 1594 | "optional": true, 1595 | "requires": { 1596 | "delegates": "^1.0.0", 1597 | "readable-stream": "^2.0.6" 1598 | } 1599 | }, 1600 | "balanced-match": { 1601 | "version": "1.0.0", 1602 | "bundled": true, 1603 | "dev": true, 1604 | "optional": true 1605 | }, 1606 | "brace-expansion": { 1607 | "version": "1.1.11", 1608 | "bundled": true, 1609 | "dev": true, 1610 | "optional": true, 1611 | "requires": { 1612 | "balanced-match": "^1.0.0", 1613 | "concat-map": "0.0.1" 1614 | } 1615 | }, 1616 | "chownr": { 1617 | "version": "1.1.3", 1618 | "bundled": true, 1619 | "dev": true, 1620 | "optional": true 1621 | }, 1622 | "code-point-at": { 1623 | "version": "1.1.0", 1624 | "bundled": true, 1625 | "dev": true, 1626 | "optional": true 1627 | }, 1628 | "concat-map": { 1629 | "version": "0.0.1", 1630 | "bundled": true, 1631 | "dev": true, 1632 | "optional": true 1633 | }, 1634 | "console-control-strings": { 1635 | "version": "1.1.0", 1636 | "bundled": true, 1637 | "dev": true, 1638 | "optional": true 1639 | }, 1640 | "core-util-is": { 1641 | "version": "1.0.2", 1642 | "bundled": true, 1643 | "dev": true, 1644 | "optional": true 1645 | }, 1646 | "debug": { 1647 | "version": "3.2.6", 1648 | "bundled": true, 1649 | "dev": true, 1650 | "optional": true, 1651 | "requires": { 1652 | "ms": "^2.1.1" 1653 | } 1654 | }, 1655 | "deep-extend": { 1656 | "version": "0.6.0", 1657 | "bundled": true, 1658 | "dev": true, 1659 | "optional": true 1660 | }, 1661 | "delegates": { 1662 | "version": "1.0.0", 1663 | "bundled": true, 1664 | "dev": true, 1665 | "optional": true 1666 | }, 1667 | "detect-libc": { 1668 | "version": "1.0.3", 1669 | "bundled": true, 1670 | "dev": true, 1671 | "optional": true 1672 | }, 1673 | "fs-minipass": { 1674 | "version": "1.2.7", 1675 | "bundled": true, 1676 | "dev": true, 1677 | "optional": true, 1678 | "requires": { 1679 | "minipass": "^2.6.0" 1680 | } 1681 | }, 1682 | "fs.realpath": { 1683 | "version": "1.0.0", 1684 | "bundled": true, 1685 | "dev": true, 1686 | "optional": true 1687 | }, 1688 | "gauge": { 1689 | "version": "2.7.4", 1690 | "bundled": true, 1691 | "dev": true, 1692 | "optional": true, 1693 | "requires": { 1694 | "aproba": "^1.0.3", 1695 | "console-control-strings": "^1.0.0", 1696 | "has-unicode": "^2.0.0", 1697 | "object-assign": "^4.1.0", 1698 | "signal-exit": "^3.0.0", 1699 | "string-width": "^1.0.1", 1700 | "strip-ansi": "^3.0.1", 1701 | "wide-align": "^1.1.0" 1702 | } 1703 | }, 1704 | "glob": { 1705 | "version": "7.1.6", 1706 | "bundled": true, 1707 | "dev": true, 1708 | "optional": true, 1709 | "requires": { 1710 | "fs.realpath": "^1.0.0", 1711 | "inflight": "^1.0.4", 1712 | "inherits": "2", 1713 | "minimatch": "^3.0.4", 1714 | "once": "^1.3.0", 1715 | "path-is-absolute": "^1.0.0" 1716 | } 1717 | }, 1718 | "has-unicode": { 1719 | "version": "2.0.1", 1720 | "bundled": true, 1721 | "dev": true, 1722 | "optional": true 1723 | }, 1724 | "iconv-lite": { 1725 | "version": "0.4.24", 1726 | "bundled": true, 1727 | "dev": true, 1728 | "optional": true, 1729 | "requires": { 1730 | "safer-buffer": ">= 2.1.2 < 3" 1731 | } 1732 | }, 1733 | "ignore-walk": { 1734 | "version": "3.0.3", 1735 | "bundled": true, 1736 | "dev": true, 1737 | "optional": true, 1738 | "requires": { 1739 | "minimatch": "^3.0.4" 1740 | } 1741 | }, 1742 | "inflight": { 1743 | "version": "1.0.6", 1744 | "bundled": true, 1745 | "dev": true, 1746 | "optional": true, 1747 | "requires": { 1748 | "once": "^1.3.0", 1749 | "wrappy": "1" 1750 | } 1751 | }, 1752 | "inherits": { 1753 | "version": "2.0.4", 1754 | "bundled": true, 1755 | "dev": true, 1756 | "optional": true 1757 | }, 1758 | "ini": { 1759 | "version": "1.3.5", 1760 | "bundled": true, 1761 | "dev": true, 1762 | "optional": true 1763 | }, 1764 | "is-fullwidth-code-point": { 1765 | "version": "1.0.0", 1766 | "bundled": true, 1767 | "dev": true, 1768 | "optional": true, 1769 | "requires": { 1770 | "number-is-nan": "^1.0.0" 1771 | } 1772 | }, 1773 | "isarray": { 1774 | "version": "1.0.0", 1775 | "bundled": true, 1776 | "dev": true, 1777 | "optional": true 1778 | }, 1779 | "minimatch": { 1780 | "version": "3.0.4", 1781 | "bundled": true, 1782 | "dev": true, 1783 | "optional": true, 1784 | "requires": { 1785 | "brace-expansion": "^1.1.7" 1786 | } 1787 | }, 1788 | "minimist": { 1789 | "version": "0.0.8", 1790 | "bundled": true, 1791 | "dev": true, 1792 | "optional": true 1793 | }, 1794 | "minipass": { 1795 | "version": "2.9.0", 1796 | "bundled": true, 1797 | "dev": true, 1798 | "optional": true, 1799 | "requires": { 1800 | "safe-buffer": "^5.1.2", 1801 | "yallist": "^3.0.0" 1802 | } 1803 | }, 1804 | "minizlib": { 1805 | "version": "1.3.3", 1806 | "bundled": true, 1807 | "dev": true, 1808 | "optional": true, 1809 | "requires": { 1810 | "minipass": "^2.9.0" 1811 | } 1812 | }, 1813 | "mkdirp": { 1814 | "version": "0.5.1", 1815 | "bundled": true, 1816 | "dev": true, 1817 | "optional": true, 1818 | "requires": { 1819 | "minimist": "0.0.8" 1820 | } 1821 | }, 1822 | "ms": { 1823 | "version": "2.1.2", 1824 | "bundled": true, 1825 | "dev": true, 1826 | "optional": true 1827 | }, 1828 | "needle": { 1829 | "version": "2.4.0", 1830 | "bundled": true, 1831 | "dev": true, 1832 | "optional": true, 1833 | "requires": { 1834 | "debug": "^3.2.6", 1835 | "iconv-lite": "^0.4.4", 1836 | "sax": "^1.2.4" 1837 | } 1838 | }, 1839 | "node-pre-gyp": { 1840 | "version": "0.14.0", 1841 | "bundled": true, 1842 | "dev": true, 1843 | "optional": true, 1844 | "requires": { 1845 | "detect-libc": "^1.0.2", 1846 | "mkdirp": "^0.5.1", 1847 | "needle": "^2.2.1", 1848 | "nopt": "^4.0.1", 1849 | "npm-packlist": "^1.1.6", 1850 | "npmlog": "^4.0.2", 1851 | "rc": "^1.2.7", 1852 | "rimraf": "^2.6.1", 1853 | "semver": "^5.3.0", 1854 | "tar": "^4.4.2" 1855 | } 1856 | }, 1857 | "nopt": { 1858 | "version": "4.0.1", 1859 | "bundled": true, 1860 | "dev": true, 1861 | "optional": true, 1862 | "requires": { 1863 | "abbrev": "1", 1864 | "osenv": "^0.1.4" 1865 | } 1866 | }, 1867 | "npm-bundled": { 1868 | "version": "1.1.1", 1869 | "bundled": true, 1870 | "dev": true, 1871 | "optional": true, 1872 | "requires": { 1873 | "npm-normalize-package-bin": "^1.0.1" 1874 | } 1875 | }, 1876 | "npm-normalize-package-bin": { 1877 | "version": "1.0.1", 1878 | "bundled": true, 1879 | "dev": true, 1880 | "optional": true 1881 | }, 1882 | "npm-packlist": { 1883 | "version": "1.4.7", 1884 | "bundled": true, 1885 | "dev": true, 1886 | "optional": true, 1887 | "requires": { 1888 | "ignore-walk": "^3.0.1", 1889 | "npm-bundled": "^1.0.1" 1890 | } 1891 | }, 1892 | "npmlog": { 1893 | "version": "4.1.2", 1894 | "bundled": true, 1895 | "dev": true, 1896 | "optional": true, 1897 | "requires": { 1898 | "are-we-there-yet": "~1.1.2", 1899 | "console-control-strings": "~1.1.0", 1900 | "gauge": "~2.7.3", 1901 | "set-blocking": "~2.0.0" 1902 | } 1903 | }, 1904 | "number-is-nan": { 1905 | "version": "1.0.1", 1906 | "bundled": true, 1907 | "dev": true, 1908 | "optional": true 1909 | }, 1910 | "object-assign": { 1911 | "version": "4.1.1", 1912 | "bundled": true, 1913 | "dev": true, 1914 | "optional": true 1915 | }, 1916 | "once": { 1917 | "version": "1.4.0", 1918 | "bundled": true, 1919 | "dev": true, 1920 | "optional": true, 1921 | "requires": { 1922 | "wrappy": "1" 1923 | } 1924 | }, 1925 | "os-homedir": { 1926 | "version": "1.0.2", 1927 | "bundled": true, 1928 | "dev": true, 1929 | "optional": true 1930 | }, 1931 | "os-tmpdir": { 1932 | "version": "1.0.2", 1933 | "bundled": true, 1934 | "dev": true, 1935 | "optional": true 1936 | }, 1937 | "osenv": { 1938 | "version": "0.1.5", 1939 | "bundled": true, 1940 | "dev": true, 1941 | "optional": true, 1942 | "requires": { 1943 | "os-homedir": "^1.0.0", 1944 | "os-tmpdir": "^1.0.0" 1945 | } 1946 | }, 1947 | "path-is-absolute": { 1948 | "version": "1.0.1", 1949 | "bundled": true, 1950 | "dev": true, 1951 | "optional": true 1952 | }, 1953 | "process-nextick-args": { 1954 | "version": "2.0.1", 1955 | "bundled": true, 1956 | "dev": true, 1957 | "optional": true 1958 | }, 1959 | "rc": { 1960 | "version": "1.2.8", 1961 | "bundled": true, 1962 | "dev": true, 1963 | "optional": true, 1964 | "requires": { 1965 | "deep-extend": "^0.6.0", 1966 | "ini": "~1.3.0", 1967 | "minimist": "^1.2.0", 1968 | "strip-json-comments": "~2.0.1" 1969 | }, 1970 | "dependencies": { 1971 | "minimist": { 1972 | "version": "1.2.0", 1973 | "bundled": true, 1974 | "dev": true, 1975 | "optional": true 1976 | } 1977 | } 1978 | }, 1979 | "readable-stream": { 1980 | "version": "2.3.6", 1981 | "bundled": true, 1982 | "dev": true, 1983 | "optional": true, 1984 | "requires": { 1985 | "core-util-is": "~1.0.0", 1986 | "inherits": "~2.0.3", 1987 | "isarray": "~1.0.0", 1988 | "process-nextick-args": "~2.0.0", 1989 | "safe-buffer": "~5.1.1", 1990 | "string_decoder": "~1.1.1", 1991 | "util-deprecate": "~1.0.1" 1992 | } 1993 | }, 1994 | "rimraf": { 1995 | "version": "2.7.1", 1996 | "bundled": true, 1997 | "dev": true, 1998 | "optional": true, 1999 | "requires": { 2000 | "glob": "^7.1.3" 2001 | } 2002 | }, 2003 | "safe-buffer": { 2004 | "version": "5.1.2", 2005 | "bundled": true, 2006 | "dev": true, 2007 | "optional": true 2008 | }, 2009 | "safer-buffer": { 2010 | "version": "2.1.2", 2011 | "bundled": true, 2012 | "dev": true, 2013 | "optional": true 2014 | }, 2015 | "sax": { 2016 | "version": "1.2.4", 2017 | "bundled": true, 2018 | "dev": true, 2019 | "optional": true 2020 | }, 2021 | "semver": { 2022 | "version": "5.7.1", 2023 | "bundled": true, 2024 | "dev": true, 2025 | "optional": true 2026 | }, 2027 | "set-blocking": { 2028 | "version": "2.0.0", 2029 | "bundled": true, 2030 | "dev": true, 2031 | "optional": true 2032 | }, 2033 | "signal-exit": { 2034 | "version": "3.0.2", 2035 | "bundled": true, 2036 | "dev": true, 2037 | "optional": true 2038 | }, 2039 | "string-width": { 2040 | "version": "1.0.2", 2041 | "bundled": true, 2042 | "dev": true, 2043 | "optional": true, 2044 | "requires": { 2045 | "code-point-at": "^1.0.0", 2046 | "is-fullwidth-code-point": "^1.0.0", 2047 | "strip-ansi": "^3.0.0" 2048 | } 2049 | }, 2050 | "string_decoder": { 2051 | "version": "1.1.1", 2052 | "bundled": true, 2053 | "dev": true, 2054 | "optional": true, 2055 | "requires": { 2056 | "safe-buffer": "~5.1.0" 2057 | } 2058 | }, 2059 | "strip-ansi": { 2060 | "version": "3.0.1", 2061 | "bundled": true, 2062 | "dev": true, 2063 | "optional": true, 2064 | "requires": { 2065 | "ansi-regex": "^2.0.0" 2066 | } 2067 | }, 2068 | "strip-json-comments": { 2069 | "version": "2.0.1", 2070 | "bundled": true, 2071 | "dev": true, 2072 | "optional": true 2073 | }, 2074 | "tar": { 2075 | "version": "4.4.13", 2076 | "bundled": true, 2077 | "dev": true, 2078 | "optional": true, 2079 | "requires": { 2080 | "chownr": "^1.1.1", 2081 | "fs-minipass": "^1.2.5", 2082 | "minipass": "^2.8.6", 2083 | "minizlib": "^1.2.1", 2084 | "mkdirp": "^0.5.0", 2085 | "safe-buffer": "^5.1.2", 2086 | "yallist": "^3.0.3" 2087 | } 2088 | }, 2089 | "util-deprecate": { 2090 | "version": "1.0.2", 2091 | "bundled": true, 2092 | "dev": true, 2093 | "optional": true 2094 | }, 2095 | "wide-align": { 2096 | "version": "1.1.3", 2097 | "bundled": true, 2098 | "dev": true, 2099 | "optional": true, 2100 | "requires": { 2101 | "string-width": "^1.0.2 || 2" 2102 | } 2103 | }, 2104 | "wrappy": { 2105 | "version": "1.0.2", 2106 | "bundled": true, 2107 | "dev": true, 2108 | "optional": true 2109 | }, 2110 | "yallist": { 2111 | "version": "3.1.1", 2112 | "bundled": true, 2113 | "dev": true, 2114 | "optional": true 2115 | } 2116 | } 2117 | }, 2118 | "function-bind": { 2119 | "version": "1.1.1", 2120 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 2121 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 2122 | "dev": true 2123 | }, 2124 | "get-caller-file": { 2125 | "version": "2.0.5", 2126 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", 2127 | "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", 2128 | "dev": true 2129 | }, 2130 | "get-stream": { 2131 | "version": "4.1.0", 2132 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", 2133 | "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", 2134 | "dev": true, 2135 | "requires": { 2136 | "pump": "^3.0.0" 2137 | } 2138 | }, 2139 | "get-value": { 2140 | "version": "2.0.6", 2141 | "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", 2142 | "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", 2143 | "dev": true 2144 | }, 2145 | "getpass": { 2146 | "version": "0.1.7", 2147 | "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", 2148 | "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", 2149 | "dev": true, 2150 | "requires": { 2151 | "assert-plus": "^1.0.0" 2152 | } 2153 | }, 2154 | "glob": { 2155 | "version": "7.1.6", 2156 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", 2157 | "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", 2158 | "dev": true, 2159 | "requires": { 2160 | "fs.realpath": "^1.0.0", 2161 | "inflight": "^1.0.4", 2162 | "inherits": "2", 2163 | "minimatch": "^3.0.4", 2164 | "once": "^1.3.0", 2165 | "path-is-absolute": "^1.0.0" 2166 | } 2167 | }, 2168 | "globals": { 2169 | "version": "11.12.0", 2170 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", 2171 | "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", 2172 | "dev": true 2173 | }, 2174 | "graceful-fs": { 2175 | "version": "4.2.3", 2176 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", 2177 | "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", 2178 | "dev": true 2179 | }, 2180 | "growly": { 2181 | "version": "1.3.0", 2182 | "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", 2183 | "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", 2184 | "dev": true 2185 | }, 2186 | "handlebars": { 2187 | "version": "4.5.3", 2188 | "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.5.3.tgz", 2189 | "integrity": "sha512-3yPecJoJHK/4c6aZhSvxOyG4vJKDshV36VHp0iVCDVh7o9w2vwi3NSnL2MMPj3YdduqaBcu7cGbggJQM0br9xA==", 2190 | "dev": true, 2191 | "requires": { 2192 | "neo-async": "^2.6.0", 2193 | "optimist": "^0.6.1", 2194 | "source-map": "^0.6.1", 2195 | "uglify-js": "^3.1.4" 2196 | } 2197 | }, 2198 | "har-schema": { 2199 | "version": "2.0.0", 2200 | "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", 2201 | "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", 2202 | "dev": true 2203 | }, 2204 | "har-validator": { 2205 | "version": "5.1.3", 2206 | "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", 2207 | "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", 2208 | "dev": true, 2209 | "requires": { 2210 | "ajv": "^6.5.5", 2211 | "har-schema": "^2.0.0" 2212 | } 2213 | }, 2214 | "has": { 2215 | "version": "1.0.3", 2216 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 2217 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 2218 | "dev": true, 2219 | "requires": { 2220 | "function-bind": "^1.1.1" 2221 | } 2222 | }, 2223 | "has-flag": { 2224 | "version": "3.0.0", 2225 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 2226 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", 2227 | "dev": true 2228 | }, 2229 | "has-symbols": { 2230 | "version": "1.0.1", 2231 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", 2232 | "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", 2233 | "dev": true 2234 | }, 2235 | "has-value": { 2236 | "version": "1.0.0", 2237 | "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", 2238 | "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", 2239 | "dev": true, 2240 | "requires": { 2241 | "get-value": "^2.0.6", 2242 | "has-values": "^1.0.0", 2243 | "isobject": "^3.0.0" 2244 | } 2245 | }, 2246 | "has-values": { 2247 | "version": "1.0.0", 2248 | "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", 2249 | "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", 2250 | "dev": true, 2251 | "requires": { 2252 | "is-number": "^3.0.0", 2253 | "kind-of": "^4.0.0" 2254 | }, 2255 | "dependencies": { 2256 | "kind-of": { 2257 | "version": "4.0.0", 2258 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", 2259 | "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", 2260 | "dev": true, 2261 | "requires": { 2262 | "is-buffer": "^1.1.5" 2263 | } 2264 | } 2265 | } 2266 | }, 2267 | "hosted-git-info": { 2268 | "version": "2.8.5", 2269 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz", 2270 | "integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==", 2271 | "dev": true 2272 | }, 2273 | "html-encoding-sniffer": { 2274 | "version": "1.0.2", 2275 | "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", 2276 | "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", 2277 | "dev": true, 2278 | "requires": { 2279 | "whatwg-encoding": "^1.0.1" 2280 | } 2281 | }, 2282 | "http-signature": { 2283 | "version": "1.2.0", 2284 | "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", 2285 | "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", 2286 | "dev": true, 2287 | "requires": { 2288 | "assert-plus": "^1.0.0", 2289 | "jsprim": "^1.2.2", 2290 | "sshpk": "^1.7.0" 2291 | } 2292 | }, 2293 | "iconv-lite": { 2294 | "version": "0.4.24", 2295 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 2296 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 2297 | "dev": true, 2298 | "requires": { 2299 | "safer-buffer": ">= 2.1.2 < 3" 2300 | } 2301 | }, 2302 | "import-local": { 2303 | "version": "2.0.0", 2304 | "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", 2305 | "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", 2306 | "dev": true, 2307 | "requires": { 2308 | "pkg-dir": "^3.0.0", 2309 | "resolve-cwd": "^2.0.0" 2310 | } 2311 | }, 2312 | "imurmurhash": { 2313 | "version": "0.1.4", 2314 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 2315 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", 2316 | "dev": true 2317 | }, 2318 | "inflight": { 2319 | "version": "1.0.6", 2320 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 2321 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 2322 | "dev": true, 2323 | "requires": { 2324 | "once": "^1.3.0", 2325 | "wrappy": "1" 2326 | } 2327 | }, 2328 | "inherits": { 2329 | "version": "2.0.4", 2330 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 2331 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 2332 | "dev": true 2333 | }, 2334 | "invariant": { 2335 | "version": "2.2.4", 2336 | "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", 2337 | "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", 2338 | "dev": true, 2339 | "requires": { 2340 | "loose-envify": "^1.0.0" 2341 | } 2342 | }, 2343 | "is-accessor-descriptor": { 2344 | "version": "0.1.6", 2345 | "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", 2346 | "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", 2347 | "dev": true, 2348 | "requires": { 2349 | "kind-of": "^3.0.2" 2350 | }, 2351 | "dependencies": { 2352 | "kind-of": { 2353 | "version": "3.2.2", 2354 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 2355 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 2356 | "dev": true, 2357 | "requires": { 2358 | "is-buffer": "^1.1.5" 2359 | } 2360 | } 2361 | } 2362 | }, 2363 | "is-arrayish": { 2364 | "version": "0.2.1", 2365 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 2366 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", 2367 | "dev": true 2368 | }, 2369 | "is-buffer": { 2370 | "version": "1.1.6", 2371 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", 2372 | "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", 2373 | "dev": true 2374 | }, 2375 | "is-callable": { 2376 | "version": "1.1.5", 2377 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", 2378 | "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", 2379 | "dev": true 2380 | }, 2381 | "is-ci": { 2382 | "version": "2.0.0", 2383 | "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", 2384 | "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", 2385 | "dev": true, 2386 | "requires": { 2387 | "ci-info": "^2.0.0" 2388 | } 2389 | }, 2390 | "is-data-descriptor": { 2391 | "version": "0.1.4", 2392 | "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", 2393 | "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", 2394 | "dev": true, 2395 | "requires": { 2396 | "kind-of": "^3.0.2" 2397 | }, 2398 | "dependencies": { 2399 | "kind-of": { 2400 | "version": "3.2.2", 2401 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 2402 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 2403 | "dev": true, 2404 | "requires": { 2405 | "is-buffer": "^1.1.5" 2406 | } 2407 | } 2408 | } 2409 | }, 2410 | "is-date-object": { 2411 | "version": "1.0.2", 2412 | "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", 2413 | "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", 2414 | "dev": true 2415 | }, 2416 | "is-descriptor": { 2417 | "version": "0.1.6", 2418 | "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", 2419 | "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", 2420 | "dev": true, 2421 | "requires": { 2422 | "is-accessor-descriptor": "^0.1.6", 2423 | "is-data-descriptor": "^0.1.4", 2424 | "kind-of": "^5.0.0" 2425 | }, 2426 | "dependencies": { 2427 | "kind-of": { 2428 | "version": "5.1.0", 2429 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", 2430 | "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", 2431 | "dev": true 2432 | } 2433 | } 2434 | }, 2435 | "is-extendable": { 2436 | "version": "0.1.1", 2437 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", 2438 | "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", 2439 | "dev": true 2440 | }, 2441 | "is-fullwidth-code-point": { 2442 | "version": "2.0.0", 2443 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 2444 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", 2445 | "dev": true 2446 | }, 2447 | "is-generator-fn": { 2448 | "version": "2.1.0", 2449 | "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", 2450 | "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", 2451 | "dev": true 2452 | }, 2453 | "is-number": { 2454 | "version": "3.0.0", 2455 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", 2456 | "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", 2457 | "dev": true, 2458 | "requires": { 2459 | "kind-of": "^3.0.2" 2460 | }, 2461 | "dependencies": { 2462 | "kind-of": { 2463 | "version": "3.2.2", 2464 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 2465 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 2466 | "dev": true, 2467 | "requires": { 2468 | "is-buffer": "^1.1.5" 2469 | } 2470 | } 2471 | } 2472 | }, 2473 | "is-plain-object": { 2474 | "version": "2.0.4", 2475 | "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", 2476 | "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", 2477 | "dev": true, 2478 | "requires": { 2479 | "isobject": "^3.0.1" 2480 | } 2481 | }, 2482 | "is-regex": { 2483 | "version": "1.0.5", 2484 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", 2485 | "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", 2486 | "dev": true, 2487 | "requires": { 2488 | "has": "^1.0.3" 2489 | } 2490 | }, 2491 | "is-stream": { 2492 | "version": "1.1.0", 2493 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", 2494 | "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", 2495 | "dev": true 2496 | }, 2497 | "is-symbol": { 2498 | "version": "1.0.3", 2499 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", 2500 | "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", 2501 | "dev": true, 2502 | "requires": { 2503 | "has-symbols": "^1.0.1" 2504 | } 2505 | }, 2506 | "is-typedarray": { 2507 | "version": "1.0.0", 2508 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", 2509 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", 2510 | "dev": true 2511 | }, 2512 | "is-windows": { 2513 | "version": "1.0.2", 2514 | "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", 2515 | "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", 2516 | "dev": true 2517 | }, 2518 | "is-wsl": { 2519 | "version": "1.1.0", 2520 | "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", 2521 | "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", 2522 | "dev": true 2523 | }, 2524 | "isarray": { 2525 | "version": "1.0.0", 2526 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 2527 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", 2528 | "dev": true 2529 | }, 2530 | "isexe": { 2531 | "version": "2.0.0", 2532 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 2533 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 2534 | "dev": true 2535 | }, 2536 | "isobject": { 2537 | "version": "3.0.1", 2538 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", 2539 | "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", 2540 | "dev": true 2541 | }, 2542 | "isstream": { 2543 | "version": "0.1.2", 2544 | "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", 2545 | "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", 2546 | "dev": true 2547 | }, 2548 | "istanbul-lib-coverage": { 2549 | "version": "2.0.5", 2550 | "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", 2551 | "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", 2552 | "dev": true 2553 | }, 2554 | "istanbul-lib-instrument": { 2555 | "version": "3.3.0", 2556 | "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz", 2557 | "integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==", 2558 | "dev": true, 2559 | "requires": { 2560 | "@babel/generator": "^7.4.0", 2561 | "@babel/parser": "^7.4.3", 2562 | "@babel/template": "^7.4.0", 2563 | "@babel/traverse": "^7.4.3", 2564 | "@babel/types": "^7.4.0", 2565 | "istanbul-lib-coverage": "^2.0.5", 2566 | "semver": "^6.0.0" 2567 | }, 2568 | "dependencies": { 2569 | "semver": { 2570 | "version": "6.3.0", 2571 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 2572 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", 2573 | "dev": true 2574 | } 2575 | } 2576 | }, 2577 | "istanbul-lib-report": { 2578 | "version": "2.0.8", 2579 | "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz", 2580 | "integrity": "sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ==", 2581 | "dev": true, 2582 | "requires": { 2583 | "istanbul-lib-coverage": "^2.0.5", 2584 | "make-dir": "^2.1.0", 2585 | "supports-color": "^6.1.0" 2586 | }, 2587 | "dependencies": { 2588 | "supports-color": { 2589 | "version": "6.1.0", 2590 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", 2591 | "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", 2592 | "dev": true, 2593 | "requires": { 2594 | "has-flag": "^3.0.0" 2595 | } 2596 | } 2597 | } 2598 | }, 2599 | "istanbul-lib-source-maps": { 2600 | "version": "3.0.6", 2601 | "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", 2602 | "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", 2603 | "dev": true, 2604 | "requires": { 2605 | "debug": "^4.1.1", 2606 | "istanbul-lib-coverage": "^2.0.5", 2607 | "make-dir": "^2.1.0", 2608 | "rimraf": "^2.6.3", 2609 | "source-map": "^0.6.1" 2610 | }, 2611 | "dependencies": { 2612 | "debug": { 2613 | "version": "4.1.1", 2614 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", 2615 | "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", 2616 | "dev": true, 2617 | "requires": { 2618 | "ms": "^2.1.1" 2619 | } 2620 | }, 2621 | "ms": { 2622 | "version": "2.1.2", 2623 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 2624 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 2625 | "dev": true 2626 | } 2627 | } 2628 | }, 2629 | "istanbul-reports": { 2630 | "version": "2.2.6", 2631 | "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.6.tgz", 2632 | "integrity": "sha512-SKi4rnMyLBKe0Jy2uUdx28h8oG7ph2PPuQPvIAh31d+Ci+lSiEu4C+h3oBPuJ9+mPKhOyW0M8gY4U5NM1WLeXA==", 2633 | "dev": true, 2634 | "requires": { 2635 | "handlebars": "^4.1.2" 2636 | } 2637 | }, 2638 | "jest": { 2639 | "version": "24.9.0", 2640 | "resolved": "https://registry.npmjs.org/jest/-/jest-24.9.0.tgz", 2641 | "integrity": "sha512-YvkBL1Zm7d2B1+h5fHEOdyjCG+sGMz4f8D86/0HiqJ6MB4MnDc8FgP5vdWsGnemOQro7lnYo8UakZ3+5A0jxGw==", 2642 | "dev": true, 2643 | "requires": { 2644 | "import-local": "^2.0.0", 2645 | "jest-cli": "^24.9.0" 2646 | }, 2647 | "dependencies": { 2648 | "jest-cli": { 2649 | "version": "24.9.0", 2650 | "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-24.9.0.tgz", 2651 | "integrity": "sha512-+VLRKyitT3BWoMeSUIHRxV/2g8y9gw91Jh5z2UmXZzkZKpbC08CSehVxgHUwTpy+HwGcns/tqafQDJW7imYvGg==", 2652 | "dev": true, 2653 | "requires": { 2654 | "@jest/core": "^24.9.0", 2655 | "@jest/test-result": "^24.9.0", 2656 | "@jest/types": "^24.9.0", 2657 | "chalk": "^2.0.1", 2658 | "exit": "^0.1.2", 2659 | "import-local": "^2.0.0", 2660 | "is-ci": "^2.0.0", 2661 | "jest-config": "^24.9.0", 2662 | "jest-util": "^24.9.0", 2663 | "jest-validate": "^24.9.0", 2664 | "prompts": "^2.0.1", 2665 | "realpath-native": "^1.1.0", 2666 | "yargs": "^13.3.0" 2667 | } 2668 | } 2669 | } 2670 | }, 2671 | "jest-changed-files": { 2672 | "version": "24.9.0", 2673 | "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-24.9.0.tgz", 2674 | "integrity": "sha512-6aTWpe2mHF0DhL28WjdkO8LyGjs3zItPET4bMSeXU6T3ub4FPMw+mcOcbdGXQOAfmLcxofD23/5Bl9Z4AkFwqg==", 2675 | "dev": true, 2676 | "requires": { 2677 | "@jest/types": "^24.9.0", 2678 | "execa": "^1.0.0", 2679 | "throat": "^4.0.0" 2680 | } 2681 | }, 2682 | "jest-config": { 2683 | "version": "24.9.0", 2684 | "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-24.9.0.tgz", 2685 | "integrity": "sha512-RATtQJtVYQrp7fvWg6f5y3pEFj9I+H8sWw4aKxnDZ96mob5i5SD6ZEGWgMLXQ4LE8UurrjbdlLWdUeo+28QpfQ==", 2686 | "dev": true, 2687 | "requires": { 2688 | "@babel/core": "^7.1.0", 2689 | "@jest/test-sequencer": "^24.9.0", 2690 | "@jest/types": "^24.9.0", 2691 | "babel-jest": "^24.9.0", 2692 | "chalk": "^2.0.1", 2693 | "glob": "^7.1.1", 2694 | "jest-environment-jsdom": "^24.9.0", 2695 | "jest-environment-node": "^24.9.0", 2696 | "jest-get-type": "^24.9.0", 2697 | "jest-jasmine2": "^24.9.0", 2698 | "jest-regex-util": "^24.3.0", 2699 | "jest-resolve": "^24.9.0", 2700 | "jest-util": "^24.9.0", 2701 | "jest-validate": "^24.9.0", 2702 | "micromatch": "^3.1.10", 2703 | "pretty-format": "^24.9.0", 2704 | "realpath-native": "^1.1.0" 2705 | } 2706 | }, 2707 | "jest-diff": { 2708 | "version": "24.9.0", 2709 | "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-24.9.0.tgz", 2710 | "integrity": "sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ==", 2711 | "dev": true, 2712 | "requires": { 2713 | "chalk": "^2.0.1", 2714 | "diff-sequences": "^24.9.0", 2715 | "jest-get-type": "^24.9.0", 2716 | "pretty-format": "^24.9.0" 2717 | } 2718 | }, 2719 | "jest-docblock": { 2720 | "version": "24.9.0", 2721 | "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-24.9.0.tgz", 2722 | "integrity": "sha512-F1DjdpDMJMA1cN6He0FNYNZlo3yYmOtRUnktrT9Q37njYzC5WEaDdmbynIgy0L/IvXvvgsG8OsqhLPXTpfmZAA==", 2723 | "dev": true, 2724 | "requires": { 2725 | "detect-newline": "^2.1.0" 2726 | } 2727 | }, 2728 | "jest-each": { 2729 | "version": "24.9.0", 2730 | "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-24.9.0.tgz", 2731 | "integrity": "sha512-ONi0R4BvW45cw8s2Lrx8YgbeXL1oCQ/wIDwmsM3CqM/nlblNCPmnC3IPQlMbRFZu3wKdQ2U8BqM6lh3LJ5Bsog==", 2732 | "dev": true, 2733 | "requires": { 2734 | "@jest/types": "^24.9.0", 2735 | "chalk": "^2.0.1", 2736 | "jest-get-type": "^24.9.0", 2737 | "jest-util": "^24.9.0", 2738 | "pretty-format": "^24.9.0" 2739 | } 2740 | }, 2741 | "jest-environment-jsdom": { 2742 | "version": "24.9.0", 2743 | "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-24.9.0.tgz", 2744 | "integrity": "sha512-Zv9FV9NBRzLuALXjvRijO2351DRQeLYXtpD4xNvfoVFw21IOKNhZAEUKcbiEtjTkm2GsJ3boMVgkaR7rN8qetA==", 2745 | "dev": true, 2746 | "requires": { 2747 | "@jest/environment": "^24.9.0", 2748 | "@jest/fake-timers": "^24.9.0", 2749 | "@jest/types": "^24.9.0", 2750 | "jest-mock": "^24.9.0", 2751 | "jest-util": "^24.9.0", 2752 | "jsdom": "^11.5.1" 2753 | } 2754 | }, 2755 | "jest-environment-node": { 2756 | "version": "24.9.0", 2757 | "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-24.9.0.tgz", 2758 | "integrity": "sha512-6d4V2f4nxzIzwendo27Tr0aFm+IXWa0XEUnaH6nU0FMaozxovt+sfRvh4J47wL1OvF83I3SSTu0XK+i4Bqe7uA==", 2759 | "dev": true, 2760 | "requires": { 2761 | "@jest/environment": "^24.9.0", 2762 | "@jest/fake-timers": "^24.9.0", 2763 | "@jest/types": "^24.9.0", 2764 | "jest-mock": "^24.9.0", 2765 | "jest-util": "^24.9.0" 2766 | } 2767 | }, 2768 | "jest-get-type": { 2769 | "version": "24.9.0", 2770 | "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz", 2771 | "integrity": "sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q==", 2772 | "dev": true 2773 | }, 2774 | "jest-haste-map": { 2775 | "version": "24.9.0", 2776 | "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-24.9.0.tgz", 2777 | "integrity": "sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ==", 2778 | "dev": true, 2779 | "requires": { 2780 | "@jest/types": "^24.9.0", 2781 | "anymatch": "^2.0.0", 2782 | "fb-watchman": "^2.0.0", 2783 | "fsevents": "^1.2.7", 2784 | "graceful-fs": "^4.1.15", 2785 | "invariant": "^2.2.4", 2786 | "jest-serializer": "^24.9.0", 2787 | "jest-util": "^24.9.0", 2788 | "jest-worker": "^24.9.0", 2789 | "micromatch": "^3.1.10", 2790 | "sane": "^4.0.3", 2791 | "walker": "^1.0.7" 2792 | } 2793 | }, 2794 | "jest-jasmine2": { 2795 | "version": "24.9.0", 2796 | "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz", 2797 | "integrity": "sha512-Cq7vkAgaYKp+PsX+2/JbTarrk0DmNhsEtqBXNwUHkdlbrTBLtMJINADf2mf5FkowNsq8evbPc07/qFO0AdKTzw==", 2798 | "dev": true, 2799 | "requires": { 2800 | "@babel/traverse": "^7.1.0", 2801 | "@jest/environment": "^24.9.0", 2802 | "@jest/test-result": "^24.9.0", 2803 | "@jest/types": "^24.9.0", 2804 | "chalk": "^2.0.1", 2805 | "co": "^4.6.0", 2806 | "expect": "^24.9.0", 2807 | "is-generator-fn": "^2.0.0", 2808 | "jest-each": "^24.9.0", 2809 | "jest-matcher-utils": "^24.9.0", 2810 | "jest-message-util": "^24.9.0", 2811 | "jest-runtime": "^24.9.0", 2812 | "jest-snapshot": "^24.9.0", 2813 | "jest-util": "^24.9.0", 2814 | "pretty-format": "^24.9.0", 2815 | "throat": "^4.0.0" 2816 | } 2817 | }, 2818 | "jest-leak-detector": { 2819 | "version": "24.9.0", 2820 | "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz", 2821 | "integrity": "sha512-tYkFIDsiKTGwb2FG1w8hX9V0aUb2ot8zY/2nFg087dUageonw1zrLMP4W6zsRO59dPkTSKie+D4rhMuP9nRmrA==", 2822 | "dev": true, 2823 | "requires": { 2824 | "jest-get-type": "^24.9.0", 2825 | "pretty-format": "^24.9.0" 2826 | } 2827 | }, 2828 | "jest-matcher-utils": { 2829 | "version": "24.9.0", 2830 | "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz", 2831 | "integrity": "sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA==", 2832 | "dev": true, 2833 | "requires": { 2834 | "chalk": "^2.0.1", 2835 | "jest-diff": "^24.9.0", 2836 | "jest-get-type": "^24.9.0", 2837 | "pretty-format": "^24.9.0" 2838 | } 2839 | }, 2840 | "jest-message-util": { 2841 | "version": "24.9.0", 2842 | "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-24.9.0.tgz", 2843 | "integrity": "sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw==", 2844 | "dev": true, 2845 | "requires": { 2846 | "@babel/code-frame": "^7.0.0", 2847 | "@jest/test-result": "^24.9.0", 2848 | "@jest/types": "^24.9.0", 2849 | "@types/stack-utils": "^1.0.1", 2850 | "chalk": "^2.0.1", 2851 | "micromatch": "^3.1.10", 2852 | "slash": "^2.0.0", 2853 | "stack-utils": "^1.0.1" 2854 | } 2855 | }, 2856 | "jest-mock": { 2857 | "version": "24.9.0", 2858 | "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-24.9.0.tgz", 2859 | "integrity": "sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w==", 2860 | "dev": true, 2861 | "requires": { 2862 | "@jest/types": "^24.9.0" 2863 | } 2864 | }, 2865 | "jest-pnp-resolver": { 2866 | "version": "1.2.1", 2867 | "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz", 2868 | "integrity": "sha512-pgFw2tm54fzgYvc/OHrnysABEObZCUNFnhjoRjaVOCN8NYc032/gVjPaHD4Aq6ApkSieWtfKAFQtmDKAmhupnQ==", 2869 | "dev": true 2870 | }, 2871 | "jest-regex-util": { 2872 | "version": "24.9.0", 2873 | "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-24.9.0.tgz", 2874 | "integrity": "sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA==", 2875 | "dev": true 2876 | }, 2877 | "jest-resolve": { 2878 | "version": "24.9.0", 2879 | "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-24.9.0.tgz", 2880 | "integrity": "sha512-TaLeLVL1l08YFZAt3zaPtjiVvyy4oSA6CRe+0AFPPVX3Q/VI0giIWWoAvoS5L96vj9Dqxj4fB5p2qrHCmTU/MQ==", 2881 | "dev": true, 2882 | "requires": { 2883 | "@jest/types": "^24.9.0", 2884 | "browser-resolve": "^1.11.3", 2885 | "chalk": "^2.0.1", 2886 | "jest-pnp-resolver": "^1.2.1", 2887 | "realpath-native": "^1.1.0" 2888 | } 2889 | }, 2890 | "jest-resolve-dependencies": { 2891 | "version": "24.9.0", 2892 | "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-24.9.0.tgz", 2893 | "integrity": "sha512-Fm7b6AlWnYhT0BXy4hXpactHIqER7erNgIsIozDXWl5dVm+k8XdGVe1oTg1JyaFnOxarMEbax3wyRJqGP2Pq+g==", 2894 | "dev": true, 2895 | "requires": { 2896 | "@jest/types": "^24.9.0", 2897 | "jest-regex-util": "^24.3.0", 2898 | "jest-snapshot": "^24.9.0" 2899 | } 2900 | }, 2901 | "jest-runner": { 2902 | "version": "24.9.0", 2903 | "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-24.9.0.tgz", 2904 | "integrity": "sha512-KksJQyI3/0mhcfspnxxEOBueGrd5E4vV7ADQLT9ESaCzz02WnbdbKWIf5Mkaucoaj7obQckYPVX6JJhgUcoWWg==", 2905 | "dev": true, 2906 | "requires": { 2907 | "@jest/console": "^24.7.1", 2908 | "@jest/environment": "^24.9.0", 2909 | "@jest/test-result": "^24.9.0", 2910 | "@jest/types": "^24.9.0", 2911 | "chalk": "^2.4.2", 2912 | "exit": "^0.1.2", 2913 | "graceful-fs": "^4.1.15", 2914 | "jest-config": "^24.9.0", 2915 | "jest-docblock": "^24.3.0", 2916 | "jest-haste-map": "^24.9.0", 2917 | "jest-jasmine2": "^24.9.0", 2918 | "jest-leak-detector": "^24.9.0", 2919 | "jest-message-util": "^24.9.0", 2920 | "jest-resolve": "^24.9.0", 2921 | "jest-runtime": "^24.9.0", 2922 | "jest-util": "^24.9.0", 2923 | "jest-worker": "^24.6.0", 2924 | "source-map-support": "^0.5.6", 2925 | "throat": "^4.0.0" 2926 | } 2927 | }, 2928 | "jest-runtime": { 2929 | "version": "24.9.0", 2930 | "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-24.9.0.tgz", 2931 | "integrity": "sha512-8oNqgnmF3v2J6PVRM2Jfuj8oX3syKmaynlDMMKQ4iyzbQzIG6th5ub/lM2bCMTmoTKM3ykcUYI2Pw9xwNtjMnw==", 2932 | "dev": true, 2933 | "requires": { 2934 | "@jest/console": "^24.7.1", 2935 | "@jest/environment": "^24.9.0", 2936 | "@jest/source-map": "^24.3.0", 2937 | "@jest/transform": "^24.9.0", 2938 | "@jest/types": "^24.9.0", 2939 | "@types/yargs": "^13.0.0", 2940 | "chalk": "^2.0.1", 2941 | "exit": "^0.1.2", 2942 | "glob": "^7.1.3", 2943 | "graceful-fs": "^4.1.15", 2944 | "jest-config": "^24.9.0", 2945 | "jest-haste-map": "^24.9.0", 2946 | "jest-message-util": "^24.9.0", 2947 | "jest-mock": "^24.9.0", 2948 | "jest-regex-util": "^24.3.0", 2949 | "jest-resolve": "^24.9.0", 2950 | "jest-snapshot": "^24.9.0", 2951 | "jest-util": "^24.9.0", 2952 | "jest-validate": "^24.9.0", 2953 | "realpath-native": "^1.1.0", 2954 | "slash": "^2.0.0", 2955 | "strip-bom": "^3.0.0", 2956 | "yargs": "^13.3.0" 2957 | } 2958 | }, 2959 | "jest-serializer": { 2960 | "version": "24.9.0", 2961 | "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-24.9.0.tgz", 2962 | "integrity": "sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ==", 2963 | "dev": true 2964 | }, 2965 | "jest-snapshot": { 2966 | "version": "24.9.0", 2967 | "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-24.9.0.tgz", 2968 | "integrity": "sha512-uI/rszGSs73xCM0l+up7O7a40o90cnrk429LOiK3aeTvfC0HHmldbd81/B7Ix81KSFe1lwkbl7GnBGG4UfuDew==", 2969 | "dev": true, 2970 | "requires": { 2971 | "@babel/types": "^7.0.0", 2972 | "@jest/types": "^24.9.0", 2973 | "chalk": "^2.0.1", 2974 | "expect": "^24.9.0", 2975 | "jest-diff": "^24.9.0", 2976 | "jest-get-type": "^24.9.0", 2977 | "jest-matcher-utils": "^24.9.0", 2978 | "jest-message-util": "^24.9.0", 2979 | "jest-resolve": "^24.9.0", 2980 | "mkdirp": "^0.5.1", 2981 | "natural-compare": "^1.4.0", 2982 | "pretty-format": "^24.9.0", 2983 | "semver": "^6.2.0" 2984 | }, 2985 | "dependencies": { 2986 | "semver": { 2987 | "version": "6.3.0", 2988 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 2989 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", 2990 | "dev": true 2991 | } 2992 | } 2993 | }, 2994 | "jest-util": { 2995 | "version": "24.9.0", 2996 | "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-24.9.0.tgz", 2997 | "integrity": "sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg==", 2998 | "dev": true, 2999 | "requires": { 3000 | "@jest/console": "^24.9.0", 3001 | "@jest/fake-timers": "^24.9.0", 3002 | "@jest/source-map": "^24.9.0", 3003 | "@jest/test-result": "^24.9.0", 3004 | "@jest/types": "^24.9.0", 3005 | "callsites": "^3.0.0", 3006 | "chalk": "^2.0.1", 3007 | "graceful-fs": "^4.1.15", 3008 | "is-ci": "^2.0.0", 3009 | "mkdirp": "^0.5.1", 3010 | "slash": "^2.0.0", 3011 | "source-map": "^0.6.0" 3012 | } 3013 | }, 3014 | "jest-validate": { 3015 | "version": "24.9.0", 3016 | "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-24.9.0.tgz", 3017 | "integrity": "sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ==", 3018 | "dev": true, 3019 | "requires": { 3020 | "@jest/types": "^24.9.0", 3021 | "camelcase": "^5.3.1", 3022 | "chalk": "^2.0.1", 3023 | "jest-get-type": "^24.9.0", 3024 | "leven": "^3.1.0", 3025 | "pretty-format": "^24.9.0" 3026 | } 3027 | }, 3028 | "jest-watcher": { 3029 | "version": "24.9.0", 3030 | "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-24.9.0.tgz", 3031 | "integrity": "sha512-+/fLOfKPXXYJDYlks62/4R4GoT+GU1tYZed99JSCOsmzkkF7727RqKrjNAxtfO4YpGv11wybgRvCjR73lK2GZw==", 3032 | "dev": true, 3033 | "requires": { 3034 | "@jest/test-result": "^24.9.0", 3035 | "@jest/types": "^24.9.0", 3036 | "@types/yargs": "^13.0.0", 3037 | "ansi-escapes": "^3.0.0", 3038 | "chalk": "^2.0.1", 3039 | "jest-util": "^24.9.0", 3040 | "string-length": "^2.0.0" 3041 | } 3042 | }, 3043 | "jest-worker": { 3044 | "version": "24.9.0", 3045 | "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", 3046 | "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", 3047 | "dev": true, 3048 | "requires": { 3049 | "merge-stream": "^2.0.0", 3050 | "supports-color": "^6.1.0" 3051 | }, 3052 | "dependencies": { 3053 | "supports-color": { 3054 | "version": "6.1.0", 3055 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", 3056 | "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", 3057 | "dev": true, 3058 | "requires": { 3059 | "has-flag": "^3.0.0" 3060 | } 3061 | } 3062 | } 3063 | }, 3064 | "js-tokens": { 3065 | "version": "4.0.0", 3066 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 3067 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", 3068 | "dev": true 3069 | }, 3070 | "jsbn": { 3071 | "version": "0.1.1", 3072 | "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", 3073 | "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", 3074 | "dev": true 3075 | }, 3076 | "jsdom": { 3077 | "version": "11.12.0", 3078 | "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.12.0.tgz", 3079 | "integrity": "sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw==", 3080 | "dev": true, 3081 | "requires": { 3082 | "abab": "^2.0.0", 3083 | "acorn": "^5.5.3", 3084 | "acorn-globals": "^4.1.0", 3085 | "array-equal": "^1.0.0", 3086 | "cssom": ">= 0.3.2 < 0.4.0", 3087 | "cssstyle": "^1.0.0", 3088 | "data-urls": "^1.0.0", 3089 | "domexception": "^1.0.1", 3090 | "escodegen": "^1.9.1", 3091 | "html-encoding-sniffer": "^1.0.2", 3092 | "left-pad": "^1.3.0", 3093 | "nwsapi": "^2.0.7", 3094 | "parse5": "4.0.0", 3095 | "pn": "^1.1.0", 3096 | "request": "^2.87.0", 3097 | "request-promise-native": "^1.0.5", 3098 | "sax": "^1.2.4", 3099 | "symbol-tree": "^3.2.2", 3100 | "tough-cookie": "^2.3.4", 3101 | "w3c-hr-time": "^1.0.1", 3102 | "webidl-conversions": "^4.0.2", 3103 | "whatwg-encoding": "^1.0.3", 3104 | "whatwg-mimetype": "^2.1.0", 3105 | "whatwg-url": "^6.4.1", 3106 | "ws": "^5.2.0", 3107 | "xml-name-validator": "^3.0.0" 3108 | } 3109 | }, 3110 | "jsesc": { 3111 | "version": "2.5.2", 3112 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", 3113 | "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", 3114 | "dev": true 3115 | }, 3116 | "json-parse-better-errors": { 3117 | "version": "1.0.2", 3118 | "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", 3119 | "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", 3120 | "dev": true 3121 | }, 3122 | "json-schema": { 3123 | "version": "0.2.3", 3124 | "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", 3125 | "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", 3126 | "dev": true 3127 | }, 3128 | "json-schema-traverse": { 3129 | "version": "0.4.1", 3130 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 3131 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", 3132 | "dev": true 3133 | }, 3134 | "json-stringify-safe": { 3135 | "version": "5.0.1", 3136 | "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", 3137 | "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", 3138 | "dev": true 3139 | }, 3140 | "json5": { 3141 | "version": "2.1.1", 3142 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", 3143 | "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", 3144 | "dev": true, 3145 | "requires": { 3146 | "minimist": "^1.2.0" 3147 | } 3148 | }, 3149 | "jsprim": { 3150 | "version": "1.4.1", 3151 | "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", 3152 | "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", 3153 | "dev": true, 3154 | "requires": { 3155 | "assert-plus": "1.0.0", 3156 | "extsprintf": "1.3.0", 3157 | "json-schema": "0.2.3", 3158 | "verror": "1.10.0" 3159 | } 3160 | }, 3161 | "kind-of": { 3162 | "version": "6.0.2", 3163 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", 3164 | "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", 3165 | "dev": true 3166 | }, 3167 | "kleur": { 3168 | "version": "3.0.3", 3169 | "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", 3170 | "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", 3171 | "dev": true 3172 | }, 3173 | "left-pad": { 3174 | "version": "1.3.0", 3175 | "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz", 3176 | "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==", 3177 | "dev": true 3178 | }, 3179 | "leven": { 3180 | "version": "3.1.0", 3181 | "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", 3182 | "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", 3183 | "dev": true 3184 | }, 3185 | "levn": { 3186 | "version": "0.3.0", 3187 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", 3188 | "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", 3189 | "dev": true, 3190 | "requires": { 3191 | "prelude-ls": "~1.1.2", 3192 | "type-check": "~0.3.2" 3193 | } 3194 | }, 3195 | "load-json-file": { 3196 | "version": "4.0.0", 3197 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", 3198 | "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", 3199 | "dev": true, 3200 | "requires": { 3201 | "graceful-fs": "^4.1.2", 3202 | "parse-json": "^4.0.0", 3203 | "pify": "^3.0.0", 3204 | "strip-bom": "^3.0.0" 3205 | } 3206 | }, 3207 | "locate-path": { 3208 | "version": "3.0.0", 3209 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", 3210 | "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", 3211 | "dev": true, 3212 | "requires": { 3213 | "p-locate": "^3.0.0", 3214 | "path-exists": "^3.0.0" 3215 | } 3216 | }, 3217 | "lodash": { 3218 | "version": "4.17.15", 3219 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", 3220 | "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", 3221 | "dev": true 3222 | }, 3223 | "lodash.sortby": { 3224 | "version": "4.7.0", 3225 | "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", 3226 | "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", 3227 | "dev": true 3228 | }, 3229 | "loose-envify": { 3230 | "version": "1.4.0", 3231 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", 3232 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", 3233 | "dev": true, 3234 | "requires": { 3235 | "js-tokens": "^3.0.0 || ^4.0.0" 3236 | } 3237 | }, 3238 | "make-dir": { 3239 | "version": "2.1.0", 3240 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", 3241 | "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", 3242 | "dev": true, 3243 | "requires": { 3244 | "pify": "^4.0.1", 3245 | "semver": "^5.6.0" 3246 | }, 3247 | "dependencies": { 3248 | "pify": { 3249 | "version": "4.0.1", 3250 | "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", 3251 | "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", 3252 | "dev": true 3253 | } 3254 | } 3255 | }, 3256 | "makeerror": { 3257 | "version": "1.0.11", 3258 | "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", 3259 | "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", 3260 | "dev": true, 3261 | "requires": { 3262 | "tmpl": "1.0.x" 3263 | } 3264 | }, 3265 | "map-cache": { 3266 | "version": "0.2.2", 3267 | "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", 3268 | "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", 3269 | "dev": true 3270 | }, 3271 | "map-visit": { 3272 | "version": "1.0.0", 3273 | "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", 3274 | "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", 3275 | "dev": true, 3276 | "requires": { 3277 | "object-visit": "^1.0.0" 3278 | } 3279 | }, 3280 | "merge-stream": { 3281 | "version": "2.0.0", 3282 | "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", 3283 | "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", 3284 | "dev": true 3285 | }, 3286 | "micromatch": { 3287 | "version": "3.1.10", 3288 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", 3289 | "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", 3290 | "dev": true, 3291 | "requires": { 3292 | "arr-diff": "^4.0.0", 3293 | "array-unique": "^0.3.2", 3294 | "braces": "^2.3.1", 3295 | "define-property": "^2.0.2", 3296 | "extend-shallow": "^3.0.2", 3297 | "extglob": "^2.0.4", 3298 | "fragment-cache": "^0.2.1", 3299 | "kind-of": "^6.0.2", 3300 | "nanomatch": "^1.2.9", 3301 | "object.pick": "^1.3.0", 3302 | "regex-not": "^1.0.0", 3303 | "snapdragon": "^0.8.1", 3304 | "to-regex": "^3.0.2" 3305 | } 3306 | }, 3307 | "mime-db": { 3308 | "version": "1.42.0", 3309 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.42.0.tgz", 3310 | "integrity": "sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ==", 3311 | "dev": true 3312 | }, 3313 | "mime-types": { 3314 | "version": "2.1.25", 3315 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.25.tgz", 3316 | "integrity": "sha512-5KhStqB5xpTAeGqKBAMgwaYMnQik7teQN4IAzC7npDv6kzeU6prfkR67bc87J1kWMPGkoaZSq1npmexMgkmEVg==", 3317 | "dev": true, 3318 | "requires": { 3319 | "mime-db": "1.42.0" 3320 | } 3321 | }, 3322 | "minimatch": { 3323 | "version": "3.0.4", 3324 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 3325 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 3326 | "dev": true, 3327 | "requires": { 3328 | "brace-expansion": "^1.1.7" 3329 | } 3330 | }, 3331 | "minimist": { 3332 | "version": "1.2.0", 3333 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", 3334 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", 3335 | "dev": true 3336 | }, 3337 | "mixin-deep": { 3338 | "version": "1.3.2", 3339 | "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", 3340 | "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", 3341 | "dev": true, 3342 | "requires": { 3343 | "for-in": "^1.0.2", 3344 | "is-extendable": "^1.0.1" 3345 | }, 3346 | "dependencies": { 3347 | "is-extendable": { 3348 | "version": "1.0.1", 3349 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", 3350 | "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", 3351 | "dev": true, 3352 | "requires": { 3353 | "is-plain-object": "^2.0.4" 3354 | } 3355 | } 3356 | } 3357 | }, 3358 | "mkdirp": { 3359 | "version": "0.5.1", 3360 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 3361 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 3362 | "dev": true, 3363 | "requires": { 3364 | "minimist": "0.0.8" 3365 | }, 3366 | "dependencies": { 3367 | "minimist": { 3368 | "version": "0.0.8", 3369 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 3370 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", 3371 | "dev": true 3372 | } 3373 | } 3374 | }, 3375 | "ms": { 3376 | "version": "2.0.0", 3377 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 3378 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", 3379 | "dev": true 3380 | }, 3381 | "nan": { 3382 | "version": "2.14.0", 3383 | "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", 3384 | "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", 3385 | "dev": true, 3386 | "optional": true 3387 | }, 3388 | "nanomatch": { 3389 | "version": "1.2.13", 3390 | "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", 3391 | "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", 3392 | "dev": true, 3393 | "requires": { 3394 | "arr-diff": "^4.0.0", 3395 | "array-unique": "^0.3.2", 3396 | "define-property": "^2.0.2", 3397 | "extend-shallow": "^3.0.2", 3398 | "fragment-cache": "^0.2.1", 3399 | "is-windows": "^1.0.2", 3400 | "kind-of": "^6.0.2", 3401 | "object.pick": "^1.3.0", 3402 | "regex-not": "^1.0.0", 3403 | "snapdragon": "^0.8.1", 3404 | "to-regex": "^3.0.1" 3405 | } 3406 | }, 3407 | "natural-compare": { 3408 | "version": "1.4.0", 3409 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", 3410 | "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", 3411 | "dev": true 3412 | }, 3413 | "neo-async": { 3414 | "version": "2.6.1", 3415 | "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", 3416 | "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==", 3417 | "dev": true 3418 | }, 3419 | "nice-try": { 3420 | "version": "1.0.5", 3421 | "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", 3422 | "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", 3423 | "dev": true 3424 | }, 3425 | "node-int64": { 3426 | "version": "0.4.0", 3427 | "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", 3428 | "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", 3429 | "dev": true 3430 | }, 3431 | "node-modules-regexp": { 3432 | "version": "1.0.0", 3433 | "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", 3434 | "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", 3435 | "dev": true 3436 | }, 3437 | "node-notifier": { 3438 | "version": "5.4.3", 3439 | "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.3.tgz", 3440 | "integrity": "sha512-M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q==", 3441 | "dev": true, 3442 | "requires": { 3443 | "growly": "^1.3.0", 3444 | "is-wsl": "^1.1.0", 3445 | "semver": "^5.5.0", 3446 | "shellwords": "^0.1.1", 3447 | "which": "^1.3.0" 3448 | } 3449 | }, 3450 | "normalize-package-data": { 3451 | "version": "2.5.0", 3452 | "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", 3453 | "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", 3454 | "dev": true, 3455 | "requires": { 3456 | "hosted-git-info": "^2.1.4", 3457 | "resolve": "^1.10.0", 3458 | "semver": "2 || 3 || 4 || 5", 3459 | "validate-npm-package-license": "^3.0.1" 3460 | } 3461 | }, 3462 | "normalize-path": { 3463 | "version": "2.1.1", 3464 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", 3465 | "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", 3466 | "dev": true, 3467 | "requires": { 3468 | "remove-trailing-separator": "^1.0.1" 3469 | } 3470 | }, 3471 | "npm-run-path": { 3472 | "version": "2.0.2", 3473 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", 3474 | "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", 3475 | "dev": true, 3476 | "requires": { 3477 | "path-key": "^2.0.0" 3478 | } 3479 | }, 3480 | "nwsapi": { 3481 | "version": "2.2.0", 3482 | "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", 3483 | "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", 3484 | "dev": true 3485 | }, 3486 | "oauth-sign": { 3487 | "version": "0.9.0", 3488 | "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", 3489 | "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", 3490 | "dev": true 3491 | }, 3492 | "object-copy": { 3493 | "version": "0.1.0", 3494 | "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", 3495 | "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", 3496 | "dev": true, 3497 | "requires": { 3498 | "copy-descriptor": "^0.1.0", 3499 | "define-property": "^0.2.5", 3500 | "kind-of": "^3.0.3" 3501 | }, 3502 | "dependencies": { 3503 | "define-property": { 3504 | "version": "0.2.5", 3505 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", 3506 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", 3507 | "dev": true, 3508 | "requires": { 3509 | "is-descriptor": "^0.1.0" 3510 | } 3511 | }, 3512 | "kind-of": { 3513 | "version": "3.2.2", 3514 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 3515 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 3516 | "dev": true, 3517 | "requires": { 3518 | "is-buffer": "^1.1.5" 3519 | } 3520 | } 3521 | } 3522 | }, 3523 | "object-inspect": { 3524 | "version": "1.7.0", 3525 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", 3526 | "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", 3527 | "dev": true 3528 | }, 3529 | "object-keys": { 3530 | "version": "1.1.1", 3531 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", 3532 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", 3533 | "dev": true 3534 | }, 3535 | "object-visit": { 3536 | "version": "1.0.1", 3537 | "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", 3538 | "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", 3539 | "dev": true, 3540 | "requires": { 3541 | "isobject": "^3.0.0" 3542 | } 3543 | }, 3544 | "object.assign": { 3545 | "version": "4.1.0", 3546 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", 3547 | "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", 3548 | "dev": true, 3549 | "requires": { 3550 | "define-properties": "^1.1.2", 3551 | "function-bind": "^1.1.1", 3552 | "has-symbols": "^1.0.0", 3553 | "object-keys": "^1.0.11" 3554 | } 3555 | }, 3556 | "object.getownpropertydescriptors": { 3557 | "version": "2.1.0", 3558 | "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", 3559 | "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", 3560 | "dev": true, 3561 | "requires": { 3562 | "define-properties": "^1.1.3", 3563 | "es-abstract": "^1.17.0-next.1" 3564 | } 3565 | }, 3566 | "object.pick": { 3567 | "version": "1.3.0", 3568 | "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", 3569 | "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", 3570 | "dev": true, 3571 | "requires": { 3572 | "isobject": "^3.0.1" 3573 | } 3574 | }, 3575 | "once": { 3576 | "version": "1.4.0", 3577 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 3578 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 3579 | "dev": true, 3580 | "requires": { 3581 | "wrappy": "1" 3582 | } 3583 | }, 3584 | "optimist": { 3585 | "version": "0.6.1", 3586 | "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", 3587 | "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", 3588 | "dev": true, 3589 | "requires": { 3590 | "minimist": "~0.0.1", 3591 | "wordwrap": "~0.0.2" 3592 | }, 3593 | "dependencies": { 3594 | "minimist": { 3595 | "version": "0.0.10", 3596 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", 3597 | "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", 3598 | "dev": true 3599 | } 3600 | } 3601 | }, 3602 | "optionator": { 3603 | "version": "0.8.3", 3604 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", 3605 | "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", 3606 | "dev": true, 3607 | "requires": { 3608 | "deep-is": "~0.1.3", 3609 | "fast-levenshtein": "~2.0.6", 3610 | "levn": "~0.3.0", 3611 | "prelude-ls": "~1.1.2", 3612 | "type-check": "~0.3.2", 3613 | "word-wrap": "~1.2.3" 3614 | } 3615 | }, 3616 | "p-each-series": { 3617 | "version": "1.0.0", 3618 | "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-1.0.0.tgz", 3619 | "integrity": "sha1-kw89Et0fUOdDRFeiLNbwSsatf3E=", 3620 | "dev": true, 3621 | "requires": { 3622 | "p-reduce": "^1.0.0" 3623 | } 3624 | }, 3625 | "p-finally": { 3626 | "version": "1.0.0", 3627 | "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", 3628 | "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", 3629 | "dev": true 3630 | }, 3631 | "p-limit": { 3632 | "version": "2.2.2", 3633 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", 3634 | "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", 3635 | "dev": true, 3636 | "requires": { 3637 | "p-try": "^2.0.0" 3638 | } 3639 | }, 3640 | "p-locate": { 3641 | "version": "3.0.0", 3642 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", 3643 | "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", 3644 | "dev": true, 3645 | "requires": { 3646 | "p-limit": "^2.0.0" 3647 | } 3648 | }, 3649 | "p-reduce": { 3650 | "version": "1.0.0", 3651 | "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz", 3652 | "integrity": "sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=", 3653 | "dev": true 3654 | }, 3655 | "p-try": { 3656 | "version": "2.2.0", 3657 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", 3658 | "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", 3659 | "dev": true 3660 | }, 3661 | "parse-json": { 3662 | "version": "4.0.0", 3663 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", 3664 | "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", 3665 | "dev": true, 3666 | "requires": { 3667 | "error-ex": "^1.3.1", 3668 | "json-parse-better-errors": "^1.0.1" 3669 | } 3670 | }, 3671 | "parse5": { 3672 | "version": "4.0.0", 3673 | "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", 3674 | "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", 3675 | "dev": true 3676 | }, 3677 | "pascalcase": { 3678 | "version": "0.1.1", 3679 | "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", 3680 | "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", 3681 | "dev": true 3682 | }, 3683 | "path-exists": { 3684 | "version": "3.0.0", 3685 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", 3686 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", 3687 | "dev": true 3688 | }, 3689 | "path-is-absolute": { 3690 | "version": "1.0.1", 3691 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 3692 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 3693 | "dev": true 3694 | }, 3695 | "path-key": { 3696 | "version": "2.0.1", 3697 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", 3698 | "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", 3699 | "dev": true 3700 | }, 3701 | "path-parse": { 3702 | "version": "1.0.6", 3703 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", 3704 | "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", 3705 | "dev": true 3706 | }, 3707 | "path-type": { 3708 | "version": "3.0.0", 3709 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", 3710 | "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", 3711 | "dev": true, 3712 | "requires": { 3713 | "pify": "^3.0.0" 3714 | } 3715 | }, 3716 | "performance-now": { 3717 | "version": "2.1.0", 3718 | "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", 3719 | "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", 3720 | "dev": true 3721 | }, 3722 | "pify": { 3723 | "version": "3.0.0", 3724 | "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", 3725 | "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", 3726 | "dev": true 3727 | }, 3728 | "pirates": { 3729 | "version": "4.0.1", 3730 | "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", 3731 | "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", 3732 | "dev": true, 3733 | "requires": { 3734 | "node-modules-regexp": "^1.0.0" 3735 | } 3736 | }, 3737 | "pkg-dir": { 3738 | "version": "3.0.0", 3739 | "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", 3740 | "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", 3741 | "dev": true, 3742 | "requires": { 3743 | "find-up": "^3.0.0" 3744 | } 3745 | }, 3746 | "pn": { 3747 | "version": "1.1.0", 3748 | "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", 3749 | "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==", 3750 | "dev": true 3751 | }, 3752 | "posix-character-classes": { 3753 | "version": "0.1.1", 3754 | "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", 3755 | "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", 3756 | "dev": true 3757 | }, 3758 | "prelude-ls": { 3759 | "version": "1.1.2", 3760 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", 3761 | "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", 3762 | "dev": true 3763 | }, 3764 | "pretty-format": { 3765 | "version": "24.9.0", 3766 | "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz", 3767 | "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==", 3768 | "dev": true, 3769 | "requires": { 3770 | "@jest/types": "^24.9.0", 3771 | "ansi-regex": "^4.0.0", 3772 | "ansi-styles": "^3.2.0", 3773 | "react-is": "^16.8.4" 3774 | } 3775 | }, 3776 | "prompts": { 3777 | "version": "2.3.0", 3778 | "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.3.0.tgz", 3779 | "integrity": "sha512-NfbbPPg/74fT7wk2XYQ7hAIp9zJyZp5Fu19iRbORqqy1BhtrkZ0fPafBU+7bmn8ie69DpT0R6QpJIN2oisYjJg==", 3780 | "dev": true, 3781 | "requires": { 3782 | "kleur": "^3.0.3", 3783 | "sisteransi": "^1.0.3" 3784 | } 3785 | }, 3786 | "psl": { 3787 | "version": "1.7.0", 3788 | "resolved": "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz", 3789 | "integrity": "sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ==", 3790 | "dev": true 3791 | }, 3792 | "pump": { 3793 | "version": "3.0.0", 3794 | "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", 3795 | "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", 3796 | "dev": true, 3797 | "requires": { 3798 | "end-of-stream": "^1.1.0", 3799 | "once": "^1.3.1" 3800 | } 3801 | }, 3802 | "punycode": { 3803 | "version": "2.1.1", 3804 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 3805 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", 3806 | "dev": true 3807 | }, 3808 | "qs": { 3809 | "version": "6.5.2", 3810 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", 3811 | "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", 3812 | "dev": true 3813 | }, 3814 | "react-is": { 3815 | "version": "16.12.0", 3816 | "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.12.0.tgz", 3817 | "integrity": "sha512-rPCkf/mWBtKc97aLL9/txD8DZdemK0vkA3JMLShjlJB3Pj3s+lpf1KaBzMfQrAmhMQB0n1cU/SUGgKKBCe837Q==", 3818 | "dev": true 3819 | }, 3820 | "read-pkg": { 3821 | "version": "3.0.0", 3822 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", 3823 | "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", 3824 | "dev": true, 3825 | "requires": { 3826 | "load-json-file": "^4.0.0", 3827 | "normalize-package-data": "^2.3.2", 3828 | "path-type": "^3.0.0" 3829 | } 3830 | }, 3831 | "read-pkg-up": { 3832 | "version": "4.0.0", 3833 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", 3834 | "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", 3835 | "dev": true, 3836 | "requires": { 3837 | "find-up": "^3.0.0", 3838 | "read-pkg": "^3.0.0" 3839 | } 3840 | }, 3841 | "realpath-native": { 3842 | "version": "1.1.0", 3843 | "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-1.1.0.tgz", 3844 | "integrity": "sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA==", 3845 | "dev": true, 3846 | "requires": { 3847 | "util.promisify": "^1.0.0" 3848 | } 3849 | }, 3850 | "regex-not": { 3851 | "version": "1.0.2", 3852 | "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", 3853 | "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", 3854 | "dev": true, 3855 | "requires": { 3856 | "extend-shallow": "^3.0.2", 3857 | "safe-regex": "^1.1.0" 3858 | } 3859 | }, 3860 | "remove-trailing-separator": { 3861 | "version": "1.1.0", 3862 | "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", 3863 | "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", 3864 | "dev": true 3865 | }, 3866 | "repeat-element": { 3867 | "version": "1.1.3", 3868 | "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", 3869 | "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", 3870 | "dev": true 3871 | }, 3872 | "repeat-string": { 3873 | "version": "1.6.1", 3874 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", 3875 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", 3876 | "dev": true 3877 | }, 3878 | "request": { 3879 | "version": "2.88.0", 3880 | "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", 3881 | "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", 3882 | "dev": true, 3883 | "requires": { 3884 | "aws-sign2": "~0.7.0", 3885 | "aws4": "^1.8.0", 3886 | "caseless": "~0.12.0", 3887 | "combined-stream": "~1.0.6", 3888 | "extend": "~3.0.2", 3889 | "forever-agent": "~0.6.1", 3890 | "form-data": "~2.3.2", 3891 | "har-validator": "~5.1.0", 3892 | "http-signature": "~1.2.0", 3893 | "is-typedarray": "~1.0.0", 3894 | "isstream": "~0.1.2", 3895 | "json-stringify-safe": "~5.0.1", 3896 | "mime-types": "~2.1.19", 3897 | "oauth-sign": "~0.9.0", 3898 | "performance-now": "^2.1.0", 3899 | "qs": "~6.5.2", 3900 | "safe-buffer": "^5.1.2", 3901 | "tough-cookie": "~2.4.3", 3902 | "tunnel-agent": "^0.6.0", 3903 | "uuid": "^3.3.2" 3904 | }, 3905 | "dependencies": { 3906 | "punycode": { 3907 | "version": "1.4.1", 3908 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", 3909 | "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", 3910 | "dev": true 3911 | }, 3912 | "tough-cookie": { 3913 | "version": "2.4.3", 3914 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", 3915 | "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", 3916 | "dev": true, 3917 | "requires": { 3918 | "psl": "^1.1.24", 3919 | "punycode": "^1.4.1" 3920 | } 3921 | } 3922 | } 3923 | }, 3924 | "request-promise-core": { 3925 | "version": "1.1.3", 3926 | "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.3.tgz", 3927 | "integrity": "sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ==", 3928 | "dev": true, 3929 | "requires": { 3930 | "lodash": "^4.17.15" 3931 | } 3932 | }, 3933 | "request-promise-native": { 3934 | "version": "1.0.8", 3935 | "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.8.tgz", 3936 | "integrity": "sha512-dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ==", 3937 | "dev": true, 3938 | "requires": { 3939 | "request-promise-core": "1.1.3", 3940 | "stealthy-require": "^1.1.1", 3941 | "tough-cookie": "^2.3.3" 3942 | } 3943 | }, 3944 | "require-directory": { 3945 | "version": "2.1.1", 3946 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", 3947 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", 3948 | "dev": true 3949 | }, 3950 | "require-main-filename": { 3951 | "version": "2.0.0", 3952 | "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", 3953 | "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", 3954 | "dev": true 3955 | }, 3956 | "resolve": { 3957 | "version": "1.14.1", 3958 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.14.1.tgz", 3959 | "integrity": "sha512-fn5Wobh4cxbLzuHaE+nphztHy43/b++4M6SsGFC2gB8uYwf0C8LcarfCz1un7UTW8OFQg9iNjZ4xpcFVGebDPg==", 3960 | "dev": true, 3961 | "requires": { 3962 | "path-parse": "^1.0.6" 3963 | } 3964 | }, 3965 | "resolve-cwd": { 3966 | "version": "2.0.0", 3967 | "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", 3968 | "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", 3969 | "dev": true, 3970 | "requires": { 3971 | "resolve-from": "^3.0.0" 3972 | } 3973 | }, 3974 | "resolve-from": { 3975 | "version": "3.0.0", 3976 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", 3977 | "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", 3978 | "dev": true 3979 | }, 3980 | "resolve-url": { 3981 | "version": "0.2.1", 3982 | "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", 3983 | "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", 3984 | "dev": true 3985 | }, 3986 | "ret": { 3987 | "version": "0.1.15", 3988 | "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", 3989 | "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", 3990 | "dev": true 3991 | }, 3992 | "rimraf": { 3993 | "version": "2.7.1", 3994 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", 3995 | "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", 3996 | "dev": true, 3997 | "requires": { 3998 | "glob": "^7.1.3" 3999 | } 4000 | }, 4001 | "rsvp": { 4002 | "version": "4.8.5", 4003 | "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", 4004 | "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", 4005 | "dev": true 4006 | }, 4007 | "safe-buffer": { 4008 | "version": "5.1.2", 4009 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 4010 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", 4011 | "dev": true 4012 | }, 4013 | "safe-regex": { 4014 | "version": "1.1.0", 4015 | "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", 4016 | "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", 4017 | "dev": true, 4018 | "requires": { 4019 | "ret": "~0.1.10" 4020 | } 4021 | }, 4022 | "safer-buffer": { 4023 | "version": "2.1.2", 4024 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 4025 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", 4026 | "dev": true 4027 | }, 4028 | "sane": { 4029 | "version": "4.1.0", 4030 | "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", 4031 | "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", 4032 | "dev": true, 4033 | "requires": { 4034 | "@cnakazawa/watch": "^1.0.3", 4035 | "anymatch": "^2.0.0", 4036 | "capture-exit": "^2.0.0", 4037 | "exec-sh": "^0.3.2", 4038 | "execa": "^1.0.0", 4039 | "fb-watchman": "^2.0.0", 4040 | "micromatch": "^3.1.4", 4041 | "minimist": "^1.1.1", 4042 | "walker": "~1.0.5" 4043 | } 4044 | }, 4045 | "sax": { 4046 | "version": "1.2.4", 4047 | "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", 4048 | "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", 4049 | "dev": true 4050 | }, 4051 | "semver": { 4052 | "version": "5.7.1", 4053 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", 4054 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", 4055 | "dev": true 4056 | }, 4057 | "set-blocking": { 4058 | "version": "2.0.0", 4059 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", 4060 | "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", 4061 | "dev": true 4062 | }, 4063 | "set-value": { 4064 | "version": "2.0.1", 4065 | "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", 4066 | "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", 4067 | "dev": true, 4068 | "requires": { 4069 | "extend-shallow": "^2.0.1", 4070 | "is-extendable": "^0.1.1", 4071 | "is-plain-object": "^2.0.3", 4072 | "split-string": "^3.0.1" 4073 | }, 4074 | "dependencies": { 4075 | "extend-shallow": { 4076 | "version": "2.0.1", 4077 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", 4078 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", 4079 | "dev": true, 4080 | "requires": { 4081 | "is-extendable": "^0.1.0" 4082 | } 4083 | } 4084 | } 4085 | }, 4086 | "shebang-command": { 4087 | "version": "1.2.0", 4088 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", 4089 | "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", 4090 | "dev": true, 4091 | "requires": { 4092 | "shebang-regex": "^1.0.0" 4093 | } 4094 | }, 4095 | "shebang-regex": { 4096 | "version": "1.0.0", 4097 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", 4098 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", 4099 | "dev": true 4100 | }, 4101 | "shellwords": { 4102 | "version": "0.1.1", 4103 | "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", 4104 | "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", 4105 | "dev": true 4106 | }, 4107 | "signal-exit": { 4108 | "version": "3.0.2", 4109 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", 4110 | "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", 4111 | "dev": true 4112 | }, 4113 | "sisteransi": { 4114 | "version": "1.0.4", 4115 | "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.4.tgz", 4116 | "integrity": "sha512-/ekMoM4NJ59ivGSfKapeG+FWtrmWvA1p6FBZwXrqojw90vJu8lBmrTxCMuBCydKtkaUe2zt4PlxeTKpjwMbyig==", 4117 | "dev": true 4118 | }, 4119 | "slash": { 4120 | "version": "2.0.0", 4121 | "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", 4122 | "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", 4123 | "dev": true 4124 | }, 4125 | "snapdragon": { 4126 | "version": "0.8.2", 4127 | "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", 4128 | "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", 4129 | "dev": true, 4130 | "requires": { 4131 | "base": "^0.11.1", 4132 | "debug": "^2.2.0", 4133 | "define-property": "^0.2.5", 4134 | "extend-shallow": "^2.0.1", 4135 | "map-cache": "^0.2.2", 4136 | "source-map": "^0.5.6", 4137 | "source-map-resolve": "^0.5.0", 4138 | "use": "^3.1.0" 4139 | }, 4140 | "dependencies": { 4141 | "define-property": { 4142 | "version": "0.2.5", 4143 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", 4144 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", 4145 | "dev": true, 4146 | "requires": { 4147 | "is-descriptor": "^0.1.0" 4148 | } 4149 | }, 4150 | "extend-shallow": { 4151 | "version": "2.0.1", 4152 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", 4153 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", 4154 | "dev": true, 4155 | "requires": { 4156 | "is-extendable": "^0.1.0" 4157 | } 4158 | }, 4159 | "source-map": { 4160 | "version": "0.5.7", 4161 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 4162 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", 4163 | "dev": true 4164 | } 4165 | } 4166 | }, 4167 | "snapdragon-node": { 4168 | "version": "2.1.1", 4169 | "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", 4170 | "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", 4171 | "dev": true, 4172 | "requires": { 4173 | "define-property": "^1.0.0", 4174 | "isobject": "^3.0.0", 4175 | "snapdragon-util": "^3.0.1" 4176 | }, 4177 | "dependencies": { 4178 | "define-property": { 4179 | "version": "1.0.0", 4180 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", 4181 | "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", 4182 | "dev": true, 4183 | "requires": { 4184 | "is-descriptor": "^1.0.0" 4185 | } 4186 | }, 4187 | "is-accessor-descriptor": { 4188 | "version": "1.0.0", 4189 | "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", 4190 | "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", 4191 | "dev": true, 4192 | "requires": { 4193 | "kind-of": "^6.0.0" 4194 | } 4195 | }, 4196 | "is-data-descriptor": { 4197 | "version": "1.0.0", 4198 | "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", 4199 | "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", 4200 | "dev": true, 4201 | "requires": { 4202 | "kind-of": "^6.0.0" 4203 | } 4204 | }, 4205 | "is-descriptor": { 4206 | "version": "1.0.2", 4207 | "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", 4208 | "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", 4209 | "dev": true, 4210 | "requires": { 4211 | "is-accessor-descriptor": "^1.0.0", 4212 | "is-data-descriptor": "^1.0.0", 4213 | "kind-of": "^6.0.2" 4214 | } 4215 | } 4216 | } 4217 | }, 4218 | "snapdragon-util": { 4219 | "version": "3.0.1", 4220 | "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", 4221 | "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", 4222 | "dev": true, 4223 | "requires": { 4224 | "kind-of": "^3.2.0" 4225 | }, 4226 | "dependencies": { 4227 | "kind-of": { 4228 | "version": "3.2.2", 4229 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 4230 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 4231 | "dev": true, 4232 | "requires": { 4233 | "is-buffer": "^1.1.5" 4234 | } 4235 | } 4236 | } 4237 | }, 4238 | "source-map": { 4239 | "version": "0.6.1", 4240 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 4241 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 4242 | "dev": true 4243 | }, 4244 | "source-map-resolve": { 4245 | "version": "0.5.3", 4246 | "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", 4247 | "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", 4248 | "dev": true, 4249 | "requires": { 4250 | "atob": "^2.1.2", 4251 | "decode-uri-component": "^0.2.0", 4252 | "resolve-url": "^0.2.1", 4253 | "source-map-url": "^0.4.0", 4254 | "urix": "^0.1.0" 4255 | } 4256 | }, 4257 | "source-map-support": { 4258 | "version": "0.5.16", 4259 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", 4260 | "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", 4261 | "dev": true, 4262 | "requires": { 4263 | "buffer-from": "^1.0.0", 4264 | "source-map": "^0.6.0" 4265 | } 4266 | }, 4267 | "source-map-url": { 4268 | "version": "0.4.0", 4269 | "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", 4270 | "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", 4271 | "dev": true 4272 | }, 4273 | "spdx-correct": { 4274 | "version": "3.1.0", 4275 | "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", 4276 | "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", 4277 | "dev": true, 4278 | "requires": { 4279 | "spdx-expression-parse": "^3.0.0", 4280 | "spdx-license-ids": "^3.0.0" 4281 | } 4282 | }, 4283 | "spdx-exceptions": { 4284 | "version": "2.2.0", 4285 | "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", 4286 | "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", 4287 | "dev": true 4288 | }, 4289 | "spdx-expression-parse": { 4290 | "version": "3.0.0", 4291 | "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", 4292 | "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", 4293 | "dev": true, 4294 | "requires": { 4295 | "spdx-exceptions": "^2.1.0", 4296 | "spdx-license-ids": "^3.0.0" 4297 | } 4298 | }, 4299 | "spdx-license-ids": { 4300 | "version": "3.0.5", 4301 | "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", 4302 | "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", 4303 | "dev": true 4304 | }, 4305 | "split-string": { 4306 | "version": "3.1.0", 4307 | "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", 4308 | "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", 4309 | "dev": true, 4310 | "requires": { 4311 | "extend-shallow": "^3.0.0" 4312 | } 4313 | }, 4314 | "sshpk": { 4315 | "version": "1.16.1", 4316 | "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", 4317 | "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", 4318 | "dev": true, 4319 | "requires": { 4320 | "asn1": "~0.2.3", 4321 | "assert-plus": "^1.0.0", 4322 | "bcrypt-pbkdf": "^1.0.0", 4323 | "dashdash": "^1.12.0", 4324 | "ecc-jsbn": "~0.1.1", 4325 | "getpass": "^0.1.1", 4326 | "jsbn": "~0.1.0", 4327 | "safer-buffer": "^2.0.2", 4328 | "tweetnacl": "~0.14.0" 4329 | } 4330 | }, 4331 | "stack-utils": { 4332 | "version": "1.0.2", 4333 | "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.2.tgz", 4334 | "integrity": "sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA==", 4335 | "dev": true 4336 | }, 4337 | "static-extend": { 4338 | "version": "0.1.2", 4339 | "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", 4340 | "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", 4341 | "dev": true, 4342 | "requires": { 4343 | "define-property": "^0.2.5", 4344 | "object-copy": "^0.1.0" 4345 | }, 4346 | "dependencies": { 4347 | "define-property": { 4348 | "version": "0.2.5", 4349 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", 4350 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", 4351 | "dev": true, 4352 | "requires": { 4353 | "is-descriptor": "^0.1.0" 4354 | } 4355 | } 4356 | } 4357 | }, 4358 | "stealthy-require": { 4359 | "version": "1.1.1", 4360 | "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", 4361 | "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", 4362 | "dev": true 4363 | }, 4364 | "string-length": { 4365 | "version": "2.0.0", 4366 | "resolved": "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz", 4367 | "integrity": "sha1-1A27aGo6zpYMHP/KVivyxF+DY+0=", 4368 | "dev": true, 4369 | "requires": { 4370 | "astral-regex": "^1.0.0", 4371 | "strip-ansi": "^4.0.0" 4372 | }, 4373 | "dependencies": { 4374 | "ansi-regex": { 4375 | "version": "3.0.0", 4376 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", 4377 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", 4378 | "dev": true 4379 | }, 4380 | "strip-ansi": { 4381 | "version": "4.0.0", 4382 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", 4383 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", 4384 | "dev": true, 4385 | "requires": { 4386 | "ansi-regex": "^3.0.0" 4387 | } 4388 | } 4389 | } 4390 | }, 4391 | "string-width": { 4392 | "version": "3.1.0", 4393 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", 4394 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", 4395 | "dev": true, 4396 | "requires": { 4397 | "emoji-regex": "^7.0.1", 4398 | "is-fullwidth-code-point": "^2.0.0", 4399 | "strip-ansi": "^5.1.0" 4400 | } 4401 | }, 4402 | "string.prototype.trimleft": { 4403 | "version": "2.1.1", 4404 | "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz", 4405 | "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==", 4406 | "dev": true, 4407 | "requires": { 4408 | "define-properties": "^1.1.3", 4409 | "function-bind": "^1.1.1" 4410 | } 4411 | }, 4412 | "string.prototype.trimright": { 4413 | "version": "2.1.1", 4414 | "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz", 4415 | "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==", 4416 | "dev": true, 4417 | "requires": { 4418 | "define-properties": "^1.1.3", 4419 | "function-bind": "^1.1.1" 4420 | } 4421 | }, 4422 | "strip-ansi": { 4423 | "version": "5.2.0", 4424 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", 4425 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", 4426 | "dev": true, 4427 | "requires": { 4428 | "ansi-regex": "^4.1.0" 4429 | } 4430 | }, 4431 | "strip-bom": { 4432 | "version": "3.0.0", 4433 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", 4434 | "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", 4435 | "dev": true 4436 | }, 4437 | "strip-eof": { 4438 | "version": "1.0.0", 4439 | "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", 4440 | "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", 4441 | "dev": true 4442 | }, 4443 | "supports-color": { 4444 | "version": "5.5.0", 4445 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 4446 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 4447 | "dev": true, 4448 | "requires": { 4449 | "has-flag": "^3.0.0" 4450 | } 4451 | }, 4452 | "symbol-tree": { 4453 | "version": "3.2.4", 4454 | "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", 4455 | "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", 4456 | "dev": true 4457 | }, 4458 | "test-exclude": { 4459 | "version": "5.2.3", 4460 | "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz", 4461 | "integrity": "sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g==", 4462 | "dev": true, 4463 | "requires": { 4464 | "glob": "^7.1.3", 4465 | "minimatch": "^3.0.4", 4466 | "read-pkg-up": "^4.0.0", 4467 | "require-main-filename": "^2.0.0" 4468 | } 4469 | }, 4470 | "throat": { 4471 | "version": "4.1.0", 4472 | "resolved": "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz", 4473 | "integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=", 4474 | "dev": true 4475 | }, 4476 | "tmpl": { 4477 | "version": "1.0.4", 4478 | "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", 4479 | "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=", 4480 | "dev": true 4481 | }, 4482 | "to-fast-properties": { 4483 | "version": "2.0.0", 4484 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", 4485 | "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", 4486 | "dev": true 4487 | }, 4488 | "to-object-path": { 4489 | "version": "0.3.0", 4490 | "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", 4491 | "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", 4492 | "dev": true, 4493 | "requires": { 4494 | "kind-of": "^3.0.2" 4495 | }, 4496 | "dependencies": { 4497 | "kind-of": { 4498 | "version": "3.2.2", 4499 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 4500 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 4501 | "dev": true, 4502 | "requires": { 4503 | "is-buffer": "^1.1.5" 4504 | } 4505 | } 4506 | } 4507 | }, 4508 | "to-regex": { 4509 | "version": "3.0.2", 4510 | "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", 4511 | "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", 4512 | "dev": true, 4513 | "requires": { 4514 | "define-property": "^2.0.2", 4515 | "extend-shallow": "^3.0.2", 4516 | "regex-not": "^1.0.2", 4517 | "safe-regex": "^1.1.0" 4518 | } 4519 | }, 4520 | "to-regex-range": { 4521 | "version": "2.1.1", 4522 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", 4523 | "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", 4524 | "dev": true, 4525 | "requires": { 4526 | "is-number": "^3.0.0", 4527 | "repeat-string": "^1.6.1" 4528 | } 4529 | }, 4530 | "tough-cookie": { 4531 | "version": "2.5.0", 4532 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", 4533 | "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", 4534 | "dev": true, 4535 | "requires": { 4536 | "psl": "^1.1.28", 4537 | "punycode": "^2.1.1" 4538 | } 4539 | }, 4540 | "tr46": { 4541 | "version": "1.0.1", 4542 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", 4543 | "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", 4544 | "dev": true, 4545 | "requires": { 4546 | "punycode": "^2.1.0" 4547 | } 4548 | }, 4549 | "tunnel-agent": { 4550 | "version": "0.6.0", 4551 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", 4552 | "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", 4553 | "dev": true, 4554 | "requires": { 4555 | "safe-buffer": "^5.0.1" 4556 | } 4557 | }, 4558 | "tweetnacl": { 4559 | "version": "0.14.5", 4560 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", 4561 | "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", 4562 | "dev": true 4563 | }, 4564 | "type-check": { 4565 | "version": "0.3.2", 4566 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", 4567 | "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", 4568 | "dev": true, 4569 | "requires": { 4570 | "prelude-ls": "~1.1.2" 4571 | } 4572 | }, 4573 | "uglify-js": { 4574 | "version": "3.7.3", 4575 | "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.7.3.tgz", 4576 | "integrity": "sha512-7tINm46/3puUA4hCkKYo4Xdts+JDaVC9ZPRcG8Xw9R4nhO/gZgUM3TENq8IF4Vatk8qCig4MzP/c8G4u2BkVQg==", 4577 | "dev": true, 4578 | "optional": true, 4579 | "requires": { 4580 | "commander": "~2.20.3", 4581 | "source-map": "~0.6.1" 4582 | } 4583 | }, 4584 | "union-value": { 4585 | "version": "1.0.1", 4586 | "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", 4587 | "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", 4588 | "dev": true, 4589 | "requires": { 4590 | "arr-union": "^3.1.0", 4591 | "get-value": "^2.0.6", 4592 | "is-extendable": "^0.1.1", 4593 | "set-value": "^2.0.1" 4594 | } 4595 | }, 4596 | "unset-value": { 4597 | "version": "1.0.0", 4598 | "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", 4599 | "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", 4600 | "dev": true, 4601 | "requires": { 4602 | "has-value": "^0.3.1", 4603 | "isobject": "^3.0.0" 4604 | }, 4605 | "dependencies": { 4606 | "has-value": { 4607 | "version": "0.3.1", 4608 | "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", 4609 | "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", 4610 | "dev": true, 4611 | "requires": { 4612 | "get-value": "^2.0.3", 4613 | "has-values": "^0.1.4", 4614 | "isobject": "^2.0.0" 4615 | }, 4616 | "dependencies": { 4617 | "isobject": { 4618 | "version": "2.1.0", 4619 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", 4620 | "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", 4621 | "dev": true, 4622 | "requires": { 4623 | "isarray": "1.0.0" 4624 | } 4625 | } 4626 | } 4627 | }, 4628 | "has-values": { 4629 | "version": "0.1.4", 4630 | "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", 4631 | "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", 4632 | "dev": true 4633 | } 4634 | } 4635 | }, 4636 | "uri-js": { 4637 | "version": "4.2.2", 4638 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", 4639 | "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", 4640 | "dev": true, 4641 | "requires": { 4642 | "punycode": "^2.1.0" 4643 | } 4644 | }, 4645 | "urix": { 4646 | "version": "0.1.0", 4647 | "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", 4648 | "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", 4649 | "dev": true 4650 | }, 4651 | "use": { 4652 | "version": "3.1.1", 4653 | "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", 4654 | "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", 4655 | "dev": true 4656 | }, 4657 | "util.promisify": { 4658 | "version": "1.0.0", 4659 | "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", 4660 | "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", 4661 | "dev": true, 4662 | "requires": { 4663 | "define-properties": "^1.1.2", 4664 | "object.getownpropertydescriptors": "^2.0.3" 4665 | } 4666 | }, 4667 | "uuid": { 4668 | "version": "3.3.3", 4669 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", 4670 | "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==", 4671 | "dev": true 4672 | }, 4673 | "validate-npm-package-license": { 4674 | "version": "3.0.4", 4675 | "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", 4676 | "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", 4677 | "dev": true, 4678 | "requires": { 4679 | "spdx-correct": "^3.0.0", 4680 | "spdx-expression-parse": "^3.0.0" 4681 | } 4682 | }, 4683 | "verror": { 4684 | "version": "1.10.0", 4685 | "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", 4686 | "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", 4687 | "dev": true, 4688 | "requires": { 4689 | "assert-plus": "^1.0.0", 4690 | "core-util-is": "1.0.2", 4691 | "extsprintf": "^1.2.0" 4692 | } 4693 | }, 4694 | "w3c-hr-time": { 4695 | "version": "1.0.1", 4696 | "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz", 4697 | "integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=", 4698 | "dev": true, 4699 | "requires": { 4700 | "browser-process-hrtime": "^0.1.2" 4701 | } 4702 | }, 4703 | "walker": { 4704 | "version": "1.0.7", 4705 | "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", 4706 | "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", 4707 | "dev": true, 4708 | "requires": { 4709 | "makeerror": "1.0.x" 4710 | } 4711 | }, 4712 | "webidl-conversions": { 4713 | "version": "4.0.2", 4714 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", 4715 | "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", 4716 | "dev": true 4717 | }, 4718 | "whatwg-encoding": { 4719 | "version": "1.0.5", 4720 | "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", 4721 | "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", 4722 | "dev": true, 4723 | "requires": { 4724 | "iconv-lite": "0.4.24" 4725 | } 4726 | }, 4727 | "whatwg-mimetype": { 4728 | "version": "2.3.0", 4729 | "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", 4730 | "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", 4731 | "dev": true 4732 | }, 4733 | "whatwg-url": { 4734 | "version": "6.5.0", 4735 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz", 4736 | "integrity": "sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==", 4737 | "dev": true, 4738 | "requires": { 4739 | "lodash.sortby": "^4.7.0", 4740 | "tr46": "^1.0.1", 4741 | "webidl-conversions": "^4.0.2" 4742 | } 4743 | }, 4744 | "which": { 4745 | "version": "1.3.1", 4746 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", 4747 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", 4748 | "dev": true, 4749 | "requires": { 4750 | "isexe": "^2.0.0" 4751 | } 4752 | }, 4753 | "which-module": { 4754 | "version": "2.0.0", 4755 | "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", 4756 | "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", 4757 | "dev": true 4758 | }, 4759 | "word-wrap": { 4760 | "version": "1.2.3", 4761 | "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", 4762 | "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", 4763 | "dev": true 4764 | }, 4765 | "wordwrap": { 4766 | "version": "0.0.3", 4767 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", 4768 | "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", 4769 | "dev": true 4770 | }, 4771 | "wrap-ansi": { 4772 | "version": "5.1.0", 4773 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", 4774 | "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", 4775 | "dev": true, 4776 | "requires": { 4777 | "ansi-styles": "^3.2.0", 4778 | "string-width": "^3.0.0", 4779 | "strip-ansi": "^5.0.0" 4780 | } 4781 | }, 4782 | "wrappy": { 4783 | "version": "1.0.2", 4784 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 4785 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 4786 | "dev": true 4787 | }, 4788 | "write-file-atomic": { 4789 | "version": "2.4.1", 4790 | "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.1.tgz", 4791 | "integrity": "sha512-TGHFeZEZMnv+gBFRfjAcxL5bPHrsGKtnb4qsFAws7/vlh+QfwAaySIw4AXP9ZskTTh5GWu3FLuJhsWVdiJPGvg==", 4792 | "dev": true, 4793 | "requires": { 4794 | "graceful-fs": "^4.1.11", 4795 | "imurmurhash": "^0.1.4", 4796 | "signal-exit": "^3.0.2" 4797 | } 4798 | }, 4799 | "ws": { 4800 | "version": "5.2.2", 4801 | "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", 4802 | "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", 4803 | "dev": true, 4804 | "requires": { 4805 | "async-limiter": "~1.0.0" 4806 | } 4807 | }, 4808 | "xml-name-validator": { 4809 | "version": "3.0.0", 4810 | "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", 4811 | "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", 4812 | "dev": true 4813 | }, 4814 | "y18n": { 4815 | "version": "4.0.0", 4816 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", 4817 | "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", 4818 | "dev": true 4819 | }, 4820 | "yargs": { 4821 | "version": "13.3.0", 4822 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", 4823 | "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", 4824 | "dev": true, 4825 | "requires": { 4826 | "cliui": "^5.0.0", 4827 | "find-up": "^3.0.0", 4828 | "get-caller-file": "^2.0.1", 4829 | "require-directory": "^2.1.1", 4830 | "require-main-filename": "^2.0.0", 4831 | "set-blocking": "^2.0.0", 4832 | "string-width": "^3.0.0", 4833 | "which-module": "^2.0.0", 4834 | "y18n": "^4.0.0", 4835 | "yargs-parser": "^13.1.1" 4836 | } 4837 | }, 4838 | "yargs-parser": { 4839 | "version": "13.1.1", 4840 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", 4841 | "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", 4842 | "dev": true, 4843 | "requires": { 4844 | "camelcase": "^5.0.0", 4845 | "decamelize": "^1.2.0" 4846 | } 4847 | } 4848 | } 4849 | } 4850 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "main": "src/index.js", 3 | "license": "MIT", 4 | "scripts": { 5 | "test": "jest --watchAll", 6 | "test:ci": "jest --ci" 7 | }, 8 | "devDependencies": { 9 | "jest": "24.9.0" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "config:base" 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /src/FUN.md: -------------------------------------------------------------------------------- 1 | # Fun 2 | 3 | What if we represent a result of every computation that can fail as a tuple `[ err, ok ]`? 4 | 5 | ```js 6 | function parseJson(raw) { 7 | try { 8 | return [ null, JSON.parse(raw) ] 9 | } catch (err) { 10 | return [ err, null ] 11 | } 12 | } 13 | 14 | function parseInt(i) { 15 | const result = Number.parseInt(i) 16 | if (Number.isNaN(result)) { 17 | return [ null, result ] 18 | } 19 | return [ new Error(`parseInt: Sorry, couldn't parse the number from ${i}`), null ] 20 | } 21 | ``` 22 | 23 | We could define a function for transforming the value inside the tuple when the computation was successful: 24 | 25 | ```js 26 | function map(fn, [ err, ok ]) { 27 | return !err ? fn(ok) : [ err, ok ] 28 | } 29 | 30 | const [ err, ok ] = map(obj => obj.user === 'Max', parseJson(rawJson)) // true | false 31 | ``` 32 | 33 | What if computation we want to apply to value also produces a tuple with error or result? 34 | We would need a function for flattening the result, so we don't get an inconvenient nested structure like `[ err1, [ err2, ok ] ]`. 35 | 36 | Let's define `flatMap` function for checking if our cupcake shop can sell the requested amount of cupcakes: 37 | 38 | ```js 39 | flatMap( 40 | x => x > 2 41 | ? [ new Error(`Sorry, we don not have more cupcakes`), null ] 42 | : [ null, x + 1 ], 43 | [ null, 3 ] 44 | ) // Error: Sorry, we don't have more cupcakes 45 | ``` 46 | 47 | The last use-case is the one where we don't really care about the error, because we have a good default value for replacing faulty input. 48 | Let's define a `withDefault` function, which can take a tuple and return a default value if the tuple contained an error. 49 | 50 | ```js 51 | function withDefault(defaultValue, [ err, ok ]) { 52 | if (err) { 53 | return defaultValue 54 | } 55 | return ok 56 | } 57 | 58 | withDefault(5, parseInt('Hello :)') // 5 59 | ``` 60 | 61 | This is all great, but what if we want to combine those functions and build pipelines that can take a tuple and perform many operations on it. 62 | This is where `pipe` comes into play! 63 | 64 | ```js 65 | const process = pipe( 66 | map(x => x + 1), 67 | flatMap( 68 | x => x > 2 69 | ? [ new Error(`Sorry, we don not have more cupcakes`), null ] 70 | : [ null, x + 1 ], 71 | [ null, 3 ] 72 | ), 73 | withDefault(5) 74 | ) 75 | 76 | process([ null, 10 ]) 77 | ``` 78 | 79 | ### Async 80 | 81 | Adding the support for seamless promise handling is complicating the library. 82 | 83 | This is how async code might look with `chill`'ed functions. 84 | 85 | ```js 86 | const fetchUser = id => fetch(...) 87 | 88 | const v = await pipe( 89 | chill(fetchUser), 90 | map(x => x + 1), 91 | mapError(e => new Error('Fetch pipe: ' + error.message)), 92 | log, 93 | withDefault(3), 94 | )(1) 95 | ``` 96 | -------------------------------------------------------------------------------- /src/PARTY.md: -------------------------------------------------------------------------------- 1 | # Partial 2 | 3 | Brings supercharged partial application to JavaScript. 4 | 5 | ## TL;DR 6 | 7 | ```js 8 | partial(fn, _, _, _) 9 | 10 | // vs 11 | 12 | x => y => z => fn(x, y, z) 13 | (x, y) => z => fn(x, y, z) 14 | x => (y, z) => fn(x, y, z) 15 | ( x, y, z ) => fn(x, y, z) 16 | ``` 17 | 18 | ## Example 19 | 20 | `_` sign denotes a hole, which is a spot for future argument. 21 | 22 | ```js 23 | const { _, partial } = require('party') 24 | 25 | function triplet(x, y, z) { 26 | return [ x, y, z ] 27 | } 28 | 29 | const tripletP = partial(triplet, _, _, _) 30 | 31 | tripletP(1) // partial(triplet, 1, _, _) 32 | tripletP(1)(2, 3) // [ 1, 2, 3 ] 33 | 34 | tripletP(1, 2) // partial(triplet, 1, 2, _) 35 | tripletP(1, 2, 3) // [ 1, 2, 3 ] 36 | ``` 37 | -------------------------------------------------------------------------------- /src/__tests__/chill.test.js: -------------------------------------------------------------------------------- 1 | const { chill } = require('../chill.js'); 2 | 3 | describe('chill', () => { 4 | it('should pass the arguments to the function', () => { 5 | const fn = jest.fn(); 6 | const chilled = chill(fn); 7 | 8 | chilled('hello', null, 4); 9 | 10 | expect(fn).toHaveBeenCalledWith('hello', null, 4); 11 | }); 12 | 13 | it('should return the result as a first element of a tuple', () => { 14 | const parse = chill(JSON.parse); 15 | 16 | expect(parse('{ "id": 1 }')).toMatchObject([null, { id: 1 }]); 17 | }); 18 | 19 | it('should return the error as a second element of a tuple', () => { 20 | const parse = chill(JSON.parse); 21 | 22 | expect(parse('{ "id": 1')).toMatchObject([ 23 | new SyntaxError('Unexpected end of JSON input'), 24 | null 25 | ]); 26 | }); 27 | 28 | it('should return the result from async function as a first element of a tuple', async () => { 29 | const asyncWork = () => 30 | new Promise((resolve, reject) => { 31 | setTimeout(() => resolve('done'), 100); 32 | }); 33 | const chilled = chill(asyncWork); 34 | 35 | expect(await chilled()).toMatchObject([null, 'done']); 36 | }); 37 | 38 | it('should return the error from async function as a second element of a tuple', async () => { 39 | const asyncError = () => 40 | new Promise((resolve, reject) => { 41 | setTimeout(() => reject(new Error('boom')), 100); 42 | }); 43 | const chilled = chill(asyncError); 44 | 45 | expect(await chilled()).toMatchObject([new Error('boom'), null]); 46 | }); 47 | 48 | it('should return the error in async function if the function itself throws', async () => { 49 | const asyncError = () => { 50 | throw new Error('boom'); 51 | }; 52 | const chilled = chill(asyncError); 53 | 54 | expect(await chilled()).toMatchObject([new Error('boom'), null]); 55 | }); 56 | }); 57 | -------------------------------------------------------------------------------- /src/__tests__/fun.test.js: -------------------------------------------------------------------------------- 1 | const { 2 | map, 3 | flatMap, 4 | withDefault, 5 | mapError, 6 | pipe, 7 | branch, 8 | id 9 | } = require('../fun'); 10 | 11 | describe('map', () => { 12 | it('should transform the value', () => { 13 | expect(map(x => x + ', World!')([null, 'Hello'])).toMatchObject([ 14 | null, 15 | 'Hello, World!' 16 | ]); 17 | }); 18 | 19 | it('should return the error if the input contained the error', () => { 20 | expect( 21 | map(x => x + ', World!')([new Error('Failed to provide input'), null]) 22 | ).toMatchObject([new Error('Failed to provide input'), null]); 23 | }); 24 | 25 | it('should return the error if the mapping fn throws', () => { 26 | expect( 27 | map(x => { 28 | throw new Error('Booho!'); 29 | })([null, true]) 30 | ).toMatchObject([new Error('Booho!'), null]); 31 | }); 32 | 33 | it('works with promises that resolve', async () => { 34 | expect(map(x => x + 1)(Promise.resolve([null, 1]))).resolves.toStrictEqual([ 35 | null, 36 | 2 37 | ]); 38 | }); 39 | 40 | it('works with promises that fail', async () => { 41 | expect( 42 | map(x => x + 1)(Promise.resolve([new Error('Boop!'), null])) 43 | ).resolves.toStrictEqual([new Error('Boop!'), null]); 44 | }); 45 | }); 46 | 47 | describe('flatMap', () => { 48 | it('should transform the value', () => { 49 | expect(flatMap(x => [null, x + ', World!'])([null, 'Hello'])).toMatchObject( 50 | [null, 'Hello, World!'] 51 | ); 52 | }); 53 | 54 | it('should return the error if the input contained the error', () => { 55 | expect( 56 | flatMap(x => [null, 'This worked!'])([ 57 | new Error('Sorry! Got an error.'), 58 | null 59 | ]) 60 | ).toMatchObject([new Error('Sorry! Got an error.'), null]); 61 | }); 62 | 63 | it('should return the error if the map fn returned an error tuple', () => { 64 | expect( 65 | flatMap(x => [new Error('Sorry! Got an error.'), null])([null, 'Hello']) 66 | ).toMatchObject([new Error('Sorry! Got an error.'), null]); 67 | }); 68 | 69 | it('throw if no function provided', () => { 70 | expect(() => flatMap()).toThrow( 71 | 'flatMap: please pass a function for creating a new tuple for flattening.' 72 | ); 73 | }); 74 | }); 75 | 76 | describe('withDefault', () => { 77 | it('should return the original value if it did not contain the error', () => { 78 | expect(withDefault(2)([null, 1])).toBe(1); 79 | }); 80 | 81 | it('should return the default value if the input contained error', () => { 82 | expect(withDefault(1)([new Error('No number!'), null])).toBe(1); 83 | }); 84 | }); 85 | 86 | describe('mapError', () => { 87 | it('should not modify the input if it did not contain the error', () => { 88 | expect(mapError(() => new Error('New error!'))([null, 1])).toStrictEqual([ 89 | null, 90 | 1 91 | ]); 92 | }); 93 | 94 | it('should update the error if it was passed as an argument', () => { 95 | expect( 96 | mapError(() => new Error('New error!'))([new Error('Boom!'), null]) 97 | ).toStrictEqual([new Error('New error!'), null]); 98 | }); 99 | 100 | it('throw if no function provided', () => { 101 | expect(() => mapError()).toThrow( 102 | 'mapError: needs a function to transform the error.' 103 | ); 104 | }); 105 | }); 106 | 107 | describe('pipe', () => { 108 | it('should pipe the value through', () => { 109 | const p = pipe( 110 | map(x => parseInt(x)), 111 | map(x => x + 1), 112 | withDefault(5) 113 | ); 114 | 115 | expect(p([null, '10'])).toBe(11); 116 | }); 117 | 118 | it('throw if no function provided', () => { 119 | expect(() => pipe()).toThrow( 120 | 'pipe: please pass at least one function to pipe the value through.' 121 | ); 122 | }); 123 | 124 | it('should call functions from left to right', () => { 125 | const fn1 = jest.fn(x => x + 1); 126 | const fn2 = jest.fn(x => x + 1); 127 | const fn3 = jest.fn(x => x + 1); 128 | 129 | const p = pipe( 130 | map(fn1), 131 | map(fn2), 132 | map(fn3) 133 | ); 134 | 135 | p([null, 1]); 136 | 137 | expect(fn1).toHaveBeenCalledWith(1); 138 | expect(fn2).toHaveBeenCalledWith(2); 139 | expect(fn3).toHaveBeenCalledWith(3); 140 | }); 141 | 142 | it.skip('works with promises', async () => { 143 | const p = pipe( 144 | x => Promise.resolve(x), 145 | map(x => parseInt(x)), 146 | map(x => x + 1), 147 | withDefault(5) 148 | ); 149 | 150 | expect(p([null, '10'])).toBe(11); 151 | }); 152 | }); 153 | 154 | describe('branch', () => { 155 | it('to pick left function if predicate returns true', () => { 156 | const left = jest.fn(id); 157 | const right = jest.fn(id); 158 | 159 | const branchFn = branch(() => true, left, right); 160 | 161 | branchFn(1); 162 | 163 | expect(left).toHaveBeenCalledWith(1); 164 | expect(right).not.toHaveBeenCalled(); 165 | }); 166 | 167 | it('to pick right function if predicate returns true', () => { 168 | const left = jest.fn(id); 169 | const right = jest.fn(id); 170 | 171 | const branchFn = branch(() => false, left, right); 172 | 173 | branchFn(1); 174 | 175 | expect(right).toHaveBeenCalledWith(1); 176 | expect(left).not.toHaveBeenCalled(); 177 | }); 178 | 179 | it('should throw if predicate is not specified', () => { 180 | expect(() => branch()).toThrow('please pass a predicate to branch on'); 181 | }); 182 | 183 | it('should pass the parameter to the predicate', () => { 184 | const predicate = jest.fn(); 185 | 186 | branch(predicate)('Hello'); 187 | 188 | expect(predicate).toHaveBeenCalledWith('Hello'); 189 | }); 190 | }); 191 | -------------------------------------------------------------------------------- /src/__tests__/party.test.js: -------------------------------------------------------------------------------- 1 | const { _, partial } = require('../party'); 2 | 3 | describe('partial', () => { 4 | it('should throw if args are passed after a hole', () => { 5 | expect(() => partial(jest.fn(), _, 1)).toThrow(`Holes can be placed only after args`); 6 | }); 7 | 8 | it('should return the original function if there is only one argument', () => { 9 | const fn = jest.fn(); 10 | expect(partial(fn, _)).toBe(fn); 11 | }); 12 | 13 | it('should return a function which can be applied normally', () => { 14 | const fn = partial((x, y) => x + y, _, _); 15 | expect(fn(1, 2)).toBe(3); 16 | }); 17 | 18 | it('should return a function which can be applied partially', () => { 19 | const fn = partial((a, b, c, d) => [a, b, c, d], _, _, _, _); 20 | expect(fn(1)(2, 3)(4)).toStrictEqual([1, 2, 3, 4]); 21 | }); 22 | 23 | it('can apply some arguments upon initialization', () => { 24 | const fn = partial((a, b, c, d) => [a, b, c, d], 1, 2, _, _); 25 | expect(fn(3, 4)).toStrictEqual([1, 2, 3, 4]); 26 | }); 27 | 28 | it('can accept variadic arguments', () => { 29 | const fn = partial((...args) => args.reduce((acc, curr) => acc + curr, 0), _, _); 30 | expect(fn(1, 2, 3, 4, 5)).toBe(15); 31 | }); 32 | }); 33 | -------------------------------------------------------------------------------- /src/chill.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @param obj {?} 3 | * @returns {boolean} 4 | */ 5 | function isPromiseLike(obj) { 6 | return ( 7 | !!obj && 8 | (typeof obj === 'object' || typeof obj === 'function') && 9 | typeof obj.then === 'function' && 10 | typeof obj.catch === 'function' 11 | ); 12 | } 13 | 14 | /** 15 | * @template T 16 | * @param x {T} 17 | * @returns {[null, T]} 18 | */ 19 | function success(x) { 20 | return [null, x]; 21 | } 22 | 23 | /** 24 | * @template T 25 | * @param err {T} 26 | * @returns {[null, T]} 27 | */ 28 | function fail(err) { 29 | return [err, null]; 30 | } 31 | 32 | function fromPromise(p) { 33 | return p.then(success).catch(fail); 34 | } 35 | 36 | function apply(fn, args) { 37 | try { 38 | const result = fn.apply(null, args); 39 | return isPromiseLike(result) ? fromPromise(result) : success(result); 40 | } catch (err) { 41 | return fail(err); 42 | } 43 | } 44 | 45 | function chill(fn) { 46 | return function chilled(...args) { 47 | return apply(fn, args); 48 | }; 49 | } 50 | 51 | module.exports = { 52 | chill, 53 | success, 54 | fail, 55 | fromPromise, 56 | isPromiseLike 57 | }; 58 | -------------------------------------------------------------------------------- /src/fun.js: -------------------------------------------------------------------------------- 1 | // XXX: This module is purely experimental and not ready for usage. 2 | 3 | const { chill, fail, isPromiseLike } = require('./chill'); 4 | 5 | function isFunction(fn) { 6 | return typeof fn === 'function'; 7 | } 8 | 9 | function isError([err]) { 10 | return !!err; 11 | } 12 | 13 | function fst([x]) { 14 | return x; 15 | } 16 | 17 | function snd([_, y]) { 18 | return y; 19 | } 20 | 21 | function log(label, x) { 22 | if (!x) { 23 | console.log(label); 24 | return label; 25 | } 26 | console.log(label, x); 27 | return x; 28 | } 29 | 30 | // XXX: experimental synax for disablint the logger. 31 | log.off = function off(label, x) { 32 | if (!x) { 33 | return label; 34 | } 35 | return x; 36 | }; 37 | 38 | function map(fn) { 39 | if (!isFunction(fn)) { 40 | throw new Error('map: needs a function to transform the value.'); 41 | } 42 | 43 | function apply(m) { 44 | return isError(m) ? m : chill(fn)(snd(m)); 45 | } 46 | 47 | return v => (isPromiseLike(v) ? v.then(apply) : apply.call(null, v)); 48 | } 49 | 50 | function mapError(fn) { 51 | if (!isFunction(fn)) { 52 | throw new Error('mapError: needs a function to transform the error.'); 53 | } 54 | return function(m) { 55 | if (isError(m)) { 56 | const res = chill(fn)(fst(m)); 57 | 58 | if (isError(res)) { 59 | return res; 60 | } 61 | 62 | return fail(snd(res)); 63 | } 64 | 65 | return m; 66 | }; 67 | } 68 | 69 | function flatMap(fn) { 70 | if (!isFunction(fn)) { 71 | throw new Error( 72 | 'flatMap: please pass a function for creating a new tuple for flattening.' 73 | ); 74 | } 75 | return function(m) { 76 | if (isError(m)) { 77 | return m; 78 | } 79 | const r = chill(fn)(snd(m)); 80 | return isError(r) ? r : snd(r); 81 | }; 82 | } 83 | 84 | function withDefault(v) { 85 | return function(m) { 86 | return isError(m) ? v : snd(m); 87 | }; 88 | } 89 | 90 | function pipe(...fns) { 91 | if (fns.length === 0) { 92 | throw new Error( 93 | 'pipe: please pass at least one function to pipe the value through.' 94 | ); 95 | } 96 | return function(arg) { 97 | return fns.reduce((acc, curr) => curr.call(null, log.off('acc', acc)), arg); 98 | }; 99 | } 100 | 101 | function id(x) { 102 | return x; 103 | } 104 | 105 | function branch(predicate, left = id, right = id) { 106 | if (!isFunction(predicate)) { 107 | throw new Error('branch: please pass a predicate to branch on'); 108 | } 109 | return function(x) { 110 | return predicate(x) ? left(x) : right(x); 111 | }; 112 | } 113 | 114 | module.exports = { 115 | map, 116 | mapError, 117 | flatMap, 118 | withDefault, 119 | pipe, 120 | branch, 121 | id, 122 | log 123 | }; 124 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | const { chill, success, fail } = require('./chill'); 2 | 3 | module.exports = { 4 | chill, 5 | success, 6 | fail 7 | }; 8 | -------------------------------------------------------------------------------- /src/party.js: -------------------------------------------------------------------------------- 1 | const _ = Symbol('Hole') 2 | 3 | function apply(fn, ex, n) { 4 | return function(...args) { 5 | if (args.length < n) { 6 | return apply(fn, [...ex, ...args], n - args.length) 7 | } 8 | return fn(...ex, ...args) 9 | } 10 | } 11 | 12 | function partial(fn, ...args) { 13 | const { length } = args; 14 | 15 | if (length === 1) { 16 | return fn 17 | } 18 | 19 | let seen = false 20 | 21 | args.forEach((arg) => { 22 | if (seen && arg !== _) { 23 | throw new Error(`Holes can be placed only after args`); 24 | } 25 | 26 | if (!seen && arg === _) { 27 | seen = true; 28 | } 29 | }); 30 | 31 | const passed = args.filter(x => x !== _); 32 | 33 | return apply(fn, passed, length - passed.length); 34 | } 35 | 36 | module.exports = { 37 | _, 38 | partial 39 | } 40 | --------------------------------------------------------------------------------