├── .github └── workflows │ └── node.js.yml ├── .gitignore ├── LICENSE ├── README.md ├── index.d.ts ├── index.test-d.ts ├── package-lock.json ├── package.json └── tsconfig.json /.github/workflows/node.js.yml: -------------------------------------------------------------------------------- 1 | # This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node 2 | # For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions 3 | 4 | name: Node.js CI 5 | 6 | on: 7 | push: 8 | branches: [ main ] 9 | pull_request: 10 | branches: [ main ] 11 | 12 | jobs: 13 | build: 14 | 15 | runs-on: ubuntu-latest 16 | 17 | strategy: 18 | matrix: 19 | node-version: [15.x] 20 | # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ 21 | 22 | steps: 23 | - uses: actions/checkout@v2 24 | - name: Use Node.js ${{ matrix.node-version }} 25 | uses: actions/setup-node@v1 26 | with: 27 | node-version: ${{ matrix.node-version }} 28 | - run: npm ci 29 | - run: npm test 30 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | lerna-debug.log* 8 | 9 | # Diagnostic reports (https://nodejs.org/api/report.html) 10 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 11 | 12 | # Runtime data 13 | pids 14 | *.pid 15 | *.seed 16 | *.pid.lock 17 | 18 | # Directory for instrumented libs generated by jscoverage/JSCover 19 | lib-cov 20 | 21 | # Coverage directory used by tools like istanbul 22 | coverage 23 | *.lcov 24 | 25 | # nyc test coverage 26 | .nyc_output 27 | 28 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 29 | .grunt 30 | 31 | # Bower dependency directory (https://bower.io/) 32 | bower_components 33 | 34 | # node-waf configuration 35 | .lock-wscript 36 | 37 | # Compiled binary addons (https://nodejs.org/api/addons.html) 38 | build/Release 39 | 40 | # Dependency directories 41 | node_modules/ 42 | jspm_packages/ 43 | 44 | # TypeScript v1 declaration files 45 | typings/ 46 | 47 | # TypeScript cache 48 | *.tsbuildinfo 49 | 50 | # Optional npm cache directory 51 | .npm 52 | 53 | # Optional eslint cache 54 | .eslintcache 55 | 56 | # Microbundle cache 57 | .rpt2_cache/ 58 | .rts2_cache_cjs/ 59 | .rts2_cache_es/ 60 | .rts2_cache_umd/ 61 | 62 | # Optional REPL history 63 | .node_repl_history 64 | 65 | # Output of 'npm pack' 66 | *.tgz 67 | 68 | # Yarn Integrity file 69 | .yarn-integrity 70 | 71 | # dotenv environment variables file 72 | .env 73 | .env.test 74 | 75 | # parcel-bundler cache (https://parceljs.org/) 76 | .cache 77 | 78 | # Next.js build output 79 | .next 80 | 81 | # Nuxt.js build / generate output 82 | .nuxt 83 | dist 84 | 85 | # Gatsby files 86 | .cache/ 87 | # Comment in the public line in if your project uses Gatsby and *not* Next.js 88 | # https://nextjs.org/blog/next-9-1#public-directory-support 89 | # public 90 | 91 | # vuepress build output 92 | .vuepress/dist 93 | 94 | # Serverless directories 95 | .serverless/ 96 | 97 | # FuseBox cache 98 | .fusebox/ 99 | 100 | # DynamoDB Local files 101 | .dynamodb/ 102 | 103 | # TernJS port file 104 | .tern-port 105 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Pouja 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 | # Type safe paths 2 | Collections of generics to make deep nested string paths type safe. 3 | 4 | ## ResolveType 5 | It accepts 3 arguments: 6 | 1. The object type 7 | 2. The string path 8 | 3. The type to return if it fails to resolve 9 | 10 | ### Usage 11 | For example you can augment the lodash `get`: 12 | ```typescript 13 | import { get as _get } from 'lodash'; 14 | 15 | function get(obj:ObjecType, path: Path, orElse?: OrElse): ResolveType { 16 | return _get(obj, path, orElse); 17 | } 18 | 19 | get(obj,'deeplvl1[1].deeplvl2.deeplvl3[88].deeplvl4.value'); 20 | ``` 21 | 22 | Or for `react-final-form`: 23 | 24 | ```typescript 25 | // file: form-value-hook.tsx 26 | export function useFormValue(field: Path): ResolveType { 27 | const fieldInput = useField(field, { 28 | subscription: { 29 | value: true 30 | } 31 | }); 32 | return fieldInput.input.value; 33 | } 34 | 35 | // file: comp.tsx 36 | export default function NestComponent() { 37 | const price = useFormValue('customers[3].contract.price'); 38 | return (
{price}
); 39 | } 40 | ``` 41 | -------------------------------------------------------------------------------- /index.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * It tries to resolve the path of the given object, otherwise it will return OrElse 3 | */ 4 | export type ResolveType = 5 | Path extends keyof ObjectType ? ObjectType[Path] : 6 | Path extends `${infer LeftSide}.${infer RightSide}` ? LeftSide extends keyof ObjectType ? ResolveType : 7 | Path extends `${infer LeftSide}[${number}].${infer RightSide}` ? LeftSide extends keyof ObjectType ? ObjectType[LeftSide] extends Array? ResolveType : OrElse : OrElse : OrElse : 8 | Path extends `${infer LeftSide}[${number}]` ? LeftSide extends keyof ObjectType ? ObjectType[LeftSide] extends Array ? U : OrElse : OrElse : OrElse; 9 | -------------------------------------------------------------------------------- /index.test-d.ts: -------------------------------------------------------------------------------- 1 | import { ResolveType } from '.'; 2 | import { get as _get } from 'lodash'; 3 | import {expectType} from 'tsd'; 4 | 5 | interface TestClass { 6 | normal: string; 7 | nested: { 8 | a: number; 9 | b: { 10 | c: boolean 11 | } 12 | }; 13 | arr: number[]; 14 | nestedArr: { 15 | sum: number; 16 | other: null; 17 | }[]; 18 | deep: { 19 | arr: string[]; 20 | }, 21 | deeplvl1: { 22 | deeplvl2: { 23 | deeplvl3: { 24 | deeplvl4: { 25 | value: RegExp; 26 | } 27 | }[] 28 | } 29 | }[] 30 | } 31 | 32 | function get(obj:ObjecType, path: Path, orElse?: OrElse): ResolveType { 33 | return _get(obj, path, orElse); 34 | } 35 | 36 | const obj = {} as TestClass; 37 | 38 | expectType(get(obj, 'nested.a', null)); 39 | expectType(get(obj, 'normal', null)); 40 | expectType(get(obj,'nested.a')); 41 | expectType(get(obj,'nested.b.c')); 42 | expectType(get(obj,'arr')); 43 | expectType(get(obj,'arr[13]')); 44 | expectType(get(obj,'nestedArr[3].other')); 45 | expectType(get(obj,'deep.deep')); 46 | expectType(get(obj,'deep.arr[333]')); 47 | expectType(get(obj,'deep.arr[333].length')); 48 | expectType(get(obj,'nested["b"]["c"]')); 49 | expectType(get(obj,'')); 50 | expectType(get(obj,'', 3)); 51 | expectType(get(obj,'nested.asdfasdf')); 52 | expectType(get(obj,'deeplvl1[1].deeplvl2.deeplvl3[88].deeplvl4.value')); 53 | expectType(get(obj,'deeplvl1[1].deeplvl2.deeplvl1[88].deeplvl4.value')); 54 | expectType(get(obj,'deeplvl1[1].deeplvl2.deeplvl1[88].deeplvl4.value', obj)); 55 | expectType(get(obj,'nested["dd"]', '')); 56 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "typescript-deep-path-safe", 3 | "version": "1.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@babel/code-frame": { 8 | "version": "7.12.13", 9 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", 10 | "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", 11 | "dev": true, 12 | "requires": { 13 | "@babel/highlight": "^7.12.13" 14 | } 15 | }, 16 | "@babel/helper-validator-identifier": { 17 | "version": "7.12.11", 18 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", 19 | "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", 20 | "dev": true 21 | }, 22 | "@babel/highlight": { 23 | "version": "7.13.10", 24 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz", 25 | "integrity": "sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==", 26 | "dev": true, 27 | "requires": { 28 | "@babel/helper-validator-identifier": "^7.12.11", 29 | "chalk": "^2.0.0", 30 | "js-tokens": "^4.0.0" 31 | }, 32 | "dependencies": { 33 | "ansi-styles": { 34 | "version": "3.2.1", 35 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 36 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 37 | "dev": true, 38 | "requires": { 39 | "color-convert": "^1.9.0" 40 | } 41 | }, 42 | "chalk": { 43 | "version": "2.4.2", 44 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 45 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 46 | "dev": true, 47 | "requires": { 48 | "ansi-styles": "^3.2.1", 49 | "escape-string-regexp": "^1.0.5", 50 | "supports-color": "^5.3.0" 51 | } 52 | }, 53 | "color-convert": { 54 | "version": "1.9.3", 55 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 56 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 57 | "dev": true, 58 | "requires": { 59 | "color-name": "1.1.3" 60 | } 61 | }, 62 | "color-name": { 63 | "version": "1.1.3", 64 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 65 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", 66 | "dev": true 67 | }, 68 | "has-flag": { 69 | "version": "3.0.0", 70 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 71 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", 72 | "dev": true 73 | }, 74 | "supports-color": { 75 | "version": "5.5.0", 76 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 77 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 78 | "dev": true, 79 | "requires": { 80 | "has-flag": "^3.0.0" 81 | } 82 | } 83 | } 84 | }, 85 | "@nodelib/fs.scandir": { 86 | "version": "2.1.4", 87 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", 88 | "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", 89 | "dev": true, 90 | "requires": { 91 | "@nodelib/fs.stat": "2.0.4", 92 | "run-parallel": "^1.1.9" 93 | } 94 | }, 95 | "@nodelib/fs.stat": { 96 | "version": "2.0.4", 97 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", 98 | "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==", 99 | "dev": true 100 | }, 101 | "@nodelib/fs.walk": { 102 | "version": "1.2.6", 103 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", 104 | "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", 105 | "dev": true, 106 | "requires": { 107 | "@nodelib/fs.scandir": "2.1.4", 108 | "fastq": "^1.6.0" 109 | } 110 | }, 111 | "@sindresorhus/is": { 112 | "version": "0.14.0", 113 | "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", 114 | "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", 115 | "dev": true 116 | }, 117 | "@szmarczak/http-timer": { 118 | "version": "1.1.2", 119 | "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", 120 | "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", 121 | "dev": true, 122 | "requires": { 123 | "defer-to-connect": "^1.0.1" 124 | } 125 | }, 126 | "@types/lodash": { 127 | "version": "4.14.168", 128 | "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.168.tgz", 129 | "integrity": "sha512-oVfRvqHV/V6D1yifJbVRU3TMp8OT6o6BG+U9MkwuJ3U8/CsDHvalRpsxBqivn71ztOFZBTfJMvETbqHiaNSj7Q==", 130 | "dev": true 131 | }, 132 | "@types/minimist": { 133 | "version": "1.2.1", 134 | "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.1.tgz", 135 | "integrity": "sha512-fZQQafSREFyuZcdWFAExYjBiCL7AUCdgsk80iO0q4yihYYdcIiH28CcuPTGFgLOCC8RlW49GSQxdHwZP+I7CNg==", 136 | "dev": true 137 | }, 138 | "@types/normalize-package-data": { 139 | "version": "2.4.0", 140 | "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", 141 | "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", 142 | "dev": true 143 | }, 144 | "ansi-align": { 145 | "version": "3.0.0", 146 | "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", 147 | "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", 148 | "dev": true, 149 | "requires": { 150 | "string-width": "^3.0.0" 151 | }, 152 | "dependencies": { 153 | "ansi-regex": { 154 | "version": "4.1.0", 155 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", 156 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", 157 | "dev": true 158 | }, 159 | "emoji-regex": { 160 | "version": "7.0.3", 161 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", 162 | "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", 163 | "dev": true 164 | }, 165 | "is-fullwidth-code-point": { 166 | "version": "2.0.0", 167 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 168 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", 169 | "dev": true 170 | }, 171 | "string-width": { 172 | "version": "3.1.0", 173 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", 174 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", 175 | "dev": true, 176 | "requires": { 177 | "emoji-regex": "^7.0.1", 178 | "is-fullwidth-code-point": "^2.0.0", 179 | "strip-ansi": "^5.1.0" 180 | } 181 | }, 182 | "strip-ansi": { 183 | "version": "5.2.0", 184 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", 185 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", 186 | "dev": true, 187 | "requires": { 188 | "ansi-regex": "^4.1.0" 189 | } 190 | } 191 | } 192 | }, 193 | "ansi-escapes": { 194 | "version": "4.3.2", 195 | "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", 196 | "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", 197 | "dev": true, 198 | "requires": { 199 | "type-fest": "^0.21.3" 200 | } 201 | }, 202 | "ansi-regex": { 203 | "version": "5.0.0", 204 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", 205 | "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", 206 | "dev": true 207 | }, 208 | "ansi-styles": { 209 | "version": "4.3.0", 210 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 211 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 212 | "dev": true, 213 | "requires": { 214 | "color-convert": "^2.0.1" 215 | } 216 | }, 217 | "array-union": { 218 | "version": "2.1.0", 219 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", 220 | "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", 221 | "dev": true 222 | }, 223 | "arrify": { 224 | "version": "1.0.1", 225 | "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", 226 | "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", 227 | "dev": true 228 | }, 229 | "boxen": { 230 | "version": "4.2.0", 231 | "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", 232 | "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", 233 | "dev": true, 234 | "requires": { 235 | "ansi-align": "^3.0.0", 236 | "camelcase": "^5.3.1", 237 | "chalk": "^3.0.0", 238 | "cli-boxes": "^2.2.0", 239 | "string-width": "^4.1.0", 240 | "term-size": "^2.1.0", 241 | "type-fest": "^0.8.1", 242 | "widest-line": "^3.1.0" 243 | }, 244 | "dependencies": { 245 | "chalk": { 246 | "version": "3.0.0", 247 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", 248 | "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", 249 | "dev": true, 250 | "requires": { 251 | "ansi-styles": "^4.1.0", 252 | "supports-color": "^7.1.0" 253 | } 254 | }, 255 | "type-fest": { 256 | "version": "0.8.1", 257 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", 258 | "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", 259 | "dev": true 260 | } 261 | } 262 | }, 263 | "braces": { 264 | "version": "3.0.2", 265 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", 266 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", 267 | "dev": true, 268 | "requires": { 269 | "fill-range": "^7.0.1" 270 | } 271 | }, 272 | "cacheable-request": { 273 | "version": "6.1.0", 274 | "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", 275 | "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", 276 | "dev": true, 277 | "requires": { 278 | "clone-response": "^1.0.2", 279 | "get-stream": "^5.1.0", 280 | "http-cache-semantics": "^4.0.0", 281 | "keyv": "^3.0.0", 282 | "lowercase-keys": "^2.0.0", 283 | "normalize-url": "^4.1.0", 284 | "responselike": "^1.0.2" 285 | }, 286 | "dependencies": { 287 | "get-stream": { 288 | "version": "5.2.0", 289 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", 290 | "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", 291 | "dev": true, 292 | "requires": { 293 | "pump": "^3.0.0" 294 | } 295 | }, 296 | "lowercase-keys": { 297 | "version": "2.0.0", 298 | "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", 299 | "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", 300 | "dev": true 301 | } 302 | } 303 | }, 304 | "camelcase": { 305 | "version": "5.3.1", 306 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", 307 | "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", 308 | "dev": true 309 | }, 310 | "camelcase-keys": { 311 | "version": "6.2.2", 312 | "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", 313 | "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", 314 | "dev": true, 315 | "requires": { 316 | "camelcase": "^5.3.1", 317 | "map-obj": "^4.0.0", 318 | "quick-lru": "^4.0.1" 319 | } 320 | }, 321 | "chalk": { 322 | "version": "4.1.0", 323 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", 324 | "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", 325 | "dev": true, 326 | "requires": { 327 | "ansi-styles": "^4.1.0", 328 | "supports-color": "^7.1.0" 329 | } 330 | }, 331 | "ci-info": { 332 | "version": "2.0.0", 333 | "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", 334 | "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", 335 | "dev": true 336 | }, 337 | "cli-boxes": { 338 | "version": "2.2.1", 339 | "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", 340 | "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", 341 | "dev": true 342 | }, 343 | "clone-response": { 344 | "version": "1.0.2", 345 | "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", 346 | "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", 347 | "dev": true, 348 | "requires": { 349 | "mimic-response": "^1.0.0" 350 | } 351 | }, 352 | "color-convert": { 353 | "version": "2.0.1", 354 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 355 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 356 | "dev": true, 357 | "requires": { 358 | "color-name": "~1.1.4" 359 | } 360 | }, 361 | "color-name": { 362 | "version": "1.1.4", 363 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 364 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 365 | "dev": true 366 | }, 367 | "configstore": { 368 | "version": "5.0.1", 369 | "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", 370 | "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", 371 | "dev": true, 372 | "requires": { 373 | "dot-prop": "^5.2.0", 374 | "graceful-fs": "^4.1.2", 375 | "make-dir": "^3.0.0", 376 | "unique-string": "^2.0.0", 377 | "write-file-atomic": "^3.0.0", 378 | "xdg-basedir": "^4.0.0" 379 | } 380 | }, 381 | "crypto-random-string": { 382 | "version": "2.0.0", 383 | "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", 384 | "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", 385 | "dev": true 386 | }, 387 | "decamelize": { 388 | "version": "1.2.0", 389 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", 390 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", 391 | "dev": true 392 | }, 393 | "decamelize-keys": { 394 | "version": "1.1.0", 395 | "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", 396 | "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", 397 | "dev": true, 398 | "requires": { 399 | "decamelize": "^1.1.0", 400 | "map-obj": "^1.0.0" 401 | }, 402 | "dependencies": { 403 | "map-obj": { 404 | "version": "1.0.1", 405 | "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", 406 | "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", 407 | "dev": true 408 | } 409 | } 410 | }, 411 | "decompress-response": { 412 | "version": "3.3.0", 413 | "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", 414 | "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", 415 | "dev": true, 416 | "requires": { 417 | "mimic-response": "^1.0.0" 418 | } 419 | }, 420 | "deep-extend": { 421 | "version": "0.6.0", 422 | "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", 423 | "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", 424 | "dev": true 425 | }, 426 | "defer-to-connect": { 427 | "version": "1.1.3", 428 | "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", 429 | "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", 430 | "dev": true 431 | }, 432 | "dir-glob": { 433 | "version": "3.0.1", 434 | "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", 435 | "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", 436 | "dev": true, 437 | "requires": { 438 | "path-type": "^4.0.0" 439 | } 440 | }, 441 | "dot-prop": { 442 | "version": "5.3.0", 443 | "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", 444 | "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", 445 | "dev": true, 446 | "requires": { 447 | "is-obj": "^2.0.0" 448 | } 449 | }, 450 | "duplexer3": { 451 | "version": "0.1.4", 452 | "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", 453 | "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", 454 | "dev": true 455 | }, 456 | "emoji-regex": { 457 | "version": "8.0.0", 458 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 459 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", 460 | "dev": true 461 | }, 462 | "end-of-stream": { 463 | "version": "1.4.4", 464 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", 465 | "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", 466 | "dev": true, 467 | "requires": { 468 | "once": "^1.4.0" 469 | } 470 | }, 471 | "error-ex": { 472 | "version": "1.3.2", 473 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", 474 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", 475 | "dev": true, 476 | "requires": { 477 | "is-arrayish": "^0.2.1" 478 | } 479 | }, 480 | "escape-goat": { 481 | "version": "2.1.1", 482 | "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", 483 | "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", 484 | "dev": true 485 | }, 486 | "escape-string-regexp": { 487 | "version": "1.0.5", 488 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 489 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 490 | "dev": true 491 | }, 492 | "eslint-formatter-pretty": { 493 | "version": "4.0.0", 494 | "resolved": "https://registry.npmjs.org/eslint-formatter-pretty/-/eslint-formatter-pretty-4.0.0.tgz", 495 | "integrity": "sha512-QgdeZxQwWcN0TcXXNZJiS6BizhAANFhCzkE7Yl9HKB7WjElzwED6+FbbZB2gji8ofgJTGPqKm6VRCNT3OGCeEw==", 496 | "dev": true, 497 | "requires": { 498 | "ansi-escapes": "^4.2.1", 499 | "chalk": "^4.1.0", 500 | "eslint-rule-docs": "^1.1.5", 501 | "log-symbols": "^4.0.0", 502 | "plur": "^4.0.0", 503 | "string-width": "^4.2.0", 504 | "supports-hyperlinks": "^2.0.0" 505 | } 506 | }, 507 | "eslint-rule-docs": { 508 | "version": "1.1.223", 509 | "resolved": "https://registry.npmjs.org/eslint-rule-docs/-/eslint-rule-docs-1.1.223.tgz", 510 | "integrity": "sha512-6HU1vH6b3QBI2RiFyNE1cQWr2pQ+op1zqZRsVXBZsLngF5ePBGDbkwFtr1Ye4Yq1DBKc499TMEkIzx25xVetuw==", 511 | "dev": true 512 | }, 513 | "fast-glob": { 514 | "version": "3.2.5", 515 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", 516 | "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", 517 | "dev": true, 518 | "requires": { 519 | "@nodelib/fs.stat": "^2.0.2", 520 | "@nodelib/fs.walk": "^1.2.3", 521 | "glob-parent": "^5.1.0", 522 | "merge2": "^1.3.0", 523 | "micromatch": "^4.0.2", 524 | "picomatch": "^2.2.1" 525 | } 526 | }, 527 | "fastq": { 528 | "version": "1.11.0", 529 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz", 530 | "integrity": "sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==", 531 | "dev": true, 532 | "requires": { 533 | "reusify": "^1.0.4" 534 | } 535 | }, 536 | "fill-range": { 537 | "version": "7.0.1", 538 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", 539 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", 540 | "dev": true, 541 | "requires": { 542 | "to-regex-range": "^5.0.1" 543 | } 544 | }, 545 | "find-up": { 546 | "version": "4.1.0", 547 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", 548 | "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", 549 | "dev": true, 550 | "requires": { 551 | "locate-path": "^5.0.0", 552 | "path-exists": "^4.0.0" 553 | } 554 | }, 555 | "function-bind": { 556 | "version": "1.1.1", 557 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 558 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 559 | "dev": true 560 | }, 561 | "get-stream": { 562 | "version": "4.1.0", 563 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", 564 | "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", 565 | "dev": true, 566 | "requires": { 567 | "pump": "^3.0.0" 568 | } 569 | }, 570 | "glob-parent": { 571 | "version": "5.1.2", 572 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 573 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 574 | "dev": true, 575 | "requires": { 576 | "is-glob": "^4.0.1" 577 | } 578 | }, 579 | "global-dirs": { 580 | "version": "2.1.0", 581 | "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", 582 | "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==", 583 | "dev": true, 584 | "requires": { 585 | "ini": "1.3.7" 586 | } 587 | }, 588 | "globby": { 589 | "version": "11.0.3", 590 | "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.3.tgz", 591 | "integrity": "sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==", 592 | "dev": true, 593 | "requires": { 594 | "array-union": "^2.1.0", 595 | "dir-glob": "^3.0.1", 596 | "fast-glob": "^3.1.1", 597 | "ignore": "^5.1.4", 598 | "merge2": "^1.3.0", 599 | "slash": "^3.0.0" 600 | } 601 | }, 602 | "got": { 603 | "version": "9.6.0", 604 | "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", 605 | "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", 606 | "dev": true, 607 | "requires": { 608 | "@sindresorhus/is": "^0.14.0", 609 | "@szmarczak/http-timer": "^1.1.2", 610 | "cacheable-request": "^6.0.0", 611 | "decompress-response": "^3.3.0", 612 | "duplexer3": "^0.1.4", 613 | "get-stream": "^4.1.0", 614 | "lowercase-keys": "^1.0.1", 615 | "mimic-response": "^1.0.1", 616 | "p-cancelable": "^1.0.0", 617 | "to-readable-stream": "^1.0.0", 618 | "url-parse-lax": "^3.0.0" 619 | } 620 | }, 621 | "graceful-fs": { 622 | "version": "4.2.6", 623 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", 624 | "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", 625 | "dev": true 626 | }, 627 | "hard-rejection": { 628 | "version": "2.1.0", 629 | "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", 630 | "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", 631 | "dev": true 632 | }, 633 | "has": { 634 | "version": "1.0.3", 635 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 636 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 637 | "dev": true, 638 | "requires": { 639 | "function-bind": "^1.1.1" 640 | } 641 | }, 642 | "has-flag": { 643 | "version": "4.0.0", 644 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 645 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 646 | "dev": true 647 | }, 648 | "has-yarn": { 649 | "version": "2.1.0", 650 | "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", 651 | "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", 652 | "dev": true 653 | }, 654 | "hosted-git-info": { 655 | "version": "2.8.8", 656 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", 657 | "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", 658 | "dev": true 659 | }, 660 | "http-cache-semantics": { 661 | "version": "4.1.0", 662 | "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", 663 | "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", 664 | "dev": true 665 | }, 666 | "ignore": { 667 | "version": "5.1.8", 668 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", 669 | "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", 670 | "dev": true 671 | }, 672 | "import-lazy": { 673 | "version": "2.1.0", 674 | "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", 675 | "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", 676 | "dev": true 677 | }, 678 | "imurmurhash": { 679 | "version": "0.1.4", 680 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 681 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", 682 | "dev": true 683 | }, 684 | "indent-string": { 685 | "version": "4.0.0", 686 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", 687 | "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", 688 | "dev": true 689 | }, 690 | "ini": { 691 | "version": "1.3.7", 692 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", 693 | "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", 694 | "dev": true 695 | }, 696 | "irregular-plurals": { 697 | "version": "3.2.0", 698 | "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-3.2.0.tgz", 699 | "integrity": "sha512-YqTdPLfwP7YFN0SsD3QUVCkm9ZG2VzOXv3DOrw5G5mkMbVwptTwVcFv7/C0vOpBmgTxAeTG19XpUs1E522LW9Q==", 700 | "dev": true 701 | }, 702 | "is-arrayish": { 703 | "version": "0.2.1", 704 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 705 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", 706 | "dev": true 707 | }, 708 | "is-ci": { 709 | "version": "2.0.0", 710 | "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", 711 | "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", 712 | "dev": true, 713 | "requires": { 714 | "ci-info": "^2.0.0" 715 | } 716 | }, 717 | "is-core-module": { 718 | "version": "2.2.0", 719 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", 720 | "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", 721 | "dev": true, 722 | "requires": { 723 | "has": "^1.0.3" 724 | } 725 | }, 726 | "is-extglob": { 727 | "version": "2.1.1", 728 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 729 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", 730 | "dev": true 731 | }, 732 | "is-fullwidth-code-point": { 733 | "version": "3.0.0", 734 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 735 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", 736 | "dev": true 737 | }, 738 | "is-glob": { 739 | "version": "4.0.1", 740 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", 741 | "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", 742 | "dev": true, 743 | "requires": { 744 | "is-extglob": "^2.1.1" 745 | } 746 | }, 747 | "is-installed-globally": { 748 | "version": "0.3.2", 749 | "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", 750 | "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", 751 | "dev": true, 752 | "requires": { 753 | "global-dirs": "^2.0.1", 754 | "is-path-inside": "^3.0.1" 755 | } 756 | }, 757 | "is-npm": { 758 | "version": "4.0.0", 759 | "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", 760 | "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==", 761 | "dev": true 762 | }, 763 | "is-number": { 764 | "version": "7.0.0", 765 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 766 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 767 | "dev": true 768 | }, 769 | "is-obj": { 770 | "version": "2.0.0", 771 | "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", 772 | "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", 773 | "dev": true 774 | }, 775 | "is-path-inside": { 776 | "version": "3.0.3", 777 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", 778 | "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", 779 | "dev": true 780 | }, 781 | "is-plain-obj": { 782 | "version": "1.1.0", 783 | "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", 784 | "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", 785 | "dev": true 786 | }, 787 | "is-typedarray": { 788 | "version": "1.0.0", 789 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", 790 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", 791 | "dev": true 792 | }, 793 | "is-unicode-supported": { 794 | "version": "0.1.0", 795 | "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", 796 | "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", 797 | "dev": true 798 | }, 799 | "is-yarn-global": { 800 | "version": "0.3.0", 801 | "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", 802 | "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", 803 | "dev": true 804 | }, 805 | "js-tokens": { 806 | "version": "4.0.0", 807 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 808 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", 809 | "dev": true 810 | }, 811 | "json-buffer": { 812 | "version": "3.0.0", 813 | "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", 814 | "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", 815 | "dev": true 816 | }, 817 | "json-parse-even-better-errors": { 818 | "version": "2.3.1", 819 | "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", 820 | "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", 821 | "dev": true 822 | }, 823 | "keyv": { 824 | "version": "3.1.0", 825 | "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", 826 | "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", 827 | "dev": true, 828 | "requires": { 829 | "json-buffer": "3.0.0" 830 | } 831 | }, 832 | "kind-of": { 833 | "version": "6.0.3", 834 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", 835 | "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", 836 | "dev": true 837 | }, 838 | "latest-version": { 839 | "version": "5.1.0", 840 | "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", 841 | "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", 842 | "dev": true, 843 | "requires": { 844 | "package-json": "^6.3.0" 845 | } 846 | }, 847 | "lines-and-columns": { 848 | "version": "1.1.6", 849 | "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", 850 | "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", 851 | "dev": true 852 | }, 853 | "locate-path": { 854 | "version": "5.0.0", 855 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", 856 | "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", 857 | "dev": true, 858 | "requires": { 859 | "p-locate": "^4.1.0" 860 | } 861 | }, 862 | "lodash": { 863 | "version": "4.17.21", 864 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", 865 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", 866 | "dev": true 867 | }, 868 | "log-symbols": { 869 | "version": "4.1.0", 870 | "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", 871 | "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", 872 | "dev": true, 873 | "requires": { 874 | "chalk": "^4.1.0", 875 | "is-unicode-supported": "^0.1.0" 876 | } 877 | }, 878 | "lowercase-keys": { 879 | "version": "1.0.1", 880 | "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", 881 | "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", 882 | "dev": true 883 | }, 884 | "make-dir": { 885 | "version": "3.1.0", 886 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", 887 | "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", 888 | "dev": true, 889 | "requires": { 890 | "semver": "^6.0.0" 891 | }, 892 | "dependencies": { 893 | "semver": { 894 | "version": "6.3.0", 895 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 896 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", 897 | "dev": true 898 | } 899 | } 900 | }, 901 | "map-obj": { 902 | "version": "4.2.0", 903 | "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.2.0.tgz", 904 | "integrity": "sha512-NAq0fCmZYGz9UFEQyndp7sisrow4GroyGeKluyKC/chuITZsPyOyC1UJZPJlVFImhXdROIP5xqouRLThT3BbpQ==", 905 | "dev": true 906 | }, 907 | "meow": { 908 | "version": "7.1.1", 909 | "resolved": "https://registry.npmjs.org/meow/-/meow-7.1.1.tgz", 910 | "integrity": "sha512-GWHvA5QOcS412WCo8vwKDlTelGLsCGBVevQB5Kva961rmNfun0PCbv5+xta2kUMFJyR8/oWnn7ddeKdosbAPbA==", 911 | "dev": true, 912 | "requires": { 913 | "@types/minimist": "^1.2.0", 914 | "camelcase-keys": "^6.2.2", 915 | "decamelize-keys": "^1.1.0", 916 | "hard-rejection": "^2.1.0", 917 | "minimist-options": "4.1.0", 918 | "normalize-package-data": "^2.5.0", 919 | "read-pkg-up": "^7.0.1", 920 | "redent": "^3.0.0", 921 | "trim-newlines": "^3.0.0", 922 | "type-fest": "^0.13.1", 923 | "yargs-parser": "^18.1.3" 924 | }, 925 | "dependencies": { 926 | "type-fest": { 927 | "version": "0.13.1", 928 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", 929 | "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", 930 | "dev": true 931 | } 932 | } 933 | }, 934 | "merge2": { 935 | "version": "1.4.1", 936 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", 937 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", 938 | "dev": true 939 | }, 940 | "micromatch": { 941 | "version": "4.0.2", 942 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", 943 | "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", 944 | "dev": true, 945 | "requires": { 946 | "braces": "^3.0.1", 947 | "picomatch": "^2.0.5" 948 | } 949 | }, 950 | "mimic-response": { 951 | "version": "1.0.1", 952 | "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", 953 | "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", 954 | "dev": true 955 | }, 956 | "min-indent": { 957 | "version": "1.0.1", 958 | "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", 959 | "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", 960 | "dev": true 961 | }, 962 | "minimist": { 963 | "version": "1.2.5", 964 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", 965 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", 966 | "dev": true 967 | }, 968 | "minimist-options": { 969 | "version": "4.1.0", 970 | "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", 971 | "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", 972 | "dev": true, 973 | "requires": { 974 | "arrify": "^1.0.1", 975 | "is-plain-obj": "^1.1.0", 976 | "kind-of": "^6.0.3" 977 | } 978 | }, 979 | "normalize-package-data": { 980 | "version": "2.5.0", 981 | "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", 982 | "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", 983 | "dev": true, 984 | "requires": { 985 | "hosted-git-info": "^2.1.4", 986 | "resolve": "^1.10.0", 987 | "semver": "2 || 3 || 4 || 5", 988 | "validate-npm-package-license": "^3.0.1" 989 | } 990 | }, 991 | "normalize-url": { 992 | "version": "4.5.0", 993 | "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", 994 | "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", 995 | "dev": true 996 | }, 997 | "once": { 998 | "version": "1.4.0", 999 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1000 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 1001 | "dev": true, 1002 | "requires": { 1003 | "wrappy": "1" 1004 | } 1005 | }, 1006 | "p-cancelable": { 1007 | "version": "1.1.0", 1008 | "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", 1009 | "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", 1010 | "dev": true 1011 | }, 1012 | "p-limit": { 1013 | "version": "2.3.0", 1014 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", 1015 | "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", 1016 | "dev": true, 1017 | "requires": { 1018 | "p-try": "^2.0.0" 1019 | } 1020 | }, 1021 | "p-locate": { 1022 | "version": "4.1.0", 1023 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", 1024 | "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", 1025 | "dev": true, 1026 | "requires": { 1027 | "p-limit": "^2.2.0" 1028 | } 1029 | }, 1030 | "p-try": { 1031 | "version": "2.2.0", 1032 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", 1033 | "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", 1034 | "dev": true 1035 | }, 1036 | "package-json": { 1037 | "version": "6.5.0", 1038 | "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", 1039 | "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", 1040 | "dev": true, 1041 | "requires": { 1042 | "got": "^9.6.0", 1043 | "registry-auth-token": "^4.0.0", 1044 | "registry-url": "^5.0.0", 1045 | "semver": "^6.2.0" 1046 | }, 1047 | "dependencies": { 1048 | "semver": { 1049 | "version": "6.3.0", 1050 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 1051 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", 1052 | "dev": true 1053 | } 1054 | } 1055 | }, 1056 | "parse-json": { 1057 | "version": "5.2.0", 1058 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", 1059 | "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", 1060 | "dev": true, 1061 | "requires": { 1062 | "@babel/code-frame": "^7.0.0", 1063 | "error-ex": "^1.3.1", 1064 | "json-parse-even-better-errors": "^2.3.0", 1065 | "lines-and-columns": "^1.1.6" 1066 | } 1067 | }, 1068 | "path-exists": { 1069 | "version": "4.0.0", 1070 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", 1071 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", 1072 | "dev": true 1073 | }, 1074 | "path-parse": { 1075 | "version": "1.0.6", 1076 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", 1077 | "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", 1078 | "dev": true 1079 | }, 1080 | "path-type": { 1081 | "version": "4.0.0", 1082 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", 1083 | "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", 1084 | "dev": true 1085 | }, 1086 | "picomatch": { 1087 | "version": "2.2.2", 1088 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", 1089 | "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", 1090 | "dev": true 1091 | }, 1092 | "plur": { 1093 | "version": "4.0.0", 1094 | "resolved": "https://registry.npmjs.org/plur/-/plur-4.0.0.tgz", 1095 | "integrity": "sha512-4UGewrYgqDFw9vV6zNV+ADmPAUAfJPKtGvb/VdpQAx25X5f3xXdGdyOEVFwkl8Hl/tl7+xbeHqSEM+D5/TirUg==", 1096 | "dev": true, 1097 | "requires": { 1098 | "irregular-plurals": "^3.2.0" 1099 | } 1100 | }, 1101 | "prepend-http": { 1102 | "version": "2.0.0", 1103 | "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", 1104 | "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", 1105 | "dev": true 1106 | }, 1107 | "pump": { 1108 | "version": "3.0.0", 1109 | "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", 1110 | "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", 1111 | "dev": true, 1112 | "requires": { 1113 | "end-of-stream": "^1.1.0", 1114 | "once": "^1.3.1" 1115 | } 1116 | }, 1117 | "pupa": { 1118 | "version": "2.1.1", 1119 | "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", 1120 | "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", 1121 | "dev": true, 1122 | "requires": { 1123 | "escape-goat": "^2.0.0" 1124 | } 1125 | }, 1126 | "queue-microtask": { 1127 | "version": "1.2.3", 1128 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", 1129 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", 1130 | "dev": true 1131 | }, 1132 | "quick-lru": { 1133 | "version": "4.0.1", 1134 | "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", 1135 | "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", 1136 | "dev": true 1137 | }, 1138 | "rc": { 1139 | "version": "1.2.8", 1140 | "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", 1141 | "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", 1142 | "dev": true, 1143 | "requires": { 1144 | "deep-extend": "^0.6.0", 1145 | "ini": "~1.3.0", 1146 | "minimist": "^1.2.0", 1147 | "strip-json-comments": "~2.0.1" 1148 | } 1149 | }, 1150 | "read-pkg": { 1151 | "version": "5.2.0", 1152 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", 1153 | "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", 1154 | "dev": true, 1155 | "requires": { 1156 | "@types/normalize-package-data": "^2.4.0", 1157 | "normalize-package-data": "^2.5.0", 1158 | "parse-json": "^5.0.0", 1159 | "type-fest": "^0.6.0" 1160 | }, 1161 | "dependencies": { 1162 | "type-fest": { 1163 | "version": "0.6.0", 1164 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", 1165 | "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", 1166 | "dev": true 1167 | } 1168 | } 1169 | }, 1170 | "read-pkg-up": { 1171 | "version": "7.0.1", 1172 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", 1173 | "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", 1174 | "dev": true, 1175 | "requires": { 1176 | "find-up": "^4.1.0", 1177 | "read-pkg": "^5.2.0", 1178 | "type-fest": "^0.8.1" 1179 | }, 1180 | "dependencies": { 1181 | "type-fest": { 1182 | "version": "0.8.1", 1183 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", 1184 | "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", 1185 | "dev": true 1186 | } 1187 | } 1188 | }, 1189 | "redent": { 1190 | "version": "3.0.0", 1191 | "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", 1192 | "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", 1193 | "dev": true, 1194 | "requires": { 1195 | "indent-string": "^4.0.0", 1196 | "strip-indent": "^3.0.0" 1197 | } 1198 | }, 1199 | "registry-auth-token": { 1200 | "version": "4.2.1", 1201 | "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", 1202 | "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", 1203 | "dev": true, 1204 | "requires": { 1205 | "rc": "^1.2.8" 1206 | } 1207 | }, 1208 | "registry-url": { 1209 | "version": "5.1.0", 1210 | "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", 1211 | "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", 1212 | "dev": true, 1213 | "requires": { 1214 | "rc": "^1.2.8" 1215 | } 1216 | }, 1217 | "resolve": { 1218 | "version": "1.20.0", 1219 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", 1220 | "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", 1221 | "dev": true, 1222 | "requires": { 1223 | "is-core-module": "^2.2.0", 1224 | "path-parse": "^1.0.6" 1225 | } 1226 | }, 1227 | "responselike": { 1228 | "version": "1.0.2", 1229 | "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", 1230 | "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", 1231 | "dev": true, 1232 | "requires": { 1233 | "lowercase-keys": "^1.0.0" 1234 | } 1235 | }, 1236 | "reusify": { 1237 | "version": "1.0.4", 1238 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", 1239 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", 1240 | "dev": true 1241 | }, 1242 | "run-parallel": { 1243 | "version": "1.2.0", 1244 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", 1245 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", 1246 | "dev": true, 1247 | "requires": { 1248 | "queue-microtask": "^1.2.2" 1249 | } 1250 | }, 1251 | "semver": { 1252 | "version": "5.7.1", 1253 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", 1254 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", 1255 | "dev": true 1256 | }, 1257 | "semver-diff": { 1258 | "version": "3.1.1", 1259 | "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", 1260 | "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", 1261 | "dev": true, 1262 | "requires": { 1263 | "semver": "^6.3.0" 1264 | }, 1265 | "dependencies": { 1266 | "semver": { 1267 | "version": "6.3.0", 1268 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 1269 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", 1270 | "dev": true 1271 | } 1272 | } 1273 | }, 1274 | "signal-exit": { 1275 | "version": "3.0.3", 1276 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", 1277 | "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", 1278 | "dev": true 1279 | }, 1280 | "slash": { 1281 | "version": "3.0.0", 1282 | "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", 1283 | "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", 1284 | "dev": true 1285 | }, 1286 | "spdx-correct": { 1287 | "version": "3.1.1", 1288 | "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", 1289 | "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", 1290 | "dev": true, 1291 | "requires": { 1292 | "spdx-expression-parse": "^3.0.0", 1293 | "spdx-license-ids": "^3.0.0" 1294 | } 1295 | }, 1296 | "spdx-exceptions": { 1297 | "version": "2.3.0", 1298 | "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", 1299 | "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", 1300 | "dev": true 1301 | }, 1302 | "spdx-expression-parse": { 1303 | "version": "3.0.1", 1304 | "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", 1305 | "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", 1306 | "dev": true, 1307 | "requires": { 1308 | "spdx-exceptions": "^2.1.0", 1309 | "spdx-license-ids": "^3.0.0" 1310 | } 1311 | }, 1312 | "spdx-license-ids": { 1313 | "version": "3.0.7", 1314 | "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", 1315 | "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", 1316 | "dev": true 1317 | }, 1318 | "string-width": { 1319 | "version": "4.2.2", 1320 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", 1321 | "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", 1322 | "dev": true, 1323 | "requires": { 1324 | "emoji-regex": "^8.0.0", 1325 | "is-fullwidth-code-point": "^3.0.0", 1326 | "strip-ansi": "^6.0.0" 1327 | } 1328 | }, 1329 | "strip-ansi": { 1330 | "version": "6.0.0", 1331 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", 1332 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", 1333 | "dev": true, 1334 | "requires": { 1335 | "ansi-regex": "^5.0.0" 1336 | } 1337 | }, 1338 | "strip-indent": { 1339 | "version": "3.0.0", 1340 | "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", 1341 | "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", 1342 | "dev": true, 1343 | "requires": { 1344 | "min-indent": "^1.0.0" 1345 | } 1346 | }, 1347 | "strip-json-comments": { 1348 | "version": "2.0.1", 1349 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", 1350 | "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", 1351 | "dev": true 1352 | }, 1353 | "supports-color": { 1354 | "version": "7.2.0", 1355 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 1356 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 1357 | "dev": true, 1358 | "requires": { 1359 | "has-flag": "^4.0.0" 1360 | } 1361 | }, 1362 | "supports-hyperlinks": { 1363 | "version": "2.1.0", 1364 | "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz", 1365 | "integrity": "sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA==", 1366 | "dev": true, 1367 | "requires": { 1368 | "has-flag": "^4.0.0", 1369 | "supports-color": "^7.0.0" 1370 | } 1371 | }, 1372 | "term-size": { 1373 | "version": "2.2.1", 1374 | "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", 1375 | "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", 1376 | "dev": true 1377 | }, 1378 | "to-readable-stream": { 1379 | "version": "1.0.0", 1380 | "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", 1381 | "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", 1382 | "dev": true 1383 | }, 1384 | "to-regex-range": { 1385 | "version": "5.0.1", 1386 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 1387 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 1388 | "dev": true, 1389 | "requires": { 1390 | "is-number": "^7.0.0" 1391 | } 1392 | }, 1393 | "trim-newlines": { 1394 | "version": "3.0.0", 1395 | "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.0.tgz", 1396 | "integrity": "sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA==", 1397 | "dev": true 1398 | }, 1399 | "tsd": { 1400 | "version": "0.14.0", 1401 | "resolved": "https://registry.npmjs.org/tsd/-/tsd-0.14.0.tgz", 1402 | "integrity": "sha512-fl1gS5orAwqIb0P2xMdppgCrwv1BfCJn67wBzRBCV9OUaWHVXHqiIqL6yX/519xFgT1ZOaLMhr5W9XDo8kuuRA==", 1403 | "dev": true, 1404 | "requires": { 1405 | "eslint-formatter-pretty": "^4.0.0", 1406 | "globby": "^11.0.1", 1407 | "meow": "^7.0.1", 1408 | "path-exists": "^4.0.0", 1409 | "read-pkg-up": "^7.0.0", 1410 | "update-notifier": "^4.1.0" 1411 | } 1412 | }, 1413 | "type-fest": { 1414 | "version": "0.21.3", 1415 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", 1416 | "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", 1417 | "dev": true 1418 | }, 1419 | "typedarray-to-buffer": { 1420 | "version": "3.1.5", 1421 | "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", 1422 | "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", 1423 | "dev": true, 1424 | "requires": { 1425 | "is-typedarray": "^1.0.0" 1426 | } 1427 | }, 1428 | "typescript": { 1429 | "version": "4.2.3", 1430 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.3.tgz", 1431 | "integrity": "sha512-qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw==", 1432 | "dev": true 1433 | }, 1434 | "unique-string": { 1435 | "version": "2.0.0", 1436 | "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", 1437 | "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", 1438 | "dev": true, 1439 | "requires": { 1440 | "crypto-random-string": "^2.0.0" 1441 | } 1442 | }, 1443 | "update-notifier": { 1444 | "version": "4.1.3", 1445 | "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz", 1446 | "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==", 1447 | "dev": true, 1448 | "requires": { 1449 | "boxen": "^4.2.0", 1450 | "chalk": "^3.0.0", 1451 | "configstore": "^5.0.1", 1452 | "has-yarn": "^2.1.0", 1453 | "import-lazy": "^2.1.0", 1454 | "is-ci": "^2.0.0", 1455 | "is-installed-globally": "^0.3.1", 1456 | "is-npm": "^4.0.0", 1457 | "is-yarn-global": "^0.3.0", 1458 | "latest-version": "^5.0.0", 1459 | "pupa": "^2.0.1", 1460 | "semver-diff": "^3.1.1", 1461 | "xdg-basedir": "^4.0.0" 1462 | }, 1463 | "dependencies": { 1464 | "chalk": { 1465 | "version": "3.0.0", 1466 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", 1467 | "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", 1468 | "dev": true, 1469 | "requires": { 1470 | "ansi-styles": "^4.1.0", 1471 | "supports-color": "^7.1.0" 1472 | } 1473 | } 1474 | } 1475 | }, 1476 | "url-parse-lax": { 1477 | "version": "3.0.0", 1478 | "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", 1479 | "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", 1480 | "dev": true, 1481 | "requires": { 1482 | "prepend-http": "^2.0.0" 1483 | } 1484 | }, 1485 | "validate-npm-package-license": { 1486 | "version": "3.0.4", 1487 | "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", 1488 | "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", 1489 | "dev": true, 1490 | "requires": { 1491 | "spdx-correct": "^3.0.0", 1492 | "spdx-expression-parse": "^3.0.0" 1493 | } 1494 | }, 1495 | "widest-line": { 1496 | "version": "3.1.0", 1497 | "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", 1498 | "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", 1499 | "dev": true, 1500 | "requires": { 1501 | "string-width": "^4.0.0" 1502 | } 1503 | }, 1504 | "wrappy": { 1505 | "version": "1.0.2", 1506 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1507 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 1508 | "dev": true 1509 | }, 1510 | "write-file-atomic": { 1511 | "version": "3.0.3", 1512 | "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", 1513 | "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", 1514 | "dev": true, 1515 | "requires": { 1516 | "imurmurhash": "^0.1.4", 1517 | "is-typedarray": "^1.0.0", 1518 | "signal-exit": "^3.0.2", 1519 | "typedarray-to-buffer": "^3.1.5" 1520 | } 1521 | }, 1522 | "xdg-basedir": { 1523 | "version": "4.0.0", 1524 | "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", 1525 | "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", 1526 | "dev": true 1527 | }, 1528 | "yargs-parser": { 1529 | "version": "18.1.3", 1530 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", 1531 | "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", 1532 | "dev": true, 1533 | "requires": { 1534 | "camelcase": "^5.0.0", 1535 | "decamelize": "^1.2.0" 1536 | } 1537 | } 1538 | } 1539 | } 1540 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "typescript-deep-path-safe", 3 | "version": "1.0.0", 4 | "description": "Collection of generics to make string paths type safe", 5 | "main": "index.d.ts", 6 | "devDependencies": { 7 | "@types/lodash": "4.14.168", 8 | "lodash": "4.17.21", 9 | "tsd": "0.14.0", 10 | "typescript": "4.2.3" 11 | }, 12 | "Dependencies": {}, 13 | "scripts": { 14 | "test": "tsd" 15 | }, 16 | "repository": { 17 | "type": "git", 18 | "url": "git+https://github.com/Pouja/typescript-deep-path-safe.git" 19 | }, 20 | "keywords": [ 21 | "typescript", 22 | "generics", 23 | "type-safe" 24 | ], 25 | "author": "Pouja Nikray", 26 | "license": "MIT", 27 | "bugs": { 28 | "url": "https://github.com/Pouja/typescript-deep-path-safe/issues" 29 | }, 30 | "homepage": "https://github.com/Pouja/typescript-deep-path-safe#readme" 31 | } 32 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | /* Visit https://aka.ms/tsconfig.json to read more about this file */ 4 | 5 | /* Basic Options */ 6 | // "incremental": true, /* Enable incremental compilation */ 7 | "target": "es5", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */ 8 | "module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */ 9 | // "lib": [], /* Specify library files to be included in the compilation. */ 10 | // "allowJs": true, /* Allow javascript files to be compiled. */ 11 | // "checkJs": true, /* Report errors in .js files. */ 12 | // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', 'react', 'react-jsx' or 'react-jsxdev'. */ 13 | // "declaration": true, /* Generates corresponding '.d.ts' file. */ 14 | // "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ 15 | // "sourceMap": true, /* Generates corresponding '.map' file. */ 16 | // "outFile": "./", /* Concatenate and emit output to single file. */ 17 | // "outDir": "./", /* Redirect output structure to the directory. */ 18 | // "rootDir": "./", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */ 19 | // "composite": true, /* Enable project compilation */ 20 | // "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */ 21 | // "removeComments": true, /* Do not emit comments to output. */ 22 | // "noEmit": true, /* Do not emit outputs. */ 23 | // "importHelpers": true, /* Import emit helpers from 'tslib'. */ 24 | // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ 25 | // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ 26 | 27 | /* Strict Type-Checking Options */ 28 | "strict": true, /* Enable all strict type-checking options. */ 29 | // "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */ 30 | // "strictNullChecks": true, /* Enable strict null checks. */ 31 | // "strictFunctionTypes": true, /* Enable strict checking of function types. */ 32 | // "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */ 33 | // "strictPropertyInitialization": true, /* Enable strict checking of property initialization in classes. */ 34 | // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */ 35 | // "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */ 36 | 37 | /* Additional Checks */ 38 | // "noUnusedLocals": true, /* Report errors on unused locals. */ 39 | // "noUnusedParameters": true, /* Report errors on unused parameters. */ 40 | // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ 41 | // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ 42 | // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ 43 | // "noPropertyAccessFromIndexSignature": true, /* Require undeclared properties from index signatures to use element accesses. */ 44 | 45 | /* Module Resolution Options */ 46 | // "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ 47 | // "baseUrl": "./", /* Base directory to resolve non-absolute module names. */ 48 | // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ 49 | // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ 50 | // "typeRoots": [], /* List of folders to include type definitions from. */ 51 | // "types": [], /* Type declaration files to be included in compilation. */ 52 | // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ 53 | "esModuleInterop": true, /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */ 54 | // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ 55 | // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ 56 | 57 | /* Source Map Options */ 58 | // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ 59 | // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ 60 | // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */ 61 | // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */ 62 | 63 | /* Experimental Options */ 64 | // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ 65 | // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */ 66 | 67 | /* Advanced Options */ 68 | "skipLibCheck": true, /* Skip type checking of declaration files. */ 69 | "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */ 70 | } 71 | } 72 | --------------------------------------------------------------------------------