diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2af4675..ae99c06 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,5 +18,6 @@ jobs: cache: 'npm' cache-dependency-path: package-lock.json - run: npm ci - - run: npm ci --prefix playground + - run: npm ci --prefix playground/nitro + - run: npm ci --prefix playground/vite-nitro - run: npm run ci diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4aae38d..1024caf 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -35,20 +35,32 @@ npm install npm run dev:prepare ``` -### Playground +### Playgrounds + +Two sample apps live under `playground/`: + +| Path | Stack | Dev command | +| --- | --- | --- | +| `playground/nitro/` | Standalone Nitro | `npm run dev` | +| `playground/vite-nitro/` | Vite + Nitro plugin | `npm run dev:vite` | ```bash -# Nitro app + hot reload +# Standalone Nitro app + hot reload npm run dev -# Production build of the playground +# Vite + Nitro app + hot reload +npm run dev:vite + +# Production builds npm run dev:build +npm run dev:vite:build ``` -Workers run in a separate process (see README). From the project root after `npm run dev`: +Workers run in a separate process (see README). From the project root after starting the app: ```bash -npm run processor:dev +npm run processor:dev # playground/nitro +npm run processor:dev:vite # playground/vite-nitro ``` ### Quality checks @@ -88,7 +100,8 @@ Breaking changes should be called out in the PR description and documented in | `src/module.ts` | Nitro module entry | | `src/runtime/` | `defineQueue`, `defineWorker`, `useProcessor` | | `src/utils/` | Build-time helpers (workers entry, Redis config) | -| `playground/` | Development app | +| `playground/nitro/` | Standalone Nitro development app | +| `playground/vite-nitro/` | Vite + Nitro development app | | `docs/` | VitePress documentation | | `spec/` | Vitest unit tests | | `scripts/` | Build verification helpers | diff --git a/README.md b/README.md index 91f5572..4d1a69b 100644 --- a/README.md +++ b/README.md @@ -101,6 +101,7 @@ See [Redis configuration](https://aidanhibbard.github.io/nitro-processor/redis) ```ts import { defineQueue } from '#processor' +// or: import { defineQueue } from 'nitro-processor/runtime' export default defineQueue({ name: 'hello', diff --git a/bin/nitro-processor.mjs b/bin/nitro-processor.mjs old mode 100644 new mode 100755 diff --git a/build.config.ts b/build.config.ts index e58d04a..71c3e12 100644 --- a/build.config.ts +++ b/build.config.ts @@ -4,7 +4,7 @@ export default defineBuildConfig({ entries: [ { type: 'bundle', input: ['src/module.ts'], dts: true }, { type: 'bundle', input: ['src/cli.ts'] }, + { type: 'bundle', input: ['src/runtime-entry.ts'], dts: true }, { type: 'transform', input: './src/runtime', outDir: './dist/runtime' }, - { type: 'transform', input: './src/types.d.mts', outDir: './dist' }, ], }) diff --git a/docs/api.md b/docs/api.md index 758ac18..0ae3fc5 100644 --- a/docs/api.md +++ b/docs/api.md @@ -8,17 +8,35 @@ Reference for module options, runtime config, helpers, and the CLI. ## Imports -| Alias | Exports | +Use Nitro virtual aliases in server code, or import from the published runtime entry when typechecking with plain `tsc` (before Nitro generates types): + +| Import | Exports | | --- | --- | | `#processor` | `defineQueue`, `defineWorker` | | `#processor-utils` | `useProcessor`, BullMQ types (`Queue`, `Worker`, `Processor`, …) | | `#bullmq` | Re-exports from `bullmq` | +| `nitro-processor/runtime` | `defineQueue`, `defineWorker`, `useProcessor`, BullMQ types | ```ts import { defineQueue, defineWorker } from '#processor' +import { useProcessor } from 'nitro-processor/runtime' import type { Job } from '#bullmq' ``` +### TypeScript + +The package ships ambient declarations for `#processor`, `#processor-utils`, and `#bullmq`, plus a path map for plain `tsc`: + +```json +{ + "extends": ["nitro/tsconfig", "nitro-processor/tsconfig.paths.json"] +} +``` + +For project references (`tsc -b`), extend the same path map from your app tsconfig. The repo includes reference playgrounds under `playground/nitro/` (standalone Nitro) and `playground/vite-nitro/` (Vite + Nitro). + +When the Nitro module is registered, `types:extend` adds the same paths to Nitro's generated tsconfig automatically. + ## Module options Configure when registering the module in `nitro.config.ts` or `vite.config.ts`. See [Configuration](/configuration) for Vite setup and `buildDir`. diff --git a/package.json b/package.json index 513642a..5493ddb 100644 --- a/package.json +++ b/package.json @@ -18,13 +18,27 @@ ".": { "types": "./dist/types.d.mts", "import": "./dist/module.mjs" - } + }, + "./runtime": { + "types": "./dist/runtime-entry.d.mts", + "import": "./dist/runtime-entry.mjs" + }, + "./virtual": { + "types": "./dist/virtual.d.mts" + }, + "./tsconfig.paths.json": "./tsconfig.paths.json" }, "main": "./dist/module.mjs", "typesVersions": { "*": { ".": [ "./dist/types.d.mts" + ], + "runtime": [ + "./dist/runtime-entry.d.mts" + ], + "virtual": [ + "./dist/virtual.d.mts" ] } }, @@ -34,23 +48,32 @@ "files": [ "dist", "bin", - "docs/**/*.md" + "docs/**/*.md", + "tsconfig.paths.json" ], "scripts": { - "prepack": "obuild", - "dev": "npm run dev:prepare && nitro dev playground", - "dev:build": "nitro build playground", - "processor:dev": "nitro-processor dev playground", + "prepack": "obuild && tsx scripts/assemble-types.ts", + "dev": "npm run dev:prepare && nitro dev playground/nitro", + "dev:build": "nitro build playground/nitro", + "dev:vite": "npm run dev:prepare && vite dev playground/vite-nitro", + "dev:vite:build": "vite build playground/vite-nitro", + "processor:dev": "nitro-processor dev playground/nitro", + "processor:dev:vite": "nitro-processor dev playground/vite-nitro", "dev:prepare": "obuild --stub", "release": "npm run ci && npm run prepack && changelogen --release && npm publish && git push --follow-tags", "lint": "eslint .", "lint:fix": "eslint . --fix", "typecheck": "tsc --noEmit -p tsconfig.json", "test": "vitest run --coverage", - "ci": "npm run lint && npm run typecheck && npm run test:types && npm run test", + "ci": "npm run lint && npm run typecheck && npm run prepack && npm run test:types && npm run test:playgrounds && npm run test", + "pretest:playgrounds": "npm ci --prefix playground/nitro && npm ci --prefix playground/vite-nitro", + "test:playgrounds": "npm run test:playground:build && npm run test:playground:processor", + "test:playground:build": "npm run build --prefix playground/vite-nitro", + "test:playground:processor": "tsx scripts/playground-vite-processor-dev.ts", "test:coverage": "vitest run --coverage", "test:watch": "vitest watch", - "test:types": "tsc --noEmit -p playground/tsconfig.json", + "pretest:types": "tsx scripts/ensure-dist-types.ts", + "test:types": "tsc --noEmit -p playground/nitro/tsconfig.json && tsc -b playground/vite-nitro/tsconfig.json", "vp:dev": "vitepress dev docs", "vp:build": "vitepress build docs", "vp:preview": "vitepress preview docs" diff --git a/playground/.env.example b/playground/nitro/.env.example similarity index 100% rename from playground/.env.example rename to playground/nitro/.env.example diff --git a/playground/nitro.config.ts b/playground/nitro/nitro.config.ts similarity index 75% rename from playground/nitro.config.ts rename to playground/nitro/nitro.config.ts index 6e3568d..b31db5d 100644 --- a/playground/nitro.config.ts +++ b/playground/nitro/nitro.config.ts @@ -1,5 +1,5 @@ import { defineConfig } from 'nitro/config' -import nitroProcessor from '../src/module' +import nitroProcessor from '../../src/module' export default defineConfig({ modules: [nitroProcessor({ workers: 'server/workers' })], diff --git a/playground/package-lock.json b/playground/nitro/package-lock.json similarity index 95% rename from playground/package-lock.json rename to playground/nitro/package-lock.json index 3778df1..8bb84b0 100644 --- a/playground/package-lock.json +++ b/playground/nitro/package-lock.json @@ -1,12 +1,47 @@ { - "name": "nitro-processor-playground", + "name": "nitro-processor-playground-nitro", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "nitro-processor-playground", + "name": "nitro-processor-playground-nitro", "dependencies": { - "nitro": "latest" + "nitro": "latest", + "nitro-processor": "file:../.." + } + }, + "../..": { + "version": "0.1.1", + "license": "MIT", + "dependencies": { + "bullmq": "^5.76.9", + "citty": "^0.2.2", + "consola": "^3.4.2", + "defu": "^6.1.7", + "fast-glob": "^3.3.3", + "pathe": "^2.0.3" + }, + "bin": { + "nitro-processor": "bin/nitro-processor.mjs" + }, + "devDependencies": { + "@types/node": "latest", + "@vitest/coverage-v8": "^4.1.5", + "changelogen": "^0.6.2", + "eslint": "^10.3.0", + "eslint-config-prettier": "^10.1.5", + "eslint-plugin-prettier": "^5.4.1", + "nitro": "latest", + "obuild": "^0.4.36", + "prettier": "^3.5.3", + "tsx": "^4.22.0", + "typescript": "~5.9.2", + "typescript-eslint": "^8.32.1", + "vitepress": "^2.0.0-alpha.12", + "vitest": "^4.1.5" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@emnapi/core": { @@ -547,6 +582,10 @@ } } }, + "node_modules/nitro-processor": { + "resolved": "../..", + "link": true + }, "node_modules/ocache": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/ocache/-/ocache-0.1.5.tgz", diff --git a/playground/package.json b/playground/nitro/package.json similarity index 56% rename from playground/package.json rename to playground/nitro/package.json index 077c642..bc1502f 100644 --- a/playground/package.json +++ b/playground/nitro/package.json @@ -1,12 +1,13 @@ { "private": true, - "name": "nitro-processor-playground", + "name": "nitro-processor-playground-nitro", "type": "module", "scripts": { "dev": "nitro dev", "build": "nitro build" }, "dependencies": { - "nitro": "latest" + "nitro": "latest", + "nitro-processor": "file:../.." } } diff --git a/playground/server/plugins/set-intervals.ts b/playground/nitro/server/plugins/set-intervals.ts similarity index 100% rename from playground/server/plugins/set-intervals.ts rename to playground/nitro/server/plugins/set-intervals.ts diff --git a/playground/server/queues/basic.ts b/playground/nitro/server/queues/basic.ts similarity index 100% rename from playground/server/queues/basic.ts rename to playground/nitro/server/queues/basic.ts diff --git a/playground/server/queues/index.ts b/playground/nitro/server/queues/index.ts similarity index 100% rename from playground/server/queues/index.ts rename to playground/nitro/server/queues/index.ts diff --git a/playground/server/workers/basic.ts b/playground/nitro/server/workers/basic.ts similarity index 100% rename from playground/server/workers/basic.ts rename to playground/nitro/server/workers/basic.ts diff --git a/playground/server/workers/index.ts b/playground/nitro/server/workers/index.ts similarity index 100% rename from playground/server/workers/index.ts rename to playground/nitro/server/workers/index.ts diff --git a/playground/tsconfig.json b/playground/nitro/tsconfig.json similarity index 66% rename from playground/tsconfig.json rename to playground/nitro/tsconfig.json index f666754..dd31655 100644 --- a/playground/tsconfig.json +++ b/playground/nitro/tsconfig.json @@ -1,6 +1,6 @@ { - "extends": "nitro/tsconfig", - "include": ["server/**/*.ts", "types/**/*.d.ts", "nitro.config.ts"], + "extends": ["nitro/tsconfig", "nitro-processor/tsconfig.paths.json"], + "include": ["server/**/*.ts", "nitro.config.ts"], "compilerOptions": { "strict": true, "noUncheckedIndexedAccess": true, diff --git a/playground/server/tsconfig.json b/playground/server/tsconfig.json deleted file mode 100644 index 37b917b..0000000 --- a/playground/server/tsconfig.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "extends": "../tsconfig.json", - "compilerOptions": { - "paths": { - "#processor": ["../../src/runtime/server/handlers/processor.ts"], - "#processor-utils": ["../../src/runtime/server/utils/workers.ts"], - "#bullmq": ["../node_modules/bullmq"] - } - }, - "include": ["./**/*"] -} diff --git a/playground/types/nitro-processor.d.ts b/playground/types/nitro-processor.d.ts deleted file mode 100644 index 442fef4..0000000 --- a/playground/types/nitro-processor.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -declare module '#processor' { - export { defineQueue, defineWorker } from '../../src/runtime/server/handlers/processor' -} - -declare module '#processor-utils' { - export { useProcessor } from '../../src/runtime/server/utils/workers' -} - -declare module '#bullmq' { - export * from 'bullmq' -} diff --git a/playground/vite-nitro/index.html b/playground/vite-nitro/index.html new file mode 100644 index 0000000..f9c284a --- /dev/null +++ b/playground/vite-nitro/index.html @@ -0,0 +1,10 @@ + + + + + nitro-processor vite playground + + +

nitro-processor vite playground

