├── .eslintrc.json ├── .github └── workflows │ ├── publish.yml │ └── test.yml ├── .gitignore ├── .npmignore ├── .prettierrc ├── LICENSE ├── README.md ├── package-lock.json ├── package.json ├── postinstall.js ├── sample └── index.js ├── src ├── index.ts ├── lib.ts └── types.ts └── tsconfig.json /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "plugins": ["@typescript-eslint", "prettier", "sort-imports-es6-autofix"], 4 | "parser": "@typescript-eslint/parser", 5 | "parserOptions": { 6 | "project": "./tsconfig.json" 7 | }, 8 | "extends": [ 9 | "eslint:recommended", 10 | "plugin:@typescript-eslint/eslint-recommended", 11 | "plugin:@typescript-eslint/recommended", 12 | "plugin:@typescript-eslint/recommended-requiring-type-checking", 13 | "prettier" 14 | ], 15 | "env": { 16 | "es6": true 17 | }, 18 | "ignorePatterns": ["dist/*", "sample/*", "rollup.config.js", "postinstall.js"], 19 | "rules": { 20 | "no-console": "off", 21 | "@typescript-eslint/no-unsafe-call": "off", 22 | "@typescript-eslint/no-unsafe-member-access": "off", 23 | "@typescript-eslint/no-unsafe-assignment": "off", 24 | "@typescript-eslint/no-unsafe-return": "off", 25 | "@typescript-eslint/restrict-plus-operands": "off", 26 | "@typescript-eslint/restrict-template-expressions": "off", 27 | "@typescript-eslint/no-non-null-assertion": "off", 28 | "@typescript-eslint/camelcase": "off", 29 | "@typescript-eslint/member-naming": "off", 30 | "@typescript-eslint/no-unused-vars": [ 31 | "error", 32 | { 33 | "argsIgnorePattern": "^_" 34 | } 35 | ], 36 | "@typescript-eslint/member-ordering": [ 37 | "error", 38 | { 39 | "classes": [ 40 | "public-static-field", 41 | "protected-static-field", 42 | "private-static-field", 43 | "public-static-method", 44 | "protected-static-method", 45 | "private-static-method", 46 | "public-instance-field", 47 | "protected-instance-field", 48 | "private-instance-field", 49 | "public-constructor", 50 | "protected-constructor", 51 | "private-constructor", 52 | "public-instance-method", 53 | "protected-instance-method", 54 | "private-instance-method" 55 | ] 56 | } 57 | ], 58 | "curly": ["error", "all"], 59 | "eqeqeq": "error", 60 | "max-classes-per-file": "error", 61 | "no-alert": "error", 62 | "no-caller": "error", 63 | "no-eval": "error", 64 | "no-extend-native": "error", 65 | "no-extra-bind": "error", 66 | "no-floating-decimal": "error", 67 | "no-implicit-coercion": "error", 68 | "no-labels": "error", 69 | "no-new": "error", 70 | "no-new-func": "error", 71 | "no-new-wrappers": "error", 72 | "no-octal-escape": "error", 73 | "no-return-assign": "error", 74 | "no-return-await": "error", 75 | "no-self-compare": "error", 76 | "no-sequences": "error", 77 | "no-throw-literal": "error", 78 | "no-unmodified-loop-condition": "error", 79 | "no-useless-call": "error", 80 | "no-useless-concat": "error", 81 | "no-void": "error", 82 | "prefer-promise-reject-errors": "error", 83 | "radix": ["error", "always"], 84 | "no-shadow": "off", 85 | "no-confusing-arrow": [ 86 | "error", 87 | { 88 | "allowParens": false 89 | } 90 | ], 91 | "no-duplicate-imports": "error", 92 | "prefer-numeric-literals": "error", 93 | "prefer-template": "error", 94 | "symbol-description": "error", 95 | "sort-imports-es6-autofix/sort-imports-es6": "error", 96 | "@typescript-eslint/ban-ts-comment": "off", 97 | "@typescript-eslint/array-type": [ 98 | "error", 99 | { 100 | "default": "array-simple" 101 | } 102 | ], 103 | "@typescript-eslint/consistent-type-definitions": ["error", "interface"], 104 | "@typescript-eslint/explicit-function-return-type": [ 105 | "error", 106 | { 107 | "allowExpressions": true, 108 | "allowTypedFunctionExpressions": true, 109 | "allowHigherOrderFunctions": true 110 | } 111 | ], 112 | "@typescript-eslint/interface-name-prefix": "off", 113 | "@typescript-eslint/no-explicit-any": "off", 114 | "@typescript-eslint/no-floating-promises": "error", 115 | "@typescript-eslint/no-parameter-properties": "off", 116 | "@typescript-eslint/no-require-imports": "error", 117 | "@typescript-eslint/no-useless-constructor": "error", 118 | "@typescript-eslint/prefer-for-of": "error" 119 | } 120 | } 121 | -------------------------------------------------------------------------------- /.github/workflows/publish.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | 3 | on: 4 | push: 5 | branches: [main] 6 | 7 | jobs: 8 | publish: 9 | runs-on: ubuntu-latest 10 | 11 | steps: 12 | - uses: actions/checkout@v2 13 | 14 | - name: Use Node.js 16.x 15 | uses: actions/setup-node@v1 16 | with: 17 | node-version: 16.x 18 | 19 | - run: npm ci 20 | - run: npm run lint:nofix 21 | - run: npm run build 22 | 23 | - uses: JS-DevTools/npm-publish@v1 24 | with: 25 | token: ${{ secrets.NPM_TOKEN }} 26 | -------------------------------------------------------------------------------- /.github/workflows/test.yml: -------------------------------------------------------------------------------- 1 | name: Testing 2 | 3 | on: 4 | pull_request: 5 | branches: [main] 6 | 7 | jobs: 8 | build: 9 | runs-on: ubuntu-latest 10 | 11 | strategy: 12 | matrix: 13 | node-version: [14.x, 16.x] 14 | 15 | steps: 16 | - uses: actions/checkout@v2 17 | 18 | - name: Use Node.js ${{ matrix.node-version }} 19 | uses: actions/setup-node@v1 20 | with: 21 | node-version: ${{ matrix.node-version }} 22 | 23 | - run: npm ci 24 | - run: npm run lint:nofix 25 | - run: npm run build 26 | -------------------------------------------------------------------------------- /.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 | 106 | # IDEs and editors 107 | /.idea 108 | .project 109 | .classpath 110 | .c9/ 111 | *.launch 112 | .settings/ 113 | *.sublime-workspace 114 | 115 | # IDE - VSCode 116 | .vscode/* 117 | !.vscode/settings.json 118 | !.vscode/tasks.json 119 | !.vscode/launch.json 120 | !.vscode/extensions.json 121 | .history/* 122 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | src 2 | sample 3 | tsconfig.json 4 | .github 5 | .eslintrc.json 6 | .prettierignore 7 | .prettierrc -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "singleQuote": true, 3 | "trailingComma": "all", 4 | "endOfLine": "lf", 5 | "quoteProps": "consistent", 6 | "semi": false, 7 | "printWidth": 120, 8 | "tabWidth": 4 9 | } 10 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Gabriel Francisco 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 | ## This package is deprecated and will not be mantained anymore 2 | 3 | Please consider using the official: https://github.com/openai/openai-node 4 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "gpt-x", 3 | "version": "1.1.3", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "gpt-x", 9 | "version": "1.1.3", 10 | "hasInstallScript": true, 11 | "license": "MIT", 12 | "dependencies": { 13 | "form-data": "4.0.0", 14 | "node-fetch": "3.1.0", 15 | "openai": "^1.1.2" 16 | }, 17 | "devDependencies": { 18 | "@types/node": "16.11.11", 19 | "@typescript-eslint/eslint-plugin": "5.5.0", 20 | "@typescript-eslint/parser": "5.5.0", 21 | "eslint": "8.3.0", 22 | "eslint-config-prettier": "8.3.0", 23 | "eslint-plugin-prettier": "4.0.0", 24 | "eslint-plugin-sort-imports-es6-autofix": "0.6.0", 25 | "prettier": "2.5.0", 26 | "typescript": "4.5.2" 27 | } 28 | }, 29 | "node_modules/@eslint/eslintrc": { 30 | "version": "1.0.4", 31 | "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.4.tgz", 32 | "integrity": "sha512-h8Vx6MdxwWI2WM8/zREHMoqdgLNXEL4QX3MWSVMdyNJGvXVOs+6lp+m2hc3FnuMHDc4poxFNI20vCk0OmI4G0Q==", 33 | "dev": true, 34 | "dependencies": { 35 | "ajv": "^6.12.4", 36 | "debug": "^4.3.2", 37 | "espree": "^9.0.0", 38 | "globals": "^13.9.0", 39 | "ignore": "^4.0.6", 40 | "import-fresh": "^3.2.1", 41 | "js-yaml": "^4.1.0", 42 | "minimatch": "^3.0.4", 43 | "strip-json-comments": "^3.1.1" 44 | }, 45 | "engines": { 46 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 47 | } 48 | }, 49 | "node_modules/@eslint/eslintrc/node_modules/ignore": { 50 | "version": "4.0.6", 51 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", 52 | "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", 53 | "dev": true, 54 | "engines": { 55 | "node": ">= 4" 56 | } 57 | }, 58 | "node_modules/@nodelib/fs.scandir": { 59 | "version": "2.1.5", 60 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", 61 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", 62 | "dev": true, 63 | "dependencies": { 64 | "@nodelib/fs.stat": "2.0.5", 65 | "run-parallel": "^1.1.9" 66 | }, 67 | "engines": { 68 | "node": ">= 8" 69 | } 70 | }, 71 | "node_modules/@nodelib/fs.stat": { 72 | "version": "2.0.5", 73 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", 74 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", 75 | "dev": true, 76 | "engines": { 77 | "node": ">= 8" 78 | } 79 | }, 80 | "node_modules/@nodelib/fs.walk": { 81 | "version": "1.2.8", 82 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", 83 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", 84 | "dev": true, 85 | "dependencies": { 86 | "@nodelib/fs.scandir": "2.1.5", 87 | "fastq": "^1.6.0" 88 | }, 89 | "engines": { 90 | "node": ">= 8" 91 | } 92 | }, 93 | "node_modules/@types/json-schema": { 94 | "version": "7.0.9", 95 | "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", 96 | "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", 97 | "dev": true 98 | }, 99 | "node_modules/@types/node": { 100 | "version": "16.11.11", 101 | "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.11.tgz", 102 | "integrity": "sha512-KB0sixD67CeecHC33MYn+eYARkqTheIRNuu97y2XMjR7Wu3XibO1vaY6VBV6O/a89SPI81cEUIYT87UqUWlZNw==", 103 | "dev": true 104 | }, 105 | "node_modules/@typescript-eslint/eslint-plugin": { 106 | "version": "5.5.0", 107 | "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.5.0.tgz", 108 | "integrity": "sha512-4bV6fulqbuaO9UMXU0Ia0o6z6if+kmMRW8rMRyfqXj/eGrZZRGedS4n0adeGNnjr8LKAM495hrQ7Tea52UWmQA==", 109 | "dev": true, 110 | "dependencies": { 111 | "@typescript-eslint/experimental-utils": "5.5.0", 112 | "@typescript-eslint/scope-manager": "5.5.0", 113 | "debug": "^4.3.2", 114 | "functional-red-black-tree": "^1.0.1", 115 | "ignore": "^5.1.8", 116 | "regexpp": "^3.2.0", 117 | "semver": "^7.3.5", 118 | "tsutils": "^3.21.0" 119 | }, 120 | "engines": { 121 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 122 | }, 123 | "funding": { 124 | "type": "opencollective", 125 | "url": "https://opencollective.com/typescript-eslint" 126 | }, 127 | "peerDependencies": { 128 | "@typescript-eslint/parser": "^5.0.0", 129 | "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" 130 | }, 131 | "peerDependenciesMeta": { 132 | "typescript": { 133 | "optional": true 134 | } 135 | } 136 | }, 137 | "node_modules/@typescript-eslint/experimental-utils": { 138 | "version": "5.5.0", 139 | "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.5.0.tgz", 140 | "integrity": "sha512-kjWeeVU+4lQ1SLYErRKV5yDXbWDPkpbzTUUlfAUifPYvpX0qZlrcCZ96/6oWxt3QxtK5WVhXz+KsnwW9cIW+3A==", 141 | "dev": true, 142 | "dependencies": { 143 | "@types/json-schema": "^7.0.9", 144 | "@typescript-eslint/scope-manager": "5.5.0", 145 | "@typescript-eslint/types": "5.5.0", 146 | "@typescript-eslint/typescript-estree": "5.5.0", 147 | "eslint-scope": "^5.1.1", 148 | "eslint-utils": "^3.0.0" 149 | }, 150 | "engines": { 151 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 152 | }, 153 | "funding": { 154 | "type": "opencollective", 155 | "url": "https://opencollective.com/typescript-eslint" 156 | }, 157 | "peerDependencies": { 158 | "eslint": "*" 159 | } 160 | }, 161 | "node_modules/@typescript-eslint/parser": { 162 | "version": "5.5.0", 163 | "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.5.0.tgz", 164 | "integrity": "sha512-JsXBU+kgQOAgzUn2jPrLA+Rd0Y1dswOlX3hp8MuRO1hQDs6xgHtbCXEiAu7bz5hyVURxbXcA2draasMbNqrhmg==", 165 | "dev": true, 166 | "dependencies": { 167 | "@typescript-eslint/scope-manager": "5.5.0", 168 | "@typescript-eslint/types": "5.5.0", 169 | "@typescript-eslint/typescript-estree": "5.5.0", 170 | "debug": "^4.3.2" 171 | }, 172 | "engines": { 173 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 174 | }, 175 | "funding": { 176 | "type": "opencollective", 177 | "url": "https://opencollective.com/typescript-eslint" 178 | }, 179 | "peerDependencies": { 180 | "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" 181 | }, 182 | "peerDependenciesMeta": { 183 | "typescript": { 184 | "optional": true 185 | } 186 | } 187 | }, 188 | "node_modules/@typescript-eslint/scope-manager": { 189 | "version": "5.5.0", 190 | "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.5.0.tgz", 191 | "integrity": "sha512-0/r656RmRLo7CbN4Mdd+xZyPJ/fPCKhYdU6mnZx+8msAD8nJSP8EyCFkzbd6vNVZzZvWlMYrSNekqGrCBqFQhg==", 192 | "dev": true, 193 | "dependencies": { 194 | "@typescript-eslint/types": "5.5.0", 195 | "@typescript-eslint/visitor-keys": "5.5.0" 196 | }, 197 | "engines": { 198 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 199 | }, 200 | "funding": { 201 | "type": "opencollective", 202 | "url": "https://opencollective.com/typescript-eslint" 203 | } 204 | }, 205 | "node_modules/@typescript-eslint/types": { 206 | "version": "5.5.0", 207 | "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.5.0.tgz", 208 | "integrity": "sha512-OaYTqkW3GnuHxqsxxJ6KypIKd5Uw7bFiQJZRyNi1jbMJnK3Hc/DR4KwB6KJj6PBRkJJoaNwzMNv9vtTk87JhOg==", 209 | "dev": true, 210 | "engines": { 211 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 212 | }, 213 | "funding": { 214 | "type": "opencollective", 215 | "url": "https://opencollective.com/typescript-eslint" 216 | } 217 | }, 218 | "node_modules/@typescript-eslint/typescript-estree": { 219 | "version": "5.5.0", 220 | "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.5.0.tgz", 221 | "integrity": "sha512-pVn8btYUiYrjonhMAO0yG8lm7RApzy2L4RC7Td/mC/qFkyf6vRbGyZozoA94+w6D2Y2GRqpMoCWcwx/EUOzyoQ==", 222 | "dev": true, 223 | "dependencies": { 224 | "@typescript-eslint/types": "5.5.0", 225 | "@typescript-eslint/visitor-keys": "5.5.0", 226 | "debug": "^4.3.2", 227 | "globby": "^11.0.4", 228 | "is-glob": "^4.0.3", 229 | "semver": "^7.3.5", 230 | "tsutils": "^3.21.0" 231 | }, 232 | "engines": { 233 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 234 | }, 235 | "funding": { 236 | "type": "opencollective", 237 | "url": "https://opencollective.com/typescript-eslint" 238 | }, 239 | "peerDependenciesMeta": { 240 | "typescript": { 241 | "optional": true 242 | } 243 | } 244 | }, 245 | "node_modules/@typescript-eslint/visitor-keys": { 246 | "version": "5.5.0", 247 | "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.5.0.tgz", 248 | "integrity": "sha512-4GzJ1kRtsWzHhdM40tv0ZKHNSbkDhF0Woi/TDwVJX6UICwJItvP7ZTXbjTkCdrors7ww0sYe0t+cIKDAJwZ7Kw==", 249 | "dev": true, 250 | "dependencies": { 251 | "@typescript-eslint/types": "5.5.0", 252 | "eslint-visitor-keys": "^3.0.0" 253 | }, 254 | "engines": { 255 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 256 | }, 257 | "funding": { 258 | "type": "opencollective", 259 | "url": "https://opencollective.com/typescript-eslint" 260 | } 261 | }, 262 | "node_modules/acorn": { 263 | "version": "8.6.0", 264 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz", 265 | "integrity": "sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==", 266 | "dev": true, 267 | "bin": { 268 | "acorn": "bin/acorn" 269 | }, 270 | "engines": { 271 | "node": ">=0.4.0" 272 | } 273 | }, 274 | "node_modules/acorn-jsx": { 275 | "version": "5.3.2", 276 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", 277 | "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", 278 | "dev": true, 279 | "peerDependencies": { 280 | "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" 281 | } 282 | }, 283 | "node_modules/ajv": { 284 | "version": "6.12.6", 285 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", 286 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", 287 | "dev": true, 288 | "dependencies": { 289 | "fast-deep-equal": "^3.1.1", 290 | "fast-json-stable-stringify": "^2.0.0", 291 | "json-schema-traverse": "^0.4.1", 292 | "uri-js": "^4.2.2" 293 | }, 294 | "funding": { 295 | "type": "github", 296 | "url": "https://github.com/sponsors/epoberezkin" 297 | } 298 | }, 299 | "node_modules/argparse": { 300 | "version": "2.0.1", 301 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", 302 | "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", 303 | "dev": true 304 | }, 305 | "node_modules/array-union": { 306 | "version": "2.1.0", 307 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", 308 | "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", 309 | "dev": true, 310 | "engines": { 311 | "node": ">=8" 312 | } 313 | }, 314 | "node_modules/asynckit": { 315 | "version": "0.4.0", 316 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 317 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" 318 | }, 319 | "node_modules/balanced-match": { 320 | "version": "1.0.2", 321 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 322 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 323 | "dev": true 324 | }, 325 | "node_modules/brace-expansion": { 326 | "version": "1.1.11", 327 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 328 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 329 | "dev": true, 330 | "dependencies": { 331 | "balanced-match": "^1.0.0", 332 | "concat-map": "0.0.1" 333 | } 334 | }, 335 | "node_modules/braces": { 336 | "version": "3.0.2", 337 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", 338 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", 339 | "dev": true, 340 | "dependencies": { 341 | "fill-range": "^7.0.1" 342 | }, 343 | "engines": { 344 | "node": ">=8" 345 | } 346 | }, 347 | "node_modules/callsites": { 348 | "version": "3.1.0", 349 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 350 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 351 | "dev": true, 352 | "engines": { 353 | "node": ">=6" 354 | } 355 | }, 356 | "node_modules/combined-stream": { 357 | "version": "1.0.8", 358 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", 359 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", 360 | "dependencies": { 361 | "delayed-stream": "~1.0.0" 362 | }, 363 | "engines": { 364 | "node": ">= 0.8" 365 | } 366 | }, 367 | "node_modules/combined-stream/node_modules/delayed-stream": { 368 | "version": "1.0.0", 369 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 370 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", 371 | "engines": { 372 | "node": ">=0.4.0" 373 | } 374 | }, 375 | "node_modules/concat-map": { 376 | "version": "0.0.1", 377 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 378 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 379 | "dev": true 380 | }, 381 | "node_modules/data-uri-to-buffer": { 382 | "version": "4.0.0", 383 | "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz", 384 | "integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==", 385 | "engines": { 386 | "node": ">= 12" 387 | } 388 | }, 389 | "node_modules/debug": { 390 | "version": "4.3.2", 391 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", 392 | "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", 393 | "dev": true, 394 | "dependencies": { 395 | "ms": "2.1.2" 396 | }, 397 | "engines": { 398 | "node": ">=6.0" 399 | }, 400 | "peerDependenciesMeta": { 401 | "supports-color": { 402 | "optional": true 403 | } 404 | } 405 | }, 406 | "node_modules/debug/node_modules/ms": { 407 | "version": "2.1.2", 408 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 409 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 410 | "dev": true 411 | }, 412 | "node_modules/dir-glob": { 413 | "version": "3.0.1", 414 | "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", 415 | "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", 416 | "dev": true, 417 | "dependencies": { 418 | "path-type": "^4.0.0" 419 | }, 420 | "engines": { 421 | "node": ">=8" 422 | } 423 | }, 424 | "node_modules/eslint": { 425 | "version": "8.3.0", 426 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.3.0.tgz", 427 | "integrity": "sha512-aIay56Ph6RxOTC7xyr59Kt3ewX185SaGnAr8eWukoPLeriCrvGjvAubxuvaXOfsxhtwV5g0uBOsyhAom4qJdww==", 428 | "dev": true, 429 | "dependencies": { 430 | "@eslint/eslintrc": "^1.0.4", 431 | "@humanwhocodes/config-array": "^0.6.0", 432 | "ajv": "^6.10.0", 433 | "chalk": "^4.0.0", 434 | "cross-spawn": "^7.0.2", 435 | "debug": "^4.3.2", 436 | "doctrine": "^3.0.0", 437 | "enquirer": "^2.3.5", 438 | "escape-string-regexp": "^4.0.0", 439 | "eslint-scope": "^7.1.0", 440 | "eslint-utils": "^3.0.0", 441 | "eslint-visitor-keys": "^3.1.0", 442 | "espree": "^9.1.0", 443 | "esquery": "^1.4.0", 444 | "esutils": "^2.0.2", 445 | "fast-deep-equal": "^3.1.3", 446 | "file-entry-cache": "^6.0.1", 447 | "functional-red-black-tree": "^1.0.1", 448 | "glob-parent": "^6.0.1", 449 | "globals": "^13.6.0", 450 | "ignore": "^4.0.6", 451 | "import-fresh": "^3.0.0", 452 | "imurmurhash": "^0.1.4", 453 | "is-glob": "^4.0.0", 454 | "js-yaml": "^4.1.0", 455 | "json-stable-stringify-without-jsonify": "^1.0.1", 456 | "levn": "^0.4.1", 457 | "lodash.merge": "^4.6.2", 458 | "minimatch": "^3.0.4", 459 | "natural-compare": "^1.4.0", 460 | "optionator": "^0.9.1", 461 | "progress": "^2.0.0", 462 | "regexpp": "^3.2.0", 463 | "semver": "^7.2.1", 464 | "strip-ansi": "^6.0.1", 465 | "strip-json-comments": "^3.1.0", 466 | "text-table": "^0.2.0", 467 | "v8-compile-cache": "^2.0.3" 468 | }, 469 | "bin": { 470 | "eslint": "bin/eslint.js" 471 | }, 472 | "engines": { 473 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 474 | }, 475 | "funding": { 476 | "url": "https://opencollective.com/eslint" 477 | } 478 | }, 479 | "node_modules/eslint-config-prettier": { 480 | "version": "8.3.0", 481 | "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz", 482 | "integrity": "sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==", 483 | "dev": true, 484 | "bin": { 485 | "eslint-config-prettier": "bin/cli.js" 486 | }, 487 | "peerDependencies": { 488 | "eslint": ">=7.0.0" 489 | } 490 | }, 491 | "node_modules/eslint-plugin-prettier": { 492 | "version": "4.0.0", 493 | "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.0.0.tgz", 494 | "integrity": "sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==", 495 | "dev": true, 496 | "dependencies": { 497 | "prettier-linter-helpers": "^1.0.0" 498 | }, 499 | "engines": { 500 | "node": ">=6.0.0" 501 | }, 502 | "peerDependencies": { 503 | "eslint": ">=7.28.0", 504 | "prettier": ">=2.0.0" 505 | }, 506 | "peerDependenciesMeta": { 507 | "eslint-config-prettier": { 508 | "optional": true 509 | } 510 | } 511 | }, 512 | "node_modules/eslint-plugin-sort-imports-es6-autofix": { 513 | "version": "0.6.0", 514 | "resolved": "https://registry.npmjs.org/eslint-plugin-sort-imports-es6-autofix/-/eslint-plugin-sort-imports-es6-autofix-0.6.0.tgz", 515 | "integrity": "sha512-2NVaBGF9NN+727Fyq+jJYihdIeegjXeUUrZED9Q8FVB8MsV3YQEyXG96GVnXqWt0pmn7xfCZOZf3uKnIhBrfeQ==", 516 | "dev": true, 517 | "peerDependencies": { 518 | "eslint": ">=7.7.0" 519 | } 520 | }, 521 | "node_modules/eslint-scope": { 522 | "version": "5.1.1", 523 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", 524 | "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", 525 | "dev": true, 526 | "dependencies": { 527 | "esrecurse": "^4.3.0", 528 | "estraverse": "^4.1.1" 529 | }, 530 | "engines": { 531 | "node": ">=8.0.0" 532 | } 533 | }, 534 | "node_modules/eslint-utils": { 535 | "version": "3.0.0", 536 | "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", 537 | "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", 538 | "dev": true, 539 | "dependencies": { 540 | "eslint-visitor-keys": "^2.0.0" 541 | }, 542 | "engines": { 543 | "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" 544 | }, 545 | "funding": { 546 | "url": "https://github.com/sponsors/mysticatea" 547 | }, 548 | "peerDependencies": { 549 | "eslint": ">=5" 550 | } 551 | }, 552 | "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { 553 | "version": "2.1.0", 554 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", 555 | "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", 556 | "dev": true, 557 | "engines": { 558 | "node": ">=10" 559 | } 560 | }, 561 | "node_modules/eslint-visitor-keys": { 562 | "version": "3.1.0", 563 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz", 564 | "integrity": "sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==", 565 | "dev": true, 566 | "engines": { 567 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 568 | } 569 | }, 570 | "node_modules/eslint/node_modules/@humanwhocodes/config-array": { 571 | "version": "0.6.0", 572 | "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.6.0.tgz", 573 | "integrity": "sha512-JQlEKbcgEUjBFhLIF4iqM7u/9lwgHRBcpHrmUNCALK0Q3amXN6lxdoXLnF0sm11E9VqTmBALR87IlUg1bZ8A9A==", 574 | "dev": true, 575 | "dependencies": { 576 | "@humanwhocodes/object-schema": "^1.2.0", 577 | "debug": "^4.1.1", 578 | "minimatch": "^3.0.4" 579 | }, 580 | "engines": { 581 | "node": ">=10.10.0" 582 | } 583 | }, 584 | "node_modules/eslint/node_modules/@humanwhocodes/object-schema": { 585 | "version": "1.2.0", 586 | "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz", 587 | "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==", 588 | "dev": true 589 | }, 590 | "node_modules/eslint/node_modules/ansi-colors": { 591 | "version": "4.1.1", 592 | "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", 593 | "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", 594 | "dev": true, 595 | "engines": { 596 | "node": ">=6" 597 | } 598 | }, 599 | "node_modules/eslint/node_modules/ansi-regex": { 600 | "version": "5.0.1", 601 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 602 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 603 | "dev": true, 604 | "engines": { 605 | "node": ">=8" 606 | } 607 | }, 608 | "node_modules/eslint/node_modules/ansi-styles": { 609 | "version": "4.3.0", 610 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 611 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 612 | "dev": true, 613 | "dependencies": { 614 | "color-convert": "^2.0.1" 615 | }, 616 | "engines": { 617 | "node": ">=8" 618 | }, 619 | "funding": { 620 | "url": "https://github.com/chalk/ansi-styles?sponsor=1" 621 | } 622 | }, 623 | "node_modules/eslint/node_modules/chalk": { 624 | "version": "4.1.2", 625 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 626 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 627 | "dev": true, 628 | "dependencies": { 629 | "ansi-styles": "^4.1.0", 630 | "supports-color": "^7.1.0" 631 | }, 632 | "engines": { 633 | "node": ">=10" 634 | }, 635 | "funding": { 636 | "url": "https://github.com/chalk/chalk?sponsor=1" 637 | } 638 | }, 639 | "node_modules/eslint/node_modules/color-convert": { 640 | "version": "2.0.1", 641 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 642 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 643 | "dev": true, 644 | "dependencies": { 645 | "color-name": "~1.1.4" 646 | }, 647 | "engines": { 648 | "node": ">=7.0.0" 649 | } 650 | }, 651 | "node_modules/eslint/node_modules/color-name": { 652 | "version": "1.1.4", 653 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 654 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 655 | "dev": true 656 | }, 657 | "node_modules/eslint/node_modules/cross-spawn": { 658 | "version": "7.0.3", 659 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", 660 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", 661 | "dev": true, 662 | "dependencies": { 663 | "path-key": "^3.1.0", 664 | "shebang-command": "^2.0.0", 665 | "which": "^2.0.1" 666 | }, 667 | "engines": { 668 | "node": ">= 8" 669 | } 670 | }, 671 | "node_modules/eslint/node_modules/deep-is": { 672 | "version": "0.1.4", 673 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", 674 | "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", 675 | "dev": true 676 | }, 677 | "node_modules/eslint/node_modules/doctrine": { 678 | "version": "3.0.0", 679 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", 680 | "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", 681 | "dev": true, 682 | "dependencies": { 683 | "esutils": "^2.0.2" 684 | }, 685 | "engines": { 686 | "node": ">=6.0.0" 687 | } 688 | }, 689 | "node_modules/eslint/node_modules/enquirer": { 690 | "version": "2.3.6", 691 | "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", 692 | "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", 693 | "dev": true, 694 | "dependencies": { 695 | "ansi-colors": "^4.1.1" 696 | }, 697 | "engines": { 698 | "node": ">=8.6" 699 | } 700 | }, 701 | "node_modules/eslint/node_modules/escape-string-regexp": { 702 | "version": "4.0.0", 703 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", 704 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", 705 | "dev": true, 706 | "engines": { 707 | "node": ">=10" 708 | }, 709 | "funding": { 710 | "url": "https://github.com/sponsors/sindresorhus" 711 | } 712 | }, 713 | "node_modules/eslint/node_modules/eslint-scope": { 714 | "version": "7.1.0", 715 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.0.tgz", 716 | "integrity": "sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==", 717 | "dev": true, 718 | "dependencies": { 719 | "esrecurse": "^4.3.0", 720 | "estraverse": "^5.2.0" 721 | }, 722 | "engines": { 723 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 724 | } 725 | }, 726 | "node_modules/eslint/node_modules/esquery": { 727 | "version": "1.4.0", 728 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", 729 | "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", 730 | "dev": true, 731 | "dependencies": { 732 | "estraverse": "^5.1.0" 733 | }, 734 | "engines": { 735 | "node": ">=0.10" 736 | } 737 | }, 738 | "node_modules/eslint/node_modules/estraverse": { 739 | "version": "5.2.0", 740 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", 741 | "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", 742 | "dev": true, 743 | "engines": { 744 | "node": ">=4.0" 745 | } 746 | }, 747 | "node_modules/eslint/node_modules/esutils": { 748 | "version": "2.0.3", 749 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", 750 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", 751 | "dev": true, 752 | "engines": { 753 | "node": ">=0.10.0" 754 | } 755 | }, 756 | "node_modules/eslint/node_modules/fast-levenshtein": { 757 | "version": "2.0.6", 758 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 759 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", 760 | "dev": true 761 | }, 762 | "node_modules/eslint/node_modules/file-entry-cache": { 763 | "version": "6.0.1", 764 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", 765 | "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", 766 | "dev": true, 767 | "dependencies": { 768 | "flat-cache": "^3.0.4" 769 | }, 770 | "engines": { 771 | "node": "^10.12.0 || >=12.0.0" 772 | } 773 | }, 774 | "node_modules/eslint/node_modules/flat-cache": { 775 | "version": "3.0.4", 776 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", 777 | "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", 778 | "dev": true, 779 | "dependencies": { 780 | "flatted": "^3.1.0", 781 | "rimraf": "^3.0.2" 782 | }, 783 | "engines": { 784 | "node": "^10.12.0 || >=12.0.0" 785 | } 786 | }, 787 | "node_modules/eslint/node_modules/flatted": { 788 | "version": "3.2.2", 789 | "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz", 790 | "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", 791 | "dev": true 792 | }, 793 | "node_modules/eslint/node_modules/fs.realpath": { 794 | "version": "1.0.0", 795 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 796 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 797 | "dev": true 798 | }, 799 | "node_modules/eslint/node_modules/glob": { 800 | "version": "7.2.0", 801 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", 802 | "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", 803 | "dev": true, 804 | "dependencies": { 805 | "fs.realpath": "^1.0.0", 806 | "inflight": "^1.0.4", 807 | "inherits": "2", 808 | "minimatch": "^3.0.4", 809 | "once": "^1.3.0", 810 | "path-is-absolute": "^1.0.0" 811 | }, 812 | "engines": { 813 | "node": "*" 814 | }, 815 | "funding": { 816 | "url": "https://github.com/sponsors/isaacs" 817 | } 818 | }, 819 | "node_modules/eslint/node_modules/glob-parent": { 820 | "version": "6.0.2", 821 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", 822 | "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", 823 | "dev": true, 824 | "dependencies": { 825 | "is-glob": "^4.0.3" 826 | }, 827 | "engines": { 828 | "node": ">=10.13.0" 829 | } 830 | }, 831 | "node_modules/eslint/node_modules/has-flag": { 832 | "version": "4.0.0", 833 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 834 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 835 | "dev": true, 836 | "engines": { 837 | "node": ">=8" 838 | } 839 | }, 840 | "node_modules/eslint/node_modules/ignore": { 841 | "version": "4.0.6", 842 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", 843 | "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", 844 | "dev": true, 845 | "engines": { 846 | "node": ">= 4" 847 | } 848 | }, 849 | "node_modules/eslint/node_modules/imurmurhash": { 850 | "version": "0.1.4", 851 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 852 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", 853 | "dev": true, 854 | "engines": { 855 | "node": ">=0.8.19" 856 | } 857 | }, 858 | "node_modules/eslint/node_modules/inflight": { 859 | "version": "1.0.6", 860 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 861 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 862 | "dev": true, 863 | "dependencies": { 864 | "once": "^1.3.0", 865 | "wrappy": "1" 866 | } 867 | }, 868 | "node_modules/eslint/node_modules/inherits": { 869 | "version": "2.0.4", 870 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 871 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 872 | "dev": true 873 | }, 874 | "node_modules/eslint/node_modules/isexe": { 875 | "version": "2.0.0", 876 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 877 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 878 | "dev": true 879 | }, 880 | "node_modules/eslint/node_modules/json-stable-stringify-without-jsonify": { 881 | "version": "1.0.1", 882 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", 883 | "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", 884 | "dev": true 885 | }, 886 | "node_modules/eslint/node_modules/levn": { 887 | "version": "0.4.1", 888 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", 889 | "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", 890 | "dev": true, 891 | "dependencies": { 892 | "prelude-ls": "^1.2.1", 893 | "type-check": "~0.4.0" 894 | }, 895 | "engines": { 896 | "node": ">= 0.8.0" 897 | } 898 | }, 899 | "node_modules/eslint/node_modules/lodash.merge": { 900 | "version": "4.6.2", 901 | "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", 902 | "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", 903 | "dev": true 904 | }, 905 | "node_modules/eslint/node_modules/natural-compare": { 906 | "version": "1.4.0", 907 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", 908 | "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", 909 | "dev": true 910 | }, 911 | "node_modules/eslint/node_modules/once": { 912 | "version": "1.4.0", 913 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 914 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 915 | "dev": true, 916 | "dependencies": { 917 | "wrappy": "1" 918 | } 919 | }, 920 | "node_modules/eslint/node_modules/optionator": { 921 | "version": "0.9.1", 922 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", 923 | "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", 924 | "dev": true, 925 | "dependencies": { 926 | "deep-is": "^0.1.3", 927 | "fast-levenshtein": "^2.0.6", 928 | "levn": "^0.4.1", 929 | "prelude-ls": "^1.2.1", 930 | "type-check": "^0.4.0", 931 | "word-wrap": "^1.2.3" 932 | }, 933 | "engines": { 934 | "node": ">= 0.8.0" 935 | } 936 | }, 937 | "node_modules/eslint/node_modules/path-is-absolute": { 938 | "version": "1.0.1", 939 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 940 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 941 | "dev": true, 942 | "engines": { 943 | "node": ">=0.10.0" 944 | } 945 | }, 946 | "node_modules/eslint/node_modules/path-key": { 947 | "version": "3.1.1", 948 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 949 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 950 | "dev": true, 951 | "engines": { 952 | "node": ">=8" 953 | } 954 | }, 955 | "node_modules/eslint/node_modules/prelude-ls": { 956 | "version": "1.2.1", 957 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", 958 | "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", 959 | "dev": true, 960 | "engines": { 961 | "node": ">= 0.8.0" 962 | } 963 | }, 964 | "node_modules/eslint/node_modules/progress": { 965 | "version": "2.0.3", 966 | "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", 967 | "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", 968 | "dev": true, 969 | "engines": { 970 | "node": ">=0.4.0" 971 | } 972 | }, 973 | "node_modules/eslint/node_modules/rimraf": { 974 | "version": "3.0.2", 975 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", 976 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", 977 | "dev": true, 978 | "dependencies": { 979 | "glob": "^7.1.3" 980 | }, 981 | "bin": { 982 | "rimraf": "bin.js" 983 | }, 984 | "funding": { 985 | "url": "https://github.com/sponsors/isaacs" 986 | } 987 | }, 988 | "node_modules/eslint/node_modules/shebang-command": { 989 | "version": "2.0.0", 990 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 991 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 992 | "dev": true, 993 | "dependencies": { 994 | "shebang-regex": "^3.0.0" 995 | }, 996 | "engines": { 997 | "node": ">=8" 998 | } 999 | }, 1000 | "node_modules/eslint/node_modules/shebang-regex": { 1001 | "version": "3.0.0", 1002 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 1003 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 1004 | "dev": true, 1005 | "engines": { 1006 | "node": ">=8" 1007 | } 1008 | }, 1009 | "node_modules/eslint/node_modules/strip-ansi": { 1010 | "version": "6.0.1", 1011 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 1012 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 1013 | "dev": true, 1014 | "dependencies": { 1015 | "ansi-regex": "^5.0.1" 1016 | }, 1017 | "engines": { 1018 | "node": ">=8" 1019 | } 1020 | }, 1021 | "node_modules/eslint/node_modules/supports-color": { 1022 | "version": "7.2.0", 1023 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 1024 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 1025 | "dev": true, 1026 | "dependencies": { 1027 | "has-flag": "^4.0.0" 1028 | }, 1029 | "engines": { 1030 | "node": ">=8" 1031 | } 1032 | }, 1033 | "node_modules/eslint/node_modules/text-table": { 1034 | "version": "0.2.0", 1035 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", 1036 | "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", 1037 | "dev": true 1038 | }, 1039 | "node_modules/eslint/node_modules/type-check": { 1040 | "version": "0.4.0", 1041 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", 1042 | "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", 1043 | "dev": true, 1044 | "dependencies": { 1045 | "prelude-ls": "^1.2.1" 1046 | }, 1047 | "engines": { 1048 | "node": ">= 0.8.0" 1049 | } 1050 | }, 1051 | "node_modules/eslint/node_modules/v8-compile-cache": { 1052 | "version": "2.3.0", 1053 | "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", 1054 | "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", 1055 | "dev": true 1056 | }, 1057 | "node_modules/eslint/node_modules/which": { 1058 | "version": "2.0.2", 1059 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 1060 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 1061 | "dev": true, 1062 | "dependencies": { 1063 | "isexe": "^2.0.0" 1064 | }, 1065 | "bin": { 1066 | "node-which": "bin/node-which" 1067 | }, 1068 | "engines": { 1069 | "node": ">= 8" 1070 | } 1071 | }, 1072 | "node_modules/eslint/node_modules/word-wrap": { 1073 | "version": "1.2.3", 1074 | "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", 1075 | "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", 1076 | "dev": true, 1077 | "engines": { 1078 | "node": ">=0.10.0" 1079 | } 1080 | }, 1081 | "node_modules/eslint/node_modules/wrappy": { 1082 | "version": "1.0.2", 1083 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1084 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 1085 | "dev": true 1086 | }, 1087 | "node_modules/espree": { 1088 | "version": "9.1.0", 1089 | "resolved": "https://registry.npmjs.org/espree/-/espree-9.1.0.tgz", 1090 | "integrity": "sha512-ZgYLvCS1wxOczBYGcQT9DDWgicXwJ4dbocr9uYN+/eresBAUuBu+O4WzB21ufQ/JqQT8gyp7hJ3z8SHii32mTQ==", 1091 | "dev": true, 1092 | "dependencies": { 1093 | "acorn": "^8.6.0", 1094 | "acorn-jsx": "^5.3.1", 1095 | "eslint-visitor-keys": "^3.1.0" 1096 | }, 1097 | "engines": { 1098 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 1099 | } 1100 | }, 1101 | "node_modules/esrecurse": { 1102 | "version": "4.3.0", 1103 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", 1104 | "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", 1105 | "dev": true, 1106 | "dependencies": { 1107 | "estraverse": "^5.2.0" 1108 | }, 1109 | "engines": { 1110 | "node": ">=4.0" 1111 | } 1112 | }, 1113 | "node_modules/esrecurse/node_modules/estraverse": { 1114 | "version": "5.3.0", 1115 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", 1116 | "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", 1117 | "dev": true, 1118 | "engines": { 1119 | "node": ">=4.0" 1120 | } 1121 | }, 1122 | "node_modules/estraverse": { 1123 | "version": "4.3.0", 1124 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", 1125 | "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", 1126 | "dev": true, 1127 | "engines": { 1128 | "node": ">=4.0" 1129 | } 1130 | }, 1131 | "node_modules/fast-deep-equal": { 1132 | "version": "3.1.3", 1133 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 1134 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", 1135 | "dev": true 1136 | }, 1137 | "node_modules/fast-glob": { 1138 | "version": "3.2.7", 1139 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", 1140 | "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", 1141 | "dev": true, 1142 | "dependencies": { 1143 | "@nodelib/fs.stat": "^2.0.2", 1144 | "@nodelib/fs.walk": "^1.2.3", 1145 | "glob-parent": "^5.1.2", 1146 | "merge2": "^1.3.0", 1147 | "micromatch": "^4.0.4" 1148 | }, 1149 | "engines": { 1150 | "node": ">=8" 1151 | } 1152 | }, 1153 | "node_modules/fast-json-stable-stringify": { 1154 | "version": "2.1.0", 1155 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 1156 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", 1157 | "dev": true 1158 | }, 1159 | "node_modules/fastq": { 1160 | "version": "1.13.0", 1161 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", 1162 | "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", 1163 | "dev": true, 1164 | "dependencies": { 1165 | "reusify": "^1.0.4" 1166 | } 1167 | }, 1168 | "node_modules/fetch-blob": { 1169 | "version": "3.1.2", 1170 | "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.1.2.tgz", 1171 | "integrity": "sha512-hunJbvy/6OLjCD0uuhLdp0mMPzP/yd2ssd1t2FCJsaA7wkWhpbp9xfuNVpv7Ll4jFhzp6T4LAupSiV9uOeg0VQ==", 1172 | "funding": [ 1173 | { 1174 | "type": "github", 1175 | "url": "https://github.com/sponsors/jimmywarting" 1176 | }, 1177 | { 1178 | "type": "paypal", 1179 | "url": "https://paypal.me/jimmywarting" 1180 | } 1181 | ], 1182 | "dependencies": { 1183 | "web-streams-polyfill": "^3.0.3" 1184 | }, 1185 | "engines": { 1186 | "node": "^12.20 || >= 14.13" 1187 | } 1188 | }, 1189 | "node_modules/fetch-blob/node_modules/web-streams-polyfill": { 1190 | "version": "3.1.1", 1191 | "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.1.1.tgz", 1192 | "integrity": "sha512-Czi3fG883e96T4DLEPRvufrF2ydhOOW1+1a6c3gNjH2aIh50DNFBdfwh2AKoOf1rXvpvavAoA11Qdq9+BKjE0Q==", 1193 | "engines": { 1194 | "node": ">= 8" 1195 | } 1196 | }, 1197 | "node_modules/fill-range": { 1198 | "version": "7.0.1", 1199 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", 1200 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", 1201 | "dev": true, 1202 | "dependencies": { 1203 | "to-regex-range": "^5.0.1" 1204 | }, 1205 | "engines": { 1206 | "node": ">=8" 1207 | } 1208 | }, 1209 | "node_modules/form-data": { 1210 | "version": "4.0.0", 1211 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", 1212 | "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", 1213 | "dependencies": { 1214 | "asynckit": "^0.4.0", 1215 | "combined-stream": "^1.0.8", 1216 | "mime-types": "^2.1.12" 1217 | }, 1218 | "engines": { 1219 | "node": ">= 6" 1220 | } 1221 | }, 1222 | "node_modules/formdata-polyfill": { 1223 | "version": "4.0.10", 1224 | "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", 1225 | "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", 1226 | "dependencies": { 1227 | "fetch-blob": "^3.1.2" 1228 | }, 1229 | "engines": { 1230 | "node": ">=12.20.0" 1231 | } 1232 | }, 1233 | "node_modules/functional-red-black-tree": { 1234 | "version": "1.0.1", 1235 | "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", 1236 | "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", 1237 | "dev": true 1238 | }, 1239 | "node_modules/glob-parent": { 1240 | "version": "5.1.2", 1241 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 1242 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 1243 | "dev": true, 1244 | "dependencies": { 1245 | "is-glob": "^4.0.1" 1246 | }, 1247 | "engines": { 1248 | "node": ">= 6" 1249 | } 1250 | }, 1251 | "node_modules/globals": { 1252 | "version": "13.12.0", 1253 | "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", 1254 | "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", 1255 | "dev": true, 1256 | "dependencies": { 1257 | "type-fest": "^0.20.2" 1258 | }, 1259 | "engines": { 1260 | "node": ">=8" 1261 | }, 1262 | "funding": { 1263 | "url": "https://github.com/sponsors/sindresorhus" 1264 | } 1265 | }, 1266 | "node_modules/globby": { 1267 | "version": "11.0.4", 1268 | "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", 1269 | "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", 1270 | "dev": true, 1271 | "dependencies": { 1272 | "array-union": "^2.1.0", 1273 | "dir-glob": "^3.0.1", 1274 | "fast-glob": "^3.1.1", 1275 | "ignore": "^5.1.4", 1276 | "merge2": "^1.3.0", 1277 | "slash": "^3.0.0" 1278 | }, 1279 | "engines": { 1280 | "node": ">=10" 1281 | }, 1282 | "funding": { 1283 | "url": "https://github.com/sponsors/sindresorhus" 1284 | } 1285 | }, 1286 | "node_modules/ignore": { 1287 | "version": "5.1.8", 1288 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", 1289 | "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", 1290 | "dev": true, 1291 | "engines": { 1292 | "node": ">= 4" 1293 | } 1294 | }, 1295 | "node_modules/import-fresh": { 1296 | "version": "3.3.0", 1297 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", 1298 | "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", 1299 | "dev": true, 1300 | "dependencies": { 1301 | "parent-module": "^1.0.0", 1302 | "resolve-from": "^4.0.0" 1303 | }, 1304 | "engines": { 1305 | "node": ">=6" 1306 | }, 1307 | "funding": { 1308 | "url": "https://github.com/sponsors/sindresorhus" 1309 | } 1310 | }, 1311 | "node_modules/is-extglob": { 1312 | "version": "2.1.1", 1313 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 1314 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", 1315 | "dev": true, 1316 | "engines": { 1317 | "node": ">=0.10.0" 1318 | } 1319 | }, 1320 | "node_modules/is-glob": { 1321 | "version": "4.0.3", 1322 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 1323 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 1324 | "dev": true, 1325 | "dependencies": { 1326 | "is-extglob": "^2.1.1" 1327 | }, 1328 | "engines": { 1329 | "node": ">=0.10.0" 1330 | } 1331 | }, 1332 | "node_modules/is-number": { 1333 | "version": "7.0.0", 1334 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 1335 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 1336 | "dev": true, 1337 | "engines": { 1338 | "node": ">=0.12.0" 1339 | } 1340 | }, 1341 | "node_modules/js-yaml": { 1342 | "version": "4.1.0", 1343 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", 1344 | "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", 1345 | "dev": true, 1346 | "dependencies": { 1347 | "argparse": "^2.0.1" 1348 | }, 1349 | "bin": { 1350 | "js-yaml": "bin/js-yaml.js" 1351 | } 1352 | }, 1353 | "node_modules/json-schema-traverse": { 1354 | "version": "0.4.1", 1355 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 1356 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", 1357 | "dev": true 1358 | }, 1359 | "node_modules/merge2": { 1360 | "version": "1.4.1", 1361 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", 1362 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", 1363 | "dev": true, 1364 | "engines": { 1365 | "node": ">= 8" 1366 | } 1367 | }, 1368 | "node_modules/micromatch": { 1369 | "version": "4.0.4", 1370 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", 1371 | "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", 1372 | "dev": true, 1373 | "dependencies": { 1374 | "braces": "^3.0.1", 1375 | "picomatch": "^2.2.3" 1376 | }, 1377 | "engines": { 1378 | "node": ">=8.6" 1379 | } 1380 | }, 1381 | "node_modules/mime-types": { 1382 | "version": "2.1.33", 1383 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.33.tgz", 1384 | "integrity": "sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g==", 1385 | "dependencies": { 1386 | "mime-db": "1.50.0" 1387 | }, 1388 | "engines": { 1389 | "node": ">= 0.6" 1390 | } 1391 | }, 1392 | "node_modules/mime-types/node_modules/mime-db": { 1393 | "version": "1.50.0", 1394 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.50.0.tgz", 1395 | "integrity": "sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A==", 1396 | "engines": { 1397 | "node": ">= 0.6" 1398 | } 1399 | }, 1400 | "node_modules/minimatch": { 1401 | "version": "3.0.4", 1402 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 1403 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 1404 | "dev": true, 1405 | "dependencies": { 1406 | "brace-expansion": "^1.1.7" 1407 | }, 1408 | "engines": { 1409 | "node": "*" 1410 | } 1411 | }, 1412 | "node_modules/node-fetch": { 1413 | "version": "3.1.0", 1414 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.1.0.tgz", 1415 | "integrity": "sha512-QU0WbIfMUjd5+MUzQOYhenAazakV7Irh1SGkWCsRzBwvm4fAhzEUaHMJ6QLP7gWT6WO9/oH2zhKMMGMuIrDyKw==", 1416 | "dependencies": { 1417 | "data-uri-to-buffer": "^4.0.0", 1418 | "fetch-blob": "^3.1.2", 1419 | "formdata-polyfill": "^4.0.10" 1420 | }, 1421 | "engines": { 1422 | "node": "^12.20.0 || ^14.13.1 || >=16.0.0" 1423 | }, 1424 | "funding": { 1425 | "type": "opencollective", 1426 | "url": "https://opencollective.com/node-fetch" 1427 | } 1428 | }, 1429 | "node_modules/openai": { 1430 | "version": "1.1.2", 1431 | "resolved": "https://registry.npmjs.org/openai/-/openai-1.1.2.tgz", 1432 | "integrity": "sha512-LhCpENJ9dSJu7K8+Wu5DUxJW1M9t+3KcRAZPC9q9FbT1wRDSbUrTLQx3qfByleoY8b0mvus33l7qcOZKQdSKpQ==", 1433 | "hasInstallScript": true, 1434 | "dependencies": { 1435 | "form-data": "4.0.0", 1436 | "node-fetch": "3.1.0" 1437 | } 1438 | }, 1439 | "node_modules/parent-module": { 1440 | "version": "1.0.1", 1441 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 1442 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 1443 | "dev": true, 1444 | "dependencies": { 1445 | "callsites": "^3.0.0" 1446 | }, 1447 | "engines": { 1448 | "node": ">=6" 1449 | } 1450 | }, 1451 | "node_modules/path-type": { 1452 | "version": "4.0.0", 1453 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", 1454 | "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", 1455 | "dev": true, 1456 | "engines": { 1457 | "node": ">=8" 1458 | } 1459 | }, 1460 | "node_modules/picomatch": { 1461 | "version": "2.3.0", 1462 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", 1463 | "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", 1464 | "dev": true, 1465 | "engines": { 1466 | "node": ">=8.6" 1467 | }, 1468 | "funding": { 1469 | "url": "https://github.com/sponsors/jonschlinkert" 1470 | } 1471 | }, 1472 | "node_modules/prettier": { 1473 | "version": "2.5.0", 1474 | "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.0.tgz", 1475 | "integrity": "sha512-FM/zAKgWTxj40rH03VxzIPdXmj39SwSjwG0heUcNFwI+EMZJnY93yAiKXM3dObIKAM5TA88werc8T/EwhB45eg==", 1476 | "dev": true, 1477 | "bin": { 1478 | "prettier": "bin-prettier.js" 1479 | }, 1480 | "engines": { 1481 | "node": ">=10.13.0" 1482 | } 1483 | }, 1484 | "node_modules/prettier-linter-helpers": { 1485 | "version": "1.0.0", 1486 | "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", 1487 | "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", 1488 | "dev": true, 1489 | "dependencies": { 1490 | "fast-diff": "^1.1.2" 1491 | }, 1492 | "engines": { 1493 | "node": ">=6.0.0" 1494 | } 1495 | }, 1496 | "node_modules/prettier-linter-helpers/node_modules/fast-diff": { 1497 | "version": "1.2.0", 1498 | "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", 1499 | "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", 1500 | "dev": true 1501 | }, 1502 | "node_modules/punycode": { 1503 | "version": "2.1.1", 1504 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 1505 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", 1506 | "dev": true, 1507 | "engines": { 1508 | "node": ">=6" 1509 | } 1510 | }, 1511 | "node_modules/queue-microtask": { 1512 | "version": "1.2.3", 1513 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", 1514 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", 1515 | "dev": true, 1516 | "funding": [ 1517 | { 1518 | "type": "github", 1519 | "url": "https://github.com/sponsors/feross" 1520 | }, 1521 | { 1522 | "type": "patreon", 1523 | "url": "https://www.patreon.com/feross" 1524 | }, 1525 | { 1526 | "type": "consulting", 1527 | "url": "https://feross.org/support" 1528 | } 1529 | ] 1530 | }, 1531 | "node_modules/regexpp": { 1532 | "version": "3.2.0", 1533 | "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", 1534 | "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", 1535 | "dev": true, 1536 | "engines": { 1537 | "node": ">=8" 1538 | }, 1539 | "funding": { 1540 | "url": "https://github.com/sponsors/mysticatea" 1541 | } 1542 | }, 1543 | "node_modules/resolve-from": { 1544 | "version": "4.0.0", 1545 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 1546 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", 1547 | "dev": true, 1548 | "engines": { 1549 | "node": ">=4" 1550 | } 1551 | }, 1552 | "node_modules/reusify": { 1553 | "version": "1.0.4", 1554 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", 1555 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", 1556 | "dev": true, 1557 | "engines": { 1558 | "iojs": ">=1.0.0", 1559 | "node": ">=0.10.0" 1560 | } 1561 | }, 1562 | "node_modules/run-parallel": { 1563 | "version": "1.2.0", 1564 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", 1565 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", 1566 | "dev": true, 1567 | "funding": [ 1568 | { 1569 | "type": "github", 1570 | "url": "https://github.com/sponsors/feross" 1571 | }, 1572 | { 1573 | "type": "patreon", 1574 | "url": "https://www.patreon.com/feross" 1575 | }, 1576 | { 1577 | "type": "consulting", 1578 | "url": "https://feross.org/support" 1579 | } 1580 | ], 1581 | "dependencies": { 1582 | "queue-microtask": "^1.2.2" 1583 | } 1584 | }, 1585 | "node_modules/semver": { 1586 | "version": "7.3.5", 1587 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", 1588 | "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", 1589 | "dev": true, 1590 | "dependencies": { 1591 | "lru-cache": "^6.0.0" 1592 | }, 1593 | "bin": { 1594 | "semver": "bin/semver.js" 1595 | }, 1596 | "engines": { 1597 | "node": ">=10" 1598 | } 1599 | }, 1600 | "node_modules/semver/node_modules/lru-cache": { 1601 | "version": "6.0.0", 1602 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", 1603 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", 1604 | "dev": true, 1605 | "dependencies": { 1606 | "yallist": "^4.0.0" 1607 | }, 1608 | "engines": { 1609 | "node": ">=10" 1610 | } 1611 | }, 1612 | "node_modules/semver/node_modules/yallist": { 1613 | "version": "4.0.0", 1614 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", 1615 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", 1616 | "dev": true 1617 | }, 1618 | "node_modules/slash": { 1619 | "version": "3.0.0", 1620 | "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", 1621 | "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", 1622 | "dev": true, 1623 | "engines": { 1624 | "node": ">=8" 1625 | } 1626 | }, 1627 | "node_modules/strip-json-comments": { 1628 | "version": "3.1.1", 1629 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", 1630 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", 1631 | "dev": true, 1632 | "engines": { 1633 | "node": ">=8" 1634 | }, 1635 | "funding": { 1636 | "url": "https://github.com/sponsors/sindresorhus" 1637 | } 1638 | }, 1639 | "node_modules/to-regex-range": { 1640 | "version": "5.0.1", 1641 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 1642 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 1643 | "dev": true, 1644 | "dependencies": { 1645 | "is-number": "^7.0.0" 1646 | }, 1647 | "engines": { 1648 | "node": ">=8.0" 1649 | } 1650 | }, 1651 | "node_modules/tsutils": { 1652 | "version": "3.21.0", 1653 | "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", 1654 | "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", 1655 | "dev": true, 1656 | "dependencies": { 1657 | "tslib": "^1.8.1" 1658 | }, 1659 | "engines": { 1660 | "node": ">= 6" 1661 | }, 1662 | "peerDependencies": { 1663 | "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" 1664 | } 1665 | }, 1666 | "node_modules/tsutils/node_modules/tslib": { 1667 | "version": "1.14.1", 1668 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", 1669 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", 1670 | "dev": true 1671 | }, 1672 | "node_modules/type-fest": { 1673 | "version": "0.20.2", 1674 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", 1675 | "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", 1676 | "dev": true, 1677 | "engines": { 1678 | "node": ">=10" 1679 | }, 1680 | "funding": { 1681 | "url": "https://github.com/sponsors/sindresorhus" 1682 | } 1683 | }, 1684 | "node_modules/typescript": { 1685 | "version": "4.5.2", 1686 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.2.tgz", 1687 | "integrity": "sha512-5BlMof9H1yGt0P8/WF+wPNw6GfctgGjXp5hkblpyT+8rkASSmkUKMXrxR0Xg8ThVCi/JnHQiKXeBaEwCeQwMFw==", 1688 | "dev": true, 1689 | "bin": { 1690 | "tsc": "bin/tsc", 1691 | "tsserver": "bin/tsserver" 1692 | }, 1693 | "engines": { 1694 | "node": ">=4.2.0" 1695 | } 1696 | }, 1697 | "node_modules/uri-js": { 1698 | "version": "4.4.1", 1699 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", 1700 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", 1701 | "dev": true, 1702 | "dependencies": { 1703 | "punycode": "^2.1.0" 1704 | } 1705 | } 1706 | }, 1707 | "dependencies": { 1708 | "@eslint/eslintrc": { 1709 | "version": "1.0.4", 1710 | "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.4.tgz", 1711 | "integrity": "sha512-h8Vx6MdxwWI2WM8/zREHMoqdgLNXEL4QX3MWSVMdyNJGvXVOs+6lp+m2hc3FnuMHDc4poxFNI20vCk0OmI4G0Q==", 1712 | "dev": true, 1713 | "requires": { 1714 | "ajv": "^6.12.4", 1715 | "debug": "^4.3.2", 1716 | "espree": "^9.0.0", 1717 | "globals": "^13.9.0", 1718 | "ignore": "^4.0.6", 1719 | "import-fresh": "^3.2.1", 1720 | "js-yaml": "^4.1.0", 1721 | "minimatch": "^3.0.4", 1722 | "strip-json-comments": "^3.1.1" 1723 | }, 1724 | "dependencies": { 1725 | "ignore": { 1726 | "version": "4.0.6", 1727 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", 1728 | "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", 1729 | "dev": true 1730 | } 1731 | } 1732 | }, 1733 | "@nodelib/fs.scandir": { 1734 | "version": "2.1.5", 1735 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", 1736 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", 1737 | "dev": true, 1738 | "requires": { 1739 | "@nodelib/fs.stat": "2.0.5", 1740 | "run-parallel": "^1.1.9" 1741 | } 1742 | }, 1743 | "@nodelib/fs.stat": { 1744 | "version": "2.0.5", 1745 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", 1746 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", 1747 | "dev": true 1748 | }, 1749 | "@nodelib/fs.walk": { 1750 | "version": "1.2.8", 1751 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", 1752 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", 1753 | "dev": true, 1754 | "requires": { 1755 | "@nodelib/fs.scandir": "2.1.5", 1756 | "fastq": "^1.6.0" 1757 | } 1758 | }, 1759 | "@types/json-schema": { 1760 | "version": "7.0.9", 1761 | "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", 1762 | "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", 1763 | "dev": true 1764 | }, 1765 | "@types/node": { 1766 | "version": "16.11.11", 1767 | "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.11.tgz", 1768 | "integrity": "sha512-KB0sixD67CeecHC33MYn+eYARkqTheIRNuu97y2XMjR7Wu3XibO1vaY6VBV6O/a89SPI81cEUIYT87UqUWlZNw==", 1769 | "dev": true 1770 | }, 1771 | "@typescript-eslint/eslint-plugin": { 1772 | "version": "5.5.0", 1773 | "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.5.0.tgz", 1774 | "integrity": "sha512-4bV6fulqbuaO9UMXU0Ia0o6z6if+kmMRW8rMRyfqXj/eGrZZRGedS4n0adeGNnjr8LKAM495hrQ7Tea52UWmQA==", 1775 | "dev": true, 1776 | "requires": { 1777 | "@typescript-eslint/experimental-utils": "5.5.0", 1778 | "@typescript-eslint/scope-manager": "5.5.0", 1779 | "debug": "^4.3.2", 1780 | "functional-red-black-tree": "^1.0.1", 1781 | "ignore": "^5.1.8", 1782 | "regexpp": "^3.2.0", 1783 | "semver": "^7.3.5", 1784 | "tsutils": "^3.21.0" 1785 | } 1786 | }, 1787 | "@typescript-eslint/experimental-utils": { 1788 | "version": "5.5.0", 1789 | "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.5.0.tgz", 1790 | "integrity": "sha512-kjWeeVU+4lQ1SLYErRKV5yDXbWDPkpbzTUUlfAUifPYvpX0qZlrcCZ96/6oWxt3QxtK5WVhXz+KsnwW9cIW+3A==", 1791 | "dev": true, 1792 | "requires": { 1793 | "@types/json-schema": "^7.0.9", 1794 | "@typescript-eslint/scope-manager": "5.5.0", 1795 | "@typescript-eslint/types": "5.5.0", 1796 | "@typescript-eslint/typescript-estree": "5.5.0", 1797 | "eslint-scope": "^5.1.1", 1798 | "eslint-utils": "^3.0.0" 1799 | } 1800 | }, 1801 | "@typescript-eslint/parser": { 1802 | "version": "5.5.0", 1803 | "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.5.0.tgz", 1804 | "integrity": "sha512-JsXBU+kgQOAgzUn2jPrLA+Rd0Y1dswOlX3hp8MuRO1hQDs6xgHtbCXEiAu7bz5hyVURxbXcA2draasMbNqrhmg==", 1805 | "dev": true, 1806 | "requires": { 1807 | "@typescript-eslint/scope-manager": "5.5.0", 1808 | "@typescript-eslint/types": "5.5.0", 1809 | "@typescript-eslint/typescript-estree": "5.5.0", 1810 | "debug": "^4.3.2" 1811 | } 1812 | }, 1813 | "@typescript-eslint/scope-manager": { 1814 | "version": "5.5.0", 1815 | "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.5.0.tgz", 1816 | "integrity": "sha512-0/r656RmRLo7CbN4Mdd+xZyPJ/fPCKhYdU6mnZx+8msAD8nJSP8EyCFkzbd6vNVZzZvWlMYrSNekqGrCBqFQhg==", 1817 | "dev": true, 1818 | "requires": { 1819 | "@typescript-eslint/types": "5.5.0", 1820 | "@typescript-eslint/visitor-keys": "5.5.0" 1821 | } 1822 | }, 1823 | "@typescript-eslint/types": { 1824 | "version": "5.5.0", 1825 | "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.5.0.tgz", 1826 | "integrity": "sha512-OaYTqkW3GnuHxqsxxJ6KypIKd5Uw7bFiQJZRyNi1jbMJnK3Hc/DR4KwB6KJj6PBRkJJoaNwzMNv9vtTk87JhOg==", 1827 | "dev": true 1828 | }, 1829 | "@typescript-eslint/typescript-estree": { 1830 | "version": "5.5.0", 1831 | "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.5.0.tgz", 1832 | "integrity": "sha512-pVn8btYUiYrjonhMAO0yG8lm7RApzy2L4RC7Td/mC/qFkyf6vRbGyZozoA94+w6D2Y2GRqpMoCWcwx/EUOzyoQ==", 1833 | "dev": true, 1834 | "requires": { 1835 | "@typescript-eslint/types": "5.5.0", 1836 | "@typescript-eslint/visitor-keys": "5.5.0", 1837 | "debug": "^4.3.2", 1838 | "globby": "^11.0.4", 1839 | "is-glob": "^4.0.3", 1840 | "semver": "^7.3.5", 1841 | "tsutils": "^3.21.0" 1842 | } 1843 | }, 1844 | "@typescript-eslint/visitor-keys": { 1845 | "version": "5.5.0", 1846 | "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.5.0.tgz", 1847 | "integrity": "sha512-4GzJ1kRtsWzHhdM40tv0ZKHNSbkDhF0Woi/TDwVJX6UICwJItvP7ZTXbjTkCdrors7ww0sYe0t+cIKDAJwZ7Kw==", 1848 | "dev": true, 1849 | "requires": { 1850 | "@typescript-eslint/types": "5.5.0", 1851 | "eslint-visitor-keys": "^3.0.0" 1852 | } 1853 | }, 1854 | "acorn": { 1855 | "version": "8.6.0", 1856 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz", 1857 | "integrity": "sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==", 1858 | "dev": true 1859 | }, 1860 | "acorn-jsx": { 1861 | "version": "5.3.2", 1862 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", 1863 | "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", 1864 | "dev": true, 1865 | "requires": {} 1866 | }, 1867 | "ajv": { 1868 | "version": "6.12.6", 1869 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", 1870 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", 1871 | "dev": true, 1872 | "requires": { 1873 | "fast-deep-equal": "^3.1.1", 1874 | "fast-json-stable-stringify": "^2.0.0", 1875 | "json-schema-traverse": "^0.4.1", 1876 | "uri-js": "^4.2.2" 1877 | } 1878 | }, 1879 | "argparse": { 1880 | "version": "2.0.1", 1881 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", 1882 | "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", 1883 | "dev": true 1884 | }, 1885 | "array-union": { 1886 | "version": "2.1.0", 1887 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", 1888 | "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", 1889 | "dev": true 1890 | }, 1891 | "asynckit": { 1892 | "version": "0.4.0", 1893 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 1894 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" 1895 | }, 1896 | "balanced-match": { 1897 | "version": "1.0.2", 1898 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 1899 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 1900 | "dev": true 1901 | }, 1902 | "brace-expansion": { 1903 | "version": "1.1.11", 1904 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 1905 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 1906 | "dev": true, 1907 | "requires": { 1908 | "balanced-match": "^1.0.0", 1909 | "concat-map": "0.0.1" 1910 | } 1911 | }, 1912 | "braces": { 1913 | "version": "3.0.2", 1914 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", 1915 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", 1916 | "dev": true, 1917 | "requires": { 1918 | "fill-range": "^7.0.1" 1919 | } 1920 | }, 1921 | "callsites": { 1922 | "version": "3.1.0", 1923 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 1924 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 1925 | "dev": true 1926 | }, 1927 | "combined-stream": { 1928 | "version": "1.0.8", 1929 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", 1930 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", 1931 | "requires": { 1932 | "delayed-stream": "~1.0.0" 1933 | }, 1934 | "dependencies": { 1935 | "delayed-stream": { 1936 | "version": "1.0.0", 1937 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 1938 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" 1939 | } 1940 | } 1941 | }, 1942 | "concat-map": { 1943 | "version": "0.0.1", 1944 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 1945 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 1946 | "dev": true 1947 | }, 1948 | "data-uri-to-buffer": { 1949 | "version": "4.0.0", 1950 | "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz", 1951 | "integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==" 1952 | }, 1953 | "debug": { 1954 | "version": "4.3.2", 1955 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", 1956 | "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", 1957 | "dev": true, 1958 | "requires": { 1959 | "ms": "2.1.2" 1960 | }, 1961 | "dependencies": { 1962 | "ms": { 1963 | "version": "2.1.2", 1964 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 1965 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 1966 | "dev": true 1967 | } 1968 | } 1969 | }, 1970 | "dir-glob": { 1971 | "version": "3.0.1", 1972 | "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", 1973 | "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", 1974 | "dev": true, 1975 | "requires": { 1976 | "path-type": "^4.0.0" 1977 | } 1978 | }, 1979 | "eslint": { 1980 | "version": "8.3.0", 1981 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.3.0.tgz", 1982 | "integrity": "sha512-aIay56Ph6RxOTC7xyr59Kt3ewX185SaGnAr8eWukoPLeriCrvGjvAubxuvaXOfsxhtwV5g0uBOsyhAom4qJdww==", 1983 | "dev": true, 1984 | "requires": { 1985 | "@eslint/eslintrc": "^1.0.4", 1986 | "@humanwhocodes/config-array": "^0.6.0", 1987 | "ajv": "^6.10.0", 1988 | "chalk": "^4.0.0", 1989 | "cross-spawn": "^7.0.2", 1990 | "debug": "^4.3.2", 1991 | "doctrine": "^3.0.0", 1992 | "enquirer": "^2.3.5", 1993 | "escape-string-regexp": "^4.0.0", 1994 | "eslint-scope": "^7.1.0", 1995 | "eslint-utils": "^3.0.0", 1996 | "eslint-visitor-keys": "^3.1.0", 1997 | "espree": "^9.1.0", 1998 | "esquery": "^1.4.0", 1999 | "esutils": "^2.0.2", 2000 | "fast-deep-equal": "^3.1.3", 2001 | "file-entry-cache": "^6.0.1", 2002 | "functional-red-black-tree": "^1.0.1", 2003 | "glob-parent": "^6.0.1", 2004 | "globals": "^13.6.0", 2005 | "ignore": "^4.0.6", 2006 | "import-fresh": "^3.0.0", 2007 | "imurmurhash": "^0.1.4", 2008 | "is-glob": "^4.0.0", 2009 | "js-yaml": "^4.1.0", 2010 | "json-stable-stringify-without-jsonify": "^1.0.1", 2011 | "levn": "^0.4.1", 2012 | "lodash.merge": "^4.6.2", 2013 | "minimatch": "^3.0.4", 2014 | "natural-compare": "^1.4.0", 2015 | "optionator": "^0.9.1", 2016 | "progress": "^2.0.0", 2017 | "regexpp": "^3.2.0", 2018 | "semver": "^7.2.1", 2019 | "strip-ansi": "^6.0.1", 2020 | "strip-json-comments": "^3.1.0", 2021 | "text-table": "^0.2.0", 2022 | "v8-compile-cache": "^2.0.3" 2023 | }, 2024 | "dependencies": { 2025 | "@humanwhocodes/config-array": { 2026 | "version": "0.6.0", 2027 | "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.6.0.tgz", 2028 | "integrity": "sha512-JQlEKbcgEUjBFhLIF4iqM7u/9lwgHRBcpHrmUNCALK0Q3amXN6lxdoXLnF0sm11E9VqTmBALR87IlUg1bZ8A9A==", 2029 | "dev": true, 2030 | "requires": { 2031 | "@humanwhocodes/object-schema": "^1.2.0", 2032 | "debug": "^4.1.1", 2033 | "minimatch": "^3.0.4" 2034 | } 2035 | }, 2036 | "@humanwhocodes/object-schema": { 2037 | "version": "1.2.0", 2038 | "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz", 2039 | "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==", 2040 | "dev": true 2041 | }, 2042 | "ansi-colors": { 2043 | "version": "4.1.1", 2044 | "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", 2045 | "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", 2046 | "dev": true 2047 | }, 2048 | "ansi-regex": { 2049 | "version": "5.0.1", 2050 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 2051 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 2052 | "dev": true 2053 | }, 2054 | "ansi-styles": { 2055 | "version": "4.3.0", 2056 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 2057 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 2058 | "dev": true, 2059 | "requires": { 2060 | "color-convert": "^2.0.1" 2061 | } 2062 | }, 2063 | "chalk": { 2064 | "version": "4.1.2", 2065 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 2066 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 2067 | "dev": true, 2068 | "requires": { 2069 | "ansi-styles": "^4.1.0", 2070 | "supports-color": "^7.1.0" 2071 | } 2072 | }, 2073 | "color-convert": { 2074 | "version": "2.0.1", 2075 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 2076 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 2077 | "dev": true, 2078 | "requires": { 2079 | "color-name": "~1.1.4" 2080 | } 2081 | }, 2082 | "color-name": { 2083 | "version": "1.1.4", 2084 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 2085 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 2086 | "dev": true 2087 | }, 2088 | "cross-spawn": { 2089 | "version": "7.0.3", 2090 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", 2091 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", 2092 | "dev": true, 2093 | "requires": { 2094 | "path-key": "^3.1.0", 2095 | "shebang-command": "^2.0.0", 2096 | "which": "^2.0.1" 2097 | } 2098 | }, 2099 | "deep-is": { 2100 | "version": "0.1.4", 2101 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", 2102 | "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", 2103 | "dev": true 2104 | }, 2105 | "doctrine": { 2106 | "version": "3.0.0", 2107 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", 2108 | "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", 2109 | "dev": true, 2110 | "requires": { 2111 | "esutils": "^2.0.2" 2112 | } 2113 | }, 2114 | "enquirer": { 2115 | "version": "2.3.6", 2116 | "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", 2117 | "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", 2118 | "dev": true, 2119 | "requires": { 2120 | "ansi-colors": "^4.1.1" 2121 | } 2122 | }, 2123 | "escape-string-regexp": { 2124 | "version": "4.0.0", 2125 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", 2126 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", 2127 | "dev": true 2128 | }, 2129 | "eslint-scope": { 2130 | "version": "7.1.0", 2131 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.0.tgz", 2132 | "integrity": "sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==", 2133 | "dev": true, 2134 | "requires": { 2135 | "esrecurse": "^4.3.0", 2136 | "estraverse": "^5.2.0" 2137 | } 2138 | }, 2139 | "esquery": { 2140 | "version": "1.4.0", 2141 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", 2142 | "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", 2143 | "dev": true, 2144 | "requires": { 2145 | "estraverse": "^5.1.0" 2146 | } 2147 | }, 2148 | "estraverse": { 2149 | "version": "5.2.0", 2150 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", 2151 | "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", 2152 | "dev": true 2153 | }, 2154 | "esutils": { 2155 | "version": "2.0.3", 2156 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", 2157 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", 2158 | "dev": true 2159 | }, 2160 | "fast-levenshtein": { 2161 | "version": "2.0.6", 2162 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 2163 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", 2164 | "dev": true 2165 | }, 2166 | "file-entry-cache": { 2167 | "version": "6.0.1", 2168 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", 2169 | "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", 2170 | "dev": true, 2171 | "requires": { 2172 | "flat-cache": "^3.0.4" 2173 | } 2174 | }, 2175 | "flat-cache": { 2176 | "version": "3.0.4", 2177 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", 2178 | "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", 2179 | "dev": true, 2180 | "requires": { 2181 | "flatted": "^3.1.0", 2182 | "rimraf": "^3.0.2" 2183 | } 2184 | }, 2185 | "flatted": { 2186 | "version": "3.2.2", 2187 | "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz", 2188 | "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", 2189 | "dev": true 2190 | }, 2191 | "fs.realpath": { 2192 | "version": "1.0.0", 2193 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 2194 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 2195 | "dev": true 2196 | }, 2197 | "glob": { 2198 | "version": "7.2.0", 2199 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", 2200 | "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", 2201 | "dev": true, 2202 | "requires": { 2203 | "fs.realpath": "^1.0.0", 2204 | "inflight": "^1.0.4", 2205 | "inherits": "2", 2206 | "minimatch": "^3.0.4", 2207 | "once": "^1.3.0", 2208 | "path-is-absolute": "^1.0.0" 2209 | } 2210 | }, 2211 | "glob-parent": { 2212 | "version": "6.0.2", 2213 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", 2214 | "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", 2215 | "dev": true, 2216 | "requires": { 2217 | "is-glob": "^4.0.3" 2218 | } 2219 | }, 2220 | "has-flag": { 2221 | "version": "4.0.0", 2222 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 2223 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 2224 | "dev": true 2225 | }, 2226 | "ignore": { 2227 | "version": "4.0.6", 2228 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", 2229 | "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", 2230 | "dev": true 2231 | }, 2232 | "imurmurhash": { 2233 | "version": "0.1.4", 2234 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 2235 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", 2236 | "dev": true 2237 | }, 2238 | "inflight": { 2239 | "version": "1.0.6", 2240 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 2241 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 2242 | "dev": true, 2243 | "requires": { 2244 | "once": "^1.3.0", 2245 | "wrappy": "1" 2246 | } 2247 | }, 2248 | "inherits": { 2249 | "version": "2.0.4", 2250 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 2251 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 2252 | "dev": true 2253 | }, 2254 | "isexe": { 2255 | "version": "2.0.0", 2256 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 2257 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 2258 | "dev": true 2259 | }, 2260 | "json-stable-stringify-without-jsonify": { 2261 | "version": "1.0.1", 2262 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", 2263 | "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", 2264 | "dev": true 2265 | }, 2266 | "levn": { 2267 | "version": "0.4.1", 2268 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", 2269 | "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", 2270 | "dev": true, 2271 | "requires": { 2272 | "prelude-ls": "^1.2.1", 2273 | "type-check": "~0.4.0" 2274 | } 2275 | }, 2276 | "lodash.merge": { 2277 | "version": "4.6.2", 2278 | "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", 2279 | "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", 2280 | "dev": true 2281 | }, 2282 | "natural-compare": { 2283 | "version": "1.4.0", 2284 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", 2285 | "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", 2286 | "dev": true 2287 | }, 2288 | "once": { 2289 | "version": "1.4.0", 2290 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 2291 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 2292 | "dev": true, 2293 | "requires": { 2294 | "wrappy": "1" 2295 | } 2296 | }, 2297 | "optionator": { 2298 | "version": "0.9.1", 2299 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", 2300 | "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", 2301 | "dev": true, 2302 | "requires": { 2303 | "deep-is": "^0.1.3", 2304 | "fast-levenshtein": "^2.0.6", 2305 | "levn": "^0.4.1", 2306 | "prelude-ls": "^1.2.1", 2307 | "type-check": "^0.4.0", 2308 | "word-wrap": "^1.2.3" 2309 | } 2310 | }, 2311 | "path-is-absolute": { 2312 | "version": "1.0.1", 2313 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 2314 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 2315 | "dev": true 2316 | }, 2317 | "path-key": { 2318 | "version": "3.1.1", 2319 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 2320 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 2321 | "dev": true 2322 | }, 2323 | "prelude-ls": { 2324 | "version": "1.2.1", 2325 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", 2326 | "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", 2327 | "dev": true 2328 | }, 2329 | "progress": { 2330 | "version": "2.0.3", 2331 | "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", 2332 | "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", 2333 | "dev": true 2334 | }, 2335 | "rimraf": { 2336 | "version": "3.0.2", 2337 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", 2338 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", 2339 | "dev": true, 2340 | "requires": { 2341 | "glob": "^7.1.3" 2342 | } 2343 | }, 2344 | "shebang-command": { 2345 | "version": "2.0.0", 2346 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 2347 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 2348 | "dev": true, 2349 | "requires": { 2350 | "shebang-regex": "^3.0.0" 2351 | } 2352 | }, 2353 | "shebang-regex": { 2354 | "version": "3.0.0", 2355 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 2356 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 2357 | "dev": true 2358 | }, 2359 | "strip-ansi": { 2360 | "version": "6.0.1", 2361 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 2362 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 2363 | "dev": true, 2364 | "requires": { 2365 | "ansi-regex": "^5.0.1" 2366 | } 2367 | }, 2368 | "supports-color": { 2369 | "version": "7.2.0", 2370 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 2371 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 2372 | "dev": true, 2373 | "requires": { 2374 | "has-flag": "^4.0.0" 2375 | } 2376 | }, 2377 | "text-table": { 2378 | "version": "0.2.0", 2379 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", 2380 | "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", 2381 | "dev": true 2382 | }, 2383 | "type-check": { 2384 | "version": "0.4.0", 2385 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", 2386 | "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", 2387 | "dev": true, 2388 | "requires": { 2389 | "prelude-ls": "^1.2.1" 2390 | } 2391 | }, 2392 | "v8-compile-cache": { 2393 | "version": "2.3.0", 2394 | "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", 2395 | "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", 2396 | "dev": true 2397 | }, 2398 | "which": { 2399 | "version": "2.0.2", 2400 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 2401 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 2402 | "dev": true, 2403 | "requires": { 2404 | "isexe": "^2.0.0" 2405 | } 2406 | }, 2407 | "word-wrap": { 2408 | "version": "1.2.3", 2409 | "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", 2410 | "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", 2411 | "dev": true 2412 | }, 2413 | "wrappy": { 2414 | "version": "1.0.2", 2415 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 2416 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 2417 | "dev": true 2418 | } 2419 | } 2420 | }, 2421 | "eslint-config-prettier": { 2422 | "version": "8.3.0", 2423 | "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz", 2424 | "integrity": "sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==", 2425 | "dev": true, 2426 | "requires": {} 2427 | }, 2428 | "eslint-plugin-prettier": { 2429 | "version": "4.0.0", 2430 | "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.0.0.tgz", 2431 | "integrity": "sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==", 2432 | "dev": true, 2433 | "requires": { 2434 | "prettier-linter-helpers": "^1.0.0" 2435 | } 2436 | }, 2437 | "eslint-plugin-sort-imports-es6-autofix": { 2438 | "version": "0.6.0", 2439 | "resolved": "https://registry.npmjs.org/eslint-plugin-sort-imports-es6-autofix/-/eslint-plugin-sort-imports-es6-autofix-0.6.0.tgz", 2440 | "integrity": "sha512-2NVaBGF9NN+727Fyq+jJYihdIeegjXeUUrZED9Q8FVB8MsV3YQEyXG96GVnXqWt0pmn7xfCZOZf3uKnIhBrfeQ==", 2441 | "dev": true, 2442 | "requires": {} 2443 | }, 2444 | "eslint-scope": { 2445 | "version": "5.1.1", 2446 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", 2447 | "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", 2448 | "dev": true, 2449 | "requires": { 2450 | "esrecurse": "^4.3.0", 2451 | "estraverse": "^4.1.1" 2452 | } 2453 | }, 2454 | "eslint-utils": { 2455 | "version": "3.0.0", 2456 | "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", 2457 | "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", 2458 | "dev": true, 2459 | "requires": { 2460 | "eslint-visitor-keys": "^2.0.0" 2461 | }, 2462 | "dependencies": { 2463 | "eslint-visitor-keys": { 2464 | "version": "2.1.0", 2465 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", 2466 | "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", 2467 | "dev": true 2468 | } 2469 | } 2470 | }, 2471 | "eslint-visitor-keys": { 2472 | "version": "3.1.0", 2473 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz", 2474 | "integrity": "sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==", 2475 | "dev": true 2476 | }, 2477 | "espree": { 2478 | "version": "9.1.0", 2479 | "resolved": "https://registry.npmjs.org/espree/-/espree-9.1.0.tgz", 2480 | "integrity": "sha512-ZgYLvCS1wxOczBYGcQT9DDWgicXwJ4dbocr9uYN+/eresBAUuBu+O4WzB21ufQ/JqQT8gyp7hJ3z8SHii32mTQ==", 2481 | "dev": true, 2482 | "requires": { 2483 | "acorn": "^8.6.0", 2484 | "acorn-jsx": "^5.3.1", 2485 | "eslint-visitor-keys": "^3.1.0" 2486 | } 2487 | }, 2488 | "esrecurse": { 2489 | "version": "4.3.0", 2490 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", 2491 | "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", 2492 | "dev": true, 2493 | "requires": { 2494 | "estraverse": "^5.2.0" 2495 | }, 2496 | "dependencies": { 2497 | "estraverse": { 2498 | "version": "5.3.0", 2499 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", 2500 | "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", 2501 | "dev": true 2502 | } 2503 | } 2504 | }, 2505 | "estraverse": { 2506 | "version": "4.3.0", 2507 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", 2508 | "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", 2509 | "dev": true 2510 | }, 2511 | "fast-deep-equal": { 2512 | "version": "3.1.3", 2513 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 2514 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", 2515 | "dev": true 2516 | }, 2517 | "fast-glob": { 2518 | "version": "3.2.7", 2519 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", 2520 | "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", 2521 | "dev": true, 2522 | "requires": { 2523 | "@nodelib/fs.stat": "^2.0.2", 2524 | "@nodelib/fs.walk": "^1.2.3", 2525 | "glob-parent": "^5.1.2", 2526 | "merge2": "^1.3.0", 2527 | "micromatch": "^4.0.4" 2528 | } 2529 | }, 2530 | "fast-json-stable-stringify": { 2531 | "version": "2.1.0", 2532 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 2533 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", 2534 | "dev": true 2535 | }, 2536 | "fastq": { 2537 | "version": "1.13.0", 2538 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", 2539 | "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", 2540 | "dev": true, 2541 | "requires": { 2542 | "reusify": "^1.0.4" 2543 | } 2544 | }, 2545 | "fetch-blob": { 2546 | "version": "3.1.2", 2547 | "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.1.2.tgz", 2548 | "integrity": "sha512-hunJbvy/6OLjCD0uuhLdp0mMPzP/yd2ssd1t2FCJsaA7wkWhpbp9xfuNVpv7Ll4jFhzp6T4LAupSiV9uOeg0VQ==", 2549 | "requires": { 2550 | "web-streams-polyfill": "^3.0.3" 2551 | }, 2552 | "dependencies": { 2553 | "web-streams-polyfill": { 2554 | "version": "3.1.1", 2555 | "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.1.1.tgz", 2556 | "integrity": "sha512-Czi3fG883e96T4DLEPRvufrF2ydhOOW1+1a6c3gNjH2aIh50DNFBdfwh2AKoOf1rXvpvavAoA11Qdq9+BKjE0Q==" 2557 | } 2558 | } 2559 | }, 2560 | "fill-range": { 2561 | "version": "7.0.1", 2562 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", 2563 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", 2564 | "dev": true, 2565 | "requires": { 2566 | "to-regex-range": "^5.0.1" 2567 | } 2568 | }, 2569 | "form-data": { 2570 | "version": "4.0.0", 2571 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", 2572 | "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", 2573 | "requires": { 2574 | "asynckit": "^0.4.0", 2575 | "combined-stream": "^1.0.8", 2576 | "mime-types": "^2.1.12" 2577 | } 2578 | }, 2579 | "formdata-polyfill": { 2580 | "version": "4.0.10", 2581 | "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", 2582 | "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", 2583 | "requires": { 2584 | "fetch-blob": "^3.1.2" 2585 | } 2586 | }, 2587 | "functional-red-black-tree": { 2588 | "version": "1.0.1", 2589 | "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", 2590 | "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", 2591 | "dev": true 2592 | }, 2593 | "glob-parent": { 2594 | "version": "5.1.2", 2595 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 2596 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 2597 | "dev": true, 2598 | "requires": { 2599 | "is-glob": "^4.0.1" 2600 | } 2601 | }, 2602 | "globals": { 2603 | "version": "13.12.0", 2604 | "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", 2605 | "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", 2606 | "dev": true, 2607 | "requires": { 2608 | "type-fest": "^0.20.2" 2609 | } 2610 | }, 2611 | "globby": { 2612 | "version": "11.0.4", 2613 | "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", 2614 | "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", 2615 | "dev": true, 2616 | "requires": { 2617 | "array-union": "^2.1.0", 2618 | "dir-glob": "^3.0.1", 2619 | "fast-glob": "^3.1.1", 2620 | "ignore": "^5.1.4", 2621 | "merge2": "^1.3.0", 2622 | "slash": "^3.0.0" 2623 | } 2624 | }, 2625 | "ignore": { 2626 | "version": "5.1.8", 2627 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", 2628 | "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", 2629 | "dev": true 2630 | }, 2631 | "import-fresh": { 2632 | "version": "3.3.0", 2633 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", 2634 | "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", 2635 | "dev": true, 2636 | "requires": { 2637 | "parent-module": "^1.0.0", 2638 | "resolve-from": "^4.0.0" 2639 | } 2640 | }, 2641 | "is-extglob": { 2642 | "version": "2.1.1", 2643 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 2644 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", 2645 | "dev": true 2646 | }, 2647 | "is-glob": { 2648 | "version": "4.0.3", 2649 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 2650 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 2651 | "dev": true, 2652 | "requires": { 2653 | "is-extglob": "^2.1.1" 2654 | } 2655 | }, 2656 | "is-number": { 2657 | "version": "7.0.0", 2658 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 2659 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 2660 | "dev": true 2661 | }, 2662 | "js-yaml": { 2663 | "version": "4.1.0", 2664 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", 2665 | "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", 2666 | "dev": true, 2667 | "requires": { 2668 | "argparse": "^2.0.1" 2669 | } 2670 | }, 2671 | "json-schema-traverse": { 2672 | "version": "0.4.1", 2673 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 2674 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", 2675 | "dev": true 2676 | }, 2677 | "merge2": { 2678 | "version": "1.4.1", 2679 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", 2680 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", 2681 | "dev": true 2682 | }, 2683 | "micromatch": { 2684 | "version": "4.0.4", 2685 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", 2686 | "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", 2687 | "dev": true, 2688 | "requires": { 2689 | "braces": "^3.0.1", 2690 | "picomatch": "^2.2.3" 2691 | } 2692 | }, 2693 | "mime-types": { 2694 | "version": "2.1.33", 2695 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.33.tgz", 2696 | "integrity": "sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g==", 2697 | "requires": { 2698 | "mime-db": "1.50.0" 2699 | }, 2700 | "dependencies": { 2701 | "mime-db": { 2702 | "version": "1.50.0", 2703 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.50.0.tgz", 2704 | "integrity": "sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A==" 2705 | } 2706 | } 2707 | }, 2708 | "minimatch": { 2709 | "version": "3.0.4", 2710 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 2711 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 2712 | "dev": true, 2713 | "requires": { 2714 | "brace-expansion": "^1.1.7" 2715 | } 2716 | }, 2717 | "node-fetch": { 2718 | "version": "3.1.0", 2719 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.1.0.tgz", 2720 | "integrity": "sha512-QU0WbIfMUjd5+MUzQOYhenAazakV7Irh1SGkWCsRzBwvm4fAhzEUaHMJ6QLP7gWT6WO9/oH2zhKMMGMuIrDyKw==", 2721 | "requires": { 2722 | "data-uri-to-buffer": "^4.0.0", 2723 | "fetch-blob": "^3.1.2", 2724 | "formdata-polyfill": "^4.0.10" 2725 | } 2726 | }, 2727 | "openai": { 2728 | "version": "1.1.2", 2729 | "resolved": "https://registry.npmjs.org/openai/-/openai-1.1.2.tgz", 2730 | "integrity": "sha512-LhCpENJ9dSJu7K8+Wu5DUxJW1M9t+3KcRAZPC9q9FbT1wRDSbUrTLQx3qfByleoY8b0mvus33l7qcOZKQdSKpQ==", 2731 | "requires": { 2732 | "form-data": "4.0.0", 2733 | "node-fetch": "3.1.0" 2734 | } 2735 | }, 2736 | "parent-module": { 2737 | "version": "1.0.1", 2738 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 2739 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 2740 | "dev": true, 2741 | "requires": { 2742 | "callsites": "^3.0.0" 2743 | } 2744 | }, 2745 | "path-type": { 2746 | "version": "4.0.0", 2747 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", 2748 | "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", 2749 | "dev": true 2750 | }, 2751 | "picomatch": { 2752 | "version": "2.3.0", 2753 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", 2754 | "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", 2755 | "dev": true 2756 | }, 2757 | "prettier": { 2758 | "version": "2.5.0", 2759 | "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.0.tgz", 2760 | "integrity": "sha512-FM/zAKgWTxj40rH03VxzIPdXmj39SwSjwG0heUcNFwI+EMZJnY93yAiKXM3dObIKAM5TA88werc8T/EwhB45eg==", 2761 | "dev": true 2762 | }, 2763 | "prettier-linter-helpers": { 2764 | "version": "1.0.0", 2765 | "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", 2766 | "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", 2767 | "dev": true, 2768 | "requires": { 2769 | "fast-diff": "^1.1.2" 2770 | }, 2771 | "dependencies": { 2772 | "fast-diff": { 2773 | "version": "1.2.0", 2774 | "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", 2775 | "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", 2776 | "dev": true 2777 | } 2778 | } 2779 | }, 2780 | "punycode": { 2781 | "version": "2.1.1", 2782 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 2783 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", 2784 | "dev": true 2785 | }, 2786 | "queue-microtask": { 2787 | "version": "1.2.3", 2788 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", 2789 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", 2790 | "dev": true 2791 | }, 2792 | "regexpp": { 2793 | "version": "3.2.0", 2794 | "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", 2795 | "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", 2796 | "dev": true 2797 | }, 2798 | "resolve-from": { 2799 | "version": "4.0.0", 2800 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 2801 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", 2802 | "dev": true 2803 | }, 2804 | "reusify": { 2805 | "version": "1.0.4", 2806 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", 2807 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", 2808 | "dev": true 2809 | }, 2810 | "run-parallel": { 2811 | "version": "1.2.0", 2812 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", 2813 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", 2814 | "dev": true, 2815 | "requires": { 2816 | "queue-microtask": "^1.2.2" 2817 | } 2818 | }, 2819 | "semver": { 2820 | "version": "7.3.5", 2821 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", 2822 | "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", 2823 | "dev": true, 2824 | "requires": { 2825 | "lru-cache": "^6.0.0" 2826 | }, 2827 | "dependencies": { 2828 | "lru-cache": { 2829 | "version": "6.0.0", 2830 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", 2831 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", 2832 | "dev": true, 2833 | "requires": { 2834 | "yallist": "^4.0.0" 2835 | } 2836 | }, 2837 | "yallist": { 2838 | "version": "4.0.0", 2839 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", 2840 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", 2841 | "dev": true 2842 | } 2843 | } 2844 | }, 2845 | "slash": { 2846 | "version": "3.0.0", 2847 | "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", 2848 | "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", 2849 | "dev": true 2850 | }, 2851 | "strip-json-comments": { 2852 | "version": "3.1.1", 2853 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", 2854 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", 2855 | "dev": true 2856 | }, 2857 | "to-regex-range": { 2858 | "version": "5.0.1", 2859 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 2860 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 2861 | "dev": true, 2862 | "requires": { 2863 | "is-number": "^7.0.0" 2864 | } 2865 | }, 2866 | "tsutils": { 2867 | "version": "3.21.0", 2868 | "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", 2869 | "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", 2870 | "dev": true, 2871 | "requires": { 2872 | "tslib": "^1.8.1" 2873 | }, 2874 | "dependencies": { 2875 | "tslib": { 2876 | "version": "1.14.1", 2877 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", 2878 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", 2879 | "dev": true 2880 | } 2881 | } 2882 | }, 2883 | "type-fest": { 2884 | "version": "0.20.2", 2885 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", 2886 | "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", 2887 | "dev": true 2888 | }, 2889 | "typescript": { 2890 | "version": "4.5.2", 2891 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.2.tgz", 2892 | "integrity": "sha512-5BlMof9H1yGt0P8/WF+wPNw6GfctgGjXp5hkblpyT+8rkASSmkUKMXrxR0Xg8ThVCi/JnHQiKXeBaEwCeQwMFw==", 2893 | "dev": true 2894 | }, 2895 | "uri-js": { 2896 | "version": "4.4.1", 2897 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", 2898 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", 2899 | "dev": true, 2900 | "requires": { 2901 | "punycode": "^2.1.0" 2902 | } 2903 | } 2904 | } 2905 | } 2906 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "gpt-x", 3 | "version": "1.1.3", 4 | "description": "Tiny OpenAI API wrapper", 5 | "type": "module", 6 | "main": "dist/index.js", 7 | "scripts": { 8 | "start": "tsc -d --watch", 9 | "build": "tsc -d", 10 | "clean": "rm -rf dist", 11 | "lint": "eslint . --fix --cache && prettier --write src", 12 | "lint:nofix": "eslint . && prettier --check src", 13 | "postinstall": "node ./postinstall.js" 14 | }, 15 | "repository": { 16 | "type": "git", 17 | "url": "git+https://github.com/ceifa/openai.git" 18 | }, 19 | "author": "ceifa", 20 | "license": "MIT", 21 | "keywords": [ 22 | "gpt-3", 23 | "gpt", 24 | "ai", 25 | "openai" 26 | ], 27 | "bugs": { 28 | "url": "https://github.com/ceifa/openai/issues" 29 | }, 30 | "homepage": "https://github.com/ceifa/openai#readme", 31 | "devDependencies": { 32 | "@types/node": "16.11.11", 33 | "@typescript-eslint/eslint-plugin": "5.5.0", 34 | "@typescript-eslint/parser": "5.5.0", 35 | "eslint": "8.3.0", 36 | "eslint-config-prettier": "8.3.0", 37 | "eslint-plugin-prettier": "4.0.0", 38 | "eslint-plugin-sort-imports-es6-autofix": "0.6.0", 39 | "prettier": "2.5.0", 40 | "typescript": "4.5.2" 41 | }, 42 | "dependencies": { 43 | "form-data": "4.0.0", 44 | "node-fetch": "3.1.0" 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /postinstall.js: -------------------------------------------------------------------------------- 1 | console.log(`\u001b[0m\u001b[96mEnter in our community about Natural language generation to share and learn about OpenAI, prompt engineering and other providers: \u001b[94mhttps://discord.gg/8ZwcSt9XkD\u001b[0m\u001b[22m\u001b[39m`); 2 | -------------------------------------------------------------------------------- /sample/index.js: -------------------------------------------------------------------------------- 1 | import { OpenAI } from '../dist/index.js' 2 | 3 | const api = new OpenAI(process.env.OPENAI_API_KEY) 4 | api.getEngines().then(console.log) 5 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib.js' 2 | export * from './types.js' 3 | -------------------------------------------------------------------------------- /src/lib.ts: -------------------------------------------------------------------------------- 1 | import { 2 | Answer, 3 | AnswerRequest, 4 | Classification, 5 | ClassificationRequest, 6 | Completion, 7 | CompletionRequest, 8 | ContentLabel, 9 | Embedding, 10 | EmbeddingRequest, 11 | Engine, 12 | EngineId, 13 | File, 14 | FilePurpose, 15 | FineTune, 16 | FineTuneEvent, 17 | FineTuneRequest, 18 | JsonLines, 19 | List, 20 | SearchDocument, 21 | SearchRequest, 22 | } from './types.js' 23 | import { Readable, Transform } from 'stream' 24 | import FormData from 'form-data' 25 | import fetch, { Response } from 'node-fetch' 26 | 27 | const baseUrl = 'https://api.openai.com' 28 | const defaultVersion = 'v1' 29 | 30 | export class OpenAI { 31 | private readonly url: string 32 | private readonly headers: Record 33 | 34 | constructor(apiKey: string, organizationId?: string, version: string = defaultVersion) { 35 | // https://beta.openai.com/docs/api-reference/authentication 36 | this.headers = { 37 | 'authorization': `Bearer ${apiKey}`, 38 | 'content-type': 'application/json', 39 | } 40 | 41 | if (organizationId) { 42 | this.headers['openai-organization'] = organizationId 43 | } 44 | 45 | this.url = `${baseUrl}/${version}` 46 | } 47 | 48 | // https://beta.openai.com/docs/api-reference/engines/list 49 | public getEngines(): Promise { 50 | return this.request>('/engines', 'GET').then((r) => r.data) 51 | } 52 | 53 | // https://beta.openai.com/docs/api-reference/engines/retrieve 54 | public getEngine(engine: EngineId): Promise { 55 | return this.request(`/engines/${engine}`, 'GET') 56 | } 57 | 58 | // https://beta.openai.com/docs/api-reference/completions/create 59 | public complete(engine: EngineId, options: CompletionRequest): Promise { 60 | return this.request(`/engines/${engine}/completions`, 'POST', options) 61 | } 62 | 63 | // https://beta.openai.com/docs/guides/fine-tuning/use-a-fine-tuned-model 64 | public completeFromModel(fineTunedModel: string, options: CompletionRequest): Promise { 65 | return this.request(`/completions`, 'POST', { ...options, model: fineTunedModel }) 66 | } 67 | 68 | public async completeAndStream(engine: EngineId, options: CompletionRequest): Promise { 69 | const request = await this.requestRaw(`/engines/${engine}/completions`, 'POST', { ...options, stream: true }) 70 | // @ts-ignore body will always be present for this request 71 | return request.body.pipe(this.eventStreamTransformer()) 72 | } 73 | 74 | public async completeFromModelAndStream(fineTunedModel: string, options: CompletionRequest): Promise { 75 | const request = await this.requestRaw(`/completions`, 'POST', { 76 | ...options, 77 | model: fineTunedModel, 78 | stream: true, 79 | }) 80 | // @ts-ignore body will always be present for this request 81 | return request.body.pipe(this.eventStreamTransformer()) 82 | } 83 | 84 | // https://beta.openai.com/docs/engines/content-filter 85 | public async contentFilter(content: string, user?: string): Promise { 86 | const completion = await this.complete('content-filter-alpha-c4', { 87 | prompt: `<|endoftext|>${content}\n--\nLabel:`, 88 | temperature: 0, 89 | max_tokens: 1, 90 | top_p: 1, 91 | frequency_penalty: 0, 92 | presence_penalty: 0, 93 | logprobs: 10, 94 | user, 95 | }) 96 | 97 | let label = Number(completion.choices[0].text) as ContentLabel 98 | if (label === ContentLabel.Unsafe) { 99 | const logprobs = completion.choices[0].logprobs?.top_logprobs[0] 100 | 101 | if (logprobs && logprobs['2'] < -0.355) { 102 | if (logprobs['0'] && logprobs['1']) { 103 | label = logprobs['0'] >= logprobs['1'] ? ContentLabel.Safe : ContentLabel.Sensitive 104 | } else if (logprobs['0']) { 105 | label = ContentLabel.Safe 106 | } else if (logprobs['1']) { 107 | label = ContentLabel.Sensitive 108 | } 109 | } 110 | } 111 | 112 | if (![0, 1, 2].includes(label)) { 113 | label = ContentLabel.Unsafe 114 | } 115 | 116 | return label 117 | } 118 | 119 | // https://beta.openai.com/docs/api-reference/searches/create 120 | public search(engine: EngineId, options: SearchRequest): Promise { 121 | return this.request>(`/engines/${engine}/search`, 'POST', options).then((r) => r.data) 122 | } 123 | 124 | // https://beta.openai.com/docs/api-reference/classifications/create 125 | public classify(options: ClassificationRequest): Promise { 126 | return this.request('/classifications', 'POST', options) 127 | } 128 | 129 | // https://beta.openai.com/docs/api-reference/answers/create 130 | public answer(options: AnswerRequest): Promise { 131 | return this.request('/answers', 'POST', options) 132 | } 133 | 134 | // https://beta.openai.com/docs/api-reference/files/list 135 | public getFiles(): Promise { 136 | return this.request>('/files', 'GET').then((r) => r.data) 137 | } 138 | 139 | // https://beta.openai.com/docs/api-reference/files/upload 140 | public uploadFile(file: string, jsonlines: JsonLines, purpose: FilePurpose): Promise { 141 | const data = new FormData() 142 | 143 | let fileJsonlines: string 144 | 145 | if (Array.isArray(jsonlines)) { 146 | if (typeof jsonlines[0] === 'object') { 147 | jsonlines = jsonlines.map((j) => JSON.stringify(j)) 148 | } 149 | 150 | fileJsonlines = jsonlines.join('\n') 151 | } else { 152 | fileJsonlines = jsonlines 153 | } 154 | 155 | data.append('file', fileJsonlines, file) 156 | data.append('purpose', purpose) 157 | 158 | return this.request('/files', 'POST', data) 159 | } 160 | 161 | // https://beta.openai.com/docs/api-reference/files/retrieve 162 | public getFile(fileId: string): Promise { 163 | return this.request(`/files/${fileId}`, 'GET') 164 | } 165 | 166 | // https://beta.openai.com/docs/api-reference/files/delete 167 | public deleteFile(fileId: string): Promise { 168 | return this.request(`/files/${fileId}`, 'DELETE') 169 | } 170 | 171 | // https://beta.openai.com/docs/api-reference/fine-tunes/create 172 | public finetune(options: FineTuneRequest): Promise { 173 | return this.request(`/fine-tunes`, 'POST', options) 174 | } 175 | 176 | // https://beta.openai.com/docs/api-reference/fine-tunes/list 177 | public getFinetunes(): Promise { 178 | return this.request>('/fine-tunes', 'GET').then((r) => r.data) 179 | } 180 | 181 | // https://beta.openai.com/docs/api-reference/fine-tunes/retrieve 182 | public getFinetune(finetuneId: string): Promise { 183 | return this.request(`/fine-tunes/${finetuneId}`, 'GET') 184 | } 185 | 186 | // https://beta.openai.com/docs/api-reference/fine-tunes/cancel 187 | public cancelFinetune(finetuneId: string): Promise { 188 | return this.request(`/fine-tunes/${finetuneId}/cancel`, 'POST') 189 | } 190 | 191 | // https://beta.openai.com/docs/api-reference/fine-tunes/events 192 | public getFinetuneEvents(finetuneId: string): Promise { 193 | return this.request>(`/fine-tunes/${finetuneId}/events`, 'GET').then((r) => r.data) 194 | } 195 | 196 | // https://beta.openai.com/docs/api-reference/embeddings 197 | public createEmbedding(engine: EngineId, options: EmbeddingRequest): Promise> { 198 | return this.request>(`/engines/${engine}/embeddings`, 'POST', options) 199 | } 200 | 201 | private async requestRaw(path: string, method: 'GET' | 'POST' | 'DELETE', body?: any): Promise { 202 | let headers = { ...this.headers } 203 | 204 | if (body instanceof FormData) { 205 | delete headers['content-type'] 206 | headers = body.getHeaders(headers) 207 | } else if (!['string', 'undefined'].includes(typeof body)) { 208 | body = JSON.stringify(body) 209 | } 210 | 211 | const response = await fetch(this.url + path, { 212 | headers, 213 | method, 214 | body: body, 215 | }) 216 | 217 | if (!response.ok) { 218 | let errorBody 219 | try { 220 | const { 221 | error: { message }, 222 | } = (await response.json()) as { error: { message: string } } 223 | errorBody = message 224 | } catch { 225 | try { 226 | errorBody = await response.text() 227 | } catch { 228 | errorBody = 'Failed to get body as text' 229 | } 230 | } 231 | 232 | throw new Error(`OpenAI did not return ok: ${response.status} ~ Error body: ${errorBody}`) 233 | } 234 | 235 | return response 236 | } 237 | 238 | private async request(path: string, method: 'GET' | 'POST' | 'DELETE', body?: any): Promise { 239 | const response = await this.requestRaw(path, method, body) 240 | return response.json() as Promise 241 | } 242 | 243 | private eventStreamTransformer(): Transform { 244 | // [0x64, 0x61, 0x74, 0x61, 0x3a, 0x20] 245 | const dataHeader = Buffer.from('data: ') 246 | 247 | return new Transform({ 248 | transform: function (this: Transform & { prevChunk: Buffer | undefined }, chunk: Buffer, _, callback) { 249 | // If current chunk starts with "data:" 250 | if ( 251 | chunk.length >= dataHeader.length && 252 | dataHeader.compare(chunk, undefined, dataHeader.length) === 0 253 | ) { 254 | if (this.prevChunk) { 255 | // Parse previous chunk as completion and push text 256 | const completion = JSON.parse(this.prevChunk.toString()) as Completion 257 | this.push(completion.choices[0].text) 258 | this.prevChunk = undefined 259 | } 260 | 261 | // Remove current header 262 | chunk = chunk.slice(dataHeader.length) 263 | } 264 | 265 | // Append current chunk to previous chunk 266 | this.prevChunk = this.prevChunk ? Buffer.concat([this.prevChunk, chunk]) : chunk 267 | 268 | // Should not care about the [DONE] because it will not be handled 269 | callback() 270 | }, 271 | }) 272 | } 273 | } 274 | -------------------------------------------------------------------------------- /src/types.ts: -------------------------------------------------------------------------------- 1 | // TODO: Document each interface property 2 | 3 | // FIXME: https://github.com/microsoft/TypeScript/issues/29729 4 | // eslint-disable-next-line @typescript-eslint/ban-types 5 | type LiteralUnion = T | (U & {}) 6 | export type EngineId = LiteralUnion<'davinci' | 'curie' | 'babbage' | 'ada'> 7 | 8 | export interface Engine { 9 | id: EngineId 10 | object: 'engine' 11 | created?: Date 12 | max_replicas?: number 13 | owner: string 14 | permissions: unknown 15 | ready: boolean 16 | ready_replicas: unknown 17 | replicas: unknown 18 | } 19 | 20 | export interface List { 21 | object: 'list' 22 | data: T[] 23 | model?: string 24 | } 25 | 26 | export interface CompletionRequest { 27 | prompt?: string | string[] 28 | max_tokens?: number 29 | temperature?: number 30 | top_p?: number 31 | n?: number 32 | logprobs?: number 33 | echo?: boolean 34 | stop?: string | string[] 35 | presence_penalty?: number 36 | frequency_penalty?: number 37 | best_of?: number 38 | logit_bias?: Record 39 | user?: string 40 | } 41 | 42 | export interface LogProbs { 43 | tokens: string[] 44 | token_logprobs: number[] 45 | top_logprobs: Array> 46 | text_offset: number[] 47 | } 48 | 49 | export interface Choice { 50 | text: string 51 | index: number 52 | logprobs: LogProbs | null 53 | finish_reason: string | null 54 | } 55 | 56 | export interface Completion { 57 | id: string 58 | object: 'text_completion' 59 | created: number 60 | model: string 61 | choices: Choice[] 62 | } 63 | 64 | export enum ContentLabel { 65 | Safe, 66 | Sensitive, 67 | Unsafe, 68 | } 69 | 70 | export interface SearchRequest { 71 | query: string 72 | documents?: string[] 73 | file?: string 74 | max_rerank?: number 75 | return_metadata?: boolean 76 | } 77 | 78 | export interface SearchDocument { 79 | document: number 80 | object: 'search_result' 81 | score: number 82 | } 83 | 84 | export interface ClassificationRequest { 85 | model: string 86 | query: string 87 | examples?: string[] 88 | file?: string 89 | labels?: string[] | null 90 | search_model?: string 91 | temperature?: number 92 | logprobs?: number 93 | max_examples?: number 94 | logit_bias?: Record 95 | return_prompt?: boolean 96 | return_metadata?: boolean 97 | expand?: string[] 98 | } 99 | 100 | export interface ClassificationExample { 101 | document: number 102 | label: string 103 | text: string 104 | } 105 | 106 | export interface Classification { 107 | completion: string 108 | label: string 109 | model: string 110 | object: 'classification' 111 | search_model: string 112 | selected_examples: ClassificationExample[] 113 | } 114 | 115 | export interface AnswerRequest { 116 | model: string 117 | question: string 118 | examples: Array<[string, string]> 119 | examples_context: string 120 | documents?: string[] 121 | file?: string 122 | search_model?: string 123 | max_rerank?: number 124 | temperature?: number 125 | logprobs?: number 126 | max_tokens?: number 127 | stop?: string | string[] 128 | n?: number 129 | logit_bias?: Record 130 | return_metadata?: boolean 131 | return_prompt?: boolean 132 | expand?: string[] 133 | } 134 | 135 | export interface AnswerDocument { 136 | document: number 137 | text: string 138 | } 139 | 140 | export interface Answer { 141 | answers: string[] 142 | completion: string | Completion 143 | model: string 144 | object: 'answer' 145 | search_model: string 146 | prompt: string 147 | selected_documents: AnswerDocument[] 148 | } 149 | 150 | export type FilePurpose = 'search' | 'answers' | 'classifications' | 'fine-tune' 151 | 152 | // TODO: Improve jsonlines typing 153 | export type JsonLines = string | string[] | unknown[] 154 | 155 | export interface File { 156 | id: string 157 | object: string 158 | bytes: number 159 | created_at: number 160 | filename: string 161 | purpose: FilePurpose 162 | } 163 | 164 | export interface Hyperparams { 165 | n_epochs?: number 166 | batch_size?: number 167 | learning_rate_multiplier?: number 168 | use_packing?: boolean 169 | prompt_loss_weight?: number 170 | } 171 | 172 | export interface FineTuneRequest extends Hyperparams { 173 | training_file: string 174 | validation_file?: string 175 | model?: string 176 | compute_classification_metrics?: boolean 177 | classification_n_classes?: number 178 | classification_positive_class?: string 179 | classification_betas?: number[] 180 | } 181 | 182 | export interface FineTuneEvent { 183 | object: 'fine-tune-event' 184 | created_at: number 185 | // TODO: Improve level typing 186 | level: string 187 | message: string 188 | } 189 | 190 | export interface FineTune { 191 | id: string 192 | object: 'fine-tune' 193 | model: string 194 | created_at: number 195 | events: FineTuneEvent[] 196 | fine_tuned_model: string 197 | hyperparams: Hyperparams 198 | organization_id: string 199 | result_files: File[] 200 | // TODO: Improve status typing 201 | status: string 202 | validation_files: File[] 203 | training_files: File[] 204 | updated_at: number 205 | user_id: string 206 | } 207 | 208 | export interface EmbeddingRequest { 209 | input: string | string[] 210 | } 211 | 212 | export interface Embedding { 213 | object: 'embedding' 214 | embedding: number[] 215 | index: number 216 | } 217 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "incremental": false, 4 | "moduleResolution": "node", 5 | "inlineSources": false, 6 | "removeComments": true, 7 | "sourceMap": false, 8 | "target": "es2020", 9 | "module": "es2020", 10 | "skipLibCheck": true, 11 | "allowSyntheticDefaultImports": true, 12 | "lib": [ 13 | "ESNEXT" 14 | ], 15 | "forceConsistentCasingInFileNames": true, 16 | "noImplicitReturns": true, 17 | "noImplicitThis": true, 18 | "noImplicitAny": true, 19 | "noUnusedParameters": true, 20 | "noUnusedLocals": true, 21 | "importHelpers": true, 22 | "strict": true, 23 | "outDir": "dist" 24 | }, 25 | "include": [ 26 | "src/**/*" 27 | ], 28 | "exclude": [ 29 | "node_modules" 30 | ] 31 | } --------------------------------------------------------------------------------