diff --git a/.chronus/changes/migrate-to-oxlint-2026-6-11-14-15-0.md b/.chronus/changes/migrate-to-oxlint-2026-6-11-14-15-0.md new file mode 100644 index 00000000000..518b11f1a41 --- /dev/null +++ b/.chronus/changes/migrate-to-oxlint-2026-6-11-14-15-0.md @@ -0,0 +1,33 @@ +--- +changeKind: internal +packages: + - "@typespec/asset-emitter" + - "@typespec/bundler" + - "@typespec/compiler" + - "@typespec/emitter-framework" + - "@typespec/events" + - "@typespec/html-program-viewer" + - "@typespec/http-canonicalization" + - "@typespec/http-client-js" + - "@typespec/http-client" + - "@typespec/http-server-csharp" + - "@typespec/http-server-js" + - "@typespec/http" + - "@typespec/internal-build-utils" + - "@typespec/json-schema" + - "@typespec/library-linter" + - "@typespec/mutator-framework" + - "@typespec/openapi" + - "@typespec/openapi3" + - "@typespec/playground" + - "@typespec/protobuf" + - "@typespec/rest" + - "@typespec/sse" + - "@typespec/streams" + - "tmlanguage-generator" + - "@typespec/tspd" + - "@typespec/versioning" + - "@typespec/xml" +--- + +Migrate linting from ESLint to oxlint. diff --git a/.chronus/config.yaml b/.chronus/config.yaml index 06dad2b4c85..39eb1f5dd5b 100644 --- a/.chronus/config.yaml +++ b/.chronus/config.yaml @@ -51,7 +51,6 @@ versionPolicies: - "@typespec/versioning" - "@typespec/rest" - "@typespec/protobuf" - - "@typespec/eslint-plugin" - "@typespec/html-program-viewer" - "@typespec/internal-build-utils" - "typespec-vs" diff --git a/.github/workflows/consistency.yml b/.github/workflows/consistency.yml index 91675258f64..81494fed9cf 100644 --- a/.github/workflows/consistency.yml +++ b/.github/workflows/consistency.yml @@ -100,9 +100,6 @@ jobs: - run: pnpm install name: Install dependencies - - run: pnpm --filter="@typespec/eslint-plugin..." run build - name: Build prettier plugin - - run: pnpm run lint name: Lint diff --git a/.vscode/extensions.json b/.vscode/extensions.json index feb88bb966e..b28cc8334d2 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,6 +1,6 @@ { "recommendations": [ - "dbaeumer.vscode-eslint", + "oxc.oxc-vscode", "esbenp.prettier-vscode", "streetsidesoftware.code-spell-checker", "astro-build.astro-vscode", diff --git a/cspell.yaml b/cspell.yaml index d2e086c1875..8a799b93f58 100644 --- a/cspell.yaml +++ b/cspell.yaml @@ -199,6 +199,7 @@ words: - onigasm - onwarn - openapi + - oxlint - openapiv - Packument - Perfolizer diff --git a/eslint.config.js b/eslint.config.js deleted file mode 100644 index 3c82979a9e2..00000000000 --- a/eslint.config.js +++ /dev/null @@ -1,176 +0,0 @@ -// @ts-check -import eslint from "@eslint/js"; -import vitest from "@vitest/eslint-plugin"; -import reactHooks from "eslint-plugin-react-hooks"; -import unicorn from "eslint-plugin-unicorn"; -import { defineConfig } from "eslint/config"; -import tsEslint from "typescript-eslint"; - -/** Config that will apply to all files */ -const allFilesConfig = defineConfig({ - plugins: { - unicorn, - }, - rules: { - /** - * Typescript plugin overrides - */ - "@typescript-eslint/no-non-null-assertion": "off", - "@typescript-eslint/no-explicit-any": "off", - "@typescript-eslint/no-inferrable-types": "off", - "@typescript-eslint/no-empty-function": "off", - "@typescript-eslint/no-empty-interface": "off", - "@typescript-eslint/no-empty-object-type": "off", - "@typescript-eslint/no-unused-vars": [ - "warn", - { - varsIgnorePattern: "^_", - argsIgnorePattern: ".*", - ignoreRestSiblings: true, - caughtErrorsIgnorePattern: ".*", - }, - ], - - // This rule is bugged https://github.com/typescript-eslint/typescript-eslint/issues/6538 - "@typescript-eslint/no-misused-promises": "off", - "@typescript-eslint/no-unused-expressions": [ - "warn", - { allowShortCircuit: true, allowTernary: true }, - ], - - /** - * Unicorn - */ - "unicorn/filename-case": ["error", { case: "kebabCase" }], - - /** - * Core - */ - "no-inner-declarations": "off", - "no-empty": "off", - "no-constant-condition": "off", - "no-case-declarations": "off", - "no-ex-assign": "off", - "no-undef": "off", - "prefer-const": [ - "warn", - { - destructuring: "all", - }, - ], - eqeqeq: ["warn", "always", { null: "ignore" }], - - // Do not want console.log left from debugging or using console.log for logging. Use the program logger. - "no-console": "warn", - - // Symbols should have a description so it can be serialized. - "symbol-description": "warn", - }, -}); - -/** Config that will apply to all typescript files only - * @param {string} root - */ -export function getTypeScriptProjectRules(root) { - return defineConfig({ - files: [ - "**/packages/*/src/**/*.ts", - "**/packages/*/src/**/*.tsx", - "**/packages/*/emitter/src/**/*.ts", - ], - ignores: ["**/packages/http-client-csharp/**/*", "**/packages/http-client-python/**/*"], // Ignore isolated modules - plugins: {}, - languageOptions: { - parserOptions: { - projectService: { - allowDefaultProject: ["packages/*/vitest.config.ts"], - }, - tsconfigRootDir: root, - }, - }, - rules: { - // Only put rules here that need typescript project information - "@typescript-eslint/no-floating-promises": "error", - "@typescript-eslint/no-deprecated": "warn", - }, - }); -} - -/** Config that will apply to all test files only */ -const testFilesConfig = defineConfig({ - /** - * Test files specific rules - */ - files: ["**/*.test.ts"], - plugins: { vitest }, - rules: { - "vitest/no-focused-tests": "warn", - "vitest/no-identical-title": "error", - "vitest/no-commented-out-tests": "warn", - "vitest/no-import-node-test": "warn", - "vitest/require-local-test-context-for-concurrent-snapshots": "warn", - "vitest/valid-describe-callback": "warn", - "vitest/valid-expect": "warn", - "vitest/consistent-test-it": ["warn", { fn: "it" }], - "vitest/no-done-callback": ["warn"], - "vitest/no-duplicate-hooks": ["warn"], - "@typescript-eslint/no-non-null-asserted-optional-chain": "off", - }, -}); - -const jsxFilesConfig = defineConfig({ - files: ["**/*.tsx"], - // @ts-expect-error --- plugins typing issue - plugins: { "react-hooks": reactHooks }, - // Exclude need **/ to make sure this can be reused in typespec-azure - ignores: [ - "**/packages/emitter-framework/src/**/*", - "**/packages/http-client-js/**/*", - "**/packages/http-server-csharp/**/*", - ], - rules: { - "react-hooks/rules-of-hooks": "error", - "react-hooks/exhaustive-deps": "warn", - }, -}); - -export const TypeSpecCommonEslintConfigs = [ - eslint.configs.recommended, - ...tsEslint.configs.recommended, - ...allFilesConfig, - ...jsxFilesConfig, - ...testFilesConfig, -]; - -export default defineConfig( - { - ignores: [ - "**/dist/**/*", - "**/dist-test/**/*", - "**/.temp/**/*", - "**/temp/**/*", - "**/generated-defs/*", - "**/__snapshots__/*", - "**/.astro/*", - "**/website/build/**/*", - "**/.astro/**/*", - "**/.docusaurus/**/*", - "website/src/assets/**/*", - "packages/compiler/templates/**/*", // Ignore the templates which might have invalid code and not follow exactly our rules. - "packages/typespec-vscode/templates/**/*", // Ignore the templates which might have invalid code and not follow exactly our rules. - "packages/http-client-js/test/e2e/generated", // Ignore the generated http client - "packages/http-client-js/sample/output/**/*", // Ignore the generated http client - "packages/http-server-js/test/e2e/generated", // Ignore the generated http server - "**/venv/**/*", // Ignore python virtual env - "**/.vscode-test-web/**/*", // Ignore VSCode test web project - "packages/typespec-vscode/swagger-ui/swagger-ui*", // Ignore swagger-ui-dist files - // TODO: enable - "**/.scripts/**/*", - "eng/tsp-core/scripts/**/*", - "eng/common/scripts/**/*", - "packages/*/scripts/**/*", - ], - }, - ...TypeSpecCommonEslintConfigs, - ...getTypeScriptProjectRules(import.meta.dirname), -); diff --git a/oxlint.config.ts b/oxlint.config.ts new file mode 100644 index 00000000000..82802c595eb --- /dev/null +++ b/oxlint.config.ts @@ -0,0 +1,219 @@ +import { defineConfig } from "oxlint"; + +/** Config that applies to all files */ +const allFilesRules = { + // Core correctness rules + "constructor-super": "error", + "for-direction": "error", + "getter-return": "error", + "no-async-promise-executor": "error", + "no-class-assign": "error", + "no-compare-neg-zero": "error", + "no-cond-assign": "error", + "no-const-assign": "error", + "no-constant-binary-expression": "error", + "no-debugger": "error", + "no-delete-var": "error", + "no-dupe-class-members": "error", + "no-dupe-else-if": "error", + "no-dupe-keys": "error", + "no-duplicate-case": "error", + "no-empty-character-class": "error", + "no-empty-pattern": "error", + "no-empty-static-block": "error", + "no-extra-boolean-cast": "error", + "no-fallthrough": "error", + "no-func-assign": "error", + "no-global-assign": "error", + "no-import-assign": "error", + "no-invalid-regexp": "error", + "no-irregular-whitespace": "error", + "no-loss-of-precision": "error", + "no-misleading-character-class": "error", + "no-new-native-nonconstructor": "error", + "no-nonoctal-decimal-escape": "error", + "no-obj-calls": "error", + "no-prototype-builtins": "error", + "no-redeclare": "error", + "no-regex-spaces": "error", + "no-self-assign": "error", + "no-setter-return": "error", + "no-shadow-restricted-names": "error", + "no-sparse-arrays": "error", + "no-this-before-super": "error", + "no-unassigned-vars": "error", + "no-unexpected-multiline": "error", + "no-unreachable": "error", + "no-unsafe-finally": "error", + "no-unsafe-negation": "error", + "no-unused-labels": "error", + "no-unused-private-class-members": "error", + "no-useless-backreference": "error", + "no-useless-catch": "error", + "no-useless-escape": "error", + "no-with": "error", + "preserve-caught-error": "error", + "require-yield": "error", + "use-isnan": "error", + "valid-typeof": "error", + "no-array-constructor": "error", + + // Disabled rules (intentional patterns in codebase) + "no-control-regex": "off", + "no-unsafe-optional-chaining": "off", + + // Warnings + "no-unused-vars": [ + "warn", + { + varsIgnorePattern: "^_", + argsIgnorePattern: ".*", + ignoreRestSiblings: true, + caughtErrorsIgnorePattern: ".*", + }, + ], + "no-unused-expressions": ["warn", { allowShortCircuit: true, allowTernary: true }], + "prefer-const": ["warn", { destructuring: "all" }], + eqeqeq: ["warn", "always", { null: "ignore" }], + "no-console": "warn", + "symbol-description": "warn", + + // Unicorn - disabled globally, enabled per-override for TS files + "unicorn/filename-case": "off", + + // TypeScript plugin rules + "typescript/ban-ts-comment": "error", + "typescript/no-duplicate-enum-values": "error", + "typescript/no-extra-non-null-assertion": "error", + "typescript/no-misused-new": "error", + "typescript/no-namespace": "error", + "typescript/no-non-null-asserted-optional-chain": "error", + "typescript/no-require-imports": "error", + "typescript/no-this-alias": "error", + "typescript/no-unnecessary-type-constraint": "error", + "typescript/no-unsafe-declaration-merging": "error", + "typescript/no-unsafe-function-type": "error", + "typescript/no-wrapper-object-types": "error", + "typescript/prefer-as-const": "error", + "typescript/prefer-namespace-keyword": "error", + "typescript/triple-slash-reference": "error", +} as const; + +/** Rules for TypeScript files — disables JS-only rules superseded by TS compiler */ +const typescriptFileOverride = { + files: ["**/*.ts", "**/*.tsx", "**/*.mts", "**/*.cts"], + rules: { + "constructor-super": "off", + "getter-return": "off", + "no-class-assign": "off", + "no-const-assign": "off", + "no-dupe-class-members": "off", + "no-dupe-keys": "off", + "no-func-assign": "off", + "no-import-assign": "off", + "no-new-native-nonconstructor": "off", + "no-obj-calls": "off", + "no-redeclare": "off", + "no-setter-return": "off", + "no-this-before-super": "off", + "no-unreachable": "off", + "no-unsafe-negation": "off", + "no-var": "error", + "no-with": "off", + "prefer-rest-params": "error", + "prefer-spread": "error", + "unicorn/filename-case": ["error", { case: "kebabCase" }], + }, +} as const; + +/** React hooks rules for JSX files */ +const jsxFilesOverride = { + files: ["**/*.tsx"], + excludeFiles: [ + "**/packages/emitter-framework/src/**/*", + "**/packages/http-client-js/**/*", + "**/packages/http-server-csharp/**/*", + ], + plugins: ["react"], + rules: { + "react/rules-of-hooks": "error", + "react/exhaustive-deps": "warn", + }, +} as const; + +/** Test file rules */ +const testFilesOverride = { + files: ["**/*.test.ts"], + plugins: ["vitest"], + rules: { + "vitest/no-focused-tests": "warn", + "vitest/no-identical-title": "error", + "vitest/no-commented-out-tests": "warn", + "vitest/no-import-node-test": "warn", + "vitest/require-local-test-context-for-concurrent-snapshots": "warn", + "vitest/valid-describe-callback": "warn", + "vitest/valid-expect": "warn", + "vitest/consistent-test-it": ["warn", { fn: "it" }], + "vitest/no-duplicate-hooks": ["warn"], + "typescript/no-non-null-asserted-optional-chain": "off", + }, +} as const; + +/** + * Shared TypeSpec oxlint configs — can be reused by downstream repos (e.g., typespec-azure). + */ +export const TypeSpecCommonOxlintConfigs = { + allFilesRules, + typescriptFileOverride, + jsxFilesOverride, + testFilesOverride, +}; + +export default defineConfig({ + plugins: ["typescript", "unicorn"], + categories: { + correctness: "off", + }, + env: { + builtin: true, + }, + ignorePatterns: [ + "**/dist/**/*", + "**/dist-test/**/*", + "**/.temp/**/*", + "**/temp/**/*", + "**/generated-defs/*", + "**/__snapshots__/*", + "**/.astro/*", + "**/website/build/**/*", + "**/.astro/**/*", + "**/.docusaurus/**/*", + "website/src/assets/**/*", + "packages/compiler/templates/**/*", + "packages/typespec-vscode/templates/**/*", + "packages/http-client-js/test/e2e/generated", + "packages/http-client-js/sample/output/**/*", + "packages/http-server-js/test/e2e/generated", + "**/venv/**/*", + "**/.vscode-test-web/**/*", + "packages/typespec-vscode/swagger-ui/swagger-ui*", + "**/*.astro", + "**/.scripts/**/*", + "eng/tsp-core/scripts/**/*", + "eng/common/scripts/**/*", + "packages/*/scripts/**/*", + ], + rules: allFilesRules, + overrides: [ + typescriptFileOverride, + jsxFilesOverride, + testFilesOverride, + // Framework-required PascalCase filenames + { + files: ["website/src/components/docusaurus/**/*.ts", "website/src/pages/**/*.ts"], + rules: { + "unicorn/filename-case": "off", + }, + }, + ], +}); diff --git a/package.json b/package.json index 933ddd3a022..d3b4ad4c9e2 100644 --- a/package.json +++ b/package.json @@ -17,8 +17,8 @@ "format:check": "prettier . --check", "format:dir": "prettier --write", "gen-compiler-extern-signature": "pnpm run -r --filter \"@typespec/compiler\" gen-extern-signature", - "lint": "eslint . --max-warnings=0", - "lint:fix": "eslint . --fix", + "lint": "oxlint . --deny-warnings", + "lint:fix": "oxlint . --fix", "merge-coverage": "c8 -- report --reporter=cobertura --reporter=text", "pack:all": "chronus pack --exclude standalone --pack-destination ./temp/artifacts", "preinstall": "npx only-allow pnpm", @@ -42,7 +42,6 @@ "@chronus/chronus": "catalog:", "@chronus/github": "catalog:", "@chronus/github-pr-commenter": "catalog:", - "@eslint/js": "catalog:", "@microsoft/api-extractor": "catalog:", "@octokit/core": "catalog:", "@octokit/plugin-paginate-graphql": "catalog:", @@ -50,13 +49,10 @@ "@types/micromatch": "catalog:", "@types/node": "catalog:", "@vitest/coverage-v8": "catalog:", - "@vitest/eslint-plugin": "catalog:", "c8": "catalog:", "cspell": "catalog:", - "eslint": "catalog:", - "eslint-plugin-react-hooks": "catalog:", - "eslint-plugin-unicorn": "catalog:", "micromatch": "catalog:", + "oxlint": "catalog:", "picocolors": "catalog:", "playwright": "catalog:", "prettier": "catalog:", @@ -64,10 +60,9 @@ "prettier-plugin-organize-imports": "catalog:", "prettier-plugin-sh": "catalog:", "rimraf": "catalog:", - "turbo": "catalog:", "tsx": "catalog:", + "turbo": "catalog:", "typescript": "catalog:", - "typescript-eslint": "catalog:", "vitest": "catalog:", "yaml": "catalog:" } diff --git a/packages/asset-emitter/package.json b/packages/asset-emitter/package.json index 8422280eea9..eab855f5fad 100644 --- a/packages/asset-emitter/package.json +++ b/packages/asset-emitter/package.json @@ -32,8 +32,8 @@ "test": "vitest run", "test:watch": "vitest -w", "test:ui": "vitest --ui", - "lint": "eslint . --ext .ts --max-warnings=0", - "lint:fix": "eslint . --fix --ext .ts", + "lint": "oxlint . --deny-warnings", + "lint:fix": "oxlint . --fix", "api-extractor": "api-extractor run --local --verbose" }, "files": [ diff --git a/packages/asset-emitter/src/builders/object-builder.ts b/packages/asset-emitter/src/builders/object-builder.ts index 63076110c5a..3dd6c31ffd9 100644 --- a/packages/asset-emitter/src/builders/object-builder.ts +++ b/packages/asset-emitter/src/builders/object-builder.ts @@ -5,9 +5,8 @@ import { type EmitEntity, EmitterResult } from "../types.js"; const placeholderSym = Symbol("placeholder"); const setSym = Symbol("ObjectBuilder.set"); // eslint is confused by merging generic interface and classes -// eslint-disable-next-line @typescript-eslint/no-unused-vars +// eslint-disable-next-line @typescript-eslint/no-unused-vars, typescript/no-unsafe-declaration-merging export interface ObjectBuilder extends Record {} -// eslint-disable-next-line @typescript-eslint/no-unsafe-declaration-merging export class ObjectBuilder { public static SET = setSym; diff --git a/packages/best-practices/package.json b/packages/best-practices/package.json index 9c0153f8f8c..ae9f5efceed 100644 --- a/packages/best-practices/package.json +++ b/packages/best-practices/package.json @@ -32,8 +32,8 @@ "test": "vitest run", "test:ui": "vitest --ui", "test:ci": "vitest run --coverage --reporter=junit --reporter=default", - "lint": "eslint . --max-warnings=0", - "lint:fix": "eslint . --fix" + "lint": "oxlint . --deny-warnings", + "lint:fix": "oxlint . --fix" }, "files": [ "lib/*.tsp", diff --git a/packages/bundle-uploader/package.json b/packages/bundle-uploader/package.json index 1f9b20e41a9..2944041cfb1 100644 --- a/packages/bundle-uploader/package.json +++ b/packages/bundle-uploader/package.json @@ -28,8 +28,8 @@ "watch": "tsc -p tsconfig.build.json --watch", "test": "echo 'no test'", "test:ci": "echo 'no test'", - "lint": "eslint . --max-warnings=0", - "lint:fix": "eslint . --fix" + "lint": "oxlint . --deny-warnings", + "lint:fix": "oxlint . --fix" }, "files": [ "lib/*.tsp", diff --git a/packages/bundler/package.json b/packages/bundler/package.json index f4c9eb086db..c75596bcd73 100644 --- a/packages/bundler/package.json +++ b/packages/bundler/package.json @@ -33,8 +33,8 @@ "test": "vitest run", "test:ui": "vitest --ui", "test:ci": "vitest run --coverage --reporter=junit --reporter=default", - "lint": "eslint . --max-warnings=0", - "lint:fix": "eslint . --fix" + "lint": "oxlint . --deny-warnings", + "lint:fix": "oxlint . --fix" }, "files": [ "lib/*.tsp", diff --git a/packages/compiler/package.json b/packages/compiler/package.json index 4ebaa9f1536..338b5247f11 100644 --- a/packages/compiler/package.json +++ b/packages/compiler/package.json @@ -101,8 +101,8 @@ "gen-manifest": "node scripts/generate-manifest.js", "regen-nonascii": "node scripts/regen-nonascii.js", "fuzz": "node dist/test/manual/fuzz.js run", - "lint": "eslint . --max-warnings=0", - "lint:fix": "eslint . --fix" + "lint": "oxlint . --deny-warnings", + "lint:fix": "oxlint . --fix" }, "dependencies": { "@babel/code-frame": "catalog:", diff --git a/packages/emitter-framework/package.json b/packages/emitter-framework/package.json index 4d32d42b5c5..a43e1334baf 100644 --- a/packages/emitter-framework/package.json +++ b/packages/emitter-framework/package.json @@ -18,8 +18,8 @@ "test:ci": "vitest run --coverage --reporter=junit --reporter=default", "prepack": "tsx ../../eng/tsp-core/scripts/strip-dev-import-exports.ts", "postpack": "tsx ../../eng/tsp-core/scripts/strip-dev-import-exports.ts --restore", - "lint": "eslint . --max-warnings=0", - "lint:fix": "eslint . --fix" + "lint": "oxlint . --deny-warnings", + "lint:fix": "oxlint . --fix" }, "exports": { ".": { diff --git a/packages/eslint-plugin-typespec/CHANGELOG.json b/packages/eslint-plugin-typespec/CHANGELOG.json deleted file mode 100644 index 4166c3c986f..00000000000 --- a/packages/eslint-plugin-typespec/CHANGELOG.json +++ /dev/null @@ -1,182 +0,0 @@ -{ - "name": "@typespec/eslint-plugin", - "entries": [ - { - "version": "0.52.0", - "tag": "@typespec/eslint-plugin_v0.52.0", - "date": "Wed, 24 Jan 2024 05:46:53 GMT", - "comments": { - "none": [ - { - "comment": "Update dependencies" - } - ] - } - }, - { - "version": "0.51.0", - "tag": "@typespec/eslint-plugin_v0.51.0", - "date": "Wed, 06 Dec 2023 19:40:58 GMT", - "comments": {} - }, - { - "version": "0.50.0", - "tag": "@typespec/eslint-plugin_v0.50.0", - "date": "Wed, 08 Nov 2023 00:07:17 GMT", - "comments": { - "none": [ - { - "comment": "Update deprecated features preping for eslint 9" - } - ] - } - }, - { - "version": "0.49.0", - "tag": "@typespec/eslint-plugin_v0.49.0", - "date": "Wed, 11 Oct 2023 23:31:35 GMT", - "comments": { - "none": [ - { - "comment": "Update dependencies" - } - ] - } - }, - { - "version": "0.48.0", - "tag": "@typespec/eslint-plugin_v0.48.0", - "date": "Tue, 12 Sep 2023 21:47:11 GMT", - "comments": {} - }, - { - "version": "0.47.0", - "tag": "@typespec/eslint-plugin_v0.47.0", - "date": "Tue, 08 Aug 2023 22:32:10 GMT", - "comments": { - "none": [ - { - "comment": "Update dependencies" - } - ] - } - }, - { - "version": "0.46.0", - "tag": "@typespec/eslint-plugin_v0.46.0", - "date": "Tue, 11 Jul 2023 22:06:00 GMT", - "comments": { - "none": [ - { - "comment": "Update dependencies" - } - ] - } - }, - { - "version": "0.45.0", - "tag": "@typespec/eslint-plugin_v0.45.0", - "date": "Tue, 06 Jun 2023 22:44:16 GMT", - "comments": {} - }, - { - "version": "0.44.0", - "tag": "@typespec/eslint-plugin_v0.44.0", - "date": "Wed, 10 May 2023 21:24:00 GMT", - "comments": { - "none": [ - { - "comment": "Update dependencies" - } - ], - "dependency": [ - { - "comment": "Updating dependency \"@typespec/eslint-config-typespec\" from `~0.6.0` to `~0.7.0`" - } - ] - } - }, - { - "version": "0.43.0", - "tag": "@typespec/eslint-plugin_v0.43.0", - "date": "Tue, 11 Apr 2023 18:49:17 GMT", - "comments": {} - }, - { - "version": "0.42.0", - "tag": "@typespec/eslint-plugin_v0.42.0", - "date": "Mon, 13 Mar 2023 21:30:44 GMT", - "comments": {} - }, - { - "version": "0.41.0", - "tag": "@typespec/eslint-plugin_v0.41.0", - "date": "Fri, 03 Mar 2023 19:59:17 GMT", - "comments": { - "none": [ - { - "comment": "Revert back changelog" - }, - { - "comment": "Rename to TypeSpec" - }, - { - "comment": "Update homepage link" - } - ], - "dependency": [ - { - "comment": "Updating dependency \"@typespec/eslint-config-typespec\" from `~0.5.0` to `~0.6.0`" - } - ] - } - }, - { - "version": "0.40.0", - "tag": "@cadl-lang/eslint-plugin_v0.40.0", - "date": "Tue, 07 Feb 2023 21:56:17 GMT", - "comments": {} - }, - { - "version": "0.39.0", - "tag": "@cadl-lang/eslint-plugin_v0.39.0", - "date": "Fri, 13 Jan 2023 00:05:26 GMT", - "comments": {} - }, - { - "version": "0.38.0", - "tag": "@cadl-lang/eslint-plugin_v0.38.0", - "date": "Wed, 07 Dec 2022 17:21:52 GMT", - "comments": { - "patch": [ - { - "comment": "Update dependencies" - } - ], - "dependency": [ - { - "comment": "Updating dependency \"@cadl-lang/eslint-config-cadl\" from `~0.4.1` to `~0.5.0`" - } - ] - } - }, - { - "version": "0.1.1", - "tag": "@cadl-lang/eslint-plugin_v0.1.1", - "date": "Thu, 11 Aug 2022 19:05:23 GMT", - "comments": { - "dependency": [ - { - "comment": "Updating dependency \"@cadl-lang/eslint-config-cadl\" from `~0.3.0` to `~0.4.0`" - } - ] - } - }, - { - "version": "0.1.0", - "tag": "@cadl-lang/eslint-plugin_v0.1.0", - "date": "Mon, 13 Jun 2022 23:42:28 GMT", - "comments": {} - } - ] -} diff --git a/packages/eslint-plugin-typespec/CHANGELOG.md b/packages/eslint-plugin-typespec/CHANGELOG.md deleted file mode 100644 index 34f29fe6756..00000000000 --- a/packages/eslint-plugin-typespec/CHANGELOG.md +++ /dev/null @@ -1,298 +0,0 @@ -# Change Log - @typespec/eslint-plugin - -## 0.83.0 - -No changes, version bump only. - -## 0.82.0 - -No changes, version bump only. - -## 0.81.0 - -No changes, version bump only. - -## 0.80.0 - -### Bump dependencies - -- [#9838](https://github.com/microsoft/typespec/pull/9838) Upgrade dependencies - - -## 0.79.0 - -No changes, version bump only. - -## 0.78.0 - -### Bump dependencies - -- [#9223](https://github.com/microsoft/typespec/pull/9223) Upgrade dependencies - - -## 0.77.0 - -### Bump dependencies - -- [#9046](https://github.com/microsoft/typespec/pull/9046) Upgrade dependencies - - -## 0.76.0 - -### Bump dependencies - -- [#8823](https://github.com/microsoft/typespec/pull/8823) Upgrade dependencies - - -## 0.75.0 - -No changes, version bump only. - -## 0.74.0 - -### Bump dependencies - -- [#8317](https://github.com/microsoft/typespec/pull/8317) Upgrade dependencies - - -## 0.73.0 - -### Bump dependencies - -- [#7978](https://github.com/microsoft/typespec/pull/7978) Upgrade dependencies - - -## 0.72.0 - -### Bump dependencies - -- [#7674](https://github.com/microsoft/typespec/pull/7674) Upgrade dependencies - - -## 0.71.0 - -No changes, version bump only. - -## 0.70.0 - -No changes, version bump only. - -## 0.69.0 - -No changes, version bump only. - -## 0.68.0 - -### Bump dependencies - -- [#6595](https://github.com/microsoft/typespec/pull/6595) Upgrade dependencies - - -## 0.67.0 - -### Bump dependencies - -- [#6266](https://github.com/microsoft/typespec/pull/6266) Update dependencies - - -## 0.66.0 - -No changes, version bump only. - -## 0.65.0 - -### Bump dependencies - -- [#5690](https://github.com/microsoft/typespec/pull/5690) Upgrade dependencies - - -## 0.64.0 - -No changes, version bump only. - -## 0.63.0 - -No changes, version bump only. - -## 0.62.0 - -### Bump dependencies - -- [#4679](https://github.com/microsoft/typespec/pull/4679) Upgrade dependencies - October 2024 - - -## 0.61.0 - -### Bump dependencies - -- [#4424](https://github.com/microsoft/typespec/pull/4424) Bump dependencies - - -## 0.60.0 - -No changes, version bump only. - -## 0.59.0 - -### Bump dependencies - -- [#3948](https://github.com/microsoft/typespec/pull/3948) Update dependencies - - -## 0.58.0 - -### Bump dependencies - -- [#3718](https://github.com/microsoft/typespec/pull/3718) Dependency updates July 2024 - - -## 0.57.0 - -### Bump dependencies - -- [#3401](https://github.com/microsoft/typespec/pull/3401) Update dependencies - May 2024 - - -## 0.56.0 - -### Bump dependencies - -- [#3169](https://github.com/microsoft/typespec/pull/3169) Update dependencies - - -## 0.55.0 - -### Bump dependencies - -- [#3027](https://github.com/microsoft/typespec/pull/3027) Update dependencies - - -## 0.54.0 - -### Bump dependencies - -- [#2900](https://github.com/microsoft/typespec/pull/2900) Update dependencies - - -## 0.53.0 - - -## 0.52.0 - -Wed, 24 Jan 2024 05:46:53 GMT - -### Updates - -- Update dependencies - -## 0.51.0 - -Wed, 06 Dec 2023 19:40:58 GMT - -_Version update only_ - -## 0.50.0 - -Wed, 08 Nov 2023 00:07:17 GMT - -### Updates - -- Update deprecated features preping for eslint 9 - -## 0.49.0 - -Wed, 11 Oct 2023 23:31:35 GMT - -### Updates - -- Update dependencies - -## 0.48.0 - -Tue, 12 Sep 2023 21:47:11 GMT - -_Version update only_ - -## 0.47.0 - -Tue, 08 Aug 2023 22:32:10 GMT - -### Updates - -- Update dependencies - -## 0.46.0 - -Tue, 11 Jul 2023 22:06:00 GMT - -### Updates - -- Update dependencies - -## 0.45.0 - -Tue, 06 Jun 2023 22:44:16 GMT - -_Version update only_ - -## 0.44.0 - -Wed, 10 May 2023 21:24:00 GMT - -### Updates - -- Update dependencies - -## 0.43.0 - -Tue, 11 Apr 2023 18:49:17 GMT - -_Version update only_ - -## 0.42.0 - -Mon, 13 Mar 2023 21:30:44 GMT - -_Version update only_ - -## 0.41.0 - -Fri, 03 Mar 2023 19:59:17 GMT - -### Updates - -- Revert back changelog -- Rename to TypeSpec -- Update homepage link - -## 0.40.0 - -Tue, 07 Feb 2023 21:56:17 GMT - -_Version update only_ - -## 0.39.0 - -Fri, 13 Jan 2023 00:05:26 GMT - -_Version update only_ - -## 0.38.0 - -Wed, 07 Dec 2022 17:21:52 GMT - -### Patches - -- Update dependencies - -## 0.1.1 - -Thu, 11 Aug 2022 19:05:23 GMT - -_Version update only_ - -## 0.1.0 - -Mon, 13 Jun 2022 23:42:28 GMT - -_Initial release_ diff --git a/packages/eslint-plugin-typespec/LICENSE b/packages/eslint-plugin-typespec/LICENSE deleted file mode 100644 index 21071075c24..00000000000 --- a/packages/eslint-plugin-typespec/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ - MIT License - - Copyright (c) Microsoft Corporation. All rights reserved. - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE diff --git a/packages/eslint-plugin-typespec/README.md b/packages/eslint-plugin-typespec/README.md deleted file mode 100644 index 0c19849f609..00000000000 --- a/packages/eslint-plugin-typespec/README.md +++ /dev/null @@ -1,22 +0,0 @@ -# TypeSpec Eslint Plugin - -## Installation - -Install the package as a dev dependency. - -``` -npm install -D @typespec/eslint-plugin -``` - -## Usage - -Add the following to your eslint config - -```yaml -plugins: ["@typespec/eslint-plugin"], -extends: ["plugin:@typespec/eslint-plugin/recommended"], -``` - -## Rules - -- [call-decorator](./docs/rules/call-decorator.md) diff --git a/packages/eslint-plugin-typespec/docs/rules/call-decorator.md b/packages/eslint-plugin-typespec/docs/rules/call-decorator.md deleted file mode 100644 index b4d98d5050e..00000000000 --- a/packages/eslint-plugin-typespec/docs/rules/call-decorator.md +++ /dev/null @@ -1,57 +0,0 @@ -Enforces calling other TypeSpec decorator using `context.call` instead of calling the decorator function directly. - -Calling the decorator function directly can result in diagnostics with incorrect location. - -## Rule Details - -## How to Use - -```jsonc -{ - "@typespec/call-decorator": "warn", -} -``` - - - -#### ❌ Incorrect - -```ts -function $foo(context: DecoratorContext, target: Type) {} - -function $bar(context: DecoratorContext, target: Type) { - $foo(context, target); -} -``` - -```ts -function $foo(context: DecoratorContext, target: Type, name: string) {} - -function $bar(context: DecoratorContext, target: Type, name: string) { - $foo(context, target, `bar.${name}`); -} -``` - -#### ✅ Correct - -```ts -function $foo(context: DecoratorContext, target: Type) {} - -function $bar(context: DecoratorContext, target: Type) { - context.call($foo, target); -} -``` - -```ts -function $foo(context: DecoratorContext, target: Type, name: string) {} - -function $bar(context: DecoratorContext, target: Type, name: string) { - context.call($foo, target, `bar.${name}`); -} -``` - -## Attributes - -- [x] ✅ Recommended -- [x] 🔧 Fixable -- [x] 💭 Requires type information diff --git a/packages/eslint-plugin-typespec/package.json b/packages/eslint-plugin-typespec/package.json deleted file mode 100644 index 08361c81f70..00000000000 --- a/packages/eslint-plugin-typespec/package.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "name": "@typespec/eslint-plugin", - "version": "0.83.0", - "author": "Microsoft Corporation", - "description": "Eslint plugin providing set of rules to be used in the JS/TS code of TypeSpec libraries", - "homepage": "https://typespec.io", - "readme": "https://github.com/microsoft/typespec/blob/main/README.md", - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/microsoft/typespec.git" - }, - "bugs": { - "url": "https://github.com/microsoft/typespec/issues" - }, - "keywords": [ - "typespec" - ], - "type": "commonjs", - "main": "dist/src/index.js", - "engines": { - "node": ">=22.0.0" - }, - "scripts": { - "clean": "rimraf ./dist ./temp", - "build": "tsc -p tsconfig.build.json", - "watch": "tsc -p tsconfig.build.json --watch", - "test": "vitest run", - "test:ui": "vitest --ui", - "test:ci": "vitest run --coverage --reporter=junit --reporter=default", - "lint": "eslint . --max-warnings=0", - "lint:fix": "eslint . --fix" - }, - "files": [ - "lib/*.tsp", - "dist/**", - "!dist/test/**" - ], - "peerDependencies": { - "eslint": "catalog:" - }, - "devDependencies": { - "@types/node": "catalog:", - "@typescript-eslint/parser": "catalog:", - "@typescript-eslint/rule-tester": "catalog:", - "@typescript-eslint/types": "catalog:", - "@vitest/coverage-v8": "catalog:", - "@vitest/ui": "catalog:", - "eslint": "catalog:", - "rimraf": "catalog:", - "typescript": "catalog:", - "vitest": "catalog:" - }, - "dependencies": { - "@typescript-eslint/utils": "catalog:" - } -} diff --git a/packages/eslint-plugin-typespec/src/index.ts b/packages/eslint-plugin-typespec/src/index.ts deleted file mode 100644 index 9e5a9402288..00000000000 --- a/packages/eslint-plugin-typespec/src/index.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { callDecoratorRule } from "./rules/call-decorator.js"; - -export const rules: Record = { - "call-decorator": callDecoratorRule, -}; - -export const configs = { - recommended: { - rules: { - "@typespec/call-decorator": "warn", - }, - }, -}; diff --git a/packages/eslint-plugin-typespec/src/rules/call-decorator.ts b/packages/eslint-plugin-typespec/src/rules/call-decorator.ts deleted file mode 100644 index 57e1257c151..00000000000 --- a/packages/eslint-plugin-typespec/src/rules/call-decorator.ts +++ /dev/null @@ -1,84 +0,0 @@ -import { TSESLint, TSESTree } from "@typescript-eslint/utils"; -import ts from "typescript"; -import { createRule } from "../utils.js"; - -const messages = { - default: "Use context.call to call a TypeSpec decorator function.", - suggestReplaceWithContextCall: "Replace with context.call", -}; - -export const callDecoratorRule = createRule({ - create(context) { - const parserServices = context.sourceCode.parserServices; - if (parserServices === undefined || !parserServices.program) { - return {}; - } - const checker = parserServices.program.getTypeChecker(); - return { - CallExpression(node) { - if (node.callee.type === TSESTree.AST_NODE_TYPES.Identifier) { - const functionName = node.callee.name; - if (functionName.startsWith("$")) { - const tsNode = parserServices.esTreeNodeToTSNodeMap?.get(node); - if (tsNode === undefined) { - return; - } - const signature = checker.getResolvedSignature(tsNode); - if (signature === undefined) { - return; - } - - if (isTypeSpecFunctionSignature(checker, signature, tsNode)) { - context.report({ - messageId: "default", - node, - suggest: [ - { - messageId: "suggestReplaceWithContextCall", - fix: (fixer): TSESLint.RuleFix[] => { - return [ - fixer.replaceText(node.callee, `context.call`), - fixer.replaceText(node.arguments[0], functionName), - ]; - }, - }, - ], - }); - } - } - } - }, - }; - }, - name: "call-decorator", - meta: { - docs: { - description: "Calling a TypeSpec decorator from JS/TS code should be done with context.call", - }, - hasSuggestions: true, - messages, - type: "suggestion", - schema: [], - }, - defaultOptions: [], -}); - -function isTypeSpecFunctionSignature( - checker: ts.TypeChecker, - signature: ts.Signature, - tsNode: ts.Node, -): boolean { - if (signature.parameters.length < 2) { - return false; - } - const contextParameter = signature.parameters[0]; - const contextParamType = checker.getTypeOfSymbolAtLocation(contextParameter, tsNode); - if ( - (contextParamType.flags & ts.TypeFlags.StructuredType && - contextParamType.aliasSymbol?.name === "DecoratorContext") || - contextParamType.symbol?.name === "DecoratorContext" - ) { - return true; - } - return false; -} diff --git a/packages/eslint-plugin-typespec/src/utils.ts b/packages/eslint-plugin-typespec/src/utils.ts deleted file mode 100644 index 2aa437ad396..00000000000 --- a/packages/eslint-plugin-typespec/src/utils.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { ESLintUtils } from "@typescript-eslint/utils"; - -// TODO get rule url -export const createRule = ESLintUtils.RuleCreator( - (name) => - `https://github.com/microsoft/typespec/tree/main/packages/eslint-plugin-typespec/docs/rules/${name}.md`, -); diff --git a/packages/eslint-plugin-typespec/test/fixtures/file.ts b/packages/eslint-plugin-typespec/test/fixtures/file.ts deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/packages/eslint-plugin-typespec/test/fixtures/tsconfig.json b/packages/eslint-plugin-typespec/test/fixtures/tsconfig.json deleted file mode 100644 index 7e9126b848c..00000000000 --- a/packages/eslint-plugin-typespec/test/fixtures/tsconfig.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "compilerOptions": { - "jsx": "preserve", - "target": "es5", - "module": "commonjs", - "strict": true, - "esModuleInterop": true, - "lib": ["es2015", "es2017", "esnext"], - "experimentalDecorators": true - }, - "include": ["file.ts"] -} diff --git a/packages/eslint-plugin-typespec/test/global-setup.ts b/packages/eslint-plugin-typespec/test/global-setup.ts deleted file mode 100644 index 753b4965aa1..00000000000 --- a/packages/eslint-plugin-typespec/test/global-setup.ts +++ /dev/null @@ -1,11 +0,0 @@ -// Preload the parser so it doesn't slow down the first test as much -import "@typescript-eslint/parser"; -import { RuleTester } from "@typescript-eslint/rule-tester"; -import * as vitest from "vitest"; - -RuleTester.afterAll = vitest.afterAll; - -// If you are not using vitest with globals: true (https://vitest.dev/config/#globals): -RuleTester.it = vitest.it; -RuleTester.itOnly = vitest.it.only; -RuleTester.describe = vitest.describe; diff --git a/packages/eslint-plugin-typespec/test/rules/call-decorator.test.ts b/packages/eslint-plugin-typespec/test/rules/call-decorator.test.ts deleted file mode 100644 index ea96d6d0e2a..00000000000 --- a/packages/eslint-plugin-typespec/test/rules/call-decorator.test.ts +++ /dev/null @@ -1,76 +0,0 @@ -import { RuleTester } from "@typescript-eslint/rule-tester"; -import { callDecoratorRule } from "../../src/rules/call-decorator.js"; -import { getFixturesRootDir } from "./utils.js"; - -const rootDir = getFixturesRootDir(); - -const ruleTester = new RuleTester({ - languageOptions: { - parserOptions: { - project: "./tsconfig.json", - tsconfigRootDir: rootDir, - }, - }, -}); - -ruleTester.run("call-decorator", callDecoratorRule, { - valid: [ - { - name: "Valid if using .call to call decorator", - code: ` -interface DecoratorContext {}; interface Type {}; - -function $foo(context: DecoratorContext, target: Type) {} - -function $bar(context: DecoratorContext, target: Type) { - context.call($bar, target); -} - `, - }, - { - name: "Valid if passing context to a non decorator function", - code: ` -interface DecoratorContext {}; interface Type {}; - -function setFoo(context: DecoratorContext, target: Type) {} - -function $bar(context: DecoratorContext, target: Type) { - setFoo(context, target); -} - `, - }, - ], - invalid: [ - { - code: ` -interface DecoratorContext {}; interface Type {}; - -function $foo(context: DecoratorContext, target: Type) {} - -function $bar(context: DecoratorContext, target: Type) { - $foo(context, target); -} - `, - errors: [ - { - line: 7, - messageId: "default", - suggestions: [ - { - messageId: "suggestReplaceWithContextCall", - output: ` -interface DecoratorContext {}; interface Type {}; - -function $foo(context: DecoratorContext, target: Type) {} - -function $bar(context: DecoratorContext, target: Type) { - context.call($foo, target); -} - `, - }, - ], - }, - ], - }, - ], -}); diff --git a/packages/eslint-plugin-typespec/test/rules/utils.ts b/packages/eslint-plugin-typespec/test/rules/utils.ts deleted file mode 100644 index b43e1b3f47e..00000000000 --- a/packages/eslint-plugin-typespec/test/rules/utils.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { resolve } from "path"; - -export function getFixturesRootDir(): string { - return resolve(__dirname, "../../test/fixtures"); -} diff --git a/packages/eslint-plugin-typespec/tsconfig.build.json b/packages/eslint-plugin-typespec/tsconfig.build.json deleted file mode 100644 index 33eafb056f2..00000000000 --- a/packages/eslint-plugin-typespec/tsconfig.build.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "./tsconfig.json", - "include": ["src/**/*.ts", "test/**/*.ts"], - "references": [ - { "path": "../compiler/tsconfig.build.json" }, - { "path": "../rest/tsconfig.build.json" }, - { "path": "../openapi/tsconfig.build.json" } - ] -} diff --git a/packages/eslint-plugin-typespec/tsconfig.json b/packages/eslint-plugin-typespec/tsconfig.json deleted file mode 100644 index 460f1979bf5..00000000000 --- a/packages/eslint-plugin-typespec/tsconfig.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "extends": "../../tsconfig.base.json", - "references": [ - { "path": "../compiler/tsconfig.json" }, - { "path": "../rest/tsconfig.json" }, - { "path": "../openapi/tsconfig.json" } - ], - "compilerOptions": { - "outDir": "dist", - "rootDir": ".", - "tsBuildInfoFile": "temp/tsconfig.tsbuildinfo", - "skipLibCheck": true - } -} diff --git a/packages/eslint-plugin-typespec/vitest.config.mts b/packages/eslint-plugin-typespec/vitest.config.mts deleted file mode 100644 index 199c3470010..00000000000 --- a/packages/eslint-plugin-typespec/vitest.config.mts +++ /dev/null @@ -1,12 +0,0 @@ -import { defineConfig, mergeConfig } from "vitest/config"; -import { defaultTypeSpecVitestConfig } from "../../vitest.config.js"; - -export default mergeConfig( - defaultTypeSpecVitestConfig, - defineConfig({ - test: { - setupFiles: ["./test/global-setup.ts"], - testTimeout: 10_000, - }, - }), -); diff --git a/packages/events/package.json b/packages/events/package.json index fa5de32044d..a5716d2aefa 100644 --- a/packages/events/package.json +++ b/packages/events/package.json @@ -43,8 +43,8 @@ "test:watch": "vitest -w", "test:ui": "vitest --ui", "test-official": "vitest run --coverage --reporter=junit --reporter=default --no-file-parallelism", - "lint": "eslint . --ext .ts --max-warnings=0", - "lint:fix": "eslint . --fix --ext .ts", + "lint": "oxlint . --deny-warnings", + "lint:fix": "oxlint . --fix", "regen-docs": "tspd doc . --enable-experimental --llmstxt --output-dir ../../website/src/content/docs/docs/libraries/events/reference" }, "files": [ diff --git a/packages/html-program-viewer/package.json b/packages/html-program-viewer/package.json index 969981bc911..63aeadd2f43 100644 --- a/packages/html-program-viewer/package.json +++ b/packages/html-program-viewer/package.json @@ -40,8 +40,8 @@ "test": "vitest run", "test:ui": "vitest --ui", "test:ci": "vitest run --coverage --reporter=junit --reporter=default", - "lint": "eslint . --max-warnings=0", - "lint:fix": "eslint . --fix" + "lint": "oxlint . --deny-warnings", + "lint:fix": "oxlint . --fix" }, "files": [ "dist/**", diff --git a/packages/http-canonicalization/package.json b/packages/http-canonicalization/package.json index 6be34e87582..e88ce77b1ca 100644 --- a/packages/http-canonicalization/package.json +++ b/packages/http-canonicalization/package.json @@ -18,8 +18,8 @@ "test:ci": "vitest run --coverage --reporter=junit --reporter=default", "prepack": "tsx ../../eng/tsp-core/scripts/strip-dev-import-exports.ts", "postpack": "tsx ../../eng/tsp-core/scripts/strip-dev-import-exports.ts --restore", - "lint": "eslint . --max-warnings=0", - "lint:fix": "eslint . --fix" + "lint": "oxlint . --deny-warnings", + "lint:fix": "oxlint . --fix" }, "exports": { ".": { diff --git a/packages/http-client-js/package.json b/packages/http-client-js/package.json index 383ee7015cb..5cb58620450 100644 --- a/packages/http-client-js/package.json +++ b/packages/http-client-js/package.json @@ -8,8 +8,8 @@ "scripts": { "build": "alloy build", "clean": "rimraf ./dist", - "lint": "eslint . --max-warnings=0", - "lint:fix": "eslint . --fix", + "lint": "oxlint . --deny-warnings", + "lint:fix": "oxlint . --fix", "watch": "alloy build --watch", "test": "vitest run", "test:ui": "vitest --ui", diff --git a/packages/http-client/package.json b/packages/http-client/package.json index 08146247242..87997584ea9 100644 --- a/packages/http-client/package.json +++ b/packages/http-client/package.json @@ -53,8 +53,8 @@ "test:ui": "vitest --ui", "test:watch": "vitest -w", "test:ci": "vitest run --coverage --reporter=junit --reporter=default", - "lint": "eslint src/ test/ --report-unused-disable-directives --max-warnings=0", - "lint:fix": "eslint . --report-unused-disable-directives --fix", + "lint": "oxlint src/ test/ --deny-warnings", + "lint:fix": "oxlint . --fix", "format": "prettier . --write", "format:check": "prettier --check ." } diff --git a/packages/http-server-csharp/package.json b/packages/http-server-csharp/package.json index b151564e7f9..2f73b24e9e4 100644 --- a/packages/http-server-csharp/package.json +++ b/packages/http-server-csharp/package.json @@ -45,8 +45,8 @@ "test:watch": "vitest -w", "test:ui": "vitest --ui", "test:ci": "vitest run --coverage --reporter=junit --reporter=default", - "lint": "eslint . --max-warnings=0", - "lint:fix": "eslint . --fix", + "lint": "oxlint . --deny-warnings", + "lint:fix": "oxlint . --fix", "regen-docs": "tspd doc . --enable-experimental --output-dir ../../website/src/content/docs/docs/emitters/servers/http-server-csharp/reference --skip-js", "emit:scenarios": "tsx eng/scripts/emit-scenarios.js --build true", "test:scenarios": "vitest run --config ./vitest.config.scenarios.js" diff --git a/packages/http-server-js/build-helpers.ts b/packages/http-server-js/build-helpers.ts index 022e502bfb4..535980c9132 100644 --- a/packages/http-server-js/build-helpers.ts +++ b/packages/http-server-js/build-helpers.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. -/* eslint no-console: "off" */ +/* eslint-disable no-console */ import fs from "node:fs/promises"; import path from "node:path"; diff --git a/packages/http-server-js/package.json b/packages/http-server-js/package.json index 4bd179ca30a..833022e90f4 100644 --- a/packages/http-server-js/package.json +++ b/packages/http-server-js/package.json @@ -41,8 +41,8 @@ "test:watch": "vitest -w", "test:ui": "vitest --ui", "test:ci": "vitest run --coverage --reporter=junit --reporter=default", - "lint": "eslint . --max-warnings=0", - "lint:fix": "eslint . --fix", + "lint": "oxlint . --deny-warnings", + "lint:fix": "oxlint . --fix", "regen-docs": "tspd doc . --enable-experimental --output-dir ../../website/src/content/docs/docs/emitters/servers/http-server-js/reference --skip-js", "test:e2e": "pnpm emit:e2e && pnpm run:e2e", "emit:e2e": "node eng/scripts/emit-e2e.js", diff --git a/packages/http/package.json b/packages/http/package.json index 3c224aade2f..a0c0c7b77c5 100644 --- a/packages/http/package.json +++ b/packages/http/package.json @@ -64,8 +64,8 @@ "test:watch": "vitest -w", "test:ui": "vitest --ui", "test:ci": "vitest run --coverage --reporter=junit --reporter=default", - "lint": "eslint . --max-warnings=0", - "lint:fix": "eslint . --fix", + "lint": "oxlint . --deny-warnings", + "lint:fix": "oxlint . --fix", "regen-docs": "tspd doc . --enable-experimental --typekits --llmstxt --output-dir ../../website/src/content/docs/docs/libraries/http/reference" }, "files": [ diff --git a/packages/internal-build-utils/package.json b/packages/internal-build-utils/package.json index 6c4b78558cc..cadac80e244 100644 --- a/packages/internal-build-utils/package.json +++ b/packages/internal-build-utils/package.json @@ -31,8 +31,8 @@ "test": "vitest run", "test:ui": "vitest --ui", "test:ci": "vitest run --coverage --reporter=junit --reporter=default", - "lint": "eslint . --max-warnings=0", - "lint:fix": "eslint . --fix" + "lint": "oxlint . --deny-warnings", + "lint:fix": "oxlint . --fix" }, "files": [ "lib/*.tsp", diff --git a/packages/json-schema/package.json b/packages/json-schema/package.json index 47e877acb76..a46d9ae1fea 100644 --- a/packages/json-schema/package.json +++ b/packages/json-schema/package.json @@ -43,8 +43,8 @@ "test": "vitest run", "test:ui": "vitest --ui", "test:ci": "vitest run --coverage --reporter=junit --reporter=default", - "lint": "eslint . --max-warnings=0", - "lint:fix": "eslint . --fix", + "lint": "oxlint . --deny-warnings", + "lint:fix": "oxlint . --fix", "regen-docs": "tspd doc . --enable-experimental --llmstxt --output-dir ../../website/src/content/docs/docs/emitters/json-schema/reference", "api-extractor": "api-extractor run --local --verbose" }, diff --git a/packages/library-linter/package.json b/packages/library-linter/package.json index c3d7b518603..140baacb5f0 100644 --- a/packages/library-linter/package.json +++ b/packages/library-linter/package.json @@ -40,8 +40,8 @@ "test": "vitest run", "test:ui": "vitest --ui", "test:ci": "vitest run --coverage --reporter=junit --reporter=default", - "lint": "eslint . --max-warnings=0", - "lint:fix": "eslint . --fix" + "lint": "oxlint . --deny-warnings", + "lint:fix": "oxlint . --fix" }, "files": [ "lib/*.tsp", diff --git a/packages/monarch/package.json b/packages/monarch/package.json index ea15663da43..2f41b59f4c6 100644 --- a/packages/monarch/package.json +++ b/packages/monarch/package.json @@ -33,8 +33,8 @@ "test:watch": "vitest -w", "test:ui": "vitest --ui", "test:ci": "vitest run --coverage --reporter=junit --reporter=default", - "lint": "eslint . --max-warnings=0", - "lint:fix": "eslint . --fix" + "lint": "oxlint . --deny-warnings", + "lint:fix": "oxlint . --fix" }, "files": [ "lib/*.tsp", diff --git a/packages/mutator-framework/package.json b/packages/mutator-framework/package.json index 0c280ab4853..1ac77a8dbef 100644 --- a/packages/mutator-framework/package.json +++ b/packages/mutator-framework/package.json @@ -18,8 +18,8 @@ "test:ci": "vitest run --coverage --reporter=junit --reporter=default", "prepack": "tsx ../../eng/tsp-core/scripts/strip-dev-import-exports.ts", "postpack": "tsx ../../eng/tsp-core/scripts/strip-dev-import-exports.ts --restore", - "lint": "eslint . --max-warnings=0", - "lint:fix": "eslint . --fix" + "lint": "oxlint . --deny-warnings", + "lint:fix": "oxlint . --fix" }, "exports": { ".": { diff --git a/packages/openapi/package.json b/packages/openapi/package.json index d23079df62e..de6796960f7 100644 --- a/packages/openapi/package.json +++ b/packages/openapi/package.json @@ -43,8 +43,8 @@ "test:watch": "vitest -w", "test:ui": "vitest --ui", "test:ci": "vitest run --coverage --reporter=junit --reporter=default", - "lint": "eslint . --max-warnings=0", - "lint:fix": "eslint . --fix", + "lint": "oxlint . --deny-warnings", + "lint:fix": "oxlint . --fix", "regen-docs": "tspd doc . --enable-experimental --llmstxt --output-dir ../../website/src/content/docs/docs/libraries/openapi/reference", "api-extractor": "api-extractor run --local --verbose" }, diff --git a/packages/openapi3/package.json b/packages/openapi3/package.json index f3903fe4a35..f503c082720 100644 --- a/packages/openapi3/package.json +++ b/packages/openapi3/package.json @@ -50,8 +50,8 @@ "test:watch": "vitest -w", "test:ui": "vitest --ui", "test:ci": "vitest run --coverage --reporter=junit --reporter=default", - "lint": "eslint . --max-warnings=0", - "lint:fix": "eslint . --fix", + "lint": "oxlint . --deny-warnings", + "lint:fix": "oxlint . --fix", "regen-docs": "tspd doc . --enable-experimental --llmstxt --output-dir ../../website/src/content/docs/docs/emitters/openapi3/reference", "regen-specs": "cross-env RECORD=true vitest run", "gen-version": "node scripts/generate-version.js", diff --git a/packages/pack/package.json b/packages/pack/package.json index 7e12c624835..82916c8522a 100644 --- a/packages/pack/package.json +++ b/packages/pack/package.json @@ -36,8 +36,8 @@ "test": "vitest run", "test:ui": "vitest --ui", "test:ci": "vitest run --coverage --reporter=junit --reporter=default", - "lint": "eslint . --max-warnings=0", - "lint:fix": "eslint . --fix" + "lint": "oxlint . --deny-warnings", + "lint:fix": "oxlint . --fix" }, "files": [ "lib/*.tsp", diff --git a/packages/playground-website/package.json b/packages/playground-website/package.json index b824cc08ee6..bf89badef65 100644 --- a/packages/playground-website/package.json +++ b/packages/playground-website/package.json @@ -44,8 +44,8 @@ "watch": "vite", "test:e2e": "cross-env PW_EXPERIMENTAL_TS_ESM=1 playwright test -c e2e ", "test:e2e:headed": "cross-env PW_EXPERIMENTAL_TS_ESM=1 playwright test -c e2e --headed", - "lint": "eslint . --max-warnings=0", - "lint:fix": "eslint . --fix" + "lint": "oxlint . --deny-warnings", + "lint:fix": "oxlint . --fix" }, "files": [ "lib/*.tsp", diff --git a/packages/playground/package.json b/packages/playground/package.json index cbe596aa07e..99a7b42743b 100644 --- a/packages/playground/package.json +++ b/packages/playground/package.json @@ -63,8 +63,8 @@ "start": "vite", "test": "vitest run", "test:ci": "vitest run --coverage --reporter=junit --reporter=default", - "lint": "eslint . --max-warnings=0", - "lint:fix": "eslint . --fix" + "lint": "oxlint . --deny-warnings", + "lint:fix": "oxlint . --fix" }, "files": [ "lib/*.tsp", diff --git a/packages/protobuf/package.json b/packages/protobuf/package.json index 30efbf3acfc..e22fce2a25e 100644 --- a/packages/protobuf/package.json +++ b/packages/protobuf/package.json @@ -36,8 +36,8 @@ "gen-extern-signature": "tspd --enable-experimental gen-extern-signature .", "test": "vitest run", "test:ci": "vitest run --coverage --reporter=junit --reporter=default", - "lint": "eslint . --max-warnings=0", - "lint:fix": "eslint . --fix", + "lint": "oxlint . --deny-warnings", + "lint:fix": "oxlint . --fix", "regen-docs": "tspd doc . --enable-experimental --llmstxt --output-dir ../../website/src/content/docs/docs/emitters/protobuf/reference" }, "peerDependencies": { diff --git a/packages/react-components/package.json b/packages/react-components/package.json index 99ebbe2fa7f..d647995512e 100644 --- a/packages/react-components/package.json +++ b/packages/react-components/package.json @@ -36,8 +36,8 @@ "test": "vitest run", "test:ui": "vitest --ui", "test:ci": "vitest run --coverage --reporter=junit --reporter=default", - "lint": "eslint . --max-warnings=0", - "lint:fix": "eslint . --fix" + "lint": "oxlint . --deny-warnings", + "lint:fix": "oxlint . --fix" }, "files": [ "dist/**", diff --git a/packages/rest/package.json b/packages/rest/package.json index 00443a36feb..a7ddff22cf0 100644 --- a/packages/rest/package.json +++ b/packages/rest/package.json @@ -43,8 +43,8 @@ "test:watch": "vitest --watch", "test:ui": "vitest --ui", "test:ci": "vitest run --coverage --reporter=junit --reporter=default", - "lint": "eslint . --max-warnings=0", - "lint:fix": "eslint . --fix", + "lint": "oxlint . --deny-warnings", + "lint:fix": "oxlint . --fix", "regen-docs": "tspd doc . --enable-experimental --llmstxt --output-dir ../../website/src/content/docs/docs/libraries/rest/reference" }, "files": [ diff --git a/packages/spec-dashboard/package.json b/packages/spec-dashboard/package.json index f241c9e0eb0..1771864c1b3 100644 --- a/packages/spec-dashboard/package.json +++ b/packages/spec-dashboard/package.json @@ -12,8 +12,8 @@ "test:skip": "vitest run", "test:ui": "vitest --ui", "test:ci": "vitest run --coverage --reporter=junit --reporter=default", - "lint": "eslint . --max-warnings=0", - "lint:fix": "eslint . --fix" + "lint": "oxlint . --deny-warnings", + "lint:fix": "oxlint . --fix" }, "exports": { ".": { diff --git a/packages/sse/package.json b/packages/sse/package.json index f6916f686bc..76e90678cfd 100644 --- a/packages/sse/package.json +++ b/packages/sse/package.json @@ -39,8 +39,8 @@ "test:watch": "vitest -w", "test:ui": "vitest --ui", "test-official": "vitest run --coverage --reporter=junit --reporter=default --no-file-parallelism", - "lint": "eslint . --ext .ts --max-warnings=0", - "lint:fix": "eslint . --fix --ext .ts", + "lint": "oxlint . --deny-warnings", + "lint:fix": "oxlint . --fix", "regen-docs": "tspd doc . --enable-experimental --output-dir ../../website/src/content/docs/docs/libraries/sse/reference" }, "files": [ diff --git a/packages/standalone/package.json b/packages/standalone/package.json index 3bfea59972f..c6364e9be17 100644 --- a/packages/standalone/package.json +++ b/packages/standalone/package.json @@ -30,8 +30,8 @@ "test:e2e": "pnpm check", "test:watch": "vitest -w", "test:ui": "vitest --ui", - "lint": "eslint . --ext .ts --max-warnings=0", - "lint:fix": "eslint . --fix --ext .ts" + "lint": "oxlint . --deny-warnings", + "lint:fix": "oxlint . --fix" }, "files": [ "lib/*.tsp", diff --git a/packages/streams/package.json b/packages/streams/package.json index 78e5852fc02..aef688c0ab7 100644 --- a/packages/streams/package.json +++ b/packages/streams/package.json @@ -43,8 +43,8 @@ "test:watch": "vitest -w", "test:ui": "vitest --ui", "test-official": "vitest run --coverage --reporter=junit --reporter=default --no-file-parallelism", - "lint": "eslint . --ext .ts --max-warnings=0", - "lint:fix": "eslint . --fix --ext .ts", + "lint": "oxlint . --deny-warnings", + "lint:fix": "oxlint . --fix", "regen-docs": "tspd doc . --enable-experimental --llmstxt --output-dir ../../website/src/content/docs/docs/libraries/streams/reference" }, "files": [ diff --git a/packages/tmlanguage-generator/package.json b/packages/tmlanguage-generator/package.json index 7ed9762bc50..480f1b35931 100644 --- a/packages/tmlanguage-generator/package.json +++ b/packages/tmlanguage-generator/package.json @@ -31,8 +31,8 @@ "clean": "rimraf ./dist ./temp", "build": "tsc -p tsconfig.build.json", "watch": "tsc -p tsconfig.build.json --watch", - "lint": "eslint . --max-warnings=0", - "lint:fix": "eslint . --fix" + "lint": "oxlint . --deny-warnings", + "lint:fix": "oxlint . --fix" }, "files": [ "dist/**", diff --git a/packages/tspd/package.json b/packages/tspd/package.json index 76a3f491c0d..48f762eee3c 100644 --- a/packages/tspd/package.json +++ b/packages/tspd/package.json @@ -46,8 +46,8 @@ "test:watch": "vitest --watch", "test:ui": "vitest --ui", "test:ci": "vitest run --coverage --reporter=junit --reporter=default", - "lint": "eslint . --max-warnings=0", - "lint:fix": "eslint . --fix" + "lint": "oxlint . --deny-warnings", + "lint:fix": "oxlint . --fix" }, "files": [ "lib/*.tsp", diff --git a/packages/versioning/package.json b/packages/versioning/package.json index 6c0bdec3159..58e83edbdc5 100644 --- a/packages/versioning/package.json +++ b/packages/versioning/package.json @@ -42,8 +42,8 @@ "test": "vitest run", "test:ui": "vitest --ui", "test:ci": "vitest run --coverage --reporter=junit --reporter=default", - "lint": "eslint . --max-warnings=0", - "lint:fix": "eslint . --fix", + "lint": "oxlint . --deny-warnings", + "lint:fix": "oxlint . --fix", "regen-docs": "tspd doc . --enable-experimental --llmstxt --output-dir ../../website/src/content/docs/docs/libraries/versioning/reference" }, "files": [ diff --git a/packages/xml/package.json b/packages/xml/package.json index 82a424f2d5f..d7391c0cace 100644 --- a/packages/xml/package.json +++ b/packages/xml/package.json @@ -39,8 +39,8 @@ "test:watch": "vitest -w", "test:ui": "vitest --ui", "test-official": "vitest run --coverage --reporter=junit --reporter=default --no-file-parallelism", - "lint": "eslint . --ext .ts --max-warnings=0", - "lint:fix": "eslint . --fix --ext .ts", + "lint": "oxlint . --deny-warnings", + "lint:fix": "oxlint . --fix", "regen-docs": "tspd doc . --enable-experimental --output-dir ../../website/src/content/docs/docs/libraries/xml/reference", "api-extractor": "api-extractor run --local --verbose" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 032a9ef6953..af1f4779588 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -66,9 +66,6 @@ catalogs: '@docsearch/js': specifier: ^4.6.2 version: 4.6.3 - '@eslint/js': - specifier: ^10.0.1 - version: 10.0.1 '@expressive-code/core': specifier: ^0.42.0 version: 0.42.0 @@ -189,18 +186,6 @@ catalogs: '@types/yargs': specifier: ^17.0.35 version: 17.0.35 - '@typescript-eslint/parser': - specifier: ^8.58.1 - version: 8.60.0 - '@typescript-eslint/rule-tester': - specifier: ^8.58.1 - version: 8.60.0 - '@typescript-eslint/types': - specifier: ^8.58.1 - version: 8.60.0 - '@typescript-eslint/utils': - specifier: ^8.58.1 - version: 8.60.0 '@typespec/ts-http-runtime': specifier: 0.3.5 version: 0.3.5 @@ -210,9 +195,6 @@ catalogs: '@vitest/coverage-v8': specifier: ^4.1.3 version: 4.1.7 - '@vitest/eslint-plugin': - specifier: ^1.6.16 - version: 1.6.18 '@vitest/ui': specifier: ^4.1.3 version: 4.1.7 @@ -303,15 +285,6 @@ catalogs: esbuild-plugins-node-modules-polyfill: specifier: ^1.8.1 version: 1.8.1 - eslint: - specifier: ^10.2.0 - version: 10.4.1 - eslint-plugin-react-hooks: - specifier: 7.1.1 - version: 7.1.1 - eslint-plugin-unicorn: - specifier: ^64.0.0 - version: 64.0.0 execa: specifier: ^9.6.1 version: 9.6.1 @@ -354,6 +327,9 @@ catalogs: ora: specifier: ^9.3.0 version: 9.4.0 + oxlint: + specifier: ^1.69.0 + version: 1.69.0 p-limit: specifier: ^7.3.0 version: 7.3.0 @@ -474,9 +450,6 @@ catalogs: typescript: specifier: ~6.0.2 version: 6.0.3 - typescript-eslint: - specifier: ^8.58.1 - version: 8.60.0 uri-template: specifier: ^2.0.0 version: 2.0.0 @@ -539,9 +512,6 @@ importers: '@chronus/github-pr-commenter': specifier: 'catalog:' version: 1.0.6 - '@eslint/js': - specifier: 'catalog:' - version: 10.0.1(eslint@10.4.1) '@microsoft/api-extractor': specifier: 'catalog:' version: 7.58.7(@types/node@25.9.1) @@ -563,27 +533,18 @@ importers: '@vitest/coverage-v8': specifier: 'catalog:' version: 4.1.7(vitest@4.1.7) - '@vitest/eslint-plugin': - specifier: 'catalog:' - version: 1.6.18(@typescript-eslint/eslint-plugin@8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1)(typescript@6.0.3))(eslint@10.4.1)(typescript@6.0.3))(eslint@10.4.1)(typescript@6.0.3)(vitest@4.1.7) c8: specifier: 'catalog:' version: 11.0.0 cspell: specifier: 'catalog:' version: 10.0.0 - eslint: - specifier: 'catalog:' - version: 10.4.1 - eslint-plugin-react-hooks: - specifier: 'catalog:' - version: 7.1.1(eslint@10.4.1) - eslint-plugin-unicorn: - specifier: 'catalog:' - version: 64.0.0(eslint@10.4.1) micromatch: specifier: 'catalog:' version: 4.0.8 + oxlint: + specifier: 'catalog:' + version: 1.69.0(oxlint-tsgolint@0.23.0) picocolors: specifier: 'catalog:' version: 1.1.1 @@ -614,9 +575,6 @@ importers: typescript: specifier: 'catalog:' version: 6.0.3 - typescript-eslint: - specifier: 'catalog:' - version: 8.60.0(eslint@10.4.1)(typescript@6.0.3) vitest: specifier: 'catalog:' version: 4.1.7(@types/node@25.9.1)(@vitest/coverage-v8@4.1.7)(@vitest/ui@4.1.7)(happy-dom@20.9.0)(jsdom@25.0.1)(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(tsx@4.22.3)(yaml@2.9.0)) @@ -952,43 +910,6 @@ importers: specifier: 'catalog:' version: 0.26.9 - packages/eslint-plugin-typespec: - dependencies: - '@typescript-eslint/utils': - specifier: 'catalog:' - version: 8.60.0(eslint@10.4.1)(typescript@6.0.3) - devDependencies: - '@types/node': - specifier: 'catalog:' - version: 25.9.1 - '@typescript-eslint/parser': - specifier: 'catalog:' - version: 8.60.0(eslint@10.4.1)(typescript@6.0.3) - '@typescript-eslint/rule-tester': - specifier: 'catalog:' - version: 8.60.0(eslint@10.4.1)(typescript@6.0.3) - '@typescript-eslint/types': - specifier: 'catalog:' - version: 8.60.0 - '@vitest/coverage-v8': - specifier: 'catalog:' - version: 4.1.7(vitest@4.1.7) - '@vitest/ui': - specifier: 'catalog:' - version: 4.1.7(vitest@4.1.7) - eslint: - specifier: 'catalog:' - version: 10.4.1 - rimraf: - specifier: 'catalog:' - version: 6.1.3 - typescript: - specifier: 'catalog:' - version: 6.0.3 - vitest: - specifier: 'catalog:' - version: 4.1.7(@types/node@25.9.1)(@vitest/coverage-v8@4.1.7)(@vitest/ui@4.1.7)(happy-dom@20.9.0)(jsdom@25.0.1)(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(tsx@4.22.3)(yaml@2.9.0)) - packages/events: devDependencies: '@types/node': @@ -1087,7 +1008,7 @@ importers: version: 8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(tsx@4.22.3)(yaml@2.9.0) vite-plugin-checker: specifier: 'catalog:' - version: 0.14.1(eslint@10.4.1)(optionator@0.9.4)(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(tsx@4.22.3)(yaml@2.9.0)) + version: 0.14.1(eslint@10.4.1)(optionator@0.9.4)(oxlint@1.69.0(oxlint-tsgolint@0.23.0))(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(tsx@4.22.3)(yaml@2.9.0)) vite-plugin-dts: specifier: 'catalog:' version: 5.0.1(@microsoft/api-extractor@7.58.7(@types/node@25.9.1))(esbuild@0.28.0)(rolldown@1.0.2)(rollup@4.60.4)(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(tsx@4.22.3)(yaml@2.9.0)) @@ -1977,7 +1898,7 @@ importers: version: 8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(tsx@4.22.3)(yaml@2.9.0) vite-plugin-checker: specifier: 'catalog:' - version: 0.14.1(eslint@10.4.1)(optionator@0.9.4)(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(tsx@4.22.3)(yaml@2.9.0)) + version: 0.14.1(eslint@10.4.1)(optionator@0.9.4)(oxlint@1.69.0(oxlint-tsgolint@0.23.0))(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(tsx@4.22.3)(yaml@2.9.0)) vite-plugin-dts: specifier: 'catalog:' version: 5.0.1(@microsoft/api-extractor@7.58.7(@types/node@25.9.1))(esbuild@0.28.0)(rolldown@1.0.2)(rollup@4.60.4)(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(tsx@4.22.3)(yaml@2.9.0)) @@ -2214,7 +2135,7 @@ importers: version: 8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(tsx@4.22.3)(yaml@2.9.0) vite-plugin-checker: specifier: 'catalog:' - version: 0.14.1(eslint@10.4.1)(optionator@0.9.4)(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(tsx@4.22.3)(yaml@2.9.0)) + version: 0.14.1(eslint@10.4.1)(optionator@0.9.4)(oxlint@1.69.0(oxlint-tsgolint@0.23.0))(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(tsx@4.22.3)(yaml@2.9.0)) vite-plugin-dts: specifier: 'catalog:' version: 5.0.1(@microsoft/api-extractor@7.58.7(@types/node@25.9.1))(esbuild@0.28.0)(rolldown@1.0.2)(rollup@4.60.4)(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(tsx@4.22.3)(yaml@2.9.0)) @@ -2443,7 +2364,7 @@ importers: version: 8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(tsx@4.22.3)(yaml@2.9.0) vite-plugin-checker: specifier: 'catalog:' - version: 0.14.1(eslint@10.4.1)(optionator@0.9.4)(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(tsx@4.22.3)(yaml@2.9.0)) + version: 0.14.1(eslint@10.4.1)(optionator@0.9.4)(oxlint@1.69.0(oxlint-tsgolint@0.23.0))(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(tsx@4.22.3)(yaml@2.9.0)) vite-plugin-dts: specifier: 'catalog:' version: 5.0.1(@microsoft/api-extractor@7.58.7(@types/node@25.9.1))(esbuild@0.28.0)(rolldown@1.0.2)(rollup@4.60.4)(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(tsx@4.22.3)(yaml@2.9.0)) @@ -4227,15 +4148,6 @@ packages: 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} @@ -5664,6 +5576,158 @@ packages: cpu: [x64] os: [win32] + '@oxlint-tsgolint/darwin-arm64@0.23.0': + resolution: {integrity: sha512-gOs9PVr2wEg4ox9z0aJo+RKhhImW86YL5N6yav8BK/rgPsIrwN/igSZ+pbRr723NFvUNKde9fgMhRA6JrXAOZw==} + cpu: [arm64] + os: [darwin] + + '@oxlint-tsgolint/darwin-x64@0.23.0': + resolution: {integrity: sha512-kjJ8B+7n4tB9VJdxS5A9GdJt6/bYpzbu4lXp2uO1S3sRmCB5gDEABlGoiePNApRWaW+xqL4b4xgiE727jSLhuA==} + cpu: [x64] + os: [darwin] + + '@oxlint-tsgolint/linux-arm64@0.23.0': + resolution: {integrity: sha512-6dCZuKNu135seMXilkRk9SpCx6i1XgmiipYGalLij5WVRX6ZYS8c4xI7preN/zv9fCXhsQclTIMDu2Y/cytTjw==} + cpu: [arm64] + os: [linux] + + '@oxlint-tsgolint/linux-x64@0.23.0': + resolution: {integrity: sha512-3bdilnyA7kmSTjK27rvjIjSxL5SIg3wt7vwNiRkouWB83ytssyKnuGvxSYJxgMEmFpSutzaBzcCUM2jDtPGcgA==} + cpu: [x64] + os: [linux] + + '@oxlint-tsgolint/win32-arm64@0.23.0': + resolution: {integrity: sha512-j+OEp44SVYiQ+ZD+uttsX7u6L9SvmbbQ77SO1pSFCcJlsVMeCk8qZsjhKfGKuT/jIA+ipOJMVs/+pqUfObBWNw==} + cpu: [arm64] + os: [win32] + + '@oxlint-tsgolint/win32-x64@0.23.0': + resolution: {integrity: sha512-5MyjFuqf+g8OUPJBSGWHJtmoWnzFJYyOg4To9WMQshZYEWig/vtu7JtJ03VWnzHv9LJkAUeApY0gVCOywFR/iQ==} + cpu: [x64] + os: [win32] + + '@oxlint/binding-android-arm-eabi@1.69.0': + resolution: {integrity: sha512-DKQQbD5cZ/MYfDgDI7YGyGD9FSxABlsBsYFo5p26lloob543tP9+4N3guwdXIYJN+7HSZxLe8YJuwcOWw5qnHg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [android] + + '@oxlint/binding-android-arm64@1.69.0': + resolution: {integrity: sha512-lEhb+I5pr4inux+JFwfCa1HRq3Os7NirEFQ0H1I35SVEHPm6byX0Ah47xmRha3qi6LAkxUcxViL8o/9PivjzBg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + + '@oxlint/binding-darwin-arm64@1.69.0': + resolution: {integrity: sha512-GY2YE8lOZW59BW1Ia1y+1gR0XyjrZRvVWHAr8LGeGhYHE0OQJ/7cRKXTkx1P+E9/6awEc3SX8a68SFTjh/E//A==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + + '@oxlint/binding-darwin-x64@1.69.0': + resolution: {integrity: sha512-ax1oZnOjHX3LB7myQyHEaQkDwfLb6str3/nSP6O7EVUviQGNkEGzGV0EqcBJWK+Ufwx0l4xPgyYayurvhAdl2Q==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + + '@oxlint/binding-freebsd-x64@1.69.0': + resolution: {integrity: sha512-kHWeHv4g2h8NY+mpCxzCtY4uerMJWTN/TSnNj1CPbakFpHEJ6cTya2wWV0pDSYWOJ2+0UiEbhn3AtXxHtsnKjg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + + '@oxlint/binding-linux-arm-gnueabihf@1.69.0': + resolution: {integrity: sha512-gq84vM1a1oEehXo27YCDzGVcxPsZDI1yswZwz2Da1/cbnWtrL16XZZnz0G/+gIU8edtHpfjxq5c+vWEHqJfWoQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxlint/binding-linux-arm-musleabihf@1.69.0': + resolution: {integrity: sha512-kIqEa98JQ0VRyrcncxA417m2AzasqTlD+FyVT1AksjvjkqQcvm7pBWYvoW3/mpyOP2XYvi5nSCCTIe6De1yu5g==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxlint/binding-linux-arm64-gnu@1.69.0': + resolution: {integrity: sha512-j+xYiXozxGWx2cpjCrwwGR4awTxPFsRv3JZrv23RCogEPMc4R7UqjHW47p/RG0aRlbWiROCJ8coUfCwy0dvzHA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@oxlint/binding-linux-arm64-musl@1.69.0': + resolution: {integrity: sha512-xEPpNppTfN1l/nM7gYSf9iocscu/as+p/7vxkLeLEKnYU+09Dm+5V6IhDYDh+Uz6FajEupWwCLt5SOG0y1PCKg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@oxlint/binding-linux-ppc64-gnu@1.69.0': + resolution: {integrity: sha512-Ug0+eU7HJBlek+SjklYH62IlOMirEJsdxpihH0kSqX0XdrDD4NdHpQc10fK1JC35yn6KrrcN+uYzlHD38XAf8Q==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@oxlint/binding-linux-riscv64-gnu@1.69.0': + resolution: {integrity: sha512-iEyI3GIg0l/s3G4qy2TlaaWKdzj4PJJStwtlocpDTC00PY9hZueotf6OKUj9+yfQh0lrpBW/pLMgTztbAHKJEg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@oxlint/binding-linux-riscv64-musl@1.69.0': + resolution: {integrity: sha512-NjHjpiI4WIKSMwuoJSZi5VToPeoYOS1FR52HLIDG6lidMdqquusgtODb4iLk0+lb1q3Z0nv2/aPRcC/olmpQGg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + libc: [musl] + + '@oxlint/binding-linux-s390x-gnu@1.69.0': + resolution: {integrity: sha512-Ai/prDewoItkDXbp38gwGZi41DycZbUTZJ3UidwoHgQC0/DaqC2TGdtBTQLJ6hSD+SAxASzh8+/eSBPmxfOacA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@oxlint/binding-linux-x64-gnu@1.69.0': + resolution: {integrity: sha512-Gt3KHgp46mRKz4sJeaASmKvD8ayXookRw07RMf+NowhEztGGDZ7VrXpoW96XuKJLjFukWizOFVNjmYb/u7caNQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@oxlint/binding-linux-x64-musl@1.69.0': + resolution: {integrity: sha512-7tQhJ2+p/oHv1zcfnjYI7YVzC/7iBaVOfIvFYtxdJ5F45mWgEdrCyXZXZGfiLey5t/5JhOhsaMnnv1kAzckd7g==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [musl] + + '@oxlint/binding-openharmony-arm64@1.69.0': + resolution: {integrity: sha512-vmWz6TKp/3hfA4lksR0zHBv/6xuX1jhym6eqOjdH2DXsDDHZWcp2f0KG0VCAnlVbIrjk29G4wAWMXb/Hn1YobA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + + '@oxlint/binding-win32-arm64-msvc@1.69.0': + resolution: {integrity: sha512-9RExaLgmaw6IoIkU9cTpT71mLfI0xZ86iZH8x518LVsOkjquJMYqb9P7KpC8lgd1t0Dxs41p2pxynq4XR3Ttzw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + + '@oxlint/binding-win32-ia32-msvc@1.69.0': + resolution: {integrity: sha512-1907kRPF8/PrcIw1E7LMs9JbVrpgnt/MvFdss3an8oDkYNAACXzTntV3t3869ZZhMZxb2AzRGbz1pA/jdFatXA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ia32] + os: [win32] + + '@oxlint/binding-win32-x64-msvc@1.69.0': + resolution: {integrity: sha512-w8SOXv3mT9Fi6jY8OXdXCfnvX/3KNLXGNr4HEz2TA7S4Mv/PYAOmpB8y/ge40mxvBMgGNaSaaDwZpAsQn7HtWA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + '@pagefind/darwin-arm64@1.5.2': resolution: {integrity: sha512-MXpI+7HsAdPkvJ0gk9xj9g541BCqBZOBbdwj9g6lB5LCj6kSV6nqDSjzcAJwvOsfu0fjwvC8hQU+ecfhp+MpiQ==} cpu: [arm64] @@ -7259,72 +7323,6 @@ packages: '@types/yoga-layout@1.9.2': resolution: {integrity: sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw==} - '@typescript-eslint/eslint-plugin@8.60.0': - resolution: {integrity: sha512-QYb/sa74/s7OKMbACMjrYnGspj9Hs5YI5aaffSL65UfeBUzVzBJfVo3oWSpbzPurvm7yaCCo2Lk7lVj610HqKw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - '@typescript-eslint/parser': ^8.60.0 - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.1.0' - - '@typescript-eslint/parser@8.60.0': - resolution: {integrity: sha512-fcqpj/MyK4sxDPcbe7STNPbpQL4RLZOPWuaTmwZYuc+hJKzRf58yRxfhqGpc6PIq9ZyfSBpfHgmUHmHs0KwHwg==} - 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.60.0': - resolution: {integrity: sha512-aZu74NNKJeUWqCjDddzdiKaS82dgYgV/vmf+Ui3ZdZejmgfXR/q+pRumgobnQ2cCJTgGTWp4ypiwsuofFubavg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.1.0' - - '@typescript-eslint/rule-tester@8.60.0': - resolution: {integrity: sha512-lQct+GlpO4JKKxZbo+ZTWjnxA2BqSoOWmJYvQxezuJGGpl6Lk2XTd2odVP/7lAJUQaw3Qip+qo/1gsAda4jGlA==} - 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/scope-manager@8.60.0': - resolution: {integrity: sha512-pFzqhllJMs+jghLQWzV00ds39xLzuyqPSev5pd8f4Ir0rtKR3ZLUB4/4dhjOFighWb9larvtfJvqL+4yKDI3Xw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/tsconfig-utils@8.60.0': - resolution: {integrity: sha512-BZPR3RGYlAXnly6ymAxfkVn5rCbZzQNou0rxv3GfWZ8cTQp+hhVd73khbGLAd8k1TlAPLISH337M+tAgAnaJDQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.1.0' - - '@typescript-eslint/type-utils@8.60.0': - resolution: {integrity: sha512-SX46wEUtitCpq7AN38HkUU/+zvUpdKf7ephtWAFgckH8O7PQIyL5gvrhQgBLuEYgLfuKWOVvWVskMbuFHAz5xg==} - 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.60.0': - resolution: {integrity: sha512-AsE7x2XaAK+CVbeih0Fvbn+r1qHxtpLDJ3XUuFcIinT318T90yHMJC+Zgv+jUuDjQQd06HKwxnDu6sz1IcTilA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/typescript-estree@8.60.0': - resolution: {integrity: sha512-3AcZNBGMClm6CXDyo8kYvVGT/sx29sS0oBsIb9oZI2gunA4Vm2M3YHzRLPvsUBBsl+yB5FPtltq7gGH0iTlp9g==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.1.0' - - '@typescript-eslint/utils@8.60.0': - resolution: {integrity: sha512-HtXuPfrHTyBDkameWpl+vJb1Uevu2tznAyahM1Oc4AENidCLTPiZDWIo4GfcxNdC/RcfGcadzzkqbRG87dUrQA==} - 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.60.0': - resolution: {integrity: sha512-9WI52t8ZGLVGrPMBet25yAftqY/n95+zmoUUtJBBQTKDSKUu7OsPTroT2op7U9JatkoRccL0YkWDNMFfC4Sjxg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typespec/ts-http-runtime@0.3.5': resolution: {integrity: sha512-yURCknZhvywvQItHMMmFSo+fq5arCUIyz/CVk7jD89MSai7dkaX8ufjCWp3NttLojoTVbcE72ri+be/TnEbMHw==} engines: {node: '>=20.0.0'} @@ -7363,22 +7361,6 @@ packages: '@vitest/browser': optional: true - '@vitest/eslint-plugin@1.6.18': - resolution: {integrity: sha512-J6U4X0jH3NwTuYouvrJn6I8ypTOU+GhKEjyVwpoPnDuc23usa/xi/R0caWLBbNp3xLy3/rL1YkuJuneTMVV4Mg==} - engines: {node: '>=18'} - peerDependencies: - '@typescript-eslint/eslint-plugin': '*' - eslint: '>=8.57.0' - typescript: '>=5.0.0' - vitest: '*' - peerDependenciesMeta: - '@typescript-eslint/eslint-plugin': - optional: true - typescript: - optional: true - vitest: - optional: true - '@vitest/expect@3.2.4': resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==} @@ -8171,10 +8153,6 @@ packages: buffer@6.0.3: resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} - builtin-modules@5.2.0: - resolution: {integrity: sha512-02yxLeyxF4dNl6SlY6/5HfRSrSdZ/sCPoxy2kZNP5dZZX8LSAD9aE2gtJIUgWrsQTiMPl3mxESyrobSwvRGisQ==} - engines: {node: '>=18.20'} - builtins@5.1.0: resolution: {integrity: sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==} @@ -8340,10 +8318,6 @@ packages: resolution: {integrity: sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==} engines: {node: '>=8'} - clean-regexp@1.0.0: - resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} - engines: {node: '>=4'} - clean-stack@2.2.0: resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} engines: {node: '>=6'} @@ -8560,9 +8534,6 @@ packages: resolution: {integrity: sha512-TG2hpqe4ELx54QER/S3HQ9SRVnQnGBtKUz5bLQWtYAQ+o6GpgMs6sYUvaiJjVxb+UXwhRhAEP3m7LbsIZ77Hmw==} engines: {node: '>= 0.8'} - core-js-compat@3.49.0: - resolution: {integrity: sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==} - core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -9208,18 +9179,6 @@ packages: resolution: {integrity: sha512-0X5vEQeNniQRbGm+ec9Ow6LWj4RqZEcjPSfZ+t8qLPWqwyaBa67GrNetTxd0aYKoHrpbZeoRRlvA2gz9HujiEg==} engines: {node: ^10.12.0 || >=12.0.0} - eslint-plugin-react-hooks@7.1.1: - resolution: {integrity: sha512-f2I7Gw6JbvCexzIInuSbZpfdQ44D7iqdWX01FKLvrPgqxoE7oMj8clOfto8U6vYiz4yd5oKu39rRSVOe1zRu0g==} - engines: {node: '>=18'} - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 || ^10.0.0 - - eslint-plugin-unicorn@64.0.0: - resolution: {integrity: sha512-rNZwalHh8i0UfPlhNwg5BTUO1CMdKNmjqe+TgzOTZnpKoi8VBgsW7u9qCHIdpxEzZ1uwrJrPF0uRb7l//K38gA==} - engines: {node: ^20.10.0 || >=21.0.0} - peerDependencies: - eslint: '>=9.38.0' - eslint-scope@9.1.2: resolution: {integrity: sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} @@ -9438,10 +9397,6 @@ packages: resolution: {integrity: sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==} engines: {node: '>=4.0.0'} - find-up-simple@1.0.1: - resolution: {integrity: sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==} - engines: {node: '>=18'} - find-up@3.0.0: resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} engines: {node: '>=6'} @@ -9625,10 +9580,6 @@ packages: resolution: {integrity: sha512-1pgFdhK3J2LeM+dVf2Pd424yHx2ou338lC0ErNP2hPx4j8eW1Sp0XqSjNxtk6Tc4Kr5wlWtSvz8cn2yb7/SG/w==} engines: {node: '>=20'} - globals@17.6.0: - resolution: {integrity: sha512-sepffkT8stwnIYbsMBpoCHJuJM5l98FUF2AnE07hfvE0m/qp3R586hw4jF4uadbhvg1ooIdzuu7CsfD2jzCaNA==} - engines: {node: '>=18'} - globalyzer@0.1.0: resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} @@ -9776,12 +9727,6 @@ packages: hastscript@9.0.1: resolution: {integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==} - hermes-estree@0.25.1: - resolution: {integrity: sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==} - - hermes-parser@0.25.1: - resolution: {integrity: sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==} - highlight.js@11.0.1: resolution: {integrity: sha512-EqYpWyTF2s8nMfttfBA2yLKPNoZCO33pLS4MnbXQ4hECf1TKujCt1Kq7QAdrio7roL4+CqsfjqwYj4tYgq0pJQ==} engines: {node: '>=12.0.0'} @@ -9933,10 +9878,6 @@ packages: resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} engines: {node: '>=8'} - indent-string@5.0.0: - resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} - engines: {node: '>=12'} - index-to-position@1.2.0: resolution: {integrity: sha512-Yg7+ztRkqslMAS2iFaU+Oa4KTSidr63OsFGlOrJoW981kIYO3CGCS3wA95P1mUi/IVSJkn0D479KTJpVpvFNuw==} engines: {node: '>=18'} @@ -10016,10 +9957,6 @@ packages: is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - is-builtin-module@5.0.0: - resolution: {integrity: sha512-f4RqJKBUe5rQkJ2eJEJBXSticB3hGbN9j0yxxMQFqIW89Jp9WYFtzfTcRlstDKVUTRzSOTLKRfO9vIztenwtxA==} - engines: {node: '>=18.20'} - is-ci@2.0.0: resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==} hasBin: true @@ -10504,9 +10441,6 @@ packages: lodash.kebabcase@4.1.1: resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==} - lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - lodash.once@4.1.1: resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} @@ -11248,6 +11182,23 @@ packages: oxc-resolver@11.20.0: resolution: {integrity: sha512-CblytBiV/a/ZXY34dsVU2NxhIOxMXst8CvDCtyBelVITgd7PLrKzbEbA6oKLdPjvDKDzCiW48qzmzZ+mYaqn+g==} + oxlint-tsgolint@0.23.0: + resolution: {integrity: sha512-3mBv3CoPbh8dFbzfDGIWa2ytZjn2v+3EX4aKRXjIhsoGFzG8GCjfRirz3rwZf1wYbZzsNLTSgpw8VjQuWdp/jA==} + hasBin: true + + oxlint@1.69.0: + resolution: {integrity: sha512-ypZkK/aDc5NQV8zIR6s2H2Tl3aNW8FmJ1m9+2qsaYuRenl8vgnHNCGwTHviWJdUQzglOlHFchgopdtGhSy17Rw==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + oxlint-tsgolint: '>=0.22.1' + vite-plus: '*' + peerDependenciesMeta: + oxlint-tsgolint: + optional: true + vite-plus: + optional: true + p-cancelable@2.1.1: resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} engines: {node: '>=8'} @@ -11896,14 +11847,6 @@ packages: regex@6.1.0: resolution: {integrity: sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==} - regexp-tree@0.1.27: - resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} - hasBin: true - - regjsparser@0.13.1: - resolution: {integrity: sha512-dLsljMd9sqwRkby8zhO1gSg3PnJIBFid8f4CQj/sXx+7cKx+E7u0PKhZ+U4wmhx7EfmtvnA318oVaIkAB1lRJw==} - hasBin: true - rehype-expressive-code@0.42.0: resolution: {integrity: sha512-8rp/1YMEVVSYbtz+bFBx+uSx3vA4i4T8RwRm5Q/IWbucQnnQqQ0hDqtmKOr8tv+59Cik6cu5aH3WPo0I7csuTA==} @@ -12800,12 +12743,6 @@ packages: truncate-utf8-bytes@1.0.2: resolution: {integrity: sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==} - 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'} @@ -12913,13 +12850,6 @@ packages: typescript-auto-import-cache@0.3.6: resolution: {integrity: sha512-RpuHXrknHdVdK7wv/8ug3Fr0WNsNi5l5aB8MYYuXhq2UH5lnEB1htJ1smhtD5VeCsGr2p8mUDtd83LCQDFVgjQ==} - typescript-eslint@8.60.0: - resolution: {integrity: sha512-9f65qWLZdAW9m1JaxBDUHcqRUfL8bkxxXL7XxEfI+F09q56PkBvIfCjLF3yInsDM/BBmwkqmCQdCZe/RYlIWEw==} - 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'} @@ -13754,12 +13684,6 @@ packages: resolution: {integrity: sha512-YnOmtSbv4MTf7RGJMK0FvZ+KD8OEe/J5BNnR0GHhD8J/XcG/Qvxgszm0Un6FTHWW4uHlTgP0IztiXQnGyIR45g==} engines: {node: '>=8'} - zod-validation-error@4.0.2: - resolution: {integrity: sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==} - engines: {node: '>=18.0.0'} - peerDependencies: - zod: ^3.25.0 || ^4.0.0 - zod@3.25.76: resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} @@ -15147,8 +15071,10 @@ snapshots: dependencies: eslint: 10.4.1 eslint-visitor-keys: 3.4.3 + optional: true - '@eslint-community/regexpp@4.12.2': {} + '@eslint-community/regexpp@4.12.2': + optional: true '@eslint/config-array@0.23.5': dependencies: @@ -15157,25 +15083,26 @@ snapshots: minimatch: 10.2.5 transitivePeerDependencies: - supports-color + optional: true '@eslint/config-helpers@0.6.0': dependencies: '@eslint/core': 1.2.1 + optional: true '@eslint/core@1.2.1': dependencies: '@types/json-schema': 7.0.15 + optional: true - '@eslint/js@10.0.1(eslint@10.4.1)': - optionalDependencies: - eslint: 10.4.1 - - '@eslint/object-schema@3.0.5': {} + '@eslint/object-schema@3.0.5': + optional: true '@eslint/plugin-kit@0.7.2': dependencies: '@eslint/core': 1.2.1 levn: 0.4.1 + optional: true '@expressive-code/core@0.42.0': dependencies: @@ -16406,18 +16333,23 @@ snapshots: '@humanfs/core@0.19.2': dependencies: '@humanfs/types': 0.15.0 + optional: true '@humanfs/node@0.16.8': dependencies: '@humanfs/core': 0.19.2 '@humanfs/types': 0.15.0 '@humanwhocodes/retry': 0.4.3 + optional: true - '@humanfs/types@0.15.0': {} + '@humanfs/types@0.15.0': + optional: true - '@humanwhocodes/module-importer@1.0.1': {} + '@humanwhocodes/module-importer@1.0.1': + optional: true - '@humanwhocodes/retry@0.4.3': {} + '@humanwhocodes/retry@0.4.3': + optional: true '@iconify/types@2.0.0': {} @@ -17236,6 +17168,81 @@ snapshots: '@oxc-resolver/binding-win32-x64-msvc@11.20.0': optional: true + '@oxlint-tsgolint/darwin-arm64@0.23.0': + optional: true + + '@oxlint-tsgolint/darwin-x64@0.23.0': + optional: true + + '@oxlint-tsgolint/linux-arm64@0.23.0': + optional: true + + '@oxlint-tsgolint/linux-x64@0.23.0': + optional: true + + '@oxlint-tsgolint/win32-arm64@0.23.0': + optional: true + + '@oxlint-tsgolint/win32-x64@0.23.0': + optional: true + + '@oxlint/binding-android-arm-eabi@1.69.0': + optional: true + + '@oxlint/binding-android-arm64@1.69.0': + optional: true + + '@oxlint/binding-darwin-arm64@1.69.0': + optional: true + + '@oxlint/binding-darwin-x64@1.69.0': + optional: true + + '@oxlint/binding-freebsd-x64@1.69.0': + optional: true + + '@oxlint/binding-linux-arm-gnueabihf@1.69.0': + optional: true + + '@oxlint/binding-linux-arm-musleabihf@1.69.0': + optional: true + + '@oxlint/binding-linux-arm64-gnu@1.69.0': + optional: true + + '@oxlint/binding-linux-arm64-musl@1.69.0': + optional: true + + '@oxlint/binding-linux-ppc64-gnu@1.69.0': + optional: true + + '@oxlint/binding-linux-riscv64-gnu@1.69.0': + optional: true + + '@oxlint/binding-linux-riscv64-musl@1.69.0': + optional: true + + '@oxlint/binding-linux-s390x-gnu@1.69.0': + optional: true + + '@oxlint/binding-linux-x64-gnu@1.69.0': + optional: true + + '@oxlint/binding-linux-x64-musl@1.69.0': + optional: true + + '@oxlint/binding-openharmony-arm64@1.69.0': + optional: true + + '@oxlint/binding-win32-arm64-msvc@1.69.0': + optional: true + + '@oxlint/binding-win32-ia32-msvc@1.69.0': + optional: true + + '@oxlint/binding-win32-x64-msvc@1.69.0': + optional: true + '@pagefind/darwin-arm64@1.5.2': optional: true @@ -19166,7 +19173,8 @@ snapshots: '@types/emscripten@1.41.5': {} - '@types/esrecurse@4.3.1': {} + '@types/esrecurse@4.3.1': + optional: true '@types/estree-jsx@1.0.5': dependencies: @@ -19203,7 +19211,8 @@ snapshots: '@types/js-yaml@4.0.9': {} - '@types/json-schema@7.0.15': {} + '@types/json-schema@7.0.15': + optional: true '@types/keyv@3.1.4': dependencies: @@ -19330,111 +19339,6 @@ snapshots: '@types/yoga-layout@1.9.2': {} - '@typescript-eslint/eslint-plugin@8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1)(typescript@6.0.3))(eslint@10.4.1)(typescript@6.0.3)': - dependencies: - '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.60.0(eslint@10.4.1)(typescript@6.0.3) - '@typescript-eslint/scope-manager': 8.60.0 - '@typescript-eslint/type-utils': 8.60.0(eslint@10.4.1)(typescript@6.0.3) - '@typescript-eslint/utils': 8.60.0(eslint@10.4.1)(typescript@6.0.3) - '@typescript-eslint/visitor-keys': 8.60.0 - eslint: 10.4.1 - ignore: 7.0.5 - natural-compare: 1.4.0 - ts-api-utils: 2.5.0(typescript@6.0.3) - typescript: 6.0.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@8.60.0(eslint@10.4.1)(typescript@6.0.3)': - dependencies: - '@typescript-eslint/scope-manager': 8.60.0 - '@typescript-eslint/types': 8.60.0 - '@typescript-eslint/typescript-estree': 8.60.0(typescript@6.0.3) - '@typescript-eslint/visitor-keys': 8.60.0 - debug: 4.4.3 - eslint: 10.4.1 - typescript: 6.0.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/project-service@8.60.0(typescript@6.0.3)': - dependencies: - '@typescript-eslint/tsconfig-utils': 8.60.0(typescript@6.0.3) - '@typescript-eslint/types': 8.60.0 - debug: 4.4.3 - typescript: 6.0.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/rule-tester@8.60.0(eslint@10.4.1)(typescript@6.0.3)': - dependencies: - '@typescript-eslint/parser': 8.60.0(eslint@10.4.1)(typescript@6.0.3) - '@typescript-eslint/typescript-estree': 8.60.0(typescript@6.0.3) - '@typescript-eslint/utils': 8.60.0(eslint@10.4.1)(typescript@6.0.3) - ajv: 6.15.0 - eslint: 10.4.1 - json-stable-stringify-without-jsonify: 1.0.1 - lodash.merge: 4.6.2 - semver: 7.8.1 - typescript: 6.0.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/scope-manager@8.60.0': - dependencies: - '@typescript-eslint/types': 8.60.0 - '@typescript-eslint/visitor-keys': 8.60.0 - - '@typescript-eslint/tsconfig-utils@8.60.0(typescript@6.0.3)': - dependencies: - typescript: 6.0.3 - - '@typescript-eslint/type-utils@8.60.0(eslint@10.4.1)(typescript@6.0.3)': - dependencies: - '@typescript-eslint/types': 8.60.0 - '@typescript-eslint/typescript-estree': 8.60.0(typescript@6.0.3) - '@typescript-eslint/utils': 8.60.0(eslint@10.4.1)(typescript@6.0.3) - debug: 4.4.3 - eslint: 10.4.1 - ts-api-utils: 2.5.0(typescript@6.0.3) - typescript: 6.0.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/types@8.60.0': {} - - '@typescript-eslint/typescript-estree@8.60.0(typescript@6.0.3)': - dependencies: - '@typescript-eslint/project-service': 8.60.0(typescript@6.0.3) - '@typescript-eslint/tsconfig-utils': 8.60.0(typescript@6.0.3) - '@typescript-eslint/types': 8.60.0 - '@typescript-eslint/visitor-keys': 8.60.0 - debug: 4.4.3 - minimatch: 10.2.5 - semver: 7.8.1 - tinyglobby: 0.2.16 - ts-api-utils: 2.5.0(typescript@6.0.3) - typescript: 6.0.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@8.60.0(eslint@10.4.1)(typescript@6.0.3)': - dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.4.1) - '@typescript-eslint/scope-manager': 8.60.0 - '@typescript-eslint/types': 8.60.0 - '@typescript-eslint/typescript-estree': 8.60.0(typescript@6.0.3) - eslint: 10.4.1 - typescript: 6.0.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/visitor-keys@8.60.0': - dependencies: - '@typescript-eslint/types': 8.60.0 - eslint-visitor-keys: 5.0.1 - '@typespec/ts-http-runtime@0.3.5': dependencies: http-proxy-agent: 7.0.2 @@ -19481,18 +19385,6 @@ snapshots: tinyrainbow: 3.1.0 vitest: 4.1.7(@types/node@25.9.1)(@vitest/coverage-v8@4.1.7)(@vitest/ui@4.1.7)(happy-dom@20.9.0)(jsdom@25.0.1)(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(tsx@4.22.3)(yaml@2.9.0)) - '@vitest/eslint-plugin@1.6.18(@typescript-eslint/eslint-plugin@8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1)(typescript@6.0.3))(eslint@10.4.1)(typescript@6.0.3))(eslint@10.4.1)(typescript@6.0.3)(vitest@4.1.7)': - dependencies: - '@typescript-eslint/scope-manager': 8.60.0 - '@typescript-eslint/utils': 8.60.0(eslint@10.4.1)(typescript@6.0.3) - eslint: 10.4.1 - optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1)(typescript@6.0.3))(eslint@10.4.1)(typescript@6.0.3) - typescript: 6.0.3 - vitest: 4.1.7(@types/node@25.9.1)(@vitest/coverage-v8@4.1.7)(@vitest/ui@4.1.7)(happy-dom@20.9.0)(jsdom@25.0.1)(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(tsx@4.22.3)(yaml@2.9.0)) - transitivePeerDependencies: - - supports-color - '@vitest/expect@3.2.4': dependencies: '@types/chai': 5.2.3 @@ -19960,7 +19852,7 @@ snapshots: algoliasearch: 4.27.0 clipanion: 4.0.0-rc.4(typanion@3.14.0) diff: 5.2.2 - ink: 3.2.0(@types/react@19.2.16)(react@19.2.7) + ink: 3.2.0(@types/react@19.2.16)(react@17.0.2) ink-text-input: 4.0.3(ink@3.2.0(@types/react@19.2.16)(react@17.0.2))(react@17.0.2) react: 17.0.2 semver: 7.8.1 @@ -20123,7 +20015,7 @@ snapshots: '@yarnpkg/plugin-git': 3.2.0(@yarnpkg/core@4.8.0(typanion@3.14.0))(typanion@3.14.0) clipanion: 4.0.0-rc.4(typanion@3.14.0) es-toolkit: 1.47.0 - ink: 3.2.0(@types/react@19.2.16)(react@17.0.2) + ink: 3.2.0(@types/react@19.2.16)(react@19.2.7) react: 17.0.2 semver: 7.8.1 tslib: 2.8.1 @@ -20278,6 +20170,7 @@ snapshots: fast-json-stable-stringify: 2.1.0 json-schema-traverse: 0.4.1 uri-js: 4.4.1 + optional: true ajv@8.18.0: dependencies: @@ -20679,8 +20572,6 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 - builtin-modules@5.2.0: {} - builtins@5.1.0: dependencies: semver: 7.8.1 @@ -20871,10 +20762,6 @@ snapshots: ci-info@4.4.0: {} - clean-regexp@1.0.0: - dependencies: - escape-string-regexp: 1.0.5 - clean-stack@2.2.0: {} cli-boxes@2.2.1: {} @@ -21058,10 +20945,6 @@ snapshots: depd: 2.0.0 keygrip: 1.1.0 - core-js-compat@3.49.0: - dependencies: - browserslist: 4.28.2 - core-util-is@1.0.3: {} cose-base@1.0.3: @@ -21457,7 +21340,8 @@ snapshots: deep-extend@0.6.0: {} - deep-is@0.1.4: {} + deep-is@0.1.4: + optional: true default-browser-id@5.0.1: {} @@ -21805,47 +21689,19 @@ snapshots: '@babel/code-frame': 7.12.11 chalk: 4.1.2 - eslint-plugin-react-hooks@7.1.1(eslint@10.4.1): - dependencies: - '@babel/core': 7.29.7 - '@babel/parser': 7.29.7 - eslint: 10.4.1 - hermes-parser: 0.25.1 - zod: 4.4.3 - zod-validation-error: 4.0.2(zod@4.4.3) - transitivePeerDependencies: - - supports-color - - eslint-plugin-unicorn@64.0.0(eslint@10.4.1): - dependencies: - '@babel/helper-validator-identifier': 7.29.7 - '@eslint-community/eslint-utils': 4.9.1(eslint@10.4.1) - change-case: 5.4.4 - ci-info: 4.4.0 - clean-regexp: 1.0.0 - core-js-compat: 3.49.0 - eslint: 10.4.1 - find-up-simple: 1.0.1 - globals: 17.6.0 - indent-string: 5.0.0 - is-builtin-module: 5.0.0 - jsesc: 3.1.0 - pluralize: 8.0.0 - regexp-tree: 0.1.27 - regjsparser: 0.13.1 - semver: 7.8.1 - strip-indent: 4.1.1 - eslint-scope@9.1.2: dependencies: '@types/esrecurse': 4.3.1 '@types/estree': 1.0.9 esrecurse: 4.3.0 estraverse: 5.3.0 + optional: true - eslint-visitor-keys@3.4.3: {} + eslint-visitor-keys@3.4.3: + optional: true - eslint-visitor-keys@5.0.1: {} + eslint-visitor-keys@5.0.1: + optional: true eslint@10.4.1: dependencies: @@ -21881,24 +21737,29 @@ snapshots: optionator: 0.9.4 transitivePeerDependencies: - supports-color + optional: true espree@11.2.0: dependencies: acorn: 8.16.0 acorn-jsx: 5.3.2(acorn@8.16.0) eslint-visitor-keys: 5.0.1 + optional: true esprima@4.0.1: {} esquery@1.7.0: dependencies: estraverse: 5.3.0 + optional: true esrecurse@4.3.0: dependencies: estraverse: 5.3.0 + optional: true - estraverse@5.3.0: {} + estraverse@5.3.0: + optional: true estree-util-attach-comments@3.0.0: dependencies: @@ -22051,7 +21912,8 @@ snapshots: fast-json-stable-stringify@2.1.0: {} - fast-levenshtein@2.0.6: {} + fast-levenshtein@2.0.6: + optional: true fast-safe-stringify@2.1.1: {} @@ -22099,6 +21961,7 @@ snapshots: file-entry-cache@8.0.0: dependencies: flat-cache: 4.0.1 + optional: true fill-range@7.1.1: dependencies: @@ -22125,8 +21988,6 @@ snapshots: dependencies: array-back: 3.1.0 - find-up-simple@1.0.1: {} - find-up@3.0.0: dependencies: locate-path: 3.0.0 @@ -22150,6 +22011,7 @@ snapshots: dependencies: flatted: 3.4.2 keyv: 4.5.4 + optional: true flatted@3.4.2: {} @@ -22281,6 +22143,7 @@ snapshots: glob-parent@6.0.2: dependencies: is-glob: 4.0.3 + optional: true glob@10.5.0: dependencies: @@ -22327,8 +22190,6 @@ snapshots: dependencies: ini: 6.0.0 - globals@17.6.0: {} - globalyzer@0.1.0: {} globby@11.1.0: @@ -22651,12 +22512,6 @@ snapshots: property-information: 7.1.0 space-separated-tokens: 2.0.2 - hermes-estree@0.25.1: {} - - hermes-parser@0.25.1: - dependencies: - hermes-estree: 0.25.1 - highlight.js@11.0.1: {} hosted-git-info@4.1.0: @@ -22797,8 +22652,6 @@ snapshots: indent-string@4.0.0: {} - indent-string@5.0.0: {} - index-to-position@1.2.0: {} individual@3.0.0: {} @@ -22912,10 +22765,6 @@ snapshots: is-arrayish@0.2.1: {} - is-builtin-module@5.0.0: - dependencies: - builtin-modules: 5.2.0 - is-ci@2.0.0: dependencies: ci-info: 2.0.0 @@ -23115,11 +22964,13 @@ snapshots: json-parse-even-better-errors@5.0.0: {} - json-schema-traverse@0.4.1: {} + json-schema-traverse@0.4.1: + optional: true json-schema-traverse@1.0.0: {} - json-stable-stringify-without-jsonify@1.0.1: {} + json-stable-stringify-without-jsonify@1.0.1: + optional: true json-with-bigint@3.5.8: {} @@ -23265,6 +23116,7 @@ snapshots: dependencies: prelude-ls: 1.2.1 type-check: 0.4.0 + optional: true lie@3.3.0: dependencies: @@ -23376,8 +23228,6 @@ snapshots: lodash.kebabcase@4.1.1: {} - lodash.merge@4.6.2: {} - lodash.once@4.1.1: {} lodash.throttle@4.1.1: {} @@ -24181,7 +24031,8 @@ snapshots: napi-build-utils@2.0.0: optional: true - natural-compare@1.4.0: {} + natural-compare@1.4.0: + optional: true negotiator@0.6.3: {} @@ -24440,6 +24291,7 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 word-wrap: 1.2.5 + optional: true ora@8.2.0: dependencies: @@ -24511,6 +24363,39 @@ snapshots: '@oxc-resolver/binding-win32-arm64-msvc': 11.20.0 '@oxc-resolver/binding-win32-x64-msvc': 11.20.0 + oxlint-tsgolint@0.23.0: + optionalDependencies: + '@oxlint-tsgolint/darwin-arm64': 0.23.0 + '@oxlint-tsgolint/darwin-x64': 0.23.0 + '@oxlint-tsgolint/linux-arm64': 0.23.0 + '@oxlint-tsgolint/linux-x64': 0.23.0 + '@oxlint-tsgolint/win32-arm64': 0.23.0 + '@oxlint-tsgolint/win32-x64': 0.23.0 + optional: true + + oxlint@1.69.0(oxlint-tsgolint@0.23.0): + optionalDependencies: + '@oxlint/binding-android-arm-eabi': 1.69.0 + '@oxlint/binding-android-arm64': 1.69.0 + '@oxlint/binding-darwin-arm64': 1.69.0 + '@oxlint/binding-darwin-x64': 1.69.0 + '@oxlint/binding-freebsd-x64': 1.69.0 + '@oxlint/binding-linux-arm-gnueabihf': 1.69.0 + '@oxlint/binding-linux-arm-musleabihf': 1.69.0 + '@oxlint/binding-linux-arm64-gnu': 1.69.0 + '@oxlint/binding-linux-arm64-musl': 1.69.0 + '@oxlint/binding-linux-ppc64-gnu': 1.69.0 + '@oxlint/binding-linux-riscv64-gnu': 1.69.0 + '@oxlint/binding-linux-riscv64-musl': 1.69.0 + '@oxlint/binding-linux-s390x-gnu': 1.69.0 + '@oxlint/binding-linux-x64-gnu': 1.69.0 + '@oxlint/binding-linux-x64-musl': 1.69.0 + '@oxlint/binding-openharmony-arm64': 1.69.0 + '@oxlint/binding-win32-arm64-msvc': 1.69.0 + '@oxlint/binding-win32-ia32-msvc': 1.69.0 + '@oxlint/binding-win32-x64-msvc': 1.69.0 + oxlint-tsgolint: 0.23.0 + p-cancelable@2.1.1: {} p-defer@1.0.0: {} @@ -24854,7 +24739,8 @@ snapshots: path-exists: 4.0.0 which-pm: 2.2.0 - prelude-ls@1.2.1: {} + prelude-ls@1.2.1: + optional: true prettier-plugin-astro@0.14.1: dependencies: @@ -25209,12 +25095,6 @@ snapshots: dependencies: regex-utilities: 2.3.0 - regexp-tree@0.1.27: {} - - regjsparser@0.13.1: - dependencies: - jsesc: 3.1.0 - rehype-expressive-code@0.42.0: dependencies: expressive-code: 0.42.0 @@ -26310,10 +26190,6 @@ snapshots: dependencies: utf8-byte-length: 1.0.5 - ts-api-utils@2.5.0(typescript@6.0.3): - dependencies: - typescript: 6.0.3 - ts-dedent@2.2.0: {} tsconfig-paths@4.2.0: @@ -26369,6 +26245,7 @@ snapshots: type-check@0.4.0: dependencies: prelude-ls: 1.2.1 + optional: true type-fest@0.12.0: {} @@ -26422,17 +26299,6 @@ snapshots: dependencies: semver: 7.8.1 - typescript-eslint@8.60.0(eslint@10.4.1)(typescript@6.0.3): - dependencies: - '@typescript-eslint/eslint-plugin': 8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1)(typescript@6.0.3))(eslint@10.4.1)(typescript@6.0.3) - '@typescript-eslint/parser': 8.60.0(eslint@10.4.1)(typescript@6.0.3) - '@typescript-eslint/typescript-estree': 8.60.0(typescript@6.0.3) - '@typescript-eslint/utils': 8.60.0(eslint@10.4.1)(typescript@6.0.3) - eslint: 10.4.1 - typescript: 6.0.3 - transitivePeerDependencies: - - supports-color - typescript@5.9.3: {} typescript@6.0.3: {} @@ -26613,6 +26479,7 @@ snapshots: uri-js@4.4.1: dependencies: punycode: 2.3.1 + optional: true uri-template@2.0.0: dependencies: @@ -26674,7 +26541,7 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 - vite-plugin-checker@0.14.1(eslint@10.4.1)(optionator@0.9.4)(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(tsx@4.22.3)(yaml@2.9.0)): + vite-plugin-checker@0.14.1(eslint@10.4.1)(optionator@0.9.4)(oxlint@1.69.0(oxlint-tsgolint@0.23.0))(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(tsx@4.22.3)(yaml@2.9.0)): dependencies: '@babel/code-frame': 7.29.7 chokidar: 5.0.0 @@ -26687,6 +26554,7 @@ snapshots: optionalDependencies: eslint: 10.4.1 optionator: 0.9.4 + oxlint: 1.69.0(oxlint-tsgolint@0.23.0) typescript: 6.0.3 vite-plugin-dts@5.0.1(@microsoft/api-extractor@7.58.7(@types/node@25.9.1))(esbuild@0.28.0)(rolldown@1.0.2)(rollup@4.60.4)(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(esbuild@0.28.0)(tsx@4.22.3)(yaml@2.9.0)): @@ -26941,7 +26809,8 @@ snapshots: dependencies: string-width: 4.2.3 - word-wrap@1.2.5: {} + word-wrap@1.2.5: + optional: true wordwrapjs@4.0.1: dependencies: @@ -27090,10 +26959,6 @@ snapshots: dependencies: '@types/yoga-layout': 1.9.2 - zod-validation-error@4.0.2(zod@4.4.3): - dependencies: - zod: 4.4.3 - zod@3.25.76: {} zod@4.4.3: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 90ebc8990d3..194347249ef 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -27,7 +27,6 @@ catalog: "@chronus/github-pr-commenter": ^1.0.6 "@docsearch/css": ^4.6.2 "@docsearch/js": ^4.6.2 - "@eslint/js": ^10.0.1 "@expressive-code/core": ^0.42.0 "@fluentui/react-components": ^9.73.7 "@fluentui/react-icons": ^2.0.323 @@ -68,14 +67,9 @@ catalog: "@types/swagger-ui-express": ^4.1.8 "@types/which": ^3.0.4 "@types/yargs": ^17.0.35 - "@typescript-eslint/parser": ^8.58.1 - "@typescript-eslint/rule-tester": ^8.58.1 - "@typescript-eslint/types": ^8.58.1 - "@typescript-eslint/utils": ^8.58.1 "@typespec/ts-http-runtime": 0.3.5 "@vitejs/plugin-react": ^6.0.1 "@vitest/coverage-v8": ^4.1.3 - "@vitest/eslint-plugin": ^1.6.16 "@vitest/ui": ^4.1.3 "@vscode/extension-telemetry": ^1.5.1 "@vscode/test-electron": ^2.5.2 @@ -106,9 +100,6 @@ catalog: es-module-shims: ^2.8.0 esbuild: ^0.28.0 esbuild-plugins-node-modules-polyfill: ^1.8.1 - eslint: ^10.2.0 - eslint-plugin-react-hooks: 7.1.1 - eslint-plugin-unicorn: ^64.0.0 execa: ^9.6.1 express: ^5.2.1 fast-xml-parser: ^5.7.0 @@ -123,6 +114,7 @@ catalog: multer: ^2.1.1 mustache: ^4.2.0 ora: ^9.3.0 + oxlint: ^1.69.0 p-limit: ^7.3.0 pathe: ^2.0.3 picocolors: ^1.1.1 @@ -163,7 +155,6 @@ catalog: typedoc: ^0.28.19 typedoc-plugin-markdown: ^4.11.0 typescript: ~6.0.2 - typescript-eslint: ^8.58.1 uri-template: ^2.0.0 vite: ^8.0.8 vite-plugin-checker: ^0.14.1 @@ -179,6 +170,9 @@ catalog: yaml: ^2.8.3 yargs: ^18.0.0 +ignoredBuiltDependencies: + - esbuild + minimumReleaseAge: 2880 minimumReleaseAgeExclude: diff --git a/tsconfig.ws.json b/tsconfig.ws.json index d4eb624b14a..67e962ba0b6 100644 --- a/tsconfig.ws.json +++ b/tsconfig.ws.json @@ -6,7 +6,6 @@ { "path": "packages/http/tsconfig.build.json" }, { "path": "packages/rest/tsconfig.build.json" }, { "path": "packages/library-linter/tsconfig.build.json" }, - { "path": "packages/eslint-plugin-typespec/tsconfig.build.json" }, { "path": "packages/openapi/tsconfig.build.json" }, { "path": "packages/sse/tsconfig.build.json" }, { "path": "packages/events/tsconfig.build.json" }, diff --git a/turbo.json b/turbo.json index 72f151bfa28..d772103a502 100644 --- a/turbo.json +++ b/turbo.json @@ -23,7 +23,7 @@ "outputs": ["coverage/**"] }, "lint": { - "inputs": ["src/**", "test/**", "eslint.config.*", "package.json"], + "inputs": ["src/**", "test/**", "oxlint.config.*", "package.json"], "outputs": [] }, "clean": {