diff --git a/.eslintrc.cjs b/.eslintrc.cjs index e3536474..21ed1eda 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -1,21 +1,11 @@ const {getESLintConfig} = require('ocular-dev-tools/configuration'); module.exports = getESLintConfig({ - react: '16.8.2', overrides: { parserOptions: { project: ['./tsconfig.json'] }, - settings: { - // Ensure eslint finds typescript files - 'import/resolver': { - node: { - extensions: ['.js', '.jsx', '.mjs', '.ts', '.tsx'] - } - } - }, - rules: { 'import/no-extraneous-dependencies': 0, 'import/no-unresolved': 0, diff --git a/babel.config.cjs b/babel.config.cjs deleted file mode 100644 index d532e828..00000000 --- a/babel.config.cjs +++ /dev/null @@ -1,8 +0,0 @@ -const {getBabelConfig} = require('ocular-dev-tools/configuration'); - -module.exports = getBabelConfig({ - react: true, - overrides: { - plugins: ['@babel/syntax-import-assertions'] - } -}); diff --git a/modules/dev-tools/package.json b/modules/dev-tools/package.json index 361540cd..2375d659 100644 --- a/modules/dev-tools/package.json +++ b/modules/dev-tools/package.json @@ -76,8 +76,6 @@ "@esbuild-plugins/node-globals-polyfill": "^0.2.0", "@esbuild-plugins/node-modules-polyfill": "^0.2.0", "@probe.gl/test-utils": "^4.0.6", - "@typescript-eslint/eslint-plugin": "^6.14.0", - "@typescript-eslint/parser": "^6.14.0", "babel-plugin-version-inline": "^1.0.0", "c8": "^7.12.0", "coveralls": "^3.0.3", @@ -85,7 +83,7 @@ "esbuild": "^0.16.7", "esbuild-plugin-external-global": "^1.0.1", "eslint": "^8.52.0", - "eslint-config-prettier": "^6.7.0", + "eslint-config-prettier": "^8.0.0", "eslint-plugin-babel": "^5.3.1", "eslint-plugin-import": "^2.28.0", "eslint-plugin-jsx-a11y": "^6.1.2", @@ -95,12 +93,13 @@ "glob": "^7.1.4", "lerna": "^8.1.0", "minimatch": "^3.0.0", - "prettier": "3.0.3", + "prettier": "^3.2.0", "prettier-check": "2.0.0", "tape": "^4.11.0", "tape-promise": "^4.0.0", "tap-spec": "^5.0.0", "typescript": "^5.2.2", + "typescript-eslint": "^7.7.0", "ts-node": "~10.9.0", "ts-patch": "^3.1.2", "tsconfig-paths": "^4.1.1", diff --git a/modules/dev-tools/scripts/bundle.js b/modules/dev-tools/scripts/bundle.js index f84a9c89..cf44477e 100755 --- a/modules/dev-tools/scripts/bundle.js +++ b/modules/dev-tools/scripts/bundle.js @@ -17,19 +17,23 @@ for (let i = 1; i < process.argv.length; i++) { } } -const buildConfig = await getBundleConfig({ - ...env, - input: entryPoint -}); +run(); -if (env.watch) { - buildConfig.watch = true; - await esbuild.build(buildConfig); - /* eslint-disable no-console */ - console.log('watching...'); -} else { - const result = await esbuild.build(buildConfig); - if (result.errors.length > 0) { - process.exit(1); +async function run() { + const buildConfig = await getBundleConfig({ + ...env, + input: entryPoint + }); + + if (env.watch) { + buildConfig.watch = true; + await esbuild.build(buildConfig); + /* eslint-disable no-console */ + console.log('watching...'); + } else { + const result = await esbuild.build(buildConfig); + if (result.errors.length > 0) { + process.exit(1); + } } } diff --git a/modules/dev-tools/src/configuration/get-eslint-config.ts b/modules/dev-tools/src/configuration/get-eslint-config.ts index b6cfe796..1a206064 100644 --- a/modules/dev-tools/src/configuration/get-eslint-config.ts +++ b/modules/dev-tools/src/configuration/get-eslint-config.ts @@ -1,37 +1,36 @@ -import eslint from '@typescript-eslint/eslint-plugin'; import deepMerge from 'deepmerge'; import {getValidPath, ocularRoot} from '../utils/utils.js'; import {inspect} from 'util'; import {resolve} from 'path'; -const typescriptConfigs = eslint.configs; const localRules = (path) => resolve(ocularRoot, 'src/configuration', path); const DEFAULT_OPTIONS = { react: false } as const; +const babelConfig = getValidPath( + './.babelrc', + './.babelrc.js', + './.babelrc.cjs', + './babel.config.js', + './babel.config.cjs' +); + const DEFAULT_CONFIG = { extends: [ localRules('./eslint-config-uber-es2015/eslintrc.json'), 'prettier', - 'prettier/react', - 'plugin:import/errors' + 'plugin:import/recommended' ], plugins: ['import'], - parser: '@babel/eslint-parser', + parser: babelConfig ? '@babel/eslint-parser' : '', parserOptions: { ecmaVersion: 2020, // @babel/eslint-parser issues https://github.com/babel/babel/issues/11975 requireConfigFile: false, babelOptions: { - configFile: getValidPath( - './.babelrc', - './.babelrc.js', - './.babelrc.cjs', - './babel.config.js', - './babel.config.cjs' - ) + configFile: babelConfig } }, env: { @@ -43,14 +42,14 @@ const DEFAULT_CONFIG = { __VERSION__: 'readonly' }, rules: { - 'guard-for-in': 0, - 'generator-star-spacing': 0, - 'func-names': 0, - 'no-inline-comments': 0, - 'no-multi-str': 0, - 'space-before-function-paren': 0, + 'guard-for-in': 'off', + 'func-names': 'off', + 'no-inline-comments': 'off', + 'no-multi-str': 'off', + camelcase: 'warn', + // Let prettier handle this + indent: 'off', 'accessor-pairs': ['error', {getWithoutSet: false, setWithoutGet: false}], - 'import/no-unresolved': ['error'], 'import/no-extraneous-dependencies': ['error', {devDependencies: false, peerDependencies: true}] }, settings: { @@ -72,72 +71,46 @@ const DEFAULT_CONFIG = { sourceType: 'module', // we want to use ES modules project: './tsconfig.json' }, + extends: ['plugin:@typescript-eslint/recommended-type-checked'], plugins: ['@typescript-eslint'], rules: { - ...typescriptConfigs['eslint-recommended'].rules, - ...typescriptConfigs.recommended.rules, - ...typescriptConfigs['recommended-requiring-type-checking'].rules, - - // typescript-eslint 6.0 - '@typescript-eslint/no-unsafe-argument': 0, - '@typescript-eslint/no-redundant-type-constituents': 0, - '@typescript-eslint/no-unsafe-enum-comparison': 1, - '@typescript-eslint/no-duplicate-type-constituents': 1, - '@typescript-eslint/no-base-to-string': 1, - '@typescript-eslint/no-loss-of-precision': 1, - - // We still have some issues with import resolution - 'import/named': 0, - 'import/no-extraneous-dependencies': ['warn'], - // Warn instead of error - 'max-params': ['warn'], - 'no-undef': ['warn'], - camelcase: ['warn'], - indent: ['warn', 2, {SwitchCase: 1}], - quotes: ['warn', 'single'], - 'no-process-env': 'off', - - // typescript rules - - // Some of JS rules don't always work correctly in TS and - // hence need to be reimported as TS rules - 'no-redeclare': 'off', - 'no-shadow': 'off', - 'no-use-before-define': 'off', - 'no-dupe-class-members': 'off', - - // TODO - These rules are sometimes not found? - // '@typescript-eslint/no-shadow': ['warn'], - // '@typescript-eslint/no-redeclare': ['warn'], + '@typescript-eslint/no-dupe-class-members': 'error', + '@typescript-eslint/switch-exhaustiveness-check': 'error', + // Rules disabled because they conflict with our preferred style // We use function hoisting to put exports at top of file '@typescript-eslint/no-use-before-define': 'off', - '@typescript-eslint/no-dupe-class-members': ['error'], - // We encourage explicit typing, e.g `field: string = ''` '@typescript-eslint/no-inferrable-types': 'off', - - '@typescript-eslint/no-empty-interface': ['warn'], - '@typescript-eslint/restrict-template-expressions': ['warn'], - '@typescript-eslint/explicit-module-boundary-types': ['warn'], - '@typescript-eslint/require-await': ['warn'], - '@typescript-eslint/no-unsafe-return': ['warn'], - '@typescript-eslint/no-unsafe-call': ['warn'], - - // some day we will hopefully be able to enable this rule - '@typescript-eslint/no-explicit-any': 'off', - '@typescript-eslint/ban-ts-comment': ['warn'], - '@typescript-eslint/ban-types': ['warn'], - '@typescript-eslint/no-unsafe-member-access': ['warn'], - '@typescript-eslint/no-unsafe-assignment': ['warn'], - '@typescript-eslint/no-var-requires': ['warn'], - '@typescript-eslint/no-unused-vars': ['warn'], - '@typescript-eslint/switch-exhaustiveness-check': ['error'], - '@typescript-eslint/no-floating-promises': ['warn'], - '@typescript-eslint/await-thenable': ['warn'], - '@typescript-eslint/no-misused-promises': ['warn'], - '@typescript-eslint/restrict-plus-operands': ['warn'], - '@typescript-eslint/no-empty-function': ['warn'] + // Allow noOp as default value for callbacks + '@typescript-eslint/no-empty-function': 'off', + + // Rules downgraded because they are deemed acceptable + '@typescript-eslint/ban-ts-comment': [ + 'error', + { + 'ts-expect-error': 'allow-with-description', + 'ts-ignore': 'allow-with-description', + 'ts-nocheck': 'allow-with-description', + 'ts-check': false, + minimumDescriptionLength: 3 + } + ], + '@typescript-eslint/no-floating-promises': 'warn', + '@typescript-eslint/restrict-template-expressions': 'warn', + '@typescript-eslint/no-empty-interface': 'warn', + '@typescript-eslint/require-await': 'warn', + + // Rules that restrict the use of `any` + // Might be too strict for our code base, but should be gradually enabled + '@typescript-eslint/no-explicit-any': 'warn', + '@typescript-eslint/no-unsafe-argument': 'warn', + '@typescript-eslint/no-unsafe-assignment': 'warn', + '@typescript-eslint/no-unsafe-call': 'warn', + '@typescript-eslint/no-unsafe-enum-comparison': 'warn', + '@typescript-eslint/no-unsafe-member-access': 'warn', + '@typescript-eslint/no-unsafe-return': 'warn', + '@typescript-eslint/explicit-module-boundary-types': 'warn' } }, { @@ -162,8 +135,7 @@ function getReactConfig(options) { extends: [ localRules('./eslint-config-uber-jsx/eslintrc.json'), 'prettier', - 'prettier/react', - 'plugin:import/errors' + 'plugin:import/recommended' ], plugins: ['import', 'react'], settings: { diff --git a/modules/dev-tools/src/helpers/esm-alias.ts b/modules/dev-tools/src/helpers/esm-alias.ts index c2915125..b8d97c2c 100644 --- a/modules/dev-tools/src/helpers/esm-alias.ts +++ b/modules/dev-tools/src/helpers/esm-alias.ts @@ -41,7 +41,7 @@ export const resolve: ResolveHook = (specifier, context, nextResolver) => { specifier = `${pathToFileURL(mappedSpecifier)}`; } } - // @ts-ignore + // @ts-expect-error omitted arguments are populated by Node.js return nextResolver(specifier); }; diff --git a/modules/dev-tools/src/ts-plugins/ts-transform-inline-webgl-constants/index.ts b/modules/dev-tools/src/ts-plugins/ts-transform-inline-webgl-constants/index.ts index a7185984..4aa4b6ac 100644 --- a/modules/dev-tools/src/ts-plugins/ts-transform-inline-webgl-constants/index.ts +++ b/modules/dev-tools/src/ts-plugins/ts-transform-inline-webgl-constants/index.ts @@ -10,7 +10,7 @@ ] } */ -import type {Program, TransformationContext, SourceFile, Node, StringLiteral} from 'typescript'; +import type {Program, TransformationContext, SourceFile, Node} from 'typescript'; import type {TransformerExtras, PluginConfig} from 'ts-patch'; import {GL} from '@luma.gl/constants'; diff --git a/yarn.lock b/yarn.lock index 449b7f24..a39fd391 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1315,7 +1315,7 @@ dependencies: eslint-visitor-keys "^3.3.0" -"@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1": +"@eslint-community/regexpp@^4.10.0", "@eslint-community/regexpp@^4.6.1": version "4.10.0" resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== @@ -2029,10 +2029,10 @@ resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz#fdfdd69fa16d530047d9963635bd77c71a08c068" integrity sha512-zONci81DZYCZjiLe0r6equvZut0b+dBRPBN5kBDjsONnutYNtJMoWQ9uR2RkL1gLG9NMTzvf+29e5RFfPbeKhQ== -"@types/json-schema@^7.0.12": - version "7.0.14" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.14.tgz#74a97a5573980802f32c8e47b663530ab3b6b7d1" - integrity sha512-U3PUjAudAdJBeC2pgN8uTIKgxrb4nlDF3SF0++EldXQvQBGkpFZMSnwQiIoDU77tv45VgNkl/L4ouD+rEomujw== +"@types/json-schema@^7.0.15": + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== "@types/json5@^0.0.29": version "0.0.29" @@ -2075,10 +2075,10 @@ dependencies: "@types/node" "*" -"@types/semver@^7.5.0": - version "7.5.4" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.4.tgz#0a41252ad431c473158b22f9bfb9a63df7541cff" - integrity sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ== +"@types/semver@^7.5.8": + version "7.5.8" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e" + integrity sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ== "@types/unist@^2", "@types/unist@^2.0.2": version "2.0.9" @@ -2092,90 +2092,91 @@ dependencies: "@types/node" "*" -"@typescript-eslint/eslint-plugin@^6.14.0": - version "6.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.14.0.tgz#fc1ab5f23618ba590c87e8226ff07a760be3dd7b" - integrity sha512-1ZJBykBCXaSHG94vMMKmiHoL0MhNHKSVlcHVYZNw+BKxufhqQVTOawNpwwI1P5nIFZ/4jLVop0mcY6mJJDFNaw== +"@typescript-eslint/eslint-plugin@7.7.1": + version "7.7.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.7.1.tgz#50a9044e3e5fe76b22caf64fb7fc1f97614bdbfd" + integrity sha512-KwfdWXJBOviaBVhxO3p5TJiLpNuh2iyXyjmWN0f1nU87pwyvfS0EmjC6ukQVYVFJd/K1+0NWGPDXiyEyQorn0Q== dependencies: - "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.14.0" - "@typescript-eslint/type-utils" "6.14.0" - "@typescript-eslint/utils" "6.14.0" - "@typescript-eslint/visitor-keys" "6.14.0" + "@eslint-community/regexpp" "^4.10.0" + "@typescript-eslint/scope-manager" "7.7.1" + "@typescript-eslint/type-utils" "7.7.1" + "@typescript-eslint/utils" "7.7.1" + "@typescript-eslint/visitor-keys" "7.7.1" debug "^4.3.4" graphemer "^1.4.0" - ignore "^5.2.4" + ignore "^5.3.1" natural-compare "^1.4.0" - semver "^7.5.4" - ts-api-utils "^1.0.1" - -"@typescript-eslint/parser@^6.14.0": - version "6.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.14.0.tgz#a2d6a732e0d2b95c73f6a26ae7362877cc1b4212" - integrity sha512-QjToC14CKacd4Pa7JK4GeB/vHmWFJckec49FR4hmIRf97+KXole0T97xxu9IFiPxVQ1DBWrQ5wreLwAGwWAVQA== - dependencies: - "@typescript-eslint/scope-manager" "6.14.0" - "@typescript-eslint/types" "6.14.0" - "@typescript-eslint/typescript-estree" "6.14.0" - "@typescript-eslint/visitor-keys" "6.14.0" + semver "^7.6.0" + ts-api-utils "^1.3.0" + +"@typescript-eslint/parser@7.7.1": + version "7.7.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-7.7.1.tgz#f940e9f291cdca40c46cb75916217d3a42d6ceea" + integrity sha512-vmPzBOOtz48F6JAGVS/kZYk4EkXao6iGrD838sp1w3NQQC0W8ry/q641KU4PrG7AKNAf56NOcR8GOpH8l9FPCw== + dependencies: + "@typescript-eslint/scope-manager" "7.7.1" + "@typescript-eslint/types" "7.7.1" + "@typescript-eslint/typescript-estree" "7.7.1" + "@typescript-eslint/visitor-keys" "7.7.1" debug "^4.3.4" -"@typescript-eslint/scope-manager@6.14.0": - version "6.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.14.0.tgz#53d24363fdb5ee0d1d8cda4ed5e5321272ab3d48" - integrity sha512-VT7CFWHbZipPncAZtuALr9y3EuzY1b1t1AEkIq2bTXUPKw+pHoXflGNG5L+Gv6nKul1cz1VH8fz16IThIU0tdg== +"@typescript-eslint/scope-manager@7.7.1": + version "7.7.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-7.7.1.tgz#07fe59686ca843f66e3e2b5c151522bc38effab2" + integrity sha512-PytBif2SF+9SpEUKynYn5g1RHFddJUcyynGpztX3l/ik7KmZEv19WCMhUBkHXPU9es/VWGD3/zg3wg90+Dh2rA== dependencies: - "@typescript-eslint/types" "6.14.0" - "@typescript-eslint/visitor-keys" "6.14.0" + "@typescript-eslint/types" "7.7.1" + "@typescript-eslint/visitor-keys" "7.7.1" -"@typescript-eslint/type-utils@6.14.0": - version "6.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.14.0.tgz#ac9cb5ba0615c837f1a6b172feeb273d36e4f8af" - integrity sha512-x6OC9Q7HfYKqjnuNu5a7kffIYs3No30isapRBJl1iCHLitD8O0lFbRcVGiOcuyN837fqXzPZ1NS10maQzZMKqw== +"@typescript-eslint/type-utils@7.7.1": + version "7.7.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-7.7.1.tgz#2f8094edca3bebdaad009008929df645ed9c8743" + integrity sha512-ZksJLW3WF7o75zaBPScdW1Gbkwhd/lyeXGf1kQCxJaOeITscoSl0MjynVvCzuV5boUz/3fOI06Lz8La55mu29Q== dependencies: - "@typescript-eslint/typescript-estree" "6.14.0" - "@typescript-eslint/utils" "6.14.0" + "@typescript-eslint/typescript-estree" "7.7.1" + "@typescript-eslint/utils" "7.7.1" debug "^4.3.4" - ts-api-utils "^1.0.1" + ts-api-utils "^1.3.0" -"@typescript-eslint/types@6.14.0": - version "6.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.14.0.tgz#935307f7a931016b7a5eb25d494ea3e1f613e929" - integrity sha512-uty9H2K4Xs8E47z3SnXEPRNDfsis8JO27amp2GNCnzGETEW3yTqEIVg5+AI7U276oGF/tw6ZA+UesxeQ104ceA== +"@typescript-eslint/types@7.7.1": + version "7.7.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.7.1.tgz#f903a651fb004c75add08e4e9e207f169d4b98d7" + integrity sha512-AmPmnGW1ZLTpWa+/2omPrPfR7BcbUU4oha5VIbSbS1a1Tv966bklvLNXxp3mrbc+P2j4MNOTfDffNsk4o0c6/w== -"@typescript-eslint/typescript-estree@6.14.0": - version "6.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.14.0.tgz#90c7ddd45cd22139adf3d4577580d04c9189ac13" - integrity sha512-yPkaLwK0yH2mZKFE/bXkPAkkFgOv15GJAUzgUVonAbv0Hr4PK/N2yaA/4XQbTZQdygiDkpt5DkxPELqHguNvyw== +"@typescript-eslint/typescript-estree@7.7.1": + version "7.7.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.7.1.tgz#5cafde48fe390fe1c1b329b2ce0ba8a73c1e87b2" + integrity sha512-CXe0JHCXru8Fa36dteXqmH2YxngKJjkQLjxzoj6LYwzZ7qZvgsLSc+eqItCrqIop8Vl2UKoAi0StVWu97FQZIQ== dependencies: - "@typescript-eslint/types" "6.14.0" - "@typescript-eslint/visitor-keys" "6.14.0" + "@typescript-eslint/types" "7.7.1" + "@typescript-eslint/visitor-keys" "7.7.1" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" - semver "^7.5.4" - ts-api-utils "^1.0.1" + minimatch "^9.0.4" + semver "^7.6.0" + ts-api-utils "^1.3.0" -"@typescript-eslint/utils@6.14.0": - version "6.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.14.0.tgz#856a9e274367d99ffbd39c48128b93a86c4261e3" - integrity sha512-XwRTnbvRr7Ey9a1NT6jqdKX8y/atWG+8fAIu3z73HSP8h06i3r/ClMhmaF/RGWGW1tHJEwij1uEg2GbEmPYvYg== +"@typescript-eslint/utils@7.7.1": + version "7.7.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-7.7.1.tgz#5d161f2b4a55e1bc38b634bebb921e4bd4e4a16e" + integrity sha512-QUvBxPEaBXf41ZBbaidKICgVL8Hin0p6prQDu6bbetWo39BKbWJxRsErOzMNT1rXvTll+J7ChrbmMCXM9rsvOQ== dependencies: "@eslint-community/eslint-utils" "^4.4.0" - "@types/json-schema" "^7.0.12" - "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.14.0" - "@typescript-eslint/types" "6.14.0" - "@typescript-eslint/typescript-estree" "6.14.0" - semver "^7.5.4" - -"@typescript-eslint/visitor-keys@6.14.0": - version "6.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.14.0.tgz#1d1d486581819287de824a56c22f32543561138e" - integrity sha512-fB5cw6GRhJUz03MrROVuj5Zm/Q+XWlVdIsFj+Zb1Hvqouc8t+XP2H5y53QYU/MGtd2dPg6/vJJlhoX3xc2ehfw== - dependencies: - "@typescript-eslint/types" "6.14.0" - eslint-visitor-keys "^3.4.1" + "@types/json-schema" "^7.0.15" + "@types/semver" "^7.5.8" + "@typescript-eslint/scope-manager" "7.7.1" + "@typescript-eslint/types" "7.7.1" + "@typescript-eslint/typescript-estree" "7.7.1" + semver "^7.6.0" + +"@typescript-eslint/visitor-keys@7.7.1": + version "7.7.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.7.1.tgz#da2294796220bb0f3b4add5ecbb1b9c3f4f65798" + integrity sha512-gBL3Eq25uADw1LQ9kVpf3hRM+DWzs0uZknHYK3hq4jcTPqVCClHGDnB6UUUV2SFeBeA4KWHWbbLqmbGcZ4FYbw== + dependencies: + "@typescript-eslint/types" "7.7.1" + eslint-visitor-keys "^3.4.3" "@ungap/structured-clone@^1.2.0": version "1.2.0" @@ -3668,12 +3669,10 @@ escodegen@^2.1.0: optionalDependencies: source-map "~0.6.1" -eslint-config-prettier@^6.7.0: - version "6.15.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.15.0.tgz#7f93f6cb7d45a92f1537a70ecc06366e1ac6fed9" - integrity sha512-a1+kOYLR8wMGustcgAjdydMsQ2A/2ipRPwRKUmfYaSxc9ZPcrku080Ctl6zrZzZNs/U82MjSv+qKREkoq3bJaw== - dependencies: - get-stdin "^6.0.0" +eslint-config-prettier@^8.0.0: + version "8.10.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz#3a06a662130807e2502fc3ff8b4143d8a0658e11" + integrity sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg== eslint-import-resolver-node@^0.3.9: version "0.3.9" @@ -4279,11 +4278,6 @@ get-port@5.1.1: resolved "https://registry.yarnpkg.com/get-port/-/get-port-5.1.1.tgz#0469ed07563479de6efb986baf053dcd7d4e3193" integrity sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ== -get-stdin@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" - integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== - get-stream@6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.0.tgz#3e0012cb6827319da2706e601a1583e8629a6718" @@ -4724,12 +4718,12 @@ ignore-walk@^6.0.4: dependencies: minimatch "^9.0.0" -ignore@^5.0.4: +ignore@^5.0.4, ignore@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== -ignore@^5.2.0, ignore@^5.2.4: +ignore@^5.2.0: version "5.2.4" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== @@ -5845,7 +5839,7 @@ minimatch@^8.0.2: dependencies: brace-expansion "^2.0.1" -minimatch@^9.0.0, minimatch@^9.0.1: +minimatch@^9.0.0, minimatch@^9.0.1, minimatch@^9.0.4: version "9.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.4.tgz#8e49c731d1749cbec05050ee5145147b32496a51" integrity sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw== @@ -6855,10 +6849,10 @@ prettier-check@2.0.0: dependencies: execa "^0.6.0" -prettier@3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.3.tgz#432a51f7ba422d1469096c0fdc28e235db8f9643" - integrity sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg== +prettier@^3.2.0: + version "3.2.5" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.5.tgz#e52bc3090586e824964a8813b09aba6233b28368" + integrity sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A== pretty-format@^29.7.0: version "29.7.0" @@ -7433,7 +7427,7 @@ semver@^6.3.0, semver@^6.3.1: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.0.0, semver@^7.1.1, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8: +semver@^7.0.0, semver@^7.1.1, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.6.0: version "7.6.0" resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== @@ -8084,10 +8078,10 @@ trim@0.0.1: resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd" integrity sha512-YzQV+TZg4AxpKxaTHK3c3D+kRDCGVEE7LemdlQZoQXn0iennk10RsIoY6ikzAqJTc9Xjl9C1/waHom/J86ziAQ== -ts-api-utils@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.0.3.tgz#f12c1c781d04427313dbac808f453f050e54a331" - integrity sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg== +ts-api-utils@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1" + integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ== ts-morph@^21.0.0: version "21.0.1" @@ -8263,6 +8257,15 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== +typescript-eslint@^7.7.0: + version "7.7.1" + resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-7.7.1.tgz#16f82e83bb0955af02f258cb7a9de59e1bfb8706" + integrity sha512-ykEBfa3xx3odjZy6GRED4SCPrjo0rgHwstLlEgLX4EMEuv7QeIDSmfV+S6Kk+XkbsYn4BDEcPvsci1X26lRpMQ== + dependencies: + "@typescript-eslint/eslint-plugin" "7.7.1" + "@typescript-eslint/parser" "7.7.1" + "@typescript-eslint/utils" "7.7.1" + "typescript@>=3 < 6": version "5.4.5" resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.5.tgz#42ccef2c571fdbd0f6718b1d1f5e6e5ef006f611"