diff --git a/.czrc b/.czrc new file mode 100644 index 0000000..84eba79 --- /dev/null +++ b/.czrc @@ -0,0 +1,3 @@ +{ + "path": "./node_modules/@commitlint/cz-commitlint" +} \ No newline at end of file diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 4598233..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1,37 +0,0 @@ -module.exports = { - 'env': { - 'browser': true, - 'es6': true, - }, - 'extends': [ - 'google', - ], - 'globals': { - 'expect': 'readable', - 'test': 'readable', - 'describe': 'readable', - 'beforeEach': 'readable', - 'afterEach': 'readable', - 'jest': 'readable', - 'Atomics': 'readonly', - 'SharedArrayBuffer': 'readonly', - }, - 'parser': '@typescript-eslint/parser', - 'parserOptions': { - 'ecmaFeatures': { - }, - 'ecmaVersion': 11, - 'sourceType': 'module', - }, - 'plugins': [ - '@typescript-eslint', - ], - 'rules': { - 'indent': ['error', 4], - 'object-curly-spacing': ['error', 'always'], - 'max-len': 0, - 'require-jsdoc': 0, - 'valid-jsdoc': 0, - 'no-unused-vars': 0, - }, -}; diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml index 5574cea..fe54f2b 100644 --- a/.github/workflows/nodejs.yml +++ b/.github/workflows/nodejs.yml @@ -43,7 +43,50 @@ jobs: - name: install if: steps.node_modules_cache_id.outputs.cache-hit != 'true' run: yarn + prettier: + runs-on: ubuntu-latest + needs: [setup] + steps: + - uses: actions/checkout@v2 + - name: Restore cache from yarn.lock + uses: actions/cache@v2 + with: + path: package-temp-dir + key: lock-${{ github.sha }} + + - name: Restore cache from node_modules + uses: actions/cache@v2 + with: + path: node_modules + key: node_modules-${{ hashFiles('**/package-temp-dir/yarn.lock') }} + + - name: Run prettier lint + run: | + export NODE_OPTIONS="--max_old_space_size=4096" + yarn lint + check-types: + runs-on: ubuntu-latest + needs: [setup] + steps: + - uses: actions/checkout@v2 + + - name: Restore cache from yarn.lock + uses: actions/cache@v2 + with: + path: package-temp-dir + key: lock-${{ github.sha }} + + - name: Restore cache from node_modules + uses: actions/cache@v2 + with: + path: node_modules + key: node_modules-${{ hashFiles('**/package-temp-dir/yarn.lock') }} + + - name: Run tsc check + run: | + export NODE_OPTIONS="--max_old_space_size=4096" + yarn check-types test: runs-on: ubuntu-latest needs: [setup] diff --git a/.husky/commit-msg b/.husky/commit-msg new file mode 100755 index 0000000..b4851c5 --- /dev/null +++ b/.husky/commit-msg @@ -0,0 +1,6 @@ +#!/usr/bin/env sh +. "$(dirname -- "$0")/_/husky.sh" + +echo 'commitlint' + +npx --no -- commitlint --edit diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 0000000..d24fdfc --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,4 @@ +#!/usr/bin/env sh +. "$(dirname -- "$0")/_/husky.sh" + +npx lint-staged diff --git a/.lintstagedrc.js b/.lintstagedrc.js new file mode 100644 index 0000000..92ea74c --- /dev/null +++ b/.lintstagedrc.js @@ -0,0 +1,3 @@ +module.exports = { + '*.js|ts': [`prettier --write`], +}; diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..1d1c476 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,7 @@ +**/*.md +**/*.ejs +**/package.json +**/lib +**/dist +node_modules +coverage \ No newline at end of file diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..c5ceb24 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,10 @@ +{ + "semi": true, + "tabWidth": 4, + "printWidth": 100, + "singleQuote": true, + "useTabs": false, + "bracketSpacing": true, + "arrowParens": "always", + "trailingComma": "es5" +} \ No newline at end of file diff --git a/commitlint.config.js b/commitlint.config.js new file mode 100644 index 0000000..89d82d5 --- /dev/null +++ b/commitlint.config.js @@ -0,0 +1,12 @@ +module.exports = { + extends: ['@commitlint/config-conventional'], + rules: { + 'type-enum': [ + 2, + 'always', + ['feat', 'fix', 'docs', 'style', 'refactor', 'test', 'build', 'ci', 'chore'], + ], + 'scope-case': [0, 'always'], + 'scope-empty': [0, 'always'], + }, +}; diff --git a/package.json b/package.json index 35e223b..281f3ee 100644 --- a/package.json +++ b/package.json @@ -18,28 +18,33 @@ "dist" ], "scripts": { + "prepare": "husky install", "antlr4": "node ./scripts/antlr4.js", "build": "rm -rf dist && tsc", - "eslint": "eslint ./src/**/*.ts", - "check-types": "tsc --skipLibCheck", + "check-types": "tsc -p ./tsconfig.check.json", "test": "NODE_OPTIONS=--max_old_space_size=4096 && jest", - "release": "npm run build && node ./scripts/release.js" + "release": "npm run build && node ./scripts/release.js", + "lint": "prettier --check '**/*.ts' --config ./.prettierrc", + "lint-fix": "prettier --write '**/*.ts' --config ./.prettierrc" }, "author": "dt-insight-front", "license": "MIT", "devDependencies": { + "@commitlint/cli": "^17.7.2", + "@commitlint/config-conventional": "^17.7.0", + "@commitlint/cz-commitlint": "^17.7.2", "@swc/core": "^1.3.60", "@swc/jest": "^0.2.26", "@types/jest": "^29.5.1", "@types/node": "^18.15.11", - "@typescript-eslint/eslint-plugin": "^3.10.1", - "@typescript-eslint/parser": "^3.10.1", "antlr4ts-cli": "^0.5.0-alpha.4", "chalk": "4.1.2", - "eslint": "^7.32.0", - "eslint-config-google": "^0.14.0", + "commitizen": "^4.3.0", + "husky": "^8.0.3", "inquirer": "^8.2.2", "jest": "^29.5.0", + "lint-staged": "12.5.0", + "prettier": "^3.0.3", "standard-version": "^9.5.0", "typescript": "^5.0.4", "yargs-parser": "^21.1.1" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bf99885..da36e01 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,20 +1,23 @@ lockfileVersion: 5.3 specifiers: + '@commitlint/cli': ^17.7.2 + '@commitlint/config-conventional': ^17.7.0 + '@commitlint/cz-commitlint': ^17.7.2 '@swc/core': ^1.3.60 '@swc/jest': ^0.2.26 '@types/jest': ^29.5.1 '@types/node': ^18.15.11 - '@typescript-eslint/eslint-plugin': ^3.10.1 - '@typescript-eslint/parser': ^3.10.1 antlr4-c3: ^3.0.1 antlr4ts: ^0.5.0-alpha.4 antlr4ts-cli: ^0.5.0-alpha.4 chalk: 4.1.2 - eslint: ^7.32.0 - eslint-config-google: ^0.14.0 + commitizen: ^4.3.0 + husky: ^8.0.3 inquirer: ^8.2.2 jest: ^29.5.0 + lint-staged: 12.5.0 + prettier: ^3.0.3 standard-version: ^9.5.0 typescript: ^5.0.4 yargs-parser: ^21.1.1 @@ -24,18 +27,21 @@ dependencies: antlr4ts: 0.5.0-alpha.4 devDependencies: + '@commitlint/cli': 17.7.2_@swc+core@1.3.60 + '@commitlint/config-conventional': 17.7.0 + '@commitlint/cz-commitlint': 17.7.2_ff6aea09b3e6b1e995ae83a28a89310a '@swc/core': 1.3.60 '@swc/jest': 0.2.26_@swc+core@1.3.60 '@types/jest': 29.5.1 '@types/node': 18.16.16 - '@typescript-eslint/eslint-plugin': 3.10.1_a18e814019c959d52a44881c5533ce12 - '@typescript-eslint/parser': 3.10.1_eslint@7.32.0+typescript@5.0.4 antlr4ts-cli: 0.5.0-alpha.4 chalk: 4.1.2 - eslint: 7.32.0 - eslint-config-google: 0.14.0_eslint@7.32.0 + commitizen: 4.3.0_@swc+core@1.3.60 + husky: 8.0.3 inquirer: 8.2.6 jest: 29.5.0_@types+node@18.16.16 + lint-staged: 12.5.0 + prettier: 3.0.3 standard-version: 9.5.0 typescript: 5.0.4 yargs-parser: 21.1.1 @@ -50,12 +56,6 @@ packages: '@jridgewell/trace-mapping': 0.3.18 dev: true - /@babel/code-frame/7.12.11: - resolution: {integrity: sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==} - dependencies: - '@babel/highlight': 7.18.6 - dev: true - /@babel/code-frame/7.21.4: resolution: {integrity: sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==} engines: {node: '>=6.9.0'} @@ -389,36 +389,200 @@ packages: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} dev: true - /@eslint/eslintrc/0.4.3: - resolution: {integrity: sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==} - engines: {node: ^10.12.0 || >=12.0.0} + /@commitlint/cli/17.7.2_@swc+core@1.3.60: + resolution: {integrity: sha512-t3N7TZq7lOeqTOyEgfGcaltHqEJf7YDlPg75MldeVPPyz14jZq/+mbGF9tueDLFX8R6RwdymrN6D+U5XwZ8Iwg==} + engines: {node: '>=v14'} + hasBin: true dependencies: - ajv: 6.12.6 - debug: 4.3.4 - espree: 7.3.1 - globals: 13.20.0 - ignore: 4.0.6 + '@commitlint/format': 17.4.4 + '@commitlint/lint': 17.7.0 + '@commitlint/load': 17.7.2_@swc+core@1.3.60 + '@commitlint/read': 17.5.1 + '@commitlint/types': 17.4.4 + execa: 5.1.1 + lodash.isfunction: 3.0.9 + resolve-from: 5.0.0 + resolve-global: 1.0.0 + yargs: 17.7.2 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + dev: true + + /@commitlint/config-conventional/17.7.0: + resolution: {integrity: sha512-iicqh2o6et+9kWaqsQiEYZzfLbtoWv9uZl8kbI8EGfnc0HeGafQBF7AJ0ylN9D/2kj6txltsdyQs8+2fTMwWEw==} + engines: {node: '>=v14'} + dependencies: + conventional-changelog-conventionalcommits: 6.1.0 + dev: true + + /@commitlint/config-validator/17.6.7: + resolution: {integrity: sha512-vJSncmnzwMvpr3lIcm0I8YVVDJTzyjy7NZAeXbTXy+MPUdAr9pKyyg7Tx/ebOQ9kqzE6O9WT6jg2164br5UdsQ==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/types': 17.4.4 + ajv: 8.12.0 + dev: true + + /@commitlint/cz-commitlint/17.7.2_ff6aea09b3e6b1e995ae83a28a89310a: + resolution: {integrity: sha512-E5j4D8t4o4pGOoE56JOtkTCEXhZJguv8prX+XmdxTF4gYphSjDEb+EQ1xWfv98hxOdgvFJNQfLA/JbPjkfh7DA==} + engines: {node: '>=v14'} + peerDependencies: + commitizen: ^4.0.3 + inquirer: ^8.0.0 + dependencies: + '@commitlint/ensure': 17.6.7 + '@commitlint/load': 17.7.2_@swc+core@1.3.60 + '@commitlint/types': 17.4.4 + chalk: 4.1.2 + commitizen: 4.3.0_@swc+core@1.3.60 + inquirer: 8.2.6 + lodash.isplainobject: 4.0.6 + word-wrap: 1.2.5 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + dev: true + + /@commitlint/ensure/17.6.7: + resolution: {integrity: sha512-mfDJOd1/O/eIb/h4qwXzUxkmskXDL9vNPnZ4AKYKiZALz4vHzwMxBSYtyL2mUIDeU9DRSpEUins8SeKtFkYHSw==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/types': 17.4.4 + lodash.camelcase: 4.3.0 + lodash.kebabcase: 4.1.1 + lodash.snakecase: 4.1.1 + lodash.startcase: 4.4.0 + lodash.upperfirst: 4.3.1 + dev: true + + /@commitlint/execute-rule/17.4.0: + resolution: {integrity: sha512-LIgYXuCSO5Gvtc0t9bebAMSwd68ewzmqLypqI2Kke1rqOqqDbMpYcYfoPfFlv9eyLIh4jocHWwCK5FS7z9icUA==} + engines: {node: '>=v14'} + dev: true + + /@commitlint/format/17.4.4: + resolution: {integrity: sha512-+IS7vpC4Gd/x+uyQPTAt3hXs5NxnkqAZ3aqrHd5Bx/R9skyCAWusNlNbw3InDbAK6j166D9asQM8fnmYIa+CXQ==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/types': 17.4.4 + chalk: 4.1.2 + dev: true + + /@commitlint/is-ignored/17.7.0: + resolution: {integrity: sha512-043rA7m45tyEfW7Zv2vZHF++176MLHH9h70fnPoYlB1slKBeKl8BwNIlnPg4xBdRBVNPaCqvXxWswx2GR4c9Hw==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/types': 17.4.4 + semver: 7.5.4 + dev: true + + /@commitlint/lint/17.7.0: + resolution: {integrity: sha512-TCQihm7/uszA5z1Ux1vw+Nf3yHTgicus/+9HiUQk+kRSQawByxZNESeQoX9ujfVd3r4Sa+3fn0JQAguG4xvvbA==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/is-ignored': 17.7.0 + '@commitlint/parse': 17.7.0 + '@commitlint/rules': 17.7.0 + '@commitlint/types': 17.4.4 + dev: true + + /@commitlint/load/17.7.2_@swc+core@1.3.60: + resolution: {integrity: sha512-XA7WTnsjHZ4YH6ZYsrnxgLdXzriwMMq+utZUET6spbOEEIPBCDLdOQXS26P+v3TTO4hUHOEhzUquaBv3jbBixw==} + engines: {node: '>=v14'} + requiresBuild: true + dependencies: + '@commitlint/config-validator': 17.6.7 + '@commitlint/execute-rule': 17.4.0 + '@commitlint/resolve-extends': 17.6.7 + '@commitlint/types': 17.4.4 + '@types/node': 20.5.1 + chalk: 4.1.2 + cosmiconfig: 8.3.6_typescript@5.0.4 + cosmiconfig-typescript-loader: 4.4.0_30178abb0e2027a20cdf504195288ad3 + lodash.isplainobject: 4.0.6 + lodash.merge: 4.6.2 + lodash.uniq: 4.5.0 + resolve-from: 5.0.0 + ts-node: 10.9.1_0d2585e4297d96d8e906ef9bffd6d443 + typescript: 5.0.4 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + dev: true + + /@commitlint/message/17.4.2: + resolution: {integrity: sha512-3XMNbzB+3bhKA1hSAWPCQA3lNxR4zaeQAQcHj0Hx5sVdO6ryXtgUBGGv+1ZCLMgAPRixuc6en+iNAzZ4NzAa8Q==} + engines: {node: '>=v14'} + dev: true + + /@commitlint/parse/17.7.0: + resolution: {integrity: sha512-dIvFNUMCUHqq5Abv80mIEjLVfw8QNuA4DS7OWip4pcK/3h5wggmjVnlwGCDvDChkw2TjK1K6O+tAEV78oxjxag==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/types': 17.4.4 + conventional-changelog-angular: 6.0.0 + conventional-commits-parser: 4.0.0 + dev: true + + /@commitlint/read/17.5.1: + resolution: {integrity: sha512-7IhfvEvB//p9aYW09YVclHbdf1u7g7QhxeYW9ZHSO8Huzp8Rz7m05aCO1mFG7G8M+7yfFnXB5xOmG18brqQIBg==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/top-level': 17.4.0 + '@commitlint/types': 17.4.4 + fs-extra: 11.1.1 + git-raw-commits: 2.0.11 + minimist: 1.2.8 + dev: true + + /@commitlint/resolve-extends/17.6.7: + resolution: {integrity: sha512-PfeoAwLHtbOaC9bGn/FADN156CqkFz6ZKiVDMjuC2N5N0740Ke56rKU7Wxdwya8R8xzLK9vZzHgNbuGhaOVKIg==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/config-validator': 17.6.7 + '@commitlint/types': 17.4.4 import-fresh: 3.3.0 - js-yaml: 3.14.1 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color + lodash.mergewith: 4.6.2 + resolve-from: 5.0.0 + resolve-global: 1.0.0 dev: true - /@humanwhocodes/config-array/0.5.0: - resolution: {integrity: sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==} - engines: {node: '>=10.10.0'} + /@commitlint/rules/17.7.0: + resolution: {integrity: sha512-J3qTh0+ilUE5folSaoK91ByOb8XeQjiGcdIdiB/8UT1/Rd1itKo0ju/eQVGyFzgTMYt8HrDJnGTmNWwcMR1rmA==} + engines: {node: '>=v14'} dependencies: - '@humanwhocodes/object-schema': 1.2.1 - debug: 4.3.4 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color + '@commitlint/ensure': 17.6.7 + '@commitlint/message': 17.4.2 + '@commitlint/to-lines': 17.4.0 + '@commitlint/types': 17.4.4 + execa: 5.1.1 dev: true - /@humanwhocodes/object-schema/1.2.1: - resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + /@commitlint/to-lines/17.4.0: + resolution: {integrity: sha512-LcIy/6ZZolsfwDUWfN1mJ+co09soSuNASfKEU5sCmgFCvX5iHwRYLiIuoqXzOVDYOy7E7IcHilr/KS0e5T+0Hg==} + engines: {node: '>=v14'} + dev: true + + /@commitlint/top-level/17.4.0: + resolution: {integrity: sha512-/1loE/g+dTTQgHnjoCy0AexKAEFyHsR2zRB4NWrZ6lZSMIxAhBJnmCqwao7b4H8888PsfoTBCLBYIw8vGnej8g==} + engines: {node: '>=v14'} + dependencies: + find-up: 5.0.0 + dev: true + + /@commitlint/types/17.4.4: + resolution: {integrity: sha512-amRN8tRLYOsxRr6mTnGGGvB5EmW/4DDjLMgiwK3CCVEmN6Sr/6xePGEpWaspKkckILuUORCwe6VfDBw6uj4axQ==} + engines: {node: '>=v14'} + dependencies: + chalk: 4.1.2 + dev: true + + /@cspotcode/source-map-support/0.8.1: + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/trace-mapping': 0.3.9 dev: true /@hutson/parse-repository-url/3.0.2: @@ -707,6 +871,13 @@ packages: '@jridgewell/sourcemap-codec': 1.4.14 dev: true + /@jridgewell/trace-mapping/0.3.9: + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + dependencies: + '@jridgewell/resolve-uri': 3.1.0 + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + /@sinclair/typebox/0.25.24: resolution: {integrity: sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==} dev: true @@ -846,6 +1017,22 @@ packages: jsonc-parser: 3.2.0 dev: true + /@tsconfig/node10/1.0.9: + resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} + dev: true + + /@tsconfig/node12/1.0.11: + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + dev: true + + /@tsconfig/node14/1.0.3: + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + dev: true + + /@tsconfig/node16/1.0.4: + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + dev: true + /@types/babel__core/7.20.1: resolution: {integrity: sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw==} dependencies: @@ -875,10 +1062,6 @@ packages: '@babel/types': 7.22.4 dev: true - /@types/eslint-visitor-keys/1.0.0: - resolution: {integrity: sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==} - dev: true - /@types/graceful-fs/4.1.6: resolution: {integrity: sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==} dependencies: @@ -908,10 +1091,6 @@ packages: pretty-format: 29.5.0 dev: true - /@types/json-schema/7.0.12: - resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==} - dev: true - /@types/minimist/1.2.2: resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} dev: true @@ -920,6 +1099,10 @@ packages: resolution: {integrity: sha512-NpaM49IGQQAUlBhHMF82QH80J08os4ZmyF9MkpCzWAGuOHqE4gTEbhzd7L3l5LmWuZ6E0OiC1FweQ4tsiW35+g==} dev: true + /@types/node/20.5.1: + resolution: {integrity: sha512-4tT2UrL5LBqDwoed9wZ6N3umC4Yhz3W3FloMmiiG4JwmUJWpie0c7lcnUNd4gtMKuDEO4wRVS8B6Xa0uMRsMKg==} + dev: true + /@types/normalize-package-data/2.4.1: resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} dev: true @@ -948,102 +1131,6 @@ packages: '@types/yargs-parser': 21.0.0 dev: true - /@typescript-eslint/eslint-plugin/3.10.1_a18e814019c959d52a44881c5533ce12: - resolution: {integrity: sha512-PQg0emRtzZFWq6PxBcdxRH3QIQiyFO3WCVpRL3fgj5oQS3CDs3AeAKfv4DxNhzn8ITdNJGJ4D3Qw8eAJf3lXeQ==} - engines: {node: ^10.12.0 || >=12.0.0} - peerDependencies: - '@typescript-eslint/parser': ^3.0.0 - eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/experimental-utils': 3.10.1_eslint@7.32.0+typescript@5.0.4 - '@typescript-eslint/parser': 3.10.1_eslint@7.32.0+typescript@5.0.4 - debug: 4.3.4 - eslint: 7.32.0 - functional-red-black-tree: 1.0.1 - regexpp: 3.2.0 - semver: 7.5.1 - tsutils: 3.21.0_typescript@5.0.4 - typescript: 5.0.4 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/experimental-utils/3.10.1_eslint@7.32.0+typescript@5.0.4: - resolution: {integrity: sha512-DewqIgscDzmAfd5nOGe4zm6Bl7PKtMG2Ad0KG8CUZAHlXfAKTF9Ol5PXhiMh39yRL2ChRH1cuuUGOcVyyrhQIw==} - engines: {node: ^10.12.0 || >=12.0.0} - peerDependencies: - eslint: '*' - dependencies: - '@types/json-schema': 7.0.12 - '@typescript-eslint/types': 3.10.1 - '@typescript-eslint/typescript-estree': 3.10.1_typescript@5.0.4 - eslint: 7.32.0 - eslint-scope: 5.1.1 - eslint-utils: 2.1.0 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - - /@typescript-eslint/parser/3.10.1_eslint@7.32.0+typescript@5.0.4: - resolution: {integrity: sha512-Ug1RcWcrJP02hmtaXVS3axPPTTPnZjupqhgj+NnZ6BCkwSImWk/283347+x9wN+lqOdK9Eo3vsyiyDHgsmiEJw==} - engines: {node: ^10.12.0 || >=12.0.0} - peerDependencies: - eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@types/eslint-visitor-keys': 1.0.0 - '@typescript-eslint/experimental-utils': 3.10.1_eslint@7.32.0+typescript@5.0.4 - '@typescript-eslint/types': 3.10.1 - '@typescript-eslint/typescript-estree': 3.10.1_typescript@5.0.4 - eslint: 7.32.0 - eslint-visitor-keys: 1.3.0 - typescript: 5.0.4 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/types/3.10.1: - resolution: {integrity: sha512-+3+FCUJIahE9q0lDi1WleYzjCwJs5hIsbugIgnbB+dSCYUxl8L6PwmsyOPFZde2hc1DlTo/xnkOgiTLSyAbHiQ==} - engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} - dev: true - - /@typescript-eslint/typescript-estree/3.10.1_typescript@5.0.4: - resolution: {integrity: sha512-QbcXOuq6WYvnB3XPsZpIwztBoquEYLXh2MtwVU+kO8jgYCiv4G5xrSP/1wg4tkvrEE+esZVquIPX/dxPlePk1w==} - engines: {node: ^10.12.0 || >=12.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/types': 3.10.1 - '@typescript-eslint/visitor-keys': 3.10.1 - debug: 4.3.4 - glob: 7.2.3 - is-glob: 4.0.3 - lodash: 4.17.21 - semver: 7.5.1 - tsutils: 3.21.0_typescript@5.0.4 - typescript: 5.0.4 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/visitor-keys/3.10.1: - resolution: {integrity: sha512-9JgC82AaQeglebjZMgYR5wgmfUdUc+EitGUUMW8u2nDckaeimzW+VsoLV6FoimPv2id3VQzfjwBxEMVz08ameQ==} - engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} - dependencies: - eslint-visitor-keys: 1.3.0 - dev: true - /JSONStream/1.3.5: resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} hasBin: true @@ -1052,16 +1139,13 @@ packages: through: 2.3.8 dev: true - /acorn-jsx/5.3.2_acorn@7.4.1: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - acorn: 7.4.1 + /acorn-walk/8.2.0: + resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} + engines: {node: '>=0.4.0'} dev: true - /acorn/7.4.1: - resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} + /acorn/8.10.0: + resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} engines: {node: '>=0.4.0'} hasBin: true dev: true @@ -1070,13 +1154,12 @@ packages: resolution: {integrity: sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==} dev: true - /ajv/6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + /aggregate-error/3.1.0: + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + engines: {node: '>=8'} dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 + clean-stack: 2.2.0 + indent-string: 4.0.0 dev: true /ajv/8.12.0: @@ -1088,11 +1171,6 @@ packages: uri-js: 4.4.1 dev: true - /ansi-colors/4.1.3: - resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} - engines: {node: '>=6'} - dev: true - /ansi-escapes/4.3.2: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} engines: {node: '>=8'} @@ -1105,6 +1183,11 @@ packages: engines: {node: '>=8'} dev: true + /ansi-regex/6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + dev: true + /ansi-styles/3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} engines: {node: '>=4'} @@ -1124,6 +1207,11 @@ packages: engines: {node: '>=10'} dev: true + /ansi-styles/6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + dev: true + /antlr4-c3/3.0.1: resolution: {integrity: sha512-Vbizas0WK4Id6l1f48ANYHFZgfzmj82LZx4OuB/a87vCpyoUwofrlJ+sCiL1qT/D2SWf8HEcBPCsgskdx8NnzQ==} dependencies: @@ -1147,12 +1235,20 @@ packages: picomatch: 2.3.1 dev: true + /arg/4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + dev: true + /argparse/1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} dependencies: sprintf-js: 1.0.3 dev: true + /argparse/2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + dev: true + /array-ify/1.0.0: resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} dev: true @@ -1167,6 +1263,11 @@ packages: engines: {node: '>=8'} dev: true + /at-least-node/1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} + dev: true + /babel-jest/29.5.0_@babel+core@7.22.1: resolution: {integrity: sha512-mA4eCDh5mSo2EcA9xQjVTpmbbNk32Zb3Q3QFQsNhaK56Q+yoXowzFodLux30HRgyOho5rsQ6B0P9QpMkvvnJ0Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -1297,6 +1398,11 @@ packages: ieee754: 1.2.1 dev: true + /cachedir/2.3.0: + resolution: {integrity: sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==} + engines: {node: '>=6'} + dev: true + /callsites/3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} @@ -1360,6 +1466,11 @@ packages: resolution: {integrity: sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==} dev: true + /clean-stack/2.2.0: + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} + dev: true + /cli-cursor/3.1.0: resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} engines: {node: '>=8'} @@ -1372,6 +1483,22 @@ packages: engines: {node: '>=6'} dev: true + /cli-truncate/2.1.0: + resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} + engines: {node: '>=8'} + dependencies: + slice-ansi: 3.0.0 + string-width: 4.2.3 + dev: true + + /cli-truncate/3.1.0: + resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + slice-ansi: 5.0.0 + string-width: 5.1.2 + dev: true + /cli-width/3.0.0: resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} engines: {node: '>= 10'} @@ -1429,6 +1556,39 @@ packages: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} dev: true + /colorette/2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + dev: true + + /commander/9.5.0: + resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} + engines: {node: ^12.20.0 || >=14} + dev: true + + /commitizen/4.3.0_@swc+core@1.3.60: + resolution: {integrity: sha512-H0iNtClNEhT0fotHvGV3E9tDejDeS04sN1veIebsKYGMuGscFaswRoYJKmT3eW85eIJAs0F28bG2+a/9wCOfPw==} + engines: {node: '>= 12'} + hasBin: true + dependencies: + cachedir: 2.3.0 + cz-conventional-changelog: 3.3.0_@swc+core@1.3.60 + dedent: 0.7.0 + detect-indent: 6.1.0 + find-node-modules: 2.1.3 + find-root: 1.1.0 + fs-extra: 9.1.0 + glob: 7.2.3 + inquirer: 8.2.5 + is-utf8: 0.2.1 + lodash: 4.17.21 + minimist: 1.2.7 + strip-bom: 4.0.0 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + dev: true + /compare-func/2.0.0: resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} dependencies: @@ -1458,6 +1618,13 @@ packages: q: 1.5.1 dev: true + /conventional-changelog-angular/6.0.0: + resolution: {integrity: sha512-6qLgrBF4gueoC7AFVHu51nHL9pF9FRjXrH+ceVf7WmAfH3gs+gEYOkvxhjMPjZu57I4AGUGoNTY8V7Hrgf1uqg==} + engines: {node: '>=14'} + dependencies: + compare-func: 2.0.0 + dev: true + /conventional-changelog-atom/2.0.8: resolution: {integrity: sha512-xo6v46icsFTK3bb7dY/8m2qvc8sZemRgdqLb/bjpBsH2UyOS8rKNTgcb5025Hri6IpANPApbXMg15QLb1LJpBw==} engines: {node: '>=10'} @@ -1485,6 +1652,13 @@ packages: q: 1.5.1 dev: true + /conventional-changelog-conventionalcommits/6.1.0: + resolution: {integrity: sha512-3cS3GEtR78zTfMzk0AizXKKIdN4OvSh7ibNz6/DPbhWWQu7LqE/8+/GqSodV+sywUR2gpJAdP/1JFf4XtN7Zpw==} + engines: {node: '>=14'} + dependencies: + compare-func: 2.0.0 + dev: true + /conventional-changelog-core/4.2.4: resolution: {integrity: sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg==} engines: {node: '>=10'} @@ -1579,6 +1753,10 @@ packages: conventional-changelog-preset-loader: 2.3.4 dev: true + /conventional-commit-types/3.0.0: + resolution: {integrity: sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg==} + dev: true + /conventional-commits-filter/2.0.7: resolution: {integrity: sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==} engines: {node: '>=10'} @@ -1600,6 +1778,17 @@ packages: through2: 4.0.2 dev: true + /conventional-commits-parser/4.0.0: + resolution: {integrity: sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg==} + engines: {node: '>=14'} + hasBin: true + dependencies: + is-text-path: 1.0.1 + JSONStream: 1.3.5 + meow: 8.1.2 + split2: 3.2.2 + dev: true + /conventional-recommended-bump/6.1.0: resolution: {integrity: sha512-uiApbSiNGM/kkdL9GTOLAqC4hbptObFo4wW2QRyHsKciGAfQuLU1ShZ1BIVI/+K2BE/W1AWYQMCXAsv4dyKPaw==} engines: {node: '>=10'} @@ -1627,6 +1816,41 @@ packages: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} dev: true + /cosmiconfig-typescript-loader/4.4.0_30178abb0e2027a20cdf504195288ad3: + resolution: {integrity: sha512-BabizFdC3wBHhbI4kJh0VkQP9GkBfoHPydD0COMce1nJ1kJAB3F2TmJ/I7diULBKtmEWSwEbuN/KDtgnmUUVmw==} + engines: {node: '>=v14.21.3'} + peerDependencies: + '@types/node': '*' + cosmiconfig: '>=7' + ts-node: '>=10' + typescript: '>=4' + dependencies: + '@types/node': 20.5.1 + cosmiconfig: 8.3.6_typescript@5.0.4 + ts-node: 10.9.1_0d2585e4297d96d8e906ef9bffd6d443 + typescript: 5.0.4 + dev: true + + /cosmiconfig/8.3.6_typescript@5.0.4: + resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + import-fresh: 3.3.0 + js-yaml: 4.1.0 + parse-json: 5.2.0 + path-type: 4.0.0 + typescript: 5.0.4 + dev: true + + /create-require/1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + dev: true + /cross-spawn/7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} @@ -1636,6 +1860,23 @@ packages: which: 2.0.2 dev: true + /cz-conventional-changelog/3.3.0_@swc+core@1.3.60: + resolution: {integrity: sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw==} + engines: {node: '>= 10'} + dependencies: + chalk: 2.4.2 + commitizen: 4.3.0_@swc+core@1.3.60 + conventional-commit-types: 3.0.0 + lodash.map: 4.6.0 + longest: 2.0.1 + word-wrap: 1.2.3 + optionalDependencies: + '@commitlint/load': 17.7.2_@swc+core@1.3.60 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + dev: true + /dargs/7.0.0: resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} engines: {node: '>=8'} @@ -1657,6 +1898,19 @@ packages: ms: 2.1.2 dev: true + /debug/4.3.4_supports-color@9.4.0: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + supports-color: 9.4.0 + dev: true + /decamelize-keys/1.1.1: resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} engines: {node: '>=0.10.0'} @@ -1674,10 +1928,6 @@ packages: resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} dev: true - /deep-is/0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - dev: true - /deepmerge/4.3.1: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} @@ -1689,6 +1939,11 @@ packages: clone: 1.0.4 dev: true + /detect-file/1.0.0: + resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==} + engines: {node: '>=0.10.0'} + dev: true + /detect-indent/6.1.0: resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} engines: {node: '>=8'} @@ -1704,11 +1959,9 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true - /doctrine/3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - dependencies: - esutils: 2.0.3 + /diff/4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} dev: true /dot-prop/5.3.0: @@ -1726,6 +1979,10 @@ packages: minimatch: 3.1.2 dev: true + /eastasianwidth/0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + dev: true + /electron-to-chromium/1.4.413: resolution: {integrity: sha512-Gd+/OAhRca06dkVxIQo/W7dr6Nmk9cx6lQdZ19GvFp51k5B/lUAokm6SJfNkdV8kFLsC3Z4sLTyEHWCnB1Efbw==} dev: true @@ -1739,11 +1996,8 @@ packages: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: true - /enquirer/2.3.6: - resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} - engines: {node: '>=8.6'} - dependencies: - ansi-colors: 4.1.3 + /emoji-regex/9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} dev: true /error-ex/1.3.2: @@ -1767,138 +2021,12 @@ packages: engines: {node: '>=8'} dev: true - /escape-string-regexp/4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - dev: true - - /eslint-config-google/0.14.0_eslint@7.32.0: - resolution: {integrity: sha512-WsbX4WbjuMvTdeVL6+J3rK1RGhCTqjsFjX7UMSMgZiyxxaNLkoJENbrGExzERFeoTpGw3F3FypTiWAP9ZXzkEw==} - engines: {node: '>=0.10.0'} - peerDependencies: - eslint: '>=5.16.0' - dependencies: - eslint: 7.32.0 - dev: true - - /eslint-scope/5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} - dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 - dev: true - - /eslint-utils/2.1.0: - resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} - engines: {node: '>=6'} - dependencies: - eslint-visitor-keys: 1.3.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.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} - hasBin: true - dependencies: - '@babel/code-frame': 7.12.11 - '@eslint/eslintrc': 0.4.3 - '@humanwhocodes/config-array': 0.5.0 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.3 - 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 - esquery: 1.5.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.20.0 - ignore: 4.0.6 - import-fresh: 3.3.0 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - js-yaml: 3.14.1 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.1 - progress: 2.0.3 - regexpp: 3.2.0 - semver: 7.5.1 - strip-ansi: 6.0.1 - strip-json-comments: 3.1.1 - table: 6.8.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} - dependencies: - acorn: 7.4.1 - acorn-jsx: 5.3.2_acorn@7.4.1 - eslint-visitor-keys: 1.3.0 - dev: true - /esprima/4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} hasBin: true dev: true - /esquery/1.5.0: - resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} - engines: {node: '>=0.10'} - dependencies: - 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.3.0 - dev: true - - /estraverse/4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} - dev: true - - /estraverse/5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - dev: true - - /esutils/2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - dev: true - /execa/5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} @@ -1919,6 +2047,13 @@ packages: engines: {node: '>= 0.8.0'} dev: true + /expand-tilde/2.0.2: + resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} + engines: {node: '>=0.10.0'} + dependencies: + homedir-polyfill: 1.0.3 + dev: true + /expect/29.5.0: resolution: {integrity: sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -1947,10 +2082,6 @@ packages: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} dev: true - /fast-levenshtein/2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - dev: true - /fb-watchman/2.0.2: resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} dependencies: @@ -1964,13 +2095,6 @@ packages: escape-string-regexp: 1.0.5 dev: true - /file-entry-cache/6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} - dependencies: - flat-cache: 3.0.4 - dev: true - /fill-range/7.0.1: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} engines: {node: '>=8'} @@ -1978,6 +2102,17 @@ packages: to-regex-range: 5.0.1 dev: true + /find-node-modules/2.1.3: + resolution: {integrity: sha512-UC2I2+nx1ZuOBclWVNdcnbDR5dlrOdVb7xNjmT/lHE+LsgztWks3dG7boJ37yTS/venXw84B/mAW9uHVoC5QRg==} + dependencies: + findup-sync: 4.0.0 + merge: 2.1.1 + dev: true + + /find-root/1.1.0: + resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} + dev: true + /find-up/2.1.0: resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} engines: {node: '>=4'} @@ -2008,16 +2143,33 @@ packages: path-exists: 4.0.0 dev: true - /flat-cache/3.0.4: - resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} - engines: {node: ^10.12.0 || >=12.0.0} + /findup-sync/4.0.0: + resolution: {integrity: sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==} + engines: {node: '>= 8'} dependencies: - flatted: 3.2.7 - rimraf: 3.0.2 + detect-file: 1.0.0 + is-glob: 4.0.3 + micromatch: 4.0.5 + resolve-dir: 1.0.1 dev: true - /flatted/3.2.7: - resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} + /fs-extra/11.1.1: + resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} + engines: {node: '>=14.14'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: true + + /fs-extra/9.1.0: + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} + dependencies: + at-least-node: 1.0.0 + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.0 dev: true /fs.realpath/1.0.0: @@ -2036,10 +2188,6 @@ packages: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} dev: true - /functional-red-black-tree/1.0.1: - resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} - dev: true - /gensync/1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} @@ -2106,13 +2254,6 @@ packages: ini: 1.3.8 dev: true - /glob-parent/5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - dependencies: - is-glob: 4.0.3 - dev: true - /glob/7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} dependencies: @@ -2124,18 +2265,38 @@ packages: path-is-absolute: 1.0.1 dev: true + /global-dirs/0.1.1: + resolution: {integrity: sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==} + engines: {node: '>=4'} + dependencies: + ini: 1.3.8 + dev: true + + /global-modules/1.0.0: + resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==} + engines: {node: '>=0.10.0'} + dependencies: + global-prefix: 1.0.2 + is-windows: 1.0.2 + resolve-dir: 1.0.1 + dev: true + + /global-prefix/1.0.2: + resolution: {integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==} + engines: {node: '>=0.10.0'} + dependencies: + expand-tilde: 2.0.2 + homedir-polyfill: 1.0.3 + ini: 1.3.8 + is-windows: 1.0.2 + which: 1.3.1 + dev: true + /globals/11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} dev: true - /globals/13.20.0: - resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} - engines: {node: '>=8'} - dependencies: - type-fest: 0.20.2 - dev: true - /graceful-fs/4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} dev: true @@ -2175,6 +2336,13 @@ packages: function-bind: 1.1.1 dev: true + /homedir-polyfill/1.0.3: + resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} + engines: {node: '>=0.10.0'} + dependencies: + parse-passwd: 1.0.0 + dev: true + /hosted-git-info/2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} dev: true @@ -2195,6 +2363,12 @@ packages: engines: {node: '>=10.17.0'} dev: true + /husky/8.0.3: + resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==} + engines: {node: '>=14'} + hasBin: true + dev: true + /iconv-lite/0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} @@ -2206,11 +2380,6 @@ packages: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} dev: true - /ignore/4.0.6: - resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==} - engines: {node: '>= 4'} - dev: true - /import-fresh/3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} @@ -2253,6 +2422,27 @@ packages: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} dev: true + /inquirer/8.2.5: + resolution: {integrity: sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==} + engines: {node: '>=12.0.0'} + dependencies: + ansi-escapes: 4.3.2 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-width: 3.0.0 + external-editor: 3.1.0 + figures: 3.2.0 + lodash: 4.17.21 + mute-stream: 0.0.8 + ora: 5.4.1 + run-async: 2.4.1 + rxjs: 7.8.1 + string-width: 4.2.3 + strip-ansi: 6.0.1 + through: 2.3.8 + wrap-ansi: 7.0.0 + dev: true + /inquirer/8.2.6: resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==} engines: {node: '>=12.0.0'} @@ -2294,6 +2484,11 @@ packages: engines: {node: '>=8'} dev: true + /is-fullwidth-code-point/4.0.0: + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} + engines: {node: '>=12'} + dev: true + /is-generator-fn/2.1.0: resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} engines: {node: '>=6'} @@ -2343,6 +2538,15 @@ packages: engines: {node: '>=10'} dev: true + /is-utf8/0.2.1: + resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==} + dev: true + + /is-windows/1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + dev: true + /isarray/1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} dev: true @@ -2818,6 +3022,13 @@ packages: esprima: 4.0.1 dev: true + /js-yaml/4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + dev: true + /jsesc/2.5.2: resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} engines: {node: '>=4'} @@ -2832,18 +3043,10 @@ packages: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} dev: true - /json-schema-traverse/0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - dev: true - /json-schema-traverse/1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} dev: true - /json-stable-stringify-without-jsonify/1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - dev: true - /json-stringify-safe/5.0.1: resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} dev: true @@ -2858,6 +3061,14 @@ packages: resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} dev: true + /jsonfile/6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + dependencies: + universalify: 2.0.0 + optionalDependencies: + graceful-fs: 4.2.11 + dev: true + /jsonparse/1.3.1: resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} engines: {'0': node >= 0.2.0} @@ -2878,18 +3089,57 @@ packages: engines: {node: '>=6'} dev: true - /levn/0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 + /lilconfig/2.0.5: + resolution: {integrity: sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==} + engines: {node: '>=10'} dev: true /lines-and-columns/1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} dev: true + /lint-staged/12.5.0: + resolution: {integrity: sha512-BKLUjWDsKquV/JuIcoQW4MSAI3ggwEImF1+sB4zaKvyVx1wBk3FsG7UK9bpnmBTN1pm7EH2BBcMwINJzCRv12g==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + dependencies: + cli-truncate: 3.1.0 + colorette: 2.0.20 + commander: 9.5.0 + debug: 4.3.4_supports-color@9.4.0 + execa: 5.1.1 + lilconfig: 2.0.5 + listr2: 4.0.5 + micromatch: 4.0.5 + normalize-path: 3.0.0 + object-inspect: 1.12.3 + pidtree: 0.5.0 + string-argv: 0.3.1 + supports-color: 9.4.0 + yaml: 1.10.2 + transitivePeerDependencies: + - enquirer + dev: true + + /listr2/4.0.5: + resolution: {integrity: sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA==} + engines: {node: '>=12'} + peerDependencies: + enquirer: '>= 2.3.0 < 3' + peerDependenciesMeta: + enquirer: + optional: true + dependencies: + cli-truncate: 2.1.0 + colorette: 2.0.20 + log-update: 4.0.0 + p-map: 4.0.0 + rfdc: 1.3.0 + rxjs: 7.8.1 + through: 2.3.8 + wrap-ansi: 7.0.0 + dev: true + /load-json-file/4.0.0: resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} engines: {node: '>=4'} @@ -2930,16 +3180,52 @@ packages: p-locate: 5.0.0 dev: true + /lodash.camelcase/4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + dev: true + + /lodash.isfunction/3.0.9: + resolution: {integrity: sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==} + dev: true + /lodash.ismatch/4.4.0: resolution: {integrity: sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==} dev: true + /lodash.isplainobject/4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + dev: true + + /lodash.kebabcase/4.1.1: + resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==} + dev: true + + /lodash.map/4.6.0: + resolution: {integrity: sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q==} + dev: true + /lodash.merge/4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} dev: true - /lodash.truncate/4.4.2: - resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} + /lodash.mergewith/4.6.2: + resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} + dev: true + + /lodash.snakecase/4.1.1: + resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==} + dev: true + + /lodash.startcase/4.4.0: + resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} + dev: true + + /lodash.uniq/4.5.0: + resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} + dev: true + + /lodash.upperfirst/4.3.1: + resolution: {integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==} dev: true /lodash/4.17.21: @@ -2954,6 +3240,21 @@ packages: is-unicode-supported: 0.1.0 dev: true + /log-update/4.0.0: + resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} + engines: {node: '>=10'} + dependencies: + ansi-escapes: 4.3.2 + cli-cursor: 3.1.0 + slice-ansi: 4.0.0 + wrap-ansi: 6.2.0 + dev: true + + /longest/2.0.1: + resolution: {integrity: sha512-Ajzxb8CM6WAnFjgiloPsI3bF+WCxcvhdIG3KNA2KN962+tdBsHcuQ4k4qX/EcS/2CRkcc0iAkR956Nib6aXU/Q==} + engines: {node: '>=0.10.0'} + dev: true + /lru-cache/5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} dependencies: @@ -2974,6 +3275,10 @@ packages: semver: 6.3.0 dev: true + /make-error/1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + dev: true + /makeerror/1.0.12: resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} dependencies: @@ -3011,6 +3316,10 @@ packages: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} dev: true + /merge/2.1.1: + resolution: {integrity: sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==} + dev: true + /micromatch/4.0.5: resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} engines: {node: '>=8.6'} @@ -3044,6 +3353,10 @@ packages: kind-of: 6.0.3 dev: true + /minimist/1.2.7: + resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==} + dev: true + /minimist/1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} dev: true @@ -3108,6 +3421,10 @@ packages: path-key: 3.1.1 dev: true + /object-inspect/1.12.3: + resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} + dev: true + /once/1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: @@ -3121,18 +3438,6 @@ packages: mimic-fn: 2.1.0 dev: true - /optionator/0.9.1: - resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} - engines: {node: '>= 0.8.0'} - dependencies: - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.4.1 - prelude-ls: 1.2.1 - type-check: 0.4.0 - word-wrap: 1.2.3 - dev: true - /ora/5.4.1: resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} engines: {node: '>=10'} @@ -3202,6 +3507,13 @@ packages: p-limit: 3.1.0 dev: true + /p-map/4.0.0: + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + engines: {node: '>=10'} + dependencies: + aggregate-error: 3.1.0 + dev: true + /p-try/1.0.0: resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} engines: {node: '>=4'} @@ -3237,6 +3549,11 @@ packages: lines-and-columns: 1.2.4 dev: true + /parse-passwd/1.0.0: + resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} + engines: {node: '>=0.10.0'} + dev: true + /path-exists/3.0.0: resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} engines: {node: '>=4'} @@ -3268,6 +3585,11 @@ packages: pify: 3.0.0 dev: true + /path-type/4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: true + /picocolors/1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} dev: true @@ -3277,6 +3599,12 @@ packages: engines: {node: '>=8.6'} dev: true + /pidtree/0.5.0: + resolution: {integrity: sha512-9nxspIM7OpZuhBxPg73Zvyq7j1QMPMPsGKTqRc2XOaFQauDvoNz9fM1Wdkjmeo7l9GXOZiRs97sPkuayl39wjA==} + engines: {node: '>=0.10'} + hasBin: true + dev: true + /pify/2.3.0: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} engines: {node: '>=0.10.0'} @@ -3299,9 +3627,10 @@ packages: find-up: 4.1.0 dev: true - /prelude-ls/1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} + /prettier/3.0.3: + resolution: {integrity: sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==} + engines: {node: '>=14'} + hasBin: true dev: true /pretty-format/29.5.0: @@ -3317,11 +3646,6 @@ packages: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} dev: true - /progress/2.0.3: - resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} - engines: {node: '>=0.4.0'} - dev: true - /prompts/2.4.2: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} @@ -3418,11 +3742,6 @@ packages: strip-indent: 3.0.0 dev: true - /regexpp/3.2.0: - resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} - engines: {node: '>=8'} - dev: true - /require-directory/2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -3440,6 +3759,14 @@ packages: resolve-from: 5.0.0 dev: true + /resolve-dir/1.0.1: + resolution: {integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==} + engines: {node: '>=0.10.0'} + dependencies: + expand-tilde: 2.0.2 + global-modules: 1.0.0 + dev: true + /resolve-from/4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -3450,6 +3777,13 @@ packages: engines: {node: '>=8'} dev: true + /resolve-global/1.0.0: + resolution: {integrity: sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==} + engines: {node: '>=8'} + dependencies: + global-dirs: 0.1.1 + dev: true + /resolve.exports/2.0.2: resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} engines: {node: '>=10'} @@ -3472,11 +3806,8 @@ packages: signal-exit: 3.0.7 dev: true - /rimraf/3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - hasBin: true - dependencies: - glob: 7.2.3 + /rfdc/1.3.0: + resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} dev: true /run-async/2.4.1: @@ -3520,6 +3851,14 @@ packages: lru-cache: 6.0.0 dev: true + /semver/7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + /shebang-command/2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -3545,6 +3884,15 @@ packages: engines: {node: '>=8'} dev: true + /slice-ansi/3.0.0: + resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} + engines: {node: '>=8'} + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + dev: true + /slice-ansi/4.0.0: resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} engines: {node: '>=10'} @@ -3554,6 +3902,14 @@ packages: is-fullwidth-code-point: 3.0.0 dev: true + /slice-ansi/5.0.0: + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + engines: {node: '>=12'} + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 4.0.0 + dev: true + /source-map-support/0.5.13: resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} dependencies: @@ -3632,6 +3988,11 @@ packages: yargs: 16.2.0 dev: true + /string-argv/0.3.1: + resolution: {integrity: sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==} + engines: {node: '>=0.6.19'} + dev: true + /string-length/4.0.2: resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} engines: {node: '>=10'} @@ -3649,6 +4010,15 @@ packages: strip-ansi: 6.0.1 dev: true + /string-width/5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + dev: true + /string_decoder/1.1.1: resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} dependencies: @@ -3673,6 +4043,13 @@ packages: ansi-regex: 5.0.1 dev: true + /strip-ansi/7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + dependencies: + ansi-regex: 6.0.1 + dev: true + /strip-bom/3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} @@ -3721,22 +4098,16 @@ packages: has-flag: 4.0.0 dev: true + /supports-color/9.4.0: + resolution: {integrity: sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==} + engines: {node: '>=12'} + dev: true + /supports-preserve-symlinks-flag/1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} dev: true - /table/6.8.1: - resolution: {integrity: sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==} - engines: {node: '>=10.0.0'} - dependencies: - ajv: 8.12.0 - lodash.truncate: 4.4.2 - slice-ansi: 4.0.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - dev: true - /test-exclude/6.0.0: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} @@ -3751,10 +4122,6 @@ packages: engines: {node: '>=0.10'} dev: true - /text-table/0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - dev: true - /through/2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true @@ -3800,31 +4167,42 @@ packages: engines: {node: '>=8'} dev: true - /tslib/1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + /ts-node/10.9.1_0d2585e4297d96d8e906ef9bffd6d443: + resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@swc/core': 1.3.60 + '@tsconfig/node10': 1.0.9 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 20.5.1 + acorn: 8.10.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: 5.0.4 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 dev: true /tslib/2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} dev: true - /tsutils/3.21.0_typescript@5.0.4: - 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: 5.0.4 - dev: true - - /type-check/0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.2.1 - dev: true - /type-detect/4.0.8: resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} engines: {node: '>=4'} @@ -3835,11 +4213,6 @@ packages: engines: {node: '>=10'} dev: true - /type-fest/0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - dev: true - /type-fest/0.21.3: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} @@ -3873,6 +4246,11 @@ packages: dev: true optional: true + /universalify/2.0.0: + resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} + engines: {node: '>= 10.0.0'} + dev: true + /update-browserslist-db/1.0.11_browserslist@4.21.7: resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} hasBin: true @@ -3894,8 +4272,8 @@ packages: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} dev: true - /v8-compile-cache/2.3.0: - resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} + /v8-compile-cache-lib/3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} dev: true /v8-to-istanbul/9.1.0: @@ -3926,6 +4304,13 @@ packages: defaults: 1.0.4 dev: true + /which/1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + /which/2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} @@ -3939,6 +4324,11 @@ packages: engines: {node: '>=0.10.0'} dev: true + /word-wrap/1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + dev: true + /wordwrap/1.0.0: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} dev: true @@ -3991,6 +4381,11 @@ 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.9: resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} engines: {node: '>=10'} @@ -4027,6 +4422,11 @@ packages: yargs-parser: 21.1.1 dev: true + /yn/3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + dev: true + /yocto-queue/0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} diff --git a/src/index.ts b/src/index.ts index fc22f46..f23f2e9 100644 --- a/src/index.ts +++ b/src/index.ts @@ -16,6 +16,5 @@ export * from './lib/trinosql/TrinoSqlListener'; export * from './lib/trinosql/TrinoSqlVisitor'; export { SyntaxContextType } from './parser/common/basic-parser-types'; - export type * from './parser/common/basic-parser-types'; export type { SyntaxError, ParserError } from './parser/common/parserErrorListener'; diff --git a/src/lib/pgsql/PostgreSQLLexerBase.ts b/src/lib/pgsql/PostgreSQLLexerBase.ts index d9b56a1..702d399 100644 --- a/src/lib/pgsql/PostgreSQLLexerBase.ts +++ b/src/lib/pgsql/PostgreSQLLexerBase.ts @@ -30,12 +30,10 @@ export default abstract class PostgreSQLLexerBase extends Lexer { return this._input; } checkLA( c) { - // eslint-disable-next-line new-cap return this.getInputStream().LA(1) !== c; } charIsLetter() { - // eslint-disable-next-line new-cap return isLetter(this.getInputStream().LA(-1)); } @@ -53,11 +51,9 @@ export default abstract class PostgreSQLLexerBase extends Lexer { } UnterminatedBlockCommentDebugAssert() { - // Debug.Assert(InputStream.LA(1) == -1 /*EOF*/); } CheckIfUtf32Letter() { - // eslint-disable-next-line new-cap let codePoint = this.getInputStream().LA(-2) << 8 + this.getInputStream().LA(-1); let c; if (codePoint < 0x10000) { diff --git a/src/lib/pgsql/PostgreSQLParserBase.ts b/src/lib/pgsql/PostgreSQLParserBase.ts index 1eae2a8..a89441d 100644 --- a/src/lib/pgsql/PostgreSQLParserBase.ts +++ b/src/lib/pgsql/PostgreSQLParserBase.ts @@ -1,9 +1,7 @@ -/* eslint-disable new-cap,camelcase */ import { CharStreams, CommonTokenStream, Parser } from 'antlr4ts'; import { PostgreSQLLexer } from './PostgreSQLLexer'; import { PostgreSQLParser } from './PostgreSQLParser'; -// @ts-ignore export default abstract class PostgreSQLParserBase extends Parser { constructor( input) { super(input); @@ -32,16 +30,13 @@ export default abstract class PostgreSQLParserBase extends Parser { } } if (!lang) return; - // eslint-disable-next-line camelcase let func_as = null; for (const a of _localctx.createfunc_opt_item()) { if (!a.func_as()) { - // eslint-disable-next-line camelcase func_as = a; break; } } - // eslint-disable-next-line camelcase if (!func_as) { const txt = this.GetRoutineBodyString(func_as.func_as().sconst(0)); const line = func_as.func_as().sconst(0).start.getLine(); @@ -76,7 +71,6 @@ export default abstract class PostgreSQLParserBase extends Parser { GetRoutineBodyString( rule) { const anysconst = rule.anysconst(); - // eslint-disable-next-line new-cap const StringConstant = anysconst.StringConstant(); if (null !== StringConstant) return this.unquote(this.TrimQuotes(StringConstant.getText())); const UnicodeEscapeStringConstant = anysconst.UnicodeEscapeStringConstant(); diff --git a/src/parser/common/basic-parser-types.ts b/src/parser/common/basic-parser-types.ts index c6d1ea3..9c7542f 100644 --- a/src/parser/common/basic-parser-types.ts +++ b/src/parser/common/basic-parser-types.ts @@ -78,4 +78,4 @@ export interface TextSlice { startColumn: number; endColumn: number; text: string; -} \ No newline at end of file +} diff --git a/src/parser/common/basicParser.ts b/src/parser/common/basicParser.ts index 78258e5..ed423da 100644 --- a/src/parser/common/basicParser.ts +++ b/src/parser/common/basicParser.ts @@ -1,21 +1,21 @@ -import { - Parser, - Lexer, +import { + Parser, + Lexer, Token, - CharStreams, - CommonTokenStream, + CharStreams, + CommonTokenStream, CodePointCharStream, - ParserRuleContext + ParserRuleContext, } from 'antlr4ts'; import { ParseTreeWalker, ParseTreeListener } from 'antlr4ts/tree'; import { CandidatesCollection, CodeCompletionCore } from 'antlr4-c3'; import { findCaretTokenIndex } from '../../utils/findCaretTokenIndex'; -import { +import { CaretPosition, Suggestions, SyntaxSuggestion, WordRange, - TextSlice + TextSlice, } from './basic-parser-types'; import ParserErrorListener, { ParserError, @@ -36,10 +36,10 @@ interface SplitListener extends ParseTreeListener { * Custom Parser class, subclass needs extends it. */ export default abstract class BasicParser< - L extends Lexer = Lexer, + L extends Lexer = Lexer, PRC extends ParserRuleContext = ParserRuleContext, - P extends IParser = IParser -> { + P extends IParser = IParser, +> { protected _charStreams: CodePointCharStream; protected _lexer: L; protected _tokenStream: CommonTokenStream; @@ -52,7 +52,7 @@ export default abstract class BasicParser< * PreferredRules for antlr4-c3 */ protected abstract preferredRules: Set; - + /** * Create a antrl4 Lexer instance * @param input source string @@ -64,26 +64,26 @@ export default abstract class BasicParser< * @param tokenStream CommonTokenStream */ protected abstract createParserFromTokenStream(tokenStream: CommonTokenStream): P; - + /** * Convert candidates to suggestions * @param candidates candidate list * @param allTokens all tokens from input * @param caretTokenIndex tokenIndex of caretPosition - * @param tokenIndexOffset offset of the tokenIndex in the candidates + * @param tokenIndexOffset offset of the tokenIndex in the candidates * compared to the tokenIndex in allTokens */ protected abstract processCandidates( - candidates: CandidatesCollection, - allTokens: Token[], + candidates: CandidatesCollection, + allTokens: Token[], caretTokenIndex: number, - tokenIndexOffset: number, + tokenIndexOffset: number ): Suggestions; /** * Get splitListener instance. */ - protected abstract get splitListener (): SplitListener; + protected abstract get splitListener(): SplitListener; /** * Create an anltr4 lexer from input. @@ -92,8 +92,8 @@ export default abstract class BasicParser< public createLexer(input: string) { const charStreams = CharStreams.fromString(input.toUpperCase()); const lexer = this.createLexerFormCharStream(charStreams); + return lexer; - } /** @@ -104,7 +104,7 @@ export default abstract class BasicParser< const lexer = this.createLexer(input); const tokenStream = new CommonTokenStream(lexer); const parser = this.createParserFromTokenStream(tokenStream); - return parser; + return parser; } /** @@ -119,11 +119,11 @@ export default abstract class BasicParser< this._tokenStream = new CommonTokenStream(this._lexer); this._tokenStream.fill(); - + this._parser = this.createParserFromTokenStream(this._tokenStream); this._parser.buildParseTree = true; - return this._parser + return this._parser; } /** @@ -134,13 +134,10 @@ export default abstract class BasicParser< * @param errorListener listen errors * @returns parserTree */ - public parse( - input: string, - errorListener?: ErrorHandler - ) { + public parse(input: string, errorListener?: ErrorHandler) { // Avoid parsing the same input repeatedly. - if(this._parsedInput === input && !errorListener) { - return; + if (this._parsedInput === input && !errorListener) { + return this._parserTree; } const parser = this.createParserWithCache(input); @@ -150,12 +147,12 @@ export default abstract class BasicParser< this._errorCollector.clear(); parser.addErrorListener(this._errorCollector); - if(errorListener) { + if (errorListener) { parser.addErrorListener(new ParserErrorListener(errorListener)); } this._parserTree = parser.program(); - + return this._parserTree; } @@ -178,11 +175,11 @@ export default abstract class BasicParser< public getAllTokens(input: string): Token[] { this.parse(input); let allTokens = this._tokenStream.getTokens(); - if(allTokens[allTokens.length - 1].text === '') { - allTokens = allTokens.slice(0, -1) + if (allTokens[allTokens.length - 1].text === '') { + allTokens = allTokens.slice(0, -1); } - return allTokens - }; + return allTokens; + } /** * It convert tree to string, it's convenient to use in unit test. * @param string input @@ -204,7 +201,10 @@ export default abstract class BasicParser< * @param listener Listener instance extends ParserListener * @param parserTree parser Tree */ - public listen(listener: PTL, parserTree: PRC) { + public listen( + listener: PTL, + parserTree: PRC + ) { ParseTreeWalker.DEFAULT.walk(listener, parserTree); } @@ -217,8 +217,8 @@ export default abstract class BasicParser< this.parse(input); const splitListener = this.splitListener; this.listen(splitListener, this._parserTree); - - const res = splitListener.statementsContext.map(context => { + + const res = splitListener.statementsContext.map((context) => { const { start, stop } = context; return { startIndex: start.startIndex, @@ -228,8 +228,8 @@ export default abstract class BasicParser< startColumn: start.charPositionInLine + 1, endColumn: stop.charPositionInLine + stop.text.length, text: this._parsedInput.slice(start.startIndex, stop.stopIndex + 1), - } - }) + }; + }); return res; } @@ -240,10 +240,13 @@ export default abstract class BasicParser< * @param caretPosition caret position, such as cursor position * @returns suggestion */ - public getSuggestionAtCaretPosition(input: string, caretPosition: CaretPosition): Suggestions | null { + public getSuggestionAtCaretPosition( + input: string, + caretPosition: CaretPosition + ): Suggestions | null { const splitListener = this.splitListener; // TODO: add splitListener to all sqlParser implements add remove following if - if(!splitListener) return null; + if (!splitListener) return null; this.parse(input); let sqlParserIns = this._parser; @@ -252,8 +255,8 @@ export default abstract class BasicParser< let c3Context: ParserRuleContext = this._parserTree; let tokenIndexOffset: number = 0; - if(!caretTokenIndex && caretTokenIndex !== 0) return null; - + if (!caretTokenIndex && caretTokenIndex !== 0) return null; + /** * Split sql by statement. * Try to collect candidates from the caret statement only. @@ -263,16 +266,19 @@ export default abstract class BasicParser< // If there are multiple statements. if (splitListener.statementsContext.length > 1) { // find statement rule context where caretPosition is located. - const caretStatementContext = splitListener?.statementsContext.find(ctx => { - return caretTokenIndex <= ctx.stop?.tokenIndex && caretTokenIndex >= ctx.start.tokenIndex; + const caretStatementContext = splitListener?.statementsContext.find((ctx) => { + return ( + caretTokenIndex <= ctx.stop?.tokenIndex && + caretTokenIndex >= ctx.start.tokenIndex + ); }); - if(caretStatementContext) { - c3Context = caretStatementContext + if (caretStatementContext) { + c3Context = caretStatementContext; } else { - const lastStatementToken= splitListener - .statementsContext[splitListener?.statementsContext.length - 1] - .start; + const lastStatementToken = + splitListener.statementsContext[splitListener?.statementsContext.length - 1] + .start; /** * If caretStatementContext is not found and it follows all statements. * Reparses part of the input following the penultimate statement. @@ -281,8 +287,8 @@ export default abstract class BasicParser< if (caretTokenIndex > lastStatementToken?.tokenIndex) { /** * Save offset of the tokenIndex in the partInput - * compared to the tokenIndex in the whole input - */ + * compared to the tokenIndex in the whole input + */ tokenIndexOffset = lastStatementToken?.tokenIndex; // Correct caretTokenIndex caretTokenIndex = caretTokenIndex - tokenIndexOffset; @@ -304,28 +310,34 @@ export default abstract class BasicParser< core.preferredRules = this.preferredRules; const candidates = core.collectCandidates(caretTokenIndex, c3Context); - const originalSuggestions = this.processCandidates(candidates, allTokens, caretTokenIndex, tokenIndexOffset); + const originalSuggestions = this.processCandidates( + candidates, + allTokens, + caretTokenIndex, + tokenIndexOffset + ); - const syntaxSuggestions: SyntaxSuggestion[] = originalSuggestions.syntax - .map(syntaxCtx => { - const wordRanges: WordRange[] = syntaxCtx.wordRanges.map(token => { + const syntaxSuggestions: SyntaxSuggestion[] = originalSuggestions.syntax.map( + (syntaxCtx) => { + const wordRanges: WordRange[] = syntaxCtx.wordRanges.map((token) => { return { text: this._parsedInput.slice(token.startIndex, token.stopIndex + 1), startIndex: token.startIndex, stopIndex: token.stopIndex, line: token.line, startColumn: token.charPositionInLine + 1, - stopColumn: token.charPositionInLine + token.text.length - } - }) + stopColumn: token.charPositionInLine + token.text.length, + }; + }); return { syntaxContextType: syntaxCtx.syntaxContextType, wordRanges, - } - }) + }; + } + ); return { syntax: syntaxSuggestions, - keywords: originalSuggestions.keywords - } + keywords: originalSuggestions.keywords, + }; } } diff --git a/src/parser/common/parserErrorListener.ts b/src/parser/common/parserErrorListener.ts index 2ed1e08..ccd9bf3 100644 --- a/src/parser/common/parserErrorListener.ts +++ b/src/parser/common/parserErrorListener.ts @@ -1,5 +1,5 @@ import { Token, Recognizer, ParserErrorListener, RecognitionException } from 'antlr4ts'; -import { ATNSimulator } from 'antlr4ts/atn/ATNSimulator' +import { ATNSimulator } from 'antlr4ts/atn/ATNSimulator'; export interface ParserError { startLine: number; @@ -26,15 +26,15 @@ export class ParserErrorCollector implements ParserErrorListener { syntaxError( recognizer: Recognizer, - offendingSymbol: Token, + offendingSymbol: Token, line: number, - charPositionInLine: number, - msg: string, - e: RecognitionException, + charPositionInLine: number, + msg: string, + e: RecognitionException ) { let endCol = charPositionInLine + 1; if (offendingSymbol && offendingSymbol.text !== null) { - endCol = charPositionInLine + offendingSymbol.text.length; + endCol = charPositionInLine + (offendingSymbol.text?.length ?? 0); } this._parseErrors.push({ startLine: line, @@ -51,7 +51,7 @@ export class ParserErrorCollector implements ParserErrorListener { recognizer, offendingSymbol, charPositionInLine, - }) + }); } clear() { @@ -59,12 +59,12 @@ export class ParserErrorCollector implements ParserErrorListener { this._syntaxErrors = []; } - get parserErrors () { - return this._parseErrors + get parserErrors() { + return this._parseErrors; } } -export default class CustomParserErrorListener implements ParserErrorListener { +export default class CustomParserErrorListener implements ParserErrorListener { private _errorHandler; constructor(errorListener: ErrorHandler) { @@ -72,28 +72,35 @@ export default class CustomParserErrorListener implements ParserErrorListener { } syntaxError( - recognizer: Recognizer, offendingSymbol: Token, line: number, - charPositionInLine: number, msg: string, e: RecognitionException, + recognizer: Recognizer, + offendingSymbol: Token, + line: number, + charPositionInLine: number, + msg: string, + e: RecognitionException ) { let endCol = charPositionInLine + 1; if (offendingSymbol && offendingSymbol.text !== null) { endCol = charPositionInLine + offendingSymbol.text.length; } if (this._errorHandler) { - this._errorHandler({ - startLine: line, - endLine: line, - startCol: charPositionInLine, - endCol: endCol, - message: msg, - }, { - e, - line, - msg, - recognizer, - offendingSymbol, - charPositionInLine, - }); + this._errorHandler( + { + startLine: line, + endLine: line, + startCol: charPositionInLine, + endCol: endCol, + message: msg, + }, + { + e, + line, + msg, + recognizer, + offendingSymbol, + charPositionInLine, + } + ); } } } diff --git a/src/parser/flinksql.ts b/src/parser/flinksql.ts index b2a5236..05990db 100644 --- a/src/parser/flinksql.ts +++ b/src/parser/flinksql.ts @@ -5,7 +5,7 @@ import { FlinkSqlParser, ProgramContext, SqlStatementContext, - SqlStatementsContext + SqlStatementsContext, } from '../lib/flinksql/FlinkSqlParser'; import { FlinkSqlParserListener } from '../lib/flinksql/FlinkSqlParserListener'; import { SyntaxContextType, Suggestions, SyntaxSuggestion } from './common/basic-parser-types'; @@ -34,7 +34,7 @@ export default class FlinkSQL extends BasicParser { this._statementsContext.push(ctx); - } - - enterSqlStatements = (ctx: SqlStatementsContext) => { }; - - get statementsContext () { + + enterSqlStatements = (ctx: SqlStatementsContext) => {}; + + get statementsContext() { return this._statementsContext; } } diff --git a/src/parser/generic.ts b/src/parser/generic.ts index 9097a4a..a50bb2f 100644 --- a/src/parser/generic.ts +++ b/src/parser/generic.ts @@ -17,19 +17,18 @@ export default class GenericSQL extends BasicParser = new Set(); - protected get splitListener () { + protected get splitListener() { return null as any; } protected processCandidates( - candidates: CandidatesCollection, - allTokens: Token[], + candidates: CandidatesCollection, + allTokens: Token[], caretTokenIndex: number ): Suggestions { return { syntax: [], - keywords: [] - } + keywords: [], + }; } } - diff --git a/src/parser/hive.ts b/src/parser/hive.ts index 5fd5959..7405af0 100644 --- a/src/parser/hive.ts +++ b/src/parser/hive.ts @@ -1,12 +1,17 @@ import { Token } from 'antlr4ts'; import { CandidatesCollection } from 'antlr4-c3'; import { HiveSqlLexer } from '../lib/hive/HiveSqlLexer'; -import { HiveSqlParser, ProgramContext, StatementContext, ExplainStatementContext, ExecStatementContext } from '../lib/hive/HiveSqlParser'; +import { + HiveSqlParser, + ProgramContext, + StatementContext, + ExplainStatementContext, + ExecStatementContext, +} from '../lib/hive/HiveSqlParser'; import BasicParser from './common/basicParser'; import { HiveSqlParserListener } from '../lib/hive/HiveSqlParserListener'; import { SyntaxContextType, Suggestions, SyntaxSuggestion } from './common/basic-parser-types'; - export default class HiveSQL extends BasicParser { protected createLexerFormCharStream(charStreams) { const lexer = new HiveSqlLexer(charStreams); @@ -27,10 +32,9 @@ export default class HiveSQL extends BasicParser { const originalSyntaxSuggestions: SyntaxSuggestion[] = []; const keywords: string[] = []; for (let candidate of candidates.rules) { const [ruleType, candidateRule] = candidate; const startTokenIndex = candidateRule.startTokenIndex + tokenIndexOffset; - const tokenRanges = allTokens.slice(startTokenIndex, caretTokenIndex + tokenIndexOffset + 1); + const tokenRanges = allTokens.slice( + startTokenIndex, + caretTokenIndex + tokenIndexOffset + 1 + ); let syntaxContextType: SyntaxContextType; switch (ruleType) { @@ -62,7 +69,7 @@ export default class HiveSQL extends BasicParser { this._statementContext.push(ctx); - } - - enterStatement = (ctx: StatementContext) => { }; + enterStatement = (ctx: StatementContext) => {}; + get statementsContext() { return this._statementContext; } } - diff --git a/src/parser/pgsql.ts b/src/parser/pgsql.ts index 176267c..ff9730e 100644 --- a/src/parser/pgsql.ts +++ b/src/parser/pgsql.ts @@ -5,7 +5,11 @@ import { PostgreSQLParser, ProgramContext } from '../lib/pgsql/PostgreSQLParser' import BasicParser from './common/basicParser'; import { Suggestions } from './common/basic-parser-types'; -export default class PostgresSQL extends BasicParser { +export default class PostgresSQL extends BasicParser< + PostgreSQLLexer, + ProgramContext, + PostgreSQLParser +> { protected createLexerFormCharStream(charStreams) { const lexer = new PostgreSQLLexer(charStreams); return lexer; @@ -17,18 +21,18 @@ export default class PostgresSQL extends BasicParser = new Set(); - protected get splitListener () { + protected get splitListener() { return null as any; } protected processCandidates( - candidates: CandidatesCollection, - allTokens: Token[], + candidates: CandidatesCollection, + allTokens: Token[], caretTokenIndex: number ): Suggestions { return { syntax: [], - keywords: [] - } + keywords: [], + }; } } diff --git a/src/parser/plsql.ts b/src/parser/plsql.ts index fb06bc4..0ac36c1 100644 --- a/src/parser/plsql.ts +++ b/src/parser/plsql.ts @@ -17,18 +17,18 @@ export default class PLSQL extends BasicParser = new Set(); - protected get splitListener () { + protected get splitListener() { return null as any; } protected processCandidates( - candidates: CandidatesCollection, - allTokens: Token[], + candidates: CandidatesCollection, + allTokens: Token[], caretTokenIndex: number ): Suggestions { return { syntax: [], - keywords: [] - } + keywords: [], + }; } } diff --git a/src/parser/spark.ts b/src/parser/spark.ts index 300e9c6..58df189 100644 --- a/src/parser/spark.ts +++ b/src/parser/spark.ts @@ -1,7 +1,11 @@ import { Token } from 'antlr4ts'; import { CandidatesCollection } from 'antlr4-c3'; import { SparkSqlLexer } from '../lib/spark/SparkSqlLexer'; -import { SparkSqlParser, ProgramContext, SingleStatementContext } from '../lib/spark/SparkSqlParser'; +import { + SparkSqlParser, + ProgramContext, + SingleStatementContext, +} from '../lib/spark/SparkSqlParser'; import BasicParser from './common/basicParser'; import { Suggestions, SyntaxContextType, SyntaxSuggestion } from './common/basic-parser-types'; import { SparkSqlParserListener } from 'src/lib/spark/SparkSqlParserListener'; @@ -36,7 +40,7 @@ export default class SparkSQL extends BasicParser { const originalSyntaxSuggestions: SyntaxSuggestion[] = []; const keywords: string[] = []; @@ -44,7 +48,10 @@ export default class SparkSQL extends BasicParser { this._statementsContext.push(ctx); - } - - enterSingleStatement = (ctx: SingleStatementContext) => { }; + enterSingleStatement = (ctx: SingleStatementContext) => {}; + get statementsContext() { return this._statementsContext; } diff --git a/src/parser/trinosql.ts b/src/parser/trinosql.ts index 8e27618..9c8dddc 100644 --- a/src/parser/trinosql.ts +++ b/src/parser/trinosql.ts @@ -16,21 +16,20 @@ export default class TrinoSQL extends BasicParser = new Set(); protected processCandidates( - candidates: CandidatesCollection, - allTokens: Token[], + candidates: CandidatesCollection, + allTokens: Token[], caretTokenIndex: number ): Suggestions { return { syntax: [], - keywords: [] - } + keywords: [], + }; } } - diff --git a/src/typings/index.d.ts b/src/typings/index.d.ts deleted file mode 100644 index 9781d00..0000000 --- a/src/typings/index.d.ts +++ /dev/null @@ -1 +0,0 @@ -declare type sql = string | string[] diff --git a/src/utils/findCaretTokenIndex.ts b/src/utils/findCaretTokenIndex.ts index 3d1a89e..154466f 100644 --- a/src/utils/findCaretTokenIndex.ts +++ b/src/utils/findCaretTokenIndex.ts @@ -1,9 +1,9 @@ -import { Token } from "antlr4ts"; -import { CaretPosition } from "../../src/parser/common/basic-parser-types"; +import { Token } from 'antlr4ts'; +import { CaretPosition } from '../../src/parser/common/basic-parser-types'; /** * find token index via caret position (cursor position) - * @param caretPosition + * @param caretPosition * @param allTokens all the tokens * @returns caretTokenIndex */ @@ -12,22 +12,23 @@ export function findCaretTokenIndex(caretPosition: CaretPosition, allTokens: Tok let left = 0; let right = allTokens.length - 1; - while(left <= right) { + while (left <= right) { const mid = left + ((right - left) >> 1); const token = allTokens[mid]; - if (token.line > caretLine || ( - token.line === caretLine - && token.charPositionInLine + 1 >= caretCol - )) { + if ( + token.line > caretLine || + (token.line === caretLine && token.charPositionInLine + 1 >= caretCol) + ) { right = mid - 1; - } else if (token.line < caretLine || ( - token.line === caretLine - && token.charPositionInLine + token.text.length + 1 < caretCol - )) { + } else if ( + token.line < caretLine || + (token.line === caretLine && + token.charPositionInLine + token.text.length + 1 < caretCol) + ) { left = mid + 1; } else { - return allTokens[mid].tokenIndex + return allTokens[mid].tokenIndex; } } return null; -} \ No newline at end of file +} diff --git a/src/utils/index.ts b/src/utils/index.ts index 9256073..12bfb1d 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -1,4 +1,3 @@ - import { TokenType, Token, TokenReg } from './token'; /** @@ -15,7 +14,6 @@ function lexer(input: string): Token[] { /** * 提取 TokenType */ - // eslint-disable-next-line const extract = (currentChar: string, validator: RegExp, TokenType: TokenType): Token => { let value = ''; const start = current; @@ -95,19 +93,16 @@ function lexer(input: string): Token[] { } if (TokenReg.BackQuotation.test(char)) { - // eslint-disable-next-line matchQuotation(char, TokenReg.BackQuotation, TokenType.BackQuotation); continue; } if (TokenReg.SingleQuotation.test(char)) { - // eslint-disable-next-line matchQuotation(char, TokenReg.SingleQuotation, TokenType.SingleQuotation); continue; } if (TokenReg.DoubleQuotation.test(char)) { - // eslint-disable-next-line matchQuotation(char, TokenReg.DoubleQuotation, TokenType.DoubleQuotation); continue; } @@ -162,7 +157,7 @@ function lexer(input: string): Token[] { const newToken = extract( char, TokenReg.StatementTerminator, - TokenType.StatementTerminator, + TokenType.StatementTerminator ); tokens.push(newToken); continue; @@ -211,8 +206,4 @@ function cleanSql(sql: string) { resultSql += sql.slice(startIndex); return resultSql; } -export { - cleanSql, - splitSql, - lexer, -}; +export { cleanSql, splitSql, lexer }; diff --git a/src/utils/token.ts b/src/utils/token.ts index 4c89564..43045bc 100755 --- a/src/utils/token.ts +++ b/src/utils/token.ts @@ -28,14 +28,14 @@ export enum TokenType { */ RightSmallBracket = 'RightSmallBracket', Comma = 'Comma', - FunctionArguments = 'FunctionArguments' + FunctionArguments = 'FunctionArguments', } /** * Token object */ export interface Token { - type: TokenType, + type: TokenType; value: string; start: number; end: number; @@ -44,8 +44,8 @@ export interface Token { } /** -* Token recognition rules -*/ + * Token recognition rules + */ export const TokenReg = { [TokenType.StatementTerminator]: /[;]/, [TokenType.SingleQuotation]: /['|\']/, diff --git a/test/helper.ts b/test/helper.ts index de340b3..5438edf 100644 --- a/test/helper.ts +++ b/test/helper.ts @@ -10,7 +10,8 @@ export const readSQL = (dirname: string, fileName: string) => { const char = content[index]; tmp += char; - const isMulti = tmp.includes('EXECUTE STATEMENT SET') || tmp.includes('BEGIN STATEMENT SET;'); + const isMulti = + tmp.includes('EXECUTE STATEMENT SET') || tmp.includes('BEGIN STATEMENT SET;'); if (!isMulti) { // 非批量的先简单按照分号切割 @@ -31,14 +32,14 @@ export const readSQL = (dirname: string, fileName: string) => { /** * Benchmark for a function. - * @param name - * @param fn + * @param name + * @param fn * @param times , default 1 * @returns [ totalTime, averageTime, msg ] */ export function benchmark(name: string, fn: Function, times: number = 1): [number, number, string] { const start = performance.now(); - + for (let i = 0; i < times; i++) { fn(); } @@ -46,13 +47,14 @@ export function benchmark(name: string, fn: Function, times: number = 1): [numbe const totalTime = end - start; const averageTime = totalTime / times; - const msg = `Benchmark: ${name} executed ${times} times. Total time: ${totalTime.toFixed(2)}ms. Average time: ${averageTime.toFixed(2)}ms`; - console.log(msg) - + const msg = `Benchmark: ${name} executed ${times} times. Total time: ${totalTime.toFixed( + 2 + )}ms. Average time: ${averageTime.toFixed(2)}ms`; + console.log(msg); + return [totalTime, averageTime, msg]; } - export function getReportTableRow(name, rows, times, totalTime, averageTime) { return `| ${name} | ${rows} | ${times} | ${totalTime.toFixed(2)} | ${averageTime.toFixed(2)} |`; } @@ -65,4 +67,4 @@ export function getReportTableHeader(title: string) { export function exportReportTable(markdown: string, output: string) { fs.writeFileSync(path.join(output, 'benchmark.md'), markdown); -} \ No newline at end of file +} diff --git a/test/parser/flinksql/benchmark/main.test.ts b/test/parser/flinksql/benchmark/main.test.ts index 767d3a7..2d2a4b3 100644 --- a/test/parser/flinksql/benchmark/main.test.ts +++ b/test/parser/flinksql/benchmark/main.test.ts @@ -2,7 +2,13 @@ import path from 'path'; import { writeFileSync } from 'node:fs'; import FlinkSQL from '../../../../src/parser/flinksql'; -import { readSQL, benchmark, getReportTableHeader, getReportTableRow, exportReportTable } from '../../../helper'; +import { + readSQL, + benchmark, + getReportTableHeader, + getReportTableRow, + exportReportTable, +} from '../../../helper'; const features = { selectTable: readSQL(__dirname, 'selectTable.sql'), @@ -15,13 +21,11 @@ describe('FlinkSQL benchmark tests', () => { let reportsHeader = getReportTableHeader('FlinkSQL Benchmark'); const reportData: string[] = []; - test('createTable Over 100 Rows', async () => { - - const [totalTimes, averageTimes , msg] = benchmark('CreateTable Over 100 Rows', () => { + const [totalTimes, averageTimes, msg] = benchmark('CreateTable Over 100 Rows', () => { const testSQL = features.createTable[0]; const res = parser.validate(testSQL); - expect(res).toEqual([]) + expect(res).toEqual([]); }); reportData.push(getReportTableRow('CreateTable', 100, 1, totalTimes, averageTimes)); }); @@ -30,91 +34,75 @@ describe('FlinkSQL benchmark tests', () => { const [totalTimes, averageTimes, msg] = benchmark('CreateTable Over 1000 Rows', () => { const testSQL = features.createTable[1]; const res = parser.validate(testSQL); - expect(res).toEqual([]) + expect(res).toEqual([]); }); reportData.push(getReportTableRow('CreateTable', 1000, 1, totalTimes, averageTimes)); - }); test('createTable Over 5000 Rows', async () => { const [totalTimes, averageTimes, msg] = benchmark('CreateTable Over 5000 Rows', () => { const testSQL = features.createTable[2]; const res = parser.validate(testSQL); - expect(res).toEqual([]) + expect(res).toEqual([]); }); reportData.push(getReportTableRow('CreateTable', 5000, 1, totalTimes, averageTimes)); - }); test('selectTable Over 100 Rows', async () => { - - const [totalTimes, averageTimes , msg] = benchmark('SelectTable Over 100 Rows', () => { + const [totalTimes, averageTimes, msg] = benchmark('SelectTable Over 100 Rows', () => { const testSQL = features.selectTable[0]; const res = parser.validate(testSQL); - expect(res).toEqual([]) + expect(res).toEqual([]); }); reportData.push(getReportTableRow('SelectTable', 100, 1, totalTimes, averageTimes)); - }); test('selectTable Over 1000 Rows', async () => { - const [totalTimes, averageTimes, msg] = benchmark('SelectTable Over 1000 Rows', () => { const testSQL = features.selectTable[1]; const res = parser.validate(testSQL); - expect(res).toEqual([]) + expect(res).toEqual([]); }); reportData.push(getReportTableRow('SelectTable', 1000, 1, totalTimes, averageTimes)); - }); test('selectTable Over 5000 Rows', async () => { - const [totalTimes, averageTimes, msg] = benchmark('SelectTable Over 5000 Rows', () => { const testSQL = features.selectTable[2]; const res = parser.validate(testSQL); - expect(res).toEqual([]) + expect(res).toEqual([]); }); reportData.push(getReportTableRow('SelectTable', 5000, 1, totalTimes, averageTimes)); - }); test('insertTable Over 100 Rows', async () => { - const [totalTimes, averageTimes, msg] = benchmark('InsertTable Over 100 Rows', () => { const testSQL = features.insertTable[0]; const res = parser.validate(testSQL); - expect(res).toEqual([]) + expect(res).toEqual([]); }); reportData.push(getReportTableRow('InsertTable', 100, 1, totalTimes, averageTimes)); - }); test('insertTable Over 1000 Rows', async () => { - const [totalTimes, averageTimes, msg] = benchmark('InsertTable Over 1000 Rows', () => { const testSQL = features.insertTable[1]; const res = parser.validate(testSQL); - expect(res).toEqual([]) + expect(res).toEqual([]); }); reportData.push(getReportTableRow('InsertTable', 1000, 1, totalTimes, averageTimes)); - }); - test('insertTable Over 5000 Rows', async () => { - const [totalTimes, averageTimes, msg] = benchmark('InsertTable Over 5000 Rows', () => { const testSQL = features.insertTable[2]; const res = parser.validate(testSQL); - expect(res).toEqual([]) + expect(res).toEqual([]); }); reportData.push(getReportTableRow('InsertTable', 5000, 1, totalTimes, averageTimes)); - }); afterAll(() => { - exportReportTable(reportsHeader + reportData.join('\n'), __dirname) - }) - -}); \ No newline at end of file + exportReportTable(reportsHeader + reportData.join('\n'), __dirname); + }); +}); diff --git a/test/parser/flinksql/listener.test.ts b/test/parser/flinksql/listener.test.ts index fb5f5c8..e2bb01b 100644 --- a/test/parser/flinksql/listener.test.ts +++ b/test/parser/flinksql/listener.test.ts @@ -1,6 +1,7 @@ import FlinkSQL from '../../../src/parser/flinksql'; import { FlinkSqlParserListener } from '../../../src/lib/flinksql/FlinkSqlParserListener'; import { TableExpressionContext } from '../../../src/lib/flinksql/FlinkSqlParser'; +import { ParseTreeListener } from 'antlr4ts/tree'; describe('Flink SQL Listener Tests', () => { const expectTableName = 'user1'; @@ -12,14 +13,13 @@ describe('Flink SQL Listener Tests', () => { test('Listener enterTableName', async () => { let result = ''; class MyListener implements FlinkSqlParserListener { - enterTableExpression = (ctx: TableExpressionContext): void => { result = ctx.text.toLowerCase(); - } + }; } const listenTableName = new MyListener(); - await parser.listen(listenTableName, parserTree); + await parser.listen(listenTableName as ParseTreeListener, parserTree); expect(result).toBe(expectTableName); }); }); diff --git a/test/parser/flinksql/suggestion/syntaxSuggestion.test.ts b/test/parser/flinksql/suggestion/syntaxSuggestion.test.ts index a7b4b01..b2c78cc 100644 --- a/test/parser/flinksql/suggestion/syntaxSuggestion.test.ts +++ b/test/parser/flinksql/suggestion/syntaxSuggestion.test.ts @@ -1,9 +1,12 @@ import fs from 'fs'; import path from 'path'; import { CaretPosition, SyntaxContextType } from '../../../../src/parser/common/basic-parser-types'; -import FlinkSQL from '../../../../src/parser/flinksql' +import FlinkSQL from '../../../../src/parser/flinksql'; -const syntaxSql = fs.readFileSync(path.join(__dirname, 'fixtures', 'syntaxSuggestion.sql'), 'utf-8'); +const syntaxSql = fs.readFileSync( + path.join(__dirname, 'fixtures', 'syntaxSuggestion.sql'), + 'utf-8' +); const multipleSql = fs.readFileSync(path.join(__dirname, 'fixtures', 'multipleSql.sql'), 'utf-8'); describe('Flink SQL Syntax Suggestion', () => { @@ -13,187 +16,201 @@ describe('Flink SQL Syntax Suggestion', () => { expect(parser.validate(syntaxSql).length).not.toBe(0); expect(parser.validate(syntaxSql).length).not.toBe(0); expect(parser.validate(syntaxSql).length).not.toBe(0); - }) + }); - test("Multiple SQL use database", () => { + test('Multiple SQL use database', () => { const pos: CaretPosition = { lineNumber: 19, column: 10, - } + }; const syntaxes = parser.getSuggestionAtCaretPosition(multipleSql, pos)?.syntax; - const suggestion = syntaxes?.find(syn => syn.syntaxContextType === SyntaxContextType.DATABASE); + const suggestion = syntaxes?.find( + (syn) => syn.syntaxContextType === SyntaxContextType.DATABASE + ); expect(suggestion).not.toBeUndefined(); - expect(suggestion?.wordRanges.map(token => token.text)) - .toEqual([ 'cat1', '.' ]); - }) + expect(suggestion?.wordRanges.map((token) => token.text)).toEqual(['cat1', '.']); + }); test('Drop catalog', () => { const pos: CaretPosition = { lineNumber: 1, - column: 17 - } + column: 17, + }; const syntaxes = parser.getSuggestionAtCaretPosition(syntaxSql, pos)?.syntax; - const suggestion = syntaxes?.find(syn => syn.syntaxContextType === SyntaxContextType.CATALOG); + const suggestion = syntaxes?.find( + (syn) => syn.syntaxContextType === SyntaxContextType.CATALOG + ); expect(suggestion).not.toBeUndefined(); - expect(suggestion?.wordRanges.map(token => token.text)) - .toEqual([ 'cat' ]); + expect(suggestion?.wordRanges.map((token) => token.text)).toEqual(['cat']); }); test('Select table', () => { const pos: CaretPosition = { lineNumber: 3, - column: 19 - } + column: 19, + }; const syntaxes = parser.getSuggestionAtCaretPosition(syntaxSql, pos)?.syntax; - const suggestion = syntaxes?.find(syn => syn.syntaxContextType === SyntaxContextType.TABLE); + const suggestion = syntaxes?.find( + (syn) => syn.syntaxContextType === SyntaxContextType.TABLE + ); console.log(syntaxes); expect(suggestion).not.toBeUndefined(); - expect(suggestion?.wordRanges.map(token => token.text)) - .toEqual([ 'cat', '.' ]) - }) + expect(suggestion?.wordRanges.map((token) => token.text)).toEqual(['cat', '.']); + }); test('Create table', () => { const pos: CaretPosition = { lineNumber: 5, - column: 20 - } + column: 20, + }; const syntaxes = parser.getSuggestionAtCaretPosition(syntaxSql, pos)?.syntax; - const suggestion = syntaxes?.find(syn => syn.syntaxContextType === SyntaxContextType.TABLE_CREATE); + const suggestion = syntaxes?.find( + (syn) => syn.syntaxContextType === SyntaxContextType.TABLE_CREATE + ); expect(suggestion).not.toBeUndefined(); - expect(suggestion?.wordRanges.map(token => token.text)) - .toEqual([ 'cat', '.', 'db' ]) - }) + expect(suggestion?.wordRanges.map((token) => token.text)).toEqual(['cat', '.', 'db']); + }); test('Show tables from', () => { const pos: CaretPosition = { lineNumber: 7, - column: 21 - } + column: 21, + }; const syntaxes = parser.getSuggestionAtCaretPosition(syntaxSql, pos)?.syntax; - const suggestion = syntaxes?.find(syn => syn.syntaxContextType === SyntaxContextType.DATABASE); + const suggestion = syntaxes?.find( + (syn) => syn.syntaxContextType === SyntaxContextType.DATABASE + ); expect(suggestion).not.toBeUndefined(); - expect(suggestion?.wordRanges.map(token => token.text)) - .toEqual([ 'cat' ]) - }) + expect(suggestion?.wordRanges.map((token) => token.text)).toEqual(['cat']); + }); test('Alter database', () => { const pos: CaretPosition = { lineNumber: 9, - column: 20 - } + column: 20, + }; const syntaxes = parser.getSuggestionAtCaretPosition(syntaxSql, pos)?.syntax; - const suggestion = syntaxes?.find(syn => syn.syntaxContextType === SyntaxContextType.DATABASE); + const suggestion = syntaxes?.find( + (syn) => syn.syntaxContextType === SyntaxContextType.DATABASE + ); expect(suggestion).not.toBeUndefined(); - expect(suggestion?.wordRanges.map(token => token.text)) - .toEqual([ 'cat', '.' ]) - }) + expect(suggestion?.wordRanges.map((token) => token.text)).toEqual(['cat', '.']); + }); test('Drop view', () => { const pos: CaretPosition = { lineNumber: 11, - column: 12 - } + column: 12, + }; const syntaxes = parser.getSuggestionAtCaretPosition(syntaxSql, pos)?.syntax; - const suggestion = syntaxes?.find(syn => syn.syntaxContextType === SyntaxContextType.VIEW); + const suggestion = syntaxes?.find( + (syn) => syn.syntaxContextType === SyntaxContextType.VIEW + ); expect(suggestion).not.toBeUndefined(); - expect(suggestion?.wordRanges.map(token => token.text)) - .toEqual([ 'v' ]); + expect(suggestion?.wordRanges.map((token) => token.text)).toEqual(['v']); }); test('Select view', () => { const pos: CaretPosition = { lineNumber: 13, - column: 15 - } + column: 15, + }; const syntaxes = parser.getSuggestionAtCaretPosition(syntaxSql, pos)?.syntax; - const suggestion = syntaxes?.find(syn => syn.syntaxContextType === SyntaxContextType.VIEW); + const suggestion = syntaxes?.find( + (syn) => syn.syntaxContextType === SyntaxContextType.VIEW + ); expect(suggestion).not.toBeUndefined(); - expect(suggestion?.wordRanges.map(token => token.text)) - .toEqual([]); + expect(suggestion?.wordRanges.map((token) => token.text)).toEqual([]); }); - + test('Create view', () => { const pos: CaretPosition = { lineNumber: 15, - column: 15 - } + column: 15, + }; const syntaxes = parser.getSuggestionAtCaretPosition(syntaxSql, pos)?.syntax; - const suggestion = syntaxes?.find(syn => syn.syntaxContextType === SyntaxContextType.VIEW_CREATE); + const suggestion = syntaxes?.find( + (syn) => syn.syntaxContextType === SyntaxContextType.VIEW_CREATE + ); expect(suggestion).not.toBeUndefined(); - expect(suggestion?.wordRanges.map(token => token.text)) - .toEqual(['cv']); + expect(suggestion?.wordRanges.map((token) => token.text)).toEqual(['cv']); }); test('Function call', () => { const pos: CaretPosition = { lineNumber: 17, - column: 27 - } + column: 27, + }; const syntaxes = parser.getSuggestionAtCaretPosition(syntaxSql, pos)?.syntax; - const suggestion = syntaxes?.find(syn => syn.syntaxContextType === SyntaxContextType.FUNCTION); + const suggestion = syntaxes?.find( + (syn) => syn.syntaxContextType === SyntaxContextType.FUNCTION + ); expect(suggestion).not.toBeUndefined(); - expect(suggestion?.wordRanges.map(token => token.text)) - .toEqual(['calculate_age']); + expect(suggestion?.wordRanges.map((token) => token.text)).toEqual(['calculate_age']); }); test('Create Function', () => { const pos: CaretPosition = { lineNumber: 19, - column: 20 - } + column: 20, + }; const syntaxes = parser.getSuggestionAtCaretPosition(syntaxSql, pos)?.syntax; - const suggestion = syntaxes?.find(syn => syn.syntaxContextType === SyntaxContextType.FUNCTION_CREATE); + const suggestion = syntaxes?.find( + (syn) => syn.syntaxContextType === SyntaxContextType.FUNCTION_CREATE + ); expect(suggestion).not.toBeUndefined(); - expect(suggestion?.wordRanges.map(token => token.text)) - .toEqual(['fnc']); + expect(suggestion?.wordRanges.map((token) => token.text)).toEqual(['fnc']); }); test('Show columns from view', () => { const pos: CaretPosition = { lineNumber: 21, - column: 22 - } + column: 22, + }; const syntaxes = parser.getSuggestionAtCaretPosition(syntaxSql, pos)?.syntax; - const suggestion = syntaxes?.find(syn => syn.syntaxContextType === SyntaxContextType.VIEW); + const suggestion = syntaxes?.find( + (syn) => syn.syntaxContextType === SyntaxContextType.VIEW + ); expect(suggestion).not.toBeUndefined(); - expect(suggestion?.wordRanges.map(token => token.text)) - .toEqual(['vie']); + expect(suggestion?.wordRanges.map((token) => token.text)).toEqual(['vie']); }); test('Show create table', () => { const pos: CaretPosition = { lineNumber: 23, - column: 22 - } + column: 22, + }; const syntaxes = parser.getSuggestionAtCaretPosition(syntaxSql, pos)?.syntax; - const suggestion = syntaxes?.find(syn => syn.syntaxContextType === SyntaxContextType.TABLE); + const suggestion = syntaxes?.find( + (syn) => syn.syntaxContextType === SyntaxContextType.TABLE + ); expect(suggestion).not.toBeUndefined(); - expect(suggestion?.wordRanges.map(token => token.text)) - .toEqual(['tb1']); + expect(suggestion?.wordRanges.map((token) => token.text)).toEqual(['tb1']); }); test('Show create view', () => { const pos: CaretPosition = { lineNumber: 25, - column: 20 - } + column: 20, + }; const syntaxes = parser.getSuggestionAtCaretPosition(syntaxSql, pos)?.syntax; - const suggestion = syntaxes?.find(syn => syn.syntaxContextType === SyntaxContextType.VIEW); + const suggestion = syntaxes?.find( + (syn) => syn.syntaxContextType === SyntaxContextType.VIEW + ); expect(suggestion).not.toBeUndefined(); - expect(suggestion?.wordRanges.map(token => token.text)) - .toEqual(['v1']); + expect(suggestion?.wordRanges.map((token) => token.text)).toEqual(['v1']); }); -}) \ No newline at end of file +}); diff --git a/test/parser/flinksql/suggestion/tokenSuggestion.test.ts b/test/parser/flinksql/suggestion/tokenSuggestion.test.ts index f0370ab..91f0832 100644 --- a/test/parser/flinksql/suggestion/tokenSuggestion.test.ts +++ b/test/parser/flinksql/suggestion/tokenSuggestion.test.ts @@ -1,7 +1,7 @@ import fs from 'fs'; import path from 'path'; import { CaretPosition } from '../../../../src/parser/common/basic-parser-types'; -import FlinkSQL from '../../../../src/parser/flinksql' +import FlinkSQL from '../../../../src/parser/flinksql'; const tokenSql = fs.readFileSync(path.join(__dirname, 'fixtures', 'tokenSuggestion.sql'), 'utf-8'); @@ -11,47 +11,50 @@ describe('Flink SQL Token Suggestion', () => { test('Use Statement ', () => { const pos: CaretPosition = { lineNumber: 3, - column: 5 - } + column: 5, + }; const suggestion = parser.getSuggestionAtCaretPosition(tokenSql, pos)?.keywords; - - expect(suggestion) - .toEqual([ 'MODULES', 'CATALOG' ]) - }) + + expect(suggestion).toEqual(['MODULES', 'CATALOG']); + }); test('Create Statement ', () => { const pos: CaretPosition = { lineNumber: 5, - column: 8 - } + column: 8, + }; const suggestion = parser.getSuggestionAtCaretPosition(tokenSql, pos)?.keywords; - - expect(suggestion) - .toEqual([ 'CATALOG', 'FUNCTION', 'TEMPORARY', 'VIEW', 'DATABASE', 'TABLE' ]) - }) + + expect(suggestion).toEqual([ + 'CATALOG', + 'FUNCTION', + 'TEMPORARY', + 'VIEW', + 'DATABASE', + 'TABLE', + ]); + }); test('Show Statement ', () => { const pos: CaretPosition = { lineNumber: 7, - column: 6 - } + column: 6, + }; const suggestion = parser.getSuggestionAtCaretPosition(tokenSql, pos)?.keywords; - - expect(suggestion) - .toEqual([ - 'MODULES', - 'FULL', - 'FUNCTIONS', - 'USER', - 'CREATE', - 'COLUMNS', - 'TABLES', - 'CURRENT', - 'CATALOGS', - 'DATABASES', - 'JARS', - 'VIEWS' - ]) - }) -}) \ No newline at end of file + expect(suggestion).toEqual([ + 'MODULES', + 'FULL', + 'FUNCTIONS', + 'USER', + 'CREATE', + 'COLUMNS', + 'TABLES', + 'CURRENT', + 'CATALOGS', + 'DATABASES', + 'JARS', + 'VIEWS', + ]); + }); +}); diff --git a/test/parser/flinksql/syntax/alterStatement.test.ts b/test/parser/flinksql/syntax/alterStatement.test.ts index 784727b..efe0f94 100644 --- a/test/parser/flinksql/syntax/alterStatement.test.ts +++ b/test/parser/flinksql/syntax/alterStatement.test.ts @@ -1,5 +1,5 @@ -import FlinkSQL from "../../../../src/parser/flinksql"; -import { readSQL } from "../../../helper"; +import FlinkSQL from '../../../../src/parser/flinksql'; +import { readSQL } from '../../../helper'; const features = { table: readSQL(__dirname, 'alterTable.sql'), @@ -26,11 +26,10 @@ describe('FlinkSQL Alter Statements Syntax Tests', () => { expect(parser.validate(sql).length).toBe(0); }); }); - + features.function.forEach((sql) => { it(sql, () => { expect(parser.validate(sql).length).toBe(0); }); }); }); - diff --git a/test/parser/flinksql/syntax/choreStatement.test.ts b/test/parser/flinksql/syntax/choreStatement.test.ts index 27d8b61..e282888 100644 --- a/test/parser/flinksql/syntax/choreStatement.test.ts +++ b/test/parser/flinksql/syntax/choreStatement.test.ts @@ -1,9 +1,9 @@ -import FlinkSQL from "../../../../src/parser/flinksql"; -import { readSQL } from "../../../helper"; +import FlinkSQL from '../../../../src/parser/flinksql'; +import { readSQL } from '../../../helper'; // 综合测试的 sql 不做切割 const features = { - chores: readSQL(__dirname, 'chore.sql') + chores: readSQL(__dirname, 'chore.sql'), }; describe('FlinkSQL Chore Syntax Tests', () => { diff --git a/test/parser/flinksql/syntax/commentStatement.test.ts b/test/parser/flinksql/syntax/commentStatement.test.ts index 1ec01a1..8b3a976 100644 --- a/test/parser/flinksql/syntax/commentStatement.test.ts +++ b/test/parser/flinksql/syntax/commentStatement.test.ts @@ -1,10 +1,10 @@ import fs from 'fs'; import path from 'path'; -import FlinkSQL from "../../../../src/parser/flinksql"; +import FlinkSQL from '../../../../src/parser/flinksql'; // 注释 sql 不做切割 const features = { - comments: fs.readFileSync(path.join(__dirname, 'fixtures', 'comment.sql'), 'utf-8') + comments: fs.readFileSync(path.join(__dirname, 'fixtures', 'comment.sql'), 'utf-8'), }; describe('FlinkSQL Comment Syntax Tests', () => { diff --git a/test/parser/flinksql/syntax/comprehensive.test.ts b/test/parser/flinksql/syntax/comprehensive.test.ts index 71c650f..075112a 100644 --- a/test/parser/flinksql/syntax/comprehensive.test.ts +++ b/test/parser/flinksql/syntax/comprehensive.test.ts @@ -1,10 +1,10 @@ import fs from 'fs'; import path from 'path'; -import FlinkSQL from "../../../../src/parser/flinksql"; +import FlinkSQL from '../../../../src/parser/flinksql'; // 综合测试的 sql 不做切割 const features = { - templates: fs.readFileSync(path.join(__dirname, 'fixtures', 'templates.sql'), 'utf-8') + templates: fs.readFileSync(path.join(__dirname, 'fixtures', 'templates.sql'), 'utf-8'), }; describe('FlinkSQL Comprehensive Tests', () => { @@ -13,4 +13,3 @@ describe('FlinkSQL Comprehensive Tests', () => { expect(parser.validate(features.templates).length).toBe(0); }); }); - diff --git a/test/parser/flinksql/syntax/describeStatement.test.ts b/test/parser/flinksql/syntax/describeStatement.test.ts index 697eb35..6d04fee 100644 --- a/test/parser/flinksql/syntax/describeStatement.test.ts +++ b/test/parser/flinksql/syntax/describeStatement.test.ts @@ -1,8 +1,8 @@ -import FlinkSQL from "../../../../src/parser/flinksql"; -import { readSQL } from "../../../helper"; +import FlinkSQL from '../../../../src/parser/flinksql'; +import { readSQL } from '../../../helper'; const features = { - describes: readSQL(__dirname, 'describe.sql') + describes: readSQL(__dirname, 'describe.sql'), }; describe('FlinkSQL Describe Syntax Tests', () => { diff --git a/test/parser/flinksql/syntax/dropStatement.test.ts b/test/parser/flinksql/syntax/dropStatement.test.ts index 3f99f85..e25cf73 100644 --- a/test/parser/flinksql/syntax/dropStatement.test.ts +++ b/test/parser/flinksql/syntax/dropStatement.test.ts @@ -1,5 +1,5 @@ -import FlinkSQL from "../../../../src/parser/flinksql"; -import { readSQL } from "../../../helper"; +import FlinkSQL from '../../../../src/parser/flinksql'; +import { readSQL } from '../../../helper'; const features = { table: readSQL(__dirname, 'dropTable.sql'), @@ -30,7 +30,7 @@ describe('FlinkSQL Drop Statements Tests', () => { it(sql, () => { expect(parser.validate(sql).length).toBe(0); }); - }); + }); features.database.forEach((sql) => { it(sql, () => { expect(parser.validate(sql).length).toBe(0); diff --git a/test/parser/flinksql/syntax/dtAddFileStatement.test.ts b/test/parser/flinksql/syntax/dtAddFileStatement.test.ts index 6f317c6..01571db 100644 --- a/test/parser/flinksql/syntax/dtAddFileStatement.test.ts +++ b/test/parser/flinksql/syntax/dtAddFileStatement.test.ts @@ -1,8 +1,8 @@ -import FlinkSQL from "../../../../src/parser/flinksql"; -import { readSQL } from "../../../helper"; +import FlinkSQL from '../../../../src/parser/flinksql'; +import { readSQL } from '../../../helper'; const features = { - dtAddFiles: readSQL(__dirname, 'dtAddFile.sql') + dtAddFiles: readSQL(__dirname, 'dtAddFile.sql'), }; describe('FlinkSQL DT Add File Syntax Tests', () => { diff --git a/test/parser/flinksql/syntax/explainStatement.test.ts b/test/parser/flinksql/syntax/explainStatement.test.ts index 569eb9f..63204b6 100644 --- a/test/parser/flinksql/syntax/explainStatement.test.ts +++ b/test/parser/flinksql/syntax/explainStatement.test.ts @@ -1,8 +1,8 @@ -import FlinkSQL from "../../../../src/parser/flinksql"; -import { readSQL } from "../../../helper"; +import FlinkSQL from '../../../../src/parser/flinksql'; +import { readSQL } from '../../../helper'; const features = { - explains: readSQL(__dirname, 'explain.sql') + explains: readSQL(__dirname, 'explain.sql'), }; describe('FlinkSQL Explain Syntax Tests', () => { diff --git a/test/parser/flinksql/syntax/insertStatement.test.ts b/test/parser/flinksql/syntax/insertStatement.test.ts index c080a67..5e9bd4d 100644 --- a/test/parser/flinksql/syntax/insertStatement.test.ts +++ b/test/parser/flinksql/syntax/insertStatement.test.ts @@ -1,13 +1,12 @@ import FlinkSQL from '../../../../src/parser/flinksql'; import { readSQL } from '../../../helper'; - const parser = new FlinkSQL(); const features = { InsertFromSelectQueries: readSQL(__dirname, 'insertFromSelectQueries.sql'), InsertValuesIntoTable: readSQL(__dirname, 'insertValuesIntoTable.sql'), - InsertMultipleTable: readSQL(__dirname, 'insertMultipleTable.sql') + InsertMultipleTable: readSQL(__dirname, 'insertMultipleTable.sql'), }; describe('FlinkSQL Insert Syntax Tests', () => { diff --git a/test/parser/flinksql/syntax/selectStatement.test.ts b/test/parser/flinksql/syntax/selectStatement.test.ts index bf18b90..38fea48 100644 --- a/test/parser/flinksql/syntax/selectStatement.test.ts +++ b/test/parser/flinksql/syntax/selectStatement.test.ts @@ -1,22 +1,22 @@ -import FlinkSQL from "../../../../src/parser/flinksql"; -import { readSQL } from "../../../helper"; +import FlinkSQL from '../../../../src/parser/flinksql'; +import { readSQL } from '../../../helper'; const parser = new FlinkSQL(); const features = { - base: readSQL(__dirname, "select.sql"), - withClause: readSQL(__dirname, "selectWithClause.sql"), - distinct: readSQL(__dirname, "selectDistinct.sql"), - windowTVF: readSQL(__dirname, "selectWindowTVF.sql"), - aggregation: readSQL(__dirname, "selectAggregation.sql"), - join: readSQL(__dirname, "selectJoin.sql"), - setOperation: readSQL(__dirname, "selectSetOperations.sql"), - pattern: readSQL(__dirname, "selectPatternRecognition.sql"), - where: readSQL(__dirname, "selectWhere.sql"), + base: readSQL(__dirname, 'select.sql'), + withClause: readSQL(__dirname, 'selectWithClause.sql'), + distinct: readSQL(__dirname, 'selectDistinct.sql'), + windowTVF: readSQL(__dirname, 'selectWindowTVF.sql'), + aggregation: readSQL(__dirname, 'selectAggregation.sql'), + join: readSQL(__dirname, 'selectJoin.sql'), + setOperation: readSQL(__dirname, 'selectSetOperations.sql'), + pattern: readSQL(__dirname, 'selectPatternRecognition.sql'), + where: readSQL(__dirname, 'selectWhere.sql'), }; -describe("FlinkSQL Query Statement Tests", () => { - describe("Base Select", () => { +describe('FlinkSQL Query Statement Tests', () => { + describe('Base Select', () => { features.base.forEach((sql) => { it(sql, () => { expect(parser.validate(sql).length).toBe(0); @@ -24,7 +24,7 @@ describe("FlinkSQL Query Statement Tests", () => { }); }); - describe("With Clause Select", () => { + describe('With Clause Select', () => { features.withClause.forEach((sql) => { it(sql, () => { expect(parser.validate(sql).length).toBe(0); @@ -32,60 +32,59 @@ describe("FlinkSQL Query Statement Tests", () => { }); }); - - describe("Select DISTINCT", () => { + describe('Select DISTINCT', () => { features.distinct.forEach((sql) => { it(sql, () => { expect(parser.validate(sql).length).toBe(0); }); - }) - }) + }); + }); - describe("Select Window TVF", () => { + describe('Select Window TVF', () => { features.windowTVF.forEach((sql) => { it(sql, () => { expect(parser.validate(sql).length).toBe(0); }); - }) - }) + }); + }); - describe("Select Aggregation", () => { + describe('Select Aggregation', () => { features.aggregation.forEach((sql) => { it(sql, () => { expect(parser.validate(sql).length).toBe(0); }); - }) - }) + }); + }); - describe("Select Join", () => { + describe('Select Join', () => { features.join.forEach((sql) => { it(sql, () => { expect(parser.validate(sql).length).toBe(0); }); - }) - }) + }); + }); - describe("Select Set Operations", () => { + describe('Select Set Operations', () => { features.setOperation.forEach((sql) => { it(sql, () => { expect(parser.validate(sql).length).toBe(0); }); - }) - }) + }); + }); - describe("Select Pattern Recognition", () => { + describe('Select Pattern Recognition', () => { features.pattern.forEach((sql) => { it(sql, () => { expect(parser.validate(sql).length).toBe(0); }); - }) - }) + }); + }); - describe("Select Where", () => { + describe('Select Where', () => { features.where.forEach((sql) => { it(sql, () => { - expect(parser.validate(sql).length).toBe(0) - }) - }) - }) + expect(parser.validate(sql).length).toBe(0); + }); + }); + }); }); diff --git a/test/parser/flinksql/syntax/showStatement.test.ts b/test/parser/flinksql/syntax/showStatement.test.ts index cd6c98b..21374ba 100644 --- a/test/parser/flinksql/syntax/showStatement.test.ts +++ b/test/parser/flinksql/syntax/showStatement.test.ts @@ -1,8 +1,8 @@ -import FlinkSQL from "../../../../src/parser/flinksql"; -import { readSQL } from "../../../helper"; +import FlinkSQL from '../../../../src/parser/flinksql'; +import { readSQL } from '../../../helper'; const features = { - shows: readSQL(__dirname, 'show.sql') + shows: readSQL(__dirname, 'show.sql'), }; describe('FlinkSQL Show Syntax Tests', () => { diff --git a/test/parser/flinksql/syntax/useStatement.test.ts b/test/parser/flinksql/syntax/useStatement.test.ts index 20d491d..dde9662 100644 --- a/test/parser/flinksql/syntax/useStatement.test.ts +++ b/test/parser/flinksql/syntax/useStatement.test.ts @@ -1,13 +1,13 @@ -import FlinkSQL from "../../../../src/parser/flinksql"; -import { readSQL } from "../../../helper"; +import FlinkSQL from '../../../../src/parser/flinksql'; +import { readSQL } from '../../../helper'; const features = { - uses: readSQL(__dirname, 'use.sql') + uses: readSQL(__dirname, 'use.sql'), }; describe('FlinkSQL Use Syntax Tests', () => { - const parser = new FlinkSQL(); - + const parser = new FlinkSQL(); + features.uses.forEach((sql) => { it(sql, () => { expect(parser.validate(sql).length).toBe(0); diff --git a/test/parser/flinksql/visitor.test.ts b/test/parser/flinksql/visitor.test.ts index 27fbbfd..b5bdc1c 100644 --- a/test/parser/flinksql/visitor.test.ts +++ b/test/parser/flinksql/visitor.test.ts @@ -13,13 +13,16 @@ describe('Flink SQL Visitor Tests', () => { test('Visitor visitTableName', () => { let result = ''; - class MyVisitor extends AbstractParseTreeVisitor implements FlinkSqlParserVisitor{ + class MyVisitor + extends AbstractParseTreeVisitor + implements FlinkSqlParserVisitor + { protected defaultResult() { return result; - } + } visitTableExpression = (ctx): void => { result = ctx.text.toLowerCase(); - } + }; } const visitor: any = new MyVisitor(); visitor.visit(parserTree); diff --git a/test/parser/generic/listener.test.ts b/test/parser/generic/listener.test.ts index 03b5aa0..0697129 100644 --- a/test/parser/generic/listener.test.ts +++ b/test/parser/generic/listener.test.ts @@ -1,5 +1,6 @@ import GenericSQL from '../../../src/parser/generic'; import { SqlParserListener } from '../../../src/lib/generic/SqlParserListener'; +import { ParseTreeListener } from 'antlr4ts/tree'; describe('Generic SQL Listener Tests', () => { const expectTableName = 'user1'; @@ -13,11 +14,11 @@ describe('Generic SQL Listener Tests', () => { class MyListener implements SqlParserListener { enterTableName = (ctx): void => { result = ctx.text.toLowerCase(); - } + }; } const listenTableName: any = new MyListener(); - await parser.listen(listenTableName, parserTree); + await parser.listen(listenTableName as ParseTreeListener, parserTree); expect(result).toBe(expectTableName); }); }); diff --git a/test/parser/generic/visitor.test.ts b/test/parser/generic/visitor.test.ts index 4cdce94..3eb303e 100644 --- a/test/parser/generic/visitor.test.ts +++ b/test/parser/generic/visitor.test.ts @@ -17,10 +17,10 @@ describe('Generic SQL Visitor Tests', () => { protected defaultResult() { return result; } - + visitTableName = (ctx): void => { result = ctx.text.toLowerCase(); - } + }; } const visitor = new MyVisitor(); visitor.visit(parserTree); diff --git a/test/parser/hive/listener.test.ts b/test/parser/hive/listener.test.ts index e3e54f5..6057a6f 100644 --- a/test/parser/hive/listener.test.ts +++ b/test/parser/hive/listener.test.ts @@ -1,8 +1,8 @@ +import { ParseTreeListener } from 'antlr4ts/tree'; import { ProgramContext } from '../../../src/lib/hive/HiveSqlParser'; import { HiveSqlParserListener } from '../../../src/lib/hive/HiveSqlParserListener'; import HiveSQL from '../../../src/parser/hive'; - describe('HiveSQL Listener Tests', () => { const parser = new HiveSQL(); test('Listener enterSelectList', async () => { @@ -16,9 +16,9 @@ describe('HiveSQL Listener Tests', () => { result = ctx.text; } } - const listenTableName: any = new MyListener(); + const listenTableName = new MyListener(); - await parser.listen(listenTableName, parserTree as ProgramContext); + await parser.listen(listenTableName as ParseTreeListener, parserTree as ProgramContext); expect(result).toBe(expectTableName.toUpperCase()); }); test('Listener enterCreateTable', async () => { @@ -30,9 +30,9 @@ describe('HiveSQL Listener Tests', () => { result = ctx.text; } } - const listenTableName: any = new MyListener(); + const listenTableName = new MyListener(); - await parser.listen(listenTableName, parserTree as ProgramContext); + await parser.listen(listenTableName as ParseTreeListener, parserTree as ProgramContext); expect(result).toBe('DROPTABLETABLE_NAME'); }); }); diff --git a/test/parser/hive/suggestion/syntaxSuggestion.test.ts b/test/parser/hive/suggestion/syntaxSuggestion.test.ts index 24b44dc..e9c327d 100644 --- a/test/parser/hive/suggestion/syntaxSuggestion.test.ts +++ b/test/parser/hive/suggestion/syntaxSuggestion.test.ts @@ -1,9 +1,12 @@ import fs from 'fs'; import path from 'path'; import { CaretPosition, SyntaxContextType } from '../../../../src/parser/common/basic-parser-types'; -import HiveSQL from '../../../../src/parser/hive' +import HiveSQL from '../../../../src/parser/hive'; -const syntaxSql = fs.readFileSync(path.join(__dirname, 'fixtures', 'syntaxSuggestion.sql'), 'utf-8'); +const syntaxSql = fs.readFileSync( + path.join(__dirname, 'fixtures', 'syntaxSuggestion.sql'), + 'utf-8' +); describe('Hive SQL Syntax Suggestion', () => { const parser = new HiveSQL(); @@ -17,131 +20,140 @@ describe('Hive SQL Syntax Suggestion', () => { test('Insert table ', () => { const pos: CaretPosition = { lineNumber: 1, - column: 18 - } + column: 18, + }; const syntaxes = parser.getSuggestionAtCaretPosition(syntaxSql, pos)?.syntax; - const suggestion = syntaxes?.find(syn => syn.syntaxContextType === SyntaxContextType.TABLE); + const suggestion = syntaxes?.find( + (syn) => syn.syntaxContextType === SyntaxContextType.TABLE + ); expect(suggestion).not.toBeUndefined(); - expect(suggestion?.wordRanges.map(token => token.text)) - .toEqual([ 'db', '.', 'tb' ]) + expect(suggestion?.wordRanges.map((token) => token.text)).toEqual(['db', '.', 'tb']); }); test('Select table ', () => { const pos: CaretPosition = { lineNumber: 3, - column: 18 - } + column: 18, + }; const syntaxes = parser.getSuggestionAtCaretPosition(syntaxSql, pos)?.syntax; - const suggestion = syntaxes?.find(syn => syn.syntaxContextType === SyntaxContextType.TABLE); + const suggestion = syntaxes?.find( + (syn) => syn.syntaxContextType === SyntaxContextType.TABLE + ); expect(suggestion).not.toBeUndefined(); - expect(suggestion?.wordRanges.map(token => token.text)) - .toEqual([ 'db', '.' ]) + expect(suggestion?.wordRanges.map((token) => token.text)).toEqual(['db', '.']); }); test('Create table ', () => { const pos: CaretPosition = { lineNumber: 5, - column: 17 - } + column: 17, + }; const syntaxes = parser.getSuggestionAtCaretPosition(syntaxSql, pos)?.syntax; - const suggestion = syntaxes?.find(syn => syn.syntaxContextType === SyntaxContextType.TABLE_CREATE); + const suggestion = syntaxes?.find( + (syn) => syn.syntaxContextType === SyntaxContextType.TABLE_CREATE + ); expect(suggestion).not.toBeUndefined(); - expect(suggestion?.wordRanges.map(token => token.text)) - .toEqual([ 'db', '.' ]) + expect(suggestion?.wordRanges.map((token) => token.text)).toEqual(['db', '.']); }); test('DROP table ', () => { const pos: CaretPosition = { lineNumber: 7, - column: 26 - } + column: 26, + }; const syntaxes = parser.getSuggestionAtCaretPosition(syntaxSql, pos)?.syntax; - const suggestion = syntaxes?.find(syn => syn.syntaxContextType === SyntaxContextType.TABLE); + const suggestion = syntaxes?.find( + (syn) => syn.syntaxContextType === SyntaxContextType.TABLE + ); expect(suggestion).not.toBeUndefined(); - expect(suggestion?.wordRanges.map(token => token.text)) - .toEqual([ 'db', '.', 'a' ]) + expect(suggestion?.wordRanges.map((token) => token.text)).toEqual(['db', '.', 'a']); }); test('Create view ', () => { const pos: CaretPosition = { lineNumber: 9, - column: 28 - } + column: 28, + }; const syntaxes = parser.getSuggestionAtCaretPosition(syntaxSql, pos)?.syntax; - const suggestion = syntaxes?.find(syn => syn.syntaxContextType === SyntaxContextType.VIEW_CREATE); + const suggestion = syntaxes?.find( + (syn) => syn.syntaxContextType === SyntaxContextType.VIEW_CREATE + ); expect(suggestion).not.toBeUndefined(); - expect(suggestion?.wordRanges.map(token => token.text)) - .toEqual([ 'db', '.', 'v' ]) + expect(suggestion?.wordRanges.map((token) => token.text)).toEqual(['db', '.', 'v']); }); test('Drop view ', () => { const pos: CaretPosition = { lineNumber: 11, - column: 15 - } + column: 15, + }; const syntaxes = parser.getSuggestionAtCaretPosition(syntaxSql, pos)?.syntax; - const suggestion = syntaxes?.find(syn => syn.syntaxContextType === SyntaxContextType.VIEW); + const suggestion = syntaxes?.find( + (syn) => syn.syntaxContextType === SyntaxContextType.VIEW + ); expect(suggestion).not.toBeUndefined(); - expect(suggestion?.wordRanges.map(token => token.text)) - .toEqual([ 'db', '.', 'v' ]) + expect(suggestion?.wordRanges.map((token) => token.text)).toEqual(['db', '.', 'v']); }); test('Create function ', () => { const pos: CaretPosition = { lineNumber: 13, - column: 20 - } + column: 20, + }; const syntaxes = parser.getSuggestionAtCaretPosition(syntaxSql, pos)?.syntax; - const suggestion = syntaxes?.find(syn => syn.syntaxContextType === SyntaxContextType.FUNCTION_CREATE); + const suggestion = syntaxes?.find( + (syn) => syn.syntaxContextType === SyntaxContextType.FUNCTION_CREATE + ); expect(suggestion).not.toBeUndefined(); - expect(suggestion?.wordRanges.map(token => token.text)) - .toEqual([ 'fn1' ]) + expect(suggestion?.wordRanges.map((token) => token.text)).toEqual(['fn1']); }); test('Use function', () => { const pos: CaretPosition = { lineNumber: 15, - column: 27 - } + column: 27, + }; const syntaxes = parser.getSuggestionAtCaretPosition(syntaxSql, pos)?.syntax; - const suggestion = syntaxes?.find(syn => syn.syntaxContextType === SyntaxContextType.FUNCTION); + const suggestion = syntaxes?.find( + (syn) => syn.syntaxContextType === SyntaxContextType.FUNCTION + ); expect(suggestion).not.toBeUndefined(); - expect(suggestion?.wordRanges.map(token => token.text)) - .toEqual([ 'calculate_age' ]) + expect(suggestion?.wordRanges.map((token) => token.text)).toEqual(['calculate_age']); }); test('Create database', () => { const pos: CaretPosition = { lineNumber: 17, - column: 19 - } + column: 19, + }; const syntaxes = parser.getSuggestionAtCaretPosition(syntaxSql, pos)?.syntax; - const suggestion = syntaxes?.find(syn => syn.syntaxContextType === SyntaxContextType.DATABASE_CREATE); + const suggestion = syntaxes?.find( + (syn) => syn.syntaxContextType === SyntaxContextType.DATABASE_CREATE + ); expect(suggestion).not.toBeUndefined(); - expect(suggestion?.wordRanges.map(token => token.text)) - .toEqual([ 'db' ]) + expect(suggestion?.wordRanges.map((token) => token.text)).toEqual(['db']); }); test('Drop database', () => { const pos: CaretPosition = { lineNumber: 19, - column: 26 - } + column: 26, + }; const syntaxes = parser.getSuggestionAtCaretPosition(syntaxSql, pos)?.syntax; - const suggestion = syntaxes?.find(syn => syn.syntaxContextType === SyntaxContextType.DATABASE); + const suggestion = syntaxes?.find( + (syn) => syn.syntaxContextType === SyntaxContextType.DATABASE + ); expect(suggestion).not.toBeUndefined(); - expect(suggestion?.wordRanges.map(token => token.text)) - .toEqual([ 'sch' ]) + expect(suggestion?.wordRanges.map((token) => token.text)).toEqual(['sch']); }); - -}) \ No newline at end of file +}); diff --git a/test/parser/hive/suggestion/tokenSuggestion.test.ts b/test/parser/hive/suggestion/tokenSuggestion.test.ts index fe9390e..6611076 100644 --- a/test/parser/hive/suggestion/tokenSuggestion.test.ts +++ b/test/parser/hive/suggestion/tokenSuggestion.test.ts @@ -1,232 +1,191 @@ -import fs from "fs"; -import path from "path"; -import { CaretPosition } from "../../../../src/parser/common/basic-parser-types"; -import HiveSQL from "../../../../src/parser/hive"; +import fs from 'fs'; +import path from 'path'; +import { CaretPosition } from '../../../../src/parser/common/basic-parser-types'; +import HiveSQL from '../../../../src/parser/hive'; -const tokenSql = fs.readFileSync( - path.join(__dirname, "fixtures", "tokenSuggestion.sql"), - "utf-8" -); +const tokenSql = fs.readFileSync(path.join(__dirname, 'fixtures', 'tokenSuggestion.sql'), 'utf-8'); -describe("Hive SQL Syntax Suggestion", () => { +describe('Hive SQL Syntax Suggestion', () => { const parser = new HiveSQL(); - test("After ALTER", () => { + test('After ALTER', () => { const pos: CaretPosition = { lineNumber: 1, column: 7, }; - const suggestion = parser.getSuggestionAtCaretPosition( - tokenSql, - pos - )?.keywords; + const suggestion = parser.getSuggestionAtCaretPosition(tokenSql, pos)?.keywords; expect(suggestion).toEqual([ - "APPLICATION", - "GROUP", - "USER", - "POOL", - "TRIGGER", - "RESOURCE", - "SCHEDULED", - "INDEX", - "CONNECTOR", - "DATABASE", - "SCHEMA", - "MATERIALIZED", - "VIEW", - "TABLE", + 'APPLICATION', + 'GROUP', + 'USER', + 'POOL', + 'TRIGGER', + 'RESOURCE', + 'SCHEDULED', + 'INDEX', + 'CONNECTOR', + 'DATABASE', + 'SCHEMA', + 'MATERIALIZED', + 'VIEW', + 'TABLE', ]); }); - test("After CREATE", () => { + test('After CREATE', () => { const pos: CaretPosition = { lineNumber: 3, column: 8, }; - const suggestion = parser.getSuggestionAtCaretPosition( - tokenSql, - pos - )?.keywords; + const suggestion = parser.getSuggestionAtCaretPosition(tokenSql, pos)?.keywords; expect(suggestion).toEqual([ - "CONNECTOR", - "APPLICATION", - "GROUP", - "USER", - "POOL", - "TRIGGER", - "RESOURCE", - "ROLE", - "INDEX", - "TEMPORARY", - "FUNCTION", - "SCHEDULED", - "MATERIALIZED", - "VIEW", - "OR", - "MANAGED", - "TABLE", - "EXTERNAL", - "TRANSACTIONAL", - "REMOTE", - "DATABASE", - "SCHEMA", + 'CONNECTOR', + 'APPLICATION', + 'GROUP', + 'USER', + 'POOL', + 'TRIGGER', + 'RESOURCE', + 'ROLE', + 'INDEX', + 'TEMPORARY', + 'FUNCTION', + 'SCHEDULED', + 'MATERIALIZED', + 'VIEW', + 'OR', + 'MANAGED', + 'TABLE', + 'EXTERNAL', + 'TRANSACTIONAL', + 'REMOTE', + 'DATABASE', + 'SCHEMA', ]); }); - test("After DELETE", () => { + test('After DELETE', () => { const pos: CaretPosition = { lineNumber: 5, column: 8, }; - const suggestion = parser.getSuggestionAtCaretPosition( - tokenSql, - pos - )?.keywords; + const suggestion = parser.getSuggestionAtCaretPosition(tokenSql, pos)?.keywords; expect(suggestion).toEqual(['FROM']); }); - test("After DESCRIBE", () => { + test('After DESCRIBE', () => { const pos: CaretPosition = { lineNumber: 7, column: 10, }; - const suggestion = parser.getSuggestionAtCaretPosition( - tokenSql, - pos - )?.keywords; + const suggestion = parser.getSuggestionAtCaretPosition(tokenSql, pos)?.keywords; expect(suggestion).toEqual([ - "EXTENDED", - "FORMATTED", - "FUNCTION", - "CONNECTOR", - "DATABASE", - "SCHEMA", + 'EXTENDED', + 'FORMATTED', + 'FUNCTION', + 'CONNECTOR', + 'DATABASE', + 'SCHEMA', ]); }); - test("After DROP", () => { + test('After DROP', () => { const pos: CaretPosition = { lineNumber: 9, column: 6, }; - const suggestion = parser.getSuggestionAtCaretPosition( - tokenSql, - pos - )?.keywords; + const suggestion = parser.getSuggestionAtCaretPosition(tokenSql, pos)?.keywords; expect(suggestion).toEqual([ - "CONNECTOR", - "APPLICATION", - "GROUP", - "USER", - "POOL", - "TRIGGER", - "RESOURCE", - "ROLE", - "INDEX", - "TEMPORARY", - "FUNCTION", - "MATERIALIZED", - "VIEW", - "SCHEDULED", - "TABLE", - "DATABASE", - "SCHEMA", + 'CONNECTOR', + 'APPLICATION', + 'GROUP', + 'USER', + 'POOL', + 'TRIGGER', + 'RESOURCE', + 'ROLE', + 'INDEX', + 'TEMPORARY', + 'FUNCTION', + 'MATERIALIZED', + 'VIEW', + 'SCHEDULED', + 'TABLE', + 'DATABASE', + 'SCHEMA', ]); }); - test("After EXPORT", () => { + test('After EXPORT', () => { const pos: CaretPosition = { lineNumber: 11, column: 8, }; - const suggestion = parser.getSuggestionAtCaretPosition( - tokenSql, - pos - )?.keywords; + const suggestion = parser.getSuggestionAtCaretPosition(tokenSql, pos)?.keywords; expect(suggestion).toEqual(['TABLE']); }); - test("After IMPORT", () => { + test('After IMPORT', () => { const pos: CaretPosition = { lineNumber: 13, column: 8, }; - const suggestion = parser.getSuggestionAtCaretPosition( - tokenSql, - pos - )?.keywords; - expect(suggestion).toEqual([ - "FROM", - "TABLE", - "EXTERNAL", - ]); + const suggestion = parser.getSuggestionAtCaretPosition(tokenSql, pos)?.keywords; + expect(suggestion).toEqual(['FROM', 'TABLE', 'EXTERNAL']); }); - test("After INSERT", () => { + test('After INSERT', () => { const pos: CaretPosition = { lineNumber: 15, column: 8, }; - const suggestion = parser.getSuggestionAtCaretPosition( - tokenSql, - pos - )?.keywords; - expect(suggestion).toEqual([ - "INTO", - "OVERWRITE", - ]); + const suggestion = parser.getSuggestionAtCaretPosition(tokenSql, pos)?.keywords; + expect(suggestion).toEqual(['INTO', 'OVERWRITE']); }); - test("After LOAD", () => { + test('After LOAD', () => { const pos: CaretPosition = { lineNumber: 17, column: 6, }; - const suggestion = parser.getSuggestionAtCaretPosition( - tokenSql, - pos - )?.keywords; - expect(suggestion).toEqual(["DATA" - ]); + const suggestion = parser.getSuggestionAtCaretPosition(tokenSql, pos)?.keywords; + expect(suggestion).toEqual(['DATA']); }); - test("After SHOW", () => { + test('After SHOW', () => { const pos: CaretPosition = { lineNumber: 19, column: 6, }; - const suggestion = parser.getSuggestionAtCaretPosition( - tokenSql, - pos - )?.keywords; + const suggestion = parser.getSuggestionAtCaretPosition(tokenSql, pos)?.keywords; expect(suggestion).toEqual([ - "CURRENT", - "ROLES", - "PRINCIPALS", - "ROLE", - "GRANT", - "INDEX", - "INDEXES", - "FORMATTED", - "CONNECTORS", - "RESOURCE", - "CONF", - "TRANSACTIONS", - "COMPACTIONS", - "LOCKS", - "TBLPROPERTIES", - "TABLE", - "CREATE", - "PARTITIONS", - "FUNCTIONS", - "COLUMNS", - "SORTED", - "MATERIALIZED", - "VIEWS", - "TABLES", - "EXTENDED", - "DATABASES", - "SCHEMAS", + 'CURRENT', + 'ROLES', + 'PRINCIPALS', + 'ROLE', + 'GRANT', + 'INDEX', + 'INDEXES', + 'FORMATTED', + 'CONNECTORS', + 'RESOURCE', + 'CONF', + 'TRANSACTIONS', + 'COMPACTIONS', + 'LOCKS', + 'TBLPROPERTIES', + 'TABLE', + 'CREATE', + 'PARTITIONS', + 'FUNCTIONS', + 'COLUMNS', + 'SORTED', + 'MATERIALIZED', + 'VIEWS', + 'TABLES', + 'EXTENDED', + 'DATABASES', + 'SCHEMAS', ]); }); }); diff --git a/test/parser/hive/syntax/createStatement.test.ts b/test/parser/hive/syntax/createStatement.test.ts index a1bb1b5..968e263 100644 --- a/test/parser/hive/syntax/createStatement.test.ts +++ b/test/parser/hive/syntax/createStatement.test.ts @@ -12,7 +12,7 @@ const features = { indexes: readSQL(__dirname, 'createIndex.sql'), macros: readSQL(__dirname, 'createMacro.sql'), connectors: readSQL(__dirname, 'createConnector.sql'), - scheduledQueries: readSQL(__dirname, 'createScheduledQuery.sql') + scheduledQueries: readSQL(__dirname, 'createScheduledQuery.sql'), }; describe('HiveSQL Create Syntax Tests', () => { diff --git a/test/parser/hive/syntax/dropStatement.test.ts b/test/parser/hive/syntax/dropStatement.test.ts index df6d7be..2cc80c3 100644 --- a/test/parser/hive/syntax/dropStatement.test.ts +++ b/test/parser/hive/syntax/dropStatement.test.ts @@ -5,7 +5,7 @@ const parser = new HiveSQL(); const features = { drops: readSQL(__dirname, 'drop.sql'), - reloads: readSQL(__dirname, 'reload.sql') + reloads: readSQL(__dirname, 'reload.sql'), }; describe('HiveSQL Drop Syntax Tests', () => { diff --git a/test/parser/hive/syntax/exportStatement.test.ts b/test/parser/hive/syntax/exportStatement.test.ts index 3f15310..1a9fd0b 100644 --- a/test/parser/hive/syntax/exportStatement.test.ts +++ b/test/parser/hive/syntax/exportStatement.test.ts @@ -2,7 +2,7 @@ import HiveSQL from '../../../../src/parser/hive'; import { readSQL } from '../../../helper'; const features = { - exports: readSQL(__dirname, 'export.sql') + exports: readSQL(__dirname, 'export.sql'), }; describe('HiveSQL Export Syntax Tests', () => { @@ -14,4 +14,3 @@ describe('HiveSQL Export Syntax Tests', () => { }); }); }); - diff --git a/test/parser/hive/syntax/importStatement.test.ts b/test/parser/hive/syntax/importStatement.test.ts index fdc961c..6ba4d58 100644 --- a/test/parser/hive/syntax/importStatement.test.ts +++ b/test/parser/hive/syntax/importStatement.test.ts @@ -1,8 +1,8 @@ import HiveSQL from '../../../../src/parser/hive'; -import { readSQL } from "../../../helper"; +import { readSQL } from '../../../helper'; const features = { - imports: readSQL(__dirname, 'import.sql') + imports: readSQL(__dirname, 'import.sql'), }; describe('HiveSQL Import Syntax Tests', () => { diff --git a/test/parser/hive/syntax/insertStatement.test.ts b/test/parser/hive/syntax/insertStatement.test.ts index 5e3773a..08ccb57 100644 --- a/test/parser/hive/syntax/insertStatement.test.ts +++ b/test/parser/hive/syntax/insertStatement.test.ts @@ -5,7 +5,7 @@ const parser = new HiveSQL(); const features = { insertFromQueries: readSQL(__dirname, 'insertFromQuery.sql'), - insertFromValues: readSQL(__dirname, 'insertFormValues.sql') + insertFromValues: readSQL(__dirname, 'insertFormValues.sql'), }; describe('HiveSQL Insert Syntax Tests', () => { diff --git a/test/parser/hive/visitor.test.ts b/test/parser/hive/visitor.test.ts index 42f4017..4cc1908 100644 --- a/test/parser/hive/visitor.test.ts +++ b/test/parser/hive/visitor.test.ts @@ -15,7 +15,6 @@ describe('HiveSQL Visitor Tests', () => { test('Visitor visitTableName', () => { let result = ''; class MyVisitor extends AbstractParseTreeVisitor implements HiveSqlParserVisitor { - defaultResult() { return result; } diff --git a/test/parser/pgsql/listener.test.ts b/test/parser/pgsql/listener.test.ts index e27983b..6f75d52 100644 --- a/test/parser/pgsql/listener.test.ts +++ b/test/parser/pgsql/listener.test.ts @@ -1,3 +1,4 @@ +import { ParseTreeListener } from 'antlr4ts/tree'; import { Target_listContext } from '../../../src/lib/pgsql/PostgreSQLParser'; import { PostgreSQLParserListener } from '../../../src/lib/pgsql/PostgreSQLParserListener'; import PostgresSQL from '../../../src/parser/pgsql'; @@ -16,9 +17,9 @@ describe('PostgresSQL Listener Tests', () => { result = ctx.text.toLowerCase(); } } - const listenTableName: any = new MyListener(); + const listenTableName = new MyListener(); - await parser.listen(listenTableName, parserTree); + await parser.listen(listenTableName as ParseTreeListener, parserTree); expect(result).toBe(expectTableName); }); }); diff --git a/test/parser/pgsql/selectStatement.test.ts b/test/parser/pgsql/selectStatement.test.ts index e3c6f74..d44eb54 100644 --- a/test/parser/pgsql/selectStatement.test.ts +++ b/test/parser/pgsql/selectStatement.test.ts @@ -1,14 +1,14 @@ -import PostgresSQL from "../../../src/parser/pgsql"; -import { readSQL } from "../../helper"; +import PostgresSQL from '../../../src/parser/pgsql'; +import { readSQL } from '../../helper'; const parser = new PostgresSQL(); const features = { - base: readSQL(__dirname, "select.sql"), + base: readSQL(__dirname, 'select.sql'), }; -describe("Postgre SQL Query Statement Tests", () => { - describe("Base Select", () => { +describe('Postgre SQL Query Statement Tests', () => { + describe('Base Select', () => { features.base.forEach((sql) => { it(sql, () => { expect(parser.validate(sql).length).toBe(0); diff --git a/test/parser/pgsql/syntax.test.ts b/test/parser/pgsql/syntax.test.ts index 5322dc7..3711f7e 100644 --- a/test/parser/pgsql/syntax.test.ts +++ b/test/parser/pgsql/syntax.test.ts @@ -1,4 +1,4 @@ -import PostgresSQL from "../../../src/parser/pgsql"; +import PostgresSQL from '../../../src/parser/pgsql'; describe('PostgresSQL SQL Syntax Tests', () => { const parser = new PostgresSQL(); @@ -21,5 +21,4 @@ describe('PostgresSQL SQL Syntax Tests', () => { const result = parser.validate(sql); expect(result.length).toBe(0); }); - }); diff --git a/test/parser/pgsql/visitor.test.ts b/test/parser/pgsql/visitor.test.ts index 38ff34d..f5eb732 100644 --- a/test/parser/pgsql/visitor.test.ts +++ b/test/parser/pgsql/visitor.test.ts @@ -1,6 +1,6 @@ -import { AbstractParseTreeVisitor } from "antlr4ts/tree/AbstractParseTreeVisitor"; -import { PostgreSQLParserVisitor } from "../../../src/lib/pgsql/PostgreSQLParserVisitor"; -import PostgresSQL from "../../../src/parser/pgsql"; +import { AbstractParseTreeVisitor } from 'antlr4ts/tree/AbstractParseTreeVisitor'; +import { PostgreSQLParserVisitor } from '../../../src/lib/pgsql/PostgreSQLParserVisitor'; +import PostgresSQL from '../../../src/parser/pgsql'; describe('Generic SQL Visitor Tests', () => { const expectTableName = 'user1'; @@ -13,11 +13,14 @@ describe('Generic SQL Visitor Tests', () => { test('Visitor visitTableName', () => { let result = ''; - class MyVisitor extends AbstractParseTreeVisitor implements PostgreSQLParserVisitor { + class MyVisitor + extends AbstractParseTreeVisitor + implements PostgreSQLParserVisitor + { protected defaultResult() { return result; } - + visitTable_ref(ctx) { result = ctx.text.toLowerCase(); } diff --git a/test/parser/plsql/listener.test.ts b/test/parser/plsql/listener.test.ts index 809fe04..d9f19c5 100644 --- a/test/parser/plsql/listener.test.ts +++ b/test/parser/plsql/listener.test.ts @@ -1,3 +1,4 @@ +import { ParseTreeListener } from 'antlr4ts/tree'; import { PlSqlParserListener } from '../../../src/lib/plsql/PlSqlParserListener'; import PLSQL from '../../../src/parser/plsql'; @@ -11,14 +12,13 @@ describe('PLSQL Listener Tests', () => { test('Listener enterTableName', async () => { let result = ''; class MyListener implements PlSqlParserListener { - // eslint-disable-next-line camelcase enterTable_ref_list = (ctx): void => { result = ctx.text.toLowerCase(); - } + }; } - const listenTableName: any = new MyListener(); + const listenTableName = new MyListener(); - await parser.listen(listenTableName, parserTree); + await parser.listen(listenTableName as ParseTreeListener, parserTree); expect(result).toBe(expectTableName); }); }); diff --git a/test/parser/plsql/visitor.test.ts b/test/parser/plsql/visitor.test.ts index 6cfa6d5..631b54f 100644 --- a/test/parser/plsql/visitor.test.ts +++ b/test/parser/plsql/visitor.test.ts @@ -15,10 +15,9 @@ describe('PLSQL Visitor Tests', () => { protected defaultResult() { return result; } - // eslint-disable-next-line camelcase visitTable_ref_list = (ctx): void => { result = ctx.text.toLowerCase(); - } + }; } const visitor: any = new MyVisitor(); visitor.visit(parserTree); diff --git a/test/parser/spark/listener.test.ts b/test/parser/spark/listener.test.ts index 83ffe06..f510275 100644 --- a/test/parser/spark/listener.test.ts +++ b/test/parser/spark/listener.test.ts @@ -1,3 +1,4 @@ +import { ParseTreeListener } from 'antlr4ts/tree'; import { SparkSqlParserListener } from '../../../src/lib/spark/SparkSqlParserListener'; import SparkSQL from '../../../src/parser/spark'; @@ -13,11 +14,11 @@ describe('Spark SQL Listener Tests', () => { class MyListener implements SparkSqlParserListener { exitRelationPrimary = (ctx): void => { result = ctx.text.toLowerCase(); - } + }; } const listenTableName = new MyListener(); - parser.listen(listenTableName, parserTree); + parser.listen(listenTableName as ParseTreeListener, parserTree); expect(result).toBe(expectTableName); }); }); diff --git a/test/parser/spark/suggestion/syntaxSuggestion.test.ts b/test/parser/spark/suggestion/syntaxSuggestion.test.ts index 6ddf425..622975f 100644 --- a/test/parser/spark/suggestion/syntaxSuggestion.test.ts +++ b/test/parser/spark/suggestion/syntaxSuggestion.test.ts @@ -3,7 +3,10 @@ import path from 'path'; import { CaretPosition, SyntaxContextType } from '../../../../src/parser/common/basic-parser-types'; import SparkSQL from '../../../../src/parser/spark'; -const syntaxSql = fs.readFileSync(path.join(__dirname, 'fixtures', 'syntaxSuggestion.sql'), 'utf-8'); +const syntaxSql = fs.readFileSync( + path.join(__dirname, 'fixtures', 'syntaxSuggestion.sql'), + 'utf-8' +); describe('Spark SQL Syntax Suggestion', () => { const parser = new SparkSQL(); @@ -20,11 +23,12 @@ describe('Spark SQL Syntax Suggestion', () => { column: 18, }; const syntaxes = parser.getSuggestionAtCaretPosition(syntaxSql, pos)?.syntax; - const suggestion = syntaxes?.find((syn) => syn.syntaxContextType === SyntaxContextType.TABLE); + const suggestion = syntaxes?.find( + (syn) => syn.syntaxContextType === SyntaxContextType.TABLE + ); expect(suggestion).not.toBeUndefined(); - expect(suggestion?.wordRanges.map((token) => token.text)) - .toEqual(['db', '.', 'tb']); + expect(suggestion?.wordRanges.map((token) => token.text)).toEqual(['db', '.', 'tb']); }); test('Select table ', () => { @@ -33,11 +37,12 @@ describe('Spark SQL Syntax Suggestion', () => { column: 18, }; const syntaxes = parser.getSuggestionAtCaretPosition(syntaxSql, pos)?.syntax; - const suggestion = syntaxes?.find((syn) => syn.syntaxContextType === SyntaxContextType.TABLE); + const suggestion = syntaxes?.find( + (syn) => syn.syntaxContextType === SyntaxContextType.TABLE + ); expect(suggestion).not.toBeUndefined(); - expect(suggestion?.wordRanges.map((token) => token.text)) - .toEqual(['db', '.']); + expect(suggestion?.wordRanges.map((token) => token.text)).toEqual(['db', '.']); }); test('Create table ', () => { @@ -46,11 +51,12 @@ describe('Spark SQL Syntax Suggestion', () => { column: 17, }; const syntaxes = parser.getSuggestionAtCaretPosition(syntaxSql, pos)?.syntax; - const suggestion = syntaxes?.find((syn) => syn.syntaxContextType === SyntaxContextType.TABLE_CREATE); + const suggestion = syntaxes?.find( + (syn) => syn.syntaxContextType === SyntaxContextType.TABLE_CREATE + ); expect(suggestion).not.toBeUndefined(); - expect(suggestion?.wordRanges.map((token) => token.text)) - .toEqual(['db', '.']); + expect(suggestion?.wordRanges.map((token) => token.text)).toEqual(['db', '.']); }); test('DROP table ', () => { @@ -59,11 +65,12 @@ describe('Spark SQL Syntax Suggestion', () => { column: 26, }; const syntaxes = parser.getSuggestionAtCaretPosition(syntaxSql, pos)?.syntax; - const suggestion = syntaxes?.find((syn) => syn.syntaxContextType === SyntaxContextType.TABLE); + const suggestion = syntaxes?.find( + (syn) => syn.syntaxContextType === SyntaxContextType.TABLE + ); expect(suggestion).not.toBeUndefined(); - expect(suggestion?.wordRanges.map((token) => token.text)) - .toEqual(['db', '.', 'a']); + expect(suggestion?.wordRanges.map((token) => token.text)).toEqual(['db', '.', 'a']); }); test('Create view ', () => { @@ -72,11 +79,12 @@ describe('Spark SQL Syntax Suggestion', () => { column: 28, }; const syntaxes = parser.getSuggestionAtCaretPosition(syntaxSql, pos)?.syntax; - const suggestion = syntaxes?.find((syn) => syn.syntaxContextType === SyntaxContextType.VIEW_CREATE); + const suggestion = syntaxes?.find( + (syn) => syn.syntaxContextType === SyntaxContextType.VIEW_CREATE + ); expect(suggestion).not.toBeUndefined(); - expect(suggestion?.wordRanges.map((token) => token.text)) - .toEqual(['db', '.', 'v']); + expect(suggestion?.wordRanges.map((token) => token.text)).toEqual(['db', '.', 'v']); }); test('Drop view ', () => { @@ -85,11 +93,12 @@ describe('Spark SQL Syntax Suggestion', () => { column: 15, }; const syntaxes = parser.getSuggestionAtCaretPosition(syntaxSql, pos)?.syntax; - const suggestion = syntaxes?.find((syn) => syn.syntaxContextType === SyntaxContextType.VIEW); + const suggestion = syntaxes?.find( + (syn) => syn.syntaxContextType === SyntaxContextType.VIEW + ); expect(suggestion).not.toBeUndefined(); - expect(suggestion?.wordRanges.map((token) => token.text)) - .toEqual(['db', '.', 'v']); + expect(suggestion?.wordRanges.map((token) => token.text)).toEqual(['db', '.', 'v']); }); test('Create function ', () => { @@ -98,11 +107,12 @@ describe('Spark SQL Syntax Suggestion', () => { column: 20, }; const syntaxes = parser.getSuggestionAtCaretPosition(syntaxSql, pos)?.syntax; - const suggestion = syntaxes?.find((syn) => syn.syntaxContextType === SyntaxContextType.FUNCTION_CREATE); + const suggestion = syntaxes?.find( + (syn) => syn.syntaxContextType === SyntaxContextType.FUNCTION_CREATE + ); expect(suggestion).not.toBeUndefined(); - expect(suggestion?.wordRanges.map((token) => token.text)) - .toEqual(['fn1']); + expect(suggestion?.wordRanges.map((token) => token.text)).toEqual(['fn1']); }); test('Use function', () => { @@ -111,11 +121,12 @@ describe('Spark SQL Syntax Suggestion', () => { column: 27, }; const syntaxes = parser.getSuggestionAtCaretPosition(syntaxSql, pos)?.syntax; - const suggestion = syntaxes?.find((syn) => syn.syntaxContextType === SyntaxContextType.FUNCTION); + const suggestion = syntaxes?.find( + (syn) => syn.syntaxContextType === SyntaxContextType.FUNCTION + ); expect(suggestion).not.toBeUndefined(); - expect(suggestion?.wordRanges.map((token) => token.text)) - .toEqual(['calculate_age']); + expect(suggestion?.wordRanges.map((token) => token.text)).toEqual(['calculate_age']); }); test('Create database', () => { @@ -124,11 +135,12 @@ describe('Spark SQL Syntax Suggestion', () => { column: 19, }; const syntaxes = parser.getSuggestionAtCaretPosition(syntaxSql, pos)?.syntax; - const suggestion = syntaxes?.find((syn) => syn.syntaxContextType === SyntaxContextType.DATABASE_CREATE); + const suggestion = syntaxes?.find( + (syn) => syn.syntaxContextType === SyntaxContextType.DATABASE_CREATE + ); expect(suggestion).not.toBeUndefined(); - expect(suggestion?.wordRanges.map((token) => token.text)) - .toEqual(['db']); + expect(suggestion?.wordRanges.map((token) => token.text)).toEqual(['db']); }); test('Drop database', () => { @@ -137,10 +149,11 @@ describe('Spark SQL Syntax Suggestion', () => { column: 26, }; const syntaxes = parser.getSuggestionAtCaretPosition(syntaxSql, pos)?.syntax; - const suggestion = syntaxes?.find((syn) => syn.syntaxContextType === SyntaxContextType.DATABASE); + const suggestion = syntaxes?.find( + (syn) => syn.syntaxContextType === SyntaxContextType.DATABASE + ); expect(suggestion).not.toBeUndefined(); - expect(suggestion?.wordRanges.map((token) => token.text)) - .toEqual(['sch']); + expect(suggestion?.wordRanges.map((token) => token.text)).toEqual(['sch']); }); }); diff --git a/test/parser/spark/suggestion/tokenSuggestion.test.ts b/test/parser/spark/suggestion/tokenSuggestion.test.ts index f745685..0b6afed 100644 --- a/test/parser/spark/suggestion/tokenSuggestion.test.ts +++ b/test/parser/spark/suggestion/tokenSuggestion.test.ts @@ -13,19 +13,9 @@ describe('Spark SQL Syntax Suggestion', () => { lineNumber: 1, column: 7, }; - const suggestion = parser.getSuggestionAtCaretPosition( - tokenSql, - pos, - )?.keywords; + const suggestion = parser.getSuggestionAtCaretPosition(tokenSql, pos)?.keywords; - expect(suggestion).toEqual([ - 'TABLE', - 'INDEX', - 'VIEW', - 'DATABASE', - 'NAMESPACE', - 'SCHEMA', - ]); + expect(suggestion).toEqual(['TABLE', 'INDEX', 'VIEW', 'DATABASE', 'NAMESPACE', 'SCHEMA']); }); test('After CREATE', () => { @@ -33,10 +23,7 @@ describe('Spark SQL Syntax Suggestion', () => { lineNumber: 3, column: 8, }; - const suggestion = parser.getSuggestionAtCaretPosition( - tokenSql, - pos, - )?.keywords; + const suggestion = parser.getSuggestionAtCaretPosition(tokenSql, pos)?.keywords; expect(suggestion).toEqual([ 'TEMPORARY', @@ -59,10 +46,7 @@ describe('Spark SQL Syntax Suggestion', () => { lineNumber: 5, column: 8, }; - const suggestion = parser.getSuggestionAtCaretPosition( - tokenSql, - pos, - )?.keywords; + const suggestion = parser.getSuggestionAtCaretPosition(tokenSql, pos)?.keywords; expect(suggestion).toEqual(['FROM']); }); @@ -72,10 +56,7 @@ describe('Spark SQL Syntax Suggestion', () => { lineNumber: 7, column: 10, }; - const suggestion = parser.getSuggestionAtCaretPosition( - tokenSql, - pos, - )?.keywords; + const suggestion = parser.getSuggestionAtCaretPosition(tokenSql, pos)?.keywords; expect(suggestion).toEqual([ 'WITH', @@ -98,10 +79,7 @@ describe('Spark SQL Syntax Suggestion', () => { lineNumber: 9, column: 6, }; - const suggestion = parser.getSuggestionAtCaretPosition( - tokenSql, - pos, - )?.keywords; + const suggestion = parser.getSuggestionAtCaretPosition(tokenSql, pos)?.keywords; expect(suggestion).toEqual([ 'TEMPORARY', @@ -121,15 +99,9 @@ describe('Spark SQL Syntax Suggestion', () => { lineNumber: 11, column: 8, }; - const suggestion = parser.getSuggestionAtCaretPosition( - tokenSql, - pos, - )?.keywords; + const suggestion = parser.getSuggestionAtCaretPosition(tokenSql, pos)?.keywords; - expect(suggestion).toEqual([ - 'OVERWRITE', - 'INTO', - ]); + expect(suggestion).toEqual(['OVERWRITE', 'INTO']); }); test('After LOAD', () => { @@ -137,14 +109,9 @@ describe('Spark SQL Syntax Suggestion', () => { lineNumber: 13, column: 6, }; - const suggestion = parser.getSuggestionAtCaretPosition( - tokenSql, - pos, - )?.keywords; + const suggestion = parser.getSuggestionAtCaretPosition(tokenSql, pos)?.keywords; - expect(suggestion).toEqual([ - 'DATA', - ]); + expect(suggestion).toEqual(['DATA']); }); test('After SHOW', () => { @@ -152,10 +119,7 @@ describe('Spark SQL Syntax Suggestion', () => { lineNumber: 15, column: 6, }; - const suggestion = parser.getSuggestionAtCaretPosition( - tokenSql, - pos, - )?.keywords; + const suggestion = parser.getSuggestionAtCaretPosition(tokenSql, pos)?.keywords; expect(suggestion).toEqual([ 'LOCKS', @@ -190,10 +154,7 @@ describe('Spark SQL Syntax Suggestion', () => { lineNumber: 17, column: 8, }; - const suggestion = parser.getSuggestionAtCaretPosition( - tokenSql, - pos, - )?.keywords; + const suggestion = parser.getSuggestionAtCaretPosition(tokenSql, pos)?.keywords; expect(suggestion).toEqual(['TABLE']); }); diff --git a/test/parser/spark/syntax/insertStatement.test.ts b/test/parser/spark/syntax/insertStatement.test.ts index 1bd2336..555564b 100644 --- a/test/parser/spark/syntax/insertStatement.test.ts +++ b/test/parser/spark/syntax/insertStatement.test.ts @@ -1,7 +1,6 @@ import SparkSQL from '../../../../src/parser/spark'; import { readSQL } from '../../../helper'; - const parser = new SparkSQL(); const features = { diff --git a/test/parser/spark/syntax/loadStatement.test.ts b/test/parser/spark/syntax/loadStatement.test.ts index 62f0694..b24244b 100644 --- a/test/parser/spark/syntax/loadStatement.test.ts +++ b/test/parser/spark/syntax/loadStatement.test.ts @@ -1,7 +1,6 @@ import SparkSQL from '../../../../src/parser/spark'; import { readSQL } from '../../../helper'; - const parser = new SparkSQL(); const features = { diff --git a/test/parser/spark/visitor.test.ts b/test/parser/spark/visitor.test.ts index 23f303f..e9e270f 100644 --- a/test/parser/spark/visitor.test.ts +++ b/test/parser/spark/visitor.test.ts @@ -12,14 +12,17 @@ describe('Spark SQL Visitor Tests', () => { }); test('Visitor visitRelationPrimary', () => { - class MyVisitor extends AbstractParseTreeVisitor implements SparkSqlParserVisitor { + class MyVisitor + extends AbstractParseTreeVisitor + implements SparkSqlParserVisitor + { result: string = ''; protected defaultResult() { return this.result; } visitRelationPrimary = (ctx): void => { this.result = ctx.text.toLowerCase(); - } + }; } const visitor = new MyVisitor(); visitor.visit(parserTree); diff --git a/test/parser/trinosql/listener.test.ts b/test/parser/trinosql/listener.test.ts index 4468f11..7753712 100644 --- a/test/parser/trinosql/listener.test.ts +++ b/test/parser/trinosql/listener.test.ts @@ -1,5 +1,6 @@ import trinoSQL from '../../../src/parser/trinosql'; import { TrinoSqlListener } from '../../../src/lib/trinosql/TrinoSqlListener'; +import { ParseTreeListener } from 'antlr4ts/tree'; describe('trino SQL Listener Tests', () => { const expectTableName = 'user1'; @@ -11,14 +12,13 @@ describe('trino SQL Listener Tests', () => { test('Listener enterTableName', async () => { let result = ''; class MyListener implements TrinoSqlListener { - enterTableName = (ctx): void => { result = ctx.text.toLowerCase(); }; } const listenTableName = new MyListener(); - await parser.listen(listenTableName, parserTree); + await parser.listen(listenTableName as ParseTreeListener, parserTree); expect(result).toBe(expectTableName); }); }); diff --git a/test/parser/trinosql/syntax/alterStatement.test.ts b/test/parser/trinosql/syntax/alterStatement.test.ts index a099e64..f2178a4 100644 --- a/test/parser/trinosql/syntax/alterStatement.test.ts +++ b/test/parser/trinosql/syntax/alterStatement.test.ts @@ -1,11 +1,11 @@ -import TrinoSQL from "../../../../src/parser/trinosql"; -import { readSQL } from "../../../helper"; +import TrinoSQL from '../../../../src/parser/trinosql'; +import { readSQL } from '../../../helper'; const features = { table: readSQL(__dirname, 'alter_table.sql'), view: readSQL(__dirname, 'alter_view.sql'), schema: readSQL(__dirname, 'alter_schema.sql'), - materializedView: readSQL(__dirname, 'alter_materialized_view.sql') + materializedView: readSQL(__dirname, 'alter_materialized_view.sql'), }; describe('TrinoSQL Alter Statements Syntax Tests', () => { @@ -19,16 +19,15 @@ describe('TrinoSQL Alter Statements Syntax Tests', () => { it(sql, () => { expect(parser.validate(sql).length).toBe(0); }); - }); + }); features.schema.forEach((sql) => { it(sql, () => { expect(parser.validate(sql).length).toBe(0); }); - }); - features.materializedView.forEach((sql) => { + }); + features.materializedView.forEach((sql) => { it(sql, () => { expect(parser.validate(sql).length).toBe(0); }); - }); + }); }); - diff --git a/test/parser/trinosql/syntax/analyzeStatement.test.ts b/test/parser/trinosql/syntax/analyzeStatement.test.ts index 7d0f3fc..30044a5 100644 --- a/test/parser/trinosql/syntax/analyzeStatement.test.ts +++ b/test/parser/trinosql/syntax/analyzeStatement.test.ts @@ -1,9 +1,8 @@ -import TrinoSQL from "../../../../src/parser/trinosql"; -import { readSQL } from "../../../helper"; +import TrinoSQL from '../../../../src/parser/trinosql'; +import { readSQL } from '../../../helper'; const features = { analyze: readSQL(__dirname, 'analyze.sql'), - }; describe('TrinoSQL Analyze Statements Syntax Tests', () => { @@ -15,4 +14,3 @@ describe('TrinoSQL Analyze Statements Syntax Tests', () => { }); }); }); - diff --git a/test/parser/trinosql/syntax/callStatement.test.ts b/test/parser/trinosql/syntax/callStatement.test.ts index 34a9742..ce20dc6 100644 --- a/test/parser/trinosql/syntax/callStatement.test.ts +++ b/test/parser/trinosql/syntax/callStatement.test.ts @@ -1,9 +1,8 @@ -import TrinoSQL from "../../../../src/parser/trinosql"; -import { readSQL } from "../../../helper"; +import TrinoSQL from '../../../../src/parser/trinosql'; +import { readSQL } from '../../../helper'; const features = { call: readSQL(__dirname, 'call.sql'), - }; describe('TrinoSQL Call Statements Syntax Tests', () => { @@ -15,4 +14,3 @@ describe('TrinoSQL Call Statements Syntax Tests', () => { }); }); }); - diff --git a/test/parser/trinosql/syntax/commentStatement.test.ts b/test/parser/trinosql/syntax/commentStatement.test.ts index 40ef625..8ad40de 100644 --- a/test/parser/trinosql/syntax/commentStatement.test.ts +++ b/test/parser/trinosql/syntax/commentStatement.test.ts @@ -1,9 +1,8 @@ -import TrinoSQL from "../../../../src/parser/trinosql"; -import { readSQL } from "../../../helper"; +import TrinoSQL from '../../../../src/parser/trinosql'; +import { readSQL } from '../../../helper'; const features = { comment: readSQL(__dirname, 'comment.sql'), - }; describe('TrinoSQL Comment Statements Syntax Tests', () => { @@ -15,4 +14,3 @@ describe('TrinoSQL Comment Statements Syntax Tests', () => { }); }); }); - diff --git a/test/parser/trinosql/syntax/commitStatement.test.ts b/test/parser/trinosql/syntax/commitStatement.test.ts index 8323787..e0d2d8d 100644 --- a/test/parser/trinosql/syntax/commitStatement.test.ts +++ b/test/parser/trinosql/syntax/commitStatement.test.ts @@ -1,5 +1,5 @@ -import TrinoSQL from "../../../../src/parser/trinosql"; -import { readSQL } from "../../../helper"; +import TrinoSQL from '../../../../src/parser/trinosql'; +import { readSQL } from '../../../helper'; const features = { commit: readSQL(__dirname, 'commit.sql'), @@ -14,4 +14,3 @@ describe('TrinoSQL Commit Statements Syntax Tests', () => { }); }); }); - diff --git a/test/parser/trinosql/syntax/createStatement.test.ts b/test/parser/trinosql/syntax/createStatement.test.ts index 3bfd003..ab3c78f 100644 --- a/test/parser/trinosql/syntax/createStatement.test.ts +++ b/test/parser/trinosql/syntax/createStatement.test.ts @@ -1,5 +1,5 @@ -import TrinoSQL from "../../../../src/parser/trinosql"; -import { readSQL } from "../../../helper"; +import TrinoSQL from '../../../../src/parser/trinosql'; +import { readSQL } from '../../../helper'; const features = { table: readSQL(__dirname, 'create_table.sql'), @@ -12,7 +12,7 @@ const features = { describe('TrinoSQL Create Statements Syntax Tests', () => { const parser = new TrinoSQL(); - features.table.forEach((sql) => { + features.table.forEach((sql) => { it(sql, () => { expect(parser.validate(sql).length).toBe(0); }); @@ -21,28 +21,26 @@ describe('TrinoSQL Create Statements Syntax Tests', () => { it(sql, () => { expect(parser.validate(sql).length).toBe(0); }); - }); + }); features.schema.forEach((sql) => { it(sql, () => { expect(parser.validate(sql).length).toBe(0); }); - }); + }); features.tableAsSelect.forEach((sql) => { it(sql, () => { expect(parser.validate(sql).length).toBe(0); }); - }); + }); features.role.forEach((sql) => { it(sql, () => { expect(parser.validate(sql).length).toBe(0); }); - }); + }); features.materializedView.forEach((sql) => { it(sql, () => { expect(parser.validate(sql).length).toBe(0); }); - }); - + }); }); - diff --git a/test/parser/trinosql/syntax/deallocatePrepareStatement.test.ts b/test/parser/trinosql/syntax/deallocatePrepareStatement.test.ts index 61d6da5..e3a71ce 100644 --- a/test/parser/trinosql/syntax/deallocatePrepareStatement.test.ts +++ b/test/parser/trinosql/syntax/deallocatePrepareStatement.test.ts @@ -1,5 +1,5 @@ -import TrinoSQL from "../../../../src/parser/trinosql"; -import { readSQL } from "../../../helper"; +import TrinoSQL from '../../../../src/parser/trinosql'; +import { readSQL } from '../../../helper'; const features = { deallocatePrepare: readSQL(__dirname, 'deallocate_prepare.sql'), @@ -14,4 +14,3 @@ describe('TrinoSQL deallocatePrepare Statements Syntax Tests', () => { }); }); }); - diff --git a/test/parser/trinosql/syntax/deleteStatement.test.ts b/test/parser/trinosql/syntax/deleteStatement.test.ts index 4a1cb80..8543d6d 100644 --- a/test/parser/trinosql/syntax/deleteStatement.test.ts +++ b/test/parser/trinosql/syntax/deleteStatement.test.ts @@ -1,5 +1,5 @@ -import TrinoSQL from "../../../../src/parser/trinosql"; -import { readSQL } from "../../../helper"; +import TrinoSQL from '../../../../src/parser/trinosql'; +import { readSQL } from '../../../helper'; const features = { delete: readSQL(__dirname, 'delete.sql'), @@ -14,4 +14,3 @@ describe('TrinoSQL Delete Statements Syntax Tests', () => { }); }); }); - diff --git a/test/parser/trinosql/syntax/denyStatement.test.ts b/test/parser/trinosql/syntax/denyStatement.test.ts index 3680501..c322a35 100644 --- a/test/parser/trinosql/syntax/denyStatement.test.ts +++ b/test/parser/trinosql/syntax/denyStatement.test.ts @@ -1,5 +1,5 @@ -import TrinoSQL from "../../../../src/parser/trinosql"; -import { readSQL } from "../../../helper"; +import TrinoSQL from '../../../../src/parser/trinosql'; +import { readSQL } from '../../../helper'; const features = { deny: readSQL(__dirname, 'deny.sql'), @@ -14,4 +14,3 @@ describe('TrinoSQL Deny Statements Syntax Tests', () => { }); }); }); - diff --git a/test/parser/trinosql/syntax/describeStatement.test.ts b/test/parser/trinosql/syntax/describeStatement.test.ts index 2f1f3a6..8aff3e2 100644 --- a/test/parser/trinosql/syntax/describeStatement.test.ts +++ b/test/parser/trinosql/syntax/describeStatement.test.ts @@ -1,5 +1,5 @@ -import TrinoSQL from "../../../../src/parser/trinosql"; -import { readSQL } from "../../../helper"; +import TrinoSQL from '../../../../src/parser/trinosql'; +import { readSQL } from '../../../helper'; const features = { describe: readSQL(__dirname, 'describe.sql'), @@ -14,4 +14,3 @@ describe('TrinoSQL Describe Statements Syntax Tests', () => { }); }); }); - diff --git a/test/parser/trinosql/syntax/dropStatement.test.ts b/test/parser/trinosql/syntax/dropStatement.test.ts index 923bd35..491cb2e 100644 --- a/test/parser/trinosql/syntax/dropStatement.test.ts +++ b/test/parser/trinosql/syntax/dropStatement.test.ts @@ -1,5 +1,5 @@ -import TrinoSQL from "../../../../src/parser/trinosql"; -import { readSQL } from "../../../helper"; +import TrinoSQL from '../../../../src/parser/trinosql'; +import { readSQL } from '../../../helper'; const features = { table: readSQL(__dirname, 'drop_table.sql'), @@ -12,7 +12,7 @@ const features = { describe('TrinoSQL Drop Statements Syntax Tests', () => { const parser = new TrinoSQL(); - features.table.forEach((sql) => { + features.table.forEach((sql) => { it(sql, () => { expect(parser.validate(sql).length).toBe(0); }); @@ -21,28 +21,26 @@ describe('TrinoSQL Drop Statements Syntax Tests', () => { it(sql, () => { expect(parser.validate(sql).length).toBe(0); }); - }); + }); features.schema.forEach((sql) => { it(sql, () => { expect(parser.validate(sql).length).toBe(0); }); - }); + }); features.column.forEach((sql) => { it(sql, () => { expect(parser.validate(sql).length).toBe(0); }); - }); + }); features.role.forEach((sql) => { it(sql, () => { expect(parser.validate(sql).length).toBe(0); }); - }); + }); features.materializedView.forEach((sql) => { it(sql, () => { expect(parser.validate(sql).length).toBe(0); }); - }); - + }); }); - diff --git a/test/parser/trinosql/syntax/executeStatement.test.ts b/test/parser/trinosql/syntax/executeStatement.test.ts index 74fa5bc..5ee6c40 100644 --- a/test/parser/trinosql/syntax/executeStatement.test.ts +++ b/test/parser/trinosql/syntax/executeStatement.test.ts @@ -1,5 +1,5 @@ -import TrinoSQL from "../../../../src/parser/trinosql"; -import { readSQL } from "../../../helper"; +import TrinoSQL from '../../../../src/parser/trinosql'; +import { readSQL } from '../../../helper'; const features = { execute: readSQL(__dirname, 'execute.sql'), @@ -14,4 +14,3 @@ describe('TrinoSQL Execute Statements Syntax Tests', () => { }); }); }); - diff --git a/test/parser/trinosql/syntax/explainStatement.test.ts b/test/parser/trinosql/syntax/explainStatement.test.ts index c19b441..3561ef4 100644 --- a/test/parser/trinosql/syntax/explainStatement.test.ts +++ b/test/parser/trinosql/syntax/explainStatement.test.ts @@ -1,5 +1,5 @@ -import TrinoSQL from "../../../../src/parser/trinosql"; -import { readSQL } from "../../../helper"; +import TrinoSQL from '../../../../src/parser/trinosql'; +import { readSQL } from '../../../helper'; const features = { explain: readSQL(__dirname, 'explain.sql'), @@ -14,4 +14,3 @@ describe('TrinoSQL Explain Statements Syntax Tests', () => { }); }); }); - diff --git a/test/parser/trinosql/syntax/grantStatement.test.ts b/test/parser/trinosql/syntax/grantStatement.test.ts index 911eab8..e0d98fa 100644 --- a/test/parser/trinosql/syntax/grantStatement.test.ts +++ b/test/parser/trinosql/syntax/grantStatement.test.ts @@ -1,5 +1,5 @@ -import TrinoSQL from "../../../../src/parser/trinosql"; -import { readSQL } from "../../../helper"; +import TrinoSQL from '../../../../src/parser/trinosql'; +import { readSQL } from '../../../helper'; const features = { grant: readSQL(__dirname, 'grant.sql'), @@ -14,4 +14,3 @@ describe('TrinoSQL Grant Statements Syntax Tests', () => { }); }); }); - diff --git a/test/parser/trinosql/syntax/insertStatement.test.ts b/test/parser/trinosql/syntax/insertStatement.test.ts index 6fdc11a..fd537cc 100644 --- a/test/parser/trinosql/syntax/insertStatement.test.ts +++ b/test/parser/trinosql/syntax/insertStatement.test.ts @@ -1,5 +1,5 @@ -import TrinoSQL from "../../../../src/parser/trinosql"; -import { readSQL } from "../../../helper"; +import TrinoSQL from '../../../../src/parser/trinosql'; +import { readSQL } from '../../../helper'; const features = { insertIntoTable: readSQL(__dirname, 'insert_into.sql'), @@ -13,4 +13,3 @@ describe('TrinoSQL Insert Statements Syntax Tests', () => { }); }); }); - diff --git a/test/parser/trinosql/syntax/matchRecognizeStatement.test.ts b/test/parser/trinosql/syntax/matchRecognizeStatement.test.ts index 0d11abd..86bce72 100644 --- a/test/parser/trinosql/syntax/matchRecognizeStatement.test.ts +++ b/test/parser/trinosql/syntax/matchRecognizeStatement.test.ts @@ -1,5 +1,5 @@ -import TrinoSQL from "../../../../src/parser/trinosql"; -import { readSQL } from "../../../helper"; +import TrinoSQL from '../../../../src/parser/trinosql'; +import { readSQL } from '../../../helper'; const features = { matchRecognize: readSQL(__dirname, 'match_recognize.sql'), @@ -14,4 +14,3 @@ describe('TrinoSQL Match Recognize Statements Syntax Tests', () => { }); }); }); - diff --git a/test/parser/trinosql/syntax/merge.test.ts b/test/parser/trinosql/syntax/merge.test.ts index ec7856e..0a14487 100644 --- a/test/parser/trinosql/syntax/merge.test.ts +++ b/test/parser/trinosql/syntax/merge.test.ts @@ -1,5 +1,5 @@ -import TrinoSQL from "../../../../src/parser/trinosql"; -import { readSQL } from "../../../helper"; +import TrinoSQL from '../../../../src/parser/trinosql'; +import { readSQL } from '../../../helper'; const features = { merge: readSQL(__dirname, 'merge.sql'), @@ -14,4 +14,3 @@ describe('TrinoSQL Merge Statements Syntax Tests', () => { }); }); }); - diff --git a/test/parser/trinosql/syntax/prepareStatement.test.ts b/test/parser/trinosql/syntax/prepareStatement.test.ts index a9e8a01..0625754 100644 --- a/test/parser/trinosql/syntax/prepareStatement.test.ts +++ b/test/parser/trinosql/syntax/prepareStatement.test.ts @@ -1,5 +1,5 @@ -import TrinoSQL from "../../../../src/parser/trinosql"; -import { readSQL } from "../../../helper"; +import TrinoSQL from '../../../../src/parser/trinosql'; +import { readSQL } from '../../../helper'; const features = { prepare: readSQL(__dirname, 'prepare.sql'), @@ -14,4 +14,3 @@ describe('TrinoSQL Prepare Statements Syntax Tests', () => { }); }); }); - diff --git a/test/parser/trinosql/syntax/refreshMaterializedViewStatement.test.ts b/test/parser/trinosql/syntax/refreshMaterializedViewStatement.test.ts index 072f65d..bec5c55 100644 --- a/test/parser/trinosql/syntax/refreshMaterializedViewStatement.test.ts +++ b/test/parser/trinosql/syntax/refreshMaterializedViewStatement.test.ts @@ -1,5 +1,5 @@ -import TrinoSQL from "../../../../src/parser/trinosql"; -import { readSQL } from "../../../helper"; +import TrinoSQL from '../../../../src/parser/trinosql'; +import { readSQL } from '../../../helper'; const features = { refreshMaterializedView: readSQL(__dirname, 'refresh_materialized_view.sql'), @@ -14,4 +14,3 @@ describe('TrinoSQL Refresh Materialized View Statements Syntax Tests', () => { }); }); }); - diff --git a/test/parser/trinosql/syntax/resetSessionStatement.test.ts b/test/parser/trinosql/syntax/resetSessionStatement.test.ts index c2c425d..f963dd3 100644 --- a/test/parser/trinosql/syntax/resetSessionStatement.test.ts +++ b/test/parser/trinosql/syntax/resetSessionStatement.test.ts @@ -1,5 +1,5 @@ -import TrinoSQL from "../../../../src/parser/trinosql"; -import { readSQL } from "../../../helper"; +import TrinoSQL from '../../../../src/parser/trinosql'; +import { readSQL } from '../../../helper'; const features = { resetSession: readSQL(__dirname, 'reset_session.sql'), @@ -14,4 +14,3 @@ describe('TrinoSQL Reset Session Statements Syntax Tests', () => { }); }); }); - diff --git a/test/parser/trinosql/syntax/revokeStatement.test.ts b/test/parser/trinosql/syntax/revokeStatement.test.ts index b9a21ec..175d32e 100644 --- a/test/parser/trinosql/syntax/revokeStatement.test.ts +++ b/test/parser/trinosql/syntax/revokeStatement.test.ts @@ -1,5 +1,5 @@ -import TrinoSQL from "../../../../src/parser/trinosql"; -import { readSQL } from "../../../helper"; +import TrinoSQL from '../../../../src/parser/trinosql'; +import { readSQL } from '../../../helper'; const features = { revoke: readSQL(__dirname, 'revoke.sql'), @@ -20,4 +20,3 @@ describe('TrinoSQL Revoke Statements Syntax Tests', () => { }); }); }); - diff --git a/test/parser/trinosql/syntax/rollbackTransactionStatement.test.ts b/test/parser/trinosql/syntax/rollbackTransactionStatement.test.ts index 1b0a64c..f3f2eef 100644 --- a/test/parser/trinosql/syntax/rollbackTransactionStatement.test.ts +++ b/test/parser/trinosql/syntax/rollbackTransactionStatement.test.ts @@ -1,5 +1,5 @@ -import TrinoSQL from "../../../../src/parser/trinosql"; -import { readSQL } from "../../../helper"; +import TrinoSQL from '../../../../src/parser/trinosql'; +import { readSQL } from '../../../helper'; const features = { rollbackTransaction: readSQL(__dirname, 'rollback_transaction.sql'), @@ -14,4 +14,3 @@ describe('TrinoSQL Rollback Transaction Statements Syntax Tests', () => { }); }); }); - diff --git a/test/parser/trinosql/syntax/selectStatement.test.ts b/test/parser/trinosql/syntax/selectStatement.test.ts index 499dd83..4a52c21 100644 --- a/test/parser/trinosql/syntax/selectStatement.test.ts +++ b/test/parser/trinosql/syntax/selectStatement.test.ts @@ -1,5 +1,5 @@ -import TrinoSQL from "../../../../src/parser/trinosql"; -import { readSQL } from "../../../helper"; +import TrinoSQL from '../../../../src/parser/trinosql'; +import { readSQL } from '../../../helper'; const features = { select: readSQL(__dirname, 'select.sql'), @@ -13,12 +13,12 @@ const features = { selectWithFetch: readSQL(__dirname, 'select_with_fetch.sql'), selectWithUNNEST: readSQL(__dirname, 'select_with_ unnest.sql'), selectWithExists: readSQL(__dirname, 'select_with_exists.sql'), - selectWithUnion: readSQL(__dirname, 'select_with_union.sql') + selectWithUnion: readSQL(__dirname, 'select_with_union.sql'), }; describe('TrinoSQL Select Statements Syntax Tests', () => { const parser = new TrinoSQL(); - features.select.forEach((sql) => { + features.select.forEach((sql) => { it(sql, () => { expect(parser.validate(sql).length).toBe(0); }); @@ -27,57 +27,56 @@ describe('TrinoSQL Select Statements Syntax Tests', () => { it(sql, () => { expect(parser.validate(sql).length).toBe(0); }); - }); + }); features.selectWithSetOperations.forEach((sql) => { it(sql, () => { expect(parser.validate(sql).length).toBe(0); }); - }); + }); features.selectWithSubQueries.forEach((sql) => { it(sql, () => { expect(parser.validate(sql).length).toBe(0); }); - }); + }); features.selectWithTableSample.forEach((sql) => { it(sql, () => { expect(parser.validate(sql).length).toBe(0); }); - }); + }); features.selectWithRowType.forEach((sql) => { it(sql, () => { expect(parser.validate(sql).length).toBe(0); }); - }); + }); features.selectWithOffset.forEach((sql) => { it(sql, () => { expect(parser.validate(sql).length).toBe(0); }); - }); + }); features.selectWithJoin.forEach((sql) => { it(sql, () => { expect(parser.validate(sql).length).toBe(0); }); - }); + }); features.selectWithFetch.forEach((sql) => { it(sql, () => { expect(parser.validate(sql).length).toBe(0); }); - }); + }); features.selectWithUNNEST.forEach((sql) => { it(sql, () => { expect(parser.validate(sql).length).toBe(0); }); - }); - features.selectWithExists.forEach((sql) => { + }); + features.selectWithExists.forEach((sql) => { it(sql, () => { expect(parser.validate(sql).length).toBe(0); }); - }); + }); features.selectWithUnion.forEach((sql) => { it(sql, () => { expect(parser.validate(sql).length).toBe(0); }); - }); + }); }); - diff --git a/test/parser/trinosql/syntax/setStatement.test.ts b/test/parser/trinosql/syntax/setStatement.test.ts index ced2703..738ff85 100644 --- a/test/parser/trinosql/syntax/setStatement.test.ts +++ b/test/parser/trinosql/syntax/setStatement.test.ts @@ -1,5 +1,5 @@ -import TrinoSQL from "../../../../src/parser/trinosql"; -import { readSQL } from "../../../helper"; +import TrinoSQL from '../../../../src/parser/trinosql'; +import { readSQL } from '../../../helper'; const features = { role: readSQL(__dirname, 'set_role.sql'), @@ -32,4 +32,3 @@ describe('TrinoSQL Set Statements Syntax Tests', () => { }); }); }); - diff --git a/test/parser/trinosql/syntax/showStatement.test.ts b/test/parser/trinosql/syntax/showStatement.test.ts index 53ebeee..b67a74a 100644 --- a/test/parser/trinosql/syntax/showStatement.test.ts +++ b/test/parser/trinosql/syntax/showStatement.test.ts @@ -1,5 +1,5 @@ -import TrinoSQL from "../../../../src/parser/trinosql"; -import { readSQL } from "../../../helper"; +import TrinoSQL from '../../../../src/parser/trinosql'; +import { readSQL } from '../../../helper'; const features = { tables: readSQL(__dirname, 'show_tables.sql'), @@ -75,4 +75,3 @@ describe('TrinoSQL Show Statements Syntax Tests', () => { }); }); }); - diff --git a/test/parser/trinosql/syntax/startTransactionStatement.test.ts b/test/parser/trinosql/syntax/startTransactionStatement.test.ts index 3cbaef2..307ae2b 100644 --- a/test/parser/trinosql/syntax/startTransactionStatement.test.ts +++ b/test/parser/trinosql/syntax/startTransactionStatement.test.ts @@ -1,5 +1,5 @@ -import TrinoSQL from "../../../../src/parser/trinosql"; -import { readSQL } from "../../../helper"; +import TrinoSQL from '../../../../src/parser/trinosql'; +import { readSQL } from '../../../helper'; const features = { startTransaction: readSQL(__dirname, 'start_transaction.sql'), @@ -14,4 +14,3 @@ describe('TrinoSQL Start Transaction Statements Syntax Tests', () => { }); }); }); - diff --git a/test/parser/trinosql/syntax/truncateTableStatement.test.ts b/test/parser/trinosql/syntax/truncateTableStatement.test.ts index 4c43b49..0eed71a 100644 --- a/test/parser/trinosql/syntax/truncateTableStatement.test.ts +++ b/test/parser/trinosql/syntax/truncateTableStatement.test.ts @@ -1,5 +1,5 @@ -import TrinoSQL from "../../../../src/parser/trinosql"; -import { readSQL } from "../../../helper"; +import TrinoSQL from '../../../../src/parser/trinosql'; +import { readSQL } from '../../../helper'; const features = { truncateTable: readSQL(__dirname, 'truncate_table.sql'), @@ -14,4 +14,3 @@ describe('TrinoSQL Truncate Table Statements Syntax Tests', () => { }); }); }); - diff --git a/test/parser/trinosql/syntax/updateStatement.test.ts b/test/parser/trinosql/syntax/updateStatement.test.ts index 03e2461..a1c6b91 100644 --- a/test/parser/trinosql/syntax/updateStatement.test.ts +++ b/test/parser/trinosql/syntax/updateStatement.test.ts @@ -1,5 +1,5 @@ -import TrinoSQL from "../../../../src/parser/trinosql"; -import { readSQL } from "../../../helper"; +import TrinoSQL from '../../../../src/parser/trinosql'; +import { readSQL } from '../../../helper'; const features = { update: readSQL(__dirname, 'update.sql'), @@ -14,4 +14,3 @@ describe('TrinoSQL Update Statements Syntax Tests', () => { }); }); }); - diff --git a/test/parser/trinosql/syntax/useStatement.test.ts b/test/parser/trinosql/syntax/useStatement.test.ts index ead39e2..91eac50 100644 --- a/test/parser/trinosql/syntax/useStatement.test.ts +++ b/test/parser/trinosql/syntax/useStatement.test.ts @@ -1,5 +1,5 @@ -import TrinoSQL from "../../../../src/parser/trinosql"; -import { readSQL } from "../../../helper"; +import TrinoSQL from '../../../../src/parser/trinosql'; +import { readSQL } from '../../../helper'; const features = { use: readSQL(__dirname, 'use.sql'), @@ -14,4 +14,3 @@ describe('TrinoSQL Use Statements Syntax Tests', () => { }); }); }); - diff --git a/test/parser/trinosql/syntax/valuesStatement.test.ts b/test/parser/trinosql/syntax/valuesStatement.test.ts index fb5a369..e5ae9ea 100644 --- a/test/parser/trinosql/syntax/valuesStatement.test.ts +++ b/test/parser/trinosql/syntax/valuesStatement.test.ts @@ -1,5 +1,5 @@ -import TrinoSQL from "../../../../src/parser/trinosql"; -import { readSQL } from "../../../helper"; +import TrinoSQL from '../../../../src/parser/trinosql'; +import { readSQL } from '../../../helper'; const features = { values: readSQL(__dirname, 'values.sql'), @@ -14,4 +14,3 @@ describe('TrinoSQL Values Statements Syntax Tests', () => { }); }); }); - diff --git a/test/parser/trinosql/syntax/windowWithRowPatternRecognitionStatement.test.ts b/test/parser/trinosql/syntax/windowWithRowPatternRecognitionStatement.test.ts index d4e7b73..153af0d 100644 --- a/test/parser/trinosql/syntax/windowWithRowPatternRecognitionStatement.test.ts +++ b/test/parser/trinosql/syntax/windowWithRowPatternRecognitionStatement.test.ts @@ -1,5 +1,5 @@ -import TrinoSQL from "../../../../src/parser/trinosql"; -import { readSQL } from "../../../helper"; +import TrinoSQL from '../../../../src/parser/trinosql'; +import { readSQL } from '../../../helper'; const features = { windowWithRowPatternRecognition: readSQL(__dirname, 'window_with_row_pattern_recognition.sql'), @@ -14,4 +14,3 @@ describe('TrinoSQL Window With Row Pattern Recognition Statements Syntax Tests', }); }); }); - diff --git a/test/parser/trinosql/visitor.test.ts b/test/parser/trinosql/visitor.test.ts index b6aaf2a..0558a47 100644 --- a/test/parser/trinosql/visitor.test.ts +++ b/test/parser/trinosql/visitor.test.ts @@ -13,13 +13,13 @@ describe('trino SQL Visitor Tests', () => { test('Visitor visitTableName', () => { let result = ''; - class MyVisitor extends AbstractParseTreeVisitor implements TrinoSqlVisitor{ + class MyVisitor extends AbstractParseTreeVisitor implements TrinoSqlVisitor { protected defaultResult() { return result; } visitTableName = (ctx): void => { result = ctx.text.toLowerCase(); - } + }; } const visitor: any = new MyVisitor(); visitor.visit(parserTree); diff --git a/test/utils/index.test.ts b/test/utils/index.test.ts index bbdda5c..0bad874 100644 --- a/test/utils/index.test.ts +++ b/test/utils/index.test.ts @@ -64,9 +64,7 @@ describe('utils', () => { const sql = `select * from a;--comments`; const expected = `--comments`; const result = lexer(sql); - const comments = result.find((token) => - token.type === TokenType.Comment, - ); + const comments = result.find((token) => token.type === TokenType.Comment); expect(comments?.value).toEqual(expected); }); test('cleanSql', () => { diff --git a/tsconfig.check.json b/tsconfig.check.json new file mode 100644 index 0000000..21e9c5e --- /dev/null +++ b/tsconfig.check.json @@ -0,0 +1,4 @@ +{ + "extends": "./tsconfig.json", + "include": ["./src/**/*", "./test/**/*"] +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 532313d..6f52a3f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10,13 +10,6 @@ "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@babel/code-frame@7.12.11": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" - integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== - dependencies: - "@babel/highlight" "^7.10.4" - "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.21.4": version "7.21.4" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.21.4.tgz#d0fa9e4413aca81f2b23b9442797bda1826edb39" @@ -155,7 +148,7 @@ "@babel/traverse" "^7.22.1" "@babel/types" "^7.22.3" -"@babel/highlight@^7.10.4", "@babel/highlight@^7.18.6": +"@babel/highlight@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== @@ -306,34 +299,185 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@eslint/eslintrc@^0.4.3": - version "0.4.3" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" - integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== +"@commitlint/cli@^17.7.2": + version "17.7.2" + resolved "https://registry.npmmirror.com/@commitlint/cli/-/cli-17.7.2.tgz#3a0287373224db14968ab160b2b4988c693d3400" + integrity sha512-t3N7TZq7lOeqTOyEgfGcaltHqEJf7YDlPg75MldeVPPyz14jZq/+mbGF9tueDLFX8R6RwdymrN6D+U5XwZ8Iwg== dependencies: - ajv "^6.12.4" - debug "^4.1.1" - espree "^7.3.0" - globals "^13.9.0" - ignore "^4.0.6" - import-fresh "^3.2.1" - js-yaml "^3.13.1" - minimatch "^3.0.4" - strip-json-comments "^3.1.1" + "@commitlint/format" "^17.4.4" + "@commitlint/lint" "^17.7.0" + "@commitlint/load" "^17.7.2" + "@commitlint/read" "^17.5.1" + "@commitlint/types" "^17.4.4" + execa "^5.0.0" + lodash.isfunction "^3.0.9" + resolve-from "5.0.0" + resolve-global "1.0.0" + yargs "^17.0.0" -"@humanwhocodes/config-array@^0.5.0": - version "0.5.0" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" - integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg== +"@commitlint/config-conventional@^17.7.0": + version "17.7.0" + resolved "https://registry.npmmirror.com/@commitlint/config-conventional/-/config-conventional-17.7.0.tgz#1bbf2bce7851db63c1a8aa8d924277ad4938247e" + integrity sha512-iicqh2o6et+9kWaqsQiEYZzfLbtoWv9uZl8kbI8EGfnc0HeGafQBF7AJ0ylN9D/2kj6txltsdyQs8+2fTMwWEw== dependencies: - "@humanwhocodes/object-schema" "^1.2.0" - debug "^4.1.1" - minimatch "^3.0.4" + conventional-changelog-conventionalcommits "^6.1.0" -"@humanwhocodes/object-schema@^1.2.0": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" - integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== +"@commitlint/config-validator@^17.6.7": + version "17.6.7" + resolved "https://registry.npmmirror.com/@commitlint/config-validator/-/config-validator-17.6.7.tgz#c664d42a1ecf5040a3bb0843845150f55734df41" + integrity sha512-vJSncmnzwMvpr3lIcm0I8YVVDJTzyjy7NZAeXbTXy+MPUdAr9pKyyg7Tx/ebOQ9kqzE6O9WT6jg2164br5UdsQ== + dependencies: + "@commitlint/types" "^17.4.4" + ajv "^8.11.0" + +"@commitlint/cz-commitlint@^17.7.2": + version "17.7.2" + resolved "https://registry.npmmirror.com/@commitlint/cz-commitlint/-/cz-commitlint-17.7.2.tgz#6a45928e4628421c7694b8ec3e98405abe28c4ea" + integrity sha512-E5j4D8t4o4pGOoE56JOtkTCEXhZJguv8prX+XmdxTF4gYphSjDEb+EQ1xWfv98hxOdgvFJNQfLA/JbPjkfh7DA== + dependencies: + "@commitlint/ensure" "^17.6.7" + "@commitlint/load" "^17.7.2" + "@commitlint/types" "^17.4.4" + chalk "^4.1.0" + lodash.isplainobject "^4.0.6" + word-wrap "^1.2.5" + +"@commitlint/ensure@^17.6.7": + version "17.6.7" + resolved "https://registry.npmmirror.com/@commitlint/ensure/-/ensure-17.6.7.tgz#77a77a0c05e6a1c34589f59e82e6cb937101fc4b" + integrity sha512-mfDJOd1/O/eIb/h4qwXzUxkmskXDL9vNPnZ4AKYKiZALz4vHzwMxBSYtyL2mUIDeU9DRSpEUins8SeKtFkYHSw== + dependencies: + "@commitlint/types" "^17.4.4" + lodash.camelcase "^4.3.0" + lodash.kebabcase "^4.1.1" + lodash.snakecase "^4.1.1" + lodash.startcase "^4.4.0" + lodash.upperfirst "^4.3.1" + +"@commitlint/execute-rule@^17.4.0": + version "17.4.0" + resolved "https://registry.npmmirror.com/@commitlint/execute-rule/-/execute-rule-17.4.0.tgz#4518e77958893d0a5835babe65bf87e2638f6939" + integrity sha512-LIgYXuCSO5Gvtc0t9bebAMSwd68ewzmqLypqI2Kke1rqOqqDbMpYcYfoPfFlv9eyLIh4jocHWwCK5FS7z9icUA== + +"@commitlint/format@^17.4.4": + version "17.4.4" + resolved "https://registry.npmmirror.com/@commitlint/format/-/format-17.4.4.tgz#0f6e1b4d7a301c7b1dfd4b6334edd97fc050b9f5" + integrity sha512-+IS7vpC4Gd/x+uyQPTAt3hXs5NxnkqAZ3aqrHd5Bx/R9skyCAWusNlNbw3InDbAK6j166D9asQM8fnmYIa+CXQ== + dependencies: + "@commitlint/types" "^17.4.4" + chalk "^4.1.0" + +"@commitlint/is-ignored@^17.7.0": + version "17.7.0" + resolved "https://registry.npmmirror.com/@commitlint/is-ignored/-/is-ignored-17.7.0.tgz#df9b284420bdb1aed5fdb2be44f4e98cc4826014" + integrity sha512-043rA7m45tyEfW7Zv2vZHF++176MLHH9h70fnPoYlB1slKBeKl8BwNIlnPg4xBdRBVNPaCqvXxWswx2GR4c9Hw== + dependencies: + "@commitlint/types" "^17.4.4" + semver "7.5.4" + +"@commitlint/lint@^17.7.0": + version "17.7.0" + resolved "https://registry.npmmirror.com/@commitlint/lint/-/lint-17.7.0.tgz#33f831298dc43679e4de6b088aea63d1f884c7e7" + integrity sha512-TCQihm7/uszA5z1Ux1vw+Nf3yHTgicus/+9HiUQk+kRSQawByxZNESeQoX9ujfVd3r4Sa+3fn0JQAguG4xvvbA== + dependencies: + "@commitlint/is-ignored" "^17.7.0" + "@commitlint/parse" "^17.7.0" + "@commitlint/rules" "^17.7.0" + "@commitlint/types" "^17.4.4" + +"@commitlint/load@>6.1.1", "@commitlint/load@^17.7.2": + version "17.7.2" + resolved "https://registry.npmmirror.com/@commitlint/load/-/load-17.7.2.tgz#85730900a501c50f0bc890bb50e4a2167ee3085a" + integrity sha512-XA7WTnsjHZ4YH6ZYsrnxgLdXzriwMMq+utZUET6spbOEEIPBCDLdOQXS26P+v3TTO4hUHOEhzUquaBv3jbBixw== + dependencies: + "@commitlint/config-validator" "^17.6.7" + "@commitlint/execute-rule" "^17.4.0" + "@commitlint/resolve-extends" "^17.6.7" + "@commitlint/types" "^17.4.4" + "@types/node" "20.5.1" + chalk "^4.1.0" + cosmiconfig "^8.0.0" + cosmiconfig-typescript-loader "^4.0.0" + lodash.isplainobject "^4.0.6" + lodash.merge "^4.6.2" + lodash.uniq "^4.5.0" + resolve-from "^5.0.0" + ts-node "^10.8.1" + typescript "^4.6.4 || ^5.0.0" + +"@commitlint/message@^17.4.2": + version "17.4.2" + resolved "https://registry.npmmirror.com/@commitlint/message/-/message-17.4.2.tgz#f4753a79701ad6db6db21f69076e34de6580e22c" + integrity sha512-3XMNbzB+3bhKA1hSAWPCQA3lNxR4zaeQAQcHj0Hx5sVdO6ryXtgUBGGv+1ZCLMgAPRixuc6en+iNAzZ4NzAa8Q== + +"@commitlint/parse@^17.7.0": + version "17.7.0" + resolved "https://registry.npmmirror.com/@commitlint/parse/-/parse-17.7.0.tgz#aacb2d189e50ab8454154b1df150aaf20478ae47" + integrity sha512-dIvFNUMCUHqq5Abv80mIEjLVfw8QNuA4DS7OWip4pcK/3h5wggmjVnlwGCDvDChkw2TjK1K6O+tAEV78oxjxag== + dependencies: + "@commitlint/types" "^17.4.4" + conventional-changelog-angular "^6.0.0" + conventional-commits-parser "^4.0.0" + +"@commitlint/read@^17.5.1": + version "17.5.1" + resolved "https://registry.npmmirror.com/@commitlint/read/-/read-17.5.1.tgz#fec903b766e2c41e3cefa80630040fcaba4f786c" + integrity sha512-7IhfvEvB//p9aYW09YVclHbdf1u7g7QhxeYW9ZHSO8Huzp8Rz7m05aCO1mFG7G8M+7yfFnXB5xOmG18brqQIBg== + dependencies: + "@commitlint/top-level" "^17.4.0" + "@commitlint/types" "^17.4.4" + fs-extra "^11.0.0" + git-raw-commits "^2.0.11" + minimist "^1.2.6" + +"@commitlint/resolve-extends@^17.6.7": + version "17.6.7" + resolved "https://registry.npmmirror.com/@commitlint/resolve-extends/-/resolve-extends-17.6.7.tgz#9c53a4601c96ab2dd20b90fb35c988639307735d" + integrity sha512-PfeoAwLHtbOaC9bGn/FADN156CqkFz6ZKiVDMjuC2N5N0740Ke56rKU7Wxdwya8R8xzLK9vZzHgNbuGhaOVKIg== + dependencies: + "@commitlint/config-validator" "^17.6.7" + "@commitlint/types" "^17.4.4" + import-fresh "^3.0.0" + lodash.mergewith "^4.6.2" + resolve-from "^5.0.0" + resolve-global "^1.0.0" + +"@commitlint/rules@^17.7.0": + version "17.7.0" + resolved "https://registry.npmmirror.com/@commitlint/rules/-/rules-17.7.0.tgz#b97a4933c5cba11a659a19ee467f6f000f31533e" + integrity sha512-J3qTh0+ilUE5folSaoK91ByOb8XeQjiGcdIdiB/8UT1/Rd1itKo0ju/eQVGyFzgTMYt8HrDJnGTmNWwcMR1rmA== + dependencies: + "@commitlint/ensure" "^17.6.7" + "@commitlint/message" "^17.4.2" + "@commitlint/to-lines" "^17.4.0" + "@commitlint/types" "^17.4.4" + execa "^5.0.0" + +"@commitlint/to-lines@^17.4.0": + version "17.4.0" + resolved "https://registry.npmmirror.com/@commitlint/to-lines/-/to-lines-17.4.0.tgz#9bd02e911e7d4eab3fb4a50376c4c6d331e10d8d" + integrity sha512-LcIy/6ZZolsfwDUWfN1mJ+co09soSuNASfKEU5sCmgFCvX5iHwRYLiIuoqXzOVDYOy7E7IcHilr/KS0e5T+0Hg== + +"@commitlint/top-level@^17.4.0": + version "17.4.0" + resolved "https://registry.npmmirror.com/@commitlint/top-level/-/top-level-17.4.0.tgz#540cac8290044cf846fbdd99f5cc51e8ac5f27d6" + integrity sha512-/1loE/g+dTTQgHnjoCy0AexKAEFyHsR2zRB4NWrZ6lZSMIxAhBJnmCqwao7b4H8888PsfoTBCLBYIw8vGnej8g== + dependencies: + find-up "^5.0.0" + +"@commitlint/types@^17.4.4": + version "17.4.4" + resolved "https://registry.npmmirror.com/@commitlint/types/-/types-17.4.4.tgz#1416df936e9aad0d6a7bbc979ecc31e55dade662" + integrity sha512-amRN8tRLYOsxRr6mTnGGGvB5EmW/4DDjLMgiwK3CCVEmN6Sr/6xePGEpWaspKkckILuUORCwe6VfDBw6uj4axQ== + dependencies: + chalk "^4.1.0" + +"@cspotcode/source-map-support@^0.8.0": + version "0.8.1" + resolved "https://registry.npmmirror.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== + dependencies: + "@jridgewell/trace-mapping" "0.3.9" "@hutson/parse-repository-url@^3.0.0": version "3.0.2" @@ -580,6 +724,11 @@ resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== +"@jridgewell/resolve-uri@^3.0.3": + version "3.1.1" + resolved "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" + integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== + "@jridgewell/set-array@^1.0.1": version "1.1.2" resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" @@ -595,6 +744,14 @@ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== +"@jridgewell/trace-mapping@0.3.9": + version "0.3.9" + resolved "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.15", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": version "0.3.18" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6" @@ -696,6 +853,26 @@ "@jest/create-cache-key-function" "^27.4.2" jsonc-parser "^3.2.0" +"@tsconfig/node10@^1.0.7": + version "1.0.9" + resolved "https://registry.npmmirror.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" + integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== + +"@tsconfig/node12@^1.0.7": + version "1.0.11" + resolved "https://registry.npmmirror.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== + +"@tsconfig/node14@^1.0.0": + version "1.0.3" + resolved "https://registry.npmmirror.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== + +"@tsconfig/node16@^1.0.2": + version "1.0.4" + resolved "https://registry.npmmirror.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" + integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== + "@types/babel__core@^7.1.14": version "7.20.1" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.1.tgz#916ecea274b0c776fec721e333e55762d3a9614b" @@ -729,11 +906,6 @@ dependencies: "@babel/types" "^7.20.7" -"@types/eslint-visitor-keys@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#1ee30d79544ca84d68d4b3cdb0af4f205663dd2d" - integrity sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag== - "@types/graceful-fs@^4.1.3": version "4.1.6" resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.6.tgz#e14b2576a1c25026b7f02ede1de3b84c3a1efeae" @@ -768,11 +940,6 @@ expect "^29.0.0" pretty-format "^29.0.0" -"@types/json-schema@^7.0.3": - version "7.0.12" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb" - integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== - "@types/minimist@^1.2.0": version "1.2.2" resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" @@ -783,6 +950,11 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-20.2.5.tgz#26d295f3570323b2837d322180dfbf1ba156fefb" integrity sha512-JJulVEQXmiY9Px5axXHeYGLSjhkZEnD+MDPDGbCbIAbMslkKwmygtZFy1X6s/075Yo94sf8GuSlFfPzysQrWZQ== +"@types/node@20.5.1": + version "20.5.1" + resolved "https://registry.npmmirror.com/@types/node/-/node-20.5.1.tgz#178d58ee7e4834152b0e8b4d30cbfab578b9bb30" + integrity sha512-4tT2UrL5LBqDwoed9wZ6N3umC4Yhz3W3FloMmiiG4JwmUJWpie0c7lcnUNd4gtMKuDEO4wRVS8B6Xa0uMRsMKg== + "@types/node@^18.15.11": version "18.16.16" resolved "https://registry.yarnpkg.com/@types/node/-/node-18.16.16.tgz#3b64862856c7874ccf7439e6bab872d245c86d8e" @@ -822,102 +994,40 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^3.10.1": - version "3.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.10.1.tgz#7e061338a1383f59edc204c605899f93dc2e2c8f" - integrity sha512-PQg0emRtzZFWq6PxBcdxRH3QIQiyFO3WCVpRL3fgj5oQS3CDs3AeAKfv4DxNhzn8ITdNJGJ4D3Qw8eAJf3lXeQ== - dependencies: - "@typescript-eslint/experimental-utils" "3.10.1" - debug "^4.1.1" - functional-red-black-tree "^1.0.1" - regexpp "^3.0.0" - semver "^7.3.2" - tsutils "^3.17.1" - -"@typescript-eslint/experimental-utils@3.10.1": - version "3.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-3.10.1.tgz#e179ffc81a80ebcae2ea04e0332f8b251345a686" - integrity sha512-DewqIgscDzmAfd5nOGe4zm6Bl7PKtMG2Ad0KG8CUZAHlXfAKTF9Ol5PXhiMh39yRL2ChRH1cuuUGOcVyyrhQIw== - dependencies: - "@types/json-schema" "^7.0.3" - "@typescript-eslint/types" "3.10.1" - "@typescript-eslint/typescript-estree" "3.10.1" - eslint-scope "^5.0.0" - eslint-utils "^2.0.0" - -"@typescript-eslint/parser@^3.10.1": - version "3.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-3.10.1.tgz#1883858e83e8b442627e1ac6f408925211155467" - integrity sha512-Ug1RcWcrJP02hmtaXVS3axPPTTPnZjupqhgj+NnZ6BCkwSImWk/283347+x9wN+lqOdK9Eo3vsyiyDHgsmiEJw== - dependencies: - "@types/eslint-visitor-keys" "^1.0.0" - "@typescript-eslint/experimental-utils" "3.10.1" - "@typescript-eslint/types" "3.10.1" - "@typescript-eslint/typescript-estree" "3.10.1" - eslint-visitor-keys "^1.1.0" - -"@typescript-eslint/types@3.10.1": - version "3.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-3.10.1.tgz#1d7463fa7c32d8a23ab508a803ca2fe26e758727" - integrity sha512-+3+FCUJIahE9q0lDi1WleYzjCwJs5hIsbugIgnbB+dSCYUxl8L6PwmsyOPFZde2hc1DlTo/xnkOgiTLSyAbHiQ== - -"@typescript-eslint/typescript-estree@3.10.1": - version "3.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-3.10.1.tgz#fd0061cc38add4fad45136d654408569f365b853" - integrity sha512-QbcXOuq6WYvnB3XPsZpIwztBoquEYLXh2MtwVU+kO8jgYCiv4G5xrSP/1wg4tkvrEE+esZVquIPX/dxPlePk1w== - dependencies: - "@typescript-eslint/types" "3.10.1" - "@typescript-eslint/visitor-keys" "3.10.1" - debug "^4.1.1" - glob "^7.1.6" - is-glob "^4.0.1" - lodash "^4.17.15" - semver "^7.3.2" - tsutils "^3.17.1" - -"@typescript-eslint/visitor-keys@3.10.1": - version "3.10.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-3.10.1.tgz#cd4274773e3eb63b2e870ac602274487ecd1e931" - integrity sha512-9JgC82AaQeglebjZMgYR5wgmfUdUc+EitGUUMW8u2nDckaeimzW+VsoLV6FoimPv2id3VQzfjwBxEMVz08ameQ== - dependencies: - eslint-visitor-keys "^1.1.0" - -JSONStream@^1.0.4: +JSONStream@^1.0.4, JSONStream@^1.3.5: version "1.3.5" - resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" + resolved "https://registry.npmmirror.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== dependencies: jsonparse "^1.2.0" through ">=2.2.7 <3" -acorn-jsx@^5.3.1: - version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== +acorn-walk@^8.1.1: + version "8.2.0" + resolved "https://registry.npmmirror.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" + integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== -acorn@^7.4.0: - version "7.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" - integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== +acorn@^8.4.1: + version "8.10.0" + resolved "https://registry.npmmirror.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" + integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== add-stream@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa" integrity sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ== -ajv@^6.10.0, ajv@^6.12.4: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.npmmirror.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" + clean-stack "^2.0.0" + indent-string "^4.0.0" -ajv@^8.0.1: +ajv@^8.11.0: version "8.12.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" + resolved "https://registry.npmmirror.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== dependencies: fast-deep-equal "^3.1.1" @@ -925,12 +1035,7 @@ ajv@^8.0.1: require-from-string "^2.0.2" uri-js "^4.2.2" -ansi-colors@^4.1.1: - version "4.1.3" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" - integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== - -ansi-escapes@^4.2.1: +ansi-escapes@^4.2.1, ansi-escapes@^4.3.0: version "4.3.2" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== @@ -942,6 +1047,11 @@ ansi-regex@^5.0.1: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" @@ -961,6 +1071,11 @@ ansi-styles@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== +ansi-styles@^6.0.0: + version "6.2.1" + resolved "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + antlr4-c3@^3.0.1: version "3.0.1" resolved "https://registry.npmmirror.com/antlr4-c3/-/antlr4-c3-3.0.1.tgz#e9b6ba7b796e7afc35630ffa6fac4d915f152c99" @@ -986,6 +1101,11 @@ anymatch@^3.0.3: normalize-path "^3.0.0" picomatch "^2.0.4" +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.npmmirror.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" @@ -993,6 +1113,11 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + array-ify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" @@ -1005,9 +1130,14 @@ arrify@^1.0.1: astral-regex@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + resolved "https://registry.npmmirror.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + babel-jest@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.5.0.tgz#3fe3ddb109198e78b1c88f9ebdecd5e4fc2f50a5" @@ -1132,6 +1262,11 @@ buffer@^5.5.0: base64-js "^1.3.1" ieee754 "^1.1.13" +cachedir@2.3.0: + version "2.3.0" + resolved "https://registry.npmmirror.com/cachedir/-/cachedir-2.3.0.tgz#0c75892a052198f0b21c7c1804d8331edfcae0e8" + integrity sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw== + callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" @@ -1169,7 +1304,7 @@ chalk@4.1.2, chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^2.0.0, chalk@^2.4.2: +chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -1198,6 +1333,11 @@ cjs-module-lexer@^1.0.0: resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40" integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.npmmirror.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + cli-cursor@^3.1.0: version "3.1.0" resolved "https://registry.npmmirror.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" @@ -1210,6 +1350,22 @@ cli-spinners@^2.5.0: resolved "https://registry.npmmirror.com/cli-spinners/-/cli-spinners-2.9.0.tgz#5881d0ad96381e117bbe07ad91f2008fe6ffd8db" integrity sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g== +cli-truncate@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" + integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== + dependencies: + slice-ansi "^3.0.0" + string-width "^4.2.0" + +cli-truncate@^3.1.0: + version "3.1.0" + resolved "https://registry.npmmirror.com/cli-truncate/-/cli-truncate-3.1.0.tgz#3f23ab12535e3d73e839bb43e73c9de487db1389" + integrity sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA== + dependencies: + slice-ansi "^5.0.0" + string-width "^5.0.0" + cli-width@^3.0.0: version "3.0.0" resolved "https://registry.npmmirror.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" @@ -1272,6 +1428,36 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +colorette@^2.0.16: + version "2.0.20" + resolved "https://registry.npmmirror.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" + integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== + +commander@^9.3.0: + version "9.5.0" + resolved "https://registry.npmmirror.com/commander/-/commander-9.5.0.tgz#bc08d1eb5cedf7ccb797a96199d41c7bc3e60d30" + integrity sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ== + +commitizen@^4.0.3, commitizen@^4.3.0: + version "4.3.0" + resolved "https://registry.npmmirror.com/commitizen/-/commitizen-4.3.0.tgz#0d056c542a2d2b1f9b9aba981aa32575b2849924" + integrity sha512-H0iNtClNEhT0fotHvGV3E9tDejDeS04sN1veIebsKYGMuGscFaswRoYJKmT3eW85eIJAs0F28bG2+a/9wCOfPw== + dependencies: + cachedir "2.3.0" + cz-conventional-changelog "3.3.0" + dedent "0.7.0" + detect-indent "6.1.0" + find-node-modules "^2.1.2" + find-root "1.1.0" + fs-extra "9.1.0" + glob "7.2.3" + inquirer "8.2.5" + is-utf8 "^0.2.1" + lodash "4.17.21" + minimist "1.2.7" + strip-bom "4.0.0" + strip-json-comments "3.1.1" + compare-func@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-2.0.0.tgz#fb65e75edbddfd2e568554e8b5b05fff7a51fcb3" @@ -1303,6 +1489,13 @@ conventional-changelog-angular@^5.0.12: compare-func "^2.0.0" q "^1.5.1" +conventional-changelog-angular@^6.0.0: + version "6.0.0" + resolved "https://registry.npmmirror.com/conventional-changelog-angular/-/conventional-changelog-angular-6.0.0.tgz#a9a9494c28b7165889144fd5b91573c4aa9ca541" + integrity sha512-6qLgrBF4gueoC7AFVHu51nHL9pF9FRjXrH+ceVf7WmAfH3gs+gEYOkvxhjMPjZu57I4AGUGoNTY8V7Hrgf1uqg== + dependencies: + compare-func "^2.0.0" + conventional-changelog-atom@^2.0.8: version "2.0.8" resolved "https://registry.yarnpkg.com/conventional-changelog-atom/-/conventional-changelog-atom-2.0.8.tgz#a759ec61c22d1c1196925fca88fe3ae89fd7d8de" @@ -1331,6 +1524,13 @@ conventional-changelog-conventionalcommits@4.6.3, conventional-changelog-convent lodash "^4.17.15" q "^1.5.1" +conventional-changelog-conventionalcommits@^6.1.0: + version "6.1.0" + resolved "https://registry.npmmirror.com/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-6.1.0.tgz#3bad05f4eea64e423d3d90fc50c17d2c8cf17652" + integrity sha512-3cS3GEtR78zTfMzk0AizXKKIdN4OvSh7ibNz6/DPbhWWQu7LqE/8+/GqSodV+sywUR2gpJAdP/1JFf4XtN7Zpw== + dependencies: + compare-func "^2.0.0" + conventional-changelog-core@^4.2.1: version "4.2.4" resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-4.2.4.tgz#e50d047e8ebacf63fac3dc67bf918177001e1e9f" @@ -1424,6 +1624,11 @@ conventional-changelog@3.1.25: conventional-changelog-jshint "^2.0.9" conventional-changelog-preset-loader "^2.3.4" +conventional-commit-types@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/conventional-commit-types/-/conventional-commit-types-3.0.0.tgz#7c9214e58eae93e85dd66dbfbafe7e4fffa2365b" + integrity sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg== + conventional-commits-filter@^2.0.7: version "2.0.7" resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz#f8d9b4f182fce00c9af7139da49365b136c8a0b3" @@ -1444,6 +1649,16 @@ conventional-commits-parser@^3.2.0: split2 "^3.0.0" through2 "^4.0.0" +conventional-commits-parser@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/conventional-commits-parser/-/conventional-commits-parser-4.0.0.tgz#02ae1178a381304839bce7cea9da5f1b549ae505" + integrity sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg== + dependencies: + JSONStream "^1.3.5" + is-text-path "^1.0.1" + meow "^8.1.2" + split2 "^3.2.2" + conventional-recommended-bump@6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/conventional-recommended-bump/-/conventional-recommended-bump-6.1.0.tgz#cfa623285d1de554012f2ffde70d9c8a22231f55" @@ -1473,7 +1688,27 @@ core-util-is@~1.0.0: resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== -cross-spawn@^7.0.2, cross-spawn@^7.0.3: +cosmiconfig-typescript-loader@^4.0.0: + version "4.4.0" + resolved "https://registry.npmmirror.com/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.4.0.tgz#f3feae459ea090f131df5474ce4b1222912319f9" + integrity sha512-BabizFdC3wBHhbI4kJh0VkQP9GkBfoHPydD0COMce1nJ1kJAB3F2TmJ/I7diULBKtmEWSwEbuN/KDtgnmUUVmw== + +cosmiconfig@^8.0.0: + version "8.3.6" + resolved "https://registry.npmmirror.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3" + integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== + dependencies: + import-fresh "^3.3.0" + js-yaml "^4.1.0" + parse-json "^5.2.0" + path-type "^4.0.0" + +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.npmmirror.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + +cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -1482,6 +1717,20 @@ cross-spawn@^7.0.2, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" +cz-conventional-changelog@3.3.0: + version "3.3.0" + resolved "https://registry.npmmirror.com/cz-conventional-changelog/-/cz-conventional-changelog-3.3.0.tgz#9246947c90404149b3fe2cf7ee91acad3b7d22d2" + integrity sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw== + dependencies: + chalk "^2.4.1" + commitizen "^4.0.3" + conventional-commit-types "^3.0.0" + lodash.map "^4.5.1" + longest "^2.0.1" + word-wrap "^1.0.3" + optionalDependencies: + "@commitlint/load" ">6.1.1" + dargs@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/dargs/-/dargs-7.0.0.tgz#04015c41de0bcb69ec84050f3d9be0caf8d6d5cc" @@ -1492,7 +1741,7 @@ dateformat@^3.0.0: resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== -debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: +debug@^4.1.0, debug@^4.1.1, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -1512,16 +1761,11 @@ decamelize@^1.1.0: resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== -dedent@^0.7.0: +dedent@0.7.0, dedent@^0.7.0: version "0.7.0" - resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" + resolved "https://registry.npmmirror.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== -deep-is@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" - integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== - deepmerge@^4.2.2: version "4.3.1" resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" @@ -1534,9 +1778,14 @@ defaults@^1.0.3: dependencies: clone "^1.0.2" -detect-indent@^6.0.0: +detect-file@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" + integrity sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q== + +detect-indent@6.1.0, detect-indent@^6.0.0: version "6.1.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" + resolved "https://registry.npmmirror.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== detect-newline@^3.0.0, detect-newline@^3.1.0: @@ -1549,12 +1798,10 @@ diff-sequences@^29.4.3: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.4.3.tgz#9314bc1fabe09267ffeca9cbafc457d8499a13f2" integrity sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA== -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.npmmirror.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== dot-prop@^5.1.0: version "5.3.0" @@ -1571,6 +1818,11 @@ dotgitignore@^2.1.0: find-up "^3.0.0" minimatch "^3.0.4" +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.npmmirror.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + electron-to-chromium@^1.4.411: version "1.4.413" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.413.tgz#0067c3122946ae234cbefb9401ecefde851cdcf2" @@ -1586,12 +1838,10 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== -enquirer@^2.3.5: - version "2.3.6" - resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" - integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== - dependencies: - ansi-colors "^4.1.1" +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== error-ex@^1.3.1: version "1.3.2" @@ -1615,131 +1865,12 @@ escape-string-regexp@^2.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -eslint-config-google@^0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/eslint-config-google/-/eslint-config-google-0.14.0.tgz#4f5f8759ba6e11b424294a219dbfa18c508bcc1a" - integrity sha512-WsbX4WbjuMvTdeVL6+J3rK1RGhCTqjsFjX7UMSMgZiyxxaNLkoJENbrGExzERFeoTpGw3F3FypTiWAP9ZXzkEw== - -eslint-scope@^5.0.0, eslint-scope@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - -eslint-utils@^2.0.0, eslint-utils@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" - integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== - dependencies: - eslint-visitor-keys "^1.1.0" - -eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" - integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== - -eslint-visitor-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" - integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== - -eslint@^7.32.0: - version "7.32.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d" - integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA== - dependencies: - "@babel/code-frame" "7.12.11" - "@eslint/eslintrc" "^0.4.3" - "@humanwhocodes/config-array" "^0.5.0" - ajv "^6.10.0" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.0.1" - doctrine "^3.0.0" - enquirer "^2.3.5" - escape-string-regexp "^4.0.0" - eslint-scope "^5.1.1" - eslint-utils "^2.1.0" - eslint-visitor-keys "^2.0.0" - espree "^7.3.1" - esquery "^1.4.0" - esutils "^2.0.2" - 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.6.0" - ignore "^4.0.6" - import-fresh "^3.0.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - js-yaml "^3.13.1" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash.merge "^4.6.2" - minimatch "^3.0.4" - natural-compare "^1.4.0" - optionator "^0.9.1" - progress "^2.0.0" - regexpp "^3.1.0" - semver "^7.2.1" - strip-ansi "^6.0.0" - strip-json-comments "^3.1.0" - table "^6.0.9" - text-table "^0.2.0" - v8-compile-cache "^2.0.3" - -espree@^7.3.0, espree@^7.3.1: - version "7.3.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" - integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== - dependencies: - acorn "^7.4.0" - acorn-jsx "^5.3.1" - eslint-visitor-keys "^1.3.0" - esprima@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esquery@^1.4.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" - integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -estraverse@^5.1.0, estraverse@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -execa@^5.0.0: +execa@^5.0.0, execa@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== @@ -1759,6 +1890,13 @@ exit@^0.1.2: resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== +expand-tilde@^2.0.0, expand-tilde@^2.0.2: + version "2.0.2" + resolved "https://registry.npmmirror.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" + integrity sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw== + dependencies: + homedir-polyfill "^1.0.1" + expect@^29.0.0, expect@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/expect/-/expect-29.5.0.tgz#68c0509156cb2a0adb8865d413b137eeaae682f7" @@ -1779,21 +1917,16 @@ external-editor@^3.0.3: iconv-lite "^0.4.24" tmp "^0.0.33" -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: +fast-deep-equal@^3.1.1: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: +fast-json-stable-stringify@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-levenshtein@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== - fb-watchman@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" @@ -1808,13 +1941,6 @@ figures@^3.0.0, figures@^3.1.0: dependencies: escape-string-regexp "^1.0.5" -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== - dependencies: - flat-cache "^3.0.4" - fill-range@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" @@ -1822,6 +1948,19 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" +find-node-modules@^2.1.2: + version "2.1.3" + resolved "https://registry.npmmirror.com/find-node-modules/-/find-node-modules-2.1.3.tgz#3c976cff2ca29ee94b4f9eafc613987fc4c0ee44" + integrity sha512-UC2I2+nx1ZuOBclWVNdcnbDR5dlrOdVb7xNjmT/lHE+LsgztWks3dG7boJ37yTS/venXw84B/mAW9uHVoC5QRg== + dependencies: + findup-sync "^4.0.0" + merge "^2.1.1" + +find-root@1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" + integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== + find-up@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" @@ -1852,18 +1991,34 @@ find-up@^5.0.0: locate-path "^6.0.0" path-exists "^4.0.0" -flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== +findup-sync@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/findup-sync/-/findup-sync-4.0.0.tgz#956c9cdde804052b881b428512905c4a5f2cdef0" + integrity sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ== dependencies: - flatted "^3.1.0" - rimraf "^3.0.2" + detect-file "^1.0.0" + is-glob "^4.0.0" + micromatch "^4.0.2" + resolve-dir "^1.0.1" -flatted@^3.1.0: - version "3.2.7" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" - integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== +fs-extra@9.1.0: + version "9.1.0" + resolved "https://registry.npmmirror.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-extra@^11.0.0: + version "11.1.1" + resolved "https://registry.npmmirror.com/fs-extra/-/fs-extra-11.1.1.tgz#da69f7c39f3b002378b0954bb6ae7efdc0876e2d" + integrity sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" fs.realpath@^1.0.0: version "1.0.0" @@ -1880,11 +2035,6 @@ function-bind@^1.1.1: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== - gensync@^1.0.0-beta.2: version "1.0.0-beta.2" resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" @@ -1915,9 +2065,9 @@ get-stream@^6.0.0: resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== -git-raw-commits@^2.0.8: +git-raw-commits@^2.0.11, git-raw-commits@^2.0.8: version "2.0.11" - resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-2.0.11.tgz#bc3576638071d18655e1cc60d7f524920008d723" + resolved "https://registry.npmmirror.com/git-raw-commits/-/git-raw-commits-2.0.11.tgz#bc3576638071d18655e1cc60d7f524920008d723" integrity sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A== dependencies: dargs "^7.0.0" @@ -1949,16 +2099,9 @@ gitconfiglocal@^1.0.0: dependencies: ini "^1.3.2" -glob-parent@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: +glob@7.2.3, glob@^7.1.3, glob@^7.1.4: version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + resolved "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: fs.realpath "^1.0.0" @@ -1968,21 +2111,41 @@ glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: once "^1.3.0" path-is-absolute "^1.0.0" +global-dirs@^0.1.1: + version "0.1.1" + resolved "https://registry.npmmirror.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" + integrity sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg== + dependencies: + ini "^1.3.4" + +global-modules@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" + integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== + dependencies: + global-prefix "^1.0.1" + is-windows "^1.0.1" + resolve-dir "^1.0.0" + +global-prefix@^1.0.1: + version "1.0.2" + resolved "https://registry.npmmirror.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" + integrity sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg== + dependencies: + expand-tilde "^2.0.2" + homedir-polyfill "^1.0.1" + ini "^1.3.4" + is-windows "^1.0.1" + which "^1.2.14" + globals@^11.1.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^13.6.0, globals@^13.9.0: - version "13.20.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" - integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== - dependencies: - type-fest "^0.20.2" - -graceful-fs@^4.1.2, graceful-fs@^4.2.9: +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.9: version "4.2.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + resolved "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== handlebars@^4.7.7: @@ -2019,6 +2182,13 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" +homedir-polyfill@^1.0.1: + version "1.0.3" + resolved "https://registry.npmmirror.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" + integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== + dependencies: + parse-passwd "^1.0.0" + hosted-git-info@^2.1.4: version "2.8.9" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" @@ -2041,6 +2211,11 @@ human-signals@^2.1.0: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== +husky@^8.0.3: + version "8.0.3" + resolved "https://registry.npmmirror.com/husky/-/husky-8.0.3.tgz#4936d7212e46d1dea28fef29bb3a108872cd9184" + integrity sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg== + iconv-lite@^0.4.24: version "0.4.24" resolved "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" @@ -2053,12 +2228,7 @@ ieee754@^1.1.13: resolved "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== -ignore@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" - integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== - -import-fresh@^3.0.0, import-fresh@^3.2.1: +import-fresh@^3.0.0, import-fresh@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== @@ -2097,11 +2267,32 @@ inherits@2, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -ini@^1.3.2: +ini@^1.3.2, ini@^1.3.4: version "1.3.8" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + resolved "https://registry.npmmirror.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== +inquirer@8.2.5: + version "8.2.5" + resolved "https://registry.npmmirror.com/inquirer/-/inquirer-8.2.5.tgz#d8654a7542c35a9b9e069d27e2df4858784d54f8" + integrity sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ== + dependencies: + ansi-escapes "^4.2.1" + chalk "^4.1.1" + cli-cursor "^3.1.0" + cli-width "^3.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash "^4.17.21" + mute-stream "0.0.8" + ora "^5.4.1" + run-async "^2.4.0" + rxjs "^7.5.5" + string-width "^4.1.0" + strip-ansi "^6.0.0" + through "^2.3.6" + wrap-ansi "^7.0.0" + inquirer@^8.2.2: version "8.2.6" resolved "https://registry.npmmirror.com/inquirer/-/inquirer-8.2.6.tgz#733b74888195d8d400a67ac332011b5fae5ea562" @@ -2145,12 +2336,17 @@ is-fullwidth-code-point@^3.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== +is-fullwidth-code-point@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88" + integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== + is-generator-fn@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== -is-glob@^4.0.0, is-glob@^4.0.1: +is-glob@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== @@ -2194,6 +2390,16 @@ is-unicode-supported@^0.1.0: resolved "https://registry.npmmirror.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== +is-utf8@^0.2.1: + version "0.2.1" + resolved "https://registry.npmmirror.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + integrity sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q== + +is-windows@^1.0.1: + version "1.0.2" + resolved "https://registry.npmmirror.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -2620,6 +2826,13 @@ js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + jsesc@^2.5.1: version "2.5.2" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" @@ -2635,21 +2848,11 @@ json-parse-even-better-errors@^2.3.0: resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - json-schema-traverse@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== - json-stringify-safe@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" @@ -2665,6 +2868,15 @@ jsonc-parser@^3.2.0: resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76" integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w== +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + jsonparse@^1.2.0: version "1.3.1" resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" @@ -2685,19 +2897,50 @@ leven@^3.1.0: resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" +lilconfig@2.0.5: + version "2.0.5" + resolved "https://registry.npmmirror.com/lilconfig/-/lilconfig-2.0.5.tgz#19e57fd06ccc3848fd1891655b5a447092225b25" + integrity sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg== lines-and-columns@^1.1.6: version "1.2.4" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== +lint-staged@12.5.0: + version "12.5.0" + resolved "https://registry.npmmirror.com/lint-staged/-/lint-staged-12.5.0.tgz#d6925747480ae0e380d13988522f9dd8ef9126e3" + integrity sha512-BKLUjWDsKquV/JuIcoQW4MSAI3ggwEImF1+sB4zaKvyVx1wBk3FsG7UK9bpnmBTN1pm7EH2BBcMwINJzCRv12g== + dependencies: + cli-truncate "^3.1.0" + colorette "^2.0.16" + commander "^9.3.0" + debug "^4.3.4" + execa "^5.1.1" + lilconfig "2.0.5" + listr2 "^4.0.5" + micromatch "^4.0.5" + normalize-path "^3.0.0" + object-inspect "^1.12.2" + pidtree "^0.5.0" + string-argv "^0.3.1" + supports-color "^9.2.2" + yaml "^1.10.2" + +listr2@^4.0.5: + version "4.0.5" + resolved "https://registry.npmmirror.com/listr2/-/listr2-4.0.5.tgz#9dcc50221583e8b4c71c43f9c7dfd0ef546b75d5" + integrity sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA== + dependencies: + cli-truncate "^2.1.0" + colorette "^2.0.16" + log-update "^4.0.0" + p-map "^4.0.0" + rfdc "^1.3.0" + rxjs "^7.5.5" + through "^2.3.8" + wrap-ansi "^7.0.0" + load-json-file@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" @@ -2738,22 +2981,67 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.npmmirror.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== + +lodash.isfunction@^3.0.9: + version "3.0.9" + resolved "https://registry.npmmirror.com/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz#06de25df4db327ac931981d1bdb067e5af68d051" + integrity sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw== + lodash.ismatch@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37" integrity sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g== +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.npmmirror.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== + +lodash.kebabcase@^4.1.1: + version "4.1.1" + resolved "https://registry.npmmirror.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" + integrity sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g== + +lodash.map@^4.5.1: + version "4.6.0" + resolved "https://registry.npmmirror.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" + integrity sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q== + lodash.merge@^4.6.2: version "4.6.2" resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== -lodash.truncate@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" - integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== +lodash.mergewith@^4.6.2: + version "4.6.2" + resolved "https://registry.npmmirror.com/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz#617121f89ac55f59047c7aec1ccd6654c6590f55" + integrity sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ== -lodash@^4.17.15, lodash@^4.17.21: +lodash.snakecase@^4.1.1: + version "4.1.1" + resolved "https://registry.npmmirror.com/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz#39d714a35357147837aefd64b5dcbb16becd8f8d" + integrity sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw== + +lodash.startcase@^4.4.0: + version "4.4.0" + resolved "https://registry.npmmirror.com/lodash.startcase/-/lodash.startcase-4.4.0.tgz#9436e34ed26093ed7ffae1936144350915d9add8" + integrity sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg== + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.npmmirror.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== + +lodash.upperfirst@^4.3.1: + version "4.3.1" + resolved "https://registry.npmmirror.com/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz#1365edf431480481ef0d1c68957a5ed99d49f7ce" + integrity sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg== + +lodash@4.17.21, lodash@^4.17.15, lodash@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -2766,6 +3054,21 @@ log-symbols@^4.1.0: chalk "^4.1.0" is-unicode-supported "^0.1.0" +log-update@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" + integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== + dependencies: + ansi-escapes "^4.3.0" + cli-cursor "^3.1.0" + slice-ansi "^4.0.0" + wrap-ansi "^6.2.0" + +longest@^2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/longest/-/longest-2.0.1.tgz#781e183296aa94f6d4d916dc335d0d17aefa23f8" + integrity sha512-Ajzxb8CM6WAnFjgiloPsI3bF+WCxcvhdIG3KNA2KN962+tdBsHcuQ4k4qX/EcS/2CRkcc0iAkR956Nib6aXU/Q== + lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" @@ -2787,6 +3090,11 @@ make-dir@^3.0.0: dependencies: semver "^6.0.0" +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.npmmirror.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + makeerror@1.0.12: version "1.0.12" resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" @@ -2804,7 +3112,7 @@ map-obj@^4.0.0: resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a" integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== -meow@^8.0.0: +meow@^8.0.0, meow@^8.1.2: version "8.1.2" resolved "https://registry.yarnpkg.com/meow/-/meow-8.1.2.tgz#bcbe45bda0ee1729d350c03cffc8395a36c4e897" integrity sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q== @@ -2826,7 +3134,12 @@ merge-stream@^2.0.0: resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== -micromatch@^4.0.4: +merge@^2.1.1: + version "2.1.1" + resolved "https://registry.npmmirror.com/merge/-/merge-2.1.1.tgz#59ef4bf7e0b3e879186436e8481c06a6c162ca98" + integrity sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w== + +micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5: version "4.0.5" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== @@ -2860,9 +3173,14 @@ minimist-options@4.1.0: is-plain-obj "^1.1.0" kind-of "^6.0.3" -minimist@^1.2.5: +minimist@1.2.7: + version "1.2.7" + resolved "https://registry.npmmirror.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" + integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== + +minimist@^1.2.5, minimist@^1.2.6: version "1.2.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + resolved "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== modify-values@^1.0.0: @@ -2932,6 +3250,11 @@ npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" +object-inspect@^1.12.2: + version "1.12.3" + resolved "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" + integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== + once@^1.3.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" @@ -2946,18 +3269,6 @@ onetime@^5.1.0, onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" -optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" - integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== - dependencies: - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.1" - type-check "^0.4.0" - word-wrap "^1.2.3" - ora@^5.4.1: version "5.4.1" resolved "https://registry.npmmirror.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" @@ -3027,6 +3338,13 @@ p-locate@^5.0.0: dependencies: p-limit "^3.0.2" +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + p-try@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" @@ -3062,6 +3380,11 @@ parse-json@^5.0.0, parse-json@^5.2.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" +parse-passwd@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" + integrity sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q== + path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" @@ -3094,6 +3417,11 @@ path-type@^3.0.0: dependencies: pify "^3.0.0" +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + picocolors@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" @@ -3104,6 +3432,11 @@ picomatch@^2.0.4, picomatch@^2.2.3, picomatch@^2.3.1: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== +pidtree@^0.5.0: + version "0.5.0" + resolved "https://registry.npmmirror.com/pidtree/-/pidtree-0.5.0.tgz#ad5fbc1de78b8a5f99d6fbdd4f6e4eee21d1aca1" + integrity sha512-9nxspIM7OpZuhBxPg73Zvyq7j1QMPMPsGKTqRc2XOaFQauDvoNz9fM1Wdkjmeo7l9GXOZiRs97sPkuayl39wjA== + pify@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -3126,10 +3459,10 @@ pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== +prettier@^3.0.3: + version "3.0.3" + resolved "https://registry.npmmirror.com/prettier/-/prettier-3.0.3.tgz#432a51f7ba422d1469096c0fdc28e235db8f9643" + integrity sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg== pretty-format@^29.0.0, pretty-format@^29.5.0: version "29.5.0" @@ -3145,11 +3478,6 @@ process-nextick-args@~2.0.0: resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== -progress@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" - integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== - prompts@^2.0.1: version "2.4.2" resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" @@ -3249,11 +3577,6 @@ redent@^3.0.0: indent-string "^4.0.0" strip-indent "^3.0.0" -regexpp@^3.0.0, regexpp@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" - integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== - require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -3271,15 +3594,30 @@ resolve-cwd@^3.0.0: dependencies: resolve-from "^5.0.0" +resolve-dir@^1.0.0, resolve-dir@^1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" + integrity sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg== + dependencies: + expand-tilde "^2.0.0" + global-modules "^1.0.0" + +resolve-from@5.0.0, resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.npmmirror.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== -resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== +resolve-global@1.0.0, resolve-global@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/resolve-global/-/resolve-global-1.0.0.tgz#a2a79df4af2ca3f49bf77ef9ddacd322dad19255" + integrity sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw== + dependencies: + global-dirs "^0.1.1" resolve.exports@^2.0.0: version "2.0.2" @@ -3303,12 +3641,10 @@ restore-cursor@^3.1.0: onetime "^5.1.0" signal-exit "^3.0.2" -rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" +rfdc@^1.3.0: + version "1.3.0" + resolved "https://registry.npmmirror.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" + integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== run-async@^2.4.0: version "2.4.1" @@ -3342,12 +3678,19 @@ safe-buffer@~5.2.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== +semver@7.5.4: + version "7.5.4" + resolved "https://registry.npmmirror.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" + integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== + dependencies: + lru-cache "^6.0.0" + semver@^6.0.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.1.1, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: +semver@^7.1.1, semver@^7.3.4, semver@^7.3.5: version "7.5.1" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.1.tgz#c90c4d631cf74720e46b21c1d37ea07edfab91ec" integrity sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw== @@ -3381,15 +3724,32 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== +slice-ansi@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" + integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + slice-ansi@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + resolved "https://registry.npmmirror.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== dependencies: ansi-styles "^4.0.0" astral-regex "^2.0.0" is-fullwidth-code-point "^3.0.0" +slice-ansi@^5.0.0: + version "5.0.0" + resolved "https://registry.npmmirror.com/slice-ansi/-/slice-ansi-5.0.0.tgz#b73063c57aa96f9cd881654b15294d95d285c42a" + integrity sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ== + dependencies: + ansi-styles "^6.0.0" + is-fullwidth-code-point "^4.0.0" + source-map-support@0.5.13: version "0.5.13" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" @@ -3429,7 +3789,7 @@ spdx-license-ids@^3.0.0: resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz#7189a474c46f8d47c7b0da4b987bb45e908bd2d5" integrity sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w== -split2@^3.0.0: +split2@^3.0.0, split2@^3.2.2: version "3.2.2" resolved "https://registry.yarnpkg.com/split2/-/split2-3.2.2.tgz#bf2cf2a37d838312c249c89206fd7a17dd12365f" integrity sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg== @@ -3475,6 +3835,11 @@ standard-version@^9.5.0: stringify-package "^1.0.1" yargs "^16.0.0" +string-argv@^0.3.1: + version "0.3.2" + resolved "https://registry.npmmirror.com/string-argv/-/string-argv-0.3.2.tgz#2b6d0ef24b656274d957d54e0a4bbf6153dc02b6" + integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q== + string-length@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" @@ -3492,6 +3857,15 @@ string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" +string-width@^5.0.0: + version "5.1.2" + resolved "https://registry.npmmirror.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + string_decoder@^1.1.1: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" @@ -3518,16 +3892,23 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: dependencies: ansi-regex "^5.0.1" +strip-ansi@^7.0.1: + version "7.1.0" + resolved "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== + dependencies: + ansi-regex "^6.0.1" + +strip-bom@4.0.0, strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== -strip-bom@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" - integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== - strip-final-newline@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" @@ -3540,9 +3921,9 @@ strip-indent@^3.0.0: dependencies: min-indent "^1.0.0" -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: +strip-json-comments@3.1.1, strip-json-comments@^3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + resolved "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== supports-color@^5.3.0: @@ -3566,22 +3947,16 @@ supports-color@^8.0.0: dependencies: has-flag "^4.0.0" +supports-color@^9.2.2: + version "9.4.0" + resolved "https://registry.npmmirror.com/supports-color/-/supports-color-9.4.0.tgz#17bfcf686288f531db3dea3215510621ccb55954" + integrity sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw== + supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -table@^6.0.9: - version "6.8.1" - resolved "https://registry.yarnpkg.com/table/-/table-6.8.1.tgz#ea2b71359fe03b017a5fbc296204471158080bdf" - integrity sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA== - dependencies: - ajv "^8.0.1" - lodash.truncate "^4.4.2" - slice-ansi "^4.0.0" - string-width "^4.2.3" - strip-ansi "^6.0.1" - test-exclude@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" @@ -3596,11 +3971,6 @@ text-extensions@^1.0.0: resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" integrity sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ== -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== - through2@^2.0.0: version "2.0.5" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" @@ -3616,7 +3986,7 @@ through2@^4.0.0: dependencies: readable-stream "3" -through@2, "through@>=2.2.7 <3", through@^2.3.6: +through@2, "through@>=2.2.7 <3", through@^2.3.6, through@^2.3.8: version "2.3.8" resolved "https://registry.npmmirror.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== @@ -3650,30 +4020,30 @@ trim-newlines@^3.0.0: resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== -tslib@^1.8.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== +ts-node@^10.8.1: + version "10.9.1" + resolved "https://registry.npmmirror.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" + integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== + dependencies: + "@cspotcode/source-map-support" "^0.8.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + v8-compile-cache-lib "^3.0.1" + yn "3.1.1" tslib@^2.1.0: version "2.6.2" resolved "https://registry.npmmirror.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== -tsutils@^3.17.1: - version "3.21.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" - integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== - dependencies: - tslib "^1.8.1" - -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - type-detect@4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" @@ -3684,11 +4054,6 @@ type-fest@^0.18.0: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f" integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw== -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - type-fest@^0.21.3: version "0.21.3" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" @@ -3709,6 +4074,11 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== +"typescript@^4.6.4 || ^5.0.0": + version "5.2.2" + resolved "https://registry.npmmirror.com/typescript/-/typescript-5.2.2.tgz#5ebb5e5a5b75f085f22bc3f8460fba308310fa78" + integrity sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w== + typescript@^5.0.4: version "5.0.4" resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.0.4.tgz#b217fd20119bd61a94d4011274e0ab369058da3b" @@ -3719,6 +4089,11 @@ uglify-js@^3.1.4: resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g== +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + update-browserslist-db@^1.0.11: version "1.0.11" resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" @@ -3739,10 +4114,10 @@ util-deprecate@^1.0.1, util-deprecate@~1.0.1: resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== -v8-compile-cache@^2.0.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" - integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== +v8-compile-cache-lib@^3.0.1: + version "3.0.1" + resolved "https://registry.npmmirror.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== v8-to-istanbul@^9.0.1: version "9.1.0" @@ -3775,6 +4150,13 @@ wcwidth@^1.0.1: dependencies: defaults "^1.0.3" +which@^1.2.14: + version "1.3.1" + resolved "https://registry.npmmirror.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + which@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" @@ -3782,17 +4164,17 @@ which@^2.0.1: dependencies: isexe "^2.0.0" -word-wrap@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== +word-wrap@^1.0.3, word-wrap@^1.2.5: + version "1.2.5" + resolved "https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" + integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== wordwrap@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== -wrap-ansi@^6.0.1: +wrap-ansi@^6.0.1, wrap-ansi@^6.2.0: version "6.2.0" resolved "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== @@ -3843,6 +4225,11 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== +yaml@^1.10.2: + version "1.10.2" + resolved "https://registry.npmmirror.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== + yargs-parser@^20.2.2, yargs-parser@^20.2.3: version "20.2.9" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" @@ -3866,9 +4253,9 @@ yargs@^16.0.0, yargs@^16.2.0: y18n "^5.0.5" yargs-parser "^20.2.2" -yargs@^17.3.1: +yargs@^17.0.0, yargs@^17.3.1: version "17.7.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + resolved "https://registry.npmmirror.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== dependencies: cliui "^8.0.1" @@ -3879,6 +4266,11 @@ yargs@^17.3.1: y18n "^5.0.5" yargs-parser "^21.1.1" +yn@3.1.1: + version "3.1.1" + resolved "https://registry.npmmirror.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"