diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index 2974196847e467..00000000000000 --- a/.eslintignore +++ /dev/null @@ -1,3 +0,0 @@ -dist -playground-temp -temp diff --git a/.eslintrc.cjs b/.eslintrc.cjs deleted file mode 100644 index 70fbf8dfca8bf7..00000000000000 --- a/.eslintrc.cjs +++ /dev/null @@ -1,260 +0,0 @@ -// @ts-check -const { builtinModules } = require('node:module') -const { defineConfig } = require('eslint-define-config') -const pkg = require('./package.json') - -/// - -module.exports = defineConfig({ - root: true, - extends: [ - 'eslint:recommended', - 'plugin:n/recommended', - 'plugin:@typescript-eslint/recommended', - 'plugin:@typescript-eslint/stylistic', - 'plugin:regexp/recommended', - ], - ignorePatterns: ['packages/create-vite/template-**'], - plugins: ['i', 'regexp'], - parser: '@typescript-eslint/parser', - parserOptions: { - sourceType: 'module', - ecmaVersion: 2022, - }, - rules: { - eqeqeq: ['warn', 'always', { null: 'never' }], - 'no-debugger': ['error'], - 'no-empty': ['warn', { allowEmptyCatch: true }], - 'no-process-exit': 'off', - 'no-useless-escape': 'off', - 'prefer-const': [ - 'warn', - { - destructuring: 'all', - }, - ], - - 'n/no-process-exit': 'off', - 'n/no-missing-import': 'off', - 'n/no-missing-require': [ - 'error', - { - // for try-catching yarn pnp - allowModules: ['pnpapi', 'vite'], - tryExtensions: ['.ts', '.js', '.jsx', '.tsx', '.d.ts'], - }, - ], - 'n/no-extraneous-import': [ - 'error', - { - allowModules: ['vite', 'less', 'sass', 'vitest', 'unbuild'], - }, - ], - 'n/no-extraneous-require': [ - 'error', - { - allowModules: ['vite'], - }, - ], - 'n/no-deprecated-api': 'off', - 'n/no-unpublished-import': 'off', - 'n/no-unpublished-require': 'off', - 'n/no-unsupported-features/es-syntax': 'off', - - '@typescript-eslint/ban-ts-comment': 'error', - '@typescript-eslint/ban-types': 'off', // TODO: we should turn this on in a new PR - '@typescript-eslint/explicit-module-boundary-types': [ - 'error', - { allowArgumentsExplicitlyTypedAsAny: true }, - ], - '@typescript-eslint/no-empty-function': [ - 'error', - { allow: ['arrowFunctions'] }, - ], - '@typescript-eslint/no-empty-interface': 'off', - '@typescript-eslint/no-explicit-any': 'off', // maybe we should turn this on in a new PR - 'no-extra-semi': 'off', - '@typescript-eslint/no-extra-semi': 'off', // conflicts with prettier - '@typescript-eslint/no-inferrable-types': 'off', - '@typescript-eslint/no-unused-vars': 'off', // maybe we should turn this on in a new PR - '@typescript-eslint/no-var-requires': 'off', - '@typescript-eslint/consistent-type-imports': [ - 'error', - { prefer: 'type-imports', disallowTypeAnnotations: false }, - ], - // disable rules set in @typescript-eslint/stylistic v6 that wasn't set in @typescript-eslint/recommended v5 and which conflict with current code - // maybe we should turn them on in a new PR - '@typescript-eslint/array-type': 'off', - '@typescript-eslint/ban-tslint-comment': 'off', - '@typescript-eslint/consistent-generic-constructors': 'off', - '@typescript-eslint/consistent-indexed-object-style': 'off', - '@typescript-eslint/consistent-type-definitions': 'off', - '@typescript-eslint/prefer-for-of': 'off', - '@typescript-eslint/prefer-function-type': 'off', - - 'i/no-nodejs-modules': [ - 'error', - { allow: builtinModules.map((mod) => `node:${mod}`) }, - ], - 'i/no-duplicates': 'error', - 'i/order': 'error', - 'sort-imports': [ - 'error', - { - ignoreCase: false, - ignoreDeclarationSort: true, - ignoreMemberSort: false, - memberSyntaxSortOrder: ['none', 'all', 'multiple', 'single'], - allowSeparatedGroups: false, - }, - ], - - 'regexp/no-contradiction-with-assertion': 'error', - // in some cases using explicit letter-casing is more performant than the `i` flag - 'regexp/use-ignore-case': 'off', - }, - overrides: [ - { - files: ['packages/**'], - excludedFiles: '**/__tests__/**', - rules: { - 'no-restricted-globals': [ - 'error', - 'require', - '__dirname', - '__filename', - ], - }, - }, - { - files: 'packages/vite/**/*.*', - rules: { - 'n/no-restricted-require': [ - 'error', - Object.keys( - require('./packages/vite/package.json').devDependencies, - ).map((d) => ({ - name: d, - message: - `devDependencies can only be imported using ESM syntax so ` + - `that they are included in the rollup bundle. If you are trying to ` + - `lazy load a dependency, use (await import('dependency')).default instead.`, - })), - ], - }, - }, - { - files: ['packages/vite/src/node/**'], - excludedFiles: '**/__tests__/**', - rules: { - 'no-console': ['error'], - }, - }, - { - files: ['packages/vite/src/client/**'], - excludedFiles: '**/__tests__/**', - rules: { - 'n/no-unsupported-features/node-builtins': 'off', - }, - }, - { - files: [ - 'packages/vite/src/types/**', - 'packages/vite/scripts/**', - '*.spec.ts', - ], - rules: { - 'n/no-extraneous-import': 'off', - }, - }, - { - files: ['packages/create-vite/template-*/**', '**/build.config.ts'], - rules: { - 'no-undef': 'off', - 'n/no-missing-import': 'off', - '@typescript-eslint/explicit-module-boundary-types': 'off', - }, - }, - { - files: ['playground/**'], - rules: { - 'n/no-extraneous-import': 'off', - 'n/no-extraneous-require': 'off', - 'n/no-missing-import': 'off', - 'n/no-missing-require': 'off', - 'n/no-unsupported-features/es-builtins': 'off', - 'n/no-unsupported-features/node-builtins': 'off', - '@typescript-eslint/explicit-module-boundary-types': 'off', - }, - }, - { - files: ['playground/**'], - excludedFiles: '**/__tests__/**', - rules: { - 'no-undef': 'off', - 'no-empty': 'off', - 'no-constant-condition': 'off', - '@typescript-eslint/no-empty-function': 'off', - }, - }, - { - files: ['playground/**'], - excludedFiles: [ - 'playground/ssr-resolve/**', - 'playground/**/*{commonjs,cjs}*/**', - 'playground/**/*{commonjs,cjs}*', - 'playground/**/*dep*/**', - 'playground/resolve/browser-module-field2/index.web.js', - 'playground/resolve/browser-field/**', - 'playground/tailwind/**', // blocked by https://github.com/postcss/postcss-load-config/issues/239 - ], - rules: { - 'i/no-commonjs': 'error', - }, - }, - { - files: ['playground/**/__tests__/**'], - rules: { - // engine field doesn't exist in playgrounds - 'n/no-unsupported-features/es-builtins': [ - 'error', - { - version: pkg.engines.node, - }, - ], - 'n/no-unsupported-features/node-builtins': [ - 'error', - { - version: pkg.engines.node, - // ideally we would like to allow all experimental features - // https://github.com/eslint-community/eslint-plugin-n/issues/199 - ignores: ['fetch'], - }, - ], - }, - }, - { - files: [ - 'playground/tsconfig-json/**', - 'playground/tsconfig-json-load-error/**', - ], - excludedFiles: '**/__tests__/**', - rules: { - '@typescript-eslint/ban-ts-comment': 'off', - }, - }, - { - files: ['*.js', '*.mjs', '*.cjs'], - rules: { - '@typescript-eslint/explicit-module-boundary-types': 'off', - }, - }, - { - files: ['*.d.ts'], - rules: { - '@typescript-eslint/triple-slash-reference': 'off', - }, - }, - ], - reportUnusedDisableDirectives: true, -}) diff --git a/docs/.vitepress/buildEnd.config.ts b/docs/.vitepress/buildEnd.config.ts index b819e3acf487c0..52a3625ceb3957 100644 --- a/docs/.vitepress/buildEnd.config.ts +++ b/docs/.vitepress/buildEnd.config.ts @@ -1,12 +1,13 @@ -import path from 'path' -import { writeFileSync } from 'fs' +import path from 'node:path' +import { writeFileSync } from 'node:fs' import { Feed } from 'feed' -import { createContentLoader, type SiteConfig } from 'vitepress' +import type { SiteConfig } from 'vitepress' +import { createContentLoader } from 'vitepress' const siteUrl = 'https://vitejs.dev' const blogUrl = `${siteUrl}/blog` -export const buildEnd = async (config: SiteConfig) => { +export const buildEnd = async (config: SiteConfig): Promise => { const feed = new Feed({ title: 'Vite', description: 'Next Generation Frontend Tooling', diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts index bf659fdbe29e3e..440a14d3aea2a2 100644 --- a/docs/.vitepress/config.ts +++ b/docs/.vitepress/config.ts @@ -1,4 +1,5 @@ -import { defineConfig, DefaultTheme } from 'vitepress' +import type { DefaultTheme } from 'vitepress' +import { defineConfig } from 'vitepress' import { transformerTwoslash } from '@shikijs/vitepress-twoslash' import { buildEnd } from './buildEnd.config' diff --git a/docs/.vitepress/theme/composables/sponsor.ts b/docs/.vitepress/theme/composables/sponsor.ts index 78fd30a124e331..63c91e0822719c 100644 --- a/docs/.vitepress/theme/composables/sponsor.ts +++ b/docs/.vitepress/theme/composables/sponsor.ts @@ -1,4 +1,4 @@ -import { ref, onMounted, onUnmounted } from 'vue' +import { onMounted, onUnmounted, ref } from 'vue' interface Sponsors { special: Sponsor[] diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 00000000000000..5784d7484af2df --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,289 @@ +// @ts-check +import { builtinModules, createRequire } from 'node:module' +import eslint from '@eslint/js' +import pluginN from 'eslint-plugin-n' +import * as pluginI from 'eslint-plugin-i' +import pluginRegExp from 'eslint-plugin-regexp' +import tsParser from '@typescript-eslint/parser' +import tseslint from 'typescript-eslint' +import globals from 'globals' + +const require = createRequire(import.meta.url) +const pkg = require('./package.json') +const pkgVite = require('./packages/vite/package.json') + +export default tseslint.config( + { + ignores: [ + 'packages/create-vite/template-*', + '**/dist/**', + '**/fixtures/**', + '**/playground-temp/**', + '**/temp/**', + '**/.vitepress/cache/**', + '**/*.snap', + ], + }, + eslint.configs.recommended, + ...tseslint.configs.recommended, + ...tseslint.configs.stylistic, + /** @type {any} */ (pluginRegExp.configs['flat/recommended']), + { + name: 'main', + languageOptions: { + parser: tsParser, + parserOptions: { + sourceType: 'module', + ecmaVersion: 2022, + }, + globals: { + ...globals.es2021, + ...globals.node, + }, + }, + plugins: { + n: pluginN, + i: pluginI, + }, + rules: { + 'n/no-exports-assign': 'error', + 'n/no-unpublished-bin': 'error', + 'n/no-unsupported-features/es-builtins': 'error', + 'n/no-unsupported-features/node-builtins': 'error', + 'n/process-exit-as-throw': 'error', + 'n/hashbang': 'error', + + eqeqeq: ['warn', 'always', { null: 'never' }], + 'no-debugger': ['error'], + 'no-empty': ['warn', { allowEmptyCatch: true }], + 'no-process-exit': 'off', + 'no-useless-escape': 'off', + 'prefer-const': [ + 'warn', + { + destructuring: 'all', + }, + ], + + 'n/no-missing-require': [ + 'error', + { + // for try-catching yarn pnp + allowModules: ['pnpapi', 'vite'], + tryExtensions: ['.ts', '.js', '.jsx', '.tsx', '.d.ts'], + }, + ], + 'n/no-extraneous-import': [ + 'error', + { + allowModules: ['vite', 'less', 'sass', 'vitest', 'unbuild'], + }, + ], + 'n/no-extraneous-require': [ + 'error', + { + allowModules: ['vite'], + }, + ], + + '@typescript-eslint/ban-ts-comment': 'error', + '@typescript-eslint/ban-types': 'off', // TODO: we should turn this on in a new PR + '@typescript-eslint/explicit-module-boundary-types': [ + 'error', + { allowArgumentsExplicitlyTypedAsAny: true }, + ], + '@typescript-eslint/no-empty-function': [ + 'error', + { allow: ['arrowFunctions'] }, + ], + '@typescript-eslint/no-empty-interface': 'off', + '@typescript-eslint/no-explicit-any': 'off', // maybe we should turn this on in a new PR + 'no-extra-semi': 'off', + '@typescript-eslint/no-extra-semi': 'off', // conflicts with prettier + '@typescript-eslint/no-inferrable-types': 'off', + '@typescript-eslint/no-unused-vars': 'off', // maybe we should turn this on in a new PR + '@typescript-eslint/no-var-requires': 'off', + '@typescript-eslint/consistent-type-imports': [ + 'error', + { prefer: 'type-imports', disallowTypeAnnotations: false }, + ], + // disable rules set in @typescript-eslint/stylistic v6 that wasn't set in @typescript-eslint/recommended v5 and which conflict with current code + // maybe we should turn them on in a new PR + '@typescript-eslint/array-type': 'off', + '@typescript-eslint/ban-tslint-comment': 'off', + '@typescript-eslint/consistent-generic-constructors': 'off', + '@typescript-eslint/consistent-indexed-object-style': 'off', + '@typescript-eslint/consistent-type-definitions': 'off', + '@typescript-eslint/prefer-for-of': 'off', + '@typescript-eslint/prefer-function-type': 'off', + + 'i/no-nodejs-modules': [ + 'error', + { allow: builtinModules.map((mod) => `node:${mod}`) }, + ], + 'i/no-duplicates': 'error', + 'i/order': 'error', + 'sort-imports': [ + 'error', + { + ignoreCase: false, + ignoreDeclarationSort: true, + ignoreMemberSort: false, + memberSyntaxSortOrder: ['none', 'all', 'multiple', 'single'], + allowSeparatedGroups: false, + }, + ], + + 'regexp/no-contradiction-with-assertion': 'error', + // in some cases using explicit letter-casing is more performant than the `i` flag + 'regexp/use-ignore-case': 'off', + }, + }, + { + name: 'vite/globals', + files: ['packages/**/*.?([cm])[jt]s?(x)'], + ignores: ['**/__tests__/**'], + rules: { + 'no-restricted-globals': ['error', 'require', '__dirname', '__filename'], + }, + }, + { + name: 'vite/node', + files: ['packages/vite/src/node/**/*.?([cm])[jt]s?(x)'], + rules: { + 'no-console': ['error'], + 'n/no-restricted-require': [ + 'error', + Object.keys(pkgVite.devDependencies).map((d) => ({ + name: d, + message: + `devDependencies can only be imported using ESM syntax so ` + + `that they are included in the rollup bundle. If you are trying to ` + + `lazy load a dependency, use (await import('dependency')).default instead.`, + })), + ], + }, + }, + { + name: 'playground/enforce-esm', + files: ['playground/**/*.?([cm])[jt]s?(x)'], + ignores: [ + 'playground/ssr-resolve/**', + 'playground/**/*{commonjs,cjs}*/**', + 'playground/**/*{commonjs,cjs}*', + 'playground/**/*dep*/**', + 'playground/resolve/browser-module-field2/index.web.js', + 'playground/resolve/browser-field/**', + 'playground/tailwind/**', // blocked by https://github.com/postcss/postcss-load-config/issues/239 + ], + rules: { + 'i/no-commonjs': 'error', + }, + }, + { + name: 'playground/test', + files: ['playground/**/__tests__/**/*.?([cm])[jt]s?(x)'], + rules: { + // engine field doesn't exist in playgrounds + 'n/no-unsupported-features/es-builtins': [ + 'error', + { + version: pkg.engines.node, + }, + ], + 'n/no-unsupported-features/node-builtins': [ + 'error', + { + version: pkg.engines.node, + // ideally we would like to allow all experimental features + // https://github.com/eslint-community/eslint-plugin-n/issues/199 + ignores: ['fetch'], + }, + ], + }, + }, + + { + name: 'disables/vite/client', + files: ['packages/vite/src/client/**/*.?([cm])[jt]s?(x)'], + ignores: ['**/__tests__/**'], + rules: { + 'n/no-unsupported-features/node-builtins': 'off', + }, + }, + { + name: 'disables/vite/types', + files: [ + 'packages/vite/src/types/**/*.?([cm])[jt]s?(x)', + 'packages/vite/scripts/**/*.?([cm])[jt]s?(x)', + '**/*.spec.ts', + ], + rules: { + 'n/no-extraneous-import': 'off', + }, + }, + { + name: 'disables/create-vite/templates', + files: [ + 'packages/create-vite/template-*/**/*.?([cm])[jt]s?(x)', + '**/build.config.ts', + ], + rules: { + 'no-undef': 'off', + 'n/no-missing-import': 'off', + 'n/no-extraneous-import': 'off', + 'n/no-extraneous-require': 'off', + '@typescript-eslint/explicit-module-boundary-types': 'off', + }, + }, + { + name: 'disables/playground', + files: ['playground/**/*.?([cm])[jt]s?(x)', 'docs/**/*.?([cm])[jt]s?(x)'], + rules: { + 'n/no-extraneous-import': 'off', + 'n/no-extraneous-require': 'off', + 'n/no-missing-import': 'off', + 'n/no-missing-require': 'off', + 'n/no-unsupported-features/es-builtins': 'off', + 'n/no-unsupported-features/node-builtins': 'off', + '@typescript-eslint/explicit-module-boundary-types': 'off', + 'no-undef': 'off', + 'no-empty': 'off', + 'no-constant-condition': 'off', + '@typescript-eslint/no-empty-function': 'off', + }, + }, + { + name: 'disables/playground/tsconfig-json', + files: [ + 'playground/tsconfig-json/**/*.?([cm])[jt]s?(x)', + 'playground/tsconfig-json-load-error/**/*.?([cm])[jt]s?(x)', + ], + ignores: ['**/__tests__/**'], + rules: { + '@typescript-eslint/ban-ts-comment': 'off', + }, + }, + { + name: 'disables/js', + files: ['**/*.js', '**/*.mjs', '**/*.cjs'], + rules: { + '@typescript-eslint/explicit-module-boundary-types': 'off', + }, + }, + { + name: 'disables/dts', + files: ['**/*.d.ts'], + rules: { + '@typescript-eslint/triple-slash-reference': 'off', + }, + }, + { + name: 'disables/test', + files: ['**/__tests__/**/*.?([cm])[jt]s?(x)'], + rules: { + 'no-console': 'off', + '@typescript-eslint/ban-ts-comment': 'off', + }, + }, +) diff --git a/package.json b/package.json index baee8835083747..0d798546dec1c3 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ }, "devDependencies": { "@babel/types": "^7.24.6", - "@eslint-types/typescript-eslint": "^7.5.0", + "@eslint/js": "^9.3.0", "@rollup/plugin-typescript": "^11.1.6", "@types/babel__core": "^7.20.5", "@types/babel__preset-env": "^7.9.6", @@ -70,6 +70,7 @@ "execa": "^9.1.0", "feed": "^4.2.2", "fs-extra": "^11.2.0", + "globals": "^15.3.0", "lint-staged": "^15.2.5", "npm-run-all2": "^6.2.0", "picocolors": "^1.0.1", @@ -82,6 +83,7 @@ "tslib": "^2.6.2", "tsx": "^4.11.0", "typescript": "^5.2.2", + "typescript-eslint": "^7.10.0", "unbuild": "^2.0.0", "vite": "workspace:*", "vitest": "^1.6.0" diff --git a/packages/vite/types/customEvent.d.ts b/packages/vite/types/customEvent.d.ts index b816a4c6c22907..9202738f8227fb 100644 --- a/packages/vite/types/customEvent.d.ts +++ b/packages/vite/types/customEvent.d.ts @@ -23,6 +23,7 @@ export interface WebSocketConnectionPayload { * This might be removed in the future if we didn't find reasonable use cases. * If you find this useful, please open an issue with details so we can discuss and make it stable API. */ + // eslint-disable-next-line n/no-unsupported-features/node-builtins webSocket: WebSocket } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 963a41c76dbdb2..5bbd41413a4ec3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -27,9 +27,9 @@ importers: '@babel/types': specifier: ^7.24.6 version: 7.24.6 - '@eslint-types/typescript-eslint': - specifier: ^7.5.0 - version: 7.5.0 + '@eslint/js': + specifier: ^9.3.0 + version: 9.3.0 '@rollup/plugin-typescript': specifier: ^11.1.6 version: 11.1.6(rollup@4.13.0)(tslib@2.6.2)(typescript@5.2.2) @@ -114,6 +114,9 @@ importers: fs-extra: specifier: ^11.2.0 version: 11.2.0 + globals: + specifier: ^15.3.0 + version: 15.3.0 lint-staged: specifier: ^15.2.5 version: 15.2.5 @@ -150,6 +153,9 @@ importers: typescript: specifier: ^5.2.2 version: 5.2.2 + typescript-eslint: + specifier: ^7.10.0 + version: 7.10.0(eslint@8.57.0)(typescript@5.2.2) unbuild: specifier: ^2.0.0 version: 2.0.0(typescript@5.2.2) @@ -1736,14 +1742,6 @@ packages: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - /@babel/code-frame@7.24.2: - resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/highlight': 7.24.2 - picocolors: 1.0.1 - dev: true - /@babel/code-frame@7.24.6: resolution: {integrity: sha512-ZJhac6FkEd1yhG2AHOmfcXG4ceoLltoCVJjN5XsWN9BifBQr+cHJbWi0h68HZuSORq+3WtJ2z0hwF2NG1b5kcA==} engines: {node: '>=6.9.0'} @@ -1976,12 +1974,6 @@ packages: resolution: {integrity: sha512-WdJjwMEkmBicq5T9fm/cHND3+UlFa2Yj8ALLgmoSQAJZysYbBjw+azChSGPN4DSPLXOcooGRvDwZWMcF/mLO2Q==} engines: {node: '>=6.9.0'} - /@babel/helper-validator-identifier@7.24.5: - resolution: {integrity: sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==} - engines: {node: '>=6.9.0'} - requiresBuild: true - dev: true - /@babel/helper-validator-identifier@7.24.6: resolution: {integrity: sha512-4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw==} engines: {node: '>=6.9.0'} @@ -2006,20 +1998,10 @@ packages: '@babel/template': 7.24.6 '@babel/types': 7.24.6 - /@babel/highlight@7.24.2: - resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} - engines: {node: '>=6.9.0'} - requiresBuild: true - dependencies: - '@babel/helper-validator-identifier': 7.24.5 - chalk: 2.4.2 - js-tokens: 4.0.0 - picocolors: 1.0.1 - dev: true - /@babel/highlight@7.24.6: resolution: {integrity: sha512-2YnuOp4HAk2BsBrJJvYCbItHx0zWscI1C3zgWkz+wDyD9I7GIVrfnLyrR4Y1VR+7p+chAEcrgRQYZAGIKMV7vQ==} engines: {node: '>=6.9.0'} + requiresBuild: true dependencies: '@babel/helper-validator-identifier': 7.24.6 chalk: 2.4.2 @@ -3864,10 +3846,6 @@ packages: engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true - /@eslint-types/typescript-eslint@7.5.0: - resolution: {integrity: sha512-zKvsPBDq6o0L4p2sRtq8fxOtGc+mm37aZSXLsiD4DIRl2kYUxKNO9CKDTAgmuMYUzih9J7lbLxAomreLrdAiVQ==} - dev: true - /@eslint/eslintrc@2.1.4: resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -3890,6 +3868,11 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true + /@eslint/js@9.3.0: + resolution: {integrity: sha512-niBqk8iwv96+yuTwjM6bWg8ovzAPF9qkICsGtcoa5/dmqcEMfdwNAX7+/OHcJHc7wj7XqPxH98oAHytFYlw6Sw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + dev: true + /@fastify/busboy@2.1.0: resolution: {integrity: sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==} engines: {node: '>=14'} @@ -6461,7 +6444,7 @@ packages: eslint: 8.57.0 eslint-plugin-es-x: 7.5.0(eslint@8.57.0) get-tsconfig: 4.7.3 - globals: 15.1.0 + globals: 15.3.0 ignore: 5.3.1 minimatch: 9.0.4 semver: 7.6.2 @@ -7093,8 +7076,8 @@ packages: type-fest: 0.20.2 dev: true - /globals@15.1.0: - resolution: {integrity: sha512-926gJqg+4mkxwYKiFvoomM4J0kWESfk3qfTvRL2/oc/tK/eTDBbrfcKnSa2KtfdxB5onoL7D3A3qIHQFpd4+UA==} + /globals@15.3.0: + resolution: {integrity: sha512-cCdyVjIUVTtX8ZsPkq1oCsOsLmGIswqnjZYMJJTGaNApj1yHtLSymKhwH51ttirREn75z3p4k051clwg7rvNKA==} engines: {node: '>=18'} dev: true @@ -8688,7 +8671,7 @@ packages: resolution: {integrity: sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==} engines: {node: '>=18'} dependencies: - '@babel/code-frame': 7.24.2 + '@babel/code-frame': 7.24.6 index-to-position: 0.1.2 type-fest: 4.18.1 dev: true @@ -9401,7 +9384,7 @@ packages: rollup: 3.29.4 typescript: 5.2.2 optionalDependencies: - '@babel/code-frame': 7.24.2 + '@babel/code-frame': 7.24.6 dev: true /rollup-plugin-dts@6.1.1(rollup@4.13.0)(typescript@5.2.2): @@ -9415,7 +9398,7 @@ packages: rollup: 4.13.0 typescript: 5.2.2 optionalDependencies: - '@babel/code-frame': 7.24.2 + '@babel/code-frame': 7.24.6 dev: true /rollup-plugin-esbuild@6.1.1(esbuild@0.20.1)(rollup@4.13.0): @@ -10200,6 +10183,25 @@ packages: resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==} dev: false + /typescript-eslint@7.10.0(eslint@8.57.0)(typescript@5.2.2): + resolution: {integrity: sha512-thO8nyqptXdfWHQrMJJiJyftpW8aLmwRNs11xA8pSrXneoclFPstQZqXvDWuH1WNL4CHffqHvYUeCHTit6yfhQ==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/eslint-plugin': 7.10.0(@typescript-eslint/parser@7.10.0)(eslint@8.57.0)(typescript@5.2.2) + '@typescript-eslint/parser': 7.10.0(eslint@8.57.0)(typescript@5.2.2) + '@typescript-eslint/utils': 7.10.0(eslint@8.57.0)(typescript@5.2.2) + eslint: 8.57.0 + typescript: 5.2.2 + transitivePeerDependencies: + - supports-color + dev: true + /typescript@5.2.2: resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} engines: {node: '>=14.17'}