diff --git a/.prettierrc.js b/.prettierrc.js index 3bbb793..d81c5aa 100644 --- a/.prettierrc.js +++ b/.prettierrc.js @@ -1,6 +1 @@ -module.exports = { - endOfLine: 'auto', - singleQuote: true, - trailingComma: 'all', - printWidth: 160, -}; +module.exports = require('./config/prettierrc.template'); diff --git a/bin/commands/bundle.js b/bin/commands/bundle.js index e6c0f91..9f38082 100644 --- a/bin/commands/bundle.js +++ b/bin/commands/bundle.js @@ -1,4 +1,5 @@ const { resolve } = require('path'); + const { call } = require('./utils'); module.exports = { diff --git a/bin/commands/copy.js b/bin/commands/copy.js index 264bb31..cefb92e 100644 --- a/bin/commands/copy.js +++ b/bin/commands/copy.js @@ -1,5 +1,5 @@ -const glob = require('glob'); const fs = require('fs-extra'); +const glob = require('glob'); const path = require('path'); module.exports = { diff --git a/bin/commands/lint.js b/bin/commands/lint.js index 84aada7..1b02bb4 100644 --- a/bin/commands/lint.js +++ b/bin/commands/lint.js @@ -1,17 +1,39 @@ -const { call } = require('./utils'); +const { call, isFormatSeparate } = require('./utils'); module.exports = { command: 'lint [strings...]', describe: 'Lint a repository using ESLint', builder: (yargs) => - yargs.option('cache', { - default: true, - type: 'boolean', - }), + yargs + .option('cache', { + default: true, + type: 'boolean', + }) + .option('fix', { + default: false, + type: 'boolean', + }) + .option('quiet', { + default: false, + type: 'boolean', + }) + .option('format', { + // For now, enable format in the CI only. Otherwise, we would have to add the prettier VSCode plugin and adapt workflows for everyone. + default: isFormatSeparate(), + type: 'boolean', + }), handler: (args) => { + if (args.format) { + // Run prettier separately as it's much faster with the oxc plugin, and the eslint-plugin-prettier doesn't use that apparently. + call( + 'prettier', + `prettier ${args.fix ? '--write' : '--check'} --experimental-cli ${(args.strings || []).join(' ')} "src/**/*.ts{,x}" "tests/**/*.ts{,x}" "playwright/**/*.ts{,x}"`, + ); + } + call( 'eslint', - `${args.cache ? '--cache' : ''} --no-error-on-unmatched-pattern ${(args.strings || []).join(' ')} "src/**/*.ts{,x}" "tests/**/*.ts{,x}" "playwright/**/*.ts{,x}"`, + `${args.cache ? '--cache' : ''} ${args.fix ? '--fix' : ''} ${args.quiet ? '--quiet' : ''} --cache-location node_modules/.cache/eslint --no-error-on-unmatched-pattern ${(args.strings || []).join(' ')} "src/**/*.ts{,x}" "tests/**/*.ts{,x}" "playwright/**/*.ts{,x}"`, ); }, }; diff --git a/bin/commands/start.js b/bin/commands/start.js index 37235d9..2bb0248 100644 --- a/bin/commands/start.js +++ b/bin/commands/start.js @@ -1,4 +1,5 @@ const { resolve } = require('path'); + const { call } = require('./utils'); module.exports = { diff --git a/bin/commands/utils.js b/bin/commands/utils.js index 5ba9521..9ea50cc 100644 --- a/bin/commands/utils.js +++ b/bin/commands/utils.js @@ -1,6 +1,6 @@ const { execSync } = require('child_process'); -const { resolve, join } = require('path'); const fs = require('fs'); +const { resolve, join } = require('path'); /** * Wraps `execSync` with options and error handling. @@ -33,6 +33,8 @@ const call = (command, args, options = {}) => { NODE_PATH: nodePath, // Increase memory limits for node all processes NODE_OPTIONS: '--max-old-space-size=8192 --max-semi-space-size=512', + // Enable the faster prettier CLI: https://www.solberg.is/prettier-is-fast + PRETTIER_EXPERIMENTAL_CLI: 1, ...(options.env || {}), ...process.env, }, @@ -43,6 +45,11 @@ const call = (command, args, options = {}) => { } }; +const isFormatSeparate = () => { + return ['true', '1'].includes(process.env.VISYN_SCRIPTS_FORMAT_SEPARATE?.toLocaleLowerCase()); +}; + module.exports = { call, + isFormatSeparate, }; diff --git a/config/eslint.config.template.js b/config/eslint.config.template.js index 1df2a27..7d2a939 100755 --- a/config/eslint.config.template.js +++ b/config/eslint.config.template.js @@ -1,16 +1,18 @@ -const { defineConfig } = require('eslint/config'); const { includeIgnoreFile } = require('@eslint/compat'); -const { rules: prettierConfigRules } = require('eslint-config-prettier'); +const js = require('@eslint/js'); +const { defineConfig } = require('eslint/config'); const airbnb = require('eslint-config-airbnb-extended'); -const globals = require('globals'); +const eslintConfigPrettier = require('eslint-config-prettier/flat'); const jest = require('eslint-plugin-jest'); -const js = require('@eslint/js'); const jsxA11y = require('eslint-plugin-jsx-a11y'); -const path = require('node:path'); const playwright = require('eslint-plugin-playwright'); -const prettierPlugin = require('eslint-plugin-prettier'); +const eslintPluginPrettier = require('eslint-plugin-prettier/recommended'); const reactCompiler = require('eslint-plugin-react-compiler'); const unusedImports = require('eslint-plugin-unused-imports'); +const globals = require('globals'); +const path = require('node:path'); + +const { isFormatSeparate } = require('../bin/commands/utils'); const jsConfig = [ { @@ -30,34 +32,11 @@ const reactConfig = [ ...airbnb.configs.react.recommended, ]; -const typescriptConfig = [ - // TypeScript ESLint Plugin - airbnb.plugins.typescriptEslint, - // Airbnb Base TypeScript Config - ...airbnb.configs.base.typescript, - // Airbnb React TypeScript Config - ...airbnb.configs.react.typescript, -]; - -const prettierConfig = [ - { - name: 'prettier/plugin/config', - plugins: { - prettier: prettierPlugin, - }, - }, - { - name: 'prettier/config', - rules: { - ...prettierConfigRules, - 'prettier/prettier': 'error', - }, - }, -]; +const typescriptConfig = [airbnb.plugins.typescriptEslint, ...airbnb.configs.base.typescript, ...airbnb.configs.react.typescript]; const jestConfig = [ { - files: ['{src|tests}/**/*.{test|spec}.ts'], + files: ['{src|tests}/**/*.{test|spec}.{js,ts,jsx,tsx}'], plugins: { jest }, languageOptions: { globals: jest.environments.globals.globals, @@ -68,27 +47,31 @@ const jestConfig = [ const playwrightConfig = [ { ...playwright.configs['flat/recommended'], - files: ['playwright/**/*.{test|spec}.ts'], + files: ['playwright/**/*.{test|spec}.{js,ts,jsx,tsx}'], }, ]; // Helper to disable jsx-a11y rules -const jsxA11yOffRules = Object.keys(jsxA11y.rules).reduce((acc, rule) => { - acc[`jsx-a11y/${rule}`] = 'off'; - return acc; -}, {}); +const jsxA11yOffRules = Object.fromEntries(Object.keys(jsxA11y.rules).map((rule) => [`jsx-a11y/${rule}`, 'off'])); -module.exports = ({ tsconfigRootDir }) => +module.exports = ({ + tsconfigRootDir, + includeJS, + // For now, keep the prettier plugin enabled. Otherwise, we would have to add the prettier VSCode plugin and adapt workflows for everyone. + // The visyn_scripts lint will automatically run prettier if this is enabled. + includePrettierPlugin = !isFormatSeparate(), +}) => defineConfig( includeIgnoreFile(path.resolve('.', '.gitignore')), ...jsConfig, ...reactConfig, ...typescriptConfig, - ...prettierConfig, ...jestConfig, ...playwrightConfig, + // The prettier plugin contains both the config and the rule to run prettier as an eslint rule, whereas the config just disables conflicting rules (i.e. if you run prettier separately). + ...(includePrettierPlugin ? [eslintPluginPrettier] : [eslintConfigPrettier]), { - files: ['**/*.{ts,tsx,cts,mts}'], + files: ['**/*.{ts,tsx,cts,mts}', ...(includeJS ? ['**/*.{js,jsx,cjs,mjs}'] : [])], plugins: { 'unused-imports': unusedImports, }, @@ -105,6 +88,8 @@ module.exports = ({ tsconfigRootDir }) => project: `./tsconfig.eslint.json`, }, globals: { + ...globals.commonjs, + ...globals.jest, ...globals.node, ...globals.browser, ...globals.es6, @@ -112,7 +97,6 @@ module.exports = ({ tsconfigRootDir }) => SharedArrayBuffer: 'readonly', }, }, - rules: { ...jsxA11yOffRules, 'arrow-body-style': 'off', @@ -159,7 +143,7 @@ module.exports = ({ tsconfigRootDir }) => }, ], 'prefer-arrow-callback': 'warn', - '@typescript-eslint/no-require-imports': 'warn', + '@typescript-eslint/no-require-imports': 'off', '@typescript-eslint/consistent-indexed-object-style': 'off', '@typescript-eslint/consistent-type-definitions': 'off', '@typescript-eslint/ban-ts-comment': 'warn', diff --git a/config/jest_export_maps_resolver.js b/config/jest_export_maps_resolver.js index 457cb57..fb868fa 100644 --- a/config/jest_export_maps_resolver.js +++ b/config/jest_export_maps_resolver.js @@ -1,5 +1,4 @@ // temporary workaround while we wait for https://github.com/facebook/jest/issues/9771 -// eslint-disable-next-line import-x/no-extraneous-dependencies const resolver = require('enhanced-resolve').create.sync({ conditionNames: ['require', 'node', 'default', 'import'], extensions: ['.js', '.json', '.node', '.ts', '.tsx'], diff --git a/config/prettierrc.template.js b/config/prettierrc.template.js index 3bbb793..717b51f 100755 --- a/config/prettierrc.template.js +++ b/config/prettierrc.template.js @@ -1,4 +1,6 @@ module.exports = { + // Use the oxc plugin for speed: https://www.solberg.is/prettier-is-fast + plugins: ['@prettier/plugin-oxc'], endOfLine: 'auto', singleQuote: true, trailingComma: 'all', diff --git a/config/rspack.config.js b/config/rspack.config.js index eacebf0..e5e42a5 100644 --- a/config/rspack.config.js +++ b/config/rspack.config.js @@ -1,17 +1,17 @@ /* eslint-disable prefer-const */ /* eslint-disable import-x/no-dynamic-require */ -const path = require('path'); -const fs = require('fs'); -const { execSync } = require('child_process'); +const { RsdoctorRspackPlugin } = require('@rsdoctor/rspack-plugin'); const { defineConfig } = require('@rspack/cli'); -const { TsCheckerRspackPlugin } = require('ts-checker-rspack-plugin'); -const dotenv = require('dotenv'); -const DotenvPlugin = require('dotenv-webpack'); -const dotenvExpand = require('dotenv-expand'); const { CopyRspackPlugin, DefinePlugin, SwcJsMinimizerRspackPlugin } = require('@rspack/core'); const ReactRefreshPlugin = require('@rspack/plugin-react-refresh'); +const { execSync } = require('child_process'); +const dotenv = require('dotenv'); +const dotenvExpand = require('dotenv-expand'); +const DotenvPlugin = require('dotenv-webpack'); +const fs = require('fs'); const HtmlWebpackPlugin = require('html-webpack-plugin'); -const { RsdoctorRspackPlugin } = require('@rsdoctor/rspack-plugin'); +const path = require('path'); +const { TsCheckerRspackPlugin } = require('ts-checker-rspack-plugin'); // Load the current .env and expand it const parsedEnv = dotenvExpand.expand(dotenv.config()); @@ -420,7 +420,7 @@ module.exports = (webpackEnv, argv) => { fs.existsSync(workspaceMetaDataFile) && { from: workspaceMetaDataFile, to: path.join(workspacePath, 'bundles', 'phoveaMetaData.json'), - // @ts-ignore TODO: check why https://webpack.js.org/plugins/copy-webpack-plugin/#transform is not in the typing. + // @ts-expect-error TODO: check why https://webpack.js.org/plugins/copy-webpack-plugin/#transform is not in the typing. transform: () => { function resolveScreenshot(appDirectory) { const f = path.join(appDirectory, './media/screenshot.png'); diff --git a/config/storybook.main.template.js b/config/storybook.main.template.js index 66ca35d..299cae2 100755 --- a/config/storybook.main.template.js +++ b/config/storybook.main.template.js @@ -21,6 +21,7 @@ module.exports = { }, }, rsbuildFinal: async (config) => { + // eslint-disable-next-line @typescript-eslint/prefer-destructuring const reactDocgenLoaderRule = config.tools.rspack[1].module.rules[0]; // eslint-disable-next-line no-param-reassign diff --git a/eslint.config.js b/eslint.config.js index 5bbe470..3a1036a 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -1,58 +1 @@ -const path = require('node:path'); - -const globals = require('globals'); -const { includeIgnoreFile } = require('@eslint/compat'); -const js = require('@eslint/js'); -const { configs, plugins } = require('eslint-config-airbnb-extended'); -const eslintPluginPrettierRecommended = require('eslint-plugin-prettier/recommended'); - -const gitignorePath = path.resolve('.', '.gitignore'); - -/** - * @type {import('eslint').Linter.Config[]} - */ -const jsConfig = [ - { - languageOptions: { - globals: { ...globals.browser, ...globals.node, ...globals.jest }, - }, - }, - // ESLint Recommended Rules - { - name: 'js/config', - ...js.configs.recommended, - }, - // Stylistic Plugin - plugins.stylistic, - // Import X Plugin - plugins.importX, - // Airbnb Base Recommended Config - ...configs.base.recommended, -]; - -/** - * @type {import('eslint').Linter.Config[]} - */ -const typescriptConfig = [ - // TypeScript ESLint Plugin - plugins.typescriptEslint, - // Airbnb Base TypeScript Config - ...configs.base.typescript, -]; - -module.exports = [ - // Ignore .gitignore files/folder in eslint - includeIgnoreFile(gitignorePath), - // Javascript Config - ...jsConfig, - // TypeScript Config - ...typescriptConfig, - // Prettier Config - eslintPluginPrettierRecommended, - { - rules: { - 'no-console': 'off', - 'max-len': 'off', - }, - }, -]; +module.exports = require('./config/eslint.config.template')({ tsconfigRootDir: __dirname, includeJS: true }); diff --git a/package.json b/package.json index ee8a4b0..8002cf0 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "visyn_scripts", "description": "", - "version": "15.1.2", + "version": "15.1.3", "author": { "name": "datavisyn GmbH", "email": "contact@datavisyn.io", @@ -28,8 +28,9 @@ "node": ">=24" }, "scripts": { - "lint": "eslint bin/**/*.js config/**/*.js tests/**/*.js *.js", - "lint:fix": "eslint --fix bin/**/*.js config/**/*.js tests/**/*.js *.js", + "all": "yarn run lint:fix && yarn run test", + "lint": "visyn_scripts lint bin/**/*.js config/**/*.js tests/**/*.js *.js", + "lint:fix": "visyn_scripts lint --fix bin/**/*.js config/**/*.js tests/**/*.js *.js", "test": "jest -w 1", "test:watch": "jest -w 1 --watch", "build": "echo 'No build script defined'", @@ -39,6 +40,7 @@ "@eslint/compat": "^1.4.1", "@eslint/eslintrc": "^3.3.1", "@eslint/js": "^9.38.0", + "@prettier/plugin-oxc": "^0.0.4", "@rsbuild/core": "1.5.13", "@rsbuild/plugin-node-polyfill": "^1.4.2", "@rsbuild/plugin-react": "^1.4.1", diff --git a/tests/standalone.test.js b/tests/standalone.test.js index d213663..ba9b6c4 100644 --- a/tests/standalone.test.js +++ b/tests/standalone.test.js @@ -1,7 +1,7 @@ -const fs = require('fs'); -const { resolve } = require('path'); const { execSync } = require('child_process'); +const fs = require('fs'); const fse = require('fs-extra'); +const { resolve } = require('path'); // Mock setup of yargs inspired by https://www.kgajera.com/blog/how-to-test-yargs-cli-with-jest/ describe('standalone', () => { diff --git a/tests/visyn_scripts.test.js b/tests/visyn_scripts.test.js index 7e9aa74..3ca3507 100644 --- a/tests/visyn_scripts.test.js +++ b/tests/visyn_scripts.test.js @@ -24,6 +24,7 @@ describe('cli', () => { // After resetting the modules, we need to reinitialize the mocks jest.mock('../bin/commands/utils'); + // eslint-disable-next-line prefer-destructuring, @typescript-eslint/prefer-destructuring call = require('../bin/commands/utils').call; // Each test overwrites process arguments so store the original arguments diff --git a/tests_fixtures/standalone_template/yarn.lock b/tests_fixtures/standalone_template/yarn.lock index 6b21100..0eefca2 100644 --- a/tests_fixtures/standalone_template/yarn.lock +++ b/tests_fixtures/standalone_template/yarn.lock @@ -2026,9 +2026,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/aix-ppc64@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/aix-ppc64@npm:0.25.11" +"@esbuild/aix-ppc64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/aix-ppc64@npm:0.25.12" conditions: os=aix & cpu=ppc64 languageName: node linkType: hard @@ -2040,9 +2040,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm64@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/android-arm64@npm:0.25.11" +"@esbuild/android-arm64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/android-arm64@npm:0.25.12" conditions: os=android & cpu=arm64 languageName: node linkType: hard @@ -2054,9 +2054,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/android-arm@npm:0.25.11" +"@esbuild/android-arm@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/android-arm@npm:0.25.12" conditions: os=android & cpu=arm languageName: node linkType: hard @@ -2068,9 +2068,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-x64@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/android-x64@npm:0.25.11" +"@esbuild/android-x64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/android-x64@npm:0.25.12" conditions: os=android & cpu=x64 languageName: node linkType: hard @@ -2082,9 +2082,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/darwin-arm64@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/darwin-arm64@npm:0.25.11" +"@esbuild/darwin-arm64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/darwin-arm64@npm:0.25.12" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard @@ -2096,9 +2096,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/darwin-x64@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/darwin-x64@npm:0.25.11" +"@esbuild/darwin-x64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/darwin-x64@npm:0.25.12" conditions: os=darwin & cpu=x64 languageName: node linkType: hard @@ -2110,9 +2110,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/freebsd-arm64@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/freebsd-arm64@npm:0.25.11" +"@esbuild/freebsd-arm64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/freebsd-arm64@npm:0.25.12" conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard @@ -2124,9 +2124,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/freebsd-x64@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/freebsd-x64@npm:0.25.11" +"@esbuild/freebsd-x64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/freebsd-x64@npm:0.25.12" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard @@ -2138,9 +2138,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-arm64@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/linux-arm64@npm:0.25.11" +"@esbuild/linux-arm64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/linux-arm64@npm:0.25.12" conditions: os=linux & cpu=arm64 languageName: node linkType: hard @@ -2152,9 +2152,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-arm@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/linux-arm@npm:0.25.11" +"@esbuild/linux-arm@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/linux-arm@npm:0.25.12" conditions: os=linux & cpu=arm languageName: node linkType: hard @@ -2166,9 +2166,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-ia32@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/linux-ia32@npm:0.25.11" +"@esbuild/linux-ia32@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/linux-ia32@npm:0.25.12" conditions: os=linux & cpu=ia32 languageName: node linkType: hard @@ -2180,9 +2180,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-loong64@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/linux-loong64@npm:0.25.11" +"@esbuild/linux-loong64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/linux-loong64@npm:0.25.12" conditions: os=linux & cpu=loong64 languageName: node linkType: hard @@ -2194,9 +2194,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-mips64el@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/linux-mips64el@npm:0.25.11" +"@esbuild/linux-mips64el@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/linux-mips64el@npm:0.25.12" conditions: os=linux & cpu=mips64el languageName: node linkType: hard @@ -2208,9 +2208,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-ppc64@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/linux-ppc64@npm:0.25.11" +"@esbuild/linux-ppc64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/linux-ppc64@npm:0.25.12" conditions: os=linux & cpu=ppc64 languageName: node linkType: hard @@ -2222,9 +2222,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-riscv64@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/linux-riscv64@npm:0.25.11" +"@esbuild/linux-riscv64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/linux-riscv64@npm:0.25.12" conditions: os=linux & cpu=riscv64 languageName: node linkType: hard @@ -2236,9 +2236,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-s390x@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/linux-s390x@npm:0.25.11" +"@esbuild/linux-s390x@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/linux-s390x@npm:0.25.12" conditions: os=linux & cpu=s390x languageName: node linkType: hard @@ -2250,16 +2250,16 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-x64@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/linux-x64@npm:0.25.11" +"@esbuild/linux-x64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/linux-x64@npm:0.25.12" conditions: os=linux & cpu=x64 languageName: node linkType: hard -"@esbuild/netbsd-arm64@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/netbsd-arm64@npm:0.25.11" +"@esbuild/netbsd-arm64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/netbsd-arm64@npm:0.25.12" conditions: os=netbsd & cpu=arm64 languageName: node linkType: hard @@ -2271,16 +2271,16 @@ __metadata: languageName: node linkType: hard -"@esbuild/netbsd-x64@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/netbsd-x64@npm:0.25.11" +"@esbuild/netbsd-x64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/netbsd-x64@npm:0.25.12" conditions: os=netbsd & cpu=x64 languageName: node linkType: hard -"@esbuild/openbsd-arm64@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/openbsd-arm64@npm:0.25.11" +"@esbuild/openbsd-arm64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/openbsd-arm64@npm:0.25.12" conditions: os=openbsd & cpu=arm64 languageName: node linkType: hard @@ -2292,16 +2292,16 @@ __metadata: languageName: node linkType: hard -"@esbuild/openbsd-x64@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/openbsd-x64@npm:0.25.11" +"@esbuild/openbsd-x64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/openbsd-x64@npm:0.25.12" conditions: os=openbsd & cpu=x64 languageName: node linkType: hard -"@esbuild/openharmony-arm64@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/openharmony-arm64@npm:0.25.11" +"@esbuild/openharmony-arm64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/openharmony-arm64@npm:0.25.12" conditions: os=openharmony & cpu=arm64 languageName: node linkType: hard @@ -2313,9 +2313,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/sunos-x64@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/sunos-x64@npm:0.25.11" +"@esbuild/sunos-x64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/sunos-x64@npm:0.25.12" conditions: os=sunos & cpu=x64 languageName: node linkType: hard @@ -2327,9 +2327,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-arm64@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/win32-arm64@npm:0.25.11" +"@esbuild/win32-arm64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/win32-arm64@npm:0.25.12" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard @@ -2341,9 +2341,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-ia32@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/win32-ia32@npm:0.25.11" +"@esbuild/win32-ia32@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/win32-ia32@npm:0.25.12" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard @@ -2355,9 +2355,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-x64@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/win32-x64@npm:0.25.11" +"@esbuild/win32-x64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/win32-x64@npm:0.25.12" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -3076,6 +3076,120 @@ __metadata: languageName: node linkType: hard +"@oxc-parser/binding-android-arm64@npm:0.74.0": + version: 0.74.0 + resolution: "@oxc-parser/binding-android-arm64@npm:0.74.0" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@oxc-parser/binding-darwin-arm64@npm:0.74.0": + version: 0.74.0 + resolution: "@oxc-parser/binding-darwin-arm64@npm:0.74.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@oxc-parser/binding-darwin-x64@npm:0.74.0": + version: 0.74.0 + resolution: "@oxc-parser/binding-darwin-x64@npm:0.74.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@oxc-parser/binding-freebsd-x64@npm:0.74.0": + version: 0.74.0 + resolution: "@oxc-parser/binding-freebsd-x64@npm:0.74.0" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@oxc-parser/binding-linux-arm-gnueabihf@npm:0.74.0": + version: 0.74.0 + resolution: "@oxc-parser/binding-linux-arm-gnueabihf@npm:0.74.0" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@oxc-parser/binding-linux-arm-musleabihf@npm:0.74.0": + version: 0.74.0 + resolution: "@oxc-parser/binding-linux-arm-musleabihf@npm:0.74.0" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@oxc-parser/binding-linux-arm64-gnu@npm:0.74.0": + version: 0.74.0 + resolution: "@oxc-parser/binding-linux-arm64-gnu@npm:0.74.0" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@oxc-parser/binding-linux-arm64-musl@npm:0.74.0": + version: 0.74.0 + resolution: "@oxc-parser/binding-linux-arm64-musl@npm:0.74.0" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@oxc-parser/binding-linux-riscv64-gnu@npm:0.74.0": + version: 0.74.0 + resolution: "@oxc-parser/binding-linux-riscv64-gnu@npm:0.74.0" + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + +"@oxc-parser/binding-linux-s390x-gnu@npm:0.74.0": + version: 0.74.0 + resolution: "@oxc-parser/binding-linux-s390x-gnu@npm:0.74.0" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + +"@oxc-parser/binding-linux-x64-gnu@npm:0.74.0": + version: 0.74.0 + resolution: "@oxc-parser/binding-linux-x64-gnu@npm:0.74.0" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@oxc-parser/binding-linux-x64-musl@npm:0.74.0": + version: 0.74.0 + resolution: "@oxc-parser/binding-linux-x64-musl@npm:0.74.0" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@oxc-parser/binding-wasm32-wasi@npm:0.74.0": + version: 0.74.0 + resolution: "@oxc-parser/binding-wasm32-wasi@npm:0.74.0" + dependencies: + "@napi-rs/wasm-runtime": "npm:^0.2.11" + conditions: cpu=wasm32 + languageName: node + linkType: hard + +"@oxc-parser/binding-win32-arm64-msvc@npm:0.74.0": + version: 0.74.0 + resolution: "@oxc-parser/binding-win32-arm64-msvc@npm:0.74.0" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@oxc-parser/binding-win32-x64-msvc@npm:0.74.0": + version: 0.74.0 + resolution: "@oxc-parser/binding-win32-x64-msvc@npm:0.74.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@oxc-project/types@npm:^0.74.0": + version: 0.74.0 + resolution: "@oxc-project/types@npm:0.74.0" + checksum: 10c0/c0daf2d4c3d5cd033ea4c574d592359457e1210c47057882f8a95a701e5a7225c854c930b200dd0ad19f2f747598a8aa0121e0b63928b7ae8fce2f73e434fe43 + languageName: node + linkType: hard + "@parcel/watcher-android-arm64@npm:2.5.1": version: 2.5.1 resolution: "@parcel/watcher-android-arm64@npm:2.5.1" @@ -3252,6 +3366,15 @@ __metadata: languageName: node linkType: hard +"@prettier/plugin-oxc@npm:^0.0.4": + version: 0.0.4 + resolution: "@prettier/plugin-oxc@npm:0.0.4" + dependencies: + oxc-parser: "npm:0.74.0" + checksum: 10c0/b72cd06561feef4d1429544571d88ca92538be635e283d211a99b26cef31cbbab8ecf66b1d52dace4692ac1cc78832d04c99f61f0b94acae10395680a52436a8 + languageName: node + linkType: hard + "@rollup/pluginutils@npm:^5.1.4": version: 5.3.0 resolution: "@rollup/pluginutils@npm:5.3.0" @@ -3365,19 +3488,19 @@ __metadata: linkType: hard "@rsbuild/plugin-type-check@npm:^1.2.2": - version: 1.2.4 - resolution: "@rsbuild/plugin-type-check@npm:1.2.4" + version: 1.3.0 + resolution: "@rsbuild/plugin-type-check@npm:1.3.0" dependencies: deepmerge: "npm:^4.3.1" json5: "npm:^2.2.3" - reduce-configs: "npm:^1.1.0" - ts-checker-rspack-plugin: "npm:^1.1.4" + reduce-configs: "npm:^1.1.1" + ts-checker-rspack-plugin: "npm:^1.2.0" peerDependencies: "@rsbuild/core": 1.x peerDependenciesMeta: "@rsbuild/core": optional: true - checksum: 10c0/8565bdee8b60c785e5fea6dfb5d7867dfdb773fe5eeea01f0a8891eb4f874b0a6bb3d3118bb05858d51e5e706e8f6ee9eccbfeb5eac5603c4690888867b9c3be + checksum: 10c0/2d69b267f0634d2de1ef18978c7d5534b98176a1d58d44b17036d8b4837d8de3ab8ec477d607dad074b3e34d2acfee0dc395fa555532fa3348817bf5460689af languageName: node linkType: hard @@ -6233,11 +6356,11 @@ __metadata: linkType: hard "baseline-browser-mapping@npm:^2.8.19": - version: 2.8.22 - resolution: "baseline-browser-mapping@npm:2.8.22" + version: 2.8.23 + resolution: "baseline-browser-mapping@npm:2.8.23" bin: baseline-browser-mapping: dist/cli.js - checksum: 10c0/13e1d799fece362febf000292c2132c75b966dd74f3807f581035c90775bb36700d23a09d947a1e44c26ac2721436bd5a38aaa4f8f85d742065e4b84dad13784 + checksum: 10c0/5a63c1c241d288e5c79aa32a1cbea335b5af899172161aa9f9701a67c5b9b55ea3b3945a70a842385374627dde1de27504641bc95257d8c2e81f0c593c719121 languageName: node linkType: hard @@ -6651,9 +6774,9 @@ __metadata: linkType: hard "caniuse-lite@npm:^1.0.30001702, caniuse-lite@npm:^1.0.30001751": - version: 1.0.30001752 - resolution: "caniuse-lite@npm:1.0.30001752" - checksum: 10c0/2e20417d15cf55ff6b1217ab333dd64f8519e033db760cba0b32a024bbb6aa249dd1bfa746254a051b35b02a3e8b6c1154e953790dd8c7e39c7c16bbefa0910f + version: 1.0.30001753 + resolution: "caniuse-lite@npm:1.0.30001753" + checksum: 10c0/730344b6c54769f544f1d4bd7f99a122cd5f6e964e482adbcb18b63cda56e9c40aca1e3ab47c7154098803c9ba3772cca0aba936d1c924e67e8db8345712e5a8 languageName: node linkType: hard @@ -8155,7 +8278,7 @@ __metadata: languageName: node linkType: hard -"envinfo@npm:7.19.0, envinfo@npm:^7.7.3": +"envinfo@npm:7.19.0": version: 7.19.0 resolution: "envinfo@npm:7.19.0" bin: @@ -8164,6 +8287,15 @@ __metadata: languageName: node linkType: hard +"envinfo@npm:^7.7.3": + version: 7.20.0 + resolution: "envinfo@npm:7.20.0" + bin: + envinfo: dist/cli.js + checksum: 10c0/2afa8085f9952d3afe6893098ef9cadc991aa38ed5ed5a0fd953ddb72a7543f425fbf46e8c02c4fa0ecad3c03a93381b0a212f799c2a8db8dc8886d8d7d5dc05 + languageName: node + linkType: hard + "err-code@npm:^2.0.2": version: 2.0.3 resolution: "err-code@npm:2.0.3" @@ -8449,35 +8581,35 @@ __metadata: linkType: hard "esbuild@npm:^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0 || ^0.25.0": - version: 0.25.11 - resolution: "esbuild@npm:0.25.11" - dependencies: - "@esbuild/aix-ppc64": "npm:0.25.11" - "@esbuild/android-arm": "npm:0.25.11" - "@esbuild/android-arm64": "npm:0.25.11" - "@esbuild/android-x64": "npm:0.25.11" - "@esbuild/darwin-arm64": "npm:0.25.11" - "@esbuild/darwin-x64": "npm:0.25.11" - "@esbuild/freebsd-arm64": "npm:0.25.11" - "@esbuild/freebsd-x64": "npm:0.25.11" - "@esbuild/linux-arm": "npm:0.25.11" - "@esbuild/linux-arm64": "npm:0.25.11" - "@esbuild/linux-ia32": "npm:0.25.11" - "@esbuild/linux-loong64": "npm:0.25.11" - "@esbuild/linux-mips64el": "npm:0.25.11" - "@esbuild/linux-ppc64": "npm:0.25.11" - "@esbuild/linux-riscv64": "npm:0.25.11" - "@esbuild/linux-s390x": "npm:0.25.11" - "@esbuild/linux-x64": "npm:0.25.11" - "@esbuild/netbsd-arm64": "npm:0.25.11" - "@esbuild/netbsd-x64": "npm:0.25.11" - "@esbuild/openbsd-arm64": "npm:0.25.11" - "@esbuild/openbsd-x64": "npm:0.25.11" - "@esbuild/openharmony-arm64": "npm:0.25.11" - "@esbuild/sunos-x64": "npm:0.25.11" - "@esbuild/win32-arm64": "npm:0.25.11" - "@esbuild/win32-ia32": "npm:0.25.11" - "@esbuild/win32-x64": "npm:0.25.11" + version: 0.25.12 + resolution: "esbuild@npm:0.25.12" + dependencies: + "@esbuild/aix-ppc64": "npm:0.25.12" + "@esbuild/android-arm": "npm:0.25.12" + "@esbuild/android-arm64": "npm:0.25.12" + "@esbuild/android-x64": "npm:0.25.12" + "@esbuild/darwin-arm64": "npm:0.25.12" + "@esbuild/darwin-x64": "npm:0.25.12" + "@esbuild/freebsd-arm64": "npm:0.25.12" + "@esbuild/freebsd-x64": "npm:0.25.12" + "@esbuild/linux-arm": "npm:0.25.12" + "@esbuild/linux-arm64": "npm:0.25.12" + "@esbuild/linux-ia32": "npm:0.25.12" + "@esbuild/linux-loong64": "npm:0.25.12" + "@esbuild/linux-mips64el": "npm:0.25.12" + "@esbuild/linux-ppc64": "npm:0.25.12" + "@esbuild/linux-riscv64": "npm:0.25.12" + "@esbuild/linux-s390x": "npm:0.25.12" + "@esbuild/linux-x64": "npm:0.25.12" + "@esbuild/netbsd-arm64": "npm:0.25.12" + "@esbuild/netbsd-x64": "npm:0.25.12" + "@esbuild/openbsd-arm64": "npm:0.25.12" + "@esbuild/openbsd-x64": "npm:0.25.12" + "@esbuild/openharmony-arm64": "npm:0.25.12" + "@esbuild/sunos-x64": "npm:0.25.12" + "@esbuild/win32-arm64": "npm:0.25.12" + "@esbuild/win32-ia32": "npm:0.25.12" + "@esbuild/win32-x64": "npm:0.25.12" dependenciesMeta: "@esbuild/aix-ppc64": optional: true @@ -8533,7 +8665,7 @@ __metadata: optional: true bin: esbuild: bin/esbuild - checksum: 10c0/7f819b16a9f502091ddc6e1855291eaa5ede32c2b792cd8a8a60cc24faee469e3c7b607e2f22ea8684eb7c7bc377b2509e9f1cd50f10b3bf5042d1e9e4234be3 + checksum: 10c0/c205357531423220a9de8e1e6c6514242bc9b1666e762cd67ccdf8fdfdc3f1d0bd76f8d9383958b97ad4c953efdb7b6e8c1f9ca5951cd2b7c5235e8755b34a6b languageName: node linkType: hard @@ -8751,13 +8883,13 @@ __metadata: linkType: hard "eslint-plugin-playwright@npm:^2.2.2": - version: 2.2.2 - resolution: "eslint-plugin-playwright@npm:2.2.2" + version: 2.3.0 + resolution: "eslint-plugin-playwright@npm:2.3.0" dependencies: - globals: "npm:^13.23.0" + globals: "npm:^16.4.0" peerDependencies: eslint: ">=8.40.0" - checksum: 10c0/05ea134e5567ad5427774ee51ec43ca51044951e3a8ba392158cbbf9e6e700e2752b417ba8499584e5a95d1b53950f1b93a8a1e7a939d9360d73ce7c9fdf8df4 + checksum: 10c0/ae7dcff6b65da93992e97dd558d34b07147c9bd3b41f7183e41222b8bf9445406be9449907162dded8f906044a6b65b6876f0c48e43bf24ecf3a027f4c924e79 languageName: node linkType: hard @@ -9859,15 +9991,6 @@ __metadata: languageName: node linkType: hard -"globals@npm:^13.23.0": - version: 13.24.0 - resolution: "globals@npm:13.24.0" - dependencies: - type-fest: "npm:^0.20.2" - checksum: 10c0/d3c11aeea898eb83d5ec7a99508600fbe8f83d2cf00cbb77f873dbf2bcb39428eff1b538e4915c993d8a3b3473fa71eeebfe22c9bb3a3003d1e26b1f2c8a42cd - languageName: node - linkType: hard - "globals@npm:^14.0.0": version: 14.0.0 resolution: "globals@npm:14.0.0" @@ -9876,9 +9999,9 @@ __metadata: linkType: hard "globals@npm:^16.4.0": - version: 16.4.0 - resolution: "globals@npm:16.4.0" - checksum: 10c0/a14b447a78b664b42f6d324e8675fcae6fe5e57924fecc1f6328dce08af9b2ca3a3138501e1b1f244a49814a732dc60cfc1aa24e714e0b64ac8bd18910bfac90 + version: 16.5.0 + resolution: "globals@npm:16.5.0" + checksum: 10c0/615241dae7851c8012f5aa0223005b1ed6607713d6813de0741768bd4ddc39353117648f1a7086b4b0fa45eae733f1c0a0fe369aa4e543bb63f8de8990178ea9 languageName: node linkType: hard @@ -12196,7 +12319,7 @@ __metadata: languageName: node linkType: hard -"memfs@npm:^4.43.1, memfs@npm:^4.47.0": +"memfs@npm:^4.43.1, memfs@npm:^4.50.0": version: 4.50.0 resolution: "memfs@npm:4.50.0" dependencies: @@ -12977,6 +13100,61 @@ __metadata: languageName: node linkType: hard +"oxc-parser@npm:0.74.0": + version: 0.74.0 + resolution: "oxc-parser@npm:0.74.0" + dependencies: + "@oxc-parser/binding-android-arm64": "npm:0.74.0" + "@oxc-parser/binding-darwin-arm64": "npm:0.74.0" + "@oxc-parser/binding-darwin-x64": "npm:0.74.0" + "@oxc-parser/binding-freebsd-x64": "npm:0.74.0" + "@oxc-parser/binding-linux-arm-gnueabihf": "npm:0.74.0" + "@oxc-parser/binding-linux-arm-musleabihf": "npm:0.74.0" + "@oxc-parser/binding-linux-arm64-gnu": "npm:0.74.0" + "@oxc-parser/binding-linux-arm64-musl": "npm:0.74.0" + "@oxc-parser/binding-linux-riscv64-gnu": "npm:0.74.0" + "@oxc-parser/binding-linux-s390x-gnu": "npm:0.74.0" + "@oxc-parser/binding-linux-x64-gnu": "npm:0.74.0" + "@oxc-parser/binding-linux-x64-musl": "npm:0.74.0" + "@oxc-parser/binding-wasm32-wasi": "npm:0.74.0" + "@oxc-parser/binding-win32-arm64-msvc": "npm:0.74.0" + "@oxc-parser/binding-win32-x64-msvc": "npm:0.74.0" + "@oxc-project/types": "npm:^0.74.0" + dependenciesMeta: + "@oxc-parser/binding-android-arm64": + optional: true + "@oxc-parser/binding-darwin-arm64": + optional: true + "@oxc-parser/binding-darwin-x64": + optional: true + "@oxc-parser/binding-freebsd-x64": + optional: true + "@oxc-parser/binding-linux-arm-gnueabihf": + optional: true + "@oxc-parser/binding-linux-arm-musleabihf": + optional: true + "@oxc-parser/binding-linux-arm64-gnu": + optional: true + "@oxc-parser/binding-linux-arm64-musl": + optional: true + "@oxc-parser/binding-linux-riscv64-gnu": + optional: true + "@oxc-parser/binding-linux-s390x-gnu": + optional: true + "@oxc-parser/binding-linux-x64-gnu": + optional: true + "@oxc-parser/binding-linux-x64-musl": + optional: true + "@oxc-parser/binding-wasm32-wasi": + optional: true + "@oxc-parser/binding-win32-arm64-msvc": + optional: true + "@oxc-parser/binding-win32-x64-msvc": + optional: true + checksum: 10c0/5219907b2d198f823ff9f3a0ef712ed82e2092a7c8238a99733ea66731586677e33cf20a65bef2f865be3fb199c6f23337dc1cfe2843d4743a4f7b8d43823243 + languageName: node + linkType: hard + "p-finally@npm:^1.0.0": version: 1.0.0 resolution: "p-finally@npm:1.0.0" @@ -14479,7 +14657,7 @@ __metadata: languageName: node linkType: hard -"reduce-configs@npm:^1.1.0, reduce-configs@npm:^1.1.1": +"reduce-configs@npm:^1.1.1": version: 1.1.1 resolution: "reduce-configs@npm:1.1.1" checksum: 10c0/f13127379e402c93ec9e99c143633af3bdcebe70fddd346f7e30dc2174188667a68543417116e76d0d8df5c127cdea53ed0ca5987a522cf5db3904024d2e5742 @@ -16503,15 +16681,15 @@ __metadata: languageName: node linkType: hard -"ts-checker-rspack-plugin@npm:^1.1.4, ts-checker-rspack-plugin@npm:^1.1.6": - version: 1.1.6 - resolution: "ts-checker-rspack-plugin@npm:1.1.6" +"ts-checker-rspack-plugin@npm:^1.1.6, ts-checker-rspack-plugin@npm:^1.2.0": + version: 1.2.0 + resolution: "ts-checker-rspack-plugin@npm:1.2.0" dependencies: "@babel/code-frame": "npm:^7.27.1" "@rspack/lite-tapable": "npm:^1.0.1" chokidar: "npm:^3.6.0" is-glob: "npm:^4.0.3" - memfs: "npm:^4.47.0" + memfs: "npm:^4.50.0" minimatch: "npm:^9.0.5" picocolors: "npm:^1.1.1" peerDependencies: @@ -16520,7 +16698,7 @@ __metadata: peerDependenciesMeta: "@rspack/core": optional: true - checksum: 10c0/b3173ca15e91b241b93b5273775bcc558b6ceeaf2a4b8e602f0bf696ebe0000f996a33d7cd39b8e81eb0d733d3b55bba8db9e3d0825b5d4f4d8b9cc94c9eded8 + checksum: 10c0/4d68359a705f428b8adaaad8b9bfb1d84a44c1e6b286573ccebfe49488990eedcdda1b78c0250beaa23dad5bf3d208a6c6a1dcd68b9cc0819082c5ab0e012ce4 languageName: node linkType: hard @@ -16624,13 +16802,6 @@ __metadata: languageName: node linkType: hard -"type-fest@npm:^0.20.2": - version: 0.20.2 - resolution: "type-fest@npm:0.20.2" - checksum: 10c0/dea9df45ea1f0aaa4e2d3bed3f9a0bfe9e5b2592bddb92eb1bf06e50bcf98dbb78189668cd8bc31a0511d3fc25539b4cd5c704497e53e93e2d40ca764b10bfc3 - languageName: node - linkType: hard - "type-fest@npm:^0.21.3": version: 0.21.3 resolution: "type-fest@npm:0.21.3" @@ -17102,6 +17273,7 @@ __metadata: "@eslint/compat": "npm:^1.4.1" "@eslint/eslintrc": "npm:^3.3.1" "@eslint/js": "npm:^9.38.0" + "@prettier/plugin-oxc": "npm:^0.0.4" "@rsbuild/core": "npm:1.5.13" "@rsbuild/plugin-node-polyfill": "npm:^1.4.2" "@rsbuild/plugin-react": "npm:^1.4.1" diff --git a/tsconfig.eslint.json b/tsconfig.eslint.json new file mode 100644 index 0000000..e6a54cc --- /dev/null +++ b/tsconfig.eslint.json @@ -0,0 +1,11 @@ +{ + "extends": "./config/tsconfig.eslint.template.json", + "include": [ + "**/*.js" + ], + "exclude": [ + "node_modules", + "dist", + "tests_fixtures" + ], +}