diff --git a/.github/workflows/nodejs-16.yml b/.github/workflows/nodejs-16.yml deleted file mode 100644 index 48bc9647..00000000 --- a/.github/workflows/nodejs-16.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Node.js 16 CI - -on: - push: - branches: [master] - pull_request: - branches: [master] - -jobs: - test: - runs-on: ubuntu-latest - concurrency: - group: typecheck-${{ github.workflow }}-#${{ github.event.pull_request.number || github.head_ref || github.ref }} - cancel-in-progress: true - - steps: - - uses: actions/checkout@v6 - - name: Use Node.js - uses: actions/setup-node@v6 - with: - node-version: 16 - - run: npm install - - name: Downgrade vitest for Node 16 - run: npm install vitest@3 @vitest/coverage-v8@3 --save-dev --ignore-scripts - - run: npm run ci:node16 - - run: npm run prepublishOnly - - run: node -v - - run: npm run test-node16 diff --git a/.github/workflows/nodejs-old-versions.yml b/.github/workflows/nodejs-old-versions.yml new file mode 100644 index 00000000..8e80a22a --- /dev/null +++ b/.github/workflows/nodejs-old-versions.yml @@ -0,0 +1,36 @@ +name: Node.js old versions CI + +on: + push: + branches: [master] + pull_request: + branches: [master] + +jobs: + test: + runs-on: ubuntu-latest + concurrency: + group: nodejs-old-versions-test-${{ github.workflow }}-#${{ github.event.pull_request.number || github.head_ref || github.ref }}-(${{ matrix.node }}) + cancel-in-progress: true + strategy: + fail-fast: false + matrix: + node: ['16', '18'] + + steps: + - uses: actions/checkout@v6 + - name: Use Node.js + uses: actions/setup-node@v6 + with: + node-version: ${{ matrix.node }} + - run: npm install + - name: Patch vitest imports + run: | + for f in test/*.test.ts; do [ -e "$f" ] || exit 0; sed --version >/dev/null 2>&1 && sed -i "s@'vite-plus/test'@'vitest'@g" "$f" || sed -i '' "s@'vite-plus/test'@'vitest'@g" "$f"; done + sed --version >/dev/null 2>&1 && sed -i "s@'vite-plus'@'vite'@g" vite.config.ts || sed -i '' "s@'vite-plus'@'vite'@g" vite.config.ts + jq 'del(.overrides)' package.json > package.json.tmp && mv package.json.tmp package.json + npm install -D vitest@3 vite@7 + - run: npx vitest && npm run build:ts && npm run build:version && npm pack && npx attw --pack + env: + NODE_OPTIONS: --require ./test/patch-for-node16-18.cjs + - run: npm run test-node16 diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml index aba2a591..a8c41c3c 100644 --- a/.github/workflows/nodejs.yml +++ b/.github/workflows/nodejs.yml @@ -17,39 +17,38 @@ jobs: - name: Checkout repository uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 - - name: Install pnpm - uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4 - - name: Set up Node.js uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6 with: node-version: '24' - cache: 'pnpm' - - name: Install dependencies - run: pnpm install --frozen-lockfile + - name: Setup Vite+ + uses: voidzero-dev/setup-vite-plus-action@v1 + with: + cache: true + run-install: true - name: Run lint - run: pnpm run lint + run: vite run lint - name: Check dedupe - run: pnpm dedupe --check + run: vite dedupe --check - name: Run typecheck - run: pnpm run typecheck + run: vite run typecheck - name: Run format check - run: pnpm run fmtcheck + run: vite run fmtcheck - - name: Run build - run: pnpm run build + - name: Run build check + run: vite run build test: strategy: fail-fast: false matrix: os: ['ubuntu-latest', 'macos-latest', 'windows-latest'] - node: ['18', '20', '22', '24'] + node: ['20', '22', '24', '25'] name: Test (${{ matrix.os }}, ${{ matrix.node }}) runs-on: ${{ matrix.os }} @@ -65,24 +64,19 @@ jobs: - name: Checkout repository uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 - - name: Install pnpm - uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4 - - name: Set up Node.js uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6 with: node-version: ${{ matrix.node }} - cache: 'pnpm' - - name: Install dependencies - run: pnpm install --frozen-lockfile - - - name: Downgrade vitest for Node 18 - if: matrix.node == '18' - run: pnpm add vitest@3 @vitest/coverage-v8@3 --save-dev --ignore-scripts + - name: Setup Vite+ + uses: voidzero-dev/setup-vite-plus-action@v1 + with: + cache: true + run-install: true - name: Run tests - run: pnpm run ci + run: vite run ci - name: Code Coverage uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5 diff --git a/.github/workflows/pkg.pr.new.yml b/.github/workflows/pkg.pr.new.yml index 51cfcaf9..d69f1fdf 100644 --- a/.github/workflows/pkg.pr.new.yml +++ b/.github/workflows/pkg.pr.new.yml @@ -3,6 +3,9 @@ on: [push, pull_request] jobs: build: + concurrency: + group: pkg-pr-new-${{ github.workflow }}-#${{ github.event.pull_request.number || github.head_ref || github.ref }} + cancel-in-progress: true runs-on: ubuntu-latest steps: @@ -12,12 +15,15 @@ jobs: - run: corepack enable - uses: actions/setup-node@v6 with: - node-version: 20 + node-version: 22 - - name: Install dependencies - run: npm install + - name: Setup Vite+ + uses: voidzero-dev/setup-vite-plus-action@v1 + with: + cache: true + run-install: true - name: Build - run: npm run prepublishOnly + run: vite run build - - run: npx pkg-pr-new publish + - run: vite dlx pkg-pr-new publish diff --git a/.oxfmtrc.json b/.oxfmtrc.json deleted file mode 100644 index 6685a6be..00000000 --- a/.oxfmtrc.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "$schema": "./node_modules/oxfmt/configuration_schema.json", - "printWidth": 120, - "singleQuote": true, - "ignorePatterns": ["CHANGELOG.md", "pnpm-lock.yaml"], - "experimentalSortImports": { - "groups": [ - ["type-import"], - ["type-builtin", "value-builtin"], - ["type-external", "value-external", "type-internal", "value-internal"], - ["type-parent", "type-sibling", "type-index", "value-parent", "value-sibling", "value-index"], - ["ts-equals-import"], - ["unknown"] - ], - "newlinesBetween": true, - "order": "asc" - } -} diff --git a/.oxlintrc.json b/.oxlintrc.json deleted file mode 100644 index 346b294e..00000000 --- a/.oxlintrc.json +++ /dev/null @@ -1,128 +0,0 @@ -{ - "$schema": "./node_modules/oxlint/configuration_schema.json", - "env": { - "node": true - }, - "extends": ["./node_modules/@eggjs/oxlint-config/.oxlintrc.json"], - "categories": { - "correctness": "allow", - "suspicious": "allow", - "pedantic": "allow", - "style": "allow", - "nursery": "allow", - "restriction": "allow", - "perf": "allow" - }, - "rules": { - "no-extend-native": "warn", - // Disable TypeScript rules - "typescript/explicit-function-return-type": "allow", - "typescript/consistent-type-imports": "allow", - "typescript/consistent-type-definitions": "allow", - "typescript/consistent-indexed-object-style": "allow", - "typescript/no-inferrable-types": "allow", - "typescript/array-type": "allow", - "typescript/no-non-null-assertion": "allow", - "typescript/no-explicit-any": "allow", - "typescript/no-import-type-side-effects": "allow", - "typescript/no-dynamic-delete": "allow", - "typescript/prefer-ts-expect-error": "allow", - "typescript/ban-ts-comment": "allow", - "typescript/prefer-enum-initializers": "allow", - "typescript/explicit-module-boundary-types": "allow", - // Disable import rules - "import/exports-last": "allow", - "import/max-dependencies": "allow", - "import/no-cycle": "allow", - "import/no-anonymous-default-export": "allow", - "import/no-namespace": "allow", - "import/named": "allow", - "import/export": "allow", - "import/no-default-export": "allow", - "import/unambiguous": "allow", - "import/group-exports": "allow", - "import/extensions": "allow", - "import/consistent-type-specifier-style": "allow", - "import/prefer-default-export": "allow", - "import/no-named-as-default-member": "allow", - // Disable unicorn rules - "unicorn/error-message": "allow", - "unicorn/no-null": "allow", - "unicorn/filename-case": "allow", - "unicorn/prefer-structured-clone": "allow", - "unicorn/prefer-logical-operator-over-ternary": "allow", - "unicorn/prefer-number-properties": "allow", - "unicorn/prefer-array-some": "allow", - "unicorn/prefer-string-slice": "allow", - "unicorn/throw-new-error": "allow", - "unicorn/catch-error-name": "allow", - "unicorn/prefer-spread": "allow", - "unicorn/numeric-separators-style": "allow", - "unicorn/prefer-string-raw": "allow", - "unicorn/text-encoding-identifier-case": "allow", - "unicorn/no-array-for-each": "allow", - "unicorn/explicit-length-check": "allow", - "unicorn/no-lonely-if": "allow", - "unicorn/no-useless-undefined": "allow", - "unicorn/prefer-date-now": "allow", - "unicorn/no-static-only-class": "allow", - "unicorn/no-typeof-undefined": "allow", - "unicorn/prefer-negative-index": "allow", - "unicorn/no-anonymous-default-export": "allow", - "unicorn/consistent-assert": "allow", - // Disable promise rules - "promise/no-return-wrap": "allow", - "promise/param-names": "allow", - "promise/prefer-await-to-callbacks": "allow", - "promise/prefer-await-to-then": "allow", - "promise/prefer-catch": "allow", - "promise/no-return-in-finally": "allow", - "promise/avoid-new": "allow", - // Disable other ESLint rules - "constructor-super": "allow", - "getter-return": "allow", - "no-undef": "allow", - "no-unreachable": "allow", - "no-var": "allow", - "no-eq-null": "allow", - "no-await-in-loop": "allow", - "eqeqeq": "allow", - "init-declarations": "allow", - "curly": "allow", - "no-ternary": "allow", - "max-params": "allow", - "no-await-expression-member": "allow", - "no-continue": "allow", - "guard-for-in": "allow", - "func-style": "allow", - "sort-imports": "allow", - "yoda": "allow", - "sort-keys": "allow", - "no-magic-numbers": "allow", - "no-duplicate-imports": "allow", - "no-multi-assign": "allow", - "func-names": "allow", - "default-param-last": "allow", - "prefer-object-spread": "allow", - "no-undefined": "allow", - "no-plusplus": "allow", - "no-console": "allow", - "no-extraneous-class": "allow", - "no-empty-function": "allow", - "max-depth": "allow", - "max-lines-per-function": "allow", - "no-lonely-if": "allow", - "max-lines": "allow", - "require-await": "allow", - "max-nested-callbacks": "allow", - "max-classes-per-file": "allow", - "radix": "allow", - "no-negated-condition": "allow", - "no-else-return": "allow", - "no-throw-literal": "allow", - "id-length": "allow", - "arrow-body-style": "allow", - "prefer-destructuring": "allow" - }, - "ignorePatterns": ["test/fixtures/ts*"] -} diff --git a/CLAUDE.md b/CLAUDE.md index 474c2f10..5267d89f 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -82,3 +82,56 @@ Tests use Vitest with: - Request/response events published via `diagnostics_channel` (`urllib:request`, `urllib:response`) - Streaming requests disable retry/redirect functionality - User-Agent header: `node-urllib/{version} Node.js/{version} ({platform}; {arch})` + + +# Using Vite+, the Unified Toolchain for the Web + +This project is using Vite+, a modern toolchain built on top of Vite, Rolldown, Vitest, tsdown, Oxlint, and Oxfmt. Vite+ wraps these tools and package manager commands in a single, global CLI called `vite`. Vite+ is distinct from Vite, but it invokes Vite through `vite dev` and `vite build`. + +## Vite+ Workflow + +`vite` is a global binary that handles the full development lifecycle. Run `vite help` to print a list of commands and `vite --help` for information about a specific command. + +### Vite+ Commands + +- dev - Run the development server +- build - Build for production +- lint - Lint code +- test - Run tests +- fmt - Format code +- lib - Build library +- new - Create a new monorepo package (in-project) or a new project (global) +- run - Run tasks from `package.json` scripts + +These commands map to their corresponding tools. For example, `vite dev --port 3000` runs Vite's dev server and works the same as Vite. `vite test` runs JavaScript tests through the bundled Vitest. The versions of individual tools can be checked using `vite --version`. For example, `vite lint --version` prints the bundled Oxlint version, and `vite test --version` prints the bundled Vitest version. This is useful when researching documentation, features, and bugs. + +### Package Manager Commands + +Vite+ automatically detects and wraps the underlying package manager such as pnpm, npm, or Yarn through the `packageManager` field in `package.json` or package manager-specific lockfiles. + +- install - Install all dependencies, or add packages if package names are provided +- add - Add packages to dependencies +- remove - Remove packages from dependencies +- dlx - Execute a package binary without installing it as a dependency +- info - View package information from the registry, including latest versions +- link - Link packages for local development +- outdated - Check for outdated packages +- pm - Forward a command to the package manager +- unlink - Unlink packages +- update - Update packages to their latest versions +- why - Show why a package is installed + +## Common Pitfalls + +- **Using the package manager directly:** Do not use pnpm, npm, or Yarn directly. Vite+ can handle all package manager operations. +- **Always use Vite commands to run tools:** Don't attempt to run `vite vitest` or `vite oxlint`. They do not exist. Use `vite test` and `vite lint` instead. +- **Running scripts:** Vite+ commands take precedence over `package.json` scripts. If there is a `test` script defined in `scripts` that conflicts with the built-in `vite test` command, run it using `vite run test`. +- **Do not install Vitest, Oxlint, Oxfmt, or tsdown directly:** Vite+ wraps these tools. They must not be installed directly. You cannot upgrade these tools by installing their latest versions. Always use Vite+ commands. +- **Import JavaScript modules from `vite-plus`:** Instead of importing from `vite` or `vitest`, all modules should be imported from the project's `vite-plus` dependency. For example, `import { defineConfig } from 'vite-plus';` or `import { expect, test, vi } from 'vite-plus/test';`. You must not install `vitest` to import test utilities. +- **Type-Aware Linting:** There is no need to install `oxlint-tsgolint`, `vite lint --type-aware` works out of the box. + +## Review Checklist for Agents + +- [ ] Run `vite install` after pulling remote changes and before getting started. +- [ ] Run `vite lint`, `vite fmt`, and `vite test` to validate changes. + diff --git a/README.md b/README.md index d9782643..eb56e5e9 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,7 @@ [![Node.js Version](https://img.shields.io/node/v/urllib.svg?style=flat)](https://nodejs.org/en/download/) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](https://makeapullrequest.com) ![CodeRabbit Pull Request Reviews](https://img.shields.io/coderabbit/prs/github/node-modules/urllib) +[![pkg.pr.new](https://pkg.pr.new/badge/node-modules/urllib)](https://pkg.pr.new/~/node-modules/urllib) [npm-image]: https://img.shields.io/npm/v/urllib.svg?style=flat-square [npm-url]: https://npmjs.org/package/urllib diff --git a/package.json b/package.json index 633f5893..99db8f9c 100644 --- a/package.json +++ b/package.json @@ -45,31 +45,30 @@ "tag": "latest" }, "scripts": { - "lint": "oxlint src test --type-aware --type-check", - "fmt": "oxfmt", + "lint": "vite lint src test --type-aware --type-check", "typecheck": "tsc --noEmit && tsgo --noEmit", - "fmtcheck": "oxfmt --check .", - "prebuild": "npm run clean", - "build": "tsc --version && tshy && tshy-after && npm run build:version", - "postbuild": "rm -rf *.tsbuildinfo", + "fmt": "vite fmt", + "fmtcheck": "vite fmt --check", + "prebuild": "vite run clean", + "build": "vite run build:ts && vite run build:version", + "build:ts": "tsc --version && tshy && tshy-after", "build:version": "node ./scripts/replace_urllib_version.js", "build:cjs:test": "cd test/cjs && rm -rf node_modules && npm link ../.. && node index.js", "build:esm:test": "cd test/esm && rm -rf node_modules && npm link ../.. && node index.js", "build:mts:test": "cd test/mts && rm -rf node_modules && npm link ../.. && tsc", - "build:test": "npm run build && npm run build:cjs:test && npm run build:esm:test && npm run build:mts:test && npm run test-tsc", - "test-tsc": "npm run test-tsc:cjs:es2021 && npm run test-tsc:cjs && npm run test-tsc:esm", - "test-tsc:cjs": "cd test/fixtures/ts && rm -rf node_modules && npm link ../../.. && npm run build", - "test-tsc:cjs:es2021": "cd test/fixtures/ts-cjs-es2021 && rm -rf node_modules && npm link ../../.. && npm run build", - "test-tsc:esm": "cd test/fixtures/ts-esm && rm -rf node_modules && npm link ../../.. && npm run build", - "test": "npm run lint -- --fix && vitest run --reporter=dot", - "bench": "vitest bench", - "test-keepalive": "cross-env TEST_KEEPALIVE_COUNT=50 vitest run --reporter=dot --test-timeout 180000 keep-alive-header.test.ts", + "build:test": "vite run build && vite run build:cjs:test && vite run build:esm:test && vite run build:mts:test && vite run test-tsc", + "test-tsc": "vite run test-tsc:cjs:es2021 && vite run test-tsc:cjs && vite run test-tsc:esm", + "test-tsc:cjs": "cd test/fixtures/ts && rm -rf node_modules && npm link ../../.. && vite run build", + "test-tsc:cjs:es2021": "cd test/fixtures/ts-cjs-es2021 && rm -rf node_modules && npm link ../../.. && vite run build", + "test-tsc:esm": "cd test/fixtures/ts-esm && rm -rf node_modules && npm link ../../.. && vite run build", + "test": "vite run lint -- --fix && vite test run --reporter=dot", + "bench": "vite test bench", + "test-keepalive": "cross-env TEST_KEEPALIVE_COUNT=50 vite test run --reporter=dot --test-timeout 180000 keep-alive-header.test.ts", "test-node16": "node examples/httpclient.cjs && node examples/search_github.cjs && node examples/timing.cjs", - "cov": "vitest run --reporter=dot --coverage", - "ci": "npm run cov && npm run prepublishOnly && npm pack && attw --pack", - "ci:node16": "cross-env NODE_OPTIONS=\"--require ./test/patch-for-node16-18.cjs\" vitest run --reporter=dot && npm run prepublishOnly && npm pack && attw --pack", + "cov": "vite test run --reporter=dot --coverage", + "ci": "vite run cov && vite run prepublishOnly && npm pack && attw --pack", "clean": "rm -rf dist && tsc -b --clean", - "prepublishOnly": "npm run build", + "prepublishOnly": "vite run build", "prepare": "husky" }, "dependencies": { @@ -83,7 +82,6 @@ }, "devDependencies": { "@arethetypeswrong/cli": "^0.18.2", - "@codspeed/vitest-plugin": "^5.0.1", "@eggjs/oxlint-config": "^1.0.0", "@eggjs/tsconfig": "^2.0.0", "@types/busboy": "^1.5.4", @@ -101,9 +99,6 @@ "husky": "^9.1.7", "iconv-lite": "^0.6.3", "lint-staged": "^16.2.7", - "oxfmt": "^0.24.0", - "oxlint": "^1.35.0", - "oxlint-tsgolint": "^0.11.0", "proxy": "^1.0.2", "selfsigned": "^3.0.1", "string.prototype.towellformed": "^1.0.2", @@ -111,12 +106,12 @@ "tshy": "^3.1.0", "tshy-after": "^1.4.1", "typescript": "^5.9.3", - "vitest": "^4.0.17" + "vite-plus": "latest" }, "lint-staged": { "*": [ - "npm run lint -- --fix", - "oxfmt" + "vite run lint --fix", + "vite run fmt ." ] }, "tshy": { @@ -128,5 +123,13 @@ "engines": { "node": ">= 18.19.0" }, - "packageManager": "pnpm@10.28.0" + "packageManager": "pnpm@10.28.0", + "pnpm": { + "overrides": { + "vite": "npm:@voidzero-dev/vite-plus-core@latest" + } + }, + "overrides": { + "vite": "npm:@voidzero-dev/vite-plus-core@latest" + } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5c774515..a7123b1e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,6 +4,9 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false +overrides: + vite: npm:@voidzero-dev/vite-plus-core@latest + importers: .: @@ -33,9 +36,6 @@ importers: '@arethetypeswrong/cli': specifier: ^0.18.2 version: 0.18.2 - '@codspeed/vitest-plugin': - specifier: ^5.0.1 - version: 5.0.1(tinybench@2.9.0)(vite@7.3.0(@types/node@22.19.6)(yaml@2.8.2))(vitest@4.0.17(@types/node@22.19.6)(yaml@2.8.2)) '@eggjs/oxlint-config': specifier: ^1.0.0 version: 1.0.0 @@ -71,7 +71,7 @@ importers: version: 1.3.0 '@vitest/coverage-v8': specifier: ^4.0.17 - version: 4.0.17(vitest@4.0.17(@types/node@22.19.6)(yaml@2.8.2)) + version: 4.0.17(vitest@4.0.17(@arethetypeswrong/core@0.18.2)(@types/node@22.19.6)(typescript@5.9.3)(yaml@2.8.2)) busboy: specifier: ^1.6.0 version: 1.6.0 @@ -87,15 +87,6 @@ importers: lint-staged: specifier: ^16.2.7 version: 16.2.7 - oxfmt: - specifier: ^0.24.0 - version: 0.24.0 - oxlint: - specifier: ^1.35.0 - version: 1.39.0(oxlint-tsgolint@0.11.0) - oxlint-tsgolint: - specifier: ^0.11.0 - version: 0.11.0 proxy: specifier: ^1.0.2 version: 1.0.2 @@ -117,9 +108,9 @@ importers: typescript: specifier: ^5.9.3 version: 5.9.3 - vitest: - specifier: ^4.0.17 - version: 4.0.17(@types/node@22.19.6)(yaml@2.8.2) + vite-plus: + specifier: latest + version: 0.0.0-ab0b0858cb619f270f5e0a698fea3d6f5622a761(@arethetypeswrong/core@0.18.2)(@types/node@22.19.6)(typescript@5.9.3)(yaml@2.8.2) packages: @@ -143,13 +134,13 @@ packages: resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} engines: {node: '>=6.9.0'} - '@babel/parser@7.28.5': - resolution: {integrity: sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==} + '@babel/parser@7.28.6': + resolution: {integrity: sha512-TeR9zWR18BvbfPmGbLampPMW+uW1NZnJlRuuHso8i87QZNq2JRF9i6RgxRqtEq+wQGsS19NNTWr2duhnE49mfQ==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/types@7.28.5': - resolution: {integrity: sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==} + '@babel/types@7.28.6': + resolution: {integrity: sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg==} engines: {node: '>=6.9.0'} '@bcoe/v8-coverage@1.0.2': @@ -159,16 +150,6 @@ packages: '@braidai/lang@1.1.2': resolution: {integrity: sha512-qBcknbBufNHlui137Hft8xauQMTZDKdophmLFv05r2eNmdIv/MlPuP4TdUknHG68UdWLgVZwgxVe735HzJNIwA==} - '@codspeed/core@5.0.1': - resolution: {integrity: sha512-4g5ZyFAin8QywK4+0FK1uXG3GLRPu0oc3xbP+7OUhhFxbwpzFuaJtKmnTofMqLy9/pHH6Bl/7H0/DTVH3cpFkA==} - - '@codspeed/vitest-plugin@5.0.1': - resolution: {integrity: sha512-RQLy8AGI16oTtmTyBIS2iKzD4AQQzJP7waurrYkUlnOlCa5Yp/7KXVZuZVzhqwYmPcH984xzFtsC2CENYbpRHQ==} - peerDependencies: - tinybench: '>=2.9.0' - vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 - vitest: '>=3.2' - '@colors/colors@1.5.0': resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} engines: {node: '>=0.1.90'} @@ -183,162 +164,6 @@ packages: '@epic-web/invariant@1.0.0': resolution: {integrity: sha512-lrTPqgvfFQtR/eY/qkIzp98OGdNJu0m5ji3q/nJI8v3SXkRKEnWiOxMmbvcSoAIzv/cGiuvRy57k4suKQSAdwA==} - '@esbuild/aix-ppc64@0.27.2': - resolution: {integrity: sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] - - '@esbuild/android-arm64@0.27.2': - resolution: {integrity: sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==} - engines: {node: '>=18'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm@0.27.2': - resolution: {integrity: sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==} - engines: {node: '>=18'} - cpu: [arm] - os: [android] - - '@esbuild/android-x64@0.27.2': - resolution: {integrity: sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==} - engines: {node: '>=18'} - cpu: [x64] - os: [android] - - '@esbuild/darwin-arm64@0.27.2': - resolution: {integrity: sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-x64@0.27.2': - resolution: {integrity: sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==} - engines: {node: '>=18'} - cpu: [x64] - os: [darwin] - - '@esbuild/freebsd-arm64@0.27.2': - resolution: {integrity: sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==} - engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.27.2': - resolution: {integrity: sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==} - engines: {node: '>=18'} - cpu: [x64] - os: [freebsd] - - '@esbuild/linux-arm64@0.27.2': - resolution: {integrity: sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm@0.27.2': - resolution: {integrity: sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==} - engines: {node: '>=18'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-ia32@0.27.2': - resolution: {integrity: sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==} - engines: {node: '>=18'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-loong64@0.27.2': - resolution: {integrity: sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==} - engines: {node: '>=18'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-mips64el@0.27.2': - resolution: {integrity: sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==} - engines: {node: '>=18'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-ppc64@0.27.2': - resolution: {integrity: sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-riscv64@0.27.2': - resolution: {integrity: sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==} - engines: {node: '>=18'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-s390x@0.27.2': - resolution: {integrity: sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==} - engines: {node: '>=18'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-x64@0.27.2': - resolution: {integrity: sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==} - engines: {node: '>=18'} - cpu: [x64] - os: [linux] - - '@esbuild/netbsd-arm64@0.27.2': - resolution: {integrity: sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [netbsd] - - '@esbuild/netbsd-x64@0.27.2': - resolution: {integrity: sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==} - engines: {node: '>=18'} - cpu: [x64] - os: [netbsd] - - '@esbuild/openbsd-arm64@0.27.2': - resolution: {integrity: sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] - - '@esbuild/openbsd-x64@0.27.2': - resolution: {integrity: sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==} - engines: {node: '>=18'} - cpu: [x64] - os: [openbsd] - - '@esbuild/openharmony-arm64@0.27.2': - resolution: {integrity: sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openharmony] - - '@esbuild/sunos-x64@0.27.2': - resolution: {integrity: sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==} - engines: {node: '>=18'} - cpu: [x64] - os: [sunos] - - '@esbuild/win32-arm64@0.27.2': - resolution: {integrity: sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-ia32@0.27.2': - resolution: {integrity: sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==} - engines: {node: '>=18'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-x64@0.27.2': - resolution: {integrity: sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [win32] - '@isaacs/balanced-match@4.0.1': resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} engines: {node: 20 || >=22} @@ -360,77 +185,84 @@ packages: '@loaderkit/resolve@1.0.4': resolution: {integrity: sha512-rJzYKVcV4dxJv+vW6jlvagF8zvGxHJ2+HTr1e2qOejfmGhAApgJHl8Aog4mMszxceTRiKTTbnpgmTO1bEZHV/A==} - '@oxfmt/darwin-arm64@0.24.0': - resolution: {integrity: sha512-aYXuGf/yq8nsyEcHindGhiz9I+GEqLkVq8CfPbd+6VE259CpPEH+CaGHEO1j6vIOmNr8KHRq+IAjeRO2uJpb8A==} + '@oxc-project/runtime@0.108.0': + resolution: {integrity: sha512-J1cESY4anMO4i9KtCPmCfQAzAR00Uw4SWsDPFP10CIwDMugkh34UrTKByuYKuPaHy0XAk8LlJiZJq2OLMfbuIQ==} + engines: {node: ^20.19.0 || >=22.12.0} + + '@oxc-project/types@0.108.0': + resolution: {integrity: sha512-7lf13b2IA/kZO6xgnIZA88sq3vwrxWk+2vxf6cc+omwYCRTiA5e63Beqf3fz/v8jEviChWWmFYBwzfSeyrsj7Q==} + + '@oxfmt/darwin-arm64@0.16.0': + resolution: {integrity: sha512-I+Unj7wePcUTK7p/YKtgbm4yer6dw7dTlmCJa0UilFZyge5uD4rwCSfSDx3A+a6Z3A60/SqXMbNR2UyidWF4Cg==} cpu: [arm64] os: [darwin] - '@oxfmt/darwin-x64@0.24.0': - resolution: {integrity: sha512-vs3b8Bs53hbiNvcNeBilzE/+IhDTWKjSBB3v/ztr664nZk65j0xr+5IHMBNz3CFppmX7o/aBta2PxY+t+4KoPg==} + '@oxfmt/darwin-x64@0.16.0': + resolution: {integrity: sha512-EfiXFKEOV5gXgEatFK89OOoSmd8E9Xq83TcjPLWQNFBO4cgaQsfKmctpgJmJjQnoUwD7nQsm0ruj3ae7Gva8QA==} cpu: [x64] os: [darwin] - '@oxfmt/linux-arm64-gnu@0.24.0': - resolution: {integrity: sha512-ItPDOPoQ0wLj/s8osc5ch57uUcA1Wk8r0YdO8vLRpXA3UNg7KPOm1vdbkIZRRiSUphZcuX5ioOEetEK8H7RlTw==} + '@oxfmt/linux-arm64-gnu@0.16.0': + resolution: {integrity: sha512-ydcNY9Fn/8TjVswANhdSh+zdgD3tiikNQA68bgXbENHuV3RyYql1qoOM1eGv5xeIVJfkPJme17MKQz3OwMFS4A==} cpu: [arm64] os: [linux] libc: [glibc] - '@oxfmt/linux-arm64-musl@0.24.0': - resolution: {integrity: sha512-JkQO3WnQjQTJONx8nxdgVBfl6BBFfpp9bKhChYhWeakwJdr7QPOAWJ/v3FGZfr0TbqINwnNR74aVZayDDRyXEA==} + '@oxfmt/linux-arm64-musl@0.16.0': + resolution: {integrity: sha512-I9WeYe1/YnrfXgXVaKkZITZzil0G0g9IknS2KJbq1lOnpTw3dwViXZ7XMa2cq6Mv7S+4SoDImb7fLQ59AfVX/w==} cpu: [arm64] os: [linux] libc: [musl] - '@oxfmt/linux-x64-gnu@0.24.0': - resolution: {integrity: sha512-N/SXlFO+2kak5gMt0oxApi0WXQDhwA0PShR0UbkY0PwtHjfSiDqJSOumyNqgQVoroKr1GNnoRmUqjZIz6DKIcw==} + '@oxfmt/linux-x64-gnu@0.16.0': + resolution: {integrity: sha512-Szg9lJtZdN5FoCnNbl3N/2pJv8d056NUmk51m60E2tZV7rvwRTrNC8HPc2sVdb1Ti5ogsicpZDYSWA3cwIrJIQ==} cpu: [x64] os: [linux] libc: [glibc] - '@oxfmt/linux-x64-musl@0.24.0': - resolution: {integrity: sha512-WM0pek5YDCQf50XQ7GLCE9sMBCMPW/NPAEPH/Hx6Qyir37lEsP4rUmSECo/QFNTU6KBc9NnsviAyJruWPpCMXw==} + '@oxfmt/linux-x64-musl@0.16.0': + resolution: {integrity: sha512-5koN8nl21ZxOADaMxXHT+mt3YjfXe1nsa23Fanf9aY7B0hcQ6rXYCZ7r5vmpoTtzW/US3aaVcRFZE1cyof+lKw==} cpu: [x64] os: [linux] libc: [musl] - '@oxfmt/win32-arm64@0.24.0': - resolution: {integrity: sha512-vFCseli1KWtwdHrVlT/jWfZ8jP8oYpnPPEjI23mPLW8K/6GEJmmvy0PZP5NpWUFNTzX0lqie58XnrATJYAe9Xw==} + '@oxfmt/win32-arm64@0.16.0': + resolution: {integrity: sha512-Jaesn+FYn+MudSmWJMPGBAa0PhQXo52Z0ZYeNfzbQP7v2GFbZBI3Cb87+K0aHGlpqK3VEJKXeIaASaTWlkgO1Q==} cpu: [arm64] os: [win32] - '@oxfmt/win32-x64@0.24.0': - resolution: {integrity: sha512-0tmlNzcyewAnauNeBCq0xmAkmiKzl+H09p0IdHy+QKrTQdtixtf+AOjDAADbRfihkS+heF15Pjc4IyJMdAAJjw==} + '@oxfmt/win32-x64@0.16.0': + resolution: {integrity: sha512-1obVSlb5blwBKgSsE1mNxvcq1pK9I6aXpZDy5d6jjGdrru33dHrH1ASChrcxwCukkToH2SxwYmnzAto0xeuZlw==} cpu: [x64] os: [win32] - '@oxlint-tsgolint/darwin-arm64@0.11.0': - resolution: {integrity: sha512-F67T8dXgYIrgv6wpd52fKQFdmieSOHaxBkscgso64YdtEHrV3s52ASiZGNzw62TKihn9Ox9ek3PYx9XsxIJDUw==} + '@oxlint-tsgolint/darwin-arm64@0.8.6': + resolution: {integrity: sha512-khvQiNpPVNkyz6vmN50v5j1X6r9anRDXy3htDBpObx4V5bp33BK94onh46e91GTEbBevmeUG/Zm/U3+np4gehw==} cpu: [arm64] os: [darwin] - '@oxlint-tsgolint/darwin-x64@0.11.0': - resolution: {integrity: sha512-z44LO7+3z2mtcBxA9T66yEy/otp/2r5ypbkx7EYlPwbEqBAIDRt/8hqQ9/BUC//1qE549P1cBU6NjhgeyuXjYQ==} + '@oxlint-tsgolint/darwin-x64@0.8.6': + resolution: {integrity: sha512-AardvXBLB0m05BGcubXTqWSpNv2aD68QyY7BB/u2AqKzMoEtvzSB710FL06vOTPpaVpl3GvSVHCFw2juo35lTQ==} cpu: [x64] os: [darwin] - '@oxlint-tsgolint/linux-arm64@0.11.0': - resolution: {integrity: sha512-IeIjmpPi2j2Dn1CRizGikysyLp9B0q3jqiAalv9ewRyb8hqQW5YeMlsswo8pHd0Hz3KyFfone0NkvBt77Ex2pg==} + '@oxlint-tsgolint/linux-arm64@0.8.6': + resolution: {integrity: sha512-oSgMIilQBUVSOGdWIm4/5GJV4QmqwBQYpsGtRUpTAd3BZTWVuo40//n/ogJFnlCVd+i4yhsGLtwexd/7YlJ9sw==} cpu: [arm64] os: [linux] - '@oxlint-tsgolint/linux-x64@0.11.0': - resolution: {integrity: sha512-fpYGYU2pXjaXYnKgWrihFXE8zJiTRjYKSHAaBaVI056oqKjKGEoU2BfFbddpBrKgz9TmSOX/NGftrJnyMn1wXQ==} + '@oxlint-tsgolint/linux-x64@0.8.6': + resolution: {integrity: sha512-EhR2TejCW5gBPEs6ASgfFFgdveHvpKOHQC2zbO3HoFT/xNU0DvYbEsScKM8SUDWFMQlHU67A7bynNGRY2kFSSg==} cpu: [x64] os: [linux] - '@oxlint-tsgolint/win32-arm64@0.11.0': - resolution: {integrity: sha512-37nzks9eqBt7NYE6okquu51vaqMruF5voX475L16Y8asJVCGpO/2VSy3ulYAXhZ+5Kdc8ZgrljVViJOjfPEPaA==} + '@oxlint-tsgolint/win32-arm64@0.8.6': + resolution: {integrity: sha512-PQeV8YitT2HR/uJV8ugERIpA4WHDem7i5TuPtgYrp7wvKS98G9ILpnPgATrOup/VdBMIzCDl02c23z4+I5NSTw==} cpu: [arm64] os: [win32] - '@oxlint-tsgolint/win32-x64@0.11.0': - resolution: {integrity: sha512-TsK4C61+mjmbkUJ3Q3E9Ev3VFbeI6prPEAm9FAOq8VsfUGEiIUBBjrZ8ysGoQXNiU3dCKpmu012ptVUZTk5/eg==} + '@oxlint-tsgolint/win32-x64@0.8.6': + resolution: {integrity: sha512-JDlyJSOnJXahee9xL55gT02kmQGSP0hR/5OP5asXvr7q6dj9t4skltcwYiA+D4HthF04oaW1F0+6pJnNTfDE0w==} cpu: [x64] os: [win32] @@ -478,126 +310,8 @@ packages: cpu: [x64] os: [win32] - '@rollup/rollup-android-arm-eabi@4.54.0': - resolution: {integrity: sha512-OywsdRHrFvCdvsewAInDKCNyR3laPA2mc9bRYJ6LBp5IyvF3fvXbbNR0bSzHlZVFtn6E0xw2oZlyjg4rKCVcng==} - cpu: [arm] - os: [android] - - '@rollup/rollup-android-arm64@4.54.0': - resolution: {integrity: sha512-Skx39Uv+u7H224Af+bDgNinitlmHyQX1K/atIA32JP3JQw6hVODX5tkbi2zof/E69M1qH2UoN3Xdxgs90mmNYw==} - cpu: [arm64] - os: [android] - - '@rollup/rollup-darwin-arm64@4.54.0': - resolution: {integrity: sha512-k43D4qta/+6Fq+nCDhhv9yP2HdeKeP56QrUUTW7E6PhZP1US6NDqpJj4MY0jBHlJivVJD5P8NxrjuobZBJTCRw==} - cpu: [arm64] - os: [darwin] - - '@rollup/rollup-darwin-x64@4.54.0': - resolution: {integrity: sha512-cOo7biqwkpawslEfox5Vs8/qj83M/aZCSSNIWpVzfU2CYHa2G3P1UN5WF01RdTHSgCkri7XOlTdtk17BezlV3A==} - cpu: [x64] - os: [darwin] - - '@rollup/rollup-freebsd-arm64@4.54.0': - resolution: {integrity: sha512-miSvuFkmvFbgJ1BevMa4CPCFt5MPGw094knM64W9I0giUIMMmRYcGW/JWZDriaw/k1kOBtsWh1z6nIFV1vPNtA==} - cpu: [arm64] - os: [freebsd] - - '@rollup/rollup-freebsd-x64@4.54.0': - resolution: {integrity: sha512-KGXIs55+b/ZfZsq9aR026tmr/+7tq6VG6MsnrvF4H8VhwflTIuYh+LFUlIsRdQSgrgmtM3fVATzEAj4hBQlaqQ==} - cpu: [x64] - os: [freebsd] - - '@rollup/rollup-linux-arm-gnueabihf@4.54.0': - resolution: {integrity: sha512-EHMUcDwhtdRGlXZsGSIuXSYwD5kOT9NVnx9sqzYiwAc91wfYOE1g1djOEDseZJKKqtHAHGwnGPQu3kytmfaXLQ==} - cpu: [arm] - os: [linux] - libc: [glibc] - - '@rollup/rollup-linux-arm-musleabihf@4.54.0': - resolution: {integrity: sha512-+pBrqEjaakN2ySv5RVrj/qLytYhPKEUwk+e3SFU5jTLHIcAtqh2rLrd/OkbNuHJpsBgxsD8ccJt5ga/SeG0JmA==} - cpu: [arm] - os: [linux] - libc: [musl] - - '@rollup/rollup-linux-arm64-gnu@4.54.0': - resolution: {integrity: sha512-NSqc7rE9wuUaRBsBp5ckQ5CVz5aIRKCwsoa6WMF7G01sX3/qHUw/z4pv+D+ahL1EIKy6Enpcnz1RY8pf7bjwng==} - cpu: [arm64] - os: [linux] - libc: [glibc] - - '@rollup/rollup-linux-arm64-musl@4.54.0': - resolution: {integrity: sha512-gr5vDbg3Bakga5kbdpqx81m2n9IX8M6gIMlQQIXiLTNeQW6CucvuInJ91EuCJ/JYvc+rcLLsDFcfAD1K7fMofg==} - cpu: [arm64] - os: [linux] - libc: [musl] - - '@rollup/rollup-linux-loong64-gnu@4.54.0': - resolution: {integrity: sha512-gsrtB1NA3ZYj2vq0Rzkylo9ylCtW/PhpLEivlgWe0bpgtX5+9j9EZa0wtZiCjgu6zmSeZWyI/e2YRX1URozpIw==} - cpu: [loong64] - os: [linux] - libc: [glibc] - - '@rollup/rollup-linux-ppc64-gnu@4.54.0': - resolution: {integrity: sha512-y3qNOfTBStmFNq+t4s7Tmc9hW2ENtPg8FeUD/VShI7rKxNW7O4fFeaYbMsd3tpFlIg1Q8IapFgy7Q9i2BqeBvA==} - cpu: [ppc64] - os: [linux] - libc: [glibc] - - '@rollup/rollup-linux-riscv64-gnu@4.54.0': - resolution: {integrity: sha512-89sepv7h2lIVPsFma8iwmccN7Yjjtgz0Rj/Ou6fEqg3HDhpCa+Et+YSufy27i6b0Wav69Qv4WBNl3Rs6pwhebQ==} - cpu: [riscv64] - os: [linux] - libc: [glibc] - - '@rollup/rollup-linux-riscv64-musl@4.54.0': - resolution: {integrity: sha512-ZcU77ieh0M2Q8Ur7D5X7KvK+UxbXeDHwiOt/CPSBTI1fBmeDMivW0dPkdqkT4rOgDjrDDBUed9x4EgraIKoR2A==} - cpu: [riscv64] - os: [linux] - libc: [musl] - - '@rollup/rollup-linux-s390x-gnu@4.54.0': - resolution: {integrity: sha512-2AdWy5RdDF5+4YfG/YesGDDtbyJlC9LHmL6rZw6FurBJ5n4vFGupsOBGfwMRjBYH7qRQowT8D/U4LoSvVwOhSQ==} - cpu: [s390x] - os: [linux] - libc: [glibc] - - '@rollup/rollup-linux-x64-gnu@4.54.0': - resolution: {integrity: sha512-WGt5J8Ij/rvyqpFexxk3ffKqqbLf9AqrTBbWDk7ApGUzaIs6V+s2s84kAxklFwmMF/vBNGrVdYgbblCOFFezMQ==} - cpu: [x64] - os: [linux] - libc: [glibc] - - '@rollup/rollup-linux-x64-musl@4.54.0': - resolution: {integrity: sha512-JzQmb38ATzHjxlPHuTH6tE7ojnMKM2kYNzt44LO/jJi8BpceEC8QuXYA908n8r3CNuG/B3BV8VR3Hi1rYtmPiw==} - cpu: [x64] - os: [linux] - libc: [musl] - - '@rollup/rollup-openharmony-arm64@4.54.0': - resolution: {integrity: sha512-huT3fd0iC7jigGh7n3q/+lfPcXxBi+om/Rs3yiFxjvSxbSB6aohDFXbWvlspaqjeOh+hx7DDHS+5Es5qRkWkZg==} - cpu: [arm64] - os: [openharmony] - - '@rollup/rollup-win32-arm64-msvc@4.54.0': - resolution: {integrity: sha512-c2V0W1bsKIKfbLMBu/WGBz6Yci8nJ/ZJdheE0EwB73N3MvHYKiKGs3mVilX4Gs70eGeDaMqEob25Tw2Gb9Nqyw==} - cpu: [arm64] - os: [win32] - - '@rollup/rollup-win32-ia32-msvc@4.54.0': - resolution: {integrity: sha512-woEHgqQqDCkAzrDhvDipnSirm5vxUXtSKDYTVpZG3nUdW/VVB5VdCYA2iReSj/u3yCZzXID4kuKG7OynPnB3WQ==} - cpu: [ia32] - os: [win32] - - '@rollup/rollup-win32-x64-gnu@4.54.0': - resolution: {integrity: sha512-dzAc53LOuFvHwbCEOS0rPbXp6SIhAf2txMP5p6mGyOXXw5mWY8NGGbPMPrs4P1WItkfApDathBj/NzMLUZ9rtQ==} - cpu: [x64] - os: [win32] - - '@rollup/rollup-win32-x64-msvc@4.54.0': - resolution: {integrity: sha512-hYT5d3YNdSh3mbCU1gwQyPgQd3T2ne0A3KG8KSBdav5TiBg6eInVmV+TeR5uHufiIgSFg0XsOWGW5/RhNcSvPg==} - cpu: [x64] - os: [win32] + '@polka/url@1.0.0-next.29': + resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==} '@sindresorhus/is@4.6.0': resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} @@ -717,6 +431,113 @@ packages: '@vitest/utils@4.0.17': resolution: {integrity: sha512-RG6iy+IzQpa9SB8HAFHJ9Y+pTzI+h8553MrciN9eC6TFBErqrQaTas4vG+MVj8S4uKk8uTT2p0vgZPnTdxd96w==} + '@voidzero-dev/vite-plus-core@0.0.0-ab0b0858cb619f270f5e0a698fea3d6f5622a761': + resolution: {integrity: sha512-cRVakC7WFEpenonyCWNz0FAidYYDvuL7sTCWx4RYYB6oqWkn1Gsb3vRPM0QOlZWDTw6BGKVhdkVRV8Hgt9sj3Q==} + engines: {node: ^20.19.0 || >=22.12.0} + peerDependencies: + '@arethetypeswrong/core': ^0.18.1 + '@types/node': ^20.19.0 || >=22.12.0 + '@vitejs/devtools': '*' + esbuild: ^0.25.0 + jiti: '>=1.21.0' + less: ^4.0.0 + publint: ^0.3.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: '>=0.54.8' + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + typescript: ^5.0.0 + unplugin-lightningcss: ^0.4.0 + unplugin-unused: ^0.5.0 + yaml: ^2.4.2 + peerDependenciesMeta: + '@arethetypeswrong/core': + optional: true + '@types/node': + optional: true + '@vitejs/devtools': + optional: true + esbuild: + optional: true + jiti: + optional: true + less: + optional: true + publint: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + typescript: + optional: true + unplugin-lightningcss: + optional: true + unplugin-unused: + optional: true + yaml: + optional: true + + '@voidzero-dev/vite-plus-darwin-arm64@0.0.0-ab0b0858cb619f270f5e0a698fea3d6f5622a761': + resolution: {integrity: sha512-0hD92eezm2g7dTeXFgdENVkiIFMTQ1o1lK6GQuFnzg+RVETlVRO4DT8bkI3aiuQQY/QkfRpdiDkgdCkH6g2nPQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + + '@voidzero-dev/vite-plus-linux-arm64-gnu@0.0.0-ab0b0858cb619f270f5e0a698fea3d6f5622a761': + resolution: {integrity: sha512-k3VA3AvfRSszHXTgL5kDxuJ++rdcKikIhiTKUnX7+AMk1fW+nP3Gm3VXBFbj7lcAMj8VG2g9KRuX3yWOJLm0xw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@voidzero-dev/vite-plus-linux-x64-gnu@0.0.0-ab0b0858cb619f270f5e0a698fea3d6f5622a761': + resolution: {integrity: sha512-lokxNOOJkKpls9mPI2y8b6t1dIlEmDA7lNNysT6NSrZ3vt/Rl4hAsCQ5DSvriDXd64nWfm21Up2PNIJSD0exhg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@voidzero-dev/vite-plus-test@0.0.0-ab0b0858cb619f270f5e0a698fea3d6f5622a761': + resolution: {integrity: sha512-HukJSLPOM0hHksdYnJhx57BFHU49cdANLNea73x1r1Ccm3C89wpEqCTksBUIw1EtxY/wyBapkCiGanJTuMVqbw==} + engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} + peerDependencies: + '@edge-runtime/vm': '*' + '@opentelemetry/api': ^1.9.0 + '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0 + '@vitest/ui': 4.0.16 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@opentelemetry/api': + optional: true + '@types/node': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + + '@voidzero-dev/vite-plus-win32-x64-msvc@0.0.0-ab0b0858cb619f270f5e0a698fea3d6f5622a761': + resolution: {integrity: sha512-LSHwFNt5xUBDMjEzoDS85fix+Wk6h+bHAFFG8aNv/b500uTH+zOjbDSX+OeElbuQ3PNpki+cD8E4DQDmxymSEA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + ansi-escapes@7.2.0: resolution: {integrity: sha512-g6LhBsl+GBPRWGWsBtutpzBYuIIdBkLEvad5C/va/74Db018+5TZiyA26cZJAr3Rft5lprVqOIPxf5Vid6tqAw==} engines: {node: '>=18'} @@ -774,9 +595,6 @@ packages: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} - axios@1.13.2: - resolution: {integrity: sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA==} - base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} @@ -797,6 +615,10 @@ packages: resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} engines: {node: '>=10.16.0'} + cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + call-bind-apply-helpers@1.0.2: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} @@ -934,6 +756,10 @@ packages: resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + detect-libc@2.1.2: + resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} + engines: {node: '>=8'} + dunder-proto@1.0.1: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} @@ -981,11 +807,6 @@ packages: resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} engines: {node: '>= 0.4'} - esbuild@0.27.2: - resolution: {integrity: sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==} - engines: {node: '>=18'} - hasBin: true - escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -1020,19 +841,6 @@ packages: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} - find-up@6.3.0: - resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - follow-redirects@1.15.11: - resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - for-each@0.3.5: resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} engines: {node: '>= 0.4'} @@ -1279,6 +1087,80 @@ packages: resolution: {integrity: sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA==} engines: {node: '>=0.10.0'} + lightningcss-android-arm64@1.30.2: + resolution: {integrity: sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [android] + + lightningcss-darwin-arm64@1.30.2: + resolution: {integrity: sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [darwin] + + lightningcss-darwin-x64@1.30.2: + resolution: {integrity: sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [darwin] + + lightningcss-freebsd-x64@1.30.2: + resolution: {integrity: sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [freebsd] + + lightningcss-linux-arm-gnueabihf@1.30.2: + resolution: {integrity: sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA==} + engines: {node: '>= 12.0.0'} + cpu: [arm] + os: [linux] + + lightningcss-linux-arm64-gnu@1.30.2: + resolution: {integrity: sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + lightningcss-linux-arm64-musl@1.30.2: + resolution: {integrity: sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + libc: [musl] + + lightningcss-linux-x64-gnu@1.30.2: + resolution: {integrity: sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + libc: [glibc] + + lightningcss-linux-x64-musl@1.30.2: + resolution: {integrity: sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + libc: [musl] + + lightningcss-win32-arm64-msvc@1.30.2: + resolution: {integrity: sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [win32] + + lightningcss-win32-x64-msvc@1.30.2: + resolution: {integrity: sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [win32] + + lightningcss@1.30.2: + resolution: {integrity: sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==} + engines: {node: '>= 12.0.0'} + lint-staged@16.2.7: resolution: {integrity: sha512-lDIj4RnYmK7/kXMya+qJsmkRFkGolciXjrsZ6PC25GdTfWOAWetR0ZbsNXRAj1EHHImRSalc+whZFg56F5DVow==} engines: {node: '>=20.17'} @@ -1288,10 +1170,6 @@ packages: resolution: {integrity: sha512-ME4Fb83LgEgwNw96RKNvKV4VTLuXfoKudAmm2lP8Kk87KaMK0/Xrx/aAkMWmT8mDb+3MlFDspfbCs7adjRxA2g==} engines: {node: '>=20.0.0'} - locate-path@7.2.0: - resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - log-update@6.1.0: resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==} engines: {node: '>=18'} @@ -1363,6 +1241,10 @@ packages: resolution: {integrity: sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w==} engines: {node: '>=4'} + mrmime@2.0.1: + resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} + engines: {node: '>=10'} + ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -1386,10 +1268,6 @@ packages: resolution: {integrity: sha512-rLvcdSyRCyouf6jcOIPe/BgwG/d7hKjzMKOas33/pHEr6gbq18IK9zV7DiPvzsz0oBJPme6qr6H6kGZuI9/DZg==} engines: {node: '>= 6.13.0'} - node-gyp-build@4.8.4: - resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} - hasBin: true - node-hex@1.0.1: resolution: {integrity: sha512-iwpZdvW6Umz12ICmu9IYPRxg0tOLGmU3Tq2tKetejCj3oZd7b2nUXwP3a7QA5M9glWy8wlPS1G3RwM/CdsUbdQ==} engines: {node: '>=8.0.0'} @@ -1424,13 +1302,13 @@ packages: resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} engines: {node: '>= 0.4'} - oxfmt@0.24.0: - resolution: {integrity: sha512-UjeM3Peez8Tl7IJ9s5UwAoZSiDRMww7BEc21gDYxLq3S3/KqJnM3mjNxsoSHgmBvSeX6RBhoVc2MfC/+96RdSw==} + oxfmt@0.16.0: + resolution: {integrity: sha512-uRnnBAN0zH07FXSfvSKbIw+Jrohv4Px2RwNiZOGI4/pvns4sx0+k4WSt+tqwd7bDeoWaXiGmhZgnbK63hi6hVQ==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true - oxlint-tsgolint@0.11.0: - resolution: {integrity: sha512-fGYb7z/cljC0Rjtbxh7mIe8vtF/M9TShLvniwc2rdcqNG3Z9g3nM01cr2kWRb1DZdbY4/kItvIsrV4uhaMifyQ==} + oxlint-tsgolint@0.8.6: + resolution: {integrity: sha512-DC9rqwFyEb5RlxOjvXdqaqxM5PwK01002oh/fcdC05mNPiI04d6CPWtReHqX6Ig1dc5LYuVeh3wuPrrp6WTjtw==} hasBin: true oxlint@1.39.0: @@ -1443,14 +1321,6 @@ packages: oxlint-tsgolint: optional: true - p-limit@4.0.0: - resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - p-locate@6.0.0: - resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - package-json-from-dist@1.0.1: resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} @@ -1463,10 +1333,6 @@ packages: parse5@6.0.1: resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} - path-exists@5.0.0: - resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} @@ -1497,6 +1363,14 @@ packages: engines: {node: '>=0.10'} hasBin: true + pixelmatch@7.1.0: + resolution: {integrity: sha512-1wrVzJ2STrpmONHKBy228LM1b84msXDUoAzVEl0R8Mz4Ce6EPr+IVtxm8+yvrqLYMHswREkjYFaMxnyGnaY3Ng==} + hasBin: true + + pngjs@7.0.0: + resolution: {integrity: sha512-LKWqWJRhstyYo9pGvgor/ivk2w94eSjE3RGVuzLGlr3NmD8bf7RcYGze1mNdEHRP6TRP6rMuDHk5t44hnTRyow==} + engines: {node: '>=14.19.0'} + polite-json@5.0.0: resolution: {integrity: sha512-OLS/0XeUAcE8a2fdwemNja+udKgXNnY6yKVIXqAD2zVRx1KvY6Ato/rZ2vdzbxqYwPW0u6SCNC/bAMPNzpzxbw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -1509,9 +1383,6 @@ packages: resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} engines: {node: ^10 || ^12 || >=14} - proxy-from-env@1.1.0: - resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} - proxy@1.0.2: resolution: {integrity: sha512-KNac2ueWRpjbUh77OAFPZuNdfEqNynm9DD4xHT14CccGpW8wKZwEkN0yjlb7X9G9Z9F55N0Q+1z+WfgAhwYdzQ==} hasBin: true @@ -1556,11 +1427,6 @@ packages: engines: {node: 20 || >=22} hasBin: true - rollup@4.54.0: - resolution: {integrity: sha512-3nk8Y3a9Ea8szgKhinMlGMhGMw89mqule3KWczxhIzqudyHdCIOHw8WJlj/r329fACjKLEh13ZSk7oE22kyeIw==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - safe-array-concat@1.1.3: resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} engines: {node: '>=0.4'} @@ -1631,6 +1497,10 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} + sirv@3.0.2: + resolution: {integrity: sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==} + engines: {node: '>=18'} + skin-tone@2.0.0: resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==} engines: {node: '>=8'} @@ -1742,10 +1612,6 @@ packages: resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} engines: {node: '>=12.0.0'} - tinypool@2.0.0: - resolution: {integrity: sha512-/RX9RzeH2xU5ADE7n2Ykvmi9ED3FBGPAjw9u3zucrNNaEBIO0HPSYgL0NT7+3p147ojeSdaVu08F6hjpv31HJg==} - engines: {node: ^20.0.0 || >=22.0.0} - tinyrainbow@3.0.3: resolution: {integrity: sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==} engines: {node: '>=14.0.0'} @@ -1754,6 +1620,10 @@ packages: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} + totalist@3.0.1: + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} + engines: {node: '>=6'} + tshy-after@1.4.1: resolution: {integrity: sha512-EVUiYSR59AGOy8I8eElVYKlR5bK/7ufAOv3H190HNu3sc9f3CP6Dn5QQfPIYzvg3kCt88NkTwx7n+xR8AQCCmw==} hasBin: true @@ -1788,73 +1658,38 @@ packages: engines: {node: '>=14.17'} hasBin: true - typescript@5.9.3: - resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} - engines: {node: '>=14.17'} - hasBin: true - - unbox-primitive@1.1.0: - resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} - engines: {node: '>= 0.4'} - - undici-types@6.21.0: - resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} - - undici@7.18.2: - resolution: {integrity: sha512-y+8YjDFzWdQlSE9N5nzKMT3g4a5UBX1HKowfdXh0uvAnTaqqwqB92Jt4UXBAeKekDs5IaDKyJFR4X1gYVCgXcw==} - engines: {node: '>=20.18.1'} - - unicode-emoji-modifier-base@1.0.0: - resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==} - engines: {node: '>=4'} - - util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - - validate-npm-package-name@5.0.1: - resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - vite@7.3.0: - resolution: {integrity: sha512-dZwN5L1VlUBewiP6H9s2+B3e3Jg96D0vzN+Ry73sOefebhYr9f94wwkMNN/9ouoU8pV1BqA1d1zGk8928cx0rg==} - engines: {node: ^20.19.0 || >=22.12.0} - hasBin: true - peerDependencies: - '@types/node': ^20.19.0 || >=22.12.0 - jiti: '>=1.21.0' - less: ^4.0.0 - lightningcss: ^1.21.0 - sass: ^1.70.0 - sass-embedded: ^1.70.0 - stylus: '>=0.54.8' - sugarss: ^5.0.0 - terser: ^5.16.0 - tsx: ^4.8.1 - yaml: ^2.4.2 - peerDependenciesMeta: - '@types/node': - optional: true - jiti: - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - tsx: - optional: true - yaml: - optional: true - + typescript@5.9.3: + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} + engines: {node: '>=14.17'} + hasBin: true + + unbox-primitive@1.1.0: + resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} + engines: {node: '>= 0.4'} + + undici-types@6.21.0: + resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + + undici@7.18.2: + resolution: {integrity: sha512-y+8YjDFzWdQlSE9N5nzKMT3g4a5UBX1HKowfdXh0uvAnTaqqwqB92Jt4UXBAeKekDs5IaDKyJFR4X1gYVCgXcw==} + engines: {node: '>=20.18.1'} + + unicode-emoji-modifier-base@1.0.0: + resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==} + engines: {node: '>=4'} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + validate-npm-package-name@5.0.1: + resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + vite-plus@0.0.0-ab0b0858cb619f270f5e0a698fea3d6f5622a761: + resolution: {integrity: sha512-XyYAeAsjbFokjBJtkr3o/3AEgcFglnFBK4M6jgITicEvnbAbO9+zH0ds6VJy+xM4h9D922zI6UOZHiNtVcO9xQ==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + vitest@4.0.17: resolution: {integrity: sha512-FQMeF0DJdWY0iOnbv466n/0BudNdKj1l5jYgl5JVTwjSsZSlqyXFt/9+1sEyhR6CLowbZpV7O1sCHrzBhucKKg==} engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} @@ -1930,6 +1765,18 @@ packages: wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + ws@8.19.0: + resolution: {integrity: sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} @@ -1951,10 +1798,6 @@ packages: resolution: {integrity: sha512-T6hTrKcr9lKeUG0MQ/tO72D3UGptWVohgzpHG8ljU1jeBt2RCjcWxvsTPD8ZzUq1t1FvwROAw1kxg2euvg/THg==} engines: {node: '>= 18.19.0'} - yocto-queue@1.2.2: - resolution: {integrity: sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==} - engines: {node: '>=12.20'} - snapshots: '@andrewbranch/untar.js@1.0.3': {} @@ -1984,11 +1827,11 @@ snapshots: '@babel/helper-validator-identifier@7.28.5': {} - '@babel/parser@7.28.5': + '@babel/parser@7.28.6': dependencies: - '@babel/types': 7.28.5 + '@babel/types': 7.28.6 - '@babel/types@7.28.5': + '@babel/types@7.28.6': dependencies: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.28.5 @@ -1997,24 +1840,6 @@ snapshots: '@braidai/lang@1.1.2': {} - '@codspeed/core@5.0.1': - dependencies: - axios: 1.13.2 - find-up: 6.3.0 - form-data: 4.0.5 - node-gyp-build: 4.8.4 - transitivePeerDependencies: - - debug - - '@codspeed/vitest-plugin@5.0.1(tinybench@2.9.0)(vite@7.3.0(@types/node@22.19.6)(yaml@2.8.2))(vitest@4.0.17(@types/node@22.19.6)(yaml@2.8.2))': - dependencies: - '@codspeed/core': 5.0.1 - tinybench: 2.9.0 - vite: 7.3.0(@types/node@22.19.6)(yaml@2.8.2) - vitest: 4.0.17(@types/node@22.19.6)(yaml@2.8.2) - transitivePeerDependencies: - - debug - '@colors/colors@1.5.0': optional: true @@ -2024,84 +1849,6 @@ snapshots: '@epic-web/invariant@1.0.0': {} - '@esbuild/aix-ppc64@0.27.2': - optional: true - - '@esbuild/android-arm64@0.27.2': - optional: true - - '@esbuild/android-arm@0.27.2': - optional: true - - '@esbuild/android-x64@0.27.2': - optional: true - - '@esbuild/darwin-arm64@0.27.2': - optional: true - - '@esbuild/darwin-x64@0.27.2': - optional: true - - '@esbuild/freebsd-arm64@0.27.2': - optional: true - - '@esbuild/freebsd-x64@0.27.2': - optional: true - - '@esbuild/linux-arm64@0.27.2': - optional: true - - '@esbuild/linux-arm@0.27.2': - optional: true - - '@esbuild/linux-ia32@0.27.2': - optional: true - - '@esbuild/linux-loong64@0.27.2': - optional: true - - '@esbuild/linux-mips64el@0.27.2': - optional: true - - '@esbuild/linux-ppc64@0.27.2': - optional: true - - '@esbuild/linux-riscv64@0.27.2': - optional: true - - '@esbuild/linux-s390x@0.27.2': - optional: true - - '@esbuild/linux-x64@0.27.2': - optional: true - - '@esbuild/netbsd-arm64@0.27.2': - optional: true - - '@esbuild/netbsd-x64@0.27.2': - optional: true - - '@esbuild/openbsd-arm64@0.27.2': - optional: true - - '@esbuild/openbsd-x64@0.27.2': - optional: true - - '@esbuild/openharmony-arm64@0.27.2': - optional: true - - '@esbuild/sunos-x64@0.27.2': - optional: true - - '@esbuild/win32-arm64@0.27.2': - optional: true - - '@esbuild/win32-ia32@0.27.2': - optional: true - - '@esbuild/win32-x64@0.27.2': - optional: true - '@isaacs/balanced-match@4.0.1': {} '@isaacs/brace-expansion@5.0.0': @@ -2121,46 +1868,50 @@ snapshots: dependencies: '@braidai/lang': 1.1.2 - '@oxfmt/darwin-arm64@0.24.0': + '@oxc-project/runtime@0.108.0': {} + + '@oxc-project/types@0.108.0': {} + + '@oxfmt/darwin-arm64@0.16.0': optional: true - '@oxfmt/darwin-x64@0.24.0': + '@oxfmt/darwin-x64@0.16.0': optional: true - '@oxfmt/linux-arm64-gnu@0.24.0': + '@oxfmt/linux-arm64-gnu@0.16.0': optional: true - '@oxfmt/linux-arm64-musl@0.24.0': + '@oxfmt/linux-arm64-musl@0.16.0': optional: true - '@oxfmt/linux-x64-gnu@0.24.0': + '@oxfmt/linux-x64-gnu@0.16.0': optional: true - '@oxfmt/linux-x64-musl@0.24.0': + '@oxfmt/linux-x64-musl@0.16.0': optional: true - '@oxfmt/win32-arm64@0.24.0': + '@oxfmt/win32-arm64@0.16.0': optional: true - '@oxfmt/win32-x64@0.24.0': + '@oxfmt/win32-x64@0.16.0': optional: true - '@oxlint-tsgolint/darwin-arm64@0.11.0': + '@oxlint-tsgolint/darwin-arm64@0.8.6': optional: true - '@oxlint-tsgolint/darwin-x64@0.11.0': + '@oxlint-tsgolint/darwin-x64@0.8.6': optional: true - '@oxlint-tsgolint/linux-arm64@0.11.0': + '@oxlint-tsgolint/linux-arm64@0.8.6': optional: true - '@oxlint-tsgolint/linux-x64@0.11.0': + '@oxlint-tsgolint/linux-x64@0.8.6': optional: true - '@oxlint-tsgolint/win32-arm64@0.11.0': + '@oxlint-tsgolint/win32-arm64@0.8.6': optional: true - '@oxlint-tsgolint/win32-x64@0.11.0': + '@oxlint-tsgolint/win32-x64@0.8.6': optional: true '@oxlint/darwin-arm64@1.39.0': @@ -2187,71 +1938,7 @@ snapshots: '@oxlint/win32-x64@1.39.0': optional: true - '@rollup/rollup-android-arm-eabi@4.54.0': - optional: true - - '@rollup/rollup-android-arm64@4.54.0': - optional: true - - '@rollup/rollup-darwin-arm64@4.54.0': - optional: true - - '@rollup/rollup-darwin-x64@4.54.0': - optional: true - - '@rollup/rollup-freebsd-arm64@4.54.0': - optional: true - - '@rollup/rollup-freebsd-x64@4.54.0': - optional: true - - '@rollup/rollup-linux-arm-gnueabihf@4.54.0': - optional: true - - '@rollup/rollup-linux-arm-musleabihf@4.54.0': - optional: true - - '@rollup/rollup-linux-arm64-gnu@4.54.0': - optional: true - - '@rollup/rollup-linux-arm64-musl@4.54.0': - optional: true - - '@rollup/rollup-linux-loong64-gnu@4.54.0': - optional: true - - '@rollup/rollup-linux-ppc64-gnu@4.54.0': - optional: true - - '@rollup/rollup-linux-riscv64-gnu@4.54.0': - optional: true - - '@rollup/rollup-linux-riscv64-musl@4.54.0': - optional: true - - '@rollup/rollup-linux-s390x-gnu@4.54.0': - optional: true - - '@rollup/rollup-linux-x64-gnu@4.54.0': - optional: true - - '@rollup/rollup-linux-x64-musl@4.54.0': - optional: true - - '@rollup/rollup-openharmony-arm64@4.54.0': - optional: true - - '@rollup/rollup-win32-arm64-msvc@4.54.0': - optional: true - - '@rollup/rollup-win32-ia32-msvc@4.54.0': - optional: true - - '@rollup/rollup-win32-x64-gnu@4.54.0': - optional: true - - '@rollup/rollup-win32-x64-msvc@4.54.0': - optional: true + '@polka/url@1.0.0-next.29': {} '@sindresorhus/is@4.6.0': {} @@ -2323,7 +2010,7 @@ snapshots: '@ungap/structured-clone@1.3.0': {} - '@vitest/coverage-v8@4.0.17(vitest@4.0.17(@types/node@22.19.6)(yaml@2.8.2))': + '@vitest/coverage-v8@4.0.17(vitest@4.0.17(@arethetypeswrong/core@0.18.2)(@types/node@22.19.6)(typescript@5.9.3)(yaml@2.8.2))': dependencies: '@bcoe/v8-coverage': 1.0.2 '@vitest/utils': 4.0.17 @@ -2335,7 +2022,7 @@ snapshots: obug: 2.1.1 std-env: 3.10.0 tinyrainbow: 3.0.3 - vitest: 4.0.17(@types/node@22.19.6)(yaml@2.8.2) + vitest: 4.0.17(@arethetypeswrong/core@0.18.2)(@types/node@22.19.6)(typescript@5.9.3)(yaml@2.8.2) '@vitest/expect@4.0.17': dependencies: @@ -2346,13 +2033,13 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.0.3 - '@vitest/mocker@4.0.17(vite@7.3.0(@types/node@22.19.6)(yaml@2.8.2))': + '@vitest/mocker@4.0.17(@voidzero-dev/vite-plus-core@0.0.0-ab0b0858cb619f270f5e0a698fea3d6f5622a761(@arethetypeswrong/core@0.18.2)(@types/node@22.19.6)(typescript@5.9.3)(yaml@2.8.2))': dependencies: '@vitest/spy': 4.0.17 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 7.3.0(@types/node@22.19.6)(yaml@2.8.2) + vite: '@voidzero-dev/vite-plus-core@0.0.0-ab0b0858cb619f270f5e0a698fea3d6f5622a761(@arethetypeswrong/core@0.18.2)(@types/node@22.19.6)(typescript@5.9.3)(yaml@2.8.2)' '@vitest/pretty-format@4.0.17': dependencies: @@ -2376,6 +2063,67 @@ snapshots: '@vitest/pretty-format': 4.0.17 tinyrainbow: 3.0.3 + '@voidzero-dev/vite-plus-core@0.0.0-ab0b0858cb619f270f5e0a698fea3d6f5622a761(@arethetypeswrong/core@0.18.2)(@types/node@22.19.6)(typescript@5.9.3)(yaml@2.8.2)': + dependencies: + '@oxc-project/runtime': 0.108.0 + '@oxc-project/types': 0.108.0 + lightningcss: 1.30.2 + postcss: 8.5.6 + optionalDependencies: + '@arethetypeswrong/core': 0.18.2 + '@types/node': 22.19.6 + fsevents: 2.3.3 + typescript: 5.9.3 + yaml: 2.8.2 + + '@voidzero-dev/vite-plus-darwin-arm64@0.0.0-ab0b0858cb619f270f5e0a698fea3d6f5622a761': + optional: true + + '@voidzero-dev/vite-plus-linux-arm64-gnu@0.0.0-ab0b0858cb619f270f5e0a698fea3d6f5622a761': + optional: true + + '@voidzero-dev/vite-plus-linux-x64-gnu@0.0.0-ab0b0858cb619f270f5e0a698fea3d6f5622a761': + optional: true + + '@voidzero-dev/vite-plus-test@0.0.0-ab0b0858cb619f270f5e0a698fea3d6f5622a761(@arethetypeswrong/core@0.18.2)(@types/node@22.19.6)(typescript@5.9.3)(yaml@2.8.2)': + dependencies: + '@types/chai': 5.2.3 + '@voidzero-dev/vite-plus-core': 0.0.0-ab0b0858cb619f270f5e0a698fea3d6f5622a761(@arethetypeswrong/core@0.18.2)(@types/node@22.19.6)(typescript@5.9.3)(yaml@2.8.2) + es-module-lexer: 1.7.0 + obug: 2.1.1 + pixelmatch: 7.1.0 + pngjs: 7.0.0 + sirv: 3.0.2 + std-env: 3.10.0 + tinybench: 2.9.0 + tinyexec: 1.0.2 + tinyglobby: 0.2.15 + ws: 8.19.0 + optionalDependencies: + '@types/node': 22.19.6 + transitivePeerDependencies: + - '@arethetypeswrong/core' + - '@vitejs/devtools' + - bufferutil + - esbuild + - jiti + - less + - publint + - sass + - sass-embedded + - stylus + - sugarss + - terser + - tsx + - typescript + - unplugin-lightningcss + - unplugin-unused + - utf-8-validate + - yaml + + '@voidzero-dev/vite-plus-win32-x64-msvc@0.0.0-ab0b0858cb619f270f5e0a698fea3d6f5622a761': + optional: true + ansi-escapes@7.2.0: dependencies: environment: 1.1.0 @@ -2434,14 +2182,6 @@ snapshots: dependencies: possible-typed-array-names: 1.1.0 - axios@1.13.2: - dependencies: - follow-redirects: 1.15.11 - form-data: 4.0.5 - proxy-from-env: 1.1.0 - transitivePeerDependencies: - - debug - base64-js@1.5.1: {} basic-auth-parser@0.0.2: {} @@ -2465,6 +2205,8 @@ snapshots: dependencies: streamsearch: 1.1.0 + cac@6.7.14: {} + call-bind-apply-helpers@1.0.2: dependencies: es-errors: 1.3.0 @@ -2608,6 +2350,8 @@ snapshots: destroy@1.2.0: {} + detect-libc@2.1.2: {} + dunder-proto@1.0.1: dependencies: call-bind-apply-helpers: 1.0.2 @@ -2706,35 +2450,6 @@ snapshots: is-date-object: 1.1.0 is-symbol: 1.1.1 - esbuild@0.27.2: - optionalDependencies: - '@esbuild/aix-ppc64': 0.27.2 - '@esbuild/android-arm': 0.27.2 - '@esbuild/android-arm64': 0.27.2 - '@esbuild/android-x64': 0.27.2 - '@esbuild/darwin-arm64': 0.27.2 - '@esbuild/darwin-x64': 0.27.2 - '@esbuild/freebsd-arm64': 0.27.2 - '@esbuild/freebsd-x64': 0.27.2 - '@esbuild/linux-arm': 0.27.2 - '@esbuild/linux-arm64': 0.27.2 - '@esbuild/linux-ia32': 0.27.2 - '@esbuild/linux-loong64': 0.27.2 - '@esbuild/linux-mips64el': 0.27.2 - '@esbuild/linux-ppc64': 0.27.2 - '@esbuild/linux-riscv64': 0.27.2 - '@esbuild/linux-s390x': 0.27.2 - '@esbuild/linux-x64': 0.27.2 - '@esbuild/netbsd-arm64': 0.27.2 - '@esbuild/netbsd-x64': 0.27.2 - '@esbuild/openbsd-arm64': 0.27.2 - '@esbuild/openbsd-x64': 0.27.2 - '@esbuild/openharmony-arm64': 0.27.2 - '@esbuild/sunos-x64': 0.27.2 - '@esbuild/win32-arm64': 0.27.2 - '@esbuild/win32-ia32': 0.27.2 - '@esbuild/win32-x64': 0.27.2 - escalade@3.2.0: {} escape-string-regexp@1.0.5: {} @@ -2757,13 +2472,6 @@ snapshots: dependencies: to-regex-range: 5.0.1 - find-up@6.3.0: - dependencies: - locate-path: 7.2.0 - path-exists: 5.0.0 - - follow-redirects@1.15.11: {} - for-each@0.3.5: dependencies: is-callable: 1.2.7 @@ -3018,6 +2726,55 @@ snapshots: leven@2.1.0: {} + lightningcss-android-arm64@1.30.2: + optional: true + + lightningcss-darwin-arm64@1.30.2: + optional: true + + lightningcss-darwin-x64@1.30.2: + optional: true + + lightningcss-freebsd-x64@1.30.2: + optional: true + + lightningcss-linux-arm-gnueabihf@1.30.2: + optional: true + + lightningcss-linux-arm64-gnu@1.30.2: + optional: true + + lightningcss-linux-arm64-musl@1.30.2: + optional: true + + lightningcss-linux-x64-gnu@1.30.2: + optional: true + + lightningcss-linux-x64-musl@1.30.2: + optional: true + + lightningcss-win32-arm64-msvc@1.30.2: + optional: true + + lightningcss-win32-x64-msvc@1.30.2: + optional: true + + lightningcss@1.30.2: + dependencies: + detect-libc: 2.1.2 + optionalDependencies: + lightningcss-android-arm64: 1.30.2 + lightningcss-darwin-arm64: 1.30.2 + lightningcss-darwin-x64: 1.30.2 + lightningcss-freebsd-x64: 1.30.2 + lightningcss-linux-arm-gnueabihf: 1.30.2 + lightningcss-linux-arm64-gnu: 1.30.2 + lightningcss-linux-arm64-musl: 1.30.2 + lightningcss-linux-x64-gnu: 1.30.2 + lightningcss-linux-x64-musl: 1.30.2 + lightningcss-win32-arm64-msvc: 1.30.2 + lightningcss-win32-x64-msvc: 1.30.2 + lint-staged@16.2.7: dependencies: commander: 14.0.2 @@ -3037,10 +2794,6 @@ snapshots: rfdc: 1.4.1 wrap-ansi: 9.0.2 - locate-path@7.2.0: - dependencies: - p-locate: 6.0.0 - log-update@6.1.0: dependencies: ansi-escapes: 7.2.0 @@ -3057,8 +2810,8 @@ snapshots: magicast@0.5.1: dependencies: - '@babel/parser': 7.28.5 - '@babel/types': 7.28.5 + '@babel/parser': 7.28.6 + '@babel/types': 7.28.6 source-map-js: 1.2.1 make-dir@4.0.0: @@ -3105,6 +2858,8 @@ snapshots: mri@1.1.4: {} + mrmime@2.0.1: {} + ms@2.1.3: {} mz@2.7.0: @@ -3126,8 +2881,6 @@ snapshots: node-forge@1.3.3: {} - node-gyp-build@4.8.4: {} - node-hex@1.0.1: {} object-assign@4.1.1: {} @@ -3161,29 +2914,27 @@ snapshots: object-keys: 1.1.1 safe-push-apply: 1.0.0 - oxfmt@0.24.0: - dependencies: - tinypool: 2.0.0 + oxfmt@0.16.0: optionalDependencies: - '@oxfmt/darwin-arm64': 0.24.0 - '@oxfmt/darwin-x64': 0.24.0 - '@oxfmt/linux-arm64-gnu': 0.24.0 - '@oxfmt/linux-arm64-musl': 0.24.0 - '@oxfmt/linux-x64-gnu': 0.24.0 - '@oxfmt/linux-x64-musl': 0.24.0 - '@oxfmt/win32-arm64': 0.24.0 - '@oxfmt/win32-x64': 0.24.0 - - oxlint-tsgolint@0.11.0: + '@oxfmt/darwin-arm64': 0.16.0 + '@oxfmt/darwin-x64': 0.16.0 + '@oxfmt/linux-arm64-gnu': 0.16.0 + '@oxfmt/linux-arm64-musl': 0.16.0 + '@oxfmt/linux-x64-gnu': 0.16.0 + '@oxfmt/linux-x64-musl': 0.16.0 + '@oxfmt/win32-arm64': 0.16.0 + '@oxfmt/win32-x64': 0.16.0 + + oxlint-tsgolint@0.8.6: optionalDependencies: - '@oxlint-tsgolint/darwin-arm64': 0.11.0 - '@oxlint-tsgolint/darwin-x64': 0.11.0 - '@oxlint-tsgolint/linux-arm64': 0.11.0 - '@oxlint-tsgolint/linux-x64': 0.11.0 - '@oxlint-tsgolint/win32-arm64': 0.11.0 - '@oxlint-tsgolint/win32-x64': 0.11.0 - - oxlint@1.39.0(oxlint-tsgolint@0.11.0): + '@oxlint-tsgolint/darwin-arm64': 0.8.6 + '@oxlint-tsgolint/darwin-x64': 0.8.6 + '@oxlint-tsgolint/linux-arm64': 0.8.6 + '@oxlint-tsgolint/linux-x64': 0.8.6 + '@oxlint-tsgolint/win32-arm64': 0.8.6 + '@oxlint-tsgolint/win32-x64': 0.8.6 + + oxlint@1.39.0(oxlint-tsgolint@0.8.6): optionalDependencies: '@oxlint/darwin-arm64': 1.39.0 '@oxlint/darwin-x64': 1.39.0 @@ -3193,15 +2944,7 @@ snapshots: '@oxlint/linux-x64-musl': 1.39.0 '@oxlint/win32-arm64': 1.39.0 '@oxlint/win32-x64': 1.39.0 - oxlint-tsgolint: 0.11.0 - - p-limit@4.0.0: - dependencies: - yocto-queue: 1.2.2 - - p-locate@6.0.0: - dependencies: - p-limit: 4.0.0 + oxlint-tsgolint: 0.8.6 package-json-from-dist@1.0.1: {} @@ -3213,8 +2956,6 @@ snapshots: parse5@6.0.1: {} - path-exists@5.0.0: {} - path-key@3.1.1: {} path-scurry@2.0.1: @@ -3236,6 +2977,12 @@ snapshots: pidtree@0.6.0: {} + pixelmatch@7.1.0: + dependencies: + pngjs: 7.0.0 + + pngjs@7.0.0: {} + polite-json@5.0.0: {} possible-typed-array-names@1.1.0: {} @@ -3246,8 +2993,6 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 - proxy-from-env@1.1.0: {} - proxy@1.0.2: dependencies: args: 5.0.1 @@ -3307,34 +3052,6 @@ snapshots: glob: 13.0.0 package-json-from-dist: 1.0.1 - rollup@4.54.0: - dependencies: - '@types/estree': 1.0.8 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.54.0 - '@rollup/rollup-android-arm64': 4.54.0 - '@rollup/rollup-darwin-arm64': 4.54.0 - '@rollup/rollup-darwin-x64': 4.54.0 - '@rollup/rollup-freebsd-arm64': 4.54.0 - '@rollup/rollup-freebsd-x64': 4.54.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.54.0 - '@rollup/rollup-linux-arm-musleabihf': 4.54.0 - '@rollup/rollup-linux-arm64-gnu': 4.54.0 - '@rollup/rollup-linux-arm64-musl': 4.54.0 - '@rollup/rollup-linux-loong64-gnu': 4.54.0 - '@rollup/rollup-linux-ppc64-gnu': 4.54.0 - '@rollup/rollup-linux-riscv64-gnu': 4.54.0 - '@rollup/rollup-linux-riscv64-musl': 4.54.0 - '@rollup/rollup-linux-s390x-gnu': 4.54.0 - '@rollup/rollup-linux-x64-gnu': 4.54.0 - '@rollup/rollup-linux-x64-musl': 4.54.0 - '@rollup/rollup-openharmony-arm64': 4.54.0 - '@rollup/rollup-win32-arm64-msvc': 4.54.0 - '@rollup/rollup-win32-ia32-msvc': 4.54.0 - '@rollup/rollup-win32-x64-gnu': 4.54.0 - '@rollup/rollup-win32-x64-msvc': 4.54.0 - fsevents: 2.3.3 - safe-array-concat@1.1.3: dependencies: call-bind: 1.0.8 @@ -3424,6 +3141,12 @@ snapshots: signal-exit@4.1.0: {} + sirv@3.0.2: + dependencies: + '@polka/url': 1.0.0-next.29 + mrmime: 2.0.1 + totalist: 3.0.1 + skin-tone@2.0.0: dependencies: unicode-emoji-modifier-base: 1.0.0 @@ -3555,14 +3278,14 @@ snapshots: fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 - tinypool@2.0.0: {} - tinyrainbow@3.0.3: {} to-regex-range@5.0.1: dependencies: is-number: 7.0.0 + totalist@3.0.1: {} + tshy-after@1.4.1: {} tshy@3.1.0: @@ -3635,23 +3358,50 @@ snapshots: validate-npm-package-name@5.0.1: {} - vite@7.3.0(@types/node@22.19.6)(yaml@2.8.2): + vite-plus@0.0.0-ab0b0858cb619f270f5e0a698fea3d6f5622a761(@arethetypeswrong/core@0.18.2)(@types/node@22.19.6)(typescript@5.9.3)(yaml@2.8.2): dependencies: - esbuild: 0.27.2 - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 - postcss: 8.5.6 - rollup: 4.54.0 - tinyglobby: 0.2.15 + '@oxc-project/types': 0.108.0 + '@voidzero-dev/vite-plus-core': 0.0.0-ab0b0858cb619f270f5e0a698fea3d6f5622a761(@arethetypeswrong/core@0.18.2)(@types/node@22.19.6)(typescript@5.9.3)(yaml@2.8.2) + '@voidzero-dev/vite-plus-test': 0.0.0-ab0b0858cb619f270f5e0a698fea3d6f5622a761(@arethetypeswrong/core@0.18.2)(@types/node@22.19.6)(typescript@5.9.3)(yaml@2.8.2) + cac: 6.7.14 + oxfmt: 0.16.0 + oxlint: 1.39.0(oxlint-tsgolint@0.8.6) + oxlint-tsgolint: 0.8.6 optionalDependencies: - '@types/node': 22.19.6 - fsevents: 2.3.3 - yaml: 2.8.2 + '@voidzero-dev/vite-plus-darwin-arm64': 0.0.0-ab0b0858cb619f270f5e0a698fea3d6f5622a761 + '@voidzero-dev/vite-plus-linux-arm64-gnu': 0.0.0-ab0b0858cb619f270f5e0a698fea3d6f5622a761 + '@voidzero-dev/vite-plus-linux-x64-gnu': 0.0.0-ab0b0858cb619f270f5e0a698fea3d6f5622a761 + '@voidzero-dev/vite-plus-win32-x64-msvc': 0.0.0-ab0b0858cb619f270f5e0a698fea3d6f5622a761 + transitivePeerDependencies: + - '@arethetypeswrong/core' + - '@edge-runtime/vm' + - '@opentelemetry/api' + - '@types/node' + - '@vitejs/devtools' + - '@vitest/ui' + - bufferutil + - esbuild + - happy-dom + - jiti + - jsdom + - less + - publint + - sass + - sass-embedded + - stylus + - sugarss + - terser + - tsx + - typescript + - unplugin-lightningcss + - unplugin-unused + - utf-8-validate + - yaml - vitest@4.0.17(@types/node@22.19.6)(yaml@2.8.2): + vitest@4.0.17(@arethetypeswrong/core@0.18.2)(@types/node@22.19.6)(typescript@5.9.3)(yaml@2.8.2): dependencies: '@vitest/expect': 4.0.17 - '@vitest/mocker': 4.0.17(vite@7.3.0(@types/node@22.19.6)(yaml@2.8.2)) + '@vitest/mocker': 4.0.17(@voidzero-dev/vite-plus-core@0.0.0-ab0b0858cb619f270f5e0a698fea3d6f5622a761(@arethetypeswrong/core@0.18.2)(@types/node@22.19.6)(typescript@5.9.3)(yaml@2.8.2)) '@vitest/pretty-format': 4.0.17 '@vitest/runner': 4.0.17 '@vitest/snapshot': 4.0.17 @@ -3668,21 +3418,27 @@ snapshots: tinyexec: 1.0.2 tinyglobby: 0.2.15 tinyrainbow: 3.0.3 - vite: 7.3.0(@types/node@22.19.6)(yaml@2.8.2) + vite: '@voidzero-dev/vite-plus-core@0.0.0-ab0b0858cb619f270f5e0a698fea3d6f5622a761(@arethetypeswrong/core@0.18.2)(@types/node@22.19.6)(typescript@5.9.3)(yaml@2.8.2)' why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 22.19.6 transitivePeerDependencies: + - '@arethetypeswrong/core' + - '@vitejs/devtools' + - esbuild - jiti - less - - lightningcss - msw + - publint - sass - sass-embedded - stylus - sugarss - terser - tsx + - typescript + - unplugin-lightningcss + - unplugin-unused - yaml walk-up-path@4.0.0: {} @@ -3751,6 +3507,8 @@ snapshots: wrappy@1.0.2: {} + ws@8.19.0: {} + y18n@5.0.8: {} yaml@2.8.2: {} @@ -3768,5 +3526,3 @@ snapshots: yargs-parser: 20.2.9 ylru@2.0.0: {} - - yocto-queue@1.2.2: {} diff --git a/test/HttpClient.connect.rejectUnauthorized.test.ts b/test/HttpClient.connect.rejectUnauthorized.test.ts index 116abdcb..06ada04f 100644 --- a/test/HttpClient.connect.rejectUnauthorized.test.ts +++ b/test/HttpClient.connect.rejectUnauthorized.test.ts @@ -1,6 +1,6 @@ import { strict as assert } from 'node:assert'; -import { describe, it, beforeAll, afterAll } from 'vitest'; +import { describe, it, beforeAll, afterAll } from 'vite-plus/test'; import { HttpClient } from '../src/index.js'; import { startServer } from './fixtures/server.js'; diff --git a/test/HttpClient.events.test.ts b/test/HttpClient.events.test.ts index 1adba3c4..0c6c1f7e 100644 --- a/test/HttpClient.events.test.ts +++ b/test/HttpClient.events.test.ts @@ -1,6 +1,6 @@ import { strict as assert } from 'node:assert'; -import { describe, it, beforeAll, afterAll } from 'vitest'; +import { describe, it, beforeAll, afterAll } from 'vite-plus/test'; import { HttpClient } from '../src/index.js'; import { startServer } from './fixtures/server.js'; diff --git a/test/HttpClient.test.ts b/test/HttpClient.test.ts index 4b6e4c91..39cef5a9 100644 --- a/test/HttpClient.test.ts +++ b/test/HttpClient.test.ts @@ -7,7 +7,7 @@ import { PerformanceObserver } from 'node:perf_hooks'; import { setTimeout as sleep } from 'node:timers/promises'; import selfsigned from 'selfsigned'; -import { describe, it, beforeAll, afterAll } from 'vitest'; +import { describe, it, beforeAll, afterAll } from 'vite-plus/test'; import { HttpClient, getGlobalDispatcher } from '../src/index.js'; import type { RawResponseWithMeta } from '../src/index.js'; diff --git a/test/diagnostics_channel.test.ts b/test/diagnostics_channel.test.ts index 7dd0fa6a..623f6a34 100644 --- a/test/diagnostics_channel.test.ts +++ b/test/diagnostics_channel.test.ts @@ -6,7 +6,7 @@ import type { AddressInfo } from 'node:net'; import { setTimeout as sleep } from 'node:timers/promises'; import selfsigned from 'selfsigned'; -import { describe, it, beforeEach, afterEach } from 'vitest'; +import { describe, it, beforeEach, afterEach } from 'vite-plus/test'; import urllib, { HttpClient } from '../src/index.js'; import type { RequestDiagnosticsMessage, ResponseDiagnosticsMessage } from '../src/index.js'; diff --git a/test/fetch-head-request-should-keepalive.test.ts b/test/fetch-head-request-should-keepalive.test.ts index 1e477987..f62f7f0d 100644 --- a/test/fetch-head-request-should-keepalive.test.ts +++ b/test/fetch-head-request-should-keepalive.test.ts @@ -1,7 +1,7 @@ import { strict as assert } from 'node:assert'; import { scheduler } from 'node:timers/promises'; -import { describe, it, beforeAll, afterAll } from 'vitest'; +import { describe, it, beforeAll, afterAll } from 'vite-plus/test'; import { fetch } from '../src/index.js'; import { startServer } from './fixtures/server.js'; diff --git a/test/fetch.test.ts b/test/fetch.test.ts index 411f789a..e39a1207 100644 --- a/test/fetch.test.ts +++ b/test/fetch.test.ts @@ -3,7 +3,7 @@ import diagnosticsChannel from 'node:diagnostics_channel'; import { setTimeout as sleep } from 'node:timers/promises'; import { Request } from 'undici'; -import { describe, it, beforeAll, afterAll } from 'vitest'; +import { describe, it, beforeAll, afterAll } from 'vite-plus/test'; import { fetch, FetchFactory } from '../src/fetch.js'; import type { FetchDiagnosticsMessage, FetchResponseDiagnosticsMessage } from '../src/fetch.js'; diff --git a/test/formData-with-BufferStream.test.ts b/test/formData-with-BufferStream.test.ts index b52819e9..cb3bbc59 100644 --- a/test/formData-with-BufferStream.test.ts +++ b/test/formData-with-BufferStream.test.ts @@ -2,7 +2,7 @@ import { strict as assert } from 'node:assert'; import { createReadStream } from 'node:fs'; import { basename } from 'node:path'; -import { describe, it, beforeAll, afterAll } from 'vitest'; +import { describe, it, beforeAll, afterAll } from 'vite-plus/test'; import { HttpClient, WebFormData } from '../src/index.js'; import { BufferStream } from './fixtures/BufferStream.js'; diff --git a/test/head-request-should-keepalive.test.ts b/test/head-request-should-keepalive.test.ts index 77c82475..323c25a6 100644 --- a/test/head-request-should-keepalive.test.ts +++ b/test/head-request-should-keepalive.test.ts @@ -1,7 +1,7 @@ import { strict as assert } from 'node:assert'; import { scheduler } from 'node:timers/promises'; -import { describe, it, beforeAll, afterAll } from 'vitest'; +import { describe, it, beforeAll, afterAll } from 'vite-plus/test'; import { HttpClient } from '../src/index.js'; import { startServer } from './fixtures/server.js'; diff --git a/test/index.test.ts b/test/index.test.ts index c347811c..3c392e67 100644 --- a/test/index.test.ts +++ b/test/index.test.ts @@ -2,7 +2,7 @@ import { strict as assert } from 'node:assert'; import { readFileSync } from 'node:fs'; import { parse as urlparse } from 'node:url'; -import { describe, it, beforeAll, afterAll, afterEach, beforeEach } from 'vitest'; +import { describe, it, beforeAll, afterAll, afterEach, beforeEach } from 'vite-plus/test'; import urllib, { HttpClient, diff --git a/test/keep-alive-header.test.ts b/test/keep-alive-header.test.ts index bb0b9e34..9386dc31 100644 --- a/test/keep-alive-header.test.ts +++ b/test/keep-alive-header.test.ts @@ -1,7 +1,7 @@ import { strict as assert } from 'node:assert'; import { setTimeout as sleep } from 'node:timers/promises'; -import { describe, it, beforeAll, afterAll } from 'vitest'; +import { describe, it, beforeAll, afterAll } from 'vite-plus/test'; import { HttpClient } from '../src/index.js'; import { startServer } from './fixtures/server.js'; diff --git a/test/non-ascii-request-header.test.ts b/test/non-ascii-request-header.test.ts index 9307e5ed..9ee8b6ea 100644 --- a/test/non-ascii-request-header.test.ts +++ b/test/non-ascii-request-header.test.ts @@ -1,6 +1,6 @@ import { strict as assert } from 'node:assert'; -import { describe, it, beforeAll, afterAll } from 'vitest'; +import { describe, it, beforeAll, afterAll } from 'vite-plus/test'; import urllib from '../src/index.js'; import { startServer } from './fixtures/server.js'; diff --git a/test/options.auth.test.ts b/test/options.auth.test.ts index a2080bac..b6018346 100644 --- a/test/options.auth.test.ts +++ b/test/options.auth.test.ts @@ -1,6 +1,6 @@ import { strict as assert } from 'node:assert'; -import { describe, it, beforeAll, afterAll } from 'vitest'; +import { describe, it, beforeAll, afterAll } from 'vite-plus/test'; import urllib from '../src/index.js'; import { startServer } from './fixtures/server.js'; diff --git a/test/options.compressed.test.ts b/test/options.compressed.test.ts index 7b3e81e4..003e13fc 100644 --- a/test/options.compressed.test.ts +++ b/test/options.compressed.test.ts @@ -1,7 +1,7 @@ import { strict as assert } from 'node:assert'; import { createWriteStream, createReadStream } from 'node:fs'; -import { describe, it, beforeAll, afterAll, beforeEach, afterEach } from 'vitest'; +import { describe, it, beforeAll, afterAll, beforeEach, afterEach } from 'vite-plus/test'; import urllib from '../src/index.js'; import { startServer } from './fixtures/server.js'; diff --git a/test/options.content.test.ts b/test/options.content.test.ts index 84a46db7..5fe75dd1 100644 --- a/test/options.content.test.ts +++ b/test/options.content.test.ts @@ -2,7 +2,7 @@ import { strict as assert } from 'node:assert'; import { createReadStream } from 'node:fs'; import fs from 'node:fs/promises'; -import { describe, it, beforeAll, afterAll } from 'vitest'; +import { describe, it, beforeAll, afterAll } from 'vite-plus/test'; import urllib from '../src/index.js'; import { startServer } from './fixtures/server.js'; diff --git a/test/options.data.test.ts b/test/options.data.test.ts index 475267cf..422e1407 100644 --- a/test/options.data.test.ts +++ b/test/options.data.test.ts @@ -3,7 +3,7 @@ import { createReadStream } from 'node:fs'; import { Readable } from 'node:stream'; import qs from 'qs'; -import { describe, it, beforeAll, afterAll } from 'vitest'; +import { describe, it, beforeAll, afterAll } from 'vite-plus/test'; import urllib from '../src/index.js'; import { startServer } from './fixtures/server.js'; diff --git a/test/options.dataType.test.ts b/test/options.dataType.test.ts index b2e0b1c9..520fc33c 100644 --- a/test/options.dataType.test.ts +++ b/test/options.dataType.test.ts @@ -1,6 +1,6 @@ import { strict as assert } from 'node:assert'; -import { describe, it, beforeAll, afterAll } from 'vitest'; +import { describe, it, beforeAll, afterAll } from 'vite-plus/test'; import urllib from '../src/index.js'; import { startServer } from './fixtures/server.js'; diff --git a/test/options.digestAuth.test.ts b/test/options.digestAuth.test.ts index 58aebabe..442ed790 100644 --- a/test/options.digestAuth.test.ts +++ b/test/options.digestAuth.test.ts @@ -1,6 +1,6 @@ import { strict as assert } from 'node:assert'; -import { describe, it, beforeAll, afterAll } from 'vitest'; +import { describe, it, beforeAll, afterAll } from 'vite-plus/test'; import urllib from '../src/index.js'; import { startServer } from './fixtures/server.js'; diff --git a/test/options.dispatcher.test.ts b/test/options.dispatcher.test.ts index 16442492..e737afc0 100644 --- a/test/options.dispatcher.test.ts +++ b/test/options.dispatcher.test.ts @@ -1,7 +1,7 @@ import { strict as assert } from 'node:assert'; import setup from 'proxy'; -import { describe, it, beforeAll, afterAll } from 'vitest'; +import { describe, it, beforeAll, afterAll } from 'vite-plus/test'; import { request, ProxyAgent, getGlobalDispatcher, setGlobalDispatcher, Agent } from '../src/index.js'; import { startServer } from './fixtures/server.js'; diff --git a/test/options.files.test.ts b/test/options.files.test.ts index 9280093e..240bba6f 100644 --- a/test/options.files.test.ts +++ b/test/options.files.test.ts @@ -4,7 +4,7 @@ import fs from 'node:fs/promises'; import path from 'node:path'; import { Readable } from 'node:stream'; -import { describe, it, beforeAll, afterAll } from 'vitest'; +import { describe, it, beforeAll, afterAll } from 'vite-plus/test'; import urllib from '../src/index.js'; import { startServer } from './fixtures/server.js'; diff --git a/test/options.fixJSONCtlChars.test.ts b/test/options.fixJSONCtlChars.test.ts index 00b9b34d..cd8f6b29 100644 --- a/test/options.fixJSONCtlChars.test.ts +++ b/test/options.fixJSONCtlChars.test.ts @@ -1,6 +1,6 @@ import { strict as assert } from 'node:assert'; -import { describe, it, beforeAll, afterAll } from 'vitest'; +import { describe, it, beforeAll, afterAll } from 'vite-plus/test'; import urllib from '../src/index.js'; import { startServer } from './fixtures/server.js'; diff --git a/test/options.followRedirect.test.ts b/test/options.followRedirect.test.ts index 323b9319..c03683fb 100644 --- a/test/options.followRedirect.test.ts +++ b/test/options.followRedirect.test.ts @@ -1,7 +1,7 @@ import { strict as assert } from 'node:assert'; import { createWriteStream } from 'node:fs'; -import { describe, it, beforeAll, afterAll } from 'vitest'; +import { describe, it, beforeAll, afterAll } from 'vite-plus/test'; import urllib from '../src/index.js'; import { HttpClient } from '../src/index.js'; diff --git a/test/options.gzip.test.ts b/test/options.gzip.test.ts index f1091504..ac1866d5 100644 --- a/test/options.gzip.test.ts +++ b/test/options.gzip.test.ts @@ -1,6 +1,6 @@ import { strict as assert } from 'node:assert'; -import { describe, it, beforeAll, afterAll } from 'vitest'; +import { describe, it, beforeAll, afterAll } from 'vite-plus/test'; import urllib from '../src/index.js'; import { startServer } from './fixtures/server.js'; diff --git a/test/options.headers.test.ts b/test/options.headers.test.ts index 64a94b42..b5df20dc 100644 --- a/test/options.headers.test.ts +++ b/test/options.headers.test.ts @@ -1,6 +1,6 @@ import { strict as assert } from 'node:assert'; -import { describe, it, beforeAll, afterAll } from 'vitest'; +import { describe, it, beforeAll, afterAll } from 'vite-plus/test'; import urllib from '../src/index.js'; import { startServer } from './fixtures/server.js'; diff --git a/test/options.method.test.ts b/test/options.method.test.ts index 532250b0..bf92e6dc 100644 --- a/test/options.method.test.ts +++ b/test/options.method.test.ts @@ -1,6 +1,6 @@ import { strict as assert } from 'node:assert'; -import { describe, it, beforeAll, afterAll } from 'vitest'; +import { describe, it, beforeAll, afterAll } from 'vite-plus/test'; import urllib from '../src/index.js'; import { startServer } from './fixtures/server.js'; diff --git a/test/options.opaque.test.ts b/test/options.opaque.test.ts index 36da4e01..50aec6af 100644 --- a/test/options.opaque.test.ts +++ b/test/options.opaque.test.ts @@ -1,6 +1,6 @@ import { strict as assert } from 'node:assert'; -import { describe, it, beforeAll, afterAll } from 'vitest'; +import { describe, it, beforeAll, afterAll } from 'vite-plus/test'; import urllib from '../src/index.js'; import { startServer } from './fixtures/server.js'; diff --git a/test/options.reset.test.ts b/test/options.reset.test.ts index 15f2dfeb..51e993c4 100644 --- a/test/options.reset.test.ts +++ b/test/options.reset.test.ts @@ -1,6 +1,6 @@ import { strict as assert } from 'node:assert'; -import { describe, it, beforeAll, afterAll } from 'vitest'; +import { describe, it, beforeAll, afterAll } from 'vite-plus/test'; import urllib from '../src/index.js'; import { startServer } from './fixtures/server.js'; diff --git a/test/options.retry.test.ts b/test/options.retry.test.ts index c8195947..a00c8176 100644 --- a/test/options.retry.test.ts +++ b/test/options.retry.test.ts @@ -1,7 +1,7 @@ import { strict as assert } from 'node:assert'; import { createWriteStream, createReadStream } from 'node:fs'; -import { describe, it, beforeAll, afterAll, beforeEach, afterEach } from 'vitest'; +import { describe, it, beforeAll, afterAll, beforeEach, afterEach } from 'vite-plus/test'; import urllib from '../src/index.js'; import { startServer } from './fixtures/server.js'; diff --git a/test/options.signal.test.ts b/test/options.signal.test.ts index cd779971..d83c1a47 100644 --- a/test/options.signal.test.ts +++ b/test/options.signal.test.ts @@ -2,7 +2,7 @@ import { strict as assert } from 'node:assert'; import { EventEmitter } from 'node:events'; import { setTimeout as sleep } from 'node:timers/promises'; -import { describe, it, beforeAll, afterAll } from 'vitest'; +import { describe, it, beforeAll, afterAll } from 'vite-plus/test'; import urllib from '../src/index.js'; import { startServer } from './fixtures/server.js'; diff --git a/test/options.socketErrorRetry.test.ts b/test/options.socketErrorRetry.test.ts index 8564c25d..cf845b8f 100644 --- a/test/options.socketErrorRetry.test.ts +++ b/test/options.socketErrorRetry.test.ts @@ -1,7 +1,7 @@ import { strict as assert } from 'node:assert'; import { createWriteStream, createReadStream } from 'node:fs'; -import { describe, it, beforeAll, afterAll, beforeEach, afterEach } from 'vitest'; +import { describe, it, beforeAll, afterAll, beforeEach, afterEach } from 'vite-plus/test'; import urllib from '../src/index.js'; import { startServer } from './fixtures/server.js'; diff --git a/test/options.socketPath.test.ts b/test/options.socketPath.test.ts index bb89727c..64da8494 100644 --- a/test/options.socketPath.test.ts +++ b/test/options.socketPath.test.ts @@ -1,6 +1,6 @@ import { strict as assert } from 'node:assert'; -import { describe, it, beforeAll, afterAll } from 'vitest'; +import { describe, it, beforeAll, afterAll } from 'vite-plus/test'; import urllib from '../src/index.js'; import { startServer } from './fixtures/socket_server.js'; diff --git a/test/options.stream.test.ts b/test/options.stream.test.ts index f7260011..a9e79109 100644 --- a/test/options.stream.test.ts +++ b/test/options.stream.test.ts @@ -7,7 +7,7 @@ import { createGunzip } from 'node:zlib'; import FormStream from 'formstream'; import tar from 'tar-stream'; -import { describe, it, beforeAll, afterAll, beforeEach, afterEach } from 'vitest'; +import { describe, it, beforeAll, afterAll, beforeEach, afterEach } from 'vite-plus/test'; import urllib from '../src/index.js'; import { isReadable } from '../src/utils.js'; diff --git a/test/options.streaming.test.ts b/test/options.streaming.test.ts index d25d37d2..3698bf3d 100644 --- a/test/options.streaming.test.ts +++ b/test/options.streaming.test.ts @@ -2,7 +2,7 @@ import { strict as assert } from 'node:assert'; import { pipeline } from 'node:stream'; import { createBrotliDecompress } from 'node:zlib'; -import { describe, it, beforeEach, afterEach } from 'vitest'; +import { describe, it, beforeEach, afterEach } from 'vite-plus/test'; import urllib from '../src/index.js'; import { isReadable } from '../src/utils.js'; diff --git a/test/options.timeout.test.ts b/test/options.timeout.test.ts index 551f82ba..4cefec6c 100644 --- a/test/options.timeout.test.ts +++ b/test/options.timeout.test.ts @@ -4,7 +4,7 @@ import { createSecureServer } from 'node:http2'; import type { AddressInfo } from 'node:net'; import selfsigned from 'selfsigned'; -import { describe, it, beforeAll, afterAll } from 'vitest'; +import { describe, it, beforeAll, afterAll } from 'vite-plus/test'; import urllib, { HttpClientRequestTimeoutError, HttpClient } from '../src/index.js'; import { startServer } from './fixtures/server.js'; diff --git a/test/options.timing.test.ts b/test/options.timing.test.ts index 9a92399d..f99e5817 100644 --- a/test/options.timing.test.ts +++ b/test/options.timing.test.ts @@ -1,7 +1,7 @@ import { strict as assert } from 'node:assert'; import { setTimeout as sleep } from 'node:timers/promises'; -import { describe, it, beforeAll, afterAll } from 'vitest'; +import { describe, it, beforeAll, afterAll } from 'vite-plus/test'; import urllib from '../src/index.js'; import type { RawResponseWithMeta } from '../src/index.js'; diff --git a/test/options.type.test.ts b/test/options.type.test.ts index bc39a8bb..43d974f1 100644 --- a/test/options.type.test.ts +++ b/test/options.type.test.ts @@ -1,6 +1,6 @@ import { strict as assert } from 'node:assert'; -import { describe, it, beforeAll, afterAll } from 'vitest'; +import { describe, it, beforeAll, afterAll } from 'vite-plus/test'; import urllib from '../src/index.js'; import { startServer } from './fixtures/server.js'; diff --git a/test/options.writeStream.test.ts b/test/options.writeStream.test.ts index 20f34f96..35b333f6 100644 --- a/test/options.writeStream.test.ts +++ b/test/options.writeStream.test.ts @@ -5,7 +5,7 @@ import { join } from 'node:path'; import { setTimeout as sleep } from 'node:timers/promises'; import { gunzipSync } from 'node:zlib'; -import { describe, it, beforeAll, afterAll, beforeEach, afterEach } from 'vitest'; +import { describe, it, beforeAll, afterAll, beforeEach, afterEach } from 'vite-plus/test'; import urllib from '../src/index.js'; import { startServer } from './fixtures/server.js'; diff --git a/test/response-charset-gbk.test.ts b/test/response-charset-gbk.test.ts index 47a07d89..ce320013 100644 --- a/test/response-charset-gbk.test.ts +++ b/test/response-charset-gbk.test.ts @@ -1,6 +1,6 @@ import { strict as assert } from 'node:assert'; -import { describe, it, beforeAll, afterAll } from 'vitest'; +import { describe, it, beforeAll, afterAll } from 'vite-plus/test'; import urllib from '../src/index.js'; import { startServer } from './fixtures/server.js'; diff --git a/test/urllib.bench.ts b/test/urllib.bench.ts index b2b90417..23e385cf 100644 --- a/test/urllib.bench.ts +++ b/test/urllib.bench.ts @@ -1,4 +1,4 @@ -import { bench, describe } from 'vitest'; +import { bench, describe } from 'vite-plus/test'; import { HttpClient } from '../src/index.js'; import { parseJSON, digestAuthHeader, globalId, performanceTime } from '../src/utils.js'; diff --git a/test/urllib.options.allowH2.test.ts b/test/urllib.options.allowH2.test.ts index b0174026..52be0ca4 100644 --- a/test/urllib.options.allowH2.test.ts +++ b/test/urllib.options.allowH2.test.ts @@ -1,6 +1,6 @@ import { strict as assert } from 'node:assert'; -import { describe, it } from 'vitest'; +import { describe, it } from 'vite-plus/test'; import urllib from '../src/index.js'; diff --git a/test/urllib.options.rejectUnauthorized-false.test.ts b/test/urllib.options.rejectUnauthorized-false.test.ts index 62cb2547..65b71053 100644 --- a/test/urllib.options.rejectUnauthorized-false.test.ts +++ b/test/urllib.options.rejectUnauthorized-false.test.ts @@ -4,7 +4,7 @@ import { createSecureServer } from 'node:http2'; import type { AddressInfo } from 'node:net'; import selfsigned from 'selfsigned'; -import { describe, it, beforeAll, afterAll } from 'vitest'; +import { describe, it, beforeAll, afterAll } from 'vite-plus/test'; import urllib, { HttpClient } from '../src/index.js'; import { startServer } from './fixtures/server.js'; diff --git a/test/user-agent.test.ts b/test/user-agent.test.ts index 2bfa8aba..97504882 100644 --- a/test/user-agent.test.ts +++ b/test/user-agent.test.ts @@ -1,6 +1,6 @@ import { strict as assert } from 'node:assert'; -import { describe, it, beforeAll, afterAll } from 'vitest'; +import { describe, it, beforeAll, afterAll } from 'vite-plus/test'; import urllib from '../src/index.js'; import { startServer } from './fixtures/server.js'; diff --git a/test/utils.test.ts b/test/utils.test.ts index a88fcee5..08a0f59e 100644 --- a/test/utils.test.ts +++ b/test/utils.test.ts @@ -1,6 +1,6 @@ import { strict as assert } from 'node:assert'; -import { describe, it } from 'vitest'; +import { describe, it } from 'vite-plus/test'; import { globalId } from '../src/utils.js'; diff --git a/tsconfig.json b/tsconfig.json index ffc6a8dc..624aa4dc 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -11,5 +11,5 @@ // verbatimModuleSyntax is incompatible with multi-dialect builds // "verbatimModuleSyntax": true }, - "exclude": ["test/fixtures/ts*", "vite.config.ts"] + "exclude": ["test/fixtures/ts*", "*.config.ts"] } diff --git a/vite.config.ts b/vite.config.ts index 804a4ad5..3617c411 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,15 +1,163 @@ -import codspeedPlugin from '@codspeed/vitest-plugin'; -import { defineConfig } from 'vitest/config'; +// import codspeedPlugin from '@codspeed/vitest-plugin'; +import { defineConfig } from 'vite-plus'; export default defineConfig({ - plugins: [codspeedPlugin()], + fmt: { + $schema: './node_modules/oxfmt/configuration_schema.json', + printWidth: 120, + singleQuote: true, + ignorePatterns: ['CHANGELOG.md', 'pnpm-lock.yaml'], + experimentalSortImports: { + groups: [ + ['type-import'], + ['type-builtin', 'value-builtin'], + ['type-external', 'value-external', 'type-internal', 'value-internal'], + ['type-parent', 'type-sibling', 'type-index', 'value-parent', 'value-sibling', 'value-index'], + ['ts-equals-import'], + ['unknown'], + ], + newlinesBetween: true, + order: 'asc', + }, + }, + lint: { + $schema: './node_modules/oxlint/configuration_schema.json', + env: { + node: true, + }, + // FIXME: wait for vite-plus to fix lint extends path resolution + extends: ['../../@eggjs/oxlint-config/.oxlintrc.json'], + categories: { + correctness: 'allow', + suspicious: 'allow', + pedantic: 'allow', + style: 'allow', + nursery: 'allow', + restriction: 'allow', + perf: 'allow', + }, + rules: { + 'no-extend-native': 'warn', + // Disable TypeScript rules + 'typescript/explicit-function-return-type': 'allow', + 'typescript/consistent-type-imports': 'allow', + 'typescript/consistent-type-definitions': 'allow', + 'typescript/consistent-indexed-object-style': 'allow', + 'typescript/no-inferrable-types': 'allow', + 'typescript/array-type': 'allow', + 'typescript/no-non-null-assertion': 'allow', + 'typescript/no-explicit-any': 'allow', + 'typescript/no-import-type-side-effects': 'allow', + 'typescript/no-dynamic-delete': 'allow', + 'typescript/prefer-ts-expect-error': 'allow', + 'typescript/ban-ts-comment': 'allow', + 'typescript/prefer-enum-initializers': 'allow', + 'typescript/explicit-module-boundary-types': 'allow', + // Disable import rules + 'import/exports-last': 'allow', + 'import/max-dependencies': 'allow', + 'import/no-cycle': 'allow', + 'import/no-anonymous-default-export': 'allow', + 'import/no-namespace': 'allow', + 'import/named': 'allow', + 'import/export': 'allow', + 'import/no-default-export': 'allow', + 'import/unambiguous': 'allow', + 'import/group-exports': 'allow', + 'import/extensions': 'allow', + 'import/consistent-type-specifier-style': 'allow', + 'import/prefer-default-export': 'allow', + 'import/no-named-as-default-member': 'allow', + // Disable unicorn rules + 'unicorn/error-message': 'allow', + 'unicorn/no-null': 'allow', + 'unicorn/filename-case': 'allow', + 'unicorn/prefer-structured-clone': 'allow', + 'unicorn/prefer-logical-operator-over-ternary': 'allow', + 'unicorn/prefer-number-properties': 'allow', + 'unicorn/prefer-array-some': 'allow', + 'unicorn/prefer-string-slice': 'allow', + 'unicorn/throw-new-error': 'allow', + 'unicorn/catch-error-name': 'allow', + 'unicorn/prefer-spread': 'allow', + 'unicorn/numeric-separators-style': 'allow', + 'unicorn/prefer-string-raw': 'allow', + 'unicorn/text-encoding-identifier-case': 'allow', + 'unicorn/no-array-for-each': 'allow', + 'unicorn/explicit-length-check': 'allow', + 'unicorn/no-lonely-if': 'allow', + 'unicorn/no-useless-undefined': 'allow', + 'unicorn/prefer-date-now': 'allow', + 'unicorn/no-static-only-class': 'allow', + 'unicorn/no-typeof-undefined': 'allow', + 'unicorn/prefer-negative-index': 'allow', + 'unicorn/no-anonymous-default-export': 'allow', + 'unicorn/consistent-assert': 'allow', + // Disable promise rules + 'promise/no-return-wrap': 'allow', + 'promise/param-names': 'allow', + 'promise/prefer-await-to-callbacks': 'allow', + 'promise/prefer-await-to-then': 'allow', + 'promise/prefer-catch': 'allow', + 'promise/no-return-in-finally': 'allow', + 'promise/avoid-new': 'allow', + // Disable other ESLint rules + 'constructor-super': 'allow', + 'getter-return': 'allow', + 'no-undef': 'allow', + 'no-unreachable': 'allow', + 'no-var': 'allow', + 'no-eq-null': 'allow', + 'no-await-in-loop': 'allow', + eqeqeq: 'allow', + 'init-declarations': 'allow', + curly: 'allow', + 'no-ternary': 'allow', + 'max-params': 'allow', + 'no-await-expression-member': 'allow', + 'no-continue': 'allow', + 'guard-for-in': 'allow', + 'func-style': 'allow', + 'sort-imports': 'allow', + yoda: 'allow', + 'sort-keys': 'allow', + 'no-magic-numbers': 'allow', + 'no-duplicate-imports': 'allow', + 'no-multi-assign': 'allow', + 'func-names': 'allow', + 'default-param-last': 'allow', + 'prefer-object-spread': 'allow', + 'no-undefined': 'allow', + 'no-plusplus': 'allow', + 'no-console': 'allow', + 'no-extraneous-class': 'allow', + 'no-empty-function': 'allow', + 'max-depth': 'allow', + 'max-lines-per-function': 'allow', + 'no-lonely-if': 'allow', + 'max-lines': 'allow', + 'require-await': 'allow', + 'max-nested-callbacks': 'allow', + 'max-classes-per-file': 'allow', + radix: 'allow', + 'no-negated-condition': 'allow', + 'no-else-return': 'allow', + 'no-throw-literal': 'allow', + 'id-length': 'allow', + 'arrow-body-style': 'allow', + 'prefer-destructuring': 'allow', + }, + ignorePatterns: ['test/fixtures/ts*'], + }, + // plugins: [codspeedPlugin()], test: { include: ['test/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], testTimeout: 60000, coverage: { include: ['src'], }, - pool: 'threads', + // https://vitest.dev/guide/common-errors.html#failed-to-terminate-worker + pool: 'forks', setupFiles: ['test/setup.ts'], }, });