diff --git a/.c8rc.json b/.c8rc.json index 1ce0f96..d6c6ba5 100644 --- a/.c8rc.json +++ b/.c8rc.json @@ -1,4 +1,4 @@ { - "include": ["lib/**/**.ts"], - "exclude": ["lib/__helper__", "lib/**/*.test.ts"] + "include": ["src/**/*.ts"], + "exclude": ["src/__helper__", "src/**/*.test.ts"] } diff --git a/.eslintrc.json b/.eslintrc.json index a29122e..72ff711 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,21 +1,14 @@ { "root": true, - "parser": "@typescript-eslint/parser", "parserOptions": { "project": "./tsconfig.eslint.json" }, - "env": { - "browser": true, - "node": true - }, "plugins": [ - "@typescript-eslint", "ava" ], "extends": [ - "airbnb-typescript", - "@octetstream", - "plugin:ava/recommended" + "plugin:ava/recommended", + "@octetstream/eslint-config/esm/typescript" ], "settings": { "import/resolver": { @@ -23,43 +16,19 @@ } }, "rules": { - "no-void": 0, - "func-names": 0, - "no-shadow": 0, "no-use-before-define": 0, - "max-len": [ - "error", - { - "code": 80, - "ignoreComments": true - } - ], "import/no-unresolved": [ "error", { "ignore": [ - "dinky.js" + "formdata-node" ] } ], - "no-plusplus": 0, - // These two rules are false-positive and have no solution for TS "no-redeclare": 0, "no-dupe-class-members": 0, - "lines-between-class-members": 0, - - "@typescript-eslint/semi": 0, - "@typescript-eslint/no-shadow": 0, - "@typescript-eslint/quotes": [ - "error", - "double" - ], - "@typescript-eslint/object-curly-spacing": [ - "error", - "never" - ], - "@typescript-eslint/comma-dangle": 0 + "lines-between-class-members": 0 } } diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e7e3ab6..edc72d6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -50,7 +50,7 @@ jobs: node-version: ${{ matrix.node }} - name: Setup pnpm - uses: pnpm/action-setup@v2.0.1 + uses: pnpm/action-setup@v2 with: version: 6.2.1 run_install: true @@ -58,7 +58,7 @@ jobs: - run: pnpm run ci - name: Upload codecov report - uses: codecov/codecov-action@v1 + uses: codecov/codecov-action@v3 if: matrix.node == '16.x' && matrix.os == 'ubuntu-latest' with: file: ./coverage/coverage-final.json diff --git a/.gitignore b/.gitignore index d4c8921..90113f4 100644 --- a/.gitignore +++ b/.gitignore @@ -12,4 +12,4 @@ coverage *.old @type -/lib/**/*.js +/lib diff --git a/.npmignore b/.npmignore index 053344e..6f0ebcc 100644 --- a/.npmignore +++ b/.npmignore @@ -16,15 +16,13 @@ pnpm-lock.yaml /.editorconfig /.eslintrc.json /.lintstagedrc -/ava.config.cjs +/ava.config.js /yarn.lock /test.mjs /tsconfig.json -/tsconfig.esm.json -/tsconfig.cjs.json /tsconfig.eslint.json /tsconfig.d.ts.json /tsconfig.ava.json -/lib/**/*.ts +/src/**/*.ts -!/lib/node-domexception.d.ts +!/src/node-domexception.d.ts diff --git a/ava.config.cjs b/ava.config.cjs deleted file mode 100644 index b8ea2e8..0000000 --- a/ava.config.cjs +++ /dev/null @@ -1,14 +0,0 @@ -module.exports = { - environmentVariables: { - TS_NODE_PROJECT: "tsconfig.ava.json" - }, - extensions: [ - "ts" - ], - require: [ - "ts-node/register", - ], - files: [ - "lib/**/*.test.ts" - ] -} diff --git a/ava.config.js b/ava.config.js new file mode 100644 index 0000000..796a4e1 --- /dev/null +++ b/ava.config.js @@ -0,0 +1,11 @@ +export default { + extensions: { + ts: "module" + }, + nodeArguments: [ + "--loader=ts-node/esm/transpile-only" + ], + files: [ + "src/**/*.test.ts" + ] +} diff --git a/lib/__helper__/sleep.ts b/lib/__helper__/sleep.ts deleted file mode 100644 index 7f11f77..0000000 --- a/lib/__helper__/sleep.ts +++ /dev/null @@ -1,3 +0,0 @@ -const sleep = (ms: number) => new Promise(cb => setTimeout(cb, ms)) - -export default sleep diff --git a/lib/cjs/package.json b/lib/cjs/package.json deleted file mode 100644 index 5bbefff..0000000 --- a/lib/cjs/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "type": "commonjs" -} diff --git a/lib/deprecateConstructorEntries.ts b/lib/deprecateConstructorEntries.ts deleted file mode 100644 index 35ddd11..0000000 --- a/lib/deprecateConstructorEntries.ts +++ /dev/null @@ -1,8 +0,0 @@ -import {deprecate} from "util" - -export const deprecateConstructorEntries = deprecate( - () => {}, - - "Constructor \"entries\" argument is not spec-compliant " - + "and will be removed in next major release." -) diff --git a/lib/esm/package.json b/lib/esm/package.json deleted file mode 100644 index 3dbc1ca..0000000 --- a/lib/esm/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "type": "module" -} diff --git a/lib/index.ts b/lib/index.ts deleted file mode 100644 index b98e087..0000000 --- a/lib/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from "./FormData" -export * from "./Blob" -export * from "./File" diff --git a/package.json b/package.json index a17c205..2c3f994 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,7 @@ { "name": "formdata-node", "version": "4.3.3", + "type": "module", "description": "Spec-compliant FormData implementation for Node.js", "repository": "octet-stream/form-data", "sideEffects": false, @@ -14,28 +15,25 @@ ], "author": "Nick K. ", "license": "MIT", - "main": "./lib/cjs/index.js", - "module": "./lib/esm/browser.js", - "browser": "./lib/cjs/browser.js", + "main": "./lib/index.js", + "module": "./lib/browser.js", + "browser": "./lib/browser.js", "exports": { "./package.json": "./package.json", ".": { "node": { "types": "./@type/index.d.ts", - "import": "./lib/esm/index.js", - "require": "./lib/cjs/index.js" + "import": "./lib/index.js" }, "browser": { "types": "./@type/browser.d.ts", - "import": "./lib/esm/browser.js", - "require": "./lib/cjs/browser.js" + "import": "./lib/browser.js" }, - "default": "./lib/esm/index.js" + "default": "./lib/index.js" }, "./file-from-path": { "types": "./@type/fileFromPath.d.ts", - "import": "./lib/esm/fileFromPath.js", - "require": "./lib/cjs/fileFromPath.js" + "import": "./lib/fileFromPath.js" } }, "types": "./@type/index.d.ts", @@ -47,51 +45,46 @@ } }, "engines": { - "node": ">= 12.20" + "node": ">= 14.17" }, "scripts": { - "eslint": "eslint lib/**/*.ts", + "eslint": "eslint src/**/*.ts", "staged": "lint-staged", "coverage": "c8 npm test", "report:html": "c8 -r=html npm test", "ci": "c8 npm test && c8 report --reporter=json", - "build:esm": "ttsc --project tsconfig.esm.json", - "build:cjs": "ttsc --project tsconfig.cjs.json", - "build:types": "ttsc --project tsconfig.d.ts.json", - "build": "npm run build:esm && npm run build:cjs && npm run build:types", + "build:types": "tsc --project tsconfig.d.ts.json", + "build": "tsc && npm run build:types", "test": "ava --fail-fast", - "cleanup": "npx rimraf @type \"lib/**/*.js\"", + "cleanup": "del-cli @type lib", "prepare": "npm run cleanup && npm run build", "postinstall": "husky install", "prepublishOnly": "pinst --disable", "postpublish": "pinst --enable" }, "devDependencies": { - "@octetstream/eslint-config": "5.0.0", - "@types/node": "17.0.19", + "@octetstream/eslint-config": "6.2.1", + "@types/node": "17.0.42", "@types/sinon": "10.0.11", - "@typescript-eslint/eslint-plugin": "4.32.0", - "@typescript-eslint/parser": "4.32.0", - "@zoltu/typescript-transformer-append-js-extension": "1.0.1", - "ava": "4.0.1", - "c8": "7.11.0", - "eslint": "7.32.0", - "eslint-config-airbnb-typescript": "12.3.1", - "eslint-import-resolver-typescript": "2.5.0", - "eslint-plugin-ava": "12.0.0", - "eslint-plugin-jsx-a11y": "6.4.1", - "eslint-plugin-react": "7.26.1", - "husky": "7.0.4", - "lint-staged": "12.3.4", + "@typescript-eslint/eslint-plugin": "5.27.1", + "@typescript-eslint/parser": "5.27.1", + "ava": "4.3.0", + "c8": "7.11.3", + "del-cli": "4.0.1", + "eslint": "8.17.0", + "eslint-config-airbnb-typescript": "17.0.0", + "eslint-import-resolver-typescript": "2.7.1", + "eslint-plugin-ava": "13.2.0", + "eslint-plugin-import": "^2.26.0", + "husky": "8.0.1", + "lint-staged": "13.0.1", "pinst": "3.0.0", - "rimraf": "^3.0.2", - "sinon": "13.0.1", - "ts-node": "10.5.0", - "ttypescript": "1.5.13", - "typescript": "4.5.5" + "sinon": "14.0.0", + "ts-node": "10.8.1", + "typescript": "4.7.3" }, "dependencies": { "node-domexception": "1.0.0", - "web-streams-polyfill": "4.0.0-beta.1" + "web-streams-polyfill": "4.0.0-beta.2" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5e665ba..2fb3a02 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,103 +1,59 @@ lockfileVersion: 5.4 specifiers: - '@octetstream/eslint-config': 5.0.0 - '@types/node': 17.0.19 + '@octetstream/eslint-config': 6.2.1 + '@types/node': 17.0.42 '@types/sinon': 10.0.11 - '@typescript-eslint/eslint-plugin': 4.32.0 - '@typescript-eslint/parser': 4.32.0 - '@zoltu/typescript-transformer-append-js-extension': 1.0.1 - ava: 4.0.1 - c8: 7.11.0 - eslint: 7.32.0 - eslint-config-airbnb-typescript: 12.3.1 - eslint-import-resolver-typescript: 2.5.0 - eslint-plugin-ava: 12.0.0 - eslint-plugin-jsx-a11y: 6.4.1 - eslint-plugin-react: 7.26.1 - husky: 7.0.4 - lint-staged: 12.3.4 + '@typescript-eslint/eslint-plugin': 5.27.1 + '@typescript-eslint/parser': 5.27.1 + ava: 4.3.0 + c8: 7.11.3 + del-cli: 4.0.1 + eslint: 8.17.0 + eslint-config-airbnb-typescript: 17.0.0 + eslint-import-resolver-typescript: 2.7.1 + eslint-plugin-ava: 13.2.0 + eslint-plugin-import: ^2.26.0 + husky: 8.0.1 + lint-staged: 13.0.1 node-domexception: 1.0.0 pinst: 3.0.0 - rimraf: ^3.0.2 - sinon: 13.0.1 - ts-node: 10.5.0 - ttypescript: 1.5.13 - typescript: 4.5.5 - web-streams-polyfill: 4.0.0-beta.1 + sinon: 14.0.0 + ts-node: 10.8.1 + typescript: 4.7.3 + web-streams-polyfill: 4.0.0-beta.2 dependencies: node-domexception: 1.0.0 - web-streams-polyfill: 4.0.0-beta.1 + web-streams-polyfill: 4.0.0-beta.2 devDependencies: - '@octetstream/eslint-config': 5.0.0_apautjdkl4tcrnrnjzhjtcg3ji - '@types/node': 17.0.19 + '@octetstream/eslint-config': 6.2.1_55x735gf5sv6ystvn4rzalkjum + '@types/node': 17.0.42 '@types/sinon': 10.0.11 - '@typescript-eslint/eslint-plugin': 4.32.0_pzhgjgvtqtuflvnhcyn552ox4a - '@typescript-eslint/parser': 4.32.0_sgaiclxgc5mltnpgmg7py4v6ca - '@zoltu/typescript-transformer-append-js-extension': 1.0.1 - ava: 4.0.1 - c8: 7.11.0 - eslint: 7.32.0 - eslint-config-airbnb-typescript: 12.3.1_vavbtpegbj5qp5b42jfus6f2hy - eslint-import-resolver-typescript: 2.5.0_eslint@7.32.0 - eslint-plugin-ava: 12.0.0_eslint@7.32.0 - eslint-plugin-jsx-a11y: 6.4.1_eslint@7.32.0 - eslint-plugin-react: 7.26.1_eslint@7.32.0 - husky: 7.0.4 - lint-staged: 12.3.4 + '@typescript-eslint/eslint-plugin': 5.27.1_aq7uryhocdbvbqum33pitcm3y4 + '@typescript-eslint/parser': 5.27.1_ud6rd4xtew5bv4yhvkvu24pzm4 + ava: 4.3.0 + c8: 7.11.3 + del-cli: 4.0.1 + eslint: 8.17.0 + eslint-config-airbnb-typescript: 17.0.0_tp6b2m7mjearuulyvjl6n6zeka + eslint-import-resolver-typescript: 2.7.1_3yxiwxzsqipdmy4jwrlv6vgfmy + eslint-plugin-ava: 13.2.0_eslint@8.17.0 + eslint-plugin-import: 2.26.0_xzp3xuu5l2v5skncvl5a2je5s4 + husky: 8.0.1 + lint-staged: 13.0.1 pinst: 3.0.0 - rimraf: 3.0.2 - sinon: 13.0.1 - ts-node: 10.5.0_aa6iu3ncjlzgdp4lrtsrv3a234 - ttypescript: 1.5.13_a3wpukurwew37akiuez6njzgji - typescript: 4.5.5 + sinon: 14.0.0 + ts-node: 10.8.1_wpmar7q2se7jlmxe5wggegnl2m + typescript: 4.7.3 packages: - /@babel/code-frame/7.12.11: - resolution: {integrity: sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==} - dependencies: - '@babel/highlight': 7.14.5 - dev: true - /@babel/code-frame/7.12.13: resolution: {integrity: sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==} dependencies: - '@babel/highlight': 7.13.10 - dev: true - - /@babel/generator/7.13.16: - resolution: {integrity: sha512-grBBR75UnKOcUWMp8WoDxNsWCFl//XCK6HWTrBQKTr5SV9f5g0pNOjdyzi/DTBv12S9GnYPInIXQBTky7OXEMg==} - dependencies: - '@babel/types': 7.13.17 - jsesc: 2.5.2 - source-map: 0.5.7 - dev: true - - /@babel/helper-function-name/7.12.13: - resolution: {integrity: sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==} - dependencies: - '@babel/helper-get-function-arity': 7.12.13 - '@babel/template': 7.12.13 - '@babel/types': 7.13.17 - dev: true - - /@babel/helper-get-function-arity/7.12.13: - resolution: {integrity: sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==} - dependencies: - '@babel/types': 7.13.17 - dev: true - - /@babel/helper-split-export-declaration/7.12.13: - resolution: {integrity: sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==} - dependencies: - '@babel/types': 7.13.17 - dev: true - - /@babel/helper-validator-identifier/7.12.11: - resolution: {integrity: sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==} + '@babel/highlight': 7.14.5 dev: true /@babel/helper-validator-identifier/7.14.9: @@ -105,14 +61,6 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/highlight/7.13.10: - resolution: {integrity: sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==} - dependencies: - '@babel/helper-validator-identifier': 7.12.11 - chalk: 2.4.2 - js-tokens: 4.0.0 - dev: true - /@babel/highlight/7.14.5: resolution: {integrity: sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==} engines: {node: '>=6.9.0'} @@ -122,103 +70,47 @@ packages: js-tokens: 4.0.0 dev: true - /@babel/parser/7.13.16: - resolution: {integrity: sha512-6bAg36mCwuqLO0hbR+z7PHuqWiCeP7Dzg73OpQwsAB1Eb8HnGEz5xYBzCfbu+YjoaJsJs+qheDxVAuqbt3ILEw==} - engines: {node: '>=6.0.0'} - hasBin: true - dependencies: - '@babel/types': 7.13.17 - dev: true - - /@babel/runtime-corejs3/7.13.17: - resolution: {integrity: sha512-RGXINY1YvduBlGrP+vHjJqd/nK7JVpfM4rmZLGMx77WoL3sMrhheA0qxii9VNn1VHnxJLEyxmvCB+Wqc+x/FMw==} - dependencies: - core-js-pure: 3.11.0 - regenerator-runtime: 0.13.7 - dev: true - - /@babel/runtime/7.13.17: - resolution: {integrity: sha512-NCdgJEelPTSh+FEFylhnP1ylq848l1z9t9N0j1Lfbcw0+KXGjsTvUmkxy+voLLXB5SOKMbLLx4jxYliGrYQseA==} - dependencies: - regenerator-runtime: 0.13.7 - dev: true - - /@babel/template/7.12.13: - resolution: {integrity: sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==} - dependencies: - '@babel/code-frame': 7.12.13 - '@babel/parser': 7.13.16 - '@babel/types': 7.13.17 - dev: true - - /@babel/traverse/7.13.17: - resolution: {integrity: sha512-BMnZn0R+X6ayqm3C3To7o1j7Q020gWdqdyP50KEoVqaCO2c/Im7sYZSmVgvefp8TTMQ+9CtwuBp0Z1CZ8V3Pvg==} - dependencies: - '@babel/code-frame': 7.12.13 - '@babel/generator': 7.13.16 - '@babel/helper-function-name': 7.12.13 - '@babel/helper-split-export-declaration': 7.12.13 - '@babel/parser': 7.13.16 - '@babel/types': 7.13.17 - debug: 4.3.2 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/types/7.13.17: - resolution: {integrity: sha512-RawydLgxbOPDlTLJNtoIypwdmAy//uQIzlKt2+iBiJaRlVuI6QLUxVAyWGNfOzp8Yu4L4lLIacoCyTNtpb4wiA==} - dependencies: - '@babel/helper-validator-identifier': 7.12.11 - to-fast-properties: 2.0.0 - dev: true - /@bcoe/v8-coverage/0.2.3: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} dev: true - /@cspotcode/source-map-consumer/0.8.0: - resolution: {integrity: sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==} - engines: {node: '>= 12'} - dev: true - - /@cspotcode/source-map-support/0.7.0: - resolution: {integrity: sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==} + /@cspotcode/source-map-support/0.8.1: + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} dependencies: - '@cspotcode/source-map-consumer': 0.8.0 + '@jridgewell/trace-mapping': 0.3.9 dev: true - /@eslint/eslintrc/0.4.3: - resolution: {integrity: sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==} - engines: {node: ^10.12.0 || >=12.0.0} + /@eslint/eslintrc/1.3.0: + resolution: {integrity: sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 - debug: 4.3.2 - espree: 7.3.1 - globals: 13.10.0 - ignore: 4.0.6 + debug: 4.3.4 + espree: 9.3.2 + globals: 13.15.0 + ignore: 5.2.0 import-fresh: 3.3.0 - js-yaml: 3.14.1 - minimatch: 3.0.4 + js-yaml: 4.1.0 + minimatch: 3.1.2 strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color dev: true - /@humanwhocodes/config-array/0.5.0: - resolution: {integrity: sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==} + /@humanwhocodes/config-array/0.9.5: + resolution: {integrity: sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==} engines: {node: '>=10.10.0'} dependencies: - '@humanwhocodes/object-schema': 1.2.0 - debug: 4.3.2 - minimatch: 3.0.4 + '@humanwhocodes/object-schema': 1.2.1 + debug: 4.3.4 + minimatch: 3.1.2 transitivePeerDependencies: - supports-color dev: true - /@humanwhocodes/object-schema/1.2.0: - resolution: {integrity: sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==} + /@humanwhocodes/object-schema/1.2.1: + resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} dev: true /@istanbuljs/schema/0.1.3: @@ -226,6 +118,29 @@ packages: engines: {node: '>=8'} dev: true + /@jridgewell/resolve-uri/3.0.7: + resolution: {integrity: sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/sourcemap-codec/1.4.13: + resolution: {integrity: sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==} + dev: true + + /@jridgewell/trace-mapping/0.3.13: + resolution: {integrity: sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==} + dependencies: + '@jridgewell/resolve-uri': 3.0.7 + '@jridgewell/sourcemap-codec': 1.4.13 + dev: true + + /@jridgewell/trace-mapping/0.3.9: + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + dependencies: + '@jridgewell/resolve-uri': 3.0.7 + '@jridgewell/sourcemap-codec': 1.4.13 + dev: true + /@nodelib/fs.scandir/2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -239,14 +154,6 @@ packages: engines: {node: '>= 8'} dev: true - /@nodelib/fs.walk/1.2.7: - resolution: {integrity: sha512-BTIhocbPBSrRmHxOAJFtR18oLhxTtAFDAvL8hY1S3iU8k+E60W/YFs4jrixGzQjMpF4qPXxIQHcjVD9dz1C2QA==} - engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.11.0 - dev: true - /@nodelib/fs.walk/1.2.8: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} @@ -255,19 +162,26 @@ packages: fastq: 1.13.0 dev: true - /@octetstream/eslint-config/5.0.0_apautjdkl4tcrnrnjzhjtcg3ji: - resolution: {integrity: sha512-XR+bYO1X2jzPtWUAVDStgpi+ga1MmY7OgXra1MRY/U3r0xvZPyhIruEf0oQA3UdWK9V3lxOyQPF1yidFB/sF/g==} + /@octetstream/eslint-config/6.2.1_55x735gf5sv6ystvn4rzalkjum: + resolution: {integrity: sha512-hT2f6ildoU/6+5QCpY/s7tSWNdhRQqI5nhtVYgiM8aaSHfdLXPVRmFlMPXf5/N6pPReVbNBFX275EzafYVD/DQ==} peerDependencies: - eslint: ^5.16.0 || ^6.8.0 || ^7.2.0 - dependencies: - babel-eslint: 10.1.0_eslint@7.32.0 - eslint: 7.32.0 - eslint-config-airbnb-base: 14.2.1_y3uqgclsri32by3u2y4wwdw5u4 - eslint-plugin-import: 2.22.1_apautjdkl4tcrnrnjzhjtcg3ji - eslint-plugin-promise: 4.3.1 + '@typescript-eslint/eslint-plugin': ^5.27.1 + '@typescript-eslint/parser': ^5.27.1 + eslint: ^8.0.0 + eslint-config-airbnb-typescript: ^17.0.0 + eslint-import-resolver-typescript: ^2.7.1 + typescript: ^4.7.3 + dependencies: + '@typescript-eslint/eslint-plugin': 5.27.1_aq7uryhocdbvbqum33pitcm3y4 + '@typescript-eslint/parser': 5.27.1_ud6rd4xtew5bv4yhvkvu24pzm4 + eslint: 8.17.0 + eslint-config-airbnb-base: 15.0.0_3yxiwxzsqipdmy4jwrlv6vgfmy + eslint-config-airbnb-typescript: 17.0.0_tp6b2m7mjearuulyvjl6n6zeka + eslint-import-resolver-typescript: 2.7.1_3yxiwxzsqipdmy4jwrlv6vgfmy + eslint-plugin-import: 2.26.0_xzp3xuu5l2v5skncvl5a2je5s4 + eslint-plugin-promise: 6.0.0_eslint@8.17.0 + typescript: 4.7.3 transitivePeerDependencies: - - '@typescript-eslint/parser' - - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color dev: true @@ -278,8 +192,8 @@ packages: type-detect: 4.0.8 dev: true - /@sinonjs/fake-timers/9.1.0: - resolution: {integrity: sha512-M8vapsv9qQupMdzrVzkn5rb9jG7aUTEPAZdMtME2PuBaefksFZVE2C1g4LBRTkF/k3nRDNbDc5tp5NFC1PEYxA==} + /@sinonjs/fake-timers/9.1.2: + resolution: {integrity: sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==} dependencies: '@sinonjs/commons': 1.8.3 dev: true @@ -321,11 +235,19 @@ packages: dev: true /@types/json5/0.0.29: - resolution: {integrity: sha1-7ihweulOEdK4J7y+UnC86n8+ce4=} + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + dev: true + + /@types/minimist/1.2.2: + resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} + dev: true + + /@types/node/17.0.42: + resolution: {integrity: sha512-Q5BPGyGKcvQgAMbsr7qEGN/kIPN6zZecYYABeTDBizOsau+2NMdSVTar9UQw21A2+JyA2KRNDYaYrPB0Rpk2oQ==} dev: true - /@types/node/17.0.19: - resolution: {integrity: sha512-PfeQhvcMR4cPFVuYfBN4ifG7p9c+Dlh3yUZR6k+5yQK7wX3gDgVxBly4/WkBRs9x4dmcy1TVl08SY67wwtEvmA==} + /@types/normalize-package-data/2.4.1: + resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} dev: true /@types/sinon/10.0.11: @@ -338,184 +260,138 @@ packages: resolution: {integrity: sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==} dev: true - /@typescript-eslint/eslint-plugin/4.32.0_pzhgjgvtqtuflvnhcyn552ox4a: - resolution: {integrity: sha512-+OWTuWRSbWI1KDK8iEyG/6uK2rTm3kpS38wuVifGUTDB6kjEuNrzBI1MUtxnkneuWG/23QehABe2zHHrj+4yuA==} - engines: {node: ^10.12.0 || >=12.0.0} + /@typescript-eslint/eslint-plugin/5.27.1_aq7uryhocdbvbqum33pitcm3y4: + resolution: {integrity: sha512-6dM5NKT57ZduNnJfpY81Phe9nc9wolnMCnknb1im6brWi1RYv84nbMS3olJa27B6+irUVV1X/Wb+Am0FjJdGFw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - '@typescript-eslint/parser': ^4.0.0 - eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 + '@typescript-eslint/parser': ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/experimental-utils': 4.32.0_sgaiclxgc5mltnpgmg7py4v6ca - '@typescript-eslint/parser': 4.32.0_sgaiclxgc5mltnpgmg7py4v6ca - '@typescript-eslint/scope-manager': 4.32.0 - debug: 4.3.2 - eslint: 7.32.0 + '@typescript-eslint/parser': 5.27.1_ud6rd4xtew5bv4yhvkvu24pzm4 + '@typescript-eslint/scope-manager': 5.27.1 + '@typescript-eslint/type-utils': 5.27.1_ud6rd4xtew5bv4yhvkvu24pzm4 + '@typescript-eslint/utils': 5.27.1_ud6rd4xtew5bv4yhvkvu24pzm4 + debug: 4.3.4 + eslint: 8.17.0 functional-red-black-tree: 1.0.1 - ignore: 5.1.8 + ignore: 5.2.0 regexpp: 3.2.0 - semver: 7.3.5 - tsutils: 3.21.0_typescript@4.5.5 - typescript: 4.5.5 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/experimental-utils/4.32.0_sgaiclxgc5mltnpgmg7py4v6ca: - resolution: {integrity: sha512-WLoXcc+cQufxRYjTWr4kFt0DyEv6hDgSaFqYhIzQZ05cF+kXfqXdUh+//kgquPJVUBbL3oQGKQxwPbLxHRqm6A==} - engines: {node: ^10.12.0 || >=12.0.0} - peerDependencies: - eslint: '*' - dependencies: - '@types/json-schema': 7.0.9 - '@typescript-eslint/scope-manager': 4.32.0 - '@typescript-eslint/types': 4.32.0 - '@typescript-eslint/typescript-estree': 4.32.0_typescript@4.5.5 - eslint: 7.32.0 - eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@7.32.0 + semver: 7.3.7 + tsutils: 3.21.0_typescript@4.7.3 + typescript: 4.7.3 transitivePeerDependencies: - supports-color - - typescript dev: true - /@typescript-eslint/parser/4.22.0_sgaiclxgc5mltnpgmg7py4v6ca: - resolution: {integrity: sha512-z/bGdBJJZJN76nvAY9DkJANYgK3nlRstRRi74WHm3jjgf2I8AglrSY+6l7ogxOmn55YJ6oKZCLLy+6PW70z15Q==} - engines: {node: ^10.12.0 || >=12.0.0} + /@typescript-eslint/parser/5.27.1_ud6rd4xtew5bv4yhvkvu24pzm4: + resolution: {integrity: sha512-7Va2ZOkHi5NP+AZwb5ReLgNF6nWLGTeUJfxdkVUAPPSaAdbWNnFZzLZ4EGGmmiCTg+AwlbE1KyUYTBglosSLHQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 4.22.0 - '@typescript-eslint/types': 4.22.0 - '@typescript-eslint/typescript-estree': 4.22.0_typescript@4.5.5 - debug: 4.3.2 - eslint: 7.32.0 - typescript: 4.5.5 + '@typescript-eslint/scope-manager': 5.27.1 + '@typescript-eslint/types': 5.27.1 + '@typescript-eslint/typescript-estree': 5.27.1_typescript@4.7.3 + debug: 4.3.4 + eslint: 8.17.0 + typescript: 4.7.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser/4.32.0_sgaiclxgc5mltnpgmg7py4v6ca: - resolution: {integrity: sha512-lhtYqQ2iEPV5JqV7K+uOVlPePjClj4dOw7K4/Z1F2yvjIUvyr13yJnDzkK6uon4BjHYuHy3EG0c2Z9jEhFk56w==} - engines: {node: ^10.12.0 || >=12.0.0} + /@typescript-eslint/scope-manager/5.27.1: + resolution: {integrity: sha512-fQEOSa/QroWE6fAEg+bJxtRZJTH8NTskggybogHt4H9Da8zd4cJji76gA5SBlR0MgtwF7rebxTbDKB49YUCpAg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.27.1 + '@typescript-eslint/visitor-keys': 5.27.1 + dev: true + + /@typescript-eslint/type-utils/5.27.1_ud6rd4xtew5bv4yhvkvu24pzm4: + resolution: {integrity: sha512-+UC1vVUWaDHRnC2cQrCJ4QtVjpjjCgjNFpg8b03nERmkHv9JV9X5M19D7UFMd+/G7T/sgFwX2pGmWK38rqyvXw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 + eslint: '*' typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 4.32.0 - '@typescript-eslint/types': 4.32.0 - '@typescript-eslint/typescript-estree': 4.32.0_typescript@4.5.5 - debug: 4.3.2 - eslint: 7.32.0 - typescript: 4.5.5 + '@typescript-eslint/utils': 5.27.1_ud6rd4xtew5bv4yhvkvu24pzm4 + debug: 4.3.4 + eslint: 8.17.0 + tsutils: 3.21.0_typescript@4.7.3 + typescript: 4.7.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager/4.22.0: - resolution: {integrity: sha512-OcCO7LTdk6ukawUM40wo61WdeoA7NM/zaoq1/2cs13M7GyiF+T4rxuA4xM+6LeHWjWbss7hkGXjFDRcKD4O04Q==} - engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} - dependencies: - '@typescript-eslint/types': 4.22.0 - '@typescript-eslint/visitor-keys': 4.22.0 + /@typescript-eslint/types/5.27.1: + resolution: {integrity: sha512-LgogNVkBhCTZU/m8XgEYIWICD6m4dmEDbKXESCbqOXfKZxRKeqpiJXQIErv66sdopRKZPo5l32ymNqibYEH/xg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/scope-manager/4.32.0: - resolution: {integrity: sha512-DK+fMSHdM216C0OM/KR1lHXjP1CNtVIhJ54kQxfOE6x8UGFAjha8cXgDMBEIYS2XCYjjCtvTkjQYwL3uvGOo0w==} - engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} - dependencies: - '@typescript-eslint/types': 4.32.0 - '@typescript-eslint/visitor-keys': 4.32.0 - dev: true - - /@typescript-eslint/types/4.22.0: - resolution: {integrity: sha512-sW/BiXmmyMqDPO2kpOhSy2Py5w6KvRRsKZnV0c4+0nr4GIcedJwXAq+RHNK4lLVEZAJYFltnnk1tJSlbeS9lYA==} - engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} - dev: true - - /@typescript-eslint/types/4.32.0: - resolution: {integrity: sha512-LE7Z7BAv0E2UvqzogssGf1x7GPpUalgG07nGCBYb1oK4mFsOiFC/VrSMKbZQzFJdN2JL5XYmsx7C7FX9p9ns0w==} - engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} - dev: true - - /@typescript-eslint/typescript-estree/4.22.0_typescript@4.5.5: - resolution: {integrity: sha512-TkIFeu5JEeSs5ze/4NID+PIcVjgoU3cUQUIZnH3Sb1cEn1lBo7StSV5bwPuJQuoxKXlzAObjYTilOEKRuhR5yg==} - engines: {node: ^10.12.0 || >=12.0.0} + /@typescript-eslint/typescript-estree/5.27.1_typescript@4.7.3: + resolution: {integrity: sha512-DnZvvq3TAJ5ke+hk0LklvxwYsnXpRdqUY5gaVS0D4raKtbznPz71UJGnPTHEFo0GDxqLOLdMkkmVZjSpET1hFw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/types': 4.22.0 - '@typescript-eslint/visitor-keys': 4.22.0 - debug: 4.3.2 - globby: 11.0.3 + '@typescript-eslint/types': 5.27.1 + '@typescript-eslint/visitor-keys': 5.27.1 + debug: 4.3.4 + globby: 11.1.0 is-glob: 4.0.3 - semver: 7.3.5 - tsutils: 3.21.0_typescript@4.5.5 - typescript: 4.5.5 + semver: 7.3.7 + tsutils: 3.21.0_typescript@4.7.3 + typescript: 4.7.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/typescript-estree/4.32.0_typescript@4.5.5: - resolution: {integrity: sha512-tRYCgJ3g1UjMw1cGG8Yn1KzOzNlQ6u1h9AmEtPhb5V5a1TmiHWcRyF/Ic+91M4f43QeChyYlVTcf3DvDTZR9vw==} - engines: {node: ^10.12.0 || >=12.0.0} + /@typescript-eslint/utils/5.27.1_ud6rd4xtew5bv4yhvkvu24pzm4: + resolution: {integrity: sha512-mZ9WEn1ZLDaVrhRaYgzbkXBkTPghPFsup8zDbbsYTxC5OmqrFE7skkKS/sraVsLP3TcT3Ki5CSyEFBRkLH/H/w==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@typescript-eslint/types': 4.32.0 - '@typescript-eslint/visitor-keys': 4.32.0 - debug: 4.3.2 - globby: 11.0.4 - is-glob: 4.0.3 - semver: 7.3.5 - tsutils: 3.21.0_typescript@4.5.5 - typescript: 4.5.5 + '@types/json-schema': 7.0.9 + '@typescript-eslint/scope-manager': 5.27.1 + '@typescript-eslint/types': 5.27.1 + '@typescript-eslint/typescript-estree': 5.27.1_typescript@4.7.3 + eslint: 8.17.0 + eslint-scope: 5.1.1 + eslint-utils: 3.0.0_eslint@8.17.0 transitivePeerDependencies: - supports-color + - typescript dev: true - /@typescript-eslint/visitor-keys/4.22.0: - resolution: {integrity: sha512-nnMu4F+s4o0sll6cBSsTeVsT4cwxB7zECK3dFxzEjPBii9xLpq4yqqsy/FU5zMfan6G60DKZSCXAa3sHJZrcYw==} - engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} - dependencies: - '@typescript-eslint/types': 4.22.0 - eslint-visitor-keys: 2.0.0 - dev: true - - /@typescript-eslint/visitor-keys/4.32.0: - resolution: {integrity: sha512-e7NE0qz8W+atzv3Cy9qaQ7BTLwWsm084Z0c4nIO2l3Bp6u9WIgdqCgyPyV5oSPDMIW3b20H59OOCmVk3jw3Ptw==} - engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} + /@typescript-eslint/visitor-keys/5.27.1: + resolution: {integrity: sha512-xYs6ffo01nhdJgPieyk7HAOpjhTsx7r/oB9LWEhwAXgwn33tkr+W8DI2ChboqhZlC4q3TC6geDYPoiX8ROqyOQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 4.32.0 - eslint-visitor-keys: 2.1.0 - dev: true - - /@zoltu/typescript-transformer-append-js-extension/1.0.1: - resolution: {integrity: sha512-7Lp30MtJO7YHZW19yJWhkuJrf+Y78COHopeZli7fiWrbIRvodsSXZIa7cFX/c4PFwFJt55N/7Pp/t6VH0fwBVQ==} + '@typescript-eslint/types': 5.27.1 + eslint-visitor-keys: 3.3.0 dev: true - /acorn-jsx/5.3.1_acorn@7.4.1: - resolution: {integrity: sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==} + /acorn-jsx/5.3.2_acorn@8.7.1: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 7.4.1 + acorn: 8.7.1 dev: true /acorn-walk/8.2.0: @@ -523,14 +399,14 @@ packages: engines: {node: '>=0.4.0'} dev: true - /acorn/7.4.1: - resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} + /acorn/8.7.0: + resolution: {integrity: sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==} engines: {node: '>=0.4.0'} hasBin: true dev: true - /acorn/8.7.0: - resolution: {integrity: sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==} + /acorn/8.7.1: + resolution: {integrity: sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==} engines: {node: '>=0.4.0'} hasBin: true dev: true @@ -560,20 +436,6 @@ packages: uri-js: 4.4.1 dev: true - /ajv/8.6.2: - resolution: {integrity: sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==} - dependencies: - fast-deep-equal: 3.1.3 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - uri-js: 4.4.1 - dev: true - - /ansi-colors/4.1.1: - resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} - engines: {node: '>=6'} - dev: true - /ansi-escapes/4.3.2: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} engines: {node: '>=8'} @@ -581,11 +443,6 @@ packages: type-fest: 0.21.3 dev: true - /ansi-regex/5.0.0: - resolution: {integrity: sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==} - engines: {node: '>=8'} - dev: true - /ansi-regex/5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} @@ -633,30 +490,15 @@ packages: sprintf-js: 1.0.3 dev: true - /aria-query/4.2.2: - resolution: {integrity: sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==} - engines: {node: '>=6.0'} - dependencies: - '@babel/runtime': 7.13.17 - '@babel/runtime-corejs3': 7.13.17 + /argparse/2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} dev: true /array-find-index/1.0.2: - resolution: {integrity: sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=} + resolution: {integrity: sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==} engines: {node: '>=0.10.0'} dev: true - /array-includes/3.1.3: - resolution: {integrity: sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.3 - es-abstract: 1.18.5 - get-intrinsic: 1.1.1 - is-string: 1.0.7 - dev: true - /array-includes/3.1.4: resolution: {integrity: sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==} engines: {node: '>= 0.4'} @@ -673,27 +515,14 @@ packages: engines: {node: '>=8'} dev: true - /array-union/3.0.1: - resolution: {integrity: sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==} - engines: {node: '>=12'} - dev: true - - /array.prototype.flat/1.2.4: - resolution: {integrity: sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==} + /array.prototype.flat/1.3.0: + resolution: {integrity: sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.1.3 - es-abstract: 1.18.0 - dev: true - - /array.prototype.flatmap/1.2.5: - resolution: {integrity: sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.3 - es-abstract: 1.19.1 + es-abstract: 1.20.1 + es-shim-unscopables: 1.0.0 dev: true /arrgv/1.0.2: @@ -701,9 +530,9 @@ packages: engines: {node: '>=8.0.0'} dev: true - /arrify/2.0.1: - resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} - engines: {node: '>=8'} + /arrify/1.0.1: + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} + engines: {node: '>=0.10.0'} dev: true /arrify/3.0.0: @@ -711,18 +540,14 @@ packages: engines: {node: '>=12'} dev: true - /ast-types-flow/0.0.7: - resolution: {integrity: sha1-9wtzXGvKGlycItmCw+Oef+ujva0=} - dev: true - /astral-regex/2.0.0: resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} engines: {node: '>=8'} dev: true - /ava/4.0.1: - resolution: {integrity: sha512-+12A/JDWyShBCZAKISEEPyM2dwkUrrAfPILqXi4LI4Aa58d92PzjY829hmuoSeACPNqrn2Wlbnja8c/n7bKV6Q==} - engines: {node: '>=12.22 <13 || >=14.17 <15 || >=16.4 <17 || >=17'} + /ava/4.3.0: + resolution: {integrity: sha512-Ap0u8rp8wOBN6CxshgxrPSe191e8g52RWGoXeDB57ubo4fyZyStfI6OxQi/bl0yxIDEOYHhCiGwihbzlMNJw3Q==} + engines: {node: '>=12.22 <13 || >=14.17 <15 || >=16.4 <17 || >=18'} hasBin: true peerDependencies: '@ava/typescript': '*' @@ -730,30 +555,30 @@ packages: '@ava/typescript': optional: true dependencies: - acorn: 8.7.0 + acorn: 8.7.1 acorn-walk: 8.2.0 ansi-styles: 6.1.0 arrgv: 1.0.2 arrify: 3.0.0 callsites: 4.0.0 cbor: 8.1.0 - chalk: 5.0.0 + chalk: 5.0.1 chokidar: 3.5.3 chunkd: 2.0.1 - ci-info: 3.3.0 + ci-info: 3.3.1 ci-parallel-vars: 1.0.1 clean-yaml-object: 0.1.0 cli-truncate: 3.1.0 - code-excerpt: 3.0.0 + code-excerpt: 4.0.0 common-path-prefix: 3.0.0 concordance: 5.0.4 currently-unhandled: 0.4.1 - debug: 4.3.3 - del: 6.0.0 - emittery: 0.10.1 - figures: 4.0.0 - globby: 12.2.0 - ignore-by-default: 2.0.0 + debug: 4.3.4 + del: 6.1.1 + emittery: 0.11.0 + figures: 4.0.1 + globby: 13.1.1 + ignore-by-default: 2.1.0 indent-string: 5.0.0 is-error: 2.2.2 is-plain-object: 5.0.0 @@ -762,7 +587,7 @@ packages: mem: 9.0.2 ms: 2.1.3 p-event: 5.0.1 - p-map: 5.3.0 + p-map: 5.5.0 picomatch: 2.3.1 pkg-conf: 4.0.0 plur: 5.1.0 @@ -771,37 +596,10 @@ packages: slash: 3.0.0 stack-utils: 2.0.5 strip-ansi: 7.0.1 - supertap: 2.0.0 + supertap: 3.0.1 temp-dir: 2.0.0 - write-file-atomic: 3.0.3 - yargs: 17.3.1 - transitivePeerDependencies: - - supports-color - dev: true - - /axe-core/4.1.4: - resolution: {integrity: sha512-Pdgfv6iP0gNx9ejRGa3zE7Xgkj/iclXqLfe7BnatdZz0QnLZ3jrRHUVH8wNSdN68w05Sk3ShGTb3ydktMTooig==} - engines: {node: '>=4'} - dev: true - - /axobject-query/2.2.0: - resolution: {integrity: sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==} - dev: true - - /babel-eslint/10.1.0_eslint@7.32.0: - resolution: {integrity: sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==} - engines: {node: '>=6'} - deprecated: babel-eslint is now @babel/eslint-parser. This package will no longer receive updates. - peerDependencies: - eslint: '>= 4.12.1' - dependencies: - '@babel/code-frame': 7.12.13 - '@babel/parser': 7.13.16 - '@babel/traverse': 7.13.17 - '@babel/types': 7.13.17 - eslint: 7.32.0 - eslint-visitor-keys: 1.3.0 - resolve: 1.20.0 + write-file-atomic: 4.0.1 + yargs: 17.5.1 transitivePeerDependencies: - supports-color dev: true @@ -833,13 +631,8 @@ packages: fill-range: 7.0.1 dev: true - /buf-compare/1.0.1: - resolution: {integrity: sha1-/vKNqLgROgoNtEMLC2Rntpcws0o=} - engines: {node: '>=0.10.0'} - dev: true - - /c8/7.11.0: - resolution: {integrity: sha512-XqPyj1uvlHMr+Y1IeRndC2X5P7iJzJlEJwBpCdBbq2JocXOgJfr+JVfJkyNMGROke5LfKrhSFXGFXnwnRJAUJw==} + /c8/7.11.3: + resolution: {integrity: sha512-6YBmsaNmqRm9OS3ZbIiL2EZgi1+Xc4O24jL3vMYGE6idixYuGdy76rIfIdltSKDj9DpLNrcXSonUTR1miBD0wA==} engines: {node: '>=10.12.0'} hasBin: true dependencies: @@ -849,10 +642,10 @@ packages: foreground-child: 2.0.0 istanbul-lib-coverage: 3.2.0 istanbul-lib-report: 3.0.0 - istanbul-reports: 3.1.3 + istanbul-reports: 3.1.4 rimraf: 3.0.2 test-exclude: 6.0.0 - v8-to-istanbul: 8.1.0 + v8-to-istanbul: 9.0.0 yargs: 16.2.0 yargs-parser: 20.2.9 dev: true @@ -874,6 +667,21 @@ packages: engines: {node: '>=12.20'} dev: true + /camelcase-keys/7.0.2: + resolution: {integrity: sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==} + engines: {node: '>=12'} + dependencies: + camelcase: 6.3.0 + map-obj: 4.3.0 + quick-lru: 5.1.1 + type-fest: 1.4.0 + dev: true + + /camelcase/6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + dev: true + /cbor/8.1.0: resolution: {integrity: sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg==} engines: {node: '>=12.19'} @@ -898,8 +706,8 @@ packages: supports-color: 7.2.0 dev: true - /chalk/5.0.0: - resolution: {integrity: sha512-/duVOqst+luxCQRKEo4bNxinsOQtMP80ZYm7mMqzuh5PociNL0PvmHFvREJ9ueYL2TxlHjBcmLCdmocx9Vg+IQ==} + /chalk/5.0.1: + resolution: {integrity: sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} dev: true @@ -922,8 +730,8 @@ packages: resolution: {integrity: sha512-7d58XsFmOq0j6el67Ug9mHf9ELUXsQXYJBkyxhH/k+6Ke0qXRnv0kbemx+Twc6fRJ07C49lcbdgm9FL1Ei/6SQ==} dev: true - /ci-info/3.3.0: - resolution: {integrity: sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==} + /ci-info/3.3.1: + resolution: {integrity: sha512-SXgeMX9VwDe7iFFaEWkA5AstuER9YKqy4EhHqr4DVqkwmD9rpVimkMKWHdjn30Ja45txyjhSn63lVX69eVCckg==} dev: true /ci-parallel-vars/1.0.1: @@ -943,7 +751,7 @@ packages: dev: true /clean-yaml-object/0.1.0: - resolution: {integrity: sha1-Y/sRDcLOGoTcIfbZM0h20BCui2g=} + resolution: {integrity: sha512-3yONmlN9CSAkzNwnRCiJQ7Q2xK5mWuEfL3PuTZcAUzhObbXsfsnMptJzXwz93nc5zn9V9TwCVMmV7w4xsm43dw==} engines: {node: '>=0.10.0'} dev: true @@ -973,16 +781,16 @@ packages: /cliui/7.0.4: resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} dependencies: - string-width: 4.2.2 - strip-ansi: 6.0.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 wrap-ansi: 7.0.0 dev: true - /code-excerpt/3.0.0: - resolution: {integrity: sha512-VHNTVhd7KsLGOqfX3SyeO8RyYPMp1GJOg194VITk04WMYCv4plV68YWe6TJZxd9MhobjtpMRnVky01gqZsalaw==} - engines: {node: '>=10'} + /code-excerpt/4.0.0: + resolution: {integrity: sha512-xxodCmBen3iy2i0WtAK8FlFNrRzjUqjRsMfho58xT/wvZU1YTM3fCnRjcy1gJPMepaRlgm/0e6w8SpWHpn3/cA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: - convert-to-spaces: 1.0.2 + convert-to-spaces: 2.0.1 dev: true /color-convert/1.9.3: @@ -999,20 +807,20 @@ packages: dev: true /color-name/1.1.3: - resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=} + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} dev: true /color-name/1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} dev: true - /colorette/2.0.16: - resolution: {integrity: sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==} + /colorette/2.0.17: + resolution: {integrity: sha512-hJo+3Bkn0NCHybn9Tu35fIeoOKGOk5OCC32y4Hz2It+qlCO2Q3DeQ1hRn/tDDMQKRYUEzqsl7jbF6dYKjlE60g==} dev: true - /commander/8.3.0: - resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} - engines: {node: '>= 12'} + /commander/9.3.0: + resolution: {integrity: sha512-hv95iU5uXPbK83mjrJKuZyFM/LBAoCV/XhVGkS5Je6tl7sxr6A0ITMw5WoRV46/UaJ46Nllm3Xt7IaJhXTIkzw==} + engines: {node: ^12.20.0 || >=14} dev: true /common-path-prefix/3.0.0: @@ -1020,7 +828,7 @@ packages: dev: true /concat-map/0.0.1: - resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} dev: true /concordance/5.0.4: @@ -1033,7 +841,7 @@ packages: js-string-escape: 1.0.1 lodash: 4.17.21 md5-hex: 3.0.1 - semver: 7.3.5 + semver: 7.3.7 well-known-symbols: 2.0.0 dev: true @@ -1041,33 +849,15 @@ packages: resolution: {integrity: sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA==} dev: true - /contains-path/0.1.0: - resolution: {integrity: sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=} - engines: {node: '>=0.10.0'} - dev: true - /convert-source-map/1.8.0: resolution: {integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==} dependencies: safe-buffer: 5.1.2 dev: true - /convert-to-spaces/1.0.2: - resolution: {integrity: sha1-fj5Iu+bZl7FBfdyihoIEtNPYVxU=} - engines: {node: '>= 4'} - dev: true - - /core-assert/0.2.1: - resolution: {integrity: sha1-+F4s+b/tKPdzzIs/pcW2m9wC/j8=} - engines: {node: '>=0.10.0'} - dependencies: - buf-compare: 1.0.1 - is-error: 2.2.2 - dev: true - - /core-js-pure/3.11.0: - resolution: {integrity: sha512-PxEiQGjzC+5qbvE7ZIs5Zn6BynNeZO9zHhrrWmkRff2SZLq0CE/H5LuZOJHhmOQ8L38+eMzEHAmPYWrUtDfuDQ==} - requiresBuild: true + /convert-to-spaces/2.0.1: + resolution: {integrity: sha512-rcQ1bsQO9799wq24uE5AM2tAILy4gXGIK/njFWcVQkGNZ96edlpY+A7bjwvzjYvLDyzmG1MmMLZhpcsb+klNMQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true /create-require/1.1.1: @@ -1084,16 +874,12 @@ packages: dev: true /currently-unhandled/0.4.1: - resolution: {integrity: sha1-mI3zP+qxke95mmE2nddsF635V+o=} + resolution: {integrity: sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==} engines: {node: '>=0.10.0'} dependencies: array-find-index: 1.0.2 dev: true - /damerau-levenshtein/1.0.6: - resolution: {integrity: sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==} - dev: true - /date-time/3.1.0: resolution: {integrity: sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg==} engines: {node: '>=6'} @@ -1112,20 +898,19 @@ packages: ms: 2.0.0 dev: true - /debug/4.3.2: - resolution: {integrity: sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==} - engines: {node: '>=6.0'} + /debug/3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: supports-color: '*' peerDependenciesMeta: supports-color: optional: true dependencies: - ms: 2.1.2 + ms: 2.1.3 dev: true - /debug/4.3.3: - resolution: {integrity: sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==} + /debug/4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -1136,28 +921,26 @@ packages: ms: 2.1.2 dev: true - /debug/4.3.3_supports-color@9.2.1: - resolution: {integrity: sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true + /decamelize-keys/1.1.0: + resolution: {integrity: sha512-ocLWuYzRPoS9bfiSdDd3cxvrzovVMZnRDVEzAs+hWIVXGDbHxWMECij2OBuyB/An0FFW/nLuq6Kv1i/YC5Qfzg==} + engines: {node: '>=0.10.0'} dependencies: - ms: 2.1.2 - supports-color: 9.2.1 + decamelize: 1.2.0 + map-obj: 1.0.1 dev: true - /deep-is/0.1.3: - resolution: {integrity: sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=} + /decamelize/1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} dev: true - /deep-strict-equal/0.2.0: - resolution: {integrity: sha1-SgeBR6irV/ag1PVUckPNIvROtOQ=} - engines: {node: '>=0.10.0'} - dependencies: - core-assert: 0.2.1 + /decamelize/5.0.1: + resolution: {integrity: sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==} + engines: {node: '>=10'} + dev: true + + /deep-is/0.1.3: + resolution: {integrity: sha512-GtxAN4HvBachZzm4OnWqc45ESpUCMwkYcsjnsPs23FwJbsO+k4t0k9bQCgOmzIlpHO28+WPK/KRbRk0DDHuuDw==} dev: true /define-properties/1.1.3: @@ -1167,6 +950,23 @@ packages: object-keys: 1.1.1 dev: true + /define-properties/1.1.4: + resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==} + engines: {node: '>= 0.4'} + dependencies: + has-property-descriptors: 1.0.0 + object-keys: 1.1.1 + dev: true + + /del-cli/4.0.1: + resolution: {integrity: sha512-KtR/6cBfZkGDAP2NA7z+bP4p1OMob3wjN9mq13+SWvExx6jT9gFWfLgXEeX8J2B47OKeNCq9yTONmtryQ+m+6g==} + engines: {node: '>=12.20'} + hasBin: true + dependencies: + del: 6.0.0 + meow: 10.1.2 + dev: true + /del/6.0.0: resolution: {integrity: sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==} engines: {node: '>=10'} @@ -1181,6 +981,20 @@ packages: slash: 3.0.0 dev: true + /del/6.1.1: + resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==} + engines: {node: '>=10'} + dependencies: + globby: 11.1.0 + graceful-fs: 4.2.9 + is-glob: 4.0.3 + is-path-cwd: 2.2.0 + is-path-inside: 3.0.3 + p-map: 4.0.0 + rimraf: 3.0.2 + slash: 3.0.0 + dev: true + /diff/4.0.2: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} @@ -1198,14 +1012,6 @@ packages: path-type: 4.0.0 dev: true - /doctrine/1.5.0: - resolution: {integrity: sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=} - engines: {node: '>=0.10.0'} - dependencies: - esutils: 2.0.3 - isarray: 1.0.0 - dev: true - /doctrine/2.1.0: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} engines: {node: '>=0.10.0'} @@ -1224,8 +1030,8 @@ packages: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} dev: true - /emittery/0.10.1: - resolution: {integrity: sha512-OBSS9uVXbpgqEGq2V5VnpfCu9vSnfiR9eYVJmxFYToNIcWRHkM4BAFbJe/PWjf/pQdEL7OPxd2jOW/bJiyX7gg==} + /emittery/0.11.0: + resolution: {integrity: sha512-S/7tzL6v5i+4iJd627Nhv9cLFIo5weAIlGccqJFpnBoDB8U1TF2k5tez4J/QNuxyyhWuFqHg1L84Kd3m7iXg6g==} engines: {node: '>=12'} dev: true @@ -1238,63 +1044,37 @@ packages: dev: true /enhance-visitors/1.0.0: - resolution: {integrity: sha1-qpRdBdpGVnKh69OP7i7T2oUY6Vo=} + resolution: {integrity: sha512-+29eJLiUixTEDRaZ35Vu8jP3gPLNcQQkQkOQjLp2X+6cZGGPDD/uasbFzvLsJKnGZnvmyZ0srxudwOtskHeIDA==} engines: {node: '>=4.0.0'} dependencies: lodash: 4.17.21 dev: true - /enquirer/2.3.6: - resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} - engines: {node: '>=8.6'} - dependencies: - ansi-colors: 4.1.1 - dev: true - /error-ex/1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} dependencies: is-arrayish: 0.2.1 dev: true - /es-abstract/1.18.0: - resolution: {integrity: sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - es-to-primitive: 1.2.1 - function-bind: 1.1.1 - get-intrinsic: 1.1.1 - has: 1.0.3 - has-symbols: 1.0.2 - is-callable: 1.2.3 - is-negative-zero: 2.0.1 - is-regex: 1.1.2 - is-string: 1.0.5 - object-inspect: 1.10.2 - object-keys: 1.1.1 - object.assign: 4.1.2 - string.prototype.trimend: 1.0.4 - string.prototype.trimstart: 1.0.4 - unbox-primitive: 1.0.1 - dev: true - - /es-abstract/1.18.5: - resolution: {integrity: sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA==} + /es-abstract/1.19.1: + resolution: {integrity: sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 es-to-primitive: 1.2.1 function-bind: 1.1.1 get-intrinsic: 1.1.1 + get-symbol-description: 1.0.0 has: 1.0.3 has-symbols: 1.0.2 internal-slot: 1.0.3 is-callable: 1.2.4 is-negative-zero: 2.0.1 is-regex: 1.1.4 + is-shared-array-buffer: 1.0.1 is-string: 1.0.7 - object-inspect: 1.11.0 + is-weakref: 1.0.1 + object-inspect: 1.12.2 object-keys: 1.1.1 object.assign: 4.1.2 string.prototype.trimend: 1.0.4 @@ -1302,30 +1082,39 @@ packages: unbox-primitive: 1.0.1 dev: true - /es-abstract/1.19.1: - resolution: {integrity: sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==} + /es-abstract/1.20.1: + resolution: {integrity: sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 es-to-primitive: 1.2.1 function-bind: 1.1.1 + function.prototype.name: 1.1.5 get-intrinsic: 1.1.1 get-symbol-description: 1.0.0 has: 1.0.3 - has-symbols: 1.0.2 + has-property-descriptors: 1.0.0 + has-symbols: 1.0.3 internal-slot: 1.0.3 is-callable: 1.2.4 - is-negative-zero: 2.0.1 + is-negative-zero: 2.0.2 is-regex: 1.1.4 - is-shared-array-buffer: 1.0.1 + is-shared-array-buffer: 1.0.2 is-string: 1.0.7 - is-weakref: 1.0.1 - object-inspect: 1.11.0 + is-weakref: 1.0.2 + object-inspect: 1.12.2 object-keys: 1.1.1 object.assign: 4.1.2 - string.prototype.trimend: 1.0.4 - string.prototype.trimstart: 1.0.4 - unbox-primitive: 1.0.1 + regexp.prototype.flags: 1.4.3 + string.prototype.trimend: 1.0.5 + string.prototype.trimstart: 1.0.5 + unbox-primitive: 1.0.2 + dev: true + + /es-shim-unscopables/1.0.0: + resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} + dependencies: + has: 1.0.3 dev: true /es-to-primitive/1.2.1: @@ -1343,7 +1132,7 @@ packages: dev: true /escape-string-regexp/1.0.5: - resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=} + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} dev: true @@ -1362,95 +1151,65 @@ packages: engines: {node: '>=12'} dev: true - /eslint-config-airbnb-base/14.2.1_eslint@7.32.0: - resolution: {integrity: sha512-GOrQyDtVEc1Xy20U7vsB2yAoB4nBlfH5HZJeatRXHleO+OS5Ot+MWij4Dpltw4/DyIkqUfqz1epfhVR5XWWQPA==} - engines: {node: '>= 6'} + /eslint-config-airbnb-base/15.0.0_3yxiwxzsqipdmy4jwrlv6vgfmy: + resolution: {integrity: sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==} + engines: {node: ^10.12.0 || >=12.0.0} peerDependencies: - eslint: ^5.16.0 || ^6.8.0 || ^7.2.0 - eslint-plugin-import: ^2.22.1 + eslint: ^7.32.0 || ^8.2.0 + eslint-plugin-import: ^2.25.2 dependencies: confusing-browser-globals: 1.0.10 - eslint: 7.32.0 + eslint: 8.17.0 + eslint-plugin-import: 2.26.0_xzp3xuu5l2v5skncvl5a2je5s4 object.assign: 4.1.2 - object.entries: 1.1.3 + object.entries: 1.1.5 + semver: 6.3.0 dev: true - /eslint-config-airbnb-base/14.2.1_y3uqgclsri32by3u2y4wwdw5u4: - resolution: {integrity: sha512-GOrQyDtVEc1Xy20U7vsB2yAoB4nBlfH5HZJeatRXHleO+OS5Ot+MWij4Dpltw4/DyIkqUfqz1epfhVR5XWWQPA==} - engines: {node: '>= 6'} + /eslint-config-airbnb-typescript/17.0.0_tp6b2m7mjearuulyvjl6n6zeka: + resolution: {integrity: sha512-elNiuzD0kPAPTXjFWg+lE24nMdHMtuxgYoD30OyMD6yrW1AhFZPAg27VX7d3tzOErw+dgJTNWfRSDqEcXb4V0g==} peerDependencies: - eslint: ^5.16.0 || ^6.8.0 || ^7.2.0 - eslint-plugin-import: ^2.22.1 - dependencies: - confusing-browser-globals: 1.0.10 - eslint: 7.32.0 - eslint-plugin-import: 2.22.1_apautjdkl4tcrnrnjzhjtcg3ji - object.assign: 4.1.2 - object.entries: 1.1.3 - dev: true - - /eslint-config-airbnb-typescript/12.3.1_vavbtpegbj5qp5b42jfus6f2hy: - resolution: {integrity: sha512-ql/Pe6/hppYuRp4m3iPaHJqkBB7dgeEmGPQ6X0UNmrQOfTF+dXw29/ZjU2kQ6RDoLxaxOA+Xqv07Vbef6oVTWw==} + '@typescript-eslint/eslint-plugin': ^5.13.0 + '@typescript-eslint/parser': ^5.0.0 + eslint: ^7.32.0 || ^8.2.0 + eslint-plugin-import: ^2.25.3 dependencies: - '@typescript-eslint/parser': 4.22.0_sgaiclxgc5mltnpgmg7py4v6ca - eslint-config-airbnb: 18.2.1_ci3u3bdtcro56hjtchqzs7gtna - eslint-config-airbnb-base: 14.2.1_eslint@7.32.0 - transitivePeerDependencies: - - eslint - - eslint-plugin-import - - eslint-plugin-jsx-a11y - - eslint-plugin-react - - eslint-plugin-react-hooks - - supports-color - - typescript - dev: true - - /eslint-config-airbnb/18.2.1_ci3u3bdtcro56hjtchqzs7gtna: - resolution: {integrity: sha512-glZNDEZ36VdlZWoxn/bUR1r/sdFKPd1mHPbqUtkctgNG4yT2DLLtJ3D+yCV+jzZCc2V1nBVkmdknOJBZ5Hc0fg==} - engines: {node: '>= 6'} - peerDependencies: - eslint: ^5.16.0 || ^6.8.0 || ^7.2.0 - eslint-plugin-import: ^2.22.1 - eslint-plugin-jsx-a11y: ^6.4.1 - eslint-plugin-react: ^7.21.5 - eslint-plugin-react-hooks: ^4 || ^3 || ^2.3.0 || ^1.7.0 - dependencies: - eslint: 7.32.0 - eslint-config-airbnb-base: 14.2.1_eslint@7.32.0 - eslint-plugin-jsx-a11y: 6.4.1_eslint@7.32.0 - eslint-plugin-react: 7.26.1_eslint@7.32.0 - object.assign: 4.1.2 - object.entries: 1.1.3 + '@typescript-eslint/eslint-plugin': 5.27.1_aq7uryhocdbvbqum33pitcm3y4 + '@typescript-eslint/parser': 5.27.1_ud6rd4xtew5bv4yhvkvu24pzm4 + eslint: 8.17.0 + eslint-config-airbnb-base: 15.0.0_3yxiwxzsqipdmy4jwrlv6vgfmy + eslint-plugin-import: 2.26.0_xzp3xuu5l2v5skncvl5a2je5s4 dev: true - /eslint-import-resolver-node/0.3.4: - resolution: {integrity: sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==} + /eslint-import-resolver-node/0.3.6: + resolution: {integrity: sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==} dependencies: - debug: 2.6.9 - resolve: 1.20.0 + debug: 3.2.7 + resolve: 1.22.0 transitivePeerDependencies: - supports-color dev: true - /eslint-import-resolver-typescript/2.5.0_eslint@7.32.0: - resolution: {integrity: sha512-qZ6e5CFr+I7K4VVhQu3M/9xGv9/YmwsEXrsm3nimw8vWaVHRDrQRp26BgCypTxBp3vUp4o5aVEJRiy0F2DFddQ==} + /eslint-import-resolver-typescript/2.7.1_3yxiwxzsqipdmy4jwrlv6vgfmy: + resolution: {integrity: sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ==} engines: {node: '>=4'} peerDependencies: eslint: '*' eslint-plugin-import: '*' dependencies: - debug: 4.3.2 - eslint: 7.32.0 + debug: 4.3.4 + eslint: 8.17.0 + eslint-plugin-import: 2.26.0_xzp3xuu5l2v5skncvl5a2je5s4 glob: 7.2.0 is-glob: 4.0.3 - resolve: 1.20.0 - tsconfig-paths: 3.11.0 + resolve: 1.22.0 + tsconfig-paths: 3.14.1 transitivePeerDependencies: - supports-color dev: true - /eslint-module-utils/2.6.0_2nunyx4zamlrlkoqsz7lik2edq: - resolution: {integrity: sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==} + /eslint-module-utils/2.7.3_4wf6ctbofaywkfx7kzk32kp7ge: + resolution: {integrity: sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -1467,26 +1226,25 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 4.32.0_sgaiclxgc5mltnpgmg7py4v6ca - debug: 2.6.9 - eslint-import-resolver-node: 0.3.4 - eslint-import-resolver-typescript: 2.5.0_eslint@7.32.0 - pkg-dir: 2.0.0 + '@typescript-eslint/parser': 5.27.1_ud6rd4xtew5bv4yhvkvu24pzm4 + debug: 3.2.7 + eslint-import-resolver-node: 0.3.6 + eslint-import-resolver-typescript: 2.7.1_3yxiwxzsqipdmy4jwrlv6vgfmy + find-up: 2.1.0 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-ava/12.0.0_eslint@7.32.0: - resolution: {integrity: sha512-v8/GY1IWQn2nOBdVtD/6e0Y6A9PRFjY86a1m5r5FUel+C7iyoQVt7gKqaAc1iRXcQkZq2DDG0aTiQptgnq51cA==} - engines: {node: '>=10.18.0 <11 || >=12.14.0 <13 || >=14'} + /eslint-plugin-ava/13.2.0_eslint@8.17.0: + resolution: {integrity: sha512-i5B5izsEdERKQLruk1nIWzTTE7C26/ju8qQf7JeyRv32XT2lRMW0zMFZNhIrEf5/5VvpSz2rqrV7UcjClGbKsw==} + engines: {node: '>=12.22 <13 || >=14.17 <15 || >=16.4'} peerDependencies: eslint: '>=7.22.0' dependencies: - deep-strict-equal: 0.2.0 enhance-visitors: 1.0.0 - eslint: 7.32.0 - eslint-utils: 2.1.0 - espree: 7.3.1 + eslint: 8.17.0 + eslint-utils: 3.0.0_eslint@8.17.0 + espree: 9.3.2 espurify: 2.1.1 import-modules: 2.1.0 micro-spelling-correcter: 1.1.1 @@ -1494,83 +1252,44 @@ packages: resolve-from: 5.0.0 dev: true - /eslint-plugin-import/2.22.1_apautjdkl4tcrnrnjzhjtcg3ji: - resolution: {integrity: sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw==} + /eslint-plugin-import/2.26.0_xzp3xuu5l2v5skncvl5a2je5s4: + resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 peerDependenciesMeta: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 4.32.0_sgaiclxgc5mltnpgmg7py4v6ca - array-includes: 3.1.3 - array.prototype.flat: 1.2.4 - contains-path: 0.1.0 + '@typescript-eslint/parser': 5.27.1_ud6rd4xtew5bv4yhvkvu24pzm4 + array-includes: 3.1.4 + array.prototype.flat: 1.3.0 debug: 2.6.9 - doctrine: 1.5.0 - eslint: 7.32.0 - eslint-import-resolver-node: 0.3.4 - eslint-module-utils: 2.6.0_2nunyx4zamlrlkoqsz7lik2edq + doctrine: 2.1.0 + eslint: 8.17.0 + eslint-import-resolver-node: 0.3.6 + eslint-module-utils: 2.7.3_4wf6ctbofaywkfx7kzk32kp7ge has: 1.0.3 - minimatch: 3.0.4 - object.values: 1.1.3 - read-pkg-up: 2.0.0 - resolve: 1.20.0 - tsconfig-paths: 3.11.0 + is-core-module: 2.9.0 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.values: 1.1.5 + resolve: 1.22.0 + tsconfig-paths: 3.14.1 transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color dev: true - /eslint-plugin-jsx-a11y/6.4.1_eslint@7.32.0: - resolution: {integrity: sha512-0rGPJBbwHoGNPU73/QCLP/vveMlM1b1Z9PponxO87jfr6tuH5ligXbDT6nHSSzBC8ovX2Z+BQu7Bk5D/Xgq9zg==} - engines: {node: '>=4.0'} + /eslint-plugin-promise/6.0.0_eslint@8.17.0: + resolution: {integrity: sha512-7GPezalm5Bfi/E22PnQxDWH2iW9GTvAlUNTztemeHb6c1BniSyoeTrM87JkC0wYdi6aQrZX9p2qEiAno8aTcbw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 - dependencies: - '@babel/runtime': 7.13.17 - aria-query: 4.2.2 - array-includes: 3.1.3 - ast-types-flow: 0.0.7 - axe-core: 4.1.4 - axobject-query: 2.2.0 - damerau-levenshtein: 1.0.6 - emoji-regex: 9.2.2 - eslint: 7.32.0 - has: 1.0.3 - jsx-ast-utils: 3.2.0 - language-tags: 1.0.5 - dev: true - - /eslint-plugin-promise/4.3.1: - resolution: {integrity: sha512-bY2sGqyptzFBDLh/GMbAxfdJC+b0f23ME63FOE4+Jao0oZ3E1LEwFtWJX/1pGMJLiTtrSSern2CRM/g+dfc0eQ==} - engines: {node: '>=6'} - dev: true - - /eslint-plugin-react/7.26.1_eslint@7.32.0: - resolution: {integrity: sha512-Lug0+NOFXeOE+ORZ5pbsh6mSKjBKXDXItUD2sQoT+5Yl0eoT82DqnXeTMfUare4QVCn9QwXbfzO/dBLjLXwVjQ==} - engines: {node: '>=4'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 + eslint: ^7.0.0 || ^8.0.0 dependencies: - array-includes: 3.1.4 - array.prototype.flatmap: 1.2.5 - doctrine: 2.1.0 - eslint: 7.32.0 - estraverse: 5.3.0 - jsx-ast-utils: 3.2.1 - minimatch: 3.0.4 - object.entries: 1.1.5 - object.fromentries: 2.0.5 - object.hasown: 1.1.0 - object.values: 1.1.5 - prop-types: 15.7.2 - resolve: 2.0.0-next.3 - semver: 6.3.0 - string.prototype.matchall: 4.0.6 + eslint: 8.17.0 dev: true /eslint-scope/5.1.1: @@ -1581,94 +1300,85 @@ packages: estraverse: 4.3.0 dev: true - /eslint-utils/2.1.0: - resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} - engines: {node: '>=6'} + /eslint-scope/7.1.1: + resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - eslint-visitor-keys: 1.3.0 + esrecurse: 4.3.0 + estraverse: 5.3.0 dev: true - /eslint-utils/3.0.0_eslint@7.32.0: + /eslint-utils/3.0.0_eslint@8.17.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 7.32.0 + eslint: 8.17.0 eslint-visitor-keys: 2.1.0 dev: true - /eslint-visitor-keys/1.3.0: - resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} - engines: {node: '>=4'} - dev: true - - /eslint-visitor-keys/2.0.0: - resolution: {integrity: sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==} - engines: {node: '>=10'} - dev: true - /eslint-visitor-keys/2.1.0: resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} engines: {node: '>=10'} dev: true - /eslint/7.32.0: - resolution: {integrity: sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==} - engines: {node: ^10.12.0 || >=12.0.0} + /eslint-visitor-keys/3.3.0: + resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /eslint/8.17.0: + resolution: {integrity: sha512-gq0m0BTJfci60Fz4nczYxNAlED+sMcihltndR8t9t1evnU/azx53x3t2UHXC/uRjcbvRw/XctpaNygSTcQD+Iw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@babel/code-frame': 7.12.11 - '@eslint/eslintrc': 0.4.3 - '@humanwhocodes/config-array': 0.5.0 + '@eslint/eslintrc': 1.3.0 + '@humanwhocodes/config-array': 0.9.5 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.2 + debug: 4.3.4 doctrine: 3.0.0 - enquirer: 2.3.6 escape-string-regexp: 4.0.0 - eslint-scope: 5.1.1 - eslint-utils: 2.1.0 - eslint-visitor-keys: 2.1.0 - espree: 7.3.1 + eslint-scope: 7.1.1 + eslint-utils: 3.0.0_eslint@8.17.0 + eslint-visitor-keys: 3.3.0 + espree: 9.3.2 esquery: 1.4.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 file-entry-cache: 6.0.1 functional-red-black-tree: 1.0.1 - glob-parent: 5.1.2 - globals: 13.10.0 - ignore: 4.0.6 + glob-parent: 6.0.2 + globals: 13.15.0 + ignore: 5.2.0 import-fresh: 3.3.0 imurmurhash: 0.1.4 - is-glob: 4.0.1 - js-yaml: 3.14.1 + is-glob: 4.0.3 + js-yaml: 4.1.0 json-stable-stringify-without-jsonify: 1.0.1 levn: 0.4.1 lodash.merge: 4.6.2 - minimatch: 3.0.4 + minimatch: 3.1.2 natural-compare: 1.4.0 optionator: 0.9.1 - progress: 2.0.3 regexpp: 3.2.0 - semver: 7.3.5 - strip-ansi: 6.0.0 + strip-ansi: 6.0.1 strip-json-comments: 3.1.1 - table: 6.7.1 text-table: 0.2.0 v8-compile-cache: 2.3.0 transitivePeerDependencies: - supports-color dev: true - /espree/7.3.1: - resolution: {integrity: sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==} - engines: {node: ^10.12.0 || >=12.0.0} + /espree/9.3.2: + resolution: {integrity: sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 7.4.1 - acorn-jsx: 5.3.1_acorn@7.4.1 - eslint-visitor-keys: 1.3.0 + acorn: 8.7.1 + acorn-jsx: 5.3.2_acorn@8.7.1 + eslint-visitor-keys: 3.3.0 dev: true /esprima/4.0.1: @@ -1685,14 +1395,14 @@ packages: resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==} engines: {node: '>=0.10'} dependencies: - estraverse: 5.2.0 + estraverse: 5.3.0 dev: true /esrecurse/4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} dependencies: - estraverse: 5.2.0 + estraverse: 5.3.0 dev: true /estraverse/4.3.0: @@ -1700,11 +1410,6 @@ packages: engines: {node: '>=4.0'} dev: true - /estraverse/5.2.0: - resolution: {integrity: sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==} - engines: {node: '>=4.0'} - dev: true - /estraverse/5.3.0: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} @@ -1715,19 +1420,19 @@ packages: engines: {node: '>=0.10.0'} dev: true - /execa/5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} + /execa/6.1.0: + resolution: {integrity: sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: cross-spawn: 7.0.3 get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.1 + human-signals: 3.0.1 + is-stream: 3.0.0 merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 + npm-run-path: 5.1.0 + onetime: 6.0.0 signal-exit: 3.0.7 - strip-final-newline: 2.0.0 + strip-final-newline: 3.0.0 dev: true /fast-deep-equal/3.1.3: @@ -1746,30 +1451,7 @@ packages: '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 - micromatch: 4.0.4 - dev: true - - /fast-glob/3.2.5: - resolution: {integrity: sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==} - engines: {node: '>=8'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.7 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.4 - picomatch: 2.3.0 - dev: true - - /fast-glob/3.2.7: - resolution: {integrity: sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==} - engines: {node: '>=8'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.4 + micromatch: 4.0.5 dev: true /fast-json-stable-stringify/2.1.0: @@ -1777,13 +1459,7 @@ packages: dev: true /fast-levenshtein/2.0.6: - resolution: {integrity: sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=} - dev: true - - /fastq/1.11.0: - resolution: {integrity: sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==} - dependencies: - reusify: 1.0.4 + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} dev: true /fastq/1.13.0: @@ -1792,12 +1468,12 @@ packages: reusify: 1.0.4 dev: true - /figures/4.0.0: - resolution: {integrity: sha512-VnYcWq6H6F0qDN0QnorznBr0abEovifzUokmnezpKZBUbDmbLAt7LMryOp1TKFVxLxyNYkxEkCEADZR58U9oSw==} + /figures/4.0.1: + resolution: {integrity: sha512-rElJwkA/xS04Vfg+CaZodpso7VqBknOYbzi6I76hI4X80RUjkSxO2oAyPmGbuXUppywjqndOrQDl817hDnI++w==} engines: {node: '>=12'} dependencies: escape-string-regexp: 5.0.0 - is-unicode-supported: 1.1.0 + is-unicode-supported: 1.2.0 dev: true /file-entry-cache/6.0.1: @@ -1815,7 +1491,7 @@ packages: dev: true /find-up/2.1.0: - resolution: {integrity: sha1-RdG35QbHF93UgndaK3eSCjwMV6c=} + resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} engines: {node: '>=4'} dependencies: locate-path: 2.0.0 @@ -1854,11 +1530,11 @@ packages: engines: {node: '>=8.0.0'} dependencies: cross-spawn: 7.0.3 - signal-exit: 3.0.6 + signal-exit: 3.0.7 dev: true /fs.realpath/1.0.0: - resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=} + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} dev: true /fsevents/2.3.2: @@ -1873,8 +1549,22 @@ packages: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} dev: true + /function.prototype.name/1.1.5: + resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + es-abstract: 1.20.1 + functions-have-names: 1.2.3 + dev: true + /functional-red-black-tree/1.0.1: - resolution: {integrity: sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=} + resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} + dev: true + + /functions-have-names/1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} dev: true /get-caller-file/2.0.5: @@ -1907,7 +1597,14 @@ packages: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} dependencies: - is-glob: 4.0.1 + is-glob: 4.0.3 + dev: true + + /glob-parent/6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + dependencies: + is-glob: 4.0.3 dev: true /glob/7.2.0: @@ -1916,47 +1613,18 @@ packages: fs.realpath: 1.0.0 inflight: 1.0.6 inherits: 2.0.4 - minimatch: 3.0.4 + minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 dev: true - /globals/11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} - dev: true - - /globals/13.10.0: - resolution: {integrity: sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==} + /globals/13.15.0: + resolution: {integrity: sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==} engines: {node: '>=8'} dependencies: type-fest: 0.20.2 dev: true - /globby/11.0.3: - resolution: {integrity: sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==} - engines: {node: '>=10'} - dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.2.5 - ignore: 5.1.8 - merge2: 1.4.1 - slash: 3.0.0 - dev: true - - /globby/11.0.4: - resolution: {integrity: sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==} - engines: {node: '>=10'} - dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.2.7 - ignore: 5.1.8 - merge2: 1.4.1 - slash: 3.0.0 - dev: true - /globby/11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} @@ -1969,11 +1637,10 @@ packages: slash: 3.0.0 dev: true - /globby/12.2.0: - resolution: {integrity: sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==} + /globby/13.1.1: + resolution: {integrity: sha512-XMzoDZbGZ37tufiv7g0N4F/zp3zkwdFtVbV3EHsVl1KQr4RPLfNoT068/97RPshz2J5xYNEjLKKBKaGHifBd3Q==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: - array-union: 3.0.1 dir-glob: 3.0.1 fast-glob: 3.2.11 ignore: 5.2.0 @@ -1981,20 +1648,25 @@ packages: slash: 4.0.0 dev: true - /graceful-fs/4.2.6: - resolution: {integrity: sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==} - dev: true - /graceful-fs/4.2.9: resolution: {integrity: sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==} dev: true + /hard-rejection/2.1.0: + resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} + engines: {node: '>=6'} + dev: true + /has-bigints/1.0.1: resolution: {integrity: sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==} dev: true + /has-bigints/1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + dev: true + /has-flag/3.0.0: - resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=} + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} dev: true @@ -2003,11 +1675,22 @@ packages: engines: {node: '>=8'} dev: true + /has-property-descriptors/1.0.0: + resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} + dependencies: + get-intrinsic: 1.1.1 + dev: true + /has-symbols/1.0.2: resolution: {integrity: sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==} engines: {node: '>= 0.4'} dev: true + /has-symbols/1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + dev: true + /has-tostringtag/1.0.0: resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} engines: {node: '>= 0.4'} @@ -2022,38 +1705,31 @@ packages: function-bind: 1.1.1 dev: true - /hosted-git-info/2.8.9: - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + /hosted-git-info/4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} + engines: {node: '>=10'} + dependencies: + lru-cache: 6.0.0 dev: true /html-escaper/2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} dev: true - /human-signals/2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - dev: true - - /husky/7.0.4: - resolution: {integrity: sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==} - engines: {node: '>=12'} - hasBin: true - dev: true - - /ignore-by-default/2.0.0: - resolution: {integrity: sha512-+mQSgMRiFD3L3AOxLYOCxjIq4OnAmo5CIuC+lj5ehCJcPtV++QacEV7FdpzvYxH6DaOySWzQU6RR0lPLy37ckA==} - engines: {node: '>=10 <11 || >=12 <13 || >=14'} + /human-signals/3.0.1: + resolution: {integrity: sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==} + engines: {node: '>=12.20.0'} dev: true - /ignore/4.0.6: - resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==} - engines: {node: '>= 4'} + /husky/8.0.1: + resolution: {integrity: sha512-xs7/chUH/CKdOCs7Zy0Aev9e/dKOMZf3K1Az1nar3tzlv0jfqnYtu235bstsWTmXOR0EfINrPa97yy4Lz6RiKw==} + engines: {node: '>=14'} + hasBin: true dev: true - /ignore/5.1.8: - resolution: {integrity: sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==} - engines: {node: '>= 4'} + /ignore-by-default/2.1.0: + resolution: {integrity: sha512-yiWd4GVmJp0Q6ghmM2B/V3oZGRmjrKLXvHR3TE1nfoXsmoggllfZUQe74EN0fJdPFZu2NIvNdrMMLm3OsV7Ohw==} + engines: {node: '>=10 <11 || >=12 <13 || >=14'} dev: true /ignore/5.2.0: @@ -2075,7 +1751,7 @@ packages: dev: true /imurmurhash/0.1.4: - resolution: {integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o=} + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} dev: true @@ -2090,7 +1766,7 @@ packages: dev: true /inflight/1.0.6: - resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=} + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} dependencies: once: 1.4.0 wrappy: 1.0.2 @@ -2115,7 +1791,7 @@ packages: dev: true /is-arrayish/0.2.1: - resolution: {integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=} + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} dev: true /is-bigint/1.0.4: @@ -2139,18 +1815,13 @@ packages: has-tostringtag: 1.0.0 dev: true - /is-callable/1.2.3: - resolution: {integrity: sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==} - engines: {node: '>= 0.4'} - dev: true - /is-callable/1.2.4: resolution: {integrity: sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==} engines: {node: '>= 0.4'} dev: true - /is-core-module/2.8.0: - resolution: {integrity: sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==} + /is-core-module/2.9.0: + resolution: {integrity: sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==} dependencies: has: 1.0.3 dev: true @@ -2167,7 +1838,7 @@ packages: dev: true /is-extglob/2.1.1: - resolution: {integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=} + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} dev: true @@ -2181,13 +1852,6 @@ packages: engines: {node: '>=12'} dev: true - /is-glob/4.0.1: - resolution: {integrity: sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==} - engines: {node: '>=0.10.0'} - dependencies: - is-extglob: 2.1.1 - dev: true - /is-glob/4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -2200,6 +1864,11 @@ packages: engines: {node: '>= 0.4'} dev: true + /is-negative-zero/2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + engines: {node: '>= 0.4'} + dev: true + /is-number-object/1.0.6: resolution: {integrity: sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==} engines: {node: '>= 0.4'} @@ -2222,6 +1891,11 @@ packages: engines: {node: '>=8'} dev: true + /is-plain-obj/1.1.0: + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} + engines: {node: '>=0.10.0'} + dev: true + /is-plain-object/5.0.0: resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} engines: {node: '>=0.10.0'} @@ -2231,14 +1905,6 @@ packages: resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==} dev: true - /is-regex/1.1.2: - resolution: {integrity: sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - has-symbols: 1.0.2 - dev: true - /is-regex/1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} @@ -2251,14 +1917,15 @@ packages: resolution: {integrity: sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==} dev: true - /is-stream/2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} + /is-shared-array-buffer/1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + dependencies: + call-bind: 1.0.2 dev: true - /is-string/1.0.5: - resolution: {integrity: sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==} - engines: {node: '>= 0.4'} + /is-stream/3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true /is-string/1.0.7: @@ -2275,12 +1942,8 @@ packages: has-symbols: 1.0.2 dev: true - /is-typedarray/1.0.0: - resolution: {integrity: sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=} - dev: true - - /is-unicode-supported/1.1.0: - resolution: {integrity: sha512-lDcxivp8TJpLG75/DpatAqNzOpDPSpED8XNtrpBHTdQ2InQ1PbW78jhwSxyxhhu+xbVSast2X38bwj8atwoUQA==} + /is-unicode-supported/1.2.0: + resolution: {integrity: sha512-wH+U77omcRzevfIG8dDhTS0V9zZyweakfD01FULl97+0EHiJTTZtJqxPSkIIo/SDPv/i07k/C9jAPY+jwLLeUQ==} engines: {node: '>=12'} dev: true @@ -2290,16 +1953,18 @@ packages: call-bind: 1.0.2 dev: true - /isarray/0.0.1: - resolution: {integrity: sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=} + /is-weakref/1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + dependencies: + call-bind: 1.0.2 dev: true - /isarray/1.0.0: - resolution: {integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=} + /isarray/0.0.1: + resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} dev: true /isexe/2.0.0: - resolution: {integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=} + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} dev: true /istanbul-lib-coverage/3.2.0: @@ -2316,8 +1981,8 @@ packages: supports-color: 7.2.0 dev: true - /istanbul-reports/3.1.3: - resolution: {integrity: sha512-x9LtDVtfm/t1GFiLl3NffC7hz+I1ragvgX1P/Lg1NlIagifZDKUkuuaAxH/qpwj2IuEfD8G2Bs/UKp+sZ/pKkg==} + /istanbul-reports/3.1.4: + resolution: {integrity: sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==} engines: {node: '>=8'} dependencies: html-escaper: 2.0.2 @@ -2325,7 +1990,7 @@ packages: dev: true /js-string-escape/1.0.1: - resolution: {integrity: sha1-4mJbrbwNZ8dTPp7cEGjFh65BN+8=} + resolution: {integrity: sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==} engines: {node: '>= 0.8'} dev: true @@ -2341,59 +2006,39 @@ packages: esprima: 4.0.1 dev: true - /jsesc/2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} + /js-yaml/4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true + dependencies: + argparse: 2.0.1 dev: true - /json-schema-traverse/0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + /json-parse-even-better-errors/2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} dev: true - /json-schema-traverse/1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + /json-schema-traverse/0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} dev: true /json-stable-stringify-without-jsonify/1.0.1: - resolution: {integrity: sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=} + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} dev: true /json5/1.0.1: resolution: {integrity: sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==} hasBin: true dependencies: - minimist: 1.2.5 - dev: true - - /jsx-ast-utils/3.2.0: - resolution: {integrity: sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q==} - engines: {node: '>=4.0'} - dependencies: - array-includes: 3.1.3 - object.assign: 4.1.2 - dev: true - - /jsx-ast-utils/3.2.1: - resolution: {integrity: sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA==} - engines: {node: '>=4.0'} - dependencies: - array-includes: 3.1.4 - object.assign: 4.1.2 + minimist: 1.2.6 dev: true /just-extend/4.2.1: resolution: {integrity: sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==} dev: true - /language-subtag-registry/0.3.21: - resolution: {integrity: sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg==} - dev: true - - /language-tags/1.0.5: - resolution: {integrity: sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=} - dependencies: - language-subtag-registry: 0.3.21 + /kind-of/6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} dev: true /levn/0.4.1: @@ -2404,35 +2049,40 @@ packages: type-check: 0.4.0 dev: true - /lilconfig/2.0.4: - resolution: {integrity: sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==} + /lilconfig/2.0.5: + resolution: {integrity: sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==} engines: {node: '>=10'} dev: true - /lint-staged/12.3.4: - resolution: {integrity: sha512-yv/iK4WwZ7/v0GtVkNb3R82pdL9M+ScpIbJLJNyCXkJ1FGaXvRCOg/SeL59SZtPpqZhE7BD6kPKFLIDUhDx2/w==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + /lines-and-columns/1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + dev: true + + /lint-staged/13.0.1: + resolution: {integrity: sha512-Ykaf4QTi0a02BF7cnq7JIPGOJxH4TkNMWhSlJdH9wOekd0X+gog47Jfh/0L31DqZe5AiydLGC7LkPqpaNm+Kvg==} + engines: {node: ^14.13.1 || >=16.0.0} hasBin: true dependencies: cli-truncate: 3.1.0 - colorette: 2.0.16 - commander: 8.3.0 - debug: 4.3.3_supports-color@9.2.1 - execa: 5.1.1 - lilconfig: 2.0.4 - listr2: 4.0.4 - micromatch: 4.0.4 + colorette: 2.0.17 + commander: 9.3.0 + debug: 4.3.4 + execa: 6.1.0 + lilconfig: 2.0.5 + listr2: 4.0.5 + micromatch: 4.0.5 normalize-path: 3.0.0 - object-inspect: 1.12.0 + object-inspect: 1.12.2 + pidtree: 0.6.0 string-argv: 0.3.1 - supports-color: 9.2.1 - yaml: 1.10.2 + yaml: 2.1.1 transitivePeerDependencies: - enquirer + - supports-color dev: true - /listr2/4.0.4: - resolution: {integrity: sha512-vJOm5KD6uZXjSsrwajr+mNacIjf87gWvlBEltPWLbTkslUscWAzquyK4xfe9Zd4RDgO5nnwFyV06FC+uVR+5mg==} + /listr2/4.0.5: + resolution: {integrity: sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA==} engines: {node: '>=12'} peerDependencies: enquirer: '>= 2.3.0 < 3' @@ -2441,32 +2091,22 @@ packages: optional: true dependencies: cli-truncate: 2.1.0 - colorette: 2.0.16 + colorette: 2.0.17 log-update: 4.0.0 p-map: 4.0.0 rfdc: 1.3.0 - rxjs: 7.5.4 + rxjs: 7.5.5 through: 2.3.8 wrap-ansi: 7.0.0 dev: true - /load-json-file/2.0.0: - resolution: {integrity: sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=} - engines: {node: '>=4'} - dependencies: - graceful-fs: 4.2.6 - parse-json: 2.2.0 - pify: 2.3.0 - strip-bom: 3.0.0 - dev: true - /load-json-file/7.0.1: resolution: {integrity: sha512-Gnxj3ev3mB5TkVBGad0JM6dmLiQL+o0t23JPBZ9sd+yvSLk05mFoqKBw5N8gbbkU4TNXyqCgIrl/VM17OgUIgQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true /locate-path/2.0.0: - resolution: {integrity: sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=} + resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} engines: {node: '>=4'} dependencies: p-locate: 2.0.0 @@ -2487,22 +2127,14 @@ packages: p-locate: 6.0.0 dev: true - /lodash.clonedeep/4.5.0: - resolution: {integrity: sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=} - dev: true - /lodash.get/4.4.2: - resolution: {integrity: sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=} + resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} dev: true /lodash.merge/4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} dev: true - /lodash.truncate/4.4.2: - resolution: {integrity: sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=} - dev: true - /lodash/4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} dev: true @@ -2517,13 +2149,6 @@ packages: wrap-ansi: 6.2.0 dev: true - /loose-envify/1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true - dependencies: - js-tokens: 4.0.0 - dev: true - /lru-cache/6.0.0: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} engines: {node: '>=10'} @@ -2549,6 +2174,16 @@ packages: p-defer: 1.0.0 dev: true + /map-obj/1.0.1: + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} + engines: {node: '>=0.10.0'} + dev: true + + /map-obj/4.3.0: + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} + engines: {node: '>=8'} + dev: true + /matcher/5.0.0: resolution: {integrity: sha512-s2EMBOWtXFc8dgqvoAzKJXxNHibcdJMV0gwqKUaw9E2JBJuGUK7DrNKrA6g/i+v72TT16+6sVm5mS3thaMLQUw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -2571,6 +2206,24 @@ packages: mimic-fn: 4.0.0 dev: true + /meow/10.1.2: + resolution: {integrity: sha512-zbuAlN+V/sXlbGchNS9WTWjUzeamwMt/BApKCJi7B0QyZstZaMx0n4Unll/fg0njGtMdC9UP5SAscvOCLYdM+Q==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + '@types/minimist': 1.2.2 + camelcase-keys: 7.0.2 + decamelize: 5.0.1 + decamelize-keys: 1.1.0 + hard-rejection: 2.1.0 + minimist-options: 4.1.0 + normalize-package-data: 3.0.3 + read-pkg-up: 8.0.0 + redent: 4.0.0 + trim-newlines: 4.0.2 + type-fest: 1.4.0 + yargs-parser: 20.2.9 + dev: true + /merge-stream/2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} dev: true @@ -2584,12 +2237,12 @@ packages: resolution: {integrity: sha512-lkJ3Rj/mtjlRcHk6YyCbvZhyWTOzdBvTHsxMmZSk5jxN1YyVSQ+JETAom55mdzfcyDrY/49Z7UCW760BK30crg==} dev: true - /micromatch/4.0.4: - resolution: {integrity: sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==} + /micromatch/4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} engines: {node: '>=8.6'} dependencies: braces: 3.0.2 - picomatch: 2.3.0 + picomatch: 2.3.1 dev: true /mimic-fn/2.1.0: @@ -2602,18 +2255,32 @@ packages: engines: {node: '>=12'} dev: true - /minimatch/3.0.4: - resolution: {integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==} + /min-indent/1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + dev: true + + /minimatch/3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: brace-expansion: 1.1.11 dev: true - /minimist/1.2.5: - resolution: {integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==} + /minimist-options/4.1.0: + resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} + engines: {node: '>= 6'} + dependencies: + arrify: 1.0.1 + is-plain-obj: 1.1.0 + kind-of: 6.0.3 + dev: true + + /minimist/1.2.6: + resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==} dev: true /ms/2.0.0: - resolution: {integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=} + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} dev: true /ms/2.1.2: @@ -2625,14 +2292,14 @@ packages: dev: true /natural-compare/1.4.0: - resolution: {integrity: sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=} + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true /nise/5.1.1: resolution: {integrity: sha512-yr5kW2THW1AkxVmCnKEh4nbYkJdB3I7LUkiUgOvEkOp414mc2UMaHMA7pjq1nYowhdoJZGwEKGaQVbxfpWj10A==} dependencies: '@sinonjs/commons': 1.8.3 - '@sinonjs/fake-timers': 9.1.0 + '@sinonjs/fake-timers': 9.1.2 '@sinonjs/text-encoding': 0.7.1 just-extend: 4.2.1 path-to-regexp: 1.8.0 @@ -2648,12 +2315,13 @@ packages: engines: {node: '>=12.19'} dev: true - /normalize-package-data/2.5.0: - resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + /normalize-package-data/3.0.3: + resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} + engines: {node: '>=10'} dependencies: - hosted-git-info: 2.8.9 - resolve: 1.20.0 - semver: 5.7.1 + hosted-git-info: 4.1.0 + is-core-module: 2.9.0 + semver: 7.3.7 validate-npm-package-license: 3.0.4 dev: true @@ -2662,28 +2330,15 @@ packages: engines: {node: '>=0.10.0'} dev: true - /npm-run-path/4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} + /npm-run-path/5.1.0: + resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: - path-key: 3.1.1 - dev: true - - /object-assign/4.1.1: - resolution: {integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=} - engines: {node: '>=0.10.0'} - dev: true - - /object-inspect/1.10.2: - resolution: {integrity: sha512-gz58rdPpadwztRrPjZE9DZLOABUpTGdcANUgOwBFO1C+HZZhePoP83M65WGDmbpwFYJSWqavbl4SgDn4k8RYTA==} - dev: true - - /object-inspect/1.11.0: - resolution: {integrity: sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==} + path-key: 4.0.0 dev: true - /object-inspect/1.12.0: - resolution: {integrity: sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==} + /object-inspect/1.12.2: + resolution: {integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==} dev: true /object-keys/1.1.1: @@ -2701,49 +2356,13 @@ packages: object-keys: 1.1.1 dev: true - /object.entries/1.1.3: - resolution: {integrity: sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.3 - es-abstract: 1.18.0 - has: 1.0.3 - dev: true - /object.entries/1.1.5: resolution: {integrity: sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.1.3 - es-abstract: 1.19.1 - dev: true - - /object.fromentries/2.0.5: - resolution: {integrity: sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.3 - es-abstract: 1.19.1 - dev: true - - /object.hasown/1.1.0: - resolution: {integrity: sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==} - dependencies: - define-properties: 1.1.3 - es-abstract: 1.19.1 - dev: true - - /object.values/1.1.3: - resolution: {integrity: sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.1.3 - es-abstract: 1.18.0 - has: 1.0.3 + es-abstract: 1.20.1 dev: true /object.values/1.1.5: @@ -2756,7 +2375,7 @@ packages: dev: true /once/1.4.0: - resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=} + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: wrappy: 1.0.2 dev: true @@ -2768,6 +2387,13 @@ packages: mimic-fn: 2.1.0 dev: true + /onetime/6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + dependencies: + mimic-fn: 4.0.0 + dev: true + /optionator/0.9.1: resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} engines: {node: '>= 0.8.0'} @@ -2781,7 +2407,7 @@ packages: dev: true /p-defer/1.0.0: - resolution: {integrity: sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=} + resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==} engines: {node: '>=4'} dev: true @@ -2814,7 +2440,7 @@ packages: dev: true /p-locate/2.0.0: - resolution: {integrity: sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=} + resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} engines: {node: '>=4'} dependencies: p-limit: 1.3.0 @@ -2841,8 +2467,8 @@ packages: aggregate-error: 3.1.0 dev: true - /p-map/5.3.0: - resolution: {integrity: sha512-SRbIQFoLYNezHkqZslqeg963HYUtqOrfMCxjNrFOpJ19WTYuq26rQoOXeX8QQiMLUlLqdYV/7PuDsdYJ7hLE1w==} + /p-map/5.5.0: + resolution: {integrity: sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==} engines: {node: '>=12'} dependencies: aggregate-error: 4.0.0 @@ -2854,7 +2480,7 @@ packages: dev: true /p-try/1.0.0: - resolution: {integrity: sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=} + resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} engines: {node: '>=4'} dev: true @@ -2865,11 +2491,14 @@ packages: callsites: 3.1.0 dev: true - /parse-json/2.2.0: - resolution: {integrity: sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=} - engines: {node: '>=0.10.0'} + /parse-json/5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} dependencies: + '@babel/code-frame': 7.12.13 error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 dev: true /parse-ms/2.1.0: @@ -2878,7 +2507,7 @@ packages: dev: true /path-exists/3.0.0: - resolution: {integrity: sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=} + resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} engines: {node: '>=4'} dev: true @@ -2893,7 +2522,7 @@ packages: dev: true /path-is-absolute/1.0.1: - resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=} + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} dev: true @@ -2902,6 +2531,11 @@ packages: engines: {node: '>=8'} dev: true + /path-key/4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + dev: true + /path-parse/1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} dev: true @@ -2912,37 +2546,25 @@ packages: isarray: 0.0.1 dev: true - /path-type/2.0.0: - resolution: {integrity: sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=} - engines: {node: '>=4'} - dependencies: - pify: 2.3.0 - dev: true - /path-type/4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} dev: true - /picomatch/2.3.0: - resolution: {integrity: sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==} - engines: {node: '>=8.6'} - dev: true - /picomatch/2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} dev: true - /pify/2.3.0: - resolution: {integrity: sha1-7RQaasBDqEnqWISY59yosVMw6Qw=} - engines: {node: '>=0.10.0'} + /pidtree/0.6.0: + resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} + engines: {node: '>=0.10'} + hasBin: true dev: true /pinst/3.0.0: resolution: {integrity: sha512-cengSmBxtCyaJqtRSvJorIIZXMXg+lJ3sIljGmtBGUVonMnMsVJbnzl6jGN1HkOWwxNuJynCJ2hXxxqCQrFDdw==} engines: {node: '>=12.0.0'} - hasBin: true dev: true /pkg-conf/4.0.0: @@ -2953,13 +2575,6 @@ packages: load-json-file: 7.0.1 dev: true - /pkg-dir/2.0.0: - resolution: {integrity: sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=} - engines: {node: '>=4'} - dependencies: - find-up: 2.1.0 - dev: true - /pkg-dir/5.0.0: resolution: {integrity: sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==} engines: {node: '>=10'} @@ -2986,19 +2601,6 @@ packages: parse-ms: 2.1.0 dev: true - /progress/2.0.3: - resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} - engines: {node: '>=0.4.0'} - dev: true - - /prop-types/15.7.2: - resolution: {integrity: sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==} - dependencies: - loose-envify: 1.4.0 - object-assign: 4.1.1 - react-is: 16.13.1 - dev: true - /punycode/2.1.1: resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} engines: {node: '>=6'} @@ -3008,25 +2610,28 @@ packages: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: true - /react-is/16.13.1: - resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + /quick-lru/5.1.1: + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} dev: true - /read-pkg-up/2.0.0: - resolution: {integrity: sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=} - engines: {node: '>=4'} + /read-pkg-up/8.0.0: + resolution: {integrity: sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==} + engines: {node: '>=12'} dependencies: - find-up: 2.1.0 - read-pkg: 2.0.0 + find-up: 5.0.0 + read-pkg: 6.0.0 + type-fest: 1.4.0 dev: true - /read-pkg/2.0.0: - resolution: {integrity: sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=} - engines: {node: '>=4'} + /read-pkg/6.0.0: + resolution: {integrity: sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==} + engines: {node: '>=12'} dependencies: - load-json-file: 2.0.0 - normalize-package-data: 2.5.0 - path-type: 2.0.0 + '@types/normalize-package-data': 2.4.1 + normalize-package-data: 3.0.3 + parse-json: 5.2.0 + type-fest: 1.4.0 dev: true /readdirp/3.6.0: @@ -3036,16 +2641,21 @@ packages: picomatch: 2.3.1 dev: true - /regenerator-runtime/0.13.7: - resolution: {integrity: sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==} + /redent/4.0.0: + resolution: {integrity: sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==} + engines: {node: '>=12'} + dependencies: + indent-string: 5.0.0 + strip-indent: 4.0.0 dev: true - /regexp.prototype.flags/1.3.1: - resolution: {integrity: sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==} + /regexp.prototype.flags/1.4.3: + resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.1.3 + functions-have-names: 1.2.3 dev: true /regexpp/3.2.0: @@ -3054,12 +2664,7 @@ packages: dev: true /require-directory/2.1.1: - resolution: {integrity: sha1-jGStX9MNqxyXbiNE/+f3kqam30I=} - engines: {node: '>=0.10.0'} - dev: true - - /require-from-string/2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} dev: true @@ -3080,18 +2685,13 @@ packages: engines: {node: '>=8'} dev: true - /resolve/1.20.0: - resolution: {integrity: sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==} - dependencies: - is-core-module: 2.8.0 - path-parse: 1.0.7 - dev: true - - /resolve/2.0.0-next.3: - resolution: {integrity: sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==} + /resolve/1.22.0: + resolution: {integrity: sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==} + hasBin: true dependencies: - is-core-module: 2.8.0 + is-core-module: 2.9.0 path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 dev: true /restore-cursor/3.1.0: @@ -3124,8 +2724,8 @@ packages: queue-microtask: 1.2.3 dev: true - /rxjs/7.5.4: - resolution: {integrity: sha512-h5M3Hk78r6wAheJF0a5YahB1yRQKCsZ4MsGdZ5O9ETbVtjPcScGfrMmoOq7EBsCRzd4BDkvDJ7ogP8Sz5tTFiQ==} + /rxjs/7.5.5: + resolution: {integrity: sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==} dependencies: tslib: 2.3.1 dev: true @@ -3134,18 +2734,13 @@ packages: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} dev: true - /semver/5.7.1: - resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} - hasBin: true - dev: true - /semver/6.3.0: resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} hasBin: true dev: true - /semver/7.3.5: - resolution: {integrity: sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==} + /semver/7.3.7: + resolution: {integrity: sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==} engines: {node: '>=10'} hasBin: true dependencies: @@ -3176,22 +2771,18 @@ packages: dependencies: call-bind: 1.0.2 get-intrinsic: 1.1.1 - object-inspect: 1.11.0 - dev: true - - /signal-exit/3.0.6: - resolution: {integrity: sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==} + object-inspect: 1.12.2 dev: true /signal-exit/3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} dev: true - /sinon/13.0.1: - resolution: {integrity: sha512-8yx2wIvkBjIq/MGY1D9h1LMraYW+z1X0mb648KZnKSdvLasvDu7maa0dFaNYdTDczFgbjNw2tOmWdTk9saVfwQ==} + /sinon/14.0.0: + resolution: {integrity: sha512-ugA6BFmE+WrJdh0owRZHToLd32Uw3Lxq6E6LtNRU+xTVBefx632h03Q7apXWRsRdZAJ41LB8aUfn2+O4jsDNMw==} dependencies: '@sinonjs/commons': 1.8.3 - '@sinonjs/fake-timers': 9.1.0 + '@sinonjs/fake-timers': 9.1.2 '@sinonjs/samsam': 6.1.1 diff: 5.0.0 nise: 5.1.1 @@ -3234,16 +2825,6 @@ packages: is-fullwidth-code-point: 4.0.0 dev: true - /source-map/0.5.7: - resolution: {integrity: sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=} - engines: {node: '>=0.10.0'} - dev: true - - /source-map/0.7.3: - resolution: {integrity: sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==} - engines: {node: '>= 8'} - dev: true - /spdx-correct/3.1.1: resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} dependencies: @@ -3267,7 +2848,7 @@ packages: dev: true /sprintf-js/1.0.3: - resolution: {integrity: sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=} + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} dev: true /stack-utils/2.0.5: @@ -3282,15 +2863,6 @@ packages: engines: {node: '>=0.6.19'} dev: true - /string-width/4.2.2: - resolution: {integrity: sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==} - engines: {node: '>=8'} - dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.0 - dev: true - /string-width/4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -3309,24 +2881,19 @@ packages: strip-ansi: 7.0.1 dev: true - /string.prototype.matchall/4.0.6: - resolution: {integrity: sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg==} + /string.prototype.trimend/1.0.4: + resolution: {integrity: sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==} dependencies: call-bind: 1.0.2 define-properties: 1.1.3 - es-abstract: 1.19.1 - get-intrinsic: 1.1.1 - has-symbols: 1.0.2 - internal-slot: 1.0.3 - regexp.prototype.flags: 1.3.1 - side-channel: 1.0.4 dev: true - /string.prototype.trimend/1.0.4: - resolution: {integrity: sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==} + /string.prototype.trimend/1.0.5: + resolution: {integrity: sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==} dependencies: call-bind: 1.0.2 - define-properties: 1.1.3 + define-properties: 1.1.4 + es-abstract: 1.20.1 dev: true /string.prototype.trimstart/1.0.4: @@ -3336,11 +2903,12 @@ packages: define-properties: 1.1.3 dev: true - /strip-ansi/6.0.0: - resolution: {integrity: sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==} - engines: {node: '>=8'} + /string.prototype.trimstart/1.0.5: + resolution: {integrity: sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==} dependencies: - ansi-regex: 5.0.0 + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.1 dev: true /strip-ansi/6.0.1: @@ -3358,13 +2926,20 @@ packages: dev: true /strip-bom/3.0.0: - resolution: {integrity: sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=} + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} dev: true - /strip-final-newline/2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} + /strip-final-newline/3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + dev: true + + /strip-indent/4.0.0: + resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==} + engines: {node: '>=12'} + dependencies: + min-indent: 1.0.1 dev: true /strip-json-comments/3.1.1: @@ -3372,15 +2947,14 @@ packages: engines: {node: '>=8'} dev: true - /supertap/2.0.0: - resolution: {integrity: sha512-jRzcXlCeDYvKoZGA5oRhYyR3jUIYu0enkSxtmAgHRlD7HwrovTpH4bDSi0py9FtuA8si9cW/fKommJHuaoDHJA==} - engines: {node: '>=10'} + /supertap/3.0.1: + resolution: {integrity: sha512-u1ZpIBCawJnO+0QePsEiOknOfCRq0yERxiAchT0i4li0WHNUJbf0evXXSXOcCAR4M8iMDoajXYmstm/qO81Isw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: - arrify: 2.0.1 - indent-string: 4.0.0 + indent-string: 5.0.0 js-yaml: 3.14.1 serialize-error: 7.0.1 - strip-ansi: 6.0.1 + strip-ansi: 7.0.1 dev: true /supports-color/5.5.0: @@ -3397,21 +2971,9 @@ packages: has-flag: 4.0.0 dev: true - /supports-color/9.2.1: - resolution: {integrity: sha512-Obv7ycoCTG51N7y175StI9BlAXrmgZrFhZOb0/PyjHBher/NmsdBgbbQ1Inhq+gIhz6+7Gb+jWF2Vqi7Mf1xnQ==} - engines: {node: '>=12'} - dev: true - - /table/6.7.1: - resolution: {integrity: sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==} - engines: {node: '>=10.0.0'} - dependencies: - ajv: 8.6.2 - lodash.clonedeep: 4.5.0 - lodash.truncate: 4.4.2 - slice-ansi: 4.0.0 - string-width: 4.2.2 - strip-ansi: 6.0.0 + /supports-preserve-symlinks-flag/1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} dev: true /temp-dir/2.0.0: @@ -3425,24 +2987,19 @@ packages: dependencies: '@istanbuljs/schema': 0.1.3 glob: 7.2.0 - minimatch: 3.0.4 + minimatch: 3.1.2 dev: true /text-table/0.2.0: - resolution: {integrity: sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=} + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true /through/2.3.8: - resolution: {integrity: sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=} + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true /time-zone/1.0.0: - resolution: {integrity: sha1-mcW/VZWJZq9tBtg73zgA3IL67F0=} - engines: {node: '>=4'} - dev: true - - /to-fast-properties/2.0.0: - resolution: {integrity: sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=} + resolution: {integrity: sha512-TIsDdtKo6+XrPtiTm1ssmMngN1sAhyKnTO2kunQWqNPWIVvCm15Wmw4SWInwTVgJ5u/Tr04+8Ei9TNcw4x4ONA==} engines: {node: '>=4'} dev: true @@ -3453,8 +3010,13 @@ packages: is-number: 7.0.0 dev: true - /ts-node/10.5.0_aa6iu3ncjlzgdp4lrtsrv3a234: - resolution: {integrity: sha512-6kEJKwVxAJ35W4akuiysfKwKmjkbYxwQMTBaAxo9KKAx/Yd26mPUyhGz3ji+EsJoAgrLqVsYHNuuYwQe22lbtw==} + /trim-newlines/4.0.2: + resolution: {integrity: sha512-GJtWyq9InR/2HRiLZgpIKv+ufIKrVrvjQWEj7PxAXNc5dwbNJkqhAUoAGgzRmULAnoOM5EIpveYd3J2VeSAIew==} + engines: {node: '>=12'} + dev: true + + /ts-node/10.8.1_wpmar7q2se7jlmxe5wggegnl2m: + resolution: {integrity: sha512-Wwsnao4DQoJsN034wePSg5nZiw4YKXf56mPIAeD6wVmiv+RytNSWqc2f3fKvcUoV+Yn2+yocD71VOfQHbmVX4g==} hasBin: true peerDependencies: '@swc/core': '>=1.2.50' @@ -3467,29 +3029,29 @@ packages: '@swc/wasm': optional: true dependencies: - '@cspotcode/source-map-support': 0.7.0 + '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.8 '@tsconfig/node12': 1.0.9 '@tsconfig/node14': 1.0.1 '@tsconfig/node16': 1.0.2 - '@types/node': 17.0.19 + '@types/node': 17.0.42 acorn: 8.7.0 acorn-walk: 8.2.0 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 4.5.5 - v8-compile-cache-lib: 3.0.0 + typescript: 4.7.3 + v8-compile-cache-lib: 3.0.1 yn: 3.1.1 dev: true - /tsconfig-paths/3.11.0: - resolution: {integrity: sha512-7ecdYDnIdmv639mmDwslG6KQg1Z9STTz1j7Gcz0xa+nshh/gKDAHcPxRbWOsA3SPp0tXP2leTcY9Kw+NAkfZzA==} + /tsconfig-paths/3.14.1: + resolution: {integrity: sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==} dependencies: '@types/json5': 0.0.29 json5: 1.0.1 - minimist: 1.2.5 + minimist: 1.2.6 strip-bom: 3.0.0 dev: true @@ -3501,26 +3063,14 @@ packages: resolution: {integrity: sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==} dev: true - /tsutils/3.21.0_typescript@4.5.5: + /tsutils/3.21.0_typescript@4.7.3: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: 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' dependencies: tslib: 1.14.1 - typescript: 4.5.5 - dev: true - - /ttypescript/1.5.13_a3wpukurwew37akiuez6njzgji: - resolution: {integrity: sha512-KT/RBfGGlVJFqEI8cVvI3nMsmYcFvPSZh8bU0qX+pAwbi7/ABmYkzn7l/K8skw0xmYjVCoyaV6WLsBQxdadybQ==} - hasBin: true - peerDependencies: - ts-node: '>=8.0.2' - typescript: '>=3.2.2' - dependencies: - resolve: 1.20.0 - ts-node: 10.5.0_aa6iu3ncjlzgdp4lrtsrv3a234 - typescript: 4.5.5 + typescript: 4.7.3 dev: true /type-check/0.4.0: @@ -3550,14 +3100,13 @@ packages: engines: {node: '>=10'} dev: true - /typedarray-to-buffer/3.1.5: - resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} - dependencies: - is-typedarray: 1.0.0 + /type-fest/1.4.0: + resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} + engines: {node: '>=10'} dev: true - /typescript/4.5.5: - resolution: {integrity: sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==} + /typescript/4.7.3: + resolution: {integrity: sha512-WOkT3XYvrpXx4vMMqlD+8R8R37fZkjyLGlxavMc4iB8lrl8L0DeTcHbYgw/v0N/z9wAFsgBhcsF0ruoySS22mA==} engines: {node: '>=4.2.0'} hasBin: true dev: true @@ -3571,27 +3120,36 @@ packages: which-boxed-primitive: 1.0.2 dev: true + /unbox-primitive/1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + dependencies: + call-bind: 1.0.2 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 + dev: true + /uri-js/4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: punycode: 2.1.1 dev: true - /v8-compile-cache-lib/3.0.0: - resolution: {integrity: sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA==} + /v8-compile-cache-lib/3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} dev: true /v8-compile-cache/2.3.0: resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} dev: true - /v8-to-istanbul/8.1.0: - resolution: {integrity: sha512-/PRhfd8aTNp9Ggr62HPzXg2XasNFGy5PBt0Rp04du7/8GNNSgxFL6WBTkgMKSL9bFjH+8kKEG3f37FmxiTqUUA==} + /v8-to-istanbul/9.0.0: + resolution: {integrity: sha512-HcvgY/xaRm7isYmyx+lFKA4uQmfUbN0J4M0nNItvzTvH/iQ9kW5j/t4YSR+Ge323/lrgDAWJoF46tzGQHwBHFw==} engines: {node: '>=10.12.0'} dependencies: + '@jridgewell/trace-mapping': 0.3.13 '@types/istanbul-lib-coverage': 2.0.4 convert-source-map: 1.8.0 - source-map: 0.7.3 dev: true /validate-npm-package-license/3.0.4: @@ -3601,9 +3159,9 @@ packages: spdx-expression-parse: 3.0.1 dev: true - /web-streams-polyfill/4.0.0-beta.1: - resolution: {integrity: sha512-3ux37gEX670UUphBF9AMCq8XM6iQ8Ac6A+DSRRjDoRBm1ufCkaCDdNVbaqq60PsEkdNlLKrGtv/YBP4EJXqNtQ==} - engines: {node: '>= 12'} + /web-streams-polyfill/4.0.0-beta.2: + resolution: {integrity: sha512-UHhhnoe2M40uh2r0KVdJTN7qjFytm6o0Yp3VcjwV3bfo6rz8uqvxNoE5yNmGF0y3eFfXaFeb6M09MDSwwLmq4w==} + engines: {node: '>= 14'} dev: false /well-known-symbols/2.0.0: @@ -3648,21 +3206,20 @@ packages: engines: {node: '>=10'} dependencies: ansi-styles: 4.3.0 - string-width: 4.2.2 - strip-ansi: 6.0.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 dev: true /wrappy/1.0.2: resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=} dev: true - /write-file-atomic/3.0.3: - resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} + /write-file-atomic/4.0.1: + resolution: {integrity: sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16} dependencies: imurmurhash: 0.1.4 - is-typedarray: 1.0.0 signal-exit: 3.0.7 - typedarray-to-buffer: 3.1.5 dev: true /y18n/5.0.8: @@ -3674,14 +3231,9 @@ packages: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} dev: true - /yaml/1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} - engines: {node: '>= 6'} - dev: true - - /yargs-parser/20.2.7: - resolution: {integrity: sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==} - engines: {node: '>=10'} + /yaml/2.1.1: + resolution: {integrity: sha512-o96x3OPo8GjWeSLF+wOAbrPfhFOGY0W00GNaxCDv+9hkcDJEnev1yh8S7pgHF0ik6zc8sQLuL8hjHjJULZp8bw==} + engines: {node: '>= 14'} dev: true /yargs-parser/20.2.9: @@ -3702,13 +3254,13 @@ packages: escalade: 3.1.1 get-caller-file: 2.0.5 require-directory: 2.1.1 - string-width: 4.2.2 + string-width: 4.2.3 y18n: 5.0.8 - yargs-parser: 20.2.7 + yargs-parser: 20.2.9 dev: true - /yargs/17.3.1: - resolution: {integrity: sha512-WUANQeVgjLbNsEmGk20f+nlHgOqzRFpiGWVaBrYGYIGANIIu3lWjoyi0fNlFmJkvfhCZ6BXINe7/W2O2bV4iaA==} + /yargs/17.5.1: + resolution: {integrity: sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==} engines: {node: '>=12'} dependencies: cliui: 7.0.4 diff --git a/readme.md b/readme.md index 8492a43..06c7723 100644 --- a/readme.md +++ b/readme.md @@ -10,10 +10,13 @@ Spec-compliant [`FormData`](https://developer.mozilla.org/en-US/docs/Web/API/For 1. Spec-compliant: implements every method of the [`FormData interface`](https://developer.mozilla.org/en-US/docs/Web/API/FormData). 2. Supports Blobs and Files sourced from anywhere: you can use builtin [`fileFromPath`](#filefrompathpath-filename-options---promisefile) and [`fileFromPathSync`](#filefrompathsyncpath-filename-options---file) helpers to create a File from FS, or you can implement your `BlobDataItem` object to use a different source of data. -3. Supports both ESM and CJS targets. See [`ESM/CJS support`](#esmcjs-support) section for details. -4. Written on TypeScript and ships with TS typings. -5. Isomorphic, but only re-exports native FormData object for browsers. If you need a polyfill for browsers, use [`formdata-polyfill`](https://github.com/jimmywarting/FormData) -6. It's a [`ponyfill`](https://ponyfill.com/)! Which means, no effect has been caused on `globalThis` or native `FormData` implementation. +3. Written on TypeScript and ships with TS typings. +4. Isomorphic, but only re-exports native FormData object for browsers. If you need a polyfill for browsers, use [`formdata-polyfill`](https://github.com/jimmywarting/FormData) +5. It's a [`ponyfill`](https://ponyfill.com/)! Which means, no effect has been caused on `globalThis` or native `FormData` implementation. + +## Blob/File support + +While `formdata-node` ships with its own `File` and `Blob` implementations, these might eventually be removed in favour of Node.js' [`Blob`](https://nodejs.org/dist/latest-v18.x/docs/api/buffer.html#class-blob) (introduced in v14.18) and File (when it will be introduced). In order to help you smoothen that transition period, our own `Blob` and `File`, as well as FormData itself, proved support `Blob` objects created by Node.js' implementation. ## Installation @@ -37,7 +40,7 @@ pnpm add formdata-node ## ESM/CJS support -This package is targeting ESM and CJS for backwards compatibility reasons and smoothen transition period while you convert your projects to ESM only. Note that CJS support will be removed as [Node.js v12 will reach its EOL](https://github.com/nodejs/release#release-schedule). This change will be released as major version update, so you won't miss it. +This package is native [ESM](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules) and no longer provides CommonJS exports. Use `4.x` version if you still need to use this package with CommonJS, or use [dynamic `import()`](https://v8.dev/features/dynamic-import) syntax. ## Usage @@ -123,7 +126,50 @@ file = form.get("file") console.log(file.name) // -> some-file.txt ``` -5. You can also append files using `fileFromPath` or `fileFromPathSync` helpers. It does the same thing as [`fetch-blob/from`](https://github.com/node-fetch/fetch-blob#blob-part-backed-up-by-filesystem), but returns a `File` instead of `Blob`: +5. You can use 3rd party Blob as FormData value, as vell as for BlobParts in out Blob implementation: + +```js +import {FormData, Blob} from "formdata-node" +import {Blob as FetchBlob} from "fetch-blob" + +const input = new FetchBlob(["a", "b", "c"]) + +const blob = new Blob([input]) // Accepts 3rd party blobs as BlobParts + +await blob.text() // -> abc + +const form = new FormData() + +form.set("file", input) + +const file = form.get("file") // -> File + +await file.text() // -> abc +``` + +6. You can also use Node.js' Blob implementation in these scenarios: + +```js +import {Blob as NodeBlob} from "node:buffer" + +import {FormData, Blob} from "formdata-node" + +const input = new NodeBlob(["a", "b", "c"]) + +const blob = new Blob([input]) // Accepts Node.js' Blob implementation as BlobParts + +await blob.text() // -> abc + +const form = new FormData() + +form.set("file", input) + +const file = form.get("file") // -> File + +await file.text() // -> abc +``` + +7. You can also append files using `fileFromPath` or `fileFromPathSync` helpers. It does the same thing as [`fetch-blob/from`](https://github.com/node-fetch/fetch-blob#blob-part-backed-up-by-filesystem), but returns a `File` instead of `Blob`: ```js import {fileFromPath} from "formdata-node/file-from-path" @@ -138,7 +184,7 @@ form.set("file", await fileFromPath("/path/to/a/file")) await fetch("https://httpbin.org/post", {method: "post", body: form}) ``` -6. You can still use files sourced from any stream, but unlike in v2 you'll need some extra work to achieve that: +8. You can still use files sourced from any stream, but unlike in v2 you'll need some extra work to achieve that: ```js import {Readable} from "stream" @@ -178,7 +224,7 @@ form.set("stream", new BlobFromStream(stream, content.length), "file.txt") await fetch("https://httpbin.org/post", {method: "post", body: form}) ``` -7. Note that if you don't know the length of that stream, you'll also need to handle form-data encoding manually or use [`form-data-encoder`](https://github.com/octet-stream/form-data-encoder) package. This is necessary to control which headers will be sent with your HTTP request: +9. Note that if you don't know the length of that stream, you'll also need to handle form-data encoding manually or use [`form-data-encoder`](https://github.com/octet-stream/form-data-encoder) package. This is necessary to control which headers will be sent with your HTTP request: ```js import {Readable} from "stream" @@ -224,7 +270,6 @@ await fetch("https://httpbin.org/post", {method: "post", body: form}) | .values() | ✔️ | ✔️ | ✔️ | ❌ | | .entries() | ✔️ | ✔️ | ✔️ | ❌ | | Symbol.iterator | ✔️ | ✔️ | ✔️ | ❌ | -| CommonJS | ✔️ | ❌ | ✔️ | ✔️ | | ESM | ✔️ | ✔️ | ✔️2 | ✔️2 | | Blob | ✔️3 | ✔️4 | ✔️3 | ❌ | | Browser polyfill | ❌ | ✔️ | ✔️ | ❌ | @@ -248,14 +293,9 @@ await fetch("https://httpbin.org/post", {method: "post", body: form}) ### `class FormData` -##### `constructor([entries]) -> {FormData}` - -Creates a new FormData instance +##### `constructor() -> {FormData}` - - **{array}** [entries = null] – an optional FormData initial entries. - Each initial field should be passed as a collection of the objects - with "name", "value" and "filename" props. - See the [FormData#append()](#appendname-value-filename---void) for more info about the available format. +Creates a new FormData instance. #### Instance methods diff --git a/lib/Blob.test.ts b/src/Blob.test.ts similarity index 99% rename from lib/Blob.test.ts rename to src/Blob.test.ts index 3951a03..6e4ca8f 100644 --- a/lib/Blob.test.ts +++ b/src/Blob.test.ts @@ -2,7 +2,7 @@ import test from "ava" import {ReadableStream} from "web-streams-polyfill" -import {Blob} from "./Blob" +import {Blob} from "./Blob.js" test("Constructor creates a new Blob when called without arguments", t => { const blob = new Blob() diff --git a/lib/Blob.ts b/src/Blob.ts similarity index 98% rename from lib/Blob.ts rename to src/Blob.ts index cbf08e9..57a6519 100644 --- a/lib/Blob.ts +++ b/src/Blob.ts @@ -2,10 +2,10 @@ import {ReadableStream} from "web-streams-polyfill" -import type {BlobPart} from "./BlobPart" +import type {BlobPart} from "./BlobPart.js" -import {isFunction} from "./isFunction" -import {consumeBlobParts, sliceBlob} from "./blobHelpers" +import {isFunction} from "./isFunction.js" +import {consumeBlobParts, sliceBlob} from "./blobHelpers.js" /** * Reflects minimal valid Blob for BlobParts. diff --git a/lib/BlobPart.ts b/src/BlobPart.ts similarity index 53% rename from lib/BlobPart.ts rename to src/BlobPart.ts index 83b51b1..815d2ed 100644 --- a/lib/BlobPart.ts +++ b/src/BlobPart.ts @@ -1,3 +1,3 @@ -import type {Blob, BlobLike} from "./Blob" +import type {Blob, BlobLike} from "./Blob.js" export type BlobPart = BlobLike | Blob | Uint8Array diff --git a/lib/File.test.ts b/src/File.test.ts similarity index 99% rename from lib/File.test.ts rename to src/File.test.ts index f231f40..1bd9e7d 100644 --- a/lib/File.test.ts +++ b/src/File.test.ts @@ -1,6 +1,6 @@ import test from "ava" -import {File} from "./File" +import {File} from "./File.js" test("Takes a name as the second argument", t => { const expected = "file.txt" diff --git a/lib/File.ts b/src/File.ts similarity index 89% rename from lib/File.ts rename to src/File.ts index 48290b9..92eabb0 100644 --- a/lib/File.ts +++ b/src/File.ts @@ -1,4 +1,5 @@ -import {Blob, BlobParts as FileBits, BlobPropertyBag} from "./Blob" +import type {BlobPropertyBag, BlobParts as FileBits} from "./Blob.js" +import {Blob} from "./Blob.js" export interface FileLike { /** @@ -36,11 +37,6 @@ export interface FilePropertyBag extends BlobPropertyBag { lastModified?: number } -/** - * @deprecated Use FilePropertyBag instead. - */ -export type FileOptions = FilePropertyBag - /** * The **File** interface provides information about files and allows JavaScript to access their content. */ @@ -84,10 +80,16 @@ export class File extends Blob implements FileLike { } } + /** + * Name of the file referenced by the File object. + */ get name(): string { return this.#name } + /** + * The last modified date of the file as the number of milliseconds since the Unix epoch (January 1, 1970 at midnight). Files without a known last modified date return the current date. + */ get lastModified(): number { return this.#lastModified } diff --git a/lib/FormData.test.ts b/src/FormData.test.ts similarity index 78% rename from lib/FormData.test.ts rename to src/FormData.test.ts index 23d7ec8..39a630b 100644 --- a/lib/FormData.test.ts +++ b/src/FormData.test.ts @@ -2,11 +2,9 @@ import test from "ava" import sinon from "sinon" -import {inspect} from "util" - -import {Blob} from "./Blob" -import {File} from "./File" -import {FormData, FormDataConstructorEntries} from "./FormData" +import {Blob} from "./Blob.js" +import {File} from "./File.js" +import {FormData} from "./FormData.js" const {spy} = sinon @@ -44,22 +42,14 @@ test("Recognizes custom FormData implementation as FormData instance", t => { t.true(new MyFormData() instanceof FormData) }) -test("Allows to append fields from constructor", t => { - const expected: FormDataConstructorEntries = [ - { - name: "field", - value: "On Soviet Moon, landscape see binoculars through YOU" - }, - { - name: "file", - value: new File(["My hovercraft is full of eels"], "hovercraft.txt") - } - ] - - const fd = new FormData(expected) +test("Returns false for instanceof checks with null", t => { + // @ts-expect-error + t.false(null instanceof FormData) +}) - t.true(fd.has("field")) - t.true(fd.has("file")) +test("Returns false for instanceof checks with undefined", t => { + // @ts-expect-error + t.false(undefined instanceof FormData) }) test("Creates a new File instance for given File", t => { @@ -200,6 +190,7 @@ test(".get() returns null for non-existent field", t => { test(".get() returns number values as string", t => { const fd = new FormData() + // @ts-expect-error FormData will convert everything to a string, except for string | Blob | File. But TS typings will show error here anyway. fd.set("field", 42) t.is(fd.get("field"), "42") @@ -238,6 +229,20 @@ test(".getAll() returns an empty array for non-existent field", t => { t.deepEqual(fd.getAll("field"), []) }) +test(".getAll() returns all values associated with given key", t => { + const expected = ["one", "two", "three"] + const fd = new FormData() + + fd.append("field", expected[0]) + fd.append("field", expected[1]) + fd.append("field", expected[2]) + + const actual = fd.getAll("field") + + t.is(actual.length, 3) + t.deepEqual(actual, expected) +}) + test( ".forEach() callback should not be called when FormData has no fields", @@ -307,7 +312,11 @@ test(".forEach() callback should be called once on each filed", t => { const fd = new FormData() fd.set("first", "value") + + // @ts-expect-error FormData will convert everything to a string, except for string | Blob | File. But TS typings will show error here anyway. fd.set("second", 42) + + // @ts-expect-error FormData will convert everything to a string, except for string | Blob | File. But TS typings will show error here anyway. fd.set("third", [1, 2, 3]) fd.forEach(cb) @@ -330,7 +339,11 @@ test(".values() Returns the first value on the first call", t => { const fd = new FormData() fd.set("first", "value") + + // @ts-expect-error FormData will convert everything to a string, except for string | Blob | File. But TS typings will show error here anyway. fd.set("second", 42) + + // @ts-expect-error FormData will convert everything to a string, except for string | Blob | File. But TS typings will show error here anyway. fd.set("third", [1, 2, 3]) const curr = fd.values().next() @@ -345,7 +358,11 @@ test(".value() yields every value from FormData", t => { const fd = new FormData() fd.set("first", "value") + + // @ts-expect-error FormData will convert everything to a string, except for string | Blob | File. But TS typings will show error here anyway. fd.set("second", 42) + + // @ts-expect-error FormData will convert everything to a string, except for string | Blob | File. But TS typings will show error here anyway. fd.set("third", [1, 2, 3]) t.deepEqual([...fd.values()], ["value", "42", "1,2,3"]) @@ -366,7 +383,11 @@ test(".keys() Returns the first value on the first call", t => { const fd = new FormData() fd.set("first", "value") + + // @ts-expect-error FormData will convert everything to a string, except for string | Blob | File. But TS typings will show error here anyway. fd.set("second", 42) + + // @ts-expect-error FormData will convert everything to a string, except for string | Blob | File. But TS typings will show error here anyway. fd.set("third", [1, 2, 3]) const curr = fd.keys().next() @@ -381,7 +402,11 @@ test(".keys() yields every key from FormData", t => { const fd = new FormData() fd.set("first", "value") + + // @ts-expect-error FormData will convert everything to a string, except for string | Blob | File. But TS typings will show error here anyway. fd.set("second", 42) + + // @ts-expect-error FormData will convert everything to a string, except for string | Blob | File. But TS typings will show error here anyway. fd.set("third", [1, 2, 3]) t.deepEqual([...fd.keys()], ["first", "second", "third"]) @@ -391,10 +416,6 @@ test(".toString() returns a proper string", t => { t.is(new FormData().toString(), "[object FormData]") }) -test("util.inspect() returns a proper string", t => { - t.is(inspect(new FormData()), "FormData") -}) - test(".set() throws TypeError when called with less than 2 arguments", t => { const fd = new FormData() diff --git a/lib/FormData.ts b/src/FormData.ts similarity index 86% rename from lib/FormData.ts rename to src/FormData.ts index 92f7450..b8c76ac 100644 --- a/lib/FormData.ts +++ b/src/FormData.ts @@ -1,9 +1,7 @@ -import {inspect} from "util" - -import {File} from "./File" -import {isFile} from "./isFile" -import {isFunction} from "./isFunction" -import {deprecateConstructorEntries} from "./deprecateConstructorEntries" +import {isFunction} from "./isFunction.js" +import type {Blob} from "./Blob.js" +import {isFile} from "./isFile.js" +import {File} from "./File.js" /** * A `string` or `File` that represents a single value from a set of `FormData` key-value pairs. @@ -28,7 +26,7 @@ interface FormDataSetFieldOptions { * The field's value. This can be [`Blob`](https://developer.mozilla.org/en-US/docs/Web/API/Blob) or [`File`](https://developer.mozilla.org/en-US/docs/Web/API/File). If none of these are specified the value is converted to a string. */ - rawValue: unknown + rawValue: string | Blob /** * The filename reported to the server, when a Blob or File is passed as the second parameter. The default filename for Blob objects is "blob". The default filename for File objects is the file's filename. @@ -50,15 +48,6 @@ interface FormDataSetFieldOptions { argsLength: number } -/** - * Constructor entries for FormData - */ -export type FormDataConstructorEntries = Array<{ - name: string, - value: unknown, - fileName?: string -}> - /** * Provides a way to easily construct a set of key/value pairs representing form fields and their values, which can then be easily sent using fetch(). * @@ -72,32 +61,27 @@ export class FormData { readonly #entries = new Map() static [Symbol.hasInstance](value: unknown): value is FormData { - return Boolean( - value - && isFunction((value as FormData).constructor) - && (value as FormData)[Symbol.toStringTag] === "FormData" - && isFunction((value as FormData).append) - && isFunction((value as FormData).set) - && isFunction((value as FormData).get) - && isFunction((value as FormData).getAll) - && isFunction((value as FormData).has) - && isFunction((value as FormData).delete) - && isFunction((value as FormData).entries) - && isFunction((value as FormData).values) - && isFunction((value as FormData).keys) - && isFunction((value as FormData)[Symbol.iterator]) - && isFunction((value as FormData).forEach) - ) - } + if (!value) { + return false + } - constructor(entries?: FormDataConstructorEntries) { - if (entries) { - deprecateConstructorEntries() + const val = value as FormData - entries.forEach(({name, value, fileName}) => this.append( - name, value, fileName - )) - } + return Boolean( + isFunction(val.constructor) + && val[Symbol.toStringTag] === "FormData" + && isFunction(val.append) + && isFunction(val.set) + && isFunction(val.get) + && isFunction(val.getAll) + && isFunction(val.has) + && isFunction(val.delete) + && isFunction(val.entries) + && isFunction(val.values) + && isFunction(val.keys) + && isFunction(val[Symbol.iterator]) + && isFunction(val.forEach) + ) } #setEntry({ @@ -174,7 +158,7 @@ export class FormData { or [`File`](https://developer.mozilla.org/en-US/docs/Web/API/File). If none of these are specified the value is converted to a string. * @param fileName The filename reported to the server, when a Blob or File is passed as the second parameter. The default filename for Blob objects is "blob". The default filename for File objects is the file's filename. */ - append(name: string, value: unknown, fileName?: string): void { + append(name: string, value: string | Blob, fileName?: string): void { this.#setEntry({ name, fileName, @@ -194,7 +178,7 @@ export class FormData { * @param fileName The filename reported to the server, when a Blob or File is passed as the second parameter. The default filename for Blob objects is "blob". The default filename for File objects is the file's filename. * */ - set(name: string, value: unknown, fileName?: string): void { + set(name: string, value: string | Blob, fileName?: string): void { this.#setEntry({ name, fileName, @@ -317,8 +301,4 @@ export class FormData { get [Symbol.toStringTag](): string { return "FormData" } - - [inspect.custom](): string { - return this[Symbol.toStringTag] - } } diff --git a/src/__helper__/sleep.ts b/src/__helper__/sleep.ts new file mode 100644 index 0000000..50aa21b --- /dev/null +++ b/src/__helper__/sleep.ts @@ -0,0 +1,5 @@ +const sleep = (ms: number) => new Promise(resolve => { + setTimeout(resolve, ms) +}) + +export default sleep diff --git a/lib/blobHelpers.ts b/src/blobHelpers.ts similarity index 95% rename from lib/blobHelpers.ts rename to src/blobHelpers.ts index 853b2a2..d43c2a8 100644 --- a/lib/blobHelpers.ts +++ b/src/blobHelpers.ts @@ -1,9 +1,9 @@ /*! Based on fetch-blob. MIT License. Jimmy Wärting & David Frank */ -import type {BlobPart} from "./BlobPart" -import type {Blob, BlobLike} from "./Blob" +import type {BlobPart} from "./BlobPart.js" +import type {Blob, BlobLike} from "./Blob.js" -import {isFunction} from "./isFunction" +import {isFunction} from "./isFunction.js" const CHUNK_SIZE = 65536 // 64 KiB (same size chrome slice theirs blob into Uint8array's) diff --git a/lib/browser.ts b/src/browser.ts similarity index 100% rename from lib/browser.ts rename to src/browser.ts diff --git a/lib/fileFromPath.test.ts b/src/fileFromPath.test.ts similarity index 81% rename from lib/fileFromPath.test.ts rename to src/fileFromPath.test.ts index c2fdfeb..2832bba 100644 --- a/lib/fileFromPath.test.ts +++ b/src/fileFromPath.test.ts @@ -1,16 +1,16 @@ -import test from "ava" +import {stat, readFile, utimes} from "node:fs/promises" +import {resolve, basename} from "node:path" -import {promises as fs} from "fs" -import {resolve, basename} from "path" +import test from "ava" -import {File} from "./File" +import {File} from "./File.js" import { fileFromPathSync, fileFromPath, FileFromPathOptions -} from "./fileFromPath" +} from "./fileFromPath.js" -import sleep from "./__helper__/sleep" +import sleep from "./__helper__/sleep.js" const filePath = resolve("license") @@ -23,7 +23,7 @@ test("sync: Returns File instance", t => { }) test("Creates a file from path", async t => { - const expected: Buffer = await fs.readFile(filePath) + const expected: Buffer = await readFile(filePath) const file = await fileFromPath(filePath) @@ -33,7 +33,7 @@ test("Creates a file from path", async t => { }) test("sync: Creates a file from path", async t => { - const expected: Buffer = await fs.readFile(filePath) + const expected: Buffer = await readFile(filePath) const file = fileFromPathSync(filePath) const actual = Buffer.from(await file.arrayBuffer()) @@ -54,7 +54,7 @@ test("Has an empty string as file type by default", async t => { }) test("Has lastModified field taken from file stats", async t => { - const {mtimeMs} = await fs.stat(filePath) + const {mtimeMs} = await stat(filePath) const file = await fileFromPath(filePath) @@ -62,7 +62,7 @@ test("Has lastModified field taken from file stats", async t => { }) test("Has the size property reflecting the one of the actual file", async t => { - const {size} = await fs.stat(filePath) + const {size} = await stat(filePath) const file = await fileFromPath(filePath) @@ -105,7 +105,7 @@ test("sync: Allows to set file options from second argument", t => { }) test("Can be read as text", async t => { - const expected = await fs.readFile(filePath, "utf-8") + const expected = await readFile(filePath, "utf-8") const file = await fileFromPath(filePath) const actual = await file.text() @@ -114,7 +114,7 @@ test("Can be read as text", async t => { }) test("Can be read as ArrayBuffer", async t => { - const expected = await fs.readFile(filePath) + const expected = await readFile(filePath) const file = await fileFromPath(filePath) const actual = await file.arrayBuffer() @@ -139,6 +139,16 @@ test("Can be sliced from the arbitrary start", async t => { t.is(actual, "MIT License") }) +test("Can be sliced from Blob returned from .slice() method", async t => { + const license = new File([await readFile(filePath)], "license") + const file = await fileFromPath(filePath) + + const expected = license.slice(4, 11).slice(2, 5) + const actual = file.slice(4, 11).slice(2, 5) + + t.is(await actual.text(), await expected.text()) +}) + test("Reads from empty file", async t => { const file = await fileFromPath(filePath) @@ -156,7 +166,7 @@ test("Fails attempt to read modified file", async t => { const now = new Date() - await fs.utimes(path, now, now) + await utimes(path, now, now) await t.throwsAsync(() => file.text(), { name: "NotReadableError", diff --git a/lib/fileFromPath.ts b/src/fileFromPath.ts similarity index 91% rename from lib/fileFromPath.ts rename to src/fileFromPath.ts index 495e25d..6ae33a1 100644 --- a/lib/fileFromPath.ts +++ b/src/fileFromPath.ts @@ -1,13 +1,16 @@ -import {statSync, createReadStream, Stats, promises as fs} from "fs" -import {basename} from "path" +import {statSync, createReadStream} from "node:fs" +import {stat} from "node:fs/promises" +import type {Stats} from "node:fs" +import {basename} from "node:path" import DOMException from "node-domexception" -import {File, FileLike, FilePropertyBag} from "./File" +import type {FileLike, FilePropertyBag} from "./File.js" +import {File} from "./File.js" -import isPlainObject from "./isPlainObject" +import isPlainObject from "./isPlainObject.js" -export * from "./isFile" +export * from "./isFile.js" const MESSAGE = "The requested file could not be read, " + "typically due to permission problems that have occurred after a reference " @@ -54,13 +57,13 @@ class FileFromPath implements Omit { return new FileFromPath({ path: this.#path, lastModified: this.lastModified, - size: end - start, - start + start: this.#start + start, + size: end - start }) } async* stream(): AsyncGenerator { - const {mtimeMs} = await fs.stat(this.#path) + const {mtimeMs} = await stat(this.#path) if (mtimeMs > this.lastModified) { // eslint-disable-next-line @typescript-eslint/no-throw-literal @@ -188,7 +191,7 @@ export async function fileFromPath( filenameOrOptions?: string | FileFromPathOptions, options?: FileFromPathOptions ): Promise { - const stats = await fs.stat(path) + const stats = await stat(path) return createFileFromPath(path, stats, filenameOrOptions, options) } diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 0000000..3e974fb --- /dev/null +++ b/src/index.ts @@ -0,0 +1,3 @@ +export * from "./FormData.js" +export * from "./Blob.js" +export * from "./File.js" diff --git a/lib/isFile.test.ts b/src/isFile.test.ts similarity index 85% rename from lib/isFile.test.ts rename to src/isFile.test.ts index 0dd9715..089057b 100644 --- a/lib/isFile.test.ts +++ b/src/isFile.test.ts @@ -1,10 +1,10 @@ -import test from "ava" +import {createReadStream} from "node:fs" -import {createReadStream} from "fs" +import test from "ava" -import {Blob} from "./Blob" -import {isFile} from "./isFile" -import {File, FileLike} from "./File" +import {Blob} from "./Blob.js" +import {isFile} from "./isFile.js" +import {File, FileLike} from "./File.js" test("Returns true for a File", t => { const file = new File(["Some content"], "file.txt") diff --git a/lib/isFile.ts b/src/isFile.ts similarity index 86% rename from lib/isFile.ts rename to src/isFile.ts index a566d0f..d4fc0fa 100644 --- a/lib/isFile.ts +++ b/src/isFile.ts @@ -1,4 +1,4 @@ -import {File} from "./File" +import {File} from "./File.js" /** * Checks if given value is a File, Blob or file-look-a-like object. diff --git a/lib/isFunction.ts b/src/isFunction.ts similarity index 100% rename from lib/isFunction.ts rename to src/isFunction.ts diff --git a/lib/isPlainObject.test.ts b/src/isPlainObject.test.ts similarity index 93% rename from lib/isPlainObject.test.ts rename to src/isPlainObject.test.ts index e1fe547..3f47837 100644 --- a/lib/isPlainObject.test.ts +++ b/src/isPlainObject.test.ts @@ -1,6 +1,6 @@ import test from "ava" -import isPlainObject from "./isPlainObject" +import isPlainObject from "./isPlainObject.js" test("Returns true when object literal given", t => { t.true(isPlainObject({})) diff --git a/lib/isPlainObject.ts b/src/isPlainObject.ts similarity index 100% rename from lib/isPlainObject.ts rename to src/isPlainObject.ts diff --git a/lib/node-domexception.d.ts b/src/node-domexception.d.ts similarity index 100% rename from lib/node-domexception.d.ts rename to src/node-domexception.d.ts diff --git a/tsconfig.ava.json b/tsconfig.ava.json index 9c12fe4..e8c7058 100644 --- a/tsconfig.ava.json +++ b/tsconfig.ava.json @@ -1,8 +1,7 @@ { - "extends": "./tsconfig.cjs.json", + "extends": "./tsconfig.json", "ts-node": { "preferTsExts": true, - "transpileOnly": true, - "compiler": "ttypescript" + "transpileOnly": true } } diff --git a/tsconfig.cjs.json b/tsconfig.cjs.json deleted file mode 100644 index ba7212a..0000000 --- a/tsconfig.cjs.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "lib/cjs", - "module": "commonjs", - "esModuleInterop": true - } -} diff --git a/tsconfig.d.ts.json b/tsconfig.d.ts.json index 4959d3c..cdd0054 100644 --- a/tsconfig.d.ts.json +++ b/tsconfig.d.ts.json @@ -1,5 +1,5 @@ { - "extends": "./tsconfig.esm.json", + "extends": "./tsconfig.json", "compilerOptions": { "declaration": true, "declarationDir": "./@type", diff --git a/tsconfig.eslint.json b/tsconfig.eslint.json index 32a8fc1..5adf494 100644 --- a/tsconfig.eslint.json +++ b/tsconfig.eslint.json @@ -1,5 +1,5 @@ { - "extends": "./tsconfig.cjs.json", + "extends": "./tsconfig.json", "exclude": [ "node_modules" ], diff --git a/tsconfig.esm.json b/tsconfig.esm.json deleted file mode 100644 index 3145baf..0000000 --- a/tsconfig.esm.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "module": "es2020", - "outDir": "lib/esm" - } -} diff --git a/tsconfig.json b/tsconfig.json index a7ab4c2..134860b 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,16 +1,18 @@ { "include": [ - "lib/**/*.ts" + "src/**/*.ts" ], "exclude": [ "node_modules", - "lib/__helper__/**", - "lib/**/*.test.ts" + "src/__helper__/**", + "src/**/*.test.ts" ], "compilerOptions": { + "outDir": "lib", "target": "es2018", + "module": "es2020", "noImplicitAny": true, - "baseUrl": "lib", + "baseUrl": "src", "checkJs": false, "allowJs": false, "skipLibCheck": false, @@ -20,12 +22,6 @@ "moduleResolution": "node", "forceConsistentCasingInFileNames": true, "allowSyntheticDefaultImports": true, - "removeComments": true, - "plugins": [ - { - "transform": "@zoltu/typescript-transformer-append-js-extension/output/index.js", - "after": true - } - ] + "removeComments": true } }