From e82af333ff0ab8a68dcad8622120832f1ccfacbd Mon Sep 17 00:00:00 2001 From: Nicolas DUBIEN Date: Mon, 13 Apr 2026 23:50:05 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A8=20Migrate=20from=20ESLint=20to=20o?= =?UTF-8?q?xlint=20(#6835)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace ESLint with oxlint for faster linting. Uses oxlint.config.ts (TypeScript config) with the same rule set previously configured in eslint.config.mjs. - Add oxlint.config.ts with equivalent rules and overrides - Remove eslint.config.mjs - Replace eslint dependencies with oxlint in package.json - Update lint/lint:check scripts to use oxlint CLI https://claude.ai/code/session_01BMFkqRrqN1t4gVDid2QJZm --------- Co-authored-by: Claude Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> Co-authored-by: Nicolas DUBIEN Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: dubzzz <5300235+dubzzz@users.noreply.github.com> --- .oxlintrc.json | 159 ++++ eslint.config.mjs | 122 --- examples/001-simple/fibonacci/main.spec.ts | 2 +- package.json | 12 +- .../_internals/helpers/SanitizeRegexAst.ts | 2 +- .../_internals/helpers/TokenizeString.ts | 2 +- .../implementations/SchedulerImplem.ts | 12 +- .../mappers/KeyValuePairsToObject.ts | 2 +- .../src/arbitrary/stringMatching.ts | 2 +- .../check/arbitrary/definition/Arbitrary.ts | 6 +- .../check/property/AsyncProperty.generic.ts | 2 +- .../src/check/property/Property.generic.ts | 2 +- .../src/check/property/SkipAfterProperty.ts | 2 +- .../src/check/property/TimeoutProperty.ts | 2 +- .../src/check/runner/RunnerIterator.ts | 8 +- .../src/check/runner/reporter/RunExecution.ts | 6 +- .../check/runner/utils/RunDetailsFormatter.ts | 2 +- .../src/random/generator/RandomGenerator.ts | 2 +- packages/fast-check/src/utils/stringify.ts | 10 +- .../test-bundle/run-many-arbitraries.cjs | 4 +- .../test/e2e/AsyncScheduler.spec.ts | 1 - .../test/e2e/documentation/Docs.md.spec.ts | 2 +- .../ToStringIsSameFunction.ts | 2 +- .../_internals/ArrayArbitrary.spec.ts | 8 +- .../_internals/ConstantArbitrary.spec.ts | 4 +- .../_internals/StreamArbitrary.spec.ts | 2 +- .../_internals/helpers/TokenizeRegex.spec.ts | 2 + .../test/unit/arbitrary/sparseArray.spec.ts | 2 +- .../definition/NextValue.utest.spec.ts | 4 +- .../fast-check/test/unit/utils/apply.spec.ts | 2 +- .../test/unit/utils/stringify.spec.ts | 16 +- packages/jest/src/internals/TestBuilder.ts | 4 +- .../internals/TestWithPropRunnerBuilder.ts | 2 +- packages/jest/src/jest-fast-check-worker.ts | 2 +- .../src/internals/CaptureAllGlobals.ts | 2 +- packages/poisoning/test/main.spec.ts | 12 +- .../src/internals/TestAlongGenerator.ts | 6 +- packages/vitest/src/internals/TestBuilder.ts | 4 +- .../worker/src/internals/MainThreadRunner.ts | 1 - .../src/internals/worker-pool/GlobalPool.ts | 2 +- .../internals/worker-runner/WorkerRunner.ts | 3 +- .../e2e/__properties__/concurrentAssert.mjs | 4 +- .../test/e2e/__properties__/unregistered.mjs | 2 +- .../test/e2e/predicateIsolation.spec.ts | 4 +- pnpm-lock.yaml | 788 +++++++----------- 45 files changed, 521 insertions(+), 721 deletions(-) create mode 100644 .oxlintrc.json delete mode 100644 eslint.config.mjs diff --git a/.oxlintrc.json b/.oxlintrc.json new file mode 100644 index 00000000..64723821 --- /dev/null +++ b/.oxlintrc.json @@ -0,0 +1,159 @@ +{ + "$schema": "https://raw.githubusercontent.com/nicolo-ribaudo/oxc-project.github.io/refs/heads/oxlint-v1-schema/src/docs/guide/usage/linter/generated/schema.json", + "options": { + "typeAware": true + }, + "categories": { + "correctness": "deny" + }, + "plugins": ["typescript", "oxc", "unicorn", "import"], + "rules": { + "no-unused-vars": ["error", { "argsIgnorePattern": "^_", "caughtErrors": "none" }], + + "no-eval": "warn", + "no-useless-rename": "warn", + "unicorn/no-unnecessary-await": "warn", + "unicorn/no-useless-spread": "warn", + "unicorn/no-thenable": "warn", + "unicorn/no-empty-file": "warn", + "unicorn/prefer-string-starts-ends-with": "warn", + "oxc/const-comparisons": "warn", + "typescript/no-misused-spread": "warn", + "typescript/no-array-delete": "warn", + + "typescript/explicit-module-boundary-types": "error", + "typescript/consistent-type-exports": "error", + "typescript/consistent-type-imports": "error", + "typescript/no-import-type-side-effects": "error", + "typescript/no-non-null-assertion": "error", + "typescript/no-restricted-types": "error", + "typescript/no-empty-object-type": ["error", { "allowInterfaces": "with-single-extends" }], + "typescript/no-unsafe-function-type": "error", + "typescript/no-wrapper-object-types": "error", + "typescript/no-require-imports": "error", + + "typescript/await-thenable": "error", + "typescript/no-base-to-string": "error", + "typescript/no-duplicate-type-constituents": "error", + "typescript/no-floating-promises": "error", + "typescript/no-for-in-array": "error", + "typescript/no-implied-eval": "error", + "typescript/no-misused-promises": "error", + "typescript/no-unsafe-enum-comparison": "error", + "typescript/require-await": "error", + + "no-empty-function": "warn", + "typescript/no-this-alias": "warn", + "no-use-before-define": "warn", + + "no-fallthrough": "error", + "no-case-declarations": "error", + "no-prototype-builtins": "error", + "no-empty": "error", + "no-regex-spaces": "error", + "no-unexpected-multiline": "error", + "no-redeclare": "error", + "typescript/ban-ts-comment": "error", + "typescript/no-namespace": "error", + "typescript/no-unnecessary-type-constraint": "error", + + "typescript/no-explicit-any": "off", + "typescript/no-redundant-type-constituents": "off", + "typescript/no-unnecessary-type-assertion": "off", + "typescript/no-unsafe-argument": "off", + "typescript/no-unsafe-assignment": "off", + "typescript/no-unsafe-call": "off", + "typescript/no-unsafe-member-access": "off", + "typescript/no-unsafe-return": "off", + "typescript/restrict-plus-operands": "off", + "typescript/restrict-template-expressions": "off", + "typescript/unbound-method": "off" + }, + "overrides": [ + { + "files": [ + "**/*.spec.ts", + "**/test/unit/**/*.ts", + "**/test/e2e/**/*.ts", + "**/test-types/**/*.ts", + "**/test-types/**/*.mts" + ], + "rules": { + "no-empty-function": "off", + "typescript/no-empty-object-type": "off", + "no-use-before-define": "off", + "typescript/no-non-null-assertion": "off", + "typescript/await-thenable": "off", + "typescript/no-base-to-string": "off", + "typescript/no-duplicate-type-constituents": "off", + "typescript/no-floating-promises": "off", + "typescript/no-for-in-array": "off", + "typescript/no-implied-eval": "off", + "typescript/no-misused-promises": "off", + "typescript/no-unsafe-enum-comparison": "off", + "typescript/require-await": "off", + "typescript/no-meaningless-void-operator": "off", + "typescript/require-array-sort-compare": "off", + "typescript/no-unsafe-unary-minus": "off", + "no-unexpected-multiline": "off" + } + }, + { + "files": [ + "**/*.cjs", + "**/cjs/**/*.js", + "packages/ava/test/ava-specs/testProp.js", + "**/ava.config.js", + "**/jest.config.js", + "packages/packaged/bin/*.js" + ], + "rules": { + "typescript/no-require-imports": "off", + "typescript/await-thenable": "off", + "typescript/no-base-to-string": "off", + "typescript/no-duplicate-type-constituents": "off", + "typescript/no-floating-promises": "off", + "typescript/no-for-in-array": "off", + "typescript/no-implied-eval": "off", + "typescript/no-misused-promises": "off", + "typescript/no-unsafe-enum-comparison": "off", + "typescript/require-await": "off", + "typescript/no-meaningless-void-operator": "off", + "typescript/require-array-sort-compare": "off", + "typescript/no-unsafe-unary-minus": "off" + } + }, + { + "files": ["**/*.mjs", "**/mjs/**/*.js"], + "rules": { + "typescript/await-thenable": "off", + "typescript/no-base-to-string": "off", + "typescript/no-duplicate-type-constituents": "off", + "typescript/no-floating-promises": "off", + "typescript/no-for-in-array": "off", + "typescript/no-implied-eval": "off", + "typescript/no-misused-promises": "off", + "typescript/no-unsafe-enum-comparison": "off", + "typescript/require-await": "off", + "typescript/no-meaningless-void-operator": "off", + "typescript/require-array-sort-compare": "off", + "typescript/no-unsafe-unary-minus": "off" + } + } + ], + "ignorePatterns": [ + ".github/", + "node_modules/", + "coverage/", + "examples/", + "packages/*/coverage/", + "packages/*/docs/", + "packages/*/dist/", + "packages/*/lib/", + "packages/*/lib-*/", + "packages/*/rolldown.config.js", + "packages/**/.test-artifacts/", + "rolldown.common.config.js", + "website/" + ] +} diff --git a/eslint.config.mjs b/eslint.config.mjs deleted file mode 100644 index 72756d8f..00000000 --- a/eslint.config.mjs +++ /dev/null @@ -1,122 +0,0 @@ -// @ts-check -import js from '@eslint/js'; -import tseslint from 'typescript-eslint'; -import eslintConfigPrettier from 'eslint-config-prettier'; -import globals from 'globals'; - -/** @type {import('@typescript-eslint/utils').TSESLint.FlatConfig.ConfigFile} */ -export default [ - js.configs.recommended, - ...tseslint.configs.recommendedTypeChecked, - eslintConfigPrettier, - { - languageOptions: { - parserOptions: { - tsconfigRootDir: import.meta.dirname, - projectService: './tsconfig.common.json', - }, - }, - }, - { - rules: { - '@typescript-eslint/explicit-module-boundary-types': 'error', - '@typescript-eslint/explicit-function-return-type': 'off', - '@typescript-eslint/interface-name-prefix': 'off', - '@typescript-eslint/no-empty-function': 'warn', - '@typescript-eslint/no-empty-interface': 'off', - '@typescript-eslint/no-explicit-any': 'off', - '@typescript-eslint/no-this-alias': 'warn', - '@typescript-eslint/no-unused-vars': ['error', { argsIgnorePattern: '^_', caughtErrors: 'none' }], - '@typescript-eslint/no-use-before-define': 'warn', - '@typescript-eslint/consistent-type-exports': 'error', - '@typescript-eslint/consistent-type-imports': 'error', - '@typescript-eslint/no-import-type-side-effects': 'error', - '@typescript-eslint/no-non-null-assertion': 'error', - '@typescript-eslint/no-restricted-types': 'error', - '@typescript-eslint/no-empty-object-type': ['error', { allowInterfaces: 'with-single-extends' }], - '@typescript-eslint/no-unsafe-function-type': 'error', - '@typescript-eslint/no-wrapper-object-types': 'error', - 'require-atomic-updates': 'error', - '@typescript-eslint/no-redundant-type-constituents': 'off', - '@typescript-eslint/no-unnecessary-type-assertion': 'off', - '@typescript-eslint/no-unsafe-argument': 'off', - '@typescript-eslint/no-unsafe-assignment': 'off', - '@typescript-eslint/no-unsafe-call': 'off', - '@typescript-eslint/no-unsafe-member-access': 'off', - '@typescript-eslint/no-unsafe-return': 'off', - '@typescript-eslint/restrict-plus-operands': 'off', - '@typescript-eslint/restrict-template-expressions': 'off', - '@typescript-eslint/unbound-method': 'off', - }, - }, - { - files: [ - '**/*.cjs', - '**/cjs/**/*.js', - 'packages/ava/test/ava-specs/testProp.js', - '**/ava.config.js', - '**/jest.config.js', - 'packages/packaged/bin/*.js', - ], - languageOptions: { - ...tseslint.configs.disableTypeChecked.languageOptions, - globals: { - ...globals.node, - ...globals.commonjs, - }, - }, - rules: { - ...tseslint.configs.disableTypeChecked.rules, - '@typescript-eslint/no-var-requires': 'off', - '@typescript-eslint/no-require-imports': 'off', - }, - }, - { - files: ['**/*.mjs', '**/mjs/**/*.js'], - languageOptions: { - ...tseslint.configs.disableTypeChecked.languageOptions, - globals: { - ...globals.node, - }, - }, - rules: { - ...tseslint.configs.disableTypeChecked.rules, - }, - }, - { - files: [ - '**/*.spec.ts', - '**/test/unit/**/*.ts', - '**/test/e2e/**/*.ts', - '**/test-types/**/*.ts', - '**/test-types/**/*.mts', - ], - languageOptions: { - ...tseslint.configs.disableTypeChecked.languageOptions, - }, - rules: { - '@typescript-eslint/no-empty-function': 'off', - '@typescript-eslint/no-empty-object-type': 'off', - '@typescript-eslint/no-use-before-define': 'off', - '@typescript-eslint/no-non-null-assertion': 'off', - ...tseslint.configs.disableTypeChecked.rules, - }, - }, - { - ignores: [ - '.github/', - 'node_modules/', - 'coverage/', - 'examples/', - 'packages/*/coverage/', - 'packages/*/docs/', - 'packages/*/dist/', - 'packages/*/lib/', - 'packages/*/lib-*/', - 'packages/*/rolldown.config.js', - 'packages/**/.test-artifacts/', - 'rolldown.common.config.js', - 'website/', - ], - }, -]; diff --git a/examples/001-simple/fibonacci/main.spec.ts b/examples/001-simple/fibonacci/main.spec.ts index 93c2b480..8012e71c 100644 --- a/examples/001-simple/fibonacci/main.spec.ts +++ b/examples/001-simple/fibonacci/main.spec.ts @@ -73,7 +73,7 @@ describe('fibonacci', () => { a = b; b = temp; } - // eslint-disable-next-line no-constant-condition + // oxlint-disable-next-line no-constant-condition while (true) { if (b == zero) return a; a = (a % b) as T; diff --git a/package.json b/package.json index 1326b2f9..fe06756b 100644 --- a/package.json +++ b/package.json @@ -20,8 +20,8 @@ "format": "prettier --experimental-cli --cache --write .", "format:file": "prettier --experimental-cli --cache --write", "format:check": "prettier --experimental-cli --cache --list-different .", - "lint": "eslint --concurrency=auto . --fix", - "lint:check": "eslint --concurrency=auto .", + "lint": "oxlint --fix", + "lint:check": "oxlint", "publint:all": "pnpm --filter {./packages/**} --parallel exec publint --strict", "bump": "changeset", "changelog": "changeset status", @@ -31,22 +31,18 @@ }, "devDependencies": { "@changesets/cli": "^2.30.0", - "@eslint/js": "^10.0.1", "@fast-check/packaged": "workspace:*", - "@typescript-eslint/utils": "^8.58.2", "@vitest/coverage-v8": "^4.0.18", "all-contributors-cli": "^6.26.1", "cross-env": "^10.1.0", - "eslint": "^10.2.0", - "eslint-config-prettier": "^10.1.8", - "globals": "^17.5.0", + "oxlint": "^1.59.0", + "oxlint-tsgolint": "^0.20.0", "pkg-pr-new": "^0.0.66", "prettier": "3.8.1", "publint": "^0.3.18", "rolldown": "^1.0.0-rc.15", "rolldown-plugin-dts": "^0.23.2", "typescript": "~6.0.2", - "typescript-eslint": "^8.58.2", "vitest": "^4.1.0" } } diff --git a/packages/fast-check/src/arbitrary/_internals/helpers/SanitizeRegexAst.ts b/packages/fast-check/src/arbitrary/_internals/helpers/SanitizeRegexAst.ts index 80b94b34..96c67379 100644 --- a/packages/fast-check/src/arbitrary/_internals/helpers/SanitizeRegexAst.ts +++ b/packages/fast-check/src/arbitrary/_internals/helpers/SanitizeRegexAst.ts @@ -12,7 +12,7 @@ function addMissingDotStarTraversalAddMissing(astNode: RegexToken, isFirst: bool return astNode; } const traversalResults = { hasStart: false, hasEnd: false }; - // eslint-disable-next-line @typescript-eslint/no-use-before-define + // oxlint-disable-next-line no-use-before-define const revampedNode = addMissingDotStarTraversal(astNode, isFirst, isLast, traversalResults); const missingStart = isFirst && !traversalResults.hasStart; const missingEnd = isLast && !traversalResults.hasEnd; diff --git a/packages/fast-check/src/arbitrary/_internals/helpers/TokenizeString.ts b/packages/fast-check/src/arbitrary/_internals/helpers/TokenizeString.ts index 51284515..81f4b7fc 100644 --- a/packages/fast-check/src/arbitrary/_internals/helpers/TokenizeString.ts +++ b/packages/fast-check/src/arbitrary/_internals/helpers/TokenizeString.ts @@ -30,7 +30,7 @@ export function tokenizeString( // - nextStartIndex: where to start next time (mostly needed as we want to go deep first) const stack: StackItem[] = [{ endIndexChunks: 0, nextStartIndex: 1, chunks: [] }]; while (stack.length > 0) { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + // oxlint-disable-next-line typescript/no-non-null-assertion const last = safePop(stack)!; // Going deeper in the tree diff --git a/packages/fast-check/src/arbitrary/_internals/implementations/SchedulerImplem.ts b/packages/fast-check/src/arbitrary/_internals/implementations/SchedulerImplem.ts index e15cc110..29c0dd3e 100644 --- a/packages/fast-check/src/arbitrary/_internals/implementations/SchedulerImplem.ts +++ b/packages/fast-check/src/arbitrary/_internals/implementations/SchedulerImplem.ts @@ -111,7 +111,6 @@ export class SchedulerImplem implements Scheduler { }, (err) => { this.log(schedulingType, taskId, label, metadata, 'rejected', err); - // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors reject(err); }, ); @@ -120,7 +119,7 @@ export class SchedulerImplem implements Scheduler { }); this.scheduledTasks.push({ original: task, - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + // oxlint-disable-next-line typescript/no-non-null-assertion trigger: trigger!, schedulingType, taskId, @@ -167,7 +166,7 @@ export class SchedulerImplem implements Scheduler { const dummyResolvedPromise: PromiseLike = { then: (f: () => any) => f() }; // Placeholder resolver, immediately replaced by the one retrieved in `new Promise` - // eslint-disable-next-line @typescript-eslint/no-empty-function + // oxlint-disable-next-line no-empty-function let resolveSequenceTask = () => {}; const sequenceTask = new Promise<{ done: boolean; faulty: boolean }>((resolve) => { resolveSequenceTask = () => resolve({ done: status.done, faulty: status.faulty }); @@ -260,9 +259,9 @@ export class SchedulerImplem implements Scheduler { const onWaitStart = options.onWaitStart; const onWaitIdle = options.onWaitIdle; const launchAwaiterOnInit = options.launchAwaiterOnInit; - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + // oxlint-disable-next-line typescript/no-non-null-assertion let resolveFinal: (value: T) => void = undefined!; - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + // oxlint-disable-next-line typescript/no-non-null-assertion let rejectFinal: (error: unknown) => void = undefined!; // Define the lazy watchers: triggered whenever something new has been scheduled @@ -305,7 +304,7 @@ export class SchedulerImplem implements Scheduler { return; } // Schedule the next awaiter (awaiter will reset awaiterPromise to null) - // eslint-disable-next-line @typescript-eslint/no-empty-function + // oxlint-disable-next-line no-empty-function awaiterPromise = awaiter().catch(() => {}); }; @@ -327,7 +326,6 @@ export class SchedulerImplem implements Scheduler { }; rejectFinal = (error: unknown) => { clearAndReplaceWatcher(); - // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors reject(error); }; }); diff --git a/packages/fast-check/src/arbitrary/_internals/mappers/KeyValuePairsToObject.ts b/packages/fast-check/src/arbitrary/_internals/mappers/KeyValuePairsToObject.ts index 09c7da35..b3b69902 100644 --- a/packages/fast-check/src/arbitrary/_internals/mappers/KeyValuePairsToObject.ts +++ b/packages/fast-check/src/arbitrary/_internals/mappers/KeyValuePairsToObject.ts @@ -52,7 +52,7 @@ export function keyValuePairsToObjectUnmapper(value: u const propertyDescriptors = safeMap(safeReflectOwnKeys(value), (key): [PropertyKey, PropertyDescriptor] => [ key, // A key returned by `Reflect.ownKeys` must have a descriptor. - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + // oxlint-disable-next-line typescript/no-non-null-assertion safeObjectGetOwnPropertyDescriptor(value, key)!, ]); if (!safeEvery(propertyDescriptors, ([, descriptor]) => isValidPropertyNameFilter(descriptor))) { diff --git a/packages/fast-check/src/arbitrary/stringMatching.ts b/packages/fast-check/src/arbitrary/stringMatching.ts index 15ff8c72..d0b9a963 100644 --- a/packages/fast-check/src/arbitrary/stringMatching.ts +++ b/packages/fast-check/src/arbitrary/stringMatching.ts @@ -149,7 +149,7 @@ function toMatchingArbitrary( (c) => { if (typeof c !== 'string') throw new Error('Invalid type'); if ([...c].length !== 1) throw new Error('Invalid length'); - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + // oxlint-disable-next-line typescript/no-non-null-assertion return safeCharCodeAt(c, 0)!; }, ); diff --git a/packages/fast-check/src/check/arbitrary/definition/Arbitrary.ts b/packages/fast-check/src/check/arbitrary/definition/Arbitrary.ts index cf03ee5f..ebb93a28 100644 --- a/packages/fast-check/src/check/arbitrary/definition/Arbitrary.ts +++ b/packages/fast-check/src/check/arbitrary/definition/Arbitrary.ts @@ -98,7 +98,7 @@ export abstract class Arbitrary { */ filter(predicate: (t: T) => boolean): Arbitrary; filter(refinement: (t: T) => t is U): Arbitrary { - // eslint-disable-next-line @typescript-eslint/no-use-before-define + // oxlint-disable-next-line no-use-before-define return new FilterArbitrary(this, refinement); } @@ -120,7 +120,7 @@ export abstract class Arbitrary { * @remarks Since 0.0.1 */ map(mapper: (t: T) => U, unmapper?: (possiblyU: unknown) => T): Arbitrary { - // eslint-disable-next-line @typescript-eslint/no-use-before-define + // oxlint-disable-next-line no-use-before-define return new MapArbitrary(this, mapper, unmapper); } @@ -138,7 +138,7 @@ export abstract class Arbitrary { * @remarks Since 1.2.0 */ chain(chainer: (t: T) => Arbitrary): Arbitrary { - // eslint-disable-next-line @typescript-eslint/no-use-before-define + // oxlint-disable-next-line no-use-before-define return new ChainArbitrary(this, chainer); } } diff --git a/packages/fast-check/src/check/property/AsyncProperty.generic.ts b/packages/fast-check/src/check/property/AsyncProperty.generic.ts index 1fe90df4..005add30 100644 --- a/packages/fast-check/src/check/property/AsyncProperty.generic.ts +++ b/packages/fast-check/src/check/property/AsyncProperty.generic.ts @@ -53,7 +53,7 @@ export interface IAsyncPropertyWithHooks extends IAsyncProperty { } // Default hook is a no-op -// eslint-disable-next-line @typescript-eslint/no-empty-function +// oxlint-disable-next-line no-empty-function const dummyHook: GlobalAsyncPropertyHookFunction = () => {}; /** diff --git a/packages/fast-check/src/check/property/Property.generic.ts b/packages/fast-check/src/check/property/Property.generic.ts index 65c92acc..c55f2ef4 100644 --- a/packages/fast-check/src/check/property/Property.generic.ts +++ b/packages/fast-check/src/check/property/Property.generic.ts @@ -68,7 +68,7 @@ export interface IPropertyWithHooks extends IProperty { } // Default hook is a no-op -// eslint-disable-next-line @typescript-eslint/no-empty-function +// oxlint-disable-next-line no-empty-function const dummyHook: GlobalPropertyHookFunction = () => {}; /** diff --git a/packages/fast-check/src/check/property/SkipAfterProperty.ts b/packages/fast-check/src/check/property/SkipAfterProperty.ts index 68065bbc..cb587dac 100644 --- a/packages/fast-check/src/check/property/SkipAfterProperty.ts +++ b/packages/fast-check/src/check/property/SkipAfterProperty.ts @@ -15,7 +15,7 @@ function interruptAfter(timeMs: number, setTimeoutSafe: typeof setTimeout, clear }); return { // `timeoutHandle` will always be initialised at this point: body of `new Promise` has already been executed - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + // oxlint-disable-next-line typescript/no-non-null-assertion clear: () => clearTimeoutSafe(timeoutHandle!), promise, }; diff --git a/packages/fast-check/src/check/property/TimeoutProperty.ts b/packages/fast-check/src/check/property/TimeoutProperty.ts index f65f8145..ee395380 100644 --- a/packages/fast-check/src/check/property/TimeoutProperty.ts +++ b/packages/fast-check/src/check/property/TimeoutProperty.ts @@ -15,7 +15,7 @@ const timeoutAfter = (timeMs: number, setTimeoutSafe: typeof setTimeout, clearTi }); return { // `timeoutHandle` will always be initialised at this point: body of `new Promise` has already been executed - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + // oxlint-disable-next-line typescript/no-non-null-assertion clear: () => clearTimeoutSafe(timeoutHandle!), promise, }; diff --git a/packages/fast-check/src/check/runner/RunnerIterator.ts b/packages/fast-check/src/check/runner/RunnerIterator.ts index 89f3a029..04d2a22a 100644 --- a/packages/fast-check/src/check/runner/RunnerIterator.ts +++ b/packages/fast-check/src/check/runner/RunnerIterator.ts @@ -48,15 +48,15 @@ export class RunnerIterator implements IterableIterator { // As a consequence: currentShrinkable is always defined in the code below if (result !== null && typeof result === 'object' && !PreconditionFailure.isFailure(result)) { // failed run - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + // oxlint-disable-next-line typescript/no-non-null-assertion this.runExecution.fail(this.currentValue!.value_, this.currentIdx, result); this.currentIdx = -1; - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + // oxlint-disable-next-line typescript/no-non-null-assertion this.nextValues = this.shrink(this.currentValue!); } else if (result !== null) { if (!result.interruptExecution) { // skipped run - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + // oxlint-disable-next-line typescript/no-non-null-assertion this.runExecution.skip(this.currentValue!.value_); this.sourceValues.skippedOne(); } else { @@ -65,7 +65,7 @@ export class RunnerIterator implements IterableIterator { } } else { // successful run - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + // oxlint-disable-next-line typescript/no-non-null-assertion this.runExecution.success(this.currentValue!.value_); } } diff --git a/packages/fast-check/src/check/runner/reporter/RunExecution.ts b/packages/fast-check/src/check/runner/reporter/RunExecution.ts index 2c63a48e..6b5c6ce0 100644 --- a/packages/fast-check/src/check/runner/reporter/RunExecution.ts +++ b/packages/fast-check/src/check/runner/reporter/RunExecution.ts @@ -120,14 +120,14 @@ export class RunExecution { // At the same time it also assigns a non-null value to this.value // And this is the only path assigning a value to this.value // => this.value !== undefined - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + // oxlint-disable-next-line typescript/no-non-null-assertion counterexample: this.value!, // See isSuccess: true <=> this.pathToFailure === undefined - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + // oxlint-disable-next-line typescript/no-non-null-assertion counterexamplePath: RunExecution.mergePaths(basePath, this.pathToFailure!), // Rq: Same as this.value // => this.failure !== undefined - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + // oxlint-disable-next-line typescript/no-non-null-assertion errorInstance: this.failure!.error, failures: this.extractFailures(), executionSummary: this.rootExecutionTrees, diff --git a/packages/fast-check/src/check/runner/utils/RunDetailsFormatter.ts b/packages/fast-check/src/check/runner/utils/RunDetailsFormatter.ts index f36d86a1..49ef60c2 100644 --- a/packages/fast-check/src/check/runner/utils/RunDetailsFormatter.ts +++ b/packages/fast-check/src/check/runner/utils/RunDetailsFormatter.ts @@ -44,7 +44,7 @@ function formatExecutionSummary(executionTrees: ExecutionTree[], stringi while (remainingTreesAndDepth.length !== 0) { // There is at least one item to pop (remainingTreesAndDepth.length !== 0) // And this item is of type: { depth: number; tree: ExecutionTree } (not nullable so `!` is safe) - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + // oxlint-disable-next-line typescript/no-non-null-assertion const currentTreeAndDepth = remainingTreesAndDepth.pop()!; // format current tree according to its depth diff --git a/packages/fast-check/src/random/generator/RandomGenerator.ts b/packages/fast-check/src/random/generator/RandomGenerator.ts index a4c09610..b6594986 100644 --- a/packages/fast-check/src/random/generator/RandomGenerator.ts +++ b/packages/fast-check/src/random/generator/RandomGenerator.ts @@ -36,7 +36,7 @@ function adaptRandomGeneratorTo8x(rng: RandomGenerator): RandomGenerator8x | Jum return { clone: () => adaptRandomGeneratorTo8x(rng), next: () => rng.unsafeNext(), - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + // oxlint-disable-next-line typescript/no-non-null-assertion jump: () => rng.unsafeJump!(), getState: () => rng.getState(), }; diff --git a/packages/fast-check/src/utils/stringify.ts b/packages/fast-check/src/utils/stringify.ts index fdc30e37..cee86284 100644 --- a/packages/fast-check/src/utils/stringify.ts +++ b/packages/fast-check/src/utils/stringify.ts @@ -125,7 +125,7 @@ function stringifyNumber(numValue: number) { /** @internal */ function isSparseArray(arr: unknown[]): boolean { let previousNumberedIndex = -1; - // eslint-disable-next-line @typescript-eslint/no-for-in-array + // oxlint-disable-next-line typescript/no-for-in-array for (const index in arr) { const numberedIndex = Number(index); if (numberedIndex !== previousNumberedIndex + 1) return true; // we've got a hole @@ -171,7 +171,7 @@ export function stringifyInternal( const assignments: string[] = []; // Discarded: map then join will still show holes // Discarded: forEach is very long on large sparse arrays, but only iterates on non-holes integer keys - // eslint-disable-next-line @typescript-eslint/no-for-in-array + // oxlint-disable-next-line typescript/no-for-in-array for (const index in arr) { if (!safeNumberIsNaN(Number(index))) safePush(assignments, `${index}:${stringifyInternal(arr[index], currentValues, getAsyncContent)}`); @@ -193,7 +193,7 @@ export function stringifyInternal( case '[object BigInt]': return `${value}n`; case '[object Boolean]': { - // eslint-disable-next-line @typescript-eslint/no-wrapper-object-types + // oxlint-disable-next-line typescript/no-wrapper-object-types const unboxedToString = (value as unknown as boolean | Boolean) == true ? 'true' : 'false'; // we rely on implicit unboxing return typeof value === 'boolean' ? unboxedToString : `new Boolean(${unboxedToString})`; } @@ -397,7 +397,7 @@ export function possiblyAsyncStringify(value: Ts): string | Promise const getAsyncContent = function getAsyncContent(data: Promise | WithAsyncToStringMethod): AsyncContent { const cacheKey = data; if (cache.has(cacheKey)) { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + // oxlint-disable-next-line typescript/no-non-null-assertion return cache.get(cacheKey)!; } @@ -406,7 +406,7 @@ export function possiblyAsyncStringify(value: Ts): string | Promise asyncToStringMethod in data ? Promise.resolve().then(() => (data as WithAsyncToStringMethod)[asyncToStringMethod]()) : (data as Promise); - // eslint-disable-next-line @typescript-eslint/no-empty-function + // oxlint-disable-next-line no-empty-function p.catch(() => {}); // catching potential errors of p to avoid "Unhandled promise rejection" pendingPromisesForCache.push( diff --git a/packages/fast-check/test-bundle/run-many-arbitraries.cjs b/packages/fast-check/test-bundle/run-many-arbitraries.cjs index d051a451..aa9d8f01 100644 --- a/packages/fast-check/test-bundle/run-many-arbitraries.cjs +++ b/packages/fast-check/test-bundle/run-many-arbitraries.cjs @@ -105,11 +105,11 @@ testArbitrary( testArbitrary( (function () { const tree = fc.memo(function (n) { - // eslint-disable-next-line @typescript-eslint/no-use-before-define + // oxlint-disable-next-line no-use-before-define return fc.oneof(node(n), leaf()); }); const node = fc.memo(function (n) { - // eslint-disable-next-line @typescript-eslint/no-use-before-define + // oxlint-disable-next-line no-use-before-define if (n <= 1) return fc.record({ left: leaf(), right: leaf() }); return fc.record({ left: tree(), right: tree() }); }); diff --git a/packages/fast-check/test/e2e/AsyncScheduler.spec.ts b/packages/fast-check/test/e2e/AsyncScheduler.spec.ts index 4b7fe68c..1df8d2da 100644 --- a/packages/fast-check/test/e2e/AsyncScheduler.spec.ts +++ b/packages/fast-check/test/e2e/AsyncScheduler.spec.ts @@ -103,7 +103,6 @@ describe(`AsyncScheduler (seed: ${seed})`, () => { if (cache[packageName]) return; const packageDef = await fetch(packageName); // cache miss - // eslint-disable-next-line require-atomic-updates cache[packageName] = packageDef; await Promise.all(Object.keys(packageDef.dependencies).map((dependencyName) => feedCache(dependencyName))); diff --git a/packages/fast-check/test/e2e/documentation/Docs.md.spec.ts b/packages/fast-check/test/e2e/documentation/Docs.md.spec.ts index 754325b3..dfe762ed 100644 --- a/packages/fast-check/test/e2e/documentation/Docs.md.spec.ts +++ b/packages/fast-check/test/e2e/documentation/Docs.md.spec.ts @@ -122,7 +122,7 @@ function refreshContent(originalContent: string): { content: string; numExecuted ++numExecutedSnippets; - // eslint-disable-next-line @typescript-eslint/no-unused-vars + // oxlint-disable-next-line no-unused-vars const generatedValues = (function (fc): string[] { const numRuns = 5 * TargetNumExamples; const lastIndexCommentForStatistics = snippet.lastIndexOf(CommentForStatistics); diff --git a/packages/fast-check/test/unit/arbitrary/__test-helpers__/ToStringIsSameFunction.ts b/packages/fast-check/test/unit/arbitrary/__test-helpers__/ToStringIsSameFunction.ts index b7285bb5..7b379de0 100644 --- a/packages/fast-check/test/unit/arbitrary/__test-helpers__/ToStringIsSameFunction.ts +++ b/packages/fast-check/test/unit/arbitrary/__test-helpers__/ToStringIsSameFunction.ts @@ -8,7 +8,7 @@ export function assertToStringIsSameFunction( ): void { let assertionHasBeenExecuted = false; - // eslint-disable-next-line @typescript-eslint/no-unused-vars + // oxlint-disable-next-line no-unused-vars (function (hash, stringify) { assertionHasBeenExecuted = true; try { diff --git a/packages/fast-check/test/unit/arbitrary/_internals/ArrayArbitrary.spec.ts b/packages/fast-check/test/unit/arbitrary/_internals/ArrayArbitrary.spec.ts index c5f9affc..6a121af5 100644 --- a/packages/fast-check/test/unit/arbitrary/_internals/ArrayArbitrary.spec.ts +++ b/packages/fast-check/test/unit/arbitrary/_internals/ArrayArbitrary.spec.ts @@ -278,16 +278,16 @@ describe('ArrayArbitrary', () => { // Assert expect(cloneMethodImpl).not.toHaveBeenCalled(); - // eslint-disable-next-line @typescript-eslint/no-unused-expressions + // oxlint-disable-next-line no-unused-expressions g.value; // not calling clone as this is the first access expect(cloneMethodImpl).not.toHaveBeenCalled(); - // eslint-disable-next-line @typescript-eslint/no-unused-expressions + // oxlint-disable-next-line no-unused-expressions g.value; // calling clone as this is the second access expect(cloneMethodImpl).toHaveBeenCalledTimes(1); - // eslint-disable-next-line @typescript-eslint/no-unused-expressions + // oxlint-disable-next-line no-unused-expressions g.value; // calling clone (again) as this is the third access expect(cloneMethodImpl).toHaveBeenCalledTimes(2); - // eslint-disable-next-line @typescript-eslint/no-unused-expressions + // oxlint-disable-next-line no-unused-expressions g.value_; // not calling clone as we access value_ not value expect(cloneMethodImpl).toHaveBeenCalledTimes(2); }); diff --git a/packages/fast-check/test/unit/arbitrary/_internals/ConstantArbitrary.spec.ts b/packages/fast-check/test/unit/arbitrary/_internals/ConstantArbitrary.spec.ts index cd20d318..fff80346 100644 --- a/packages/fast-check/test/unit/arbitrary/_internals/ConstantArbitrary.spec.ts +++ b/packages/fast-check/test/unit/arbitrary/_internals/ConstantArbitrary.spec.ts @@ -103,10 +103,10 @@ describe('ConstantArbitrary', () => { expect(cloneMethodImpl).not.toHaveBeenCalled(); // Assert - // eslint-disable-next-line @typescript-eslint/no-unused-expressions + // oxlint-disable-next-line no-unused-expressions g.value; expect(cloneMethodImpl).toHaveBeenCalledTimes(1); - // eslint-disable-next-line @typescript-eslint/no-unused-expressions + // oxlint-disable-next-line no-unused-expressions g.value; expect(cloneMethodImpl).toHaveBeenCalledTimes(2); }); diff --git a/packages/fast-check/test/unit/arbitrary/_internals/StreamArbitrary.spec.ts b/packages/fast-check/test/unit/arbitrary/_internals/StreamArbitrary.spec.ts index 86b15de7..93c30e65 100644 --- a/packages/fast-check/test/unit/arbitrary/_internals/StreamArbitrary.spec.ts +++ b/packages/fast-check/test/unit/arbitrary/_internals/StreamArbitrary.spec.ts @@ -47,7 +47,7 @@ describe('StreamArbitrary', () => { // Act const arb = new StreamArbitrary(sourceArb, history); - // eslint-disable-next-line @typescript-eslint/no-unused-expressions + // oxlint-disable-next-line no-unused-expressions arb.generate(mrng, biasFactor).value; // Assert diff --git a/packages/fast-check/test/unit/arbitrary/_internals/helpers/TokenizeRegex.spec.ts b/packages/fast-check/test/unit/arbitrary/_internals/helpers/TokenizeRegex.spec.ts index 077bb2fe..d71ae5d0 100644 --- a/packages/fast-check/test/unit/arbitrary/_internals/helpers/TokenizeRegex.spec.ts +++ b/packages/fast-check/test/unit/arbitrary/_internals/helpers/TokenizeRegex.spec.ts @@ -78,11 +78,13 @@ describe('tokenizeRegex', () => { { regex: /a*^$b*/ }, // matches '', but not 'aa', seems equivalent to /^$/ { regex: /\^ab\$/ }, // @ts-expect-error Referencing non-existing group in Regex + // oxlint-disable-next-line no-control-regex { regex: /\1/, invalidWithUnicode: true }, // @ts-expect-error Referencing non-existing group in Regex { regex: /\1000/, invalidWithUnicode: true }, // in non-unicode: \100 then 0 { regex: /(a)\1/ }, // @ts-expect-error Referencing non-existing group in Regex + // oxlint-disable-next-line no-control-regex { regex: /(a)\2/, invalidWithUnicode: true }, // in non-unicode: \2 is considered as an octal { regex: /(?=a)/ }, { regex: /(?!a)/ }, diff --git a/packages/fast-check/test/unit/arbitrary/sparseArray.spec.ts b/packages/fast-check/test/unit/arbitrary/sparseArray.spec.ts index 84719e85..fdded25b 100644 --- a/packages/fast-check/test/unit/arbitrary/sparseArray.spec.ts +++ b/packages/fast-check/test/unit/arbitrary/sparseArray.spec.ts @@ -1,4 +1,4 @@ -/* eslint-disable no-sparse-arrays */ +/* oxlint-disable no-sparse-arrays */ import { describe, it, expect, vi } from 'vitest'; import * as fc from 'fast-check'; import type { SparseArrayConstraints } from '../../../src/arbitrary/sparseArray.js'; diff --git a/packages/fast-check/test/unit/check/arbitrary/definition/NextValue.utest.spec.ts b/packages/fast-check/test/unit/check/arbitrary/definition/NextValue.utest.spec.ts index 0fed4172..9b92febf 100644 --- a/packages/fast-check/test/unit/check/arbitrary/definition/NextValue.utest.spec.ts +++ b/packages/fast-check/test/unit/check/arbitrary/definition/NextValue.utest.spec.ts @@ -42,9 +42,9 @@ describe('Value', () => { // Act const nextValue = new Value(instance, null, cloneOverride); - // eslint-disable-next-line @typescript-eslint/no-unused-expressions + // oxlint-disable-next-line no-unused-expressions nextValue.value; - // eslint-disable-next-line @typescript-eslint/no-unused-expressions + // oxlint-disable-next-line no-unused-expressions nextValue.value; // Assert diff --git a/packages/fast-check/test/unit/utils/apply.spec.ts b/packages/fast-check/test/unit/utils/apply.spec.ts index 62dbbf6f..6400dd66 100644 --- a/packages/fast-check/test/unit/utils/apply.spec.ts +++ b/packages/fast-check/test/unit/utils/apply.spec.ts @@ -100,7 +100,7 @@ describe('safeApply', () => { } const n = new Nominal(5); const originalApplyDescriptor = Object.getOwnPropertyDescriptor(Function.prototype, 'apply'); - // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type + // oxlint-disable-next-line typescript/no-unsafe-function-type delete (Function.prototype as Partial).apply; Object.defineProperty(Function.prototype, 'apply', { configurable: true, // so that we can revert the change diff --git a/packages/fast-check/test/unit/utils/stringify.spec.ts b/packages/fast-check/test/unit/utils/stringify.spec.ts index dd42a63b..cba482ab 100644 --- a/packages/fast-check/test/unit/utils/stringify.spec.ts +++ b/packages/fast-check/test/unit/utils/stringify.spec.ts @@ -115,21 +115,21 @@ describe('stringify', () => { expect(repr).toEqual('[1,2,3,[cyclic],4]'); }); it('Should be able to stringify small sparse arrays', () => { - // eslint-disable-next-line no-sparse-arrays + // oxlint-disable-next-line no-sparse-arrays expect(stringify([,])).toEqual('[,]'); // empty with one hole - // eslint-disable-next-line no-sparse-arrays + // oxlint-disable-next-line no-sparse-arrays expect(stringify([, ,])).toEqual('[,,]'); // empty with two holes - // eslint-disable-next-line no-sparse-arrays + // oxlint-disable-next-line no-sparse-arrays expect(stringify([, , , ,])).toEqual('[,,,,]'); // empty with four holes - // eslint-disable-next-line no-sparse-arrays + // oxlint-disable-next-line no-sparse-arrays expect(stringify([1, , ,])).toEqual('[1,,,]'); // one value then two holes - // eslint-disable-next-line no-sparse-arrays + // oxlint-disable-next-line no-sparse-arrays expect(stringify([, , 1, , 2])).toEqual('[,,1,,2]'); // two holes non-trailing holes - // eslint-disable-next-line no-sparse-arrays + // oxlint-disable-next-line no-sparse-arrays expect(stringify([1, , 2])).toEqual('[1,,2]'); // one hole non-trailing hole - // eslint-disable-next-line no-sparse-arrays + // oxlint-disable-next-line no-sparse-arrays expect(stringify([1, 2, ,])).toEqual('[1,2,,]'); // two values then one hole - // eslint-disable-next-line no-sparse-arrays + // oxlint-disable-next-line no-sparse-arrays expect(stringify([1, 2, , ,])).toEqual('[1,2,,,]'); // two values then two holes }); it('Should be able to stringify large sparse arrays', () => { diff --git a/packages/jest/src/internals/TestBuilder.ts b/packages/jest/src/internals/TestBuilder.ts index fce74060..7dc95a22 100644 --- a/packages/jest/src/internals/TestBuilder.ts +++ b/packages/jest/src/internals/TestBuilder.ts @@ -90,12 +90,12 @@ function buildTestProp( params.examples !== undefined ? params.examples.map((example): [TsParameters] => [example]) : undefined, reporter: params.reporter !== undefined - ? // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + ? // oxlint-disable-next-line typescript/no-non-null-assertion (runDetails) => params.reporter!(adaptRunDetailsForRecord(runDetails, params)) : undefined, asyncReporter: params.asyncReporter !== undefined - ? // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + ? // oxlint-disable-next-line typescript/no-non-null-assertion (runDetails) => params.asyncReporter!(adaptRunDetailsForRecord(runDetails, params)) : undefined, } diff --git a/packages/jest/src/internals/TestWithPropRunnerBuilder.ts b/packages/jest/src/internals/TestWithPropRunnerBuilder.ts index c3bc437b..e737b9a0 100644 --- a/packages/jest/src/internals/TestWithPropRunnerBuilder.ts +++ b/packages/jest/src/internals/TestWithPropRunnerBuilder.ts @@ -37,7 +37,7 @@ export function buildTestWithPropRunner { } else { // But in ES Modules mode, it cannot be accessed directly, thus users have to directly import it // But root import of it is failing in the context of workers, so only dynamic version is acceptable - // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // oxlint-disable-next-line typescript/ban-ts-comment // @ts-ignore - Dynamic imports cause TS1323 error only in ESM build (not CJS), so @ts-expect-error would fail CJS build return import('@jest/globals').then( ({ jest }): InitOutput => ({ diff --git a/packages/poisoning/src/internals/CaptureAllGlobals.ts b/packages/poisoning/src/internals/CaptureAllGlobals.ts index cf00d009..2b2a8b94 100644 --- a/packages/poisoning/src/internals/CaptureAllGlobals.ts +++ b/packages/poisoning/src/internals/CaptureAllGlobals.ts @@ -66,7 +66,7 @@ export function captureAllGlobals(): AllGlobals { { instance: globalThis, name: 'globalThis', currentDepth: 0, lastRootInPath: 'globalThis' }, ]); while (nextCaptures.length !== 0) { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + // oxlint-disable-next-line typescript/no-non-null-assertion const { instance, name, currentDepth, lastRootInPath } = nextCaptures[ShiftSymbol]()!; if (typeof instance !== 'function' && typeof instance !== 'object') { diff --git a/packages/poisoning/test/main.spec.ts b/packages/poisoning/test/main.spec.ts index 957ccfef..43c1f037 100644 --- a/packages/poisoning/test/main.spec.ts +++ b/packages/poisoning/test/main.spec.ts @@ -63,7 +63,7 @@ describe('assertNoPoisoning', () => { it('should throw an Error if global value altered and be able to revert the change', () => { // Arrange const F = Function; - // eslint-disable-next-line no-global-assign + // oxlint-disable-next-line no-global-assign Function = vi.fn() as any; // Act / Assert @@ -72,7 +72,7 @@ describe('assertNoPoisoning', () => { restoreGlobals(options); expect(() => assertNoPoisoning(options)).not.toThrow(); } finally { - // eslint-disable-next-line no-global-assign + // oxlint-disable-next-line no-global-assign Function = F; } }); @@ -80,7 +80,7 @@ describe('assertNoPoisoning', () => { it('should throw an Error if globalThis gets changed into another type and be able to revert the change', () => { // Arrange const G = globalThis; - // eslint-disable-next-line no-global-assign + // oxlint-disable-next-line no-global-assign (globalThis as any) = 1; // Act / Assert @@ -91,12 +91,12 @@ describe('assertNoPoisoning', () => { error = err; } if (error === undefined) { - // eslint-disable-next-line no-global-assign + // oxlint-disable-next-line no-global-assign (globalThis as any) = G; throw new Error('No error has been thrown'); } if (!/Poisoning detected/.test((error as Error).message)) { - // eslint-disable-next-line no-global-assign + // oxlint-disable-next-line no-global-assign (globalThis as any) = G; throw new Error(`Received error does not fulfill expectations, got: ${error}`); } @@ -104,7 +104,7 @@ describe('assertNoPoisoning', () => { restoreGlobals(options); expect(() => assertNoPoisoning(options)).not.toThrow(); } finally { - // eslint-disable-next-line no-global-assign + // oxlint-disable-next-line no-global-assign (globalThis as any) = G; } }); diff --git a/packages/vitest/src/internals/TestAlongGenerator.ts b/packages/vitest/src/internals/TestAlongGenerator.ts index 143861a7..0ab2fbe4 100644 --- a/packages/vitest/src/internals/TestAlongGenerator.ts +++ b/packages/vitest/src/internals/TestAlongGenerator.ts @@ -7,11 +7,11 @@ import { assert, asyncProperty, gen, readConfigureGlobal } from 'fast-check'; type TestCollectorOptions = Omit; -// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type +// oxlint-disable-next-line typescript/no-unsafe-function-type type Sig1 = [name: string | Function, fn: TestFunction, options: TestCollectorOptions]; -// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type +// oxlint-disable-next-line typescript/no-unsafe-function-type type Sig2 = [name: string | Function, fn?: TestFunction, options?: number | TestOptions]; -// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type +// oxlint-disable-next-line typescript/no-unsafe-function-type type Sig3 = [name: string | Function, options?: TestCollectorOptions, fn?: TestFunction]; function isSig1OrSig2(args: Sig1 | Sig2 | Sig3): args is Sig1 | Sig2 { diff --git a/packages/vitest/src/internals/TestBuilder.ts b/packages/vitest/src/internals/TestBuilder.ts index eff02daa..c5cffe00 100644 --- a/packages/vitest/src/internals/TestBuilder.ts +++ b/packages/vitest/src/internals/TestBuilder.ts @@ -90,12 +90,12 @@ function buildTestProp( params.examples !== undefined ? params.examples.map((example): [TsParameters] => [example]) : undefined, reporter: params.reporter !== undefined - ? // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + ? // oxlint-disable-next-line typescript/no-non-null-assertion (runDetails) => params.reporter!(adaptRunDetailsForRecord(runDetails, params)) : undefined, asyncReporter: params.asyncReporter !== undefined - ? // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + ? // oxlint-disable-next-line typescript/no-non-null-assertion (runDetails) => params.asyncReporter!(adaptRunDetailsForRecord(runDetails, params)) : undefined, } diff --git a/packages/worker/src/internals/MainThreadRunner.ts b/packages/worker/src/internals/MainThreadRunner.ts index 483b6bac..90257168 100644 --- a/packages/worker/src/internals/MainThreadRunner.ts +++ b/packages/worker/src/internals/MainThreadRunner.ts @@ -41,7 +41,6 @@ export function runMainThread( return; } worker.register(predicateId, property.getPayload(inputs), resolve, reject, () => - // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors reject(new PreconditionFailure()), ); }); diff --git a/packages/worker/src/internals/worker-pool/GlobalPool.ts b/packages/worker/src/internals/worker-pool/GlobalPool.ts index 77d23374..e06b531f 100644 --- a/packages/worker/src/internals/worker-pool/GlobalPool.ts +++ b/packages/worker/src/internals/worker-pool/GlobalPool.ts @@ -60,7 +60,7 @@ export class GlobalPool implements IWorkerPool { - // eslint-disable-next-line @typescript-eslint/no-floating-promises + // oxlint-disable-next-line typescript/no-floating-promises this.internalPool.terminateAllWorkers(); }, 0), ); diff --git a/packages/worker/src/internals/worker-runner/WorkerRunner.ts b/packages/worker/src/internals/worker-runner/WorkerRunner.ts index c9506d89..0009bace 100644 --- a/packages/worker/src/internals/worker-runner/WorkerRunner.ts +++ b/packages/worker/src/internals/worker-runner/WorkerRunner.ts @@ -23,7 +23,7 @@ export function runWorker( return; } const inputs = payload.source === 'main' ? payload.value : buildInputs(payload); - // eslint-disable-next-line @typescript-eslint/no-use-before-define + // oxlint-disable-next-line no-use-before-define wrapAndRunAsPromise(predicate, inputs).then( (output) => { const message: WorkerToMainThreadMessage = { status: WorkerToPoolMessageStatus.Success, output, runId }; @@ -51,7 +51,6 @@ function wrapAndRunAsPromise( try { return Promise.resolve(predicate(...inputs)); } catch (err) { - // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors return Promise.reject(err); } } diff --git a/packages/worker/test/e2e/__properties__/concurrentAssert.mjs b/packages/worker/test/e2e/__properties__/concurrentAssert.mjs index 200c7e33..8ce34273 100644 --- a/packages/worker/test/e2e/__properties__/concurrentAssert.mjs +++ b/packages/worker/test/e2e/__properties__/concurrentAssert.mjs @@ -38,7 +38,7 @@ export const readerAssert = property( // Wait answer const filenameAnswer = nextFilenameAnswer(); appendLog('reader', `Wait answer on ${filenameAnswer}`); - // eslint-disable-next-line no-empty + // oxlint-disable-next-line no-empty while (!existsSync(filenameAnswer)) {} appendLog('reader', `Answer found for ${filenameAnswer}`); rmSync(filenameAnswer); @@ -52,7 +52,7 @@ export const writerAssert = property( // Wait question const filenameQuestion = nextFilenameQuestion(); appendLog('writer', `Wait question on ${filenameQuestion}`); - // eslint-disable-next-line no-empty + // oxlint-disable-next-line no-empty while (!existsSync(filenameQuestion)) {} appendLog('writer', `Question found for ${filenameQuestion}`); rmSync(filenameQuestion); diff --git a/packages/worker/test/e2e/__properties__/unregistered.mjs b/packages/worker/test/e2e/__properties__/unregistered.mjs index 150c4d7f..9981d744 100644 --- a/packages/worker/test/e2e/__properties__/unregistered.mjs +++ b/packages/worker/test/e2e/__properties__/unregistered.mjs @@ -5,7 +5,7 @@ import { propertyFor } from '@fast-check/worker'; const property = propertyFor(pathToFileURL(import.meta.filename)); -// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types +// oxlint-disable-next-line typescript/explicit-module-boundary-types export const buildUnregisteredProperty = () => property(fc.integer({ min: -1000, max: 1000 }), fc.integer({ min: -1000, max: 1000 }), (_from, _to) => { return true; // success diff --git a/packages/worker/test/e2e/predicateIsolation.spec.ts b/packages/worker/test/e2e/predicateIsolation.spec.ts index 01e17006..d9d65562 100644 --- a/packages/worker/test/e2e/predicateIsolation.spec.ts +++ b/packages/worker/test/e2e/predicateIsolation.spec.ts @@ -67,7 +67,7 @@ if (isMainThread) { let previousLevel = null; const summaryLines = summary.split('\n').filter((line) => line.trim() !== ''); for (const summaryLine of summaryLines) { - // eslint-disable-next-line no-control-regex + // oxlint-disable-next-line no-control-regex const currentLevel = summaryLine.split(/\x1b\[32m\u221A\x1b\[0m|\x1b\[31m\xD7\x1b\[0m/)[0]; // split on success tick or error cross if (currentLevel !== previousLevel) { foundOne = true; @@ -103,7 +103,7 @@ if (isMainThread) { let previousLevel = null; const summaryLines = summary.split('\n').filter((line) => line.trim() !== ''); for (const summaryLine of summaryLines) { - // eslint-disable-next-line no-control-regex + // oxlint-disable-next-line no-control-regex const currentLevel = summaryLine.split(/\x1b\[32m\u221A\x1b\[0m|\x1b\[31m\xD7\x1b\[0m/)[0]; // split on success tick or error cross if (currentLevel !== previousLevel) { foundOne = true; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b6973267..9ee79f7a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11,15 +11,9 @@ importers: '@changesets/cli': specifier: ^2.30.0 version: 2.30.0(@types/node@24.12.2) - '@eslint/js': - specifier: ^10.0.1 - version: 10.0.1(eslint@10.2.0(jiti@1.21.7)) '@fast-check/packaged': specifier: workspace:* version: link:packages/packaged - '@typescript-eslint/utils': - specifier: ^8.58.2 - version: 8.58.2(eslint@10.2.0(jiti@1.21.7))(typescript@6.0.2) '@vitest/coverage-v8': specifier: ^4.0.18 version: 4.1.2(vitest@4.1.2(@types/node@24.12.2)(happy-dom@20.8.9)(vite@8.0.8(@types/node@24.12.2)(jiti@1.21.7)(terser@5.46.1)(yaml@2.8.3))) @@ -29,15 +23,12 @@ importers: cross-env: specifier: ^10.1.0 version: 10.1.0 - eslint: - specifier: ^10.2.0 - version: 10.2.0(jiti@1.21.7) - eslint-config-prettier: - specifier: ^10.1.8 - version: 10.1.8(eslint@10.2.0(jiti@1.21.7)) - globals: - specifier: ^17.5.0 - version: 17.5.0 + oxlint: + specifier: ^1.59.0 + version: 1.59.0(oxlint-tsgolint@0.20.0) + oxlint-tsgolint: + specifier: ^0.20.0 + version: 0.20.0 pkg-pr-new: specifier: ^0.0.66 version: 0.0.66 @@ -56,9 +47,6 @@ importers: typescript: specifier: ~6.0.2 version: 6.0.2 - typescript-eslint: - specifier: ^8.58.2 - version: 8.58.2(eslint@10.2.0(jiti@1.21.7))(typescript@6.0.2) vitest: specifier: ^4.1.0 version: 4.1.2(@types/node@24.12.2)(happy-dom@20.8.9)(vite@8.0.8(@types/node@24.12.2)(jiti@1.21.7)(terser@5.46.1)(yaml@2.8.3)) @@ -1792,45 +1780,6 @@ packages: '@epic-web/invariant@1.0.0': resolution: {integrity: sha512-lrTPqgvfFQtR/eY/qkIzp98OGdNJu0m5ji3q/nJI8v3SXkRKEnWiOxMmbvcSoAIzv/cGiuvRy57k4suKQSAdwA==} - '@eslint-community/eslint-utils@4.9.1': - resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - - '@eslint-community/regexpp@4.12.2': - resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - - '@eslint/config-array@0.23.5': - resolution: {integrity: sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - - '@eslint/config-helpers@0.5.5': - resolution: {integrity: sha512-eIJYKTCECbP/nsKaaruF6LW967mtbQbsw4JTtSVkUQc9MneSkbrgPJAbKl9nWr0ZeowV8BfsarBmPpBzGelA2w==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - - '@eslint/core@1.2.1': - resolution: {integrity: sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - - '@eslint/js@10.0.1': - resolution: {integrity: sha512-zeR9k5pd4gxjZ0abRoIaxdc7I3nDktoXZk2qOv9gCNWx3mVwEn32VRhyLaRsDiJjTs0xq/T8mfPtyuXu7GWBcA==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - peerDependencies: - eslint: ^10.0.0 - peerDependenciesMeta: - eslint: - optional: true - - '@eslint/object-schema@3.0.5': - resolution: {integrity: sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - - '@eslint/plugin-kit@0.7.1': - resolution: {integrity: sha512-rZAP3aVgB9ds9KOeUSL+zZ21hPmo8dh6fnIFwRQj5EAZl9gzR7wxYbYXYysAM8CTqGmUGyp2S4kUdV17MnGuWQ==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@gar/promise-retry@1.0.3': resolution: {integrity: sha512-GmzA9ckNokPypTg10pgpeHNQe7ph+iIKKmhKu3Ob9ANkswreCx7R3cKmY781K8QK3AqVL3xVh9A42JvIAbkkSA==} engines: {node: ^20.17.0 || >=22.9.0} @@ -1844,22 +1793,6 @@ packages: '@hapi/topo@5.1.0': resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} - '@humanfs/core@0.19.1': - resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} - engines: {node: '>=18.18.0'} - - '@humanfs/node@0.16.7': - resolution: {integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==} - engines: {node: '>=18.18.0'} - - '@humanwhocodes/module-importer@1.0.1': - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} - - '@humanwhocodes/retry@0.4.3': - resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} - engines: {node: '>=18.18'} - '@iconify/types@2.0.0': resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} @@ -2452,6 +2385,158 @@ packages: '@oxc-project/types@0.124.0': resolution: {integrity: sha512-VBFWMTBvHxS11Z5Lvlr3IWgrwhMTXV+Md+EQF0Xf60+wAdsGFTBx7X7K/hP4pi8N7dcm1RvcHwDxZ16Qx8keUg==} + '@oxlint-tsgolint/darwin-arm64@0.20.0': + resolution: {integrity: sha512-KKQcIHZHMxqpHUA1VXIbOG6chNCFkUWbQy6M+AFVtPKkA/3xAeJkJ3njoV66bfzwPHRcWQO+kcj5XqtbkjakoA==} + cpu: [arm64] + os: [darwin] + + '@oxlint-tsgolint/darwin-x64@0.20.0': + resolution: {integrity: sha512-7HeVMuclGfG+NLZi2ybY0T4fMI7/XxO/208rJk+zEIloKkVnlh11Wd241JMGwgNFXn+MLJbOqOfojDb2Dt4L1g==} + cpu: [x64] + os: [darwin] + + '@oxlint-tsgolint/linux-arm64@0.20.0': + resolution: {integrity: sha512-zxhUwz+WSxE6oWlZLK2z2ps9yC6ebmgoYmjAl0Oa48+GqkZ56NVgo+wb8DURNv6xrggzHStQxqQxe3mK51HZag==} + cpu: [arm64] + os: [linux] + + '@oxlint-tsgolint/linux-x64@0.20.0': + resolution: {integrity: sha512-/1l6FnahC9im8PK+Ekkx/V3yetO/PzZnJegE2FXcv/iXEhbeVxP/ouiTYcUQu9shT1FWJCSNti1VJHH+21Y1dg==} + cpu: [x64] + os: [linux] + + '@oxlint-tsgolint/win32-arm64@0.20.0': + resolution: {integrity: sha512-oPZ5Yz8sVdo7P/5q+i3IKeix31eFZ55JAPa1+RGPoe9PoaYVsdMvR6Jvib6YtrqoJnFPlg3fjEjlEPL8VBKYJA==} + cpu: [arm64] + os: [win32] + + '@oxlint-tsgolint/win32-x64@0.20.0': + resolution: {integrity: sha512-4stx8RHj3SP9vQyRF/yZbz5igtPvYMEUR8CUoha4BVNZihi39DpCR8qkU7lpjB5Ga1DRMo2pHaA4bdTOMaY4mw==} + cpu: [x64] + os: [win32] + + '@oxlint/binding-android-arm-eabi@1.59.0': + resolution: {integrity: sha512-etYDw/UaEv936AQUd/CRMBVd+e+XuuU6wC+VzOv1STvsTyZenLChepLWqLtnyTTp4YMlM22ypzogDDwqYxv5cg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [android] + + '@oxlint/binding-android-arm64@1.59.0': + resolution: {integrity: sha512-TgLc7XVLKH2a4h8j3vn1MDjfK33i9MY60f/bKhRGWyVzbk5LCZ4X01VZG7iHrMmi5vYbAp8//Ponigx03CLsdw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + + '@oxlint/binding-darwin-arm64@1.59.0': + resolution: {integrity: sha512-DXyFPf5ZKldMLloRHx/B9fsxsiTQomaw7cmEW3YIJko2HgCh+GUhp9gGYwHrqlLJPsEe3dYj9JebjX92D3j3AA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + + '@oxlint/binding-darwin-x64@1.59.0': + resolution: {integrity: sha512-LgvrsdgVLX1qWqIEmNsSmMXJhpAWdtUQ0M+oR0CySwi+9IHWyOGuIL8w8+u/kbZNMyZr4WUyYB5i0+D+AKgkLg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + + '@oxlint/binding-freebsd-x64@1.59.0': + resolution: {integrity: sha512-bOJhqX/ny4hrFuTPlyk8foSRx/vLRpxJh0jOOKN2NWW6FScXHPAA5rQbrwdQPcgGB5V8Ua51RS03fke8ssBcug==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + + '@oxlint/binding-linux-arm-gnueabihf@1.59.0': + resolution: {integrity: sha512-vVUXxYMF9trXCsz4m9H6U0IjehosVHxBzVgJUxly1uz4W1PdDyicaBnpC0KRXsHYretLVe+uS9pJy8iM57Kujw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxlint/binding-linux-arm-musleabihf@1.59.0': + resolution: {integrity: sha512-TULQW8YBPGRWg5yZpFPL54HLOnJ3/HiX6VenDPi6YfxB/jlItwSMFh3/hCeSNbh+DAMaE1Py0j5MOaivHkI/9Q==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxlint/binding-linux-arm64-gnu@1.59.0': + resolution: {integrity: sha512-Gt54Y4eqSgYJ90xipm24xeyaPV854706o/kiT8oZvUt3VDY7qqxdqyGqchMaujd87ib+/MXvnl9WkK8Cc1BExg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@oxlint/binding-linux-arm64-musl@1.59.0': + resolution: {integrity: sha512-3CtsKp7NFB3OfqQzbuAecrY7GIZeiv7AD+xutU4tefVQzlfmTI7/ygWLrvkzsDEjTlMq41rYHxgsn6Yh8tybmA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@oxlint/binding-linux-ppc64-gnu@1.59.0': + resolution: {integrity: sha512-K0diOpT3ncDmOfl9I1HuvpEsAuTxkts0VYwIv/w6Xiy9CdwyPBVX88Ga9l8VlGgMrwBMnSY4xIvVlVY/fkQk7Q==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@oxlint/binding-linux-riscv64-gnu@1.59.0': + resolution: {integrity: sha512-xAU7+QDU6kTJJ7mJLOGgo7oOjtAtkKyFZ0Yjdb5cEo3DiCCPFLvyr08rWiQh6evZ7RiUTf+o65NY/bqttzJiQQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@oxlint/binding-linux-riscv64-musl@1.59.0': + resolution: {integrity: sha512-KUmZmKlTTyauOnvUNVxK7G40sSSx0+w5l1UhaGsC6KPpOYHenx2oqJTnabmpLJicok7IC+3Y6fXAUOMyexaeJQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + libc: [musl] + + '@oxlint/binding-linux-s390x-gnu@1.59.0': + resolution: {integrity: sha512-4usRxC8gS0PGdkHnRmwJt/4zrQNZyk6vL0trCxwZSsAKM+OxhB8nKiR+mhjdBbl8lbMh2gc3bZpNN/ik8c4c2A==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@oxlint/binding-linux-x64-gnu@1.59.0': + resolution: {integrity: sha512-s/rNE2gDmbwAOOP493xk2X7M8LZfI1LJFSSW1+yanz3vuQCFPiHkx4GY+O1HuLUDtkzGlhtMrIcxxzyYLv308w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@oxlint/binding-linux-x64-musl@1.59.0': + resolution: {integrity: sha512-+yYj1udJa2UvvIUmEm0IcKgc0UlPMgz0nsSTvkPL2y6n0uU5LgIHSwVu4AHhrve6j9BpVSoRksnz8c9QcvITJA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [musl] + + '@oxlint/binding-openharmony-arm64@1.59.0': + resolution: {integrity: sha512-bUplUb48LYsB3hHlQXP2ZMOenpieWoOyppLAnnAhuPag3MGPnt+7caxE3w/Vl9wpQsTA3gzLntQi9rxWrs7Xqg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + + '@oxlint/binding-win32-arm64-msvc@1.59.0': + resolution: {integrity: sha512-/HLsLuz42rWl7h7ePdmMTpHm2HIDmPtcEMYgm5BBEHiEiuNOrzMaUpd2z7UnNni5LGN9obJy2YoAYBLXQwazrA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + + '@oxlint/binding-win32-ia32-msvc@1.59.0': + resolution: {integrity: sha512-rUPy+JnanpPwV/aJCPnxAD1fW50+XPI0VkWr7f0vEbqcdsS8NpB24Rw6RsS7SdpFv8Dw+8ugCwao5nCFbqOUSg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ia32] + os: [win32] + + '@oxlint/binding-win32-x64-msvc@1.59.0': + resolution: {integrity: sha512-xkE7puteDS/vUyRngLXW0t8WgdWoS/tfxXjhP/P7SMqPDx+hs44SpssO3h3qmTqECYEuXBUPzcAw5257Ka+ofA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + '@paralleldrive/cuid2@2.3.1': resolution: {integrity: sha512-XO7cAxhnTZl0Yggq6jOgjiOHhbgcO4NqFqwSmQpjK3b6TEE6Uj/jfSk6wzYyemh3+I0sHirKSetjQwn5cZktFw==} @@ -3295,9 +3380,6 @@ packages: '@types/eslint@9.6.1': resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} - '@types/esrecurse@4.3.1': - resolution: {integrity: sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==} - '@types/estree-jsx@1.0.5': resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} @@ -3499,65 +3581,6 @@ packages: '@types/yargs@17.0.35': resolution: {integrity: sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==} - '@typescript-eslint/eslint-plugin@8.58.2': - resolution: {integrity: sha512-aC2qc5thQahutKjP+cl8cgN9DWe3ZUqVko30CMSZHnFEHyhOYoZSzkGtAI2mcwZ38xeImDucI4dnqsHiOYuuCw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - '@typescript-eslint/parser': ^8.58.2 - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.1.0' - - '@typescript-eslint/parser@8.58.2': - resolution: {integrity: sha512-/Zb/xaIDfxeJnvishjGdcR4jmr7S+bda8PKNhRGdljDM+elXhlvN0FyPSsMnLmJUrVG9aPO6dof80wjMawsASg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.1.0' - - '@typescript-eslint/project-service@8.58.2': - resolution: {integrity: sha512-Cq6UfpZZk15+r87BkIh5rDpi38W4b+Sjnb8wQCPPDDweS/LRCFjCyViEbzHk5Ck3f2QDfgmlxqSa7S7clDtlfg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.1.0' - - '@typescript-eslint/scope-manager@8.58.2': - resolution: {integrity: sha512-SgmyvDPexWETQek+qzZnrG6844IaO02UVyOLhI4wpo82dpZJY9+6YZCKAMFzXb7qhx37mFK1QcPQ18tud+vo6Q==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/tsconfig-utils@8.58.2': - resolution: {integrity: sha512-3SR+RukipDvkkKp/d0jP0dyzuls3DbGmwDpVEc5wqk5f38KFThakqAAO0XMirWAE+kT00oTauTbzMFGPoAzB0A==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.1.0' - - '@typescript-eslint/type-utils@8.58.2': - resolution: {integrity: sha512-Z7EloNR/B389FvabdGeTo2XMs4W9TjtPiO9DAsmT0yom0bwlPyRjkJ1uCdW1DvrrrYP50AJZ9Xc3sByZA9+dcg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.1.0' - - '@typescript-eslint/types@8.58.2': - resolution: {integrity: sha512-9TukXyATBQf/Jq9AMQXfvurk+G5R2MwfqQGDR2GzGz28HvY/lXNKGhkY+6IOubwcquikWk5cjlgPvD2uAA7htQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/typescript-estree@8.58.2': - resolution: {integrity: sha512-ELGuoofuhhoCvNbQjFFiobFcGgcDCEm0ThWdmO4Z0UzLqPXS3KFvnEZ+SHewwOYHjM09tkzOWXNTv9u6Gqtyuw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.1.0' - - '@typescript-eslint/utils@8.58.2': - resolution: {integrity: sha512-QZfjHNEzPY8+l0+fIXMvuQ2sJlplB4zgDZvA+NmvZsZv3EQwOcc1DuIU1VJUTWZ/RKouBMhDyNaBMx4sWvrzRA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.1.0' - - '@typescript-eslint/visitor-keys@8.58.2': - resolution: {integrity: sha512-f1WO2Lx8a9t8DARmcWAUPJbu0G20bJlj8L4z72K00TMeJAoyLr/tHhI/pzYBLrR4dXWkcxO1cWYZEOX8DKHTqA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} @@ -4913,9 +4936,6 @@ packages: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} engines: {node: '>=4.0.0'} - deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - deepmerge@4.3.1: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} @@ -5211,55 +5231,19 @@ packages: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} - eslint-config-prettier@10.1.8: - resolution: {integrity: sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' - eslint-scope@5.1.1: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'} - eslint-scope@9.1.2: - resolution: {integrity: sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - - eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint-visitor-keys@5.0.1: - resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - - eslint@10.2.0: - resolution: {integrity: sha512-+L0vBFYGIpSNIt/KWTpFonPrqYvgKw1eUI5Vn7mEogrQcWtWYtNQ7dNqC+px/J0idT3BAkiWrhfS7k+Tum8TUA==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - hasBin: true - peerDependencies: - jiti: '*' - peerDependenciesMeta: - jiti: - optional: true - esm@3.2.25: resolution: {integrity: sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==} engines: {node: '>=6'} - espree@11.2.0: - resolution: {integrity: sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} hasBin: true - esquery@1.7.0: - resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} - engines: {node: '>=0.10'} - esrecurse@4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} @@ -5382,9 +5366,6 @@ packages: fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - fast-safe-stringify@2.1.1: resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} @@ -5425,10 +5406,6 @@ packages: resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==} engines: {node: '>=18'} - file-entry-cache@8.0.0: - resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} - engines: {node: '>=16.0.0'} - file-loader@6.2.0: resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==} engines: {node: '>= 10.13.0'} @@ -5473,25 +5450,14 @@ packages: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} - find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} - find-up@6.3.0: resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - flat-cache@4.0.1: - resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} - engines: {node: '>=16'} - flat@5.0.2: resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} hasBin: true - flatted@3.4.2: - resolution: {integrity: sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==} - follow-redirects@1.15.11: resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==} engines: {node: '>=4.0'} @@ -5666,10 +5632,6 @@ packages: resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} engines: {node: '>=10'} - globals@17.5.0: - resolution: {integrity: sha512-qoV+HK2yFl/366t2/Cb3+xxPUo5BuMynomoDmiaZBIdbs+0pYbjfZU+twLhGKp4uCZ/+NbtpVepH5bGCxRyy2g==} - engines: {node: '>=18'} - globalthis@1.0.4: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} @@ -6516,9 +6478,6 @@ packages: json-schema@0.4.0: resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} - json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - json-stringify-nice@1.1.4: resolution: {integrity: sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==} @@ -6586,10 +6545,6 @@ packages: resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} engines: {node: '>=6'} - levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} - lightningcss-android-arm64@1.32.0: resolution: {integrity: sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==} engines: {node: '>= 12.0.0'} @@ -6690,10 +6645,6 @@ packages: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} - locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} - locate-path@7.2.0: resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -7356,10 +7307,6 @@ packages: resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} hasBin: true - optionator@0.9.4: - resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} - engines: {node: '>= 0.8.0'} - os-tmpdir@1.0.2: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} engines: {node: '>=0.10.0'} @@ -7371,6 +7318,20 @@ packages: resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} engines: {node: '>= 0.4'} + oxlint-tsgolint@0.20.0: + resolution: {integrity: sha512-/Uc9TQyN1l8w9QNvXtVHYtz+SzDJHKpb5X0UnHodl0BVzijUPk0LPlDOHAvogd1UI+iy9ZSF6gQxEqfzUxCULQ==} + hasBin: true + + oxlint@1.59.0: + resolution: {integrity: sha512-0xBLeGGjP4vD9pygRo8iuOkOzEU1MqOnfiOl7KYezL/QvWL8NUg6n03zXc7ZVqltiOpUxBk2zgHI3PnRIEdAvw==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + oxlint-tsgolint: '>=0.18.0' + peerDependenciesMeta: + oxlint-tsgolint: + optional: true + p-cancelable@3.0.0: resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==} engines: {node: '>=12.20'} @@ -7399,10 +7360,6 @@ packages: resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} engines: {node: '>=8'} - p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} - p-locate@6.0.0: resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -8023,10 +7980,6 @@ packages: resolution: {integrity: sha512-7a70Nsot+EMX9fFU3064K/kdHWZqGVY+BADLyXc8Dfv+mTLLVl6JzJpPaCZ2kQL9gIJvKXSLMHhqdRRjwQeFtw==} engines: {node: ^10 || ^12 || >=14} - prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - prettier@2.8.8: resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} engines: {node: '>=10.13.0'} @@ -9087,12 +9040,6 @@ packages: trough@2.2.0: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - ts-api-utils@2.5.0: - resolution: {integrity: sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==} - engines: {node: '>=18.12'} - peerDependencies: - typescript: '>=4.8.4' - ts-dedent@2.2.0: resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} engines: {node: '>=6.10'} @@ -9115,10 +9062,6 @@ packages: resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'} - type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} - type-detect@4.0.8: resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} engines: {node: '>=4'} @@ -9181,13 +9124,6 @@ packages: peerDependencies: typescript: 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x || 5.7.x || 5.8.x || 5.9.x || 6.0.x - typescript-eslint@8.58.2: - resolution: {integrity: sha512-V8iSng9mRbdZjl54VJ9NKr6ZB+dW0J3TzRXRGcSbLIej9jV86ZRtlYeTKDR/QLxXykocJ5icNzbsl2+5TzIvcQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.1.0' - typescript@5.9.3: resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} engines: {node: '>=14.17'} @@ -9613,10 +9549,6 @@ packages: wildcard@2.0.1: resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} - word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} - engines: {node: '>=0.10.0'} - workbox-background-sync@7.4.0: resolution: {integrity: sha512-8CB9OxKAgKZKyNMwfGZ1XESx89GryWTfI+V5yEj8sHjFH8MFelUwYXEyldEK6M6oKMmn807GoJFUEA1sC4XS9w==} @@ -12165,40 +12097,6 @@ snapshots: '@epic-web/invariant@1.0.0': {} - '@eslint-community/eslint-utils@4.9.1(eslint@10.2.0(jiti@1.21.7))': - dependencies: - eslint: 10.2.0(jiti@1.21.7) - eslint-visitor-keys: 3.4.3 - - '@eslint-community/regexpp@4.12.2': {} - - '@eslint/config-array@0.23.5': - dependencies: - '@eslint/object-schema': 3.0.5 - debug: 4.4.3 - minimatch: 10.2.5 - transitivePeerDependencies: - - supports-color - - '@eslint/config-helpers@0.5.5': - dependencies: - '@eslint/core': 1.2.1 - - '@eslint/core@1.2.1': - dependencies: - '@types/json-schema': 7.0.15 - - '@eslint/js@10.0.1(eslint@10.2.0(jiti@1.21.7))': - optionalDependencies: - eslint: 10.2.0(jiti@1.21.7) - - '@eslint/object-schema@3.0.5': {} - - '@eslint/plugin-kit@0.7.1': - dependencies: - '@eslint/core': 1.2.1 - levn: 0.4.1 - '@gar/promise-retry@1.0.3': {} '@gerrit0/mini-shiki@3.23.0': @@ -12215,17 +12113,6 @@ snapshots: dependencies: '@hapi/hoek': 9.3.0 - '@humanfs/core@0.19.1': {} - - '@humanfs/node@0.16.7': - dependencies: - '@humanfs/core': 0.19.1 - '@humanwhocodes/retry': 0.4.3 - - '@humanwhocodes/module-importer@1.0.1': {} - - '@humanwhocodes/retry@0.4.3': {} - '@iconify/types@2.0.0': {} '@iconify/utils@3.1.0': @@ -13204,6 +13091,81 @@ snapshots: '@oxc-project/types@0.124.0': {} + '@oxlint-tsgolint/darwin-arm64@0.20.0': + optional: true + + '@oxlint-tsgolint/darwin-x64@0.20.0': + optional: true + + '@oxlint-tsgolint/linux-arm64@0.20.0': + optional: true + + '@oxlint-tsgolint/linux-x64@0.20.0': + optional: true + + '@oxlint-tsgolint/win32-arm64@0.20.0': + optional: true + + '@oxlint-tsgolint/win32-x64@0.20.0': + optional: true + + '@oxlint/binding-android-arm-eabi@1.59.0': + optional: true + + '@oxlint/binding-android-arm64@1.59.0': + optional: true + + '@oxlint/binding-darwin-arm64@1.59.0': + optional: true + + '@oxlint/binding-darwin-x64@1.59.0': + optional: true + + '@oxlint/binding-freebsd-x64@1.59.0': + optional: true + + '@oxlint/binding-linux-arm-gnueabihf@1.59.0': + optional: true + + '@oxlint/binding-linux-arm-musleabihf@1.59.0': + optional: true + + '@oxlint/binding-linux-arm64-gnu@1.59.0': + optional: true + + '@oxlint/binding-linux-arm64-musl@1.59.0': + optional: true + + '@oxlint/binding-linux-ppc64-gnu@1.59.0': + optional: true + + '@oxlint/binding-linux-riscv64-gnu@1.59.0': + optional: true + + '@oxlint/binding-linux-riscv64-musl@1.59.0': + optional: true + + '@oxlint/binding-linux-s390x-gnu@1.59.0': + optional: true + + '@oxlint/binding-linux-x64-gnu@1.59.0': + optional: true + + '@oxlint/binding-linux-x64-musl@1.59.0': + optional: true + + '@oxlint/binding-openharmony-arm64@1.59.0': + optional: true + + '@oxlint/binding-win32-arm64-msvc@1.59.0': + optional: true + + '@oxlint/binding-win32-ia32-msvc@1.59.0': + optional: true + + '@oxlint/binding-win32-x64-msvc@1.59.0': + optional: true + '@paralleldrive/cuid2@2.3.1': dependencies: '@noble/hashes': 1.8.0 @@ -14060,8 +14022,6 @@ snapshots: '@types/estree': 1.0.8 '@types/json-schema': 7.0.15 - '@types/esrecurse@4.3.1': {} - '@types/estree-jsx@1.0.5': dependencies: '@types/estree': 1.0.8 @@ -14304,97 +14264,6 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@8.58.2(@typescript-eslint/parser@8.58.2(eslint@10.2.0(jiti@1.21.7))(typescript@6.0.2))(eslint@10.2.0(jiti@1.21.7))(typescript@6.0.2)': - dependencies: - '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.58.2(eslint@10.2.0(jiti@1.21.7))(typescript@6.0.2) - '@typescript-eslint/scope-manager': 8.58.2 - '@typescript-eslint/type-utils': 8.58.2(eslint@10.2.0(jiti@1.21.7))(typescript@6.0.2) - '@typescript-eslint/utils': 8.58.2(eslint@10.2.0(jiti@1.21.7))(typescript@6.0.2) - '@typescript-eslint/visitor-keys': 8.58.2 - eslint: 10.2.0(jiti@1.21.7) - ignore: 7.0.5 - natural-compare: 1.4.0 - ts-api-utils: 2.5.0(typescript@6.0.2) - typescript: 6.0.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@8.58.2(eslint@10.2.0(jiti@1.21.7))(typescript@6.0.2)': - dependencies: - '@typescript-eslint/scope-manager': 8.58.2 - '@typescript-eslint/types': 8.58.2 - '@typescript-eslint/typescript-estree': 8.58.2(typescript@6.0.2) - '@typescript-eslint/visitor-keys': 8.58.2 - debug: 4.4.3 - eslint: 10.2.0(jiti@1.21.7) - typescript: 6.0.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/project-service@8.58.2(typescript@6.0.2)': - dependencies: - '@typescript-eslint/tsconfig-utils': 8.58.2(typescript@6.0.2) - '@typescript-eslint/types': 8.58.2 - debug: 4.4.3 - typescript: 6.0.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/scope-manager@8.58.2': - dependencies: - '@typescript-eslint/types': 8.58.2 - '@typescript-eslint/visitor-keys': 8.58.2 - - '@typescript-eslint/tsconfig-utils@8.58.2(typescript@6.0.2)': - dependencies: - typescript: 6.0.2 - - '@typescript-eslint/type-utils@8.58.2(eslint@10.2.0(jiti@1.21.7))(typescript@6.0.2)': - dependencies: - '@typescript-eslint/types': 8.58.2 - '@typescript-eslint/typescript-estree': 8.58.2(typescript@6.0.2) - '@typescript-eslint/utils': 8.58.2(eslint@10.2.0(jiti@1.21.7))(typescript@6.0.2) - debug: 4.4.3 - eslint: 10.2.0(jiti@1.21.7) - ts-api-utils: 2.5.0(typescript@6.0.2) - typescript: 6.0.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/types@8.58.2': {} - - '@typescript-eslint/typescript-estree@8.58.2(typescript@6.0.2)': - dependencies: - '@typescript-eslint/project-service': 8.58.2(typescript@6.0.2) - '@typescript-eslint/tsconfig-utils': 8.58.2(typescript@6.0.2) - '@typescript-eslint/types': 8.58.2 - '@typescript-eslint/visitor-keys': 8.58.2 - debug: 4.4.3 - minimatch: 10.2.5 - semver: 7.7.4 - tinyglobby: 0.2.16 - ts-api-utils: 2.5.0(typescript@6.0.2) - typescript: 6.0.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@8.58.2(eslint@10.2.0(jiti@1.21.7))(typescript@6.0.2)': - dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.0(jiti@1.21.7)) - '@typescript-eslint/scope-manager': 8.58.2 - '@typescript-eslint/types': 8.58.2 - '@typescript-eslint/typescript-estree': 8.58.2(typescript@6.0.2) - eslint: 10.2.0(jiti@1.21.7) - typescript: 6.0.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/visitor-keys@8.58.2': - dependencies: - '@typescript-eslint/types': 8.58.2 - eslint-visitor-keys: 5.0.1 - '@ungap/structured-clone@1.3.0': {} '@unrs/resolver-binding-android-arm-eabi@1.11.1': @@ -15890,8 +15759,6 @@ snapshots: deep-extend@0.6.0: {} - deep-is@0.1.4: {} - deepmerge@4.3.1: {} default-browser-id@5.0.1: {} @@ -16201,77 +16068,15 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-config-prettier@10.1.8(eslint@10.2.0(jiti@1.21.7)): - dependencies: - eslint: 10.2.0(jiti@1.21.7) - eslint-scope@5.1.1: dependencies: esrecurse: 4.3.0 estraverse: 4.3.0 - eslint-scope@9.1.2: - dependencies: - '@types/esrecurse': 4.3.1 - '@types/estree': 1.0.8 - esrecurse: 4.3.0 - estraverse: 5.3.0 - - eslint-visitor-keys@3.4.3: {} - - eslint-visitor-keys@5.0.1: {} - - eslint@10.2.0(jiti@1.21.7): - dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.0(jiti@1.21.7)) - '@eslint-community/regexpp': 4.12.2 - '@eslint/config-array': 0.23.5 - '@eslint/config-helpers': 0.5.5 - '@eslint/core': 1.2.1 - '@eslint/plugin-kit': 0.7.1 - '@humanfs/node': 0.16.7 - '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.4.3 - '@types/estree': 1.0.8 - ajv: 6.14.0 - cross-spawn: 7.0.6 - debug: 4.4.3 - escape-string-regexp: 4.0.0 - eslint-scope: 9.1.2 - eslint-visitor-keys: 5.0.1 - espree: 11.2.0 - esquery: 1.7.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 8.0.0 - find-up: 5.0.0 - glob-parent: 6.0.2 - ignore: 5.3.2 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - json-stable-stringify-without-jsonify: 1.0.1 - minimatch: 10.2.5 - natural-compare: 1.4.0 - optionator: 0.9.4 - optionalDependencies: - jiti: 1.21.7 - transitivePeerDependencies: - - supports-color - esm@3.2.25: {} - espree@11.2.0: - dependencies: - acorn: 8.16.0 - acorn-jsx: 5.3.2(acorn@8.16.0) - eslint-visitor-keys: 5.0.1 - esprima@4.0.1: {} - esquery@1.7.0: - dependencies: - estraverse: 5.3.0 - esrecurse@4.3.0: dependencies: estraverse: 5.3.0 @@ -16462,8 +16267,6 @@ snapshots: fast-json-stable-stringify@2.1.0: {} - fast-levenshtein@2.0.6: {} - fast-safe-stringify@2.1.1: {} fast-uri@3.1.0: {} @@ -16500,10 +16303,6 @@ snapshots: dependencies: is-unicode-supported: 2.1.0 - file-entry-cache@8.0.0: - dependencies: - flat-cache: 4.0.1 - file-loader@6.2.0(webpack@5.105.4(@swc/core@1.15.21)): dependencies: loader-utils: 2.0.4 @@ -16566,25 +16365,13 @@ snapshots: locate-path: 5.0.0 path-exists: 4.0.0 - find-up@5.0.0: - dependencies: - locate-path: 6.0.0 - path-exists: 4.0.0 - find-up@6.3.0: dependencies: locate-path: 7.2.0 path-exists: 5.0.0 - flat-cache@4.0.1: - dependencies: - flatted: 3.4.2 - keyv: 4.5.4 - flat@5.0.2: {} - flatted@3.4.2: {} - follow-redirects@1.15.11: {} for-each@0.3.5: @@ -16769,8 +16556,6 @@ snapshots: dependencies: ini: 2.0.0 - globals@17.5.0: {} - globalthis@1.0.4: dependencies: define-properties: 1.2.1 @@ -17918,8 +17703,6 @@ snapshots: json-schema@0.4.0: {} - json-stable-stringify-without-jsonify@1.0.1: {} - json-stringify-nice@1.1.4: {} json5@2.2.3: {} @@ -17979,11 +17762,6 @@ snapshots: leven@3.1.0: {} - levn@0.4.1: - dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 - lightningcss-android-arm64@1.32.0: optional: true @@ -18055,10 +17833,6 @@ snapshots: dependencies: p-locate: 4.1.0 - locate-path@6.0.0: - dependencies: - p-locate: 5.0.0 - locate-path@7.2.0: dependencies: p-locate: 6.0.0 @@ -19019,15 +18793,6 @@ snapshots: opener@1.5.2: {} - optionator@0.9.4: - 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.5 - os-tmpdir@1.0.2: {} outdent@0.5.0: {} @@ -19038,6 +18803,38 @@ snapshots: object-keys: 1.1.1 safe-push-apply: 1.0.0 + oxlint-tsgolint@0.20.0: + optionalDependencies: + '@oxlint-tsgolint/darwin-arm64': 0.20.0 + '@oxlint-tsgolint/darwin-x64': 0.20.0 + '@oxlint-tsgolint/linux-arm64': 0.20.0 + '@oxlint-tsgolint/linux-x64': 0.20.0 + '@oxlint-tsgolint/win32-arm64': 0.20.0 + '@oxlint-tsgolint/win32-x64': 0.20.0 + + oxlint@1.59.0(oxlint-tsgolint@0.20.0): + optionalDependencies: + '@oxlint/binding-android-arm-eabi': 1.59.0 + '@oxlint/binding-android-arm64': 1.59.0 + '@oxlint/binding-darwin-arm64': 1.59.0 + '@oxlint/binding-darwin-x64': 1.59.0 + '@oxlint/binding-freebsd-x64': 1.59.0 + '@oxlint/binding-linux-arm-gnueabihf': 1.59.0 + '@oxlint/binding-linux-arm-musleabihf': 1.59.0 + '@oxlint/binding-linux-arm64-gnu': 1.59.0 + '@oxlint/binding-linux-arm64-musl': 1.59.0 + '@oxlint/binding-linux-ppc64-gnu': 1.59.0 + '@oxlint/binding-linux-riscv64-gnu': 1.59.0 + '@oxlint/binding-linux-riscv64-musl': 1.59.0 + '@oxlint/binding-linux-s390x-gnu': 1.59.0 + '@oxlint/binding-linux-x64-gnu': 1.59.0 + '@oxlint/binding-linux-x64-musl': 1.59.0 + '@oxlint/binding-openharmony-arm64': 1.59.0 + '@oxlint/binding-win32-arm64-msvc': 1.59.0 + '@oxlint/binding-win32-ia32-msvc': 1.59.0 + '@oxlint/binding-win32-x64-msvc': 1.59.0 + oxlint-tsgolint: 0.20.0 + p-cancelable@3.0.0: {} p-filter@2.1.0: @@ -19062,10 +18859,6 @@ snapshots: dependencies: p-limit: 2.3.0 - p-locate@5.0.0: - dependencies: - p-limit: 3.1.0 - p-locate@6.0.0: dependencies: p-limit: 4.0.0 @@ -19748,8 +19541,6 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 - prelude-ls@1.2.1: {} - prettier@2.8.8: {} prettier@3.8.1: {} @@ -20984,10 +20775,6 @@ snapshots: trough@2.2.0: {} - ts-api-utils@2.5.0(typescript@6.0.2): - dependencies: - typescript: 6.0.2 - ts-dedent@2.2.0: {} tslib@1.14.1: {} @@ -21008,10 +20795,6 @@ snapshots: tunnel@0.0.6: {} - type-check@0.4.0: - dependencies: - prelude-ls: 1.2.1 - type-detect@4.0.8: {} type-detect@4.1.0: {} @@ -21083,17 +20866,6 @@ snapshots: typescript: 6.0.2 yaml: 2.8.3 - typescript-eslint@8.58.2(eslint@10.2.0(jiti@1.21.7))(typescript@6.0.2): - dependencies: - '@typescript-eslint/eslint-plugin': 8.58.2(@typescript-eslint/parser@8.58.2(eslint@10.2.0(jiti@1.21.7))(typescript@6.0.2))(eslint@10.2.0(jiti@1.21.7))(typescript@6.0.2) - '@typescript-eslint/parser': 8.58.2(eslint@10.2.0(jiti@1.21.7))(typescript@6.0.2) - '@typescript-eslint/typescript-estree': 8.58.2(typescript@6.0.2) - '@typescript-eslint/utils': 8.58.2(eslint@10.2.0(jiti@1.21.7))(typescript@6.0.2) - eslint: 10.2.0(jiti@1.21.7) - typescript: 6.0.2 - transitivePeerDependencies: - - supports-color - typescript@5.9.3: {} typescript@6.0.2: {} @@ -21585,8 +21357,6 @@ snapshots: wildcard@2.0.1: {} - word-wrap@1.2.5: {} - workbox-background-sync@7.4.0: dependencies: idb: 7.1.1 -- 2.51.2