diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 473f420a..8e13c2b1 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -10,17 +10,8 @@ updates: default-days: 1 versioning-strategy: increase groups: - uncheck: - patterns: - - uncheck - - oxlint - - oxfmt dev-dependencies-minor-patch: dependency-type: development - exclude-patterns: - - uncheck - - oxlint - - oxfmt update-types: - minor - patch diff --git a/.gitignore b/.gitignore index 4ede76dd..67dcd8f9 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,9 @@ !.vscode/ !.github/ !.zed/ +!.agents/ +!.claude/ +.claude/worktrees/ # Common generated folders logs/ diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 00000000..99e2f7dd --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["oxc.oxc-vscode"] +} diff --git a/.vscode/settings.json b/.vscode/settings.json index 1563939c..6599cf4f 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,9 +1,6 @@ { - // Format with oxfmt on save, needs the oxc.oxc-vscode extension "editor.defaultFormatter": "oxc.oxc-vscode", "editor.formatOnSave": true, - - // Apply oxlint's auto fixes on save "editor.codeActionsOnSave": { "source.fixAll.oxc": "explicit" } diff --git a/.zed/settings.json b/.zed/settings.json index 3abbcbb7..2693c2e3 100644 --- a/.zed/settings.json +++ b/.zed/settings.json @@ -1,13 +1,4 @@ { "format_on_save": "on", - "formatter": { - "external": { - "command": "./node_modules/.bin/oxfmt", - "arguments": ["--stdin-filepath", "{buffer_path}"] - } - }, - // Apply oxlint's auto fixes on save: - "code_actions_on_format": { - "source.fixAll.oxc": true - } + "formatter": [{ "code_action": "source.fixAll.oxc" }, { "language_server": { "name": "oxfmt" } }] } diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 00000000..92626a7e --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,30 @@ +# AGENTS.md + +## Repository + +Standard Server: transport-agnostic request and response adapters, in a pnpm monorepo. + +- `packages/*`: the published packages +- `tests/`: e2e tests; `tests/bun` runs with `bun test` +- `playgrounds/*`: example apps +- `benches/`: benchmarks + +## Commands + +```bash +pnpm install +pnpm test # bun tests + vitest +pnpm vitest run # one test file +pnpm check # lint and type check, including *.test-d.ts +pnpm fix # check, applying fixes +pnpm format # format with oxfmt +pnpm repo:fix # fix monorepo issues (sherif) +pnpm bench +pnpm --filter @standard-server/core prepack # build one package; tests don't need a build +``` + +Before finishing, run `pnpm format`, `pnpm check` and `pnpm test`. CI doesn't check formatting. + +## Pull requests + +Titles follow Conventional Commits, scoped by the affected packages, separated by a comma and a space: `fix(node): ...`, `fix(node, fastify): ...`. Leave out the scope when the change is too broad. diff --git a/benches/__shared__/client-server.fetch.ts b/benches/__shared__/client-server.fetch.ts index 79f35fb3..7603366a 100644 --- a/benches/__shared__/client-server.fetch.ts +++ b/benches/__shared__/client-server.fetch.ts @@ -6,7 +6,7 @@ import { toStandardLazyResponse, } from '@standard-server/fetch' -import type { ClientServer } from './client-server' +import type { ClientServer } from './client-server.ts' export function createFetchClientServer(): ClientServer { const clientServer: ClientServer = { diff --git a/benches/__shared__/client-server.node.ts b/benches/__shared__/client-server.node.ts index ce55f2c4..6472a77f 100644 --- a/benches/__shared__/client-server.node.ts +++ b/benches/__shared__/client-server.node.ts @@ -4,7 +4,7 @@ import type { AddressInfo } from 'node:net' import { toFetchBody, toFetchHeaders, toStandardLazyResponse } from '@standard-server/fetch' import { sendStandardResponse, toStandardLazyRequest } from '@standard-server/node' -import type { ClientServer } from './client-server' +import type { ClientServer } from './client-server.ts' export function createNodeClientServer(): ClientServer { const clientServer: ClientServer = { diff --git a/benches/__shared__/client-server.peer.ts b/benches/__shared__/client-server.peer.ts index f75d701a..c7dd0f9d 100644 --- a/benches/__shared__/client-server.peer.ts +++ b/benches/__shared__/client-server.peer.ts @@ -7,7 +7,7 @@ import { ServerPeer, } from '@standard-server/peer' -import type { ClientServer } from './client-server' +import type { ClientServer } from './client-server.ts' export function createPeerClientServer(): ClientServer { const clientServer: ClientServer = { @@ -25,7 +25,7 @@ export function createPeerClientServer(): ClientServer { return } - clientPeer.message(decoded.message) + void clientPeer.message(decoded.message) }) const clientPeer = new ClientPeer(async (message) => { @@ -36,7 +36,7 @@ export function createPeerClientServer(): ClientServer { throw new Error('not found') } - serverPeer.message(decoded.message, clientServer.handler) + void serverPeer.message(decoded.message, clientServer.handler) }) return clientServer diff --git a/benches/__shared__/payloads.ts b/benches/__shared__/payloads.ts index fb90930c..1a3c73cb 100644 --- a/benches/__shared__/payloads.ts +++ b/benches/__shared__/payloads.ts @@ -22,7 +22,7 @@ function createUnit(i: number) { /** Pad a JSON value so `stringifyJSON` length equals `size`. */ function padJson(value: object, size: number): object { - const base = stringifyJSON({ ...value, _pad: '' })!.length + const base = stringifyJSON({ ...value, _pad: '' }).length if (base > size) throw new Error(`json core ${base} > ${size}`) return { ...value, _pad: 'x'.repeat(size - base) } } @@ -35,14 +35,14 @@ export const JSON_10KB = padJson( ) function splitBytes(size: number, parts: number): Uint8Array[] { - const buf = new Uint8Array(size) as Uint8Array + const buf = new Uint8Array(size) const base = Math.floor(size / parts) let rem = size - base * parts const out: Uint8Array[] = [] let off = 0 for (let i = 0; i < parts; i++) { const n = base + (rem-- > 0 ? 1 : 0) - out.push(buf.subarray(off, off + n) as Uint8Array) + out.push(buf.subarray(off, off + n)) off += n } return out @@ -62,7 +62,7 @@ function formContentSize(form: FormData): number { export const FORM_10KB = new FormData() FORM_10KB.append('userId', 'user_0') FORM_10KB.append('action', 'create') -FORM_10KB.append('meta', stringifyJSON({ tags: ['a', 'b'], dryRun: false })!) +FORM_10KB.append('meta', stringifyJSON({ tags: ['a', 'b'], dryRun: false })) FORM_10KB.append('note', 'hello world') { const fileSize = SIZE_10KB - formContentSize(FORM_10KB) @@ -90,8 +90,8 @@ export const USP_10KB = new URLSearchParams({ /** Events totaling 10KB of stringified JSON. */ function makeEvents(size: number): object[] { const parts: object[] = [PAYLOAD_UNIT, PAYLOAD_UNIT, PAYLOAD_UNIT, { type: 'pad', text: '' }] - const core = parts.slice(0, -1).reduce((n, p) => n + stringifyJSON(p)!.length, 0) - const padBase = stringifyJSON({ type: 'pad', text: '' })!.length + const core = parts.slice(0, -1).reduce((n, p) => n + stringifyJSON(p).length, 0) + const padBase = stringifyJSON({ type: 'pad', text: '' }).length if (core + padBase > size) throw new Error(`event core ${core + padBase} > ${size}`) parts[parts.length - 1] = { type: 'pad', text: 'x'.repeat(size - core - padBase) } return parts diff --git a/benches/e2e.bench.ts b/benches/e2e.bench.ts index 82f897a4..1a589fe8 100644 --- a/benches/e2e.bench.ts +++ b/benches/e2e.bench.ts @@ -1,9 +1,9 @@ import { bench, describe } from 'vitest' -import { echoHandler, roundTrip } from './__shared__/client-server' -import { createFetchClientServer } from './__shared__/client-server.fetch' -import { createNodeClientServer } from './__shared__/client-server.node' -import { createPeerClientServer } from './__shared__/client-server.peer' +import { createFetchClientServer } from './__shared__/client-server.fetch.ts' +import { createNodeClientServer } from './__shared__/client-server.node.ts' +import { createPeerClientServer } from './__shared__/client-server.peer.ts' +import { echoHandler, roundTrip } from './__shared__/client-server.ts' import { asAsyncIteratorObject, asReadableStream, @@ -13,7 +13,7 @@ import { FORM_10KB, JSON_10KB, USP_10KB, -} from './__shared__/payloads' +} from './__shared__/payloads.ts' const adapters = [ ['node-adapter', createNodeClientServer], diff --git a/oxfmt.config.ts b/oxfmt.config.ts index d4174f6d..f2c85d56 100644 --- a/oxfmt.config.ts +++ b/oxfmt.config.ts @@ -1,6 +1,9 @@ import { defineConfig } from 'oxfmt' -import { middleapi } from 'uncheck/oxfmt' export default defineConfig({ - ...middleapi, + ignorePatterns: ['.agents/skills/**', '.claude/skills/**'], + semi: false, + singleQuote: true, + quoteProps: 'consistent', + sortImports: true, }) diff --git a/oxlint.config.ts b/oxlint.config.ts index 52d01e5c..6d9a7d28 100644 --- a/oxlint.config.ts +++ b/oxlint.config.ts @@ -1,9 +1,30 @@ import { defineConfig } from 'oxlint' -import { middleapi } from 'uncheck/oxlint' export default defineConfig({ - extends: [middleapi], + ignorePatterns: ['.agents/skills/**', '.claude/skills/**'], + options: { + typeAware: true, + typeCheck: true, + }, + categories: { + correctness: 'error', + suspicious: 'error', + }, + plugins: ['eslint', 'typescript', 'unicorn', 'oxc', 'import'], rules: { + 'typescript/no-unsafe-type-assertion': 'off', + 'no-underscore-dangle': 'off', + + 'eqeqeq': 'error', + 'guard-for-in': 'error', + 'no-prototype-builtins': 'error', + 'no-throw-literal': 'error', + 'prefer-promise-reject-errors': 'error', + 'no-console': ['error', { allow: ['warn', 'error'] }], + 'no-var': 'error', + 'prefer-const': 'error', + 'typescript/no-import-type-side-effects': 'error', + 'unicorn/prefer-node-protocol': 'error', 'no-restricted-properties': [ 'error', { @@ -43,19 +64,13 @@ export default defineConfig({ }, }, { - files: [ - '**/*.test.ts', - '**/*.test.tsx', - '**/*.test-d.ts', - '**/*.test-d.tsx', - 'playgrounds/**', - 'packages/*/playground/**', - ], + files: ['**/*.test.ts', '**/*.test-d.ts', 'playgrounds/**'], rules: { 'no-unused-vars': 'off', 'no-restricted-properties': 'off', - 'no-restricted-globals': 'off', 'no-console': 'off', + 'no-shadow': 'off', + 'unicorn/consistent-function-scoping': 'off', }, }, ], diff --git a/package.json b/package.json index e169f5b4..600b333d 100644 --- a/package.json +++ b/package.json @@ -5,13 +5,14 @@ "license": "MIT", "type": "module", "scripts": { - "prepare": "uncheck prepare --pre-commit", - "check": "uncheck", - "fix": "uncheck --fix", + "check": "oxlint", + "fix": "oxlint --fix", + "format": "oxfmt", + "repo:fix": "sherif --fix", "test": "pnpm run -r test && vitest run", "test:coverage": "pnpm run -r test && vitest run --coverage", "bench": "vitest bench --run", - "sponsors:sync": "node scripts/sync-sponsors.ts && pnpm run fix '**/README.md'" + "sponsors:sync": "node scripts/sync-sponsors.ts && oxfmt '**/README.md'" }, "devDependencies": { "@codspeed/vitest-plugin": "^5.7.1", @@ -34,23 +35,16 @@ "express4": "npm:express@^4.22.3", "fastify": "^5.12.5", "h3": "2.0.2", - "oxfmt": "^0.72.0", - "oxlint": "^1.87.0", + "oxfmt": "^0.76.0", + "oxlint": "^1.91.0", + "oxlint-tsgolint": "^7.0.2005", "pkg-pr-new": "^0.0.91", "selfsigned": "^5.5.0", "sherif": "^1.13.0", "srvx": "^1.0.5", - "typescript": "^6.0.3", - "unbuild": "^3.6.1", - "uncheck": "^0.1.1", + "typescript": "^7.0.2", "vitest": "^4.1.10", "ws": "^8.22.0" }, - "devEngines": { - "packageManager": { - "name": "pnpm", - "version": "^12.4.1", - "onFail": "download" - } - } + "packageManager": "pnpm@12.16.1" } diff --git a/packages/aws-lambda/package.json b/packages/aws-lambda/package.json index 0274cce2..1194e14e 100644 --- a/packages/aws-lambda/package.json +++ b/packages/aws-lambda/package.json @@ -39,14 +39,14 @@ "exports": { "./package.json": "./package.json", ".": { - "types": "./dist/index.d.mts", - "import": "./dist/index.mjs", - "default": "./dist/index.mjs" + "types": "./dist/index.d.ts", + "import": "./dist/index.js", + "default": "./dist/index.js" } } }, "scripts": { - "prepack": "unbuild" + "prepack": "tsc" }, "dependencies": { "@standard-server/core": "workspace:*", diff --git a/packages/aws-lambda/src/body.test.ts b/packages/aws-lambda/src/body.test.ts index cc5ba846..55d1a206 100644 --- a/packages/aws-lambda/src/body.test.ts +++ b/packages/aws-lambda/src/body.test.ts @@ -2,8 +2,8 @@ import { Buffer } from 'node:buffer' import type { AsyncIteratorClass } from '@standard-server/shared' -import { toStandardBody } from './body' -import type { AnyAPIGatewayProxyEvent, APIGatewayProxyEvent } from './types' +import { toStandardBody } from './body.ts' +import type { AnyAPIGatewayProxyEvent, APIGatewayProxyEvent } from './types.ts' function event(override: Partial): APIGatewayProxyEvent { return { diff --git a/packages/aws-lambda/src/body.ts b/packages/aws-lambda/src/body.ts index 4d59f318..0055aad9 100644 --- a/packages/aws-lambda/src/body.ts +++ b/packages/aws-lambda/src/body.ts @@ -9,8 +9,8 @@ import { import { toAsyncIteratorObject } from '@standard-server/fetch' import { parseEmptyableJSON } from '@standard-server/shared' -import { toStandardHeaders } from './headers' -import type { AnyAPIGatewayProxyEvent } from './types' +import { toStandardHeaders } from './headers.ts' +import type { AnyAPIGatewayProxyEvent } from './types.ts' export interface ToStandardBodyOptions { /** diff --git a/packages/aws-lambda/src/headers.test.ts b/packages/aws-lambda/src/headers.test.ts index ea637356..582c4f8c 100644 --- a/packages/aws-lambda/src/headers.test.ts +++ b/packages/aws-lambda/src/headers.test.ts @@ -1,4 +1,4 @@ -import { toLambdaHeaders, toStandardHeaders } from './headers' +import { toLambdaHeaders, toStandardHeaders } from './headers.ts' describe('toStandardHeaders (v2)', () => { it('lowercases keys and restores the cookie header', () => { diff --git a/packages/aws-lambda/src/headers.ts b/packages/aws-lambda/src/headers.ts index c812f019..8284ca24 100644 --- a/packages/aws-lambda/src/headers.ts +++ b/packages/aws-lambda/src/headers.ts @@ -1,7 +1,7 @@ import type { StandardHeaders } from '@standard-server/core' import { toArray } from '@standard-server/shared' -import type { AnyAPIGatewayProxyEvent } from './types' +import type { AnyAPIGatewayProxyEvent } from './types.ts' /** * Convert API Gateway proxy event headers to standard headers. diff --git a/packages/aws-lambda/src/index.test.ts b/packages/aws-lambda/src/index.test.ts index dc72b5c8..cb0182e3 100644 --- a/packages/aws-lambda/src/index.test.ts +++ b/packages/aws-lambda/src/index.test.ts @@ -1,4 +1,4 @@ -import * as index from '.' +import * as index from './index.ts' it('export something', () => { expect(Object.keys(index).length).toBeGreaterThan(0) diff --git a/packages/aws-lambda/src/index.ts b/packages/aws-lambda/src/index.ts index edd37a89..4ab0d9a5 100644 --- a/packages/aws-lambda/src/index.ts +++ b/packages/aws-lambda/src/index.ts @@ -1,6 +1,6 @@ -export * from './body' -export * from './headers' -export * from './request' -export * from './response' -export * from './types' -export * from './url' +export * from './body.ts' +export * from './headers.ts' +export * from './request.ts' +export * from './response.ts' +export * from './types.ts' +export * from './url.ts' diff --git a/packages/aws-lambda/src/request.test.ts b/packages/aws-lambda/src/request.test.ts index b423dc9e..8fdf4b7c 100644 --- a/packages/aws-lambda/src/request.test.ts +++ b/packages/aws-lambda/src/request.test.ts @@ -2,11 +2,11 @@ import Stream from 'node:stream' import * as StandardServerNode from '@standard-server/node' -import * as Body from './body' -import * as Headers from './headers' -import { toStandardLazyRequest } from './request' -import type { APIGatewayProxyEvent, APIGatewayProxyEventV2, HttpResponseStream } from './types' -import * as Url from './url' +import * as Body from './body.ts' +import * as Headers from './headers.ts' +import { toStandardLazyRequest } from './request.ts' +import type { APIGatewayProxyEvent, APIGatewayProxyEventV2, HttpResponseStream } from './types.ts' +import * as Url from './url.ts' const toStandardBodySpy = vi.spyOn(Body, 'toStandardBody') const toStandardHeadersSpy = vi.spyOn(Headers, 'toStandardHeaders') diff --git a/packages/aws-lambda/src/request.ts b/packages/aws-lambda/src/request.ts index 1bef11f1..7d05f117 100644 --- a/packages/aws-lambda/src/request.ts +++ b/packages/aws-lambda/src/request.ts @@ -1,10 +1,10 @@ import type { StandardLazyRequest } from '@standard-server/core' import { toAbortSignal } from '@standard-server/node' -import { toStandardBody } from './body' -import { toStandardHeaders } from './headers' -import type { AnyAPIGatewayProxyEvent, HttpResponseStream } from './types' -import { toStandardUrl } from './url' +import { toStandardBody } from './body.ts' +import { toStandardHeaders } from './headers.ts' +import type { AnyAPIGatewayProxyEvent, HttpResponseStream } from './types.ts' +import { toStandardUrl } from './url.ts' /** * Convert an API Gateway proxy event to a standard lazy request. diff --git a/packages/aws-lambda/src/response.test.ts b/packages/aws-lambda/src/response.test.ts index ce36c6fe..48872f86 100644 --- a/packages/aws-lambda/src/response.test.ts +++ b/packages/aws-lambda/src/response.test.ts @@ -4,8 +4,8 @@ import Stream from 'node:stream' import type { StandardResponse } from '@standard-server/core' import * as StandardServerNode from '@standard-server/node' -import { sendStandardResponse } from './response' -import type { HttpResponseStream } from './types' +import { sendStandardResponse } from './response.ts' +import type { HttpResponseStream } from './types.ts' const toNodeHttpBodySpy = vi.spyOn(StandardServerNode, 'toNodeHttpBody') @@ -335,7 +335,7 @@ describe('sendStandardResponse', () => { expect(responseStream.errored).toBe(error) const [resBody] = toNodeHttpBodySpy.mock.results[0]!.value - expect((resBody as any).destroyed).toBe(true) + expect(resBody.destroyed).toBe(true) }) describe('response stream closed before sending', () => { diff --git a/packages/aws-lambda/src/response.ts b/packages/aws-lambda/src/response.ts index 770edfc9..9a4c979a 100644 --- a/packages/aws-lambda/src/response.ts +++ b/packages/aws-lambda/src/response.ts @@ -8,8 +8,8 @@ import { toNodeHttpBody, } from '@standard-server/node' -import { toLambdaHeaders } from './headers' -import type { AwsLambdaGlobal, HttpResponseStream } from './types' +import { toLambdaHeaders } from './headers.ts' +import type { AwsLambdaGlobal, HttpResponseStream } from './types.ts' /** * Injected by the Lambda runtime when response streaming is enabled. diff --git a/packages/aws-lambda/src/types.test-d.ts b/packages/aws-lambda/src/types.test-d.ts index 09d8d605..259d7e77 100644 --- a/packages/aws-lambda/src/types.test-d.ts +++ b/packages/aws-lambda/src/types.test-d.ts @@ -5,7 +5,7 @@ import type { APIGatewayProxyEvent, APIGatewayProxyEventV2, HttpResponseStream, -} from './types' +} from './types.ts' it('APIGatewayProxyEvent', () => { expectTypeOf().toExtend() diff --git a/packages/aws-lambda/src/url.test.ts b/packages/aws-lambda/src/url.test.ts index 2a1335c5..833c1413 100644 --- a/packages/aws-lambda/src/url.test.ts +++ b/packages/aws-lambda/src/url.test.ts @@ -1,4 +1,4 @@ -import { toStandardUrl } from './url' +import { toStandardUrl } from './url.ts' describe('toStandardUrl (v2)', () => { it('works without query string', () => { @@ -98,7 +98,7 @@ describe('toStandardUrl (v1)', () => { path: '/example', multiValueQueryStringParameters: { 'a key': ['a value&=#'] }, }), - ).toBe(`/example?${new URLSearchParams({ 'a key': 'a value&=#' })}`) + ).toBe(`/example?${new URLSearchParams({ 'a key': 'a value&=#' }).toString()}`) }) it('ignores empty query containers', () => { diff --git a/packages/aws-lambda/src/url.ts b/packages/aws-lambda/src/url.ts index 0bf6f54b..39b78a92 100644 --- a/packages/aws-lambda/src/url.ts +++ b/packages/aws-lambda/src/url.ts @@ -1,7 +1,7 @@ import type { StandardUrl } from '@standard-server/core' import { safeEncodeURIComponent } from '@standard-server/shared' -import type { AnyAPIGatewayProxyEvent } from './types' +import type { AnyAPIGatewayProxyEvent } from './types.ts' const UNENCODED_PATH_CHAR_RE = /[\0-\x20"#<>?^`{}\x7F-\u{10FFFF}]/gu diff --git a/packages/aws-lambda/tsconfig.json b/packages/aws-lambda/tsconfig.json index 30ce573e..f8698a1c 100644 --- a/packages/aws-lambda/tsconfig.json +++ b/packages/aws-lambda/tsconfig.json @@ -1,17 +1,7 @@ { - "extends": "uncheck/tsconfig/middleapi/lib", + "extends": "../../tsconfig.lib.json", "compilerOptions": { - "lib": ["ES2022", "DOM", "DOM.Iterable"], + "lib": ["ES2022"], "types": ["node"] - }, - "references": [{ "path": "../node" }], - "include": ["./package.json", "src"], - "exclude": [ - "**/*.test.*", - "**/*.test-d.ts", - "**/*.bench.*", - "**/__tests__/**", - "**/__mocks__/**", - "**/__snapshots__/**" - ] + } } diff --git a/packages/core/package.json b/packages/core/package.json index aa9fc020..bf38ca73 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -40,14 +40,14 @@ "exports": { "./package.json": "./package.json", ".": { - "types": "./dist/index.d.mts", - "import": "./dist/index.mjs", - "default": "./dist/index.mjs" + "types": "./dist/index.d.ts", + "import": "./dist/index.js", + "default": "./dist/index.js" } } }, "scripts": { - "prepack": "unbuild" + "prepack": "tsc" }, "dependencies": { "@standard-server/shared": "workspace:*" diff --git a/packages/core/src/event-stream/decoder.test.ts b/packages/core/src/event-stream/decoder.test.ts index 15d3ae36..30dfcab2 100644 --- a/packages/core/src/event-stream/decoder.test.ts +++ b/packages/core/src/event-stream/decoder.test.ts @@ -1,5 +1,9 @@ -import { decodeEventStreamMessage, EventStreamDecoder, EventStreamDecoderStream } from './decoder' -import type { EventStreamMessage } from './types' +import { + decodeEventStreamMessage, + EventStreamDecoder, + EventStreamDecoderStream, +} from './decoder.ts' +import type { EventStreamMessage } from './types.ts' function feedAll(chunks: string[]): EventStreamMessage[] { const events: EventStreamMessage[] = [] @@ -453,7 +457,7 @@ describe('eventStreamDecoderStream', () => { vi.resetModules() }) - const module = await import('./decoder') + const module = await import('./decoder.ts') expect(module.EventStreamDecoderStream).toBeDefined() expect(module.decodeEventStreamMessage('data: hello\n\n')).toEqual({ diff --git a/packages/core/src/event-stream/decoder.ts b/packages/core/src/event-stream/decoder.ts index e372d9fe..363acdad 100644 --- a/packages/core/src/event-stream/decoder.ts +++ b/packages/core/src/event-stream/decoder.ts @@ -1,6 +1,6 @@ -import { isEventStreamMessageId, isEventStreamMessageRetry } from './encoder' -import { EventStreamDecoderError } from './error' -import type { EventStreamMessage } from './types' +import { isEventStreamMessageId, isEventStreamMessageRetry } from './encoder.ts' +import { EventStreamDecoderError } from './error.ts' +import type { EventStreamMessage } from './types.ts' // A line ending is CR, LF or CRLF. const LINE_ENDING_REGEX = /\r\n?|\n/ diff --git a/packages/core/src/event-stream/encoder.test.ts b/packages/core/src/event-stream/encoder.test.ts index 91ecf235..ac7cf7e0 100644 --- a/packages/core/src/event-stream/encoder.test.ts +++ b/packages/core/src/event-stream/encoder.test.ts @@ -1,4 +1,4 @@ -import { decodeEventStreamMessage } from './decoder' +import { decodeEventStreamMessage } from './decoder.ts' import { assertEventStreamMessageComment, assertEventStreamMessageId, @@ -10,8 +10,8 @@ import { isEventStreamMessageComment, isEventStreamMessageId, isEventStreamMessageRetry, -} from './encoder' -import type { EventStreamMessage } from './types' +} from './encoder.ts' +import type { EventStreamMessage } from './types.ts' describe('predicates', () => { it('accept valid values', () => { diff --git a/packages/core/src/event-stream/encoder.ts b/packages/core/src/event-stream/encoder.ts index 3b97f4bd..3447a3bc 100644 --- a/packages/core/src/event-stream/encoder.ts +++ b/packages/core/src/event-stream/encoder.ts @@ -1,5 +1,5 @@ -import { EventStreamEncoderError } from './error' -import type { EventStreamMessage } from './types' +import { EventStreamEncoderError } from './error.ts' +import type { EventStreamMessage } from './types.ts' const EVENT_STREAM_LINE_ENDING_REGEX = /\r\n|[\n\r]/ const EVENT_STREAM_LINE_ENDING_GLOBAL_REGEX = /\r\n|[\n\r]/g diff --git a/packages/core/src/event-stream/error.test.ts b/packages/core/src/event-stream/error.test.ts index a8a11056..3a11a080 100644 --- a/packages/core/src/event-stream/error.test.ts +++ b/packages/core/src/event-stream/error.test.ts @@ -1,4 +1,4 @@ -import { ErrorEvent } from './error' +import { ErrorEvent } from './error.ts' it('errorEvent', () => { const errorEvent = new ErrorEvent('data', { cause: 'cause' }) diff --git a/packages/core/src/event-stream/index.ts b/packages/core/src/event-stream/index.ts index 5ebd0768..4224be0d 100644 --- a/packages/core/src/event-stream/index.ts +++ b/packages/core/src/event-stream/index.ts @@ -1,5 +1,5 @@ -export * from './decoder' -export * from './encoder' -export * from './error' -export * from './meta' -export * from './types' +export * from './decoder.ts' +export * from './encoder.ts' +export * from './error.ts' +export * from './meta.ts' +export * from './types.ts' diff --git a/packages/core/src/event-stream/meta.test.ts b/packages/core/src/event-stream/meta.test.ts index 0b51e318..c9ac2a99 100644 --- a/packages/core/src/event-stream/meta.test.ts +++ b/packages/core/src/event-stream/meta.test.ts @@ -1,4 +1,4 @@ -import { getEventMeta, unwrapEvent, withEventMeta } from './meta' +import { getEventMeta, unwrapEvent, withEventMeta } from './meta.ts' it('get/withEventMeta', () => { const data = { value: 123, meta: undefined } diff --git a/packages/core/src/event-stream/meta.ts b/packages/core/src/event-stream/meta.ts index 5e923964..d8b142f5 100644 --- a/packages/core/src/event-stream/meta.ts +++ b/packages/core/src/event-stream/meta.ts @@ -4,8 +4,8 @@ import { assertEventStreamMessageComment, assertEventStreamMessageId, assertEventStreamMessageRetry, -} from './encoder' -import type { EventMeta } from './types' +} from './encoder.ts' +import type { EventMeta } from './types.ts' const EVENT_META_SYMBOL = Symbol.for('STANDARD_SERVER_EVENT_META') const EVENT_SOURCE_SYMBOL = Symbol.for('STANDARD_SERVER_EVENT_SOURCE') diff --git a/packages/core/src/index.test.ts b/packages/core/src/index.test.ts index dc72b5c8..cb0182e3 100644 --- a/packages/core/src/index.test.ts +++ b/packages/core/src/index.test.ts @@ -1,4 +1,4 @@ -import * as index from '.' +import * as index from './index.ts' it('export something', () => { expect(Object.keys(index).length).toBeGreaterThan(0) diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index c229f14a..020a465e 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -1,4 +1,4 @@ -export * from './event-stream' -export * from './types' -export * from './utils' -export * from './validators' +export * from './event-stream/index.ts' +export * from './types.ts' +export * from './utils.ts' +export * from './validators.ts' diff --git a/packages/core/src/types.ts b/packages/core/src/types.ts index 9ee6b1ee..946199fd 100644 --- a/packages/core/src/types.ts +++ b/packages/core/src/types.ts @@ -28,14 +28,18 @@ export type StandardBodyHint = | 'file' // binary - file is also a blob (any content-type) | 'none' // undefined (any content-type) -export type StandardBody = - | unknown // application/json - | URLSearchParams // x-www-form-urlencoded - | FormData // multipart/form-data - | AsyncIterator // text/event-stream - | ReadableStream> // generic binary stream (any content-type) - | Blob // binary - file is also a blob (any content-type) - | undefined // empty (any content-type) +/** + * A parsed body. Its shape depends on the content type: + * + * - JSON value: `application/json` + * - `URLSearchParams`: `application/x-www-form-urlencoded` + * - `FormData`: `multipart/form-data` + * - `AsyncIterator`: `text/event-stream` + * - `ReadableStream>`: generic binary stream (any content-type) + * - `Blob`: binary, a file is also a blob (any content-type) + * - `undefined`: empty (any content-type) + */ +export type StandardBody = unknown export interface StandardRequest { /** @@ -53,7 +57,7 @@ export interface StandardRequest { /** * The body has been parsed based on the content headers. */ - body?: StandardBody | undefined + body?: StandardBody /** * An AbortSignal to communicate aborting of request. */ @@ -69,7 +73,7 @@ export interface StandardLazyRequest extends Omit { * * Calling this method may consume the underlying stream. */ - resolveBody: (hint?: StandardBodyHint | undefined) => Promise + resolveBody: (hint?: StandardBodyHint) => Promise } export interface StandardResponse { @@ -84,7 +88,7 @@ export interface StandardResponse { /** * The body has been parsed based on the content headers. */ - body?: StandardBody | undefined + body?: StandardBody } export interface StandardLazyResponse extends Omit { @@ -96,5 +100,5 @@ export interface StandardLazyResponse extends Omit { * * Calling this method may consume the underlying stream. */ - resolveBody: (hint?: StandardBodyHint | undefined) => Promise + resolveBody: (hint?: StandardBodyHint) => Promise } diff --git a/packages/core/src/utils.test.ts b/packages/core/src/utils.test.ts index 99a590c0..8dff34ae 100644 --- a/packages/core/src/utils.test.ts +++ b/packages/core/src/utils.test.ts @@ -9,7 +9,7 @@ import { mergeStandardHeaders, parseStandardUrl, resolveStandardBodyHint, -} from './utils' +} from './utils.ts' beforeEach(() => { vi.clearAllMocks() diff --git a/packages/core/src/utils.ts b/packages/core/src/utils.ts index 73aefdf2..33eeea7f 100644 --- a/packages/core/src/utils.ts +++ b/packages/core/src/utils.ts @@ -5,7 +5,7 @@ import { toArray, } from '@standard-server/shared' -import type { StandardBody, StandardBodyHint, StandardHeaders, StandardUrl } from './types' +import type { StandardBody, StandardBodyHint, StandardHeaders, StandardUrl } from './types.ts' const FALLBACK_FILENAME_UNSAFE_CHAR_REGEX = /[^\x20-\x7E]|[;=]/g const QUOTED_STRING_SPECIAL_CHAR_REGEX = /[\\"]/g diff --git a/packages/core/src/validators.test.ts b/packages/core/src/validators.test.ts index f983d3bc..09deff37 100644 --- a/packages/core/src/validators.test.ts +++ b/packages/core/src/validators.test.ts @@ -5,7 +5,7 @@ import { isStandardResponse, isStandardStatus, isStandardUrl, -} from './validators' +} from './validators.ts' describe('isStandardMethod', () => { it('accepts standard & custom HTTP verbs', () => { diff --git a/packages/core/src/validators.ts b/packages/core/src/validators.ts index 2a6abeeb..db6714e2 100644 --- a/packages/core/src/validators.ts +++ b/packages/core/src/validators.ts @@ -6,7 +6,7 @@ import type { StandardRequest, StandardResponse, StandardUrl, -} from './types' +} from './types.ts' export function isStandardMethod(maybe: unknown): maybe is StandardMethod { return typeof maybe === 'string' diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json index 56dd04cb..9979a071 100644 --- a/packages/core/tsconfig.json +++ b/packages/core/tsconfig.json @@ -1,16 +1,3 @@ { - "extends": "uncheck/tsconfig/middleapi/lib", - "compilerOptions": { - "lib": ["ES2022", "DOM", "DOM.Iterable"] - }, - "references": [{ "path": "../shared" }], - "include": ["./package.json", "src"], - "exclude": [ - "**/*.test.*", - "**/*.test-d.ts", - "**/*.bench.*", - "**/__tests__/**", - "**/__mocks__/**", - "**/__snapshots__/**" - ] + "extends": "../../tsconfig.lib.json" } diff --git a/packages/fastify/package.json b/packages/fastify/package.json index 885c8ee0..1bbb7f2e 100644 --- a/packages/fastify/package.json +++ b/packages/fastify/package.json @@ -37,14 +37,14 @@ "exports": { "./package.json": "./package.json", ".": { - "types": "./dist/index.d.mts", - "import": "./dist/index.mjs", - "default": "./dist/index.mjs" + "types": "./dist/index.d.ts", + "import": "./dist/index.js", + "default": "./dist/index.js" } } }, "scripts": { - "prepack": "unbuild" + "prepack": "tsc" }, "dependencies": { "@standard-server/core": "workspace:*", diff --git a/packages/fastify/src/index.test.ts b/packages/fastify/src/index.test.ts index dc72b5c8..cb0182e3 100644 --- a/packages/fastify/src/index.test.ts +++ b/packages/fastify/src/index.test.ts @@ -1,4 +1,4 @@ -import * as index from '.' +import * as index from './index.ts' it('export something', () => { expect(Object.keys(index).length).toBeGreaterThan(0) diff --git a/packages/fastify/src/index.ts b/packages/fastify/src/index.ts index 47b63ba4..10541367 100644 --- a/packages/fastify/src/index.ts +++ b/packages/fastify/src/index.ts @@ -1,3 +1,3 @@ -export * from './request' -export * from './response' -export * from './types' +export * from './request.ts' +export * from './response.ts' +export * from './types.ts' diff --git a/packages/fastify/src/request.test.ts b/packages/fastify/src/request.test.ts index c7048dbb..d3034c55 100644 --- a/packages/fastify/src/request.test.ts +++ b/packages/fastify/src/request.test.ts @@ -3,7 +3,7 @@ import * as StandardServerNode from '@standard-server/node' import Fastify from 'fastify' import request from 'supertest' -import { toStandardLazyRequest } from './request' +import { toStandardLazyRequest } from './request.ts' const toStandardBodySpy = vi.spyOn(StandardServerNode, 'toStandardBody') const toStandardMethodSpy = vi.spyOn(StandardServerNode, 'toStandardMethod') diff --git a/packages/fastify/src/request.ts b/packages/fastify/src/request.ts index dc10e147..5c6c7fe2 100644 --- a/packages/fastify/src/request.ts +++ b/packages/fastify/src/request.ts @@ -6,7 +6,7 @@ import { toStandardUrl, } from '@standard-server/node' -import type { AnyFastifyReply, AnyFastifyRequest } from './types' +import type { AnyFastifyReply, AnyFastifyRequest } from './types.ts' export function toStandardLazyRequest( req: AnyFastifyRequest, diff --git a/packages/fastify/src/response.test.ts b/packages/fastify/src/response.test.ts index efba3a74..ba1d5877 100644 --- a/packages/fastify/src/response.test.ts +++ b/packages/fastify/src/response.test.ts @@ -7,7 +7,7 @@ import * as StandardServerNode from '@standard-server/node' import Fastify from 'fastify' import request from 'supertest' -import { sendStandardResponse } from './response' +import { sendStandardResponse } from './response.ts' const toNodeHttpBodySpy = vi.spyOn(StandardServerNode, 'toNodeHttpBody') diff --git a/packages/fastify/src/response.ts b/packages/fastify/src/response.ts index cdfd16da..72ed7dff 100644 --- a/packages/fastify/src/response.ts +++ b/packages/fastify/src/response.ts @@ -8,7 +8,7 @@ import { toNodeHttpBody, } from '@standard-server/node' -import type { AnyFastifyReply } from './types' +import type { AnyFastifyReply } from './types.ts' export interface SendStandardResponseOptions extends ToNodeHttpBodyOptions {} diff --git a/packages/fastify/src/types.test-d.ts b/packages/fastify/src/types.test-d.ts index 3577b81b..087dfa34 100644 --- a/packages/fastify/src/types.test-d.ts +++ b/packages/fastify/src/types.test-d.ts @@ -2,7 +2,7 @@ import type { StandardHeaders } from '@standard-server/core' import type { NodeHttpRequest, NodeHttpResponse } from '@standard-server/node' import Fastify from 'fastify' -import type { AnyFastifyReply, AnyFastifyRequest } from './types' +import type { AnyFastifyReply, AnyFastifyRequest } from './types.ts' /** * Passing a concrete fastify request/reply here only compiles if the widened diff --git a/packages/fastify/tests/http2.test.ts b/packages/fastify/tests/http2.test.ts index 709b9260..14a0a6d0 100644 --- a/packages/fastify/tests/http2.test.ts +++ b/packages/fastify/tests/http2.test.ts @@ -3,7 +3,7 @@ import type { AddressInfo } from 'node:net' import Fastify from 'fastify' -import { sendStandardResponse, toStandardLazyRequest } from '../src' +import { sendStandardResponse, toStandardLazyRequest } from '../src/index.ts' /** * `@standard-server/node` supports both node http and http2, so the fastify adapter diff --git a/packages/fastify/tsconfig.json b/packages/fastify/tsconfig.json index 30ce573e..f8698a1c 100644 --- a/packages/fastify/tsconfig.json +++ b/packages/fastify/tsconfig.json @@ -1,17 +1,7 @@ { - "extends": "uncheck/tsconfig/middleapi/lib", + "extends": "../../tsconfig.lib.json", "compilerOptions": { - "lib": ["ES2022", "DOM", "DOM.Iterable"], + "lib": ["ES2022"], "types": ["node"] - }, - "references": [{ "path": "../node" }], - "include": ["./package.json", "src"], - "exclude": [ - "**/*.test.*", - "**/*.test-d.ts", - "**/*.bench.*", - "**/__tests__/**", - "**/__mocks__/**", - "**/__snapshots__/**" - ] + } } diff --git a/packages/fetch/package.json b/packages/fetch/package.json index 7f791e94..44e1b258 100644 --- a/packages/fetch/package.json +++ b/packages/fetch/package.json @@ -41,14 +41,14 @@ "exports": { "./package.json": "./package.json", ".": { - "types": "./dist/index.d.mts", - "import": "./dist/index.mjs", - "default": "./dist/index.mjs" + "types": "./dist/index.d.ts", + "import": "./dist/index.js", + "default": "./dist/index.js" } } }, "scripts": { - "prepack": "unbuild" + "prepack": "tsc" }, "dependencies": { "@standard-server/core": "workspace:*", diff --git a/packages/fetch/src/body.test.ts b/packages/fetch/src/body.test.ts index ad3e8072..cc30e97f 100644 --- a/packages/fetch/src/body.test.ts +++ b/packages/fetch/src/body.test.ts @@ -2,9 +2,9 @@ import type { StandardBody, StandardBodyHint } from '@standard-server/core' import * as StandardServerModule from '@standard-server/core' import { isAsyncIteratorObject } from '@standard-server/shared' -import { toFetchBody, toStandardBody } from './body' -import * as EventStreamModule from './event-stream' -import { toFetchHeaders } from './headers' +import { toFetchBody, toStandardBody } from './body.ts' +import * as EventStreamModule from './event-stream.ts' +import { toFetchHeaders } from './headers.ts' const generateContentDispositionSpy = vi.spyOn(StandardServerModule, 'generateContentDisposition') const getFilenameFromContentDispositionSpy = vi.spyOn( @@ -634,7 +634,7 @@ it.each([ }, { name: 'event-stream', - createBody: async function* gen() { + createBody: async function* gen(this: void) { yield 'order 1' yield { order: 2 } return { order: 3 } diff --git a/packages/fetch/src/body.ts b/packages/fetch/src/body.ts index bf7fd6af..7dbeb701 100644 --- a/packages/fetch/src/body.ts +++ b/packages/fetch/src/body.ts @@ -7,8 +7,8 @@ import { } from '@standard-server/core' import { isAsyncIteratorObject, parseEmptyableJSON, stringifyJSON } from '@standard-server/shared' -import type { ToEventStreamOptions } from './event-stream' -import { toAsyncIteratorObject, toEventStream } from './event-stream' +import type { ToEventStreamOptions } from './event-stream.ts' +import { toAsyncIteratorObject, toEventStream } from './event-stream.ts' export interface ToStandardBodyOptions { /** diff --git a/packages/fetch/src/event-stream.test.ts b/packages/fetch/src/event-stream.test.ts index ca0d7ca9..4e6a4b36 100644 --- a/packages/fetch/src/event-stream.test.ts +++ b/packages/fetch/src/event-stream.test.ts @@ -6,7 +6,7 @@ import { } from '@standard-server/core' import { isAsyncIteratorObject, sleep } from '@standard-server/shared' -import { toAsyncIteratorObject, toEventStream } from './event-stream' +import { toAsyncIteratorObject, toEventStream } from './event-stream.ts' beforeEach(() => { vi.clearAllMocks() @@ -431,7 +431,7 @@ describe('toEventStream', () => { await Promise.all([reader.read(), vi.advanceTimersByTimeAsync(10)]) - reader.read() + void reader.read() // start waiting for the error await vi.advanceTimersByTimeAsync(5) @@ -463,7 +463,7 @@ describe('toEventStream', () => { await Promise.all([reader.read(), vi.advanceTimersByTimeAsync(10)]) - reader.read() + void reader.read() // start waiting for the error await vi.advanceTimersByTimeAsync(5) diff --git a/packages/fetch/src/event-stream.ts b/packages/fetch/src/event-stream.ts index 4834147f..8e645112 100644 --- a/packages/fetch/src/event-stream.ts +++ b/packages/fetch/src/event-stream.ts @@ -135,7 +135,7 @@ export interface ToEventStreamOptions { } export function toEventStream( - iterator: AsyncIterator, + iterator: AsyncIterator, options: ToEventStreamOptions = {}, ): ReadableStream> { const keepAliveEnabled = options.keepAlive?.enabled ?? true diff --git a/packages/fetch/src/headers.test.ts b/packages/fetch/src/headers.test.ts index 5073d104..dd27498d 100644 --- a/packages/fetch/src/headers.test.ts +++ b/packages/fetch/src/headers.test.ts @@ -1,6 +1,6 @@ import type { StandardHeaders } from '@standard-server/core' -import { toFetchHeaders, toStandardHeaders } from './headers' +import { toFetchHeaders, toStandardHeaders } from './headers.ts' it('toStandardHeaders', () => { const headers = new Headers() diff --git a/packages/fetch/src/index.test.ts b/packages/fetch/src/index.test.ts index dc72b5c8..cb0182e3 100644 --- a/packages/fetch/src/index.test.ts +++ b/packages/fetch/src/index.test.ts @@ -1,4 +1,4 @@ -import * as index from '.' +import * as index from './index.ts' it('export something', () => { expect(Object.keys(index).length).toBeGreaterThan(0) diff --git a/packages/fetch/src/index.ts b/packages/fetch/src/index.ts index 372e73b5..7a47fd4c 100644 --- a/packages/fetch/src/index.ts +++ b/packages/fetch/src/index.ts @@ -1,6 +1,6 @@ -export * from './body' -export * from './event-stream' -export * from './headers' -export * from './request' -export * from './response' -export * from './url' +export * from './body.ts' +export * from './event-stream.ts' +export * from './headers.ts' +export * from './request.ts' +export * from './response.ts' +export * from './url.ts' diff --git a/packages/fetch/src/request.test.ts b/packages/fetch/src/request.test.ts index d7ff1f59..4c135669 100644 --- a/packages/fetch/src/request.test.ts +++ b/packages/fetch/src/request.test.ts @@ -1,7 +1,7 @@ -import * as Body from './body' -import * as Headers from './headers' -import { toStandardLazyRequest } from './request' -import * as Url from './url' +import * as Body from './body.ts' +import * as Headers from './headers.ts' +import { toStandardLazyRequest } from './request.ts' +import * as Url from './url.ts' const toStandardBodySpy = vi.spyOn(Body, 'toStandardBody') const toFetchBodySpy = vi.spyOn(Body, 'toFetchBody') diff --git a/packages/fetch/src/request.ts b/packages/fetch/src/request.ts index adc6ce57..20089f2e 100644 --- a/packages/fetch/src/request.ts +++ b/packages/fetch/src/request.ts @@ -1,8 +1,8 @@ import type { StandardLazyRequest } from '@standard-server/core' -import { toStandardBody } from './body' -import { toStandardHeaders } from './headers' -import { toStandardUrl } from './url' +import { toStandardBody } from './body.ts' +import { toStandardHeaders } from './headers.ts' +import { toStandardUrl } from './url.ts' /** * Convert a fetch request to a standard request. diff --git a/packages/fetch/src/response.test.ts b/packages/fetch/src/response.test.ts index a1279822..b05a0f0a 100644 --- a/packages/fetch/src/response.test.ts +++ b/packages/fetch/src/response.test.ts @@ -1,9 +1,9 @@ import type { StandardResponse } from '@standard-server/core' import { AsyncIteratorClass } from '@standard-server/shared' -import * as Body from './body' -import * as Headers from './headers' -import { toFetchResponse, toStandardLazyResponse } from './response' +import * as Body from './body.ts' +import * as Headers from './headers.ts' +import { toFetchResponse, toStandardLazyResponse } from './response.ts' const toFetchBodySpy = vi.spyOn(Body, 'toFetchBody') const toStandardBodySpy = vi.spyOn(Body, 'toStandardBody') diff --git a/packages/fetch/src/response.ts b/packages/fetch/src/response.ts index adf17523..b7b094ad 100644 --- a/packages/fetch/src/response.ts +++ b/packages/fetch/src/response.ts @@ -1,8 +1,8 @@ import type { StandardLazyResponse, StandardResponse } from '@standard-server/core' -import type { ToFetchBodyOptions } from './body' -import { toFetchBody, toStandardBody } from './body' -import { toFetchHeaders, toStandardHeaders } from './headers' +import type { ToFetchBodyOptions } from './body.ts' +import { toFetchBody, toStandardBody } from './body.ts' +import { toFetchHeaders, toStandardHeaders } from './headers.ts' export interface ToFetchResponseOptions extends ToFetchBodyOptions {} diff --git a/packages/fetch/src/url.test.ts b/packages/fetch/src/url.test.ts index a675f8ef..9549c635 100644 --- a/packages/fetch/src/url.test.ts +++ b/packages/fetch/src/url.test.ts @@ -1,4 +1,4 @@ -import { toStandardUrl } from './url' +import { toStandardUrl } from './url.ts' it('toStandardUrl', () => { expect(toStandardUrl(new URL('http://localhost:3000/'))).toBe('/') diff --git a/packages/fetch/tsconfig.json b/packages/fetch/tsconfig.json index d9a7e1d2..9979a071 100644 --- a/packages/fetch/tsconfig.json +++ b/packages/fetch/tsconfig.json @@ -1,16 +1,3 @@ { - "extends": "uncheck/tsconfig/middleapi/lib", - "compilerOptions": { - "lib": ["ES2022", "DOM", "DOM.Iterable"] - }, - "references": [{ "path": "../core" }, { "path": "../shared" }], - "include": ["./package.json", "src"], - "exclude": [ - "**/*.test.*", - "**/*.test-d.ts", - "**/*.bench.*", - "**/__tests__/**", - "**/__mocks__/**", - "**/__snapshots__/**" - ] + "extends": "../../tsconfig.lib.json" } diff --git a/packages/node/package.json b/packages/node/package.json index 6348426a..f88443f4 100644 --- a/packages/node/package.json +++ b/packages/node/package.json @@ -39,14 +39,14 @@ "exports": { "./package.json": "./package.json", ".": { - "types": "./dist/index.d.mts", - "import": "./dist/index.mjs", - "default": "./dist/index.mjs" + "types": "./dist/index.d.ts", + "import": "./dist/index.js", + "default": "./dist/index.js" } } }, "scripts": { - "prepack": "unbuild" + "prepack": "tsc" }, "dependencies": { "@standard-server/core": "workspace:*", diff --git a/packages/node/src/body.test.ts b/packages/node/src/body.test.ts index ae54d67b..d043bb77 100644 --- a/packages/node/src/body.test.ts +++ b/packages/node/src/body.test.ts @@ -10,10 +10,10 @@ import { toFetchHeaders } from '@standard-server/fetch' import { isAsyncIteratorObject } from '@standard-server/shared' import request from 'supertest' -import { toNodeHttpBody, toStandardBody } from './body' -import * as EventStreamModule from './event-stream' -import type { NodeHttpRequest } from './types' -import * as UtilsModule from './utils' +import { toNodeHttpBody, toStandardBody } from './body.ts' +import * as EventStreamModule from './event-stream.ts' +import type { NodeHttpRequest } from './types.ts' +import * as UtilsModule from './utils.ts' const toEventStreamSpy = vi.spyOn(EventStreamModule, 'toEventStream') const toWebReadableStreamSpy = vi.spyOn(UtilsModule, 'toWebReadableStream') @@ -29,7 +29,7 @@ beforeEach(() => { describe('toStandardBody', () => { it('json but empty body', async () => { - let standardBody: StandardBody = {} as any + let standardBody: StandardBody = {} await request(async (req: IncomingMessage, res: ServerResponse) => { standardBody = await toStandardBody(req) @@ -83,7 +83,7 @@ describe('toStandardBody', () => { }) it('json', async () => { - let standardBody: StandardBody = {} as any + let standardBody: StandardBody = {} await request(async (req: IncomingMessage, res: ServerResponse) => { standardBody = await toStandardBody(req) @@ -97,7 +97,7 @@ describe('toStandardBody', () => { }) it('json strips a leading BOM', async () => { - let standardBody: StandardBody = {} as any + let standardBody: StandardBody = {} await request(async (req: IncomingMessage, res: ServerResponse) => { standardBody = await toStandardBody(req) @@ -187,7 +187,7 @@ describe('toStandardBody', () => { }) it('prefer parsed body', async () => { - let standardBody: StandardBody = {} as any + let standardBody: StandardBody = {} await request(async (req: IncomingMessage, res: ServerResponse) => { // fake an upstream parser: consume the stream, then assign the parsed body @@ -525,7 +525,7 @@ describe('toStandardBody', () => { }) it('hint=none neither reads nor marks the body', async () => { - let none: StandardBody = {} as any + let none: StandardBody = {} let standardBody: StandardBody await request(async (req: IncomingMessage, res: ServerResponse) => { diff --git a/packages/node/src/body.ts b/packages/node/src/body.ts index 04008e26..94dbddd4 100644 --- a/packages/node/src/body.ts +++ b/packages/node/src/body.ts @@ -9,10 +9,10 @@ import { } from '@standard-server/core' import { isAsyncIteratorObject, parseEmptyableJSON, stringifyJSON } from '@standard-server/shared' -import type { ToEventStreamOptions } from './event-stream' -import { toAsyncIteratorObject, toEventStream } from './event-stream' -import type { NodeHttpRequest } from './types' -import { readableChunkToBytes, toWebReadableStream } from './utils' +import type { ToEventStreamOptions } from './event-stream.ts' +import { toAsyncIteratorObject, toEventStream } from './event-stream.ts' +import type { NodeHttpRequest } from './types.ts' +import { readableChunkToBytes, toWebReadableStream } from './utils.ts' export interface ToStandardBodyOptions { /** diff --git a/packages/node/src/event-stream.test.ts b/packages/node/src/event-stream.test.ts index 2a576c6a..170b7c9f 100644 --- a/packages/node/src/event-stream.test.ts +++ b/packages/node/src/event-stream.test.ts @@ -3,8 +3,8 @@ import { Readable } from 'node:stream' import * as FetchAdapter from '@standard-server/fetch' import { isAsyncIteratorObject } from '@standard-server/shared' -import { toAsyncIteratorObject, toEventStream } from './event-stream' -import * as UtilsModule from './utils' +import { toAsyncIteratorObject, toEventStream } from './event-stream.ts' +import * as UtilsModule from './utils.ts' const toAsyncIteratorObjectFetch = vi.spyOn(FetchAdapter, 'toAsyncIteratorObject') const toEventStreamFetch = vi.spyOn(FetchAdapter, 'toEventStream') diff --git a/packages/node/src/event-stream.ts b/packages/node/src/event-stream.ts index 28483f37..f0bdc770 100644 --- a/packages/node/src/event-stream.ts +++ b/packages/node/src/event-stream.ts @@ -7,7 +7,7 @@ import { } from '@standard-server/fetch' import type { AsyncIteratorClass } from '@standard-server/shared' -import { toWebReadableStream } from './utils' +import { toWebReadableStream } from './utils.ts' export function toAsyncIteratorObject(stream: Readable): AsyncIteratorClass { return toAsyncIteratorObjectFetch(toWebReadableStream(stream)) @@ -16,7 +16,7 @@ export function toAsyncIteratorObject(stream: Readable): AsyncIteratorClass, + iterator: AsyncIterator, options: ToEventStreamOptions = {}, ): Readable { return Readable.fromWeb(toEventStreamFetch(iterator, options)) diff --git a/packages/node/src/index.test.ts b/packages/node/src/index.test.ts index dc72b5c8..cb0182e3 100644 --- a/packages/node/src/index.test.ts +++ b/packages/node/src/index.test.ts @@ -1,4 +1,4 @@ -import * as index from '.' +import * as index from './index.ts' it('export something', () => { expect(Object.keys(index).length).toBeGreaterThan(0) diff --git a/packages/node/src/index.ts b/packages/node/src/index.ts index 0ab03144..4e2ddbc3 100644 --- a/packages/node/src/index.ts +++ b/packages/node/src/index.ts @@ -1,9 +1,9 @@ -export * from './body' -export * from './event-stream' -export * from './method' -export * from './request' -export * from './response' -export * from './signal' -export * from './types' -export * from './url' -export * from './utils' +export * from './body.ts' +export * from './event-stream.ts' +export * from './method.ts' +export * from './request.ts' +export * from './response.ts' +export * from './signal.ts' +export * from './types.ts' +export * from './url.ts' +export * from './utils.ts' diff --git a/packages/node/src/method.test.ts b/packages/node/src/method.test.ts index 066be945..1df7bcde 100644 --- a/packages/node/src/method.test.ts +++ b/packages/node/src/method.test.ts @@ -1,4 +1,4 @@ -import { toStandardMethod } from './method' +import { toStandardMethod } from './method.ts' it('toStandardMethod', () => { expect(toStandardMethod('GET')).toEqual('GET') diff --git a/packages/node/src/request.test.ts b/packages/node/src/request.test.ts index 8f409eb6..167667a7 100644 --- a/packages/node/src/request.test.ts +++ b/packages/node/src/request.test.ts @@ -3,9 +3,9 @@ import type { IncomingMessage, ServerResponse } from 'node:http' import type { StandardLazyRequest } from '@standard-server/core' import request from 'supertest' -import * as Body from './body' -import { toStandardLazyRequest } from './request' -import * as Signal from './signal' +import * as Body from './body.ts' +import { toStandardLazyRequest } from './request.ts' +import * as Signal from './signal.ts' const toStandardBodySpy = vi.spyOn(Body, 'toStandardBody') const toAbortSignalSpy = vi.spyOn(Signal, 'toAbortSignal') diff --git a/packages/node/src/request.ts b/packages/node/src/request.ts index 648d0ca5..ddc011a4 100644 --- a/packages/node/src/request.ts +++ b/packages/node/src/request.ts @@ -1,10 +1,10 @@ import type { StandardLazyRequest } from '@standard-server/core' -import { toStandardBody } from './body' -import { toStandardMethod } from './method' -import { toAbortSignal } from './signal' -import type { NodeHttpRequest, NodeHttpResponse } from './types' -import { toStandardUrl } from './url' +import { toStandardBody } from './body.ts' +import { toStandardMethod } from './method.ts' +import { toAbortSignal } from './signal.ts' +import type { NodeHttpRequest, NodeHttpResponse } from './types.ts' +import { toStandardUrl } from './url.ts' export function toStandardLazyRequest( req: NodeHttpRequest, diff --git a/packages/node/src/response.test.ts b/packages/node/src/response.test.ts index b80b8067..69ea05a9 100644 --- a/packages/node/src/response.test.ts +++ b/packages/node/src/response.test.ts @@ -10,8 +10,8 @@ import type { StandardResponse } from '@standard-server/core' import { promiseWithResolvers } from '@standard-server/shared' import request from 'supertest' -import * as Body from './body' -import { sendStandardResponse } from './response' +import * as Body from './body.ts' +import { sendStandardResponse } from './response.ts' const toNodeHttpBodySpy = vi.spyOn(Body, 'toNodeHttpBody') @@ -330,7 +330,7 @@ describe('sendStandardResponse', () => { expect(destroySpy).toHaveBeenCalledWith(thrownError) const [resBody] = toNodeHttpBodySpy.mock.results[0]!.value - expect((resBody as any).destroyed).toBe(true) + expect(resBody.destroyed).toBe(true) }) it('resolves without sending when headers were already flushed', async () => { diff --git a/packages/node/src/response.ts b/packages/node/src/response.ts index 9ca44309..e5f545d4 100644 --- a/packages/node/src/response.ts +++ b/packages/node/src/response.ts @@ -1,14 +1,14 @@ import type { StandardResponse } from '@standard-server/core' -import type { ToNodeHttpBodyOptions } from './body' -import { toNodeHttpBody } from './body' -import type { NodeHttpResponse } from './types' +import type { ToNodeHttpBodyOptions } from './body.ts' +import { toNodeHttpBody } from './body.ts' +import type { NodeHttpResponse } from './types.ts' import { canWriteToNodeResponse, destroyNodeHttpBody, getNodeResponseError, isNodeResponseDisconnectError, -} from './utils' +} from './utils.ts' export interface SendStandardResponseOptions extends ToNodeHttpBodyOptions {} diff --git a/packages/node/src/signal.test.ts b/packages/node/src/signal.test.ts index e765eab9..eff50bd3 100644 --- a/packages/node/src/signal.test.ts +++ b/packages/node/src/signal.test.ts @@ -3,7 +3,7 @@ import Stream from 'node:stream' import { AbortError } from '@standard-server/shared' -import { toAbortSignal } from './signal' +import { toAbortSignal } from './signal.ts' describe('toAbortSignal', async () => { it('on success', async () => { diff --git a/packages/node/src/signal.ts b/packages/node/src/signal.ts index 284de58f..2c6666c2 100644 --- a/packages/node/src/signal.ts +++ b/packages/node/src/signal.ts @@ -2,8 +2,8 @@ import type Stream from 'node:stream' import { AbortError } from '@standard-server/shared' -import type { NodeHttpResponse } from './types' -import { getNodeResponseError } from './utils' +import type { NodeHttpResponse } from './types.ts' +import { getNodeResponseError } from './utils.ts' export function toAbortSignal(res: Stream.Writable | NodeHttpResponse): AbortSignal { const controller = new AbortController() diff --git a/packages/node/src/url.test.ts b/packages/node/src/url.test.ts index c4917210..8e23484e 100644 --- a/packages/node/src/url.test.ts +++ b/packages/node/src/url.test.ts @@ -2,7 +2,7 @@ import http from 'node:http' import type { AddressInfo } from 'node:net' import net from 'node:net' -import { toStandardUrl } from './url' +import { toStandardUrl } from './url.ts' describe('toStandardUrl', () => { it('origin-form', () => { diff --git a/packages/node/src/url.ts b/packages/node/src/url.ts index 83c0e974..6230fe9e 100644 --- a/packages/node/src/url.ts +++ b/packages/node/src/url.ts @@ -1,7 +1,7 @@ import type { StandardUrl } from '@standard-server/core' import { toStandardUrl as toStandardUrlFetch } from '@standard-server/fetch' -import type { NodeHttpRequest } from './types' +import type { NodeHttpRequest } from './types.ts' export function toStandardUrl(req: Pick): StandardUrl { // prefer originalUrl over url, especially useful in express.js middleware diff --git a/packages/node/src/utils.test.ts b/packages/node/src/utils.test.ts index 84e2e00f..dc9f2d62 100644 --- a/packages/node/src/utils.test.ts +++ b/packages/node/src/utils.test.ts @@ -15,7 +15,7 @@ import { getNodeResponseError, isNodeResponseDisconnectError, toWebReadableStream, -} from './utils' +} from './utils.ts' describe('canWriteToNodeResponse', () => { it('on http1 response aborted by client', async ({ onTestFinished }) => { diff --git a/packages/node/src/utils.ts b/packages/node/src/utils.ts index f9fc74c2..c24f2a35 100644 --- a/packages/node/src/utils.ts +++ b/packages/node/src/utils.ts @@ -4,7 +4,7 @@ import { Http2ServerRequest } from 'node:http2' import type { Readable } from 'node:stream' import type Stream from 'node:stream' -import type { NodeHttpResponse } from './types' +import type { NodeHttpResponse } from './types.ts' /** * A cancel-safe alternative to `Readable.toWeb`. diff --git a/packages/node/tsconfig.json b/packages/node/tsconfig.json index 050a0073..f8698a1c 100644 --- a/packages/node/tsconfig.json +++ b/packages/node/tsconfig.json @@ -1,17 +1,7 @@ { - "extends": "uncheck/tsconfig/middleapi/lib", + "extends": "../../tsconfig.lib.json", "compilerOptions": { "lib": ["ES2022"], "types": ["node"] - }, - "references": [], // DON'T reference to DOM lib, because NODE and DOM types is conflict - "include": ["./package.json", "src"], - "exclude": [ - "**/*.test.*", - "**/*.test-d.ts", - "**/*.bench.*", - "**/__tests__/**", - "**/__mocks__/**", - "**/__snapshots__/**" - ] + } } diff --git a/packages/peer/package.json b/packages/peer/package.json index b5248704..6f09ef2c 100644 --- a/packages/peer/package.json +++ b/packages/peer/package.json @@ -38,14 +38,14 @@ "exports": { "./package.json": "./package.json", ".": { - "types": "./dist/index.d.mts", - "import": "./dist/index.mjs", - "default": "./dist/index.mjs" + "types": "./dist/index.d.ts", + "import": "./dist/index.js", + "default": "./dist/index.js" } } }, "scripts": { - "prepack": "unbuild" + "prepack": "tsc" }, "dependencies": { "@standard-server/core": "workspace:*", diff --git a/packages/peer/src/body.test.ts b/packages/peer/src/body.test.ts index 7eb7af4d..3449e1da 100644 --- a/packages/peer/src/body.test.ts +++ b/packages/peer/src/body.test.ts @@ -2,8 +2,8 @@ import type { StandardBody, StandardBodyHint, StandardHeaders } from '@standard- import { generateContentDisposition } from '@standard-server/core' import { AsyncIteratorClass, isAsyncIteratorObject, Queue } from '@standard-server/shared' -import { encodeAtomicStandardBody, toStandardBody } from './body' -import type { PeerRequestMessage } from './types' +import { encodeAtomicStandardBody, toStandardBody } from './body.ts' +import type { PeerRequestMessage } from './types.ts' describe('toStandardBody', () => { afterEach(() => { diff --git a/packages/peer/src/body.ts b/packages/peer/src/body.ts index c84a9e5f..311e3a95 100644 --- a/packages/peer/src/body.ts +++ b/packages/peer/src/body.ts @@ -7,14 +7,14 @@ import { import type { AsyncCleanupFn } from '@standard-server/shared' import { isAsyncIteratorObject, Queue } from '@standard-server/shared' -import { toAsyncIteratorObject } from './event-stream' -import { toOctetStream } from './octet-stream' +import { toAsyncIteratorObject } from './event-stream.ts' +import { toOctetStream } from './octet-stream.ts' import type { PeerEventStreamMessage, PeerOctetStreamMessage, PeerRequestMessage, PeerResponseMessage, -} from './types' +} from './types.ts' export interface ToStandardBodyResult { resolveBody: () => Promise diff --git a/packages/peer/src/client.test.ts b/packages/peer/src/client.test.ts index ffa8f8e3..4757b488 100644 --- a/packages/peer/src/client.test.ts +++ b/packages/peer/src/client.test.ts @@ -8,8 +8,8 @@ import { sleep, } from '@standard-server/shared' -import * as Body from './body' -import { ClientPeer } from './client' +import * as Body from './body.ts' +import { ClientPeer } from './client.ts' import type { ClientPeerSendMessage, PeerCancelMessage, @@ -18,7 +18,7 @@ import type { PeerRequestMessage, PeerResponseMessage, PeerStreamCancelMessage, -} from './types' +} from './types.ts' const toStandardBodySpy = vi.spyOn(Body, 'toStandardBody') @@ -113,7 +113,7 @@ describe('clientPeer', () => { async function waitForSend(n = 1): Promise { await vi.waitFor(() => expect(send.mock.calls.length).toBeGreaterThanOrEqual(n)) - const requestCall = send.mock.calls.find((c: any[]) => (c[0] as any).kind === 'request') + const requestCall = send.mock.calls.find((c: any[]) => c[0].kind === 'request') return (requestCall![0] as PeerRequestMessage).id } @@ -182,7 +182,7 @@ describe('clientPeer', () => { peer.message(makeStreamingResponse(id, 'octet-stream')), ]) - peer.message(makeOctetStreamMessage(id, true, new Uint8Array([1, 4]))) + void peer.message(makeOctetStreamMessage(id, true, new Uint8Array([1, 4]))) const response = await promise const body = (await response.resolveBody()) as ReadableStream diff --git a/packages/peer/src/client.ts b/packages/peer/src/client.ts index 79eb6d7c..9bd52bd0 100644 --- a/packages/peer/src/client.ts +++ b/packages/peer/src/client.ts @@ -9,15 +9,15 @@ import { throwIfAborted, } from '@standard-server/shared' -import { encodeAtomicStandardBody, toStandardBody } from './body' -import { EventStreamTransmitter } from './event-stream' -import { OctetStreamTransmitter } from './octet-stream' +import { encodeAtomicStandardBody, toStandardBody } from './body.ts' +import { EventStreamTransmitter } from './event-stream.ts' +import { OctetStreamTransmitter } from './octet-stream.ts' import type { ClientPeerSendMessage, PeerEventStreamMessage, PeerOctetStreamMessage, ServerPeerSendMessage, -} from './types' +} from './types.ts' interface ClientPeerRequestStateInternal { resolve?: ((response: StandardLazyResponse) => void) | undefined @@ -75,7 +75,7 @@ export class ClientPeer { state: ClientPeerRequestStateInternal, request: StandardRequest, ): Promise { - let untransmittedBody: StandardBody | undefined = request.body + let untransmittedBody: StandardBody = request.body let failure: unknown try { @@ -162,10 +162,11 @@ export class ClientPeer { if (message.kind === 'stream/cancel') { state.streamCancelled = true - const promise = Promise.all([ - state.eventStreamTransmitter?.cancel(), - state.octetStreamTransmitter?.cancel(), - ]) + const promise = Promise.all( + [state.eventStreamTransmitter, state.octetStreamTransmitter] + .filter((transmitter) => transmitter !== undefined) + .map((transmitter) => transmitter.cancel()), + ) state.eventStreamTransmitter = undefined state.octetStreamTransmitter = undefined @@ -266,10 +267,9 @@ export class ClientPeer { state.eventStreamMessageQueue = undefined state.octetStreamMessageQueue = undefined - const promises = [ - state.eventStreamTransmitter?.cancel(), - state.octetStreamTransmitter?.cancel(), - ] + const promises = [state.eventStreamTransmitter, state.octetStreamTransmitter] + .filter((transmitter) => transmitter !== undefined) + .map((transmitter) => transmitter.cancel()) state.eventStreamTransmitter = undefined state.octetStreamTransmitter = undefined @@ -299,11 +299,15 @@ export class ClientPeer { state.eventStreamMessageQueue = undefined state.octetStreamMessageQueue = undefined - const promises = [ - state.requestSent ? this.send({ id, kind: 'cancel' }) : undefined, - state.eventStreamTransmitter?.cancel(), - state.octetStreamTransmitter?.cancel(), - ] + const promises: Promise[] = [] + if (state.requestSent) { + promises.push(this.send({ id, kind: 'cancel' })) + } + for (const transmitter of [state.eventStreamTransmitter, state.octetStreamTransmitter]) { + if (transmitter) { + promises.push(transmitter.cancel()) + } + } state.eventStreamTransmitter = undefined state.octetStreamTransmitter = undefined diff --git a/packages/peer/src/codec.test.ts b/packages/peer/src/codec.test.ts index bad6302b..7e8db670 100644 --- a/packages/peer/src/codec.test.ts +++ b/packages/peer/src/codec.test.ts @@ -1,5 +1,5 @@ -import { decodePeerMessage, encodePeerMessage } from './codec' -import type { PeerMessage } from './types' +import { decodePeerMessage, encodePeerMessage } from './codec.ts' +import type { PeerMessage } from './types.ts' describe('codec', () => { it('handles simple message (JSON only)', async () => { diff --git a/packages/peer/src/codec.ts b/packages/peer/src/codec.ts index bb5908dc..22b1d207 100644 --- a/packages/peer/src/codec.ts +++ b/packages/peer/src/codec.ts @@ -1,7 +1,7 @@ import { stringifyJSON } from '@standard-server/shared' -import type { PeerMessage } from './types' -import { isPeerMessage } from './validators' +import type { PeerMessage } from './types.ts' +import { isPeerMessage } from './validators.ts' /** * Single-byte delimiter separating the JSON payload from trailing binary data. diff --git a/packages/peer/src/event-stream.test.ts b/packages/peer/src/event-stream.test.ts index dd9e2424..abec775b 100644 --- a/packages/peer/src/event-stream.test.ts +++ b/packages/peer/src/event-stream.test.ts @@ -1,8 +1,8 @@ import { ErrorEvent, unwrapEvent, withEventMeta } from '@standard-server/core' import { AsyncIteratorClass, Queue, sleep } from '@standard-server/shared' -import { EventStreamTransmitter, toAsyncIteratorObject } from './event-stream' -import type { PeerEventStreamMessage } from './types' +import { EventStreamTransmitter, toAsyncIteratorObject } from './event-stream.ts' +import type { PeerEventStreamMessage } from './types.ts' describe('toAsyncIteratorObject', () => { it('yields message events', async () => { diff --git a/packages/peer/src/event-stream.ts b/packages/peer/src/event-stream.ts index 919d6cb3..760a3fd2 100644 --- a/packages/peer/src/event-stream.ts +++ b/packages/peer/src/event-stream.ts @@ -2,7 +2,7 @@ import { ErrorEvent, unwrapEvent, withEventMeta } from '@standard-server/core' import type { AsyncCleanupFn, Queue } from '@standard-server/shared' import { AsyncIteratorClass, isTypescriptObject } from '@standard-server/shared' -import type { PeerEventStreamMessage } from './types' +import type { PeerEventStreamMessage } from './types.ts' export function toAsyncIteratorObject( queue: Queue, diff --git a/packages/peer/src/hibernation.test.ts b/packages/peer/src/hibernation.test.ts index 669a8317..5a3a2162 100644 --- a/packages/peer/src/hibernation.test.ts +++ b/packages/peer/src/hibernation.test.ts @@ -1,6 +1,6 @@ import { isAsyncIteratorObject } from '@standard-server/shared' -import { HibernationAsyncIteratorClass } from './hibernation' +import { HibernationAsyncIteratorClass } from './hibernation.ts' describe('hibernationAsyncIteratorClass', () => { it('is async iterator object', () => { @@ -22,7 +22,7 @@ describe('hibernationAsyncIteratorClass', () => { const callback = vi.fn() const iterator = new HibernationAsyncIteratorClass(callback) - iterator['~callback']?.('12344') + void iterator['~callback']?.('12344') expect(callback).toHaveBeenCalledWith('12344') expect(callback).toHaveBeenCalledTimes(1) diff --git a/packages/peer/src/index.test.ts b/packages/peer/src/index.test.ts index dc72b5c8..cb0182e3 100644 --- a/packages/peer/src/index.test.ts +++ b/packages/peer/src/index.test.ts @@ -1,4 +1,4 @@ -import * as index from '.' +import * as index from './index.ts' it('export something', () => { expect(Object.keys(index).length).toBeGreaterThan(0) diff --git a/packages/peer/src/index.ts b/packages/peer/src/index.ts index 304016c3..3020c123 100644 --- a/packages/peer/src/index.ts +++ b/packages/peer/src/index.ts @@ -1,7 +1,7 @@ -export * from './client' -export * from './codec' -export * from './event-stream' -export * from './hibernation' -export * from './server' -export * from './types' -export * from './validators' +export * from './client.ts' +export * from './codec.ts' +export * from './event-stream.ts' +export * from './hibernation.ts' +export * from './server.ts' +export * from './types.ts' +export * from './validators.ts' diff --git a/packages/peer/src/octet-stream.test.ts b/packages/peer/src/octet-stream.test.ts index f6f60a3c..601c8469 100644 --- a/packages/peer/src/octet-stream.test.ts +++ b/packages/peer/src/octet-stream.test.ts @@ -2,8 +2,8 @@ import { Buffer } from 'node:buffer' import { Queue, sleep } from '@standard-server/shared' -import { OctetStreamTransmitter, toOctetStream } from './octet-stream' -import type { PeerOctetStreamMessage } from './types' +import { OctetStreamTransmitter, toOctetStream } from './octet-stream.ts' +import type { PeerOctetStreamMessage } from './types.ts' describe('toOctetStream', () => { it('enqueues binary chunks and closes', async () => { diff --git a/packages/peer/src/octet-stream.ts b/packages/peer/src/octet-stream.ts index 2fe38a93..eea29fb5 100644 --- a/packages/peer/src/octet-stream.ts +++ b/packages/peer/src/octet-stream.ts @@ -1,6 +1,6 @@ import type { AsyncCleanupFn, Queue } from '@standard-server/shared' -import type { PeerOctetStreamMessage } from './types' +import type { PeerOctetStreamMessage } from './types.ts' export function toOctetStream( queue: Queue, diff --git a/packages/peer/src/server.test.ts b/packages/peer/src/server.test.ts index 72c4753a..7c617909 100644 --- a/packages/peer/src/server.test.ts +++ b/packages/peer/src/server.test.ts @@ -8,8 +8,8 @@ import { sleep, } from '@standard-server/shared' -import { HibernationAsyncIteratorClass } from './hibernation' -import { ServerPeer } from './server' +import { HibernationAsyncIteratorClass } from './hibernation.ts' +import { ServerPeer } from './server.ts' import type { PeerCancelMessage, PeerEventStreamMessage, @@ -18,7 +18,7 @@ import type { PeerResponseMessage, PeerStreamCancelMessage, ServerPeerSendMessage, -} from './types' +} from './types.ts' function makeRequestMessage( overrides: Partial = {}, @@ -897,7 +897,7 @@ describe('serverPeer', () => { it('uses custom reason when provided', async () => { const { handler, signals } = deferredHandler() - peer.message(makeRequestMessage(), handler) + void peer.message(makeRequestMessage(), handler) await vi.waitFor(() => expect(signals.length).toBe(1)) const customReason = new Error('custom close') diff --git a/packages/peer/src/server.ts b/packages/peer/src/server.ts index 648217dd..6fa92464 100644 --- a/packages/peer/src/server.ts +++ b/packages/peer/src/server.ts @@ -3,17 +3,17 @@ import { cancelStandardBody } from '@standard-server/core' import type { Queue } from '@standard-server/shared' import { AbortError, hasAnyDefinedValue, isAsyncIteratorObject } from '@standard-server/shared' -import { encodeAtomicStandardBody, toStandardBody } from './body' -import { EventStreamTransmitter } from './event-stream' -import { HibernationAsyncIteratorClass } from './hibernation' -import { OctetStreamTransmitter } from './octet-stream' +import { encodeAtomicStandardBody, toStandardBody } from './body.ts' +import { EventStreamTransmitter } from './event-stream.ts' +import { HibernationAsyncIteratorClass } from './hibernation.ts' +import { OctetStreamTransmitter } from './octet-stream.ts' import type { ClientPeerSendMessage, PeerEventStreamMessage, PeerOctetStreamMessage, PeerResponseMessage, ServerPeerSendMessage, -} from './types' +} from './types.ts' interface ServerPeerRequestStateInternal { controller?: AbortController | undefined @@ -62,7 +62,7 @@ export class ServerPeer { this.requests.set(id, state) const signal = controller.signal - let untransmittedBody: StandardBody | undefined + let untransmittedBody: StandardBody try { const decoded = toStandardBody(message, async ({ kind, error }) => { @@ -204,10 +204,9 @@ export class ServerPeer { state.eventStreamMessageQueue = undefined state.octetStreamMessageQueue = undefined - const promises = [ - state.eventStreamTransmitter?.cancel(), - state.octetStreamTransmitter?.cancel(), - ] + const promises = [state.eventStreamTransmitter, state.octetStreamTransmitter] + .filter((transmitter) => transmitter !== undefined) + .map((transmitter) => transmitter.cancel()) state.eventStreamTransmitter = undefined state.octetStreamTransmitter = undefined diff --git a/packages/peer/src/types.ts b/packages/peer/src/types.ts index 5861487f..683f169c 100644 --- a/packages/peer/src/types.ts +++ b/packages/peer/src/types.ts @@ -61,7 +61,7 @@ export interface PeerRequestMessage extends PeerMessage { /** * The JSON-parsed body of the request. */ - body?: undefined | StandardBody + body?: StandardBody } } @@ -92,7 +92,7 @@ export interface PeerResponseMessage extends PeerMessage { /** * The JSON-parsed body of the response. */ - body?: undefined | StandardBody + body?: StandardBody } } diff --git a/packages/peer/src/validators.test.ts b/packages/peer/src/validators.test.ts index ce37a332..4b405791 100644 --- a/packages/peer/src/validators.test.ts +++ b/packages/peer/src/validators.test.ts @@ -1,4 +1,4 @@ -import type { PeerMessage } from './types' +import type { PeerMessage } from './types.ts' import { isClientPeerSendMessage, isPeerCancelMessage, @@ -9,7 +9,7 @@ import { isPeerResponseMessage, isPeerStreamCancelMessage, isServerPeerSendMessage, -} from './validators' +} from './validators.ts' function base(overrides?: Partial): PeerMessage { return { id: 'abc', kind: 'request', ...overrides } diff --git a/packages/peer/src/validators.ts b/packages/peer/src/validators.ts index 778b0eb4..57ba735e 100644 --- a/packages/peer/src/validators.ts +++ b/packages/peer/src/validators.ts @@ -19,7 +19,7 @@ import type { PeerResponseMessage, PeerStreamCancelMessage, ServerPeerSendMessage, -} from './types' +} from './types.ts' export function isPeerMessage(maybe: unknown): maybe is PeerMessage { if (!isTypescriptObject(maybe)) { diff --git a/packages/peer/tests/peer.test.ts b/packages/peer/tests/peer.test.ts index aaee8ebd..23f0927f 100644 --- a/packages/peer/tests/peer.test.ts +++ b/packages/peer/tests/peer.test.ts @@ -4,14 +4,14 @@ import type { StandardLazyRequest, StandardResponse } from '@standard-server/cor import { cancelStandardBody, ErrorEvent, getEventMeta, withEventMeta } from '@standard-server/core' import { promiseWithResolvers, sleep } from '@standard-server/shared' -import type { ClientPeer, ServerPeer } from '../src' +import type { ClientPeer, ServerPeer } from '../src/index.ts' import { ClientPeer as ClientPeerClass, decodePeerMessage, encodePeerMessage, ServerPeer as ServerPeerClass, -} from '../src' -import type { ClientPeerSendMessage, ServerPeerSendMessage } from '../src/types' +} from '../src/index.ts' +import type { ClientPeerSendMessage, ServerPeerSendMessage } from '../src/types.ts' /** * Wires a ClientPeer and a ServerPeer together through the real codec, diff --git a/packages/peer/tsconfig.json b/packages/peer/tsconfig.json index 2a3c0f35..9979a071 100644 --- a/packages/peer/tsconfig.json +++ b/packages/peer/tsconfig.json @@ -1,16 +1,3 @@ { - "extends": "uncheck/tsconfig/middleapi/lib", - "compilerOptions": { - "lib": ["ES2022", "DOM", "DOM.Iterable"] - }, - "references": [{ "path": "../core" }, { "path": "../shared" }], - "include": ["./package.json", "src", "tests/peer.test.ts"], - "exclude": [ - "**/*.test.*", - "**/*.test-d.ts", - "**/*.bench.*", - "**/__tests__/**", - "**/__mocks__/**", - "**/__snapshots__/**" - ] + "extends": "../../tsconfig.lib.json" } diff --git a/packages/shared/package.json b/packages/shared/package.json index 6df89a7e..742d7b50 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -32,13 +32,13 @@ "exports": { "./package.json": "./package.json", ".": { - "types": "./dist/index.d.mts", - "import": "./dist/index.mjs", - "default": "./dist/index.mjs" + "types": "./dist/index.d.ts", + "import": "./dist/index.js", + "default": "./dist/index.js" } } }, "scripts": { - "prepack": "unbuild" + "prepack": "tsc" } } diff --git a/packages/shared/src/array.test-d.ts b/packages/shared/src/array.test-d.ts index aa9bf6a1..09fa1ab5 100644 --- a/packages/shared/src/array.test-d.ts +++ b/packages/shared/src/array.test-d.ts @@ -1,4 +1,4 @@ -import { toArray } from './array' +import { toArray } from './array.ts' it('toArray', () => { expectTypeOf(toArray(undefined)).toEqualTypeOf() diff --git a/packages/shared/src/array.test.ts b/packages/shared/src/array.test.ts index 3b0e0e21..f6a60991 100644 --- a/packages/shared/src/array.test.ts +++ b/packages/shared/src/array.test.ts @@ -1,4 +1,4 @@ -import { toArray } from './array' +import { toArray } from './array.ts' it('toArray', () => { expect(toArray(undefined)).toEqual([]) diff --git a/packages/shared/src/error.test.ts b/packages/shared/src/error.test.ts index 70db3f07..a566f1bb 100644 --- a/packages/shared/src/error.test.ts +++ b/packages/shared/src/error.test.ts @@ -1,4 +1,4 @@ -import { AbortError } from './error' +import { AbortError } from './error.ts' it('abortError', () => { const error = new AbortError('Operation aborted', { diff --git a/packages/shared/src/function.test.ts b/packages/shared/src/function.test.ts index a183539d..ec67460d 100644 --- a/packages/shared/src/function.test.ts +++ b/packages/shared/src/function.test.ts @@ -1,4 +1,4 @@ -import { sequential } from './function' +import { sequential } from './function.ts' describe('sequential', () => { it('should call the function sequentially', async () => { @@ -11,10 +11,12 @@ describe('sequential', () => { const sequentialFn = sequential(fn) - expect(sequentialFn()).resolves.toBe(0) - expect(sequentialFn()).resolves.toBe(1) - expect(sequentialFn()).resolves.toBe(2) - expect(sequentialFn()).resolves.toBe(3) + await Promise.all([ + expect(sequentialFn()).resolves.toBe(0), + expect(sequentialFn()).resolves.toBe(1), + expect(sequentialFn()).resolves.toBe(2), + expect(sequentialFn()).resolves.toBe(3), + ]) }) it('should call the function sequentially even with errors', async () => { @@ -32,9 +34,11 @@ describe('sequential', () => { const sequentialFn = sequential(fn) - expect(sequentialFn()).resolves.toBe(0) - expect(sequentialFn()).rejects.toThrow('Forced error') - expect(sequentialFn()).resolves.toBe(2) - expect(sequentialFn()).resolves.toBe(3) + await Promise.all([ + expect(sequentialFn()).resolves.toBe(0), + expect(sequentialFn()).rejects.toThrow('Forced error'), + expect(sequentialFn()).resolves.toBe(2), + expect(sequentialFn()).resolves.toBe(3), + ]) }) }) diff --git a/packages/shared/src/id.test.ts b/packages/shared/src/id.test.ts index ea4bda1b..af1b1393 100644 --- a/packages/shared/src/id.test.ts +++ b/packages/shared/src/id.test.ts @@ -1,4 +1,4 @@ -import { SequentialIdGenerator } from './id' +import { SequentialIdGenerator } from './id.ts' describe('sequentialIdGenerator', () => { it('unique and increase', () => { diff --git a/packages/shared/src/index.test.ts b/packages/shared/src/index.test.ts index dc72b5c8..cb0182e3 100644 --- a/packages/shared/src/index.test.ts +++ b/packages/shared/src/index.test.ts @@ -1,4 +1,4 @@ -import * as index from '.' +import * as index from './index.ts' it('export something', () => { expect(Object.keys(index).length).toBeGreaterThan(0) diff --git a/packages/shared/src/index.ts b/packages/shared/src/index.ts index e7d1f23b..22142638 100644 --- a/packages/shared/src/index.ts +++ b/packages/shared/src/index.ts @@ -1,14 +1,14 @@ -export * from './array' -export * from './error' -export * from './function' -export * from './id' -export * from './iterator' -export * from './json' -export * from './object' -export * from './promise' -export * from './proxy' -export * from './queue' -export { throwIfAborted } from './signal' -export * from './time' -export * from './types' -export * from './uri' +export * from './array.ts' +export * from './error.ts' +export * from './function.ts' +export * from './id.ts' +export * from './iterator.ts' +export * from './json.ts' +export * from './object.ts' +export * from './promise.ts' +export * from './proxy.ts' +export * from './queue.ts' +export { throwIfAborted } from './signal.ts' +export * from './time.ts' +export * from './types.ts' +export * from './uri.ts' diff --git a/packages/shared/src/iterator.test.ts b/packages/shared/src/iterator.test.ts index 7a2ea80a..ec254e45 100644 --- a/packages/shared/src/iterator.test.ts +++ b/packages/shared/src/iterator.test.ts @@ -1,5 +1,5 @@ -import { AsyncIteratorClass, isAsyncIteratorObject } from './iterator' -import { promiseWithResolvers } from './promise' +import { AsyncIteratorClass, isAsyncIteratorObject } from './iterator.ts' +import { promiseWithResolvers } from './promise.ts' beforeEach(() => { vi.clearAllMocks() @@ -39,7 +39,7 @@ it('uses Symbol.for("Symbol.asyncDispose") when Symbol.asyncDispose is not nativ }), ) vi.resetModules() - const { AsyncIteratorClass } = await import('./iterator') + const { AsyncIteratorClass } = await import('./iterator.ts') vi.unstubAllGlobals() const cleanup = vi.fn() diff --git a/packages/shared/src/iterator.ts b/packages/shared/src/iterator.ts index 2d1a6215..f2401516 100644 --- a/packages/shared/src/iterator.ts +++ b/packages/shared/src/iterator.ts @@ -1,5 +1,5 @@ -import { sequential } from './function' -import type { AsyncCleanupFn } from './types' +import { sequential } from './function.ts' +import type { AsyncCleanupFn } from './types.ts' export function isAsyncIteratorObject(maybe: unknown): maybe is AsyncIteratorObject { if (!maybe || typeof maybe !== 'object') { diff --git a/packages/shared/src/json.test-d.ts b/packages/shared/src/json.test-d.ts index 56c52dac..ae0b125a 100644 --- a/packages/shared/src/json.test-d.ts +++ b/packages/shared/src/json.test-d.ts @@ -1,4 +1,4 @@ -import { stringifyJSON } from './json' +import { stringifyJSON } from './json.ts' it('stringifyJSON', () => { expectTypeOf(stringifyJSON(undefined)).toEqualTypeOf() diff --git a/packages/shared/src/json.test.ts b/packages/shared/src/json.test.ts index 1db61423..da1156b7 100644 --- a/packages/shared/src/json.test.ts +++ b/packages/shared/src/json.test.ts @@ -1,4 +1,4 @@ -import { parseEmptyableJSON, stringifyJSON } from './json' +import { parseEmptyableJSON, stringifyJSON } from './json.ts' it('parseEmptyableJSON', () => { expect(parseEmptyableJSON(undefined)).toBeUndefined() diff --git a/packages/shared/src/object.test.ts b/packages/shared/src/object.test.ts index ca3236a7..50d36222 100644 --- a/packages/shared/src/object.test.ts +++ b/packages/shared/src/object.test.ts @@ -1,4 +1,4 @@ -import { hasAnyDefinedValue, isTypescriptObject } from './object' +import { hasAnyDefinedValue, isTypescriptObject } from './object.ts' it('hasAnyDefinedValue', () => { expect(hasAnyDefinedValue({})).toBe(false) diff --git a/packages/shared/src/promise.test.ts b/packages/shared/src/promise.test.ts index e648e4cf..3f66be1f 100644 --- a/packages/shared/src/promise.test.ts +++ b/packages/shared/src/promise.test.ts @@ -1,4 +1,4 @@ -import { promiseWithResolvers } from './promise' +import { promiseWithResolvers } from './promise.ts' describe('promiseWithResolvers', () => { it('resolves the promise', async () => { diff --git a/packages/shared/src/proxy.test.ts b/packages/shared/src/proxy.test.ts index 3772abc8..a96d5840 100644 --- a/packages/shared/src/proxy.test.ts +++ b/packages/shared/src/proxy.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest' -import { getOrBind } from './proxy' +import { getOrBind } from './proxy.ts' describe('getOrBind', () => { it('returns non-function values directly', () => { @@ -19,6 +19,7 @@ describe('getOrBind', () => { } const boundGetName = getOrBind(target, 'getName') expect(typeof boundGetName).toBe('function') + // oxlint-disable-next-line typescript/unbound-method -- compares identity, never calls it expect(boundGetName).not.toBe(target.getName) expect(boundGetName()).toBe('target') }) @@ -102,7 +103,7 @@ describe('getOrBind', () => { it('we can disable binding', () => { const target = { - method() {}, + method(this: void) {}, } const bound = getOrBind(target, 'method', { bind: false }) diff --git a/packages/shared/src/queue.test.ts b/packages/shared/src/queue.test.ts index efabcf4a..217bd5d2 100644 --- a/packages/shared/src/queue.test.ts +++ b/packages/shared/src/queue.test.ts @@ -1,5 +1,5 @@ -import { AbortError } from './error' -import { Queue } from './queue' +import { AbortError } from './error.ts' +import { Queue } from './queue.ts' describe('queue', () => { it('returns buffered items in order', async () => { diff --git a/packages/shared/src/queue.ts b/packages/shared/src/queue.ts index 5114fe63..21cfe0ec 100644 --- a/packages/shared/src/queue.ts +++ b/packages/shared/src/queue.ts @@ -1,4 +1,4 @@ -import { AbortError } from './error' +import { AbortError } from './error.ts' const COMPACT_THRESHOLD = 1024 diff --git a/packages/shared/src/signal.test.ts b/packages/shared/src/signal.test.ts index 2057df4b..b56d880b 100644 --- a/packages/shared/src/signal.test.ts +++ b/packages/shared/src/signal.test.ts @@ -1,18 +1,17 @@ import { describe, expect, it, vi } from 'vitest' -import { anyAbortSignal, throwIfAborted } from './signal' +import { anyAbortSignal, throwIfAborted } from './signal.ts' /** * Helper to temporarily disable AbortSignal.any to force fallback implementation. */ function withFallback(fn: () => T): T { - const originalAny = AbortSignal.any - // @ts-expect-error - allow setting to undefined for testing fallback - AbortSignal.any = undefined + const descriptor = Object.getOwnPropertyDescriptor(AbortSignal, 'any')! + Object.defineProperty(AbortSignal, 'any', { ...descriptor, value: undefined }) try { return fn() } finally { - AbortSignal.any = originalAny + Object.defineProperty(AbortSignal, 'any', descriptor) } } diff --git a/packages/shared/src/time.test.ts b/packages/shared/src/time.test.ts index 07a6e57e..42a11c79 100644 --- a/packages/shared/src/time.test.ts +++ b/packages/shared/src/time.test.ts @@ -1,4 +1,4 @@ -import { sleep } from './time' +import { sleep } from './time.ts' describe('sleep', () => { it('sleep resolves after the given duration', async () => { diff --git a/packages/shared/src/time.ts b/packages/shared/src/time.ts index 449c1805..4fe4e2b6 100644 --- a/packages/shared/src/time.ts +++ b/packages/shared/src/time.ts @@ -1,4 +1,4 @@ -import { throwIfAborted } from './signal' +import { throwIfAborted } from './signal.ts' export interface SleepOptions { signal?: AbortSignal | undefined diff --git a/packages/shared/src/uri.test.ts b/packages/shared/src/uri.test.ts index a3cc4b5e..74532086 100644 --- a/packages/shared/src/uri.test.ts +++ b/packages/shared/src/uri.test.ts @@ -1,4 +1,4 @@ -import { safeDecodeURIComponent, safeEncodeURIComponent } from './uri' +import { safeDecodeURIComponent, safeEncodeURIComponent } from './uri.ts' describe('safeEncodeURIComponent', () => { it('encodes like encodeURIComponent for well-formed input', () => { diff --git a/packages/shared/tsconfig.json b/packages/shared/tsconfig.json index 8d477a77..9979a071 100644 --- a/packages/shared/tsconfig.json +++ b/packages/shared/tsconfig.json @@ -1,15 +1,3 @@ { - "extends": "uncheck/tsconfig/middleapi/lib", - "compilerOptions": { - "lib": ["ES2022", "DOM", "DOM.Iterable"] - }, - "include": ["./package.json", "src"], - "exclude": [ - "**/*.test.*", - "**/*.test-d.ts", - "**/*.bench.*", - "**/__tests__/**", - "**/__mocks__/**", - "**/__snapshots__/**" - ] + "extends": "../../tsconfig.lib.json" } diff --git a/playgrounds/hono-node/package.json b/playgrounds/hono-node/package.json index 8ac40ba0..e4626c25 100644 --- a/playgrounds/hono-node/package.json +++ b/playgrounds/hono-node/package.json @@ -13,6 +13,6 @@ "@standard-server/fetch": "latest", "@types/node": "^26.6.4", "tsx": "^4.23.15", - "typescript": "^6.0.3" + "typescript": "^7.0.2" } } diff --git a/playgrounds/hono-node/src/main.ts b/playgrounds/hono-node/src/main.ts index 5a37df88..7c5e5497 100644 --- a/playgrounds/hono-node/src/main.ts +++ b/playgrounds/hono-node/src/main.ts @@ -10,7 +10,7 @@ async function main(request: StandardLazyRequest): Promise { yield `${request.method} ${request.url}` while (true) { - yield `now:${new Date()}` + yield `now:${new Date().toISOString()}` await new Promise((r) => setTimeout(r, 1000)) } })(), diff --git a/playgrounds/hono-node/tsconfig.json b/playgrounds/hono-node/tsconfig.json index dd978340..492c07cb 100644 --- a/playgrounds/hono-node/tsconfig.json +++ b/playgrounds/hono-node/tsconfig.json @@ -9,6 +9,7 @@ "module": "ESNext", "moduleResolution": "bundler", + "allowImportingTsExtensions": true, "resolveJsonModule": true, "types": ["node"], diff --git a/playgrounds/node-http/package.json b/playgrounds/node-http/package.json index 46bfb048..ca2fb425 100644 --- a/playgrounds/node-http/package.json +++ b/playgrounds/node-http/package.json @@ -12,6 +12,6 @@ "@standard-server/node": "latest", "@types/node": "^26.6.4", "tsx": "^4.23.15", - "typescript": "^6.0.3" + "typescript": "^7.0.2" } } diff --git a/playgrounds/node-http/src/main.ts b/playgrounds/node-http/src/main.ts index c9ce6b50..693ccff2 100644 --- a/playgrounds/node-http/src/main.ts +++ b/playgrounds/node-http/src/main.ts @@ -11,7 +11,7 @@ async function main(request: StandardLazyRequest): Promise { yield `${request.method} ${request.url}` while (true) { - yield `now:${new Date()}` + yield `now:${new Date().toISOString()}` await new Promise((r) => setTimeout(r, 1000)) } })(), diff --git a/playgrounds/node-http/tsconfig.json b/playgrounds/node-http/tsconfig.json index dd978340..492c07cb 100644 --- a/playgrounds/node-http/tsconfig.json +++ b/playgrounds/node-http/tsconfig.json @@ -9,6 +9,7 @@ "module": "ESNext", "moduleResolution": "bundler", + "allowImportingTsExtensions": true, "resolveJsonModule": true, "types": ["node"], diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d8c1c98b..6fa18777 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,153 +7,153 @@ importers: configDependencies: {} packageManagerDependencies: pnpm: - specifier: ^12.4.1 - version: 12.4.1 + specifier: 12.16.1 + version: 12.16.1 packages: - '@pnpm/exe.android-arm64@12.4.1': - resolution: {integrity: sha512-/HwsqXMSmlOfgtV9+O0ratzjV6Vd/8n1hh4rGHpCGmDURvt52MwZxdbhyxP4K03ZfvgSDvotFPr8O+RzE5Eu8A==} + '@pnpm/exe.android-arm64@12.16.1': + resolution: {integrity: sha512-PKf78Ew+i0CBYf0Xc+eMcqQiqyBT+u8XCVg1F5roc98/6wWfdYlWhrUMmEBiKWaJ3JqHxrtt8l1NwZ7qfJt2/Q==} cpu: [arm64] os: [android] - '@pnpm/exe.android-x64@12.4.1': - resolution: {integrity: sha512-+l74Qb4c2YjOzNKHXJLg+1wr8xHM1ckkUhnU5KRUK9TJqiiczt6yeTZqqzHIlJ8i6pAoj5V0OJevDRwnQKLgrQ==} + '@pnpm/exe.android-x64@12.16.1': + resolution: {integrity: sha512-xdu7gMbB98pdvhwMeA6612Of515FDlRUtfA/1f7nWPZfPLnEdSRBO2u+1N0XBtQ/ennhPH/lrxB1gC6gnR/cdg==} cpu: [x64] os: [android] - '@pnpm/exe.darwin-arm64@12.4.1': - resolution: {integrity: sha512-6rkZkT3iGfaxknUdGHraqSWFvTa6N0ajAHluv9Ax0GRWs0sIcGNiFhDopv6xSZCsJZmG483aNS/b6UEDy3blfw==} + '@pnpm/exe.darwin-arm64@12.16.1': + resolution: {integrity: sha512-pVbmIIbhixiLvADLu1WA3TaW8FZy/D72R1De27WbbFx8/2mxvnsTyFVm4fO9kjpjMY7RzJd48CiQ96p8fO3ebQ==} cpu: [arm64] os: [darwin] - '@pnpm/exe.darwin-x64@12.4.1': - resolution: {integrity: sha512-Vb1CHlR88HghC1qUxjxjs82zQSXnXacPD+btG2CmG8Q/hBU7Q0/b2YWJKSQqZXicunV5khFtfTlAwJddV9RkYA==} + '@pnpm/exe.darwin-x64@12.16.1': + resolution: {integrity: sha512-xZvQBFqcZjO7vFKTK3XsJpqY6lnBL9EWSLCzVUPq3kZ94+D96gwJCa76xxGNK8Cj32f4eeM91Qg+yNRR4sRpDw==} cpu: [x64] os: [darwin] - '@pnpm/exe.freebsd-x64@12.4.1': - resolution: {integrity: sha512-iT3iHz3Nl0Sxxj7UPOtZ/aQ81AFsQhjoeWMAlPkSRO04gsgDGAXv3UYxOFaesMWsfNxaGn0A+CITbuCHFF66FA==} + '@pnpm/exe.freebsd-x64@12.16.1': + resolution: {integrity: sha512-zTtunfi9mBhRXiXEJYfwiJj0tk7MgTSfqDSRh+Az9FZ9THazVIiQiVNS8jpcsftDOqu7LKNffQdjmgwHDThfUg==} cpu: [x64] os: [freebsd] - '@pnpm/exe.linux-arm64-musl@12.4.1': - resolution: {integrity: sha512-aBooZfNXM5f+OGUgCAMFWpE/kAhsWfvmqIyMtHy6zl3aNxyInWrcY/Saln/UElzo7lZWMC0Yktroxd/2J26lNQ==} + '@pnpm/exe.linux-arm64-musl@12.16.1': + resolution: {integrity: sha512-BJ3mOmcmQgcUo92Ee/WfEOt1pRiv3y2MMAkhEiYHd85UiPpHTfFhv+SpCbALmfExzXk3UlaRtMYwHlkQymc4VA==} cpu: [arm64] os: [linux] libc: [musl] - '@pnpm/exe.linux-arm64@12.4.1': - resolution: {integrity: sha512-TlOdacTTP09BgcMvwWBFRsu8VAjfwqwnslBj+XSq1JFM3ck4f3k+1O/747EuctxZxs3/o785b6Q3s7Pd92Ptsg==} + '@pnpm/exe.linux-arm64@12.16.1': + resolution: {integrity: sha512-JaRd5gNxwdNGBBkrZFt8bknrK4YmHVJBW0JMhUQ0fJ0dEYp6C2GT9ExaCqOO8EwYEyqM+jpKgJIK+8WFaJy3ew==} cpu: [arm64] os: [linux] libc: [glibc] - '@pnpm/exe.linux-ppc64@12.4.1': - resolution: {integrity: sha512-r/ab/MlIBo75oizUP5ITiziCCrnXz4SJwfErLQ+603AshB+Yq7xTMCoMtzTSCAMu6aaymIKkAFtZvd2J75Wq0w==} + '@pnpm/exe.linux-ppc64@12.16.1': + resolution: {integrity: sha512-FnSV0Jv40S1cMv7vFNWwvu0X567Lec4L4HCRead3CFcD6zQDNbGw81s8N5bcKPahtPD9ApVuhsbmFCx4rw6RMw==} cpu: [ppc64] os: [linux] libc: [glibc] - '@pnpm/exe.linux-riscv64@12.4.1': - resolution: {integrity: sha512-C/D1QWdKMiB8+wv/spl1rGITFUuqC+aI/fb6h8NB5sqxsOaGXeYc/g891oCuzggHn6SODk9p+I09hI76x/cMNw==} + '@pnpm/exe.linux-riscv64@12.16.1': + resolution: {integrity: sha512-C1Sww4FN5IttD4atRRhAKmQtSGWVp04ZAKNxO8pfu2bkRPwOW+7v+2DH1Xs1W+kZYYpO86BYDvUcadefF+AgaQ==} cpu: [riscv64] os: [linux] libc: [glibc] - '@pnpm/exe.linux-s390x@12.4.1': - resolution: {integrity: sha512-nxz5zD4yXt94uzbStDk0QTPKW+aE92hH1b5tFXK9ctB1HE9Xcq1vjTiA2LsZMFC6p4gdu5OwQeFqYNAVGa6QlA==} + '@pnpm/exe.linux-s390x@12.16.1': + resolution: {integrity: sha512-kn2fautsTcxIMODoovQVqZyfpDRdNgGkoeVqNdrKqbeBBvrEl+fXLkmZiq5xDht1LMr4sYiCNcsMfNMT6JPFmg==} cpu: [s390x] os: [linux] libc: [glibc] - '@pnpm/exe.linux-x64-musl@12.4.1': - resolution: {integrity: sha512-5AwgFdGhVUg2kIweYGfxzSLEHiIG77PQhZAkXC3TwofQHsu1Wr+TrV5/rNX2PopFnHRzuE581zoB8F6Wle32yg==} + '@pnpm/exe.linux-x64-musl@12.16.1': + resolution: {integrity: sha512-PM6ccHCOe/O9SsTflTJTYWfwogJZa6EmUvpnwZgiPguJBddh20wDQKgxUPXf48rDsPm9vMsIij0uHswwwbXL8g==} cpu: [x64] os: [linux] libc: [musl] - '@pnpm/exe.linux-x64@12.4.1': - resolution: {integrity: sha512-FJOZuuuQMhp0oLzBtcKkLXknBI92hfkmSnlKc47vfin4HrmfID5khY2lGekL9tCzk1cpR+HShEw/meFl+nHtzQ==} + '@pnpm/exe.linux-x64@12.16.1': + resolution: {integrity: sha512-RK//8ZLcXGW8A2k8bQOXZDBN1Qu92zN4dYnG1bzj1zoQ1fkZ6jNzZ1AvXtsfGVma795CJtvoaF5bLXf4l/FIUw==} cpu: [x64] os: [linux] libc: [glibc] - '@pnpm/exe.win32-arm64@12.4.1': - resolution: {integrity: sha512-OO7eKBL9S+xk5hRy+JUUZSNJknGuGe3GEUffsrlC2LbqKF02g+VX1anGIzSbJDvkkdnpJhSlxF5AUz2JzJu2Jw==} + '@pnpm/exe.win32-arm64@12.16.1': + resolution: {integrity: sha512-Ox3kNNVxtGw6pK7SVejmeOUgHhUTZgAM7NQQ6cU7frPw3ix9+j7d2MGbRg3fyEFAaKWq8ZAZLTQGcDyLnAu+qA==} cpu: [arm64] os: [win32] - '@pnpm/exe.win32-x64@12.4.1': - resolution: {integrity: sha512-x7gJHZgHo6hp354xCYA2NvoFzYJkHwovt2kVsUBK5EmXULLcP51JGMq09CX+5FRFJUZFKoXjLu3mZWmfP7o6PQ==} + '@pnpm/exe.win32-x64@12.16.1': + resolution: {integrity: sha512-k+FhRJ0ttphFoFIVB1Sk4v76YJAulafmA/Ly57cysesUhhIzVlApeOShUz0jXubKx317TThlEfpQrukldnqORA==} cpu: [x64] os: [win32] - pnpm@12.4.1: - resolution: {integrity: sha512-LoHjmdc/6DkNqyXgaqeIq3pZCCSNL1o3D4K0gRR6ano2e/gEj5pv22Rg8hpm8FQt7bi5TKLIcjWWdBkgsWVtTA==} - engines: {node: '>=18.*'} + pnpm@12.16.1: + resolution: {integrity: sha512-CR0d7nknV1Zhsl2rPCrjHK/BxU1rce1qZgDPDByxBDSkR+rhQBXxsj4ua+3u1535SpMuIWTSgyKA3OP7MvZW0Q==} + engines: {node: '>=18'} hasBin: true snapshots: - '@pnpm/exe.android-arm64@12.4.1': + '@pnpm/exe.android-arm64@12.16.1': optional: true - '@pnpm/exe.android-x64@12.4.1': + '@pnpm/exe.android-x64@12.16.1': optional: true - '@pnpm/exe.darwin-arm64@12.4.1': + '@pnpm/exe.darwin-arm64@12.16.1': optional: true - '@pnpm/exe.darwin-x64@12.4.1': + '@pnpm/exe.darwin-x64@12.16.1': optional: true - '@pnpm/exe.freebsd-x64@12.4.1': + '@pnpm/exe.freebsd-x64@12.16.1': optional: true - '@pnpm/exe.linux-arm64-musl@12.4.1': + '@pnpm/exe.linux-arm64-musl@12.16.1': optional: true - '@pnpm/exe.linux-arm64@12.4.1': + '@pnpm/exe.linux-arm64@12.16.1': optional: true - '@pnpm/exe.linux-ppc64@12.4.1': + '@pnpm/exe.linux-ppc64@12.16.1': optional: true - '@pnpm/exe.linux-riscv64@12.4.1': + '@pnpm/exe.linux-riscv64@12.16.1': optional: true - '@pnpm/exe.linux-s390x@12.4.1': + '@pnpm/exe.linux-s390x@12.16.1': optional: true - '@pnpm/exe.linux-x64-musl@12.4.1': + '@pnpm/exe.linux-x64-musl@12.16.1': optional: true - '@pnpm/exe.linux-x64@12.4.1': + '@pnpm/exe.linux-x64@12.16.1': optional: true - '@pnpm/exe.win32-arm64@12.4.1': + '@pnpm/exe.win32-arm64@12.16.1': optional: true - '@pnpm/exe.win32-x64@12.4.1': + '@pnpm/exe.win32-x64@12.16.1': optional: true - pnpm@12.4.1: + pnpm@12.16.1: optionalDependencies: - '@pnpm/exe.android-arm64': 12.4.1 - '@pnpm/exe.android-x64': 12.4.1 - '@pnpm/exe.darwin-arm64': 12.4.1 - '@pnpm/exe.darwin-x64': 12.4.1 - '@pnpm/exe.freebsd-x64': 12.4.1 - '@pnpm/exe.linux-arm64': 12.4.1 - '@pnpm/exe.linux-arm64-musl': 12.4.1 - '@pnpm/exe.linux-ppc64': 12.4.1 - '@pnpm/exe.linux-riscv64': 12.4.1 - '@pnpm/exe.linux-s390x': 12.4.1 - '@pnpm/exe.linux-x64': 12.4.1 - '@pnpm/exe.linux-x64-musl': 12.4.1 - '@pnpm/exe.win32-arm64': 12.4.1 - '@pnpm/exe.win32-x64': 12.4.1 + '@pnpm/exe.android-arm64': 12.16.1 + '@pnpm/exe.android-x64': 12.16.1 + '@pnpm/exe.darwin-arm64': 12.16.1 + '@pnpm/exe.darwin-x64': 12.16.1 + '@pnpm/exe.freebsd-x64': 12.16.1 + '@pnpm/exe.linux-arm64': 12.16.1 + '@pnpm/exe.linux-arm64-musl': 12.16.1 + '@pnpm/exe.linux-ppc64': 12.16.1 + '@pnpm/exe.linux-riscv64': 12.16.1 + '@pnpm/exe.linux-s390x': 12.16.1 + '@pnpm/exe.linux-x64': 12.16.1 + '@pnpm/exe.linux-x64-musl': 12.16.1 + '@pnpm/exe.win32-arm64': 12.16.1 + '@pnpm/exe.win32-x64': 12.16.1 --- lockfileVersion: '9.0' @@ -227,11 +227,14 @@ importers: specifier: 2.0.2 version: 2.0.2 oxfmt: - specifier: ^0.72.0 - version: 0.72.0 + specifier: ^0.76.0 + version: 0.76.0 oxlint: - specifier: ^1.87.0 - version: 1.87.0 + specifier: ^1.91.0 + version: 1.91.0(oxlint-tsgolint@7.0.2005) + oxlint-tsgolint: + specifier: ^7.0.2005 + version: 7.0.2005 pkg-pr-new: specifier: ^0.0.91 version: 0.0.91 @@ -245,14 +248,8 @@ importers: specifier: ^1.0.5 version: 1.0.5 typescript: - specifier: ^6.0.3 - version: 6.0.3 - unbuild: - specifier: ^3.6.1 - version: 3.6.1(typescript@6.0.3) - uncheck: - specifier: ^0.1.1 - version: 0.1.1(oxfmt@0.72.0)(oxlint@1.87.0)(sherif@1.13.0)(typescript@6.0.3) + specifier: ^7.0.2 + version: 7.0.2 vitest: specifier: ^4.1.10 version: 4.1.11(@types/node@26.6.4)(@vitest/coverage-v8@4.1.11)(vite@7.3.6(@types/node@26.6.4)(jiti@2.7.0)(tsx@4.23.15)(yaml@2.9.0)) @@ -373,8 +370,8 @@ importers: specifier: ^4.23.15 version: 4.23.15 typescript: - specifier: ^6.0.3 - version: 6.0.3 + specifier: ^7.0.2 + version: 7.0.2 playgrounds/node-http: devDependencies: @@ -391,8 +388,8 @@ importers: specifier: ^4.23.15 version: 4.23.15 typescript: - specifier: ^6.0.3 - version: 6.0.3 + specifier: ^7.0.2 + version: 7.0.2 tests/bun: devDependencies: @@ -414,10 +411,6 @@ importers: packages: - '@babel/code-frame@8.0.0': - resolution: {integrity: sha512-dYYg153EyN2Ekbqw2zAsbd6/JR+9N2SEoC7YV2GyyqMM7x9bLDTjBD6XBhSMLH0wtIVyJj03jWNriQhaN+eoCw==} - engines: {node: ^22.18.0 || >=24.11.0} - '@babel/helper-string-parser@7.29.7': resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==} engines: {node: '>=6.9.0'} @@ -426,10 +419,6 @@ packages: resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@8.0.4': - resolution: {integrity: sha512-4wFaiLd0bVo4cIoTXI3zKI038NIWE/cr3jvBjejOVYVxV/m8Ltav1USiGzG1fmS5J2RhgEOgXNNK46cRPnRsrg==} - engines: {node: ^22.18.0 || >=24.11.0} - '@babel/parser@7.29.8': resolution: {integrity: sha512-E8lTAYNB1KW+FH+VGJuZM1ioAx2E6oVlvQFRrf5P8ZZmsiJXYAD9vTFV7yyEURNzgh1dFqMZuO6tUwcARbqFCA==} engines: {node: '>=6.0.0'} @@ -453,315 +442,156 @@ packages: vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 vitest: ^3.2 || ^4 - '@colordx/core@5.8.0': - resolution: {integrity: sha512-cG0QJAO6VkaRUlIb0zOzX9gfJgs1pjoOL9gZ/PK1kfvBs0GCkADu5oQh6gPxXgQnZ3gV575h+lQRC0NlMDTclA==} - - '@esbuild/aix-ppc64@0.25.12': - resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] - '@esbuild/aix-ppc64@0.28.2': resolution: {integrity: sha512-XExcO+dvLKvVtNTibSTBej1NCAbaGhWn9Ww1ZPx80qsahhPFe/8jgWP0IchNe0F3HwkU7n8ejhH8bjonqht8mQ==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.25.12': - resolution: {integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [android] - '@esbuild/android-arm64@0.28.2': resolution: {integrity: sha512-5YfKeeI8qWfBZIX+u2xZC3Zlb3Os/gLS2sbEKM+I4ZOcsWmHS2WLysCcQZDAFRslDUU5Oiq44gf6PYN1vGwG5A==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.25.12': - resolution: {integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==} - engines: {node: '>=18'} - cpu: [arm] - os: [android] - '@esbuild/android-arm@0.28.2': resolution: {integrity: sha512-kXXoiPVVGQcnIYGOeaovwOURpniDBpSq4A03qkQ+BMQqtGG6HYap3xne9C1O1yo4TR3qxlCX5IqqmX6fFo2Lqg==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.25.12': - resolution: {integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==} - engines: {node: '>=18'} - cpu: [x64] - os: [android] - '@esbuild/android-x64@0.28.2': resolution: {integrity: sha512-O387ite7SzUyCcy3JQX4P4bLtEA7bLLkx+esve5JHnyYfNTxcVpXZo9jhdB0lTKN44gztELTdU7nS8Nr16Fs1Q==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.25.12': - resolution: {integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] - '@esbuild/darwin-arm64@0.28.2': resolution: {integrity: sha512-n4KqkOQrraxHJcgjM1RvwbigfQKIKJVpM7xp+KsxiyUSrRdIXnt73VhrPAx0fV44hgfmIVKjxMN9J1t5jySVkw==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.25.12': - resolution: {integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==} - engines: {node: '>=18'} - cpu: [x64] - os: [darwin] - '@esbuild/darwin-x64@0.28.2': resolution: {integrity: sha512-uq6suIWYP37qzGddBKPw5QEQPi6HiLGsO7UmkpfyaYNQ3D+rN6w6WfwH+nuqcGXWvawGwxOEroO4YGnFh95azw==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.25.12': - resolution: {integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] - '@esbuild/freebsd-arm64@0.28.2': resolution: {integrity: sha512-n+I0BTSRIoy+d6RPKnEVwql5UwBJolytvY4mAOIEJorKlqgPII8ix6slVVrfZ5Tnj7glIZvloylbB/EJPMWEXw==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.25.12': - resolution: {integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [freebsd] - '@esbuild/freebsd-x64@0.28.2': resolution: {integrity: sha512-78XJTJkvPs0kz2w61301PJjXl4g7q3JqiYMZ/M/yVI73EHBrCRTgkhu9oqG7vPqq+a/yadEW8aD+agKlk5xrmg==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.25.12': - resolution: {integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==} - engines: {node: '>=18'} - cpu: [arm64] - os: [linux] - '@esbuild/linux-arm64@0.28.2': resolution: {integrity: sha512-pW4AC0P3it8c7do9MVM4p51FzHzdM/TZrerurgRcHJ2WTa1VQ1CIq18xncfpBJw4ojkiZZrKW2yIBWBP92j6Ug==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.25.12': - resolution: {integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==} - engines: {node: '>=18'} - cpu: [arm] - os: [linux] - '@esbuild/linux-arm@0.28.2': resolution: {integrity: sha512-XlDnu2q5yoqems+xay6wSAcg9DDD7K9RLKZEBOMZm3ckNpJBvOX20tSfby8KfrrhINDyv9V2YVZKY/SpoGJI8w==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.25.12': - resolution: {integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==} - engines: {node: '>=18'} - cpu: [ia32] - os: [linux] - '@esbuild/linux-ia32@0.28.2': resolution: {integrity: sha512-CYbnj78HsIeA+DhgUKgFCfvNsTHFhMMrinUrMZpDXJXKN8T3XViTZ/+wtHeVxEWY8ewSzTFN+nRmSwO2tZaLUQ==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.25.12': - resolution: {integrity: sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==} - engines: {node: '>=18'} - cpu: [loong64] - os: [linux] - '@esbuild/linux-loong64@0.28.2': resolution: {integrity: sha512-buwkd8nsph4R+ajRvw0qM5Hja/TXQow3ptzWO2EbG/cqcIkHloRrdlBtQlshyYGTNFvfkfJ5tpPLVkY4DtsPfQ==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.25.12': - resolution: {integrity: sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==} - engines: {node: '>=18'} - cpu: [mips64el] - os: [linux] - '@esbuild/linux-mips64el@0.28.2': resolution: {integrity: sha512-ZVykbDyk7519VwiNb9Lcj9m8XM6v5V9uKPvrEMkkEedVewf+0itkhahp4HDpgERXhwLRpWFypsGbG/J8s0QjJA==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.25.12': - resolution: {integrity: sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [linux] - '@esbuild/linux-ppc64@0.28.2': resolution: {integrity: sha512-CAXl+Dtd9UUuJd8pKKdwh6MLm3MUMiqMPmhZ3tTSXPqfyQ3vDl6R5hZdZ/kYojK4ofXtdfSv1tFq8XzWx3heNQ==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.25.12': - resolution: {integrity: sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==} - engines: {node: '>=18'} - cpu: [riscv64] - os: [linux] - '@esbuild/linux-riscv64@0.28.2': resolution: {integrity: sha512-GeXCej4IQtU1B+QlDV8W/RRvbzI3O/Stss+/bCXv4lZls5WGRtu2a+3JkA3i4qIUlMXpcHebWpF8AkJhATowuA==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.25.12': - resolution: {integrity: sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==} - engines: {node: '>=18'} - cpu: [s390x] - os: [linux] - '@esbuild/linux-s390x@0.28.2': resolution: {integrity: sha512-3H1weTYZPxt/WOhByszQZybS9w5lKzUn1FDMsgEChbHWQwHYQQRfBxgCcZvPhjHfKyJjIievvMmEUawJrdY9Dg==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.25.12': - resolution: {integrity: sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==} - engines: {node: '>=18'} - cpu: [x64] - os: [linux] - '@esbuild/linux-x64@0.28.2': resolution: {integrity: sha512-4xTZr1FUmSoQW4XIWmit3tzQrUTZM+N3P0XV8xROKYF50XfI7xeO90+1bZvNwxIufQ9hDQVRJH5YhgPVF8A/HQ==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.25.12': - resolution: {integrity: sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [netbsd] - '@esbuild/netbsd-arm64@0.28.2': resolution: {integrity: sha512-sSATRjPeDBg3pdgHoQfoYBob11Kk1FGa9lui5RIHZCoCkJa9QKlvl3/vKz2usCmYYjs7ymJR/2Nnsqe+Hjt5nw==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.25.12': - resolution: {integrity: sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [netbsd] - '@esbuild/netbsd-x64@0.28.2': resolution: {integrity: sha512-lqnzCV+mM0gIADaKihiCg6ifgfU2L3h5E33rNQBN1Y4MaVGnzryzmvvf7UHxprpQdE8hpqLolJ9Rl+SkIRDpyw==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.25.12': - resolution: {integrity: sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] - '@esbuild/openbsd-arm64@0.28.2': resolution: {integrity: sha512-AL2qJILH7lNjrDmCQDvdxMfAUIv8KMNZOvrwAQ8i8//ntL9FflhOyMJ8OZSMBb8/AWXe3/5v5S20y3zCoZWKoQ==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.25.12': - resolution: {integrity: sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==} - engines: {node: '>=18'} - cpu: [x64] - os: [openbsd] - '@esbuild/openbsd-x64@0.28.2': resolution: {integrity: sha512-QtiuPytchRyC4rwUKhexJdQKvDuZ6hWloi3igqPQNUJCS1/v9EiO3UTOXR6A3FoMo4fnAKbWJdqaIwhOzh8qEw==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/openharmony-arm64@0.25.12': - resolution: {integrity: sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openharmony] - '@esbuild/openharmony-arm64@0.28.2': resolution: {integrity: sha512-WkhYDmpTjLvGlScA1rwjRUmhl4k8oXR3cIbtqWmELgU/dFeHHlEllxDvdWcNJV9rbzCexB5vz8gtNewWLgCT7Q==} engines: {node: '>=18'} cpu: [arm64] os: [openharmony] - '@esbuild/sunos-x64@0.25.12': - resolution: {integrity: sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==} - engines: {node: '>=18'} - cpu: [x64] - os: [sunos] - '@esbuild/sunos-x64@0.28.2': resolution: {integrity: sha512-GPMSkTOtMnv2U2F8gxe4Io6qmVs+YKyp832Etqqxr0hFngmXQ3rzwytelm3GIn7T4VviRUlf3sOgBOiTdvaf7g==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.25.12': - resolution: {integrity: sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [win32] - '@esbuild/win32-arm64@0.28.2': resolution: {integrity: sha512-PIhhEkE9uPBleRBrQEJpUn7MBnibZzbGzYWPmY3x+YoVg/95zbjB4CxPPOQ8l5tYYM4mMaCthF8/1DIfBQQyWQ==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.25.12': - resolution: {integrity: sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==} - engines: {node: '>=18'} - cpu: [ia32] - os: [win32] - '@esbuild/win32-ia32@0.28.2': resolution: {integrity: sha512-YmJbfTlvU7Sdn9BB+4PRES4oB6pxgS37MAONj+hBr/cpXS1aBPKXxNnDbu+QCWPj0o9dgyxeq79g6c5P8KeuYA==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.25.12': - resolution: {integrity: sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==} - engines: {node: '>=18'} - cpu: [x64] - os: [win32] - '@esbuild/win32-x64@0.28.2': resolution: {integrity: sha512-5ebpxr3nWMzrL/rnUI755Jkuee0bHL/Gq0WTF9lvcpv73wAp5eu8MfBUgWK9bhWvZjj7yX8etf/8tI8Ney695g==} engines: {node: '>=18'} @@ -795,12 +625,6 @@ packages: peerDependencies: hono: ^4 || ^5.0.0-0 - '@jridgewell/gen-mapping@0.3.13': - resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} - - '@jridgewell/remapping@2.3.5': - resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} - '@jridgewell/resolve-uri@3.1.2': resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} @@ -826,246 +650,276 @@ packages: resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==} engines: {node: ^14.21.3 || >=16} - '@oxfmt/binding-android-arm-eabi@0.72.0': - resolution: {integrity: sha512-u4U1uaDOVBuorGNC/07NLm48nECHOiJJka002YGML16Md2DRvf38RGBt01lH60EOGvNlFVmbLoksQedNBoZHKw==} + '@oxfmt/binding-android-arm-eabi@0.76.0': + resolution: {integrity: sha512-z8x4kittQLPsrJWmfoIJyYqs2gNwceGShoUqAJdFRPw3K4kkkKCFHh3Cr4NFRvZb7DPfDS3+JfBjSm3OIyQaJQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [android] - '@oxfmt/binding-android-arm64@0.72.0': - resolution: {integrity: sha512-GCnM+Ae2mWOKC+92y3FOb6eZJeVnBAVz82e3lITUUg+kxukYKzBNAvJ/hhHIfa2A0md55SYYhdWPddSSy3KPVA==} + '@oxfmt/binding-android-arm64@0.76.0': + resolution: {integrity: sha512-Zj9fEQhQSKGj8ZTB+X4q4ho4545xWf7qsvJpwREWnBz5BATEFYtStKRgiwYOZvxQ7ORlBEgSj7pmDzuljfV1mQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@oxfmt/binding-darwin-arm64@0.72.0': - resolution: {integrity: sha512-LjQ8tlevdtwraFlWC6AnQ1Forzde0clRmnsP3QmK+ydSElDt/J+5Jc+m+//Ly1G97aP7WCNUw110QMIUw2K7xA==} + '@oxfmt/binding-darwin-arm64@0.76.0': + resolution: {integrity: sha512-jZy8GpUXaWpic5JPMAvLmaBz95Sx0naZl6hptBPLOMiYmZYiME7jAt6pv8o/tjQqPNWKb+7jKzZhrYx6UqM5MQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@oxfmt/binding-darwin-x64@0.72.0': - resolution: {integrity: sha512-+ZbcxhB1C34RQR5IldSyY6Z/yalJIxHXhP36PGE4sEq0f/lgL5jCLmOKoDeVm8dqd9gFGDsd1bNWHSGCAwdSkw==} + '@oxfmt/binding-darwin-x64@0.76.0': + resolution: {integrity: sha512-U59+a9lVpoRp9enRhTE9GssL3qB1k09CYagRzTfs3dfknopMYV0x0xHZv7Pls3SNMqHlyHR+ufmY76CYafQoLw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@oxfmt/binding-freebsd-x64@0.72.0': - resolution: {integrity: sha512-yGPhA8sePEBFV9iGcprhyOk3Bz3fZshswMH3DpYIPZFLT1DG5LjiZ0j6AJQpSueaL6bUK0av1K+5+fe+ldy5EQ==} + '@oxfmt/binding-freebsd-x64@0.76.0': + resolution: {integrity: sha512-J1R3YJHPdQJ2RQvzMdTVDWyizhihGiRGGAeEZxtGp629j5pcT5ypSLSiBflopD7o7tmiMD+xlNfhIVmjcHKMVQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@oxfmt/binding-linux-arm-gnueabihf@0.72.0': - resolution: {integrity: sha512-/g5axuqFMcAtoQrFLR5EJEMDjR5Ea4GuzpdDmMpPWAgrF1DmL4kD1NPNVlpXEOxpFJnD6lPvLKYj1lzdlrfifA==} + '@oxfmt/binding-linux-arm-gnueabihf@0.76.0': + resolution: {integrity: sha512-x9qTg6zHoqeyzmFVlIjSb9WlhZdoXaayMTeQeDeUEfKA484AgPJz7f9chLjDMONA6wUUX0FJxnVHsYgX5Zv0+g==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxfmt/binding-linux-arm-musleabihf@0.72.0': - resolution: {integrity: sha512-InVitdHbS09PM+w+WinIiyX37rC9R3L7lUP9mKy9uKTEDSUFaLjWsLoreRIxKivnv7Ndqc6Trvi+K+b6ZzhiJg==} + '@oxfmt/binding-linux-arm-musleabihf@0.76.0': + resolution: {integrity: sha512-303gbamm7NDllTtkeaX+8F5Da+KcSBr64mqELQEFg9XgnjfLX3YBCHUcOfgIlVTSybesy43eoeKai8oGr0P6UA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxfmt/binding-linux-arm64-gnu@0.72.0': - resolution: {integrity: sha512-WKjlyRAxpPjXoqeuwFBim5LscgvY+RNEiZ971C9JlRQZONhJTsXDki/oHFYQE+fzzRpzXh3owZvOdT3kNL2g+g==} + '@oxfmt/binding-linux-arm64-gnu@0.76.0': + resolution: {integrity: sha512-j3UAXzCJoWX9bZLaICj6DfwkI/2fzja9RpiCIbIN+2CQAcKoY+5SH5pQUcECvn32mQm17NSPE9YqTAwYx1seZg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-arm64-musl@0.72.0': - resolution: {integrity: sha512-poafnbsPpJhR+5Mbwpf8CscugTyiRAzjTOxRVn8ra3X2jnURs2xL5Du2xl5g2iW85lICMglpmLf8jDjZEbNgzQ==} + '@oxfmt/binding-linux-arm64-musl@0.76.0': + resolution: {integrity: sha512-qFZqWVkEzuxWMtUkCtHxsnohXHnUMBQr/ZIxF0KmlCSt8de/bc1lbpVgpqjb3QxCADQHG/O1s3JcowcBF2sqdw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@oxfmt/binding-linux-ppc64-gnu@0.72.0': - resolution: {integrity: sha512-zNUi0gKRsO7S3IfPzsTbnm88OedPuX32hmZFWZRWHvWJlAoZRwVbeO6Nb3hng4vDgL7qUKp4TGqzPz1mhsycYg==} + '@oxfmt/binding-linux-ppc64-gnu@0.76.0': + resolution: {integrity: sha512-ROiAid0UH2GN5lMMX2JTgKlOKx1rN+6a1WxIuBsU3j5A3MuB9U5XkREMW76XBbAImnH45mfOCFcSIwb+drcVYg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-riscv64-gnu@0.72.0': - resolution: {integrity: sha512-qTY7z/iyF/rWI2HWwWMevXqZW5PZUOofUy2afK7v6rseXnpld3yjgyIk6pCux3DqWQ0lB+f5atvLJNBwzLvFsw==} + '@oxfmt/binding-linux-riscv64-gnu@0.76.0': + resolution: {integrity: sha512-Oyd/9ObdM2RYkZ7yzF/GyvVdbNgJcRG8BFVwnAVo3ooqzaem4E2p5eTIGB09FecQD+Q5HQEANOTEnIZTO6rBAQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-riscv64-musl@0.72.0': - resolution: {integrity: sha512-w18qfo8vEMD6EKEHtzTvjc6jH8yCyXIT1Bn7PFWJd0PpZyzH/VQDx4xvjCh0LGz6GRzqiezbisTdG9AoXtpkZQ==} + '@oxfmt/binding-linux-riscv64-musl@0.76.0': + resolution: {integrity: sha512-86DOpmPDR5UzHSOB8y5HlOpYAIBtMx+6L72IyousNx54q1Kz61aykB4ScovFYivZUak+7Ww6tPBUjarluzYKLw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [musl] - '@oxfmt/binding-linux-s390x-gnu@0.72.0': - resolution: {integrity: sha512-grW8HwEir+vK7fCcq1ZgL3NHQCfZ1PidiERE9Hbf+24xGys+DoDaoqTht4ccfn0PcBwbViLkwkda/KNpJu2KRQ==} + '@oxfmt/binding-linux-s390x-gnu@0.76.0': + resolution: {integrity: sha512-u6omjjFooKfnHLBI+3UtBVInAeuEhoM/RAIw/OiFop2QQgOan5zDfqPR6guMaylt68L60kV+by07Ibp87KDjrw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-x64-gnu@0.72.0': - resolution: {integrity: sha512-wQJRQfWBRIn88Pkr449EUViwRayrYUScg7ty+Ihiem21mQ9BUA6S9e/4RAgyNk9lMag0KBouyKskjq61rOC0WQ==} + '@oxfmt/binding-linux-x64-gnu@0.76.0': + resolution: {integrity: sha512-L0/hW1MdMrgsvuLGp9YEQOYOGj5xPHa8wVRtybdd5av03PV4qSpAq3pyfC7sn7UCA8ynRhMRTAa9Kr9nV4LGZg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-x64-musl@0.72.0': - resolution: {integrity: sha512-T1B0uQzafxuGPjjaPrZJ497nxoi1BiI65JfsYc56nNpmev3msfb/iaTmH2kQuNFqa8PKxpMlf3GhWrWBvBPORQ==} + '@oxfmt/binding-linux-x64-musl@0.76.0': + resolution: {integrity: sha512-JNk/7HaPDJjy5kih3vq6b71Qif3tHx1ZFACGBzeHeNzyKaIpar4eFGya89GR398K2rwX0eEVmEq1npBPlEkkmg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@oxfmt/binding-openharmony-arm64@0.72.0': - resolution: {integrity: sha512-OKxxgTurl7+hypVplO8QRAbbQlwEs0j1Y6FZv+ZN2qNbdxQk2muMlzuJNBGTCWwxQ0rkkOD1uK/DW1fvzoUSJA==} + '@oxfmt/binding-openharmony-arm64@0.76.0': + resolution: {integrity: sha512-MDLrOQPXDuPKvPUCvpP3hC6kO72dsYxfpYiR08Nf5DiM75M0d8+D26JwT4uHDf0bcflvlGHcd58Hn2HpxkHUUQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@oxfmt/binding-win32-arm64-msvc@0.72.0': - resolution: {integrity: sha512-L78TKzURqvjuZOCo88ixMbPXf/RP7u31Y0cmjJ/KEmrHmfYhmhEvsDaTYPiyTRne64jUgCbADfY0YeoQk4/Xyw==} + '@oxfmt/binding-win32-arm64-msvc@0.76.0': + resolution: {integrity: sha512-2CcICDrQKqMAOFuzmts/8Ov5iKb+DW/QrW4MFsl2bnRg86uoiUvtqUkHqNSY19Shegc8pBHiXMSEHDjIg94o0A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@oxfmt/binding-win32-ia32-msvc@0.72.0': - resolution: {integrity: sha512-gQtFW+Ii8BWgtJTAD17TY/WsdNS5gUfAPov8iI1jeq4r9lRRYImmxPL08UU00/RLaCfBJwh2UgINnDY0iOiZ+A==} + '@oxfmt/binding-win32-ia32-msvc@0.76.0': + resolution: {integrity: sha512-NjZLJg+tQpMWVSyeWBBKCpib7H/uLq84ZzxCvY5eqHzSaItuzCECGA9MBiZwmW8fnkBIfppg49Ib//LSCGAp8Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ia32] os: [win32] - '@oxfmt/binding-win32-x64-msvc@0.72.0': - resolution: {integrity: sha512-uhooIN+DCzWX5uH7mQkSVCsODqsGluGJ4n3ch4+mITtWKpESMDjUJUSDBAVFuYQDwqY2McPDKdKJbM0oZVW/Qw==} + '@oxfmt/binding-win32-x64-msvc@0.76.0': + resolution: {integrity: sha512-0vCMaX/qloc7uaKBDRh+62SBW8EqmhS7c8/al+PxD594ao4lyEWdcoEmVoBgnCNVW07GDpg+9uPV7x6ta9mljw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] - '@oxlint/binding-android-arm-eabi@1.87.0': - resolution: {integrity: sha512-22tVIHlB9898OYsBKmYB6He1MCSqdTmK1BVWuSNUTVrpS0KWNege+U9uEYqGJ+KatQag0r/oU44i3OOs46z7HQ==} + '@oxlint-tsgolint/darwin-arm64@7.0.2005': + resolution: {integrity: sha512-VqDZxcZVjlonNLuuvraVNgDQt+1ndwa4yJo8OqsK4HYh/61ba9IlMStCVfi/aaIqRoDhNbAKC8gdcTrXqnb+Ug==} + cpu: [arm64] + os: [darwin] + + '@oxlint-tsgolint/darwin-x64@7.0.2005': + resolution: {integrity: sha512-4kUfLRNYoVpv0Tm3jPYrvxyfOc/LmdvFC3pKZ4tL6K7lA7K/VS81SAtmxRzbYXYSyb3SBWhwsuX+df4neqzxxA==} + cpu: [x64] + os: [darwin] + + '@oxlint-tsgolint/linux-arm64@7.0.2005': + resolution: {integrity: sha512-rhUNcPsBlKvhXtrbhbBUidtRBRdJ8fbEHN9H5Q5N59gby18ruGuDA7KUxl7oRnUzp797uykYQhkBDm+0KpfK/Q==} + cpu: [arm64] + os: [linux] + + '@oxlint-tsgolint/linux-x64@7.0.2005': + resolution: {integrity: sha512-tKs9yinDQZOHygM0e8EJnjTU3mzJtdfkOZP6Udu82iLMePUSHOhTJ9zzU/mSd1hQxURI4LTRRiFhfzC+PzwdNA==} + cpu: [x64] + os: [linux] + + '@oxlint-tsgolint/win32-arm64@7.0.2005': + resolution: {integrity: sha512-VYPnu1gjfbSv+ROhuyNfMs382D4zQU2ZRc8Uc3nuEZo1k2kf+1KfTrg4hrlWh73h9GI+dUWyo+DYCQzUBlPwcQ==} + cpu: [arm64] + os: [win32] + + '@oxlint-tsgolint/win32-x64@7.0.2005': + resolution: {integrity: sha512-ekU89cTGy9fpQzuvxIsFHrnoP8XoFjGIRgPEW6eqgY2NYjGy9pwpjF79o04WXRMJFKRrcaVqkZXUUBdLsqpQDw==} + cpu: [x64] + os: [win32] + + '@oxlint/binding-android-arm-eabi@1.91.0': + resolution: {integrity: sha512-eOqJUUS1MCqIoUUxMIkuwaqIdKaHr1SXYA0CQI95UUrF8jwQylQH33bBmnqhZfvWXKlRB2Ylx/+Sbk/ctEqzZQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [android] - '@oxlint/binding-android-arm64@1.87.0': - resolution: {integrity: sha512-JfZQ3MWf74n8ov0DojZpkOduIubYJvZL5tbTMMhDutsal6u1xH1QuNpN+lK+EQwF8AeAfgwTR2fgh5U2br27XA==} + '@oxlint/binding-android-arm64@1.91.0': + resolution: {integrity: sha512-vIJU4lRxK0EhbBt+iR3rkq3pio4I+V5Gshwjei3plNjN+CIq0WxWHzYVI06J9KN8Ar3hyNSFtzJAjVRLZOYpjg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@oxlint/binding-darwin-arm64@1.87.0': - resolution: {integrity: sha512-rkx6Xvvw93z2GImVOyvbZwAZcoY0Z6MJW177XNsSB+i/CBsH7ANyelTp01VZyIkM3iSXtqKVb4+ptBgPHap5pQ==} + '@oxlint/binding-darwin-arm64@1.91.0': + resolution: {integrity: sha512-tLy76MurwAOpQt5QVMkJUgexBSWhB7qdvAYb14bc0xntZS6f55aKicbZoxZ/QlmAbnrdlXeD5+IjwY8EZ9RWTg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@oxlint/binding-darwin-x64@1.87.0': - resolution: {integrity: sha512-cw5nYw7L/pQ2SgGBgOcg/Qo89llQre3vIc/kuBLhSICzu1r5s8L76H3ug6AIFsD98WpROj8/z5JVzkf4daxHaQ==} + '@oxlint/binding-darwin-x64@1.91.0': + resolution: {integrity: sha512-zPeMmjAqm5vXxbTp/JqYuc9gGSbUuEaeCAkFHB4TCRLTlfJGD//Fkx03YvZHCHZJ7ideLiiLcae+3f2I27qnaA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@oxlint/binding-freebsd-x64@1.87.0': - resolution: {integrity: sha512-x/SuznE6loRZK9gz9AS4ZmzNzSu+5KdeoCS+sVHhnrE8HM6AD8UyTjwldQTTqlXGvkwHASgB0NiTNOc3o3PdAg==} + '@oxlint/binding-freebsd-x64@1.91.0': + resolution: {integrity: sha512-psOR9+xGMXn0hj4KY5M2kjSQ1n0TCMdYbPOraoV0iQyl7mw2oBBYGUM2+ma40m1YLVrktTBOta4FjrmcOHDhrg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@oxlint/binding-linux-arm-gnueabihf@1.87.0': - resolution: {integrity: sha512-+JEDmCAXiiFmKhAjZhgAOwaHWY6WENOQ5QA+lFuY59tgsUCDOTRi46B+lENK6CWvtxsXpwkZXNOgpjAQcpIpnA==} + '@oxlint/binding-linux-arm-gnueabihf@1.91.0': + resolution: {integrity: sha512-1PNA1j4ETxawvxfz6ueDxWgQgWkXPbv44DWZmC7LR07GqojGFDOwWbosOT6/AYiJr7zMXEhn2dPWMkyFFOFpUQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxlint/binding-linux-arm-musleabihf@1.87.0': - resolution: {integrity: sha512-/uC9XqXLAC9AHFLNycwmSQEvKqGrOCgU+uXALI7gNW0DG81TJ/3T2eHnKdRvcb5R1gFEfjxDwI4e4zIa29rICQ==} + '@oxlint/binding-linux-arm-musleabihf@1.91.0': + resolution: {integrity: sha512-jcNePVpca37lTbHmiPMnVbPAAW0rH9kAoDjsDv6vESEX9pzazIR1q5SyYuc1rQzdjHtc2VVCDN9jDh6tHcOHyA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxlint/binding-linux-arm64-gnu@1.87.0': - resolution: {integrity: sha512-FTRYPsBy/M728vnUv7l+KAwSAa3Qi4BQbhVvy7NYuMTZ0sUa/OWsbMx79HVFw6u/5KWcaYayDsoOiv7xbevzDg==} + '@oxlint/binding-linux-arm64-gnu@1.91.0': + resolution: {integrity: sha512-TJi78UX6R+9qZ23ZKtzN6adfW83bjY0NXsCRMBRH6H7IizaMXmZbdRAtjedMkx77bT46YQH0csawsY9lwha8MA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-arm64-musl@1.87.0': - resolution: {integrity: sha512-6sC+N7IY0h1egd8SrYUGNN7CUyKJZ4bIZakKa7V7hfinf4jfi8Kq4+klJvFp5DqXcwMn44I5MeBwmJluO1odFg==} + '@oxlint/binding-linux-arm64-musl@1.91.0': + resolution: {integrity: sha512-OowlLroUTzKq5OBvbu6iegch8SJ2DivXFCukzPWURwvcJhMj7/P0CUGH5qrDlxT1Kh48dcxqYqrvE8qK6xTLKQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@oxlint/binding-linux-ppc64-gnu@1.87.0': - resolution: {integrity: sha512-d5Mnn+ICbhoJPi37Ccjy+86T5qfH2+mSTrTMBXNPfB+wqSWOayBBLLIrCXdUy1YssluCVdGkl+DO9w5r5ODmUA==} + '@oxlint/binding-linux-ppc64-gnu@1.91.0': + resolution: {integrity: sha512-QF/5Ge8yGpWg5s4awMNHfVKh1WOmk591Qg082i6CHenXYBa+W1E5RwWZXaKUOw4Ko7CCjqg3TfBc0AzhnqblYg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-riscv64-gnu@1.87.0': - resolution: {integrity: sha512-sf5YWuUo1Dx9loqWCgF8P278MycfcD4JHjDC/LV5j11L3Lqa4PFiwCjD6B8kP4AjsgZZkLn3xbpJEtZBaccs4Q==} + '@oxlint/binding-linux-riscv64-gnu@1.91.0': + resolution: {integrity: sha512-dXlsKlNhzJQX1nageGKnvWe1D7uTng249hQM80CG/YPZ8F/VZHbxVLhImgurdWBOmu86XOemValLjrW6QIOM/Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-riscv64-musl@1.87.0': - resolution: {integrity: sha512-+aCraYbmK3uU3P0rFojjeaK9pGY6JvBDXh/0CM+gPyWKmNmXmnFe0qj4qj02U4ibFpbd9Pa9CmDvIdjJUd29rA==} + '@oxlint/binding-linux-riscv64-musl@1.91.0': + resolution: {integrity: sha512-tznkj5VrWNRUfymkaLcJetgMLbP9suL5ob/m7j0Fdbnm5u3Li/Ezo/YcBixiuwdL1sg0oGpyTe86It0J6T+Lxg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [musl] - '@oxlint/binding-linux-s390x-gnu@1.87.0': - resolution: {integrity: sha512-7rzbZQIljo6VLWVPqUyLa2P/WV3VFsJB4M52R4NCUJn1A50yjtUsHxiMHFL9opEKGFIiTbZ3VQzmtcJOPUq4NQ==} + '@oxlint/binding-linux-s390x-gnu@1.91.0': + resolution: {integrity: sha512-sNvfLiUYQkVsLNUgIW24AEYTHSd2zZ1vAxXssPdjuQHTtCpRvQihYri6d5z5FY7w/QrcnB5+g9E+/sqmZq8tfA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@oxlint/binding-linux-x64-gnu@1.87.0': - resolution: {integrity: sha512-Dry46Fa+AXE/xt9J/YriujU1pU9mzfNWHGQwtOYibAFH8HLrKWCi93AhIGnuUMiwn2JbuBkRyz51f50Ly4r4ow==} + '@oxlint/binding-linux-x64-gnu@1.91.0': + resolution: {integrity: sha512-eA25ETvimhUZ89y5BcunNY7yv7qwG2I7V7dFQAU+mIEqZ57gBCXdIERl0yXOEt43zjsw0yK2gRKTc+twF706wQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-x64-musl@1.87.0': - resolution: {integrity: sha512-f/HMZez74gJvnRpGz+b5sdGyWrEgRLmFTXg9sNoqjPWogGxYHUhXKTKyMiYsu9rUGR2ciYqL3fk+Ua4JhMJbRA==} + '@oxlint/binding-linux-x64-musl@1.91.0': + resolution: {integrity: sha512-4hZ4Z9K+OkcTpAHDoUTMg/8MModbM0aocrl9KnGzp9h5iKqjrXraEUZorYoVCT7xoK93CAHXgTndxRBrOjH/fA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@oxlint/binding-openharmony-arm64@1.87.0': - resolution: {integrity: sha512-lEC6ZfPZm/07JlB7FsOWX9o1RiHlXiBW594LSUGuXmekC8LZmvUPP9XzE2WZcNxJi5cHA/Fw56o02c3JxgMA5g==} + '@oxlint/binding-openharmony-arm64@1.91.0': + resolution: {integrity: sha512-gtqn4b0kLpGe46Qh7NHiR86wZpd+TLaesO106s7V3RG33r63VB94LW5qPKEDJX64osh3xfjnPFn1M0484bC7wQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@oxlint/binding-win32-arm64-msvc@1.87.0': - resolution: {integrity: sha512-afBWKOD36dUiA9AenaiWpCg8xfyUVPYznyAAVXu413brK4RA5UI/Xoc4yfeGIT8G1a44MV+JR7hioryerBDzGQ==} + '@oxlint/binding-win32-arm64-msvc@1.91.0': + resolution: {integrity: sha512-KQItBdsyHN28U3z/bEek6h9pvG3Uqv564QYO8K1bE/V7YRZgpHlRnfNKVPHkk4sfYKyPzEjCgW80QkImOLvJog==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@oxlint/binding-win32-ia32-msvc@1.87.0': - resolution: {integrity: sha512-daptNsEOuru4/nJTxV4DBHNJ5GepzmaBVQf+jjgKQGi9NRlZKik+RFq4hUL7ewsF1pwjKM+SkYaMbF82UwFGnw==} + '@oxlint/binding-win32-ia32-msvc@1.91.0': + resolution: {integrity: sha512-XFKqbbsQVmTgw+CyBKuzSZtAa45viom1naFfulKmkTFdDyDaBQaBqEz5J61TI8iwBynU+F8q7qPD+9mplZRhEg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ia32] os: [win32] - '@oxlint/binding-win32-x64-msvc@1.87.0': - resolution: {integrity: sha512-k+m/EShyXE29J/r1fjk0HlAzhN5JhIvj044oSJkXTEkCLrWZQgXb/3r4q5LTw/eaKW/4GuMXG2xmiJs3s5rPNw==} + '@oxlint/binding-win32-x64-msvc@1.91.0': + resolution: {integrity: sha512-DmpK0PthG66Bcz5Y4JqNbzXltzyLQtg3ofYpd25+ejm7kQYUM78VL1uIP/ZFct2781mwUyBX37LatFPCTVp35A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] @@ -1129,60 +983,6 @@ packages: '@remix-run/node-fetch-server@1.0.0': resolution: {integrity: sha512-M/zI70dmLQdIae+mG95XecvoI3uw0o/ZwflsMAFtaQA/MceznyKaT8aSPvvGVK6yRufzQrY++Ohwei7EhyY3qw==} - '@rollup/plugin-alias@5.1.1': - resolution: {integrity: sha512-PR9zDb+rOzkRb2VD+EuKB7UC41vU5DIwZ5qqCpk0KJudcWAyi8rvYOhS7+L5aZCspw1stTViLgN5v6FF1p5cgQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - - '@rollup/plugin-commonjs@28.0.9': - resolution: {integrity: sha512-PIR4/OHZ79romx0BVVll/PkwWpJ7e5lsqFa3gFfcrFPWwLXLV39JVUzQV9RKjWerE7B845Hqjj9VYlQeieZ2dA==} - engines: {node: '>=16.0.0 || 14 >= 14.17'} - peerDependencies: - rollup: ^2.68.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - - '@rollup/plugin-json@6.1.0': - resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - - '@rollup/plugin-node-resolve@16.0.3': - resolution: {integrity: sha512-lUYM3UBGuM93CnMPG1YocWu7X802BrNF3jW2zny5gQyLQgRFJhV1Sq0Zi74+dh/6NBx1DxFC4b4GXg9wUCG5Qg==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^2.78.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - - '@rollup/plugin-replace@6.0.3': - resolution: {integrity: sha512-J4RZarRvQAm5IF0/LwUUg+obsm+xZhYnbMXmXROyoSE1ATJe3oXSb9L5MMppdxP2ylNSjv6zFBwKYjcKMucVfA==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - - '@rollup/pluginutils@5.4.0': - resolution: {integrity: sha512-MfPp06CjRLfXQ3wY0R8vJDYBy/MvVcc9OulEfR0B8Iv9ko+GCNaRZ+EpJYFl27LhKsZK0o420sYCRHCjfCgeUg==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - '@rollup/rollup-android-arm-eabi@4.63.1': resolution: {integrity: sha512-UZ8sUxPTiHWYX9QNdJedb1kDZSpS1t/VPWBWGSgqHNi9w3Cu6IXvu2mzbhiTiPvtrqgTQJ+zqiAq2iPIPilpaQ==} cpu: [arm] @@ -1378,9 +1178,6 @@ packages: '@types/range-parser@1.2.7': resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} - '@types/resolve@1.20.2': - resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} - '@types/send@0.17.6': resolution: {integrity: sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==} @@ -1402,6 +1199,126 @@ packages: '@types/ws@8.18.2': resolution: {integrity: sha512-67MQl+fpWKVTT1NYdnmo3U4sc/xPo/zQBncVnI74qmQa0z/b+1g6iYqNmGCPbxO+zz2aklb08a0oHfegiVd0/w==} + '@typescript/typescript-aix-ppc64@7.0.2': + resolution: {integrity: sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ==} + engines: {node: '>=16.20.0'} + cpu: [ppc64] + os: [aix] + + '@typescript/typescript-darwin-arm64@7.0.2': + resolution: {integrity: sha512-gowzar9MwS/aRWp6f3a4KUqzRjAZjOsmGNCM6LcTgXum+dBfgsBVMN+AgvOCCbguXyick6LJhpBszxMebJ8syA==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [darwin] + + '@typescript/typescript-darwin-x64@7.0.2': + resolution: {integrity: sha512-SZ9xZInqApNlNGc9s0W1VSsktYSOe9cFqNOIqmN1Gs8SmkjKZYFt017G4VwPxASInODuAdbTW7sXiFUf893RgA==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [darwin] + + '@typescript/typescript-freebsd-arm64@7.0.2': + resolution: {integrity: sha512-W5NH4y/J0plIIS5b2xvTEkU7JFxyqdMAOgf+Ilhl0vHQXKO5dZoxd+C/jEtq56c4F3wk71RB4BMRQ2XdI+bwYQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [freebsd] + + '@typescript/typescript-freebsd-x64@7.0.2': + resolution: {integrity: sha512-UMGDx5sTpzNw3WiPebH7l90IWfJggEd+egHt/q6p7/Cm3zqoV7VxkGXt+3DxPIw8CcmvAB0j3sVVfbhX+M4Tpw==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [freebsd] + + '@typescript/typescript-linux-arm64@7.0.2': + resolution: {integrity: sha512-Qh4eU4/y3yDjnfjjyPYihMj5/ODIlmt+Bzu17OI+fiSRDW57QmU5SiN63exPRNJPKUzcc1INa1NXdrJ+MqHjUQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [linux] + + '@typescript/typescript-linux-arm@7.0.2': + resolution: {integrity: sha512-gffT3xPz9sR7j/YJExkyPntrI0P2EP9XbOyWzth2/Gs0RstK+90RBcO0ncXoXy/beYll1SXw846Nf2zdnEz0QQ==} + engines: {node: '>=16.20.0'} + cpu: [arm] + os: [linux] + + '@typescript/typescript-linux-loong64@7.0.2': + resolution: {integrity: sha512-uEHck9i8hoAzXPiYRib1O7miOnz23SxIeVl6F4LXox+qov1K35jHcEW6VHKvZI+pyvl7fZEP4MCU5LYvIq1GuQ==} + engines: {node: '>=16.20.0'} + cpu: [loong64] + os: [linux] + + '@typescript/typescript-linux-mips64el@7.0.2': + resolution: {integrity: sha512-R4KvAMnE43W5Qeqb0Ly56O3mWMWIAgsMyz36DCaycd5nbg/9kzm0liw3JocfRqyJY0KPmzFjbswozXyW0DnIYA==} + engines: {node: '>=16.20.0'} + cpu: [mips64el] + os: [linux] + + '@typescript/typescript-linux-ppc64@7.0.2': + resolution: {integrity: sha512-DORx5b3sd/4S7eayxm4FQv+A7CrkUIGRaHiwI8oiHTAI1fAPWhF4J0vAlkC8biAlHSVVwxMQ3tjZ2/DVbnQiiA==} + engines: {node: '>=16.20.0'} + cpu: [ppc64] + os: [linux] + + '@typescript/typescript-linux-riscv64@7.0.2': + resolution: {integrity: sha512-wf0jqEDOjrPRnKwYRyyJDRo11KMbvMFrU+q4zqKyChODBzvlkbhNQfKvLxQCcwTpdDaXSHZTVuh0JoCrKCUMHQ==} + engines: {node: '>=16.20.0'} + cpu: [riscv64] + os: [linux] + + '@typescript/typescript-linux-s390x@7.0.2': + resolution: {integrity: sha512-IkwJc3L7yhytWd/ewjyxNDfOmswCm9GWMJT/ue/dU4aZNbwZeYAetq42VyLmsmSjvoX7z74X6ZaYCtzAr0EuGw==} + engines: {node: '>=16.20.0'} + cpu: [s390x] + os: [linux] + + '@typescript/typescript-linux-x64@7.0.2': + resolution: {integrity: sha512-EYdf2cNg7rgCWJnxCdJ+F3V39O8ihb37eHAu1LK8oAFizgTQbPOK7zHHXbPt8rX24COqODXeI3sIf0fCXG7H/A==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [linux] + + '@typescript/typescript-netbsd-arm64@7.0.2': + resolution: {integrity: sha512-+polYF4MF04aPpO5FTkHran9yUQDSXqy5GiSDKpsll5jy3l3+g9QLhpf39T+ePtefhXLOGrLl0QIjkQP6VnelA==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [netbsd] + + '@typescript/typescript-netbsd-x64@7.0.2': + resolution: {integrity: sha512-8YIT0EHM/3dq10ZOVF/A7pc/YSMtbcecct4rWtexrnSCHOPcpC2KTLXfTCR6vDpnSiY12heNb1GiN/wu+T/FyA==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [netbsd] + + '@typescript/typescript-openbsd-arm64@7.0.2': + resolution: {integrity: sha512-APT8+ClYnuYm1u9+kgGXoMj2VzWzcymwh2gNSQVySHfkRDGOTVkoWLjCmOQSaO+PoqQ57B0flRp9SA+7GnnkzQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [openbsd] + + '@typescript/typescript-openbsd-x64@7.0.2': + resolution: {integrity: sha512-yX7s+Q0Dln0Dt9tEzZsAjXXR/+ytBM7AlglaqyeMPxQszJ1JhlJdZ6jLA+IzldHtflX81em7lDao1xXu+aRRkg==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [openbsd] + + '@typescript/typescript-sunos-x64@7.0.2': + resolution: {integrity: sha512-dLJDGaLZ1D4HPQn62u1n8mBDkJREwMsAkCdkwd4Ieqw+x3TUyTsqY0YiBCtE6H6OzzgGk3iuZ3vFWRS+E8/d1g==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [sunos] + + '@typescript/typescript-win32-arm64@7.0.2': + resolution: {integrity: sha512-Gyl1Vy6OsWesLzmq+EP0Fb7b4Nid5232AvcA2SFcdYreldpNtYFFofPjnt62y9hQy7VTaZp65ICJjuAQRaVcIQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [win32] + + '@typescript/typescript-win32-x64@7.0.2': + resolution: {integrity: sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [win32] + '@vitest/coverage-v8@4.1.11': resolution: {integrity: sha512-8MVGEFnJIcdGjcbfKmeq8z0pZHH0JlVtoVZH9Q/qwUp6wyFnEJUBMrw9DCaj+ra3vShGmhavjalMIhPNxZAUcw==} peerDependencies: @@ -1501,24 +1418,12 @@ packages: resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} engines: {node: '>=8.0.0'} - autoprefixer@10.5.4: - resolution: {integrity: sha512-MaU0U/za7N3r6brxD4YB/l4NSrFzLPlANv6wEuQVaIPlD3L4W9rFcQPbL/EilY9BHhHvhfcz3gInDLrEtWT4EA==} - engines: {node: ^10 || ^12 || >=14} - hasBin: true - peerDependencies: - postcss: ^8.1.0 - avvio@9.3.0: resolution: {integrity: sha512-g2tQ7LE7oOSqDfwEm3M+ZCMTJc7KiZCdJ4UwyZJb5ckTKyYu50OYmvv0mCFXPuYXoM4zkSt8zM9XQ9KCvxA74A==} axios@1.20.0: resolution: {integrity: sha512-r8aOh8j9cGKpgQAqpzrUHnSIc6a59Y3Xf/cv8sy1DrHCkZHzQGEuoq1tARk6qSyDdtQGSDgpb9kFlruzPvrgwg==} - baseline-browser-mapping@2.11.21: - resolution: {integrity: sha512-uh8vpY/1/YyFkunIDFH/12p7/7VdPKA1hejMVEbdkEaWnUz0Hesvx5EbiU6XxjyHZIOju+ZMbQJkRh+es3/spQ==} - engines: {node: '>=6.0.0'} - hasBin: true - binary-extensions@2.3.0: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} @@ -1531,18 +1436,10 @@ packages: resolution: {integrity: sha512-2cGmJupaNgg+QUwVLAucDuWuoMZ6EX9iHDRswZ5lsNYEmwPaRknMPCLZz07yTzVq/83p4o/wzbDZbBrTvGGTIw==} engines: {node: '>=18'} - boolbase@1.0.0: - resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} - braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.28.8: - resolution: {integrity: sha512-V2NpofLblG64mfOtSgDhOJESZEGogzDMBv/q+W6oc4LXWP/q75eOXoOaaOu1EOadB9U4Bwx/e0yzbvwKH8zalA==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - bumpp@12.3.0: resolution: {integrity: sha512-YgW09sgbIGQmAD/Jk7FEGP0tm0PeDz+Zgk+IAk+MOHhb/98pj/l3CgkxSjd7C1O99JPxTNwS+bPOTNaHuNh6lQ==} engines: {node: ^22.18.0 || ^24.11.0 || >=26.0.0} @@ -1591,12 +1488,6 @@ packages: resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} engines: {node: '>= 0.4'} - caniuse-api@3.0.0: - resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} - - caniuse-lite@1.0.30001810: - resolution: {integrity: sha512-TITQPUkaz+aVk5GL6NhOdwk1aEaNTSDPsGFWrTuhKGtjTF70jL/Oht2W4c6rXUe5fu7Ie19VIahAXHIIiWWNeg==} - chai@6.2.2: resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==} engines: {node: '>=18'} @@ -1632,13 +1523,6 @@ packages: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} - commander@11.1.0: - resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} - engines: {node: '>=16'} - - commondir@1.0.1: - resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} - component-emitter@1.3.1: resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==} @@ -1699,54 +1583,6 @@ packages: cookiejar@2.1.4: resolution: {integrity: sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==} - css-declaration-sorter@7.4.0: - resolution: {integrity: sha512-LTuzjPoyA2vMGKKcaOqKSp7Ub2eGrNfKiZH4LpezxpNrsICGCSFvsQOI29psISxNZtaXibkC2CXzrQ5enMeGGw==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.0.9 - - css-select@6.0.0: - resolution: {integrity: sha512-rZZVSLle8v0+EY8QAkDWrKhpgt6SA5OtHsgBnsj6ZaLb5dmDVOWUDtQitd9ydxxvEjhewNudS6eTVU7uOyzvXw==} - - css-tree@2.2.1: - resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} - - css-tree@3.2.1: - resolution: {integrity: sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} - - css-what@7.0.0: - resolution: {integrity: sha512-wD5oz5xibMOPHzy13CyGmogB3phdvcDaB5t0W/Nr5Z2O/agcB8YwOz6e2Lsp10pNDzBoDO9nVa3RGs/2BttpHQ==} - engines: {node: '>= 6'} - - cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} - hasBin: true - - cssnano-preset-default@7.0.17: - resolution: {integrity: sha512-11qO63A+czwguQFJCaTdICvbaxn0pJzz/XghLlv+OT7WyToDxAMR0Xb3/26/l0y0hQJywwNbj/SLSQlGBHE1OA==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.5.13 - - cssnano-utils@5.0.3: - resolution: {integrity: sha512-ynIREMICLxkxm7e9bCR9sh75s4Q5drICi0ua1yxo5jH2XPBqSKkl4dOh4EbFqtUmnTMhRffHgYL0EKKkMjtJTg==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.5.13 - - cssnano@7.1.9: - resolution: {integrity: sha512-uPR75+5Dk/WJ/YSPR1/YDHdwMM9c5FsaARljfKWgeCKLKOtJ0we21xy/RcCjn53fZnD/f6yYEIZ8pu18+GnbNQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.5.13 - - csso@5.0.5: - resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} - debug@2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} peerDependencies: @@ -1764,10 +1600,6 @@ packages: supports-color: optional: true - deepmerge@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} - engines: {node: '>=0.10.0'} - default-browser-id@5.0.1: resolution: {integrity: sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==} engines: {node: '>=18'} @@ -1805,22 +1637,9 @@ packages: dezalgo@1.0.4: resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==} - dom-serializer@2.0.0: - resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} - - domelementtype@2.3.0: - resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} - - domhandler@5.0.3: - resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} - engines: {node: '>= 4'} - - domutils@3.2.2: - resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} - - dotenv@16.6.1: - resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} - engines: {node: '>=12'} + dotenv@16.6.1: + resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} + engines: {node: '>=12'} dotenv@17.4.2: resolution: {integrity: sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw==} @@ -1833,17 +1652,10 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.5.422: - resolution: {integrity: sha512-UvA/32XqrLDdZSn7Jllo1AYNcWji/G0d5M0GTViE7KoGBiMunw3a34Sb2KO4ZZyrSEhqsxFoVhWWJshdyfKqJA==} - encodeurl@2.0.0: resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} engines: {node: '>= 0.8'} - entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} - es-define-property@1.0.1: resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} engines: {node: '>= 0.4'} @@ -1863,26 +1675,14 @@ packages: resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} engines: {node: '>= 0.4'} - esbuild@0.25.12: - resolution: {integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==} - engines: {node: '>=18'} - hasBin: true - esbuild@0.28.2: resolution: {integrity: sha512-HKVLS8dvII+xoKW9kmqxbRKrnWEXfJJr/FZhhJmiqIB0e053QNYFqOBouTMO/k5sID4MvCiUCvv8b9M4h32wIA==} engines: {node: '>=18'} hasBin: true - escalade@3.2.0: - resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} - engines: {node: '>=6'} - escape-html@1.0.3: resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} @@ -1964,9 +1764,6 @@ packages: resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - fix-dts-default-cjs-exports@1.0.1: - resolution: {integrity: sha512-pVIECanWFC61Hzl2+oOCtoJ3F17kglZC/6N94eRWycFgBH35hHx0Li604ZIzhseh97mf2p0cv7vVrOZGoqhlEg==} - follow-redirects@1.16.0: resolution: {integrity: sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==} engines: {node: '>=4.0'} @@ -1988,9 +1785,6 @@ packages: resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} engines: {node: '>= 0.6'} - fraction.js@5.3.4: - resolution: {integrity: sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==} - fresh@0.5.2: resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} engines: {node: '>= 0.6'} @@ -2068,9 +1862,6 @@ packages: resolution: {integrity: sha512-O6+/eCYRkzzzy0rPWwKLiGBR1nFuUPZynnwjxN1MBA62NNqbT0wQEzQyK2gSO5yDIDB336sXQleAhOHrzlYyKw==} engines: {node: '>=16.9.0'} - hookable@5.5.3: - resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} - html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} @@ -2105,10 +1896,6 @@ packages: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} - is-core-module@2.16.2: - resolution: {integrity: sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==} - engines: {node: '>= 0.4'} - is-docker@3.0.0: resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -2127,9 +1914,6 @@ packages: engines: {node: '>=14.16'} hasBin: true - is-module@1.0.0: - resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} - is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} @@ -2137,9 +1921,6 @@ packages: is-promise@4.0.0: resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==} - is-reference@1.2.1: - resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} - is-wsl@3.1.1: resolution: {integrity: sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==} engines: {node: '>=16'} @@ -2176,26 +1957,13 @@ packages: jsonc-parser@3.3.1: resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} - knitwork@1.3.0: - resolution: {integrity: sha512-4LqMNoONzR43B1W0ek0fhXMsDNW/zxa1NdFAVMY+k28pgZLovR4G3PB5MrpTxCy1QaZCqNoiaKPr5w5qZHfSNw==} - light-my-request@6.6.0: resolution: {integrity: sha512-CHYbu8RtboSIoVsHZ6Ye4cj4Aw/yg2oAFimlF7mNvfDV192LR7nDiKtSIfCuLT7KokPSTn/9kfVLm5OGN0A28A==} - lilconfig@3.1.3: - resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} - engines: {node: '>=14'} - 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} - lodash.memoize@4.1.2: - resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} - - lodash.uniq@4.5.0: - resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} - magic-string@0.30.21: resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} @@ -2210,12 +1978,6 @@ packages: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} - mdn-data@2.0.28: - resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} - - mdn-data@2.27.1: - resolution: {integrity: sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==} - media-typer@0.3.0: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} engines: {node: '>= 0.6'} @@ -2278,27 +2040,6 @@ packages: engines: {node: '>=10'} hasBin: true - mkdist@2.4.1: - resolution: {integrity: sha512-Ezk0gi04GJBkqMfsksICU5Rjoemc4biIekwgrONWVPor2EO/N9nBgN6MZXAf7Yw4mDDhrNyKbdETaHNevfumKg==} - hasBin: true - peerDependencies: - sass: ^1.92.1 - typescript: '>=5.9.2' - vue: ^3.5.21 - vue-sfc-transformer: ^0.1.1 - vue-tsc: ^1.8.27 || ^2.0.21 || ^3.0.0 - peerDependenciesMeta: - sass: - optional: true - typescript: - optional: true - vue: - optional: true - vue-sfc-transformer: - optional: true - vue-tsc: - optional: true - mlly@1.8.2: resolution: {integrity: sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA==} @@ -2332,17 +2073,10 @@ packages: resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} hasBin: true - node-releases@2.0.54: - resolution: {integrity: sha512-YHs7BmmcsdAI5Ozuf8JZo6PT0mv2GIWC9vMfvUC3dp65M8hn7Ux8CPL+2oBI7juNuj9d0ndhTcznq2ODBps9cQ==} - engines: {node: '>=18'} - normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - nth-check@2.1.1: - resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} - nypm@0.5.4: resolution: {integrity: sha512-X0SNNrZiGU8/e/zAB7sCTtdxWTMSIO73q+xuKgglm2Yvzwlo8UoC5FNySQFCvl84uPaeADkqHUZUkWy4aH4xOA==} engines: {node: ^14.16.0 || >=16.10.0} @@ -2380,25 +2114,32 @@ packages: resolution: {integrity: sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==} engines: {node: '>=18'} - oxfmt@0.72.0: - resolution: {integrity: sha512-16OQeL0uhPZbfmT9S9WWM0Nv9+BmVi8Ra1uTYaSKj/qSCs6FB30KOhz9JoNYw6thT+K5bVxsk/tSEOu497i34g==} + oxfmt@0.76.0: + resolution: {integrity: sha512-Yo9RIn9lRWTm/U8obHbXUWc39lCpEFXlEggFoPx01zS18OCFi7mAwMmL05+p1AunuJgSkONffWyBHJzpMMCRuQ==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: + '@astrojs/compiler-rs': ^0.5.0 svelte: ^5.0.0 vite-plus: '*' peerDependenciesMeta: + '@astrojs/compiler-rs': + optional: true svelte: optional: true vite-plus: optional: true - oxlint@1.87.0: - resolution: {integrity: sha512-drxVlaW7Oqq7wSy1CN25znRu00aRq8n57Q2wniJRxCmtYVz07ufCm7EVDPQFZURrTgQIjzKrVEHAD/HcvJXObg==} + oxlint-tsgolint@7.0.2005: + resolution: {integrity: sha512-6ccPGu4u4J9bwYPHXBFPee3RZrX3BboRdU7k14zRDDB1lvN3O7J/vPRFdaEfa1+CWx4xnQQOp4ctoaF66oO0uw==} + hasBin: true + + oxlint@1.91.0: + resolution: {integrity: sha512-vjy/cBZcEFcYh3dbxUoQK+bjc+QaY3ZWo86aJkZ5YAwp/HyiqP7dTdNgbvcIVJafhAH5sZbTqBp4sZcicEZngA==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: - oxlint-tsgolint: '>=7.0.2003' + oxlint-tsgolint: '>=7.0.2005' vite-plus: '*' peerDependenciesMeta: oxlint-tsgolint: @@ -2425,9 +2166,6 @@ packages: resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - path-to-regexp@0.1.13: resolution: {integrity: sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==} @@ -2481,199 +2219,16 @@ packages: resolution: {integrity: sha512-emEcLuomt2j03vxD54giVB4SxTjnsqkU692xZOZXHDVoYyypEm+b3jpiTcc+Cf+myooc+/Ly0z01jqeNHVgJGw==} engines: {node: '>=16.0.0'} - postcss-calc@10.1.1: - resolution: {integrity: sha512-NYEsLHh8DgG/PRH2+G9BTuUdtf9ViS+vdoQ0YA5OQdGsfN4ztiwtDWNtBl9EKeqNMFnIu8IKZ0cLxEQ5r5KVMw==} - engines: {node: ^18.12 || ^20.9 || >=22.0} - peerDependencies: - postcss: ^8.4.38 - - postcss-colormin@7.0.10: - resolution: {integrity: sha512-yFr6JezOolHLta/buLE71VKPh2mXursp4saVe98/ol8ZnEWhL+racShqPKlvd/DKWLre/39B6HhcMXf7RZ3hxg==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.5.13 - - postcss-convert-values@7.0.12: - resolution: {integrity: sha512-xurKu5qqk4viR3Cp3p4xBR4KfnZm4w4ys6+UBwBmeuBSNkH7+DtLnYOYnOffgtE4yx8sH9S1VZ6RAAvROXzP2Q==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.5.13 - - postcss-discard-comments@7.0.8: - resolution: {integrity: sha512-CvvS5S9WrXblFXCEJ9nVo+4z+eA7zSC7Z88V1HEJuwlQhlFnYTIjg1xJY+BCUiG2bvICap2tXii4mP22BD108Q==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.5.13 - - postcss-discard-duplicates@7.0.4: - resolution: {integrity: sha512-VBNn1+EuMZkeGVVtz0gRfbNGtx9IFgAsAV+E2pHtXPrp4qfGBkhTIiAuE/wrb+Y6Pakg9NewAlfTpYIFAWODtw==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.5.13 - - postcss-discard-empty@7.0.3: - resolution: {integrity: sha512-M2pyjQCU+/7cMHVtL6bKTHjv0lZnPLMpicgr67Dlth7AbuV9gjVTtUqaRwn6Pp6BwSDspUzhz8SaUrRykJU5Dw==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.5.13 - - postcss-discard-overridden@7.0.3: - resolution: {integrity: sha512-aNovXo9UsZuRNLzHJtp13lHIvinDPfiXBPePpXkSjCbgp++iU2FqE+YxvjIsg6EdyPZsASFbfu+JcBFVsErXIQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.5.13 - - postcss-merge-longhand@7.0.7: - resolution: {integrity: sha512-b3mfYUxR388u5Pt0HPcVIUtUDn/k15UfTY9M+ORW+meCR6JLNxoZffiYvXyOYQoRYQNZyX/UFkMCM/mNHxe1qA==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.5.13 - - postcss-merge-rules@7.0.11: - resolution: {integrity: sha512-SJUPM18g2BmPhf8BVlbwqWz4aK3pLu6u6xjfwEzra7xL6IBR10sUaiB++EzqcVfadPHrKBSMlNdP+XieykhI+Q==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.5.13 - - postcss-minify-font-values@7.0.3: - resolution: {integrity: sha512-yilG/VOaNI74IylQvAQQxm3/wZVBkXyYUqNUAdxqwtbWUXPsbK1q8Ms0mL83v+f8YicgcyfYCRZtWACUdYajpA==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.5.13 - - postcss-minify-gradients@7.0.5: - resolution: {integrity: sha512-YraROyQRg3BI1+Hg8E05B/JPdnTm8EDSVu4P2BxdM+CRiOyfmou809+chGIqo6fQqwjPGQ947nbGncSjmTU1WQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.5.13 - - postcss-minify-params@7.0.9: - resolution: {integrity: sha512-R8itbB8BhlpoYyBm1ou0dD+vJnQ3F6adQipR4UnkCHUwlo+S9WXJaDRg1RHjC8YVAtIdrQzSWvJl40HnGDTKjA==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.5.13 - - postcss-minify-selectors@7.1.2: - resolution: {integrity: sha512-aQtrEWKwqafNlExcKHQvPGsXR2+vlUqqJtf5XsCQcgsSb5PL4wlujWBYDJuWsP4UnQX1YHDHU8qRlD+1PzTQ+Q==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.5.13 - - postcss-nested@7.0.2: - resolution: {integrity: sha512-5osppouFc0VR9/VYzYxO03VaDa3e8F23Kfd6/9qcZTUI8P58GIYlArOET2Wq0ywSl2o2PjELhYOFI4W7l5QHKw==} - engines: {node: '>=18.0'} - peerDependencies: - postcss: ^8.2.14 - - postcss-normalize-charset@7.0.3: - resolution: {integrity: sha512-NoBfZu8PR4c2NlmjvrqQTzCzLY79hwcSRgNQ3ZiNK0ABzf9kYKloE/jNj+/8GQY1wsm8pRRgANk6ydLH8cwo0Q==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.5.13 - - postcss-normalize-display-values@7.0.3: - resolution: {integrity: sha512-ldsCX0QIt05pKIOobZtVQ48wXJecr+czw4+e1/YjVhLMqslShgpVxgPtI2CefURR8oyVoYaU/l829MMwExDMLw==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.5.13 - - postcss-normalize-positions@7.0.4: - resolution: {integrity: sha512-VEvlpeGd3Ju1Hqa/oN4jaP3+ms4laYwkEL9N9u+B6k54PZjXbW1n6wI+aVprf1BQXlCYpS5+1pl/7/vHiKgARg==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.5.13 - - postcss-normalize-repeat-style@7.0.4: - resolution: {integrity: sha512-6mPKlY/8cSaDHxX502wERADarJsccwlky6yIrOapHH2ZgfoKAV94SbiTKfKEs4EEpdazuc3J72WsqeYk7hp9+Q==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.5.13 - - postcss-normalize-string@7.0.3: - resolution: {integrity: sha512-HnEQPUchi1eznmDKEYrKUTqrprEq97SrpUYClgUkv7V2zRODD9DFoUsYU+m9ZOetmD5ku7fEMZB/lwy8IT6xVQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.5.13 - - postcss-normalize-timing-functions@7.0.3: - resolution: {integrity: sha512-zmEzHdvpZBZu0OKlbJSfgASQvaayyAoVuWtvyr34IJ/LyS+DaOKvvR3EvFJ9RWWtNIx+CMvO125OVophaxNYew==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.5.13 - - postcss-normalize-unicode@7.0.9: - resolution: {integrity: sha512-DRAdWfeh/TjmhLJsw91vdiWCnUod9iwvM7xyS02/nF/sLsCR3A8l3pztrSUrWG8DSBqfX7yEk9FM0USaVJ2mSg==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.5.13 - - postcss-normalize-url@7.0.3: - resolution: {integrity: sha512-CL93wmloq5qsffmFv+bw24MIRbmhHrp53qoh1LDAb/5TtjWEXI/np4xcP/Gw9oWCb2XyWnqHYLDUwiKRoJBA1Q==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.5.13 - - postcss-normalize-whitespace@7.0.3: - resolution: {integrity: sha512-FdHjjn+Ht5Z2ZRjNOmeCbNq6lq09sUYKpmlF/Aq0XjVNSLTL6fmHlA/3swN2wP2caY9GV/tjSDcIIyS7aN7W0A==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.5.13 - - postcss-ordered-values@7.0.4: - resolution: {integrity: sha512-nubSi49hDHQk4E8KIj+IbLY8Bg+8OcSUEhgyolgM+atnOvXjV7EjaR6bac4YGZoFyPa9mWoAF3EaYbWdFkKqVg==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.5.13 - - postcss-reduce-initial@7.0.9: - resolution: {integrity: sha512-ztTNPdIxXTxtBcG03E9u8v44M4ElXbMIRT7pf2onlquGula0Y83nKKxqM22FA/hMgkfCjN7ohevkVlaNwI8iOQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.5.13 - - postcss-reduce-transforms@7.0.3: - resolution: {integrity: sha512-FXsnN9ZwcZTT8Yf8cAHA8qIGUXcX6WfLd9JoYhrdDfmvsVhhfqkkv7m4AC3rwFOfz+GzkUa87OCKF9dUcicd+g==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.5.13 - - postcss-selector-parser@7.1.6: - resolution: {integrity: sha512-7qASPzhKF2l2KLboRZux8CCTRMdGiV08vWmyKzPz22qZ7ZjQBOeY7rNzNoCLSUiftJ7HUq0GERHmxw/t0dCdMw==} - engines: {node: '>=4'} - - postcss-svgo@7.1.3: - resolution: {integrity: sha512-2QfoFOYMcj8lwcVEf9WeTlkVIAm7u2QvOEhMzkQU3KUhhGX/l8hVV9EtjMv4iq3E9iI3OeeMN0YoMLbGusuigw==} - engines: {node: ^18.12.0 || ^20.9.0 || >= 18} - peerDependencies: - postcss: ^8.5.13 - - postcss-unique-selectors@7.0.7: - resolution: {integrity: sha512-d+sCkaRnSefghOUdH8CMJZV9yUQhj2ojpe8Nw/lA+LV1UOfeleGkLTl6XdCFFSai9UJ+DJPb69FFuqthXYsY8w==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.5.13 - - postcss-value-parser@4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - postcss@8.5.28: resolution: {integrity: sha512-RRuzqDtt5Y9h3quz5hWhK+TPnsmVs6WwSU6LkJMeY4HstUEDuYTG8UJSdawMRzmzAtV+KEoG8N3Qg2qLy5vM/A==} engines: {node: ^10 || ^12 || >=14} - pretty-bytes@7.1.3: - resolution: {integrity: sha512-U2KZ675nqba6XSBppSjU2pRgc9Ffx9+uUtd/RTWYmOawVkZuUbBYuwdtFZQmLv+yMgQ2TQxWWuOpyNje67J9tg==} - engines: {node: '>=20'} - process-warning@4.0.1: resolution: {integrity: sha512-3c2LzQ3rY9d0hc1emcsHhfT9Jwz0cChib/QN89oME2R451w5fy3f0afAhERFZAwrbDU43wk12d0ORBpDVME50Q==} process-warning@5.1.0: resolution: {integrity: sha512-jQSaVHsPgtyw60e1rQ/A+/ArPEj/S8pS/vFnyGa/gYFXrKk/6RuDkoqVDQ5NI5MmS01698ltlAk0NoDBNLujRw==} - proxy-addr@2.0.7: - resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} - engines: {node: '>= 0.10'} - proxy-addr@2.0.8: resolution: {integrity: sha512-5nnx0yGyVUcY6t9RnWcARWtwT9F1D8O9rt08htPvnd49W1IgZtmLkhu9WfMzQj1cFxjHIO6connUNVW5k7AVyQ==} engines: {node: '>= 0.10'} @@ -2743,11 +2298,6 @@ packages: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} - resolve@1.22.12: - resolution: {integrity: sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==} - engines: {node: '>= 0.4'} - hasBin: true - ret@0.5.0: resolution: {integrity: sha512-I1XxrZSQ+oErkRR4jYbAyEEu2I0avBvvMM5JN+6EBprOGRCs63ENqZ3vjavq8fBw2+62G5LF5XelKwuJpcvcxw==} engines: {node: '>=10'} @@ -2759,17 +2309,6 @@ packages: rfdc@1.4.1: resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} - rollup-plugin-dts@6.5.1: - resolution: {integrity: sha512-jODTXp3H7MK/Ur/ErtsrQ0G1GvaCmc3du+y5pNrdBMf6d7HlL2Nd/N6TkEr+f75CkUj01zEoEd7y2elH0eHi1Q==} - engines: {node: '>=20'} - peerDependencies: - '@typescript/typescript6': ^6 - rollup: ^3 || ^4 - typescript: ^4.5 || ^5 || ^6 || ^7 - peerDependenciesMeta: - '@typescript/typescript6': - optional: true - rollup@4.63.1: resolution: {integrity: sha512-3Df9jsstwhccuEfmAMi9l8XUh/GOkVObmFTU7CCVBysEbcOZLl84jCtaAZMcPiMz2EGKsATzQcU+Xr3n/wU6cg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} @@ -2801,10 +2340,6 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - sax@1.6.1: - resolution: {integrity: sha512-42tBVwLWnaQvW5zc4HbZrTuWccECCZfBi92FDuwtqxasH+JbPB3/FOKb1m222K42R4WxuxzzMsTswfzgtSu64Q==} - engines: {node: '>=11.0.0'} - scule@1.3.0: resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==} @@ -2942,12 +2477,6 @@ packages: std-env@4.2.0: resolution: {integrity: sha512-oCUKSupKTHX53EyjDtuZQ64pjLJ6yYCtpmEw0goYxtjG9KpbRe8KAsl2tBUGU9DyMcJ0RwJ8GqJAFzMXcXW1Rw==} - stylehacks@7.0.11: - resolution: {integrity: sha512-iODNfhXVLqc5LADs+Y6Oh5wJuK5ZcHbVng8aiK3y9pjMQdc5hLrBW0eFU6FtnpNrE6PoEg/MmFTU4waotj5WNg==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.5.13 - superagent@10.3.0: resolution: {integrity: sha512-B+4Ik7ROgVKrQsXTV0Jwp2u+PXYLSlqtDAhYnkkD+zn3yg8s/zjA2MeGayPoY/KICrbitwneDHrjSotxKL+0XQ==} engines: {node: '>=14.18.0'} @@ -2960,15 +2489,6 @@ packages: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} - supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - - svgo@4.1.0: - resolution: {integrity: sha512-bkxnTg1kSU0guhIBmibA6UUhrQmPVA1XsQLN+ylCd+UWzbnLkySOcXpyk1mrl05f+pcaCx2eHb+sp6BgMZWX+Q==} - engines: {node: '>=16'} - hasBin: true - tar@6.2.1: resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} engines: {node: '>=10'} @@ -3035,42 +2555,14 @@ packages: resolution: {integrity: sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA==} engines: {node: '>= 18'} - typescript@6.0.3: - resolution: {integrity: sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==} - engines: {node: '>=14.17'} + typescript@7.0.2: + resolution: {integrity: sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA==} + engines: {node: '>=16.20.0'} hasBin: true ufo@1.6.4: resolution: {integrity: sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==} - unbuild@3.6.1: - resolution: {integrity: sha512-+U5CdtrdjfWkZhuO4N9l5UhyiccoeMEXIc2Lbs30Haxb+tRwB3VwB8AoZRxlAzORXunenSo+j6lh45jx+xkKgg==} - hasBin: true - peerDependencies: - typescript: ^5.9.2 - peerDependenciesMeta: - typescript: - optional: true - - uncheck@0.1.1: - resolution: {integrity: sha512-MOem/+M0H0hqQscT8Yv3VTxVwwGgrPjHvJjaSG+UEi5vTHdTX9ZwF9eqk/6soFoQEOQmSrUEmKGgejiF9E77RQ==} - engines: {node: '>=22.20'} - hasBin: true - peerDependencies: - oxfmt: '*' - oxlint: '>=1.60.0' - sherif: '>=1.10.0' - typescript: '*' - peerDependenciesMeta: - oxfmt: - optional: true - oxlint: - optional: true - sherif: - optional: true - typescript: - optional: true - unconfig-core@7.5.0: resolution: {integrity: sha512-Su3FauozOGP44ZmKdHy2oE6LPjk51M/TRRjHv2HNCWiDvfvCoxC2lno6jevMA91MYAdCdwP05QnWdWpSbncX/w==} @@ -3084,19 +2576,6 @@ packages: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} - untyped@2.0.0: - resolution: {integrity: sha512-nwNCjxJTjNuLCgFr42fEak5OcLuB3ecca+9ksPFNvtfYSLpjf+iJqSIaSnIile6ZPbKYxI5k2AfXqeopGudK/g==} - hasBin: true - - update-browserslist-db@1.3.2: - resolution: {integrity: sha512-UQ+MSxlhRm1bzjhU+DcuXfjFO1FzNtqhK5+9Yvlp90ItDLk5vT932A0rFu619nf7RVS+Y/VeaUW1jaRDqZ8VJw==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - - util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - utils-merge@1.0.1: resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} engines: {node: '>= 0.4.0'} @@ -3228,19 +2707,10 @@ packages: snapshots: - '@babel/code-frame@8.0.0': - dependencies: - '@babel/helper-validator-identifier': 8.0.4 - js-tokens: 10.0.0 - optional: true - '@babel/helper-string-parser@7.29.7': {} '@babel/helper-validator-identifier@7.29.7': {} - '@babel/helper-validator-identifier@8.0.4': - optional: true - '@babel/parser@7.29.8': dependencies: '@babel/types': 7.29.8 @@ -3273,161 +2743,81 @@ snapshots: - debug - supports-color - '@colordx/core@5.8.0': {} - - '@esbuild/aix-ppc64@0.25.12': - optional: true - '@esbuild/aix-ppc64@0.28.2': optional: true - '@esbuild/android-arm64@0.25.12': - optional: true - '@esbuild/android-arm64@0.28.2': optional: true - '@esbuild/android-arm@0.25.12': - optional: true - '@esbuild/android-arm@0.28.2': optional: true - '@esbuild/android-x64@0.25.12': - optional: true - '@esbuild/android-x64@0.28.2': optional: true - '@esbuild/darwin-arm64@0.25.12': - optional: true - '@esbuild/darwin-arm64@0.28.2': optional: true - '@esbuild/darwin-x64@0.25.12': - optional: true - '@esbuild/darwin-x64@0.28.2': optional: true - '@esbuild/freebsd-arm64@0.25.12': - optional: true - '@esbuild/freebsd-arm64@0.28.2': optional: true - '@esbuild/freebsd-x64@0.25.12': - optional: true - '@esbuild/freebsd-x64@0.28.2': optional: true - '@esbuild/linux-arm64@0.25.12': - optional: true - '@esbuild/linux-arm64@0.28.2': optional: true - '@esbuild/linux-arm@0.25.12': - optional: true - '@esbuild/linux-arm@0.28.2': optional: true - '@esbuild/linux-ia32@0.25.12': - optional: true - '@esbuild/linux-ia32@0.28.2': optional: true - '@esbuild/linux-loong64@0.25.12': - optional: true - '@esbuild/linux-loong64@0.28.2': optional: true - '@esbuild/linux-mips64el@0.25.12': - optional: true - '@esbuild/linux-mips64el@0.28.2': optional: true - '@esbuild/linux-ppc64@0.25.12': - optional: true - '@esbuild/linux-ppc64@0.28.2': optional: true - '@esbuild/linux-riscv64@0.25.12': - optional: true - '@esbuild/linux-riscv64@0.28.2': optional: true - '@esbuild/linux-s390x@0.25.12': - optional: true - '@esbuild/linux-s390x@0.28.2': optional: true - '@esbuild/linux-x64@0.25.12': - optional: true - '@esbuild/linux-x64@0.28.2': optional: true - '@esbuild/netbsd-arm64@0.25.12': - optional: true - '@esbuild/netbsd-arm64@0.28.2': optional: true - '@esbuild/netbsd-x64@0.25.12': - optional: true - '@esbuild/netbsd-x64@0.28.2': optional: true - '@esbuild/openbsd-arm64@0.25.12': - optional: true - '@esbuild/openbsd-arm64@0.28.2': optional: true - '@esbuild/openbsd-x64@0.25.12': - optional: true - '@esbuild/openbsd-x64@0.28.2': optional: true - '@esbuild/openharmony-arm64@0.25.12': - optional: true - '@esbuild/openharmony-arm64@0.28.2': optional: true - '@esbuild/sunos-x64@0.25.12': - optional: true - '@esbuild/sunos-x64@0.28.2': optional: true - '@esbuild/win32-arm64@0.25.12': - optional: true - '@esbuild/win32-arm64@0.28.2': optional: true - '@esbuild/win32-ia32@0.25.12': - optional: true - '@esbuild/win32-ia32@0.28.2': optional: true - '@esbuild/win32-x64@0.25.12': - optional: true - '@esbuild/win32-x64@0.28.2': optional: true @@ -3463,16 +2853,6 @@ snapshots: dependencies: hono: 4.13.5 - '@jridgewell/gen-mapping@0.3.13': - dependencies: - '@jridgewell/sourcemap-codec': 1.6.0 - '@jridgewell/trace-mapping': 0.3.31 - - '@jridgewell/remapping@2.3.5': - dependencies: - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.31 - '@jridgewell/resolve-uri@3.1.2': {} '@jridgewell/sourcemap-codec@1.6.0': {} @@ -3489,118 +2869,136 @@ snapshots: '@noble/hashes@1.8.0': {} - '@oxfmt/binding-android-arm-eabi@0.72.0': + '@oxfmt/binding-android-arm-eabi@0.76.0': + optional: true + + '@oxfmt/binding-android-arm64@0.76.0': + optional: true + + '@oxfmt/binding-darwin-arm64@0.76.0': optional: true - '@oxfmt/binding-android-arm64@0.72.0': + '@oxfmt/binding-darwin-x64@0.76.0': optional: true - '@oxfmt/binding-darwin-arm64@0.72.0': + '@oxfmt/binding-freebsd-x64@0.76.0': optional: true - '@oxfmt/binding-darwin-x64@0.72.0': + '@oxfmt/binding-linux-arm-gnueabihf@0.76.0': optional: true - '@oxfmt/binding-freebsd-x64@0.72.0': + '@oxfmt/binding-linux-arm-musleabihf@0.76.0': optional: true - '@oxfmt/binding-linux-arm-gnueabihf@0.72.0': + '@oxfmt/binding-linux-arm64-gnu@0.76.0': optional: true - '@oxfmt/binding-linux-arm-musleabihf@0.72.0': + '@oxfmt/binding-linux-arm64-musl@0.76.0': optional: true - '@oxfmt/binding-linux-arm64-gnu@0.72.0': + '@oxfmt/binding-linux-ppc64-gnu@0.76.0': optional: true - '@oxfmt/binding-linux-arm64-musl@0.72.0': + '@oxfmt/binding-linux-riscv64-gnu@0.76.0': optional: true - '@oxfmt/binding-linux-ppc64-gnu@0.72.0': + '@oxfmt/binding-linux-riscv64-musl@0.76.0': optional: true - '@oxfmt/binding-linux-riscv64-gnu@0.72.0': + '@oxfmt/binding-linux-s390x-gnu@0.76.0': optional: true - '@oxfmt/binding-linux-riscv64-musl@0.72.0': + '@oxfmt/binding-linux-x64-gnu@0.76.0': optional: true - '@oxfmt/binding-linux-s390x-gnu@0.72.0': + '@oxfmt/binding-linux-x64-musl@0.76.0': optional: true - '@oxfmt/binding-linux-x64-gnu@0.72.0': + '@oxfmt/binding-openharmony-arm64@0.76.0': optional: true - '@oxfmt/binding-linux-x64-musl@0.72.0': + '@oxfmt/binding-win32-arm64-msvc@0.76.0': optional: true - '@oxfmt/binding-openharmony-arm64@0.72.0': + '@oxfmt/binding-win32-ia32-msvc@0.76.0': optional: true - '@oxfmt/binding-win32-arm64-msvc@0.72.0': + '@oxfmt/binding-win32-x64-msvc@0.76.0': optional: true - '@oxfmt/binding-win32-ia32-msvc@0.72.0': + '@oxlint-tsgolint/darwin-arm64@7.0.2005': optional: true - '@oxfmt/binding-win32-x64-msvc@0.72.0': + '@oxlint-tsgolint/darwin-x64@7.0.2005': optional: true - '@oxlint/binding-android-arm-eabi@1.87.0': + '@oxlint-tsgolint/linux-arm64@7.0.2005': optional: true - '@oxlint/binding-android-arm64@1.87.0': + '@oxlint-tsgolint/linux-x64@7.0.2005': optional: true - '@oxlint/binding-darwin-arm64@1.87.0': + '@oxlint-tsgolint/win32-arm64@7.0.2005': optional: true - '@oxlint/binding-darwin-x64@1.87.0': + '@oxlint-tsgolint/win32-x64@7.0.2005': optional: true - '@oxlint/binding-freebsd-x64@1.87.0': + '@oxlint/binding-android-arm-eabi@1.91.0': optional: true - '@oxlint/binding-linux-arm-gnueabihf@1.87.0': + '@oxlint/binding-android-arm64@1.91.0': optional: true - '@oxlint/binding-linux-arm-musleabihf@1.87.0': + '@oxlint/binding-darwin-arm64@1.91.0': optional: true - '@oxlint/binding-linux-arm64-gnu@1.87.0': + '@oxlint/binding-darwin-x64@1.91.0': optional: true - '@oxlint/binding-linux-arm64-musl@1.87.0': + '@oxlint/binding-freebsd-x64@1.91.0': optional: true - '@oxlint/binding-linux-ppc64-gnu@1.87.0': + '@oxlint/binding-linux-arm-gnueabihf@1.91.0': optional: true - '@oxlint/binding-linux-riscv64-gnu@1.87.0': + '@oxlint/binding-linux-arm-musleabihf@1.91.0': optional: true - '@oxlint/binding-linux-riscv64-musl@1.87.0': + '@oxlint/binding-linux-arm64-gnu@1.91.0': optional: true - '@oxlint/binding-linux-s390x-gnu@1.87.0': + '@oxlint/binding-linux-arm64-musl@1.91.0': optional: true - '@oxlint/binding-linux-x64-gnu@1.87.0': + '@oxlint/binding-linux-ppc64-gnu@1.91.0': optional: true - '@oxlint/binding-linux-x64-musl@1.87.0': + '@oxlint/binding-linux-riscv64-gnu@1.91.0': optional: true - '@oxlint/binding-openharmony-arm64@1.87.0': + '@oxlint/binding-linux-riscv64-musl@1.91.0': optional: true - '@oxlint/binding-win32-arm64-msvc@1.87.0': + '@oxlint/binding-linux-s390x-gnu@1.91.0': optional: true - '@oxlint/binding-win32-ia32-msvc@1.87.0': + '@oxlint/binding-linux-x64-gnu@1.91.0': optional: true - '@oxlint/binding-win32-x64-msvc@1.87.0': + '@oxlint/binding-linux-x64-musl@1.91.0': + optional: true + + '@oxlint/binding-openharmony-arm64@1.91.0': + optional: true + + '@oxlint/binding-win32-arm64-msvc@1.91.0': + optional: true + + '@oxlint/binding-win32-ia32-msvc@1.91.0': + optional: true + + '@oxlint/binding-win32-x64-msvc@1.91.0': optional: true '@paralleldrive/cuid2@2.3.1': @@ -3709,53 +3107,6 @@ snapshots: '@remix-run/node-fetch-server@1.0.0': {} - '@rollup/plugin-alias@5.1.1(rollup@4.63.1)': - optionalDependencies: - rollup: 4.63.1 - - '@rollup/plugin-commonjs@28.0.9(rollup@4.63.1)': - dependencies: - '@rollup/pluginutils': 5.4.0(rollup@4.63.1) - commondir: 1.0.1 - estree-walker: 2.0.2 - fdir: 6.5.0(picomatch@4.0.7) - is-reference: 1.2.1 - magic-string: 0.30.21 - picomatch: 4.0.7 - optionalDependencies: - rollup: 4.63.1 - - '@rollup/plugin-json@6.1.0(rollup@4.63.1)': - dependencies: - '@rollup/pluginutils': 5.4.0(rollup@4.63.1) - optionalDependencies: - rollup: 4.63.1 - - '@rollup/plugin-node-resolve@16.0.3(rollup@4.63.1)': - dependencies: - '@rollup/pluginutils': 5.4.0(rollup@4.63.1) - '@types/resolve': 1.20.2 - deepmerge: 4.3.1 - is-module: 1.0.0 - resolve: 1.22.12 - optionalDependencies: - rollup: 4.63.1 - - '@rollup/plugin-replace@6.0.3(rollup@4.63.1)': - dependencies: - '@rollup/pluginutils': 5.4.0(rollup@4.63.1) - magic-string: 0.30.21 - optionalDependencies: - rollup: 4.63.1 - - '@rollup/pluginutils@5.4.0(rollup@4.63.1)': - dependencies: - '@types/estree': 1.0.9 - estree-walker: 2.0.2 - picomatch: 4.0.7 - optionalDependencies: - rollup: 4.63.1 - '@rollup/rollup-android-arm-eabi@4.63.1': optional: true @@ -3900,8 +3251,6 @@ snapshots: '@types/range-parser@1.2.7': {} - '@types/resolve@1.20.2': {} - '@types/send@0.17.6': dependencies: '@types/mime': 1.3.5 @@ -3911,32 +3260,92 @@ snapshots: dependencies: '@types/node': 26.6.4 - '@types/serve-static@1.15.10': - dependencies: - '@types/http-errors': 2.0.5 - '@types/node': 26.6.4 - '@types/send': 0.17.6 + '@types/serve-static@1.15.10': + dependencies: + '@types/http-errors': 2.0.5 + '@types/node': 26.6.4 + '@types/send': 0.17.6 + + '@types/serve-static@2.2.0': + dependencies: + '@types/http-errors': 2.0.5 + '@types/node': 26.6.4 + + '@types/superagent@8.1.11': + dependencies: + '@types/cookiejar': 2.1.5 + '@types/methods': 1.1.4 + '@types/node': 26.6.4 + form-data: 4.0.6 + + '@types/supertest@7.2.1': + dependencies: + '@types/methods': 1.1.4 + '@types/superagent': 8.1.11 + + '@types/ws@8.18.2': + dependencies: + '@types/node': 26.6.4 + + '@typescript/typescript-aix-ppc64@7.0.2': + optional: true + + '@typescript/typescript-darwin-arm64@7.0.2': + optional: true + + '@typescript/typescript-darwin-x64@7.0.2': + optional: true + + '@typescript/typescript-freebsd-arm64@7.0.2': + optional: true + + '@typescript/typescript-freebsd-x64@7.0.2': + optional: true + + '@typescript/typescript-linux-arm64@7.0.2': + optional: true + + '@typescript/typescript-linux-arm@7.0.2': + optional: true + + '@typescript/typescript-linux-loong64@7.0.2': + optional: true + + '@typescript/typescript-linux-mips64el@7.0.2': + optional: true + + '@typescript/typescript-linux-ppc64@7.0.2': + optional: true + + '@typescript/typescript-linux-riscv64@7.0.2': + optional: true + + '@typescript/typescript-linux-s390x@7.0.2': + optional: true + + '@typescript/typescript-linux-x64@7.0.2': + optional: true + + '@typescript/typescript-netbsd-arm64@7.0.2': + optional: true + + '@typescript/typescript-netbsd-x64@7.0.2': + optional: true - '@types/serve-static@2.2.0': - dependencies: - '@types/http-errors': 2.0.5 - '@types/node': 26.6.4 + '@typescript/typescript-openbsd-arm64@7.0.2': + optional: true - '@types/superagent@8.1.11': - dependencies: - '@types/cookiejar': 2.1.5 - '@types/methods': 1.1.4 - '@types/node': 26.6.4 - form-data: 4.0.6 + '@typescript/typescript-openbsd-x64@7.0.2': + optional: true - '@types/supertest@7.2.1': - dependencies: - '@types/methods': 1.1.4 - '@types/superagent': 8.1.11 + '@typescript/typescript-sunos-x64@7.0.2': + optional: true - '@types/ws@8.18.2': - dependencies: - '@types/node': 26.6.4 + '@typescript/typescript-win32-arm64@7.0.2': + optional: true + + '@typescript/typescript-win32-x64@7.0.2': + optional: true '@vitest/coverage-v8@4.1.11(vitest@4.1.11)': dependencies: @@ -4055,15 +3464,6 @@ snapshots: atomic-sleep@1.0.0: {} - autoprefixer@10.5.4(postcss@8.5.28): - dependencies: - browserslist: 4.28.8 - caniuse-lite: 1.0.30001810 - fraction.js: 5.3.4 - picocolors: 1.1.1 - postcss: 8.5.28 - postcss-value-parser: 4.2.0 - avvio@9.3.0: dependencies: '@fastify/error': 4.2.0 @@ -4079,8 +3479,6 @@ snapshots: - debug - supports-color - baseline-browser-mapping@2.11.21: {} - binary-extensions@2.3.0: {} body-parser@1.20.8(supports-color@7.2.0): @@ -4114,20 +3512,10 @@ snapshots: transitivePeerDependencies: - supports-color - boolbase@1.0.0: {} - braces@3.0.3: dependencies: fill-range: 7.1.1 - browserslist@4.28.8: - dependencies: - baseline-browser-mapping: 2.11.21 - caniuse-lite: 1.0.30001810 - electron-to-chromium: 1.5.422 - node-releases: 2.0.54 - update-browserslist-db: 1.3.2(browserslist@4.28.8) - bumpp@12.3.0: dependencies: args-tokenizer: 0.3.0 @@ -4194,15 +3582,6 @@ snapshots: call-bind-apply-helpers: 1.0.2 get-intrinsic: 1.3.0 - caniuse-api@3.0.0: - dependencies: - browserslist: 4.28.8 - caniuse-lite: 1.0.30001810 - lodash.memoize: 4.1.2 - lodash.uniq: 4.5.0 - - caniuse-lite@1.0.30001810: {} - chai@6.2.2: {} changelogen@0.5.7: @@ -4266,10 +3645,6 @@ snapshots: dependencies: delayed-stream: 1.0.0 - commander@11.1.0: {} - - commondir@1.0.1: {} - component-emitter@1.3.1: {} confbox@0.1.8: {} @@ -4306,80 +3681,6 @@ snapshots: cookiejar@2.1.4: {} - css-declaration-sorter@7.4.0(postcss@8.5.28): - dependencies: - postcss: 8.5.28 - - css-select@6.0.0: - dependencies: - boolbase: 1.0.0 - css-what: 7.0.0 - domhandler: 5.0.3 - domutils: 3.2.2 - nth-check: 2.1.1 - - css-tree@2.2.1: - dependencies: - mdn-data: 2.0.28 - source-map-js: 1.2.1 - - css-tree@3.2.1: - dependencies: - mdn-data: 2.27.1 - source-map-js: 1.2.1 - - css-what@7.0.0: {} - - cssesc@3.0.0: {} - - cssnano-preset-default@7.0.17(postcss@8.5.28): - dependencies: - browserslist: 4.28.8 - css-declaration-sorter: 7.4.0(postcss@8.5.28) - cssnano-utils: 5.0.3(postcss@8.5.28) - postcss: 8.5.28 - postcss-calc: 10.1.1(postcss@8.5.28) - postcss-colormin: 7.0.10(postcss@8.5.28) - postcss-convert-values: 7.0.12(postcss@8.5.28) - postcss-discard-comments: 7.0.8(postcss@8.5.28) - postcss-discard-duplicates: 7.0.4(postcss@8.5.28) - postcss-discard-empty: 7.0.3(postcss@8.5.28) - postcss-discard-overridden: 7.0.3(postcss@8.5.28) - postcss-merge-longhand: 7.0.7(postcss@8.5.28) - postcss-merge-rules: 7.0.11(postcss@8.5.28) - postcss-minify-font-values: 7.0.3(postcss@8.5.28) - postcss-minify-gradients: 7.0.5(postcss@8.5.28) - postcss-minify-params: 7.0.9(postcss@8.5.28) - postcss-minify-selectors: 7.1.2(postcss@8.5.28) - postcss-normalize-charset: 7.0.3(postcss@8.5.28) - postcss-normalize-display-values: 7.0.3(postcss@8.5.28) - postcss-normalize-positions: 7.0.4(postcss@8.5.28) - postcss-normalize-repeat-style: 7.0.4(postcss@8.5.28) - postcss-normalize-string: 7.0.3(postcss@8.5.28) - postcss-normalize-timing-functions: 7.0.3(postcss@8.5.28) - postcss-normalize-unicode: 7.0.9(postcss@8.5.28) - postcss-normalize-url: 7.0.3(postcss@8.5.28) - postcss-normalize-whitespace: 7.0.3(postcss@8.5.28) - postcss-ordered-values: 7.0.4(postcss@8.5.28) - postcss-reduce-initial: 7.0.9(postcss@8.5.28) - postcss-reduce-transforms: 7.0.3(postcss@8.5.28) - postcss-svgo: 7.1.3(postcss@8.5.28) - postcss-unique-selectors: 7.0.7(postcss@8.5.28) - - cssnano-utils@5.0.3(postcss@8.5.28): - dependencies: - postcss: 8.5.28 - - cssnano@7.1.9(postcss@8.5.28): - dependencies: - cssnano-preset-default: 7.0.17(postcss@8.5.28) - lilconfig: 3.1.3 - postcss: 8.5.28 - - csso@5.0.5: - dependencies: - css-tree: 2.2.1 - debug@2.6.9(supports-color@7.2.0): dependencies: ms: 2.0.0 @@ -4392,8 +3693,6 @@ snapshots: optionalDependencies: supports-color: 7.2.0 - deepmerge@4.3.1: {} - default-browser-id@5.0.1: {} default-browser@5.5.1: @@ -4420,24 +3719,6 @@ snapshots: asap: 2.0.6 wrappy: 1.0.2 - dom-serializer@2.0.0: - dependencies: - domelementtype: 2.3.0 - domhandler: 5.0.3 - entities: 4.5.0 - - domelementtype@2.3.0: {} - - domhandler@5.0.3: - dependencies: - domelementtype: 2.3.0 - - domutils@3.2.2: - dependencies: - dom-serializer: 2.0.0 - domelementtype: 2.3.0 - domhandler: 5.0.3 - dotenv@16.6.1: {} dotenv@17.4.2: {} @@ -4450,12 +3731,8 @@ snapshots: ee-first@1.1.1: {} - electron-to-chromium@1.5.422: {} - encodeurl@2.0.0: {} - entities@4.5.0: {} - es-define-property@1.0.1: {} es-errors@1.3.0: {} @@ -4473,35 +3750,6 @@ snapshots: has-tostringtag: 1.0.2 hasown: 2.0.4 - esbuild@0.25.12: - optionalDependencies: - '@esbuild/aix-ppc64': 0.25.12 - '@esbuild/android-arm': 0.25.12 - '@esbuild/android-arm64': 0.25.12 - '@esbuild/android-x64': 0.25.12 - '@esbuild/darwin-arm64': 0.25.12 - '@esbuild/darwin-x64': 0.25.12 - '@esbuild/freebsd-arm64': 0.25.12 - '@esbuild/freebsd-x64': 0.25.12 - '@esbuild/linux-arm': 0.25.12 - '@esbuild/linux-arm64': 0.25.12 - '@esbuild/linux-ia32': 0.25.12 - '@esbuild/linux-loong64': 0.25.12 - '@esbuild/linux-mips64el': 0.25.12 - '@esbuild/linux-ppc64': 0.25.12 - '@esbuild/linux-riscv64': 0.25.12 - '@esbuild/linux-s390x': 0.25.12 - '@esbuild/linux-x64': 0.25.12 - '@esbuild/netbsd-arm64': 0.25.12 - '@esbuild/netbsd-x64': 0.25.12 - '@esbuild/openbsd-arm64': 0.25.12 - '@esbuild/openbsd-x64': 0.25.12 - '@esbuild/openharmony-arm64': 0.25.12 - '@esbuild/sunos-x64': 0.25.12 - '@esbuild/win32-arm64': 0.25.12 - '@esbuild/win32-ia32': 0.25.12 - '@esbuild/win32-x64': 0.25.12 - esbuild@0.28.2: optionalDependencies: '@esbuild/aix-ppc64': 0.28.2 @@ -4531,12 +3779,8 @@ snapshots: '@esbuild/win32-ia32': 0.28.2 '@esbuild/win32-x64': 0.28.2 - escalade@3.2.0: {} - escape-html@1.0.3: {} - estree-walker@2.0.2: {} - estree-walker@3.0.3: dependencies: '@types/estree': 1.0.9 @@ -4567,7 +3811,7 @@ snapshots: on-finished: 2.4.1 parseurl: 1.3.3 path-to-regexp: 0.1.13 - proxy-addr: 2.0.7 + proxy-addr: 2.0.8 qs: 6.16.0 range-parser: 1.2.1 safe-buffer: 5.2.1 @@ -4705,12 +3949,6 @@ snapshots: locate-path: 7.2.0 path-exists: 5.0.0 - fix-dts-default-cjs-exports@1.0.1: - dependencies: - magic-string: 0.30.21 - mlly: 1.8.2 - rollup: 4.63.1 - follow-redirects@1.16.0(debug@4.4.3(supports-color@7.2.0)): optionalDependencies: debug: 4.4.3(supports-color@7.2.0) @@ -4731,8 +3969,6 @@ snapshots: forwarded@0.2.0: {} - fraction.js@5.3.4: {} - fresh@0.5.2: {} fresh@2.0.0: {} @@ -4801,8 +4037,6 @@ snapshots: hono@4.13.5: {} - hookable@5.5.3: {} - html-escaper@2.0.2: {} http-errors@2.0.1: @@ -4838,10 +4072,6 @@ snapshots: dependencies: binary-extensions: 2.3.0 - is-core-module@2.16.2: - dependencies: - hasown: 2.0.4 - is-docker@3.0.0: {} is-extglob@2.1.1: {} @@ -4854,16 +4084,10 @@ snapshots: dependencies: is-docker: 3.0.0 - is-module@1.0.0: {} - is-number@7.0.0: {} is-promise@4.0.0: {} - is-reference@1.2.1: - dependencies: - '@types/estree': 1.0.9 - is-wsl@3.1.1: dependencies: is-inside-container: 1.0.0 @@ -4895,24 +4119,16 @@ snapshots: jsonc-parser@3.3.1: {} - knitwork@1.3.0: {} - light-my-request@6.6.0: dependencies: cookie: 1.1.1 process-warning: 4.0.1 set-cookie-parser: 2.7.2 - lilconfig@3.1.3: {} - locate-path@7.2.0: dependencies: p-locate: 6.0.0 - lodash.memoize@4.1.2: {} - - lodash.uniq@4.5.0: {} - magic-string@0.30.21: dependencies: '@jridgewell/sourcemap-codec': 1.6.0 @@ -4929,10 +4145,6 @@ snapshots: math-intrinsics@1.1.0: {} - mdn-data@2.0.28: {} - - mdn-data@2.27.1: {} - media-typer@0.3.0: {} media-typer@1.1.1: {} @@ -4972,24 +4184,6 @@ snapshots: mkdirp@1.0.4: {} - mkdist@2.4.1(typescript@6.0.3): - dependencies: - autoprefixer: 10.5.4(postcss@8.5.28) - citty: 0.1.6 - cssnano: 7.1.9(postcss@8.5.28) - defu: 6.1.7 - esbuild: 0.25.12 - jiti: 1.21.7 - mlly: 1.8.2 - pathe: 2.0.3 - pkg-types: 2.3.2 - postcss: 8.5.28 - postcss-nested: 7.0.2(postcss@8.5.28) - semver: 7.8.5 - tinyglobby: 0.2.17 - optionalDependencies: - typescript: 6.0.3 - mlly@1.8.2: dependencies: acorn: 8.18.0 @@ -5015,14 +4209,8 @@ snapshots: node-gyp-build@4.8.4: {} - node-releases@2.0.54: {} - normalize-path@3.0.0: {} - nth-check@2.1.1: - dependencies: - boolbase: 1.0.0 - nypm@0.5.4: dependencies: citty: 0.1.6 @@ -5063,51 +4251,61 @@ snapshots: is-inside-container: 1.0.0 wsl-utils: 0.1.0 - oxfmt@0.72.0: + oxfmt@0.76.0: dependencies: tinypool: 2.2.0 optionalDependencies: - '@oxfmt/binding-android-arm-eabi': 0.72.0 - '@oxfmt/binding-android-arm64': 0.72.0 - '@oxfmt/binding-darwin-arm64': 0.72.0 - '@oxfmt/binding-darwin-x64': 0.72.0 - '@oxfmt/binding-freebsd-x64': 0.72.0 - '@oxfmt/binding-linux-arm-gnueabihf': 0.72.0 - '@oxfmt/binding-linux-arm-musleabihf': 0.72.0 - '@oxfmt/binding-linux-arm64-gnu': 0.72.0 - '@oxfmt/binding-linux-arm64-musl': 0.72.0 - '@oxfmt/binding-linux-ppc64-gnu': 0.72.0 - '@oxfmt/binding-linux-riscv64-gnu': 0.72.0 - '@oxfmt/binding-linux-riscv64-musl': 0.72.0 - '@oxfmt/binding-linux-s390x-gnu': 0.72.0 - '@oxfmt/binding-linux-x64-gnu': 0.72.0 - '@oxfmt/binding-linux-x64-musl': 0.72.0 - '@oxfmt/binding-openharmony-arm64': 0.72.0 - '@oxfmt/binding-win32-arm64-msvc': 0.72.0 - '@oxfmt/binding-win32-ia32-msvc': 0.72.0 - '@oxfmt/binding-win32-x64-msvc': 0.72.0 - - oxlint@1.87.0: + '@oxfmt/binding-android-arm-eabi': 0.76.0 + '@oxfmt/binding-android-arm64': 0.76.0 + '@oxfmt/binding-darwin-arm64': 0.76.0 + '@oxfmt/binding-darwin-x64': 0.76.0 + '@oxfmt/binding-freebsd-x64': 0.76.0 + '@oxfmt/binding-linux-arm-gnueabihf': 0.76.0 + '@oxfmt/binding-linux-arm-musleabihf': 0.76.0 + '@oxfmt/binding-linux-arm64-gnu': 0.76.0 + '@oxfmt/binding-linux-arm64-musl': 0.76.0 + '@oxfmt/binding-linux-ppc64-gnu': 0.76.0 + '@oxfmt/binding-linux-riscv64-gnu': 0.76.0 + '@oxfmt/binding-linux-riscv64-musl': 0.76.0 + '@oxfmt/binding-linux-s390x-gnu': 0.76.0 + '@oxfmt/binding-linux-x64-gnu': 0.76.0 + '@oxfmt/binding-linux-x64-musl': 0.76.0 + '@oxfmt/binding-openharmony-arm64': 0.76.0 + '@oxfmt/binding-win32-arm64-msvc': 0.76.0 + '@oxfmt/binding-win32-ia32-msvc': 0.76.0 + '@oxfmt/binding-win32-x64-msvc': 0.76.0 + + oxlint-tsgolint@7.0.2005: optionalDependencies: - '@oxlint/binding-android-arm-eabi': 1.87.0 - '@oxlint/binding-android-arm64': 1.87.0 - '@oxlint/binding-darwin-arm64': 1.87.0 - '@oxlint/binding-darwin-x64': 1.87.0 - '@oxlint/binding-freebsd-x64': 1.87.0 - '@oxlint/binding-linux-arm-gnueabihf': 1.87.0 - '@oxlint/binding-linux-arm-musleabihf': 1.87.0 - '@oxlint/binding-linux-arm64-gnu': 1.87.0 - '@oxlint/binding-linux-arm64-musl': 1.87.0 - '@oxlint/binding-linux-ppc64-gnu': 1.87.0 - '@oxlint/binding-linux-riscv64-gnu': 1.87.0 - '@oxlint/binding-linux-riscv64-musl': 1.87.0 - '@oxlint/binding-linux-s390x-gnu': 1.87.0 - '@oxlint/binding-linux-x64-gnu': 1.87.0 - '@oxlint/binding-linux-x64-musl': 1.87.0 - '@oxlint/binding-openharmony-arm64': 1.87.0 - '@oxlint/binding-win32-arm64-msvc': 1.87.0 - '@oxlint/binding-win32-ia32-msvc': 1.87.0 - '@oxlint/binding-win32-x64-msvc': 1.87.0 + '@oxlint-tsgolint/darwin-arm64': 7.0.2005 + '@oxlint-tsgolint/darwin-x64': 7.0.2005 + '@oxlint-tsgolint/linux-arm64': 7.0.2005 + '@oxlint-tsgolint/linux-x64': 7.0.2005 + '@oxlint-tsgolint/win32-arm64': 7.0.2005 + '@oxlint-tsgolint/win32-x64': 7.0.2005 + + oxlint@1.91.0(oxlint-tsgolint@7.0.2005): + optionalDependencies: + '@oxlint/binding-android-arm-eabi': 1.91.0 + '@oxlint/binding-android-arm64': 1.91.0 + '@oxlint/binding-darwin-arm64': 1.91.0 + '@oxlint/binding-darwin-x64': 1.91.0 + '@oxlint/binding-freebsd-x64': 1.91.0 + '@oxlint/binding-linux-arm-gnueabihf': 1.91.0 + '@oxlint/binding-linux-arm-musleabihf': 1.91.0 + '@oxlint/binding-linux-arm64-gnu': 1.91.0 + '@oxlint/binding-linux-arm64-musl': 1.91.0 + '@oxlint/binding-linux-ppc64-gnu': 1.91.0 + '@oxlint/binding-linux-riscv64-gnu': 1.91.0 + '@oxlint/binding-linux-riscv64-musl': 1.91.0 + '@oxlint/binding-linux-s390x-gnu': 1.91.0 + '@oxlint/binding-linux-x64-gnu': 1.91.0 + '@oxlint/binding-linux-x64-musl': 1.91.0 + '@oxlint/binding-openharmony-arm64': 1.91.0 + '@oxlint/binding-win32-arm64-msvc': 1.91.0 + '@oxlint/binding-win32-ia32-msvc': 1.91.0 + '@oxlint/binding-win32-x64-msvc': 1.91.0 + oxlint-tsgolint: 7.0.2005 p-limit@4.0.0: dependencies: @@ -5123,8 +4321,6 @@ snapshots: path-exists@5.0.0: {} - path-parse@1.0.7: {} - path-to-regexp@0.1.13: {} path-to-regexp@8.4.2: {} @@ -5186,186 +4382,16 @@ snapshots: pvutils: 1.2.0 tslib: 2.8.1 - postcss-calc@10.1.1(postcss@8.5.28): - dependencies: - postcss: 8.5.28 - postcss-selector-parser: 7.1.6 - postcss-value-parser: 4.2.0 - - postcss-colormin@7.0.10(postcss@8.5.28): - dependencies: - '@colordx/core': 5.8.0 - browserslist: 4.28.8 - caniuse-api: 3.0.0 - postcss: 8.5.28 - postcss-value-parser: 4.2.0 - - postcss-convert-values@7.0.12(postcss@8.5.28): - dependencies: - browserslist: 4.28.8 - postcss: 8.5.28 - postcss-value-parser: 4.2.0 - - postcss-discard-comments@7.0.8(postcss@8.5.28): - dependencies: - postcss: 8.5.28 - postcss-selector-parser: 7.1.6 - - postcss-discard-duplicates@7.0.4(postcss@8.5.28): - dependencies: - postcss: 8.5.28 - - postcss-discard-empty@7.0.3(postcss@8.5.28): - dependencies: - postcss: 8.5.28 - - postcss-discard-overridden@7.0.3(postcss@8.5.28): - dependencies: - postcss: 8.5.28 - - postcss-merge-longhand@7.0.7(postcss@8.5.28): - dependencies: - postcss: 8.5.28 - postcss-value-parser: 4.2.0 - stylehacks: 7.0.11(postcss@8.5.28) - - postcss-merge-rules@7.0.11(postcss@8.5.28): - dependencies: - browserslist: 4.28.8 - caniuse-api: 3.0.0 - cssnano-utils: 5.0.3(postcss@8.5.28) - postcss: 8.5.28 - postcss-selector-parser: 7.1.6 - - postcss-minify-font-values@7.0.3(postcss@8.5.28): - dependencies: - postcss: 8.5.28 - postcss-value-parser: 4.2.0 - - postcss-minify-gradients@7.0.5(postcss@8.5.28): - dependencies: - '@colordx/core': 5.8.0 - cssnano-utils: 5.0.3(postcss@8.5.28) - postcss: 8.5.28 - postcss-value-parser: 4.2.0 - - postcss-minify-params@7.0.9(postcss@8.5.28): - dependencies: - browserslist: 4.28.8 - cssnano-utils: 5.0.3(postcss@8.5.28) - postcss: 8.5.28 - postcss-value-parser: 4.2.0 - - postcss-minify-selectors@7.1.2(postcss@8.5.28): - dependencies: - browserslist: 4.28.8 - caniuse-api: 3.0.0 - cssesc: 3.0.0 - postcss: 8.5.28 - postcss-selector-parser: 7.1.6 - - postcss-nested@7.0.2(postcss@8.5.28): - dependencies: - postcss: 8.5.28 - postcss-selector-parser: 7.1.6 - - postcss-normalize-charset@7.0.3(postcss@8.5.28): - dependencies: - postcss: 8.5.28 - - postcss-normalize-display-values@7.0.3(postcss@8.5.28): - dependencies: - postcss: 8.5.28 - postcss-value-parser: 4.2.0 - - postcss-normalize-positions@7.0.4(postcss@8.5.28): - dependencies: - postcss: 8.5.28 - postcss-value-parser: 4.2.0 - - postcss-normalize-repeat-style@7.0.4(postcss@8.5.28): - dependencies: - postcss: 8.5.28 - postcss-value-parser: 4.2.0 - - postcss-normalize-string@7.0.3(postcss@8.5.28): - dependencies: - postcss: 8.5.28 - postcss-value-parser: 4.2.0 - - postcss-normalize-timing-functions@7.0.3(postcss@8.5.28): - dependencies: - postcss: 8.5.28 - postcss-value-parser: 4.2.0 - - postcss-normalize-unicode@7.0.9(postcss@8.5.28): - dependencies: - browserslist: 4.28.8 - postcss: 8.5.28 - postcss-value-parser: 4.2.0 - - postcss-normalize-url@7.0.3(postcss@8.5.28): - dependencies: - postcss: 8.5.28 - postcss-value-parser: 4.2.0 - - postcss-normalize-whitespace@7.0.3(postcss@8.5.28): - dependencies: - postcss: 8.5.28 - postcss-value-parser: 4.2.0 - - postcss-ordered-values@7.0.4(postcss@8.5.28): - dependencies: - cssnano-utils: 5.0.3(postcss@8.5.28) - postcss: 8.5.28 - postcss-value-parser: 4.2.0 - - postcss-reduce-initial@7.0.9(postcss@8.5.28): - dependencies: - browserslist: 4.28.8 - caniuse-api: 3.0.0 - postcss: 8.5.28 - - postcss-reduce-transforms@7.0.3(postcss@8.5.28): - dependencies: - postcss: 8.5.28 - postcss-value-parser: 4.2.0 - - postcss-selector-parser@7.1.6: - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - - postcss-svgo@7.1.3(postcss@8.5.28): - dependencies: - postcss: 8.5.28 - postcss-value-parser: 4.2.0 - svgo: 4.1.0 - - postcss-unique-selectors@7.0.7(postcss@8.5.28): - dependencies: - postcss: 8.5.28 - postcss-selector-parser: 7.1.6 - - postcss-value-parser@4.2.0: {} - postcss@8.5.28: dependencies: nanoid: 3.3.18 picocolors: 1.1.1 source-map-js: 1.2.1 - pretty-bytes@7.1.3: {} - process-warning@4.0.1: {} process-warning@5.1.0: {} - proxy-addr@2.0.7: - dependencies: - forwarded: 0.2.0 - ipaddr.js: 1.9.1 - proxy-addr@2.0.8: dependencies: forwarded: 0.2.0 @@ -5430,30 +4456,12 @@ snapshots: require-from-string@2.0.2: {} - resolve@1.22.12: - dependencies: - es-errors: 1.3.0 - is-core-module: 2.16.2 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - ret@0.5.0: {} reusify@1.1.0: {} rfdc@1.4.1: {} - rollup-plugin-dts@6.5.1(rollup@4.63.1)(typescript@6.0.3): - dependencies: - '@jridgewell/remapping': 2.3.5 - '@jridgewell/sourcemap-codec': 1.6.0 - convert-source-map: 2.0.0 - magic-string: 0.30.21 - rollup: 4.63.1 - typescript: 6.0.3 - optionalDependencies: - '@babel/code-frame': 8.0.0 - rollup@4.63.1: dependencies: '@types/estree': 1.0.9 @@ -5510,8 +4518,6 @@ snapshots: safer-buffer@2.1.2: {} - sax@1.6.1: {} - scule@1.3.0: {} secure-json-parse@4.1.0: {} @@ -5664,12 +4670,6 @@ snapshots: std-env@4.2.0: {} - stylehacks@7.0.11(postcss@8.5.28): - dependencies: - browserslist: 4.28.8 - postcss: 8.5.28 - postcss-selector-parser: 7.1.6 - superagent@10.3.0(supports-color@7.2.0): dependencies: component-emitter: 1.3.1 @@ -5696,18 +4696,6 @@ snapshots: dependencies: has-flag: 4.0.0 - supports-preserve-symlinks-flag@1.0.0: {} - - svgo@4.1.0: - dependencies: - commander: 11.1.0 - css-select: 6.0.0 - css-tree: 3.2.1 - css-what: 7.0.0 - csso: 5.0.5 - picocolors: 1.1.1 - sax: 1.6.1 - tar@6.2.1: dependencies: chownr: 2.0.0 @@ -5769,51 +4757,30 @@ snapshots: media-typer: 1.1.1 mime-types: 3.0.2 - typescript@6.0.3: {} - - ufo@1.6.4: {} - - unbuild@3.6.1(typescript@6.0.3): - dependencies: - '@rollup/plugin-alias': 5.1.1(rollup@4.63.1) - '@rollup/plugin-commonjs': 28.0.9(rollup@4.63.1) - '@rollup/plugin-json': 6.1.0(rollup@4.63.1) - '@rollup/plugin-node-resolve': 16.0.3(rollup@4.63.1) - '@rollup/plugin-replace': 6.0.3(rollup@4.63.1) - '@rollup/pluginutils': 5.4.0(rollup@4.63.1) - citty: 0.1.6 - consola: 3.4.2 - defu: 6.1.7 - esbuild: 0.25.12 - fix-dts-default-cjs-exports: 1.0.1 - hookable: 5.5.3 - jiti: 2.7.0 - magic-string: 0.30.21 - mkdist: 2.4.1(typescript@6.0.3) - mlly: 1.8.2 - pathe: 2.0.3 - pkg-types: 2.3.2 - pretty-bytes: 7.1.3 - rollup: 4.63.1 - rollup-plugin-dts: 6.5.1(rollup@4.63.1)(typescript@6.0.3) - scule: 1.3.0 - tinyglobby: 0.2.17 - untyped: 2.0.0 + typescript@7.0.2: optionalDependencies: - typescript: 6.0.3 - transitivePeerDependencies: - - '@typescript/typescript6' - - sass - - vue - - vue-sfc-transformer - - vue-tsc + '@typescript/typescript-aix-ppc64': 7.0.2 + '@typescript/typescript-darwin-arm64': 7.0.2 + '@typescript/typescript-darwin-x64': 7.0.2 + '@typescript/typescript-freebsd-arm64': 7.0.2 + '@typescript/typescript-freebsd-x64': 7.0.2 + '@typescript/typescript-linux-arm': 7.0.2 + '@typescript/typescript-linux-arm64': 7.0.2 + '@typescript/typescript-linux-loong64': 7.0.2 + '@typescript/typescript-linux-mips64el': 7.0.2 + '@typescript/typescript-linux-ppc64': 7.0.2 + '@typescript/typescript-linux-riscv64': 7.0.2 + '@typescript/typescript-linux-s390x': 7.0.2 + '@typescript/typescript-linux-x64': 7.0.2 + '@typescript/typescript-netbsd-arm64': 7.0.2 + '@typescript/typescript-netbsd-x64': 7.0.2 + '@typescript/typescript-openbsd-arm64': 7.0.2 + '@typescript/typescript-openbsd-x64': 7.0.2 + '@typescript/typescript-sunos-x64': 7.0.2 + '@typescript/typescript-win32-arm64': 7.0.2 + '@typescript/typescript-win32-x64': 7.0.2 - uncheck@0.1.1(oxfmt@0.72.0)(oxlint@1.87.0)(sherif@1.13.0)(typescript@6.0.3): - optionalDependencies: - oxfmt: 0.72.0 - oxlint: 1.87.0 - sherif: 1.13.0 - typescript: 6.0.3 + ufo@1.6.4: {} unconfig-core@7.5.0: dependencies: @@ -5832,22 +4799,6 @@ snapshots: unpipe@1.0.0: {} - untyped@2.0.0: - dependencies: - citty: 0.1.6 - defu: 6.1.7 - jiti: 2.7.0 - knitwork: 1.3.0 - scule: 1.3.0 - - update-browserslist-db@1.3.2(browserslist@4.28.8): - dependencies: - browserslist: 4.28.8 - escalade: 3.2.0 - picocolors: 1.1.1 - - util-deprecate@1.0.2: {} - utils-merge@1.0.1: {} vary@1.1.2: {} diff --git a/scripts/sync-sponsors.ts b/scripts/sync-sponsors.ts index e1e04073..9461ba58 100644 --- a/scripts/sync-sponsors.ts +++ b/scripts/sync-sponsors.ts @@ -118,7 +118,7 @@ function buildSponsorsSection(sponsors: Sponsor[]): string { // everyone else so nobody appears twice. const slotSponsors = activeSponsors .filter((sponsor) => sponsor.slot !== undefined) - .sort((a, b) => a.slot! - b.slot!) + .toSorted((a, b) => a.slot! - b.slot!) const tieredSponsors = activeSponsors.filter((sponsor) => sponsor.slot === undefined) const groupedSponsors = new Map() @@ -147,10 +147,10 @@ function buildSponsorsSection(sponsors: Sponsor[]): string { // Sizes rank against every active tier, slot sponsors' tiers included, so // featuring the top tiers as cards does not inflate the tables below them. - const sizeTierLevels = [...new Set(activeSponsors.map((sponsor) => sponsor.tierLevel))].sort( + const sizeTierLevels = [...new Set(activeSponsors.map((sponsor) => sponsor.tierLevel))].toSorted( (a, b) => b - a, ) - const tierLevels = [...groupedSponsors.keys()].sort((a, b) => b - a) + const tierLevels = [...groupedSponsors.keys()].toSorted((a, b) => b - a) for (const tierLevel of tierLevels) { const tierSponsors = groupedSponsors.get(tierLevel) diff --git a/tests/bun/tests/client-server.bun-fetch.ts b/tests/bun/tests/client-server.bun-fetch.ts index c4b485ed..e8aefd1f 100644 --- a/tests/bun/tests/client-server.bun-fetch.ts +++ b/tests/bun/tests/client-server.bun-fetch.ts @@ -6,8 +6,8 @@ import { toStandardLazyResponse, } from '@standard-server/fetch' -import type { ClientServerHandler, ClientServerTest } from './client-server' -import { NOT_FOUND_HANDLER } from './client-server' +import type { ClientServerHandler, ClientServerTest } from './client-server.ts' +import { NOT_FOUND_HANDLER } from './client-server.ts' export function createBunFetchClientServerTest(): ClientServerTest { let handler: ClientServerHandler = NOT_FOUND_HANDLER @@ -50,8 +50,6 @@ export function createBunFetchClientServerTest(): ClientServerTest { handler = next }, request, - close: () => { - server.stop(true) - }, + close: () => server.stop(true), } } diff --git a/tests/bun/tests/client-server.bun-ws.ts b/tests/bun/tests/client-server.bun-ws.ts index 6d4ff2ae..37c6f504 100644 --- a/tests/bun/tests/client-server.bun-ws.ts +++ b/tests/bun/tests/client-server.bun-ws.ts @@ -7,8 +7,8 @@ import { ServerPeer, } from '@standard-server/peer' -import type { ClientServerHandler, ClientServerTest } from './client-server' -import { NOT_FOUND_HANDLER, toEncodedPeerMessage } from './client-server' +import type { ClientServerHandler, ClientServerTest } from './client-server.ts' +import { NOT_FOUND_HANDLER, toEncodedPeerMessage } from './client-server.ts' export function createBunWsClientServerTest(): ClientServerTest { let handler: ClientServerHandler = NOT_FOUND_HANDLER @@ -20,9 +20,9 @@ export function createBunWsClientServerTest(): ClientServerTest { const server = Bun.serve({ port: 0, - fetch: (request, server) => { - if (server.upgrade(request)) { - return + fetch: (request, bunServer) => { + if (bunServer.upgrade(request)) { + return undefined } return new Response('WebSocket only', { status: 426 }) @@ -73,9 +73,9 @@ export function createBunWsClientServerTest(): ClientServerTest { handler = next }, request: (standardRequest) => clientPeer.request(standardRequest), - close: () => { + close: async () => { wsc.close() - server.stop(true) + await server.stop(true) }, } } diff --git a/tests/bun/tests/data-transfer.test.ts b/tests/bun/tests/data-transfer.test.ts index cd58611b..3d337d94 100644 --- a/tests/bun/tests/data-transfer.test.ts +++ b/tests/bun/tests/data-transfer.test.ts @@ -4,9 +4,9 @@ import type { StandardHeaders } from '@standard-server/core' import { ErrorEvent, unwrapEvent, withEventMeta } from '@standard-server/core' import { isAsyncIteratorObject, sleep } from '@standard-server/shared' -import { NOT_FOUND_HANDLER } from './client-server' -import { createBunFetchClientServerTest } from './client-server.bun-fetch' -import { createBunWsClientServerTest } from './client-server.bun-ws' +import { createBunFetchClientServerTest } from './client-server.bun-fetch.ts' +import { createBunWsClientServerTest } from './client-server.bun-ws.ts' +import { NOT_FOUND_HANDLER } from './client-server.ts' /** * Streaming tests produce a chunk every `CHUNK_DELAY` ms and assert each chunk @@ -63,7 +63,7 @@ for (const [adapter, createClientServer] of ADAPTERS) { 'x-from': 'client', }, method, - url: url as any, + url: url, }) expect(response.headers).toMatchObject({ diff --git a/tests/bun/tests/signal-and-cancel.test.ts b/tests/bun/tests/signal-and-cancel.test.ts index 060f524d..caf90f52 100644 --- a/tests/bun/tests/signal-and-cancel.test.ts +++ b/tests/bun/tests/signal-and-cancel.test.ts @@ -2,9 +2,9 @@ import { afterAll, beforeEach, describe, expect, it } from 'bun:test' import { AsyncIteratorClass, isAsyncIteratorObject, sleep } from '@standard-server/shared' -import { NOT_FOUND_HANDLER, waitFor } from './client-server' -import { createBunFetchClientServerTest } from './client-server.bun-fetch' -import { createBunWsClientServerTest } from './client-server.bun-ws' +import { createBunFetchClientServerTest } from './client-server.bun-fetch.ts' +import { createBunWsClientServerTest } from './client-server.bun-ws.ts' +import { NOT_FOUND_HANDLER, waitFor } from './client-server.ts' const ADAPTERS = [ ['bun-fetch', createBunFetchClientServerTest], diff --git a/tests/bun/tsconfig.json b/tests/bun/tsconfig.json index e39b3905..2286f6b9 100644 --- a/tests/bun/tsconfig.json +++ b/tests/bun/tsconfig.json @@ -1,8 +1,9 @@ { - "extends": "uncheck/tsconfig/middleapi/lib", + "extends": "../../tsconfig.json", "compilerOptions": { "lib": ["ES2022", "DOM", "DOM.Iterable"], "types": ["bun"] }, - "include": ["./package.json", "src", "tests"] + "include": ["tests"], + "exclude": [] } diff --git a/tests/client-server.expressjs.ts b/tests/client-server.expressjs.ts index f92bbbfe..ded501c1 100644 --- a/tests/client-server.expressjs.ts +++ b/tests/client-server.expressjs.ts @@ -5,7 +5,7 @@ import { sendStandardResponse, toStandardLazyRequest } from '@standard-server/no import express from 'express' import express4 from 'express4' -import type { ClientServerTest } from './client-server' +import type { ClientServerTest } from './client-server.ts' export interface ExpressjsClientServerTestOptions { /** @@ -43,11 +43,12 @@ export function createExpressjsClientServerTest( app.use(expressjs.json({ strict: false })) } - app.use(async (req, res) => { + app.use((req, res, next) => { const standardRequest = toStandardLazyRequest(req, res) - const standardResponse = await handler(standardRequest) - await sendStandardResponse(res, standardResponse) + handler(standardRequest) + .then((standardResponse) => sendStandardResponse(res, standardResponse)) + .catch(next) }) const server = app.listen(0) diff --git a/tests/client-server.fastify.ts b/tests/client-server.fastify.ts index 7516fec1..8695e206 100644 --- a/tests/client-server.fastify.ts +++ b/tests/client-server.fastify.ts @@ -2,7 +2,7 @@ import { sendStandardResponse, toStandardLazyRequest } from '@standard-server/fa import { toFetchBody, toFetchHeaders, toStandardLazyResponse } from '@standard-server/fetch' import Fastify from 'fastify' -import type { ClientServerTest } from './client-server' +import type { ClientServerTest } from './client-server.ts' export function createFastifyClientServerTest(): ClientServerTest { const handler: ClientServerTest['handler'] = vi.fn(async () => { @@ -37,8 +37,8 @@ export function createFastifyClientServerTest(): ClientServerTest { const origin = fastify.listen({ port: 0, host: '127.0.0.1' }) - afterAll(async () => { - fastify.close() + afterAll(() => { + void fastify.close() }) const request: ClientServerTest['request'] = vi.fn(async (standardRequest) => { diff --git a/tests/client-server.h3-node-handler.ts b/tests/client-server.h3-node-handler.ts index 71aa40a7..e1ec8cdb 100644 --- a/tests/client-server.h3-node-handler.ts +++ b/tests/client-server.h3-node-handler.ts @@ -2,7 +2,7 @@ import { toFetchBody, toFetchHeaders, toStandardLazyResponse } from '@standard-s import { sendStandardResponse, toStandardLazyRequest } from '@standard-server/node' import { fromNodeHandler, H3, serve } from 'h3' -import type { ClientServerTest } from './client-server' +import type { ClientServerTest } from './client-server.ts' export function createH3NodeHandlerClientServerTest(): ClientServerTest { const handler: ClientServerTest['handler'] = vi.fn(async () => { @@ -24,7 +24,7 @@ export function createH3NodeHandlerClientServerTest(): ClientServerTest { const server = serve(app, { port: 0 }) afterAll(() => { - server.close() + void server.close() }) const port = server.url!.split(':').pop()!.split('/').shift()! diff --git a/tests/client-server.h3-web-handler.ts b/tests/client-server.h3-web-handler.ts index 74a89078..e2d15b9b 100644 --- a/tests/client-server.h3-web-handler.ts +++ b/tests/client-server.h3-web-handler.ts @@ -7,7 +7,7 @@ import { } from '@standard-server/fetch' import { fromWebHandler, H3, serve } from 'h3' -import type { ClientServerTest } from './client-server' +import type { ClientServerTest } from './client-server.ts' export function createH3WebHandlerClientServerTest(): ClientServerTest { const handler: ClientServerTest['handler'] = vi.fn(async () => { @@ -30,7 +30,7 @@ export function createH3WebHandlerClientServerTest(): ClientServerTest { const server = serve(app, { port: 0 }) afterAll(() => { - server.close() + void server.close() }) const port = server.url!.split(':').pop()!.split('/').shift()! diff --git a/tests/client-server.hono-fetch.ts b/tests/client-server.hono-fetch.ts index e760f089..7eb2d2b9 100644 --- a/tests/client-server.hono-fetch.ts +++ b/tests/client-server.hono-fetch.ts @@ -9,7 +9,7 @@ import { toStandardLazyResponse, } from '@standard-server/fetch' -import type { ClientServerTest } from './client-server' +import type { ClientServerTest } from './client-server.ts' export function createHonoFetchClientServerTest(): ClientServerTest { const handler: ClientServerTest['handler'] = vi.fn(async () => { diff --git a/tests/client-server.inprogress-fetch.ts b/tests/client-server.inprogress-fetch.ts index 1a449841..ff0c688e 100644 --- a/tests/client-server.inprogress-fetch.ts +++ b/tests/client-server.inprogress-fetch.ts @@ -6,7 +6,7 @@ import { toStandardLazyResponse, } from '@standard-server/fetch' -import type { ClientServerTest } from './client-server' +import type { ClientServerTest } from './client-server.ts' export function createInprogressFetchClientServerTest(): ClientServerTest { const handler: ClientServerTest['handler'] = vi.fn(async () => { diff --git a/tests/client-server.inprogress.ts b/tests/client-server.inprogress.ts index 344a33d3..310a03ce 100644 --- a/tests/client-server.inprogress.ts +++ b/tests/client-server.inprogress.ts @@ -1,4 +1,4 @@ -import type { ClientServerTest } from './client-server' +import type { ClientServerTest } from './client-server.ts' export function createInprogressClientServerTest(): ClientServerTest { const handler: ClientServerTest['handler'] = vi.fn(async () => { diff --git a/tests/client-server.message-port.ts b/tests/client-server.message-port.ts index 77eb3a57..cfd1387b 100644 --- a/tests/client-server.message-port.ts +++ b/tests/client-server.message-port.ts @@ -6,15 +6,15 @@ import { ServerPeer, } from '@standard-server/peer' -import type { ClientServerTest } from './client-server' -import type { PeerClientServerTestOptions } from './client-server.peer' +import type { PeerClientServerTestOptions } from './client-server.peer.ts' import { expectPeerRequestsCleanedUpAfterEach, peerPrefix, randomEncodePeerMessage, toFetchStreamedStandardRequest, wrapFetchStreamedServerHandler, -} from './client-server.peer' +} from './client-server.peer.ts' +import type { ClientServerTest } from './client-server.ts' export function createMessagePortClientServerTest( options: PeerClientServerTestOptions = {}, diff --git a/tests/client-server.node-fetch-server.ts b/tests/client-server.node-fetch-server.ts index 63e4ce22..bc65a78c 100644 --- a/tests/client-server.node-fetch-server.ts +++ b/tests/client-server.node-fetch-server.ts @@ -10,7 +10,7 @@ import { toStandardLazyResponse, } from '@standard-server/fetch' -import type { ClientServerTest } from './client-server' +import type { ClientServerTest } from './client-server.ts' export function createNodeFetchServerClientServerTest(): ClientServerTest { const handler: ClientServerTest['handler'] = vi.fn(async () => { diff --git a/tests/client-server.node-http.ts b/tests/client-server.node-http.ts index adcac8bb..54b40aea 100644 --- a/tests/client-server.node-http.ts +++ b/tests/client-server.node-http.ts @@ -4,7 +4,7 @@ import type { AddressInfo } from 'node:net' import { toFetchBody, toFetchHeaders, toStandardLazyResponse } from '@standard-server/fetch' import { sendStandardResponse, toStandardLazyRequest } from '@standard-server/node' -import type { ClientServerTest } from './client-server' +import type { ClientServerTest } from './client-server.ts' export function createNodeHttpClientServerTest(): ClientServerTest { const handler: ClientServerTest['handler'] = vi.fn(async () => { diff --git a/tests/client-server.node-http2.ts b/tests/client-server.node-http2.ts index 406dd937..47a2fa7d 100644 --- a/tests/client-server.node-http2.ts +++ b/tests/client-server.node-http2.ts @@ -7,8 +7,8 @@ import { toFetchBody, toFetchHeaders, toStandardLazyResponse } from '@standard-s import { sendStandardResponse, toStandardLazyRequest } from '@standard-server/node' import { throwIfAborted } from '@standard-server/shared' -import type { ClientServerTest } from './client-server' -import { generateTlsCert } from './tls' +import type { ClientServerTest } from './client-server.ts' +import { generateTlsCert } from './tls.ts' export interface NodeHttp2ClientServerTestOptions { /** Serve over TLS (https) with a self-signed localhost certificate. */ @@ -79,7 +79,7 @@ export function createNodeHttp2ClientServerTest( const requestHeaders: http2.OutgoingHttpHeaders = { ':method': standardRequest.method, - ':path': `${standardRequest.url}`, + ':path': standardRequest.url, } fetchRequest.headers.forEach((value, key) => { requestHeaders[key] = value diff --git a/tests/client-server.node-https.ts b/tests/client-server.node-https.ts index 7df3f068..d0161ab1 100644 --- a/tests/client-server.node-https.ts +++ b/tests/client-server.node-https.ts @@ -7,8 +7,8 @@ import { toFetchBody, toFetchHeaders, toStandardLazyResponse } from '@standard-s import { sendStandardResponse, toStandardLazyRequest } from '@standard-server/node' import { throwIfAborted } from '@standard-server/shared' -import type { ClientServerTest } from './client-server' -import { generateTlsCert } from './tls' +import type { ClientServerTest } from './client-server.ts' +import { generateTlsCert } from './tls.ts' export function createNodeHttpsClientServerTest(): ClientServerTest { const handler: ClientServerTest['handler'] = vi.fn(async () => { @@ -65,7 +65,7 @@ export function createNodeHttpsClientServerTest(): ClientServerTest { const req = https.request({ host: 'localhost', port, - path: `${standardRequest.url}`, + path: standardRequest.url, method: standardRequest.method, headers: requestHeaders, agent, diff --git a/tests/client-server.node-srvx.ts b/tests/client-server.node-srvx.ts index 4f3a0935..6b739b7c 100644 --- a/tests/client-server.node-srvx.ts +++ b/tests/client-server.node-srvx.ts @@ -7,7 +7,7 @@ import { } from '@standard-server/fetch' import { serve } from 'srvx/node' -import type { ClientServerTest } from './client-server' +import type { ClientServerTest } from './client-server.ts' export function createNodeSrvxClientServerTest(): ClientServerTest { const handler: ClientServerTest['handler'] = vi.fn(async () => { @@ -26,7 +26,7 @@ export function createNodeSrvxClientServerTest(): ClientServerTest { }) afterAll(() => { - server.close() + void server.close() }) const port = server.url!.split(':').pop()!.split('/').shift()! diff --git a/tests/client-server.node-ws.ts b/tests/client-server.node-ws.ts index 48a459e7..06e41e80 100644 --- a/tests/client-server.node-ws.ts +++ b/tests/client-server.node-ws.ts @@ -7,8 +7,7 @@ import { } from '@standard-server/peer' import { WebSocket, WebSocketServer } from 'ws' -import type { ClientServerTest } from './client-server' -import type { PeerClientServerTestOptions } from './client-server.peer' +import type { PeerClientServerTestOptions } from './client-server.peer.ts' import { expectPeerRequestsCleanedUpAfterEach, peerPrefix, @@ -16,7 +15,8 @@ import { toFetchStreamedStandardRequest, wrapFetchStreamedServerHandler, wsMessageDataToEncoded, -} from './client-server.peer' +} from './client-server.peer.ts' +import type { ClientServerTest } from './client-server.ts' export function createNodeWsClientServerTest( options: PeerClientServerTestOptions = {}, diff --git a/tests/client-server.peer.ts b/tests/client-server.peer.ts index 55ecbcf4..471ba44e 100644 --- a/tests/client-server.peer.ts +++ b/tests/client-server.peer.ts @@ -5,7 +5,7 @@ import { toFetchBody, toFetchHeaders, toStandardBody } from '@standard-server/fe import type { ClientPeer, PeerMessage, ServerPeer } from '@standard-server/peer' import { encodePeerMessage } from '@standard-server/peer' -import type { ClientServerTest } from './client-server' +import type { ClientServerTest } from './client-server.ts' export const peerPrefix = '__PREFIX__' diff --git a/tests/data-transfer.test.ts b/tests/data-transfer.test.ts index db4e0dc8..ca516ee3 100644 --- a/tests/data-transfer.test.ts +++ b/tests/data-transfer.test.ts @@ -2,19 +2,19 @@ import { ErrorEvent, unwrapEvent, withEventMeta } from '@standard-server/core' import { toFetchHeaders } from '@standard-server/fetch' import { isAsyncIteratorObject, sleep } from '@standard-server/shared' -import { expectPeerMessages } from './client-server' -import { createExpressjsClientServerTest } from './client-server.expressjs' -import { createFastifyClientServerTest } from './client-server.fastify' -import { createH3WebHandlerClientServerTest } from './client-server.h3-web-handler' -import { createHonoFetchClientServerTest } from './client-server.hono-fetch' -import { createInprogressClientServerTest } from './client-server.inprogress' -import { createInprogressFetchClientServerTest } from './client-server.inprogress-fetch' -import { createMessagePortClientServerTest } from './client-server.message-port' -import { createNodeHttpClientServerTest } from './client-server.node-http' -import { createNodeHttp2ClientServerTest } from './client-server.node-http2' -import { createNodeHttpsClientServerTest } from './client-server.node-https' -import { createNodeSrvxClientServerTest } from './client-server.node-srvx' -import { createNodeWsClientServerTest } from './client-server.node-ws' +import { createExpressjsClientServerTest } from './client-server.expressjs.ts' +import { createFastifyClientServerTest } from './client-server.fastify.ts' +import { createH3WebHandlerClientServerTest } from './client-server.h3-web-handler.ts' +import { createHonoFetchClientServerTest } from './client-server.hono-fetch.ts' +import { createInprogressFetchClientServerTest } from './client-server.inprogress-fetch.ts' +import { createInprogressClientServerTest } from './client-server.inprogress.ts' +import { createMessagePortClientServerTest } from './client-server.message-port.ts' +import { createNodeHttpClientServerTest } from './client-server.node-http.ts' +import { createNodeHttp2ClientServerTest } from './client-server.node-http2.ts' +import { createNodeHttpsClientServerTest } from './client-server.node-https.ts' +import { createNodeSrvxClientServerTest } from './client-server.node-srvx.ts' +import { createNodeWsClientServerTest } from './client-server.node-ws.ts' +import { expectPeerMessages } from './client-server.ts' /** * Streaming tests produce a chunk every `CHUNK_DELAY` ms and assert each chunk diff --git a/tests/signal-and-cancel.test.ts b/tests/signal-and-cancel.test.ts index 5e8a804a..451f98fa 100644 --- a/tests/signal-and-cancel.test.ts +++ b/tests/signal-and-cancel.test.ts @@ -1,14 +1,14 @@ import { AsyncIteratorClass, isAsyncIteratorObject, sleep } from '@standard-server/shared' -import { expectPeerMessages } from './client-server' -import { createExpressjsClientServerTest } from './client-server.expressjs' -import { createFastifyClientServerTest } from './client-server.fastify' -import { createHonoFetchClientServerTest } from './client-server.hono-fetch' -import { createMessagePortClientServerTest } from './client-server.message-port' -import { createNodeHttpClientServerTest } from './client-server.node-http' -import { createNodeHttp2ClientServerTest } from './client-server.node-http2' -import { createNodeHttpsClientServerTest } from './client-server.node-https' -import { createNodeWsClientServerTest } from './client-server.node-ws' +import { createExpressjsClientServerTest } from './client-server.expressjs.ts' +import { createFastifyClientServerTest } from './client-server.fastify.ts' +import { createHonoFetchClientServerTest } from './client-server.hono-fetch.ts' +import { createMessagePortClientServerTest } from './client-server.message-port.ts' +import { createNodeHttpClientServerTest } from './client-server.node-http.ts' +import { createNodeHttp2ClientServerTest } from './client-server.node-http2.ts' +import { createNodeHttpsClientServerTest } from './client-server.node-https.ts' +import { createNodeWsClientServerTest } from './client-server.node-ws.ts' +import { expectPeerMessages } from './client-server.ts' beforeEach(() => { vi.clearAllMocks() @@ -847,7 +847,7 @@ describe.each([ clientServer.handler.mockImplementationOnce(async (request) => { serverSignal = request.signal! - ;(async () => { + void (async () => { const body = (await request.resolveBody()) as AsyncGenerator expect(body).toSatisfy(isAsyncIteratorObject) await body.next() @@ -924,7 +924,7 @@ describe.each([ clientServer.handler.mockImplementationOnce(async (request) => { serverSignal = request.signal! - ;(async () => { + void (async () => { const body = (await request.resolveBody()) as ReadableStream expect(body).toBeInstanceOf(ReadableStream) diff --git a/tsconfig.json b/tsconfig.json index ae37ca31..0b38b141 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,27 +1,29 @@ { "$schema": "https://json.schemastore.org/tsconfig", - "extends": "uncheck/tsconfig/middleapi", "compilerOptions": { - "types": ["node", "vitest/globals"] + "target": "ES2022", + "lib": ["ES2023"], + "module": "nodenext", + + "rewriteRelativeImportExtensions": true, + "types": ["node", "vitest/globals"], + + "noImplicitOverride": true, + "noUncheckedIndexedAccess": true, + "noEmit": true, + "verbatimModuleSyntax": true, + "skipLibCheck": true }, "include": [ - "playground", + "*", "scripts", "benches", "tests", - "*", - - "*/*/src/**/*.bench.*", - "*/*/src/**/*.test.*", - "*/*/src/**/*.test-d.ts", - "*/*/src/**/__tests__", - "*/*/src/**/__mocks__", - "*/*/src/**/__snapshots__", - "*/*/playground", - "*/*/scripts", - "*/*/benches", + "*/*/*", "*/*/tests", - "*/*/*" + "*/*/benches", + "*/*/src/**/*.test.ts", + "*/*/src/**/*.test-d.ts" ], "exclude": ["playgrounds/**", "tests/bun/**"] } diff --git a/tsconfig.lib.json b/tsconfig.lib.json new file mode 100644 index 00000000..456df90a --- /dev/null +++ b/tsconfig.lib.json @@ -0,0 +1,14 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "extends": "./tsconfig.json", + "compilerOptions": { + "lib": ["ES2022", "DOM", "DOM.Iterable"], + "types": [], + "declaration": true, + "noEmit": false, + "rootDir": "${configDir}/src", + "outDir": "${configDir}/dist" + }, + "include": ["${configDir}/src"], + "exclude": ["${configDir}/src/**/*.test.ts", "${configDir}/src/**/*.test-d.ts"] +} diff --git a/vitest.config.ts b/vitest.config.ts index 0dde7822..63ccdc37 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -6,7 +6,7 @@ export default defineConfig(() => ({ test: { globals: true, include: ['**/*.test.ts'], - exclude: [...defaultExclude, '**/.claude/**', './tests/bun/**'], + exclude: [...defaultExclude, '**/.claude/worktrees/**', './tests/bun/**'], // exposes Node's EventSource global, which is still behind a flag (Node 20 - 26) execArgv: ['--experimental-eventsource'], coverage: { @@ -15,7 +15,7 @@ export default defineConfig(() => ({ }, benchmark: { include: ['**/*.bench.ts'], - exclude: [...defaultExclude, '**/.claude/**'], + exclude: [...defaultExclude, '**/.claude/worktrees/**'], }, }, }))