├── .github └── workflows │ └── build.yml ├── .gitignore ├── LICENSE ├── README.md ├── docs └── index.html ├── jest.config.js ├── package-lock.json ├── package.json ├── src ├── chunk │ ├── chunk.test.tsx │ └── chunk.ts ├── index.ts ├── renderer │ ├── __snapshots__ │ │ └── renderer.test.tsx.snap │ ├── renderer.test.tsx │ └── renderer.ts ├── rule │ └── rule.ts └── translator │ ├── built-in │ ├── __snapshots__ │ │ └── built-in.test.tsx.snap │ ├── any.ts │ ├── assert.ts │ ├── built-in.test.tsx │ ├── list.ts │ ├── opt.ts │ ├── or.ts │ ├── pattern.ts │ ├── repeat.ts │ ├── set.ts │ └── text.ts │ ├── common │ ├── base.ts │ ├── pattern.ts │ ├── translator-table.ts │ └── type.ts │ └── rule │ ├── __snapshots__ │ └── rule.test.tsx.snap │ ├── rule.test.tsx │ └── rule.ts └── tsconfig.json /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | name: build 2 | 3 | on: [push] 4 | 5 | jobs: 6 | build: 7 | 8 | runs-on: ubuntu-latest 9 | 10 | strategy: 11 | matrix: 12 | node-version: [10.x, 12.x] 13 | 14 | steps: 15 | - uses: actions/checkout@v1 16 | - name: Use Node.js ${{ matrix.node-version }} 17 | uses: actions/setup-node@v1 18 | with: 19 | node-version: ${{ matrix.node-version }} 20 | - name: npm install, build, and test 21 | run: | 22 | npm ci 23 | npm run build --if-present 24 | npm test 25 | env: 26 | CI: true 27 | - name: Coveralls GitHub Action 28 | uses: coverallsapp/github-action@v1.0.1 29 | with: 30 | token: ${{ secrets.CODECOV_TOKEN }} 31 | github-token: ${{ secrets.github_token }} 32 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .vscode 3 | coverage 4 | build -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 mistlog 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # React Peg · [![Build Status](https://github.com/mistlog/react-peg/workflows/build/badge.svg)](https://github.com/mistlog/react-peg/workflows/build/badge.svg) [![Coverage Status](https://coveralls.io/repos/github/mistlog/react-peg/badge.svg)](https://coveralls.io/github/mistlog/react-peg) 2 | 3 | React Peg is a react style parser generator based on PEG.js. 4 | 5 | * Type Checking: With typescript & jsx support, you don't need to play with grammar as string any more. 6 | 7 | * Rule-Based: Build encapsulated rules and compose them to make complex grammar, and you can reuse them just like UI components. 8 | 9 | * Easy to Debug & Unit Test: Since rule is written in JavaScript instead of string, you can easily debug & test grammar and parser. 10 | 11 | ## Playground 12 | 13 | https://mistlog.github.io/react-peg-playground/ 14 | 15 | ## Documentation 16 | 17 | You can find the React Peg documentation [on the website](https://mistlog.github.io/react-peg/). 18 | 19 | ## License 20 | 21 | React Peg is [MIT licensed](https://github.com/mistlog/react-peg/blob/master/LICENSE). -------------------------------------------------------------------------------- /docs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | SGHPA Demo 9 | 10 | 13 | 14 | 15 | 16 | 17 | 18 |               19 |               20 |               21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | preset: 'ts-jest', 3 | testEnvironment: 'node', 4 | notify: true 5 | }; -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "react-peg", 3 | "version": "0.1.8", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@babel/code-frame": { 8 | "version": "7.12.11", 9 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", 10 | "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", 11 | "dev": true, 12 | "requires": { 13 | "@babel/highlight": "^7.10.4" 14 | } 15 | }, 16 | "@babel/core": { 17 | "version": "7.12.10", 18 | "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.10.tgz", 19 | "integrity": "sha512-eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w==", 20 | "dev": true, 21 | "requires": { 22 | "@babel/code-frame": "^7.10.4", 23 | "@babel/generator": "^7.12.10", 24 | "@babel/helper-module-transforms": "^7.12.1", 25 | "@babel/helpers": "^7.12.5", 26 | "@babel/parser": "^7.12.10", 27 | "@babel/template": "^7.12.7", 28 | "@babel/traverse": "^7.12.10", 29 | "@babel/types": "^7.12.10", 30 | "convert-source-map": "^1.7.0", 31 | "debug": "^4.1.0", 32 | "gensync": "^1.0.0-beta.1", 33 | "json5": "^2.1.2", 34 | "lodash": "^4.17.19", 35 | "semver": "^5.4.1", 36 | "source-map": "^0.5.0" 37 | }, 38 | "dependencies": { 39 | "debug": { 40 | "version": "4.3.1", 41 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", 42 | "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", 43 | "dev": true, 44 | "requires": { 45 | "ms": "2.1.2" 46 | } 47 | }, 48 | "ms": { 49 | "version": "2.1.2", 50 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 51 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 52 | "dev": true 53 | }, 54 | "source-map": { 55 | "version": "0.5.7", 56 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 57 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", 58 | "dev": true 59 | } 60 | } 61 | }, 62 | "@babel/generator": { 63 | "version": "7.12.11", 64 | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.11.tgz", 65 | "integrity": "sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA==", 66 | "dev": true, 67 | "requires": { 68 | "@babel/types": "^7.12.11", 69 | "jsesc": "^2.5.1", 70 | "source-map": "^0.5.0" 71 | }, 72 | "dependencies": { 73 | "source-map": { 74 | "version": "0.5.7", 75 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 76 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", 77 | "dev": true 78 | } 79 | } 80 | }, 81 | "@babel/helper-function-name": { 82 | "version": "7.12.11", 83 | "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz", 84 | "integrity": "sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA==", 85 | "dev": true, 86 | "requires": { 87 | "@babel/helper-get-function-arity": "^7.12.10", 88 | "@babel/template": "^7.12.7", 89 | "@babel/types": "^7.12.11" 90 | } 91 | }, 92 | "@babel/helper-get-function-arity": { 93 | "version": "7.12.10", 94 | "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz", 95 | "integrity": "sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag==", 96 | "dev": true, 97 | "requires": { 98 | "@babel/types": "^7.12.10" 99 | } 100 | }, 101 | "@babel/helper-member-expression-to-functions": { 102 | "version": "7.12.7", 103 | "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz", 104 | "integrity": "sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw==", 105 | "dev": true, 106 | "requires": { 107 | "@babel/types": "^7.12.7" 108 | } 109 | }, 110 | "@babel/helper-module-imports": { 111 | "version": "7.12.5", 112 | "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", 113 | "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", 114 | "dev": true, 115 | "requires": { 116 | "@babel/types": "^7.12.5" 117 | } 118 | }, 119 | "@babel/helper-module-transforms": { 120 | "version": "7.12.1", 121 | "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", 122 | "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", 123 | "dev": true, 124 | "requires": { 125 | "@babel/helper-module-imports": "^7.12.1", 126 | "@babel/helper-replace-supers": "^7.12.1", 127 | "@babel/helper-simple-access": "^7.12.1", 128 | "@babel/helper-split-export-declaration": "^7.11.0", 129 | "@babel/helper-validator-identifier": "^7.10.4", 130 | "@babel/template": "^7.10.4", 131 | "@babel/traverse": "^7.12.1", 132 | "@babel/types": "^7.12.1", 133 | "lodash": "^4.17.19" 134 | } 135 | }, 136 | "@babel/helper-optimise-call-expression": { 137 | "version": "7.12.10", 138 | "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.10.tgz", 139 | "integrity": "sha512-4tpbU0SrSTjjt65UMWSrUOPZTsgvPgGG4S8QSTNHacKzpS51IVWGDj0yCwyeZND/i+LSN2g/O63jEXEWm49sYQ==", 140 | "dev": true, 141 | "requires": { 142 | "@babel/types": "^7.12.10" 143 | } 144 | }, 145 | "@babel/helper-plugin-utils": { 146 | "version": "7.10.4", 147 | "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", 148 | "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", 149 | "dev": true 150 | }, 151 | "@babel/helper-replace-supers": { 152 | "version": "7.12.11", 153 | "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.11.tgz", 154 | "integrity": "sha512-q+w1cqmhL7R0FNzth/PLLp2N+scXEK/L2AHbXUyydxp828F4FEa5WcVoqui9vFRiHDQErj9Zof8azP32uGVTRA==", 155 | "dev": true, 156 | "requires": { 157 | "@babel/helper-member-expression-to-functions": "^7.12.7", 158 | "@babel/helper-optimise-call-expression": "^7.12.10", 159 | "@babel/traverse": "^7.12.10", 160 | "@babel/types": "^7.12.11" 161 | } 162 | }, 163 | "@babel/helper-simple-access": { 164 | "version": "7.12.1", 165 | "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", 166 | "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", 167 | "dev": true, 168 | "requires": { 169 | "@babel/types": "^7.12.1" 170 | } 171 | }, 172 | "@babel/helper-split-export-declaration": { 173 | "version": "7.12.11", 174 | "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz", 175 | "integrity": "sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g==", 176 | "dev": true, 177 | "requires": { 178 | "@babel/types": "^7.12.11" 179 | } 180 | }, 181 | "@babel/helper-validator-identifier": { 182 | "version": "7.12.11", 183 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", 184 | "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", 185 | "dev": true 186 | }, 187 | "@babel/helpers": { 188 | "version": "7.12.5", 189 | "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", 190 | "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", 191 | "dev": true, 192 | "requires": { 193 | "@babel/template": "^7.10.4", 194 | "@babel/traverse": "^7.12.5", 195 | "@babel/types": "^7.12.5" 196 | } 197 | }, 198 | "@babel/highlight": { 199 | "version": "7.10.4", 200 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", 201 | "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", 202 | "dev": true, 203 | "requires": { 204 | "@babel/helper-validator-identifier": "^7.10.4", 205 | "chalk": "^2.0.0", 206 | "js-tokens": "^4.0.0" 207 | } 208 | }, 209 | "@babel/parser": { 210 | "version": "7.12.11", 211 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.11.tgz", 212 | "integrity": "sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg==", 213 | "dev": true 214 | }, 215 | "@babel/plugin-syntax-object-rest-spread": { 216 | "version": "7.8.3", 217 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", 218 | "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", 219 | "dev": true, 220 | "requires": { 221 | "@babel/helper-plugin-utils": "^7.8.0" 222 | } 223 | }, 224 | "@babel/template": { 225 | "version": "7.12.7", 226 | "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz", 227 | "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==", 228 | "dev": true, 229 | "requires": { 230 | "@babel/code-frame": "^7.10.4", 231 | "@babel/parser": "^7.12.7", 232 | "@babel/types": "^7.12.7" 233 | } 234 | }, 235 | "@babel/traverse": { 236 | "version": "7.12.12", 237 | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.12.tgz", 238 | "integrity": "sha512-s88i0X0lPy45RrLM8b9mz8RPH5FqO9G9p7ti59cToE44xFm1Q+Pjh5Gq4SXBbtb88X7Uy7pexeqRIQDDMNkL0w==", 239 | "dev": true, 240 | "requires": { 241 | "@babel/code-frame": "^7.12.11", 242 | "@babel/generator": "^7.12.11", 243 | "@babel/helper-function-name": "^7.12.11", 244 | "@babel/helper-split-export-declaration": "^7.12.11", 245 | "@babel/parser": "^7.12.11", 246 | "@babel/types": "^7.12.12", 247 | "debug": "^4.1.0", 248 | "globals": "^11.1.0", 249 | "lodash": "^4.17.19" 250 | }, 251 | "dependencies": { 252 | "debug": { 253 | "version": "4.3.1", 254 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", 255 | "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", 256 | "dev": true, 257 | "requires": { 258 | "ms": "2.1.2" 259 | } 260 | }, 261 | "ms": { 262 | "version": "2.1.2", 263 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 264 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 265 | "dev": true 266 | } 267 | } 268 | }, 269 | "@babel/types": { 270 | "version": "7.12.12", 271 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.12.tgz", 272 | "integrity": "sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ==", 273 | "dev": true, 274 | "requires": { 275 | "@babel/helper-validator-identifier": "^7.12.11", 276 | "lodash": "^4.17.19", 277 | "to-fast-properties": "^2.0.0" 278 | } 279 | }, 280 | "@cnakazawa/watch": { 281 | "version": "1.0.4", 282 | "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", 283 | "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", 284 | "dev": true, 285 | "requires": { 286 | "exec-sh": "^0.3.2", 287 | "minimist": "^1.2.0" 288 | } 289 | }, 290 | "@jest/console": { 291 | "version": "24.9.0", 292 | "resolved": "https://registry.npmjs.org/@jest/console/-/console-24.9.0.tgz", 293 | "integrity": "sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ==", 294 | "dev": true, 295 | "requires": { 296 | "@jest/source-map": "^24.9.0", 297 | "chalk": "^2.0.1", 298 | "slash": "^2.0.0" 299 | } 300 | }, 301 | "@jest/core": { 302 | "version": "24.9.0", 303 | "resolved": "https://registry.npmjs.org/@jest/core/-/core-24.9.0.tgz", 304 | "integrity": "sha512-Fogg3s4wlAr1VX7q+rhV9RVnUv5tD7VuWfYy1+whMiWUrvl7U3QJSJyWcDio9Lq2prqYsZaeTv2Rz24pWGkJ2A==", 305 | "dev": true, 306 | "requires": { 307 | "@jest/console": "^24.7.1", 308 | "@jest/reporters": "^24.9.0", 309 | "@jest/test-result": "^24.9.0", 310 | "@jest/transform": "^24.9.0", 311 | "@jest/types": "^24.9.0", 312 | "ansi-escapes": "^3.0.0", 313 | "chalk": "^2.0.1", 314 | "exit": "^0.1.2", 315 | "graceful-fs": "^4.1.15", 316 | "jest-changed-files": "^24.9.0", 317 | "jest-config": "^24.9.0", 318 | "jest-haste-map": "^24.9.0", 319 | "jest-message-util": "^24.9.0", 320 | "jest-regex-util": "^24.3.0", 321 | "jest-resolve": "^24.9.0", 322 | "jest-resolve-dependencies": "^24.9.0", 323 | "jest-runner": "^24.9.0", 324 | "jest-runtime": "^24.9.0", 325 | "jest-snapshot": "^24.9.0", 326 | "jest-util": "^24.9.0", 327 | "jest-validate": "^24.9.0", 328 | "jest-watcher": "^24.9.0", 329 | "micromatch": "^3.1.10", 330 | "p-each-series": "^1.0.0", 331 | "realpath-native": "^1.1.0", 332 | "rimraf": "^2.5.4", 333 | "slash": "^2.0.0", 334 | "strip-ansi": "^5.0.0" 335 | } 336 | }, 337 | "@jest/environment": { 338 | "version": "24.9.0", 339 | "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-24.9.0.tgz", 340 | "integrity": "sha512-5A1QluTPhvdIPFYnO3sZC3smkNeXPVELz7ikPbhUj0bQjB07EoE9qtLrem14ZUYWdVayYbsjVwIiL4WBIMV4aQ==", 341 | "dev": true, 342 | "requires": { 343 | "@jest/fake-timers": "^24.9.0", 344 | "@jest/transform": "^24.9.0", 345 | "@jest/types": "^24.9.0", 346 | "jest-mock": "^24.9.0" 347 | } 348 | }, 349 | "@jest/fake-timers": { 350 | "version": "24.9.0", 351 | "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-24.9.0.tgz", 352 | "integrity": "sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A==", 353 | "dev": true, 354 | "requires": { 355 | "@jest/types": "^24.9.0", 356 | "jest-message-util": "^24.9.0", 357 | "jest-mock": "^24.9.0" 358 | } 359 | }, 360 | "@jest/reporters": { 361 | "version": "24.9.0", 362 | "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-24.9.0.tgz", 363 | "integrity": "sha512-mu4X0yjaHrffOsWmVLzitKmmmWSQ3GGuefgNscUSWNiUNcEOSEQk9k3pERKEQVBb0Cnn88+UESIsZEMH3o88Gw==", 364 | "dev": true, 365 | "requires": { 366 | "@jest/environment": "^24.9.0", 367 | "@jest/test-result": "^24.9.0", 368 | "@jest/transform": "^24.9.0", 369 | "@jest/types": "^24.9.0", 370 | "chalk": "^2.0.1", 371 | "exit": "^0.1.2", 372 | "glob": "^7.1.2", 373 | "istanbul-lib-coverage": "^2.0.2", 374 | "istanbul-lib-instrument": "^3.0.1", 375 | "istanbul-lib-report": "^2.0.4", 376 | "istanbul-lib-source-maps": "^3.0.1", 377 | "istanbul-reports": "^2.2.6", 378 | "jest-haste-map": "^24.9.0", 379 | "jest-resolve": "^24.9.0", 380 | "jest-runtime": "^24.9.0", 381 | "jest-util": "^24.9.0", 382 | "jest-worker": "^24.6.0", 383 | "node-notifier": "^5.4.2", 384 | "slash": "^2.0.0", 385 | "source-map": "^0.6.0", 386 | "string-length": "^2.0.0" 387 | } 388 | }, 389 | "@jest/source-map": { 390 | "version": "24.9.0", 391 | "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-24.9.0.tgz", 392 | "integrity": "sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg==", 393 | "dev": true, 394 | "requires": { 395 | "callsites": "^3.0.0", 396 | "graceful-fs": "^4.1.15", 397 | "source-map": "^0.6.0" 398 | } 399 | }, 400 | "@jest/test-result": { 401 | "version": "24.9.0", 402 | "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-24.9.0.tgz", 403 | "integrity": "sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA==", 404 | "dev": true, 405 | "requires": { 406 | "@jest/console": "^24.9.0", 407 | "@jest/types": "^24.9.0", 408 | "@types/istanbul-lib-coverage": "^2.0.0" 409 | } 410 | }, 411 | "@jest/test-sequencer": { 412 | "version": "24.9.0", 413 | "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-24.9.0.tgz", 414 | "integrity": "sha512-6qqsU4o0kW1dvA95qfNog8v8gkRN9ph6Lz7r96IvZpHdNipP2cBcb07J1Z45mz/VIS01OHJ3pY8T5fUY38tg4A==", 415 | "dev": true, 416 | "requires": { 417 | "@jest/test-result": "^24.9.0", 418 | "jest-haste-map": "^24.9.0", 419 | "jest-runner": "^24.9.0", 420 | "jest-runtime": "^24.9.0" 421 | } 422 | }, 423 | "@jest/transform": { 424 | "version": "24.9.0", 425 | "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-24.9.0.tgz", 426 | "integrity": "sha512-TcQUmyNRxV94S0QpMOnZl0++6RMiqpbH/ZMccFB/amku6Uwvyb1cjYX7xkp5nGNkbX4QPH/FcB6q1HBTHynLmQ==", 427 | "dev": true, 428 | "requires": { 429 | "@babel/core": "^7.1.0", 430 | "@jest/types": "^24.9.0", 431 | "babel-plugin-istanbul": "^5.1.0", 432 | "chalk": "^2.0.1", 433 | "convert-source-map": "^1.4.0", 434 | "fast-json-stable-stringify": "^2.0.0", 435 | "graceful-fs": "^4.1.15", 436 | "jest-haste-map": "^24.9.0", 437 | "jest-regex-util": "^24.9.0", 438 | "jest-util": "^24.9.0", 439 | "micromatch": "^3.1.10", 440 | "pirates": "^4.0.1", 441 | "realpath-native": "^1.1.0", 442 | "slash": "^2.0.0", 443 | "source-map": "^0.6.1", 444 | "write-file-atomic": "2.4.1" 445 | } 446 | }, 447 | "@jest/types": { 448 | "version": "24.9.0", 449 | "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", 450 | "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", 451 | "dev": true, 452 | "requires": { 453 | "@types/istanbul-lib-coverage": "^2.0.0", 454 | "@types/istanbul-reports": "^1.1.1", 455 | "@types/yargs": "^13.0.0" 456 | } 457 | }, 458 | "@types/babel__core": { 459 | "version": "7.1.12", 460 | "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.12.tgz", 461 | "integrity": "sha512-wMTHiiTiBAAPebqaPiPDLFA4LYPKr6Ph0Xq/6rq1Ur3v66HXyG+clfR9CNETkD7MQS8ZHvpQOtA53DLws5WAEQ==", 462 | "dev": true, 463 | "requires": { 464 | "@babel/parser": "^7.1.0", 465 | "@babel/types": "^7.0.0", 466 | "@types/babel__generator": "*", 467 | "@types/babel__template": "*", 468 | "@types/babel__traverse": "*" 469 | } 470 | }, 471 | "@types/babel__generator": { 472 | "version": "7.6.2", 473 | "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.2.tgz", 474 | "integrity": "sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ==", 475 | "dev": true, 476 | "requires": { 477 | "@babel/types": "^7.0.0" 478 | } 479 | }, 480 | "@types/babel__template": { 481 | "version": "7.4.0", 482 | "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.0.tgz", 483 | "integrity": "sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A==", 484 | "dev": true, 485 | "requires": { 486 | "@babel/parser": "^7.1.0", 487 | "@babel/types": "^7.0.0" 488 | } 489 | }, 490 | "@types/babel__traverse": { 491 | "version": "7.11.0", 492 | "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.11.0.tgz", 493 | "integrity": "sha512-kSjgDMZONiIfSH1Nxcr5JIRMwUetDki63FSQfpTCz8ogF3Ulqm8+mr5f78dUYs6vMiB6gBusQqfQmBvHZj/lwg==", 494 | "dev": true, 495 | "requires": { 496 | "@babel/types": "^7.3.0" 497 | } 498 | }, 499 | "@types/istanbul-lib-coverage": { 500 | "version": "2.0.3", 501 | "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", 502 | "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==", 503 | "dev": true 504 | }, 505 | "@types/istanbul-lib-report": { 506 | "version": "3.0.0", 507 | "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", 508 | "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", 509 | "dev": true, 510 | "requires": { 511 | "@types/istanbul-lib-coverage": "*" 512 | } 513 | }, 514 | "@types/istanbul-reports": { 515 | "version": "1.1.2", 516 | "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", 517 | "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", 518 | "dev": true, 519 | "requires": { 520 | "@types/istanbul-lib-coverage": "*", 521 | "@types/istanbul-lib-report": "*" 522 | } 523 | }, 524 | "@types/jest": { 525 | "version": "24.9.1", 526 | "resolved": "https://registry.npmjs.org/@types/jest/-/jest-24.9.1.tgz", 527 | "integrity": "sha512-Fb38HkXSVA4L8fGKEZ6le5bB8r6MRWlOCZbVuWZcmOMSCd2wCYOwN1ibj8daIoV9naq7aaOZjrLCoCMptKU/4Q==", 528 | "dev": true, 529 | "requires": { 530 | "jest-diff": "^24.3.0" 531 | } 532 | }, 533 | "@types/pegjs": { 534 | "version": "0.10.2", 535 | "resolved": "https://registry.npmjs.org/@types/pegjs/-/pegjs-0.10.2.tgz", 536 | "integrity": "sha512-HSiQX7133jjMBOrN3kWaLlpelS6Bg95uJaesr3nwf8qz9MTQorXqbLlErYGxKqXuYgRCKmSLUk0faCKS4yzT3g==", 537 | "dev": true 538 | }, 539 | "@types/stack-utils": { 540 | "version": "1.0.1", 541 | "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz", 542 | "integrity": "sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==", 543 | "dev": true 544 | }, 545 | "@types/yargs": { 546 | "version": "13.0.11", 547 | "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.11.tgz", 548 | "integrity": "sha512-NRqD6T4gktUrDi1o1wLH3EKC1o2caCr7/wR87ODcbVITQF106OM3sFN92ysZ++wqelOd1CTzatnOBRDYYG6wGQ==", 549 | "dev": true, 550 | "requires": { 551 | "@types/yargs-parser": "*" 552 | } 553 | }, 554 | "@types/yargs-parser": { 555 | "version": "20.2.0", 556 | "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz", 557 | "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==", 558 | "dev": true 559 | }, 560 | "abab": { 561 | "version": "2.0.5", 562 | "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", 563 | "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", 564 | "dev": true 565 | }, 566 | "acorn": { 567 | "version": "5.7.4", 568 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", 569 | "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==", 570 | "dev": true 571 | }, 572 | "acorn-globals": { 573 | "version": "4.3.4", 574 | "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz", 575 | "integrity": "sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==", 576 | "dev": true, 577 | "requires": { 578 | "acorn": "^6.0.1", 579 | "acorn-walk": "^6.0.1" 580 | }, 581 | "dependencies": { 582 | "acorn": { 583 | "version": "6.4.2", 584 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", 585 | "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", 586 | "dev": true 587 | } 588 | } 589 | }, 590 | "acorn-walk": { 591 | "version": "6.2.0", 592 | "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz", 593 | "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==", 594 | "dev": true 595 | }, 596 | "ajv": { 597 | "version": "6.12.6", 598 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", 599 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", 600 | "dev": true, 601 | "requires": { 602 | "fast-deep-equal": "^3.1.1", 603 | "fast-json-stable-stringify": "^2.0.0", 604 | "json-schema-traverse": "^0.4.1", 605 | "uri-js": "^4.2.2" 606 | } 607 | }, 608 | "ansi-escapes": { 609 | "version": "3.2.0", 610 | "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", 611 | "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", 612 | "dev": true 613 | }, 614 | "ansi-regex": { 615 | "version": "4.1.0", 616 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", 617 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", 618 | "dev": true 619 | }, 620 | "ansi-styles": { 621 | "version": "3.2.1", 622 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 623 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 624 | "dev": true, 625 | "requires": { 626 | "color-convert": "^1.9.0" 627 | } 628 | }, 629 | "anymatch": { 630 | "version": "2.0.0", 631 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", 632 | "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", 633 | "dev": true, 634 | "requires": { 635 | "micromatch": "^3.1.4", 636 | "normalize-path": "^2.1.1" 637 | } 638 | }, 639 | "arg": { 640 | "version": "4.1.3", 641 | "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", 642 | "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", 643 | "dev": true 644 | }, 645 | "arr-diff": { 646 | "version": "4.0.0", 647 | "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", 648 | "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", 649 | "dev": true 650 | }, 651 | "arr-flatten": { 652 | "version": "1.1.0", 653 | "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", 654 | "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", 655 | "dev": true 656 | }, 657 | "arr-union": { 658 | "version": "3.1.0", 659 | "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", 660 | "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", 661 | "dev": true 662 | }, 663 | "array-equal": { 664 | "version": "1.0.0", 665 | "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", 666 | "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", 667 | "dev": true 668 | }, 669 | "array-unique": { 670 | "version": "0.3.2", 671 | "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", 672 | "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", 673 | "dev": true 674 | }, 675 | "asn1": { 676 | "version": "0.2.4", 677 | "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", 678 | "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", 679 | "dev": true, 680 | "requires": { 681 | "safer-buffer": "~2.1.0" 682 | } 683 | }, 684 | "assert-plus": { 685 | "version": "1.0.0", 686 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 687 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", 688 | "dev": true 689 | }, 690 | "assign-symbols": { 691 | "version": "1.0.0", 692 | "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", 693 | "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", 694 | "dev": true 695 | }, 696 | "astral-regex": { 697 | "version": "1.0.0", 698 | "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", 699 | "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", 700 | "dev": true 701 | }, 702 | "async-limiter": { 703 | "version": "1.0.1", 704 | "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", 705 | "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", 706 | "dev": true 707 | }, 708 | "asynckit": { 709 | "version": "0.4.0", 710 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 711 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", 712 | "dev": true 713 | }, 714 | "atob": { 715 | "version": "2.1.2", 716 | "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", 717 | "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", 718 | "dev": true 719 | }, 720 | "aws-sign2": { 721 | "version": "0.7.0", 722 | "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", 723 | "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", 724 | "dev": true 725 | }, 726 | "aws4": { 727 | "version": "1.11.0", 728 | "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", 729 | "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", 730 | "dev": true 731 | }, 732 | "babel-jest": { 733 | "version": "24.9.0", 734 | "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-24.9.0.tgz", 735 | "integrity": "sha512-ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw==", 736 | "dev": true, 737 | "requires": { 738 | "@jest/transform": "^24.9.0", 739 | "@jest/types": "^24.9.0", 740 | "@types/babel__core": "^7.1.0", 741 | "babel-plugin-istanbul": "^5.1.0", 742 | "babel-preset-jest": "^24.9.0", 743 | "chalk": "^2.4.2", 744 | "slash": "^2.0.0" 745 | } 746 | }, 747 | "babel-plugin-istanbul": { 748 | "version": "5.2.0", 749 | "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz", 750 | "integrity": "sha512-5LphC0USA8t4i1zCtjbbNb6jJj/9+X6P37Qfirc/70EQ34xKlMW+a1RHGwxGI+SwWpNwZ27HqvzAobeqaXwiZw==", 751 | "dev": true, 752 | "requires": { 753 | "@babel/helper-plugin-utils": "^7.0.0", 754 | "find-up": "^3.0.0", 755 | "istanbul-lib-instrument": "^3.3.0", 756 | "test-exclude": "^5.2.3" 757 | } 758 | }, 759 | "babel-plugin-jest-hoist": { 760 | "version": "24.9.0", 761 | "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz", 762 | "integrity": "sha512-2EMA2P8Vp7lG0RAzr4HXqtYwacfMErOuv1U3wrvxHX6rD1sV6xS3WXG3r8TRQ2r6w8OhvSdWt+z41hQNwNm3Xw==", 763 | "dev": true, 764 | "requires": { 765 | "@types/babel__traverse": "^7.0.6" 766 | } 767 | }, 768 | "babel-preset-jest": { 769 | "version": "24.9.0", 770 | "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz", 771 | "integrity": "sha512-izTUuhE4TMfTRPF92fFwD2QfdXaZW08qvWTFCI51V8rW5x00UuPgc3ajRoWofXOuxjfcOM5zzSYsQS3H8KGCAg==", 772 | "dev": true, 773 | "requires": { 774 | "@babel/plugin-syntax-object-rest-spread": "^7.0.0", 775 | "babel-plugin-jest-hoist": "^24.9.0" 776 | } 777 | }, 778 | "balanced-match": { 779 | "version": "1.0.0", 780 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 781 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", 782 | "dev": true 783 | }, 784 | "base": { 785 | "version": "0.11.2", 786 | "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", 787 | "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", 788 | "dev": true, 789 | "requires": { 790 | "cache-base": "^1.0.1", 791 | "class-utils": "^0.3.5", 792 | "component-emitter": "^1.2.1", 793 | "define-property": "^1.0.0", 794 | "isobject": "^3.0.1", 795 | "mixin-deep": "^1.2.0", 796 | "pascalcase": "^0.1.1" 797 | }, 798 | "dependencies": { 799 | "define-property": { 800 | "version": "1.0.0", 801 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", 802 | "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", 803 | "dev": true, 804 | "requires": { 805 | "is-descriptor": "^1.0.0" 806 | } 807 | }, 808 | "is-accessor-descriptor": { 809 | "version": "1.0.0", 810 | "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", 811 | "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", 812 | "dev": true, 813 | "requires": { 814 | "kind-of": "^6.0.0" 815 | } 816 | }, 817 | "is-data-descriptor": { 818 | "version": "1.0.0", 819 | "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", 820 | "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", 821 | "dev": true, 822 | "requires": { 823 | "kind-of": "^6.0.0" 824 | } 825 | }, 826 | "is-descriptor": { 827 | "version": "1.0.2", 828 | "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", 829 | "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", 830 | "dev": true, 831 | "requires": { 832 | "is-accessor-descriptor": "^1.0.0", 833 | "is-data-descriptor": "^1.0.0", 834 | "kind-of": "^6.0.2" 835 | } 836 | } 837 | } 838 | }, 839 | "bcrypt-pbkdf": { 840 | "version": "1.0.2", 841 | "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", 842 | "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", 843 | "dev": true, 844 | "requires": { 845 | "tweetnacl": "^0.14.3" 846 | } 847 | }, 848 | "bindings": { 849 | "version": "1.5.0", 850 | "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", 851 | "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", 852 | "dev": true, 853 | "optional": true, 854 | "requires": { 855 | "file-uri-to-path": "1.0.0" 856 | } 857 | }, 858 | "brace-expansion": { 859 | "version": "1.1.11", 860 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 861 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 862 | "dev": true, 863 | "requires": { 864 | "balanced-match": "^1.0.0", 865 | "concat-map": "0.0.1" 866 | } 867 | }, 868 | "braces": { 869 | "version": "2.3.2", 870 | "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", 871 | "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", 872 | "dev": true, 873 | "requires": { 874 | "arr-flatten": "^1.1.0", 875 | "array-unique": "^0.3.2", 876 | "extend-shallow": "^2.0.1", 877 | "fill-range": "^4.0.0", 878 | "isobject": "^3.0.1", 879 | "repeat-element": "^1.1.2", 880 | "snapdragon": "^0.8.1", 881 | "snapdragon-node": "^2.0.1", 882 | "split-string": "^3.0.2", 883 | "to-regex": "^3.0.1" 884 | }, 885 | "dependencies": { 886 | "extend-shallow": { 887 | "version": "2.0.1", 888 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", 889 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", 890 | "dev": true, 891 | "requires": { 892 | "is-extendable": "^0.1.0" 893 | } 894 | } 895 | } 896 | }, 897 | "browser-process-hrtime": { 898 | "version": "1.0.0", 899 | "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", 900 | "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", 901 | "dev": true 902 | }, 903 | "browser-resolve": { 904 | "version": "1.11.3", 905 | "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", 906 | "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", 907 | "dev": true, 908 | "requires": { 909 | "resolve": "1.1.7" 910 | }, 911 | "dependencies": { 912 | "resolve": { 913 | "version": "1.1.7", 914 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", 915 | "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", 916 | "dev": true 917 | } 918 | } 919 | }, 920 | "bs-logger": { 921 | "version": "0.2.6", 922 | "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", 923 | "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", 924 | "dev": true, 925 | "requires": { 926 | "fast-json-stable-stringify": "2.x" 927 | } 928 | }, 929 | "bser": { 930 | "version": "2.1.1", 931 | "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", 932 | "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", 933 | "dev": true, 934 | "requires": { 935 | "node-int64": "^0.4.0" 936 | } 937 | }, 938 | "buffer-from": { 939 | "version": "1.1.1", 940 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", 941 | "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", 942 | "dev": true 943 | }, 944 | "cache-base": { 945 | "version": "1.0.1", 946 | "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", 947 | "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", 948 | "dev": true, 949 | "requires": { 950 | "collection-visit": "^1.0.0", 951 | "component-emitter": "^1.2.1", 952 | "get-value": "^2.0.6", 953 | "has-value": "^1.0.0", 954 | "isobject": "^3.0.1", 955 | "set-value": "^2.0.0", 956 | "to-object-path": "^0.3.0", 957 | "union-value": "^1.0.0", 958 | "unset-value": "^1.0.0" 959 | } 960 | }, 961 | "call-bind": { 962 | "version": "1.0.1", 963 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.1.tgz", 964 | "integrity": "sha512-tvAvUwNcRikl3RVF20X9lsYmmepsovzTWeJiXjO0PkJp15uy/6xKFZOQtuiSULwYW+6ToZBprphCgWXC2dSgcQ==", 965 | "dev": true, 966 | "requires": { 967 | "function-bind": "^1.1.1", 968 | "get-intrinsic": "^1.0.2" 969 | } 970 | }, 971 | "callsites": { 972 | "version": "3.1.0", 973 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 974 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 975 | "dev": true 976 | }, 977 | "camelcase": { 978 | "version": "5.3.1", 979 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", 980 | "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", 981 | "dev": true 982 | }, 983 | "capture-exit": { 984 | "version": "2.0.0", 985 | "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", 986 | "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", 987 | "dev": true, 988 | "requires": { 989 | "rsvp": "^4.8.4" 990 | } 991 | }, 992 | "caseless": { 993 | "version": "0.12.0", 994 | "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", 995 | "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", 996 | "dev": true 997 | }, 998 | "chalk": { 999 | "version": "2.4.2", 1000 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 1001 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 1002 | "dev": true, 1003 | "requires": { 1004 | "ansi-styles": "^3.2.1", 1005 | "escape-string-regexp": "^1.0.5", 1006 | "supports-color": "^5.3.0" 1007 | } 1008 | }, 1009 | "ci-info": { 1010 | "version": "2.0.0", 1011 | "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", 1012 | "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", 1013 | "dev": true 1014 | }, 1015 | "class-utils": { 1016 | "version": "0.3.6", 1017 | "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", 1018 | "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", 1019 | "dev": true, 1020 | "requires": { 1021 | "arr-union": "^3.1.0", 1022 | "define-property": "^0.2.5", 1023 | "isobject": "^3.0.0", 1024 | "static-extend": "^0.1.1" 1025 | }, 1026 | "dependencies": { 1027 | "define-property": { 1028 | "version": "0.2.5", 1029 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", 1030 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", 1031 | "dev": true, 1032 | "requires": { 1033 | "is-descriptor": "^0.1.0" 1034 | } 1035 | } 1036 | } 1037 | }, 1038 | "cliui": { 1039 | "version": "5.0.0", 1040 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", 1041 | "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", 1042 | "dev": true, 1043 | "requires": { 1044 | "string-width": "^3.1.0", 1045 | "strip-ansi": "^5.2.0", 1046 | "wrap-ansi": "^5.1.0" 1047 | } 1048 | }, 1049 | "co": { 1050 | "version": "4.6.0", 1051 | "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", 1052 | "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", 1053 | "dev": true 1054 | }, 1055 | "collection-visit": { 1056 | "version": "1.0.0", 1057 | "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", 1058 | "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", 1059 | "dev": true, 1060 | "requires": { 1061 | "map-visit": "^1.0.0", 1062 | "object-visit": "^1.0.0" 1063 | } 1064 | }, 1065 | "color-convert": { 1066 | "version": "1.9.3", 1067 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 1068 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 1069 | "dev": true, 1070 | "requires": { 1071 | "color-name": "1.1.3" 1072 | } 1073 | }, 1074 | "color-name": { 1075 | "version": "1.1.3", 1076 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 1077 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", 1078 | "dev": true 1079 | }, 1080 | "combined-stream": { 1081 | "version": "1.0.8", 1082 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", 1083 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", 1084 | "dev": true, 1085 | "requires": { 1086 | "delayed-stream": "~1.0.0" 1087 | } 1088 | }, 1089 | "component-emitter": { 1090 | "version": "1.3.0", 1091 | "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", 1092 | "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", 1093 | "dev": true 1094 | }, 1095 | "concat-map": { 1096 | "version": "0.0.1", 1097 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 1098 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 1099 | "dev": true 1100 | }, 1101 | "convert-source-map": { 1102 | "version": "1.7.0", 1103 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", 1104 | "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", 1105 | "dev": true, 1106 | "requires": { 1107 | "safe-buffer": "~5.1.1" 1108 | } 1109 | }, 1110 | "copy-descriptor": { 1111 | "version": "0.1.1", 1112 | "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", 1113 | "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", 1114 | "dev": true 1115 | }, 1116 | "core-util-is": { 1117 | "version": "1.0.2", 1118 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 1119 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", 1120 | "dev": true 1121 | }, 1122 | "cross-spawn": { 1123 | "version": "6.0.5", 1124 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", 1125 | "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", 1126 | "dev": true, 1127 | "requires": { 1128 | "nice-try": "^1.0.4", 1129 | "path-key": "^2.0.1", 1130 | "semver": "^5.5.0", 1131 | "shebang-command": "^1.2.0", 1132 | "which": "^1.2.9" 1133 | } 1134 | }, 1135 | "cssom": { 1136 | "version": "0.3.8", 1137 | "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", 1138 | "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", 1139 | "dev": true 1140 | }, 1141 | "cssstyle": { 1142 | "version": "1.4.0", 1143 | "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.4.0.tgz", 1144 | "integrity": "sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA==", 1145 | "dev": true, 1146 | "requires": { 1147 | "cssom": "0.3.x" 1148 | } 1149 | }, 1150 | "dashdash": { 1151 | "version": "1.14.1", 1152 | "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", 1153 | "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", 1154 | "dev": true, 1155 | "requires": { 1156 | "assert-plus": "^1.0.0" 1157 | } 1158 | }, 1159 | "data-urls": { 1160 | "version": "1.1.0", 1161 | "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz", 1162 | "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==", 1163 | "dev": true, 1164 | "requires": { 1165 | "abab": "^2.0.0", 1166 | "whatwg-mimetype": "^2.2.0", 1167 | "whatwg-url": "^7.0.0" 1168 | }, 1169 | "dependencies": { 1170 | "whatwg-url": { 1171 | "version": "7.1.0", 1172 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", 1173 | "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", 1174 | "dev": true, 1175 | "requires": { 1176 | "lodash.sortby": "^4.7.0", 1177 | "tr46": "^1.0.1", 1178 | "webidl-conversions": "^4.0.2" 1179 | } 1180 | } 1181 | } 1182 | }, 1183 | "debug": { 1184 | "version": "2.6.9", 1185 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 1186 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 1187 | "dev": true, 1188 | "requires": { 1189 | "ms": "2.0.0" 1190 | } 1191 | }, 1192 | "decamelize": { 1193 | "version": "1.2.0", 1194 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", 1195 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", 1196 | "dev": true 1197 | }, 1198 | "decode-uri-component": { 1199 | "version": "0.2.0", 1200 | "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", 1201 | "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", 1202 | "dev": true 1203 | }, 1204 | "deep-is": { 1205 | "version": "0.1.3", 1206 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", 1207 | "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", 1208 | "dev": true 1209 | }, 1210 | "define-properties": { 1211 | "version": "1.1.3", 1212 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", 1213 | "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", 1214 | "dev": true, 1215 | "requires": { 1216 | "object-keys": "^1.0.12" 1217 | } 1218 | }, 1219 | "define-property": { 1220 | "version": "2.0.2", 1221 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", 1222 | "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", 1223 | "dev": true, 1224 | "requires": { 1225 | "is-descriptor": "^1.0.2", 1226 | "isobject": "^3.0.1" 1227 | }, 1228 | "dependencies": { 1229 | "is-accessor-descriptor": { 1230 | "version": "1.0.0", 1231 | "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", 1232 | "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", 1233 | "dev": true, 1234 | "requires": { 1235 | "kind-of": "^6.0.0" 1236 | } 1237 | }, 1238 | "is-data-descriptor": { 1239 | "version": "1.0.0", 1240 | "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", 1241 | "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", 1242 | "dev": true, 1243 | "requires": { 1244 | "kind-of": "^6.0.0" 1245 | } 1246 | }, 1247 | "is-descriptor": { 1248 | "version": "1.0.2", 1249 | "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", 1250 | "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", 1251 | "dev": true, 1252 | "requires": { 1253 | "is-accessor-descriptor": "^1.0.0", 1254 | "is-data-descriptor": "^1.0.0", 1255 | "kind-of": "^6.0.2" 1256 | } 1257 | } 1258 | } 1259 | }, 1260 | "delayed-stream": { 1261 | "version": "1.0.0", 1262 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 1263 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", 1264 | "dev": true 1265 | }, 1266 | "detect-newline": { 1267 | "version": "2.1.0", 1268 | "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", 1269 | "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", 1270 | "dev": true 1271 | }, 1272 | "diff": { 1273 | "version": "4.0.2", 1274 | "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", 1275 | "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", 1276 | "dev": true 1277 | }, 1278 | "diff-sequences": { 1279 | "version": "24.9.0", 1280 | "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-24.9.0.tgz", 1281 | "integrity": "sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew==", 1282 | "dev": true 1283 | }, 1284 | "domexception": { 1285 | "version": "1.0.1", 1286 | "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", 1287 | "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", 1288 | "dev": true, 1289 | "requires": { 1290 | "webidl-conversions": "^4.0.2" 1291 | } 1292 | }, 1293 | "ecc-jsbn": { 1294 | "version": "0.1.2", 1295 | "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", 1296 | "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", 1297 | "dev": true, 1298 | "requires": { 1299 | "jsbn": "~0.1.0", 1300 | "safer-buffer": "^2.1.0" 1301 | } 1302 | }, 1303 | "emoji-regex": { 1304 | "version": "7.0.3", 1305 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", 1306 | "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", 1307 | "dev": true 1308 | }, 1309 | "end-of-stream": { 1310 | "version": "1.4.4", 1311 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", 1312 | "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", 1313 | "dev": true, 1314 | "requires": { 1315 | "once": "^1.4.0" 1316 | } 1317 | }, 1318 | "error-ex": { 1319 | "version": "1.3.2", 1320 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", 1321 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", 1322 | "dev": true, 1323 | "requires": { 1324 | "is-arrayish": "^0.2.1" 1325 | } 1326 | }, 1327 | "es-abstract": { 1328 | "version": "1.18.0-next.1", 1329 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", 1330 | "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", 1331 | "dev": true, 1332 | "requires": { 1333 | "es-to-primitive": "^1.2.1", 1334 | "function-bind": "^1.1.1", 1335 | "has": "^1.0.3", 1336 | "has-symbols": "^1.0.1", 1337 | "is-callable": "^1.2.2", 1338 | "is-negative-zero": "^2.0.0", 1339 | "is-regex": "^1.1.1", 1340 | "object-inspect": "^1.8.0", 1341 | "object-keys": "^1.1.1", 1342 | "object.assign": "^4.1.1", 1343 | "string.prototype.trimend": "^1.0.1", 1344 | "string.prototype.trimstart": "^1.0.1" 1345 | } 1346 | }, 1347 | "es-to-primitive": { 1348 | "version": "1.2.1", 1349 | "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", 1350 | "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", 1351 | "dev": true, 1352 | "requires": { 1353 | "is-callable": "^1.1.4", 1354 | "is-date-object": "^1.0.1", 1355 | "is-symbol": "^1.0.2" 1356 | } 1357 | }, 1358 | "escape-string-regexp": { 1359 | "version": "1.0.5", 1360 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 1361 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 1362 | "dev": true 1363 | }, 1364 | "escodegen": { 1365 | "version": "1.14.3", 1366 | "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", 1367 | "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", 1368 | "dev": true, 1369 | "requires": { 1370 | "esprima": "^4.0.1", 1371 | "estraverse": "^4.2.0", 1372 | "esutils": "^2.0.2", 1373 | "optionator": "^0.8.1", 1374 | "source-map": "~0.6.1" 1375 | } 1376 | }, 1377 | "esprima": { 1378 | "version": "4.0.1", 1379 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", 1380 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", 1381 | "dev": true 1382 | }, 1383 | "estraverse": { 1384 | "version": "4.3.0", 1385 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", 1386 | "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", 1387 | "dev": true 1388 | }, 1389 | "esutils": { 1390 | "version": "2.0.3", 1391 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", 1392 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", 1393 | "dev": true 1394 | }, 1395 | "exec-sh": { 1396 | "version": "0.3.4", 1397 | "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz", 1398 | "integrity": "sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A==", 1399 | "dev": true 1400 | }, 1401 | "execa": { 1402 | "version": "1.0.0", 1403 | "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", 1404 | "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", 1405 | "dev": true, 1406 | "requires": { 1407 | "cross-spawn": "^6.0.0", 1408 | "get-stream": "^4.0.0", 1409 | "is-stream": "^1.1.0", 1410 | "npm-run-path": "^2.0.0", 1411 | "p-finally": "^1.0.0", 1412 | "signal-exit": "^3.0.0", 1413 | "strip-eof": "^1.0.0" 1414 | } 1415 | }, 1416 | "exit": { 1417 | "version": "0.1.2", 1418 | "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", 1419 | "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", 1420 | "dev": true 1421 | }, 1422 | "expand-brackets": { 1423 | "version": "2.1.4", 1424 | "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", 1425 | "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", 1426 | "dev": true, 1427 | "requires": { 1428 | "debug": "^2.3.3", 1429 | "define-property": "^0.2.5", 1430 | "extend-shallow": "^2.0.1", 1431 | "posix-character-classes": "^0.1.0", 1432 | "regex-not": "^1.0.0", 1433 | "snapdragon": "^0.8.1", 1434 | "to-regex": "^3.0.1" 1435 | }, 1436 | "dependencies": { 1437 | "define-property": { 1438 | "version": "0.2.5", 1439 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", 1440 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", 1441 | "dev": true, 1442 | "requires": { 1443 | "is-descriptor": "^0.1.0" 1444 | } 1445 | }, 1446 | "extend-shallow": { 1447 | "version": "2.0.1", 1448 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", 1449 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", 1450 | "dev": true, 1451 | "requires": { 1452 | "is-extendable": "^0.1.0" 1453 | } 1454 | } 1455 | } 1456 | }, 1457 | "expect": { 1458 | "version": "24.9.0", 1459 | "resolved": "https://registry.npmjs.org/expect/-/expect-24.9.0.tgz", 1460 | "integrity": "sha512-wvVAx8XIol3Z5m9zvZXiyZOQ+sRJqNTIm6sGjdWlaZIeupQGO3WbYI+15D/AmEwZywL6wtJkbAbJtzkOfBuR0Q==", 1461 | "dev": true, 1462 | "requires": { 1463 | "@jest/types": "^24.9.0", 1464 | "ansi-styles": "^3.2.0", 1465 | "jest-get-type": "^24.9.0", 1466 | "jest-matcher-utils": "^24.9.0", 1467 | "jest-message-util": "^24.9.0", 1468 | "jest-regex-util": "^24.9.0" 1469 | } 1470 | }, 1471 | "extend": { 1472 | "version": "3.0.2", 1473 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", 1474 | "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", 1475 | "dev": true 1476 | }, 1477 | "extend-shallow": { 1478 | "version": "3.0.2", 1479 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", 1480 | "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", 1481 | "dev": true, 1482 | "requires": { 1483 | "assign-symbols": "^1.0.0", 1484 | "is-extendable": "^1.0.1" 1485 | }, 1486 | "dependencies": { 1487 | "is-extendable": { 1488 | "version": "1.0.1", 1489 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", 1490 | "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", 1491 | "dev": true, 1492 | "requires": { 1493 | "is-plain-object": "^2.0.4" 1494 | } 1495 | } 1496 | } 1497 | }, 1498 | "extglob": { 1499 | "version": "2.0.4", 1500 | "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", 1501 | "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", 1502 | "dev": true, 1503 | "requires": { 1504 | "array-unique": "^0.3.2", 1505 | "define-property": "^1.0.0", 1506 | "expand-brackets": "^2.1.4", 1507 | "extend-shallow": "^2.0.1", 1508 | "fragment-cache": "^0.2.1", 1509 | "regex-not": "^1.0.0", 1510 | "snapdragon": "^0.8.1", 1511 | "to-regex": "^3.0.1" 1512 | }, 1513 | "dependencies": { 1514 | "define-property": { 1515 | "version": "1.0.0", 1516 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", 1517 | "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", 1518 | "dev": true, 1519 | "requires": { 1520 | "is-descriptor": "^1.0.0" 1521 | } 1522 | }, 1523 | "extend-shallow": { 1524 | "version": "2.0.1", 1525 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", 1526 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", 1527 | "dev": true, 1528 | "requires": { 1529 | "is-extendable": "^0.1.0" 1530 | } 1531 | }, 1532 | "is-accessor-descriptor": { 1533 | "version": "1.0.0", 1534 | "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", 1535 | "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", 1536 | "dev": true, 1537 | "requires": { 1538 | "kind-of": "^6.0.0" 1539 | } 1540 | }, 1541 | "is-data-descriptor": { 1542 | "version": "1.0.0", 1543 | "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", 1544 | "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", 1545 | "dev": true, 1546 | "requires": { 1547 | "kind-of": "^6.0.0" 1548 | } 1549 | }, 1550 | "is-descriptor": { 1551 | "version": "1.0.2", 1552 | "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", 1553 | "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", 1554 | "dev": true, 1555 | "requires": { 1556 | "is-accessor-descriptor": "^1.0.0", 1557 | "is-data-descriptor": "^1.0.0", 1558 | "kind-of": "^6.0.2" 1559 | } 1560 | } 1561 | } 1562 | }, 1563 | "extsprintf": { 1564 | "version": "1.3.0", 1565 | "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", 1566 | "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", 1567 | "dev": true 1568 | }, 1569 | "fast-deep-equal": { 1570 | "version": "3.1.3", 1571 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 1572 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", 1573 | "dev": true 1574 | }, 1575 | "fast-json-stable-stringify": { 1576 | "version": "2.1.0", 1577 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 1578 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", 1579 | "dev": true 1580 | }, 1581 | "fast-levenshtein": { 1582 | "version": "2.0.6", 1583 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 1584 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", 1585 | "dev": true 1586 | }, 1587 | "fb-watchman": { 1588 | "version": "2.0.1", 1589 | "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", 1590 | "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", 1591 | "dev": true, 1592 | "requires": { 1593 | "bser": "2.1.1" 1594 | } 1595 | }, 1596 | "file-uri-to-path": { 1597 | "version": "1.0.0", 1598 | "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", 1599 | "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", 1600 | "dev": true, 1601 | "optional": true 1602 | }, 1603 | "fill-range": { 1604 | "version": "4.0.0", 1605 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", 1606 | "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", 1607 | "dev": true, 1608 | "requires": { 1609 | "extend-shallow": "^2.0.1", 1610 | "is-number": "^3.0.0", 1611 | "repeat-string": "^1.6.1", 1612 | "to-regex-range": "^2.1.0" 1613 | }, 1614 | "dependencies": { 1615 | "extend-shallow": { 1616 | "version": "2.0.1", 1617 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", 1618 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", 1619 | "dev": true, 1620 | "requires": { 1621 | "is-extendable": "^0.1.0" 1622 | } 1623 | } 1624 | } 1625 | }, 1626 | "find-up": { 1627 | "version": "3.0.0", 1628 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", 1629 | "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", 1630 | "dev": true, 1631 | "requires": { 1632 | "locate-path": "^3.0.0" 1633 | } 1634 | }, 1635 | "for-each": { 1636 | "version": "0.3.3", 1637 | "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", 1638 | "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", 1639 | "dev": true, 1640 | "requires": { 1641 | "is-callable": "^1.1.3" 1642 | } 1643 | }, 1644 | "for-in": { 1645 | "version": "1.0.2", 1646 | "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", 1647 | "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", 1648 | "dev": true 1649 | }, 1650 | "forever-agent": { 1651 | "version": "0.6.1", 1652 | "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", 1653 | "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", 1654 | "dev": true 1655 | }, 1656 | "form-data": { 1657 | "version": "2.3.3", 1658 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", 1659 | "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", 1660 | "dev": true, 1661 | "requires": { 1662 | "asynckit": "^0.4.0", 1663 | "combined-stream": "^1.0.6", 1664 | "mime-types": "^2.1.12" 1665 | } 1666 | }, 1667 | "fragment-cache": { 1668 | "version": "0.2.1", 1669 | "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", 1670 | "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", 1671 | "dev": true, 1672 | "requires": { 1673 | "map-cache": "^0.2.2" 1674 | } 1675 | }, 1676 | "fs.realpath": { 1677 | "version": "1.0.0", 1678 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1679 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 1680 | "dev": true 1681 | }, 1682 | "fsevents": { 1683 | "version": "1.2.13", 1684 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", 1685 | "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", 1686 | "dev": true, 1687 | "optional": true, 1688 | "requires": { 1689 | "bindings": "^1.5.0", 1690 | "nan": "^2.12.1" 1691 | } 1692 | }, 1693 | "function-bind": { 1694 | "version": "1.1.1", 1695 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 1696 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 1697 | "dev": true 1698 | }, 1699 | "gensync": { 1700 | "version": "1.0.0-beta.2", 1701 | "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", 1702 | "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", 1703 | "dev": true 1704 | }, 1705 | "get-caller-file": { 1706 | "version": "2.0.5", 1707 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", 1708 | "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", 1709 | "dev": true 1710 | }, 1711 | "get-intrinsic": { 1712 | "version": "1.0.2", 1713 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.2.tgz", 1714 | "integrity": "sha512-aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg==", 1715 | "dev": true, 1716 | "requires": { 1717 | "function-bind": "^1.1.1", 1718 | "has": "^1.0.3", 1719 | "has-symbols": "^1.0.1" 1720 | } 1721 | }, 1722 | "get-stream": { 1723 | "version": "4.1.0", 1724 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", 1725 | "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", 1726 | "dev": true, 1727 | "requires": { 1728 | "pump": "^3.0.0" 1729 | } 1730 | }, 1731 | "get-value": { 1732 | "version": "2.0.6", 1733 | "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", 1734 | "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", 1735 | "dev": true 1736 | }, 1737 | "getpass": { 1738 | "version": "0.1.7", 1739 | "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", 1740 | "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", 1741 | "dev": true, 1742 | "requires": { 1743 | "assert-plus": "^1.0.0" 1744 | } 1745 | }, 1746 | "glob": { 1747 | "version": "7.1.6", 1748 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", 1749 | "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", 1750 | "dev": true, 1751 | "requires": { 1752 | "fs.realpath": "^1.0.0", 1753 | "inflight": "^1.0.4", 1754 | "inherits": "2", 1755 | "minimatch": "^3.0.4", 1756 | "once": "^1.3.0", 1757 | "path-is-absolute": "^1.0.0" 1758 | } 1759 | }, 1760 | "globals": { 1761 | "version": "11.12.0", 1762 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", 1763 | "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", 1764 | "dev": true 1765 | }, 1766 | "graceful-fs": { 1767 | "version": "4.2.4", 1768 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", 1769 | "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", 1770 | "dev": true 1771 | }, 1772 | "growly": { 1773 | "version": "1.3.0", 1774 | "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", 1775 | "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", 1776 | "dev": true 1777 | }, 1778 | "har-schema": { 1779 | "version": "2.0.0", 1780 | "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", 1781 | "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", 1782 | "dev": true 1783 | }, 1784 | "har-validator": { 1785 | "version": "5.1.5", 1786 | "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", 1787 | "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", 1788 | "dev": true, 1789 | "requires": { 1790 | "ajv": "^6.12.3", 1791 | "har-schema": "^2.0.0" 1792 | } 1793 | }, 1794 | "has": { 1795 | "version": "1.0.3", 1796 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 1797 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 1798 | "dev": true, 1799 | "requires": { 1800 | "function-bind": "^1.1.1" 1801 | } 1802 | }, 1803 | "has-flag": { 1804 | "version": "3.0.0", 1805 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 1806 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", 1807 | "dev": true 1808 | }, 1809 | "has-symbols": { 1810 | "version": "1.0.1", 1811 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", 1812 | "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", 1813 | "dev": true 1814 | }, 1815 | "has-value": { 1816 | "version": "1.0.0", 1817 | "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", 1818 | "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", 1819 | "dev": true, 1820 | "requires": { 1821 | "get-value": "^2.0.6", 1822 | "has-values": "^1.0.0", 1823 | "isobject": "^3.0.0" 1824 | } 1825 | }, 1826 | "has-values": { 1827 | "version": "1.0.0", 1828 | "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", 1829 | "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", 1830 | "dev": true, 1831 | "requires": { 1832 | "is-number": "^3.0.0", 1833 | "kind-of": "^4.0.0" 1834 | }, 1835 | "dependencies": { 1836 | "kind-of": { 1837 | "version": "4.0.0", 1838 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", 1839 | "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", 1840 | "dev": true, 1841 | "requires": { 1842 | "is-buffer": "^1.1.5" 1843 | } 1844 | } 1845 | } 1846 | }, 1847 | "hosted-git-info": { 1848 | "version": "2.8.8", 1849 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", 1850 | "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", 1851 | "dev": true 1852 | }, 1853 | "html-encoding-sniffer": { 1854 | "version": "1.0.2", 1855 | "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", 1856 | "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", 1857 | "dev": true, 1858 | "requires": { 1859 | "whatwg-encoding": "^1.0.1" 1860 | } 1861 | }, 1862 | "html-escaper": { 1863 | "version": "2.0.2", 1864 | "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", 1865 | "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", 1866 | "dev": true 1867 | }, 1868 | "http-signature": { 1869 | "version": "1.2.0", 1870 | "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", 1871 | "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", 1872 | "dev": true, 1873 | "requires": { 1874 | "assert-plus": "^1.0.0", 1875 | "jsprim": "^1.2.2", 1876 | "sshpk": "^1.7.0" 1877 | } 1878 | }, 1879 | "iconv-lite": { 1880 | "version": "0.4.24", 1881 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 1882 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 1883 | "dev": true, 1884 | "requires": { 1885 | "safer-buffer": ">= 2.1.2 < 3" 1886 | } 1887 | }, 1888 | "import-local": { 1889 | "version": "2.0.0", 1890 | "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", 1891 | "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", 1892 | "dev": true, 1893 | "requires": { 1894 | "pkg-dir": "^3.0.0", 1895 | "resolve-cwd": "^2.0.0" 1896 | } 1897 | }, 1898 | "imurmurhash": { 1899 | "version": "0.1.4", 1900 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 1901 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", 1902 | "dev": true 1903 | }, 1904 | "inflight": { 1905 | "version": "1.0.6", 1906 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 1907 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 1908 | "dev": true, 1909 | "requires": { 1910 | "once": "^1.3.0", 1911 | "wrappy": "1" 1912 | } 1913 | }, 1914 | "inherits": { 1915 | "version": "2.0.4", 1916 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 1917 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 1918 | "dev": true 1919 | }, 1920 | "invariant": { 1921 | "version": "2.2.4", 1922 | "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", 1923 | "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", 1924 | "dev": true, 1925 | "requires": { 1926 | "loose-envify": "^1.0.0" 1927 | } 1928 | }, 1929 | "is-accessor-descriptor": { 1930 | "version": "0.1.6", 1931 | "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", 1932 | "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", 1933 | "dev": true, 1934 | "requires": { 1935 | "kind-of": "^3.0.2" 1936 | }, 1937 | "dependencies": { 1938 | "kind-of": { 1939 | "version": "3.2.2", 1940 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 1941 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 1942 | "dev": true, 1943 | "requires": { 1944 | "is-buffer": "^1.1.5" 1945 | } 1946 | } 1947 | } 1948 | }, 1949 | "is-arrayish": { 1950 | "version": "0.2.1", 1951 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 1952 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", 1953 | "dev": true 1954 | }, 1955 | "is-buffer": { 1956 | "version": "1.1.6", 1957 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", 1958 | "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", 1959 | "dev": true 1960 | }, 1961 | "is-callable": { 1962 | "version": "1.2.2", 1963 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", 1964 | "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", 1965 | "dev": true 1966 | }, 1967 | "is-ci": { 1968 | "version": "2.0.0", 1969 | "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", 1970 | "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", 1971 | "dev": true, 1972 | "requires": { 1973 | "ci-info": "^2.0.0" 1974 | } 1975 | }, 1976 | "is-core-module": { 1977 | "version": "2.2.0", 1978 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", 1979 | "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", 1980 | "dev": true, 1981 | "requires": { 1982 | "has": "^1.0.3" 1983 | } 1984 | }, 1985 | "is-data-descriptor": { 1986 | "version": "0.1.4", 1987 | "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", 1988 | "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", 1989 | "dev": true, 1990 | "requires": { 1991 | "kind-of": "^3.0.2" 1992 | }, 1993 | "dependencies": { 1994 | "kind-of": { 1995 | "version": "3.2.2", 1996 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 1997 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 1998 | "dev": true, 1999 | "requires": { 2000 | "is-buffer": "^1.1.5" 2001 | } 2002 | } 2003 | } 2004 | }, 2005 | "is-date-object": { 2006 | "version": "1.0.2", 2007 | "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", 2008 | "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", 2009 | "dev": true 2010 | }, 2011 | "is-descriptor": { 2012 | "version": "0.1.6", 2013 | "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", 2014 | "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", 2015 | "dev": true, 2016 | "requires": { 2017 | "is-accessor-descriptor": "^0.1.6", 2018 | "is-data-descriptor": "^0.1.4", 2019 | "kind-of": "^5.0.0" 2020 | }, 2021 | "dependencies": { 2022 | "kind-of": { 2023 | "version": "5.1.0", 2024 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", 2025 | "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", 2026 | "dev": true 2027 | } 2028 | } 2029 | }, 2030 | "is-extendable": { 2031 | "version": "0.1.1", 2032 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", 2033 | "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", 2034 | "dev": true 2035 | }, 2036 | "is-fullwidth-code-point": { 2037 | "version": "2.0.0", 2038 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 2039 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", 2040 | "dev": true 2041 | }, 2042 | "is-generator-fn": { 2043 | "version": "2.1.0", 2044 | "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", 2045 | "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", 2046 | "dev": true 2047 | }, 2048 | "is-negative-zero": { 2049 | "version": "2.0.1", 2050 | "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", 2051 | "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", 2052 | "dev": true 2053 | }, 2054 | "is-number": { 2055 | "version": "3.0.0", 2056 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", 2057 | "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", 2058 | "dev": true, 2059 | "requires": { 2060 | "kind-of": "^3.0.2" 2061 | }, 2062 | "dependencies": { 2063 | "kind-of": { 2064 | "version": "3.2.2", 2065 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 2066 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 2067 | "dev": true, 2068 | "requires": { 2069 | "is-buffer": "^1.1.5" 2070 | } 2071 | } 2072 | } 2073 | }, 2074 | "is-plain-object": { 2075 | "version": "2.0.4", 2076 | "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", 2077 | "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", 2078 | "dev": true, 2079 | "requires": { 2080 | "isobject": "^3.0.1" 2081 | } 2082 | }, 2083 | "is-regex": { 2084 | "version": "1.1.1", 2085 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", 2086 | "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", 2087 | "dev": true, 2088 | "requires": { 2089 | "has-symbols": "^1.0.1" 2090 | } 2091 | }, 2092 | "is-stream": { 2093 | "version": "1.1.0", 2094 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", 2095 | "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", 2096 | "dev": true 2097 | }, 2098 | "is-symbol": { 2099 | "version": "1.0.3", 2100 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", 2101 | "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", 2102 | "dev": true, 2103 | "requires": { 2104 | "has-symbols": "^1.0.1" 2105 | } 2106 | }, 2107 | "is-typedarray": { 2108 | "version": "1.0.0", 2109 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", 2110 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", 2111 | "dev": true 2112 | }, 2113 | "is-windows": { 2114 | "version": "1.0.2", 2115 | "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", 2116 | "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", 2117 | "dev": true 2118 | }, 2119 | "is-wsl": { 2120 | "version": "1.1.0", 2121 | "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", 2122 | "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", 2123 | "dev": true 2124 | }, 2125 | "isarray": { 2126 | "version": "1.0.0", 2127 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 2128 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", 2129 | "dev": true 2130 | }, 2131 | "isexe": { 2132 | "version": "2.0.0", 2133 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 2134 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 2135 | "dev": true 2136 | }, 2137 | "isobject": { 2138 | "version": "3.0.1", 2139 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", 2140 | "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", 2141 | "dev": true 2142 | }, 2143 | "isstream": { 2144 | "version": "0.1.2", 2145 | "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", 2146 | "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", 2147 | "dev": true 2148 | }, 2149 | "istanbul-lib-coverage": { 2150 | "version": "2.0.5", 2151 | "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", 2152 | "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", 2153 | "dev": true 2154 | }, 2155 | "istanbul-lib-instrument": { 2156 | "version": "3.3.0", 2157 | "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz", 2158 | "integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==", 2159 | "dev": true, 2160 | "requires": { 2161 | "@babel/generator": "^7.4.0", 2162 | "@babel/parser": "^7.4.3", 2163 | "@babel/template": "^7.4.0", 2164 | "@babel/traverse": "^7.4.3", 2165 | "@babel/types": "^7.4.0", 2166 | "istanbul-lib-coverage": "^2.0.5", 2167 | "semver": "^6.0.0" 2168 | }, 2169 | "dependencies": { 2170 | "semver": { 2171 | "version": "6.3.0", 2172 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 2173 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", 2174 | "dev": true 2175 | } 2176 | } 2177 | }, 2178 | "istanbul-lib-report": { 2179 | "version": "2.0.8", 2180 | "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz", 2181 | "integrity": "sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ==", 2182 | "dev": true, 2183 | "requires": { 2184 | "istanbul-lib-coverage": "^2.0.5", 2185 | "make-dir": "^2.1.0", 2186 | "supports-color": "^6.1.0" 2187 | }, 2188 | "dependencies": { 2189 | "supports-color": { 2190 | "version": "6.1.0", 2191 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", 2192 | "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", 2193 | "dev": true, 2194 | "requires": { 2195 | "has-flag": "^3.0.0" 2196 | } 2197 | } 2198 | } 2199 | }, 2200 | "istanbul-lib-source-maps": { 2201 | "version": "3.0.6", 2202 | "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", 2203 | "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", 2204 | "dev": true, 2205 | "requires": { 2206 | "debug": "^4.1.1", 2207 | "istanbul-lib-coverage": "^2.0.5", 2208 | "make-dir": "^2.1.0", 2209 | "rimraf": "^2.6.3", 2210 | "source-map": "^0.6.1" 2211 | }, 2212 | "dependencies": { 2213 | "debug": { 2214 | "version": "4.3.1", 2215 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", 2216 | "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", 2217 | "dev": true, 2218 | "requires": { 2219 | "ms": "2.1.2" 2220 | } 2221 | }, 2222 | "ms": { 2223 | "version": "2.1.2", 2224 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 2225 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 2226 | "dev": true 2227 | } 2228 | } 2229 | }, 2230 | "istanbul-reports": { 2231 | "version": "2.2.7", 2232 | "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.7.tgz", 2233 | "integrity": "sha512-uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg==", 2234 | "dev": true, 2235 | "requires": { 2236 | "html-escaper": "^2.0.0" 2237 | } 2238 | }, 2239 | "jest": { 2240 | "version": "24.9.0", 2241 | "resolved": "https://registry.npmjs.org/jest/-/jest-24.9.0.tgz", 2242 | "integrity": "sha512-YvkBL1Zm7d2B1+h5fHEOdyjCG+sGMz4f8D86/0HiqJ6MB4MnDc8FgP5vdWsGnemOQro7lnYo8UakZ3+5A0jxGw==", 2243 | "dev": true, 2244 | "requires": { 2245 | "import-local": "^2.0.0", 2246 | "jest-cli": "^24.9.0" 2247 | }, 2248 | "dependencies": { 2249 | "jest-cli": { 2250 | "version": "24.9.0", 2251 | "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-24.9.0.tgz", 2252 | "integrity": "sha512-+VLRKyitT3BWoMeSUIHRxV/2g8y9gw91Jh5z2UmXZzkZKpbC08CSehVxgHUwTpy+HwGcns/tqafQDJW7imYvGg==", 2253 | "dev": true, 2254 | "requires": { 2255 | "@jest/core": "^24.9.0", 2256 | "@jest/test-result": "^24.9.0", 2257 | "@jest/types": "^24.9.0", 2258 | "chalk": "^2.0.1", 2259 | "exit": "^0.1.2", 2260 | "import-local": "^2.0.0", 2261 | "is-ci": "^2.0.0", 2262 | "jest-config": "^24.9.0", 2263 | "jest-util": "^24.9.0", 2264 | "jest-validate": "^24.9.0", 2265 | "prompts": "^2.0.1", 2266 | "realpath-native": "^1.1.0", 2267 | "yargs": "^13.3.0" 2268 | } 2269 | } 2270 | } 2271 | }, 2272 | "jest-changed-files": { 2273 | "version": "24.9.0", 2274 | "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-24.9.0.tgz", 2275 | "integrity": "sha512-6aTWpe2mHF0DhL28WjdkO8LyGjs3zItPET4bMSeXU6T3ub4FPMw+mcOcbdGXQOAfmLcxofD23/5Bl9Z4AkFwqg==", 2276 | "dev": true, 2277 | "requires": { 2278 | "@jest/types": "^24.9.0", 2279 | "execa": "^1.0.0", 2280 | "throat": "^4.0.0" 2281 | } 2282 | }, 2283 | "jest-config": { 2284 | "version": "24.9.0", 2285 | "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-24.9.0.tgz", 2286 | "integrity": "sha512-RATtQJtVYQrp7fvWg6f5y3pEFj9I+H8sWw4aKxnDZ96mob5i5SD6ZEGWgMLXQ4LE8UurrjbdlLWdUeo+28QpfQ==", 2287 | "dev": true, 2288 | "requires": { 2289 | "@babel/core": "^7.1.0", 2290 | "@jest/test-sequencer": "^24.9.0", 2291 | "@jest/types": "^24.9.0", 2292 | "babel-jest": "^24.9.0", 2293 | "chalk": "^2.0.1", 2294 | "glob": "^7.1.1", 2295 | "jest-environment-jsdom": "^24.9.0", 2296 | "jest-environment-node": "^24.9.0", 2297 | "jest-get-type": "^24.9.0", 2298 | "jest-jasmine2": "^24.9.0", 2299 | "jest-regex-util": "^24.3.0", 2300 | "jest-resolve": "^24.9.0", 2301 | "jest-util": "^24.9.0", 2302 | "jest-validate": "^24.9.0", 2303 | "micromatch": "^3.1.10", 2304 | "pretty-format": "^24.9.0", 2305 | "realpath-native": "^1.1.0" 2306 | } 2307 | }, 2308 | "jest-diff": { 2309 | "version": "24.9.0", 2310 | "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-24.9.0.tgz", 2311 | "integrity": "sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ==", 2312 | "dev": true, 2313 | "requires": { 2314 | "chalk": "^2.0.1", 2315 | "diff-sequences": "^24.9.0", 2316 | "jest-get-type": "^24.9.0", 2317 | "pretty-format": "^24.9.0" 2318 | } 2319 | }, 2320 | "jest-docblock": { 2321 | "version": "24.9.0", 2322 | "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-24.9.0.tgz", 2323 | "integrity": "sha512-F1DjdpDMJMA1cN6He0FNYNZlo3yYmOtRUnktrT9Q37njYzC5WEaDdmbynIgy0L/IvXvvgsG8OsqhLPXTpfmZAA==", 2324 | "dev": true, 2325 | "requires": { 2326 | "detect-newline": "^2.1.0" 2327 | } 2328 | }, 2329 | "jest-each": { 2330 | "version": "24.9.0", 2331 | "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-24.9.0.tgz", 2332 | "integrity": "sha512-ONi0R4BvW45cw8s2Lrx8YgbeXL1oCQ/wIDwmsM3CqM/nlblNCPmnC3IPQlMbRFZu3wKdQ2U8BqM6lh3LJ5Bsog==", 2333 | "dev": true, 2334 | "requires": { 2335 | "@jest/types": "^24.9.0", 2336 | "chalk": "^2.0.1", 2337 | "jest-get-type": "^24.9.0", 2338 | "jest-util": "^24.9.0", 2339 | "pretty-format": "^24.9.0" 2340 | } 2341 | }, 2342 | "jest-environment-jsdom": { 2343 | "version": "24.9.0", 2344 | "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-24.9.0.tgz", 2345 | "integrity": "sha512-Zv9FV9NBRzLuALXjvRijO2351DRQeLYXtpD4xNvfoVFw21IOKNhZAEUKcbiEtjTkm2GsJ3boMVgkaR7rN8qetA==", 2346 | "dev": true, 2347 | "requires": { 2348 | "@jest/environment": "^24.9.0", 2349 | "@jest/fake-timers": "^24.9.0", 2350 | "@jest/types": "^24.9.0", 2351 | "jest-mock": "^24.9.0", 2352 | "jest-util": "^24.9.0", 2353 | "jsdom": "^11.5.1" 2354 | } 2355 | }, 2356 | "jest-environment-node": { 2357 | "version": "24.9.0", 2358 | "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-24.9.0.tgz", 2359 | "integrity": "sha512-6d4V2f4nxzIzwendo27Tr0aFm+IXWa0XEUnaH6nU0FMaozxovt+sfRvh4J47wL1OvF83I3SSTu0XK+i4Bqe7uA==", 2360 | "dev": true, 2361 | "requires": { 2362 | "@jest/environment": "^24.9.0", 2363 | "@jest/fake-timers": "^24.9.0", 2364 | "@jest/types": "^24.9.0", 2365 | "jest-mock": "^24.9.0", 2366 | "jest-util": "^24.9.0" 2367 | } 2368 | }, 2369 | "jest-get-type": { 2370 | "version": "24.9.0", 2371 | "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz", 2372 | "integrity": "sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q==", 2373 | "dev": true 2374 | }, 2375 | "jest-haste-map": { 2376 | "version": "24.9.0", 2377 | "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-24.9.0.tgz", 2378 | "integrity": "sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ==", 2379 | "dev": true, 2380 | "requires": { 2381 | "@jest/types": "^24.9.0", 2382 | "anymatch": "^2.0.0", 2383 | "fb-watchman": "^2.0.0", 2384 | "fsevents": "^1.2.7", 2385 | "graceful-fs": "^4.1.15", 2386 | "invariant": "^2.2.4", 2387 | "jest-serializer": "^24.9.0", 2388 | "jest-util": "^24.9.0", 2389 | "jest-worker": "^24.9.0", 2390 | "micromatch": "^3.1.10", 2391 | "sane": "^4.0.3", 2392 | "walker": "^1.0.7" 2393 | } 2394 | }, 2395 | "jest-jasmine2": { 2396 | "version": "24.9.0", 2397 | "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz", 2398 | "integrity": "sha512-Cq7vkAgaYKp+PsX+2/JbTarrk0DmNhsEtqBXNwUHkdlbrTBLtMJINADf2mf5FkowNsq8evbPc07/qFO0AdKTzw==", 2399 | "dev": true, 2400 | "requires": { 2401 | "@babel/traverse": "^7.1.0", 2402 | "@jest/environment": "^24.9.0", 2403 | "@jest/test-result": "^24.9.0", 2404 | "@jest/types": "^24.9.0", 2405 | "chalk": "^2.0.1", 2406 | "co": "^4.6.0", 2407 | "expect": "^24.9.0", 2408 | "is-generator-fn": "^2.0.0", 2409 | "jest-each": "^24.9.0", 2410 | "jest-matcher-utils": "^24.9.0", 2411 | "jest-message-util": "^24.9.0", 2412 | "jest-runtime": "^24.9.0", 2413 | "jest-snapshot": "^24.9.0", 2414 | "jest-util": "^24.9.0", 2415 | "pretty-format": "^24.9.0", 2416 | "throat": "^4.0.0" 2417 | } 2418 | }, 2419 | "jest-leak-detector": { 2420 | "version": "24.9.0", 2421 | "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz", 2422 | "integrity": "sha512-tYkFIDsiKTGwb2FG1w8hX9V0aUb2ot8zY/2nFg087dUageonw1zrLMP4W6zsRO59dPkTSKie+D4rhMuP9nRmrA==", 2423 | "dev": true, 2424 | "requires": { 2425 | "jest-get-type": "^24.9.0", 2426 | "pretty-format": "^24.9.0" 2427 | } 2428 | }, 2429 | "jest-matcher-utils": { 2430 | "version": "24.9.0", 2431 | "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz", 2432 | "integrity": "sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA==", 2433 | "dev": true, 2434 | "requires": { 2435 | "chalk": "^2.0.1", 2436 | "jest-diff": "^24.9.0", 2437 | "jest-get-type": "^24.9.0", 2438 | "pretty-format": "^24.9.0" 2439 | } 2440 | }, 2441 | "jest-message-util": { 2442 | "version": "24.9.0", 2443 | "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-24.9.0.tgz", 2444 | "integrity": "sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw==", 2445 | "dev": true, 2446 | "requires": { 2447 | "@babel/code-frame": "^7.0.0", 2448 | "@jest/test-result": "^24.9.0", 2449 | "@jest/types": "^24.9.0", 2450 | "@types/stack-utils": "^1.0.1", 2451 | "chalk": "^2.0.1", 2452 | "micromatch": "^3.1.10", 2453 | "slash": "^2.0.0", 2454 | "stack-utils": "^1.0.1" 2455 | } 2456 | }, 2457 | "jest-mock": { 2458 | "version": "24.9.0", 2459 | "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-24.9.0.tgz", 2460 | "integrity": "sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w==", 2461 | "dev": true, 2462 | "requires": { 2463 | "@jest/types": "^24.9.0" 2464 | } 2465 | }, 2466 | "jest-pnp-resolver": { 2467 | "version": "1.2.2", 2468 | "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", 2469 | "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", 2470 | "dev": true 2471 | }, 2472 | "jest-regex-util": { 2473 | "version": "24.9.0", 2474 | "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-24.9.0.tgz", 2475 | "integrity": "sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA==", 2476 | "dev": true 2477 | }, 2478 | "jest-resolve": { 2479 | "version": "24.9.0", 2480 | "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-24.9.0.tgz", 2481 | "integrity": "sha512-TaLeLVL1l08YFZAt3zaPtjiVvyy4oSA6CRe+0AFPPVX3Q/VI0giIWWoAvoS5L96vj9Dqxj4fB5p2qrHCmTU/MQ==", 2482 | "dev": true, 2483 | "requires": { 2484 | "@jest/types": "^24.9.0", 2485 | "browser-resolve": "^1.11.3", 2486 | "chalk": "^2.0.1", 2487 | "jest-pnp-resolver": "^1.2.1", 2488 | "realpath-native": "^1.1.0" 2489 | } 2490 | }, 2491 | "jest-resolve-dependencies": { 2492 | "version": "24.9.0", 2493 | "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-24.9.0.tgz", 2494 | "integrity": "sha512-Fm7b6AlWnYhT0BXy4hXpactHIqER7erNgIsIozDXWl5dVm+k8XdGVe1oTg1JyaFnOxarMEbax3wyRJqGP2Pq+g==", 2495 | "dev": true, 2496 | "requires": { 2497 | "@jest/types": "^24.9.0", 2498 | "jest-regex-util": "^24.3.0", 2499 | "jest-snapshot": "^24.9.0" 2500 | } 2501 | }, 2502 | "jest-runner": { 2503 | "version": "24.9.0", 2504 | "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-24.9.0.tgz", 2505 | "integrity": "sha512-KksJQyI3/0mhcfspnxxEOBueGrd5E4vV7ADQLT9ESaCzz02WnbdbKWIf5Mkaucoaj7obQckYPVX6JJhgUcoWWg==", 2506 | "dev": true, 2507 | "requires": { 2508 | "@jest/console": "^24.7.1", 2509 | "@jest/environment": "^24.9.0", 2510 | "@jest/test-result": "^24.9.0", 2511 | "@jest/types": "^24.9.0", 2512 | "chalk": "^2.4.2", 2513 | "exit": "^0.1.2", 2514 | "graceful-fs": "^4.1.15", 2515 | "jest-config": "^24.9.0", 2516 | "jest-docblock": "^24.3.0", 2517 | "jest-haste-map": "^24.9.0", 2518 | "jest-jasmine2": "^24.9.0", 2519 | "jest-leak-detector": "^24.9.0", 2520 | "jest-message-util": "^24.9.0", 2521 | "jest-resolve": "^24.9.0", 2522 | "jest-runtime": "^24.9.0", 2523 | "jest-util": "^24.9.0", 2524 | "jest-worker": "^24.6.0", 2525 | "source-map-support": "^0.5.6", 2526 | "throat": "^4.0.0" 2527 | } 2528 | }, 2529 | "jest-runtime": { 2530 | "version": "24.9.0", 2531 | "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-24.9.0.tgz", 2532 | "integrity": "sha512-8oNqgnmF3v2J6PVRM2Jfuj8oX3syKmaynlDMMKQ4iyzbQzIG6th5ub/lM2bCMTmoTKM3ykcUYI2Pw9xwNtjMnw==", 2533 | "dev": true, 2534 | "requires": { 2535 | "@jest/console": "^24.7.1", 2536 | "@jest/environment": "^24.9.0", 2537 | "@jest/source-map": "^24.3.0", 2538 | "@jest/transform": "^24.9.0", 2539 | "@jest/types": "^24.9.0", 2540 | "@types/yargs": "^13.0.0", 2541 | "chalk": "^2.0.1", 2542 | "exit": "^0.1.2", 2543 | "glob": "^7.1.3", 2544 | "graceful-fs": "^4.1.15", 2545 | "jest-config": "^24.9.0", 2546 | "jest-haste-map": "^24.9.0", 2547 | "jest-message-util": "^24.9.0", 2548 | "jest-mock": "^24.9.0", 2549 | "jest-regex-util": "^24.3.0", 2550 | "jest-resolve": "^24.9.0", 2551 | "jest-snapshot": "^24.9.0", 2552 | "jest-util": "^24.9.0", 2553 | "jest-validate": "^24.9.0", 2554 | "realpath-native": "^1.1.0", 2555 | "slash": "^2.0.0", 2556 | "strip-bom": "^3.0.0", 2557 | "yargs": "^13.3.0" 2558 | } 2559 | }, 2560 | "jest-serializer": { 2561 | "version": "24.9.0", 2562 | "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-24.9.0.tgz", 2563 | "integrity": "sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ==", 2564 | "dev": true 2565 | }, 2566 | "jest-snapshot": { 2567 | "version": "24.9.0", 2568 | "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-24.9.0.tgz", 2569 | "integrity": "sha512-uI/rszGSs73xCM0l+up7O7a40o90cnrk429LOiK3aeTvfC0HHmldbd81/B7Ix81KSFe1lwkbl7GnBGG4UfuDew==", 2570 | "dev": true, 2571 | "requires": { 2572 | "@babel/types": "^7.0.0", 2573 | "@jest/types": "^24.9.0", 2574 | "chalk": "^2.0.1", 2575 | "expect": "^24.9.0", 2576 | "jest-diff": "^24.9.0", 2577 | "jest-get-type": "^24.9.0", 2578 | "jest-matcher-utils": "^24.9.0", 2579 | "jest-message-util": "^24.9.0", 2580 | "jest-resolve": "^24.9.0", 2581 | "mkdirp": "^0.5.1", 2582 | "natural-compare": "^1.4.0", 2583 | "pretty-format": "^24.9.0", 2584 | "semver": "^6.2.0" 2585 | }, 2586 | "dependencies": { 2587 | "semver": { 2588 | "version": "6.3.0", 2589 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 2590 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", 2591 | "dev": true 2592 | } 2593 | } 2594 | }, 2595 | "jest-util": { 2596 | "version": "24.9.0", 2597 | "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-24.9.0.tgz", 2598 | "integrity": "sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg==", 2599 | "dev": true, 2600 | "requires": { 2601 | "@jest/console": "^24.9.0", 2602 | "@jest/fake-timers": "^24.9.0", 2603 | "@jest/source-map": "^24.9.0", 2604 | "@jest/test-result": "^24.9.0", 2605 | "@jest/types": "^24.9.0", 2606 | "callsites": "^3.0.0", 2607 | "chalk": "^2.0.1", 2608 | "graceful-fs": "^4.1.15", 2609 | "is-ci": "^2.0.0", 2610 | "mkdirp": "^0.5.1", 2611 | "slash": "^2.0.0", 2612 | "source-map": "^0.6.0" 2613 | } 2614 | }, 2615 | "jest-validate": { 2616 | "version": "24.9.0", 2617 | "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-24.9.0.tgz", 2618 | "integrity": "sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ==", 2619 | "dev": true, 2620 | "requires": { 2621 | "@jest/types": "^24.9.0", 2622 | "camelcase": "^5.3.1", 2623 | "chalk": "^2.0.1", 2624 | "jest-get-type": "^24.9.0", 2625 | "leven": "^3.1.0", 2626 | "pretty-format": "^24.9.0" 2627 | } 2628 | }, 2629 | "jest-watcher": { 2630 | "version": "24.9.0", 2631 | "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-24.9.0.tgz", 2632 | "integrity": "sha512-+/fLOfKPXXYJDYlks62/4R4GoT+GU1tYZed99JSCOsmzkkF7727RqKrjNAxtfO4YpGv11wybgRvCjR73lK2GZw==", 2633 | "dev": true, 2634 | "requires": { 2635 | "@jest/test-result": "^24.9.0", 2636 | "@jest/types": "^24.9.0", 2637 | "@types/yargs": "^13.0.0", 2638 | "ansi-escapes": "^3.0.0", 2639 | "chalk": "^2.0.1", 2640 | "jest-util": "^24.9.0", 2641 | "string-length": "^2.0.0" 2642 | } 2643 | }, 2644 | "jest-worker": { 2645 | "version": "24.9.0", 2646 | "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", 2647 | "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", 2648 | "dev": true, 2649 | "requires": { 2650 | "merge-stream": "^2.0.0", 2651 | "supports-color": "^6.1.0" 2652 | }, 2653 | "dependencies": { 2654 | "supports-color": { 2655 | "version": "6.1.0", 2656 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", 2657 | "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", 2658 | "dev": true, 2659 | "requires": { 2660 | "has-flag": "^3.0.0" 2661 | } 2662 | } 2663 | } 2664 | }, 2665 | "js-tokens": { 2666 | "version": "4.0.0", 2667 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 2668 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", 2669 | "dev": true 2670 | }, 2671 | "jsbn": { 2672 | "version": "0.1.1", 2673 | "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", 2674 | "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", 2675 | "dev": true 2676 | }, 2677 | "jsdom": { 2678 | "version": "11.12.0", 2679 | "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.12.0.tgz", 2680 | "integrity": "sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw==", 2681 | "dev": true, 2682 | "requires": { 2683 | "abab": "^2.0.0", 2684 | "acorn": "^5.5.3", 2685 | "acorn-globals": "^4.1.0", 2686 | "array-equal": "^1.0.0", 2687 | "cssom": ">= 0.3.2 < 0.4.0", 2688 | "cssstyle": "^1.0.0", 2689 | "data-urls": "^1.0.0", 2690 | "domexception": "^1.0.1", 2691 | "escodegen": "^1.9.1", 2692 | "html-encoding-sniffer": "^1.0.2", 2693 | "left-pad": "^1.3.0", 2694 | "nwsapi": "^2.0.7", 2695 | "parse5": "4.0.0", 2696 | "pn": "^1.1.0", 2697 | "request": "^2.87.0", 2698 | "request-promise-native": "^1.0.5", 2699 | "sax": "^1.2.4", 2700 | "symbol-tree": "^3.2.2", 2701 | "tough-cookie": "^2.3.4", 2702 | "w3c-hr-time": "^1.0.1", 2703 | "webidl-conversions": "^4.0.2", 2704 | "whatwg-encoding": "^1.0.3", 2705 | "whatwg-mimetype": "^2.1.0", 2706 | "whatwg-url": "^6.4.1", 2707 | "ws": "^5.2.0", 2708 | "xml-name-validator": "^3.0.0" 2709 | } 2710 | }, 2711 | "jsesc": { 2712 | "version": "2.5.2", 2713 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", 2714 | "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", 2715 | "dev": true 2716 | }, 2717 | "json-parse-better-errors": { 2718 | "version": "1.0.2", 2719 | "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", 2720 | "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", 2721 | "dev": true 2722 | }, 2723 | "json-schema": { 2724 | "version": "0.2.3", 2725 | "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", 2726 | "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", 2727 | "dev": true 2728 | }, 2729 | "json-schema-traverse": { 2730 | "version": "0.4.1", 2731 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 2732 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", 2733 | "dev": true 2734 | }, 2735 | "json-stringify-safe": { 2736 | "version": "5.0.1", 2737 | "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", 2738 | "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", 2739 | "dev": true 2740 | }, 2741 | "json5": { 2742 | "version": "2.1.3", 2743 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", 2744 | "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", 2745 | "dev": true, 2746 | "requires": { 2747 | "minimist": "^1.2.5" 2748 | } 2749 | }, 2750 | "jsprim": { 2751 | "version": "1.4.1", 2752 | "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", 2753 | "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", 2754 | "dev": true, 2755 | "requires": { 2756 | "assert-plus": "1.0.0", 2757 | "extsprintf": "1.3.0", 2758 | "json-schema": "0.2.3", 2759 | "verror": "1.10.0" 2760 | } 2761 | }, 2762 | "kind-of": { 2763 | "version": "6.0.3", 2764 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", 2765 | "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", 2766 | "dev": true 2767 | }, 2768 | "kleur": { 2769 | "version": "3.0.3", 2770 | "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", 2771 | "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", 2772 | "dev": true 2773 | }, 2774 | "left-pad": { 2775 | "version": "1.3.0", 2776 | "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz", 2777 | "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==", 2778 | "dev": true 2779 | }, 2780 | "leven": { 2781 | "version": "3.1.0", 2782 | "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", 2783 | "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", 2784 | "dev": true 2785 | }, 2786 | "levn": { 2787 | "version": "0.3.0", 2788 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", 2789 | "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", 2790 | "dev": true, 2791 | "requires": { 2792 | "prelude-ls": "~1.1.2", 2793 | "type-check": "~0.3.2" 2794 | } 2795 | }, 2796 | "load-json-file": { 2797 | "version": "4.0.0", 2798 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", 2799 | "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", 2800 | "dev": true, 2801 | "requires": { 2802 | "graceful-fs": "^4.1.2", 2803 | "parse-json": "^4.0.0", 2804 | "pify": "^3.0.0", 2805 | "strip-bom": "^3.0.0" 2806 | } 2807 | }, 2808 | "locate-path": { 2809 | "version": "3.0.0", 2810 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", 2811 | "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", 2812 | "dev": true, 2813 | "requires": { 2814 | "p-locate": "^3.0.0", 2815 | "path-exists": "^3.0.0" 2816 | } 2817 | }, 2818 | "lodash": { 2819 | "version": "4.17.20", 2820 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", 2821 | "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", 2822 | "dev": true 2823 | }, 2824 | "lodash.memoize": { 2825 | "version": "4.1.2", 2826 | "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", 2827 | "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", 2828 | "dev": true 2829 | }, 2830 | "lodash.sortby": { 2831 | "version": "4.7.0", 2832 | "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", 2833 | "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", 2834 | "dev": true 2835 | }, 2836 | "loose-envify": { 2837 | "version": "1.4.0", 2838 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", 2839 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", 2840 | "dev": true, 2841 | "requires": { 2842 | "js-tokens": "^3.0.0 || ^4.0.0" 2843 | } 2844 | }, 2845 | "make-dir": { 2846 | "version": "2.1.0", 2847 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", 2848 | "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", 2849 | "dev": true, 2850 | "requires": { 2851 | "pify": "^4.0.1", 2852 | "semver": "^5.6.0" 2853 | }, 2854 | "dependencies": { 2855 | "pify": { 2856 | "version": "4.0.1", 2857 | "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", 2858 | "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", 2859 | "dev": true 2860 | } 2861 | } 2862 | }, 2863 | "make-error": { 2864 | "version": "1.3.6", 2865 | "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", 2866 | "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", 2867 | "dev": true 2868 | }, 2869 | "makeerror": { 2870 | "version": "1.0.11", 2871 | "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", 2872 | "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", 2873 | "dev": true, 2874 | "requires": { 2875 | "tmpl": "1.0.x" 2876 | } 2877 | }, 2878 | "map-cache": { 2879 | "version": "0.2.2", 2880 | "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", 2881 | "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", 2882 | "dev": true 2883 | }, 2884 | "map-visit": { 2885 | "version": "1.0.0", 2886 | "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", 2887 | "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", 2888 | "dev": true, 2889 | "requires": { 2890 | "object-visit": "^1.0.0" 2891 | } 2892 | }, 2893 | "merge-stream": { 2894 | "version": "2.0.0", 2895 | "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", 2896 | "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", 2897 | "dev": true 2898 | }, 2899 | "micromatch": { 2900 | "version": "3.1.10", 2901 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", 2902 | "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", 2903 | "dev": true, 2904 | "requires": { 2905 | "arr-diff": "^4.0.0", 2906 | "array-unique": "^0.3.2", 2907 | "braces": "^2.3.1", 2908 | "define-property": "^2.0.2", 2909 | "extend-shallow": "^3.0.2", 2910 | "extglob": "^2.0.4", 2911 | "fragment-cache": "^0.2.1", 2912 | "kind-of": "^6.0.2", 2913 | "nanomatch": "^1.2.9", 2914 | "object.pick": "^1.3.0", 2915 | "regex-not": "^1.0.0", 2916 | "snapdragon": "^0.8.1", 2917 | "to-regex": "^3.0.2" 2918 | } 2919 | }, 2920 | "mime-db": { 2921 | "version": "1.45.0", 2922 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz", 2923 | "integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==", 2924 | "dev": true 2925 | }, 2926 | "mime-types": { 2927 | "version": "2.1.28", 2928 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz", 2929 | "integrity": "sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==", 2930 | "dev": true, 2931 | "requires": { 2932 | "mime-db": "1.45.0" 2933 | } 2934 | }, 2935 | "minimatch": { 2936 | "version": "3.0.4", 2937 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 2938 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 2939 | "dev": true, 2940 | "requires": { 2941 | "brace-expansion": "^1.1.7" 2942 | } 2943 | }, 2944 | "minimist": { 2945 | "version": "1.2.5", 2946 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", 2947 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", 2948 | "dev": true 2949 | }, 2950 | "mixin-deep": { 2951 | "version": "1.3.2", 2952 | "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", 2953 | "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", 2954 | "dev": true, 2955 | "requires": { 2956 | "for-in": "^1.0.2", 2957 | "is-extendable": "^1.0.1" 2958 | }, 2959 | "dependencies": { 2960 | "is-extendable": { 2961 | "version": "1.0.1", 2962 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", 2963 | "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", 2964 | "dev": true, 2965 | "requires": { 2966 | "is-plain-object": "^2.0.4" 2967 | } 2968 | } 2969 | } 2970 | }, 2971 | "mkdirp": { 2972 | "version": "0.5.5", 2973 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", 2974 | "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", 2975 | "dev": true, 2976 | "requires": { 2977 | "minimist": "^1.2.5" 2978 | } 2979 | }, 2980 | "ms": { 2981 | "version": "2.0.0", 2982 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 2983 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", 2984 | "dev": true 2985 | }, 2986 | "nan": { 2987 | "version": "2.14.2", 2988 | "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", 2989 | "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", 2990 | "dev": true, 2991 | "optional": true 2992 | }, 2993 | "nanomatch": { 2994 | "version": "1.2.13", 2995 | "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", 2996 | "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", 2997 | "dev": true, 2998 | "requires": { 2999 | "arr-diff": "^4.0.0", 3000 | "array-unique": "^0.3.2", 3001 | "define-property": "^2.0.2", 3002 | "extend-shallow": "^3.0.2", 3003 | "fragment-cache": "^0.2.1", 3004 | "is-windows": "^1.0.2", 3005 | "kind-of": "^6.0.2", 3006 | "object.pick": "^1.3.0", 3007 | "regex-not": "^1.0.0", 3008 | "snapdragon": "^0.8.1", 3009 | "to-regex": "^3.0.1" 3010 | } 3011 | }, 3012 | "natural-compare": { 3013 | "version": "1.4.0", 3014 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", 3015 | "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", 3016 | "dev": true 3017 | }, 3018 | "nice-try": { 3019 | "version": "1.0.5", 3020 | "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", 3021 | "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", 3022 | "dev": true 3023 | }, 3024 | "node-int64": { 3025 | "version": "0.4.0", 3026 | "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", 3027 | "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", 3028 | "dev": true 3029 | }, 3030 | "node-modules-regexp": { 3031 | "version": "1.0.0", 3032 | "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", 3033 | "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", 3034 | "dev": true 3035 | }, 3036 | "node-notifier": { 3037 | "version": "5.4.3", 3038 | "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.3.tgz", 3039 | "integrity": "sha512-M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q==", 3040 | "dev": true, 3041 | "requires": { 3042 | "growly": "^1.3.0", 3043 | "is-wsl": "^1.1.0", 3044 | "semver": "^5.5.0", 3045 | "shellwords": "^0.1.1", 3046 | "which": "^1.3.0" 3047 | } 3048 | }, 3049 | "normalize-package-data": { 3050 | "version": "2.5.0", 3051 | "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", 3052 | "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", 3053 | "dev": true, 3054 | "requires": { 3055 | "hosted-git-info": "^2.1.4", 3056 | "resolve": "^1.10.0", 3057 | "semver": "2 || 3 || 4 || 5", 3058 | "validate-npm-package-license": "^3.0.1" 3059 | } 3060 | }, 3061 | "normalize-path": { 3062 | "version": "2.1.1", 3063 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", 3064 | "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", 3065 | "dev": true, 3066 | "requires": { 3067 | "remove-trailing-separator": "^1.0.1" 3068 | } 3069 | }, 3070 | "npm-run-path": { 3071 | "version": "2.0.2", 3072 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", 3073 | "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", 3074 | "dev": true, 3075 | "requires": { 3076 | "path-key": "^2.0.0" 3077 | } 3078 | }, 3079 | "nwsapi": { 3080 | "version": "2.2.0", 3081 | "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", 3082 | "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", 3083 | "dev": true 3084 | }, 3085 | "oauth-sign": { 3086 | "version": "0.9.0", 3087 | "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", 3088 | "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", 3089 | "dev": true 3090 | }, 3091 | "object-copy": { 3092 | "version": "0.1.0", 3093 | "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", 3094 | "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", 3095 | "dev": true, 3096 | "requires": { 3097 | "copy-descriptor": "^0.1.0", 3098 | "define-property": "^0.2.5", 3099 | "kind-of": "^3.0.3" 3100 | }, 3101 | "dependencies": { 3102 | "define-property": { 3103 | "version": "0.2.5", 3104 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", 3105 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", 3106 | "dev": true, 3107 | "requires": { 3108 | "is-descriptor": "^0.1.0" 3109 | } 3110 | }, 3111 | "kind-of": { 3112 | "version": "3.2.2", 3113 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 3114 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 3115 | "dev": true, 3116 | "requires": { 3117 | "is-buffer": "^1.1.5" 3118 | } 3119 | } 3120 | } 3121 | }, 3122 | "object-inspect": { 3123 | "version": "1.9.0", 3124 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", 3125 | "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", 3126 | "dev": true 3127 | }, 3128 | "object-keys": { 3129 | "version": "1.1.1", 3130 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", 3131 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", 3132 | "dev": true 3133 | }, 3134 | "object-visit": { 3135 | "version": "1.0.1", 3136 | "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", 3137 | "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", 3138 | "dev": true, 3139 | "requires": { 3140 | "isobject": "^3.0.0" 3141 | } 3142 | }, 3143 | "object.assign": { 3144 | "version": "4.1.2", 3145 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", 3146 | "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", 3147 | "dev": true, 3148 | "requires": { 3149 | "call-bind": "^1.0.0", 3150 | "define-properties": "^1.1.3", 3151 | "has-symbols": "^1.0.1", 3152 | "object-keys": "^1.1.1" 3153 | } 3154 | }, 3155 | "object.getownpropertydescriptors": { 3156 | "version": "2.1.1", 3157 | "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.1.tgz", 3158 | "integrity": "sha512-6DtXgZ/lIZ9hqx4GtZETobXLR/ZLaa0aqV0kzbn80Rf8Z2e/XFnhA0I7p07N2wH8bBBltr2xQPi6sbKWAY2Eng==", 3159 | "dev": true, 3160 | "requires": { 3161 | "call-bind": "^1.0.0", 3162 | "define-properties": "^1.1.3", 3163 | "es-abstract": "^1.18.0-next.1" 3164 | } 3165 | }, 3166 | "object.pick": { 3167 | "version": "1.3.0", 3168 | "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", 3169 | "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", 3170 | "dev": true, 3171 | "requires": { 3172 | "isobject": "^3.0.1" 3173 | } 3174 | }, 3175 | "once": { 3176 | "version": "1.4.0", 3177 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 3178 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 3179 | "dev": true, 3180 | "requires": { 3181 | "wrappy": "1" 3182 | } 3183 | }, 3184 | "optionator": { 3185 | "version": "0.8.3", 3186 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", 3187 | "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", 3188 | "dev": true, 3189 | "requires": { 3190 | "deep-is": "~0.1.3", 3191 | "fast-levenshtein": "~2.0.6", 3192 | "levn": "~0.3.0", 3193 | "prelude-ls": "~1.1.2", 3194 | "type-check": "~0.3.2", 3195 | "word-wrap": "~1.2.3" 3196 | } 3197 | }, 3198 | "p-each-series": { 3199 | "version": "1.0.0", 3200 | "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-1.0.0.tgz", 3201 | "integrity": "sha1-kw89Et0fUOdDRFeiLNbwSsatf3E=", 3202 | "dev": true, 3203 | "requires": { 3204 | "p-reduce": "^1.0.0" 3205 | } 3206 | }, 3207 | "p-finally": { 3208 | "version": "1.0.0", 3209 | "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", 3210 | "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", 3211 | "dev": true 3212 | }, 3213 | "p-limit": { 3214 | "version": "2.3.0", 3215 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", 3216 | "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", 3217 | "dev": true, 3218 | "requires": { 3219 | "p-try": "^2.0.0" 3220 | } 3221 | }, 3222 | "p-locate": { 3223 | "version": "3.0.0", 3224 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", 3225 | "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", 3226 | "dev": true, 3227 | "requires": { 3228 | "p-limit": "^2.0.0" 3229 | } 3230 | }, 3231 | "p-reduce": { 3232 | "version": "1.0.0", 3233 | "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz", 3234 | "integrity": "sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=", 3235 | "dev": true 3236 | }, 3237 | "p-try": { 3238 | "version": "2.2.0", 3239 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", 3240 | "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", 3241 | "dev": true 3242 | }, 3243 | "parse-json": { 3244 | "version": "4.0.0", 3245 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", 3246 | "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", 3247 | "dev": true, 3248 | "requires": { 3249 | "error-ex": "^1.3.1", 3250 | "json-parse-better-errors": "^1.0.1" 3251 | } 3252 | }, 3253 | "parse5": { 3254 | "version": "4.0.0", 3255 | "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", 3256 | "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", 3257 | "dev": true 3258 | }, 3259 | "pascalcase": { 3260 | "version": "0.1.1", 3261 | "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", 3262 | "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", 3263 | "dev": true 3264 | }, 3265 | "path-exists": { 3266 | "version": "3.0.0", 3267 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", 3268 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", 3269 | "dev": true 3270 | }, 3271 | "path-is-absolute": { 3272 | "version": "1.0.1", 3273 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 3274 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 3275 | "dev": true 3276 | }, 3277 | "path-key": { 3278 | "version": "2.0.1", 3279 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", 3280 | "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", 3281 | "dev": true 3282 | }, 3283 | "path-parse": { 3284 | "version": "1.0.6", 3285 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", 3286 | "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", 3287 | "dev": true 3288 | }, 3289 | "path-type": { 3290 | "version": "3.0.0", 3291 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", 3292 | "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", 3293 | "dev": true, 3294 | "requires": { 3295 | "pify": "^3.0.0" 3296 | } 3297 | }, 3298 | "pegjs": { 3299 | "version": "0.10.0", 3300 | "resolved": "https://registry.npmjs.org/pegjs/-/pegjs-0.10.0.tgz", 3301 | "integrity": "sha1-z4uvrm7d/0tafvsYUmnqr0YQ3b0=" 3302 | }, 3303 | "performance-now": { 3304 | "version": "2.1.0", 3305 | "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", 3306 | "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", 3307 | "dev": true 3308 | }, 3309 | "pify": { 3310 | "version": "3.0.0", 3311 | "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", 3312 | "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", 3313 | "dev": true 3314 | }, 3315 | "pirates": { 3316 | "version": "4.0.1", 3317 | "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", 3318 | "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", 3319 | "dev": true, 3320 | "requires": { 3321 | "node-modules-regexp": "^1.0.0" 3322 | } 3323 | }, 3324 | "pkg-dir": { 3325 | "version": "3.0.0", 3326 | "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", 3327 | "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", 3328 | "dev": true, 3329 | "requires": { 3330 | "find-up": "^3.0.0" 3331 | } 3332 | }, 3333 | "pn": { 3334 | "version": "1.1.0", 3335 | "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", 3336 | "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==", 3337 | "dev": true 3338 | }, 3339 | "posix-character-classes": { 3340 | "version": "0.1.1", 3341 | "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", 3342 | "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", 3343 | "dev": true 3344 | }, 3345 | "prelude-ls": { 3346 | "version": "1.1.2", 3347 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", 3348 | "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", 3349 | "dev": true 3350 | }, 3351 | "pretty-format": { 3352 | "version": "24.9.0", 3353 | "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz", 3354 | "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==", 3355 | "dev": true, 3356 | "requires": { 3357 | "@jest/types": "^24.9.0", 3358 | "ansi-regex": "^4.0.0", 3359 | "ansi-styles": "^3.2.0", 3360 | "react-is": "^16.8.4" 3361 | } 3362 | }, 3363 | "prompts": { 3364 | "version": "2.4.0", 3365 | "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.0.tgz", 3366 | "integrity": "sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ==", 3367 | "dev": true, 3368 | "requires": { 3369 | "kleur": "^3.0.3", 3370 | "sisteransi": "^1.0.5" 3371 | } 3372 | }, 3373 | "psl": { 3374 | "version": "1.8.0", 3375 | "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", 3376 | "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", 3377 | "dev": true 3378 | }, 3379 | "pump": { 3380 | "version": "3.0.0", 3381 | "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", 3382 | "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", 3383 | "dev": true, 3384 | "requires": { 3385 | "end-of-stream": "^1.1.0", 3386 | "once": "^1.3.1" 3387 | } 3388 | }, 3389 | "punycode": { 3390 | "version": "2.1.1", 3391 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 3392 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", 3393 | "dev": true 3394 | }, 3395 | "qs": { 3396 | "version": "6.5.2", 3397 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", 3398 | "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", 3399 | "dev": true 3400 | }, 3401 | "react-is": { 3402 | "version": "16.13.1", 3403 | "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", 3404 | "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", 3405 | "dev": true 3406 | }, 3407 | "read-pkg": { 3408 | "version": "3.0.0", 3409 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", 3410 | "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", 3411 | "dev": true, 3412 | "requires": { 3413 | "load-json-file": "^4.0.0", 3414 | "normalize-package-data": "^2.3.2", 3415 | "path-type": "^3.0.0" 3416 | } 3417 | }, 3418 | "read-pkg-up": { 3419 | "version": "4.0.0", 3420 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", 3421 | "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", 3422 | "dev": true, 3423 | "requires": { 3424 | "find-up": "^3.0.0", 3425 | "read-pkg": "^3.0.0" 3426 | } 3427 | }, 3428 | "realpath-native": { 3429 | "version": "1.1.0", 3430 | "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-1.1.0.tgz", 3431 | "integrity": "sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA==", 3432 | "dev": true, 3433 | "requires": { 3434 | "util.promisify": "^1.0.0" 3435 | } 3436 | }, 3437 | "regex-not": { 3438 | "version": "1.0.2", 3439 | "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", 3440 | "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", 3441 | "dev": true, 3442 | "requires": { 3443 | "extend-shallow": "^3.0.2", 3444 | "safe-regex": "^1.1.0" 3445 | } 3446 | }, 3447 | "remove-trailing-separator": { 3448 | "version": "1.1.0", 3449 | "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", 3450 | "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", 3451 | "dev": true 3452 | }, 3453 | "repeat-element": { 3454 | "version": "1.1.3", 3455 | "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", 3456 | "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", 3457 | "dev": true 3458 | }, 3459 | "repeat-string": { 3460 | "version": "1.6.1", 3461 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", 3462 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", 3463 | "dev": true 3464 | }, 3465 | "request": { 3466 | "version": "2.88.2", 3467 | "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", 3468 | "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", 3469 | "dev": true, 3470 | "requires": { 3471 | "aws-sign2": "~0.7.0", 3472 | "aws4": "^1.8.0", 3473 | "caseless": "~0.12.0", 3474 | "combined-stream": "~1.0.6", 3475 | "extend": "~3.0.2", 3476 | "forever-agent": "~0.6.1", 3477 | "form-data": "~2.3.2", 3478 | "har-validator": "~5.1.3", 3479 | "http-signature": "~1.2.0", 3480 | "is-typedarray": "~1.0.0", 3481 | "isstream": "~0.1.2", 3482 | "json-stringify-safe": "~5.0.1", 3483 | "mime-types": "~2.1.19", 3484 | "oauth-sign": "~0.9.0", 3485 | "performance-now": "^2.1.0", 3486 | "qs": "~6.5.2", 3487 | "safe-buffer": "^5.1.2", 3488 | "tough-cookie": "~2.5.0", 3489 | "tunnel-agent": "^0.6.0", 3490 | "uuid": "^3.3.2" 3491 | } 3492 | }, 3493 | "request-promise-core": { 3494 | "version": "1.1.4", 3495 | "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", 3496 | "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", 3497 | "dev": true, 3498 | "requires": { 3499 | "lodash": "^4.17.19" 3500 | } 3501 | }, 3502 | "request-promise-native": { 3503 | "version": "1.0.9", 3504 | "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", 3505 | "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", 3506 | "dev": true, 3507 | "requires": { 3508 | "request-promise-core": "1.1.4", 3509 | "stealthy-require": "^1.1.1", 3510 | "tough-cookie": "^2.3.3" 3511 | } 3512 | }, 3513 | "require-directory": { 3514 | "version": "2.1.1", 3515 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", 3516 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", 3517 | "dev": true 3518 | }, 3519 | "require-main-filename": { 3520 | "version": "2.0.0", 3521 | "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", 3522 | "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", 3523 | "dev": true 3524 | }, 3525 | "resolve": { 3526 | "version": "1.19.0", 3527 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", 3528 | "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", 3529 | "dev": true, 3530 | "requires": { 3531 | "is-core-module": "^2.1.0", 3532 | "path-parse": "^1.0.6" 3533 | } 3534 | }, 3535 | "resolve-cwd": { 3536 | "version": "2.0.0", 3537 | "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", 3538 | "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", 3539 | "dev": true, 3540 | "requires": { 3541 | "resolve-from": "^3.0.0" 3542 | } 3543 | }, 3544 | "resolve-from": { 3545 | "version": "3.0.0", 3546 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", 3547 | "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", 3548 | "dev": true 3549 | }, 3550 | "resolve-url": { 3551 | "version": "0.2.1", 3552 | "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", 3553 | "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", 3554 | "dev": true 3555 | }, 3556 | "ret": { 3557 | "version": "0.1.15", 3558 | "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", 3559 | "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", 3560 | "dev": true 3561 | }, 3562 | "rimraf": { 3563 | "version": "2.7.1", 3564 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", 3565 | "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", 3566 | "dev": true, 3567 | "requires": { 3568 | "glob": "^7.1.3" 3569 | } 3570 | }, 3571 | "rsvp": { 3572 | "version": "4.8.5", 3573 | "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", 3574 | "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", 3575 | "dev": true 3576 | }, 3577 | "safe-buffer": { 3578 | "version": "5.1.2", 3579 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 3580 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", 3581 | "dev": true 3582 | }, 3583 | "safe-regex": { 3584 | "version": "1.1.0", 3585 | "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", 3586 | "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", 3587 | "dev": true, 3588 | "requires": { 3589 | "ret": "~0.1.10" 3590 | } 3591 | }, 3592 | "safer-buffer": { 3593 | "version": "2.1.2", 3594 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 3595 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", 3596 | "dev": true 3597 | }, 3598 | "sane": { 3599 | "version": "4.1.0", 3600 | "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", 3601 | "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", 3602 | "dev": true, 3603 | "requires": { 3604 | "@cnakazawa/watch": "^1.0.3", 3605 | "anymatch": "^2.0.0", 3606 | "capture-exit": "^2.0.0", 3607 | "exec-sh": "^0.3.2", 3608 | "execa": "^1.0.0", 3609 | "fb-watchman": "^2.0.0", 3610 | "micromatch": "^3.1.4", 3611 | "minimist": "^1.1.1", 3612 | "walker": "~1.0.5" 3613 | } 3614 | }, 3615 | "sax": { 3616 | "version": "1.2.4", 3617 | "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", 3618 | "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", 3619 | "dev": true 3620 | }, 3621 | "semver": { 3622 | "version": "5.7.1", 3623 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", 3624 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", 3625 | "dev": true 3626 | }, 3627 | "set-blocking": { 3628 | "version": "2.0.0", 3629 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", 3630 | "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", 3631 | "dev": true 3632 | }, 3633 | "set-value": { 3634 | "version": "2.0.1", 3635 | "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", 3636 | "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", 3637 | "dev": true, 3638 | "requires": { 3639 | "extend-shallow": "^2.0.1", 3640 | "is-extendable": "^0.1.1", 3641 | "is-plain-object": "^2.0.3", 3642 | "split-string": "^3.0.1" 3643 | }, 3644 | "dependencies": { 3645 | "extend-shallow": { 3646 | "version": "2.0.1", 3647 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", 3648 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", 3649 | "dev": true, 3650 | "requires": { 3651 | "is-extendable": "^0.1.0" 3652 | } 3653 | } 3654 | } 3655 | }, 3656 | "shebang-command": { 3657 | "version": "1.2.0", 3658 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", 3659 | "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", 3660 | "dev": true, 3661 | "requires": { 3662 | "shebang-regex": "^1.0.0" 3663 | } 3664 | }, 3665 | "shebang-regex": { 3666 | "version": "1.0.0", 3667 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", 3668 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", 3669 | "dev": true 3670 | }, 3671 | "shellwords": { 3672 | "version": "0.1.1", 3673 | "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", 3674 | "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", 3675 | "dev": true 3676 | }, 3677 | "signal-exit": { 3678 | "version": "3.0.3", 3679 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", 3680 | "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", 3681 | "dev": true 3682 | }, 3683 | "sisteransi": { 3684 | "version": "1.0.5", 3685 | "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", 3686 | "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", 3687 | "dev": true 3688 | }, 3689 | "slash": { 3690 | "version": "2.0.0", 3691 | "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", 3692 | "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", 3693 | "dev": true 3694 | }, 3695 | "snapdragon": { 3696 | "version": "0.8.2", 3697 | "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", 3698 | "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", 3699 | "dev": true, 3700 | "requires": { 3701 | "base": "^0.11.1", 3702 | "debug": "^2.2.0", 3703 | "define-property": "^0.2.5", 3704 | "extend-shallow": "^2.0.1", 3705 | "map-cache": "^0.2.2", 3706 | "source-map": "^0.5.6", 3707 | "source-map-resolve": "^0.5.0", 3708 | "use": "^3.1.0" 3709 | }, 3710 | "dependencies": { 3711 | "define-property": { 3712 | "version": "0.2.5", 3713 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", 3714 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", 3715 | "dev": true, 3716 | "requires": { 3717 | "is-descriptor": "^0.1.0" 3718 | } 3719 | }, 3720 | "extend-shallow": { 3721 | "version": "2.0.1", 3722 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", 3723 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", 3724 | "dev": true, 3725 | "requires": { 3726 | "is-extendable": "^0.1.0" 3727 | } 3728 | }, 3729 | "source-map": { 3730 | "version": "0.5.7", 3731 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 3732 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", 3733 | "dev": true 3734 | } 3735 | } 3736 | }, 3737 | "snapdragon-node": { 3738 | "version": "2.1.1", 3739 | "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", 3740 | "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", 3741 | "dev": true, 3742 | "requires": { 3743 | "define-property": "^1.0.0", 3744 | "isobject": "^3.0.0", 3745 | "snapdragon-util": "^3.0.1" 3746 | }, 3747 | "dependencies": { 3748 | "define-property": { 3749 | "version": "1.0.0", 3750 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", 3751 | "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", 3752 | "dev": true, 3753 | "requires": { 3754 | "is-descriptor": "^1.0.0" 3755 | } 3756 | }, 3757 | "is-accessor-descriptor": { 3758 | "version": "1.0.0", 3759 | "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", 3760 | "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", 3761 | "dev": true, 3762 | "requires": { 3763 | "kind-of": "^6.0.0" 3764 | } 3765 | }, 3766 | "is-data-descriptor": { 3767 | "version": "1.0.0", 3768 | "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", 3769 | "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", 3770 | "dev": true, 3771 | "requires": { 3772 | "kind-of": "^6.0.0" 3773 | } 3774 | }, 3775 | "is-descriptor": { 3776 | "version": "1.0.2", 3777 | "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", 3778 | "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", 3779 | "dev": true, 3780 | "requires": { 3781 | "is-accessor-descriptor": "^1.0.0", 3782 | "is-data-descriptor": "^1.0.0", 3783 | "kind-of": "^6.0.2" 3784 | } 3785 | } 3786 | } 3787 | }, 3788 | "snapdragon-util": { 3789 | "version": "3.0.1", 3790 | "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", 3791 | "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", 3792 | "dev": true, 3793 | "requires": { 3794 | "kind-of": "^3.2.0" 3795 | }, 3796 | "dependencies": { 3797 | "kind-of": { 3798 | "version": "3.2.2", 3799 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 3800 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 3801 | "dev": true, 3802 | "requires": { 3803 | "is-buffer": "^1.1.5" 3804 | } 3805 | } 3806 | } 3807 | }, 3808 | "source-map": { 3809 | "version": "0.6.1", 3810 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 3811 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 3812 | "dev": true 3813 | }, 3814 | "source-map-resolve": { 3815 | "version": "0.5.3", 3816 | "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", 3817 | "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", 3818 | "dev": true, 3819 | "requires": { 3820 | "atob": "^2.1.2", 3821 | "decode-uri-component": "^0.2.0", 3822 | "resolve-url": "^0.2.1", 3823 | "source-map-url": "^0.4.0", 3824 | "urix": "^0.1.0" 3825 | } 3826 | }, 3827 | "source-map-support": { 3828 | "version": "0.5.19", 3829 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", 3830 | "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", 3831 | "dev": true, 3832 | "requires": { 3833 | "buffer-from": "^1.0.0", 3834 | "source-map": "^0.6.0" 3835 | } 3836 | }, 3837 | "source-map-url": { 3838 | "version": "0.4.0", 3839 | "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", 3840 | "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", 3841 | "dev": true 3842 | }, 3843 | "spdx-correct": { 3844 | "version": "3.1.1", 3845 | "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", 3846 | "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", 3847 | "dev": true, 3848 | "requires": { 3849 | "spdx-expression-parse": "^3.0.0", 3850 | "spdx-license-ids": "^3.0.0" 3851 | } 3852 | }, 3853 | "spdx-exceptions": { 3854 | "version": "2.3.0", 3855 | "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", 3856 | "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", 3857 | "dev": true 3858 | }, 3859 | "spdx-expression-parse": { 3860 | "version": "3.0.1", 3861 | "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", 3862 | "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", 3863 | "dev": true, 3864 | "requires": { 3865 | "spdx-exceptions": "^2.1.0", 3866 | "spdx-license-ids": "^3.0.0" 3867 | } 3868 | }, 3869 | "spdx-license-ids": { 3870 | "version": "3.0.7", 3871 | "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", 3872 | "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", 3873 | "dev": true 3874 | }, 3875 | "split-string": { 3876 | "version": "3.1.0", 3877 | "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", 3878 | "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", 3879 | "dev": true, 3880 | "requires": { 3881 | "extend-shallow": "^3.0.0" 3882 | } 3883 | }, 3884 | "sshpk": { 3885 | "version": "1.16.1", 3886 | "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", 3887 | "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", 3888 | "dev": true, 3889 | "requires": { 3890 | "asn1": "~0.2.3", 3891 | "assert-plus": "^1.0.0", 3892 | "bcrypt-pbkdf": "^1.0.0", 3893 | "dashdash": "^1.12.0", 3894 | "ecc-jsbn": "~0.1.1", 3895 | "getpass": "^0.1.1", 3896 | "jsbn": "~0.1.0", 3897 | "safer-buffer": "^2.0.2", 3898 | "tweetnacl": "~0.14.0" 3899 | } 3900 | }, 3901 | "stack-utils": { 3902 | "version": "1.0.4", 3903 | "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.4.tgz", 3904 | "integrity": "sha512-IPDJfugEGbfizBwBZRZ3xpccMdRyP5lqsBWXGQWimVjua/ccLCeMOAVjlc1R7LxFjo5sEDhyNIXd8mo/AiDS9w==", 3905 | "dev": true, 3906 | "requires": { 3907 | "escape-string-regexp": "^2.0.0" 3908 | }, 3909 | "dependencies": { 3910 | "escape-string-regexp": { 3911 | "version": "2.0.0", 3912 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", 3913 | "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", 3914 | "dev": true 3915 | } 3916 | } 3917 | }, 3918 | "static-extend": { 3919 | "version": "0.1.2", 3920 | "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", 3921 | "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", 3922 | "dev": true, 3923 | "requires": { 3924 | "define-property": "^0.2.5", 3925 | "object-copy": "^0.1.0" 3926 | }, 3927 | "dependencies": { 3928 | "define-property": { 3929 | "version": "0.2.5", 3930 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", 3931 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", 3932 | "dev": true, 3933 | "requires": { 3934 | "is-descriptor": "^0.1.0" 3935 | } 3936 | } 3937 | } 3938 | }, 3939 | "stealthy-require": { 3940 | "version": "1.1.1", 3941 | "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", 3942 | "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", 3943 | "dev": true 3944 | }, 3945 | "string-length": { 3946 | "version": "2.0.0", 3947 | "resolved": "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz", 3948 | "integrity": "sha1-1A27aGo6zpYMHP/KVivyxF+DY+0=", 3949 | "dev": true, 3950 | "requires": { 3951 | "astral-regex": "^1.0.0", 3952 | "strip-ansi": "^4.0.0" 3953 | }, 3954 | "dependencies": { 3955 | "ansi-regex": { 3956 | "version": "3.0.0", 3957 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", 3958 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", 3959 | "dev": true 3960 | }, 3961 | "strip-ansi": { 3962 | "version": "4.0.0", 3963 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", 3964 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", 3965 | "dev": true, 3966 | "requires": { 3967 | "ansi-regex": "^3.0.0" 3968 | } 3969 | } 3970 | } 3971 | }, 3972 | "string-width": { 3973 | "version": "3.1.0", 3974 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", 3975 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", 3976 | "dev": true, 3977 | "requires": { 3978 | "emoji-regex": "^7.0.1", 3979 | "is-fullwidth-code-point": "^2.0.0", 3980 | "strip-ansi": "^5.1.0" 3981 | } 3982 | }, 3983 | "string.prototype.trimend": { 3984 | "version": "1.0.3", 3985 | "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz", 3986 | "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==", 3987 | "dev": true, 3988 | "requires": { 3989 | "call-bind": "^1.0.0", 3990 | "define-properties": "^1.1.3" 3991 | } 3992 | }, 3993 | "string.prototype.trimstart": { 3994 | "version": "1.0.3", 3995 | "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz", 3996 | "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==", 3997 | "dev": true, 3998 | "requires": { 3999 | "call-bind": "^1.0.0", 4000 | "define-properties": "^1.1.3" 4001 | } 4002 | }, 4003 | "strip-ansi": { 4004 | "version": "5.2.0", 4005 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", 4006 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", 4007 | "dev": true, 4008 | "requires": { 4009 | "ansi-regex": "^4.1.0" 4010 | } 4011 | }, 4012 | "strip-bom": { 4013 | "version": "3.0.0", 4014 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", 4015 | "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", 4016 | "dev": true 4017 | }, 4018 | "strip-eof": { 4019 | "version": "1.0.0", 4020 | "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", 4021 | "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", 4022 | "dev": true 4023 | }, 4024 | "supports-color": { 4025 | "version": "5.5.0", 4026 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 4027 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 4028 | "dev": true, 4029 | "requires": { 4030 | "has-flag": "^3.0.0" 4031 | } 4032 | }, 4033 | "symbol-tree": { 4034 | "version": "3.2.4", 4035 | "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", 4036 | "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", 4037 | "dev": true 4038 | }, 4039 | "test-exclude": { 4040 | "version": "5.2.3", 4041 | "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz", 4042 | "integrity": "sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g==", 4043 | "dev": true, 4044 | "requires": { 4045 | "glob": "^7.1.3", 4046 | "minimatch": "^3.0.4", 4047 | "read-pkg-up": "^4.0.0", 4048 | "require-main-filename": "^2.0.0" 4049 | } 4050 | }, 4051 | "throat": { 4052 | "version": "4.1.0", 4053 | "resolved": "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz", 4054 | "integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=", 4055 | "dev": true 4056 | }, 4057 | "tmpl": { 4058 | "version": "1.0.4", 4059 | "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", 4060 | "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=", 4061 | "dev": true 4062 | }, 4063 | "to-fast-properties": { 4064 | "version": "2.0.0", 4065 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", 4066 | "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", 4067 | "dev": true 4068 | }, 4069 | "to-object-path": { 4070 | "version": "0.3.0", 4071 | "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", 4072 | "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", 4073 | "dev": true, 4074 | "requires": { 4075 | "kind-of": "^3.0.2" 4076 | }, 4077 | "dependencies": { 4078 | "kind-of": { 4079 | "version": "3.2.2", 4080 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 4081 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 4082 | "dev": true, 4083 | "requires": { 4084 | "is-buffer": "^1.1.5" 4085 | } 4086 | } 4087 | } 4088 | }, 4089 | "to-regex": { 4090 | "version": "3.0.2", 4091 | "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", 4092 | "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", 4093 | "dev": true, 4094 | "requires": { 4095 | "define-property": "^2.0.2", 4096 | "extend-shallow": "^3.0.2", 4097 | "regex-not": "^1.0.2", 4098 | "safe-regex": "^1.1.0" 4099 | } 4100 | }, 4101 | "to-regex-range": { 4102 | "version": "2.1.1", 4103 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", 4104 | "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", 4105 | "dev": true, 4106 | "requires": { 4107 | "is-number": "^3.0.0", 4108 | "repeat-string": "^1.6.1" 4109 | } 4110 | }, 4111 | "tough-cookie": { 4112 | "version": "2.5.0", 4113 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", 4114 | "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", 4115 | "dev": true, 4116 | "requires": { 4117 | "psl": "^1.1.28", 4118 | "punycode": "^2.1.1" 4119 | } 4120 | }, 4121 | "tr46": { 4122 | "version": "1.0.1", 4123 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", 4124 | "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", 4125 | "dev": true, 4126 | "requires": { 4127 | "punycode": "^2.1.0" 4128 | } 4129 | }, 4130 | "ts-jest": { 4131 | "version": "24.3.0", 4132 | "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-24.3.0.tgz", 4133 | "integrity": "sha512-Hb94C/+QRIgjVZlJyiWwouYUF+siNJHJHknyspaOcZ+OQAIdFG/UrdQVXw/0B8Z3No34xkUXZJpOTy9alOWdVQ==", 4134 | "dev": true, 4135 | "requires": { 4136 | "bs-logger": "0.x", 4137 | "buffer-from": "1.x", 4138 | "fast-json-stable-stringify": "2.x", 4139 | "json5": "2.x", 4140 | "lodash.memoize": "4.x", 4141 | "make-error": "1.x", 4142 | "mkdirp": "0.x", 4143 | "resolve": "1.x", 4144 | "semver": "^5.5", 4145 | "yargs-parser": "10.x" 4146 | }, 4147 | "dependencies": { 4148 | "camelcase": { 4149 | "version": "4.1.0", 4150 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", 4151 | "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", 4152 | "dev": true 4153 | }, 4154 | "yargs-parser": { 4155 | "version": "10.1.0", 4156 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", 4157 | "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", 4158 | "dev": true, 4159 | "requires": { 4160 | "camelcase": "^4.1.0" 4161 | } 4162 | } 4163 | } 4164 | }, 4165 | "ts-node": { 4166 | "version": "8.10.2", 4167 | "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.10.2.tgz", 4168 | "integrity": "sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA==", 4169 | "dev": true, 4170 | "requires": { 4171 | "arg": "^4.1.0", 4172 | "diff": "^4.0.1", 4173 | "make-error": "^1.1.1", 4174 | "source-map-support": "^0.5.17", 4175 | "yn": "3.1.1" 4176 | } 4177 | }, 4178 | "tunnel-agent": { 4179 | "version": "0.6.0", 4180 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", 4181 | "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", 4182 | "dev": true, 4183 | "requires": { 4184 | "safe-buffer": "^5.0.1" 4185 | } 4186 | }, 4187 | "tweetnacl": { 4188 | "version": "0.14.5", 4189 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", 4190 | "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", 4191 | "dev": true 4192 | }, 4193 | "type-check": { 4194 | "version": "0.3.2", 4195 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", 4196 | "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", 4197 | "dev": true, 4198 | "requires": { 4199 | "prelude-ls": "~1.1.2" 4200 | } 4201 | }, 4202 | "typescript": { 4203 | "version": "4.1.3", 4204 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz", 4205 | "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==", 4206 | "dev": true 4207 | }, 4208 | "union-value": { 4209 | "version": "1.0.1", 4210 | "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", 4211 | "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", 4212 | "dev": true, 4213 | "requires": { 4214 | "arr-union": "^3.1.0", 4215 | "get-value": "^2.0.6", 4216 | "is-extendable": "^0.1.1", 4217 | "set-value": "^2.0.1" 4218 | } 4219 | }, 4220 | "unset-value": { 4221 | "version": "1.0.0", 4222 | "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", 4223 | "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", 4224 | "dev": true, 4225 | "requires": { 4226 | "has-value": "^0.3.1", 4227 | "isobject": "^3.0.0" 4228 | }, 4229 | "dependencies": { 4230 | "has-value": { 4231 | "version": "0.3.1", 4232 | "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", 4233 | "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", 4234 | "dev": true, 4235 | "requires": { 4236 | "get-value": "^2.0.3", 4237 | "has-values": "^0.1.4", 4238 | "isobject": "^2.0.0" 4239 | }, 4240 | "dependencies": { 4241 | "isobject": { 4242 | "version": "2.1.0", 4243 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", 4244 | "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", 4245 | "dev": true, 4246 | "requires": { 4247 | "isarray": "1.0.0" 4248 | } 4249 | } 4250 | } 4251 | }, 4252 | "has-values": { 4253 | "version": "0.1.4", 4254 | "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", 4255 | "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", 4256 | "dev": true 4257 | } 4258 | } 4259 | }, 4260 | "uri-js": { 4261 | "version": "4.4.0", 4262 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", 4263 | "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", 4264 | "dev": true, 4265 | "requires": { 4266 | "punycode": "^2.1.0" 4267 | } 4268 | }, 4269 | "urix": { 4270 | "version": "0.1.0", 4271 | "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", 4272 | "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", 4273 | "dev": true 4274 | }, 4275 | "use": { 4276 | "version": "3.1.1", 4277 | "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", 4278 | "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", 4279 | "dev": true 4280 | }, 4281 | "util.promisify": { 4282 | "version": "1.1.1", 4283 | "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.1.1.tgz", 4284 | "integrity": "sha512-/s3UsZUrIfa6xDhr7zZhnE9SLQ5RIXyYfiVnMMyMDzOc8WhWN4Nbh36H842OyurKbCDAesZOJaVyvmSl6fhGQw==", 4285 | "dev": true, 4286 | "requires": { 4287 | "call-bind": "^1.0.0", 4288 | "define-properties": "^1.1.3", 4289 | "for-each": "^0.3.3", 4290 | "has-symbols": "^1.0.1", 4291 | "object.getownpropertydescriptors": "^2.1.1" 4292 | } 4293 | }, 4294 | "uuid": { 4295 | "version": "3.4.0", 4296 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", 4297 | "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", 4298 | "dev": true 4299 | }, 4300 | "validate-npm-package-license": { 4301 | "version": "3.0.4", 4302 | "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", 4303 | "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", 4304 | "dev": true, 4305 | "requires": { 4306 | "spdx-correct": "^3.0.0", 4307 | "spdx-expression-parse": "^3.0.0" 4308 | } 4309 | }, 4310 | "verror": { 4311 | "version": "1.10.0", 4312 | "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", 4313 | "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", 4314 | "dev": true, 4315 | "requires": { 4316 | "assert-plus": "^1.0.0", 4317 | "core-util-is": "1.0.2", 4318 | "extsprintf": "^1.2.0" 4319 | } 4320 | }, 4321 | "w3c-hr-time": { 4322 | "version": "1.0.2", 4323 | "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", 4324 | "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", 4325 | "dev": true, 4326 | "requires": { 4327 | "browser-process-hrtime": "^1.0.0" 4328 | } 4329 | }, 4330 | "walker": { 4331 | "version": "1.0.7", 4332 | "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", 4333 | "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", 4334 | "dev": true, 4335 | "requires": { 4336 | "makeerror": "1.0.x" 4337 | } 4338 | }, 4339 | "webidl-conversions": { 4340 | "version": "4.0.2", 4341 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", 4342 | "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", 4343 | "dev": true 4344 | }, 4345 | "whatwg-encoding": { 4346 | "version": "1.0.5", 4347 | "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", 4348 | "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", 4349 | "dev": true, 4350 | "requires": { 4351 | "iconv-lite": "0.4.24" 4352 | } 4353 | }, 4354 | "whatwg-mimetype": { 4355 | "version": "2.3.0", 4356 | "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", 4357 | "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", 4358 | "dev": true 4359 | }, 4360 | "whatwg-url": { 4361 | "version": "6.5.0", 4362 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz", 4363 | "integrity": "sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==", 4364 | "dev": true, 4365 | "requires": { 4366 | "lodash.sortby": "^4.7.0", 4367 | "tr46": "^1.0.1", 4368 | "webidl-conversions": "^4.0.2" 4369 | } 4370 | }, 4371 | "which": { 4372 | "version": "1.3.1", 4373 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", 4374 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", 4375 | "dev": true, 4376 | "requires": { 4377 | "isexe": "^2.0.0" 4378 | } 4379 | }, 4380 | "which-module": { 4381 | "version": "2.0.0", 4382 | "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", 4383 | "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", 4384 | "dev": true 4385 | }, 4386 | "word-wrap": { 4387 | "version": "1.2.3", 4388 | "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", 4389 | "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", 4390 | "dev": true 4391 | }, 4392 | "wrap-ansi": { 4393 | "version": "5.1.0", 4394 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", 4395 | "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", 4396 | "dev": true, 4397 | "requires": { 4398 | "ansi-styles": "^3.2.0", 4399 | "string-width": "^3.0.0", 4400 | "strip-ansi": "^5.0.0" 4401 | } 4402 | }, 4403 | "wrappy": { 4404 | "version": "1.0.2", 4405 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 4406 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 4407 | "dev": true 4408 | }, 4409 | "write-file-atomic": { 4410 | "version": "2.4.1", 4411 | "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.1.tgz", 4412 | "integrity": "sha512-TGHFeZEZMnv+gBFRfjAcxL5bPHrsGKtnb4qsFAws7/vlh+QfwAaySIw4AXP9ZskTTh5GWu3FLuJhsWVdiJPGvg==", 4413 | "dev": true, 4414 | "requires": { 4415 | "graceful-fs": "^4.1.11", 4416 | "imurmurhash": "^0.1.4", 4417 | "signal-exit": "^3.0.2" 4418 | } 4419 | }, 4420 | "ws": { 4421 | "version": "5.2.2", 4422 | "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", 4423 | "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", 4424 | "dev": true, 4425 | "requires": { 4426 | "async-limiter": "~1.0.0" 4427 | } 4428 | }, 4429 | "xml-name-validator": { 4430 | "version": "3.0.0", 4431 | "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", 4432 | "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", 4433 | "dev": true 4434 | }, 4435 | "y18n": { 4436 | "version": "4.0.1", 4437 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", 4438 | "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", 4439 | "dev": true 4440 | }, 4441 | "yargs": { 4442 | "version": "13.3.2", 4443 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", 4444 | "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", 4445 | "dev": true, 4446 | "requires": { 4447 | "cliui": "^5.0.0", 4448 | "find-up": "^3.0.0", 4449 | "get-caller-file": "^2.0.1", 4450 | "require-directory": "^2.1.1", 4451 | "require-main-filename": "^2.0.0", 4452 | "set-blocking": "^2.0.0", 4453 | "string-width": "^3.0.0", 4454 | "which-module": "^2.0.0", 4455 | "y18n": "^4.0.0", 4456 | "yargs-parser": "^13.1.2" 4457 | } 4458 | }, 4459 | "yargs-parser": { 4460 | "version": "13.1.2", 4461 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", 4462 | "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", 4463 | "dev": true, 4464 | "requires": { 4465 | "camelcase": "^5.0.0", 4466 | "decamelize": "^1.2.0" 4467 | } 4468 | }, 4469 | "yn": { 4470 | "version": "3.1.1", 4471 | "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", 4472 | "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", 4473 | "dev": true 4474 | } 4475 | } 4476 | } 4477 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "react-peg", 3 | "version": "0.1.8", 4 | "description": "A react style parser generator, based on PEG.js", 5 | "keywords": [ 6 | "react", 7 | "peg", 8 | "parser", 9 | "parser generator" 10 | ], 11 | "repository": { 12 | "type": "git", 13 | "url": "https://github.com/mistlog/react-peg" 14 | }, 15 | "homepage": "https://mistlog.github.io/react-peg", 16 | "main": "build/index.js", 17 | "types": "build/index.d.ts", 18 | "files": [ 19 | "build" 20 | ], 21 | "scripts": { 22 | "test": "jest --coverage", 23 | "build": "tsc" 24 | }, 25 | "author": "mistlog", 26 | "license": "MIT", 27 | "devDependencies": { 28 | "@types/jest": "^24.0.17", 29 | "@types/pegjs": "^0.10.1", 30 | "jest": "^24.8.0", 31 | "ts-jest": "^24.0.2", 32 | "ts-node": "^8.3.0", 33 | "typescript": "^4.1.3" 34 | }, 35 | "dependencies": { 36 | "pegjs": "^0.10.0" 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/chunk/chunk.test.tsx: -------------------------------------------------------------------------------- 1 | 2 | import { ReactPeg } from "../index"; 3 | 4 | test("chunk.tag", () => { 5 | const chunk = abc; 6 | expect(chunk).toEqual({ props: {}, children: ['abc'], tagName: 'text' }); 7 | }) 8 | 9 | test("chunk.rule", () => { 10 | function Test() { 11 | return ( 12 | { props: {}, children: [] } 13 | ) 14 | } 15 | 16 | const chunk = ; 17 | expect(chunk).toEqual({ props: { foo: 'hi' }, children: [], rule: Test }); 18 | }) -------------------------------------------------------------------------------- /src/chunk/chunk.ts: -------------------------------------------------------------------------------- 1 | export type RepeatType = "*" | "+"; 2 | export type AssertType = "with" | "without"; 3 | 4 | export interface Chunk { 5 | // 6 | tagName?: string; 7 | rule?: Function; 8 | 9 | // 10 | props: { label?: string, type?: RepeatType | AssertType }; 11 | children: object[]; 12 | } 13 | 14 | export function createChunk(from: string | Function, props: object, ...children: object[]): Chunk { 15 | const chunk: Chunk = { props: props || {}, children }; 16 | 17 | if (typeof from === "string") { 18 | chunk.tagName = from; 19 | } 20 | else { 21 | chunk.rule = from; 22 | } 23 | 24 | return chunk; 25 | } 26 | 27 | export function isChunk(obj: object) { 28 | return typeof obj !== "string" && "props" in obj && "children" in obj; 29 | } 30 | 31 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import { createChunk, Chunk } from "./chunk/chunk"; 2 | import { render } from "./renderer/renderer"; 3 | import { TextRule, OrRule, ListRule, RepeatRule, SetRule, OptionalRule, AssertRule, PatternRule, AnyCharacterRule } from "./translator/common/type"; 4 | 5 | export { ActionParam } from "./rule/rule"; 6 | export { Chunk } from "./chunk/chunk"; 7 | 8 | export { PegjsError as SyntaxError } from "pegjs"; 9 | 10 | export const ReactPeg = { 11 | createChunk, 12 | render, 13 | }; 14 | 15 | declare global { 16 | namespace JSX { 17 | interface ElementAttributesProperty { 18 | props: any; 19 | } 20 | interface ElementChildrenAttribute { 21 | children: null; 22 | } 23 | 24 | interface Element extends Chunk { 25 | 26 | } 27 | 28 | interface ElementClass { 29 | render: Function; 30 | } 31 | 32 | interface IntrinsicElements { 33 | text: TextRule; 34 | or: OrRule; 35 | list: ListRule; 36 | repeat: RepeatRule; 37 | set: SetRule; 38 | opt: OptionalRule; 39 | assert: AssertRule; 40 | pattern: PatternRule; 41 | any: AnyCharacterRule; 42 | } 43 | } 44 | } -------------------------------------------------------------------------------- /src/renderer/__snapshots__/renderer.test.tsx.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`renderer.parse 1`] = `"Expected Digit but \\"a\\" found."`; 4 | 5 | exports[`renderer: tracer 1`] = ` 6 | Object { 7 | "location": Object { 8 | "end": Object { 9 | "column": 1, 10 | "line": 1, 11 | "offset": 0, 12 | }, 13 | "start": Object { 14 | "column": 1, 15 | "line": 1, 16 | "offset": 0, 17 | }, 18 | }, 19 | "rule": "TracerTest", 20 | "type": "rule.enter", 21 | } 22 | `; 23 | 24 | exports[`renderer: tracer 2`] = ` 25 | Object { 26 | "location": Object { 27 | "end": Object { 28 | "column": 1, 29 | "line": 1, 30 | "offset": 0, 31 | }, 32 | "start": Object { 33 | "column": 1, 34 | "line": 1, 35 | "offset": 0, 36 | }, 37 | }, 38 | "rule": "Digit", 39 | "type": "rule.enter", 40 | } 41 | `; 42 | 43 | exports[`renderer: tracer 3`] = ` 44 | Object { 45 | "location": Object { 46 | "end": Object { 47 | "column": 2, 48 | "line": 1, 49 | "offset": 1, 50 | }, 51 | "start": Object { 52 | "column": 1, 53 | "line": 1, 54 | "offset": 0, 55 | }, 56 | }, 57 | "result": "1", 58 | "rule": "Digit", 59 | "type": "rule.match", 60 | } 61 | `; 62 | 63 | exports[`renderer: tracer 4`] = ` 64 | Object { 65 | "location": Object { 66 | "end": Object { 67 | "column": 2, 68 | "line": 1, 69 | "offset": 1, 70 | }, 71 | "start": Object { 72 | "column": 2, 73 | "line": 1, 74 | "offset": 1, 75 | }, 76 | }, 77 | "rule": "Digit", 78 | "type": "rule.enter", 79 | } 80 | `; 81 | 82 | exports[`renderer: tracer 5`] = ` 83 | Object { 84 | "location": Object { 85 | "end": Object { 86 | "column": 3, 87 | "line": 1, 88 | "offset": 2, 89 | }, 90 | "start": Object { 91 | "column": 2, 92 | "line": 1, 93 | "offset": 1, 94 | }, 95 | }, 96 | "result": "2", 97 | "rule": "Digit", 98 | "type": "rule.match", 99 | } 100 | `; 101 | 102 | exports[`renderer: tracer 6`] = ` 103 | Object { 104 | "location": Object { 105 | "end": Object { 106 | "column": 3, 107 | "line": 1, 108 | "offset": 2, 109 | }, 110 | "start": Object { 111 | "column": 3, 112 | "line": 1, 113 | "offset": 2, 114 | }, 115 | }, 116 | "rule": "Digit", 117 | "type": "rule.enter", 118 | } 119 | `; 120 | 121 | exports[`renderer: tracer 7`] = ` 122 | Object { 123 | "location": Object { 124 | "end": Object { 125 | "column": 4, 126 | "line": 1, 127 | "offset": 3, 128 | }, 129 | "start": Object { 130 | "column": 3, 131 | "line": 1, 132 | "offset": 2, 133 | }, 134 | }, 135 | "result": "3", 136 | "rule": "Digit", 137 | "type": "rule.match", 138 | } 139 | `; 140 | 141 | exports[`renderer: tracer 8`] = ` 142 | Object { 143 | "location": Object { 144 | "end": Object { 145 | "column": 4, 146 | "line": 1, 147 | "offset": 3, 148 | }, 149 | "start": Object { 150 | "column": 1, 151 | "line": 1, 152 | "offset": 0, 153 | }, 154 | }, 155 | "result": "123", 156 | "rule": "TracerTest", 157 | "type": "rule.match", 158 | } 159 | `; 160 | -------------------------------------------------------------------------------- /src/renderer/renderer.test.tsx: -------------------------------------------------------------------------------- 1 | import { ReactPeg } from "../index"; 2 | import { ITracer } from "./renderer"; 3 | 4 | export type DigitNode = string; 5 | 6 | export function Digit() { 7 | return ( 8 | globalFunction.text()}> 9 | 0-9 10 | 11 | ); 12 | } 13 | 14 | 15 | test("renderer", () => { 16 | const parser = ReactPeg.render(); 17 | const ast = parser.parse("1"); 18 | expect(ast).toEqual("1"); 19 | }) 20 | 21 | 22 | test("renderer.parse", () => { 23 | const parser = ReactPeg.render(); 24 | expect(() => { 25 | parser.parse("a") 26 | }).toThrowErrorMatchingSnapshot(); 27 | }) 28 | 29 | 30 | test("renderer.cache-rule", () => { 31 | 32 | function CacheTest() { 33 | return ( 34 | { 35 | return values.join(""); 36 | }}> 37 | 38 | 39 | 40 | 41 | 42 | ); 43 | } 44 | 45 | const parser = ReactPeg.render(); 46 | const ast = parser.parse("12"); 47 | expect(ast).toEqual("12"); 48 | }) 49 | 50 | test("renderer: tracer", () => { 51 | function TracerTest() { 52 | return ( 53 | { 54 | return values.join(""); 55 | }}> 56 | 57 | 58 | 59 | 60 | 61 | 62 | ); 63 | } 64 | 65 | const tracer: ITracer = { 66 | trace: event => { 67 | expect(event).toMatchSnapshot(); 68 | } 69 | }; 70 | const parser = ReactPeg.render(, { tracer }); 71 | const ast = parser.parse("123"); 72 | expect(ast).toEqual("123"); 73 | }) 74 | 75 | test("renderer.context", () => { 76 | 77 | function ContextTest() { 78 | return ( 79 | { 80 | return globalContext.transform(digit); 81 | }}> 82 | 83 | 84 | ); 85 | } 86 | 87 | const parser = ReactPeg.render(); 88 | const ast = parser.parse("1", { 89 | transform: (digit: string) => `digit value is ${digit}` 90 | }); 91 | expect(ast).toEqual("digit value is 1"); 92 | }) -------------------------------------------------------------------------------- /src/renderer/renderer.ts: -------------------------------------------------------------------------------- 1 | import { Chunk, isChunk } from "../chunk/chunk"; 2 | import { RuleTranslator } from "../translator/rule/rule"; 3 | import * as peg from "pegjs"; 4 | 5 | export interface ITraceEvent { 6 | type: "rule.enter" | "rule.fail" | "rule.match" 7 | rule: string 8 | location: peg.LocationRange 9 | } 10 | export interface ITracer { 11 | trace: (event: ITraceEvent) => void 12 | } 13 | 14 | class Renderer { 15 | initializer: string; 16 | 17 | start: Chunk; 18 | grammar: Map; 19 | rules: Map; 20 | actions: Map; 21 | tracer: ITracer = null; 22 | 23 | constructor(chunk: Chunk) { 24 | this.initializer = ` 25 | { 26 | const { actions, context } = options; 27 | const globalFunction = { 28 | location, 29 | text 30 | }; 31 | const globalContext = context || {}; 32 | } 33 | `; 34 | 35 | this.start = chunk; 36 | this.grammar = new Map(); 37 | this.grammar.set("initializer", this.initializer); 38 | this.rules = new Map(); 39 | this.actions = new Map(); 40 | } 41 | 42 | render() { 43 | this.collectRule(this.start); 44 | const grammar = [...this.grammar.values()].join("\n\n"); 45 | return grammar; 46 | } 47 | 48 | collectRule(chunk: Chunk) { 49 | if (!isChunk(chunk)) { 50 | return; 51 | } 52 | 53 | if (chunk.rule) { 54 | const translator = new RuleTranslator(); 55 | const ruleStr = translator.translate(chunk, this.actions); 56 | const { name, chunkOutput, rule } = translator.cache; 57 | 58 | if (this.rules.has(name)) { 59 | return; 60 | } 61 | 62 | this.rules.set(name, rule); 63 | this.grammar.set(name, ruleStr); 64 | this.collectRule(chunkOutput); 65 | } 66 | 67 | chunk.children.forEach(child => { 68 | this.collectRule(child as Chunk); 69 | }) 70 | } 71 | } 72 | 73 | class Parser { 74 | parser: peg.Parser; 75 | renderer: Renderer; 76 | grammar: string; 77 | 78 | constructor(renderer: Renderer) { 79 | this.renderer = renderer; 80 | this.grammar = this.renderer.render(); 81 | this.parser = peg.generate(this.grammar, { trace: Boolean(renderer.tracer) }); 82 | } 83 | 84 | parse(code: string, context = {}) { 85 | try { 86 | const options: peg.ParserOptions = { actions: this.renderer.actions, context }; 87 | if (this.renderer.tracer) { 88 | /** 89 | * Tracing with peg.js: https://gist.github.com/mistlog/3ac6fdf7de3e7af2da15b339b4bb5187 90 | */ 91 | options.tracer = this.renderer.tracer; 92 | } 93 | const ast = this.parser.parse(code, options); 94 | return ast; 95 | } catch (error) { 96 | throw { message: error.message, location: error.location, stack: error.stack }; 97 | } 98 | } 99 | } 100 | 101 | export interface IRenderConfig { 102 | tracer?: ITracer 103 | } 104 | 105 | export function render(chunk: Chunk, config: IRenderConfig = {}) { 106 | const renderer = new Renderer(chunk); 107 | if (config.tracer) { 108 | renderer.tracer = config.tracer; 109 | } 110 | const parser = new Parser(renderer); 111 | return parser; 112 | } 113 | 114 | -------------------------------------------------------------------------------- /src/rule/rule.ts: -------------------------------------------------------------------------------- 1 | export interface ActionParam { 2 | globalFunction: { text: Function, location: Function }; 3 | [label: string]: any; 4 | } -------------------------------------------------------------------------------- /src/translator/built-in/__snapshots__/built-in.test.tsx.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`translator.pattern 1`] = ` 4 | "((a: 'a' { 5 | return actions.get(\\"action0\\")({a, globalFunction,globalContext}); 6 | }) / (b: 'b' { 7 | return actions.get(\\"action1\\")({b, globalFunction,globalContext}); 8 | }))" 9 | `; 10 | -------------------------------------------------------------------------------- /src/translator/built-in/any.ts: -------------------------------------------------------------------------------- 1 | import { Translator } from "../common/base"; 2 | import { Chunk } from "../../chunk/chunk"; 3 | 4 | export class AnyCharacterTranslator extends Translator { 5 | translate(chunk: Chunk) { 6 | return `.`; 7 | } 8 | } -------------------------------------------------------------------------------- /src/translator/built-in/assert.ts: -------------------------------------------------------------------------------- 1 | import { Translator } from "../common/base"; 2 | import { Chunk, AssertType } from "../../chunk/chunk"; 3 | import { translateChildren } from "../common/pattern"; 4 | 5 | export class AssertTranslator extends Translator { 6 | translate(chunk: Chunk, actions: Map) { 7 | const assertType = chunk.props.type as AssertType === "with" ? "&" : "!"; 8 | const expression = translateChildren(chunk, actions).join(" "); 9 | const pattern = `${assertType}(${expression})`; 10 | return pattern; 11 | } 12 | } -------------------------------------------------------------------------------- /src/translator/built-in/built-in.test.tsx: -------------------------------------------------------------------------------- 1 | import { ReactPeg } from "../../index"; 2 | import { translate } from "../common/pattern"; 3 | 4 | test("translator.text", () => { 5 | const chunk = abc; 6 | const pattern = translate(chunk); 7 | expect(pattern).toEqual(`'abc'`); 8 | }) 9 | 10 | test("translator.any", () => { 11 | const chunk = ; 12 | const pattern = translate(chunk); 13 | expect(pattern).toEqual(`.`); 14 | }) 15 | 16 | test("translator.or", () => { 17 | const chunk = ( 18 | 19 | a 20 | b 21 | 22 | ); 23 | const pattern = translate(chunk); 24 | expect(pattern).toEqual(`('a' / 'b')`); 25 | }) 26 | 27 | test("translator.or.array", () => { 28 | const chunk = ( 29 | 30 | {["a", "b"].map(each => ( 31 | {each} 32 | ))} 33 | 34 | ); 35 | const pattern = translate(chunk); 36 | expect(pattern).toEqual(`('a' / 'b')`); 37 | }) 38 | 39 | test("translator.list", () => { 40 | const chunk = ( 41 | 42 | a 43 | b 44 | 45 | ); 46 | const pattern = translate(chunk); 47 | expect(pattern).toEqual(`'a' 'b'`); 48 | }) 49 | 50 | test("translator.repeat.zero-or-more", () => { 51 | const chunk = ( 52 | 53 | a 54 | 55 | ); 56 | 57 | const pattern = translate(chunk); 58 | expect(pattern).toEqual("('a')*"); 59 | }) 60 | 61 | test("translator.repeat.one-or-more", () => { 62 | const chunk = ( 63 | 64 | a 65 | 66 | ); 67 | 68 | const pattern = translate(chunk); 69 | expect(pattern).toEqual("('a')+"); 70 | }); 71 | 72 | test("translator.set", () => { 73 | const chunk = ( 74 | a-z0-9A-Z 75 | ); 76 | 77 | const pattern = translate(chunk); 78 | expect(pattern).toEqual("[a-z0-9A-Z]"); 79 | }) 80 | 81 | test("translator.optional", () => { 82 | const chunk = ( 83 | 84 | 85 | a 86 | 87 | a 88 | 89 | ); 90 | const pattern = translate(chunk); 91 | expect(pattern).toEqual(`('a')? 'a'`); 92 | }) 93 | 94 | test("translator.assert.with", () => { 95 | const chunk = ( 96 | 97 | a 98 | 99 | cd 100 | 101 | cdab 102 | 103 | ); 104 | const pattern = translate(chunk); 105 | expect(pattern).toEqual(`'a' &('cd') 'cdab'`); 106 | }) 107 | 108 | test("translator.assert.without", () => { 109 | const chunk = ( 110 | 111 | a 112 | 113 | cd 114 | 115 | cdab 116 | 117 | ); 118 | const pattern = translate(chunk); 119 | expect(pattern).toEqual(`'a' !('cd') 'cdab'`); 120 | }) 121 | 122 | test("translator.text.label", () => { 123 | const chunk = abc; 124 | const pattern = translate(chunk); 125 | expect(pattern).toEqual(`t: 'abc'`); 126 | }) 127 | 128 | 129 | test("translator.pattern", () => { 130 | const chunk = ( 131 | 132 | a + "a"}> 133 | a 134 | 135 | b + "b"}> 136 | b 137 | 138 | 139 | ); 140 | const actions = new Map(); 141 | const pattern = translate(chunk, actions); 142 | expect(pattern).toMatchSnapshot(); 143 | }) -------------------------------------------------------------------------------- /src/translator/built-in/list.ts: -------------------------------------------------------------------------------- 1 | import { Translator } from "../common/base"; 2 | import { Chunk } from "../../chunk/chunk"; 3 | import { translateChildren } from "../common/pattern"; 4 | 5 | export class ListTranslator extends Translator { 6 | translate(chunk: Chunk, actions: Map) { 7 | const expression = translateChildren(chunk, actions).join(" "); 8 | if (chunk.props.label) { 9 | return `(${expression})`; 10 | } 11 | return expression; 12 | } 13 | } -------------------------------------------------------------------------------- /src/translator/built-in/opt.ts: -------------------------------------------------------------------------------- 1 | import { Translator } from "../common/base"; 2 | import { Chunk } from "../../chunk/chunk"; 3 | import { translateChildren } from "../common/pattern"; 4 | 5 | export class OptionalTranslator extends Translator { 6 | translate(chunk: Chunk, actions: Map) { 7 | const expression = translateChildren(chunk, actions).join(" "); 8 | const pattern = `(${expression})?`; 9 | return pattern; 10 | } 11 | } -------------------------------------------------------------------------------- /src/translator/built-in/or.ts: -------------------------------------------------------------------------------- 1 | import { Translator } from "../common/base"; 2 | import { Chunk } from "../../chunk/chunk"; 3 | import { translateChildren } from "../common/pattern"; 4 | 5 | export class OrTranslator extends Translator { 6 | translate(chunk: Chunk, actions: Map) { 7 | // TODO: use Array.flat 8 | chunk.children = [].concat(...chunk.children); 9 | const expression = translateChildren(chunk, actions).join(" / "); 10 | const pattern = `(${expression})`; 11 | return pattern; 12 | } 13 | } -------------------------------------------------------------------------------- /src/translator/built-in/pattern.ts: -------------------------------------------------------------------------------- 1 | import { Translator } from "../common/base"; 2 | import { Chunk, isChunk } from "../../chunk/chunk"; 3 | import { translateChildren } from "../common/pattern"; 4 | 5 | export class PatternTranslator extends Translator { 6 | translate(chunk: Chunk, actions: Map) { 7 | const expression = translateChildren(chunk, actions).join(" "); 8 | const labels = collectLabels(chunk); 9 | const actionStr = translateAction(chunk.props["action"], labels, actions); 10 | return `(${expression} ${actionStr})`; 11 | } 12 | } 13 | 14 | function translateAction(action: Function, labels: Array, actions: Map) { 15 | const labels_param = labels.length === 0 ? "" : `${labels.join(", ")}, `; 16 | 17 | const key = `action${actions.size}`; 18 | actions.set(key, action); 19 | 20 | const actionStr = `{ 21 | return actions.get("${key}")({${labels_param}${["globalFunction", "globalContext"].join(",")}}); 22 | }`; 23 | return actionStr; 24 | } 25 | 26 | function collectLabels(chunk: Chunk): Array { 27 | if (!isChunk(chunk)) { 28 | return []; 29 | } 30 | 31 | const labels = []; 32 | 33 | if (chunk.props.label) { 34 | labels.push(chunk.props.label); 35 | } 36 | else { 37 | chunk.children.forEach(child => { 38 | labels.push(...collectLabels(child as Chunk)); 39 | }); 40 | } 41 | 42 | return labels; 43 | } 44 | 45 | -------------------------------------------------------------------------------- /src/translator/built-in/repeat.ts: -------------------------------------------------------------------------------- 1 | import { Translator } from "../common/base"; 2 | import { Chunk } from "../../chunk/chunk"; 3 | import { translateChildren } from "../common/pattern"; 4 | 5 | export class RepeatTranslator extends Translator { 6 | translate(chunk: Chunk, actions: Map) { 7 | const expression = translateChildren(chunk, actions).join(" "); 8 | const repeatType = chunk.props.type; 9 | const pattern = `(${expression})${repeatType}`; 10 | return pattern; 11 | } 12 | } -------------------------------------------------------------------------------- /src/translator/built-in/set.ts: -------------------------------------------------------------------------------- 1 | import { Translator } from "../common/base"; 2 | import { Chunk } from "../../chunk/chunk"; 3 | 4 | export class SetTranslator extends Translator { 5 | translate(chunk: Chunk) { 6 | const pattern = `[${chunk.children.join("")}]`; 7 | return pattern; 8 | } 9 | } -------------------------------------------------------------------------------- /src/translator/built-in/text.ts: -------------------------------------------------------------------------------- 1 | import { Translator } from "../common/base"; 2 | import { Chunk } from "../../chunk/chunk"; 3 | 4 | export class TextTranslator extends Translator { 5 | translate(chunk: Chunk) { 6 | const text = chunk.children.join(""); 7 | const pattern = `'${text}'`; 8 | return pattern; 9 | } 10 | } -------------------------------------------------------------------------------- /src/translator/common/base.ts: -------------------------------------------------------------------------------- 1 | import { Chunk } from "../../chunk/chunk"; 2 | 3 | export abstract class Translator { 4 | abstract translate(chunk: Chunk, actions: Map): string; 5 | } -------------------------------------------------------------------------------- /src/translator/common/pattern.ts: -------------------------------------------------------------------------------- 1 | import { Chunk } from "../../chunk/chunk"; 2 | import { TranslatorTable } from "./translator-table"; 3 | 4 | export function translate(chunk: Chunk, actions: Map = new Map()) { 5 | const label = chunk.props.label ? `${chunk.props.label}: ` : ""; 6 | let pattern = "__undefined__"; 7 | 8 | if (chunk.tagName) { 9 | const key = chunk.tagName; 10 | const Translator = TranslatorTable[key]; 11 | pattern = new Translator().translate(chunk, actions); 12 | } 13 | else { 14 | pattern = chunk.rule.name; 15 | } 16 | 17 | return `${label}${pattern}`; 18 | } 19 | 20 | export function translateChildren(chunk: Chunk, actions: Map) { 21 | return (chunk.children as Array).map(child => translate(child, actions)); 22 | } -------------------------------------------------------------------------------- /src/translator/common/translator-table.ts: -------------------------------------------------------------------------------- 1 | import { TextTranslator } from "../built-in/text"; 2 | import { RuleTranslator } from "../rule/rule"; 3 | import { OrTranslator } from "../built-in/or"; 4 | import { ListTranslator } from "../built-in/list"; 5 | import { RepeatTranslator } from "../built-in/repeat"; 6 | import { OptionalTranslator } from "../built-in/opt"; 7 | import { AssertTranslator } from "../built-in/assert"; 8 | import { SetTranslator } from "../built-in/set"; 9 | import { PatternTranslator } from "../built-in/pattern"; 10 | import { AnyCharacterTranslator } from "../built-in/any"; 11 | 12 | export const TranslatorTable = 13 | { 14 | "rule": RuleTranslator, 15 | "list": ListTranslator, 16 | "repeat": RepeatTranslator, 17 | "set": SetTranslator, 18 | "opt": OptionalTranslator, 19 | "assert": AssertTranslator, 20 | "text": TextTranslator, 21 | "or": OrTranslator, 22 | "pattern": PatternTranslator, 23 | "any": AnyCharacterTranslator 24 | } -------------------------------------------------------------------------------- /src/translator/common/type.ts: -------------------------------------------------------------------------------- 1 | import { RepeatType, AssertType } from "../../chunk/chunk"; 2 | 3 | export interface BuiltInRule { 4 | label?: string; 5 | } 6 | 7 | export interface TextRule extends BuiltInRule { 8 | children?: string; 9 | } 10 | 11 | export interface AnyCharacterRule extends BuiltInRule { 12 | 13 | } 14 | 15 | export interface OrRule extends BuiltInRule { 16 | children: Array; 17 | } 18 | 19 | export interface ListRule extends BuiltInRule { 20 | children: JSX.Element | Array; 21 | } 22 | 23 | export interface RepeatRule extends BuiltInRule { 24 | children: JSX.Element | Array; 25 | type: RepeatType; 26 | } 27 | 28 | export interface SetRule extends BuiltInRule { 29 | children: string; 30 | } 31 | 32 | export interface OptionalRule extends BuiltInRule { 33 | children: JSX.Element | Array; 34 | } 35 | 36 | export interface AssertRule extends BuiltInRule { 37 | children: JSX.Element; 38 | type: AssertType; 39 | } 40 | 41 | export interface PatternRule extends BuiltInRule { 42 | children: JSX.Element | Array; 43 | action: Function; 44 | } -------------------------------------------------------------------------------- /src/translator/rule/__snapshots__/rule.test.tsx.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`translator.rule 1`] = `"Test \\"Test\\" = 'abc'"`; 4 | 5 | exports[`translator.rule.label 1`] = `"Test \\"Test\\" = l: (a: (c: 'a' / t: 'b'))+"`; 6 | 7 | exports[`translator.rule.pattern 1`] = `"Test \\"Test\\" = Foo"`; 8 | 9 | exports[`translator.rule.props 1`] = ` 10 | "Char \\"Char\\" = ([A-Z] { 11 | return actions.get(\\"action0\\")({globalFunction,globalContext}); 12 | })" 13 | `; 14 | 15 | exports[`translator.rule.props 2`] = ` 16 | "Char \\"Char\\" = ([a-z] { 17 | return actions.get(\\"action0\\")({globalFunction,globalContext}); 18 | })" 19 | `; 20 | -------------------------------------------------------------------------------- /src/translator/rule/rule.test.tsx: -------------------------------------------------------------------------------- 1 | import { ReactPeg } from "../../index"; 2 | import { RuleTranslator } from "./rule"; 3 | 4 | test("translator.rule", () => { 5 | function Test() { 6 | return ( 7 | abc 8 | ) 9 | } 10 | const chunk = ; 11 | const rule = new RuleTranslator().translate(chunk); 12 | expect(rule).toMatchSnapshot(); 13 | }) 14 | 15 | 16 | test("translator.rule.label", () => { 17 | function Test() { 18 | return ( 19 | 20 | 21 | a 22 | b 23 | 24 | 25 | ); 26 | } 27 | 28 | const chunk = ; 29 | const rule = new RuleTranslator().translate(chunk); 30 | expect(rule).toMatchSnapshot(); 31 | }) 32 | 33 | test("translator.rule.pattern", () => { 34 | 35 | function Foo() { 36 | return ( 37 | hi 38 | ); 39 | } 40 | 41 | function Test() { 42 | return ( 43 | 44 | 45 | 46 | ); 47 | } 48 | 49 | const chunk = ; 50 | const rule = new RuleTranslator().translate(chunk); 51 | expect(rule).toMatchSnapshot(); 52 | 53 | }) 54 | 55 | interface ICharProps { 56 | uppercase?: boolean 57 | } 58 | export function Char(props: ICharProps) { 59 | const { uppercase = false } = props; 60 | 61 | return ( 62 | globalFunction.text()}> 63 | {`${uppercase ? "a-z" : "A-Z"}`} 64 | 65 | ) 66 | } 67 | 68 | test("translator.rule.props", () => { 69 | { 70 | const chunk = ; 71 | const rule = new RuleTranslator().translate(chunk); 72 | expect(rule).toMatchSnapshot(); 73 | } 74 | { 75 | const chunk = ; 76 | const rule = new RuleTranslator().translate(chunk); 77 | expect(rule).toMatchSnapshot(); 78 | } 79 | }) -------------------------------------------------------------------------------- /src/translator/rule/rule.ts: -------------------------------------------------------------------------------- 1 | import { Translator } from "../common/base"; 2 | import { Chunk } from "../../chunk/chunk"; 3 | import { translate } from "../common/pattern"; 4 | 5 | export class RuleTranslator extends Translator { 6 | cache: { name: string, chunkOutput: Chunk, rule: Function }; 7 | 8 | constructor() { 9 | super(); 10 | this.cache = { name: "__undefined__", chunkOutput: null, rule: null }; 11 | } 12 | 13 | translate(chunkInput: Chunk, actions: Map = new Map()) { 14 | // 15 | const name = chunkInput.rule.name; 16 | const chunkOutput = Reflect.apply(chunkInput.rule, null, [chunkInput.props]); 17 | const pattern = translate(chunkOutput, actions); 18 | 19 | // 20 | this.cache.name = name; 21 | this.cache.chunkOutput = chunkOutput; 22 | this.cache.rule = chunkInput.rule; 23 | 24 | // 25 | const rule = `${name} "${name}" = ${pattern}`; 26 | return rule; 27 | } 28 | } -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "jsx": "react", 4 | "jsxFactory": "ReactPeg.createChunk", 5 | "target": "es6", 6 | "lib": [ 7 | "es2019" 8 | ], 9 | "sourceMap": false, 10 | "outDir": "./build", 11 | "types": ["jest"], 12 | "declaration": true, 13 | "module": "commonjs" 14 | }, 15 | "include": [ 16 | "src/**/*" 17 | ], 18 | "exclude": [ 19 | "src/**/*.test.tsx", 20 | "node_modules" 21 | ] 22 | } --------------------------------------------------------------------------------