diff --git a/.oxfmtrc.json b/.oxfmtrc.json new file mode 100644 index 0000000000..1bae33897d --- /dev/null +++ b/.oxfmtrc.json @@ -0,0 +1,44 @@ +{ + "$schema": "./node_modules/oxfmt/configuration_schema.json", + "printWidth": 80, + "tabWidth": 2, + "useTabs": false, + "semi": true, + "singleQuote": false, + "jsxSingleQuote": false, + "trailingComma": "all", + "bracketSpacing": true, + "bracketSameLine": false, + "arrowParens": "always", + "endOfLine": "lf", + "quoteProps": "as-needed", + "proseWrap": "preserve", + "htmlWhitespaceSensitivity": "css", + "embeddedLanguageFormatting": "auto", + "insertFinalNewline": true, + "sortPackageJson": false, + "ignorePatterns": [ + "pnpm-lock.yaml", + "README.md", + "**/*.json", + "docs/", + ".github/", + "dist/", + "node_modules/", + "lib/dom/build/", + "lib/v3/dom/build/", + "packages/core/dist/", + "packages/core/lib/dom/build/", + "packages/core/lib/v3/dom/build/", + "packages/cli/dist/", + "packages/evals/dist/", + "packages/docs/", + "*.min.js", + ".browserbase/", + ".browserbase/**", + "**/.browserbase/", + "**/.browserbase/**", + "stainless.yml", + "openapi.*.yaml" + ] +} diff --git a/.oxlintrc.json b/.oxlintrc.json new file mode 100644 index 0000000000..0e5235e6f1 --- /dev/null +++ b/.oxlintrc.json @@ -0,0 +1,191 @@ +{ + "$schema": "./node_modules/oxlint/configuration_schema.json", + "plugins": ["typescript"], + "jsPlugins": [ + "eslint-plugin-security", + { "name": "eslint-js", "specifier": "oxlint-plugin-eslint" } + ], + "categories": { + "correctness": "off" + }, + "env": { + "browser": true + }, + "ignorePatterns": [ + "**/dist/**", + "**/node_modules/**", + "packages/core/lib/dom/build/**", + "packages/core/lib/v3/dom/build/**", + "packages/core/lib/v4/dom/build/**", + "packages/core/scripts/prepare.js", + "**/*.config.js", + "**/*.config.mjs", + ".browserbase/**", + "**/.browserbase/**", + "**/*.json", + "stainless.yml", + "packages/server-v3/openapi.v3.yaml", + "packages/server-v4/openapi.v4.yaml" + ], + "rules": { + "constructor-super": "error", + "for-direction": "error", + "getter-return": "error", + "no-async-promise-executor": "error", + "no-case-declarations": "error", + "no-class-assign": "error", + "no-compare-neg-zero": "error", + "no-cond-assign": "error", + "no-const-assign": "error", + "no-constant-binary-expression": "error", + "no-constant-condition": "error", + "no-control-regex": "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": "error", + "no-empty-character-class": "error", + "no-empty-pattern": "error", + "no-empty-static-block": "error", + "no-ex-assign": "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-undef": "error", + "no-unexpected-multiline": "error", + "no-unreachable": "error", + "no-unsafe-finally": "error", + "no-unsafe-negation": "error", + "no-unsafe-optional-chaining": "error", + "no-unused-labels": "error", + "no-unused-private-class-members": "error", + "no-unused-vars": "off", + "no-useless-assignment": "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": "off", + "no-unused-expressions": "off", + "no-eval": "error", + "no-implied-eval": "error", + "no-new-func": "error", + "security/detect-eval-with-expression": "error", + "typescript/no-array-constructor": "error", + "typescript/no-unused-expressions": "error", + "typescript/no-unused-vars": "error", + "typescript/ban-ts-comment": "error", + "typescript/no-duplicate-enum-values": "error", + "typescript/no-empty-object-type": "error", + "typescript/no-explicit-any": "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", + "eslint-js/no-restricted-syntax": [ + "error", + { + "selector": "CallExpression[callee.name='Function']", + "message": "Dynamic function construction is prohibited." + }, + { + "selector": "NewExpression[callee.name='Function']", + "message": "Dynamic function construction is prohibited." + }, + { + "selector": "CallExpression[callee.object.name='window'][callee.property.name='Function']", + "message": "Dynamic function construction via window.Function is prohibited." + }, + { + "selector": "CallExpression[callee.object.name='globalThis'][callee.property.name='Function']", + "message": "Dynamic function construction via globalThis.Function is prohibited." + } + ] + }, + "overrides": [ + { + "files": [ + "packages/core/scripts/**/*.{js,cjs,mjs}", + "packages/server-v3/scripts/**/*.{js,cjs,mjs,ts}", + "packages/server-v4/scripts/**/*.{js,cjs,mjs,ts}", + "packages/cli/**/*.{js,cjs,mjs,ts}" + ], + "env": { + "node": true, + "browser": false + } + }, + { + "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-undef": "off", + "no-unreachable": "off", + "no-unsafe-negation": "off", + "no-unsafe-optional-chaining": "off", + "no-var": "error", + "no-with": "off", + "prefer-const": "error", + "prefer-rest-params": "error", + "prefer-spread": "error" + } + }, + { + "files": ["packages/cli/**/*.{js,cjs,mjs,ts}"], + "rules": { + "no-empty": [ + "error", + { + "allowEmptyCatch": true + } + ] + } + } + ] +} diff --git a/.prettierignore b/.prettierignore deleted file mode 100644 index b8cd807b6b..0000000000 --- a/.prettierignore +++ /dev/null @@ -1,22 +0,0 @@ -pnpm-lock.yaml -README.md -**/*.json -docs/ -.github/ -dist/ -node_modules/ -lib/dom/build/ -lib/v3/dom/build/ -packages/core/dist/ -packages/core/lib/dom/build/ -packages/core/lib/v3/dom/build/ -packages/cli/dist/ -packages/evals/dist/ -packages/docs/ -*.min.js -.browserbase/ -.browserbase/** -**/.browserbase/ -**/.browserbase/** -stainless.yml -openapi.*.yaml diff --git a/.prettierrc b/.prettierrc deleted file mode 100644 index 0967ef424b..0000000000 --- a/.prettierrc +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000000..99e2f7ddf7 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["oxc.oxc-vscode"] +} diff --git a/.vscode/settings.json b/.vscode/settings.json index 9bf4d12b52..8dfb9daf88 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,4 +1,4 @@ { - "editor.defaultFormatter": "esbenp.prettier-vscode", + "editor.defaultFormatter": "oxc.oxc-vscode", "editor.formatOnSave": true } diff --git a/CHANGELOG.md b/CHANGELOG.md index b37ce4d878..89f3d69f19 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -254,7 +254,6 @@ Check the [migration guide](https://docs.stagehand.dev/v3/migrations/v2) for mor We're thrilled to announce the release of Stagehand 2.0, bringing significant improvements to make browser automation more powerful, faster, and easier to use than ever before. ### 🚀 New Features - - **Introducing `stagehand.agent`**: A powerful new way to integrate SOTA Computer use models or Browserbase's [Open Operator](https://operator.browserbase.com) into Stagehand with one line of code! Perfect for multi-step workflows and complex interactions. [Learn more](https://docs.stagehand.dev/concepts/agent) - **Lightning-fast `act` and `extract`**: Major performance improvements to make your automations run significantly faster. - **Enhanced Logging**: Better visibility into what's happening during automation with improved logging and debugging capabilities. @@ -262,7 +261,6 @@ Check the [migration guide](https://docs.stagehand.dev/v3/migrations/v2) for mor - **Improved Error Handling**: More descriptive errors and better error recovery to help you debug issues faster. ### 🛠️ Developer Experience - - **Better TypeScript Support**: Enhanced type definitions and better IDE integration - **Better Error Messages**: Clearer, more actionable error messages to help you debug faster - **Improved Caching**: More reliable action caching for better performance diff --git a/eslint.config.mjs b/eslint.config.mjs deleted file mode 100644 index 0342ec4b89..0000000000 --- a/eslint.config.mjs +++ /dev/null @@ -1,86 +0,0 @@ -import globals from "globals"; -import pluginJs from "@eslint/js"; -import tseslint from "typescript-eslint"; -import security from "eslint-plugin-security"; - -/** @type {import('eslint').Linter.Config[]} */ -export default [ - { files: ["**/*.{js,mjs,cjs,ts}"] }, - { languageOptions: { globals: globals.browser } }, - { - files: ["packages/core/scripts/**/*.{js,cjs,mjs}"], - languageOptions: { globals: globals.node }, - }, - { - files: [ - "packages/server-v3/scripts/**/*.{js,cjs,mjs,ts}", - "packages/server-v4/scripts/**/*.{js,cjs,mjs,ts}", - ], - languageOptions: { globals: globals.node }, - }, - { - files: ["packages/cli/**/*.{js,cjs,mjs,ts}"], - languageOptions: { globals: globals.node }, - }, - { - ignores: [ - "**/dist/**", - "**/node_modules/**", - "packages/core/lib/dom/build/**", - "packages/core/lib/v3/dom/build/**", - "packages/core/lib/v4/dom/build/**", - "packages/core/scripts/prepare.js", - "**/*.config.js", - "**/*.config.mjs", - ".browserbase/**", - "**/.browserbase/**", - "**/*.json", - "stainless.yml", - "packages/server-v3/openapi.v3.yaml", - "packages/server-v4/openapi.v4.yaml", - ], - }, - pluginJs.configs.recommended, - ...tseslint.configs.recommended, - { - plugins: { - security, - }, - rules: { - "no-eval": "error", - "no-implied-eval": "error", - "no-new-func": "error", - "security/detect-eval-with-expression": "error", - "preserve-caught-error": "error", - "no-restricted-syntax": [ - "error", - { - selector: "CallExpression[callee.name='Function']", - message: "Dynamic function construction is prohibited.", - }, - { - selector: "NewExpression[callee.name='Function']", - message: "Dynamic function construction is prohibited.", - }, - { - selector: - "CallExpression[callee.object.name='window'][callee.property.name='Function']", - message: - "Dynamic function construction via window.Function is prohibited.", - }, - { - selector: - "CallExpression[callee.object.name='globalThis'][callee.property.name='Function']", - message: - "Dynamic function construction via globalThis.Function is prohibited.", - }, - ], - }, - }, - { - files: ["packages/cli/**/*.{js,cjs,mjs,ts}"], - rules: { - "no-empty": ["error", { allowEmptyCatch: true }], - }, - }, -]; diff --git a/package.json b/package.json index fa2f32d25c..437a03b750 100644 --- a/package.json +++ b/package.json @@ -14,9 +14,10 @@ "build:sea:esm": "turbo run build:sea:esm", "build:sea:cjs": "turbo run build:sea:cjs", "lint": "turbo run lint", - "format": "prettier --write .", - "prettier": "prettier --write .", - "eslint": "eslint .", + "format": "oxfmt", + "format:check": "oxfmt --check", + "oxlint": "oxlint .", + "oxlint:fix": "oxlint --fix .", "test": "turbo run test:core test:e2e test:server test:evals test:cli", "test:core": "turbo run test:core --", "test:core:local": "STAGEHAND_BROWSER_TARGET=local pnpm run test:core --", @@ -43,22 +44,21 @@ "devDependencies": { "@changesets/changelog-github": "^0.5.0", "@changesets/cli": "^2.31.0", - "@eslint/js": "^10.0.1", "c8": "^11.0.0", "dotenv": "^17.3.1", "esbuild": "0.28.1", - "eslint": "^10.3.0", "eslint-plugin-security": "^3.0.1", "globals": "^15.13.0", "husky": "^9.1.7", "junit-to-ctrf": "^0.0.14", "lint-staged": "^16.4.0", - "prettier": "^3.2.5", + "oxfmt": "^0.57.0", + "oxlint": "^1.72.0", + "oxlint-plugin-eslint": "^1.72.0", "source-map": "^0.7.4", "tsx": "^4.19.4", "turbo": "^2.9.15", - "typescript": "5.8.3", - "typescript-eslint": "^8.56.1" + "typescript": "5.8.3" }, "repository": { "type": "git", @@ -92,7 +92,7 @@ } }, "lint-staged": { - "*": "prettier --write --ignore-unknown" + "*": "oxfmt --no-error-on-unmatched-pattern" }, "packageManager": "pnpm@9.15.0+sha512.76e2379760a4328ec4415815bcd6628dee727af3779aaa4c914e3944156c4299921a89f976381ee107d41f12cfa4b66681ca9c718f0668fa0831ed4c6d8ba56c" } diff --git a/packages/cli/.oxfmtrc.json b/packages/cli/.oxfmtrc.json new file mode 100644 index 0000000000..3b6b8ea0a2 --- /dev/null +++ b/packages/cli/.oxfmtrc.json @@ -0,0 +1,36 @@ +{ + "$schema": "../../node_modules/oxfmt/configuration_schema.json", + "printWidth": 80, + "tabWidth": 2, + "useTabs": false, + "semi": true, + "singleQuote": false, + "jsxSingleQuote": false, + "trailingComma": "all", + "bracketSpacing": true, + "bracketSameLine": false, + "arrowParens": "always", + "endOfLine": "lf", + "quoteProps": "as-needed", + "proseWrap": "preserve", + "htmlWhitespaceSensitivity": "css", + "embeddedLanguageFormatting": "auto", + "insertFinalNewline": true, + "sortPackageJson": false, + "ignorePatterns": [ + "pnpm-lock.yaml", + "README.md", + "**/*.json", + ".github/", + "dist/", + "node_modules/", + "coverage/", + "out/", + ".cache/", + "*.tgz", + ".browserbase/", + ".browserbase/**", + "**/.browserbase/", + "**/.browserbase/**" + ] +} diff --git a/packages/cli/.oxlintrc.json b/packages/cli/.oxlintrc.json new file mode 100644 index 0000000000..980e8473ee --- /dev/null +++ b/packages/cli/.oxlintrc.json @@ -0,0 +1,59 @@ +{ + "$schema": "../../node_modules/oxlint/configuration_schema.json", + "extends": ["../../.oxlintrc.json"], + "ignorePatterns": [ + "dist/**", + "node_modules/**", + "coverage/**", + "out/**", + ".cache/**", + ".browserbase/**", + "**/.browserbase/**", + "*.tgz" + ], + "rules": { + "eslint-js/no-restricted-syntax": [ + "error", + { + "selector": "CallExpression[callee.name='Function']", + "message": "Dynamic function construction is prohibited." + }, + { + "selector": "NewExpression[callee.name='Function']", + "message": "Dynamic function construction is prohibited." + }, + { + "selector": "CallExpression[callee.object.name='globalThis'][callee.property.name='Function']", + "message": "Dynamic function construction via globalThis.Function is prohibited." + } + ] + }, + "overrides": [ + { + "files": ["**/*.{js,mjs,cjs,ts}"], + "env": { + "node": true, + "browser": false + } + }, + { + "files": ["tests/**/*.ts"], + "env": { + "node": true, + "vitest": true, + "browser": false + } + }, + { + "files": ["**/*.{js,cjs,mjs,ts}"], + "rules": { + "no-empty": [ + "error", + { + "allowEmptyCatch": true + } + ] + } + } + ] +} diff --git a/packages/cli/.prettierignore b/packages/cli/.prettierignore deleted file mode 100644 index 15e84bc8e0..0000000000 --- a/packages/cli/.prettierignore +++ /dev/null @@ -1,14 +0,0 @@ -pnpm-lock.yaml -README.md -**/*.json -.github/ -dist/ -node_modules/ -coverage/ -out/ -.cache/ -*.tgz -.browserbase/ -.browserbase/** -**/.browserbase/ -**/.browserbase/** diff --git a/packages/cli/.prettierrc b/packages/cli/.prettierrc deleted file mode 100644 index 0967ef424b..0000000000 --- a/packages/cli/.prettierrc +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/packages/cli/eslint.config.mjs b/packages/cli/eslint.config.mjs deleted file mode 100644 index c55046d108..0000000000 --- a/packages/cli/eslint.config.mjs +++ /dev/null @@ -1,66 +0,0 @@ -import globals from "globals"; -import pluginJs from "@eslint/js"; -import tseslint from "typescript-eslint"; -import security from "eslint-plugin-security"; - -/** @type {import("eslint").Linter.Config[]} */ -export default [ - { - ignores: [ - "dist/**", - "node_modules/**", - "coverage/**", - "out/**", - ".cache/**", - ".browserbase/**", - "**/.browserbase/**", - "*.tgz", - ], - }, - { - files: ["**/*.{js,mjs,cjs,ts}"], - languageOptions: { - globals: globals.node, - }, - }, - { - files: ["tests/**/*.ts"], - languageOptions: { - globals: { - ...globals.node, - ...globals.vitest, - }, - }, - }, - pluginJs.configs.recommended, - ...tseslint.configs.recommended, - { - plugins: { - security, - }, - rules: { - "no-eval": "error", - "no-implied-eval": "error", - "no-new-func": "error", - "security/detect-eval-with-expression": "error", - "preserve-caught-error": "error", - "no-restricted-syntax": [ - "error", - { - selector: "CallExpression[callee.name='Function']", - message: "Dynamic function construction is prohibited.", - }, - { - selector: "NewExpression[callee.name='Function']", - message: "Dynamic function construction is prohibited.", - }, - { - selector: - "CallExpression[callee.object.name='globalThis'][callee.property.name='Function']", - message: - "Dynamic function construction via globalThis.Function is prohibited.", - }, - ], - }, - }, -]; diff --git a/packages/cli/package.json b/packages/cli/package.json index 4aec4b510d..9def7013a1 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -90,11 +90,11 @@ "build:local-only": "node -e \"const fs = require('fs'); fs.rmSync('dist', { recursive: true, force: true }); fs.rmSync('oclif.manifest.json', { force: true })\" && tsc -p tsconfig.local-only.json && pnpm manifest", "check": "tsc --noEmit -p tsconfig.json", "cli": "pnpm build && node bin/run.js", - "eslint": "eslint .", - "eslint:fix": "eslint . --fix", - "format": "prettier --write .", - "format:check": "prettier . --check --cache", - "lint": "pnpm format:check && pnpm eslint && pnpm check", + "oxlint": "oxlint .", + "oxlint:fix": "oxlint --fix .", + "format": "oxfmt", + "format:check": "oxfmt --check", + "lint": "pnpm format:check && pnpm oxlint && pnpm check", "manifest": "oclif manifest .", "test": "pnpm build && vitest run", "test:cli": "vitest run", @@ -118,18 +118,13 @@ "zod": "^4.2.1" }, "devDependencies": { - "@eslint/js": "^10.0.1", "@types/archiver": "^6.0.3", "@types/node": "^20.11.30", "@types/semver": "^7.7.1", "@types/ws": "^8.18.1", - "eslint": "^10.4.0", - "eslint-plugin-security": "^4.0.0", "globals": "^17.6.0", "oclif": "^4.23.1", - "prettier": "3.5.3", "typescript": "^5.8.3", - "typescript-eslint": "^8.59.3", "vitest": "^4.1.9" } } diff --git a/packages/cli/src/lib/driver/command-cli.ts b/packages/cli/src/lib/driver/command-cli.ts index 0a4e61ecbb..d5f19893ba 100644 --- a/packages/cli/src/lib/driver/command-cli.ts +++ b/packages/cli/src/lib/driver/command-cli.ts @@ -100,30 +100,30 @@ export async function resolveTargetForCommand( export function hasExplicitDriverTarget(flags: DriverFlags): boolean { return Boolean( flags.local || - flags.remote || - flags["auto-connect"] || - flags.cdp || - hasChromeArgFlags(flags) || - flags["target-id"] || - flags.headed || - flags.headless || - flags.verified || - flags.proxies, + flags.remote || + flags["auto-connect"] || + flags.cdp || + hasChromeArgFlags(flags) || + flags["target-id"] || + flags.headed || + flags.headless || + flags.verified || + flags.proxies, ); } function hasModeOnlyFlag(flags: DriverFlags): boolean { return Boolean( (flags.local || flags.remote) && - !flags["auto-connect"] && - !flags.cdp && - !hasChromeArgFlags(flags) && - !flags["target-id"] && - !flags.headed && - !flags.headless && - !flags.verified && - !flags.proxies && - flags.local !== flags.remote, + !flags["auto-connect"] && + !flags.cdp && + !hasChromeArgFlags(flags) && + !flags["target-id"] && + !flags.headed && + !flags.headless && + !flags.verified && + !flags.proxies && + flags.local !== flags.remote, ); } diff --git a/packages/cli/src/lib/driver/remote-binding.ts b/packages/cli/src/lib/driver/remote-binding.ts index 650db5cab9..fca05aa4b6 100644 --- a/packages/cli/src/lib/driver/remote-binding.ts +++ b/packages/cli/src/lib/driver/remote-binding.ts @@ -23,9 +23,8 @@ export async function getRemote(): Promise { if (code !== "ERR_MODULE_NOT_FOUND" && code !== "MODULE_NOT_FOUND") { throw error; } - cached = (await import( - "./remote.disabled.js" - )) as unknown as RemoteCapability; + cached = + (await import("./remote.disabled.js")) as unknown as RemoteCapability; } return cached; diff --git a/packages/cli/tests/driver-commands.test.ts b/packages/cli/tests/driver-commands.test.ts index b028c61715..a38e7b001c 100644 --- a/packages/cli/tests/driver-commands.test.ts +++ b/packages/cli/tests/driver-commands.test.ts @@ -84,9 +84,8 @@ describe("driver commands", () => { })); try { - const { resolveTargetForCommand } = await import( - "../src/lib/driver/command-cli.js" - ); + const { resolveTargetForCommand } = + await import("../src/lib/driver/command-cli.js"); await expect( resolveTargetForCommand("reuse-local", { local: true }), @@ -123,9 +122,8 @@ describe("driver commands", () => { })); try { - const { runDriverCommandWithTarget } = await import( - "../src/lib/driver/runtime.js" - ); + const { runDriverCommandWithTarget } = + await import("../src/lib/driver/runtime.js"); const target = { endpoint: "ws://127.0.0.1:9222/devtools/browser/test", kind: "cdp" as const, diff --git a/packages/cli/tests/driver-errors.test.ts b/packages/cli/tests/driver-errors.test.ts index b351a09baa..d4920ebe28 100644 --- a/packages/cli/tests/driver-errors.test.ts +++ b/packages/cli/tests/driver-errors.test.ts @@ -139,9 +139,8 @@ describe("driverInitHints", () => { }); it("stays key-free in the local-only capability", async () => { - const { driverInitHints } = await import( - "../src/lib/driver/remote.disabled.js" - ); + const { driverInitHints } = + await import("../src/lib/driver/remote.disabled.js"); const hints = driverInitHints(); expect(hints.chromeNotFound).not.toContain("BROWSERBASE_API_KEY"); expect(hints.repeatedInitFailure).not.toContain("BROWSERBASE_API_KEY"); diff --git a/packages/cli/tests/driver-foundation.test.ts b/packages/cli/tests/driver-foundation.test.ts index de4bfb6c1f..9baff55b11 100644 --- a/packages/cli/tests/driver-foundation.test.ts +++ b/packages/cli/tests/driver-foundation.test.ts @@ -716,9 +716,8 @@ describe("driver foundation", () => { })); try { - const { DriverSessionManager: MockedDriverSessionManager } = await import( - "../src/lib/driver/session-manager.js" - ); + const { DriverSessionManager: MockedDriverSessionManager } = + await import("../src/lib/driver/session-manager.js"); const manager = new MockedDriverSessionManager("init-failure", { headless: true, kind: "managed-local", @@ -755,9 +754,8 @@ describe("driver foundation", () => { })); try { - const { DriverSessionManager: MockedDriverSessionManager } = await import( - "../src/lib/driver/session-manager.js" - ); + const { DriverSessionManager: MockedDriverSessionManager } = + await import("../src/lib/driver/session-manager.js"); const manager = new MockedDriverSessionManager("chrome-args", { chromeArgs: ["--no-focus-on-navigate"], headless: false, @@ -797,9 +795,8 @@ describe("driver foundation", () => { })); try { - const { DriverSessionManager: MockedDriverSessionManager } = await import( - "../src/lib/driver/session-manager.js" - ); + const { DriverSessionManager: MockedDriverSessionManager } = + await import("../src/lib/driver/session-manager.js"); const manager = new MockedDriverSessionManager("ignore-default-args", { headless: true, ignoreDefaultArgs: ["--enable-automation"], diff --git a/packages/cli/tests/identity-attribution.test.ts b/packages/cli/tests/identity-attribution.test.ts index 504e744c27..4452f4b17e 100644 --- a/packages/cli/tests/identity-attribution.test.ts +++ b/packages/cli/tests/identity-attribution.test.ts @@ -98,9 +98,8 @@ describe("remoteStagehandOptions — userMetadata", () => { // Seed the version the way base.ts does from Config.version at startup. identityModule.setCliVersion("1.2.3"); - const { remoteStagehandOptions } = await import( - "../src/lib/driver/remote.js" - ); + const { remoteStagehandOptions } = + await import("../src/lib/driver/remote.js"); const opts = await remoteStagehandOptions(); const meta = opts.browserbaseSessionCreateParams?.userMetadata as Record< string, @@ -125,9 +124,8 @@ describe("remoteStagehandOptions — userMetadata", () => { await writeFile(installIdFile, "test-install-uuid-123\n", "utf8"); try { - const { remoteStagehandOptions } = await import( - "../src/lib/driver/remote.js" - ); + const { remoteStagehandOptions } = + await import("../src/lib/driver/remote.js"); const opts = await remoteStagehandOptions(); const meta = opts.browserbaseSessionCreateParams?.userMetadata as Record< string, @@ -156,9 +154,8 @@ describe("remoteStagehandOptions — userMetadata", () => { ); try { - const { remoteStagehandOptions } = await import( - "../src/lib/driver/remote.js" - ); + const { remoteStagehandOptions } = + await import("../src/lib/driver/remote.js"); const opts = await remoteStagehandOptions(); const meta = opts.browserbaseSessionCreateParams?.userMetadata as Record< string, @@ -382,25 +379,22 @@ describe("getCliVersion / setCliVersion", () => { }); it("returns the value seeded via setCliVersion", async () => { - const { getCliVersion, setCliVersion } = await import( - "../src/lib/identity.js" - ); + const { getCliVersion, setCliVersion } = + await import("../src/lib/identity.js"); setCliVersion("0.9.0"); expect(getCliVersion()).toBe("0.9.0"); }); it("ignores an empty seed, leaving the 'unknown' fallback intact", async () => { - const { getCliVersion, setCliVersion } = await import( - "../src/lib/identity.js" - ); + const { getCliVersion, setCliVersion } = + await import("../src/lib/identity.js"); setCliVersion(""); expect(getCliVersion()).toBe("unknown"); }); it("keeps a previously-seeded version when later seeded with empty", async () => { - const { getCliVersion, setCliVersion } = await import( - "../src/lib/identity.js" - ); + const { getCliVersion, setCliVersion } = + await import("../src/lib/identity.js"); setCliVersion("1.4.2"); setCliVersion(""); expect(getCliVersion()).toBe("1.4.2"); diff --git a/packages/core/package.json b/packages/core/package.json index d88e31ab0a..77e8b61426 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -41,10 +41,11 @@ "test": "pnpm -w --dir ../.. exec turbo run test:core test:e2e --filter=@browserbasehq/stagehand --", "test:core": "tsx scripts/test-core.ts", "test:e2e": "tsx scripts/test-e2e.ts", - "format": "prettier --write .", + "format": "oxfmt", + "format:check": "cd ../.. && oxfmt --check packages/core", "typecheck": "pnpm -w --dir ../.. exec tsc -p packages/core/tsconfig.json --noEmit", - "eslint": "eslint .", - "lint": "cd ../.. && prettier --check packages/core && cd packages/core && pnpm run eslint && pnpm run typecheck" + "oxlint": "oxlint .", + "lint": "pnpm run format:check && pnpm run oxlint && pnpm run typecheck" }, "files": [ "dist/esm/index.d.ts", @@ -126,12 +127,10 @@ "@vitest/coverage-v8": "^4.1.9", "adm-zip": "^0.5.16", "chalk": "^5.4.1", - "eslint": "10.0.2", "jsdom": "^29.1.1", "patchright-core": "^1.55.2", "playwright": "^1.55.1", "playwright-core": "^1.55.1", - "prettier": "^3.2.5", "puppeteer-core": "^24.43.0", "tsx": "*", "vite": "^7.3.5", diff --git a/packages/core/tests/unit/timeout-handlers.test.ts b/packages/core/tests/unit/timeout-handlers.test.ts index d524dd9351..498acc766e 100644 --- a/packages/core/tests/unit/timeout-handlers.test.ts +++ b/packages/core/tests/unit/timeout-handlers.test.ts @@ -187,9 +187,8 @@ describe("ActHandler two-step timeout", () => { combinedUrlMap: {}, }); - const { performUnderstudyMethod } = await import( - "../../lib/v3/handlers/handlerUtils/actHandlerUtils.js" - ); + const { performUnderstudyMethod } = + await import("../../lib/v3/handlers/handlerUtils/actHandlerUtils.js"); const performUnderstudyMethodMock = vi.mocked(performUnderstudyMethod); performUnderstudyMethodMock.mockResolvedValue(undefined); @@ -268,9 +267,8 @@ describe("ActHandler self-heal timeout", () => { combinedUrlMap: {}, }); - const { performUnderstudyMethod } = await import( - "../../lib/v3/handlers/handlerUtils/actHandlerUtils.js" - ); + const { performUnderstudyMethod } = + await import("../../lib/v3/handlers/handlerUtils/actHandlerUtils.js"); const performUnderstudyMethodMock = vi.mocked(performUnderstudyMethod); // First call fails, triggering self-heal performUnderstudyMethodMock.mockRejectedValueOnce( @@ -339,9 +337,8 @@ describe("ActHandler self-heal timeout", () => { combinedUrlMap: {}, }); - const { performUnderstudyMethod } = await import( - "../../lib/v3/handlers/handlerUtils/actHandlerUtils.js" - ); + const { performUnderstudyMethod } = + await import("../../lib/v3/handlers/handlerUtils/actHandlerUtils.js"); const performUnderstudyMethodMock = vi.mocked(performUnderstudyMethod); // First call fails, triggering self-heal performUnderstudyMethodMock.mockRejectedValueOnce( @@ -740,9 +737,8 @@ describe("No-timeout success paths", () => { combinedUrlMap: {}, }); - const { performUnderstudyMethod } = await import( - "../../lib/v3/handlers/handlerUtils/actHandlerUtils.js" - ); + const { performUnderstudyMethod } = + await import("../../lib/v3/handlers/handlerUtils/actHandlerUtils.js"); const performUnderstudyMethodMock = vi.mocked(performUnderstudyMethod); performUnderstudyMethodMock.mockResolvedValue(undefined); @@ -1136,9 +1132,8 @@ describe("No-timeout success paths", () => { combinedUrlMap: {}, }); - const { performUnderstudyMethod } = await import( - "../../lib/v3/handlers/handlerUtils/actHandlerUtils.js" - ); + const { performUnderstudyMethod } = + await import("../../lib/v3/handlers/handlerUtils/actHandlerUtils.js"); const performUnderstudyMethodMock = vi.mocked(performUnderstudyMethod); performUnderstudyMethodMock.mockResolvedValue(undefined); @@ -1193,9 +1188,8 @@ describe("No-timeout success paths", () => { combinedUrlMap: {}, }); - const { performUnderstudyMethod } = await import( - "../../lib/v3/handlers/handlerUtils/actHandlerUtils.js" - ); + const { performUnderstudyMethod } = + await import("../../lib/v3/handlers/handlerUtils/actHandlerUtils.js"); const performUnderstudyMethodMock = vi.mocked(performUnderstudyMethod); performUnderstudyMethodMock.mockResolvedValue(undefined); diff --git a/packages/evals/assets/peeler.html b/packages/evals/assets/peeler.html index 75417f1df9..9581e08216 100644 --- a/packages/evals/assets/peeler.html +++ b/packages/evals/assets/peeler.html @@ -18,14 +18,14 @@

Knife Set

more stuff

- +

Peeler

The ultimate tool for peeling fruits and vegetables.

- +
hi world
diff --git a/packages/evals/cli.ts b/packages/evals/cli.ts index 1cd9f85525..13503fc3c5 100644 --- a/packages/evals/cli.ts +++ b/packages/evals/cli.ts @@ -76,9 +76,8 @@ const args = process.argv.slice(2); shuttingDown = true; const code = signal === "SIGINT" ? 130 : 143; try { - const { cleanupActiveRunResources } = await import( - "./framework/runner.js" - ); + const { cleanupActiveRunResources } = + await import("./framework/runner.js"); await cleanupActiveRunResources(); } catch { // ignore @@ -140,9 +139,8 @@ const args = process.argv.slice(2); return; } - const { buildCommandTree, dispatch, tokenizeArgv } = await import( - "./tui/commandTree.js" - ); + const { buildCommandTree, dispatch, tokenizeArgv } = + await import("./tui/commandTree.js"); let registry: TaskRegistry | null = null; const getRegistry = async (): Promise => { diff --git a/packages/evals/framework/harnesses/claudeCodeAdapter.ts b/packages/evals/framework/harnesses/claudeCodeAdapter.ts index 85f4f91568..2b4490ed1c 100644 --- a/packages/evals/framework/harnesses/claudeCodeAdapter.ts +++ b/packages/evals/framework/harnesses/claudeCodeAdapter.ts @@ -66,9 +66,7 @@ interface ToolResultBlock { isError: boolean; } -export class ClaudeCodeTrajectoryAdapter - implements TrajectoryAdapter -{ +export class ClaudeCodeTrajectoryAdapter implements TrajectoryAdapter { fromHarnessResult( result: ClaudeCodeRunResult, taskSpec: TaskSpec, diff --git a/packages/evals/framework/harnesses/codexAdapter.ts b/packages/evals/framework/harnesses/codexAdapter.ts index 9c6cda61af..ed77e982b4 100644 --- a/packages/evals/framework/harnesses/codexAdapter.ts +++ b/packages/evals/framework/harnesses/codexAdapter.ts @@ -44,9 +44,7 @@ export interface CodexRunResult { usage?: Partial; } -export class CodexTrajectoryAdapter - implements TrajectoryAdapter -{ +export class CodexTrajectoryAdapter implements TrajectoryAdapter { fromHarnessResult(result: CodexRunResult, taskSpec: TaskSpec): Trajectory { const toolCalls: NormalizedToolCall[] = []; let pendingReasoning = ""; diff --git a/packages/evals/package.json b/packages/evals/package.json index f0cbce8fcd..80a9a83822 100644 --- a/packages/evals/package.json +++ b/packages/evals/package.json @@ -18,8 +18,9 @@ "test:evals": "tsx scripts/test-evals.ts --cli packages/evals/dist/cli/cli.js", "evals:old": "tsx cli-legacy.ts", "report:core": "tsx scripts/render-braintrust-core-report.ts", - "lint": "pnpm -w --dir ../.. exec prettier --check packages/evals && pnpm -w --dir ../.. exec eslint packages/evals && pnpm run typecheck", - "format": "prettier --write ." + "format": "oxfmt", + "format:check": "pnpm -w --dir ../.. exec oxfmt --check packages/evals", + "lint": "pnpm run format:check && pnpm -w --dir ../.. exec oxlint packages/evals && pnpm run typecheck" }, "dependencies": { "@ai-sdk/provider": "^2.0.0", diff --git a/packages/evals/tests/core/browserbase-target.test.ts b/packages/evals/tests/core/browserbase-target.test.ts index 6476cf18a0..b64ef5a623 100644 --- a/packages/evals/tests/core/browserbase-target.test.ts +++ b/packages/evals/tests/core/browserbase-target.test.ts @@ -40,9 +40,8 @@ describe("runner-provided Browserbase target", () => { debuggerUrl: "https://debug.browserbase.test/session-123", }); - const { launchRunnerProvidedBrowserbaseChrome } = await import( - "../../core/targets/browserbase.js" - ); + const { launchRunnerProvidedBrowserbaseChrome } = + await import("../../core/targets/browserbase.js"); const target = await launchRunnerProvidedBrowserbaseChrome(); @@ -81,9 +80,8 @@ describe("runner-provided Browserbase target", () => { connectUrl: "wss://connect.browserbase.test/devtools/browser/session-456", }); - const { launchRunnerProvidedBrowserbaseChrome } = await import( - "../../core/targets/browserbase.js" - ); + const { launchRunnerProvidedBrowserbaseChrome } = + await import("../../core/targets/browserbase.js"); const target = await launchRunnerProvidedBrowserbaseChrome(); diff --git a/packages/evals/tests/core/fixtures.test.ts b/packages/evals/tests/core/fixtures.test.ts index 3313c02ae7..824b034f89 100644 --- a/packages/evals/tests/core/fixtures.test.ts +++ b/packages/evals/tests/core/fixtures.test.ts @@ -12,9 +12,8 @@ describe("core fixtures", () => { process.env.EVAL_ENV = "browserbase"; vi.resetModules(); - const { dropdownFixture, resistorFixture } = await import( - "../../core/fixtures/index.js" - ); + const { dropdownFixture, resistorFixture } = + await import("../../core/fixtures/index.js"); expect(dropdownFixture.url).toMatch(/^data:text\/html/); expect(resistorFixture.url).toMatch(/^data:text\/html/); diff --git a/packages/evals/tui/commandTree.ts b/packages/evals/tui/commandTree.ts index 6c75104d61..31ab3fbb07 100644 --- a/packages/evals/tui/commandTree.ts +++ b/packages/evals/tui/commandTree.ts @@ -397,9 +397,8 @@ export function buildCommandTree(): CommandNode { summary: "Run evals", printHelp: async () => (await help()).printRunHelp(), handler: async (args, ctx) => { - const { parseRunArgs, resolveRunOptions } = await import( - "./commands/parse.js" - ); + const { parseRunArgs, resolveRunOptions } = + await import("./commands/parse.js"); const { readConfig } = await import("./commands/config.js"); const { runCommand } = await import("./commands/run.js"); @@ -560,9 +559,8 @@ export function buildCommandTree(): CommandNode { // matchPath strips known children (path/set/reset/core) before // we get here, so any args remaining are unknown subcommands — // delegate to handleConfig which prints the right error. - const { handleConfig, printConfig } = await import( - "./commands/config.js" - ); + const { handleConfig, printConfig } = + await import("./commands/config.js"); if (args.length === 0) { printConfig(ctx.entryDir); return; diff --git a/packages/evals/tui/commands/core.ts b/packages/evals/tui/commands/core.ts index f1c25c8683..38d534f88f 100644 --- a/packages/evals/tui/commands/core.ts +++ b/packages/evals/tui/commands/core.ts @@ -124,9 +124,8 @@ async function setCoreKey( return; } - const { listCoreTools, getCoreTool } = await import( - "../../core/tools/registry.js" - ); + const { listCoreTools, getCoreTool } = + await import("../../core/tools/registry.js"); const validTools = listCoreTools(); const config = readConfig(entryDir); diff --git a/packages/evals/types/evals.ts b/packages/evals/types/evals.ts index f575291b0e..c0bd318f07 100644 --- a/packages/evals/types/evals.ts +++ b/packages/evals/types/evals.ts @@ -49,33 +49,32 @@ export interface EvalInput { params?: Record; } -export interface Testcase - extends EvalCase< - EvalInput, - unknown, - { - model: AvailableModel; - test: string; - tier?: "core" | "bench"; - task?: string; - categories?: string[]; - category?: string; - dataset?: string; - task_id?: string; - website?: string; - difficulty?: string; - harness?: string; - environment?: "LOCAL" | "BROWSERBASE"; - api?: boolean; - provider?: string; - toolSurface?: string; - startupProfile?: string; - toolCommand?: string; - browseCliVersion?: string; - browseCliEntrypoint?: string; - agentMode?: AgentToolMode; - } - > { +export interface Testcase extends EvalCase< + EvalInput, + unknown, + { + model: AvailableModel; + test: string; + tier?: "core" | "bench"; + task?: string; + categories?: string[]; + category?: string; + dataset?: string; + task_id?: string; + website?: string; + difficulty?: string; + harness?: string; + environment?: "LOCAL" | "BROWSERBASE"; + api?: boolean; + provider?: string; + toolSurface?: string; + startupProfile?: string; + toolCommand?: string; + browseCliVersion?: string; + browseCliEntrypoint?: string; + agentMode?: AgentToolMode; + } +> { input: EvalInput; name: string; tags: string[]; diff --git a/packages/server-v3/package.json b/packages/server-v3/package.json index 81d256b94a..ded9d6f0a3 100644 --- a/packages/server-v3/package.json +++ b/packages/server-v3/package.json @@ -11,7 +11,8 @@ "build:server:dist": "pnpm -w --dir ../.. exec tsc -p packages/server-v3/tsconfig.json && pnpm -w --dir ../.. exec tsc-alias -p packages/server-v3/tsconfig.json", "build:sea:esm": "tsx scripts/build-sea.ts --mode=esm", "build:sea:cjs": "tsx scripts/build-sea.ts --mode=cjs", - "lint": "cd ../.. && prettier --check packages/server-v3 && cd packages/server-v3 && eslint . && pnpm run typecheck", + "format:check": "cd ../.. && oxfmt --check packages/server-v3", + "lint": "pnpm run format:check && oxlint . && pnpm run typecheck", "typecheck": "pnpm -w --dir ../.. exec tsc -p packages/server-v3/tsconfig.json --noEmit", "test": "pnpm -w --dir ../.. exec turbo run test:server --filter=@browserbasehq/stagehand-server-v3 --", "test:server": "tsx scripts/test-server.ts", @@ -41,11 +42,8 @@ }, "devDependencies": { "@types/node": "22.13.1", - "eslint": "10.0.2", - "eslint-plugin-security": "^3.0.1", "openai": "4.87.1", "postject": "1.0.0-alpha.6", - "prettier": "^3.2.5", "source-map": "^0.7.4", "tsc-alias": "^1.8.10", "tsx": "*", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 029e7a465f..9d7ec2dab0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -32,9 +32,6 @@ importers: '@changesets/cli': specifier: ^2.31.0 version: 2.31.0(@types/node@25.6.2) - '@eslint/js': - specifier: ^10.0.1 - version: 10.0.1(eslint@10.3.0(jiti@2.6.1)) c8: specifier: ^11.0.0 version: 11.0.0 @@ -44,9 +41,6 @@ importers: esbuild: specifier: 0.28.1 version: 0.28.1 - eslint: - specifier: ^10.3.0 - version: 10.3.0(jiti@2.6.1) eslint-plugin-security: specifier: ^3.0.1 version: 3.0.1 @@ -62,9 +56,15 @@ importers: lint-staged: specifier: ^16.4.0 version: 16.4.0 - prettier: - specifier: ^3.2.5 - version: 3.5.3 + oxfmt: + specifier: ^0.57.0 + version: 0.57.0 + oxlint: + specifier: ^1.72.0 + version: 1.72.0 + oxlint-plugin-eslint: + specifier: ^1.72.0 + version: 1.72.0 source-map: specifier: ^0.7.4 version: 0.7.4 @@ -77,9 +77,6 @@ importers: typescript: specifier: 5.8.3 version: 5.8.3 - typescript-eslint: - specifier: ^8.56.1 - version: 8.56.1(eslint@10.3.0(jiti@2.6.1))(typescript@5.8.3) packages/cli: dependencies: @@ -129,9 +126,6 @@ importers: specifier: ^4.2.1 version: 4.3.6 devDependencies: - '@eslint/js': - specifier: ^10.0.1 - version: 10.0.1(eslint@10.4.1(jiti@2.6.1)) '@types/archiver': specifier: ^6.0.3 version: 6.0.4 @@ -144,27 +138,15 @@ importers: '@types/ws': specifier: ^8.18.1 version: 8.18.1 - eslint: - specifier: ^10.4.0 - version: 10.4.1(jiti@2.6.1) - eslint-plugin-security: - specifier: ^4.0.0 - version: 4.0.0 globals: specifier: ^17.6.0 - version: 17.6.0 + version: 17.7.0 oclif: specifier: ^4.23.1 version: 4.23.10(@types/node@20.17.32) - prettier: - specifier: 3.5.3 - version: 3.5.3 typescript: specifier: ^5.8.3 version: 5.8.3 - typescript-eslint: - specifier: ^8.59.3 - version: 8.60.1(eslint@10.4.1(jiti@2.6.1))(typescript@5.8.3) vitest: specifier: ^4.1.9 version: 4.1.9(@opentelemetry/api@1.9.0)(@types/node@20.17.32)(@vitest/coverage-v8@4.1.9)(jsdom@29.1.1)(vite@7.3.5(@types/node@20.17.32)(jiti@2.6.1)(tsx@4.22.4)(yaml@2.9.0)) @@ -287,9 +269,6 @@ importers: chalk: specifier: ^5.4.1 version: 5.4.1 - eslint: - specifier: 10.0.2 - version: 10.0.2(jiti@2.6.1) jsdom: specifier: ^29.1.1 version: 29.1.1 @@ -302,9 +281,6 @@ importers: playwright-core: specifier: ^1.55.1 version: 1.59.1 - prettier: - specifier: ^3.2.5 - version: 3.5.3 puppeteer-core: specifier: ^24.43.0 version: 24.43.0(bufferutil@4.0.9) @@ -439,21 +415,12 @@ importers: '@types/node': specifier: 22.13.1 version: 22.13.1 - eslint: - specifier: 10.0.2 - version: 10.0.2(jiti@2.6.1) - eslint-plugin-security: - specifier: ^3.0.1 - version: 3.0.1 openai: specifier: 4.87.1 version: 4.87.1(ws@8.21.0(bufferutil@4.0.9))(zod@4.2.1) postject: specifier: 1.0.0-alpha.6 version: 1.0.0-alpha.6 - prettier: - specifier: ^3.2.5 - version: 3.5.3 source-map: specifier: ^0.7.4 version: 0.7.4 @@ -1150,69 +1117,6 @@ packages: cpu: [x64] os: [win32] - '@eslint-community/eslint-utils@4.9.1': - resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - - '@eslint-community/regexpp@4.12.2': - resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - - '@eslint/config-array@0.23.2': - resolution: {integrity: sha512-YF+fE6LV4v5MGWRGj7G404/OZzGNepVF8fxk7jqmqo3lrza7a0uUcDnROGRBG1WFC1omYUS/Wp1f42i0M+3Q3A==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - - '@eslint/config-array@0.23.5': - resolution: {integrity: sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - - '@eslint/config-helpers@0.5.2': - resolution: {integrity: sha512-a5MxrdDXEvqnIq+LisyCX6tQMPF/dSJpCfBgBauY+pNZ28yCtSsTvyTYrMhaI+LK26bVyCJfJkT0u8KIj2i1dQ==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - - '@eslint/config-helpers@0.5.5': - resolution: {integrity: sha512-eIJYKTCECbP/nsKaaruF6LW967mtbQbsw4JTtSVkUQc9MneSkbrgPJAbKl9nWr0ZeowV8BfsarBmPpBzGelA2w==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - - '@eslint/config-helpers@0.6.0': - resolution: {integrity: sha512-ii6Bw9jJ2zi2cWA2Z+9/QZ/+3DX6kwaV5Q986D/CdP3Lap3w/pgQZ373FV7byY/i7L4IRH/G43I5dz1ClsCbpA==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - - '@eslint/core@1.1.0': - resolution: {integrity: sha512-/nr9K9wkr3P1EzFTdFdMoLuo1PmIxjmwvPozwoSodjNBdefGujXQUF93u1DDZpEaTuDvMsIQddsd35BwtrW9Xw==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - - '@eslint/core@1.2.1': - resolution: {integrity: sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - - '@eslint/js@10.0.1': - resolution: {integrity: sha512-zeR9k5pd4gxjZ0abRoIaxdc7I3nDktoXZk2qOv9gCNWx3mVwEn32VRhyLaRsDiJjTs0xq/T8mfPtyuXu7GWBcA==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - peerDependencies: - eslint: ^10.0.0 - peerDependenciesMeta: - eslint: - optional: true - - '@eslint/object-schema@3.0.5': - resolution: {integrity: sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - - '@eslint/plugin-kit@0.6.0': - resolution: {integrity: sha512-bIZEUzOI1jkhviX2cp5vNyXQc6olzb2ohewQubuYlMXZ2Q/XjBO0x0XhGPvc9fjSIiUN0vw+0hq53BJ4eQSJKQ==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - - '@eslint/plugin-kit@0.7.1': - resolution: {integrity: sha512-rZAP3aVgB9ds9KOeUSL+zZ21hPmo8dh6fnIFwRQj5EAZl9gzR7wxYbYXYysAM8CTqGmUGyp2S4kUdV17MnGuWQ==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - - '@eslint/plugin-kit@0.7.2': - resolution: {integrity: sha512-+CNAzxglkrpNf/kKywqQfk74QjtceuOE7Qm+AF8miRvPF/wmmK5+OJOgVh3AVTT3RP2mH3+FOaxlE5v72owk0A==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@exodus/bytes@1.15.0': resolution: {integrity: sha512-UY0nlA+feH81UGSHv92sLEPLCeZFjXOuHhrIo0HQydScuQc8s0A7kL/UdgwgDq8g8ilksmuoF35YVTNphV2aBQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} @@ -1288,42 +1192,6 @@ packages: peerDependencies: hono: ^4.12.25 - '@humanfs/core@0.19.1': - resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} - engines: {node: '>=18.18.0'} - - '@humanfs/core@0.19.2': - resolution: {integrity: sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==} - engines: {node: '>=18.18.0'} - - '@humanfs/node@0.16.6': - resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} - engines: {node: '>=18.18.0'} - - '@humanfs/node@0.16.8': - resolution: {integrity: sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==} - engines: {node: '>=18.18.0'} - - '@humanfs/types@0.15.0': - resolution: {integrity: sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==} - engines: {node: '>=18.18.0'} - - '@humanwhocodes/module-importer@1.0.1': - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} - - '@humanwhocodes/retry@0.3.1': - resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} - engines: {node: '>=18.18'} - - '@humanwhocodes/retry@0.4.2': - resolution: {integrity: sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==} - engines: {node: '>=18.18'} - - '@humanwhocodes/retry@0.4.3': - resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} - engines: {node: '>=18.18'} - '@img/colour@1.0.0': resolution: {integrity: sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==} engines: {node: '>=18'} @@ -1942,6 +1810,234 @@ packages: resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} engines: {node: '>=8.0.0'} + '@oxfmt/binding-android-arm-eabi@0.57.0': + resolution: {integrity: sha512-qVBsEO+KugOsCmUHcO8iqNnqc65p7PCKpCs8M66mPZ+Ri+CWbcpoQOEJBg2OTu03+0qu++NK1jj6IzvQVs0Sig==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [android] + + '@oxfmt/binding-android-arm64@0.57.0': + resolution: {integrity: sha512-mp6PibWbao3aizijcheOeHQaYEhcUAt8pwLniYbtLfHxL/psFF0BykAwCj+s3c6qIpa8yN8keZICWrqtZ70w8g==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + + '@oxfmt/binding-darwin-arm64@0.57.0': + resolution: {integrity: sha512-T+0stuCBqmUVY+aMIvrgXhzGhHO3sD5tNiiEcYqgSdPsnukskQqn2u5qOVD0sv1l7RLdFS5Z/f5Wi9Ktyjr3Eg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + + '@oxfmt/binding-darwin-x64@0.57.0': + resolution: {integrity: sha512-O+3JbqWs/mCI2oi4xfhRO2IVPFJNDDEBV8Odo+ZpmsUOeKJfjXoNH7nDmBEQcDgK7NfjDIyE7kRgYSZcTLDO0A==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + + '@oxfmt/binding-freebsd-x64@0.57.0': + resolution: {integrity: sha512-pxwhxVC+JkLX9twOQ/8C/vbuOQcMZyKIDmiRDZfO7yITuVcIdZCiLRqqf4QOxb2+8FWrRXzQpm+1DBKcMpHSSQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + + '@oxfmt/binding-linux-arm-gnueabihf@0.57.0': + resolution: {integrity: sha512-pxBU4zH2imB/MDBfth2rOMeVxXUMjRQLCazagwLARIFH3hVlxZJBlM4nSnHXaIHJK4/qezoFCIORN6AY8Mra4A==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxfmt/binding-linux-arm-musleabihf@0.57.0': + resolution: {integrity: sha512-JAprOzt8tycYou36ZgEw14DlRHTiN8qdtKANdV3VZIRIvTI/lh/cX13c9pJ/EnDk2GT3FASH7KvCgQ2AufAifQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxfmt/binding-linux-arm64-gnu@0.57.0': + resolution: {integrity: sha512-ajtjaxSaj9xl4BW7REt+Cef/ttzbAq00Bq4z7JUDZEfgFXdwSjH8K9bF+IcIJzZB9lKqMfQ4eHuSFOvvlvtqOg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + + '@oxfmt/binding-linux-arm64-musl@0.57.0': + resolution: {integrity: sha512-p4Y/+RYk9Bk5WO+zHSUXAClRmZ2fbJCejMuCAsU2HhyME4jqf6Ftt/mJYEwIah1wGCBDYOB7wEGV1x5bCEZ6hA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + + '@oxfmt/binding-linux-ppc64-gnu@0.57.0': + resolution: {integrity: sha512-By6tRALAZsno0F4zedmtG+wdMvJiJmJoXM4d3+A9zHE4HRXLqXITwRH8mgrlcXc5yJM2g2W3riRPwTYdgemZLQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + + '@oxfmt/binding-linux-riscv64-gnu@0.57.0': + resolution: {integrity: sha512-skYeG+RgvyzspqVEBsEprL90OYYZfoVNqB3HcCNR6QDJyXKOzfDRT3zncnHmUaFluIlBHuY23mU1b5WGgR98hA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + + '@oxfmt/binding-linux-riscv64-musl@0.57.0': + resolution: {integrity: sha512-FFgACrZOXAXUh5KQh2mt1CDOVOZmn+QzHP71wM9QobNwyQvoFfyAeefVUltW83g3sm7LTiH3yfFqLLVUpA5ZFQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + + '@oxfmt/binding-linux-s390x-gnu@0.57.0': + resolution: {integrity: sha512-Nm/BAOfQeFiiKd502mZn/GAVKJwtd0RdCg17G3Wz/WSOIQmDi3+7/SZH4BHn1Ye5KvTVH3ua8WvfwLLycNIuvA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + + '@oxfmt/binding-linux-x64-gnu@0.57.0': + resolution: {integrity: sha512-BiSy5Ku3mQqyxS6YIqAJgd403wEUWvI7kerfzPxc2l/txZVmZM0pSj7oDM+4bGBExowxOi7o73jEam1W0EDTZg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + + '@oxfmt/binding-linux-x64-musl@0.57.0': + resolution: {integrity: sha512-BCRkJiotz5s9afLYD2LuMvzAoDYx9H17E/YbDyu4xK7l4zHDPeny9ErSXL//i/nJyaOwRk08x4b8cgJC00+JDg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + + '@oxfmt/binding-openharmony-arm64@0.57.0': + resolution: {integrity: sha512-4Oaxe1qrGgXfpCJ1C/ERJ2iCtV2rN1R79ga9fsfyVHfSQRu/hVW780u2KDqZWFZ/iGTHODJji0JemxqFZ63eIQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + + '@oxfmt/binding-win32-arm64-msvc@0.57.0': + resolution: {integrity: sha512-MYLAsDnhdNsSGheLYhWgbk0vfIrlS84iQYun/y21fX6u0jj8iBtYtbpZMdiqYeuf8U12eVPUjVY2xE2NrCfJ0g==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + + '@oxfmt/binding-win32-ia32-msvc@0.57.0': + resolution: {integrity: sha512-PBwdzZALJY/jcCx2E6is0yu+cuVXeySTDmwuseD+9j0mHqlRNxwlKgsyRTBed/woPeqfVfuXfWjoq4Cx2Zt3Eg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ia32] + os: [win32] + + '@oxfmt/binding-win32-x64-msvc@0.57.0': + resolution: {integrity: sha512-bQJdH9i4RRfw55jm7+8/xS7GzHLLTbHx4huhrrDxQJaJtbSDbsyOnODvP1ftT7EG0KFKAYO2S+q6AcioXODx8w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + + '@oxlint/binding-android-arm-eabi@1.72.0': + resolution: {integrity: sha512-zhCmvn+1Mj3UchAc/90i99S0t7jJUsHmFVSPg4UWrjO8b8eaSGwscgO6QAUtvHBstkjQwBttQNswEnAF1mIQdA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [android] + + '@oxlint/binding-android-arm64@1.72.0': + resolution: {integrity: sha512-mtH+aY/ozv1eZoCUC2owjFAtyNBKHpJHygKeEu9zXXnQGW1Q2/qOpvx+I+Lf23+TvTz66F4iiXUbl2cGvoLPCQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + + '@oxlint/binding-darwin-arm64@1.72.0': + resolution: {integrity: sha512-EvnajNPDtfknB3ZieeOOyDTwJn9QXDiwfnF4ZDQqART6RG6hjY4WigQcZdGoK2dkB3e1vrmEzN9aYbQCUkh/gQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + + '@oxlint/binding-darwin-x64@1.72.0': + resolution: {integrity: sha512-ZkCdEa/G80A7vEHfeCDz/+L3m33DE73v32mDKhgOIgz8Uwf0DFcK7+uu6qC+7LEhmz5fpOe1osWKyjSNMydFIQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + + '@oxlint/binding-freebsd-x64@1.72.0': + resolution: {integrity: sha512-NroXv2vh+sxVY1uya/rM5pjhx1hm8BzlYpx9q67QP0Xhw5MH2bf5GJylpvLEC+781p1Xli/317EoV9AlGwViag==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + + '@oxlint/binding-linux-arm-gnueabihf@1.72.0': + resolution: {integrity: sha512-0NDywYgfj279Ou/BcQuCYSj7NJwBfmWn5qc5uGO/Ny7fUWmXyIpvawqX/8acQlWG6IXelJsJhj+JAy6sjsKj0A==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxlint/binding-linux-arm-musleabihf@1.72.0': + resolution: {integrity: sha512-4vpXB06h65Ezsy4hRyrGjGrfa1SkVPii09yaajiYhmVpgsFiLD+KNxIx/BNAY+XiO+i1yqp9HHdwqM8VTqa5XQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxlint/binding-linux-arm64-gnu@1.72.0': + resolution: {integrity: sha512-immaN4g2ZGFiOkKrvRX9LvzZdd2GkQM5wR+UyzYyUuyhUTXGQ4HKUJH18xp4G8OfhCVaVAJfKZxwE1r8+4hhaQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + + '@oxlint/binding-linux-arm64-musl@1.72.0': + resolution: {integrity: sha512-JGHS9Mnr7iWyyLDxgCv1MhzVpAckgptg00F2gnxt/GD7lQ2SW1BRcxHqhSTaSdDpjWRrBkBxMMh4+Hn3aVtExg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + + '@oxlint/binding-linux-ppc64-gnu@1.72.0': + resolution: {integrity: sha512-AOYgBZqxNshrg83P9v0RYv+m8s10Cqkj4/PxXFDhcS3k7FqsIG5+CxErshZCIN7G8iy4Y+VGfAsuEdar8AcbBg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + + '@oxlint/binding-linux-riscv64-gnu@1.72.0': + resolution: {integrity: sha512-QMybPS5ij3/vrKG67mqzHwW++91sYxK/PPUVi6SBtNCEzW4niS52fVBdXbQ6nou0wWbUPEpx8Sl/ZjtgE3clXA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + + '@oxlint/binding-linux-riscv64-musl@1.72.0': + resolution: {integrity: sha512-gOc3W7JV0PXRpIL7stUlLe3Wa9Gp0Kdlup87IT3gHDvPKck2xNgMIl/Gs2lldYY2lyXZDC4rWi3hmoLUobkgbQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + + '@oxlint/binding-linux-s390x-gnu@1.72.0': + resolution: {integrity: sha512-rpGxph+FjjHcYI5q6uxB3Az+tnfmEnDbSA8+PK9ZE/VzyUAkvBOMeuY7ZQMhu5mpZH7YQDsTdW6Cx4kV/msc6w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + + '@oxlint/binding-linux-x64-gnu@1.72.0': + resolution: {integrity: sha512-WND+uhf/Ko13SLqQMWQUgsZuLvYYEvL0ZKgg0tgGYfLqxG7l8Ju123fHDMJyYSDl5E3bUbpFUuii/OvMreFQzw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + + '@oxlint/binding-linux-x64-musl@1.72.0': + resolution: {integrity: sha512-SrpbrUL70nG9vh6zP4/oKHWgLuHquwsr7MW9XOn0olBVgh10Uqr8qscKhQoBGEn6olK/IUpn5GSKcdQ5AjUhGA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + + '@oxlint/binding-openharmony-arm64@1.72.0': + resolution: {integrity: sha512-qkrsEn6NmgFKr7U/QnezQMb+q/vzAy0Dd9Y95gQGQTyjzDLN+HRZMuM5u70iyH4nBLCfKBzhjMsYCehKay2jyg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + + '@oxlint/binding-win32-arm64-msvc@1.72.0': + resolution: {integrity: sha512-LWR6ZlFZph+KPjXv8opgZsXRDCdrdQe8VL8Cg9zxCoBS73h6znzZpydVgmdnwj8mB9AuSM5jxEgDJDpQkjboeg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + + '@oxlint/binding-win32-ia32-msvc@1.72.0': + resolution: {integrity: sha512-yt6HEh7IsHvtjRWtmeZRX134eaXKHq5Gnqlf1xBJdJl1JtdoRUEJw3nAxpZoUDS860cX/foKbztO441anVBtVQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ia32] + os: [win32] + + '@oxlint/binding-win32-x64-msvc@1.72.0': + resolution: {integrity: sha512-b2eKFD2hX7tIwmo/cyH6TDq8vzWRZ2qNHrzoGntUTmq0h3zQh/uX3eTSHCwI8OB/ADQfJCRelLItK8BsxuucDA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + '@pinojs/redact@0.4.0': resolution: {integrity: sha512-k2ENnmBugE/rzQfEcdWHcCY+/FM3VLzH9cYEsbdsoqrvzAKRhUZeRNhAZvB8OitQJ1TBed3yqWtdjzS6wJKBwg==} @@ -2588,9 +2684,6 @@ packages: '@types/es-aggregate-error@1.0.6': resolution: {integrity: sha512-qJ7LIFp06h1QE1aVxbVd+zJP2wdaugYXYfd6JxsyRMrYHaxb6itXPogW2tz+ylUJ1n1b+JF1PHyYCfYHm0dvUg==} - '@types/esrecurse@4.3.1': - resolution: {integrity: sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==} - '@types/estree-jsx@1.0.5': resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} @@ -2681,124 +2774,6 @@ packages: '@types/yauzl@2.10.3': resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} - '@typescript-eslint/eslint-plugin@8.56.1': - resolution: {integrity: sha512-Jz9ZztpB37dNC+HU2HI28Bs9QXpzCz+y/twHOwhyrIRdbuVDxSytJNDl6z/aAKlaRIwC7y8wJdkBv7FxYGgi0A==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - '@typescript-eslint/parser': ^8.56.1 - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' - - '@typescript-eslint/eslint-plugin@8.60.1': - resolution: {integrity: sha512-JQ4S5GB0tfjO8BuJ4fcX+HodkzJjYBV+7OJ+wLygaX7OGQ7FudyHL4NSCA6ob+w3Yn+5MkKIozOwQhXeM7opVg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - '@typescript-eslint/parser': ^8.60.1 - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.1.0' - - '@typescript-eslint/parser@8.56.1': - resolution: {integrity: sha512-klQbnPAAiGYFyI02+znpBRLyjL4/BrBd0nyWkdC0s/6xFLkXYQ8OoRrSkqacS1ddVxf/LDyODIKbQ5TgKAf/Fg==} - 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.0.0' - - '@typescript-eslint/parser@8.60.1': - resolution: {integrity: sha512-A0M6ua6H252bVjPvvtSgl2QA4+ET9S5Mtkb2GDyTxIhH/C4qDItT7RQNO5PhMC6NXGYXOR9dIalcDDgBKT7oFA==} - 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.56.1': - resolution: {integrity: sha512-TAdqQTzHNNvlVFfR+hu2PDJrURiwKsUvxFn1M0h95BB8ah5jejas08jUWG4dBA68jDMI988IvtfdAI53JzEHOQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.0.0' - - '@typescript-eslint/project-service@8.60.1': - resolution: {integrity: sha512-eXkTH2bxmXlqD1RnOPmLZ9ZM9D3VwSx04JOwBnP9RQ+yUA5a2Mu7SfW8uaV2Aon53NJzZlZYuX7tn91Izf+xaw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.1.0' - - '@typescript-eslint/scope-manager@8.56.1': - resolution: {integrity: sha512-YAi4VDKcIZp0O4tz/haYKhmIDZFEUPOreKbfdAN3SzUDMcPhJ8QI99xQXqX+HoUVq8cs85eRKnD+rne2UAnj2w==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/scope-manager@8.60.1': - resolution: {integrity: sha512-gvI5OQoptnxQnchOirukCuQ55svJSTuD/4k5+pC267xyBtYry748R9/c3tYUzb/iE6RZfllRz2lVulLCHkTm4w==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/tsconfig-utils@8.56.1': - resolution: {integrity: sha512-qOtCYzKEeyr3aR9f28mPJqBty7+DBqsdd63eO0yyDwc6vgThj2UjWfJIcsFeSucYydqcuudMOprZ+x1SpF3ZuQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.0.0' - - '@typescript-eslint/tsconfig-utils@8.60.1': - resolution: {integrity: sha512-nh8w4qAteiKuZu3pSSzG/yGKpw0OlkrKnzFmbVRenKaD4qc+7i1GrmZaLVkr8rk4uipiPGMOW4YsM6WmKZ5CvA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.1.0' - - '@typescript-eslint/type-utils@8.56.1': - resolution: {integrity: sha512-yB/7dxi7MgTtGhZdaHCemf7PuwrHMenHjmzgUW1aJpO+bBU43OycnM3Wn+DdvDO/8zzA9HlhaJ0AUGuvri4oGg==} - 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.0.0' - - '@typescript-eslint/type-utils@8.60.1': - resolution: {integrity: sha512-sdwTrpjosW7ANQYJ39ZBF1ZyEMEGVB2UsikrserVM/30a/F1dTLnu9bGxEdosugyu5caigjLrR2qiD11asjI1A==} - 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.56.1': - resolution: {integrity: sha512-dbMkdIUkIkchgGDIv7KLUpa0Mda4IYjo4IAMJUZ+3xNoUXxMsk9YtKpTHSChRS85o+H9ftm51gsK1dZReY9CVw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/types@8.60.1': - resolution: {integrity: sha512-4h0tY8ppCkdCzcrl2YM5M3my0xsE1Tf8om3owEu5oPWmXwkKRmk0j0LGDzYBGUcAlesEbxBhazqu/K4cu3Ug7w==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/typescript-estree@8.56.1': - resolution: {integrity: sha512-qzUL1qgalIvKWAf9C1HpvBjif+Vm6rcT5wZd4VoMb9+Km3iS3Cv9DY6dMRMDtPnwRAFyAi7YXJpTIEXLvdfPxg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.0.0' - - '@typescript-eslint/typescript-estree@8.60.1': - resolution: {integrity: sha512-alpRkfG8hlVE5kdJW2GkfgDgXxold3e8e4l6EnmhRmRLbekgAPCCGDVD++sABy9FcgPFroq+uFcCSM1vR57Cew==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.1.0' - - '@typescript-eslint/utils@8.56.1': - resolution: {integrity: sha512-HPAVNIME3tABJ61siYlHzSWCGtOoeP2RTIaHXFMPqjrQKCGB9OgUVdiNgH7TJS2JNIQ5qQ4RsAUDuGaGme/KOA==} - 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.0.0' - - '@typescript-eslint/utils@8.60.1': - resolution: {integrity: sha512-h2MPBLoNtjc3qZWfY3Tl51yPorQ2McHn8pJfcMNTcIvrrZrr90Ykffit0yjrPFWQcRcUxzH20+6OcVdW4yHtUg==} - 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.56.1': - resolution: {integrity: sha512-KiROIzYdEV85YygXw6BI/Dx4fnBlFQu6Mq4QE4MOH9fFnhohw6wX/OAvDY2/C+ut0I3RSPKenvZJIVYqJNkhEw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/visitor-keys@8.60.1': - resolution: {integrity: sha512-EbGRQg4FhrmwLodl+t3JNAnXHWVr9Vp+Zl1QBZVPY4ByfkzIT8cX3K6QWODHtkIZqqJVEWvhHSx3v5PDHsaQag==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript/vfs@1.6.4': resolution: {integrity: sha512-PJFXFS4ZJKiJ9Qiuix6Dz/OwEIqHD7Dme1UwZhTK11vR+5dqW2ACbdndWQexBzCx+CPuMe5WBYQWCsFyGlQLlQ==} peerDependencies: @@ -2956,9 +2931,6 @@ packages: ajv: optional: true - ajv@6.15.0: - resolution: {integrity: sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==} - ajv@8.20.0: resolution: {integrity: sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==} @@ -3658,9 +3630,6 @@ packages: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} engines: {node: '>=4.0.0'} - deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - deepmerge@4.3.1: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} @@ -3931,77 +3900,11 @@ packages: resolution: {integrity: sha512-XjVGBhtDZJfyuhIxnQ/WMm385RbX3DBu7H1J7HNNhmB2tnGxMeqVSnYv79oAj992ayvIBZghsymwkYFS6cGH4Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint-plugin-security@4.0.0: - resolution: {integrity: sha512-tfuQT8K/Li1ZxhFzyD8wPIKtlzZxqBcPr9q0jFMQ77wWAbKBVEhaMPVQRTMTvCMUDhwBe5vPVqQPwAGk/ASfxQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - eslint-scope@9.1.1: - resolution: {integrity: sha512-GaUN0sWim5qc8KVErfPBWmc31LEsOkrUJbvJZV+xuL3u2phMUK4HIvXlWAakfC8W4nzlK+chPEAkYOYb5ZScIw==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - - eslint-scope@9.1.2: - resolution: {integrity: sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - - eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint-visitor-keys@5.0.1: - resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - - eslint@10.0.2: - resolution: {integrity: sha512-uYixubwmqJZH+KLVYIVKY1JQt7tysXhtj21WSvjcSmU5SVNzMus1bgLe+pAt816yQ8opKfheVVoPLqvVMGejYw==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - hasBin: true - peerDependencies: - jiti: '*' - peerDependenciesMeta: - jiti: - optional: true - - eslint@10.3.0: - resolution: {integrity: sha512-XbEXaRva5cF0ZQB8w6MluHA0kZZfV2DuCMJ3ozyEOHLwDpZX2Lmm/7Pp0xdJmI0GL1W05VH5VwIFHEm1Vcw2gw==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - hasBin: true - peerDependencies: - jiti: '*' - peerDependenciesMeta: - jiti: - optional: true - - eslint@10.4.1: - resolution: {integrity: sha512-AyIKhnOBuOAdueD7RB3xB+YeAWScb9jHsJBgH2Hcde8InP5JYhqrRR6iTMHyTEwgENK54Cp44e4v8BwNhsuHuw==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - hasBin: true - peerDependencies: - jiti: '*' - peerDependenciesMeta: - jiti: - optional: true - - espree@11.1.1: - resolution: {integrity: sha512-AVHPqQoZYc+RUM4/3Ly5udlZY/U4LS8pIG05jEjWM2lQMU/oaZ7qshzAl2YP1tfNmXfftH3ohurfwNAug+MnsQ==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - - espree@11.2.0: - resolution: {integrity: sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} hasBin: true - esquery@1.7.0: - resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} - engines: {node: '>=0.10'} - - esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} - estraverse@5.3.0: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} @@ -4118,15 +4021,9 @@ packages: resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} engines: {node: '>=8.6.0'} - fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - fast-json-stringify@6.1.1: resolution: {integrity: sha512-DbgptncYEXZqDUOEl4krff4mUiVrTZZVI7BBrQR/T3BqMj/eM1flTC1Uk2uUoLcWCxjT95xKulV/Lc6hhOZsBQ==} - fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - fast-levenshtein@3.0.0: resolution: {integrity: sha512-hKKNajm46uNmTlhHSyZkmToAc56uZJwYq7yrciZjqOxnlfQwERDQJmHPUp7m1m9wx8vgOe8IaCKZ5Kv2k1DdCQ==} @@ -4213,10 +4110,6 @@ packages: fetch-cookie@3.1.0: resolution: {integrity: sha512-s/XhhreJpqH0ftkGVcQt8JE9bqk+zRn4jF5mPJXWZeQMCI5odV9K+wEWYbnzFPHgQZlvPSMjS4n4yawWE8RINw==} - file-entry-cache@8.0.0: - resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} - engines: {node: '>=16.0.0'} - filelist@1.0.6: resolution: {integrity: sha512-5giy2PkLYY1cP39p17Ech+2xlpTRL9HLspOfEgm0L6CwBXBTgsK5ou0JtzYuepxkaQ/tvhCFIJ5uXo0OrM2DxA==} @@ -4247,13 +4140,6 @@ packages: find-yarn-workspace-root@2.0.0: resolution: {integrity: sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==} - flat-cache@4.0.1: - resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} - engines: {node: '>=16'} - - flatted@3.4.2: - resolution: {integrity: sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==} - follow-redirects@1.16.0: resolution: {integrity: sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==} engines: {node: '>=4.0'} @@ -4472,8 +4358,8 @@ packages: resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} engines: {node: '>=18'} - globals@17.6.0: - resolution: {integrity: sha512-sepffkT8stwnIYbsMBpoCHJuJM5l98FUF2AnE07hfvE0m/qp3R586hw4jF4uadbhvg1ooIdzuu7CsfD2jzCaNA==} + globals@17.7.0: + resolution: {integrity: sha512-Czmyns5dUsq4seFBR/Kdydhmo8y9kC79hiSkPn0YcGtNnYWnrgt0vjrSjx9tspoDGWm2CMarffRuLjM4xUz8xg==} engines: {node: '>=18'} globalthis@1.0.4: @@ -4720,10 +4606,6 @@ packages: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} - imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - indent-string@4.0.0: resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} engines: {node: '>=8'} @@ -5071,9 +4953,6 @@ packages: resolution: {integrity: sha512-+DWg8jCJG2TEnpy7kOm/7/AxaYoaRbjVB4LFZLySZlWn8exGs3A4OLJR966cVvU26N7X9TWxl+Jsw7dzAqKT6g==} engines: {node: '>=16'} - json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} @@ -5083,9 +4962,6 @@ packages: json-schema@0.4.0: resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} - json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - jsonc-parser@2.2.1: resolution: {integrity: sha512-o6/yDBYccGvTz1+QFevz6l6OBZ2+fMVu2JZ9CIhzsYRX4mjaK5IyX9eldUdCmga16zlgQxyrj5pt9kzuj2C02w==} @@ -5143,10 +5019,6 @@ packages: resolution: {integrity: sha512-puehA3YKku3osqPlNuzGDUHq8WpwXupUg1V6NXdV38G+gr+gkBwFC8g1b/+YcIvp8gnqVIus+eJCH/eGsRmJNw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} - light-my-request@6.6.0: resolution: {integrity: sha512-CHYbu8RtboSIoVsHZ6Ye4cj4Aw/yg2oAFimlF7mNvfDV192LR7nDiKtSIfCuLT7KokPSTn/9kfVLm5OGN0A28A==} @@ -5555,9 +5427,6 @@ packages: napi-build-utils@2.0.0: resolution: {integrity: sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==} - natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - negotiator@0.6.3: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} @@ -5747,10 +5616,6 @@ packages: openid-client@6.8.2: resolution: {integrity: sha512-uOvTCndr4udZsKihJ68H9bUICrriHdUVJ6Az+4Ns6cW55rwM5h0bjVIzDz2SxgOI84LKjFyjOFvERLzdTUROGA==} - optionator@0.9.4: - resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} - engines: {node: '>= 0.8.0'} - outdent@0.5.0: resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} @@ -5758,6 +5623,36 @@ packages: resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} engines: {node: '>= 0.4'} + oxfmt@0.57.0: + resolution: {integrity: sha512-ZB7Bi+rGDSqmVIo9jwcLyFgjxXvQhDdU+jx+ZrVy6VRiVXK2+CHc4hO3J4dUQjHe7V0ymHB+MDuv5z+NhK07HA==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + svelte: ^5.0.0 + vite-plus: '*' + peerDependenciesMeta: + svelte: + optional: true + vite-plus: + optional: true + + oxlint-plugin-eslint@1.72.0: + resolution: {integrity: sha512-Qm/wmSChJcvk7CNcRoU3QYPUazRwZDnldBbcWeXm0+hVaHPl9Wfe0DdQ380Ntr8teBNVi/N/TOQ24Iw1j3tqYw==} + engines: {node: ^20.19.0 || >=22.12.0} + + oxlint@1.72.0: + resolution: {integrity: sha512-1rhdZIP/EvoI91ABIwNU5Q8+bWf8mjrS5UzIOZld4d4bXxJvtlUhlQvaoTogIGin/qdErMOrwaIJvCSIAKTLhA==} + 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-any@4.0.0: resolution: {integrity: sha512-S/B50s+pAVe0wmEZHmBs/9yJXeZ5KhHzOsgKzt0hRdgkoR3DxW9ts46fcsWi/r3VnzsnkKS7q4uimze+zjdryw==} engines: {node: '>=12.20'} @@ -6042,20 +5937,11 @@ packages: deprecated: No longer maintained. Please contact the author of the relevant native addon; alternatives are available. hasBin: true - prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - prettier@2.8.8: resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} engines: {node: '>=10.13.0'} hasBin: true - prettier@3.5.3: - resolution: {integrity: sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==} - engines: {node: '>=14'} - hasBin: true - process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} @@ -6873,14 +6759,14 @@ packages: resolution: {integrity: sha512-dAqSqE/RabpBKI8+h26GfLq6Vb3JVXs30XYQjdMjaj/c2tS8IYYMbIzP599KtRj7c57/wYApb3QjgRgXmrCukA==} engines: {node: '>=18'} - tinyglobby@0.2.15: - resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} - engines: {node: '>=12.0.0'} - tinyglobby@0.2.16: resolution: {integrity: sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==} engines: {node: '>=12.0.0'} + tinypool@2.1.0: + resolution: {integrity: sha512-Pugqs6M0m7Lv1I7FtxN4aoyToKg1C4tu+/381vH35y8oENM/Ai7f7C4StcoK4/+BSw9ebcS8jRiVrORFKCALLw==} + engines: {node: ^20.0.0 || >=22.0.0} + tinyrainbow@3.1.0: resolution: {integrity: sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==} engines: {node: '>=14.0.0'} @@ -6941,18 +6827,6 @@ packages: ts-algebra@2.0.0: resolution: {integrity: sha512-FPAhNPFMrkwz76P7cdjdmiShwMynZYN6SgOujD1urY4oNm80Ou9oMdmbR45LotcKOXoy7wSmHkRFE6Mxbrhefw==} - ts-api-utils@2.4.0: - resolution: {integrity: sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==} - engines: {node: '>=18.12'} - peerDependencies: - typescript: '>=4.8.4' - - 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-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} @@ -6992,10 +6866,6 @@ packages: peerDependencies: typescript: ^5.5.0 || ^6.0.0 - type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} - type-fest@0.21.3: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} @@ -7031,20 +6901,6 @@ packages: typed-query-selector@2.12.2: resolution: {integrity: sha512-EOPFbyIub4ngnEdqi2yOcNeDLaX/0jcE1JoAXQDDMIthap7FoN795lc/SHfIq2d416VufXpM8z/lD+WRm2gfOQ==} - typescript-eslint@8.56.1: - resolution: {integrity: sha512-U4lM6pjmBX7J5wk4szltF7I1cGBHXZopnAXCMXb3+fZ3B/0Z3hq3wS/CCUB2NZBNAExK92mCU2tEohWuwVMsDQ==} - 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.0.0' - - typescript-eslint@8.60.1: - resolution: {integrity: sha512-6m5hkkRAp8lKvhVpcprAIn5KkehQEh+47oHH2VGnExEh7dhNxXlg6GPAOIu6TxbVQxhebrJDvjl3020ooiWCMA==} - 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.8.3: resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} engines: {node: '>=14.17'} @@ -7147,9 +7003,6 @@ packages: upper-case@2.0.2: resolution: {integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==} - uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - urijs@1.19.11: resolution: {integrity: sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==} @@ -7369,10 +7222,6 @@ packages: resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==} engines: {node: '>=18'} - word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} - engines: {node: '>=0.10.0'} - wordwrap@1.0.0: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} @@ -8437,84 +8286,6 @@ snapshots: '@esbuild/win32-x64@0.28.1': optional: true - '@eslint-community/eslint-utils@4.9.1(eslint@10.0.2(jiti@2.6.1))': - dependencies: - eslint: 10.0.2(jiti@2.6.1) - eslint-visitor-keys: 3.4.3 - - '@eslint-community/eslint-utils@4.9.1(eslint@10.3.0(jiti@2.6.1))': - dependencies: - eslint: 10.3.0(jiti@2.6.1) - eslint-visitor-keys: 3.4.3 - - '@eslint-community/eslint-utils@4.9.1(eslint@10.4.1(jiti@2.6.1))': - dependencies: - eslint: 10.4.1(jiti@2.6.1) - eslint-visitor-keys: 3.4.3 - - '@eslint-community/regexpp@4.12.2': {} - - '@eslint/config-array@0.23.2': - dependencies: - '@eslint/object-schema': 3.0.5 - debug: 4.4.3(supports-color@8.1.1) - minimatch: 3.1.5 - transitivePeerDependencies: - - supports-color - - '@eslint/config-array@0.23.5': - dependencies: - '@eslint/object-schema': 3.0.5 - debug: 4.4.3(supports-color@8.1.1) - minimatch: 3.1.5 - transitivePeerDependencies: - - supports-color - - '@eslint/config-helpers@0.5.2': - dependencies: - '@eslint/core': 1.2.1 - - '@eslint/config-helpers@0.5.5': - dependencies: - '@eslint/core': 1.2.1 - - '@eslint/config-helpers@0.6.0': - dependencies: - '@eslint/core': 1.2.1 - - '@eslint/core@1.1.0': - dependencies: - '@types/json-schema': 7.0.15 - - '@eslint/core@1.2.1': - dependencies: - '@types/json-schema': 7.0.15 - - '@eslint/js@10.0.1(eslint@10.3.0(jiti@2.6.1))': - optionalDependencies: - eslint: 10.3.0(jiti@2.6.1) - - '@eslint/js@10.0.1(eslint@10.4.1(jiti@2.6.1))': - optionalDependencies: - eslint: 10.4.1(jiti@2.6.1) - - '@eslint/object-schema@3.0.5': {} - - '@eslint/plugin-kit@0.6.0': - dependencies: - '@eslint/core': 1.2.1 - levn: 0.4.1 - - '@eslint/plugin-kit@0.7.1': - dependencies: - '@eslint/core': 1.2.1 - levn: 0.4.1 - - '@eslint/plugin-kit@0.7.2': - dependencies: - '@eslint/core': 1.2.1 - levn: 0.4.1 - '@exodus/bytes@1.15.0': {} '@fastify/accept-negotiator@2.0.1': {} @@ -8615,33 +8386,6 @@ snapshots: dependencies: hono: 4.12.25 - '@humanfs/core@0.19.1': {} - - '@humanfs/core@0.19.2': - dependencies: - '@humanfs/types': 0.15.0 - - '@humanfs/node@0.16.6': - dependencies: - '@humanfs/core': 0.19.1 - '@humanwhocodes/retry': 0.3.1 - - '@humanfs/node@0.16.8': - dependencies: - '@humanfs/core': 0.19.2 - '@humanfs/types': 0.15.0 - '@humanwhocodes/retry': 0.4.3 - - '@humanfs/types@0.15.0': {} - - '@humanwhocodes/module-importer@1.0.1': {} - - '@humanwhocodes/retry@0.3.1': {} - - '@humanwhocodes/retry@0.4.2': {} - - '@humanwhocodes/retry@0.4.3': {} - '@img/colour@1.0.0': {} '@img/sharp-darwin-arm64@0.33.5': @@ -9593,53 +9337,167 @@ snapshots: transitivePeerDependencies: - '@types/node' - '@oclif/plugin-warn-if-update-available@3.1.65': - dependencies: - '@oclif/core': 4.11.4 - ansis: 3.17.0 - debug: 4.4.3(supports-color@8.1.1) - http-call: 5.3.0 - lodash: 4.18.1 - registry-auth-token: 5.1.1 - transitivePeerDependencies: - - supports-color + '@oclif/plugin-warn-if-update-available@3.1.65': + dependencies: + '@oclif/core': 4.11.4 + ansis: 3.17.0 + debug: 4.4.3(supports-color@8.1.1) + http-call: 5.3.0 + lodash: 4.18.1 + registry-auth-token: 5.1.1 + transitivePeerDependencies: + - supports-color + + '@openai/codex-sdk@0.125.0': + dependencies: + '@openai/codex': 0.125.0 + + '@openai/codex@0.125.0': + optionalDependencies: + '@openai/codex-darwin-arm64': '@openai/codex@0.125.0-darwin-arm64' + '@openai/codex-darwin-x64': '@openai/codex@0.125.0-darwin-x64' + '@openai/codex-linux-arm64': '@openai/codex@0.125.0-linux-arm64' + '@openai/codex-linux-x64': '@openai/codex@0.125.0-linux-x64' + '@openai/codex-win32-arm64': '@openai/codex@0.125.0-win32-arm64' + '@openai/codex-win32-x64': '@openai/codex@0.125.0-win32-x64' + + '@openai/codex@0.125.0-darwin-arm64': + optional: true + + '@openai/codex@0.125.0-darwin-x64': + optional: true + + '@openai/codex@0.125.0-linux-arm64': + optional: true + + '@openai/codex@0.125.0-linux-x64': + optional: true + + '@openai/codex@0.125.0-win32-arm64': + optional: true + + '@openai/codex@0.125.0-win32-x64': + optional: true + + '@openapi-contrib/openapi-schema-to-json-schema@3.2.0': + dependencies: + fast-deep-equal: 3.1.3 + + '@opentelemetry/api@1.9.0': {} + + '@oxfmt/binding-android-arm-eabi@0.57.0': + optional: true + + '@oxfmt/binding-android-arm64@0.57.0': + optional: true + + '@oxfmt/binding-darwin-arm64@0.57.0': + optional: true + + '@oxfmt/binding-darwin-x64@0.57.0': + optional: true + + '@oxfmt/binding-freebsd-x64@0.57.0': + optional: true + + '@oxfmt/binding-linux-arm-gnueabihf@0.57.0': + optional: true + + '@oxfmt/binding-linux-arm-musleabihf@0.57.0': + optional: true + + '@oxfmt/binding-linux-arm64-gnu@0.57.0': + optional: true + + '@oxfmt/binding-linux-arm64-musl@0.57.0': + optional: true + + '@oxfmt/binding-linux-ppc64-gnu@0.57.0': + optional: true + + '@oxfmt/binding-linux-riscv64-gnu@0.57.0': + optional: true + + '@oxfmt/binding-linux-riscv64-musl@0.57.0': + optional: true + + '@oxfmt/binding-linux-s390x-gnu@0.57.0': + optional: true + + '@oxfmt/binding-linux-x64-gnu@0.57.0': + optional: true + + '@oxfmt/binding-linux-x64-musl@0.57.0': + optional: true + + '@oxfmt/binding-openharmony-arm64@0.57.0': + optional: true + + '@oxfmt/binding-win32-arm64-msvc@0.57.0': + optional: true + + '@oxfmt/binding-win32-ia32-msvc@0.57.0': + optional: true + + '@oxfmt/binding-win32-x64-msvc@0.57.0': + optional: true + + '@oxlint/binding-android-arm-eabi@1.72.0': + optional: true + + '@oxlint/binding-android-arm64@1.72.0': + optional: true + + '@oxlint/binding-darwin-arm64@1.72.0': + optional: true + + '@oxlint/binding-darwin-x64@1.72.0': + optional: true + + '@oxlint/binding-freebsd-x64@1.72.0': + optional: true + + '@oxlint/binding-linux-arm-gnueabihf@1.72.0': + optional: true + + '@oxlint/binding-linux-arm-musleabihf@1.72.0': + optional: true + + '@oxlint/binding-linux-arm64-gnu@1.72.0': + optional: true - '@openai/codex-sdk@0.125.0': - dependencies: - '@openai/codex': 0.125.0 + '@oxlint/binding-linux-arm64-musl@1.72.0': + optional: true - '@openai/codex@0.125.0': - optionalDependencies: - '@openai/codex-darwin-arm64': '@openai/codex@0.125.0-darwin-arm64' - '@openai/codex-darwin-x64': '@openai/codex@0.125.0-darwin-x64' - '@openai/codex-linux-arm64': '@openai/codex@0.125.0-linux-arm64' - '@openai/codex-linux-x64': '@openai/codex@0.125.0-linux-x64' - '@openai/codex-win32-arm64': '@openai/codex@0.125.0-win32-arm64' - '@openai/codex-win32-x64': '@openai/codex@0.125.0-win32-x64' + '@oxlint/binding-linux-ppc64-gnu@1.72.0': + optional: true - '@openai/codex@0.125.0-darwin-arm64': + '@oxlint/binding-linux-riscv64-gnu@1.72.0': optional: true - '@openai/codex@0.125.0-darwin-x64': + '@oxlint/binding-linux-riscv64-musl@1.72.0': optional: true - '@openai/codex@0.125.0-linux-arm64': + '@oxlint/binding-linux-s390x-gnu@1.72.0': optional: true - '@openai/codex@0.125.0-linux-x64': + '@oxlint/binding-linux-x64-gnu@1.72.0': optional: true - '@openai/codex@0.125.0-win32-arm64': + '@oxlint/binding-linux-x64-musl@1.72.0': optional: true - '@openai/codex@0.125.0-win32-x64': + '@oxlint/binding-openharmony-arm64@1.72.0': optional: true - '@openapi-contrib/openapi-schema-to-json-schema@3.2.0': - dependencies: - fast-deep-equal: 3.1.3 + '@oxlint/binding-win32-arm64-msvc@1.72.0': + optional: true - '@opentelemetry/api@1.9.0': {} + '@oxlint/binding-win32-ia32-msvc@1.72.0': + optional: true + + '@oxlint/binding-win32-x64-msvc@1.72.0': + optional: true '@pinojs/redact@0.4.0': {} @@ -10317,8 +10175,6 @@ snapshots: dependencies: '@types/node': 25.6.2 - '@types/esrecurse@4.3.1': {} - '@types/estree-jsx@1.0.5': dependencies: '@types/estree': 1.0.9 @@ -10413,188 +10269,6 @@ snapshots: '@types/node': 25.6.2 optional: true - '@typescript-eslint/eslint-plugin@8.56.1(@typescript-eslint/parser@8.56.1(eslint@10.3.0(jiti@2.6.1))(typescript@5.8.3))(eslint@10.3.0(jiti@2.6.1))(typescript@5.8.3)': - dependencies: - '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.56.1(eslint@10.3.0(jiti@2.6.1))(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.56.1 - '@typescript-eslint/type-utils': 8.56.1(eslint@10.3.0(jiti@2.6.1))(typescript@5.8.3) - '@typescript-eslint/utils': 8.56.1(eslint@10.3.0(jiti@2.6.1))(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.56.1 - eslint: 10.3.0(jiti@2.6.1) - ignore: 7.0.5 - natural-compare: 1.4.0 - ts-api-utils: 2.4.0(typescript@5.8.3) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/eslint-plugin@8.60.1(@typescript-eslint/parser@8.60.1(eslint@10.4.1(jiti@2.6.1))(typescript@5.8.3))(eslint@10.4.1(jiti@2.6.1))(typescript@5.8.3)': - dependencies: - '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.60.1(eslint@10.4.1(jiti@2.6.1))(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.60.1 - '@typescript-eslint/type-utils': 8.60.1(eslint@10.4.1(jiti@2.6.1))(typescript@5.8.3) - '@typescript-eslint/utils': 8.60.1(eslint@10.4.1(jiti@2.6.1))(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.60.1 - eslint: 10.4.1(jiti@2.6.1) - ignore: 7.0.5 - natural-compare: 1.4.0 - ts-api-utils: 2.5.0(typescript@5.8.3) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@8.56.1(eslint@10.3.0(jiti@2.6.1))(typescript@5.8.3)': - dependencies: - '@typescript-eslint/scope-manager': 8.56.1 - '@typescript-eslint/types': 8.56.1 - '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.56.1 - debug: 4.4.3(supports-color@8.1.1) - eslint: 10.3.0(jiti@2.6.1) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@8.60.1(eslint@10.4.1(jiti@2.6.1))(typescript@5.8.3)': - dependencies: - '@typescript-eslint/scope-manager': 8.60.1 - '@typescript-eslint/types': 8.60.1 - '@typescript-eslint/typescript-estree': 8.60.1(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.60.1 - debug: 4.4.3(supports-color@8.1.1) - eslint: 10.4.1(jiti@2.6.1) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/project-service@8.56.1(typescript@5.8.3)': - dependencies: - '@typescript-eslint/tsconfig-utils': 8.56.1(typescript@5.8.3) - '@typescript-eslint/types': 8.56.1 - debug: 4.4.3(supports-color@8.1.1) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/project-service@8.60.1(typescript@5.8.3)': - dependencies: - '@typescript-eslint/tsconfig-utils': 8.60.1(typescript@5.8.3) - '@typescript-eslint/types': 8.60.1 - debug: 4.4.3(supports-color@8.1.1) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/scope-manager@8.56.1': - dependencies: - '@typescript-eslint/types': 8.56.1 - '@typescript-eslint/visitor-keys': 8.56.1 - - '@typescript-eslint/scope-manager@8.60.1': - dependencies: - '@typescript-eslint/types': 8.60.1 - '@typescript-eslint/visitor-keys': 8.60.1 - - '@typescript-eslint/tsconfig-utils@8.56.1(typescript@5.8.3)': - dependencies: - typescript: 5.8.3 - - '@typescript-eslint/tsconfig-utils@8.60.1(typescript@5.8.3)': - dependencies: - typescript: 5.8.3 - - '@typescript-eslint/type-utils@8.56.1(eslint@10.3.0(jiti@2.6.1))(typescript@5.8.3)': - dependencies: - '@typescript-eslint/types': 8.56.1 - '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.8.3) - '@typescript-eslint/utils': 8.56.1(eslint@10.3.0(jiti@2.6.1))(typescript@5.8.3) - debug: 4.4.3(supports-color@8.1.1) - eslint: 10.3.0(jiti@2.6.1) - ts-api-utils: 2.4.0(typescript@5.8.3) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/type-utils@8.60.1(eslint@10.4.1(jiti@2.6.1))(typescript@5.8.3)': - dependencies: - '@typescript-eslint/types': 8.60.1 - '@typescript-eslint/typescript-estree': 8.60.1(typescript@5.8.3) - '@typescript-eslint/utils': 8.60.1(eslint@10.4.1(jiti@2.6.1))(typescript@5.8.3) - debug: 4.4.3(supports-color@8.1.1) - eslint: 10.4.1(jiti@2.6.1) - ts-api-utils: 2.5.0(typescript@5.8.3) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/types@8.56.1': {} - - '@typescript-eslint/types@8.60.1': {} - - '@typescript-eslint/typescript-estree@8.56.1(typescript@5.8.3)': - dependencies: - '@typescript-eslint/project-service': 8.56.1(typescript@5.8.3) - '@typescript-eslint/tsconfig-utils': 8.56.1(typescript@5.8.3) - '@typescript-eslint/types': 8.56.1 - '@typescript-eslint/visitor-keys': 8.56.1 - debug: 4.4.3(supports-color@8.1.1) - minimatch: 3.1.5 - semver: 7.8.0 - tinyglobby: 0.2.15 - ts-api-utils: 2.4.0(typescript@5.8.3) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/typescript-estree@8.60.1(typescript@5.8.3)': - dependencies: - '@typescript-eslint/project-service': 8.60.1(typescript@5.8.3) - '@typescript-eslint/tsconfig-utils': 8.60.1(typescript@5.8.3) - '@typescript-eslint/types': 8.60.1 - '@typescript-eslint/visitor-keys': 8.60.1 - debug: 4.4.3(supports-color@8.1.1) - minimatch: 3.1.5 - semver: 7.8.0 - tinyglobby: 0.2.16 - ts-api-utils: 2.5.0(typescript@5.8.3) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@8.56.1(eslint@10.3.0(jiti@2.6.1))(typescript@5.8.3)': - dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.3.0(jiti@2.6.1)) - '@typescript-eslint/scope-manager': 8.56.1 - '@typescript-eslint/types': 8.56.1 - '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.8.3) - eslint: 10.3.0(jiti@2.6.1) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@8.60.1(eslint@10.4.1(jiti@2.6.1))(typescript@5.8.3)': - dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.4.1(jiti@2.6.1)) - '@typescript-eslint/scope-manager': 8.60.1 - '@typescript-eslint/types': 8.60.1 - '@typescript-eslint/typescript-estree': 8.60.1(typescript@5.8.3) - eslint: 10.4.1(jiti@2.6.1) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/visitor-keys@8.56.1': - dependencies: - '@typescript-eslint/types': 8.56.1 - eslint-visitor-keys: 5.0.1 - - '@typescript-eslint/visitor-keys@8.60.1': - dependencies: - '@typescript-eslint/types': 8.60.1 - eslint-visitor-keys: 5.0.1 - '@typescript/vfs@1.6.4(typescript@5.9.3)': dependencies: debug: 4.4.3(supports-color@8.1.1) @@ -10766,13 +10440,6 @@ snapshots: optionalDependencies: ajv: 8.20.0 - ajv@6.15.0: - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - ajv@8.20.0: dependencies: fast-deep-equal: 3.1.3 @@ -11517,8 +11184,6 @@ snapshots: deep-extend@0.6.0: optional: true - deep-is@0.1.4: {} - deepmerge@4.3.1: {} defer-to-connect@2.0.1: {} @@ -11851,161 +11516,8 @@ snapshots: dependencies: safe-regex: 2.1.1 - eslint-plugin-security@4.0.0: - dependencies: - safe-regex: 2.1.1 - - eslint-scope@9.1.1: - dependencies: - '@types/esrecurse': 4.3.1 - '@types/estree': 1.0.9 - esrecurse: 4.3.0 - estraverse: 5.3.0 - - eslint-scope@9.1.2: - dependencies: - '@types/esrecurse': 4.3.1 - '@types/estree': 1.0.9 - esrecurse: 4.3.0 - estraverse: 5.3.0 - - eslint-visitor-keys@3.4.3: {} - - eslint-visitor-keys@5.0.1: {} - - eslint@10.0.2(jiti@2.6.1): - dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.2(jiti@2.6.1)) - '@eslint-community/regexpp': 4.12.2 - '@eslint/config-array': 0.23.2 - '@eslint/config-helpers': 0.5.2 - '@eslint/core': 1.1.0 - '@eslint/plugin-kit': 0.6.0 - '@humanfs/node': 0.16.6 - '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.4.2 - '@types/estree': 1.0.8 - ajv: 6.15.0 - cross-spawn: 7.0.6 - debug: 4.4.3(supports-color@8.1.1) - escape-string-regexp: 4.0.0 - eslint-scope: 9.1.1 - eslint-visitor-keys: 5.0.1 - espree: 11.1.1 - esquery: 1.7.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 8.0.0 - find-up: 5.0.0 - glob-parent: 6.0.2 - ignore: 5.3.2 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - json-stable-stringify-without-jsonify: 1.0.1 - minimatch: 3.1.5 - natural-compare: 1.4.0 - optionator: 0.9.4 - optionalDependencies: - jiti: 2.6.1 - transitivePeerDependencies: - - supports-color - - eslint@10.3.0(jiti@2.6.1): - dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.3.0(jiti@2.6.1)) - '@eslint-community/regexpp': 4.12.2 - '@eslint/config-array': 0.23.5 - '@eslint/config-helpers': 0.5.5 - '@eslint/core': 1.2.1 - '@eslint/plugin-kit': 0.7.1 - '@humanfs/node': 0.16.8 - '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.4.3 - '@types/estree': 1.0.9 - ajv: 6.15.0 - cross-spawn: 7.0.6 - debug: 4.4.3(supports-color@8.1.1) - escape-string-regexp: 4.0.0 - eslint-scope: 9.1.2 - eslint-visitor-keys: 5.0.1 - espree: 11.2.0 - esquery: 1.7.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 8.0.0 - find-up: 5.0.0 - glob-parent: 6.0.2 - ignore: 5.3.2 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - json-stable-stringify-without-jsonify: 1.0.1 - minimatch: 3.1.5 - natural-compare: 1.4.0 - optionator: 0.9.4 - optionalDependencies: - jiti: 2.6.1 - transitivePeerDependencies: - - supports-color - - eslint@10.4.1(jiti@2.6.1): - dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.4.1(jiti@2.6.1)) - '@eslint-community/regexpp': 4.12.2 - '@eslint/config-array': 0.23.5 - '@eslint/config-helpers': 0.6.0 - '@eslint/core': 1.2.1 - '@eslint/plugin-kit': 0.7.2 - '@humanfs/node': 0.16.8 - '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.4.3 - '@types/estree': 1.0.9 - ajv: 6.15.0 - cross-spawn: 7.0.6 - debug: 4.4.3(supports-color@8.1.1) - escape-string-regexp: 4.0.0 - eslint-scope: 9.1.2 - eslint-visitor-keys: 5.0.1 - espree: 11.2.0 - esquery: 1.7.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 8.0.0 - find-up: 5.0.0 - glob-parent: 6.0.2 - ignore: 5.3.2 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - json-stable-stringify-without-jsonify: 1.0.1 - minimatch: 3.1.5 - natural-compare: 1.4.0 - optionator: 0.9.4 - optionalDependencies: - jiti: 2.6.1 - transitivePeerDependencies: - - supports-color - - espree@11.1.1: - dependencies: - acorn: 8.16.0 - acorn-jsx: 5.3.2(acorn@8.16.0) - eslint-visitor-keys: 5.0.1 - - espree@11.2.0: - dependencies: - acorn: 8.16.0 - acorn-jsx: 5.3.2(acorn@8.16.0) - eslint-visitor-keys: 5.0.1 - esprima@4.0.1: {} - esquery@1.7.0: - dependencies: - estraverse: 5.3.0 - - esrecurse@4.3.0: - dependencies: - estraverse: 5.3.0 - estraverse@5.3.0: {} estree-util-attach-comments@3.0.0: @@ -12213,8 +11725,6 @@ snapshots: merge2: 1.4.1 micromatch: 4.0.8 - fast-json-stable-stringify@2.1.0: {} - fast-json-stringify@6.1.1: dependencies: '@fastify/merge-json-schemas': 0.2.1 @@ -12224,8 +11734,6 @@ snapshots: json-schema-ref-resolver: 3.0.0 rfdc: 1.4.1 - fast-levenshtein@2.0.6: {} - fast-levenshtein@3.0.0: dependencies: fastest-levenshtein: 1.0.16 @@ -12331,10 +11839,6 @@ snapshots: set-cookie-parser: 2.7.1 tough-cookie: 5.1.2 - file-entry-cache@8.0.0: - dependencies: - flat-cache: 4.0.1 - filelist@1.0.6: dependencies: minimatch: 3.1.5 @@ -12386,13 +11890,6 @@ snapshots: dependencies: micromatch: 4.0.8 - flat-cache@4.0.1: - dependencies: - flatted: 3.4.2 - keyv: 4.5.4 - - flatted@3.4.2: {} - follow-redirects@1.16.0: {} for-each@0.3.5: @@ -12647,7 +12144,7 @@ snapshots: globals@15.15.0: {} - globals@17.6.0: {} + globals@17.7.0: {} globalthis@1.0.4: dependencies: @@ -13055,8 +12552,6 @@ snapshots: parent-module: 1.0.1 resolve-from: 4.0.0 - imurmurhash@0.1.4: {} - indent-string@4.0.0: {} indent-string@5.0.0: {} @@ -13418,16 +12913,12 @@ snapshots: '@babel/runtime': 7.29.2 ts-algebra: 2.0.0 - json-schema-traverse@0.4.1: {} - json-schema-traverse@1.0.0: {} json-schema-typed@8.0.2: {} json-schema@0.4.0: {} - json-stable-stringify-without-jsonify@1.0.1: {} - jsonc-parser@2.2.1: {} jsonfile@4.0.0: @@ -13500,11 +12991,6 @@ snapshots: leven@4.0.0: {} - levn@0.4.1: - dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 - light-my-request@6.6.0: dependencies: cookie: 1.1.1 @@ -14226,8 +13712,6 @@ snapshots: napi-build-utils@2.0.0: optional: true - natural-compare@1.4.0: {} - negotiator@0.6.3: {} negotiator@1.0.0: {} @@ -14449,15 +13933,6 @@ snapshots: jose: 6.2.3 oauth4webapi: 3.8.6 - optionator@0.9.4: - dependencies: - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.4.1 - prelude-ls: 1.2.1 - type-check: 0.4.0 - word-wrap: 1.2.5 - outdent@0.5.0: {} own-keys@1.0.1: @@ -14466,6 +13941,54 @@ snapshots: object-keys: 1.1.1 safe-push-apply: 1.0.0 + oxfmt@0.57.0: + dependencies: + tinypool: 2.1.0 + optionalDependencies: + '@oxfmt/binding-android-arm-eabi': 0.57.0 + '@oxfmt/binding-android-arm64': 0.57.0 + '@oxfmt/binding-darwin-arm64': 0.57.0 + '@oxfmt/binding-darwin-x64': 0.57.0 + '@oxfmt/binding-freebsd-x64': 0.57.0 + '@oxfmt/binding-linux-arm-gnueabihf': 0.57.0 + '@oxfmt/binding-linux-arm-musleabihf': 0.57.0 + '@oxfmt/binding-linux-arm64-gnu': 0.57.0 + '@oxfmt/binding-linux-arm64-musl': 0.57.0 + '@oxfmt/binding-linux-ppc64-gnu': 0.57.0 + '@oxfmt/binding-linux-riscv64-gnu': 0.57.0 + '@oxfmt/binding-linux-riscv64-musl': 0.57.0 + '@oxfmt/binding-linux-s390x-gnu': 0.57.0 + '@oxfmt/binding-linux-x64-gnu': 0.57.0 + '@oxfmt/binding-linux-x64-musl': 0.57.0 + '@oxfmt/binding-openharmony-arm64': 0.57.0 + '@oxfmt/binding-win32-arm64-msvc': 0.57.0 + '@oxfmt/binding-win32-ia32-msvc': 0.57.0 + '@oxfmt/binding-win32-x64-msvc': 0.57.0 + + oxlint-plugin-eslint@1.72.0: {} + + oxlint@1.72.0: + optionalDependencies: + '@oxlint/binding-android-arm-eabi': 1.72.0 + '@oxlint/binding-android-arm64': 1.72.0 + '@oxlint/binding-darwin-arm64': 1.72.0 + '@oxlint/binding-darwin-x64': 1.72.0 + '@oxlint/binding-freebsd-x64': 1.72.0 + '@oxlint/binding-linux-arm-gnueabihf': 1.72.0 + '@oxlint/binding-linux-arm-musleabihf': 1.72.0 + '@oxlint/binding-linux-arm64-gnu': 1.72.0 + '@oxlint/binding-linux-arm64-musl': 1.72.0 + '@oxlint/binding-linux-ppc64-gnu': 1.72.0 + '@oxlint/binding-linux-riscv64-gnu': 1.72.0 + '@oxlint/binding-linux-riscv64-musl': 1.72.0 + '@oxlint/binding-linux-s390x-gnu': 1.72.0 + '@oxlint/binding-linux-x64-gnu': 1.72.0 + '@oxlint/binding-linux-x64-musl': 1.72.0 + '@oxlint/binding-openharmony-arm64': 1.72.0 + '@oxlint/binding-win32-arm64-msvc': 1.72.0 + '@oxlint/binding-win32-ia32-msvc': 1.72.0 + '@oxlint/binding-win32-x64-msvc': 1.72.0 + p-any@4.0.0: dependencies: p-cancelable: 3.0.0 @@ -14779,12 +14302,8 @@ snapshots: tunnel-agent: 0.6.0 optional: true - prelude-ls@1.2.1: {} - prettier@2.8.8: {} - prettier@3.5.3: {} - process-nextick-args@2.0.1: {} process-warning@4.0.1: {} @@ -16016,16 +15535,13 @@ snapshots: tinyexec@1.1.2: {} - tinyglobby@0.2.15: - dependencies: - fdir: 6.5.0(picomatch@4.0.4) - picomatch: 4.0.4 - tinyglobby@0.2.16: dependencies: fdir: 6.5.0(picomatch@4.0.4) picomatch: 4.0.4 + tinypool@2.1.0: {} + tinyrainbow@3.1.0: {} tldts-core@6.1.86: {} @@ -16072,14 +15588,6 @@ snapshots: ts-algebra@2.0.0: {} - ts-api-utils@2.4.0(typescript@5.8.3): - dependencies: - typescript: 5.8.3 - - ts-api-utils@2.5.0(typescript@5.8.3): - dependencies: - typescript: 5.8.3 - ts-interface-checker@0.1.13: {} tsc-alias@1.8.16: @@ -16132,10 +15640,6 @@ snapshots: transitivePeerDependencies: - supports-color - type-check@0.4.0: - dependencies: - prelude-ls: 1.2.1 - type-fest@0.21.3: {} type-fest@4.41.0: {} @@ -16186,28 +15690,6 @@ snapshots: typed-query-selector@2.12.2: {} - typescript-eslint@8.56.1(eslint@10.3.0(jiti@2.6.1))(typescript@5.8.3): - dependencies: - '@typescript-eslint/eslint-plugin': 8.56.1(@typescript-eslint/parser@8.56.1(eslint@10.3.0(jiti@2.6.1))(typescript@5.8.3))(eslint@10.3.0(jiti@2.6.1))(typescript@5.8.3) - '@typescript-eslint/parser': 8.56.1(eslint@10.3.0(jiti@2.6.1))(typescript@5.8.3) - '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.8.3) - '@typescript-eslint/utils': 8.56.1(eslint@10.3.0(jiti@2.6.1))(typescript@5.8.3) - eslint: 10.3.0(jiti@2.6.1) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - typescript-eslint@8.60.1(eslint@10.4.1(jiti@2.6.1))(typescript@5.8.3): - dependencies: - '@typescript-eslint/eslint-plugin': 8.60.1(@typescript-eslint/parser@8.60.1(eslint@10.4.1(jiti@2.6.1))(typescript@5.8.3))(eslint@10.4.1(jiti@2.6.1))(typescript@5.8.3) - '@typescript-eslint/parser': 8.60.1(eslint@10.4.1(jiti@2.6.1))(typescript@5.8.3) - '@typescript-eslint/typescript-estree': 8.60.1(typescript@5.8.3) - '@typescript-eslint/utils': 8.60.1(eslint@10.4.1(jiti@2.6.1))(typescript@5.8.3) - eslint: 10.4.1(jiti@2.6.1) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - typescript@5.8.3: {} typescript@5.9.3: {} @@ -16333,10 +15815,6 @@ snapshots: dependencies: tslib: 2.8.1 - uri-js@4.4.1: - dependencies: - punycode: 2.3.1 - urijs@1.19.11: {} urlpattern-polyfill@10.0.0: {} @@ -16669,8 +16147,6 @@ snapshots: dependencies: string-width: 7.2.0 - word-wrap@1.2.5: {} - wordwrap@1.0.0: {} wrap-ansi@6.2.0: diff --git a/turbo.json b/turbo.json index 66cfa68474..df5931cee1 100644 --- a/turbo.json +++ b/turbo.json @@ -9,9 +9,10 @@ "packages/*/package.json", "tsconfig.json", "tsconfig.base.json", - "eslint.config.mjs", - ".prettierrc", - ".prettierignore" + ".oxlintrc.json", + "packages/cli/.oxlintrc.json", + ".oxfmtrc.json", + "packages/cli/.oxfmtrc.json" ], "tasks": { "build": {