+ + diff --git a/playground/vite-nitro/package-lock.json b/playground/vite-nitro/package-lock.json new file mode 100644 index 0000000..dd0c206 --- /dev/null +++ b/playground/vite-nitro/package-lock.json @@ -0,0 +1,1688 @@ +{ + "name": "nitro-processor-playground-vite-nitro", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "nitro-processor-playground-vite-nitro", + "dependencies": { + "nitro-processor": "file:../.." + }, + "devDependencies": { + "nitro": "latest", + "typescript": "~5.9.2", + "vite": "latest" + } + }, + "../..": { + "version": "0.1.1", + "license": "MIT", + "dependencies": { + "bullmq": "^5.76.9", + "citty": "^0.2.2", + "consola": "^3.4.2", + "defu": "^6.1.7", + "fast-glob": "^3.3.3", + "pathe": "^2.0.3" + }, + "bin": { + "nitro-processor": "bin/nitro-processor.mjs" + }, + "devDependencies": { + "@types/node": "latest", + "@vitest/coverage-v8": "^4.1.5", + "changelogen": "^0.6.2", + "eslint": "^10.3.0", + "eslint-config-prettier": "^10.1.5", + "eslint-plugin-prettier": "^5.4.1", + "nitro": "latest", + "obuild": "^0.4.36", + "prettier": "^3.5.3", + "tsx": "^4.22.0", + "typescript": "~5.9.2", + "typescript-eslint": "^8.32.1", + "vitepress": "^2.0.0-alpha.12", + "vitest": "^4.1.5" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@emnapi/core": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.0.tgz", + "integrity": "sha512-l9Oo58x0HOP5znGzVhYW9U3e5wVuA4LAZU2AGezTmkhO1CgQRFDhDg4nneHsu/t3WniXg9QrG2nIXL/ZS8ln8Q==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.2.2", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.0.tgz", + "integrity": "sha512-55coeOFKHv1ywEcUXJtWU5f+Jr/W5tZDvZig8DLKSwUN1JpROQ4rk/SNOQiFWmaR/VKF4zuFyW1B8JduOSv6Pg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.2.tgz", + "integrity": "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.5.tgz", + "integrity": "sha512-AWPoBRJ9tsnVhor4sjO7rkni+7p+2IAEFj6cx06UgP10jkQHqay/36uRV/bFkgrh18D9vb4cr8Q0Pthskgzy+Q==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@tybys/wasm-util": "^0.10.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@emnapi/core": "^1.7.1", + "@emnapi/runtime": "^1.7.1" + } + }, + "node_modules/@oxc-project/types": { + "version": "0.135.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.135.0.tgz", + "integrity": "sha512-wR+xRdFkUBMvcAjBJ2q2kcZM6d+DKu2NgoOyxZgYwZdLhmiv6+rnO8PZ/P68kMiZtIKm+pW7zyEJ4kSOs0vo+Q==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" + } + }, + "node_modules/@rolldown/binding-android-arm64": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.1.1.tgz", + "integrity": "sha512-BLf9Wak/gfwVb7NQTQW4wBgL3oAfPy7ArEkhwV543OVw/uY6B47z5xYsqPSZ9PDOorvURPinws6ThaFuNgGLgA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.1.1.tgz", + "integrity": "sha512-rRZRPy/Ynb+Mxu0O6tfPldHeDgAn0sRij+IOUy6sFdUlv3hArGW/DloE3GfAxtqpOJuRNgF74Nr5gM4xBeU2jQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-x64": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.1.1.tgz", + "integrity": "sha512-/MtefPxhKPyWWFM8L45OWiEqRf+eSU2Qv9ZAyTaoZOoGcoPKxbbhjTJO2/U2IThv0uDZ4NWHc3/oTsR6IEOtww==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-freebsd-x64": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.1.1.tgz", + "integrity": "sha512-202K+cpIi1kx/Zn7AtxBi4LTXSY67Aszb2K9rNsuW7FeBeh0nqoNmYLOSZidV0p88VPBzMmTZcHAdPNo3kRYzQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm-gnueabihf": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.1.1.tgz", + "integrity": "sha512-wl9NfeXNUwrXtUc063tddmZFUI6qiNs1CNOwni0OL4vC7MqVSYugra3ZgtDmtVy8e0DluJTENmzIv2BwqLzT4Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-gnu": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.1.1.tgz", + "integrity": "sha512-at2EO4o7D/PJLC4Xik16bU4CcjQE2tSv1LfqMA0TRYQYQihRm3gZeDB8xaX28A9SFedibcAk5DeMCKt4REKG0A==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-musl": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.1.1.tgz", + "integrity": "sha512-5PUjZx366h9tkJTPJF5eibxOlK3sGoeRiBJLLjjEB5/kLDuhr6qB3LkhqLz1smXNgsX+pBhnbcJBrPE30HznAA==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-ppc64-gnu": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.1.1.tgz", + "integrity": "sha512-1WK84XPeio3tjP1sM/TMXiC0G1i1iq1qGZ71KfNQjEFLU1kwD+Cv5T8nGySg/JUFwLbaScu6ve9DmeXlmqpkFA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-s390x-gnu": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.1.1.tgz", + "integrity": "sha512-1nS1X5z1uMJ369RU25hTpKCFvUwXZp12dIzlzk4S+UxCTcSVGsAE6tzkOSufv/7jnmAtK0ZlrsJxh2fGmsnVSw==", + "cpu": [ + "s390x" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.1.1.tgz", + "integrity": "sha512-NwX/wspnq4vYyMFsqbYvzums3ki/Tk8FZbMzMAovPDp3OfLeYKby/D+9osokadXuYEV3OvpeHlwnr/bG8QMixA==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-musl": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.1.1.tgz", + "integrity": "sha512-+n46LhDrJFQM+229y4oXtVpj1G50U/+XuHMlpnisFTEXhrg9f/YIjp/HymX+PVJjBEr7XHRs3CFLelV464pqwA==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-openharmony-arm64": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.1.1.tgz", + "integrity": "sha512-qGwEu47zOWYo7LdRHhCWTNhzwGtxXpdY6CERs8QEOqC0PXGGics/e3vHnyEUKt8xK6YkbZXFUCeklrpB6js8ag==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-wasm32-wasi": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.1.1.tgz", + "integrity": "sha512-qczfgEH8u0wHGGOXtA7UMAybNKuQjjEXairyQaw4WzjiMztfbgatG1h4OKays/smhtwbWltpKCRGtVhU6h40Sg==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "1.11.0", + "@emnapi/runtime": "1.11.0", + "@napi-rs/wasm-runtime": "^1.1.5" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-arm64-msvc": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.1.1.tgz", + "integrity": "sha512-4psXSh63mSbwJF+mB8/9yfUUEzBiHYcUjxa32EO9ZwKy0Ypwjcg4F10D8SvVXgd+isy2UUUjF9HJJnDu1T/4Gg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.1.1.tgz", + "integrity": "sha512-MUvC/HLXVjzkQkWiExdVTEEWf0py+GfWm8WKSZsekG3ih6a21iy0BHPF07X3JIf3ifoklZXTIaHTLPBgH1C3dw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz", + "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tybys/wasm-util": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.2.tgz", + "integrity": "sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/consola": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz", + "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.18.0 || >=16.10.0" + } + }, + "node_modules/crossws": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/crossws/-/crossws-0.4.6.tgz", + "integrity": "sha512-/Wxe9Z007EbJ496j88nToZEvyPZ8PY/wjZJ18Agh/GCA9cYHyLbxtrpdFlFzAw3TV20F0SUYGl0g6PzChbwUrg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "srvx": ">=0.11.5" + }, + "peerDependenciesMeta": { + "srvx": { + "optional": true + } + } + }, + "node_modules/db0": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/db0/-/db0-0.3.4.tgz", + "integrity": "sha512-RiXXi4WaNzPTHEOu8UPQKMooIbqOEyqA1t7Z6MsdxSCeb8iUC9ko3LcmsLmeUt2SM5bctfArZKkRQggKZz7JNw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@electric-sql/pglite": "*", + "@libsql/client": "*", + "better-sqlite3": "*", + "drizzle-orm": "*", + "mysql2": "*", + "sqlite3": "*" + }, + "peerDependenciesMeta": { + "@electric-sql/pglite": { + "optional": true + }, + "@libsql/client": { + "optional": true + }, + "better-sqlite3": { + "optional": true + }, + "drizzle-orm": { + "optional": true + }, + "mysql2": { + "optional": true + }, + "sqlite3": { + "optional": true + } + } + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/env-runner": { + "version": "0.1.14", + "resolved": "https://registry.npmjs.org/env-runner/-/env-runner-0.1.14.tgz", + "integrity": "sha512-qdk5mmgFsd+zPg3r1bkZ+IbvpfUfypyDvNhMGypSMRpz7kOa/kI6SpW8fgyukuEM4Lo24M65r+1Ne0DtT7vFBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "crossws": "^0.4.5", + "exsolve": "^1.0.8", + "httpxy": "^0.5.3", + "srvx": "^0.11.16" + }, + "bin": { + "env-runner": "dist/cli.mjs" + }, + "peerDependencies": { + "@netlify/runtime": "^4.1.23", + "@vercel/queue": "^0.2.0", + "miniflare": "^4.20260515.0", + "wrangler": "^4.0.0" + }, + "peerDependenciesMeta": { + "@netlify/runtime": { + "optional": true + }, + "@vercel/queue": { + "optional": true + }, + "miniflare": { + "optional": true + }, + "wrangler": { + "optional": true + } + } + }, + "node_modules/exsolve": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.8.tgz", + "integrity": "sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==", + "dev": true, + "license": "MIT" + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/h3": { + "version": "2.0.1-rc.22", + "resolved": "https://registry.npmjs.org/h3/-/h3-2.0.1-rc.22.tgz", + "integrity": "sha512-Esv0DMIuPkCTSWCA0vO73vcTqwzH1wjSrAO1TXNu/K3up1sZHa9EKMapbmxCDYBeymC3fVTk4qxp7ogQWQ+KgA==", + "dev": true, + "license": "MIT", + "dependencies": { + "rou3": "^0.8.1", + "srvx": "^0.11.15" + }, + "bin": { + "h3": "bin/h3.mjs" + }, + "engines": { + "node": ">=20.11.1" + }, + "peerDependencies": { + "crossws": "^0.4.1" + }, + "peerDependenciesMeta": { + "crossws": { + "optional": true + } + } + }, + "node_modules/hookable": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/hookable/-/hookable-6.1.1.tgz", + "integrity": "sha512-U9LYDy1CwhMCnprUfeAZWZGByVbhd54hwepegYTK7Pi5NvqEj63ifz5z+xukznehT7i6NIZRu89Ay1AZmRsLEQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/httpxy": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/httpxy/-/httpxy-0.5.3.tgz", + "integrity": "sha512-SMS9V6Sn7VWaS11lYhoAr0ceoaiolTWf4jYdJn0NJhCdKMu9R2H9Fh0LBDWBHQF6HRLI1PmaePYsjanSpE5PEw==", + "dev": true, + "license": "MIT" + }, + "node_modules/lightningcss": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", + "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.32.0", + "lightningcss-darwin-arm64": "1.32.0", + "lightningcss-darwin-x64": "1.32.0", + "lightningcss-freebsd-x64": "1.32.0", + "lightningcss-linux-arm-gnueabihf": "1.32.0", + "lightningcss-linux-arm64-gnu": "1.32.0", + "lightningcss-linux-arm64-musl": "1.32.0", + "lightningcss-linux-x64-gnu": "1.32.0", + "lightningcss-linux-x64-musl": "1.32.0", + "lightningcss-win32-arm64-msvc": "1.32.0", + "lightningcss-win32-x64-msvc": "1.32.0" + } + }, + "node_modules/lightningcss-android-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", + "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", + "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", + "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", + "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", + "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", + "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", + "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", + "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", + "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", + "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", + "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/nanoid": { + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz", + "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/nf3": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/nf3/-/nf3-0.3.17.tgz", + "integrity": "sha512-N9zEWySuJFw+gR0lhS5863YsvNeudOdqRyFvNb+jMXbeTJOdrjDqkCpDginIZfUm0LzT1t1nCRiDeqQm/8kirQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/nitro": { + "version": "3.0.260610-beta", + "resolved": "https://registry.npmjs.org/nitro/-/nitro-3.0.260610-beta.tgz", + "integrity": "sha512-KPb4L5yaF/Rx/xoGMpgHRJvZhbhGiqbRKOwwPLCH9jKTKTsEUHLjnJas85AeCzaswqa8Wi52eQBtRsODC4PS0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "consola": "^3.4.2", + "crossws": "^0.4.6", + "db0": "^0.3.4", + "env-runner": "^0.1.12", + "h3": "2.0.1-rc.22", + "hookable": "^6.1.1", + "nf3": "^0.3.17", + "ocache": "^0.1.5", + "ofetch": "2.0.0-alpha.3", + "ohash": "^2.0.11", + "rolldown": "^1.1.0", + "srvx": "^0.11.16", + "unenv": "2.0.0-rc.24", + "unstorage": "2.0.0-alpha.7" + }, + "bin": { + "nitro": "dist/cli/index.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "@vercel/queue": "^0.3.0", + "dotenv": "*", + "giget": "*", + "jiti": "^2.7.0", + "rollup": "^4.61.1", + "vite": "^7 || ^8", + "xml2js": "^0.6.2", + "zephyr-agent": "^0.2.0" + }, + "peerDependenciesMeta": { + "@vercel/queue": { + "optional": true + }, + "dotenv": { + "optional": true + }, + "giget": { + "optional": true + }, + "jiti": { + "optional": true + }, + "rollup": { + "optional": true + }, + "vite": { + "optional": true + }, + "xml2js": { + "optional": true + }, + "zephyr-agent": { + "optional": true + } + } + }, + "node_modules/nitro-processor": { + "resolved": "../..", + "link": true + }, + "node_modules/ocache": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/ocache/-/ocache-0.1.5.tgz", + "integrity": "sha512-kNNnkkVQup/QDvmTz8Q84wc2ntiyoVHDxa6eHWKt5qdGAmFRBIxy83rxgCYEjW0x06UJ9E3P6VgM2yY4rOBH4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ohash": "^2.0.11" + } + }, + "node_modules/ofetch": { + "version": "2.0.0-alpha.3", + "resolved": "https://registry.npmjs.org/ofetch/-/ofetch-2.0.0-alpha.3.tgz", + "integrity": "sha512-zpYTCs2byOuft65vI3z43Dd6iSdFbOZZLb9/d21aCpx2rGastVU9dOCv0lu4ykc1Ur1anAYjDi3SUvR0vq50JA==", + "dev": true, + "license": "MIT" + }, + "node_modules/ohash": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/ohash/-/ohash-2.0.11.tgz", + "integrity": "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.15", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.15.tgz", + "integrity": "sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.12", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/rolldown": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.1.1.tgz", + "integrity": "sha512-IN750c0p+s3jqJIsFLRZrQazmbAB1kkQDTtQjSt/gbS2ywLhlv4R5Shazer0FZKmuo/BsO3/w2UoYnUjuOZqHg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@oxc-project/types": "=0.135.0", + "@rolldown/pluginutils": "^1.0.0" + }, + "bin": { + "rolldown": "bin/cli.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "optionalDependencies": { + "@rolldown/binding-android-arm64": "1.1.1", + "@rolldown/binding-darwin-arm64": "1.1.1", + "@rolldown/binding-darwin-x64": "1.1.1", + "@rolldown/binding-freebsd-x64": "1.1.1", + "@rolldown/binding-linux-arm-gnueabihf": "1.1.1", + "@rolldown/binding-linux-arm64-gnu": "1.1.1", + "@rolldown/binding-linux-arm64-musl": "1.1.1", + "@rolldown/binding-linux-ppc64-gnu": "1.1.1", + "@rolldown/binding-linux-s390x-gnu": "1.1.1", + "@rolldown/binding-linux-x64-gnu": "1.1.1", + "@rolldown/binding-linux-x64-musl": "1.1.1", + "@rolldown/binding-openharmony-arm64": "1.1.1", + "@rolldown/binding-wasm32-wasi": "1.1.1", + "@rolldown/binding-win32-arm64-msvc": "1.1.1", + "@rolldown/binding-win32-x64-msvc": "1.1.1" + } + }, + "node_modules/rou3": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/rou3/-/rou3-0.8.1.tgz", + "integrity": "sha512-ePa+XGk00/3HuCqrEnK3LxJW7I0SdNg6EFzKUJG73hMAdDcOUC/i/aSz7LSDwLrGr33kal/rqOGydzwl6U7zBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/srvx": { + "version": "0.11.16", + "resolved": "https://registry.npmjs.org/srvx/-/srvx-0.11.16.tgz", + "integrity": "sha512-bp07zRuycfTY43IjAvvTFnmnJi8ikW0VFiHwOhhYcVW/L4xQ1XY4PAd4Nuum1rsA17C39zL7x+CDhrn5AL32Rw==", + "dev": true, + "license": "MIT", + "bin": { + "srvx": "bin/srvx.mjs" + }, + "engines": { + "node": ">=20.16.0" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", + "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD", + "optional": true + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/unenv": { + "version": "2.0.0-rc.24", + "resolved": "https://registry.npmjs.org/unenv/-/unenv-2.0.0-rc.24.tgz", + "integrity": "sha512-i7qRCmY42zmCwnYlh9H2SvLEypEFGye5iRmEMKjcGi7zk9UquigRjFtTLz0TYqr0ZGLZhaMHl/foy1bZR+Cwlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "pathe": "^2.0.3" + } + }, + "node_modules/unstorage": { + "version": "2.0.0-alpha.7", + "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-2.0.0-alpha.7.tgz", + "integrity": "sha512-ELPztchk2zgFJnakyodVY3vJWGW9jy//keJ32IOJVGUMyaPydwcA1FtVvWqT0TNRch9H+cMNEGllfVFfScImog==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@azure/app-configuration": "^1.11.0", + "@azure/cosmos": "^4.9.1", + "@azure/data-tables": "^13.3.2", + "@azure/identity": "^4.13.0", + "@azure/keyvault-secrets": "^4.10.0", + "@azure/storage-blob": "^12.31.0", + "@capacitor/preferences": "^6 || ^7 || ^8", + "@deno/kv": ">=0.13.0", + "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0", + "@planetscale/database": "^1.19.0", + "@upstash/redis": "^1.36.2", + "@vercel/blob": ">=0.27.3", + "@vercel/functions": "^2.2.12 || ^3.0.0", + "@vercel/kv": "^1.0.1", + "aws4fetch": "^1.0.20", + "chokidar": "^4 || ^5", + "db0": ">=0.3.4", + "idb-keyval": "^6.2.2", + "ioredis": "^5.9.3", + "lru-cache": "^11.2.6", + "mongodb": "^6 || ^7", + "ofetch": "*", + "uploadthing": "^7.7.4" + }, + "peerDependenciesMeta": { + "@azure/app-configuration": { + "optional": true + }, + "@azure/cosmos": { + "optional": true + }, + "@azure/data-tables": { + "optional": true + }, + "@azure/identity": { + "optional": true + }, + "@azure/keyvault-secrets": { + "optional": true + }, + "@azure/storage-blob": { + "optional": true + }, + "@capacitor/preferences": { + "optional": true + }, + "@deno/kv": { + "optional": true + }, + "@netlify/blobs": { + "optional": true + }, + "@planetscale/database": { + "optional": true + }, + "@upstash/redis": { + "optional": true + }, + "@vercel/blob": { + "optional": true + }, + "@vercel/functions": { + "optional": true + }, + "@vercel/kv": { + "optional": true + }, + "aws4fetch": { + "optional": true + }, + "chokidar": { + "optional": true + }, + "db0": { + "optional": true + }, + "idb-keyval": { + "optional": true + }, + "ioredis": { + "optional": true + }, + "lru-cache": { + "optional": true + }, + "mongodb": { + "optional": true + }, + "ofetch": { + "optional": true + }, + "uploadthing": { + "optional": true + } + } + }, + "node_modules/vite": { + "version": "8.0.16", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.16.tgz", + "integrity": "sha512-h9bXPmJichP5fLmVQo3PyaGSDE2n3aPuomeAlVRm0JLmt4rY6zmPKd59HYI4LNW8oTK7tlTsuC7l/m7awx9Jcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "lightningcss": "^1.32.0", + "picomatch": "^4.0.4", + "postcss": "^8.5.15", + "rolldown": "1.0.3", + "tinyglobby": "^0.2.17" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "@vitejs/devtools": "^0.1.18", + "esbuild": "^0.27.0 || ^0.28.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "@vitejs/devtools": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/@emnapi/core": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz", + "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.2.1", + "tslib": "^2.4.0" + } + }, + "node_modules/vite/node_modules/@emnapi/runtime": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz", + "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/vite/node_modules/@emnapi/wasi-threads": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", + "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/vite/node_modules/@oxc-project/types": { + "version": "0.133.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.133.0.tgz", + "integrity": "sha512-KzkdCd6Uxqnf6l3HOw1xfatAlUURA0g14cvBYFyJ5SaNOQbOUvBr9PKArcPcrNIeRsBdgcUzOGrhKveVpvOIGA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-android-arm64": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.3.tgz", + "integrity": "sha512-454rs7jHngixp/NMxd5srYD57OnzSlZ/eFTETjORQHLwJG1lRtmNOJcBerZlfu4GjKqeq8aCCIQrMdHyhI51Hw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.3.tgz", + "integrity": "sha512-PcAhP+ynjURNyy8SKGl5DQP94aGuB/7JrXJb/t7P+hanXvQVMWzUvRRhBAcg/lNRadBhoUPqSoP4xw5tR/KBEA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-darwin-x64": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.3.tgz", + "integrity": "sha512-9YpfeUvSE2RS7wysJ81uOZkXJz7f7Q55H2Gvp3VEw/EsahqDtrphrZ0EwDLK5vvKOzaCrBsjF8JmnMLcUt78Gg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-freebsd-x64": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.3.tgz", + "integrity": "sha512-yB1IlAsSNHncV6SCTL27/MVGR5htvQsoGxIv5KMGXALp+Ll1wYsn+x98M9MW7qa+NdSbvrrY7ANI4wLJ0n1e6g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-linux-arm-gnueabihf": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.3.tgz", + "integrity": "sha512-Yi30IVAAfLUCy2MseFjbB1jAMDl1VMCAas5StnYp8da9+CKvMd2H2cbEjWcw5NPaPqzvYkVIaF1nNUG+b7u/sw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-linux-arm64-gnu": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.3.tgz", + "integrity": "sha512-jsO7R8To+AdlYgUmN5sHSCZbfhtMBkO0WUx8iORQnPcMMdgr7qM2DQmMwgabs3GhNztdmoKkMKQFHD6DTMCIQw==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-linux-arm64-musl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.3.tgz", + "integrity": "sha512-VWkUHwWriDciit80wleYwKILoR/KMvxh/IdwS/paX+ZgpuRpCrKLUdadJbc0NpBEiyhpYawsJ73j9aCvOH+f7Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-linux-ppc64-gnu": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.3.tgz", + "integrity": "sha512-5f1laC0SlIR0yDbFCd8acUhvJIag6N3zC5P7oUPN6wX0aOma+uKJ0wBDH5aq7I1PVI2ttTlhJwzwRIBnLiSGEg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-linux-s390x-gnu": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.3.tgz", + "integrity": "sha512-Iq4ko0r4XsgbrF/LunNgHtAGLRRVE2kXonAXQ/MV0mC6jQpMOhW1SvtZja2EhC/kd05++bP78dsqBeIQyYJ6Yg==", + "cpu": [ + "s390x" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.3.tgz", + "integrity": "sha512-B8m6tD5+/N5FeNQFbKlLA/2yVq9ycQP1SeedyEYYKWBNR3ZQbkvIUcNnDNM03lO1l5F2roiiFJGgvoLLyZXtSg==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-linux-x64-musl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.3.tgz", + "integrity": "sha512-pSdpdUJHkuCxun9LE7jvgUB9qsRgaiyNNCX7m/AvHTcq67AiT/Yhoxvw5zPfhrM8k/BfP8ce/hMOpthKDpEUow==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-openharmony-arm64": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.3.tgz", + "integrity": "sha512-OXXS3RKJgX2uLwM+gYyuH5omcH8fL1LJs96pZGgtetVCahON57+d4SJHzTgZiOjxgGkSnpXpOsWuPDGAKAigEg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-wasm32-wasi": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.3.tgz", + "integrity": "sha512-JTtb8BWFynicNSoPrehsCzBtOKjZ6jhMiPFEmOiuXg1Fl8dn2KHQob+GuPSGR0dryQa1PQJbzjF3dqO/whhjLg==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "1.10.0", + "@emnapi/runtime": "1.10.0", + "@napi-rs/wasm-runtime": "^1.1.4" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-win32-arm64-msvc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.3.tgz", + "integrity": "sha512-gEdFFEN70A/jxb2svrWsN3aDL7OUtmvlOy+6fa2jxG8K0wQ1ZbdeLGnidov6Yu5/733dI5ySfzFlQ/cb0bSz1g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.3.tgz", + "integrity": "sha512-eXB7CHuaQdqmJcc3koCNtNPmT/bj2gc999kUFgBxG8Ac0NdgXc4rkCHhqrgrhN3zddvvvrgzj1e90SuSfmyIXA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/vite/node_modules/rolldown": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.3.tgz", + "integrity": "sha512-i00lAJ2ks1BYr7rjNjKC7BcqAS7nVfiT3QX1SI5aY+AFHblCmaUf9OE9dbdzDvW6dJxbi2ZCZiy9v3CcwOiX3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@oxc-project/types": "=0.133.0", + "@rolldown/pluginutils": "^1.0.0" + }, + "bin": { + "rolldown": "bin/cli.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "optionalDependencies": { + "@rolldown/binding-android-arm64": "1.0.3", + "@rolldown/binding-darwin-arm64": "1.0.3", + "@rolldown/binding-darwin-x64": "1.0.3", + "@rolldown/binding-freebsd-x64": "1.0.3", + "@rolldown/binding-linux-arm-gnueabihf": "1.0.3", + "@rolldown/binding-linux-arm64-gnu": "1.0.3", + "@rolldown/binding-linux-arm64-musl": "1.0.3", + "@rolldown/binding-linux-ppc64-gnu": "1.0.3", + "@rolldown/binding-linux-s390x-gnu": "1.0.3", + "@rolldown/binding-linux-x64-gnu": "1.0.3", + "@rolldown/binding-linux-x64-musl": "1.0.3", + "@rolldown/binding-openharmony-arm64": "1.0.3", + "@rolldown/binding-wasm32-wasi": "1.0.3", + "@rolldown/binding-win32-arm64-msvc": "1.0.3", + "@rolldown/binding-win32-x64-msvc": "1.0.3" + } + } + } +} diff --git a/playground/vite-nitro/package.json b/playground/vite-nitro/package.json new file mode 100644 index 0000000..ec8d090 --- /dev/null +++ b/playground/vite-nitro/package.json @@ -0,0 +1,17 @@ +{ + "private": true, + "name": "nitro-processor-playground-vite-nitro", + "type": "module", + "scripts": { + "dev": "vite dev", + "build": "vite build" + }, + "dependencies": { + "nitro-processor": "file:../.." + }, + "devDependencies": { + "nitro": "latest", + "typescript": "~5.9.2", + "vite": "latest" + } +} diff --git a/playground/vite-nitro/server/queues/basic.ts b/playground/vite-nitro/server/queues/basic.ts new file mode 100644 index 0000000..37a9440 --- /dev/null +++ b/playground/vite-nitro/server/queues/basic.ts @@ -0,0 +1,3 @@ +import { defineQueue } from 'nitro-processor/runtime' + +export default defineQueue({ name: 'basic' }) diff --git a/playground/vite-nitro/server/workers/basic.ts b/playground/vite-nitro/server/workers/basic.ts new file mode 100644 index 0000000..a639f69 --- /dev/null +++ b/playground/vite-nitro/server/workers/basic.ts @@ -0,0 +1,9 @@ +import { defineWorker } from '#processor' +import type { Job } from '#bullmq' + +export default defineWorker({ + name: 'basic', + async processor(job: Job) { + return { ok: true, received: job.data } + }, +}) diff --git a/playground/vite-nitro/tsconfig.app.json b/playground/vite-nitro/tsconfig.app.json new file mode 100644 index 0000000..e399aed --- /dev/null +++ b/playground/vite-nitro/tsconfig.app.json @@ -0,0 +1,14 @@ +{ + "extends": ["nitro/tsconfig", "nitro-processor/tsconfig.paths.json"], + "compilerOptions": { + "composite": true, + "noEmit": true, + "strict": true, + "noUncheckedIndexedAccess": true, + "exactOptionalPropertyTypes": true, + "noImplicitOverride": true, + "noPropertyAccessFromIndexSignature": true, + "verbatimModuleSyntax": true + }, + "include": ["server/**/*.ts"] +} diff --git a/playground/vite-nitro/tsconfig.app.tsbuildinfo b/playground/vite-nitro/tsconfig.app.tsbuildinfo new file mode 100644 index 0000000..e6ea9d2 --- /dev/null +++ b/playground/vite-nitro/tsconfig.app.tsbuildinfo @@ -0,0 +1 @@ +{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/typescript/lib/lib.es2023.d.ts","../../node_modules/typescript/lib/lib.es2024.d.ts","../../node_modules/typescript/lib/lib.esnext.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../node_modules/typescript/lib/lib.es2023.collection.d.ts","../../node_modules/typescript/lib/lib.es2023.intl.d.ts","../../node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../../node_modules/typescript/lib/lib.es2024.collection.d.ts","../../node_modules/typescript/lib/lib.es2024.object.d.ts","../../node_modules/typescript/lib/lib.es2024.promise.d.ts","../../node_modules/typescript/lib/lib.es2024.regexp.d.ts","../../node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2024.string.d.ts","../../node_modules/typescript/lib/lib.esnext.array.d.ts","../../node_modules/typescript/lib/lib.esnext.collection.d.ts","../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../node_modules/typescript/lib/lib.esnext.promise.d.ts","../../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../node_modules/typescript/lib/lib.esnext.iterator.d.ts","../../node_modules/typescript/lib/lib.esnext.float16.d.ts","../../node_modules/typescript/lib/lib.esnext.error.d.ts","../../node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../node_modules/bullmq/dist/esm/classes/async-fifo-queue.d.ts","../../node_modules/bullmq/dist/esm/interfaces/backoff-options.d.ts","../../node_modules/bullmq/dist/esm/types/keep-jobs.d.ts","../../node_modules/bullmq/dist/esm/interfaces/parent-options.d.ts","../../node_modules/cron-parser/types/common.d.ts","../../node_modules/cron-parser/types/index.d.ts","../../node_modules/bullmq/dist/esm/interfaces/repeat-options.d.ts","../../node_modules/bullmq/dist/esm/interfaces/base-job-options.d.ts","../../node_modules/bullmq/dist/esm/types/deduplication-options.d.ts","../../node_modules/bullmq/dist/esm/types/job-options.d.ts","../../node_modules/bullmq/dist/esm/types/job-progress.d.ts","../../node_modules/bullmq/dist/esm/interfaces/parent.d.ts","../../node_modules/bullmq/dist/esm/interfaces/job-json.d.ts","../../node_modules/bullmq/dist/esm/types/job-json-sandbox.d.ts","../../node_modules/bullmq/dist/esm/interfaces/minimal-job.d.ts","../../node_modules/bullmq/dist/esm/types/backoff-strategy.d.ts","../../node_modules/bullmq/dist/esm/classes/backoffs.d.ts","../../node_modules/bullmq/dist/esm/types/repeat-strategy.d.ts","../../node_modules/bullmq/dist/esm/interfaces/advanced-options.d.ts","../../node_modules/bullmq/dist/esm/enums/parent-command.d.ts","../../node_modules/bullmq/dist/esm/interfaces/child-message.d.ts","../../node_modules/bullmq/dist/esm/interfaces/redis-client.d.ts","../../node_modules/bullmq/dist/esm/interfaces/connection.d.ts","../../node_modules/bullmq/dist/esm/types/database-type.d.ts","../../node_modules/bullmq/dist/esm/types/finished-status.d.ts","../../node_modules/bullmq/dist/esm/types/job-scheduler-template-options.d.ts","../../node_modules/bullmq/dist/esm/types/job-type.d.ts","../../node_modules/bullmq/dist/esm/types/index.d.ts","../../node_modules/@types/node/compatibility/iterators.d.ts","../../node_modules/@types/node/globals.typedarray.d.ts","../../node_modules/@types/node/buffer.buffer.d.ts","../../node_modules/@types/node/globals.d.ts","../../node_modules/@types/node/web-globals/abortcontroller.d.ts","../../node_modules/@types/node/web-globals/blob.d.ts","../../node_modules/@types/node/web-globals/console.d.ts","../../node_modules/@types/node/web-globals/crypto.d.ts","../../node_modules/@types/node/web-globals/domexception.d.ts","../../node_modules/@types/node/web-globals/encoding.d.ts","../../node_modules/@types/node/web-globals/events.d.ts","../../node_modules/undici-types/utility.d.ts","../../node_modules/undici-types/header.d.ts","../../node_modules/undici-types/readable.d.ts","../../node_modules/undici-types/fetch.d.ts","../../node_modules/undici-types/formdata.d.ts","../../node_modules/undici-types/connector.d.ts","../../node_modules/undici-types/client-stats.d.ts","../../node_modules/undici-types/client.d.ts","../../node_modules/undici-types/errors.d.ts","../../node_modules/undici-types/dispatcher.d.ts","../../node_modules/undici-types/global-dispatcher.d.ts","../../node_modules/undici-types/global-origin.d.ts","../../node_modules/undici-types/pool-stats.d.ts","../../node_modules/undici-types/pool.d.ts","../../node_modules/undici-types/handlers.d.ts","../../node_modules/undici-types/balanced-pool.d.ts","../../node_modules/undici-types/round-robin-pool.d.ts","../../node_modules/undici-types/h2c-client.d.ts","../../node_modules/undici-types/agent.d.ts","../../node_modules/undici-types/mock-interceptor.d.ts","../../node_modules/undici-types/mock-call-history.d.ts","../../node_modules/undici-types/mock-agent.d.ts","../../node_modules/undici-types/mock-client.d.ts","../../node_modules/undici-types/mock-pool.d.ts","../../node_modules/undici-types/snapshot-agent.d.ts","../../node_modules/undici-types/mock-errors.d.ts","../../node_modules/undici-types/proxy-agent.d.ts","../../node_modules/undici-types/socks5-proxy-agent.d.ts","../../node_modules/undici-types/env-http-proxy-agent.d.ts","../../node_modules/undici-types/retry-handler.d.ts","../../node_modules/undici-types/retry-agent.d.ts","../../node_modules/undici-types/api.d.ts","../../node_modules/undici-types/cache-interceptor.d.ts","../../node_modules/undici-types/interceptors.d.ts","../../node_modules/undici-types/util.d.ts","../../node_modules/undici-types/cookies.d.ts","../../node_modules/undici-types/patch.d.ts","../../node_modules/undici-types/websocket.d.ts","../../node_modules/undici-types/eventsource.d.ts","../../node_modules/undici-types/diagnostics-channel.d.ts","../../node_modules/undici-types/content-type.d.ts","../../node_modules/undici-types/cache.d.ts","../../node_modules/undici-types/index.d.ts","../../node_modules/@types/node/web-globals/fetch.d.ts","../../node_modules/@types/node/web-globals/importmeta.d.ts","../../node_modules/@types/node/web-globals/messaging.d.ts","../../node_modules/@types/node/web-globals/navigator.d.ts","../../node_modules/@types/node/web-globals/performance.d.ts","../../node_modules/@types/node/web-globals/storage.d.ts","../../node_modules/@types/node/web-globals/streams.d.ts","../../node_modules/@types/node/web-globals/timers.d.ts","../../node_modules/@types/node/web-globals/url.d.ts","../../node_modules/@types/node/assert.d.ts","../../node_modules/@types/node/assert/strict.d.ts","../../node_modules/@types/node/async_hooks.d.ts","../../node_modules/@types/node/buffer.d.ts","../../node_modules/@types/node/child_process.d.ts","../../node_modules/@types/node/cluster.d.ts","../../node_modules/@types/node/console.d.ts","../../node_modules/@types/node/constants.d.ts","../../node_modules/@types/node/crypto.d.ts","../../node_modules/@types/node/dgram.d.ts","../../node_modules/@types/node/diagnostics_channel.d.ts","../../node_modules/@types/node/dns.d.ts","../../node_modules/@types/node/dns/promises.d.ts","../../node_modules/@types/node/domain.d.ts","../../node_modules/@types/node/events.d.ts","../../node_modules/@types/node/fs.d.ts","../../node_modules/@types/node/fs/promises.d.ts","../../node_modules/@types/node/http.d.ts","../../node_modules/@types/node/http2.d.ts","../../node_modules/@types/node/https.d.ts","../../node_modules/@types/node/inspector.d.ts","../../node_modules/@types/node/inspector.generated.d.ts","../../node_modules/@types/node/inspector/promises.d.ts","../../node_modules/@types/node/module.d.ts","../../node_modules/@types/node/net.d.ts","../../node_modules/@types/node/os.d.ts","../../node_modules/@types/node/path.d.ts","../../node_modules/@types/node/path/posix.d.ts","../../node_modules/@types/node/path/win32.d.ts","../../node_modules/@types/node/perf_hooks.d.ts","../../node_modules/@types/node/process.d.ts","../../node_modules/@types/node/punycode.d.ts","../../node_modules/@types/node/querystring.d.ts","../../node_modules/@types/node/quic.d.ts","../../node_modules/@types/node/readline.d.ts","../../node_modules/@types/node/readline/promises.d.ts","../../node_modules/@types/node/repl.d.ts","../../node_modules/@types/node/sea.d.ts","../../node_modules/@types/node/sqlite.d.ts","../../node_modules/@types/node/stream.d.ts","../../node_modules/@types/node/stream/consumers.d.ts","../../node_modules/@types/node/stream/iter.d.ts","../../node_modules/@types/node/stream/promises.d.ts","../../node_modules/@types/node/stream/web.d.ts","../../node_modules/@types/node/string_decoder.d.ts","../../node_modules/@types/node/test.d.ts","../../node_modules/@types/node/test/reporters.d.ts","../../node_modules/@types/node/timers.d.ts","../../node_modules/@types/node/timers/promises.d.ts","../../node_modules/@types/node/tls.d.ts","../../node_modules/@types/node/trace_events.d.ts","../../node_modules/@types/node/tty.d.ts","../../node_modules/@types/node/url.d.ts","../../node_modules/@types/node/util.d.ts","../../node_modules/@types/node/util/types.d.ts","../../node_modules/@types/node/v8.d.ts","../../node_modules/@types/node/vm.d.ts","../../node_modules/@types/node/wasi.d.ts","../../node_modules/@types/node/worker_threads.d.ts","../../node_modules/@types/node/zlib.d.ts","../../node_modules/@types/node/zlib/iter.d.ts","../../node_modules/@types/node/index.d.ts","../../node_modules/ioredis/built/types.d.ts","../../node_modules/ioredis/built/command.d.ts","../../node_modules/ioredis/built/scanstream.d.ts","../../node_modules/ioredis/built/utils/rediscommander.d.ts","../../node_modules/ioredis/built/transaction.d.ts","../../node_modules/ioredis/built/utils/commander.d.ts","../../node_modules/ioredis/built/connectors/abstractconnector.d.ts","../../node_modules/ioredis/built/connectors/connectorconstructor.d.ts","../../node_modules/ioredis/built/connectors/sentinelconnector/types.d.ts","../../node_modules/ioredis/built/connectors/sentinelconnector/sentineliterator.d.ts","../../node_modules/ioredis/built/connectors/sentinelconnector/index.d.ts","../../node_modules/ioredis/built/connectors/standaloneconnector.d.ts","../../node_modules/ioredis/built/redis/redisoptions.d.ts","../../node_modules/ioredis/built/cluster/util.d.ts","../../node_modules/ioredis/built/cluster/clusteroptions.d.ts","../../node_modules/ioredis/built/cluster/index.d.ts","../../node_modules/denque/index.d.ts","../../node_modules/ioredis/built/subscriptionset.d.ts","../../node_modules/ioredis/built/datahandler.d.ts","../../node_modules/ioredis/built/redis.d.ts","../../node_modules/ioredis/built/pipeline.d.ts","../../node_modules/ioredis/built/index.d.ts","../../node_modules/bullmq/dist/esm/interfaces/redis-options.d.ts","../../node_modules/bullmq/dist/esm/enums/child-command.d.ts","../../node_modules/bullmq/dist/esm/enums/error-code.d.ts","../../node_modules/bullmq/dist/esm/enums/metrics-time.d.ts","../../node_modules/bullmq/dist/esm/enums/telemetry-attributes.d.ts","../../node_modules/bullmq/dist/esm/enums/index.d.ts","../../node_modules/bullmq/dist/esm/interfaces/telemetry.d.ts","../../node_modules/bullmq/dist/esm/interfaces/queue-options.d.ts","../../node_modules/bullmq/dist/esm/interfaces/flow-job.d.ts","../../node_modules/bullmq/dist/esm/interfaces/ioredis-events.d.ts","../../node_modules/bullmq/dist/esm/interfaces/job-scheduler-json.d.ts","../../node_modules/bullmq/dist/esm/interfaces/lock-manager-worker-context.d.ts","../../node_modules/bullmq/dist/esm/interfaces/metrics-options.d.ts","../../node_modules/bullmq/dist/esm/interfaces/metrics.d.ts","../../node_modules/bullmq/dist/esm/classes/queue-keys.d.ts","../../node_modules/bullmq/dist/esm/interfaces/script-queue-context.d.ts","../../node_modules/bullmq/dist/esm/interfaces/minimal-queue.d.ts","../../node_modules/bullmq/dist/esm/interfaces/parent-message.d.ts","../../node_modules/bullmq/dist/esm/interfaces/queue-meta.d.ts","../../node_modules/bullmq/dist/esm/interfaces/rate-limiter-options.d.ts","../../node_modules/bullmq/dist/esm/interfaces/redis-streams.d.ts","../../node_modules/bullmq/dist/esm/interfaces/repeatable-job.d.ts","../../node_modules/bullmq/dist/esm/interfaces/repeatable-options.d.ts","../../node_modules/bullmq/dist/esm/interfaces/retry-options.d.ts","../../node_modules/bullmq/dist/esm/interfaces/sandboxed-job.d.ts","../../node_modules/bullmq/dist/esm/interfaces/sandboxed-job-processor.d.ts","../../node_modules/bullmq/dist/esm/interfaces/sandboxed-options.d.ts","../../node_modules/bullmq/dist/esm/interfaces/worker-options.d.ts","../../node_modules/bullmq/dist/esm/interfaces/receiver.d.ts","../../node_modules/bullmq/dist/esm/interfaces/index.d.ts","../../node_modules/bullmq/dist/esm/classes/child.d.ts","../../node_modules/bullmq/dist/esm/classes/child-pool.d.ts","../../node_modules/bullmq/dist/esm/classes/child-processor.d.ts","../../node_modules/bullmq/dist/esm/classes/errors/connection-closed-error.d.ts","../../node_modules/bullmq/dist/esm/classes/errors/delayed-error.d.ts","../../node_modules/bullmq/dist/esm/classes/errors/rate-limit-error.d.ts","../../node_modules/bullmq/dist/esm/classes/errors/unrecoverable-error.d.ts","../../node_modules/bullmq/dist/esm/classes/errors/waiting-children-error.d.ts","../../node_modules/bullmq/dist/esm/classes/errors/waiting-error.d.ts","../../node_modules/bullmq/dist/esm/classes/errors/index.d.ts","../../node_modules/bullmq/dist/esm/classes/scripts.d.ts","../../node_modules/bullmq/dist/esm/classes/redis-connection.d.ts","../../node_modules/bullmq/dist/esm/classes/queue-base.d.ts","../../node_modules/bullmq/dist/esm/classes/queue-events.d.ts","../../node_modules/bullmq/dist/esm/classes/job.d.ts","../../node_modules/bullmq/dist/esm/classes/flow-producer.d.ts","../../node_modules/bullmq/dist/esm/classes/ioredis-client.d.ts","../../node_modules/bullmq/dist/esm/classes/node-redis-client.d.ts","../../node_modules/bullmq/dist/esm/classes/bun-redis-client.d.ts","../../node_modules/bullmq/dist/esm/classes/job-scheduler.d.ts","../../node_modules/node-abort-controller/index.d.ts","../../node_modules/bullmq/dist/esm/classes/abort-controller.d.ts","../../node_modules/bullmq/dist/esm/classes/lock-manager.d.ts","../../node_modules/bullmq/dist/esm/classes/queue-events-producer.d.ts","../../node_modules/bullmq/dist/esm/classes/queue-getters.d.ts","../../node_modules/bullmq/dist/esm/classes/repeat.d.ts","../../node_modules/bullmq/dist/esm/classes/queue.d.ts","../../node_modules/bullmq/dist/esm/classes/sandbox.d.ts","../../node_modules/bullmq/dist/esm/types/processor.d.ts","../../node_modules/bullmq/dist/esm/classes/worker.d.ts","../../node_modules/bullmq/dist/esm/classes/index.d.ts","../../node_modules/bullmq/dist/esm/utils/index.d.ts","../../node_modules/bullmq/dist/esm/utils/create-scripts.d.ts","../../node_modules/bullmq/dist/esm/index.d.ts","../../dist/runtime-entry.d.mts","./server/queues/basic.ts","../../dist/runtime/server/types/stop-all.d.mts","../../dist/runtime/server/utils/workers.d.mts","../../dist/runtime/server/handlers/definequeue.d.mts","../../dist/runtime/server/handlers/defineworker.d.mts","../../dist/runtime/server/handlers/processor.d.mts","./server/workers/basic.ts","../../node_modules/@types/deep-eql/index.d.ts","../../node_modules/assertion-error/index.d.ts","../../node_modules/@types/chai/index.d.ts","../../node_modules/@types/esrecurse/index.d.ts","../../node_modules/@types/estree/index.d.ts","../../node_modules/@types/unist/index.d.ts","../../node_modules/@types/hast/index.d.ts","../../node_modules/@types/jsesc/index.d.ts","../../node_modules/@types/json-schema/index.d.ts","../../node_modules/@types/linkify-it/build/index.cjs.d.ts","../../node_modules/@types/linkify-it/index.d.ts","../../node_modules/@types/mdurl/build/index.cjs.d.ts","../../node_modules/@types/markdown-it/dist/index.cjs.d.ts","../../node_modules/@types/markdown-it/index.d.ts","../../node_modules/@types/mdast/index.d.ts","../../node_modules/@types/mdurl/index.d.ts","../../node_modules/@types/web-bluetooth/index.d.ts"],"fileIdsList":[[112,176,184,188,191,193,194,195,207,320],[112,176,184,188,191,193,194,195,207,324],[112,176,184,188,191,193,194,195,207,325,326],[112,176,184,188,191,193,194,195,207],[112,176,184,188,191,193,194,195,207,320,323],[112,176,184,188,191,193,194,195,207,329,330],[112,176,184,188,191,193,194,195,207,334],[112,176,184,188,191,193,194,195,207,338],[112,176,184,188,191,193,194,195,207,338,340],[112,176,184,188,191,193,194,195,207,341],[112,176,184,188,191,193,194,195,207,340],[112,173,174,176,184,188,191,193,194,195,207],[112,175,176,184,188,191,193,194,195,207],[176,184,188,191,193,194,195,207],[112,176,184,188,191,193,194,195,207,216],[112,176,177,182,184,187,188,191,193,194,195,197,207,212,225],[112,176,177,178,184,187,188,191,193,194,195,207],[112,176,179,184,188,191,193,194,195,207,226],[112,176,180,181,184,188,191,193,194,195,198,207],[112,176,181,184,188,191,193,194,195,207,212,222],[112,176,182,184,187,188,191,193,194,195,197,207],[112,175,176,183,184,188,191,193,194,195,207],[112,176,184,185,188,191,193,194,195,207],[112,176,184,186,187,188,191,193,194,195,207],[112,175,176,184,187,188,191,193,194,195,207],[112,176,184,187,188,189,191,193,194,195,207,212,225],[112,176,184,187,188,189,191,193,194,195,207,212,214,216],[112,163,176,184,187,188,190,191,193,194,195,197,207,212,225],[112,176,184,187,188,190,191,193,194,195,197,207,212,222,225],[112,176,184,188,190,191,192,193,194,195,207,212,222,225],[110,111,112,113,114,115,116,117,118,119,120,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233],[112,176,184,187,188,191,193,194,195,207],[112,176,184,188,191,193,195,207],[112,176,184,188,191,193,194,195,196,207,225],[112,176,184,187,188,191,193,194,195,197,207,212],[112,176,184,188,191,193,194,195,198,207],[112,176,184,188,191,193,194,195,199,207],[112,176,184,187,188,191,193,194,195,202,207],[112,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232],[112,176,184,188,191,193,194,195,204,207],[112,176,184,188,191,193,194,195,205,207],[112,176,181,184,188,191,193,194,195,197,207,216],[112,176,184,187,188,191,193,194,195,207,208],[112,176,184,188,191,193,194,195,207,209,226,229],[112,176,184,187,188,191,193,194,195,207,212,215,216],[112,176,184,188,191,193,194,195,207,213,216],[112,176,184,188,191,193,194,195,207,214],[112,176,184,188,191,193,194,195,207,216,226],[112,176,184,188,191,193,194,195,207,217],[112,173,176,184,188,191,193,194,195,207,212,219,225],[112,176,184,188,191,193,194,195,207,212,218],[112,176,184,187,188,191,193,194,195,207,220,221],[112,176,184,188,191,193,194,195,207,220,221],[112,176,181,184,188,191,193,194,195,197,207,212,222],[112,176,184,188,191,193,194,195,207,223],[112,176,184,188,191,193,194,195,197,207,224],[112,176,184,188,190,191,193,194,195,205,207,225],[112,176,184,188,191,193,194,195,207,226,227],[112,176,181,184,188,191,193,194,195,207,227],[112,176,184,188,191,193,194,195,207,212,228],[112,176,184,188,191,193,194,195,196,207,229],[112,176,184,188,191,193,194,195,207,230],[112,176,179,184,188,191,193,194,195,207],[112,176,181,184,188,191,193,194,195,207],[112,176,184,188,191,193,194,195,207,226],[112,163,176,184,188,191,193,194,195,207],[112,176,184,188,191,193,194,195,207,225],[112,176,184,188,191,193,194,195,207,231],[112,176,184,188,191,193,194,195,202,207],[112,176,184,188,191,193,194,195,207,221],[112,163,176,184,187,188,189,191,193,194,195,202,207,212,216,225,228,229,231],[112,176,184,188,191,193,194,195,207,212,232],[112,176,184,188,191,193,194,195,207,214,233],[112,176,184,188,191,193,194,195,207,307],[83,96,97,112,176,184,188,191,193,194,195,207],[103,112,176,184,188,191,193,194,195,207],[112,176,184,188,191,193,194,195,207,286,287],[109,112,176,184,188,191,193,194,195,207,286],[112,176,177,184,187,188,191,193,194,195,207,231,286],[112,176,184,188,191,193,194,195,207,290,291,292,293,294,295],[112,176,184,187,188,191,193,194,195,207,271,286,298,301],[82,98,112,176,184,188,191,193,194,195,207,271,287,288,289,296,297,298,299,300,301,302,303,304,305,306,309,310,311,312,313,314,316],[103,112,176,184,188,191,193,194,195,207,256],[109,112,176,184,188,191,193,194,195,207,286,298,299,301],[109,112,176,184,188,191,193,194,195,207,286,297,300],[112,176,184,188,191,193,194,195,207,286,308],[105,112,176,184,187,188,191,193,194,195,207,262,271,286,297,298,301],[112,176,184,188,191,193,194,195,207,286,298,299],[109,112,176,184,188,191,193,194,195,207,286,298,299],[109,112,176,184,188,191,193,194,195,207,286,299,301],[109,112,176,184,188,191,193,194,195,207,286,298,301,306,311,312],[103,109,112,176,184,187,188,191,193,194,195,207,286],[112,176,184,188,191,193,194,195,207,288,301],[109,112,176,184,188,191,193,194,195,207,225,286,298,299,301,306,308,309,312,315],[101,112,176,184,188,191,193,194,195,207,258,259,260,261],[109,112,176,184,188,191,193,194,195,207,262,286,315,317,318,319],[97,99,112,176,184,188,191,193,194,195,207],[83,84,85,88,112,176,184,188,191,193,194,195,207],[101,112,176,184,188,191,193,194,195,207],[103,112,176,184,187,188,191,193,194,195,207],[109,112,176,184,188,191,193,194,195,207,264],[83,85,88,89,93,94,96,100,102,103,104,112,176,184,188,191,193,194,195,207,257,263,264,265,266,267,268,269,270,272,273,274,275,276,277,278,279,280,281,282,283,284,285],[91,92,93,112,176,184,188,191,193,194,195,207],[109,112,176,184,188,191,193,194,195,207],[112,176,184,188,191,193,194,195,207,262,263],[85,91,92,93,94,95,112,176,184,188,191,193,194,195,207],[104,112,176,184,188,191,193,194,195,207,261,263,272],[94,112,176,184,188,191,193,194,195,207,258],[91,112,176,184,188,191,193,194,195,207],[89,100,112,176,184,188,191,193,194,195,207,257,263],[112,176,184,188,191,193,194,195,207,212],[87,112,176,184,188,191,193,194,195,207],[112,176,184,188,191,193,194,195,207,281],[96,109,112,176,184,188,191,193,194,195,207],[112,176,177,184,188,191,193,194,195,207,231],[104,105,112,176,184,188,191,193,194,195,207,264,271],[112,176,184,188,191,193,194,195,207,262],[84,100,112,176,184,188,191,193,194,195,207,263,264,269,276,283],[96,112,176,184,188,191,193,194,195,207],[84,90,91,92,95,97,99,105,106,107,108,112,176,184,188,191,193,194,195,207],[94,112,176,184,188,191,193,194,195,207],[89,90,112,176,184,188,191,193,194,195,207],[106,112,176,184,188,191,193,194,195,207],[112,176,184,188,191,193,194,195,207,301],[88,112,176,184,188,191,193,194,195,207],[112,176,184,188,191,193,194,195,207,286,297],[109,112,176,184,188,191,193,194,195,207,256,262,286,308],[86,112,176,184,188,191,193,194,195,207],[112,176,184,188,191,193,194,195,207,234,240,247,248],[112,176,184,187,188,191,193,194,195,207,234,235,236,237,239,240,248,249,254],[112,176,184,188,191,193,194,195,207,234],[112,176,184,188,191,193,194,195,207,234,235],[112,176,184,188,191,193,194,195,207,235],[112,176,184,188,191,193,194,195,207,241],[112,176,184,187,188,191,193,194,195,207,222,234,235,241,243,244,249],[112,176,184,188,191,193,194,195,207,243],[112,176,184,188,191,193,194,195,207,247],[112,176,184,188,191,193,194,195,197,207,222,234,235,241],[112,176,184,187,188,191,193,194,195,207,234,235,251,252],[112,176,184,188,191,193,194,195,207,235,236,237,238,241,245,246,247,248,249,250,254,255],[112,176,184,188,191,193,194,195,207,236,240,250,254],[112,176,184,187,188,191,193,194,195,207,234,235,236,237,239,240,247,250,251,253],[112,176,184,188,191,193,194,195,207,240,242,245,246],[112,176,184,188,191,193,194,195,207,212,234],[112,176,184,188,191,193,194,195,207,236],[112,176,184,188,191,193,194,195,207,238],[112,176,184,188,191,193,194,195,197,207,222,234],[112,176,184,188,191,193,194,195,207,235,236,238],[112,127,130,133,134,176,184,188,191,193,194,195,207,225],[112,130,176,184,188,191,193,194,195,207,212,225],[112,130,134,176,184,188,191,193,194,195,207,225],[112,124,176,184,188,191,193,194,195,207],[112,128,176,184,188,191,193,194,195,207],[112,126,127,130,176,184,188,191,193,194,195,207,225],[112,176,184,188,191,193,194,195,197,207,222],[112,124,176,184,188,191,193,194,195,207,234],[112,126,130,176,184,188,191,193,194,195,197,207,225],[112,121,122,123,125,129,176,184,187,188,191,193,194,195,207,212,225],[112,130,139,147,176,184,188,191,193,194,195,207],[112,122,128,176,184,188,191,193,194,195,207],[112,130,157,158,176,184,188,191,193,194,195,207],[112,122,125,130,176,184,188,191,193,194,195,207,216,225,234],[112,130,176,184,188,191,193,194,195,207],[112,126,130,176,184,188,191,193,194,195,207,225],[112,121,176,184,188,191,193,194,195,207],[112,124,125,126,128,129,130,131,132,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,158,159,160,161,162,176,184,188,191,193,194,195,207],[112,130,150,153,176,184,188,191,193,194,195,207],[112,130,139,140,141,176,184,188,191,193,194,195,207],[112,128,130,140,142,176,184,188,191,193,194,195,207],[112,129,176,184,188,191,193,194,195,207],[112,122,124,130,176,184,188,191,193,194,195,207],[112,130,134,140,142,176,184,188,191,193,194,195,207],[112,134,176,184,188,191,193,194,195,207],[112,128,130,133,176,184,188,191,193,194,195,207,225],[112,122,126,130,139,176,184,188,191,193,194,195,207],[112,130,150,176,184,188,191,193,194,195,207],[112,142,176,184,188,191,193,194,195,207],[112,122,126,130,134,176,184,188,191,193,194,195,207],[112,124,130,157,176,184,188,191,193,194,195,207,216,231,234],[112,176,184,188,191,193,194,195,207,321],[112,176,184,188,191,193,194,195,207,320,327]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"2ab096661c711e4a81cc464fa1e6feb929a54f5340b46b0a07ac6bbf857471f0","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c9319a09485199c1f7b0498f2988d6d2249793ef67edda49d1e584746be9032","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3a2a0cee0f03ffdde24d89660eba2685bfbdeae955a6c67e8c4c9fd28928eeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"60037901da1a425516449b9a20073aa03386cce92f7a1fd902d7602be3a7c2e9","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"22adec94ef7047a6c9d1af3cb96be87a335908bf9ef386ae9fd50eeb37f44c47","affectsGlobalScope":true,"impliedFormat":1},{"version":"196cb558a13d4533a5163286f30b0509ce0210e4b316c56c38d4c0fd2fb38405","affectsGlobalScope":true,"impliedFormat":1},{"version":"73f78680d4c08509933daf80947902f6ff41b6230f94dd002ae372620adb0f60","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5239f5c01bcfa9cd32f37c496cf19c61d69d37e48be9de612b541aac915805b","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"663266b8782a8b327a5196efa1b3627805e3e4fc712d6a4380f5e6571e45a813","impliedFormat":1},{"version":"5aa42b32993e161aaf93d992300494377d38c8883e15fde44d5c7949313058af","impliedFormat":1},{"version":"b75dd83280bdfd4880c04cadd7f5edf6b23305850e436b1e5b92c3847090d031","impliedFormat":1},{"version":"eae784573a5c4c55c65b86accb356b21b5f597c3484c1bd344e647bc92ebe572","impliedFormat":1},{"version":"827eb54656695635a6e25543f711f0fe86d1083e5e1c0e84f394ffc122bd3ad7","impliedFormat":1},{"version":"2309cee540edc190aa607149b673b437cb8807f4e8d921bf7f5a50e6aa8d609c","impliedFormat":1},{"version":"901de16fbacf42f8cbe7fb2e3dc7d33cd91548a54459438fdface0b30a6a29cd","impliedFormat":1},{"version":"c4a8a08d13b2aba4fb5e798f7d2d5691192d4383cf7c0686845d80a167fc5f42","impliedFormat":1},{"version":"243248596db650ce6f8907cbb3a8076a5ab6888a39c37debc11a81c2f9f9d247","impliedFormat":1},{"version":"1460f16c4b7fc66d2dde3ce1a4ab97d480c27fb84a4e429355a21e76cd471e19","impliedFormat":1},{"version":"c5d73bf762b7b0e75fcdf691e21e31c9db9913931b200b9990f07f49ab2edff3","impliedFormat":1},{"version":"de38157a9f1be75a02ea8358be48a4d50ba31785fedd6a4f9ce7387d77ac9a22","impliedFormat":1},{"version":"76a5f88a99d386a1ea9209a9f8f33a3f2c2f17bc445a4078950a49c0624bae3d","impliedFormat":1},{"version":"65357b3849688962f59c625718650ad31ff59e6c23f244b4086f0d96558405d6","impliedFormat":1},{"version":"3f2fed2d0130ee5356cc1cb8782d7c974d37eccce4f1de871f7744ce61463eb4","impliedFormat":1},{"version":"471486ab7c5c95c3df63c0fbebe6871b9535eedff8b582557dfd66fcbf946d5b","impliedFormat":1},{"version":"45e82f28a80d855bab2355d5e46cc8edd7f2679fc5bfb0905dcf01ce59a5c347","impliedFormat":1},{"version":"48f7cd72c6f8ec5b2f70f50a8d4e6f47494e0d228015efb50c36fc6eab33c7ff","impliedFormat":1},{"version":"a8aa7a344599265ef9c2aba0433a805227b2c9b0e743106fab4d6f0c6966f536","impliedFormat":1},{"version":"806bed2ed4bf1c6ebb74a391531e98d361a0e23a31601fddb33dd90e31436b6d","impliedFormat":1},{"version":"9b92a4d989efc3eeefdca5f95f10267504abc7748ecff400b533cdf54dcdbd68","impliedFormat":1},{"version":"16e6feb2ea29757a0cdd16c8fe2bdf059a612a5474ea30019ae60d9fe309442a","impliedFormat":1},{"version":"2f45dc6e152333f5d28bb660e4543bfd41412b5af16b9a6331b7fd0b4982885e","impliedFormat":1},{"version":"ea4eadfe3d8b0447ecea1cbbf7aad70423cca9350bc9103a1d80cebc37e6bdb3","impliedFormat":1},{"version":"b88645280562793af76ab59052d87e4846ac5ef19af054c729fbb87c73481a59","impliedFormat":1},{"version":"a1f43b06dd37b1f6c5c7821881960dfe55038b468eafb324ad90ce5e9b448d2a","impliedFormat":1},{"version":"15b142d522e96e1962bd54c75560f6994cc8fe9a1640a36de2268fdb95e58fb5","impliedFormat":1},{"version":"de79263f32ea34b3f9282b19251626eeb3a3aef8d96491b731a3c0fb5cca2e77","impliedFormat":1},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"0ccdaa19852d25ecd84eec365c3bfa16e7859cadecf6e9ca6d0dbbbee439743f","affectsGlobalScope":true,"impliedFormat":1},{"version":"cc2110f7decca6bfb9392e30421cfa1436479e4a6756e8fec6cbc22625d4f881","affectsGlobalScope":true,"impliedFormat":1},{"version":"096116f8fedc1765d5bd6ef360c257b4a9048e5415054b3bf3c41b07f8951b0b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5e01375c9e124a83b52ee4b3244ed1a4d214a6cfb54ac73e164a823a4a7860a","affectsGlobalScope":true,"impliedFormat":1},{"version":"f90ae2bbce1505e67f2f6502392e318f5714bae82d2d969185c4a6cecc8af2fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b58e207b93a8f1c88bbf2a95ddc686ac83962b13830fe8ad3f404ffc7051fb4","affectsGlobalScope":true,"impliedFormat":1},{"version":"1fefabcb2b06736a66d2904074d56268753654805e829989a46a0161cd8412c5","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"c18a99f01eb788d849ad032b31cafd49de0b19e083fe775370834c5675d7df8e","affectsGlobalScope":true,"impliedFormat":1},{"version":"5247874c2a23b9a62d178ae84f2db6a1d54e6c9a2e7e057e178cc5eea13757fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"cdcf9ea426ad970f96ac930cd176d5c69c6c24eebd9fc580e1572d6c6a88f62c","impliedFormat":1},{"version":"23cd712e2ce083d68afe69224587438e5914b457b8acf87073c22494d706a3d0","impliedFormat":1},{"version":"156a859e21ef3244d13afeeba4e49760a6afa035c149dda52f0c45ea8903b338","impliedFormat":1},{"version":"10ec5e82144dfac6f04fa5d1d6c11763b3e4dbbac6d99101427219ab3e2ae887","impliedFormat":1},{"version":"615754924717c0b1e293e083b83503c0a872717ad5aa60ed7f1a699eb1b4ea5c","impliedFormat":1},{"version":"14e9acf826baba0ef4b5665704084896e7bcc06f65a9ab13af7e93d27d6b7069","impliedFormat":1},{"version":"68834d631c8838c715f225509cfc3927913b9cc7a4870460b5b60c8dbdb99baf","impliedFormat":1},{"version":"21adf13435b9b748529c8cedf80f884e5130b9684188120a686cd2b26a2059c7","impliedFormat":1},{"version":"eec76bf6b9346f3f95fa402621b889489e96930e72295b0369022f332e9b4a6a","impliedFormat":1},{"version":"0ecd58f413f9bc3b7d4383eae31b0c8fc576985cd7404d6f99f8c643543ade74","impliedFormat":1},{"version":"ea6bc8de8b59f90a7a3960005fd01988f98fd0784e14bc6922dde2e93305ec7d","impliedFormat":1},{"version":"36107995674b29284a115e21a0618c4c2751b32a8766dd4cb3ba740308b16d59","impliedFormat":1},{"version":"914a0ae30d96d71915fc519ccb4efbf2b62c0ddfb3a3fc6129151076bc01dc60","impliedFormat":1},{"version":"9c32412007b5662fd34a8eb04292fb5314ec370d7016d1c2fb8aa193c807fe22","impliedFormat":1},{"version":"7fd1b31fd35876b0aa650811c25ec2c97a3c6387e5473eb18004bed86cdd76b6","impliedFormat":1},{"version":"4d327f7d72ad0918275cea3eee49a6a8dc8114ae1d5b7f3f5d0774de75f7439a","impliedFormat":1},{"version":"6ebe8ebb8659aaa9d1acbf3710d7dae3e923e97610238b9511c25dc39023a166","impliedFormat":1},{"version":"e85d7f8068f6a26710bff0cc8c0fc5e47f71089c3780fbede05857331d2ddec9","impliedFormat":1},{"version":"7befaf0e76b5671be1d47b77fcc65f2b0aad91cc26529df1904f4a7c46d216e9","impliedFormat":1},{"version":"0a60a292b89ca7218b8616f78e5bbd1c96b87e048849469cccb4355e98af959a","impliedFormat":1},{"version":"0b6e25234b4eec6ed96ab138d96eb70b135690d7dd01f3dd8a8ab291c35a683a","impliedFormat":1},{"version":"9666f2f84b985b62400d2e5ab0adae9ff44de9b2a34803c2c5bd3c8325b17dc0","impliedFormat":1},{"version":"40cd35c95e9cf22cfa5bd84e96408b6fcbca55295f4ff822390abb11afbc3dca","impliedFormat":1},{"version":"b1616b8959bf557feb16369c6124a97a0e74ed6f49d1df73bb4b9ddf68acf3f3","impliedFormat":1},{"version":"5b03a034c72146b61573aab280f295b015b9168470f2df05f6080a2122f9b4df","impliedFormat":1},{"version":"40b463c6766ca1b689bfcc46d26b5e295954f32ad43e37ee6953c0a677e4ae2b","impliedFormat":1},{"version":"249b9cab7f5d628b71308c7d9bb0a808b50b091e640ba3ed6e2d0516f4a8d91d","impliedFormat":1},{"version":"d33ce35e3f9cfcc1d94eca415bdd3bde94d5b153ffdd33e6c4455c029986c630","impliedFormat":1},{"version":"80aae6afc67faa5ac0b32b5b8bc8cc9f7fa299cff15cf09cc2e11fd28c6ae29e","impliedFormat":1},{"version":"f473cd2288991ff3221165dcf73cd5d24da30391f87e85b3dd4d0450c787a391","impliedFormat":1},{"version":"499e5b055a5aba1e1998f7311a6c441a369831c70905cc565ceac93c28083d53","impliedFormat":1},{"version":"8aee8b6d4f9f62cf3776cda1305fb18763e2aade7e13cea5bbe699112df85214","impliedFormat":1},{"version":"98498b101803bb3dde9f76a56e65c14b75db1cc8bec5f4db72be541570f74fc5","impliedFormat":1},{"version":"4dc59f6e1dbf3d5f66660fceabe6c174d3261b37b696ae1854f0dbaf255fc753","impliedFormat":1},{"version":"5d0375ca7310efb77e3ef18d068d53784faf62705e0ad04569597ae0e755c401","impliedFormat":1},{"version":"59af37caec41ecf7b2e76059c9672a49e682c1a2aa6f9d7dc78878f53aa284d6","impliedFormat":1},{"version":"addf417b9eb3f938fddf8d81e96393a165e4be0d4a8b6402292f9c634b1cb00d","impliedFormat":1},{"version":"436d7b4543b340b0f3eef4310d524242e41369b9652aa9c70428767c4dcac455","impliedFormat":1},{"version":"adf27937dba6af9f08a68c5b1d3fce0ca7d4b960c57e6d6c844e7d1a8e53adae","impliedFormat":1},{"version":"12950411eeab8563b349cb7959543d92d8d02c289ed893d78499a19becb5a8cc","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"114f493b30f364255290472111b5a4791d5902c308645670cd0401429cbc6930","impliedFormat":1},{"version":"c3f5289820990ab66b70c7fb5b63cb674001009ff84b13de40619619a9c8175f","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3275d55fac10b799c9546804126239baf020d220136163f763b55a74e50e750","affectsGlobalScope":true,"impliedFormat":1},{"version":"fa68a0a3b7cb32c00e39ee3cd31f8f15b80cac97dce51b6ee7fc14a1e8deb30b","affectsGlobalScope":true,"impliedFormat":1},{"version":"1cf059eaf468efcc649f8cf6075d3cb98e9a35a0fe9c44419ec3d2f5428d7123","affectsGlobalScope":true,"impliedFormat":1},{"version":"6c36e755bced82df7fb6ce8169265d0a7bb046ab4e2cb6d0da0cb72b22033e89","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"7a93de4ff8a63bafe62ba86b89af1df0ccb5e40bb85b0c67d6bbcfdcf96bf3d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"90e85f9bc549dfe2b5749b45fe734144e96cd5d04b38eae244028794e142a77e","affectsGlobalScope":true,"impliedFormat":1},{"version":"e0a5deeb610b2a50a6350bd23df6490036a1773a8a71d70f2f9549ab009e67ee","affectsGlobalScope":true,"impliedFormat":1},{"version":"d2ae155afe8a01cc0ae612d99117cf8ef16692ba7c4366590156fdec1bcf2d8c","impliedFormat":1},{"version":"3f5e5d9be35913db9fea42a63f3df0b7e3c8703b97670a2125587b4dbbd56d7c","impliedFormat":1},{"version":"c8b8968311ec4e5e97b7b5fb8a65efaba455db9bdcfd7fff7fb15f6e317bfba0","impliedFormat":1},{"version":"57c23df0b5f7a8e26363a3849b0bc7763f6b241207157c8e40089d1df4116f35","affectsGlobalScope":true,"impliedFormat":1},{"version":"3b8bc0c17b54081b0878673989216229e575d67a10874e84566a21025a2461ee","impliedFormat":1},{"version":"5b0db5a58b73498792a29bfebc333438e61906fef75da898b410e24e52229e6f","impliedFormat":1},{"version":"dbe055b2b29a7bab2c1ca8f259436306adb43f469dca7e639a02cd3695d3f621","impliedFormat":1},{"version":"1678b04557dca52feab73cc67610918a7f5e25bfdba3e7fa081acd625d93106d","impliedFormat":1},{"version":"aecbf1d9e6a18dab7d92ef8a89a1444b47e1eb6134cb2bb776a26d55ff58c29a","impliedFormat":1},{"version":"2ea729503db9793f2691162fec3dd1118cab62e96d025f8eeb376d43ec293395","impliedFormat":1},{"version":"9ec87fea42b92894b0f209931a880789d43c3397d09dd99c631ae40a2f7071d1","impliedFormat":1},{"version":"c68e88cdfadfb6c8ba5fc38e58a3a166b0beae77b1f05b7d921150a32a5ffb8d","impliedFormat":1},{"version":"2bc7aa4fba46df0bd495425a7c8201437a7d465f83854fac859df2d67f664df3","impliedFormat":1},{"version":"41d17e1ad9a002feb11c8cdd2777e5bbc0cdb1e3f595d237e4dded0b6949983b","impliedFormat":1},{"version":"1fede9296beac11ce8e6b425396a1791f64341f2be85deebb6286faf6e16306e","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce697b6a251d9cad53998c7fd3098072df883b525ec45d83530e434dc6d80dc6","impliedFormat":1},{"version":"719412f054e6ecc35489462c9a21bab0323d173a7d04e55b0ace4b5d86fbeb07","impliedFormat":1},{"version":"0eb5d0cbf09de5d34542b977fd6a933bb2e0817bffe8e1a541b2f1ad1b9af1ff","impliedFormat":1},{"version":"3db996ecdee7aabecc5385976cc07eb66216034a273c07b17d1a85292e9bab0c","impliedFormat":1},{"version":"2c2bdaa1d8ead9f68628d6d9d250e46ee8e81aa4898b4769a36956ae15e060fe","impliedFormat":1},{"version":"c32c840c62d8bd7aeb3147aa6754cd2d922b990a6b6634530cb2ebdce5adc8e9","impliedFormat":1},{"version":"5ff4433a2deae4f85ab1377e90a7554ce6b47ae51c69a84ca30a6e22fae85834","impliedFormat":1},{"version":"82b91e4e42e6c41bc7fc1b6c2dc5eba6a2ba98375eb1f210e6ff6bba2d54177e","impliedFormat":1},{"version":"c1fa52b3d014001e8662fa2669d90ea15373958a288e3b83a3b621733d25292a","affectsGlobalScope":true,"impliedFormat":1},{"version":"cbed824fec91efefc7bbdcb8b43d1a531fdbebd0e2ef19481501ff365a93cb70","impliedFormat":1},{"version":"d0716593b3f2b0451bcf0c24cfa86dec2235c325c89f201934248b7c742715fc","impliedFormat":1},{"version":"ec501101c2a96133a6c695f934c8f6642149cc728571b29cbb7b770984c1088e","impliedFormat":1},{"version":"b214ebcf76c51b115453f69729ee8aa7b7f8eccdae2a922b568a45c2d7ff52f7","impliedFormat":1},{"version":"429c9cdfa7d126255779efd7e6d9057ced2d69c81859bbab32073bad52e9ba76","impliedFormat":1},{"version":"2991bca2cc0f0628a278df2a2ccdb8d6cbcb700f3761abbed62bba137d5b1790","impliedFormat":1},{"version":"5e66972e83eb4dc7123939bf816e6cbd9ad81af5552db1cab84e6bd9c64d2ecc","affectsGlobalScope":true,"impliedFormat":1},{"version":"230763250f20449fa7b3c9273e1967adb0023dc890d4be1553faca658ee65971","impliedFormat":1},{"version":"c3e9078b60cb329d1221f5878e88cecfa3e74460550e605a58fcfb41a66029ff","impliedFormat":1},{"version":"8413d0641f293aed551c7464615b770d34a02dedede889b9591172287d68e773","impliedFormat":1},{"version":"0ea59f7d3e51440baa64f429253759b106cfcbaf51e474cae606e02265b37cf8","impliedFormat":1},{"version":"bc18a1991ba681f03e13285fa1d7b99b03b67ee671b7bc936254467177543890","impliedFormat":1},{"version":"1b241e24f3227d078c06aeda6e050187ad59a4e591f4467abed44d92b084e08d","impliedFormat":1},{"version":"fa94bbf532b7af8f394b95fa310980d6e20bd2d4c871c6a6cb9f70f03750a44b","impliedFormat":1},{"version":"7fde0e1be5c8be204ffbf428abfcf01da2eb0f130e1bc3f539eb7275f4fd1f58","impliedFormat":1},{"version":"e284328553df5f425a5d33d36a0c3fa66b46af9d097cad6f4d2e8696dfdeb0f1","affectsGlobalScope":true,"impliedFormat":1},{"version":"7fa2214bb0d64701bc6f9ce8cde2fd2ff8c571e0b23065fa04a8a5a6beb91511","impliedFormat":1},{"version":"f36b3fbe2be150a9ca140da48593f21e6a8172004f92ddc549b43efec39f3e54","impliedFormat":1},{"version":"f1c93e046fb3d9b7f8249629f4b63dc068dd839b824dd0aa39a5e68476dc9420","impliedFormat":1},{"version":"016b29bf4926b80255a108c53a1451717350059da04fcae64d1075f5e93bbb39","impliedFormat":1},{"version":"841983e39bd4cbb463be385e92fda11057cab368bf27100a801c492f1d86cbaa","impliedFormat":1},{"version":"1c4f139ade4f6ebf45463505f8155173e5d7a5305e50e0aae0a5e712d6ff3b48","impliedFormat":1},{"version":"e16b319e5aca1031168de823c4946ff8e29629c4c8cc0ec0fcfe2a8ab2155043","impliedFormat":1},{"version":"e4156ddb25aa0e3b5303d372f26957b36778f0f6bbd4326359269873295e3058","affectsGlobalScope":true,"impliedFormat":1},{"version":"cc1b433a84cae05ddc5672d4823170af78606ad21ecef60dbc4570190cbf1357","impliedFormat":1},{"version":"9d3821bc75c59577e52643324cec92fc2145642e8d17cf7ee07a3181f21d985d","impliedFormat":1},{"version":"7f78cfb2b343838612c192cb251746e3a7c62ac7675726a47e130d9b213f6580","impliedFormat":1},{"version":"201db9cf1687fab1adf5282fcba861f382b32303dc4f67c89d59655e78a25461","impliedFormat":1},{"version":"2c3c5c0f54055e87640f5d233716fd889f3034fc7911d603b642369b0dbeb2a7","impliedFormat":1},{"version":"0a20eaf2e4b1e3c1e1f87f7bccb0c936375b23b022baeea750519b7c9bc6ce83","impliedFormat":1},{"version":"b484ec11ba00e3a2235562a41898d55372ccabe607986c6fa4f4aba72093749f","impliedFormat":1},{"version":"a16b91b27bd6b706c687c88cbc8a7d4ee98e5ed6043026d6b84bda923c0aed67","impliedFormat":1},{"version":"1c9e5b1a17b1fc9b3711fb36e0690421261ab2880f15b145155b5b2ba2ab6c2d","impliedFormat":1},{"version":"99ab6d0d660ce4d21efb52288a39fd35bb3f556980ec5463b1ae8f304a3bbc85","impliedFormat":1},{"version":"6eeded8c7e352be6e0efb83f4935ec752513c4d22043b52522b90849a49a3a11","impliedFormat":1},{"version":"6c1ad90050ffbb151cacc68e2d06ea1a26a945659391e32651f5d42b86fd7f2c","impliedFormat":1},{"version":"afa1c49f8e559e413d57343339db857d2a8159435cf9cf7d4deb41718fff1b88","impliedFormat":1},{"version":"6953d7597831d0860c7034cf4f0419687d263b6b98a4b32e37ce6d49615c36e2","impliedFormat":1},{"version":"332680a9475bd631519399f9796c59502aa499aa6f6771734eec82fa40c6d654","impliedFormat":1},{"version":"191bee6605de2b5210f29f22df04f5b5e6bdcc1f6e21fb07091d40eeeb75fd72","impliedFormat":1},{"version":"d83f3c0362467589b3a65d3a83088c068099c665a39061bf9b477f16708fa0f9","impliedFormat":1},{"version":"180e527dbc1f5ae2bbb79d0a3db1ada49258783d7e6299559e0f2ed663b4afec","impliedFormat":1},{"version":"29994a97447d10d003957bcc0c9355c272d8cf0f97143eb1ade331676e860945","impliedFormat":1},{"version":"f4260022f7af38e533d364ea62eb7ae01b0a32050033d7f6772073e1dc908025","impliedFormat":1},{"version":"9cddf06f2bc6753a8628670a737754b5c7e93e2cfe982a300a0b43cf98a7d032","impliedFormat":1},{"version":"3f8e68bd94e82fe4362553aa03030fcf94c381716ce3599d242535b0d9953e49","impliedFormat":1},{"version":"63e628515ec7017458620e1624c594c9bd76382f606890c8eebf2532bcab3b7c","impliedFormat":1},{"version":"355d5e2ba58012bc059e347a70aa8b72d18d82f0c3491e9660adaf852648f032","impliedFormat":1},{"version":"311cc121259b3e0c3c08304fc25b525aa02ba0f9bf55b3e7c60b0dbb7422014e","impliedFormat":1},{"version":"74c269b43d39e5ece20b2cca49c14e64c05b01e46407200d7558301d0fcaabf4","impliedFormat":1},{"version":"ec09bd95866efe38cd00ebb79dfa7a26563d600fa4a30db0f7c6d68f8f6d2b06","impliedFormat":1},{"version":"482d0ac70d56aa79941be30da6df28e926a007f835eed70cf7b5f3135368d1f6","impliedFormat":1},{"version":"7dd19397d5a090c9f8cd762bae67bd0ad6f782abe422594fb71168fb578673b0","impliedFormat":1},{"version":"84cbf6204ada0ee2f80493e55e45befa079954788718efd6dcc103183104e3c0","impliedFormat":1},{"version":"ed849d616865076f44a41c87f27698f7cdf230290c44bafc71d7c2bc6919b202","impliedFormat":1},{"version":"9a0a0af04065ddfecc29d2b090659fce57f46f64c7a04a9ba63835ef2b2d0efa","impliedFormat":1},{"version":"10297d22a9209a718b9883a384db19249b206a0897e95f2b9afeed3144601cb0","impliedFormat":1},{"version":"034b8b5912823744c986986f24432bf3fa7bfa671e69316b672f3f2db5166ce4","impliedFormat":1},{"version":"34d206f6ba993e601dade2791944bdf742ab0f7a8caccc661106c87438f4f904","impliedFormat":1},{"version":"05ca49cc7ba9111f6c816ecfadb9305fffeb579840961ee8286cc89749f06ebd","impliedFormat":1},{"version":"14bad5bea17b4e0f2495b5dac89a936e139338e2c87716bffd3c281ae7a9fec6","impliedFormat":1},{"version":"b8a122e51c2ee902b44d86ff806011d216af54be75844a4d3c366d80776a4d33","impliedFormat":1},{"version":"0850c98ca2cccae6ce2aad363f6eb370c401fbc279a64607fff90c0f87973a91","impliedFormat":1},{"version":"d0f62192ec787f1592a5b86760a44350d1c925883a573eadc12d60862890dffe","impliedFormat":1},{"version":"4ef34562ac49a16a1681d51d6e8ece677657782cf1a464e010224cbbe0bb071f","impliedFormat":1},{"version":"a66ad696f2785dd00374b8dee6fab5c58c049c0efe24b3c214fbe6aec3f53d6e","impliedFormat":1},{"version":"f226f29f5594bd479f27648f42423ffa1a1460cafc7b1ba04bd013b28cba710f","impliedFormat":1},{"version":"63f859a315e9711f383d06b7a2b940804e51078d85e896980816f46f1b6021a8","impliedFormat":1},{"version":"f8da2a3bec435c09f9a10d9f150949bf0ebb0c3508f074887dbb2d3e33ce302b","impliedFormat":1},{"version":"397b46c6a95826d26714b5481addc606de72d8229b092e236f0d78a9e7226d29","impliedFormat":1},{"version":"5f47fb5b000c03fdcae71e6e017261898a37f0892532cb713ce95c8950462d80","impliedFormat":1},{"version":"8142d5eaa44b4dbb68dbe87b5f05b148c5a74a6fa7abd3cb3aa80a7ed4a05150","impliedFormat":1},{"version":"6c66369276512eac5b53eaca735d7472b5ffca417977c3976a66b84059f2af2b","impliedFormat":1},{"version":"225deff02f4d1c91e2d6c71dec9f18feae510aa729a9774024f30278f4c6b8fe","impliedFormat":1},{"version":"6c24f6dcbb3bf8235bf8da995a7290ffbd9d557a760cf2deb380ce91a989b765","impliedFormat":1},{"version":"e48415a5a97a5e6c22cc4fdcb3172805ce68a1d41d0a056d71bff9ced2186d43","impliedFormat":1},{"version":"adec507ee458a691b72254991a7903a10c052019d8cdc7ffe359d9f373e7401f","impliedFormat":1},{"version":"9b74326515d17f03809cfbea6de789772ff7d0c759a08a59bfa5242bda98d35b","impliedFormat":1},{"version":"09788d0d992a6d2471f35019ab68b39105c44ebf17f2051cf3e228a39e91885a","impliedFormat":1},{"version":"0ea47413eaffe144782a44058205c31130b382dee0e2f66b62b5188eac57039e","impliedFormat":1},{"version":"c0591738dbfe11a36959f16ab40bc98b2a430c4565770ef6257574546079d791","impliedFormat":1},{"version":"3cf3dc0f53d71795cd7c461346e9aa3c713f8a5138015776aa6d4b8ff9e0cb26","impliedFormat":1},{"version":"ca73451ec7771379b6b1271dcda0d0b2146da80b329136a09ad692529a073965","impliedFormat":1},{"version":"fad74233657c4e0346822942ac3716a20b16fb053ca00c1260a08a81cc76df89","impliedFormat":1},{"version":"43f0a7dead8b25e1c101a060ea31d6df548a9303c58aa7498d0285fd4ecaac1c","impliedFormat":1},{"version":"fced7c59acecb0ac631505fcbc5a1ce0c6420e2494a256321e9359093efb7a1f","impliedFormat":1},{"version":"8c42fbcae55a41f9c48f644ff9743fab827a9d38f5a6bd486f17c6460f8a099b","impliedFormat":1},{"version":"793c2b5a225ca7569320b2f9f3a43cc20a08e83fbd6587f5c24c7a05feaee6d0","impliedFormat":1},{"version":"cf841c4bfb05b4b1d3826773ff77a47bb0dc17c665a4dbff7d6c4a6d9042d50c","impliedFormat":1},{"version":"597b9bd9363840016d7e8c6839cccd22f85079484bae7e444e80cf24645529af","impliedFormat":1},{"version":"bd15222c3f016a97d7062a0018f7fe0d130be508ca276b43dcafa8c9032a3ea4","impliedFormat":1},{"version":"4f5f11b73282262904f4c1bc5ffb76631b40ac8b54ae01bde274cb9242d6cb2f","impliedFormat":1},{"version":"9e6dcb736749cc84304b38c5a1101b299659dbc3871bab5d1544ee8f8dc73e5b","impliedFormat":1},{"version":"3f8f36996bff2e0d4f6bb2b11e1a684489b511032473180f44d0b23f38a53800","impliedFormat":1},{"version":"4e4559e8e4ea7d87f914014074559e515de78308bacc733a7ea76f795de178a3","impliedFormat":1},{"version":"13ecb31795209aa56b1837b9d46cc5494da392f594132bc5b3a56c067e12ea1c","impliedFormat":1},{"version":"e34a28e978cf430e062c91d03987f2b42360b33e6207738b40494acd4a97004b","impliedFormat":1},{"version":"5cc10d0295e594c961bd020cc76845097928f550fa3d58468114e5225054f76c","impliedFormat":1},{"version":"99c4cd704c85c3b9a215977d1d10ad34f1c6bbc5784e0ddaaf6fe8090030eaf3","impliedFormat":1},{"version":"7dc695c4ab01309d1d1b43201700560054feadddf8d0bbfc79d981bff03c1db0","impliedFormat":1},{"version":"ab0db8d8a821582e3f49739e5267466d964b64f4aeea5ba379ac7759c7adc531","impliedFormat":1},{"version":"f6e9e0411de308207892802c52be06bf25df281ace623cbf7870583e28b3f12b","impliedFormat":1},{"version":"307067699cff7c3c8a77d9e69aef5291f0141cfbbbeb0954804589e6701238cc","impliedFormat":1},{"version":"4c8070d4ac9fe0026ceae0b0981cb4dcb3cd92b094ef72c78f9ffe04d09a1df2","impliedFormat":1},{"version":"e58ec6f129b33de21aa444c87a6e538effe82b5f2a7d07c101fc258e2e66f73d","impliedFormat":1},{"version":"e3e78772154f790f8b0a6eaeaba5b4c816567d9d30f9c8655ed29cb9438e5455","impliedFormat":1},{"version":"e17369650fdfac36437e8559b86b2d6172d090594696976082903ba856a2a979","impliedFormat":1},{"version":"252278de90265646666b5511aa063e1d36020e3759e75fd5d81a1eacecef1229","impliedFormat":1},{"version":"8a95a499afe7cd2aa6161b68aa3f7599e9ae7d12697171384f540e268d846746","impliedFormat":1},{"version":"2967840927e96b345f7b8250ad35e7436aae73c77d9767a2b43f2606ab107cf3","impliedFormat":1},{"version":"0e6387b87925a10ba52cd0de685a4f7e2d9dd402dbac560dce8934e8e34007d0","impliedFormat":1},{"version":"77515d8e0ceb4f4bae7d0c9aafe9fd764a5f25601569ecbac3240cacfe136f14","impliedFormat":1},{"version":"b07d72a408bfcf125c24cfba3db38207687711b800b98ab417e5ada59438c554","impliedFormat":1},{"version":"ef5aa9871f3b8dac96d4ef93e22eec539527d739c6a7e0c7fa7101fa343bfd77","impliedFormat":1},{"version":"47507ff33fbe83627bdf11136400594a249e8012508425bb2846b7268f966f00","impliedFormat":1},{"version":"4a1a0f21b3c4fc0d217392d82445a34fcc8c9ed6f79fdc4d14b8353e3c74eaf3","impliedFormat":1},{"version":"e041d566f765b48ddf66ffd085fb120951cf28e92d129751351e72f8c96d99fa","impliedFormat":1},{"version":"5a59c1315ed5ca8f899fc6527f23a15dc9a38107175a5fffd473db25bcd1fd4a","impliedFormat":1},{"version":"20a5515b81a828fc10b066aa5f88a5eb68323d23b8a10d8e9dc7edb6ebdd2bd7","impliedFormat":1},{"version":"f2c24a1e4bc555e203dab5b749b718b1cdf73ecf57d8a8872ff163cbc03b1a68","impliedFormat":1},{"version":"0dcea4e3a40e7408ec9a6aeacb721ce8289fc99d5f2be600146a472d6d1590b8","impliedFormat":1},{"version":"2093f341c5cba3058c29f9344e59ecfa22dc6559c7eb9f00497a108e09301a55","impliedFormat":1},{"version":"15aba6a4199ce9e4f3c1ec397a468f6aaaeba973649ca4f1c016225b46a5feaf","impliedFormat":1},{"version":"a1ca7f7788853a2ff3670bf1112a92fa503686b10d58339318fec5862bd209a6","impliedFormat":1},{"version":"0af8ea6512d458c1acde131ae52a9c14cb35bce978013da44caa058f29f65ad7","impliedFormat":99},{"version":"43766a874a2b891479d07c33b115337cce39a571eac828b415bb31d998cc54d4","signature":"9ac2870cadd933601e69c59e64071efa3433660d8c56e2638d98f947ddf5330e"},{"version":"d3567a39a014ffefe60e62078b7047167c9a7f786e9b501ab7aeef5c8ba8cae6","impliedFormat":99},{"version":"d6001ff55213b46fe6091fbc93e6bf134c8bd53208400a54a8c40a22d80fa871","impliedFormat":99},{"version":"5ab0381e88289ccefa21b4e2d3d3a4b6c480a7c1cf4760f41c99e746a6ba6d21","impliedFormat":99},{"version":"463ec7f5dcc405de481beb8bd053f8cac6ad7c06597597ae026bf518a8d9333b","impliedFormat":99},{"version":"4cccda61f472cd6dcc8bf1fc65cee15a702b11615cc42a9c6bf99fb54893f3aa","impliedFormat":99},{"version":"ffc53d2254394ca8e696f18c0f454f4ccc6ac51f2b6c7dd1f7fd2ed907851656","signature":"b1c43c0159a43d3d5de82638612bbdece50f81d50c9dff708fd8890098857e82"},{"version":"427fe2004642504828c1476d0af4270e6ad4db6de78c0b5da3e4c5ca95052a99","impliedFormat":1},{"version":"2eeffcee5c1661ddca53353929558037b8cf305ffb86a803512982f99bcab50d","impliedFormat":99},{"version":"9afb4cb864d297e4092a79ee2871b5d3143ea14153f62ef0bb04ede25f432030","affectsGlobalScope":true,"impliedFormat":99},{"version":"d5799bcf7fe4e6de3063abf4e321c14b051706f03cf5716d8a19f22fe1f69519","impliedFormat":1},{"version":"751764bb94219b4ce8f5475dc35d3de2e432fea01a0c9610cd7f69ad05e398c6","impliedFormat":1},{"version":"89121c1bf2990f5219bfd802a3e7fc557de447c62058d6af68d6b6348d64499a","impliedFormat":1},{"version":"79b4369233a12c6fa4a07301ecb7085802c98f3a77cf9ab97eee27e1656f82e6","impliedFormat":1},{"version":"84a805c22a49922085dc337ca71ac0b85aad6d4dba6b01cee5bd5776ff54df39","impliedFormat":1},{"version":"f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","impliedFormat":1},{"version":"742f21debb3937c3839a63245648238555bdab1ea095d43fd10c88a64029bf76","impliedFormat":1},{"version":"7cfdf3b9a5ba934a058bfc9390c074104dc7223b7e3c16fd5335206d789bc3d3","impliedFormat":1},{"version":"0944f27ebff4b20646b71e7e3faaaae50a6debd40bc63e225de1320dd15c5795","impliedFormat":1},{"version":"8a7219b41d3c1c93f3f3b779146f313efade2404eeece88dcd366df7e2364977","impliedFormat":1},{"version":"a109c4289d59d9019cfe1eeab506fe57817ee549499b02a83a7e9d3bdf662d63","impliedFormat":1},{"version":"d4a22007b481fe2a2e6bfd3a42c00cd62d41edb36d30fc4697df2692e9891fc8","impliedFormat":1},{"version":"5d30565583300c9256072a013ac0318cc603ff769b4c5cafc222394ea93963e1","impliedFormat":1},{"version":"28ca156f93e9f2f073d825452a114d106291d123564ca49af5b108ba20311011","affectsGlobalScope":true,"impliedFormat":1}],"root":[322,328],"options":{"allowImportingTsExtensions":true,"allowJs":true,"allowSyntheticDefaultImports":true,"composite":true,"exactOptionalPropertyTypes":true,"module":99,"noFallthroughCasesInSwitch":true,"noImplicitOverride":true,"noImplicitReturns":true,"noPropertyAccessFromIndexSignature":true,"noUncheckedIndexedAccess":true,"skipLibCheck":true,"strict":true,"target":99,"verbatimModuleSyntax":true},"referencedMap":[[321,1],[325,2],[326,1],[327,3],[323,4],[324,5],[331,6],[329,4],[332,4],[333,4],[335,7],[336,4],[337,4],[338,4],[339,8],[341,9],[342,10],[343,7],[340,4],[344,11],[173,12],[174,12],[175,13],[112,14],[176,15],[177,16],[178,17],[110,4],[179,18],[180,19],[181,20],[182,21],[183,22],[184,23],[185,23],[186,24],[187,25],[188,26],[189,27],[113,4],[111,4],[190,28],[191,29],[192,30],[234,31],[193,32],[194,33],[195,32],[196,34],[197,35],[198,36],[199,37],[200,37],[201,37],[202,38],[203,39],[204,40],[205,41],[206,42],[207,43],[208,43],[209,44],[210,4],[211,4],[212,45],[213,46],[214,47],[215,45],[216,48],[217,49],[218,50],[219,51],[220,52],[221,53],[222,54],[223,55],[224,56],[225,57],[226,58],[227,59],[228,60],[229,61],[230,62],[114,32],[115,4],[116,63],[117,64],[118,4],[119,65],[120,4],[164,66],[165,67],[166,68],[167,68],[168,69],[169,4],[170,15],[171,70],[172,67],[231,71],[232,72],[233,73],[334,4],[345,4],[330,4],[308,74],[82,4],[98,75],[305,76],[288,77],[289,78],[287,79],[290,4],[291,4],[296,80],[292,4],[293,4],[294,4],[295,4],[302,81],[317,82],[303,83],[306,84],[301,85],[309,86],[304,76],[299,87],[310,88],[300,89],[311,90],[271,4],[313,91],[298,92],[312,84],[314,93],[297,78],[316,94],[258,4],[259,4],[262,95],[260,4],[101,4],[261,4],[320,96],[100,97],[83,4],[89,98],[102,99],[104,100],[265,101],[286,102],[266,4],[94,103],[267,104],[268,105],[269,4],[270,4],[96,106],[273,107],[274,108],[85,4],[93,109],[275,4],[264,110],[276,4],[285,4],[103,111],[257,83],[277,4],[88,112],[278,4],[279,4],[280,4],[282,113],[281,114],[283,115],[272,116],[263,117],[284,118],[97,119],[105,4],[90,4],[106,4],[109,120],[95,121],[91,122],[92,4],[107,109],[108,123],[84,4],[315,124],[99,125],[319,126],[318,127],[86,4],[87,128],[251,4],[249,129],[250,130],[248,131],[236,132],[241,133],[242,134],[245,135],[244,136],[243,137],[246,138],[253,139],[256,140],[255,141],[254,142],[247,143],[237,144],[252,145],[239,146],[235,147],[240,148],[238,132],[307,4],[80,4],[81,4],[13,4],[15,4],[14,4],[2,4],[16,4],[17,4],[18,4],[19,4],[20,4],[21,4],[22,4],[23,4],[3,4],[24,4],[25,4],[4,4],[26,4],[30,4],[27,4],[28,4],[29,4],[31,4],[32,4],[33,4],[5,4],[34,4],[35,4],[36,4],[37,4],[6,4],[41,4],[38,4],[39,4],[40,4],[42,4],[7,4],[43,4],[48,4],[49,4],[44,4],[45,4],[46,4],[47,4],[8,4],[53,4],[50,4],[51,4],[52,4],[54,4],[9,4],[55,4],[56,4],[57,4],[59,4],[58,4],[60,4],[61,4],[10,4],[62,4],[63,4],[64,4],[11,4],[65,4],[66,4],[67,4],[68,4],[69,4],[1,4],[70,4],[71,4],[12,4],[75,4],[73,4],[78,4],[77,4],[72,4],[76,4],[74,4],[79,4],[139,149],[152,150],[136,151],[153,111],[162,152],[127,153],[128,154],[126,155],[161,131],[156,156],[160,157],[130,158],[149,159],[129,160],[159,161],[124,162],[125,156],[131,163],[132,4],[138,164],[135,163],[122,165],[163,166],[154,167],[142,168],[141,163],[143,169],[146,170],[140,171],[144,172],[157,131],[133,173],[134,174],[147,175],[123,111],[151,176],[150,163],[137,174],[145,177],[148,178],[155,4],[121,4],[158,179],[322,180],[328,181]],"affectedFilesPendingEmit":[[322,17],[328,17]],"emitSignatures":[322,328],"version":"5.9.3"} \ No newline at end of file diff --git a/playground/vite-nitro/tsconfig.json b/playground/vite-nitro/tsconfig.json new file mode 100644 index 0000000..82a8007 --- /dev/null +++ b/playground/vite-nitro/tsconfig.json @@ -0,0 +1,4 @@ +{ + "files": [], + "references": [{ "path": "./tsconfig.app.json" }] +} diff --git a/playground/vite-nitro/vite.config.ts b/playground/vite-nitro/vite.config.ts new file mode 100644 index 0000000..33ba0e6 --- /dev/null +++ b/playground/vite-nitro/vite.config.ts @@ -0,0 +1,10 @@ +import { defineConfig } from 'vite' +import { nitro } from 'nitro/vite' +import nitroProcessor from 'nitro-processor' + +export default defineConfig({ + plugins: [nitro()], + nitro: { + modules: [nitroProcessor({ workers: 'server/workers' })], + }, +}) diff --git a/scripts/assemble-types.ts b/scripts/assemble-types.ts new file mode 100644 index 0000000..81e4eab --- /dev/null +++ b/scripts/assemble-types.ts @@ -0,0 +1,21 @@ +import { readFileSync, writeFileSync } from 'node:fs' +import { resolve } from 'node:path' + +const rootDir = resolve(import.meta.dirname, '..') +const ambientTypes = readFileSync( + resolve(rootDir, 'src/types.d.mts'), + 'utf8', +).trimEnd() + +const types = `${ambientTypes} + +export { default } from './module.mjs' +export type { ModuleOptions } from './module.mjs' +` + +writeFileSync(resolve(rootDir, 'dist/types.d.mts'), types) + +const virtualTypes = `${ambientTypes} +` + +writeFileSync(resolve(rootDir, 'dist/virtual.d.mts'), virtualTypes) diff --git a/scripts/ensure-dist-types.ts b/scripts/ensure-dist-types.ts new file mode 100644 index 0000000..2166461 --- /dev/null +++ b/scripts/ensure-dist-types.ts @@ -0,0 +1,13 @@ +import { existsSync } from 'node:fs' +import { execSync } from 'node:child_process' +import { resolve } from 'node:path' + +const processorTypes = resolve( + 'dist/runtime/server/handlers/processor.d.mts', +) + +if (!existsSync(processorTypes)) { + execSync('npm run prepack', { stdio: 'inherit' }) +} else { + execSync('tsx scripts/assemble-types.ts', { stdio: 'inherit' }) +} diff --git a/scripts/playground-vite-processor-dev.ts b/scripts/playground-vite-processor-dev.ts new file mode 100644 index 0000000..32ec64b --- /dev/null +++ b/scripts/playground-vite-processor-dev.ts @@ -0,0 +1,85 @@ +import { cpSync, existsSync, mkdirSync } from 'node:fs' +import { dirname, resolve } from 'node:path' +import { fileURLToPath } from 'node:url' +import { spawn } from 'node:child_process' + +const rootDir = resolve(dirname(fileURLToPath(import.meta.url)), '..') +const playgroundRoot = resolve(rootDir, 'playground/vite-nitro') +const devWorkersIndex = resolve( + playgroundRoot, + 'node_modules/.nitro/dev/workers/index.mjs', +) +const prodWorkersIndex = resolve( + playgroundRoot, + '.output/server/workers/index.mjs', +) +const cliPath = resolve(rootDir, 'bin/nitro-processor.mjs') + +const ensureDevWorkersIndex = (): void => { + if (existsSync(devWorkersIndex)) { + return + } + if (!existsSync(prodWorkersIndex)) { + throw new Error( + `Missing workers entry after vite build: ${prodWorkersIndex}`, + ) + } + mkdirSync(dirname(devWorkersIndex), { recursive: true }) + cpSync(prodWorkersIndex, devWorkersIndex) +} + +const runProcessorDev = (): Promise => { + return new Promise((resolveExit, reject) => { + const child = spawn('node', [cliPath, 'dev', playgroundRoot], { + cwd: playgroundRoot, + stdio: ['ignore', 'pipe', 'pipe'], + env: { + ...process.env, + REDIS_URL: process.env.REDIS_URL ?? 'redis://127.0.0.1:6379/0', + }, + }) + + let output = '' + const appendOutput = (chunk: Buffer) => { + output += chunk.toString() + } + + child.stdout?.on('data', appendOutput) + child.stderr?.on('data', appendOutput) + + const timeout = setTimeout(() => { + child.kill('SIGTERM') + }, 8000) + + child.on('error', (error) => { + clearTimeout(timeout) + reject(error) + }) + + child.on('exit', (code, signal) => { + clearTimeout(timeout) + if (signal === 'SIGTERM') { + if ( + output.includes('starting workers') || + output.includes('workers started') || + output.includes('ECONNREFUSED') || + output.includes('failed to start workers') + ) { + resolveExit(0) + return + } + reject( + new Error( + `nitro-processor dev produced no expected output:\n${output}`, + ), + ) + return + } + resolveExit(code ?? 1) + }) + }) +} + +ensureDevWorkersIndex() +const exitCode = await runProcessorDev() +process.exit(exitCode) diff --git a/spec/build/published-types.spec.ts b/spec/build/published-types.spec.ts new file mode 100644 index 0000000..7ebf000 --- /dev/null +++ b/spec/build/published-types.spec.ts @@ -0,0 +1,30 @@ +import { readFileSync } from 'node:fs' +import { resolve } from 'node:path' +import { describe, expect, it } from 'vitest' + +describe('published types', () => { + it('ships ambient modules and runtime declarations for plain tsc', () => { + const typesPath = resolve('dist/types.d.mts') + const virtualPath = resolve('dist/virtual.d.mts') + const runtimeEntryPath = resolve('dist/runtime-entry.d.mts') + const workersTypesPath = resolve( + 'dist/runtime/server/utils/workers.d.mts', + ) + const processorTypesPath = resolve( + 'dist/runtime/server/handlers/processor.d.mts', + ) + + expect(readFileSync(typesPath, 'utf8')).toContain("declare module '#processor'") + expect(readFileSync(typesPath, 'utf8')).toContain( + "declare module '#processor-utils'", + ) + expect(readFileSync(typesPath, 'utf8')).toContain("declare module '#bullmq'") + expect(readFileSync(virtualPath, 'utf8')).toContain( + "declare module '#processor-utils'", + ) + expect(readFileSync(runtimeEntryPath, 'utf8')).toContain('defineQueue') + expect(readFileSync(runtimeEntryPath, 'utf8')).toContain('useProcessor') + expect(readFileSync(workersTypesPath, 'utf8')).toContain('useProcessor') + expect(readFileSync(processorTypesPath, 'utf8')).toContain('defineWorker') + }) +}) diff --git a/spec/setup/register-processor-types.spec.ts b/spec/setup/register-processor-types.spec.ts index a4c5cbe..5da40cf 100644 --- a/spec/setup/register-processor-types.spec.ts +++ b/spec/setup/register-processor-types.spec.ts @@ -29,6 +29,8 @@ describe('registerProcessorTypes', () => { expect(paths?.['#processor']?.[0]).toContain('processor') expect(paths?.['nitro-processor']?.[0]).toBe(paths?.['#processor']?.[0]) expect(paths?.['#processor-utils']).toBeDefined() + expect(paths?.['#bullmq']).toEqual(['bullmq']) + expect(paths?.['nitro-processor/runtime']?.[0]).toContain('runtime-entry') expect(types.tsConfig?.include).toEqual( expect.arrayContaining([ expect.stringContaining('processor'), diff --git a/spec/utils/resolve-published-runtime-entry-path.spec.ts b/spec/utils/resolve-published-runtime-entry-path.spec.ts new file mode 100644 index 0000000..c4b3dea --- /dev/null +++ b/spec/utils/resolve-published-runtime-entry-path.spec.ts @@ -0,0 +1,27 @@ +import { mkdtempSync, rmSync } from 'node:fs' +import { tmpdir } from 'node:os' +import { join } from 'node:path' +import { resolve } from 'pathe' +import { describe, expect, it } from 'vitest' + +import { resolvePublishedRuntimeEntryPath } from '../../src/utils/resolve-published-runtime-entry-path' + +describe('resolvePublishedRuntimeEntryPath', () => { + it('prefers dist runtime entry when present', () => { + const packageRoot = resolve('dist/..') + const path = resolvePublishedRuntimeEntryPath(packageRoot) + + expect(path).toContain('dist/runtime-entry.mjs') + }) + + it('falls back to src runtime entry when dist is missing', () => { + const packageRoot = mkdtempSync(join(tmpdir(), 'nitro-processor-entry-path-')) + try { + const path = resolvePublishedRuntimeEntryPath(packageRoot) + + expect(path).toBe(resolve(packageRoot, 'src/runtime-entry.ts')) + } finally { + rmSync(packageRoot, { recursive: true, force: true }) + } + }) +}) diff --git a/src/module.ts b/src/module.ts index 5df666c..040cccb 100644 --- a/src/module.ts +++ b/src/module.ts @@ -3,6 +3,8 @@ import type { NitroProcessorModule } from './interfaces/nitro-processor-module' import { createSetup } from './setup/create-setup' import { resolveModuleOptions } from './utils/resolve-module-options' +export type { ModuleOptions } from './interfaces/module-options' + const nitroProcessor = (options: ModuleOptions = {}): NitroProcessorModule => { const resolvedOptions = resolveModuleOptions(options) diff --git a/src/runtime-entry.ts b/src/runtime-entry.ts new file mode 100644 index 0000000..7cbceba --- /dev/null +++ b/src/runtime-entry.ts @@ -0,0 +1,13 @@ +export { defineQueue, defineWorker } from './runtime/server/handlers/processor' +export { useProcessor } from './runtime/server/utils/workers' +export type { + Queue, + Worker, + Processor, + QueueOptions, + WorkerOptions, + JobsOptions, + Job, + StopAllOptions, + StopAllResult, +} from './runtime/server/utils/workers' diff --git a/src/runtime/server/utils/workers.ts b/src/runtime/server/utils/workers.ts index 7ddc0a3..d89dea1 100644 --- a/src/runtime/server/utils/workers.ts +++ b/src/runtime/server/utils/workers.ts @@ -92,7 +92,36 @@ const collectCloseErrors = ( } } -export const useProcessor = () => { +interface ProcessorApi { + createQueue: < + // eslint-disable-next-line @typescript-eslint/no-explicit-any + DataTypeOrJob = any, + // eslint-disable-next-line @typescript-eslint/no-explicit-any + DefaultResultType = any, + DefaultNameType extends string = string, + >( + name: DefaultNameType, + options?: Omit & { + defaultJobOptions?: JobsOptions + }, + ) => Queue + createWorker: < + // eslint-disable-next-line @typescript-eslint/no-explicit-any + DataType = any, + // eslint-disable-next-line @typescript-eslint/no-explicit-any + ResultType = any, + NameType extends string = string, + >( + name: NameType, + processor: Processor, + options?: Omit, + ) => Worker + stopAll: (options?: StopAllOptions) => Promise + readonly queues: WorkersRegistry['queues'] + readonly workers: WorkersRegistry['workers'] +} + +export const useProcessor = (): ProcessorApi => { const createQueue = < // eslint-disable-next-line @typescript-eslint/no-explicit-any DataTypeOrJob = any, @@ -217,17 +246,18 @@ export const useProcessor = () => { } } - return { + const api: ProcessorApi = { createQueue, createWorker, stopAll, - get queues() { + get queues(): WorkersRegistry['queues'] { return getRegistry().queues }, - get workers() { + get workers(): WorkersRegistry['workers'] { return getRegistry().workers }, } + return api } export type { diff --git a/src/setup/register-processor-types.ts b/src/setup/register-processor-types.ts index 4728509..9adbc87 100644 --- a/src/setup/register-processor-types.ts +++ b/src/setup/register-processor-types.ts @@ -1,5 +1,6 @@ import type { Nitro, NitroTypes } from 'nitro/types' +import { resolvePublishedRuntimeEntryPath } from '../utils/resolve-published-runtime-entry-path' import { resolvePublishedRuntimePath } from '../utils/resolve-published-runtime-path' export const registerProcessorTypes = ( @@ -10,6 +11,7 @@ export const registerProcessorTypes = ( packageRoot, 'server/handlers/processor.ts', ) + const runtimeEntryPath = resolvePublishedRuntimeEntryPath(packageRoot) const defineQueuePath = resolvePublishedRuntimePath( packageRoot, 'server/handlers/defineQueue.ts', @@ -31,8 +33,10 @@ export const registerProcessorTypes = ( | Record | undefined), 'nitro-processor': [processorPath], + 'nitro-processor/runtime': [runtimeEntryPath], '#processor': [processorPath], '#processor-utils': [workersUtilsPath], + '#bullmq': ['bullmq'], } types.tsConfig.compilerOptions.paths = paths types.tsConfig.include ??= [] diff --git a/src/types.d.mts b/src/types.d.mts index 9a8921e..682481f 100644 --- a/src/types.d.mts +++ b/src/types.d.mts @@ -1,11 +1,26 @@ import type { RedisOptions } from 'bullmq' declare module 'nitro-processor' { - export { defineQueue, defineWorker } from './runtime/server/handlers/processor' + export { defineQueue, defineWorker } from './runtime/server/handlers/processor.d.mts' } declare module '#processor' { - export { defineQueue, defineWorker } from './runtime/server/handlers/processor' + export { defineQueue, defineWorker } from './runtime/server/handlers/processor.d.mts' +} + +declare module '#processor-utils' { + export { useProcessor } from './runtime/server/utils/workers.d.mts' + export type { + Queue, + Worker, + Processor, + QueueOptions, + WorkerOptions, + JobsOptions, + Job, + StopAllOptions, + StopAllResult, + } from './runtime/server/utils/workers.d.mts' } declare module '#bullmq' { diff --git a/src/utils/resolve-published-runtime-entry-path.ts b/src/utils/resolve-published-runtime-entry-path.ts new file mode 100644 index 0000000..5cbbe20 --- /dev/null +++ b/src/utils/resolve-published-runtime-entry-path.ts @@ -0,0 +1,12 @@ +import { existsSync } from 'node:fs' +import { resolve } from 'pathe' + +export const resolvePublishedRuntimeEntryPath = ( + packageRoot: string, +): string => { + const distPath = resolve(packageRoot, 'dist/runtime-entry.mjs') + if (existsSync(distPath)) { + return distPath + } + return resolve(packageRoot, 'src/runtime-entry.ts') +} diff --git a/tsconfig.paths.json b/tsconfig.paths.json new file mode 100644 index 0000000..6dcb593 --- /dev/null +++ b/tsconfig.paths.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "baseUrl": ".", + "paths": { + "#processor": ["./dist/runtime/server/handlers/processor.d.mts"], + "#processor-utils": ["./dist/runtime/server/utils/workers.d.mts"], + "#bullmq": ["./node_modules/bullmq"] + } + } +}