diff options
| author | akiyamn | 2023-09-24 23:22:21 +1000 |
|---|---|---|
| committer | akiyamn | 2023-09-24 23:22:21 +1000 |
| commit | 4e87195739f2a5d9a05451b48773c8afdc680765 (patch) | |
| tree | 9cba501844a4a11dcbdffc4050ed8189561c55ed /node_modules/miniflare | |
| download | price-tracker-worker-4e87195739f2a5d9a05451b48773c8afdc680765.tar.gz price-tracker-worker-4e87195739f2a5d9a05451b48773c8afdc680765.zip | |
Initial commit (by create-cloudflare CLI)
Diffstat (limited to 'node_modules/miniflare')
30 files changed, 19864 insertions, 0 deletions
diff --git a/node_modules/miniflare/README.md b/node_modules/miniflare/README.md new file mode 100644 index 0000000..3447949 --- /dev/null +++ b/node_modules/miniflare/README.md @@ -0,0 +1,652 @@ +# 🔥 Miniflare + +**Miniflare 3** is a simulator for developing and testing +[**Cloudflare Workers**](https://workers.cloudflare.com/), powered by +[`workerd`](https://github.com/cloudflare/workerd). + +> :warning: Miniflare 3 is API-only, and does not expose a CLI. Use Wrangler +> with `wrangler dev` to develop your Workers locally with Miniflare 3. + +## Quick Start + +```shell +$ npm install miniflare --save-dev +``` + +```js +import { Miniflare } from "miniflare"; + +// Create a new Miniflare instance, starting a workerd server +const mf = new Miniflare({ + script: `addEventListener("fetch", (event) => { + event.respondWith(new Response("Hello Miniflare!")); + })`, +}); + +// Send a request to the workerd server, the host is ignored +const response = await mf.dispatchFetch("http://localhost:8787/"); +console.log(await response.text()); // Hello Miniflare! + +// Cleanup Miniflare, shutting down the workerd server +await mf.dispose(); +``` + +## API + +### `type Awaitable<T>` + +`T | Promise<T>` + +Represents a value that can be `await`ed. Used in callback types to allow +`Promise`s to be returned if necessary. + +### `type Json` + +`string | number | boolean | null | Record<string, Json> | Json[]` + +Represents a JSON-serialisable value. + +### `type ModuleRuleType` + +`"ESModule" | "CommonJS" | "Text" | "Data" | "CompiledWasm"` + +Represents how a module's contents should be interpreted. + +- `"ESModule"`: interpret as + [ECMAScript module](https://tc39.es/ecma262/#sec-modules) +- `"CommonJS"`: interpret as + [CommonJS module](https://nodejs.org/api/modules.html#modules-commonjs-modules) +- `"Text"`: interpret as UTF8-encoded data, expose in runtime with + `string`-typed `default` export +- `"Data"`: interpret as arbitrary binary data, expose in runtime with + `ArrayBuffer`-typed `default` export +- `"CompiledWasm"`: interpret as binary WebAssembly module data, expose in + runtime with `WebAssembly.Module`-typed `default` export + +### `interface ModuleDefinition` + +Represents a manually defined module. + +- `type: ModuleRuleType` + + How this module's contents should be interpreted. + +- `path: string` + + Path of this module. The module's "name" will be obtained by converting this + to a relative path. The original path will be used to read `contents` if it's + omitted. + +- `contents?: string | Uint8Array` + + Contents override for this module. Binary data should be passed as + `Uint8Array`s. If omitted, will be read from `path`. + +### `interface ModuleRule` + +Represents a rule for identifying the `ModuleRuleType` of automatically located +modules. + +- `type: ModuleRuleType` + + How to interpret modules that match the `include` patterns. + +- `include: string[]` + + Glob patterns to match located module paths against (e.g. `["**/*.txt"]`). + +- `fallthrough?: boolean` + + If `true`, ignore any further rules of this `type`. This is useful for + disabling the built-in `ESModule` and `CommonJS` rules that match `*.mjs` and + `*.js`/`*.cjs` files respectively. + +### `type Persistence` + +`boolean | string | undefined` + +Represents where data should be persisted, if anywhere. + +- If this is `undefined` or `false`, data will be stored in-memory and only + persist between `Miniflare#setOptions()` calls, not restarts nor + `new Miniflare` instances. +- If this is `true`, data will be stored on the file-system, in the `$PWD/.mf` + directory. +- If this looks like a URL, then: + - If the protocol is `memory:`, data will be stored in-memory as above. + - If the protocol is `file:`, data will be stored on the file-system, in the + specified directory (e.g. `file:///path/to/directory`). +- Otherwise, if this is just a regular `string`, data will be stored on the + file-system, using the value as the directory path. + +### `enum LogLevel` + +`NONE, ERROR, WARN, INFO, DEBUG, VERBOSE` + +Controls which messages Miniflare logs. All messages at or below the selected +level will be logged. + +### `interface LogOptions` + +- `prefix?: string` + + String to add before the level prefix when logging messages. Defaults to `mf`. + +- `suffix?: string` + + String to add after the level prefix when logging messages. + +### `class Log` + +- `constructor(level?: LogLevel, opts?: LogOptions)` + + Creates a new logger that logs all messages at or below the specified level to + the `console`. + +- `error(message: Error)` + + Logs a message at the `ERROR` level. If the constructed log `level` is less + than `ERROR`, `throw`s the `message` instead. + +- `warn(message: string)` + + Logs a message at the `WARN` level. + +- `info(message: string)` + + Logs a message at the `INFO` level. + +- `debug(message: string)` + + Logs a message at the `DEBUG` level. + +- `verbose(message: string)` + + Logs a message at the `VERBOSE` level. + +### `class NoOpLog extends Log` + +- `constructor()` + + Creates a new logger that logs nothing to the `console`, and always `throw`s + `message`s logged at the `ERROR` level. + +### `interface QueueConsumerOptions` + +- `maxBatchSize?: number` + + Maximum number of messages allowed in each batch. Defaults to `5`. + +- `maxBatchTimeout?: number` + + Maximum number of seconds to wait for a full batch. If a message is sent, and + this timeout elapses, a partial batch will be dispatched. Defaults to `1`. + +- `maxRetries?: number` + + Maximum number of times to retry dispatching a message, if handling it throws, + or it is explicitly retried. Defaults to `2`. + +- `deadLetterQueue?: string` + + Name of another Queue to send a message on if it fails processing after + `maxRetries`. If this isn't specified, failed messages will be discarded. + +### `interface WorkerOptions` + +Options for an individual Worker/"nanoservice". All bindings are accessible on +the global scope in service-worker format Workers, or via the 2nd `env` +parameter in module format Workers. + +#### Core + +- `name?: string` + + Unique name for this worker. Only required if multiple `workers` are + specified. + +- `script?: string` + + JavaScript code for this worker. If this is a service worker format Worker, it + must not have any imports. If this is a modules format Worker, it must not + have any _npm_ imports, and `modules: true` must be set. If it does have + imports, `scriptPath` must also be set so Miniflare knows where to resolve + them relative to. + +- `scriptPath?: string` + + Path of JavaScript entrypoint. If this is a service worker format Worker, it + must not have any imports. If this is a modules format Worker, it must not + have any _npm_ imports, and `modules: true` must be set. + +- `modules?: boolean | ModuleDefinition[]` + + - If `true`, Miniflare will treat `script`/`scriptPath` as an ES Module and + automatically locate transitive module dependencies according to + `modulesRules`. Note that automatic location is not perfect: if the + specifier to a dynamic `import()` or `require()` is not a string literal, an + exception will be thrown. + + - If set to an array, modules can be defined manually. Transitive dependencies + must also be defined. Note the first module must be the entrypoint and have + type `"ESModule"`. + +- `modulesRoot?: string` + + If `modules` is set to `true` or an array, modules' "name"s will be their + `path`s relative to this value. This ensures file paths in stack traces are + correct. + +<!-- prettier-ignore-start --> +<!-- (for disabling `;` insertion in `js` code block) --> + +- `modulesRules?: ModuleRule[]` + + Rules for identifying the `ModuleRuleType` of automatically located modules + when `modules: true` is set. Note the following default rules are always + included at the end: + + ```js + [ + { type: "ESModule", include: ["**/*.mjs"] }, + { type: "CommonJS", include: ["**/*.js", "**/*.cjs"] }, + ] + ``` + + > If `script` and `scriptPath` are set, and `modules` is set to an array, + > `modules` takes priority for a Worker's code, followed by `script`, then + > `scriptPath`. + +<!-- prettier-ignore-end --> + +- `compatibilityDate?: string` + + [Compatibility date](https://developers.cloudflare.com/workers/platform/compatibility-dates/) + to use for this Worker. Defaults to a date far in the past. + +- `compatibilityFlags?: string[]` + + [Compatibility flags](https://developers.cloudflare.com/workers/platform/compatibility-dates/) + to use for this Worker. + +- `bindings?: Record<string, Json>` + + Record mapping binding name to arbitrary JSON-serialisable values to inject as + bindings into this Worker. + +- `wasmBindings?: Record<string, string>` + + Record mapping binding name to paths containing binary WebAssembly module data + to inject as `WebAssembly.Module` bindings into this Worker. + +- `textBlobBindings?: Record<string, string>` + + Record mapping binding name to paths containing UTF8-encoded data to inject as + `string` bindings into this Worker. + +- `dataBlobBindings?: Record<string, string>` + + Record mapping binding name to paths containing arbitrary binary data to + inject as `ArrayBuffer` bindings into this Worker. + +- `serviceBindings?: Record<string, string | { network: Network } | { external: ExternalServer } | { disk: DiskDirectory } | (request: Request) => Awaitable<Response>>` + + Record mapping binding name to service designators to inject as + `{ fetch: typeof fetch }` + [service bindings](https://developers.cloudflare.com/workers/platform/bindings/about-service-bindings/) + into this Worker. + + - If the designator is a `string`, requests will be dispatched to the Worker + with that `name`. + - If the designator is an object of the form `{ network: { ... } }`, where + `network` is a + [`workerd` `Network` struct](https://github.com/cloudflare/workerd/blob/bdbd6075c7c53948050c52d22f2dfa37bf376253/src/workerd/server/workerd.capnp#L555-L598), + requests will be dispatched according to the `fetch`ed URL. + - If the designator is an object of the form `{ external: { ... } }` where + `external` is a + [`workerd` `ExternalServer` struct](https://github.com/cloudflare/workerd/blob/bdbd6075c7c53948050c52d22f2dfa37bf376253/src/workerd/server/workerd.capnp#L504-L553), + requests will be dispatched to the specified remote server. + - If the designator is an object of the form `{ disk: { ... } }` where `disk` + is a + [`workerd` `DiskDirectory` struct](https://github.com/cloudflare/workerd/blob/bdbd6075c7c53948050c52d22f2dfa37bf376253/src/workerd/server/workerd.capnp#L600-L643), + requests will be dispatched to an HTTP service backed by an on-disk + directory. + - If the designator is a function, requests will be dispatched to your custom + handler. This allows you to access data and functions defined in Node.js + from your Worker. + +- `outboundService?: string | { network: Network } | { external: ExternalServer } | { disk: DiskDirectory } | (request: Request) => Awaitable<Response>` + + Dispatch this Worker's global `fetch()` and `connect()` requests to the + configured service. Service designators follow the same rules above for + `serviceBindings`. + +- `fetchMock?: import("undici").MockAgent` + + An [`undici` `MockAgent`](https://undici.nodejs.org/#/docs/api/MockAgent) to + dispatch this Worker's global `fetch()` requests through. + + > :warning: `outboundService` and `fetchMock` are mutually exclusive options. + > At most one of them may be specified per Worker. + +- `routes?: string[]` + + Array of route patterns for this Worker. These follow the same + [routing rules](https://developers.cloudflare.com/workers/platform/triggers/routes/#matching-behavior) + as deployed Workers. If no routes match, Miniflare will fallback to the Worker + defined first. + +#### Cache + +- `cache?: boolean` + + If `false`, default and named caches will be disabled. The Cache API will + still be available, it just won't cache anything. + +- `cacheWarnUsage?: boolean` + + If `true`, the first use of the Cache API will log a warning stating that the + Cache API is unsupported on `workers.dev` subdomains. + +#### Durable Objects + +- `durableObjects?: Record<string, string | { className: string, scriptName?: string }>` + + Record mapping binding name to Durable Object class designators to inject as + `DurableObjectNamespace` bindings into this Worker. + + - If the designator is a `string`, it should be the name of a `class` exported + by this Worker. + - If the designator is an object, and `scriptName` is `undefined`, `className` + should be the name of a `class` exported by this Worker. + - Otherwise, `className` should be the name of a `class` exported by the + Worker with a `name` of `scriptName`. + +#### KV + +- `kvNamespaces?: Record<string, string> | string[]` + + Record mapping binding name to KV namespace IDs to inject as `KVNamespace` + bindings into this Worker. Different Workers may bind to the same namespace ID + with different binding names. If a `string[]` of binding names is specified, + the binding name and KV namespace ID are assumed to be the same. + +- `sitePath?: string` + + Path to serve Workers Sites files from. If set, `__STATIC_CONTENT` and + `__STATIC_CONTENT_MANIFEST` bindings will be injected into this Worker. In + modules mode, `__STATIC_CONTENT_MANIFEST` will also be exposed as a module + with a `string`-typed `default` export, containing the JSON-stringified + manifest. Note Workers Sites files are never cached in Miniflare. + +- `siteInclude?: string[]` + + If set, only files with paths matching these glob patterns will be served. + +- `siteExclude?: string[]` + + If set, only files with paths _not_ matching these glob patterns will be + served. + +#### R2 + +- `r2Buckets?: Record<string, string> | string[]` + + Record mapping binding name to R2 bucket names to inject as `R2Bucket` + bindings into this Worker. Different Workers may bind to the same bucket name + with different binding names. If a `string[]` of binding names is specified, + the binding name and bucket name are assumed to be the same. + +#### D1 + +- `d1Databases?: Record<string, string> | string[]` + + Record mapping binding name to D1 database IDs to inject as `Fetcher` bindings + into this Worker. Note these bindings must be wrapped with a facade to provide + the expected `D1Database` API. Different Workers may bind to the same database + ID with different binding names. If a `string[]` of binding names is + specified, the binding name and database ID are assumed to be the same. + +#### Queues + +- `queueProducers?: Record<string, string> | string[]` + + Record mapping binding name to queue names to inject as `WorkerQueue` bindings + into this Worker. Different Workers may bind to the same queue name with + different binding names. If a `string[]` of binding names is specified, the + binding name and queue name are assumed to be the same. + +- `queueConsumers?: Record<string, QueueConsumerOptions> | string[]` + + Record mapping queue name to consumer options. Messages enqueued on the + corresponding queues will be dispatched to this Worker. Note each queue can + have at most one consumer. If a `string[]` of queue names is specified, + default consumer options will be used. + +#### Analytics Engine + +_Not yet supported_ + +### `interface SharedOptions` + +Options shared between all Workers/"nanoservices". + +#### Core + +- `host?: string` + + Hostname that the `workerd` server should listen on. Defaults to `127.0.0.1`. + +- `port?: number` + + Port that the `workerd` server should listen on. Tries to default to `8787`, + but falls back to a random free port if this is in use. Note if a manually + specified port is in use, Miniflare throws an error, rather than attempting to + find a free port. + +- `https?: boolean` + + If `true`, start an HTTPS server using a pre-generated self-signed certificate + for `localhost`. Note this certificate is not valid for any other hostnames or + IP addresses. If you need to access the HTTPS server from another device, + you'll need to generate your own certificate and use the other `https*` + options below. + + ```shell + $ openssl req -newkey rsa:2048 -nodes -keyout key.pem -x509 -days 365 -out cert.pem + ``` + + ```js + new Miniflare({ + httpsKeyPath: "key.pem", + httpsCertPath: "cert.pem", + }); + ``` + +- `httpsKey?: string` + + When one of `httpsCert` or `httpCertPath` is also specified, starts an HTTPS + server using the value of this option as the PEM encoded private key. + +- `httpsKeyPath?: string` + + When one of `httpsCert` or `httpCertPath` is also specified, starts an HTTPS + server using the PEM encoded private key stored at this file path. + +- `httpsCert?: string` + + When one of `httpsKey` or `httpsKeyPath` is also specified, starts an HTTPS + server using the value of this option as the PEM encoded certificate chain. + +- `httpsCertPath?: string` + + When one of `httpsKey` or `httpsKeyPath` is also specified, starts an HTTPS + server using the PEM encoded certificate chain stored at this file path. + +- `inspectorPort?: number` + + Port that `workerd` should start a DevTools inspector server on. Visit + `chrome://inspect` in a Chromium-based browser to connect to this. This can be + used to see detailed `console.log`s, profile CPU usage, and will eventually + allow step-through debugging. + +- `verbose?: boolean` + + Enable `workerd`'s `--verbose` flag for verbose logging. This can be used to + see simplified `console.log`s. + +- `log?: Log` + + Logger implementation for Miniflare's errors, warnings and informative + messages. + +- `upstream?: string` + + URL to use as the origin for incoming requests. If specified, all incoming + `request.url`s will be rewritten to start with this string. This is especially + useful when testing Workers that act as a proxy, and not as origins + themselves. + +- `cf?: boolean | string | Record<string, any>` + + Controls the object returned from incoming `Request`'s `cf` property. + + - If set to a falsy value, an object with default placeholder values will be + used + - If set to an object, that object will be used + - If set to `true`, a real `cf` object will be fetched from a trusted + Cloudflare endpoint and cached in `node_modules/.mf` for 30 days + - If set to a `string`, a real `cf` object will be fetched and cached at the + provided path for 30 days + +- `liveReload?: boolean` + + If `true`, Miniflare will inject a script into HTML responses that + automatically reloads the page in-browser whenever the Miniflare instance's + options are updated. + +#### Cache, Durable Objects, KV, R2 and D1 + +- `cachePersist?: Persistence` + + Where to persist data cached in default or named caches. See docs for + `Persistence`. + +- `durableObjectsPersist?: Persistence` + + Where to persist data stored in Durable Objects. See docs for `Persistence`. + +- `kvPersist?: Persistence` + + Where to persist data stored in KV namespaces. See docs for `Persistence`. + +- `r2Persist?: Persistence` + + Where to persist data stored in R2 buckets. See docs for `Persistence`. + +- `d1Persist?: Persistence` + + Where to persist data stored in D1 databases. See docs for `Persistence`. + +#### Analytics Engine + +_Not yet supported_ + +### `type MiniflareOptions` + +`SharedOptions & (WorkerOptions | { workers: WorkerOptions[] })` + +Miniflare accepts either a single Worker configuration or multiple Worker +configurations in the `workers` array. When specifying an array of Workers, the +first Worker is designated the entrypoint and will receive all incoming HTTP +requests. Some options are shared between all workers and should always be +defined at the top-level. + +### `class Miniflare` + +- `constructor(opts: MiniflareOptions)` + + Creates a Miniflare instance and starts a new `workerd` server. Note unlike + Miniflare 2, Miniflare 3 _always_ starts a HTTP server listening on the + configured `host` and `port`: there are no `createServer`/`startServer` + functions. + +- `setOptions(opts: MiniflareOptions)` + + Updates the configuration for this Miniflare instance and restarts the + `workerd` server. Note unlike Miniflare 2, this does _not_ merge the new + configuration with the old configuration. Note that calling this function will + invalidate any existing values returned by the `Miniflare#get*()` methods, + preventing them from being used. + +- `ready: Promise<URL>` + + Returns a `Promise` that resolves with a `http` `URL` to the `workerd` server + once it has started and is able to accept requests. + +- `dispatchFetch(input: RequestInfo, init?: RequestInit): Promise<Response>` + + Sends a HTTP request to the `workerd` server, dispatching a `fetch` event in + the entrypoint Worker. Returns a `Promise` that resolves with the response. + Note that this implicitly waits for the `ready` `Promise` to resolve, there's + no need to do that yourself first. Additionally, the host of the request's URL + is always ignored and replaced with the `workerd` server's. + +- `getBindings<Env extends Record<string, unknown> = Record<string, unknown>>(workerName?: string): Promise<Env>` + + Returns a `Promise` that resolves with a record mapping binding names to + bindings, for all bindings in the Worker with the specified `workerName`. If + `workerName` is not specified, defaults to the entrypoint Worker. + +- `getCaches(): Promise<CacheStorage>` + + Returns a `Promise` that resolves with the + [`CacheStorage`](https://developers.cloudflare.com/workers/runtime-apis/cache/) + instance of the entrypoint Worker. This means if `cache: false` is set on the + entrypoint, calling methods on the resolved value won't do anything. + +- `getD1Database(bindingName: string, workerName?: string): Promise<D1Database>` + + Returns a `Promise` that resolves with the + [`D1Database`](https://developers.cloudflare.com/d1/platform/client-api/) + instance corresponding to the specified `bindingName` of `workerName`. Note + `bindingName` must not begin with `__D1_BETA__`. If `workerName` is not + specified, defaults to the entrypoint Worker. + +- `getDurableObjectNamespace(bindingName: string, workerName?: string): Promise<DurableObjectNamespace>` + + Returns a `Promise` that resolves with the + [`DurableObjectNamespace`](https://developers.cloudflare.com/workers/runtime-apis/durable-objects/#access-a-durable-object-from-a-worker) + instance corresponding to the specified `bindingName` of `workerName`. If + `workerName` is not specified, defaults to the entrypoint Worker. + +- `getKVNamespace(bindingName: string, workerName?: string): Promise<KVNamespace>` + + Returns a `Promise` that resolves with the + [`KVNamespace`](https://developers.cloudflare.com/workers/runtime-apis/kv/) + instance corresponding to the specified `bindingName` of `workerName`. If + `workerName` is not specified, defaults to the entrypoint Worker. + +- `getQueueProducer<Body>(bindingName: string, workerName?: string): Promise<Queue<Body>>` + + Returns a `Promise` that resolves with the + [`Queue`](https://developers.cloudflare.com/queues/platform/javascript-apis/) + producer instance corresponding to the specified `bindingName` of + `workerName`. If `workerName` is not specified, defaults to the entrypoint + Worker. + +- `getR2Bucket(bindingName: string, workerName?: string): Promise<R2Bucket>` + + Returns a `Promise` that resolves with the + [`R2Bucket`](https://developers.cloudflare.com/r2/api/workers/workers-api-reference/) + producer instance corresponding to the specified `bindingName` of + `workerName`. If `workerName` is not specified, defaults to the entrypoint + Worker. + +- `dispose(): Promise<void>` + + Cleans up the Miniflare instance, and shuts down the `workerd` server. Note + that after this is called, `Miniflare#setOptions()` and + `Miniflare#dispatchFetch()` cannot be called. Additionally, calling this + function will invalidate any values returned by the `Miniflare#get*()` + methods, preventing them from being used. diff --git a/node_modules/miniflare/bootstrap.js b/node_modules/miniflare/bootstrap.js new file mode 100644 index 0000000..d75712e --- /dev/null +++ b/node_modules/miniflare/bootstrap.js @@ -0,0 +1,10 @@ +const { Log } = require("."); + +const log = new Log(); +log.error( + [ + "`miniflare@3` no longer includes a CLI. Please use `npx wrangler dev` instead.", + "As of `wrangler@3`, this will use Miniflare by default.", + "See https://miniflare.dev/get-started/migrating for more details.", + ].join("\n") +); diff --git a/node_modules/miniflare/dist/src/index.d.ts b/node_modules/miniflare/dist/src/index.d.ts new file mode 100644 index 0000000..bfba0f5 --- /dev/null +++ b/node_modules/miniflare/dist/src/index.d.ts @@ -0,0 +1,4239 @@ +/// <reference types="node" />
+
+import type { Abortable } from 'events';
+import type { AbortSignal as AbortSignal_2 } from '@cloudflare/workers-types/experimental';
+import type { Blob as Blob_2 } from '@cloudflare/workers-types/experimental';
+import { Blob as Blob_3 } from 'buffer';
+import { BodyInit } from 'undici';
+import type { CacheStorage } from '@cloudflare/workers-types/experimental';
+import type { D1Database } from '@cloudflare/workers-types/experimental';
+import { default as default_2 } from 'undici/types/mock-agent';
+import { Dispatcher } from 'undici';
+import type { DurableObjectNamespace } from '@cloudflare/workers-types/experimental';
+import { File } from 'undici';
+import type { File as File_2 } from '@cloudflare/workers-types/experimental';
+import { FormData } from 'undici';
+import { Headers } from 'undici';
+import type { Headers as Headers_2 } from '@cloudflare/workers-types/experimental';
+import { HeadersInit } from 'undici';
+import { IncomingRequestCfProperties } from '@cloudflare/workers-types/experimental';
+import type { KVNamespace } from '@cloudflare/workers-types/experimental';
+import { MockAgent } from 'undici';
+import NodeWebSocket from 'ws';
+import type { Queue } from '@cloudflare/workers-types/experimental';
+import type { R2Bucket } from '@cloudflare/workers-types/experimental';
+import type { ReadableStream } from '@cloudflare/workers-types/experimental';
+import { ReadableStream as ReadableStream_2 } from 'stream/web';
+import { ReferrerPolicy } from 'undici';
+import { Request as Request_2 } from 'undici';
+import type { Request as Request_3 } from '@cloudflare/workers-types/experimental';
+import { RequestCache } from 'undici';
+import { RequestCredentials } from 'undici';
+import { RequestDestination } from 'undici';
+import { RequestDuplex } from 'undici';
+import { RequestInfo as RequestInfo_2 } from 'undici';
+import { RequestInit as RequestInit_2 } from 'undici';
+import type { RequestInit as RequestInit_3 } from '@cloudflare/workers-types/experimental';
+import type { RequestInitCfProperties } from '@cloudflare/workers-types/experimental';
+import { RequestMode } from 'undici';
+import { RequestRedirect } from 'undici';
+import { Response as Response_2 } from 'undici';
+import type { Response as Response_3 } from '@cloudflare/workers-types/experimental';
+import { ResponseInit as ResponseInit_2 } from 'undici';
+import { ResponseRedirectStatus } from 'undici';
+import { ResponseType } from 'undici';
+import type { ServiceWorkerGlobalScope } from '@cloudflare/workers-types/experimental';
+import { compatibilityDate as supportedCompatibilityDate } from 'workerd';
+import { Transform } from 'stream';
+import { z } from 'zod';
+
+export declare type Awaitable<T> = T | Promise<T>;
+
+export declare function base64Decode(encoded: string): string;
+
+export declare function base64Encode(value: string): string;
+
+export { BodyInit }
+
+export declare const CACHE_PLUGIN: Plugin<typeof CacheOptionsSchema, typeof CacheSharedOptionsSchema>;
+
+export declare const CACHE_PLUGIN_NAME = "cache";
+
+export declare const CacheBindings: {
+ readonly MAYBE_JSON_CACHE_WARN_USAGE: "MINIFLARE_CACHE_WARN_USAGE";
+};
+
+export declare const CacheHeaders: {
+ readonly NAMESPACE: "cf-cache-namespace";
+ readonly STATUS: "cf-cache-status";
+};
+
+export declare interface CacheObjectCf {
+ miniflare?: {
+ cacheWarnUsage?: boolean;
+ };
+}
+
+export declare const CacheOptionsSchema: z.ZodObject<{
+ cache: z.ZodOptional<z.ZodBoolean>;
+ cacheWarnUsage: z.ZodOptional<z.ZodBoolean>;
+}, "strip", z.ZodTypeAny, {
+ cache?: boolean | undefined;
+ cacheWarnUsage?: boolean | undefined;
+}, {
+ cache?: boolean | undefined;
+ cacheWarnUsage?: boolean | undefined;
+}>;
+
+export declare const CacheSharedOptionsSchema: z.ZodObject<{
+ cachePersist: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString]>>;
+}, "strip", z.ZodTypeAny, {
+ cachePersist?: string | boolean | undefined;
+}, {
+ cachePersist?: string | boolean | undefined;
+}>;
+
+export declare class CloseEvent extends Event {
+ readonly code: number;
+ readonly reason: string;
+ readonly wasClean: boolean;
+ constructor(type: "close", init?: {
+ code?: number;
+ reason?: string;
+ wasClean?: boolean;
+ });
+}
+
+export declare interface Config {
+ services?: Service[];
+ sockets?: Socket[];
+ v8Flags?: string[];
+ extensions?: Extension[];
+}
+
+export declare function configureEntrySocket(coreOpts: z.infer<typeof CORE_PLUGIN.sharedOptions>): Promise<Socket>;
+
+export declare const CORE_PLUGIN: Plugin<typeof CoreOptionsSchema, typeof CoreSharedOptionsSchema>;
+
+export declare const CORE_PLUGIN_NAME = "core";
+
+export declare const CoreBindings: {
+ readonly SERVICE_LOOPBACK: "MINIFLARE_LOOPBACK";
+ readonly SERVICE_USER_ROUTE_PREFIX: "MINIFLARE_USER_ROUTE_";
+ readonly SERVICE_USER_FALLBACK: "MINIFLARE_USER_FALLBACK";
+ readonly TEXT_CUSTOM_SERVICE: "MINIFLARE_CUSTOM_SERVICE";
+ readonly TEXT_UPSTREAM_URL: "MINIFLARE_UPSTREAM_URL";
+ readonly JSON_CF_BLOB: "CF_BLOB";
+ readonly JSON_ROUTES: "MINIFLARE_ROUTES";
+ readonly JSON_LOG_LEVEL: "MINIFLARE_LOG_LEVEL";
+ readonly DATA_LIVE_RELOAD_SCRIPT: "MINIFLARE_LIVE_RELOAD_SCRIPT";
+ readonly DURABLE_OBJECT_NAMESPACE_PROXY: "MINIFLARE_PROXY";
+};
+
+export declare const CoreHeaders: {
+ readonly CUSTOM_SERVICE: "MF-Custom-Service";
+ readonly ORIGINAL_URL: "MF-Original-URL";
+ readonly ERROR_STACK: "MF-Experimental-Error-Stack";
+ readonly ROUTE_OVERRIDE: "MF-Route-Override";
+ readonly OP: "MF-Op";
+ readonly OP_TARGET: "MF-Op-Target";
+ readonly OP_KEY: "MF-Op-Key";
+ readonly OP_SYNC: "MF-Op-Sync";
+ readonly OP_STRINGIFIED_SIZE: "MF-Op-Stringified-Size";
+ readonly OP_RESULT_TYPE: "MF-Op-Result-Type";
+};
+
+export declare const CoreOptionsSchema: z.ZodEffects<z.ZodIntersection<z.ZodUnion<[z.ZodObject<{
+ modules: z.ZodArray<z.ZodObject<{
+ type: z.ZodEnum<["ESModule", "CommonJS", "NodeJsCompatModule", "Text", "Data", "CompiledWasm"]>;
+ path: z.ZodString;
+ contents: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodType<Uint8Array, z.ZodTypeDef, Uint8Array>]>>;
+ }, "strip", z.ZodTypeAny, {
+ contents?: string | Uint8Array | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ path: string;
+ }, {
+ contents?: string | Uint8Array | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ path: string;
+ }>, "many">;
+ modulesRoot: z.ZodOptional<z.ZodString>;
+}, "strip", z.ZodTypeAny, {
+ modulesRoot?: string | undefined;
+ modules: {
+ contents?: string | Uint8Array | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ path: string;
+ }[];
+}, {
+ modulesRoot?: string | undefined;
+ modules: {
+ contents?: string | Uint8Array | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ path: string;
+ }[];
+}>, z.ZodObject<{
+ script: z.ZodString;
+ scriptPath: z.ZodOptional<z.ZodString>;
+ modules: z.ZodOptional<z.ZodBoolean>;
+ modulesRules: z.ZodOptional<z.ZodArray<z.ZodObject<{
+ type: z.ZodEnum<["ESModule", "CommonJS", "NodeJsCompatModule", "Text", "Data", "CompiledWasm"]>;
+ include: z.ZodArray<z.ZodString, "many">;
+ fallthrough: z.ZodOptional<z.ZodBoolean>;
+ }, "strip", z.ZodTypeAny, {
+ fallthrough?: boolean | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ include: string[];
+ }, {
+ fallthrough?: boolean | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ include: string[];
+ }>, "many">>;
+ modulesRoot: z.ZodOptional<z.ZodString>;
+}, "strip", z.ZodTypeAny, {
+ modules?: boolean | undefined;
+ modulesRoot?: string | undefined;
+ scriptPath?: string | undefined;
+ modulesRules?: {
+ fallthrough?: boolean | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ include: string[];
+ }[] | undefined;
+ script: string;
+}, {
+ modules?: boolean | undefined;
+ modulesRoot?: string | undefined;
+ scriptPath?: string | undefined;
+ modulesRules?: {
+ fallthrough?: boolean | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ include: string[];
+ }[] | undefined;
+ script: string;
+}>, z.ZodObject<{
+ scriptPath: z.ZodString;
+ modules: z.ZodOptional<z.ZodBoolean>;
+ modulesRules: z.ZodOptional<z.ZodArray<z.ZodObject<{
+ type: z.ZodEnum<["ESModule", "CommonJS", "NodeJsCompatModule", "Text", "Data", "CompiledWasm"]>;
+ include: z.ZodArray<z.ZodString, "many">;
+ fallthrough: z.ZodOptional<z.ZodBoolean>;
+ }, "strip", z.ZodTypeAny, {
+ fallthrough?: boolean | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ include: string[];
+ }, {
+ fallthrough?: boolean | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ include: string[];
+ }>, "many">>;
+ modulesRoot: z.ZodOptional<z.ZodString>;
+}, "strip", z.ZodTypeAny, {
+ modules?: boolean | undefined;
+ modulesRoot?: string | undefined;
+ modulesRules?: {
+ fallthrough?: boolean | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ include: string[];
+ }[] | undefined;
+ scriptPath: string;
+}, {
+ modules?: boolean | undefined;
+ modulesRoot?: string | undefined;
+ modulesRules?: {
+ fallthrough?: boolean | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ include: string[];
+ }[] | undefined;
+ scriptPath: string;
+}>]>, z.ZodObject<{
+ name: z.ZodOptional<z.ZodString>;
+ compatibilityDate: z.ZodOptional<z.ZodString>;
+ compatibilityFlags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
+ routes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
+ bindings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<Json, z.ZodTypeDef, Json>>>;
+ wasmBindings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
+ textBlobBindings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
+ dataBlobBindings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
+ serviceBindings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodObject<{
+ network: z.ZodObject<{
+ allow: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
+ deny: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
+ tlsOptions: z.ZodOptional<z.ZodObject<{
+ keypair: z.ZodOptional<z.ZodObject<{
+ privateKey: z.ZodOptional<z.ZodString>;
+ certificateChain: z.ZodOptional<z.ZodString>;
+ }, "strip", z.ZodTypeAny, {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ }, {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ }>>;
+ requireClientCerts: z.ZodOptional<z.ZodBoolean>;
+ trustBrowserCas: z.ZodOptional<z.ZodBoolean>;
+ trustedCertificates: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
+ minVersion: z.ZodOptional<z.ZodNativeEnum<TlsOptions_Version>>;
+ cipherList: z.ZodOptional<z.ZodString>;
+ }, "strip", z.ZodTypeAny, {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ }, {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ }>>;
+ }, "strip", z.ZodTypeAny, {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ }, {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ }>;
+ }, "strip", z.ZodTypeAny, {
+ network: {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ };
+ }, {
+ network: {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ };
+ }>, z.ZodObject<{
+ external: z.ZodType<ExternalServer, z.ZodTypeDef, ExternalServer>;
+ }, "strip", z.ZodTypeAny, {
+ external: ExternalServer;
+ }, {
+ external: ExternalServer;
+ }>, z.ZodObject<{
+ disk: z.ZodObject<{
+ path: z.ZodString;
+ writable: z.ZodOptional<z.ZodBoolean>;
+ }, "strip", z.ZodTypeAny, {
+ writable?: boolean | undefined;
+ path: string;
+ }, {
+ writable?: boolean | undefined;
+ path: string;
+ }>;
+ }, "strip", z.ZodTypeAny, {
+ disk: {
+ writable?: boolean | undefined;
+ path: string;
+ };
+ }, {
+ disk: {
+ writable?: boolean | undefined;
+ path: string;
+ };
+ }>, z.ZodFunction<z.ZodTuple<[z.ZodType<Request<RequestInitCfType>, z.ZodTypeDef, Request<RequestInitCfType>>], z.ZodUnknown>, z.ZodUnion<[z.ZodType<Response, z.ZodTypeDef, Response>, z.ZodPromise<z.ZodType<Response, z.ZodTypeDef, Response>>]>>]>>>;
+ outboundService: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodObject<{
+ network: z.ZodObject<{
+ allow: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
+ deny: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
+ tlsOptions: z.ZodOptional<z.ZodObject<{
+ keypair: z.ZodOptional<z.ZodObject<{
+ privateKey: z.ZodOptional<z.ZodString>;
+ certificateChain: z.ZodOptional<z.ZodString>;
+ }, "strip", z.ZodTypeAny, {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ }, {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ }>>;
+ requireClientCerts: z.ZodOptional<z.ZodBoolean>;
+ trustBrowserCas: z.ZodOptional<z.ZodBoolean>;
+ trustedCertificates: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
+ minVersion: z.ZodOptional<z.ZodNativeEnum<TlsOptions_Version>>;
+ cipherList: z.ZodOptional<z.ZodString>;
+ }, "strip", z.ZodTypeAny, {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ }, {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ }>>;
+ }, "strip", z.ZodTypeAny, {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ }, {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ }>;
+ }, "strip", z.ZodTypeAny, {
+ network: {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ };
+ }, {
+ network: {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ };
+ }>, z.ZodObject<{
+ external: z.ZodType<ExternalServer, z.ZodTypeDef, ExternalServer>;
+ }, "strip", z.ZodTypeAny, {
+ external: ExternalServer;
+ }, {
+ external: ExternalServer;
+ }>, z.ZodObject<{
+ disk: z.ZodObject<{
+ path: z.ZodString;
+ writable: z.ZodOptional<z.ZodBoolean>;
+ }, "strip", z.ZodTypeAny, {
+ writable?: boolean | undefined;
+ path: string;
+ }, {
+ writable?: boolean | undefined;
+ path: string;
+ }>;
+ }, "strip", z.ZodTypeAny, {
+ disk: {
+ writable?: boolean | undefined;
+ path: string;
+ };
+ }, {
+ disk: {
+ writable?: boolean | undefined;
+ path: string;
+ };
+ }>, z.ZodFunction<z.ZodTuple<[z.ZodType<Request<RequestInitCfType>, z.ZodTypeDef, Request<RequestInitCfType>>], z.ZodUnknown>, z.ZodUnion<[z.ZodType<Response, z.ZodTypeDef, Response>, z.ZodPromise<z.ZodType<Response, z.ZodTypeDef, Response>>]>>]>>;
+ fetchMock: z.ZodOptional<z.ZodType<MockAgent<MockAgent.Options>, z.ZodTypeDef, MockAgent<MockAgent.Options>>>;
+ unsafeEphemeralDurableObjects: z.ZodOptional<z.ZodBoolean>;
+}, "strip", z.ZodTypeAny, {
+ name?: string | undefined;
+ compatibilityDate?: string | undefined;
+ bindings?: Record<string, Json> | undefined;
+ compatibilityFlags?: string[] | undefined;
+ routes?: string[] | undefined;
+ wasmBindings?: Record<string, string> | undefined;
+ textBlobBindings?: Record<string, string> | undefined;
+ dataBlobBindings?: Record<string, string> | undefined;
+ serviceBindings?: Record<string, string | {
+ network: {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ };
+ } | {
+ external: ExternalServer;
+ } | {
+ disk: {
+ writable?: boolean | undefined;
+ path: string;
+ };
+ } | ((args_0: Request<RequestInitCfType>, ...args_1: unknown[]) => Response | Promise<Response>)> | undefined;
+ outboundService?: string | {
+ network: {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ };
+ } | {
+ external: ExternalServer;
+ } | {
+ disk: {
+ writable?: boolean | undefined;
+ path: string;
+ };
+ } | ((args_0: Request<RequestInitCfType>, ...args_1: unknown[]) => Response | Promise<Response>) | undefined;
+ fetchMock?: MockAgent<MockAgent.Options> | undefined;
+ unsafeEphemeralDurableObjects?: boolean | undefined;
+}, {
+ name?: string | undefined;
+ compatibilityDate?: string | undefined;
+ bindings?: Record<string, Json> | undefined;
+ compatibilityFlags?: string[] | undefined;
+ routes?: string[] | undefined;
+ wasmBindings?: Record<string, string> | undefined;
+ textBlobBindings?: Record<string, string> | undefined;
+ dataBlobBindings?: Record<string, string> | undefined;
+ serviceBindings?: Record<string, string | {
+ network: {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ };
+ } | {
+ external: ExternalServer;
+ } | {
+ disk: {
+ writable?: boolean | undefined;
+ path: string;
+ };
+ } | ((args_0: Request<RequestInitCfType>, ...args_1: unknown[]) => Response | Promise<Response>)> | undefined;
+ outboundService?: string | {
+ network: {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ };
+ } | {
+ external: ExternalServer;
+ } | {
+ disk: {
+ writable?: boolean | undefined;
+ path: string;
+ };
+ } | ((args_0: Request<RequestInitCfType>, ...args_1: unknown[]) => Response | Promise<Response>) | undefined;
+ fetchMock?: MockAgent<MockAgent.Options> | undefined;
+ unsafeEphemeralDurableObjects?: boolean | undefined;
+}>>, ({
+ modulesRoot?: string | undefined;
+ modules: {
+ contents?: string | Uint8Array | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ path: string;
+ }[];
+} & {
+ name?: string | undefined;
+ compatibilityDate?: string | undefined;
+ bindings?: Record<string, Json> | undefined;
+ compatibilityFlags?: string[] | undefined;
+ routes?: string[] | undefined;
+ wasmBindings?: Record<string, string> | undefined;
+ textBlobBindings?: Record<string, string> | undefined;
+ dataBlobBindings?: Record<string, string> | undefined;
+ serviceBindings?: Record<string, string | {
+ network: {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ };
+ } | {
+ external: ExternalServer;
+ } | {
+ disk: {
+ writable?: boolean | undefined;
+ path: string;
+ };
+ } | ((args_0: Request<RequestInitCfType>, ...args_1: unknown[]) => Response | Promise<Response>)> | undefined;
+ outboundService?: string | {
+ network: {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ };
+ } | {
+ external: ExternalServer;
+ } | {
+ disk: {
+ writable?: boolean | undefined;
+ path: string;
+ };
+ } | ((args_0: Request<RequestInitCfType>, ...args_1: unknown[]) => Response | Promise<Response>) | undefined;
+ fetchMock?: MockAgent<MockAgent.Options> | undefined;
+ unsafeEphemeralDurableObjects?: boolean | undefined;
+}) | ({
+ modules?: boolean | undefined;
+ modulesRoot?: string | undefined;
+ scriptPath?: string | undefined;
+ modulesRules?: {
+ fallthrough?: boolean | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ include: string[];
+ }[] | undefined;
+ script: string;
+} & {
+ name?: string | undefined;
+ compatibilityDate?: string | undefined;
+ bindings?: Record<string, Json> | undefined;
+ compatibilityFlags?: string[] | undefined;
+ routes?: string[] | undefined;
+ wasmBindings?: Record<string, string> | undefined;
+ textBlobBindings?: Record<string, string> | undefined;
+ dataBlobBindings?: Record<string, string> | undefined;
+ serviceBindings?: Record<string, string | {
+ network: {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ };
+ } | {
+ external: ExternalServer;
+ } | {
+ disk: {
+ writable?: boolean | undefined;
+ path: string;
+ };
+ } | ((args_0: Request<RequestInitCfType>, ...args_1: unknown[]) => Response | Promise<Response>)> | undefined;
+ outboundService?: string | {
+ network: {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ };
+ } | {
+ external: ExternalServer;
+ } | {
+ disk: {
+ writable?: boolean | undefined;
+ path: string;
+ };
+ } | ((args_0: Request<RequestInitCfType>, ...args_1: unknown[]) => Response | Promise<Response>) | undefined;
+ fetchMock?: MockAgent<MockAgent.Options> | undefined;
+ unsafeEphemeralDurableObjects?: boolean | undefined;
+}) | ({
+ modules?: boolean | undefined;
+ modulesRoot?: string | undefined;
+ modulesRules?: {
+ fallthrough?: boolean | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ include: string[];
+ }[] | undefined;
+ scriptPath: string;
+} & {
+ name?: string | undefined;
+ compatibilityDate?: string | undefined;
+ bindings?: Record<string, Json> | undefined;
+ compatibilityFlags?: string[] | undefined;
+ routes?: string[] | undefined;
+ wasmBindings?: Record<string, string> | undefined;
+ textBlobBindings?: Record<string, string> | undefined;
+ dataBlobBindings?: Record<string, string> | undefined;
+ serviceBindings?: Record<string, string | {
+ network: {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ };
+ } | {
+ external: ExternalServer;
+ } | {
+ disk: {
+ writable?: boolean | undefined;
+ path: string;
+ };
+ } | ((args_0: Request<RequestInitCfType>, ...args_1: unknown[]) => Response | Promise<Response>)> | undefined;
+ outboundService?: string | {
+ network: {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ };
+ } | {
+ external: ExternalServer;
+ } | {
+ disk: {
+ writable?: boolean | undefined;
+ path: string;
+ };
+ } | ((args_0: Request<RequestInitCfType>, ...args_1: unknown[]) => Response | Promise<Response>) | undefined;
+ fetchMock?: MockAgent<MockAgent.Options> | undefined;
+ unsafeEphemeralDurableObjects?: boolean | undefined;
+}), ({
+ modulesRoot?: string | undefined;
+ modules: {
+ contents?: string | Uint8Array | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ path: string;
+ }[];
+} | {
+ modules?: boolean | undefined;
+ modulesRoot?: string | undefined;
+ scriptPath?: string | undefined;
+ modulesRules?: {
+ fallthrough?: boolean | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ include: string[];
+ }[] | undefined;
+ script: string;
+} | {
+ modules?: boolean | undefined;
+ modulesRoot?: string | undefined;
+ modulesRules?: {
+ fallthrough?: boolean | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ include: string[];
+ }[] | undefined;
+ scriptPath: string;
+}) & {
+ name?: string | undefined;
+ compatibilityDate?: string | undefined;
+ bindings?: Record<string, Json> | undefined;
+ compatibilityFlags?: string[] | undefined;
+ routes?: string[] | undefined;
+ wasmBindings?: Record<string, string> | undefined;
+ textBlobBindings?: Record<string, string> | undefined;
+ dataBlobBindings?: Record<string, string> | undefined;
+ serviceBindings?: Record<string, string | {
+ network: {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ };
+ } | {
+ external: ExternalServer;
+ } | {
+ disk: {
+ writable?: boolean | undefined;
+ path: string;
+ };
+ } | ((args_0: Request<RequestInitCfType>, ...args_1: unknown[]) => Response | Promise<Response>)> | undefined;
+ outboundService?: string | {
+ network: {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ };
+ } | {
+ external: ExternalServer;
+ } | {
+ disk: {
+ writable?: boolean | undefined;
+ path: string;
+ };
+ } | ((args_0: Request<RequestInitCfType>, ...args_1: unknown[]) => Response | Promise<Response>) | undefined;
+ fetchMock?: MockAgent<MockAgent.Options> | undefined;
+ unsafeEphemeralDurableObjects?: boolean | undefined;
+}>;
+
+export declare const CoreSharedOptionsSchema: z.ZodObject<{
+ host: z.ZodOptional<z.ZodString>;
+ port: z.ZodOptional<z.ZodNumber>;
+ https: z.ZodOptional<z.ZodBoolean>;
+ httpsKey: z.ZodOptional<z.ZodString>;
+ httpsKeyPath: z.ZodOptional<z.ZodString>;
+ httpsCert: z.ZodOptional<z.ZodString>;
+ httpsCertPath: z.ZodOptional<z.ZodString>;
+ inspectorPort: z.ZodOptional<z.ZodNumber>;
+ verbose: z.ZodOptional<z.ZodBoolean>;
+ log: z.ZodOptional<z.ZodType<Log, z.ZodTypeDef, Log>>;
+ upstream: z.ZodOptional<z.ZodString>;
+ cf: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodRecord<z.ZodString, z.ZodAny>]>>;
+ liveReload: z.ZodOptional<z.ZodBoolean>;
+}, "strip", z.ZodTypeAny, {
+ host?: string | undefined;
+ port?: number | undefined;
+ cf?: string | boolean | Record<string, any> | undefined;
+ inspectorPort?: number | undefined;
+ verbose?: boolean | undefined;
+ https?: boolean | undefined;
+ httpsKey?: string | undefined;
+ httpsKeyPath?: string | undefined;
+ httpsCert?: string | undefined;
+ httpsCertPath?: string | undefined;
+ log?: Log | undefined;
+ upstream?: string | undefined;
+ liveReload?: boolean | undefined;
+}, {
+ host?: string | undefined;
+ port?: number | undefined;
+ cf?: string | boolean | Record<string, any> | undefined;
+ inspectorPort?: number | undefined;
+ verbose?: boolean | undefined;
+ https?: boolean | undefined;
+ httpsKey?: string | undefined;
+ httpsKeyPath?: string | undefined;
+ httpsCert?: string | undefined;
+ httpsCertPath?: string | undefined;
+ log?: Log | undefined;
+ upstream?: string | undefined;
+ liveReload?: boolean | undefined;
+}>;
+
+export declare function coupleWebSocket(ws: NodeWebSocket, pair: WebSocket): Promise<void>;
+
+export declare function createFetchMock(): MockAgent<MockAgent.Options>;
+
+export declare function createHTTPReducers(impl: PlatformImpl<unknown>): ReducersRevivers;
+
+export declare function createHTTPRevivers<RS>(impl: PlatformImpl<RS>): ReducersRevivers;
+
+export declare const D1_PLUGIN: Plugin<typeof D1OptionsSchema, typeof D1SharedOptionsSchema>;
+
+export declare const D1_PLUGIN_NAME = "d1";
+
+export declare const D1OptionsSchema: z.ZodObject<{
+ d1Databases: z.ZodOptional<z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodString>, z.ZodArray<z.ZodString, "many">]>>;
+}, "strip", z.ZodTypeAny, {
+ d1Databases?: string[] | Record<string, string> | undefined;
+}, {
+ d1Databases?: string[] | Record<string, string> | undefined;
+}>;
+
+export declare const D1SharedOptionsSchema: z.ZodObject<{
+ d1Persist: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString]>>;
+}, "strip", z.ZodTypeAny, {
+ d1Persist?: string | boolean | undefined;
+}, {
+ d1Persist?: string | boolean | undefined;
+}>;
+
+export declare function decodeSitesKey(key: string): string;
+
+export declare const DEFAULT_PERSIST_ROOT = ".mf";
+
+export declare class DeferredPromise<T> extends Promise<T> {
+ readonly resolve: DeferredPromiseResolve<T>;
+ readonly reject: DeferredPromiseReject;
+ constructor(executor?: (resolve: (value: T | PromiseLike<T>) => void, reject: (reason?: any) => void) => void);
+}
+
+export declare type DeferredPromiseReject = (reason?: any) => void;
+
+export declare type DeferredPromiseResolve<T> = (value: T | PromiseLike<T>) => void;
+
+export declare function deserialiseRegExps(matcher: SerialisableMatcherRegExps): MatcherRegExps;
+
+export declare function deserialiseSiteRegExps(siteRegExps: SerialisableSiteMatcherRegExps): SiteMatcherRegExps;
+
+export declare interface DiskDirectory {
+ path?: string;
+ writable?: boolean;
+}
+
+export declare type DispatchFetch = (input: RequestInfo, init?: RequestInit<Partial<IncomingRequestCfProperties>>) => Promise<Response>;
+
+export declare const DURABLE_OBJECTS_PLUGIN: Plugin<typeof DurableObjectsOptionsSchema, typeof DurableObjectsSharedOptionsSchema>;
+
+export declare const DURABLE_OBJECTS_PLUGIN_NAME = "do";
+
+export declare const DURABLE_OBJECTS_STORAGE_SERVICE_NAME: string;
+
+export declare type DurableObjectClassNames = Map<string, Map</* className */ string, /* unsafeUniqueKey */ /* unsafeUniqueKey */ string | undefined>>;
+
+export declare const DurableObjectsOptionsSchema: z.ZodObject<{
+ durableObjects: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodObject<{
+ className: z.ZodString;
+ scriptName: z.ZodOptional<z.ZodString>;
+ unsafeUniqueKey: z.ZodOptional<z.ZodString>;
+ }, "strip", z.ZodTypeAny, {
+ scriptName?: string | undefined;
+ unsafeUniqueKey?: string | undefined;
+ className: string;
+ }, {
+ scriptName?: string | undefined;
+ unsafeUniqueKey?: string | undefined;
+ className: string;
+ }>]>>>;
+}, "strip", z.ZodTypeAny, {
+ durableObjects?: Record<string, string | {
+ scriptName?: string | undefined;
+ unsafeUniqueKey?: string | undefined;
+ className: string;
+ }> | undefined;
+}, {
+ durableObjects?: Record<string, string | {
+ scriptName?: string | undefined;
+ unsafeUniqueKey?: string | undefined;
+ className: string;
+ }> | undefined;
+}>;
+
+export declare const DurableObjectsSharedOptionsSchema: z.ZodObject<{
+ durableObjectsPersist: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString]>>;
+}, "strip", z.ZodTypeAny, {
+ durableObjectsPersist?: string | boolean | undefined;
+}, {
+ durableObjectsPersist?: string | boolean | undefined;
+}>;
+
+export declare function encodeSitesKey(key: string): string;
+
+export declare class ErrorEvent extends Event {
+ readonly error: Error | null;
+ constructor(type: "error", init?: {
+ error?: Error;
+ });
+}
+
+export declare interface Extension {
+ modules?: Extension_Module[];
+}
+
+export declare interface Extension_Module {
+ name?: string;
+ internal?: boolean;
+ esModule?: string;
+}
+
+export declare type ExternalServer = {
+ address?: string;
+} & ({
+ http: HttpOptions;
+} | {
+ https: ExternalServer_Https;
+});
+
+export declare interface ExternalServer_Https {
+ options?: HttpOptions;
+ tlsOptions?: TlsOptions;
+ certificateHost?: string;
+}
+
+export declare function fetch(input: RequestInfo, init?: RequestInit | Request): Promise<Response>;
+
+export { File }
+
+export declare function _forceColour(enabled?: boolean): void;
+
+/* Excluded from this release type: _formatZodError */
+export { FormData }
+
+export declare function getAccessibleHosts(ipv4Only?: boolean): string[];
+
+export declare function getCacheServiceName(workerIndex: number): string;
+
+export declare function getGlobalServices({ sharedOptions, allWorkerRoutes, fallbackWorkerName, loopbackPort, log, proxyBindings, }: GlobalServicesOptions): Service[];
+
+export declare function getPersistPath(pluginName: string, tmpPath: string, persist: Persistence): string;
+
+export declare interface GlobalServicesOptions {
+ sharedOptions: z.infer<typeof CoreSharedOptionsSchema>;
+ allWorkerRoutes: Map<string, string[]>;
+ fallbackWorkerName: string | undefined;
+ loopbackPort: number;
+ log: Log;
+ proxyBindings: Worker_Binding[];
+}
+
+export declare function globsToRegExps(globs?: string[]): MatcherRegExps;
+
+export declare const HEADER_CF_BLOB = "MF-CF-Blob";
+
+export { Headers }
+
+export { HeadersInit }
+
+export declare interface HttpOptions {
+ style?: HttpOptions_Style;
+ forwardedProtoHeader?: string;
+ cfBlobHeader?: string;
+ injectRequestHeaders?: HttpOptions_Header[];
+ injectResponseHeaders?: HttpOptions_Header[];
+}
+
+export declare interface HttpOptions_Header {
+ name?: string;
+ value?: string;
+}
+
+export declare enum HttpOptions_Style {
+ HOST = 0,
+ PROXY = 1
+}
+
+export declare interface InclusiveRange {
+ start: number;
+ end: number;
+}
+
+/* Excluded from this release type: _initialiseInstanceRegistry */
+
+export declare function isFetcherFetch(targetName: string, key: string): boolean;
+
+export declare function isR2ObjectWriteHttpMetadata(targetName: string, key: string): boolean;
+
+export declare function isSitesRequest(request: {
+ url: string;
+}): boolean;
+
+export declare type Json = Literal | {
+ [key: string]: Json;
+} | Json[];
+
+export declare interface JsonError {
+ message?: string;
+ name?: string;
+ stack?: string;
+ cause?: JsonError;
+}
+
+export declare const JsonSchema: z.ZodType<Json>;
+
+declare const kAccepted: unique symbol;
+
+declare const kCf: unique symbol;
+
+declare const kClose: unique symbol;
+
+declare const kClosedIncoming: unique symbol;
+
+declare const kClosedOutgoing: unique symbol;
+
+declare const kCoupled: unique symbol;
+
+declare const kError: unique symbol;
+
+declare const kPair: unique symbol;
+
+export declare const kProxyNodeBinding: unique symbol;
+
+declare const kSend: unique symbol;
+
+export declare const KV_PLUGIN: Plugin<typeof KVOptionsSchema, typeof KVSharedOptionsSchema>;
+
+export declare const KV_PLUGIN_NAME = "kv";
+
+export declare const KVHeaders: {
+ readonly EXPIRATION: "CF-Expiration";
+ readonly METADATA: "CF-KV-Metadata";
+};
+
+export declare const KVLimits: {
+ readonly MIN_CACHE_TTL: 60;
+ readonly MAX_LIST_KEYS: 1000;
+ readonly MAX_KEY_SIZE: 512;
+ readonly MAX_VALUE_SIZE: number;
+ readonly MAX_VALUE_SIZE_TEST: 1024;
+ readonly MAX_METADATA_SIZE: 1024;
+};
+
+export declare const kVoid: unique symbol;
+
+export declare const KVOptionsSchema: z.ZodObject<{
+ kvNamespaces: z.ZodOptional<z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodString>, z.ZodArray<z.ZodString, "many">]>>;
+ sitePath: z.ZodOptional<z.ZodString>;
+ siteInclude: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
+ siteExclude: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
+}, "strip", z.ZodTypeAny, {
+ kvNamespaces?: string[] | Record<string, string> | undefined;
+ sitePath?: string | undefined;
+ siteInclude?: string[] | undefined;
+ siteExclude?: string[] | undefined;
+}, {
+ kvNamespaces?: string[] | Record<string, string> | undefined;
+ sitePath?: string | undefined;
+ siteInclude?: string[] | undefined;
+ siteExclude?: string[] | undefined;
+}>;
+
+export declare const KVParams: {
+ readonly URL_ENCODED: "urlencoded";
+ readonly CACHE_TTL: "cache_ttl";
+ readonly EXPIRATION: "expiration";
+ readonly EXPIRATION_TTL: "expiration_ttl";
+ readonly LIST_LIMIT: "key_count_limit";
+ readonly LIST_PREFIX: "prefix";
+ readonly LIST_CURSOR: "cursor";
+};
+
+export declare const KVSharedOptionsSchema: z.ZodObject<{
+ kvPersist: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString]>>;
+}, "strip", z.ZodTypeAny, {
+ kvPersist?: string | boolean | undefined;
+}, {
+ kvPersist?: string | boolean | undefined;
+}>;
+
+declare const kWebSocket: unique symbol;
+
+export declare type Literal = z.infer<typeof LiteralSchema>;
+
+export declare const LiteralSchema: z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>;
+
+export declare class Log {
+ #private;
+ readonly level: LogLevel;
+ constructor(level?: LogLevel, opts?: LogOptions);
+ protected log(message: string): void;
+ logWithLevel(level: LogLevel, message: string): void;
+ error(message: Error): void;
+ warn(message: string): void;
+ info(message: string): void;
+ debug(message: string): void;
+ verbose(message: string): void;
+}
+
+export declare enum LogLevel {
+ NONE = 0,
+ ERROR = 1,
+ WARN = 2,
+ INFO = 3,
+ DEBUG = 4,
+ VERBOSE = 5
+}
+
+export declare interface LogOptions {
+ prefix?: string;
+ suffix?: string;
+}
+
+export declare interface MatcherRegExps {
+ include: RegExp[];
+ exclude: RegExp[];
+}
+
+export declare function matchRoutes(routes: WorkerRoute[], url: URL): string | null;
+
+export declare function maybeApply<From, To>(f: (value: From) => To, maybeValue: From | undefined): To | undefined;
+
+export declare function maybeGetSitesManifestModule(bindings: Worker_Binding[]): Worker_Module | undefined;
+
+export declare function maybeParseURL(url: Persistence): URL | undefined;
+
+export declare class MessageEvent extends Event {
+ readonly data: ArrayBuffer | string;
+ constructor(type: "message", init: {
+ data: ArrayBuffer | string;
+ });
+}
+
+export declare function migrateDatabase(log: Log, uniqueKey: string, persistPath: string, namespace: string): Promise<void>;
+
+export declare class Miniflare {
+ #private;
+ constructor(opts: MiniflareOptions);
+ get ready(): Promise<URL>;
+ setOptions(opts: MiniflareOptions): Promise<void>;
+ dispatchFetch: DispatchFetch;
+ /* Excluded from this release type: _getProxyClient */
+ getBindings<Env = Record<string, unknown>>(workerName?: string): Promise<Env>;
+ getCaches(): Promise<ReplaceWorkersTypes<CacheStorage>>;
+ getD1Database(bindingName: string, workerName?: string): Promise<D1Database>;
+ getDurableObjectNamespace(bindingName: string, workerName?: string): Promise<ReplaceWorkersTypes<DurableObjectNamespace>>;
+ getKVNamespace(bindingName: string, workerName?: string): Promise<ReplaceWorkersTypes<KVNamespace>>;
+ getQueueProducer<Body = unknown>(bindingName: string, workerName?: string): Promise<Queue<Body>>;
+ getR2Bucket(bindingName: string, workerName?: string): Promise<ReplaceWorkersTypes<R2Bucket>>;
+ /* Excluded from this release type: _getInternalDurableObjectNamespace */
+ dispose(): Promise<void>;
+}
+
+export declare class MiniflareCoreError extends MiniflareError<MiniflareCoreErrorCode> {
+}
+
+export declare type MiniflareCoreErrorCode = "ERR_RUNTIME_FAILURE" | "ERR_DISPOSED" | "ERR_MODULE_PARSE" | "ERR_MODULE_STRING_SCRIPT" | "ERR_MODULE_DYNAMIC_SPEC" | "ERR_MODULE_RULE" | "ERR_PERSIST_UNSUPPORTED" | "ERR_PERSIST_REMOTE_UNAUTHENTICATED" | "ERR_PERSIST_REMOTE_UNSUPPORTED" | "ERR_FUTURE_COMPATIBILITY_DATE" | "ERR_NO_WORKERS" | "ERR_VALIDATION" | "ERR_DUPLICATE_NAME" | "ERR_DIFFERENT_UNIQUE_KEYS" | "ERR_MULTIPLE_OUTBOUNDS";
+
+export declare class MiniflareError<Code extends string | number = string | number> extends Error {
+ readonly code: Code;
+ readonly cause?: Error | undefined;
+ constructor(code: Code, message?: string, cause?: Error | undefined);
+}
+
+export declare type MiniflareOptions = SharedOptions & (WorkerOptions | {
+ workers: WorkerOptions[];
+});
+
+export declare type ModuleDefinition = z.infer<typeof ModuleDefinitionSchema>;
+
+export declare const ModuleDefinitionSchema: z.ZodObject<{
+ type: z.ZodEnum<["ESModule", "CommonJS", "NodeJsCompatModule", "Text", "Data", "CompiledWasm"]>;
+ path: z.ZodString;
+ contents: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodType<Uint8Array, z.ZodTypeDef, Uint8Array>]>>;
+}, "strip", z.ZodTypeAny, {
+ contents?: string | Uint8Array | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ path: string;
+}, {
+ contents?: string | Uint8Array | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ path: string;
+}>;
+
+export declare type ModuleRule = z.infer<typeof ModuleRuleSchema>;
+
+export declare const ModuleRuleSchema: z.ZodObject<{
+ type: z.ZodEnum<["ESModule", "CommonJS", "NodeJsCompatModule", "Text", "Data", "CompiledWasm"]>;
+ include: z.ZodArray<z.ZodString, "many">;
+ fallthrough: z.ZodOptional<z.ZodBoolean>;
+}, "strip", z.ZodTypeAny, {
+ fallthrough?: boolean | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ include: string[];
+}, {
+ fallthrough?: boolean | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ include: string[];
+}>;
+
+export declare type ModuleRuleType = z.infer<typeof ModuleRuleTypeSchema>;
+
+export declare const ModuleRuleTypeSchema: z.ZodEnum<["ESModule", "CommonJS", "NodeJsCompatModule", "Text", "Data", "CompiledWasm"]>;
+
+export declare class Mutex {
+ private locked;
+ private resolveQueue;
+ private drainQueue;
+ private lock;
+ private unlock;
+ get hasWaiting(): boolean;
+ runWith<T>(closure: () => Awaitable<T>): Promise<T>;
+ drained(): Promise<void>;
+}
+
+export declare function namespaceEntries(namespaces?: Record<string, string> | string[]): [bindingName: string, id: string][];
+
+export declare function namespaceKeys(namespaces?: Record<string, string> | string[]): string[];
+
+export declare interface Network {
+ allow?: string[];
+ deny?: string[];
+ tlsOptions?: TlsOptions;
+}
+
+export declare const NODE_PLATFORM_IMPL: PlatformImpl<ReadableStream_2>;
+
+export declare class NoOpLog extends Log {
+ constructor();
+ protected log(): void;
+ error(message: Error): void;
+}
+
+export declare function normaliseDurableObject(designator: NonNullable<z.infer<typeof DurableObjectsOptionsSchema>["durableObjects"]>[string]): {
+ className: string;
+ serviceName?: string;
+ unsafeUniqueKey?: string;
+};
+
+export declare function objectEntryWorker(durableObjectNamespace: Worker_Binding_DurableObjectNamespaceDesignator, namespace: string): Worker;
+
+export declare type OptionalZodTypeOf<T extends z.ZodTypeAny | undefined> = T extends z.ZodTypeAny ? z.TypeOf<T> : undefined;
+
+export declare type OverloadReplaceWorkersTypes<T> = T extends (...args: any[]) => any ? UnionToIntersection<ReplaceWorkersTypes<OverloadUnion<T>>> : ReplaceWorkersTypes<T>;
+
+export declare type OverloadUnion<T extends (...args: any[]) => any> = Parameters<T> extends [] ? T : OverloadUnion9<T>;
+
+export declare type OverloadUnion2<T> = T extends {
+ (...args: infer P1): infer R1;
+ (...args: infer P2): infer R2;
+} ? ((...args: P1) => R1) | ((...args: P2) => R2) : T;
+
+export declare type OverloadUnion3<T> = T extends {
+ (...args: infer P1): infer R1;
+ (...args: infer P2): infer R2;
+ (...args: infer P3): infer R3;
+} ? ((...args: P1) => R1) | ((...args: P2) => R2) | ((...args: P3) => R3) : OverloadUnion2<T>;
+
+export declare type OverloadUnion4<T> = T extends {
+ (...args: infer P1): infer R1;
+ (...args: infer P2): infer R2;
+ (...args: infer P3): infer R3;
+ (...args: infer P4): infer R4;
+} ? ((...args: P1) => R1) | ((...args: P2) => R2) | ((...args: P3) => R3) | ((...args: P4) => R4) : OverloadUnion3<T>;
+
+export declare type OverloadUnion5<T> = T extends {
+ (...args: infer P1): infer R1;
+ (...args: infer P2): infer R2;
+ (...args: infer P3): infer R3;
+ (...args: infer P4): infer R4;
+ (...args: infer P5): infer R5;
+} ? ((...args: P1) => R1) | ((...args: P2) => R2) | ((...args: P3) => R3) | ((...args: P4) => R4) | ((...args: P5) => R5) : OverloadUnion4<T>;
+
+export declare type OverloadUnion6<T> = T extends {
+ (...args: infer P1): infer R1;
+ (...args: infer P2): infer R2;
+ (...args: infer P3): infer R3;
+ (...args: infer P4): infer R4;
+ (...args: infer P5): infer R5;
+ (...args: infer P6): infer R6;
+} ? ((...args: P1) => R1) | ((...args: P2) => R2) | ((...args: P3) => R3) | ((...args: P4) => R4) | ((...args: P5) => R5) | ((...args: P6) => R6) : OverloadUnion5<T>;
+
+export declare type OverloadUnion7<T> = T extends {
+ (...args: infer P1): infer R1;
+ (...args: infer P2): infer R2;
+ (...args: infer P3): infer R3;
+ (...args: infer P4): infer R4;
+ (...args: infer P5): infer R5;
+ (...args: infer P6): infer R6;
+ (...args: infer P7): infer R7;
+} ? ((...args: P1) => R1) | ((...args: P2) => R2) | ((...args: P3) => R3) | ((...args: P4) => R4) | ((...args: P5) => R5) | ((...args: P6) => R6) | ((...args: P7) => R7) : OverloadUnion6<T>;
+
+export declare type OverloadUnion8<T> = T extends {
+ (...args: infer P1): infer R1;
+ (...args: infer P2): infer R2;
+ (...args: infer P3): infer R3;
+ (...args: infer P4): infer R4;
+ (...args: infer P5): infer R5;
+ (...args: infer P6): infer R6;
+ (...args: infer P7): infer R7;
+ (...args: infer P8): infer R8;
+} ? ((...args: P1) => R1) | ((...args: P2) => R2) | ((...args: P3) => R3) | ((...args: P4) => R4) | ((...args: P5) => R5) | ((...args: P6) => R6) | ((...args: P7) => R7) | ((...args: P8) => R8) : OverloadUnion7<T>;
+
+export declare type OverloadUnion9<T> = T extends {
+ (...args: infer P1): infer R1;
+ (...args: infer P2): infer R2;
+ (...args: infer P3): infer R3;
+ (...args: infer P4): infer R4;
+ (...args: infer P5): infer R5;
+ (...args: infer P6): infer R6;
+ (...args: infer P7): infer R7;
+ (...args: infer P8): infer R8;
+ (...args: infer P9): infer R9;
+} ? ((...args: P1) => R1) | ((...args: P2) => R2) | ((...args: P3) => R3) | ((...args: P4) => R4) | ((...args: P5) => R5) | ((...args: P6) => R6) | ((...args: P7) => R7) | ((...args: P8) => R8) | ((...args: P9) => R9) : OverloadUnion8<T>;
+
+/**
+ * Parses an HTTP `Range` header (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Range),
+ * returning either:
+ * - `undefined` indicating the range is unsatisfiable
+ * - An empty array indicating the entire response should be returned
+ * - A non-empty array of inclusive ranges of the response to return
+ */
+export declare function parseRanges(rangeHeader: string, length: number): InclusiveRange[] | undefined;
+
+export declare function parseRoutes(allRoutes: Map<string, string[]>): WorkerRoute[];
+
+export declare function parseWithReadableStreams<RS>(impl: PlatformImpl<RS>, stringified: StringifiedWithStream<RS>, revivers: ReducersRevivers): unknown;
+
+export declare type Persistence = z.infer<typeof PersistenceSchema>;
+
+export declare const PersistenceSchema: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString]>>;
+
+export declare interface PlatformImpl<RS> {
+ Blob: typeof Blob_2;
+ File: typeof File_2;
+ Headers: typeof Headers_2;
+ Request: typeof Request_3;
+ Response: typeof Response_3;
+ isReadableStream(value: unknown): value is RS;
+ bufferReadableStream(stream: RS): Promise<ArrayBuffer>;
+ unbufferReadableStream(buffer: ArrayBuffer): RS;
+}
+
+export declare type Plugin<Options extends z.ZodType, SharedOptions extends z.ZodType | undefined = undefined> = PluginBase<Options, SharedOptions> & (SharedOptions extends undefined ? {
+ sharedOptions?: undefined;
+} : {
+ sharedOptions: SharedOptions;
+});
+
+export declare const PLUGIN_ENTRIES: ["cache" | "core" | "do" | "d1" | "kv" | "queues" | "r2", ValueOf<{
+ core: Plugin<z.ZodEffects<z.ZodIntersection<z.ZodUnion<[z.ZodObject<{
+ modules: z.ZodArray<z.ZodObject<{
+ type: z.ZodEnum<["ESModule", "CommonJS", "NodeJsCompatModule", "Text", "Data", "CompiledWasm"]>;
+ path: z.ZodString;
+ contents: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodType<Uint8Array, z.ZodTypeDef, Uint8Array>]>>;
+ }, "strip", z.ZodTypeAny, {
+ contents?: string | Uint8Array | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ path: string;
+ }, {
+ contents?: string | Uint8Array | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ path: string;
+ }>, "many">;
+ modulesRoot: z.ZodOptional<z.ZodString>;
+ }, "strip", z.ZodTypeAny, {
+ modulesRoot?: string | undefined;
+ modules: {
+ contents?: string | Uint8Array | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ path: string;
+ }[];
+ }, {
+ modulesRoot?: string | undefined;
+ modules: {
+ contents?: string | Uint8Array | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ path: string;
+ }[];
+ }>, z.ZodObject<{
+ script: z.ZodString;
+ scriptPath: z.ZodOptional<z.ZodString>;
+ modules: z.ZodOptional<z.ZodBoolean>;
+ modulesRules: z.ZodOptional<z.ZodArray<z.ZodObject<{
+ type: z.ZodEnum<["ESModule", "CommonJS", "NodeJsCompatModule", "Text", "Data", "CompiledWasm"]>;
+ include: z.ZodArray<z.ZodString, "many">;
+ fallthrough: z.ZodOptional<z.ZodBoolean>;
+ }, "strip", z.ZodTypeAny, {
+ fallthrough?: boolean | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ include: string[];
+ }, {
+ fallthrough?: boolean | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ include: string[];
+ }>, "many">>;
+ modulesRoot: z.ZodOptional<z.ZodString>;
+ }, "strip", z.ZodTypeAny, {
+ modules?: boolean | undefined;
+ modulesRoot?: string | undefined;
+ scriptPath?: string | undefined;
+ modulesRules?: {
+ fallthrough?: boolean | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ include: string[];
+ }[] | undefined;
+ script: string;
+ }, {
+ modules?: boolean | undefined;
+ modulesRoot?: string | undefined;
+ scriptPath?: string | undefined;
+ modulesRules?: {
+ fallthrough?: boolean | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ include: string[];
+ }[] | undefined;
+ script: string;
+ }>, z.ZodObject<{
+ scriptPath: z.ZodString;
+ modules: z.ZodOptional<z.ZodBoolean>;
+ modulesRules: z.ZodOptional<z.ZodArray<z.ZodObject<{
+ type: z.ZodEnum<["ESModule", "CommonJS", "NodeJsCompatModule", "Text", "Data", "CompiledWasm"]>;
+ include: z.ZodArray<z.ZodString, "many">;
+ fallthrough: z.ZodOptional<z.ZodBoolean>;
+ }, "strip", z.ZodTypeAny, {
+ fallthrough?: boolean | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ include: string[];
+ }, {
+ fallthrough?: boolean | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ include: string[];
+ }>, "many">>;
+ modulesRoot: z.ZodOptional<z.ZodString>;
+ }, "strip", z.ZodTypeAny, {
+ modules?: boolean | undefined;
+ modulesRoot?: string | undefined;
+ modulesRules?: {
+ fallthrough?: boolean | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ include: string[];
+ }[] | undefined;
+ scriptPath: string;
+ }, {
+ modules?: boolean | undefined;
+ modulesRoot?: string | undefined;
+ modulesRules?: {
+ fallthrough?: boolean | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ include: string[];
+ }[] | undefined;
+ scriptPath: string;
+ }>]>, z.ZodObject<{
+ name: z.ZodOptional<z.ZodString>;
+ compatibilityDate: z.ZodOptional<z.ZodString>;
+ compatibilityFlags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
+ routes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
+ bindings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<Json, z.ZodTypeDef, Json>>>;
+ wasmBindings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
+ textBlobBindings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
+ dataBlobBindings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
+ serviceBindings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodObject<{
+ network: z.ZodObject<{
+ allow: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
+ deny: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
+ tlsOptions: z.ZodOptional<z.ZodObject<{
+ keypair: z.ZodOptional<z.ZodObject<{
+ privateKey: z.ZodOptional<z.ZodString>;
+ certificateChain: z.ZodOptional<z.ZodString>;
+ }, "strip", z.ZodTypeAny, {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ }, {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ }>>;
+ requireClientCerts: z.ZodOptional<z.ZodBoolean>;
+ trustBrowserCas: z.ZodOptional<z.ZodBoolean>;
+ trustedCertificates: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
+ minVersion: z.ZodOptional<z.ZodNativeEnum<TlsOptions_Version>>;
+ cipherList: z.ZodOptional<z.ZodString>;
+ }, "strip", z.ZodTypeAny, {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ }, {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ }>>;
+ }, "strip", z.ZodTypeAny, {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ }, {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ }>;
+ }, "strip", z.ZodTypeAny, {
+ network: {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ };
+ }, {
+ network: {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ };
+ }>, z.ZodObject<{
+ external: z.ZodType<ExternalServer, z.ZodTypeDef, ExternalServer>;
+ }, "strip", z.ZodTypeAny, {
+ external: ExternalServer;
+ }, {
+ external: ExternalServer;
+ }>, z.ZodObject<{
+ disk: z.ZodObject<{
+ path: z.ZodString;
+ writable: z.ZodOptional<z.ZodBoolean>;
+ }, "strip", z.ZodTypeAny, {
+ writable?: boolean | undefined;
+ path: string;
+ }, {
+ writable?: boolean | undefined;
+ path: string;
+ }>;
+ }, "strip", z.ZodTypeAny, {
+ disk: {
+ writable?: boolean | undefined;
+ path: string;
+ };
+ }, {
+ disk: {
+ writable?: boolean | undefined;
+ path: string;
+ };
+ }>, z.ZodFunction<z.ZodTuple<[z.ZodType<Request<RequestInitCfType>, z.ZodTypeDef, Request<RequestInitCfType>>], z.ZodUnknown>, z.ZodUnion<[z.ZodType<Response, z.ZodTypeDef, Response>, z.ZodPromise<z.ZodType<Response, z.ZodTypeDef, Response>>]>>]>>>;
+ outboundService: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodObject<{
+ network: z.ZodObject<{
+ allow: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
+ deny: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
+ tlsOptions: z.ZodOptional<z.ZodObject<{
+ keypair: z.ZodOptional<z.ZodObject<{
+ privateKey: z.ZodOptional<z.ZodString>;
+ certificateChain: z.ZodOptional<z.ZodString>;
+ }, "strip", z.ZodTypeAny, {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ }, {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ }>>;
+ requireClientCerts: z.ZodOptional<z.ZodBoolean>;
+ trustBrowserCas: z.ZodOptional<z.ZodBoolean>;
+ trustedCertificates: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
+ minVersion: z.ZodOptional<z.ZodNativeEnum<TlsOptions_Version>>;
+ cipherList: z.ZodOptional<z.ZodString>;
+ }, "strip", z.ZodTypeAny, {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ }, {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ }>>;
+ }, "strip", z.ZodTypeAny, {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ }, {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ }>;
+ }, "strip", z.ZodTypeAny, {
+ network: {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ };
+ }, {
+ network: {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ };
+ }>, z.ZodObject<{
+ external: z.ZodType<ExternalServer, z.ZodTypeDef, ExternalServer>;
+ }, "strip", z.ZodTypeAny, {
+ external: ExternalServer;
+ }, {
+ external: ExternalServer;
+ }>, z.ZodObject<{
+ disk: z.ZodObject<{
+ path: z.ZodString;
+ writable: z.ZodOptional<z.ZodBoolean>;
+ }, "strip", z.ZodTypeAny, {
+ writable?: boolean | undefined;
+ path: string;
+ }, {
+ writable?: boolean | undefined;
+ path: string;
+ }>;
+ }, "strip", z.ZodTypeAny, {
+ disk: {
+ writable?: boolean | undefined;
+ path: string;
+ };
+ }, {
+ disk: {
+ writable?: boolean | undefined;
+ path: string;
+ };
+ }>, z.ZodFunction<z.ZodTuple<[z.ZodType<Request<RequestInitCfType>, z.ZodTypeDef, Request<RequestInitCfType>>], z.ZodUnknown>, z.ZodUnion<[z.ZodType<Response, z.ZodTypeDef, Response>, z.ZodPromise<z.ZodType<Response, z.ZodTypeDef, Response>>]>>]>>;
+ fetchMock: z.ZodOptional<z.ZodType<default_2<default_2.Options>, z.ZodTypeDef, default_2<default_2.Options>>>;
+ unsafeEphemeralDurableObjects: z.ZodOptional<z.ZodBoolean>;
+ }, "strip", z.ZodTypeAny, {
+ name?: string | undefined;
+ compatibilityDate?: string | undefined;
+ bindings?: Record<string, Json> | undefined;
+ compatibilityFlags?: string[] | undefined;
+ routes?: string[] | undefined;
+ wasmBindings?: Record<string, string> | undefined;
+ textBlobBindings?: Record<string, string> | undefined;
+ dataBlobBindings?: Record<string, string> | undefined;
+ serviceBindings?: Record<string, string | {
+ network: {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ };
+ } | {
+ external: ExternalServer;
+ } | {
+ disk: {
+ writable?: boolean | undefined;
+ path: string;
+ };
+ } | ((args_0: Request<RequestInitCfType>, ...args_1: unknown[]) => Response | Promise<Response>)> | undefined;
+ outboundService?: string | {
+ network: {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ };
+ } | {
+ external: ExternalServer;
+ } | {
+ disk: {
+ writable?: boolean | undefined;
+ path: string;
+ };
+ } | ((args_0: Request<RequestInitCfType>, ...args_1: unknown[]) => Response | Promise<Response>) | undefined;
+ fetchMock?: default_2<default_2.Options> | undefined;
+ unsafeEphemeralDurableObjects?: boolean | undefined;
+ }, {
+ name?: string | undefined;
+ compatibilityDate?: string | undefined;
+ bindings?: Record<string, Json> | undefined;
+ compatibilityFlags?: string[] | undefined;
+ routes?: string[] | undefined;
+ wasmBindings?: Record<string, string> | undefined;
+ textBlobBindings?: Record<string, string> | undefined;
+ dataBlobBindings?: Record<string, string> | undefined;
+ serviceBindings?: Record<string, string | {
+ network: {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ };
+ } | {
+ external: ExternalServer;
+ } | {
+ disk: {
+ writable?: boolean | undefined;
+ path: string;
+ };
+ } | ((args_0: Request<RequestInitCfType>, ...args_1: unknown[]) => Response | Promise<Response>)> | undefined;
+ outboundService?: string | {
+ network: {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ };
+ } | {
+ external: ExternalServer;
+ } | {
+ disk: {
+ writable?: boolean | undefined;
+ path: string;
+ };
+ } | ((args_0: Request<RequestInitCfType>, ...args_1: unknown[]) => Response | Promise<Response>) | undefined;
+ fetchMock?: default_2<default_2.Options> | undefined;
+ unsafeEphemeralDurableObjects?: boolean | undefined;
+ }>>, ({
+ modulesRoot?: string | undefined;
+ modules: {
+ contents?: string | Uint8Array | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ path: string;
+ }[];
+ } & {
+ name?: string | undefined;
+ compatibilityDate?: string | undefined;
+ bindings?: Record<string, Json> | undefined;
+ compatibilityFlags?: string[] | undefined;
+ routes?: string[] | undefined;
+ wasmBindings?: Record<string, string> | undefined;
+ textBlobBindings?: Record<string, string> | undefined;
+ dataBlobBindings?: Record<string, string> | undefined;
+ serviceBindings?: Record<string, string | {
+ network: {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ };
+ } | {
+ external: ExternalServer;
+ } | {
+ disk: {
+ writable?: boolean | undefined;
+ path: string;
+ };
+ } | ((args_0: Request<RequestInitCfType>, ...args_1: unknown[]) => Response | Promise<Response>)> | undefined;
+ outboundService?: string | {
+ network: {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ };
+ } | {
+ external: ExternalServer;
+ } | {
+ disk: {
+ writable?: boolean | undefined;
+ path: string;
+ };
+ } | ((args_0: Request<RequestInitCfType>, ...args_1: unknown[]) => Response | Promise<Response>) | undefined;
+ fetchMock?: default_2<default_2.Options> | undefined;
+ unsafeEphemeralDurableObjects?: boolean | undefined;
+ }) | ({
+ modules?: boolean | undefined;
+ modulesRoot?: string | undefined;
+ scriptPath?: string | undefined;
+ modulesRules?: {
+ fallthrough?: boolean | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ include: string[];
+ }[] | undefined;
+ script: string;
+ } & {
+ name?: string | undefined;
+ compatibilityDate?: string | undefined;
+ bindings?: Record<string, Json> | undefined;
+ compatibilityFlags?: string[] | undefined;
+ routes?: string[] | undefined;
+ wasmBindings?: Record<string, string> | undefined;
+ textBlobBindings?: Record<string, string> | undefined;
+ dataBlobBindings?: Record<string, string> | undefined;
+ serviceBindings?: Record<string, string | {
+ network: {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ };
+ } | {
+ external: ExternalServer;
+ } | {
+ disk: {
+ writable?: boolean | undefined;
+ path: string;
+ };
+ } | ((args_0: Request<RequestInitCfType>, ...args_1: unknown[]) => Response | Promise<Response>)> | undefined;
+ outboundService?: string | {
+ network: {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ };
+ } | {
+ external: ExternalServer;
+ } | {
+ disk: {
+ writable?: boolean | undefined;
+ path: string;
+ };
+ } | ((args_0: Request<RequestInitCfType>, ...args_1: unknown[]) => Response | Promise<Response>) | undefined;
+ fetchMock?: default_2<default_2.Options> | undefined;
+ unsafeEphemeralDurableObjects?: boolean | undefined;
+ }) | ({
+ modules?: boolean | undefined;
+ modulesRoot?: string | undefined;
+ modulesRules?: {
+ fallthrough?: boolean | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ include: string[];
+ }[] | undefined;
+ scriptPath: string;
+ } & {
+ name?: string | undefined;
+ compatibilityDate?: string | undefined;
+ bindings?: Record<string, Json> | undefined;
+ compatibilityFlags?: string[] | undefined;
+ routes?: string[] | undefined;
+ wasmBindings?: Record<string, string> | undefined;
+ textBlobBindings?: Record<string, string> | undefined;
+ dataBlobBindings?: Record<string, string> | undefined;
+ serviceBindings?: Record<string, string | {
+ network: {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ };
+ } | {
+ external: ExternalServer;
+ } | {
+ disk: {
+ writable?: boolean | undefined;
+ path: string;
+ };
+ } | ((args_0: Request<RequestInitCfType>, ...args_1: unknown[]) => Response | Promise<Response>)> | undefined;
+ outboundService?: string | {
+ network: {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ };
+ } | {
+ external: ExternalServer;
+ } | {
+ disk: {
+ writable?: boolean | undefined;
+ path: string;
+ };
+ } | ((args_0: Request<RequestInitCfType>, ...args_1: unknown[]) => Response | Promise<Response>) | undefined;
+ fetchMock?: default_2<default_2.Options> | undefined;
+ unsafeEphemeralDurableObjects?: boolean | undefined;
+ }), ({
+ modulesRoot?: string | undefined;
+ modules: {
+ contents?: string | Uint8Array | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ path: string;
+ }[];
+ } | {
+ modules?: boolean | undefined;
+ modulesRoot?: string | undefined;
+ scriptPath?: string | undefined;
+ modulesRules?: {
+ fallthrough?: boolean | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ include: string[];
+ }[] | undefined;
+ script: string;
+ } | {
+ modules?: boolean | undefined;
+ modulesRoot?: string | undefined;
+ modulesRules?: {
+ fallthrough?: boolean | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ include: string[];
+ }[] | undefined;
+ scriptPath: string;
+ }) & {
+ name?: string | undefined;
+ compatibilityDate?: string | undefined;
+ bindings?: Record<string, Json> | undefined;
+ compatibilityFlags?: string[] | undefined;
+ routes?: string[] | undefined;
+ wasmBindings?: Record<string, string> | undefined;
+ textBlobBindings?: Record<string, string> | undefined;
+ dataBlobBindings?: Record<string, string> | undefined;
+ serviceBindings?: Record<string, string | {
+ network: {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ };
+ } | {
+ external: ExternalServer;
+ } | {
+ disk: {
+ writable?: boolean | undefined;
+ path: string;
+ };
+ } | ((args_0: Request<RequestInitCfType>, ...args_1: unknown[]) => Response | Promise<Response>)> | undefined;
+ outboundService?: string | {
+ network: {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ };
+ } | {
+ external: ExternalServer;
+ } | {
+ disk: {
+ writable?: boolean | undefined;
+ path: string;
+ };
+ } | ((args_0: Request<RequestInitCfType>, ...args_1: unknown[]) => Response | Promise<Response>) | undefined;
+ fetchMock?: default_2<default_2.Options> | undefined;
+ unsafeEphemeralDurableObjects?: boolean | undefined;
+ }>, z.ZodObject<{
+ host: z.ZodOptional<z.ZodString>;
+ port: z.ZodOptional<z.ZodNumber>;
+ https: z.ZodOptional<z.ZodBoolean>;
+ httpsKey: z.ZodOptional<z.ZodString>;
+ httpsKeyPath: z.ZodOptional<z.ZodString>;
+ httpsCert: z.ZodOptional<z.ZodString>;
+ httpsCertPath: z.ZodOptional<z.ZodString>;
+ inspectorPort: z.ZodOptional<z.ZodNumber>;
+ verbose: z.ZodOptional<z.ZodBoolean>;
+ log: z.ZodOptional<z.ZodType<Log, z.ZodTypeDef, Log>>;
+ upstream: z.ZodOptional<z.ZodString>;
+ cf: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodRecord<z.ZodString, z.ZodAny>]>>;
+ liveReload: z.ZodOptional<z.ZodBoolean>;
+ }, "strip", z.ZodTypeAny, {
+ host?: string | undefined;
+ port?: number | undefined;
+ cf?: string | boolean | Record<string, any> | undefined;
+ inspectorPort?: number | undefined;
+ verbose?: boolean | undefined;
+ https?: boolean | undefined;
+ httpsKey?: string | undefined;
+ httpsKeyPath?: string | undefined;
+ httpsCert?: string | undefined;
+ httpsCertPath?: string | undefined;
+ log?: Log | undefined;
+ upstream?: string | undefined;
+ liveReload?: boolean | undefined;
+ }, {
+ host?: string | undefined;
+ port?: number | undefined;
+ cf?: string | boolean | Record<string, any> | undefined;
+ inspectorPort?: number | undefined;
+ verbose?: boolean | undefined;
+ https?: boolean | undefined;
+ httpsKey?: string | undefined;
+ httpsKeyPath?: string | undefined;
+ httpsCert?: string | undefined;
+ httpsCertPath?: string | undefined;
+ log?: Log | undefined;
+ upstream?: string | undefined;
+ liveReload?: boolean | undefined;
+ }>>;
+ cache: Plugin<z.ZodObject<{
+ cache: z.ZodOptional<z.ZodBoolean>;
+ cacheWarnUsage: z.ZodOptional<z.ZodBoolean>;
+ }, "strip", z.ZodTypeAny, {
+ cache?: boolean | undefined;
+ cacheWarnUsage?: boolean | undefined;
+ }, {
+ cache?: boolean | undefined;
+ cacheWarnUsage?: boolean | undefined;
+ }>, z.ZodObject<{
+ cachePersist: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString]>>;
+ }, "strip", z.ZodTypeAny, {
+ cachePersist?: string | boolean | undefined;
+ }, {
+ cachePersist?: string | boolean | undefined;
+ }>>;
+ d1: Plugin<z.ZodObject<{
+ d1Databases: z.ZodOptional<z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodString>, z.ZodArray<z.ZodString, "many">]>>;
+ }, "strip", z.ZodTypeAny, {
+ d1Databases?: string[] | Record<string, string> | undefined;
+ }, {
+ d1Databases?: string[] | Record<string, string> | undefined;
+ }>, z.ZodObject<{
+ d1Persist: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString]>>;
+ }, "strip", z.ZodTypeAny, {
+ d1Persist?: string | boolean | undefined;
+ }, {
+ d1Persist?: string | boolean | undefined;
+ }>>;
+ do: Plugin<z.ZodObject<{
+ durableObjects: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodObject<{
+ className: z.ZodString;
+ scriptName: z.ZodOptional<z.ZodString>;
+ unsafeUniqueKey: z.ZodOptional<z.ZodString>;
+ }, "strip", z.ZodTypeAny, {
+ scriptName?: string | undefined;
+ unsafeUniqueKey?: string | undefined;
+ className: string;
+ }, {
+ scriptName?: string | undefined;
+ unsafeUniqueKey?: string | undefined;
+ className: string;
+ }>]>>>;
+ }, "strip", z.ZodTypeAny, {
+ durableObjects?: Record<string, string | {
+ scriptName?: string | undefined;
+ unsafeUniqueKey?: string | undefined;
+ className: string;
+ }> | undefined;
+ }, {
+ durableObjects?: Record<string, string | {
+ scriptName?: string | undefined;
+ unsafeUniqueKey?: string | undefined;
+ className: string;
+ }> | undefined;
+ }>, z.ZodObject<{
+ durableObjectsPersist: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString]>>;
+ }, "strip", z.ZodTypeAny, {
+ durableObjectsPersist?: string | boolean | undefined;
+ }, {
+ durableObjectsPersist?: string | boolean | undefined;
+ }>>;
+ kv: Plugin<z.ZodObject<{
+ kvNamespaces: z.ZodOptional<z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodString>, z.ZodArray<z.ZodString, "many">]>>;
+ sitePath: z.ZodOptional<z.ZodString>;
+ siteInclude: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
+ siteExclude: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
+ }, "strip", z.ZodTypeAny, {
+ kvNamespaces?: string[] | Record<string, string> | undefined;
+ sitePath?: string | undefined;
+ siteInclude?: string[] | undefined;
+ siteExclude?: string[] | undefined;
+ }, {
+ kvNamespaces?: string[] | Record<string, string> | undefined;
+ sitePath?: string | undefined;
+ siteInclude?: string[] | undefined;
+ siteExclude?: string[] | undefined;
+ }>, z.ZodObject<{
+ kvPersist: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString]>>;
+ }, "strip", z.ZodTypeAny, {
+ kvPersist?: string | boolean | undefined;
+ }, {
+ kvPersist?: string | boolean | undefined;
+ }>>;
+ queues: Plugin<z.ZodObject<{
+ queueProducers: z.ZodOptional<z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodString>, z.ZodArray<z.ZodString, "many">]>>;
+ queueConsumers: z.ZodOptional<z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodObject<{
+ maxBatchSize: z.ZodOptional<z.ZodNumber>;
+ maxBatchTimeout: z.ZodOptional<z.ZodNumber>;
+ maxRetires: z.ZodOptional<z.ZodNumber>;
+ deadLetterQueue: z.ZodOptional<z.ZodString>;
+ }, "strip", z.ZodTypeAny, {
+ maxBatchSize?: number | undefined;
+ maxBatchTimeout?: number | undefined;
+ maxRetires?: number | undefined;
+ deadLetterQueue?: string | undefined;
+ }, {
+ maxBatchSize?: number | undefined;
+ maxBatchTimeout?: number | undefined;
+ maxRetires?: number | undefined;
+ deadLetterQueue?: string | undefined;
+ }>>, z.ZodArray<z.ZodString, "many">]>>;
+ }, "strip", z.ZodTypeAny, {
+ queueProducers?: string[] | Record<string, string> | undefined;
+ queueConsumers?: string[] | Record<string, {
+ maxBatchSize?: number | undefined;
+ maxBatchTimeout?: number | undefined;
+ maxRetires?: number | undefined;
+ deadLetterQueue?: string | undefined;
+ }> | undefined;
+ }, {
+ queueProducers?: string[] | Record<string, string> | undefined;
+ queueConsumers?: string[] | Record<string, {
+ maxBatchSize?: number | undefined;
+ maxBatchTimeout?: number | undefined;
+ maxRetires?: number | undefined;
+ deadLetterQueue?: string | undefined;
+ }> | undefined;
+ }>>;
+ r2: Plugin<z.ZodObject<{
+ r2Buckets: z.ZodOptional<z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodString>, z.ZodArray<z.ZodString, "many">]>>;
+ }, "strip", z.ZodTypeAny, {
+ r2Buckets?: string[] | Record<string, string> | undefined;
+ }, {
+ r2Buckets?: string[] | Record<string, string> | undefined;
+ }>, z.ZodObject<{
+ r2Persist: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString]>>;
+ }, "strip", z.ZodTypeAny, {
+ r2Persist?: string | boolean | undefined;
+ }, {
+ r2Persist?: string | boolean | undefined;
+ }>>;
+}>][];
+
+export declare interface PluginBase<Options extends z.ZodType, SharedOptions extends z.ZodType | undefined> {
+ options: Options;
+ getBindings(options: z.infer<Options>, workerIndex: number): Awaitable<Worker_Binding[] | void>;
+ getNodeBindings(options: z.infer<Options>): Awaitable<Record<string, unknown>>;
+ getServices(options: PluginServicesOptions<Options, SharedOptions>): Awaitable<Service[] | void>;
+}
+
+export declare const PLUGINS: {
+ core: Plugin<z.ZodEffects<z.ZodIntersection<z.ZodUnion<[z.ZodObject<{
+ modules: z.ZodArray<z.ZodObject<{
+ type: z.ZodEnum<["ESModule", "CommonJS", "NodeJsCompatModule", "Text", "Data", "CompiledWasm"]>;
+ path: z.ZodString;
+ contents: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodType<Uint8Array, z.ZodTypeDef, Uint8Array>]>>;
+ }, "strip", z.ZodTypeAny, {
+ contents?: string | Uint8Array | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ path: string;
+ }, {
+ contents?: string | Uint8Array | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ path: string;
+ }>, "many">;
+ modulesRoot: z.ZodOptional<z.ZodString>;
+ }, "strip", z.ZodTypeAny, {
+ modulesRoot?: string | undefined;
+ modules: {
+ contents?: string | Uint8Array | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ path: string;
+ }[];
+ }, {
+ modulesRoot?: string | undefined;
+ modules: {
+ contents?: string | Uint8Array | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ path: string;
+ }[];
+ }>, z.ZodObject<{
+ script: z.ZodString;
+ scriptPath: z.ZodOptional<z.ZodString>;
+ modules: z.ZodOptional<z.ZodBoolean>;
+ modulesRules: z.ZodOptional<z.ZodArray<z.ZodObject<{
+ type: z.ZodEnum<["ESModule", "CommonJS", "NodeJsCompatModule", "Text", "Data", "CompiledWasm"]>;
+ include: z.ZodArray<z.ZodString, "many">;
+ fallthrough: z.ZodOptional<z.ZodBoolean>;
+ }, "strip", z.ZodTypeAny, {
+ fallthrough?: boolean | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ include: string[];
+ }, {
+ fallthrough?: boolean | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ include: string[];
+ }>, "many">>;
+ modulesRoot: z.ZodOptional<z.ZodString>;
+ }, "strip", z.ZodTypeAny, {
+ modules?: boolean | undefined;
+ modulesRoot?: string | undefined;
+ scriptPath?: string | undefined;
+ modulesRules?: {
+ fallthrough?: boolean | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ include: string[];
+ }[] | undefined;
+ script: string;
+ }, {
+ modules?: boolean | undefined;
+ modulesRoot?: string | undefined;
+ scriptPath?: string | undefined;
+ modulesRules?: {
+ fallthrough?: boolean | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ include: string[];
+ }[] | undefined;
+ script: string;
+ }>, z.ZodObject<{
+ scriptPath: z.ZodString;
+ modules: z.ZodOptional<z.ZodBoolean>;
+ modulesRules: z.ZodOptional<z.ZodArray<z.ZodObject<{
+ type: z.ZodEnum<["ESModule", "CommonJS", "NodeJsCompatModule", "Text", "Data", "CompiledWasm"]>;
+ include: z.ZodArray<z.ZodString, "many">;
+ fallthrough: z.ZodOptional<z.ZodBoolean>;
+ }, "strip", z.ZodTypeAny, {
+ fallthrough?: boolean | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ include: string[];
+ }, {
+ fallthrough?: boolean | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ include: string[];
+ }>, "many">>;
+ modulesRoot: z.ZodOptional<z.ZodString>;
+ }, "strip", z.ZodTypeAny, {
+ modules?: boolean | undefined;
+ modulesRoot?: string | undefined;
+ modulesRules?: {
+ fallthrough?: boolean | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ include: string[];
+ }[] | undefined;
+ scriptPath: string;
+ }, {
+ modules?: boolean | undefined;
+ modulesRoot?: string | undefined;
+ modulesRules?: {
+ fallthrough?: boolean | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ include: string[];
+ }[] | undefined;
+ scriptPath: string;
+ }>]>, z.ZodObject<{
+ name: z.ZodOptional<z.ZodString>;
+ compatibilityDate: z.ZodOptional<z.ZodString>;
+ compatibilityFlags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
+ routes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
+ bindings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<Json, z.ZodTypeDef, Json>>>;
+ wasmBindings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
+ textBlobBindings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
+ dataBlobBindings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
+ serviceBindings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodObject<{
+ network: z.ZodObject<{
+ allow: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
+ deny: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
+ tlsOptions: z.ZodOptional<z.ZodObject<{
+ keypair: z.ZodOptional<z.ZodObject<{
+ privateKey: z.ZodOptional<z.ZodString>;
+ certificateChain: z.ZodOptional<z.ZodString>;
+ }, "strip", z.ZodTypeAny, {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ }, {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ }>>;
+ requireClientCerts: z.ZodOptional<z.ZodBoolean>;
+ trustBrowserCas: z.ZodOptional<z.ZodBoolean>;
+ trustedCertificates: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
+ minVersion: z.ZodOptional<z.ZodNativeEnum<TlsOptions_Version>>;
+ cipherList: z.ZodOptional<z.ZodString>;
+ }, "strip", z.ZodTypeAny, {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ }, {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ }>>;
+ }, "strip", z.ZodTypeAny, {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ }, {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ }>;
+ }, "strip", z.ZodTypeAny, {
+ network: {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ };
+ }, {
+ network: {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ };
+ }>, z.ZodObject<{
+ external: z.ZodType<ExternalServer, z.ZodTypeDef, ExternalServer>;
+ }, "strip", z.ZodTypeAny, {
+ external: ExternalServer;
+ }, {
+ external: ExternalServer;
+ }>, z.ZodObject<{
+ disk: z.ZodObject<{
+ path: z.ZodString;
+ writable: z.ZodOptional<z.ZodBoolean>;
+ }, "strip", z.ZodTypeAny, {
+ writable?: boolean | undefined;
+ path: string;
+ }, {
+ writable?: boolean | undefined;
+ path: string;
+ }>;
+ }, "strip", z.ZodTypeAny, {
+ disk: {
+ writable?: boolean | undefined;
+ path: string;
+ };
+ }, {
+ disk: {
+ writable?: boolean | undefined;
+ path: string;
+ };
+ }>, z.ZodFunction<z.ZodTuple<[z.ZodType<Request<RequestInitCfType>, z.ZodTypeDef, Request<RequestInitCfType>>], z.ZodUnknown>, z.ZodUnion<[z.ZodType<Response, z.ZodTypeDef, Response>, z.ZodPromise<z.ZodType<Response, z.ZodTypeDef, Response>>]>>]>>>;
+ outboundService: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodObject<{
+ network: z.ZodObject<{
+ allow: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
+ deny: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
+ tlsOptions: z.ZodOptional<z.ZodObject<{
+ keypair: z.ZodOptional<z.ZodObject<{
+ privateKey: z.ZodOptional<z.ZodString>;
+ certificateChain: z.ZodOptional<z.ZodString>;
+ }, "strip", z.ZodTypeAny, {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ }, {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ }>>;
+ requireClientCerts: z.ZodOptional<z.ZodBoolean>;
+ trustBrowserCas: z.ZodOptional<z.ZodBoolean>;
+ trustedCertificates: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
+ minVersion: z.ZodOptional<z.ZodNativeEnum<TlsOptions_Version>>;
+ cipherList: z.ZodOptional<z.ZodString>;
+ }, "strip", z.ZodTypeAny, {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ }, {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ }>>;
+ }, "strip", z.ZodTypeAny, {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ }, {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ }>;
+ }, "strip", z.ZodTypeAny, {
+ network: {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ };
+ }, {
+ network: {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ };
+ }>, z.ZodObject<{
+ external: z.ZodType<ExternalServer, z.ZodTypeDef, ExternalServer>;
+ }, "strip", z.ZodTypeAny, {
+ external: ExternalServer;
+ }, {
+ external: ExternalServer;
+ }>, z.ZodObject<{
+ disk: z.ZodObject<{
+ path: z.ZodString;
+ writable: z.ZodOptional<z.ZodBoolean>;
+ }, "strip", z.ZodTypeAny, {
+ writable?: boolean | undefined;
+ path: string;
+ }, {
+ writable?: boolean | undefined;
+ path: string;
+ }>;
+ }, "strip", z.ZodTypeAny, {
+ disk: {
+ writable?: boolean | undefined;
+ path: string;
+ };
+ }, {
+ disk: {
+ writable?: boolean | undefined;
+ path: string;
+ };
+ }>, z.ZodFunction<z.ZodTuple<[z.ZodType<Request<RequestInitCfType>, z.ZodTypeDef, Request<RequestInitCfType>>], z.ZodUnknown>, z.ZodUnion<[z.ZodType<Response, z.ZodTypeDef, Response>, z.ZodPromise<z.ZodType<Response, z.ZodTypeDef, Response>>]>>]>>;
+ fetchMock: z.ZodOptional<z.ZodType<default_2<default_2.Options>, z.ZodTypeDef, default_2<default_2.Options>>>;
+ unsafeEphemeralDurableObjects: z.ZodOptional<z.ZodBoolean>;
+ }, "strip", z.ZodTypeAny, {
+ name?: string | undefined;
+ compatibilityDate?: string | undefined;
+ bindings?: Record<string, Json> | undefined;
+ compatibilityFlags?: string[] | undefined;
+ routes?: string[] | undefined;
+ wasmBindings?: Record<string, string> | undefined;
+ textBlobBindings?: Record<string, string> | undefined;
+ dataBlobBindings?: Record<string, string> | undefined;
+ serviceBindings?: Record<string, string | {
+ network: {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ };
+ } | {
+ external: ExternalServer;
+ } | {
+ disk: {
+ writable?: boolean | undefined;
+ path: string;
+ };
+ } | ((args_0: Request<RequestInitCfType>, ...args_1: unknown[]) => Response | Promise<Response>)> | undefined;
+ outboundService?: string | {
+ network: {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ };
+ } | {
+ external: ExternalServer;
+ } | {
+ disk: {
+ writable?: boolean | undefined;
+ path: string;
+ };
+ } | ((args_0: Request<RequestInitCfType>, ...args_1: unknown[]) => Response | Promise<Response>) | undefined;
+ fetchMock?: default_2<default_2.Options> | undefined;
+ unsafeEphemeralDurableObjects?: boolean | undefined;
+ }, {
+ name?: string | undefined;
+ compatibilityDate?: string | undefined;
+ bindings?: Record<string, Json> | undefined;
+ compatibilityFlags?: string[] | undefined;
+ routes?: string[] | undefined;
+ wasmBindings?: Record<string, string> | undefined;
+ textBlobBindings?: Record<string, string> | undefined;
+ dataBlobBindings?: Record<string, string> | undefined;
+ serviceBindings?: Record<string, string | {
+ network: {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ };
+ } | {
+ external: ExternalServer;
+ } | {
+ disk: {
+ writable?: boolean | undefined;
+ path: string;
+ };
+ } | ((args_0: Request<RequestInitCfType>, ...args_1: unknown[]) => Response | Promise<Response>)> | undefined;
+ outboundService?: string | {
+ network: {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ };
+ } | {
+ external: ExternalServer;
+ } | {
+ disk: {
+ writable?: boolean | undefined;
+ path: string;
+ };
+ } | ((args_0: Request<RequestInitCfType>, ...args_1: unknown[]) => Response | Promise<Response>) | undefined;
+ fetchMock?: default_2<default_2.Options> | undefined;
+ unsafeEphemeralDurableObjects?: boolean | undefined;
+ }>>, ({
+ modulesRoot?: string | undefined;
+ modules: {
+ contents?: string | Uint8Array | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ path: string;
+ }[];
+ } & {
+ name?: string | undefined;
+ compatibilityDate?: string | undefined;
+ bindings?: Record<string, Json> | undefined;
+ compatibilityFlags?: string[] | undefined;
+ routes?: string[] | undefined;
+ wasmBindings?: Record<string, string> | undefined;
+ textBlobBindings?: Record<string, string> | undefined;
+ dataBlobBindings?: Record<string, string> | undefined;
+ serviceBindings?: Record<string, string | {
+ network: {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ };
+ } | {
+ external: ExternalServer;
+ } | {
+ disk: {
+ writable?: boolean | undefined;
+ path: string;
+ };
+ } | ((args_0: Request<RequestInitCfType>, ...args_1: unknown[]) => Response | Promise<Response>)> | undefined;
+ outboundService?: string | {
+ network: {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ };
+ } | {
+ external: ExternalServer;
+ } | {
+ disk: {
+ writable?: boolean | undefined;
+ path: string;
+ };
+ } | ((args_0: Request<RequestInitCfType>, ...args_1: unknown[]) => Response | Promise<Response>) | undefined;
+ fetchMock?: default_2<default_2.Options> | undefined;
+ unsafeEphemeralDurableObjects?: boolean | undefined;
+ }) | ({
+ modules?: boolean | undefined;
+ modulesRoot?: string | undefined;
+ scriptPath?: string | undefined;
+ modulesRules?: {
+ fallthrough?: boolean | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ include: string[];
+ }[] | undefined;
+ script: string;
+ } & {
+ name?: string | undefined;
+ compatibilityDate?: string | undefined;
+ bindings?: Record<string, Json> | undefined;
+ compatibilityFlags?: string[] | undefined;
+ routes?: string[] | undefined;
+ wasmBindings?: Record<string, string> | undefined;
+ textBlobBindings?: Record<string, string> | undefined;
+ dataBlobBindings?: Record<string, string> | undefined;
+ serviceBindings?: Record<string, string | {
+ network: {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ };
+ } | {
+ external: ExternalServer;
+ } | {
+ disk: {
+ writable?: boolean | undefined;
+ path: string;
+ };
+ } | ((args_0: Request<RequestInitCfType>, ...args_1: unknown[]) => Response | Promise<Response>)> | undefined;
+ outboundService?: string | {
+ network: {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ };
+ } | {
+ external: ExternalServer;
+ } | {
+ disk: {
+ writable?: boolean | undefined;
+ path: string;
+ };
+ } | ((args_0: Request<RequestInitCfType>, ...args_1: unknown[]) => Response | Promise<Response>) | undefined;
+ fetchMock?: default_2<default_2.Options> | undefined;
+ unsafeEphemeralDurableObjects?: boolean | undefined;
+ }) | ({
+ modules?: boolean | undefined;
+ modulesRoot?: string | undefined;
+ modulesRules?: {
+ fallthrough?: boolean | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ include: string[];
+ }[] | undefined;
+ scriptPath: string;
+ } & {
+ name?: string | undefined;
+ compatibilityDate?: string | undefined;
+ bindings?: Record<string, Json> | undefined;
+ compatibilityFlags?: string[] | undefined;
+ routes?: string[] | undefined;
+ wasmBindings?: Record<string, string> | undefined;
+ textBlobBindings?: Record<string, string> | undefined;
+ dataBlobBindings?: Record<string, string> | undefined;
+ serviceBindings?: Record<string, string | {
+ network: {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ };
+ } | {
+ external: ExternalServer;
+ } | {
+ disk: {
+ writable?: boolean | undefined;
+ path: string;
+ };
+ } | ((args_0: Request<RequestInitCfType>, ...args_1: unknown[]) => Response | Promise<Response>)> | undefined;
+ outboundService?: string | {
+ network: {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ };
+ } | {
+ external: ExternalServer;
+ } | {
+ disk: {
+ writable?: boolean | undefined;
+ path: string;
+ };
+ } | ((args_0: Request<RequestInitCfType>, ...args_1: unknown[]) => Response | Promise<Response>) | undefined;
+ fetchMock?: default_2<default_2.Options> | undefined;
+ unsafeEphemeralDurableObjects?: boolean | undefined;
+ }), ({
+ modulesRoot?: string | undefined;
+ modules: {
+ contents?: string | Uint8Array | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ path: string;
+ }[];
+ } | {
+ modules?: boolean | undefined;
+ modulesRoot?: string | undefined;
+ scriptPath?: string | undefined;
+ modulesRules?: {
+ fallthrough?: boolean | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ include: string[];
+ }[] | undefined;
+ script: string;
+ } | {
+ modules?: boolean | undefined;
+ modulesRoot?: string | undefined;
+ modulesRules?: {
+ fallthrough?: boolean | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ include: string[];
+ }[] | undefined;
+ scriptPath: string;
+ }) & {
+ name?: string | undefined;
+ compatibilityDate?: string | undefined;
+ bindings?: Record<string, Json> | undefined;
+ compatibilityFlags?: string[] | undefined;
+ routes?: string[] | undefined;
+ wasmBindings?: Record<string, string> | undefined;
+ textBlobBindings?: Record<string, string> | undefined;
+ dataBlobBindings?: Record<string, string> | undefined;
+ serviceBindings?: Record<string, string | {
+ network: {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ };
+ } | {
+ external: ExternalServer;
+ } | {
+ disk: {
+ writable?: boolean | undefined;
+ path: string;
+ };
+ } | ((args_0: Request<RequestInitCfType>, ...args_1: unknown[]) => Response | Promise<Response>)> | undefined;
+ outboundService?: string | {
+ network: {
+ allow?: string[] | undefined;
+ deny?: string[] | undefined;
+ tlsOptions?: {
+ minVersion?: TlsOptions_Version | undefined;
+ keypair?: {
+ privateKey?: string | undefined;
+ certificateChain?: string | undefined;
+ } | undefined;
+ requireClientCerts?: boolean | undefined;
+ trustBrowserCas?: boolean | undefined;
+ trustedCertificates?: string[] | undefined;
+ cipherList?: string | undefined;
+ } | undefined;
+ };
+ } | {
+ external: ExternalServer;
+ } | {
+ disk: {
+ writable?: boolean | undefined;
+ path: string;
+ };
+ } | ((args_0: Request<RequestInitCfType>, ...args_1: unknown[]) => Response | Promise<Response>) | undefined;
+ fetchMock?: default_2<default_2.Options> | undefined;
+ unsafeEphemeralDurableObjects?: boolean | undefined;
+ }>, z.ZodObject<{
+ host: z.ZodOptional<z.ZodString>;
+ port: z.ZodOptional<z.ZodNumber>;
+ https: z.ZodOptional<z.ZodBoolean>;
+ httpsKey: z.ZodOptional<z.ZodString>;
+ httpsKeyPath: z.ZodOptional<z.ZodString>;
+ httpsCert: z.ZodOptional<z.ZodString>;
+ httpsCertPath: z.ZodOptional<z.ZodString>;
+ inspectorPort: z.ZodOptional<z.ZodNumber>;
+ verbose: z.ZodOptional<z.ZodBoolean>;
+ log: z.ZodOptional<z.ZodType<Log, z.ZodTypeDef, Log>>;
+ upstream: z.ZodOptional<z.ZodString>;
+ cf: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodRecord<z.ZodString, z.ZodAny>]>>;
+ liveReload: z.ZodOptional<z.ZodBoolean>;
+ }, "strip", z.ZodTypeAny, {
+ host?: string | undefined;
+ port?: number | undefined;
+ cf?: string | boolean | Record<string, any> | undefined;
+ inspectorPort?: number | undefined;
+ verbose?: boolean | undefined;
+ https?: boolean | undefined;
+ httpsKey?: string | undefined;
+ httpsKeyPath?: string | undefined;
+ httpsCert?: string | undefined;
+ httpsCertPath?: string | undefined;
+ log?: Log | undefined;
+ upstream?: string | undefined;
+ liveReload?: boolean | undefined;
+ }, {
+ host?: string | undefined;
+ port?: number | undefined;
+ cf?: string | boolean | Record<string, any> | undefined;
+ inspectorPort?: number | undefined;
+ verbose?: boolean | undefined;
+ https?: boolean | undefined;
+ httpsKey?: string | undefined;
+ httpsKeyPath?: string | undefined;
+ httpsCert?: string | undefined;
+ httpsCertPath?: string | undefined;
+ log?: Log | undefined;
+ upstream?: string | undefined;
+ liveReload?: boolean | undefined;
+ }>>;
+ cache: Plugin<z.ZodObject<{
+ cache: z.ZodOptional<z.ZodBoolean>;
+ cacheWarnUsage: z.ZodOptional<z.ZodBoolean>;
+ }, "strip", z.ZodTypeAny, {
+ cache?: boolean | undefined;
+ cacheWarnUsage?: boolean | undefined;
+ }, {
+ cache?: boolean | undefined;
+ cacheWarnUsage?: boolean | undefined;
+ }>, z.ZodObject<{
+ cachePersist: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString]>>;
+ }, "strip", z.ZodTypeAny, {
+ cachePersist?: string | boolean | undefined;
+ }, {
+ cachePersist?: string | boolean | undefined;
+ }>>;
+ d1: Plugin<z.ZodObject<{
+ d1Databases: z.ZodOptional<z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodString>, z.ZodArray<z.ZodString, "many">]>>;
+ }, "strip", z.ZodTypeAny, {
+ d1Databases?: string[] | Record<string, string> | undefined;
+ }, {
+ d1Databases?: string[] | Record<string, string> | undefined;
+ }>, z.ZodObject<{
+ d1Persist: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString]>>;
+ }, "strip", z.ZodTypeAny, {
+ d1Persist?: string | boolean | undefined;
+ }, {
+ d1Persist?: string | boolean | undefined;
+ }>>;
+ do: Plugin<z.ZodObject<{
+ durableObjects: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodObject<{
+ className: z.ZodString;
+ scriptName: z.ZodOptional<z.ZodString>;
+ unsafeUniqueKey: z.ZodOptional<z.ZodString>;
+ }, "strip", z.ZodTypeAny, {
+ scriptName?: string | undefined;
+ unsafeUniqueKey?: string | undefined;
+ className: string;
+ }, {
+ scriptName?: string | undefined;
+ unsafeUniqueKey?: string | undefined;
+ className: string;
+ }>]>>>;
+ }, "strip", z.ZodTypeAny, {
+ durableObjects?: Record<string, string | {
+ scriptName?: string | undefined;
+ unsafeUniqueKey?: string | undefined;
+ className: string;
+ }> | undefined;
+ }, {
+ durableObjects?: Record<string, string | {
+ scriptName?: string | undefined;
+ unsafeUniqueKey?: string | undefined;
+ className: string;
+ }> | undefined;
+ }>, z.ZodObject<{
+ durableObjectsPersist: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString]>>;
+ }, "strip", z.ZodTypeAny, {
+ durableObjectsPersist?: string | boolean | undefined;
+ }, {
+ durableObjectsPersist?: string | boolean | undefined;
+ }>>;
+ kv: Plugin<z.ZodObject<{
+ kvNamespaces: z.ZodOptional<z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodString>, z.ZodArray<z.ZodString, "many">]>>;
+ sitePath: z.ZodOptional<z.ZodString>;
+ siteInclude: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
+ siteExclude: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
+ }, "strip", z.ZodTypeAny, {
+ kvNamespaces?: string[] | Record<string, string> | undefined;
+ sitePath?: string | undefined;
+ siteInclude?: string[] | undefined;
+ siteExclude?: string[] | undefined;
+ }, {
+ kvNamespaces?: string[] | Record<string, string> | undefined;
+ sitePath?: string | undefined;
+ siteInclude?: string[] | undefined;
+ siteExclude?: string[] | undefined;
+ }>, z.ZodObject<{
+ kvPersist: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString]>>;
+ }, "strip", z.ZodTypeAny, {
+ kvPersist?: string | boolean | undefined;
+ }, {
+ kvPersist?: string | boolean | undefined;
+ }>>;
+ queues: Plugin<z.ZodObject<{
+ queueProducers: z.ZodOptional<z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodString>, z.ZodArray<z.ZodString, "many">]>>;
+ queueConsumers: z.ZodOptional<z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodObject<{
+ maxBatchSize: z.ZodOptional<z.ZodNumber>;
+ maxBatchTimeout: z.ZodOptional<z.ZodNumber>;
+ maxRetires: z.ZodOptional<z.ZodNumber>;
+ deadLetterQueue: z.ZodOptional<z.ZodString>;
+ }, "strip", z.ZodTypeAny, {
+ maxBatchSize?: number | undefined;
+ maxBatchTimeout?: number | undefined;
+ maxRetires?: number | undefined;
+ deadLetterQueue?: string | undefined;
+ }, {
+ maxBatchSize?: number | undefined;
+ maxBatchTimeout?: number | undefined;
+ maxRetires?: number | undefined;
+ deadLetterQueue?: string | undefined;
+ }>>, z.ZodArray<z.ZodString, "many">]>>;
+ }, "strip", z.ZodTypeAny, {
+ queueProducers?: string[] | Record<string, string> | undefined;
+ queueConsumers?: string[] | Record<string, {
+ maxBatchSize?: number | undefined;
+ maxBatchTimeout?: number | undefined;
+ maxRetires?: number | undefined;
+ deadLetterQueue?: string | undefined;
+ }> | undefined;
+ }, {
+ queueProducers?: string[] | Record<string, string> | undefined;
+ queueConsumers?: string[] | Record<string, {
+ maxBatchSize?: number | undefined;
+ maxBatchTimeout?: number | undefined;
+ maxRetires?: number | undefined;
+ deadLetterQueue?: string | undefined;
+ }> | undefined;
+ }>>;
+ r2: Plugin<z.ZodObject<{
+ r2Buckets: z.ZodOptional<z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodString>, z.ZodArray<z.ZodString, "many">]>>;
+ }, "strip", z.ZodTypeAny, {
+ r2Buckets?: string[] | Record<string, string> | undefined;
+ }, {
+ r2Buckets?: string[] | Record<string, string> | undefined;
+ }>, z.ZodObject<{
+ r2Persist: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString]>>;
+ }, "strip", z.ZodTypeAny, {
+ r2Persist?: string | boolean | undefined;
+ }, {
+ r2Persist?: string | boolean | undefined;
+ }>>;
+};
+
+export declare type Plugins = typeof PLUGINS;
+
+export declare interface PluginServicesOptions<Options extends z.ZodType, SharedOptions extends z.ZodType | undefined> {
+ log: Log;
+ options: z.infer<Options>;
+ sharedOptions: OptionalZodTypeOf<SharedOptions>;
+ workerBindings: Worker_Binding[];
+ workerIndex: number;
+ additionalModules: Worker_Module[];
+ tmpPath: string;
+ workerNames: string[];
+ durableObjectClassNames: DurableObjectClassNames;
+ queueConsumers: QueueConsumers;
+}
+
+export declare function prefixError(prefix: string, e: any): Error;
+
+export declare function prefixStream(prefix: Uint8Array, stream: ReadableStream_2<Uint8Array>): ReadableStream_2<Uint8Array>;
+
+export declare const ProxyAddresses: {
+ readonly GLOBAL: 0;
+ readonly ENV: 1;
+ readonly USER_START: 2;
+};
+
+export declare class ProxyClient {
+ #private;
+ constructor(runtimeEntryURL: URL, dispatchFetch: DispatchFetch);
+ get global(): ServiceWorkerGlobalScope;
+ get env(): Record<string, unknown>;
+ poisonProxies(runtimeEntryURL?: URL): void;
+ dispose(): Promise<void>;
+}
+
+export declare const ProxyOps: {
+ readonly GET: "GET";
+ readonly CALL: "CALL";
+ readonly FREE: "FREE";
+};
+
+export declare const QueueBindings: {
+ readonly SERVICE_WORKER_PREFIX: "MINIFLARE_WORKER_";
+ readonly MAYBE_JSON_QUEUE_CONSUMERS: "MINIFLARE_QUEUE_CONSUMERS";
+};
+
+export declare type QueueConsumer = z.infer<typeof QueueConsumerSchema>;
+
+export declare const QueueConsumerOptionsSchema: z.ZodObject<{
+ maxBatchSize: z.ZodOptional<z.ZodNumber>;
+ maxBatchTimeout: z.ZodOptional<z.ZodNumber>;
+ maxRetires: z.ZodOptional<z.ZodNumber>;
+ deadLetterQueue: z.ZodOptional<z.ZodString>;
+}, "strip", z.ZodTypeAny, {
+ maxBatchSize?: number | undefined;
+ maxBatchTimeout?: number | undefined;
+ maxRetires?: number | undefined;
+ deadLetterQueue?: string | undefined;
+}, {
+ maxBatchSize?: number | undefined;
+ maxBatchTimeout?: number | undefined;
+ maxRetires?: number | undefined;
+ deadLetterQueue?: string | undefined;
+}>;
+
+export declare type QueueConsumers = Map<string, z.infer<typeof QueueConsumerSchema>>;
+
+export declare const QueueConsumerSchema: z.ZodIntersection<z.ZodObject<{
+ maxBatchSize: z.ZodOptional<z.ZodNumber>;
+ maxBatchTimeout: z.ZodOptional<z.ZodNumber>;
+ maxRetires: z.ZodOptional<z.ZodNumber>;
+ deadLetterQueue: z.ZodOptional<z.ZodString>;
+}, "strip", z.ZodTypeAny, {
+ maxBatchSize?: number | undefined;
+ maxBatchTimeout?: number | undefined;
+ maxRetires?: number | undefined;
+ deadLetterQueue?: string | undefined;
+}, {
+ maxBatchSize?: number | undefined;
+ maxBatchTimeout?: number | undefined;
+ maxRetires?: number | undefined;
+ deadLetterQueue?: string | undefined;
+}>, z.ZodObject<{
+ workerName: z.ZodString;
+}, "strip", z.ZodTypeAny, {
+ workerName: string;
+}, {
+ workerName: string;
+}>>;
+
+export declare const QueueConsumersSchema: z.ZodRecord<z.ZodString, z.ZodIntersection<z.ZodObject<{
+ maxBatchSize: z.ZodOptional<z.ZodNumber>;
+ maxBatchTimeout: z.ZodOptional<z.ZodNumber>;
+ maxRetires: z.ZodOptional<z.ZodNumber>;
+ deadLetterQueue: z.ZodOptional<z.ZodString>;
+}, "strip", z.ZodTypeAny, {
+ maxBatchSize?: number | undefined;
+ maxBatchTimeout?: number | undefined;
+ maxRetires?: number | undefined;
+ deadLetterQueue?: string | undefined;
+}, {
+ maxBatchSize?: number | undefined;
+ maxBatchTimeout?: number | undefined;
+ maxRetires?: number | undefined;
+ deadLetterQueue?: string | undefined;
+}>, z.ZodObject<{
+ workerName: z.ZodString;
+}, "strip", z.ZodTypeAny, {
+ workerName: string;
+}, {
+ workerName: string;
+}>>>;
+
+export declare type QueueContentType = z.infer<typeof QueueContentTypeSchema>;
+
+export declare const QueueContentTypeSchema: z.ZodDefault<z.ZodEnum<["text", "json", "bytes", "v8"]>>;
+
+export declare type QueueIncomingMessage = z.infer<typeof QueueIncomingMessageSchema>;
+
+export declare const QueueIncomingMessageSchema: z.ZodObject<{
+ contentType: z.ZodDefault<z.ZodEnum<["text", "json", "bytes", "v8"]>>;
+ body: z.ZodEffects<z.ZodString, Buffer, string>;
+ id: z.ZodOptional<z.ZodString>;
+ timestamp: z.ZodOptional<z.ZodNumber>;
+}, "strip", z.ZodTypeAny, {
+ id?: string | undefined;
+ timestamp?: number | undefined;
+ body: Buffer;
+ contentType: "text" | "json" | "bytes" | "v8";
+}, {
+ contentType?: "text" | "json" | "bytes" | "v8" | undefined;
+ id?: string | undefined;
+ timestamp?: number | undefined;
+ body: string;
+}>;
+
+export declare type QueueOutgoingMessage = z.input<typeof QueueIncomingMessageSchema>;
+
+export declare const QUEUES_PLUGIN: Plugin<typeof QueuesOptionsSchema>;
+
+export declare const QUEUES_PLUGIN_NAME = "queues";
+
+export declare const QueuesBatchRequestSchema: z.ZodObject<{
+ messages: z.ZodArray<z.ZodObject<{
+ contentType: z.ZodDefault<z.ZodEnum<["text", "json", "bytes", "v8"]>>;
+ body: z.ZodEffects<z.ZodString, Buffer, string>;
+ id: z.ZodOptional<z.ZodString>;
+ timestamp: z.ZodOptional<z.ZodNumber>;
+ }, "strip", z.ZodTypeAny, {
+ id?: string | undefined;
+ timestamp?: number | undefined;
+ body: Buffer;
+ contentType: "text" | "json" | "bytes" | "v8";
+ }, {
+ contentType?: "text" | "json" | "bytes" | "v8" | undefined;
+ id?: string | undefined;
+ timestamp?: number | undefined;
+ body: string;
+ }>, "many">;
+}, "strip", z.ZodTypeAny, {
+ messages: {
+ id?: string | undefined;
+ timestamp?: number | undefined;
+ body: Buffer;
+ contentType: "text" | "json" | "bytes" | "v8";
+ }[];
+}, {
+ messages: {
+ contentType?: "text" | "json" | "bytes" | "v8" | undefined;
+ id?: string | undefined;
+ timestamp?: number | undefined;
+ body: string;
+ }[];
+}>;
+
+export declare class QueuesError extends MiniflareError<QueuesErrorCode> {
+}
+
+export declare type QueuesErrorCode = "ERR_MULTIPLE_CONSUMERS" | "ERR_DEAD_LETTER_QUEUE_CYCLE";
+
+export declare const QueuesOptionsSchema: z.ZodObject<{
+ queueProducers: z.ZodOptional<z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodString>, z.ZodArray<z.ZodString, "many">]>>;
+ queueConsumers: z.ZodOptional<z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodObject<{
+ maxBatchSize: z.ZodOptional<z.ZodNumber>;
+ maxBatchTimeout: z.ZodOptional<z.ZodNumber>;
+ maxRetires: z.ZodOptional<z.ZodNumber>;
+ deadLetterQueue: z.ZodOptional<z.ZodString>;
+ }, "strip", z.ZodTypeAny, {
+ maxBatchSize?: number | undefined;
+ maxBatchTimeout?: number | undefined;
+ maxRetires?: number | undefined;
+ deadLetterQueue?: string | undefined;
+ }, {
+ maxBatchSize?: number | undefined;
+ maxBatchTimeout?: number | undefined;
+ maxRetires?: number | undefined;
+ deadLetterQueue?: string | undefined;
+ }>>, z.ZodArray<z.ZodString, "many">]>>;
+}, "strip", z.ZodTypeAny, {
+ queueProducers?: string[] | Record<string, string> | undefined;
+ queueConsumers?: string[] | Record<string, {
+ maxBatchSize?: number | undefined;
+ maxBatchTimeout?: number | undefined;
+ maxRetires?: number | undefined;
+ deadLetterQueue?: string | undefined;
+ }> | undefined;
+}, {
+ queueProducers?: string[] | Record<string, string> | undefined;
+ queueConsumers?: string[] | Record<string, {
+ maxBatchSize?: number | undefined;
+ maxBatchTimeout?: number | undefined;
+ maxRetires?: number | undefined;
+ deadLetterQueue?: string | undefined;
+ }> | undefined;
+}>;
+
+export declare type QueuesOutgoingBatchRequest = z.input<typeof QueuesBatchRequestSchema>;
+
+export declare const R2_PLUGIN: Plugin<typeof R2OptionsSchema, typeof R2SharedOptionsSchema>;
+
+export declare const R2_PLUGIN_NAME = "r2";
+
+export declare const R2OptionsSchema: z.ZodObject<{
+ r2Buckets: z.ZodOptional<z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodString>, z.ZodArray<z.ZodString, "many">]>>;
+}, "strip", z.ZodTypeAny, {
+ r2Buckets?: string[] | Record<string, string> | undefined;
+}, {
+ r2Buckets?: string[] | Record<string, string> | undefined;
+}>;
+
+export declare const R2SharedOptionsSchema: z.ZodObject<{
+ r2Persist: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString]>>;
+}, "strip", z.ZodTypeAny, {
+ r2Persist?: string | boolean | undefined;
+}, {
+ r2Persist?: string | boolean | undefined;
+}>;
+
+export declare function readPrefix(stream: ReadableStream_2<Uint8Array>, prefixLength: number): Promise<[prefix: Buffer, rest: ReadableStream_2<Uint8Array>]>;
+
+export declare function reduceError(e: any): JsonError;
+
+export declare type ReducerReviver = (value: unknown) => unknown;
+
+export declare type ReducersRevivers = Record<string, ReducerReviver>;
+
+export { ReferrerPolicy }
+
+export declare function registerAllowUnauthorizedDispatcher(dispatcher: Dispatcher): void;
+
+export declare type ReplaceWorkersTypes<T> = T extends Request_3 ? Request : T extends Response_3 ? Response : T extends ReadableStream ? ReadableStream_2 : Required<T> extends Required<RequestInit_3> ? RequestInit : T extends Headers_2 ? Headers : T extends Blob_2 ? Blob_3 : T extends AbortSignal_2 ? AbortSignal : T extends Promise<infer P> ? Promise<ReplaceWorkersTypes<P>> : T extends (...args: infer P) => infer R ? (...args: ReplaceWorkersTypes<P>) => ReplaceWorkersTypes<R> : T extends object ? {
+ [K in keyof T]: OverloadReplaceWorkersTypes<T[K]>;
+} : T;
+
+export declare class Request<CfType extends RequestInitCfType = RequestInitCfType> extends Request_2 {
+ [kCf]?: CfType;
+ constructor(input: RequestInfo, init?: RequestInit<CfType>);
+ get cf(): CfType | undefined;
+ /** @ts-expect-error `clone` is actually defined as a method internally */
+ clone(): Request<CfType>;
+}
+
+export { RequestCache }
+
+export { RequestCredentials }
+
+export { RequestDestination }
+
+export { RequestDuplex }
+
+export declare type RequestInfo = RequestInfo_2 | Request;
+
+export declare interface RequestInit<CfType extends RequestInitCfType = RequestInitCfType> extends RequestInit_2 {
+ cf?: CfType;
+}
+
+export declare type RequestInitCfType = Partial<IncomingRequestCfProperties> | RequestInitCfProperties;
+
+export { RequestMode }
+
+export { RequestRedirect }
+
+export declare class Response extends Response_2 {
+ readonly [kWebSocket]: WebSocket | null;
+ static error(): Response;
+ static redirect(url: string | URL, status: ResponseRedirectStatus): Response;
+ static json(data: any, init?: ResponseInit): Response;
+ constructor(body?: BodyInit, init?: ResponseInit);
+ /** @ts-expect-error `status` is actually defined as a getter internally */
+ get status(): number;
+ get webSocket(): WebSocket | null;
+ /** @ts-expect-error `clone` is actually defined as a method internally */
+ clone(): Response;
+}
+
+export declare interface ResponseInit extends ResponseInit_2 {
+ webSocket?: WebSocket | null;
+}
+
+export { ResponseRedirectStatus }
+
+export { ResponseType }
+
+export declare class RouterError extends MiniflareError<RouterErrorCode> {
+}
+
+export declare type RouterErrorCode = "ERR_QUERY_STRING" | "ERR_INFIX_WILDCARD";
+
+export declare class Runtime {
+ #private;
+ private opts;
+ constructor(opts: RuntimeOptions);
+ updateConfig(configBuffer: Buffer, options?: Abortable & Partial<Pick<RuntimeOptions, "entryPort">>): Promise<number | undefined>;
+ dispose(): Awaitable<void>;
+}
+
+export declare interface RuntimeOptions {
+ entryHost: string;
+ entryPort: number;
+ loopbackPort: number;
+ inspectorPort?: number;
+ verbose?: boolean;
+}
+
+export declare function sanitisePath(unsafe: string): string;
+
+export declare interface SerialisableMatcherRegExps {
+ include: string[];
+ exclude: string[];
+}
+
+export declare interface SerialisableSiteMatcherRegExps {
+ include?: SerialisableMatcherRegExps;
+ exclude?: SerialisableMatcherRegExps;
+}
+
+export declare function serialiseRegExps(matcher: MatcherRegExps): SerialisableMatcherRegExps;
+
+export declare function serialiseSiteRegExps(siteRegExps: SiteMatcherRegExps): SerialisableSiteMatcherRegExps;
+
+export declare function serializeConfig(config: Config): Buffer;
+
+export declare type Service = {
+ name?: string;
+} & ({
+ worker?: Worker;
+} | {
+ network?: Network;
+} | {
+ external?: ExternalServer;
+} | {
+ disk?: DiskDirectory;
+});
+
+export declare const SERVICE_ENTRY: string;
+
+export declare const SERVICE_LOOPBACK = "loopback";
+
+export declare interface ServiceDesignator {
+ name?: string;
+ entrypoint?: string;
+}
+
+export declare const SharedBindings: {
+ readonly TEXT_NAMESPACE: "MINIFLARE_NAMESPACE";
+ readonly DURABLE_OBJECT_NAMESPACE_OBJECT: "MINIFLARE_OBJECT";
+ readonly MAYBE_SERVICE_BLOBS: "MINIFLARE_BLOBS";
+ readonly MAYBE_SERVICE_LOOPBACK: "MINIFLARE_LOOPBACK";
+};
+
+export declare const SharedHeaders: {
+ readonly LOG_LEVEL: "MF-Log-Level";
+};
+
+export declare type SharedOptions = z.infer<typeof CORE_PLUGIN.sharedOptions> & z.infer<typeof CACHE_PLUGIN.sharedOptions> & z.infer<typeof D1_PLUGIN.sharedOptions> & z.infer<typeof DURABLE_OBJECTS_PLUGIN.sharedOptions> & z.infer<typeof KV_PLUGIN.sharedOptions> & z.infer<typeof R2_PLUGIN.sharedOptions>;
+
+export declare const SiteBindings: {
+ readonly KV_NAMESPACE_SITE: "__STATIC_CONTENT";
+ readonly JSON_SITE_MANIFEST: "__STATIC_CONTENT_MANIFEST";
+ readonly JSON_SITE_FILTER: "MINIFLARE_SITE_FILTER";
+};
+
+export declare interface SiteMatcherRegExps {
+ include?: MatcherRegExps;
+ exclude?: MatcherRegExps;
+}
+
+export declare const SITES_NO_CACHE_PREFIX = "$__MINIFLARE_SITES__$/";
+
+export declare type Socket = {
+ name?: string;
+ address?: string;
+ service?: ServiceDesignator;
+} & ({
+ http?: HttpOptions;
+} | {
+ https?: Socket_Https;
+});
+
+export declare const SOCKET_ENTRY = "entry";
+
+export declare interface Socket_Https {
+ options?: HttpOptions;
+ tlsOptions?: TlsOptions;
+}
+
+export declare type SourceOptions = z.infer<typeof SourceOptionsSchema>;
+
+export declare const SourceOptionsSchema: z.ZodUnion<[z.ZodObject<{
+ modules: z.ZodArray<z.ZodObject<{
+ type: z.ZodEnum<["ESModule", "CommonJS", "NodeJsCompatModule", "Text", "Data", "CompiledWasm"]>;
+ path: z.ZodString;
+ contents: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodType<Uint8Array, z.ZodTypeDef, Uint8Array>]>>;
+ }, "strip", z.ZodTypeAny, {
+ contents?: string | Uint8Array | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ path: string;
+ }, {
+ contents?: string | Uint8Array | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ path: string;
+ }>, "many">;
+ modulesRoot: z.ZodOptional<z.ZodString>;
+}, "strip", z.ZodTypeAny, {
+ modulesRoot?: string | undefined;
+ modules: {
+ contents?: string | Uint8Array | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ path: string;
+ }[];
+}, {
+ modulesRoot?: string | undefined;
+ modules: {
+ contents?: string | Uint8Array | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ path: string;
+ }[];
+}>, z.ZodObject<{
+ script: z.ZodString;
+ scriptPath: z.ZodOptional<z.ZodString>;
+ modules: z.ZodOptional<z.ZodBoolean>;
+ modulesRules: z.ZodOptional<z.ZodArray<z.ZodObject<{
+ type: z.ZodEnum<["ESModule", "CommonJS", "NodeJsCompatModule", "Text", "Data", "CompiledWasm"]>;
+ include: z.ZodArray<z.ZodString, "many">;
+ fallthrough: z.ZodOptional<z.ZodBoolean>;
+ }, "strip", z.ZodTypeAny, {
+ fallthrough?: boolean | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ include: string[];
+ }, {
+ fallthrough?: boolean | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ include: string[];
+ }>, "many">>;
+ modulesRoot: z.ZodOptional<z.ZodString>;
+}, "strip", z.ZodTypeAny, {
+ modules?: boolean | undefined;
+ modulesRoot?: string | undefined;
+ scriptPath?: string | undefined;
+ modulesRules?: {
+ fallthrough?: boolean | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ include: string[];
+ }[] | undefined;
+ script: string;
+}, {
+ modules?: boolean | undefined;
+ modulesRoot?: string | undefined;
+ scriptPath?: string | undefined;
+ modulesRules?: {
+ fallthrough?: boolean | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ include: string[];
+ }[] | undefined;
+ script: string;
+}>, z.ZodObject<{
+ scriptPath: z.ZodString;
+ modules: z.ZodOptional<z.ZodBoolean>;
+ modulesRules: z.ZodOptional<z.ZodArray<z.ZodObject<{
+ type: z.ZodEnum<["ESModule", "CommonJS", "NodeJsCompatModule", "Text", "Data", "CompiledWasm"]>;
+ include: z.ZodArray<z.ZodString, "many">;
+ fallthrough: z.ZodOptional<z.ZodBoolean>;
+ }, "strip", z.ZodTypeAny, {
+ fallthrough?: boolean | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ include: string[];
+ }, {
+ fallthrough?: boolean | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ include: string[];
+ }>, "many">>;
+ modulesRoot: z.ZodOptional<z.ZodString>;
+}, "strip", z.ZodTypeAny, {
+ modules?: boolean | undefined;
+ modulesRoot?: string | undefined;
+ modulesRules?: {
+ fallthrough?: boolean | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ include: string[];
+ }[] | undefined;
+ scriptPath: string;
+}, {
+ modules?: boolean | undefined;
+ modulesRoot?: string | undefined;
+ modulesRules?: {
+ fallthrough?: boolean | undefined;
+ type: "ESModule" | "CommonJS" | "NodeJsCompatModule" | "Text" | "Data" | "CompiledWasm";
+ include: string[];
+ }[] | undefined;
+ scriptPath: string;
+}>]>;
+
+export declare interface StringifiedWithStream<RS> {
+ value: string;
+ unbufferedStream?: RS;
+}
+
+export declare function stringifyWithStreams<RS>(impl: PlatformImpl<RS>, value: unknown, reducers: ReducersRevivers, allowUnbufferedStream: boolean): StringifiedWithStream<RS> | Promise<StringifiedWithStream<RS>>;
+
+export declare function stripAnsi(value: string): string;
+
+export declare const structuredSerializableReducers: ReducersRevivers;
+
+export declare const structuredSerializableRevivers: ReducersRevivers;
+
+export { supportedCompatibilityDate }
+
+export declare function testRegExps(matcher: MatcherRegExps, value: string): boolean;
+
+export declare function testSiteRegExps(regExps: SiteMatcherRegExps, key: string): boolean;
+
+export declare interface TlsOptions {
+ keypair?: TlsOptions_Keypair;
+ requireClientCerts?: boolean;
+ trustBrowserCas?: boolean;
+ trustedCertificates?: string[];
+ minVersion?: TlsOptions_Version;
+ cipherList?: string;
+}
+
+export declare interface TlsOptions_Keypair {
+ privateKey?: string;
+ certificateChain?: string;
+}
+
+export declare enum TlsOptions_Version {
+ GOOD_DEFAULT = 0,
+ SSL3 = 1,
+ TLS1DOT0 = 2,
+ TLS1DOT1 = 3,
+ TLS1DOT2 = 4,
+ TLS1DOT3 = 5
+}
+
+export declare function _transformsForContentEncoding(encoding?: string): Transform[];
+
+export declare type TypedEventListener<E extends Event> = ((e: E) => void) | {
+ handleEvent(e: E): void;
+};
+
+export declare class TypedEventTarget<EventMap extends Record<string, Event>> extends EventTarget {
+ addEventListener<Type extends keyof EventMap>(type: Type, listener: TypedEventListener<EventMap[Type]> | null, options?: AddEventListenerOptions | boolean): void;
+ removeEventListener<Type extends keyof EventMap>(type: Type, listener: TypedEventListener<EventMap[Type]> | null, options?: EventListenerOptions | boolean): void;
+ dispatchEvent(event: ValueOf<EventMap>): boolean;
+}
+
+export declare type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
+
+export declare type ValueOf<T> = T[keyof T];
+
+export declare function viewToBuffer(view: ArrayBufferView): ArrayBuffer;
+
+export declare type Void = typeof kVoid;
+
+export declare class WaitGroup {
+ private counter;
+ private resolveQueue;
+ add(): void;
+ done(): void;
+ wait(): Promise<void>;
+}
+
+export declare class WebSocket extends TypedEventTarget<WebSocketEventMap> {
+ #private;
+ static readonly READY_STATE_CONNECTING = 0;
+ static readonly READY_STATE_OPEN = 1;
+ static readonly READY_STATE_CLOSING = 2;
+ static readonly READY_STATE_CLOSED = 3;
+ [kPair]?: WebSocket;
+ [kAccepted]: boolean;
+ [kCoupled]: boolean;
+ [kClosedOutgoing]: boolean;
+ [kClosedIncoming]: boolean;
+ get readyState(): number;
+ accept(): void;
+ send(message: ArrayBuffer | string): void;
+ [kSend](message: ArrayBuffer | string): void;
+ close(code?: number, reason?: string): void;
+ [kClose](code?: number, reason?: string): void;
+ [kError](error?: Error): void;
+}
+
+export declare type WebSocketEventMap = {
+ message: MessageEvent;
+ close: CloseEvent;
+ error: ErrorEvent;
+};
+
+export declare type WebSocketPair = {
+ 0: WebSocket;
+ 1: WebSocket;
+};
+
+export declare const WebSocketPair: new () => WebSocketPair;
+
+export declare type Worker = ({
+ modules?: Worker_Module[];
+} | {
+ serviceWorkerScript?: string;
+} | {
+ inherit?: string;
+}) & {
+ compatibilityDate?: string;
+ compatibilityFlags?: string[];
+ bindings?: Worker_Binding[];
+ globalOutbound?: ServiceDesignator;
+ cacheApiOutbound?: ServiceDesignator;
+ durableObjectNamespaces?: Worker_DurableObjectNamespace[];
+ durableObjectUniqueKeyModifier?: string;
+ durableObjectStorage?: Worker_DurableObjectStorage;
+};
+
+export declare type Worker_Binding = {
+ name?: string;
+} & ({
+ parameter?: Worker_Binding_Parameter;
+} | {
+ text?: string;
+} | {
+ data?: Uint8Array;
+} | {
+ json?: string;
+} | {
+ wasmModule?: Uint8Array;
+} | {
+ cryptoKey?: Worker_Binding_CryptoKey;
+} | {
+ service?: ServiceDesignator;
+} | {
+ durableObjectNamespace?: Worker_Binding_DurableObjectNamespaceDesignator;
+} | {
+ kvNamespace?: ServiceDesignator;
+} | {
+ r2Bucket?: ServiceDesignator;
+} | {
+ r2Admin?: ServiceDesignator;
+} | {
+ wrapped?: Worker_Binding_WrappedBinding;
+} | {
+ queue?: ServiceDesignator;
+} | {
+ fromEnvironment?: string;
+} | {
+ analyticsEngine?: ServiceDesignator;
+});
+
+export declare type Worker_Binding_CryptoKey = ({
+ raw?: Uint8Array;
+} | {
+ hex?: string;
+} | {
+ base64?: string;
+} | {
+ pkcs8?: string;
+} | {
+ spki?: string;
+} | {
+ jwk?: string;
+}) & {
+ algorithm?: Worker_Binding_CryptoKey_Algorithm;
+ extractable?: boolean;
+ usages?: Worker_Binding_CryptoKey_Usage[];
+};
+
+export declare type Worker_Binding_CryptoKey_Algorithm = {
+ name?: string;
+} | {
+ json?: string;
+};
+
+export declare enum Worker_Binding_CryptoKey_Usage {
+ ENCRYPT = 0,
+ DECRYPT = 1,
+ SIGN = 2,
+ VERIFY = 3,
+ DERIVE_KEY = 4,
+ DERIVE_BITS = 5,
+ WRAP_KEY = 6,
+ UNWRAP_KEY = 7
+}
+
+export declare type Worker_Binding_DurableObjectNamespaceDesignator = {
+ className?: string;
+ serviceName?: string;
+};
+
+export declare interface Worker_Binding_Parameter {
+ type?: Worker_Binding_Type;
+ optional?: boolean;
+}
+
+export declare const WORKER_BINDING_SERVICE_LOOPBACK: Worker_Binding;
+
+export declare type Worker_Binding_Type = {
+ text?: Void;
+} | {
+ data?: Void;
+} | {
+ json?: Void;
+} | {
+ wasm?: Void;
+} | {
+ cryptoKey?: Worker_Binding_CryptoKey_Usage[];
+} | {
+ service?: Void;
+} | {
+ durableObjectNamespace: Void;
+} | {
+ kvNamespace?: Void;
+} | {
+ r2Bucket?: Void;
+} | {
+ r2Admin?: Void;
+} | {
+ queue?: Void;
+} | {
+ analyticsEngine?: Void;
+};
+
+export declare interface Worker_Binding_WrappedBinding {
+ moduleName?: string;
+ entrypoint?: string;
+ innerBindings?: Worker_Binding[];
+}
+
+export declare type Worker_DurableObjectNamespace = {
+ className?: string;
+} & ({
+ uniqueKey?: string;
+} | {
+ ephemeralLocal?: Void;
+});
+
+export declare type Worker_DurableObjectStorage = {
+ none?: Void;
+} | {
+ inMemory?: Void;
+} | {
+ localDisk?: string;
+};
+
+export declare type Worker_Module = {
+ name: string;
+} & ({
+ esModule?: string;
+} | {
+ commonJsModule?: string;
+} | {
+ text?: string;
+} | {
+ data?: Uint8Array;
+} | {
+ wasm?: Uint8Array;
+} | {
+ json?: string;
+} | {
+ nodeJsCompatModule?: string;
+});
+
+export declare type WorkerOptions = z.infer<typeof CORE_PLUGIN.options> & z.infer<typeof CACHE_PLUGIN.options> & z.infer<typeof D1_PLUGIN.options> & z.infer<typeof DURABLE_OBJECTS_PLUGIN.options> & z.infer<typeof KV_PLUGIN.options> & z.infer<typeof QUEUES_PLUGIN.options> & z.infer<typeof R2_PLUGIN.options>;
+
+export declare interface WorkerRoute {
+ target: string;
+ route: string;
+ specificity: number;
+ protocol?: string;
+ allowHostnamePrefix: boolean;
+ hostname: string;
+ path: string;
+ allowPathSuffix: boolean;
+}
+
+export declare function zAwaitable<T extends z.ZodTypeAny>(type: T): z.ZodUnion<[T, z.ZodPromise<T>]>;
+
+export { }
diff --git a/node_modules/miniflare/dist/src/index.js b/node_modules/miniflare/dist/src/index.js new file mode 100644 index 0000000..3347e78 --- /dev/null +++ b/node_modules/miniflare/dist/src/index.js @@ -0,0 +1,8150 @@ +"use strict"; +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __commonJS = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; +}; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); +var __publicField = (obj, key, value) => { + __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; +var __accessCheck = (obj, member, msg) => { + if (!member.has(obj)) + throw TypeError("Cannot " + msg); +}; +var __privateGet = (obj, member, getter) => { + __accessCheck(obj, member, "read from private field"); + return getter ? getter.call(obj) : member.get(obj); +}; +var __privateAdd = (obj, member, value) => { + if (member.has(obj)) + throw TypeError("Cannot add the same private member more than once"); + member instanceof WeakSet ? member.add(obj) : member.set(obj, value); +}; +var __privateSet = (obj, member, value, setter) => { + __accessCheck(obj, member, "write to private field"); + setter ? setter.call(obj, value) : member.set(obj, value); + return value; +}; +var __privateMethod = (obj, member, method) => { + __accessCheck(obj, member, "access private method"); + return method; +}; + +// packages/miniflare/src/runtime/config/workerd.capnp.js +var require_workerd_capnp = __commonJS({ + "packages/miniflare/src/runtime/config/workerd.capnp.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.Extension = exports.Extension_Module = exports.TlsOptions = exports.TlsOptions_Version = exports.TlsOptions_Keypair = exports.HttpOptions = exports.HttpOptions_Header = exports.HttpOptions_Style = exports.DiskDirectory = exports.Network = exports.ExternalServer = exports.ExternalServer_Which = exports.ExternalServer_Https = exports.Worker = exports.Worker_Which = exports.Worker_DurableObjectStorage = exports.Worker_DurableObjectStorage_Which = exports.Worker_DurableObjectNamespace = exports.Worker_DurableObjectNamespace_Which = exports.Worker_Binding = exports.Worker_Binding_Which = exports.Worker_Binding_Parameter = exports.Worker_Binding_WrappedBinding = exports.Worker_Binding_CryptoKey = exports.Worker_Binding_CryptoKey_Which = exports.Worker_Binding_CryptoKey_Algorithm = exports.Worker_Binding_CryptoKey_Algorithm_Which = exports.Worker_Binding_CryptoKey_Usage = exports.Worker_Binding_DurableObjectNamespaceDesignator = exports.Worker_Binding_Type = exports.Worker_Binding_Type_Which = exports.Worker_Module = exports.Worker_Module_Which = exports.ServiceDesignator = exports.Service = exports.Service_Which = exports.Socket = exports.Socket_Which = exports.Socket_Https = exports.Config = exports._capnpFileId = void 0; + var capnp = require("capnp-ts"); + var capnp_ts_1 = require("capnp-ts"); + exports._capnpFileId = "e6afd26682091c01"; + var Config3 = class extends capnp_ts_1.Struct { + adoptServices(value) { + capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this)); + } + disownServices() { + return capnp_ts_1.Struct.disown(this.getServices()); + } + getServices() { + return capnp_ts_1.Struct.getList(0, Config3._Services, this); + } + hasServices() { + return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this)); + } + initServices(length) { + return capnp_ts_1.Struct.initList(0, Config3._Services, length, this); + } + setServices(value) { + capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this)); + } + adoptSockets(value) { + capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this)); + } + disownSockets() { + return capnp_ts_1.Struct.disown(this.getSockets()); + } + getSockets() { + return capnp_ts_1.Struct.getList(1, Config3._Sockets, this); + } + hasSockets() { + return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this)); + } + initSockets(length) { + return capnp_ts_1.Struct.initList(1, Config3._Sockets, length, this); + } + setSockets(value) { + capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this)); + } + adoptV8Flags(value) { + capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(2, this)); + } + disownV8Flags() { + return capnp_ts_1.Struct.disown(this.getV8Flags()); + } + getV8Flags() { + return capnp_ts_1.Struct.getList(2, capnp.TextList, this); + } + hasV8Flags() { + return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(2, this)); + } + initV8Flags(length) { + return capnp_ts_1.Struct.initList(2, capnp.TextList, length, this); + } + setV8Flags(value) { + capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(2, this)); + } + adoptExtensions(value) { + capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(3, this)); + } + disownExtensions() { + return capnp_ts_1.Struct.disown(this.getExtensions()); + } + getExtensions() { + return capnp_ts_1.Struct.getList(3, Config3._Extensions, this); + } + hasExtensions() { + return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(3, this)); + } + initExtensions(length) { + return capnp_ts_1.Struct.initList(3, Config3._Extensions, length, this); + } + setExtensions(value) { + capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(3, this)); + } + toString() { + return "Config_" + super.toString(); + } + }; + exports.Config = Config3; + Config3._capnp = { displayName: "Config", id: "8794486c76aaa7d6", size: new capnp_ts_1.ObjectSize(0, 4) }; + var Socket_Https = class extends capnp_ts_1.Struct { + adoptOptions(value) { + capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(2, this)); + } + disownOptions() { + return capnp_ts_1.Struct.disown(this.getOptions()); + } + getOptions() { + return capnp_ts_1.Struct.getStruct(2, HttpOptions, this); + } + hasOptions() { + return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(2, this)); + } + initOptions() { + return capnp_ts_1.Struct.initStructAt(2, HttpOptions, this); + } + setOptions(value) { + capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(2, this)); + } + adoptTlsOptions(value) { + capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(3, this)); + } + disownTlsOptions() { + return capnp_ts_1.Struct.disown(this.getTlsOptions()); + } + getTlsOptions() { + return capnp_ts_1.Struct.getStruct(3, TlsOptions, this); + } + hasTlsOptions() { + return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(3, this)); + } + initTlsOptions() { + return capnp_ts_1.Struct.initStructAt(3, TlsOptions, this); + } + setTlsOptions(value) { + capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(3, this)); + } + toString() { + return "Socket_Https_" + super.toString(); + } + }; + exports.Socket_Https = Socket_Https; + Socket_Https._capnp = { displayName: "https", id: "de123876383cbbdc", size: new capnp_ts_1.ObjectSize(8, 5) }; + var Socket_Which; + (function(Socket_Which2) { + Socket_Which2[Socket_Which2["HTTP"] = 0] = "HTTP"; + Socket_Which2[Socket_Which2["HTTPS"] = 1] = "HTTPS"; + })(Socket_Which = exports.Socket_Which || (exports.Socket_Which = {})); + var Socket2 = class extends capnp_ts_1.Struct { + getName() { + return capnp_ts_1.Struct.getText(0, this); + } + setName(value) { + capnp_ts_1.Struct.setText(0, value, this); + } + getAddress() { + return capnp_ts_1.Struct.getText(1, this); + } + setAddress(value) { + capnp_ts_1.Struct.setText(1, value, this); + } + adoptHttp(value) { + capnp_ts_1.Struct.setUint16(0, 0, this); + capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(2, this)); + } + disownHttp() { + return capnp_ts_1.Struct.disown(this.getHttp()); + } + getHttp() { + capnp_ts_1.Struct.testWhich("http", capnp_ts_1.Struct.getUint16(0, this), 0, this); + return capnp_ts_1.Struct.getStruct(2, HttpOptions, this); + } + hasHttp() { + return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(2, this)); + } + initHttp() { + capnp_ts_1.Struct.setUint16(0, 0, this); + return capnp_ts_1.Struct.initStructAt(2, HttpOptions, this); + } + isHttp() { + return capnp_ts_1.Struct.getUint16(0, this) === 0; + } + setHttp(value) { + capnp_ts_1.Struct.setUint16(0, 0, this); + capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(2, this)); + } + getHttps() { + capnp_ts_1.Struct.testWhich("https", capnp_ts_1.Struct.getUint16(0, this), 1, this); + return capnp_ts_1.Struct.getAs(Socket_Https, this); + } + initHttps() { + capnp_ts_1.Struct.setUint16(0, 1, this); + return capnp_ts_1.Struct.getAs(Socket_Https, this); + } + isHttps() { + return capnp_ts_1.Struct.getUint16(0, this) === 1; + } + setHttps() { + capnp_ts_1.Struct.setUint16(0, 1, this); + } + adoptService(value) { + capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(4, this)); + } + disownService() { + return capnp_ts_1.Struct.disown(this.getService()); + } + getService() { + return capnp_ts_1.Struct.getStruct(4, ServiceDesignator2, this); + } + hasService() { + return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(4, this)); + } + initService() { + return capnp_ts_1.Struct.initStructAt(4, ServiceDesignator2, this); + } + setService(value) { + capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(4, this)); + } + toString() { + return "Socket_" + super.toString(); + } + which() { + return capnp_ts_1.Struct.getUint16(0, this); + } + }; + exports.Socket = Socket2; + Socket2.HTTP = Socket_Which.HTTP; + Socket2.HTTPS = Socket_Which.HTTPS; + Socket2._capnp = { displayName: "Socket", id: "9a0eba45530ee79f", size: new capnp_ts_1.ObjectSize(8, 5) }; + var Service_Which; + (function(Service_Which2) { + Service_Which2[Service_Which2["UNSPECIFIED"] = 0] = "UNSPECIFIED"; + Service_Which2[Service_Which2["WORKER"] = 1] = "WORKER"; + Service_Which2[Service_Which2["NETWORK"] = 2] = "NETWORK"; + Service_Which2[Service_Which2["EXTERNAL"] = 3] = "EXTERNAL"; + Service_Which2[Service_Which2["DISK"] = 4] = "DISK"; + })(Service_Which = exports.Service_Which || (exports.Service_Which = {})); + var Service4 = class extends capnp_ts_1.Struct { + getName() { + return capnp_ts_1.Struct.getText(0, this); + } + setName(value) { + capnp_ts_1.Struct.setText(0, value, this); + } + isUnspecified() { + return capnp_ts_1.Struct.getUint16(0, this) === 0; + } + setUnspecified() { + capnp_ts_1.Struct.setUint16(0, 0, this); + } + adoptWorker(value) { + capnp_ts_1.Struct.setUint16(0, 1, this); + capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this)); + } + disownWorker() { + return capnp_ts_1.Struct.disown(this.getWorker()); + } + getWorker() { + capnp_ts_1.Struct.testWhich("worker", capnp_ts_1.Struct.getUint16(0, this), 1, this); + return capnp_ts_1.Struct.getStruct(1, Worker2, this); + } + hasWorker() { + return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this)); + } + initWorker() { + capnp_ts_1.Struct.setUint16(0, 1, this); + return capnp_ts_1.Struct.initStructAt(1, Worker2, this); + } + isWorker() { + return capnp_ts_1.Struct.getUint16(0, this) === 1; + } + setWorker(value) { + capnp_ts_1.Struct.setUint16(0, 1, this); + capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this)); + } + adoptNetwork(value) { + capnp_ts_1.Struct.setUint16(0, 2, this); + capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this)); + } + disownNetwork() { + return capnp_ts_1.Struct.disown(this.getNetwork()); + } + getNetwork() { + capnp_ts_1.Struct.testWhich("network", capnp_ts_1.Struct.getUint16(0, this), 2, this); + return capnp_ts_1.Struct.getStruct(1, Network, this); + } + hasNetwork() { + return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this)); + } + initNetwork() { + capnp_ts_1.Struct.setUint16(0, 2, this); + return capnp_ts_1.Struct.initStructAt(1, Network, this); + } + isNetwork() { + return capnp_ts_1.Struct.getUint16(0, this) === 2; + } + setNetwork(value) { + capnp_ts_1.Struct.setUint16(0, 2, this); + capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this)); + } + adoptExternal(value) { + capnp_ts_1.Struct.setUint16(0, 3, this); + capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this)); + } + disownExternal() { + return capnp_ts_1.Struct.disown(this.getExternal()); + } + getExternal() { + capnp_ts_1.Struct.testWhich("external", capnp_ts_1.Struct.getUint16(0, this), 3, this); + return capnp_ts_1.Struct.getStruct(1, ExternalServer2, this); + } + hasExternal() { + return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this)); + } + initExternal() { + capnp_ts_1.Struct.setUint16(0, 3, this); + return capnp_ts_1.Struct.initStructAt(1, ExternalServer2, this); + } + isExternal() { + return capnp_ts_1.Struct.getUint16(0, this) === 3; + } + setExternal(value) { + capnp_ts_1.Struct.setUint16(0, 3, this); + capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this)); + } + adoptDisk(value) { + capnp_ts_1.Struct.setUint16(0, 4, this); + capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this)); + } + disownDisk() { + return capnp_ts_1.Struct.disown(this.getDisk()); + } + getDisk() { + capnp_ts_1.Struct.testWhich("disk", capnp_ts_1.Struct.getUint16(0, this), 4, this); + return capnp_ts_1.Struct.getStruct(1, DiskDirectory, this); + } + hasDisk() { + return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this)); + } + initDisk() { + capnp_ts_1.Struct.setUint16(0, 4, this); + return capnp_ts_1.Struct.initStructAt(1, DiskDirectory, this); + } + isDisk() { + return capnp_ts_1.Struct.getUint16(0, this) === 4; + } + setDisk(value) { + capnp_ts_1.Struct.setUint16(0, 4, this); + capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this)); + } + toString() { + return "Service_" + super.toString(); + } + which() { + return capnp_ts_1.Struct.getUint16(0, this); + } + }; + exports.Service = Service4; + Service4.UNSPECIFIED = Service_Which.UNSPECIFIED; + Service4.WORKER = Service_Which.WORKER; + Service4.NETWORK = Service_Which.NETWORK; + Service4.EXTERNAL = Service_Which.EXTERNAL; + Service4.DISK = Service_Which.DISK; + Service4._capnp = { displayName: "Service", id: "e5c88e8bb7bcb6b9", size: new capnp_ts_1.ObjectSize(8, 2) }; + var ServiceDesignator2 = class extends capnp_ts_1.Struct { + getName() { + return capnp_ts_1.Struct.getText(0, this); + } + setName(value) { + capnp_ts_1.Struct.setText(0, value, this); + } + getEntrypoint() { + return capnp_ts_1.Struct.getText(1, this); + } + setEntrypoint(value) { + capnp_ts_1.Struct.setText(1, value, this); + } + toString() { + return "ServiceDesignator_" + super.toString(); + } + }; + exports.ServiceDesignator = ServiceDesignator2; + ServiceDesignator2._capnp = { displayName: "ServiceDesignator", id: "ae8ec91cee724450", size: new capnp_ts_1.ObjectSize(0, 2) }; + var Worker_Module_Which; + (function(Worker_Module_Which2) { + Worker_Module_Which2[Worker_Module_Which2["ES_MODULE"] = 0] = "ES_MODULE"; + Worker_Module_Which2[Worker_Module_Which2["COMMON_JS_MODULE"] = 1] = "COMMON_JS_MODULE"; + Worker_Module_Which2[Worker_Module_Which2["TEXT"] = 2] = "TEXT"; + Worker_Module_Which2[Worker_Module_Which2["DATA"] = 3] = "DATA"; + Worker_Module_Which2[Worker_Module_Which2["WASM"] = 4] = "WASM"; + Worker_Module_Which2[Worker_Module_Which2["JSON"] = 5] = "JSON"; + Worker_Module_Which2[Worker_Module_Which2["NODE_JS_COMPAT_MODULE"] = 6] = "NODE_JS_COMPAT_MODULE"; + })(Worker_Module_Which = exports.Worker_Module_Which || (exports.Worker_Module_Which = {})); + var Worker_Module3 = class extends capnp_ts_1.Struct { + getName() { + return capnp_ts_1.Struct.getText(0, this); + } + setName(value) { + capnp_ts_1.Struct.setText(0, value, this); + } + getEsModule() { + capnp_ts_1.Struct.testWhich("esModule", capnp_ts_1.Struct.getUint16(0, this), 0, this); + return capnp_ts_1.Struct.getText(1, this); + } + isEsModule() { + return capnp_ts_1.Struct.getUint16(0, this) === 0; + } + setEsModule(value) { + capnp_ts_1.Struct.setUint16(0, 0, this); + capnp_ts_1.Struct.setText(1, value, this); + } + getCommonJsModule() { + capnp_ts_1.Struct.testWhich("commonJsModule", capnp_ts_1.Struct.getUint16(0, this), 1, this); + return capnp_ts_1.Struct.getText(1, this); + } + isCommonJsModule() { + return capnp_ts_1.Struct.getUint16(0, this) === 1; + } + setCommonJsModule(value) { + capnp_ts_1.Struct.setUint16(0, 1, this); + capnp_ts_1.Struct.setText(1, value, this); + } + getText() { + capnp_ts_1.Struct.testWhich("text", capnp_ts_1.Struct.getUint16(0, this), 2, this); + return capnp_ts_1.Struct.getText(1, this); + } + isText() { + return capnp_ts_1.Struct.getUint16(0, this) === 2; + } + setText(value) { + capnp_ts_1.Struct.setUint16(0, 2, this); + capnp_ts_1.Struct.setText(1, value, this); + } + adoptData(value) { + capnp_ts_1.Struct.setUint16(0, 3, this); + capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this)); + } + disownData() { + return capnp_ts_1.Struct.disown(this.getData()); + } + getData() { + capnp_ts_1.Struct.testWhich("data", capnp_ts_1.Struct.getUint16(0, this), 3, this); + return capnp_ts_1.Struct.getData(1, this); + } + hasData() { + return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this)); + } + initData(length) { + capnp_ts_1.Struct.setUint16(0, 3, this); + return capnp_ts_1.Struct.initData(1, length, this); + } + isData() { + return capnp_ts_1.Struct.getUint16(0, this) === 3; + } + setData(value) { + capnp_ts_1.Struct.setUint16(0, 3, this); + capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this)); + } + adoptWasm(value) { + capnp_ts_1.Struct.setUint16(0, 4, this); + capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this)); + } + disownWasm() { + return capnp_ts_1.Struct.disown(this.getWasm()); + } + getWasm() { + capnp_ts_1.Struct.testWhich("wasm", capnp_ts_1.Struct.getUint16(0, this), 4, this); + return capnp_ts_1.Struct.getData(1, this); + } + hasWasm() { + return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this)); + } + initWasm(length) { + capnp_ts_1.Struct.setUint16(0, 4, this); + return capnp_ts_1.Struct.initData(1, length, this); + } + isWasm() { + return capnp_ts_1.Struct.getUint16(0, this) === 4; + } + setWasm(value) { + capnp_ts_1.Struct.setUint16(0, 4, this); + capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this)); + } + getJson() { + capnp_ts_1.Struct.testWhich("json", capnp_ts_1.Struct.getUint16(0, this), 5, this); + return capnp_ts_1.Struct.getText(1, this); + } + isJson() { + return capnp_ts_1.Struct.getUint16(0, this) === 5; + } + setJson(value) { + capnp_ts_1.Struct.setUint16(0, 5, this); + capnp_ts_1.Struct.setText(1, value, this); + } + getNodeJsCompatModule() { + capnp_ts_1.Struct.testWhich("nodeJsCompatModule", capnp_ts_1.Struct.getUint16(0, this), 6, this); + return capnp_ts_1.Struct.getText(1, this); + } + isNodeJsCompatModule() { + return capnp_ts_1.Struct.getUint16(0, this) === 6; + } + setNodeJsCompatModule(value) { + capnp_ts_1.Struct.setUint16(0, 6, this); + capnp_ts_1.Struct.setText(1, value, this); + } + toString() { + return "Worker_Module_" + super.toString(); + } + which() { + return capnp_ts_1.Struct.getUint16(0, this); + } + }; + exports.Worker_Module = Worker_Module3; + Worker_Module3.ES_MODULE = Worker_Module_Which.ES_MODULE; + Worker_Module3.COMMON_JS_MODULE = Worker_Module_Which.COMMON_JS_MODULE; + Worker_Module3.TEXT = Worker_Module_Which.TEXT; + Worker_Module3.DATA = Worker_Module_Which.DATA; + Worker_Module3.WASM = Worker_Module_Which.WASM; + Worker_Module3.JSON = Worker_Module_Which.JSON; + Worker_Module3.NODE_JS_COMPAT_MODULE = Worker_Module_Which.NODE_JS_COMPAT_MODULE; + Worker_Module3._capnp = { displayName: "Module", id: "d9d87a63770a12f3", size: new capnp_ts_1.ObjectSize(8, 2) }; + var Worker_Binding_Type_Which; + (function(Worker_Binding_Type_Which2) { + Worker_Binding_Type_Which2[Worker_Binding_Type_Which2["UNSPECIFIED"] = 0] = "UNSPECIFIED"; + Worker_Binding_Type_Which2[Worker_Binding_Type_Which2["TEXT"] = 1] = "TEXT"; + Worker_Binding_Type_Which2[Worker_Binding_Type_Which2["DATA"] = 2] = "DATA"; + Worker_Binding_Type_Which2[Worker_Binding_Type_Which2["JSON"] = 3] = "JSON"; + Worker_Binding_Type_Which2[Worker_Binding_Type_Which2["WASM"] = 4] = "WASM"; + Worker_Binding_Type_Which2[Worker_Binding_Type_Which2["CRYPTO_KEY"] = 5] = "CRYPTO_KEY"; + Worker_Binding_Type_Which2[Worker_Binding_Type_Which2["SERVICE"] = 6] = "SERVICE"; + Worker_Binding_Type_Which2[Worker_Binding_Type_Which2["DURABLE_OBJECT_NAMESPACE"] = 7] = "DURABLE_OBJECT_NAMESPACE"; + Worker_Binding_Type_Which2[Worker_Binding_Type_Which2["KV_NAMESPACE"] = 8] = "KV_NAMESPACE"; + Worker_Binding_Type_Which2[Worker_Binding_Type_Which2["R2BUCKET"] = 9] = "R2BUCKET"; + Worker_Binding_Type_Which2[Worker_Binding_Type_Which2["R2ADMIN"] = 10] = "R2ADMIN"; + Worker_Binding_Type_Which2[Worker_Binding_Type_Which2["QUEUE"] = 11] = "QUEUE"; + Worker_Binding_Type_Which2[Worker_Binding_Type_Which2["ANALYTICS_ENGINE"] = 12] = "ANALYTICS_ENGINE"; + })(Worker_Binding_Type_Which = exports.Worker_Binding_Type_Which || (exports.Worker_Binding_Type_Which = {})); + var Worker_Binding_Type = class extends capnp_ts_1.Struct { + isUnspecified() { + return capnp_ts_1.Struct.getUint16(0, this) === 0; + } + setUnspecified() { + capnp_ts_1.Struct.setUint16(0, 0, this); + } + isText() { + return capnp_ts_1.Struct.getUint16(0, this) === 1; + } + setText() { + capnp_ts_1.Struct.setUint16(0, 1, this); + } + isData() { + return capnp_ts_1.Struct.getUint16(0, this) === 2; + } + setData() { + capnp_ts_1.Struct.setUint16(0, 2, this); + } + isJson() { + return capnp_ts_1.Struct.getUint16(0, this) === 3; + } + setJson() { + capnp_ts_1.Struct.setUint16(0, 3, this); + } + isWasm() { + return capnp_ts_1.Struct.getUint16(0, this) === 4; + } + setWasm() { + capnp_ts_1.Struct.setUint16(0, 4, this); + } + adoptCryptoKey(value) { + capnp_ts_1.Struct.setUint16(0, 5, this); + capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this)); + } + disownCryptoKey() { + return capnp_ts_1.Struct.disown(this.getCryptoKey()); + } + getCryptoKey() { + capnp_ts_1.Struct.testWhich("cryptoKey", capnp_ts_1.Struct.getUint16(0, this), 5, this); + return capnp_ts_1.Struct.getList(0, capnp.Uint16List, this); + } + hasCryptoKey() { + return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this)); + } + initCryptoKey(length) { + capnp_ts_1.Struct.setUint16(0, 5, this); + return capnp_ts_1.Struct.initList(0, capnp.Uint16List, length, this); + } + isCryptoKey() { + return capnp_ts_1.Struct.getUint16(0, this) === 5; + } + setCryptoKey(value) { + capnp_ts_1.Struct.setUint16(0, 5, this); + capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this)); + } + isService() { + return capnp_ts_1.Struct.getUint16(0, this) === 6; + } + setService() { + capnp_ts_1.Struct.setUint16(0, 6, this); + } + isDurableObjectNamespace() { + return capnp_ts_1.Struct.getUint16(0, this) === 7; + } + setDurableObjectNamespace() { + capnp_ts_1.Struct.setUint16(0, 7, this); + } + isKvNamespace() { + return capnp_ts_1.Struct.getUint16(0, this) === 8; + } + setKvNamespace() { + capnp_ts_1.Struct.setUint16(0, 8, this); + } + isR2Bucket() { + return capnp_ts_1.Struct.getUint16(0, this) === 9; + } + setR2Bucket() { + capnp_ts_1.Struct.setUint16(0, 9, this); + } + isR2Admin() { + return capnp_ts_1.Struct.getUint16(0, this) === 10; + } + setR2Admin() { + capnp_ts_1.Struct.setUint16(0, 10, this); + } + isQueue() { + return capnp_ts_1.Struct.getUint16(0, this) === 11; + } + setQueue() { + capnp_ts_1.Struct.setUint16(0, 11, this); + } + isAnalyticsEngine() { + return capnp_ts_1.Struct.getUint16(0, this) === 12; + } + setAnalyticsEngine() { + capnp_ts_1.Struct.setUint16(0, 12, this); + } + toString() { + return "Worker_Binding_Type_" + super.toString(); + } + which() { + return capnp_ts_1.Struct.getUint16(0, this); + } + }; + exports.Worker_Binding_Type = Worker_Binding_Type; + Worker_Binding_Type.UNSPECIFIED = Worker_Binding_Type_Which.UNSPECIFIED; + Worker_Binding_Type.TEXT = Worker_Binding_Type_Which.TEXT; + Worker_Binding_Type.DATA = Worker_Binding_Type_Which.DATA; + Worker_Binding_Type.JSON = Worker_Binding_Type_Which.JSON; + Worker_Binding_Type.WASM = Worker_Binding_Type_Which.WASM; + Worker_Binding_Type.CRYPTO_KEY = Worker_Binding_Type_Which.CRYPTO_KEY; + Worker_Binding_Type.SERVICE = Worker_Binding_Type_Which.SERVICE; + Worker_Binding_Type.DURABLE_OBJECT_NAMESPACE = Worker_Binding_Type_Which.DURABLE_OBJECT_NAMESPACE; + Worker_Binding_Type.KV_NAMESPACE = Worker_Binding_Type_Which.KV_NAMESPACE; + Worker_Binding_Type.R2BUCKET = Worker_Binding_Type_Which.R2BUCKET; + Worker_Binding_Type.R2ADMIN = Worker_Binding_Type_Which.R2ADMIN; + Worker_Binding_Type.QUEUE = Worker_Binding_Type_Which.QUEUE; + Worker_Binding_Type.ANALYTICS_ENGINE = Worker_Binding_Type_Which.ANALYTICS_ENGINE; + Worker_Binding_Type._capnp = { displayName: "Type", id: "8906a1296519bf8a", size: new capnp_ts_1.ObjectSize(8, 1) }; + var Worker_Binding_DurableObjectNamespaceDesignator2 = class extends capnp_ts_1.Struct { + getClassName() { + return capnp_ts_1.Struct.getText(0, this); + } + setClassName(value) { + capnp_ts_1.Struct.setText(0, value, this); + } + getServiceName() { + return capnp_ts_1.Struct.getText(1, this); + } + setServiceName(value) { + capnp_ts_1.Struct.setText(1, value, this); + } + toString() { + return "Worker_Binding_DurableObjectNamespaceDesignator_" + super.toString(); + } + }; + exports.Worker_Binding_DurableObjectNamespaceDesignator = Worker_Binding_DurableObjectNamespaceDesignator2; + Worker_Binding_DurableObjectNamespaceDesignator2._capnp = { displayName: "DurableObjectNamespaceDesignator", id: "804f144ff477aac7", size: new capnp_ts_1.ObjectSize(0, 2) }; + var Worker_Binding_CryptoKey_Usage2; + (function(Worker_Binding_CryptoKey_Usage3) { + Worker_Binding_CryptoKey_Usage3[Worker_Binding_CryptoKey_Usage3["ENCRYPT"] = 0] = "ENCRYPT"; + Worker_Binding_CryptoKey_Usage3[Worker_Binding_CryptoKey_Usage3["DECRYPT"] = 1] = "DECRYPT"; + Worker_Binding_CryptoKey_Usage3[Worker_Binding_CryptoKey_Usage3["SIGN"] = 2] = "SIGN"; + Worker_Binding_CryptoKey_Usage3[Worker_Binding_CryptoKey_Usage3["VERIFY"] = 3] = "VERIFY"; + Worker_Binding_CryptoKey_Usage3[Worker_Binding_CryptoKey_Usage3["DERIVE_KEY"] = 4] = "DERIVE_KEY"; + Worker_Binding_CryptoKey_Usage3[Worker_Binding_CryptoKey_Usage3["DERIVE_BITS"] = 5] = "DERIVE_BITS"; + Worker_Binding_CryptoKey_Usage3[Worker_Binding_CryptoKey_Usage3["WRAP_KEY"] = 6] = "WRAP_KEY"; + Worker_Binding_CryptoKey_Usage3[Worker_Binding_CryptoKey_Usage3["UNWRAP_KEY"] = 7] = "UNWRAP_KEY"; + })(Worker_Binding_CryptoKey_Usage2 = exports.Worker_Binding_CryptoKey_Usage || (exports.Worker_Binding_CryptoKey_Usage = {})); + var Worker_Binding_CryptoKey_Algorithm_Which; + (function(Worker_Binding_CryptoKey_Algorithm_Which2) { + Worker_Binding_CryptoKey_Algorithm_Which2[Worker_Binding_CryptoKey_Algorithm_Which2["NAME"] = 0] = "NAME"; + Worker_Binding_CryptoKey_Algorithm_Which2[Worker_Binding_CryptoKey_Algorithm_Which2["JSON"] = 1] = "JSON"; + })(Worker_Binding_CryptoKey_Algorithm_Which = exports.Worker_Binding_CryptoKey_Algorithm_Which || (exports.Worker_Binding_CryptoKey_Algorithm_Which = {})); + var Worker_Binding_CryptoKey_Algorithm = class extends capnp_ts_1.Struct { + getName() { + capnp_ts_1.Struct.testWhich("name", capnp_ts_1.Struct.getUint16(2, this), 0, this); + return capnp_ts_1.Struct.getText(1, this); + } + isName() { + return capnp_ts_1.Struct.getUint16(2, this) === 0; + } + setName(value) { + capnp_ts_1.Struct.setUint16(2, 0, this); + capnp_ts_1.Struct.setText(1, value, this); + } + getJson() { + capnp_ts_1.Struct.testWhich("json", capnp_ts_1.Struct.getUint16(2, this), 1, this); + return capnp_ts_1.Struct.getText(1, this); + } + isJson() { + return capnp_ts_1.Struct.getUint16(2, this) === 1; + } + setJson(value) { + capnp_ts_1.Struct.setUint16(2, 1, this); + capnp_ts_1.Struct.setText(1, value, this); + } + toString() { + return "Worker_Binding_CryptoKey_Algorithm_" + super.toString(); + } + which() { + return capnp_ts_1.Struct.getUint16(2, this); + } + }; + exports.Worker_Binding_CryptoKey_Algorithm = Worker_Binding_CryptoKey_Algorithm; + Worker_Binding_CryptoKey_Algorithm.NAME = Worker_Binding_CryptoKey_Algorithm_Which.NAME; + Worker_Binding_CryptoKey_Algorithm.JSON = Worker_Binding_CryptoKey_Algorithm_Which.JSON; + Worker_Binding_CryptoKey_Algorithm._capnp = { displayName: "algorithm", id: "a1a040c5e00d7021", size: new capnp_ts_1.ObjectSize(8, 3) }; + var Worker_Binding_CryptoKey_Which; + (function(Worker_Binding_CryptoKey_Which2) { + Worker_Binding_CryptoKey_Which2[Worker_Binding_CryptoKey_Which2["RAW"] = 0] = "RAW"; + Worker_Binding_CryptoKey_Which2[Worker_Binding_CryptoKey_Which2["HEX"] = 1] = "HEX"; + Worker_Binding_CryptoKey_Which2[Worker_Binding_CryptoKey_Which2["BASE64"] = 2] = "BASE64"; + Worker_Binding_CryptoKey_Which2[Worker_Binding_CryptoKey_Which2["PKCS8"] = 3] = "PKCS8"; + Worker_Binding_CryptoKey_Which2[Worker_Binding_CryptoKey_Which2["SPKI"] = 4] = "SPKI"; + Worker_Binding_CryptoKey_Which2[Worker_Binding_CryptoKey_Which2["JWK"] = 5] = "JWK"; + })(Worker_Binding_CryptoKey_Which = exports.Worker_Binding_CryptoKey_Which || (exports.Worker_Binding_CryptoKey_Which = {})); + var Worker_Binding_CryptoKey = class extends capnp_ts_1.Struct { + adoptRaw(value) { + capnp_ts_1.Struct.setUint16(0, 0, this); + capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this)); + } + disownRaw() { + return capnp_ts_1.Struct.disown(this.getRaw()); + } + getRaw() { + capnp_ts_1.Struct.testWhich("raw", capnp_ts_1.Struct.getUint16(0, this), 0, this); + return capnp_ts_1.Struct.getData(0, this); + } + hasRaw() { + return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this)); + } + initRaw(length) { + capnp_ts_1.Struct.setUint16(0, 0, this); + return capnp_ts_1.Struct.initData(0, length, this); + } + isRaw() { + return capnp_ts_1.Struct.getUint16(0, this) === 0; + } + setRaw(value) { + capnp_ts_1.Struct.setUint16(0, 0, this); + capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this)); + } + getHex() { + capnp_ts_1.Struct.testWhich("hex", capnp_ts_1.Struct.getUint16(0, this), 1, this); + return capnp_ts_1.Struct.getText(0, this); + } + isHex() { + return capnp_ts_1.Struct.getUint16(0, this) === 1; + } + setHex(value) { + capnp_ts_1.Struct.setUint16(0, 1, this); + capnp_ts_1.Struct.setText(0, value, this); + } + getBase64() { + capnp_ts_1.Struct.testWhich("base64", capnp_ts_1.Struct.getUint16(0, this), 2, this); + return capnp_ts_1.Struct.getText(0, this); + } + isBase64() { + return capnp_ts_1.Struct.getUint16(0, this) === 2; + } + setBase64(value) { + capnp_ts_1.Struct.setUint16(0, 2, this); + capnp_ts_1.Struct.setText(0, value, this); + } + getPkcs8() { + capnp_ts_1.Struct.testWhich("pkcs8", capnp_ts_1.Struct.getUint16(0, this), 3, this); + return capnp_ts_1.Struct.getText(0, this); + } + isPkcs8() { + return capnp_ts_1.Struct.getUint16(0, this) === 3; + } + setPkcs8(value) { + capnp_ts_1.Struct.setUint16(0, 3, this); + capnp_ts_1.Struct.setText(0, value, this); + } + getSpki() { + capnp_ts_1.Struct.testWhich("spki", capnp_ts_1.Struct.getUint16(0, this), 4, this); + return capnp_ts_1.Struct.getText(0, this); + } + isSpki() { + return capnp_ts_1.Struct.getUint16(0, this) === 4; + } + setSpki(value) { + capnp_ts_1.Struct.setUint16(0, 4, this); + capnp_ts_1.Struct.setText(0, value, this); + } + getJwk() { + capnp_ts_1.Struct.testWhich("jwk", capnp_ts_1.Struct.getUint16(0, this), 5, this); + return capnp_ts_1.Struct.getText(0, this); + } + isJwk() { + return capnp_ts_1.Struct.getUint16(0, this) === 5; + } + setJwk(value) { + capnp_ts_1.Struct.setUint16(0, 5, this); + capnp_ts_1.Struct.setText(0, value, this); + } + getAlgorithm() { + return capnp_ts_1.Struct.getAs(Worker_Binding_CryptoKey_Algorithm, this); + } + initAlgorithm() { + return capnp_ts_1.Struct.getAs(Worker_Binding_CryptoKey_Algorithm, this); + } + getExtractable() { + return capnp_ts_1.Struct.getBit(32, this, Worker_Binding_CryptoKey._capnp.defaultExtractable); + } + setExtractable(value) { + capnp_ts_1.Struct.setBit(32, value, this); + } + adoptUsages(value) { + capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(2, this)); + } + disownUsages() { + return capnp_ts_1.Struct.disown(this.getUsages()); + } + getUsages() { + return capnp_ts_1.Struct.getList(2, capnp.Uint16List, this); + } + hasUsages() { + return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(2, this)); + } + initUsages(length) { + return capnp_ts_1.Struct.initList(2, capnp.Uint16List, length, this); + } + setUsages(value) { + capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(2, this)); + } + toString() { + return "Worker_Binding_CryptoKey_" + super.toString(); + } + which() { + return capnp_ts_1.Struct.getUint16(0, this); + } + }; + exports.Worker_Binding_CryptoKey = Worker_Binding_CryptoKey; + Worker_Binding_CryptoKey.RAW = Worker_Binding_CryptoKey_Which.RAW; + Worker_Binding_CryptoKey.HEX = Worker_Binding_CryptoKey_Which.HEX; + Worker_Binding_CryptoKey.BASE64 = Worker_Binding_CryptoKey_Which.BASE64; + Worker_Binding_CryptoKey.PKCS8 = Worker_Binding_CryptoKey_Which.PKCS8; + Worker_Binding_CryptoKey.SPKI = Worker_Binding_CryptoKey_Which.SPKI; + Worker_Binding_CryptoKey.JWK = Worker_Binding_CryptoKey_Which.JWK; + Worker_Binding_CryptoKey.Usage = Worker_Binding_CryptoKey_Usage2; + Worker_Binding_CryptoKey._capnp = { displayName: "CryptoKey", id: "b5e1bff0e57d6eb0", size: new capnp_ts_1.ObjectSize(8, 3), defaultExtractable: capnp.getBitMask(false, 0) }; + var Worker_Binding_WrappedBinding = class extends capnp_ts_1.Struct { + getModuleName() { + return capnp_ts_1.Struct.getText(0, this); + } + setModuleName(value) { + capnp_ts_1.Struct.setText(0, value, this); + } + getEntrypoint() { + return capnp_ts_1.Struct.getText(1, this, Worker_Binding_WrappedBinding._capnp.defaultEntrypoint); + } + setEntrypoint(value) { + capnp_ts_1.Struct.setText(1, value, this); + } + adoptInnerBindings(value) { + capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(2, this)); + } + disownInnerBindings() { + return capnp_ts_1.Struct.disown(this.getInnerBindings()); + } + getInnerBindings() { + return capnp_ts_1.Struct.getList(2, Worker_Binding_WrappedBinding._InnerBindings, this); + } + hasInnerBindings() { + return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(2, this)); + } + initInnerBindings(length) { + return capnp_ts_1.Struct.initList(2, Worker_Binding_WrappedBinding._InnerBindings, length, this); + } + setInnerBindings(value) { + capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(2, this)); + } + toString() { + return "Worker_Binding_WrappedBinding_" + super.toString(); + } + }; + exports.Worker_Binding_WrappedBinding = Worker_Binding_WrappedBinding; + Worker_Binding_WrappedBinding._capnp = { displayName: "WrappedBinding", id: "e6f066b75f0ea113", size: new capnp_ts_1.ObjectSize(0, 3), defaultEntrypoint: "default" }; + var Worker_Binding_Parameter = class extends capnp_ts_1.Struct { + adoptType(value) { + capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this)); + } + disownType() { + return capnp_ts_1.Struct.disown(this.getType()); + } + getType() { + return capnp_ts_1.Struct.getStruct(1, Worker_Binding_Type, this); + } + hasType() { + return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this)); + } + initType() { + return capnp_ts_1.Struct.initStructAt(1, Worker_Binding_Type, this); + } + setType(value) { + capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this)); + } + getOptional() { + return capnp_ts_1.Struct.getBit(16, this); + } + setOptional(value) { + capnp_ts_1.Struct.setBit(16, value, this); + } + toString() { + return "Worker_Binding_Parameter_" + super.toString(); + } + }; + exports.Worker_Binding_Parameter = Worker_Binding_Parameter; + Worker_Binding_Parameter._capnp = { displayName: "parameter", id: "dc57e1258d26d152", size: new capnp_ts_1.ObjectSize(8, 2) }; + var Worker_Binding_Which; + (function(Worker_Binding_Which2) { + Worker_Binding_Which2[Worker_Binding_Which2["UNSPECIFIED"] = 0] = "UNSPECIFIED"; + Worker_Binding_Which2[Worker_Binding_Which2["PARAMETER"] = 1] = "PARAMETER"; + Worker_Binding_Which2[Worker_Binding_Which2["TEXT"] = 2] = "TEXT"; + Worker_Binding_Which2[Worker_Binding_Which2["DATA"] = 3] = "DATA"; + Worker_Binding_Which2[Worker_Binding_Which2["JSON"] = 4] = "JSON"; + Worker_Binding_Which2[Worker_Binding_Which2["WASM_MODULE"] = 5] = "WASM_MODULE"; + Worker_Binding_Which2[Worker_Binding_Which2["CRYPTO_KEY"] = 6] = "CRYPTO_KEY"; + Worker_Binding_Which2[Worker_Binding_Which2["SERVICE"] = 7] = "SERVICE"; + Worker_Binding_Which2[Worker_Binding_Which2["DURABLE_OBJECT_NAMESPACE"] = 8] = "DURABLE_OBJECT_NAMESPACE"; + Worker_Binding_Which2[Worker_Binding_Which2["KV_NAMESPACE"] = 9] = "KV_NAMESPACE"; + Worker_Binding_Which2[Worker_Binding_Which2["R2BUCKET"] = 10] = "R2BUCKET"; + Worker_Binding_Which2[Worker_Binding_Which2["R2ADMIN"] = 11] = "R2ADMIN"; + Worker_Binding_Which2[Worker_Binding_Which2["WRAPPED"] = 12] = "WRAPPED"; + Worker_Binding_Which2[Worker_Binding_Which2["QUEUE"] = 13] = "QUEUE"; + Worker_Binding_Which2[Worker_Binding_Which2["FROM_ENVIRONMENT"] = 14] = "FROM_ENVIRONMENT"; + Worker_Binding_Which2[Worker_Binding_Which2["ANALYTICS_ENGINE"] = 15] = "ANALYTICS_ENGINE"; + })(Worker_Binding_Which = exports.Worker_Binding_Which || (exports.Worker_Binding_Which = {})); + var Worker_Binding4 = class extends capnp_ts_1.Struct { + getName() { + return capnp_ts_1.Struct.getText(0, this); + } + setName(value) { + capnp_ts_1.Struct.setText(0, value, this); + } + isUnspecified() { + return capnp_ts_1.Struct.getUint16(0, this) === 0; + } + setUnspecified() { + capnp_ts_1.Struct.setUint16(0, 0, this); + } + getParameter() { + capnp_ts_1.Struct.testWhich("parameter", capnp_ts_1.Struct.getUint16(0, this), 1, this); + return capnp_ts_1.Struct.getAs(Worker_Binding_Parameter, this); + } + initParameter() { + capnp_ts_1.Struct.setUint16(0, 1, this); + return capnp_ts_1.Struct.getAs(Worker_Binding_Parameter, this); + } + isParameter() { + return capnp_ts_1.Struct.getUint16(0, this) === 1; + } + setParameter() { + capnp_ts_1.Struct.setUint16(0, 1, this); + } + getText() { + capnp_ts_1.Struct.testWhich("text", capnp_ts_1.Struct.getUint16(0, this), 2, this); + return capnp_ts_1.Struct.getText(1, this); + } + isText() { + return capnp_ts_1.Struct.getUint16(0, this) === 2; + } + setText(value) { + capnp_ts_1.Struct.setUint16(0, 2, this); + capnp_ts_1.Struct.setText(1, value, this); + } + adoptData(value) { + capnp_ts_1.Struct.setUint16(0, 3, this); + capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this)); + } + disownData() { + return capnp_ts_1.Struct.disown(this.getData()); + } + getData() { + capnp_ts_1.Struct.testWhich("data", capnp_ts_1.Struct.getUint16(0, this), 3, this); + return capnp_ts_1.Struct.getData(1, this); + } + hasData() { + return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this)); + } + initData(length) { + capnp_ts_1.Struct.setUint16(0, 3, this); + return capnp_ts_1.Struct.initData(1, length, this); + } + isData() { + return capnp_ts_1.Struct.getUint16(0, this) === 3; + } + setData(value) { + capnp_ts_1.Struct.setUint16(0, 3, this); + capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this)); + } + getJson() { + capnp_ts_1.Struct.testWhich("json", capnp_ts_1.Struct.getUint16(0, this), 4, this); + return capnp_ts_1.Struct.getText(1, this); + } + isJson() { + return capnp_ts_1.Struct.getUint16(0, this) === 4; + } + setJson(value) { + capnp_ts_1.Struct.setUint16(0, 4, this); + capnp_ts_1.Struct.setText(1, value, this); + } + adoptWasmModule(value) { + capnp_ts_1.Struct.setUint16(0, 5, this); + capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this)); + } + disownWasmModule() { + return capnp_ts_1.Struct.disown(this.getWasmModule()); + } + getWasmModule() { + capnp_ts_1.Struct.testWhich("wasmModule", capnp_ts_1.Struct.getUint16(0, this), 5, this); + return capnp_ts_1.Struct.getData(1, this); + } + hasWasmModule() { + return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this)); + } + initWasmModule(length) { + capnp_ts_1.Struct.setUint16(0, 5, this); + return capnp_ts_1.Struct.initData(1, length, this); + } + isWasmModule() { + return capnp_ts_1.Struct.getUint16(0, this) === 5; + } + setWasmModule(value) { + capnp_ts_1.Struct.setUint16(0, 5, this); + capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this)); + } + adoptCryptoKey(value) { + capnp_ts_1.Struct.setUint16(0, 6, this); + capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this)); + } + disownCryptoKey() { + return capnp_ts_1.Struct.disown(this.getCryptoKey()); + } + getCryptoKey() { + capnp_ts_1.Struct.testWhich("cryptoKey", capnp_ts_1.Struct.getUint16(0, this), 6, this); + return capnp_ts_1.Struct.getStruct(1, Worker_Binding_CryptoKey, this); + } + hasCryptoKey() { + return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this)); + } + initCryptoKey() { + capnp_ts_1.Struct.setUint16(0, 6, this); + return capnp_ts_1.Struct.initStructAt(1, Worker_Binding_CryptoKey, this); + } + isCryptoKey() { + return capnp_ts_1.Struct.getUint16(0, this) === 6; + } + setCryptoKey(value) { + capnp_ts_1.Struct.setUint16(0, 6, this); + capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this)); + } + adoptService(value) { + capnp_ts_1.Struct.setUint16(0, 7, this); + capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this)); + } + disownService() { + return capnp_ts_1.Struct.disown(this.getService()); + } + getService() { + capnp_ts_1.Struct.testWhich("service", capnp_ts_1.Struct.getUint16(0, this), 7, this); + return capnp_ts_1.Struct.getStruct(1, ServiceDesignator2, this); + } + hasService() { + return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this)); + } + initService() { + capnp_ts_1.Struct.setUint16(0, 7, this); + return capnp_ts_1.Struct.initStructAt(1, ServiceDesignator2, this); + } + isService() { + return capnp_ts_1.Struct.getUint16(0, this) === 7; + } + setService(value) { + capnp_ts_1.Struct.setUint16(0, 7, this); + capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this)); + } + adoptDurableObjectNamespace(value) { + capnp_ts_1.Struct.setUint16(0, 8, this); + capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this)); + } + disownDurableObjectNamespace() { + return capnp_ts_1.Struct.disown(this.getDurableObjectNamespace()); + } + getDurableObjectNamespace() { + capnp_ts_1.Struct.testWhich("durableObjectNamespace", capnp_ts_1.Struct.getUint16(0, this), 8, this); + return capnp_ts_1.Struct.getStruct(1, Worker_Binding_DurableObjectNamespaceDesignator2, this); + } + hasDurableObjectNamespace() { + return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this)); + } + initDurableObjectNamespace() { + capnp_ts_1.Struct.setUint16(0, 8, this); + return capnp_ts_1.Struct.initStructAt(1, Worker_Binding_DurableObjectNamespaceDesignator2, this); + } + isDurableObjectNamespace() { + return capnp_ts_1.Struct.getUint16(0, this) === 8; + } + setDurableObjectNamespace(value) { + capnp_ts_1.Struct.setUint16(0, 8, this); + capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this)); + } + adoptKvNamespace(value) { + capnp_ts_1.Struct.setUint16(0, 9, this); + capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this)); + } + disownKvNamespace() { + return capnp_ts_1.Struct.disown(this.getKvNamespace()); + } + getKvNamespace() { + capnp_ts_1.Struct.testWhich("kvNamespace", capnp_ts_1.Struct.getUint16(0, this), 9, this); + return capnp_ts_1.Struct.getStruct(1, ServiceDesignator2, this); + } + hasKvNamespace() { + return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this)); + } + initKvNamespace() { + capnp_ts_1.Struct.setUint16(0, 9, this); + return capnp_ts_1.Struct.initStructAt(1, ServiceDesignator2, this); + } + isKvNamespace() { + return capnp_ts_1.Struct.getUint16(0, this) === 9; + } + setKvNamespace(value) { + capnp_ts_1.Struct.setUint16(0, 9, this); + capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this)); + } + adoptR2Bucket(value) { + capnp_ts_1.Struct.setUint16(0, 10, this); + capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this)); + } + disownR2Bucket() { + return capnp_ts_1.Struct.disown(this.getR2Bucket()); + } + getR2Bucket() { + capnp_ts_1.Struct.testWhich("r2Bucket", capnp_ts_1.Struct.getUint16(0, this), 10, this); + return capnp_ts_1.Struct.getStruct(1, ServiceDesignator2, this); + } + hasR2Bucket() { + return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this)); + } + initR2Bucket() { + capnp_ts_1.Struct.setUint16(0, 10, this); + return capnp_ts_1.Struct.initStructAt(1, ServiceDesignator2, this); + } + isR2Bucket() { + return capnp_ts_1.Struct.getUint16(0, this) === 10; + } + setR2Bucket(value) { + capnp_ts_1.Struct.setUint16(0, 10, this); + capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this)); + } + adoptR2Admin(value) { + capnp_ts_1.Struct.setUint16(0, 11, this); + capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this)); + } + disownR2Admin() { + return capnp_ts_1.Struct.disown(this.getR2Admin()); + } + getR2Admin() { + capnp_ts_1.Struct.testWhich("r2Admin", capnp_ts_1.Struct.getUint16(0, this), 11, this); + return capnp_ts_1.Struct.getStruct(1, ServiceDesignator2, this); + } + hasR2Admin() { + return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this)); + } + initR2Admin() { + capnp_ts_1.Struct.setUint16(0, 11, this); + return capnp_ts_1.Struct.initStructAt(1, ServiceDesignator2, this); + } + isR2Admin() { + return capnp_ts_1.Struct.getUint16(0, this) === 11; + } + setR2Admin(value) { + capnp_ts_1.Struct.setUint16(0, 11, this); + capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this)); + } + adoptWrapped(value) { + capnp_ts_1.Struct.setUint16(0, 12, this); + capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this)); + } + disownWrapped() { + return capnp_ts_1.Struct.disown(this.getWrapped()); + } + getWrapped() { + capnp_ts_1.Struct.testWhich("wrapped", capnp_ts_1.Struct.getUint16(0, this), 12, this); + return capnp_ts_1.Struct.getStruct(1, Worker_Binding_WrappedBinding, this); + } + hasWrapped() { + return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this)); + } + initWrapped() { + capnp_ts_1.Struct.setUint16(0, 12, this); + return capnp_ts_1.Struct.initStructAt(1, Worker_Binding_WrappedBinding, this); + } + isWrapped() { + return capnp_ts_1.Struct.getUint16(0, this) === 12; + } + setWrapped(value) { + capnp_ts_1.Struct.setUint16(0, 12, this); + capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this)); + } + adoptQueue(value) { + capnp_ts_1.Struct.setUint16(0, 13, this); + capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this)); + } + disownQueue() { + return capnp_ts_1.Struct.disown(this.getQueue()); + } + getQueue() { + capnp_ts_1.Struct.testWhich("queue", capnp_ts_1.Struct.getUint16(0, this), 13, this); + return capnp_ts_1.Struct.getStruct(1, ServiceDesignator2, this); + } + hasQueue() { + return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this)); + } + initQueue() { + capnp_ts_1.Struct.setUint16(0, 13, this); + return capnp_ts_1.Struct.initStructAt(1, ServiceDesignator2, this); + } + isQueue() { + return capnp_ts_1.Struct.getUint16(0, this) === 13; + } + setQueue(value) { + capnp_ts_1.Struct.setUint16(0, 13, this); + capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this)); + } + getFromEnvironment() { + capnp_ts_1.Struct.testWhich("fromEnvironment", capnp_ts_1.Struct.getUint16(0, this), 14, this); + return capnp_ts_1.Struct.getText(1, this); + } + isFromEnvironment() { + return capnp_ts_1.Struct.getUint16(0, this) === 14; + } + setFromEnvironment(value) { + capnp_ts_1.Struct.setUint16(0, 14, this); + capnp_ts_1.Struct.setText(1, value, this); + } + adoptAnalyticsEngine(value) { + capnp_ts_1.Struct.setUint16(0, 15, this); + capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this)); + } + disownAnalyticsEngine() { + return capnp_ts_1.Struct.disown(this.getAnalyticsEngine()); + } + getAnalyticsEngine() { + capnp_ts_1.Struct.testWhich("analyticsEngine", capnp_ts_1.Struct.getUint16(0, this), 15, this); + return capnp_ts_1.Struct.getStruct(1, ServiceDesignator2, this); + } + hasAnalyticsEngine() { + return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this)); + } + initAnalyticsEngine() { + capnp_ts_1.Struct.setUint16(0, 15, this); + return capnp_ts_1.Struct.initStructAt(1, ServiceDesignator2, this); + } + isAnalyticsEngine() { + return capnp_ts_1.Struct.getUint16(0, this) === 15; + } + setAnalyticsEngine(value) { + capnp_ts_1.Struct.setUint16(0, 15, this); + capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this)); + } + toString() { + return "Worker_Binding_" + super.toString(); + } + which() { + return capnp_ts_1.Struct.getUint16(0, this); + } + }; + exports.Worker_Binding = Worker_Binding4; + Worker_Binding4.UNSPECIFIED = Worker_Binding_Which.UNSPECIFIED; + Worker_Binding4.PARAMETER = Worker_Binding_Which.PARAMETER; + Worker_Binding4.TEXT = Worker_Binding_Which.TEXT; + Worker_Binding4.DATA = Worker_Binding_Which.DATA; + Worker_Binding4.JSON = Worker_Binding_Which.JSON; + Worker_Binding4.WASM_MODULE = Worker_Binding_Which.WASM_MODULE; + Worker_Binding4.CRYPTO_KEY = Worker_Binding_Which.CRYPTO_KEY; + Worker_Binding4.SERVICE = Worker_Binding_Which.SERVICE; + Worker_Binding4.DURABLE_OBJECT_NAMESPACE = Worker_Binding_Which.DURABLE_OBJECT_NAMESPACE; + Worker_Binding4.KV_NAMESPACE = Worker_Binding_Which.KV_NAMESPACE; + Worker_Binding4.R2BUCKET = Worker_Binding_Which.R2BUCKET; + Worker_Binding4.R2ADMIN = Worker_Binding_Which.R2ADMIN; + Worker_Binding4.WRAPPED = Worker_Binding_Which.WRAPPED; + Worker_Binding4.QUEUE = Worker_Binding_Which.QUEUE; + Worker_Binding4.FROM_ENVIRONMENT = Worker_Binding_Which.FROM_ENVIRONMENT; + Worker_Binding4.ANALYTICS_ENGINE = Worker_Binding_Which.ANALYTICS_ENGINE; + Worker_Binding4.Type = Worker_Binding_Type; + Worker_Binding4.DurableObjectNamespaceDesignator = Worker_Binding_DurableObjectNamespaceDesignator2; + Worker_Binding4.CryptoKey = Worker_Binding_CryptoKey; + Worker_Binding4.WrappedBinding = Worker_Binding_WrappedBinding; + Worker_Binding4._capnp = { displayName: "Binding", id: "8e7e492fd7e35f3e", size: new capnp_ts_1.ObjectSize(8, 2) }; + var Worker_DurableObjectNamespace_Which; + (function(Worker_DurableObjectNamespace_Which2) { + Worker_DurableObjectNamespace_Which2[Worker_DurableObjectNamespace_Which2["UNIQUE_KEY"] = 0] = "UNIQUE_KEY"; + Worker_DurableObjectNamespace_Which2[Worker_DurableObjectNamespace_Which2["EPHEMERAL_LOCAL"] = 1] = "EPHEMERAL_LOCAL"; + })(Worker_DurableObjectNamespace_Which = exports.Worker_DurableObjectNamespace_Which || (exports.Worker_DurableObjectNamespace_Which = {})); + var Worker_DurableObjectNamespace = class extends capnp_ts_1.Struct { + getClassName() { + return capnp_ts_1.Struct.getText(0, this); + } + setClassName(value) { + capnp_ts_1.Struct.setText(0, value, this); + } + getUniqueKey() { + capnp_ts_1.Struct.testWhich("uniqueKey", capnp_ts_1.Struct.getUint16(0, this), 0, this); + return capnp_ts_1.Struct.getText(1, this); + } + isUniqueKey() { + return capnp_ts_1.Struct.getUint16(0, this) === 0; + } + setUniqueKey(value) { + capnp_ts_1.Struct.setUint16(0, 0, this); + capnp_ts_1.Struct.setText(1, value, this); + } + isEphemeralLocal() { + return capnp_ts_1.Struct.getUint16(0, this) === 1; + } + setEphemeralLocal() { + capnp_ts_1.Struct.setUint16(0, 1, this); + } + toString() { + return "Worker_DurableObjectNamespace_" + super.toString(); + } + which() { + return capnp_ts_1.Struct.getUint16(0, this); + } + }; + exports.Worker_DurableObjectNamespace = Worker_DurableObjectNamespace; + Worker_DurableObjectNamespace.UNIQUE_KEY = Worker_DurableObjectNamespace_Which.UNIQUE_KEY; + Worker_DurableObjectNamespace.EPHEMERAL_LOCAL = Worker_DurableObjectNamespace_Which.EPHEMERAL_LOCAL; + Worker_DurableObjectNamespace._capnp = { displayName: "DurableObjectNamespace", id: "b429dd547d15747d", size: new capnp_ts_1.ObjectSize(8, 2) }; + var Worker_DurableObjectStorage_Which; + (function(Worker_DurableObjectStorage_Which2) { + Worker_DurableObjectStorage_Which2[Worker_DurableObjectStorage_Which2["NONE"] = 0] = "NONE"; + Worker_DurableObjectStorage_Which2[Worker_DurableObjectStorage_Which2["IN_MEMORY"] = 1] = "IN_MEMORY"; + Worker_DurableObjectStorage_Which2[Worker_DurableObjectStorage_Which2["LOCAL_DISK"] = 2] = "LOCAL_DISK"; + })(Worker_DurableObjectStorage_Which = exports.Worker_DurableObjectStorage_Which || (exports.Worker_DurableObjectStorage_Which = {})); + var Worker_DurableObjectStorage = class extends capnp_ts_1.Struct { + isNone() { + return capnp_ts_1.Struct.getUint16(2, this) === 0; + } + setNone() { + capnp_ts_1.Struct.setUint16(2, 0, this); + } + isInMemory() { + return capnp_ts_1.Struct.getUint16(2, this) === 1; + } + setInMemory() { + capnp_ts_1.Struct.setUint16(2, 1, this); + } + getLocalDisk() { + capnp_ts_1.Struct.testWhich("localDisk", capnp_ts_1.Struct.getUint16(2, this), 2, this); + return capnp_ts_1.Struct.getText(8, this); + } + isLocalDisk() { + return capnp_ts_1.Struct.getUint16(2, this) === 2; + } + setLocalDisk(value) { + capnp_ts_1.Struct.setUint16(2, 2, this); + capnp_ts_1.Struct.setText(8, value, this); + } + toString() { + return "Worker_DurableObjectStorage_" + super.toString(); + } + which() { + return capnp_ts_1.Struct.getUint16(2, this); + } + }; + exports.Worker_DurableObjectStorage = Worker_DurableObjectStorage; + Worker_DurableObjectStorage.NONE = Worker_DurableObjectStorage_Which.NONE; + Worker_DurableObjectStorage.IN_MEMORY = Worker_DurableObjectStorage_Which.IN_MEMORY; + Worker_DurableObjectStorage.LOCAL_DISK = Worker_DurableObjectStorage_Which.LOCAL_DISK; + Worker_DurableObjectStorage._capnp = { displayName: "durableObjectStorage", id: "cc72b3faa57827d4", size: new capnp_ts_1.ObjectSize(8, 9) }; + var Worker_Which; + (function(Worker_Which2) { + Worker_Which2[Worker_Which2["MODULES"] = 0] = "MODULES"; + Worker_Which2[Worker_Which2["SERVICE_WORKER_SCRIPT"] = 1] = "SERVICE_WORKER_SCRIPT"; + Worker_Which2[Worker_Which2["INHERIT"] = 2] = "INHERIT"; + })(Worker_Which = exports.Worker_Which || (exports.Worker_Which = {})); + var Worker2 = class extends capnp_ts_1.Struct { + adoptModules(value) { + capnp_ts_1.Struct.setUint16(0, 0, this); + capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this)); + } + disownModules() { + return capnp_ts_1.Struct.disown(this.getModules()); + } + getModules() { + capnp_ts_1.Struct.testWhich("modules", capnp_ts_1.Struct.getUint16(0, this), 0, this); + return capnp_ts_1.Struct.getList(0, Worker2._Modules, this); + } + hasModules() { + return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this)); + } + initModules(length) { + capnp_ts_1.Struct.setUint16(0, 0, this); + return capnp_ts_1.Struct.initList(0, Worker2._Modules, length, this); + } + isModules() { + return capnp_ts_1.Struct.getUint16(0, this) === 0; + } + setModules(value) { + capnp_ts_1.Struct.setUint16(0, 0, this); + capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this)); + } + getServiceWorkerScript() { + capnp_ts_1.Struct.testWhich("serviceWorkerScript", capnp_ts_1.Struct.getUint16(0, this), 1, this); + return capnp_ts_1.Struct.getText(0, this); + } + isServiceWorkerScript() { + return capnp_ts_1.Struct.getUint16(0, this) === 1; + } + setServiceWorkerScript(value) { + capnp_ts_1.Struct.setUint16(0, 1, this); + capnp_ts_1.Struct.setText(0, value, this); + } + getInherit() { + capnp_ts_1.Struct.testWhich("inherit", capnp_ts_1.Struct.getUint16(0, this), 2, this); + return capnp_ts_1.Struct.getText(0, this); + } + isInherit() { + return capnp_ts_1.Struct.getUint16(0, this) === 2; + } + setInherit(value) { + capnp_ts_1.Struct.setUint16(0, 2, this); + capnp_ts_1.Struct.setText(0, value, this); + } + getCompatibilityDate() { + return capnp_ts_1.Struct.getText(1, this); + } + setCompatibilityDate(value) { + capnp_ts_1.Struct.setText(1, value, this); + } + adoptCompatibilityFlags(value) { + capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(2, this)); + } + disownCompatibilityFlags() { + return capnp_ts_1.Struct.disown(this.getCompatibilityFlags()); + } + getCompatibilityFlags() { + return capnp_ts_1.Struct.getList(2, capnp.TextList, this); + } + hasCompatibilityFlags() { + return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(2, this)); + } + initCompatibilityFlags(length) { + return capnp_ts_1.Struct.initList(2, capnp.TextList, length, this); + } + setCompatibilityFlags(value) { + capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(2, this)); + } + adoptBindings(value) { + capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(3, this)); + } + disownBindings() { + return capnp_ts_1.Struct.disown(this.getBindings()); + } + getBindings() { + return capnp_ts_1.Struct.getList(3, Worker2._Bindings, this); + } + hasBindings() { + return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(3, this)); + } + initBindings(length) { + return capnp_ts_1.Struct.initList(3, Worker2._Bindings, length, this); + } + setBindings(value) { + capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(3, this)); + } + adoptGlobalOutbound(value) { + capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(4, this)); + } + disownGlobalOutbound() { + return capnp_ts_1.Struct.disown(this.getGlobalOutbound()); + } + getGlobalOutbound() { + return capnp_ts_1.Struct.getStruct(4, ServiceDesignator2, this, Worker2._capnp.defaultGlobalOutbound); + } + hasGlobalOutbound() { + return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(4, this)); + } + initGlobalOutbound() { + return capnp_ts_1.Struct.initStructAt(4, ServiceDesignator2, this); + } + setGlobalOutbound(value) { + capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(4, this)); + } + adoptCacheApiOutbound(value) { + capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(7, this)); + } + disownCacheApiOutbound() { + return capnp_ts_1.Struct.disown(this.getCacheApiOutbound()); + } + getCacheApiOutbound() { + return capnp_ts_1.Struct.getStruct(7, ServiceDesignator2, this); + } + hasCacheApiOutbound() { + return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(7, this)); + } + initCacheApiOutbound() { + return capnp_ts_1.Struct.initStructAt(7, ServiceDesignator2, this); + } + setCacheApiOutbound(value) { + capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(7, this)); + } + adoptDurableObjectNamespaces(value) { + capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(5, this)); + } + disownDurableObjectNamespaces() { + return capnp_ts_1.Struct.disown(this.getDurableObjectNamespaces()); + } + getDurableObjectNamespaces() { + return capnp_ts_1.Struct.getList(5, Worker2._DurableObjectNamespaces, this); + } + hasDurableObjectNamespaces() { + return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(5, this)); + } + initDurableObjectNamespaces(length) { + return capnp_ts_1.Struct.initList(5, Worker2._DurableObjectNamespaces, length, this); + } + setDurableObjectNamespaces(value) { + capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(5, this)); + } + getDurableObjectUniqueKeyModifier() { + return capnp_ts_1.Struct.getText(6, this); + } + setDurableObjectUniqueKeyModifier(value) { + capnp_ts_1.Struct.setText(6, value, this); + } + getDurableObjectStorage() { + return capnp_ts_1.Struct.getAs(Worker_DurableObjectStorage, this); + } + initDurableObjectStorage() { + return capnp_ts_1.Struct.getAs(Worker_DurableObjectStorage, this); + } + toString() { + return "Worker_" + super.toString(); + } + which() { + return capnp_ts_1.Struct.getUint16(0, this); + } + }; + exports.Worker = Worker2; + Worker2.MODULES = Worker_Which.MODULES; + Worker2.SERVICE_WORKER_SCRIPT = Worker_Which.SERVICE_WORKER_SCRIPT; + Worker2.INHERIT = Worker_Which.INHERIT; + Worker2.Module = Worker_Module3; + Worker2.Binding = Worker_Binding4; + Worker2.DurableObjectNamespace = Worker_DurableObjectNamespace; + Worker2._capnp = { displayName: "Worker", id: "acfa77e88fd97d1c", size: new capnp_ts_1.ObjectSize(8, 9), defaultGlobalOutbound: capnp.readRawPointer(new Uint8Array([16, 5, 64, 2, 17, 5, 74, 0, 0, 255, 105, 110, 116, 101, 114, 110, 101, 116, 0, 0, 0]).buffer) }; + var ExternalServer_Https = class extends capnp_ts_1.Struct { + adoptOptions(value) { + capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this)); + } + disownOptions() { + return capnp_ts_1.Struct.disown(this.getOptions()); + } + getOptions() { + return capnp_ts_1.Struct.getStruct(1, HttpOptions, this); + } + hasOptions() { + return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this)); + } + initOptions() { + return capnp_ts_1.Struct.initStructAt(1, HttpOptions, this); + } + setOptions(value) { + capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this)); + } + adoptTlsOptions(value) { + capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(2, this)); + } + disownTlsOptions() { + return capnp_ts_1.Struct.disown(this.getTlsOptions()); + } + getTlsOptions() { + return capnp_ts_1.Struct.getStruct(2, TlsOptions, this); + } + hasTlsOptions() { + return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(2, this)); + } + initTlsOptions() { + return capnp_ts_1.Struct.initStructAt(2, TlsOptions, this); + } + setTlsOptions(value) { + capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(2, this)); + } + getCertificateHost() { + return capnp_ts_1.Struct.getText(3, this); + } + setCertificateHost(value) { + capnp_ts_1.Struct.setText(3, value, this); + } + toString() { + return "ExternalServer_Https_" + super.toString(); + } + }; + exports.ExternalServer_Https = ExternalServer_Https; + ExternalServer_Https._capnp = { displayName: "https", id: "ac37e02afd3dc6db", size: new capnp_ts_1.ObjectSize(8, 4) }; + var ExternalServer_Which; + (function(ExternalServer_Which2) { + ExternalServer_Which2[ExternalServer_Which2["HTTP"] = 0] = "HTTP"; + ExternalServer_Which2[ExternalServer_Which2["HTTPS"] = 1] = "HTTPS"; + })(ExternalServer_Which = exports.ExternalServer_Which || (exports.ExternalServer_Which = {})); + var ExternalServer2 = class extends capnp_ts_1.Struct { + getAddress() { + return capnp_ts_1.Struct.getText(0, this); + } + setAddress(value) { + capnp_ts_1.Struct.setText(0, value, this); + } + adoptHttp(value) { + capnp_ts_1.Struct.setUint16(0, 0, this); + capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this)); + } + disownHttp() { + return capnp_ts_1.Struct.disown(this.getHttp()); + } + getHttp() { + capnp_ts_1.Struct.testWhich("http", capnp_ts_1.Struct.getUint16(0, this), 0, this); + return capnp_ts_1.Struct.getStruct(1, HttpOptions, this); + } + hasHttp() { + return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this)); + } + initHttp() { + capnp_ts_1.Struct.setUint16(0, 0, this); + return capnp_ts_1.Struct.initStructAt(1, HttpOptions, this); + } + isHttp() { + return capnp_ts_1.Struct.getUint16(0, this) === 0; + } + setHttp(value) { + capnp_ts_1.Struct.setUint16(0, 0, this); + capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this)); + } + getHttps() { + capnp_ts_1.Struct.testWhich("https", capnp_ts_1.Struct.getUint16(0, this), 1, this); + return capnp_ts_1.Struct.getAs(ExternalServer_Https, this); + } + initHttps() { + capnp_ts_1.Struct.setUint16(0, 1, this); + return capnp_ts_1.Struct.getAs(ExternalServer_Https, this); + } + isHttps() { + return capnp_ts_1.Struct.getUint16(0, this) === 1; + } + setHttps() { + capnp_ts_1.Struct.setUint16(0, 1, this); + } + toString() { + return "ExternalServer_" + super.toString(); + } + which() { + return capnp_ts_1.Struct.getUint16(0, this); + } + }; + exports.ExternalServer = ExternalServer2; + ExternalServer2.HTTP = ExternalServer_Which.HTTP; + ExternalServer2.HTTPS = ExternalServer_Which.HTTPS; + ExternalServer2._capnp = { displayName: "ExternalServer", id: "ff209f9aa352f5a4", size: new capnp_ts_1.ObjectSize(8, 4) }; + var Network = class extends capnp_ts_1.Struct { + adoptAllow(value) { + capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this)); + } + disownAllow() { + return capnp_ts_1.Struct.disown(this.getAllow()); + } + getAllow() { + return capnp_ts_1.Struct.getList(0, capnp.TextList, this, Network._capnp.defaultAllow); + } + hasAllow() { + return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this)); + } + initAllow(length) { + return capnp_ts_1.Struct.initList(0, capnp.TextList, length, this); + } + setAllow(value) { + capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this)); + } + adoptDeny(value) { + capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this)); + } + disownDeny() { + return capnp_ts_1.Struct.disown(this.getDeny()); + } + getDeny() { + return capnp_ts_1.Struct.getList(1, capnp.TextList, this); + } + hasDeny() { + return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this)); + } + initDeny(length) { + return capnp_ts_1.Struct.initList(1, capnp.TextList, length, this); + } + setDeny(value) { + capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this)); + } + adoptTlsOptions(value) { + capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(2, this)); + } + disownTlsOptions() { + return capnp_ts_1.Struct.disown(this.getTlsOptions()); + } + getTlsOptions() { + return capnp_ts_1.Struct.getStruct(2, TlsOptions, this); + } + hasTlsOptions() { + return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(2, this)); + } + initTlsOptions() { + return capnp_ts_1.Struct.initStructAt(2, TlsOptions, this); + } + setTlsOptions(value) { + capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(2, this)); + } + toString() { + return "Network_" + super.toString(); + } + }; + exports.Network = Network; + Network._capnp = { displayName: "Network", id: "fa42244f950c9b9c", size: new capnp_ts_1.ObjectSize(0, 3), defaultAllow: capnp.readRawPointer(new Uint8Array([16, 3, 17, 1, 14, 17, 1, 58, 63, 112, 117, 98, 108, 105, 99]).buffer) }; + var DiskDirectory = class extends capnp_ts_1.Struct { + getPath() { + return capnp_ts_1.Struct.getText(0, this); + } + setPath(value) { + capnp_ts_1.Struct.setText(0, value, this); + } + getWritable() { + return capnp_ts_1.Struct.getBit(0, this, DiskDirectory._capnp.defaultWritable); + } + setWritable(value) { + capnp_ts_1.Struct.setBit(0, value, this); + } + getAllowDotfiles() { + return capnp_ts_1.Struct.getBit(1, this, DiskDirectory._capnp.defaultAllowDotfiles); + } + setAllowDotfiles(value) { + capnp_ts_1.Struct.setBit(1, value, this); + } + toString() { + return "DiskDirectory_" + super.toString(); + } + }; + exports.DiskDirectory = DiskDirectory; + DiskDirectory._capnp = { displayName: "DiskDirectory", id: "9048ab22835f51c3", size: new capnp_ts_1.ObjectSize(8, 1), defaultWritable: capnp.getBitMask(false, 0), defaultAllowDotfiles: capnp.getBitMask(false, 1) }; + var HttpOptions_Style2; + (function(HttpOptions_Style3) { + HttpOptions_Style3[HttpOptions_Style3["HOST"] = 0] = "HOST"; + HttpOptions_Style3[HttpOptions_Style3["PROXY"] = 1] = "PROXY"; + })(HttpOptions_Style2 = exports.HttpOptions_Style || (exports.HttpOptions_Style = {})); + var HttpOptions_Header = class extends capnp_ts_1.Struct { + getName() { + return capnp_ts_1.Struct.getText(0, this); + } + setName(value) { + capnp_ts_1.Struct.setText(0, value, this); + } + getValue() { + return capnp_ts_1.Struct.getText(1, this); + } + setValue(value) { + capnp_ts_1.Struct.setText(1, value, this); + } + toString() { + return "HttpOptions_Header_" + super.toString(); + } + }; + exports.HttpOptions_Header = HttpOptions_Header; + HttpOptions_Header._capnp = { displayName: "Header", id: "dc0394b5a6f3417e", size: new capnp_ts_1.ObjectSize(0, 2) }; + var HttpOptions = class extends capnp_ts_1.Struct { + getStyle() { + return capnp_ts_1.Struct.getUint16(0, this, HttpOptions._capnp.defaultStyle); + } + setStyle(value) { + capnp_ts_1.Struct.setUint16(0, value, this); + } + getForwardedProtoHeader() { + return capnp_ts_1.Struct.getText(0, this); + } + setForwardedProtoHeader(value) { + capnp_ts_1.Struct.setText(0, value, this); + } + getCfBlobHeader() { + return capnp_ts_1.Struct.getText(1, this); + } + setCfBlobHeader(value) { + capnp_ts_1.Struct.setText(1, value, this); + } + adoptInjectRequestHeaders(value) { + capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(2, this)); + } + disownInjectRequestHeaders() { + return capnp_ts_1.Struct.disown(this.getInjectRequestHeaders()); + } + getInjectRequestHeaders() { + return capnp_ts_1.Struct.getList(2, HttpOptions._InjectRequestHeaders, this); + } + hasInjectRequestHeaders() { + return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(2, this)); + } + initInjectRequestHeaders(length) { + return capnp_ts_1.Struct.initList(2, HttpOptions._InjectRequestHeaders, length, this); + } + setInjectRequestHeaders(value) { + capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(2, this)); + } + adoptInjectResponseHeaders(value) { + capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(3, this)); + } + disownInjectResponseHeaders() { + return capnp_ts_1.Struct.disown(this.getInjectResponseHeaders()); + } + getInjectResponseHeaders() { + return capnp_ts_1.Struct.getList(3, HttpOptions._InjectResponseHeaders, this); + } + hasInjectResponseHeaders() { + return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(3, this)); + } + initInjectResponseHeaders(length) { + return capnp_ts_1.Struct.initList(3, HttpOptions._InjectResponseHeaders, length, this); + } + setInjectResponseHeaders(value) { + capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(3, this)); + } + toString() { + return "HttpOptions_" + super.toString(); + } + }; + exports.HttpOptions = HttpOptions; + HttpOptions.Style = HttpOptions_Style2; + HttpOptions.Header = HttpOptions_Header; + HttpOptions._capnp = { displayName: "HttpOptions", id: "aa8dc6885da78f19", size: new capnp_ts_1.ObjectSize(8, 4), defaultStyle: capnp.getUint16Mask(0) }; + var TlsOptions_Keypair = class extends capnp_ts_1.Struct { + getPrivateKey() { + return capnp_ts_1.Struct.getText(0, this); + } + setPrivateKey(value) { + capnp_ts_1.Struct.setText(0, value, this); + } + getCertificateChain() { + return capnp_ts_1.Struct.getText(1, this); + } + setCertificateChain(value) { + capnp_ts_1.Struct.setText(1, value, this); + } + toString() { + return "TlsOptions_Keypair_" + super.toString(); + } + }; + exports.TlsOptions_Keypair = TlsOptions_Keypair; + TlsOptions_Keypair._capnp = { displayName: "Keypair", id: "f546bf2d5d8bd13e", size: new capnp_ts_1.ObjectSize(0, 2) }; + var TlsOptions_Version2; + (function(TlsOptions_Version3) { + TlsOptions_Version3[TlsOptions_Version3["GOOD_DEFAULT"] = 0] = "GOOD_DEFAULT"; + TlsOptions_Version3[TlsOptions_Version3["SSL3"] = 1] = "SSL3"; + TlsOptions_Version3[TlsOptions_Version3["TLS1DOT0"] = 2] = "TLS1DOT0"; + TlsOptions_Version3[TlsOptions_Version3["TLS1DOT1"] = 3] = "TLS1DOT1"; + TlsOptions_Version3[TlsOptions_Version3["TLS1DOT2"] = 4] = "TLS1DOT2"; + TlsOptions_Version3[TlsOptions_Version3["TLS1DOT3"] = 5] = "TLS1DOT3"; + })(TlsOptions_Version2 = exports.TlsOptions_Version || (exports.TlsOptions_Version = {})); + var TlsOptions = class extends capnp_ts_1.Struct { + adoptKeypair(value) { + capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this)); + } + disownKeypair() { + return capnp_ts_1.Struct.disown(this.getKeypair()); + } + getKeypair() { + return capnp_ts_1.Struct.getStruct(0, TlsOptions_Keypair, this); + } + hasKeypair() { + return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this)); + } + initKeypair() { + return capnp_ts_1.Struct.initStructAt(0, TlsOptions_Keypair, this); + } + setKeypair(value) { + capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this)); + } + getRequireClientCerts() { + return capnp_ts_1.Struct.getBit(0, this, TlsOptions._capnp.defaultRequireClientCerts); + } + setRequireClientCerts(value) { + capnp_ts_1.Struct.setBit(0, value, this); + } + getTrustBrowserCas() { + return capnp_ts_1.Struct.getBit(1, this, TlsOptions._capnp.defaultTrustBrowserCas); + } + setTrustBrowserCas(value) { + capnp_ts_1.Struct.setBit(1, value, this); + } + adoptTrustedCertificates(value) { + capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this)); + } + disownTrustedCertificates() { + return capnp_ts_1.Struct.disown(this.getTrustedCertificates()); + } + getTrustedCertificates() { + return capnp_ts_1.Struct.getList(1, capnp.TextList, this); + } + hasTrustedCertificates() { + return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this)); + } + initTrustedCertificates(length) { + return capnp_ts_1.Struct.initList(1, capnp.TextList, length, this); + } + setTrustedCertificates(value) { + capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this)); + } + getMinVersion() { + return capnp_ts_1.Struct.getUint16(2, this, TlsOptions._capnp.defaultMinVersion); + } + setMinVersion(value) { + capnp_ts_1.Struct.setUint16(2, value, this); + } + getCipherList() { + return capnp_ts_1.Struct.getText(2, this); + } + setCipherList(value) { + capnp_ts_1.Struct.setText(2, value, this); + } + toString() { + return "TlsOptions_" + super.toString(); + } + }; + exports.TlsOptions = TlsOptions; + TlsOptions.Keypair = TlsOptions_Keypair; + TlsOptions.Version = TlsOptions_Version2; + TlsOptions._capnp = { displayName: "TlsOptions", id: "aabb3c3778ac4311", size: new capnp_ts_1.ObjectSize(8, 3), defaultRequireClientCerts: capnp.getBitMask(false, 0), defaultTrustBrowserCas: capnp.getBitMask(false, 1), defaultMinVersion: capnp.getUint16Mask(0) }; + var Extension_Module = class extends capnp_ts_1.Struct { + getName() { + return capnp_ts_1.Struct.getText(0, this); + } + setName(value) { + capnp_ts_1.Struct.setText(0, value, this); + } + getInternal() { + return capnp_ts_1.Struct.getBit(0, this, Extension_Module._capnp.defaultInternal); + } + setInternal(value) { + capnp_ts_1.Struct.setBit(0, value, this); + } + getEsModule() { + return capnp_ts_1.Struct.getText(1, this); + } + setEsModule(value) { + capnp_ts_1.Struct.setText(1, value, this); + } + toString() { + return "Extension_Module_" + super.toString(); + } + }; + exports.Extension_Module = Extension_Module; + Extension_Module._capnp = { displayName: "Module", id: "d5d16e76fdedc37d", size: new capnp_ts_1.ObjectSize(8, 2), defaultInternal: capnp.getBitMask(false, 0) }; + var Extension2 = class extends capnp_ts_1.Struct { + adoptModules(value) { + capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this)); + } + disownModules() { + return capnp_ts_1.Struct.disown(this.getModules()); + } + getModules() { + return capnp_ts_1.Struct.getList(0, Extension2._Modules, this); + } + hasModules() { + return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this)); + } + initModules(length) { + return capnp_ts_1.Struct.initList(0, Extension2._Modules, length, this); + } + setModules(value) { + capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this)); + } + toString() { + return "Extension_" + super.toString(); + } + }; + exports.Extension = Extension2; + Extension2.Module = Extension_Module; + Extension2._capnp = { displayName: "Extension", id: "e390128a861973a6", size: new capnp_ts_1.ObjectSize(0, 1) }; + Config3._Services = capnp.CompositeList(Service4); + Config3._Sockets = capnp.CompositeList(Socket2); + Config3._Extensions = capnp.CompositeList(Extension2); + Worker_Binding_WrappedBinding._InnerBindings = capnp.CompositeList(Worker_Binding4); + Worker2._Modules = capnp.CompositeList(Worker_Module3); + Worker2._Bindings = capnp.CompositeList(Worker_Binding4); + Worker2._DurableObjectNamespaces = capnp.CompositeList(Worker_DurableObjectNamespace); + HttpOptions._InjectRequestHeaders = capnp.CompositeList(HttpOptions_Header); + HttpOptions._InjectResponseHeaders = capnp.CompositeList(HttpOptions_Header); + Extension2._Modules = capnp.CompositeList(Extension_Module); + } +}); + +// packages/miniflare/src/index.ts +var src_exports = {}; +__export(src_exports, { + CACHE_PLUGIN: () => CACHE_PLUGIN, + CACHE_PLUGIN_NAME: () => CACHE_PLUGIN_NAME, + CORE_PLUGIN: () => CORE_PLUGIN, + CORE_PLUGIN_NAME: () => CORE_PLUGIN_NAME2, + CacheBindings: () => CacheBindings, + CacheHeaders: () => CacheHeaders, + CacheOptionsSchema: () => CacheOptionsSchema, + CacheSharedOptionsSchema: () => CacheSharedOptionsSchema, + CloseEvent: () => CloseEvent, + CoreBindings: () => CoreBindings, + CoreHeaders: () => CoreHeaders, + CoreOptionsSchema: () => CoreOptionsSchema, + CoreSharedOptionsSchema: () => CoreSharedOptionsSchema, + D1OptionsSchema: () => D1OptionsSchema, + D1SharedOptionsSchema: () => D1SharedOptionsSchema, + D1_PLUGIN: () => D1_PLUGIN, + D1_PLUGIN_NAME: () => D1_PLUGIN_NAME, + DEFAULT_PERSIST_ROOT: () => DEFAULT_PERSIST_ROOT, + DURABLE_OBJECTS_PLUGIN: () => DURABLE_OBJECTS_PLUGIN, + DURABLE_OBJECTS_PLUGIN_NAME: () => DURABLE_OBJECTS_PLUGIN_NAME, + DURABLE_OBJECTS_STORAGE_SERVICE_NAME: () => DURABLE_OBJECTS_STORAGE_SERVICE_NAME, + DeferredPromise: () => DeferredPromise, + DurableObjectsOptionsSchema: () => DurableObjectsOptionsSchema, + DurableObjectsSharedOptionsSchema: () => DurableObjectsSharedOptionsSchema, + ErrorEvent: () => ErrorEvent, + File: () => import_undici8.File, + FormData: () => import_undici8.FormData, + HEADER_CF_BLOB: () => HEADER_CF_BLOB, + Headers: () => import_undici8.Headers, + HttpOptions_Style: () => import_workerd_capnp.HttpOptions_Style, + JsonSchema: () => JsonSchema, + KVHeaders: () => KVHeaders, + KVLimits: () => KVLimits, + KVOptionsSchema: () => KVOptionsSchema, + KVParams: () => KVParams, + KVSharedOptionsSchema: () => KVSharedOptionsSchema, + KV_PLUGIN: () => KV_PLUGIN, + KV_PLUGIN_NAME: () => KV_PLUGIN_NAME, + LiteralSchema: () => LiteralSchema, + Log: () => Log, + LogLevel: () => LogLevel, + MessageEvent: () => MessageEvent, + Miniflare: () => Miniflare, + MiniflareCoreError: () => MiniflareCoreError, + MiniflareError: () => MiniflareError, + ModuleDefinitionSchema: () => ModuleDefinitionSchema, + ModuleRuleSchema: () => ModuleRuleSchema, + ModuleRuleTypeSchema: () => ModuleRuleTypeSchema, + Mutex: () => Mutex, + NoOpLog: () => NoOpLog, + PLUGINS: () => PLUGINS, + PLUGIN_ENTRIES: () => PLUGIN_ENTRIES, + PersistenceSchema: () => PersistenceSchema, + ProxyAddresses: () => ProxyAddresses, + ProxyClient: () => ProxyClient, + ProxyOps: () => ProxyOps, + QUEUES_PLUGIN: () => QUEUES_PLUGIN, + QUEUES_PLUGIN_NAME: () => QUEUES_PLUGIN_NAME, + QueueBindings: () => QueueBindings, + QueueConsumerOptionsSchema: () => QueueConsumerOptionsSchema, + QueueConsumerSchema: () => QueueConsumerSchema, + QueueConsumersSchema: () => QueueConsumersSchema, + QueueContentTypeSchema: () => QueueContentTypeSchema, + QueueIncomingMessageSchema: () => QueueIncomingMessageSchema, + QueuesBatchRequestSchema: () => QueuesBatchRequestSchema, + QueuesError: () => QueuesError, + QueuesOptionsSchema: () => QueuesOptionsSchema, + R2OptionsSchema: () => R2OptionsSchema, + R2SharedOptionsSchema: () => R2SharedOptionsSchema, + R2_PLUGIN: () => R2_PLUGIN, + R2_PLUGIN_NAME: () => R2_PLUGIN_NAME, + Request: () => Request, + Response: () => Response, + RouterError: () => RouterError, + Runtime: () => Runtime, + SERVICE_ENTRY: () => SERVICE_ENTRY, + SERVICE_LOOPBACK: () => SERVICE_LOOPBACK, + SITES_NO_CACHE_PREFIX: () => SITES_NO_CACHE_PREFIX, + SOCKET_ENTRY: () => SOCKET_ENTRY, + SharedBindings: () => SharedBindings, + SharedHeaders: () => SharedHeaders, + SiteBindings: () => SiteBindings, + SourceOptionsSchema: () => SourceOptionsSchema, + TlsOptions_Version: () => import_workerd_capnp.TlsOptions_Version, + TypedEventTarget: () => TypedEventTarget, + WORKER_BINDING_SERVICE_LOOPBACK: () => WORKER_BINDING_SERVICE_LOOPBACK, + WaitGroup: () => WaitGroup, + WebSocket: () => WebSocket, + WebSocketPair: () => WebSocketPair, + Worker_Binding_CryptoKey_Usage: () => import_workerd_capnp.Worker_Binding_CryptoKey_Usage, + _forceColour: () => _forceColour, + _formatZodError: () => _formatZodError, + _initialiseInstanceRegistry: () => _initialiseInstanceRegistry, + _transformsForContentEncoding: () => _transformsForContentEncoding, + base64Decode: () => base64Decode, + base64Encode: () => base64Encode, + configureEntrySocket: () => configureEntrySocket, + coupleWebSocket: () => coupleWebSocket, + createFetchMock: () => createFetchMock, + createHTTPReducers: () => createHTTPReducers, + createHTTPRevivers: () => createHTTPRevivers, + decodeSitesKey: () => decodeSitesKey, + deserialiseRegExps: () => deserialiseRegExps, + deserialiseSiteRegExps: () => deserialiseSiteRegExps, + encodeSitesKey: () => encodeSitesKey, + fetch: () => fetch2, + getAccessibleHosts: () => getAccessibleHosts, + getCacheServiceName: () => getCacheServiceName, + getGlobalServices: () => getGlobalServices, + getPersistPath: () => getPersistPath, + globsToRegExps: () => globsToRegExps, + isFetcherFetch: () => isFetcherFetch, + isR2ObjectWriteHttpMetadata: () => isR2ObjectWriteHttpMetadata, + isSitesRequest: () => isSitesRequest, + kProxyNodeBinding: () => kProxyNodeBinding, + kVoid: () => kVoid, + matchRoutes: () => matchRoutes, + maybeApply: () => maybeApply, + maybeGetSitesManifestModule: () => maybeGetSitesManifestModule, + maybeParseURL: () => maybeParseURL, + migrateDatabase: () => migrateDatabase, + namespaceEntries: () => namespaceEntries, + namespaceKeys: () => namespaceKeys, + normaliseDurableObject: () => normaliseDurableObject, + objectEntryWorker: () => objectEntryWorker, + parseRanges: () => parseRanges, + parseRoutes: () => parseRoutes, + parseWithReadableStreams: () => parseWithReadableStreams, + prefixError: () => prefixError, + prefixStream: () => prefixStream, + readPrefix: () => readPrefix, + reduceError: () => reduceError, + registerAllowUnauthorizedDispatcher: () => registerAllowUnauthorizedDispatcher, + sanitisePath: () => sanitisePath, + serialiseRegExps: () => serialiseRegExps, + serialiseSiteRegExps: () => serialiseSiteRegExps, + serializeConfig: () => serializeConfig, + stringifyWithStreams: () => stringifyWithStreams, + stripAnsi: () => stripAnsi, + structuredSerializableReducers: () => structuredSerializableReducers, + structuredSerializableRevivers: () => structuredSerializableRevivers, + supportedCompatibilityDate: () => import_workerd2.compatibilityDate, + testRegExps: () => testRegExps, + testSiteRegExps: () => testSiteRegExps, + viewToBuffer: () => viewToBuffer, + zAwaitable: () => zAwaitable +}); +module.exports = __toCommonJS(src_exports); +var import_assert11 = __toESM(require("assert")); +var import_crypto2 = __toESM(require("crypto")); +var import_fs17 = __toESM(require("fs")); +var import_http7 = __toESM(require("http")); +var import_net = __toESM(require("net")); +var import_os2 = __toESM(require("os")); +var import_path20 = __toESM(require("path")); +var import_web5 = require("stream/web"); +var import_util5 = __toESM(require("util")); +var import_zlib = __toESM(require("zlib")); +var import_exit_hook = __toESM(require("exit-hook")); + +// node_modules/kleur/colors.mjs +var FORCE_COLOR; +var NODE_DISABLE_COLORS; +var NO_COLOR; +var TERM; +var isTTY = true; +if (typeof process !== "undefined") { + ({ FORCE_COLOR, NODE_DISABLE_COLORS, NO_COLOR, TERM } = process.env || {}); + isTTY = process.stdout && process.stdout.isTTY; +} +var $ = { + enabled: !NODE_DISABLE_COLORS && NO_COLOR == null && TERM !== "dumb" && (FORCE_COLOR != null && FORCE_COLOR !== "0" || isTTY) +}; +function init(x, y) { + let rgx = new RegExp(`\\x1b\\[${y}m`, "g"); + let open = `\x1B[${x}m`, close = `\x1B[${y}m`; + return function(txt) { + if (!$.enabled || txt == null) + return txt; + return open + (!!~("" + txt).indexOf(close) ? txt.replace(rgx, close + open) : txt) + close; + }; +} +var reset = init(0, 0); +var bold = init(1, 22); +var dim = init(2, 22); +var italic = init(3, 23); +var underline = init(4, 24); +var inverse = init(7, 27); +var hidden = init(8, 28); +var strikethrough = init(9, 29); +var black = init(30, 39); +var red = init(31, 39); +var green = init(32, 39); +var yellow = init(33, 39); +var blue = init(34, 39); +var magenta = init(35, 39); +var cyan = init(36, 39); +var white = init(37, 39); +var gray = init(90, 39); +var grey = init(90, 39); +var bgBlack = init(40, 49); +var bgRed = init(41, 49); +var bgGreen = init(42, 49); +var bgYellow = init(43, 49); +var bgBlue = init(44, 49); +var bgMagenta = init(45, 49); +var bgCyan = init(46, 49); +var bgWhite = init(47, 49); + +// packages/miniflare/src/index.ts +var import_stoppable = __toESM(require("stoppable")); +var import_undici9 = require("undici"); + +// embed-worker:/home/jspspike/Projects/miniflare/packages/miniflare/src/workers/shared/index.worker.ts +var import_fs = __toESM(require("fs")); +var import_path = __toESM(require("path")); +var import_url = __toESM(require("url")); +var contents; +function index_worker_default() { + if (contents !== void 0) + return contents; + const filePath = import_path.default.join(__dirname, "workers", "shared/index.worker.js"); + contents = import_fs.default.readFileSync(filePath, "utf8") + "//# sourceURL=" + import_url.default.pathToFileURL(filePath); + return contents; +} + +// embed-worker:/home/jspspike/Projects/miniflare/packages/miniflare/src/workers/shared/zod.worker.ts +var import_fs2 = __toESM(require("fs")); +var import_path2 = __toESM(require("path")); +var import_url2 = __toESM(require("url")); +var contents2; +function zod_worker_default() { + if (contents2 !== void 0) + return contents2; + const filePath = import_path2.default.join(__dirname, "workers", "shared/zod.worker.js"); + contents2 = import_fs2.default.readFileSync(filePath, "utf8") + "//# sourceURL=" + import_url2.default.pathToFileURL(filePath); + return contents2; +} + +// packages/miniflare/src/index.ts +var import_ws3 = require("ws"); +var import_zod17 = require("zod"); + +// packages/miniflare/src/cf.ts +var import_assert = __toESM(require("assert")); +var import_promises = require("fs/promises"); +var import_path3 = __toESM(require("path")); +var import_undici = require("undici"); +var defaultCfPath = import_path3.default.resolve("node_modules", ".mf", "cf.json"); +var defaultCfFetchEndpoint = "https://workers.cloudflare.com/cf.json"; +var fallbackCf = { + asOrganization: "", + asn: 395747, + colo: "DFW", + city: "Austin", + region: "Texas", + regionCode: "TX", + metroCode: "635", + postalCode: "78701", + country: "US", + continent: "NA", + timezone: "America/Chicago", + latitude: "30.27130", + longitude: "-97.74260", + clientTcpRtt: 0, + httpProtocol: "HTTP/1.1", + requestPriority: "weight=192;exclusive=0", + tlsCipher: "AEAD-AES128-GCM-SHA256", + tlsVersion: "TLSv1.3", + tlsClientAuth: { + certPresented: "0", + certVerified: "NONE", + certRevoked: "0", + certIssuerDN: "", + certSubjectDN: "", + certIssuerDNRFC2253: "", + certSubjectDNRFC2253: "", + certIssuerDNLegacy: "", + certSubjectDNLegacy: "", + certSerial: "", + certIssuerSerial: "", + certSKI: "", + certIssuerSKI: "", + certFingerprintSHA1: "", + certFingerprintSHA256: "", + certNotBefore: "", + certNotAfter: "" + }, + edgeRequestKeepAliveStatus: 0, + hostMetadata: void 0, + clientTrustScore: 99, + botManagement: { + corporateProxy: false, + verifiedBot: false, + ja3Hash: "25b4882c2bcb50cd6b469ff28c596742", + staticResource: false, + detectionIds: [], + score: 99 + } +}; +var DAY = 864e5; +var CF_DAYS = 30; +async function setupCf(log, cf) { + if (!(cf ?? process.env.NODE_ENV !== "test")) { + return fallbackCf; + } + if (typeof cf === "object") { + return cf; + } + let cfPath = defaultCfPath; + if (typeof cf === "string") { + cfPath = cf; + } + try { + const storedCf = JSON.parse(await (0, import_promises.readFile)(cfPath, "utf8")); + const cfStat = await (0, import_promises.stat)(cfPath); + (0, import_assert.default)(Date.now() - cfStat.mtimeMs <= CF_DAYS * DAY); + return storedCf; + } catch { + } + try { + const res = await (0, import_undici.fetch)(defaultCfFetchEndpoint); + const cfText = await res.text(); + const storedCf = JSON.parse(cfText); + await (0, import_promises.mkdir)(import_path3.default.dirname(cfPath), { recursive: true }); + await (0, import_promises.writeFile)(cfPath, cfText, "utf8"); + log.debug("Updated `Request.cf` object cache!"); + return storedCf; + } catch (e) { + log.warn( + "Unable to fetch the `Request.cf` object! Falling back to a default placeholder...\n" + dim(e.cause ? e.cause.stack : e.stack) + ); + return fallbackCf; + } +} + +// packages/miniflare/src/http/fetch.ts +var import_undici4 = require("undici"); +var import_ws2 = __toESM(require("ws")); + +// packages/miniflare/src/workers/cache/constants.ts +var CacheHeaders = { + NAMESPACE: "cf-cache-namespace", + STATUS: "cf-cache-status" +}; +var CacheBindings = { + MAYBE_JSON_CACHE_WARN_USAGE: "MINIFLARE_CACHE_WARN_USAGE" +}; + +// packages/miniflare/src/workers/core/constants.ts +var CoreHeaders = { + CUSTOM_SERVICE: "MF-Custom-Service", + ORIGINAL_URL: "MF-Original-URL", + ERROR_STACK: "MF-Experimental-Error-Stack", + ROUTE_OVERRIDE: "MF-Route-Override", + // API Proxy + OP: "MF-Op", + OP_TARGET: "MF-Op-Target", + OP_KEY: "MF-Op-Key", + OP_SYNC: "MF-Op-Sync", + OP_STRINGIFIED_SIZE: "MF-Op-Stringified-Size", + OP_RESULT_TYPE: "MF-Op-Result-Type" +}; +var CoreBindings = { + SERVICE_LOOPBACK: "MINIFLARE_LOOPBACK", + SERVICE_USER_ROUTE_PREFIX: "MINIFLARE_USER_ROUTE_", + SERVICE_USER_FALLBACK: "MINIFLARE_USER_FALLBACK", + TEXT_CUSTOM_SERVICE: "MINIFLARE_CUSTOM_SERVICE", + TEXT_UPSTREAM_URL: "MINIFLARE_UPSTREAM_URL", + JSON_CF_BLOB: "CF_BLOB", + JSON_ROUTES: "MINIFLARE_ROUTES", + JSON_LOG_LEVEL: "MINIFLARE_LOG_LEVEL", + DATA_LIVE_RELOAD_SCRIPT: "MINIFLARE_LIVE_RELOAD_SCRIPT", + DURABLE_OBJECT_NAMESPACE_PROXY: "MINIFLARE_PROXY" +}; +var ProxyOps = { + // Get the target or a property of the target + GET: "GET", + // Call a method on the target + CALL: "CALL", + // Remove the strong reference to the target on the "heap", allowing it to be + // garbage collected + FREE: "FREE" +}; +var ProxyAddresses = { + GLOBAL: 0, + // globalThis + ENV: 1, + // env + USER_START: 2 +}; +function isFetcherFetch(targetName, key) { + return (targetName === "Fetcher" || targetName === "DurableObject") && key === "fetch"; +} +function isR2ObjectWriteHttpMetadata(targetName, key) { + return (targetName === "HeadResult" || targetName === "GetResult") && key === "writeHttpMetadata"; +} + +// packages/miniflare/src/workers/core/devalue.ts +var import_node_assert = __toESM(require("node:assert")); +var import_node_buffer = require("node:buffer"); + +// node_modules/devalue/src/utils.js +var escaped = { + "<": "\\u003C", + ">": "\\u003E", + "/": "\\u002F", + "\\": "\\\\", + "\b": "\\b", + "\f": "\\f", + "\n": "\\n", + "\r": "\\r", + " ": "\\t", + "\0": "\\u0000", + "\u2028": "\\u2028", + "\u2029": "\\u2029" +}; +var DevalueError = class extends Error { + /** + * @param {string} message + * @param {string[]} keys + */ + constructor(message, keys) { + super(message); + this.name = "DevalueError"; + this.path = keys.join(""); + } +}; +function is_primitive(thing) { + return Object(thing) !== thing; +} +var object_proto_names = Object.getOwnPropertyNames(Object.prototype).sort().join("\0"); +function is_plain_object(thing) { + const proto = Object.getPrototypeOf(thing); + return proto === Object.prototype || proto === null || Object.getOwnPropertyNames(proto).sort().join("\0") === object_proto_names; +} +function get_type(thing) { + return Object.prototype.toString.call(thing).slice(8, -1); +} +function stringify_string(str) { + let result = '"'; + for (let i = 0; i < str.length; i += 1) { + const char = str.charAt(i); + const code = char.charCodeAt(0); + if (char === '"') { + result += '\\"'; + } else if (char in escaped) { + result += escaped[char]; + } else if (code <= 31) { + result += `\\u${code.toString(16).toUpperCase().padStart(4, "0")}`; + } else if (code >= 55296 && code <= 57343) { + const next = str.charCodeAt(i + 1); + if (code <= 56319 && next >= 56320 && next <= 57343) { + result += char + str[++i]; + } else { + result += `\\u${code.toString(16).toUpperCase()}`; + } + } else { + result += char; + } + } + result += '"'; + return result; +} + +// node_modules/devalue/src/constants.js +var UNDEFINED = -1; +var HOLE = -2; +var NAN = -3; +var POSITIVE_INFINITY = -4; +var NEGATIVE_INFINITY = -5; +var NEGATIVE_ZERO = -6; + +// node_modules/devalue/src/parse.js +function parse(serialized, revivers2) { + return unflatten(JSON.parse(serialized), revivers2); +} +function unflatten(parsed, revivers2) { + if (typeof parsed === "number") + return hydrate(parsed, true); + if (!Array.isArray(parsed) || parsed.length === 0) { + throw new Error("Invalid input"); + } + const values = ( + /** @type {any[]} */ + parsed + ); + const hydrated = Array(values.length); + function hydrate(index, standalone = false) { + if (index === UNDEFINED) + return void 0; + if (index === NAN) + return NaN; + if (index === POSITIVE_INFINITY) + return Infinity; + if (index === NEGATIVE_INFINITY) + return -Infinity; + if (index === NEGATIVE_ZERO) + return -0; + if (standalone) + throw new Error(`Invalid input`); + if (index in hydrated) + return hydrated[index]; + const value = values[index]; + if (!value || typeof value !== "object") { + hydrated[index] = value; + } else if (Array.isArray(value)) { + if (typeof value[0] === "string") { + const type = value[0]; + const reviver = revivers2?.[type]; + if (reviver) { + return hydrated[index] = reviver(hydrate(value[1])); + } + switch (type) { + case "Date": + hydrated[index] = new Date(value[1]); + break; + case "Set": + const set = /* @__PURE__ */ new Set(); + hydrated[index] = set; + for (let i = 1; i < value.length; i += 1) { + set.add(hydrate(value[i])); + } + break; + case "Map": + const map = /* @__PURE__ */ new Map(); + hydrated[index] = map; + for (let i = 1; i < value.length; i += 2) { + map.set(hydrate(value[i]), hydrate(value[i + 1])); + } + break; + case "RegExp": + hydrated[index] = new RegExp(value[1], value[2]); + break; + case "Object": + hydrated[index] = Object(value[1]); + break; + case "BigInt": + hydrated[index] = BigInt(value[1]); + break; + case "null": + const obj = /* @__PURE__ */ Object.create(null); + hydrated[index] = obj; + for (let i = 1; i < value.length; i += 2) { + obj[value[i]] = hydrate(value[i + 1]); + } + break; + default: + throw new Error(`Unknown type ${type}`); + } + } else { + const array = new Array(value.length); + hydrated[index] = array; + for (let i = 0; i < value.length; i += 1) { + const n = value[i]; + if (n === HOLE) + continue; + array[i] = hydrate(n); + } + } + } else { + const object = {}; + hydrated[index] = object; + for (const key in value) { + const n = value[key]; + object[key] = hydrate(n); + } + } + return hydrated[index]; + } + return hydrate(0); +} + +// node_modules/devalue/src/stringify.js +function stringify(value, reducers2) { + const stringified = []; + const indexes = /* @__PURE__ */ new Map(); + const custom = []; + for (const key in reducers2) { + custom.push({ key, fn: reducers2[key] }); + } + const keys = []; + let p = 0; + function flatten(thing) { + if (typeof thing === "function") { + throw new DevalueError(`Cannot stringify a function`, keys); + } + if (indexes.has(thing)) + return indexes.get(thing); + if (thing === void 0) + return UNDEFINED; + if (Number.isNaN(thing)) + return NAN; + if (thing === Infinity) + return POSITIVE_INFINITY; + if (thing === -Infinity) + return NEGATIVE_INFINITY; + if (thing === 0 && 1 / thing < 0) + return NEGATIVE_ZERO; + const index2 = p++; + indexes.set(thing, index2); + for (const { key, fn } of custom) { + const value2 = fn(thing); + if (value2) { + stringified[index2] = `["${key}",${flatten(value2)}]`; + return index2; + } + } + let str = ""; + if (is_primitive(thing)) { + str = stringify_primitive(thing); + } else { + const type = get_type(thing); + switch (type) { + case "Number": + case "String": + case "Boolean": + str = `["Object",${stringify_primitive(thing)}]`; + break; + case "BigInt": + str = `["BigInt",${thing}]`; + break; + case "Date": + str = `["Date","${thing.toISOString()}"]`; + break; + case "RegExp": + const { source, flags } = thing; + str = flags ? `["RegExp",${stringify_string(source)},"${flags}"]` : `["RegExp",${stringify_string(source)}]`; + break; + case "Array": + str = "["; + for (let i = 0; i < thing.length; i += 1) { + if (i > 0) + str += ","; + if (i in thing) { + keys.push(`[${i}]`); + str += flatten(thing[i]); + keys.pop(); + } else { + str += HOLE; + } + } + str += "]"; + break; + case "Set": + str = '["Set"'; + for (const value2 of thing) { + str += `,${flatten(value2)}`; + } + str += "]"; + break; + case "Map": + str = '["Map"'; + for (const [key, value2] of thing) { + keys.push( + `.get(${is_primitive(key) ? stringify_primitive(key) : "..."})` + ); + str += `,${flatten(key)},${flatten(value2)}`; + } + str += "]"; + break; + default: + if (!is_plain_object(thing)) { + throw new DevalueError( + `Cannot stringify arbitrary non-POJOs`, + keys + ); + } + if (Object.getOwnPropertySymbols(thing).length > 0) { + throw new DevalueError( + `Cannot stringify POJOs with symbolic keys`, + keys + ); + } + if (Object.getPrototypeOf(thing) === null) { + str = '["null"'; + for (const key in thing) { + keys.push(`.${key}`); + str += `,${stringify_string(key)},${flatten(thing[key])}`; + keys.pop(); + } + str += "]"; + } else { + str = "{"; + let started = false; + for (const key in thing) { + if (started) + str += ","; + started = true; + keys.push(`.${key}`); + str += `${stringify_string(key)}:${flatten(thing[key])}`; + keys.pop(); + } + str += "}"; + } + } + } + stringified[index2] = str; + return index2; + } + const index = flatten(value); + if (index < 0) + return `${index}`; + return `[${stringified.join(",")}]`; +} +function stringify_primitive(thing) { + const type = typeof thing; + if (type === "string") + return stringify_string(thing); + if (thing instanceof String) + return stringify_string(thing.toString()); + if (thing === void 0) + return UNDEFINED.toString(); + if (thing === 0 && 1 / thing < 0) + return NEGATIVE_ZERO.toString(); + if (type === "bigint") + return `["BigInt","${thing}"]`; + return String(thing); +} + +// packages/miniflare/src/workers/core/devalue.ts +var ALLOWED_ARRAY_BUFFER_VIEW_CONSTRUCTORS = [ + DataView, + Int8Array, + Uint8Array, + Uint8ClampedArray, + Int16Array, + Uint16Array, + Int32Array, + Uint32Array, + Float32Array, + Float64Array, + BigInt64Array, + BigUint64Array +]; +var ALLOWED_ERROR_CONSTRUCTORS = [ + EvalError, + RangeError, + ReferenceError, + SyntaxError, + TypeError, + URIError, + Error + // `Error` last so more specific error subclasses preferred +]; +var structuredSerializableReducers = { + ArrayBuffer(value) { + if (value instanceof ArrayBuffer) { + return [import_node_buffer.Buffer.from(value).toString("base64")]; + } + }, + ArrayBufferView(value) { + if (ArrayBuffer.isView(value)) { + return [ + value.constructor.name, + value.buffer, + value.byteOffset, + value.byteLength + ]; + } + }, + Error(value) { + for (const ctor of ALLOWED_ERROR_CONSTRUCTORS) { + if (value instanceof ctor && value.name === ctor.name) { + return [value.name, value.message, value.stack, value.cause]; + } + } + if (value instanceof Error) { + return ["Error", value.message, value.stack, value.cause]; + } + } +}; +var structuredSerializableRevivers = { + ArrayBuffer(value) { + (0, import_node_assert.default)(Array.isArray(value)); + const [encoded] = value; + (0, import_node_assert.default)(typeof encoded === "string"); + const view = import_node_buffer.Buffer.from(encoded, "base64"); + return view.buffer.slice( + view.byteOffset, + view.byteOffset + view.byteLength + ); + }, + ArrayBufferView(value) { + (0, import_node_assert.default)(Array.isArray(value)); + const [name, buffer, byteOffset, byteLength] = value; + (0, import_node_assert.default)(typeof name === "string"); + (0, import_node_assert.default)(buffer instanceof ArrayBuffer); + (0, import_node_assert.default)(typeof byteOffset === "number"); + (0, import_node_assert.default)(typeof byteLength === "number"); + const ctor = globalThis[name]; + (0, import_node_assert.default)(ALLOWED_ARRAY_BUFFER_VIEW_CONSTRUCTORS.includes(ctor)); + let length = byteLength; + if ("BYTES_PER_ELEMENT" in ctor) + length /= ctor.BYTES_PER_ELEMENT; + return new ctor(buffer, byteOffset, length); + }, + Error(value) { + (0, import_node_assert.default)(Array.isArray(value)); + const [name, message, stack, cause] = value; + (0, import_node_assert.default)(typeof name === "string"); + (0, import_node_assert.default)(typeof message === "string"); + (0, import_node_assert.default)(stack === void 0 || typeof stack === "string"); + const ctor = globalThis[name]; + (0, import_node_assert.default)(ALLOWED_ERROR_CONSTRUCTORS.includes(ctor)); + const error = new ctor(message, { cause }); + error.stack = stack; + return error; + } +}; +function createHTTPReducers(impl) { + return { + Headers(val) { + if (val instanceof impl.Headers) + return Object.fromEntries(val); + }, + Request(val) { + if (val instanceof impl.Request) { + return [val.method, val.url, val.headers, val.cf, val.body]; + } + }, + Response(val) { + if (val instanceof impl.Response) { + return [val.status, val.statusText, val.headers, val.cf, val.body]; + } + } + }; +} +function createHTTPRevivers(impl) { + return { + Headers(value) { + (0, import_node_assert.default)(typeof value === "object" && value !== null); + return new impl.Headers(value); + }, + Request(value) { + (0, import_node_assert.default)(Array.isArray(value)); + const [method, url13, headers, cf, body] = value; + (0, import_node_assert.default)(typeof method === "string"); + (0, import_node_assert.default)(typeof url13 === "string"); + (0, import_node_assert.default)(headers instanceof impl.Headers); + (0, import_node_assert.default)(body === null || impl.isReadableStream(body)); + return new impl.Request(url13, { + method, + headers, + cf, + // @ts-expect-error `duplex` is not required by `workerd` yet + duplex: body === null ? void 0 : "half", + body + }); + }, + Response(value) { + (0, import_node_assert.default)(Array.isArray(value)); + const [status, statusText, headers, cf, body] = value; + (0, import_node_assert.default)(typeof status === "number"); + (0, import_node_assert.default)(typeof statusText === "string"); + (0, import_node_assert.default)(headers instanceof impl.Headers); + (0, import_node_assert.default)(body === null || impl.isReadableStream(body)); + return new impl.Response(body, { + status, + statusText, + headers, + cf + }); + } + }; +} +function stringifyWithStreams(impl, value, reducers2, allowUnbufferedStream) { + let unbufferedStream; + const bufferPromises = []; + const streamReducers = { + ReadableStream(value2) { + if (impl.isReadableStream(value2)) { + if (allowUnbufferedStream && unbufferedStream === void 0) { + unbufferedStream = value2; + } else { + bufferPromises.push(impl.bufferReadableStream(value2)); + } + return true; + } + }, + Blob(value2) { + if (value2 instanceof impl.Blob) { + bufferPromises.push(value2.arrayBuffer()); + return true; + } + }, + ...reducers2 + }; + const stringifiedValue = stringify(value, streamReducers); + if (bufferPromises.length === 0) { + return { value: stringifiedValue, unbufferedStream }; + } + return Promise.all(bufferPromises).then((streamBuffers) => { + streamReducers.ReadableStream = function(value2) { + if (impl.isReadableStream(value2)) { + if (value2 === unbufferedStream) { + return true; + } else { + return streamBuffers.shift(); + } + } + }; + streamReducers.Blob = function(value2) { + if (value2 instanceof impl.Blob) { + const array = [streamBuffers.shift(), value2.type]; + if (value2 instanceof impl.File) { + array.push(value2.name, value2.lastModified); + } + return array; + } + }; + const stringifiedValue2 = stringify(value, streamReducers); + return { value: stringifiedValue2, unbufferedStream }; + }); +} +function parseWithReadableStreams(impl, stringified, revivers2) { + const streamRevivers = { + ReadableStream(value) { + if (value === true) { + (0, import_node_assert.default)(stringified.unbufferedStream !== void 0); + return stringified.unbufferedStream; + } + (0, import_node_assert.default)(value instanceof ArrayBuffer); + return impl.unbufferReadableStream(value); + }, + Blob(value) { + (0, import_node_assert.default)(Array.isArray(value)); + if (value.length === 2) { + const [buffer, type] = value; + (0, import_node_assert.default)(buffer instanceof ArrayBuffer); + (0, import_node_assert.default)(typeof type === "string"); + const opts = {}; + if (type !== "") + opts.type = type; + return new impl.Blob([buffer], opts); + } else { + (0, import_node_assert.default)(value.length === 4); + const [buffer, type, name, lastModified] = value; + (0, import_node_assert.default)(buffer instanceof ArrayBuffer); + (0, import_node_assert.default)(typeof type === "string"); + (0, import_node_assert.default)(typeof name === "string"); + (0, import_node_assert.default)(typeof lastModified === "number"); + const opts = { lastModified }; + if (type !== "") + opts.type = type; + return new impl.File([buffer], name, opts); + } + }, + ...revivers2 + }; + return parse(stringified.value, streamRevivers); +} + +// packages/miniflare/src/workers/core/routing.ts +function matchRoutes(routes, url13) { + for (const route of routes) { + if (route.protocol && route.protocol !== url13.protocol) + continue; + if (route.allowHostnamePrefix) { + if (!url13.hostname.endsWith(route.hostname)) + continue; + } else { + if (url13.hostname !== route.hostname) + continue; + } + const path21 = url13.pathname + url13.search; + if (route.allowPathSuffix) { + if (!path21.startsWith(route.path)) + continue; + } else { + if (path21 !== route.path) + continue; + } + return route.target; + } + return null; +} + +// packages/miniflare/src/workers/shared/constants.ts +var SharedHeaders = { + LOG_LEVEL: "MF-Log-Level" +}; +var SharedBindings = { + TEXT_NAMESPACE: "MINIFLARE_NAMESPACE", + DURABLE_OBJECT_NAMESPACE_OBJECT: "MINIFLARE_OBJECT", + MAYBE_SERVICE_BLOBS: "MINIFLARE_BLOBS", + MAYBE_SERVICE_LOOPBACK: "MINIFLARE_LOOPBACK" +}; +var LogLevel = /* @__PURE__ */ ((LogLevel2) => { + LogLevel2[LogLevel2["NONE"] = 0] = "NONE"; + LogLevel2[LogLevel2["ERROR"] = 1] = "ERROR"; + LogLevel2[LogLevel2["WARN"] = 2] = "WARN"; + LogLevel2[LogLevel2["INFO"] = 3] = "INFO"; + LogLevel2[LogLevel2["DEBUG"] = 4] = "DEBUG"; + LogLevel2[LogLevel2["VERBOSE"] = 5] = "VERBOSE"; + return LogLevel2; +})(LogLevel || {}); + +// packages/miniflare/src/workers/shared/data.ts +var import_node_buffer2 = require("node:buffer"); +function viewToBuffer(view) { + return view.buffer.slice(view.byteOffset, view.byteOffset + view.byteLength); +} +function base64Encode(value) { + return import_node_buffer2.Buffer.from(value, "utf8").toString("base64"); +} +function base64Decode(encoded) { + return import_node_buffer2.Buffer.from(encoded, "base64").toString("utf8"); +} +var dotRegexp = /(^|\/|\\)(\.+)(\/|\\|$)/g; +var illegalRegexp = /[?<>*"'^/\\:|\x00-\x1f\x80-\x9f]/g; +var windowsReservedRegexp = /^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\..*)?$/i; +var leadingRegexp = /^[ /\\]+/; +var trailingRegexp = /[ /\\]+$/; +function dotReplacement(match, g1, g2, g3) { + return `${g1}${"".padStart(g2.length, "_")}${g3}`; +} +function underscoreReplacement(match) { + return "".padStart(match.length, "_"); +} +function sanitisePath(unsafe) { + return unsafe.replace(dotRegexp, dotReplacement).replace(dotRegexp, dotReplacement).replace(illegalRegexp, "_").replace(windowsReservedRegexp, "_").replace(leadingRegexp, underscoreReplacement).replace(trailingRegexp, underscoreReplacement).substring(0, 255); +} + +// packages/miniflare/src/workers/shared/matcher.ts +function testRegExps(matcher, value) { + for (const exclude of matcher.exclude) + if (exclude.test(value)) + return false; + for (const include of matcher.include) + if (include.test(value)) + return true; + return false; +} + +// packages/miniflare/src/workers/shared/range.ts +var rangePrefixRegexp = /^ *bytes *=/i; +var rangeRegexp = /^ *(?<start>\d+)? *- *(?<end>\d+)? *$/; +function parseRanges(rangeHeader, length) { + const prefixMatch = rangePrefixRegexp.exec(rangeHeader); + if (prefixMatch === null) + return; + rangeHeader = rangeHeader.substring(prefixMatch[0].length); + if (rangeHeader.trimStart() === "") + return []; + const ranges = rangeHeader.split(","); + const result = []; + for (const range of ranges) { + const match = rangeRegexp.exec(range); + if (match === null) + return; + const { start, end } = match.groups; + if (start !== void 0 && end !== void 0) { + const rangeStart = parseInt(start); + let rangeEnd = parseInt(end); + if (rangeStart > rangeEnd) + return; + if (rangeStart >= length) + return; + if (rangeEnd >= length) + rangeEnd = length - 1; + result.push({ start: rangeStart, end: rangeEnd }); + } else if (start !== void 0 && end === void 0) { + const rangeStart = parseInt(start); + if (rangeStart >= length) + return; + result.push({ start: rangeStart, end: length - 1 }); + } else if (start === void 0 && end !== void 0) { + const suffix = parseInt(end); + if (suffix >= length) + return []; + if (suffix === 0) + continue; + result.push({ start: length - suffix, end: length - 1 }); + } else { + return; + } + } + return result; +} + +// packages/miniflare/src/workers/shared/sync.ts +var import_node_assert2 = __toESM(require("node:assert")); +var DeferredPromise = class extends Promise { + resolve; + reject; + constructor(executor = () => { + }) { + let promiseResolve; + let promiseReject; + super((resolve, reject) => { + promiseResolve = resolve; + promiseReject = reject; + return executor(resolve, reject); + }); + this.resolve = promiseResolve; + this.reject = promiseReject; + } +}; +var Mutex = class { + locked = false; + resolveQueue = []; + drainQueue = []; + lock() { + if (!this.locked) { + this.locked = true; + return; + } + return new Promise((resolve) => this.resolveQueue.push(resolve)); + } + unlock() { + (0, import_node_assert2.default)(this.locked); + if (this.resolveQueue.length > 0) { + this.resolveQueue.shift()?.(); + } else { + this.locked = false; + let resolve; + while ((resolve = this.drainQueue.shift()) !== void 0) + resolve(); + } + } + get hasWaiting() { + return this.resolveQueue.length > 0; + } + async runWith(closure) { + const acquireAwaitable = this.lock(); + if (acquireAwaitable instanceof Promise) + await acquireAwaitable; + try { + const awaitable = closure(); + if (awaitable instanceof Promise) + return await awaitable; + return awaitable; + } finally { + this.unlock(); + } + } + async drained() { + if (this.resolveQueue.length === 0) + return; + return new Promise((resolve) => this.drainQueue.push(resolve)); + } +}; +var WaitGroup = class { + counter = 0; + resolveQueue = []; + add() { + this.counter++; + } + done() { + (0, import_node_assert2.default)(this.counter > 0); + this.counter--; + if (this.counter === 0) { + let resolve; + while ((resolve = this.resolveQueue.shift()) !== void 0) + resolve(); + } + } + wait() { + if (this.counter === 0) + return Promise.resolve(); + return new Promise((resolve) => this.resolveQueue.push(resolve)); + } +}; + +// packages/miniflare/src/workers/shared/types.ts +function reduceError(e) { + return { + name: e?.name, + message: e?.message ?? String(e), + stack: e?.stack, + cause: e?.cause === void 0 ? void 0 : reduceError(e.cause) + }; +} +function maybeApply(f, maybeValue) { + return maybeValue === void 0 ? void 0 : f(maybeValue); +} + +// packages/miniflare/src/workers/kv/constants.ts +var KVLimits = { + MIN_CACHE_TTL: 60, + MAX_LIST_KEYS: 1e3, + MAX_KEY_SIZE: 512, + MAX_VALUE_SIZE: 25 * 1024 * 1024, + MAX_VALUE_SIZE_TEST: 1024, + MAX_METADATA_SIZE: 1024 +}; +var KVParams = { + URL_ENCODED: "urlencoded", + CACHE_TTL: "cache_ttl", + EXPIRATION: "expiration", + EXPIRATION_TTL: "expiration_ttl", + LIST_LIMIT: "key_count_limit", + LIST_PREFIX: "prefix", + LIST_CURSOR: "cursor" +}; +var KVHeaders = { + EXPIRATION: "CF-Expiration", + METADATA: "CF-KV-Metadata" +}; +var SiteBindings = { + KV_NAMESPACE_SITE: "__STATIC_CONTENT", + JSON_SITE_MANIFEST: "__STATIC_CONTENT_MANIFEST", + JSON_SITE_FILTER: "MINIFLARE_SITE_FILTER" +}; +var SITES_NO_CACHE_PREFIX = "$__MINIFLARE_SITES__$/"; +function encodeSitesKey(key) { + return SITES_NO_CACHE_PREFIX + encodeURIComponent(key); +} +function decodeSitesKey(key) { + return key.startsWith(SITES_NO_CACHE_PREFIX) ? decodeURIComponent(key.substring(SITES_NO_CACHE_PREFIX.length)) : key; +} +function isSitesRequest(request) { + const url13 = new URL(request.url); + return url13.pathname.startsWith(`/${SITES_NO_CACHE_PREFIX}`); +} +function serialiseRegExp(regExp) { + const str = regExp.toString(); + return str.substring(str.indexOf("/") + 1, str.lastIndexOf("/")); +} +function serialiseRegExps(matcher) { + return { + include: matcher.include.map(serialiseRegExp), + exclude: matcher.exclude.map(serialiseRegExp) + }; +} +function deserialiseRegExps(matcher) { + return { + include: matcher.include.map((regExp) => new RegExp(regExp)), + exclude: matcher.exclude.map((regExp) => new RegExp(regExp)) + }; +} +function serialiseSiteRegExps(siteRegExps) { + return { + include: siteRegExps.include && serialiseRegExps(siteRegExps.include), + exclude: siteRegExps.exclude && serialiseRegExps(siteRegExps.exclude) + }; +} +function deserialiseSiteRegExps(siteRegExps) { + return { + include: siteRegExps.include && deserialiseRegExps(siteRegExps.include), + exclude: siteRegExps.exclude && deserialiseRegExps(siteRegExps.exclude) + }; +} +function testSiteRegExps(regExps, key) { + if (regExps.include !== void 0) + return testRegExps(regExps.include, key); + if (regExps.exclude !== void 0) + return !testRegExps(regExps.exclude, key); + return true; +} + +// packages/miniflare/src/workers/queues/constants.ts +var QueueBindings = { + SERVICE_WORKER_PREFIX: "MINIFLARE_WORKER_", + MAYBE_JSON_QUEUE_CONSUMERS: "MINIFLARE_QUEUE_CONSUMERS" +}; + +// packages/miniflare/src/workers/shared/zod.worker.ts +var import_node_buffer3 = require("node:buffer"); +var import_zod = require("zod"); +var import_zod2 = require("zod"); +var HEX_REGEXP = /^[0-9a-f]*$/i; +var BASE64_REGEXP = /^[0-9a-z+/=]*$/i; +var HexDataSchema = import_zod.z.string().regex(HEX_REGEXP).transform((hex) => import_node_buffer3.Buffer.from(hex, "hex")); +var Base64DataSchema = import_zod.z.string().regex(BASE64_REGEXP).transform((base64) => import_node_buffer3.Buffer.from(base64, "base64")); + +// packages/miniflare/src/workers/queues/schemas.ts +var QueueConsumerOptionsSchema = /* @__PURE__ */ import_zod2.z.object({ + // https://developers.cloudflare.com/queues/platform/configuration/#consumer + // https://developers.cloudflare.com/queues/platform/limits/ + maxBatchSize: import_zod2.z.number().min(0).max(100).optional(), + maxBatchTimeout: import_zod2.z.number().min(0).max(30).optional(), + // seconds + maxRetires: import_zod2.z.number().min(0).max(100).optional(), + deadLetterQueue: import_zod2.z.ostring() +}); +var QueueConsumerSchema = /* @__PURE__ */ import_zod2.z.intersection( + QueueConsumerOptionsSchema, + import_zod2.z.object({ workerName: import_zod2.z.string() }) +); +var QueueConsumersSchema = /* @__PURE__ */ import_zod2.z.record(QueueConsumerSchema); +var QueueContentTypeSchema = /* @__PURE__ */ import_zod2.z.enum(["text", "json", "bytes", "v8"]).default("v8"); +var QueueIncomingMessageSchema = /* @__PURE__ */ import_zod2.z.object({ + contentType: QueueContentTypeSchema, + body: Base64DataSchema, + // When enqueuing messages on dead-letter queues, we want to reuse the same ID + // and timestamp + id: import_zod2.z.ostring(), + timestamp: import_zod2.z.onumber() +}); +var QueuesBatchRequestSchema = /* @__PURE__ */ import_zod2.z.object({ + messages: import_zod2.z.array(QueueIncomingMessageSchema) +}); + +// packages/miniflare/src/http/request.ts +var import_undici2 = require("undici"); +var kCf = Symbol("kCf"); +var Request = class extends import_undici2.Request { + // We should be able to use a private `#cf` property here instead of a symbol + // here, but we need to set this on a clone, which would otherwise lead to a + // "Cannot write private member to an object whose class did not declare it" + // error. + [kCf]; + constructor(input, init2) { + super(input, init2); + this[kCf] = init2?.cf; + if (input instanceof Request) + this[kCf] ??= input.cf; + } + get cf() { + return this[kCf]; + } + // JSDoc comment so retained when bundling types with api-extractor + /** @ts-expect-error `clone` is actually defined as a method internally */ + clone() { + const request = super.clone(); + Object.setPrototypeOf(request, Request.prototype); + request[kCf] = this[kCf]; + return request; + } +}; + +// packages/miniflare/src/http/response.ts +var import_undici3 = require("undici"); +var kWebSocket = Symbol("kWebSocket"); +var Response = class extends import_undici3.Response { + // We should be able to use a private `#webSocket` property here instead of a + // symbol here, but `undici` calls `this.status` in its constructor, which + // causes a "Cannot read private member from an object whose class did not + // declare it" error. + [kWebSocket]; + // Override BaseResponse's static methods for building Responses to return + // our type instead. Ideally, we don't want to use `Object.setPrototypeOf`. + // Unfortunately, `error()` and `redirect()` set the internal header guard + // to "immutable". + static error() { + const response = import_undici3.Response.error(); + Object.setPrototypeOf(response, Response.prototype); + return response; + } + static redirect(url13, status) { + const response = import_undici3.Response.redirect(url13, status); + Object.setPrototypeOf(response, Response.prototype); + return response; + } + static json(data, init2) { + const body = JSON.stringify(data); + const response = new Response(body, init2); + response.headers.set("Content-Type", "application/json"); + return response; + } + constructor(body, init2) { + if (init2?.webSocket) { + if (init2.status !== 101) { + throw new RangeError( + "Responses with a WebSocket must have status code 101." + ); + } + init2 = { ...init2, status: 200 }; + } + super(body, init2); + this[kWebSocket] = init2?.webSocket ?? null; + } + // JSDoc comment so retained when bundling types with api-extractor + /** @ts-expect-error `status` is actually defined as a getter internally */ + get status() { + return this[kWebSocket] ? 101 : super.status; + } + get webSocket() { + return this[kWebSocket]; + } + // JSDoc comment so retained when bundling types with api-extractor + /** @ts-expect-error `clone` is actually defined as a method internally */ + clone() { + if (this[kWebSocket]) { + throw new TypeError("Cannot clone a response to a WebSocket handshake."); + } + const response = super.clone(); + Object.setPrototypeOf(response, Response.prototype); + return response; + } +}; + +// packages/miniflare/src/http/websocket.ts +var import_assert2 = __toESM(require("assert")); +var import_events = require("events"); +var import_ws = __toESM(require("ws")); + +// packages/miniflare/src/shared/colour.ts +var originalEnabled = $.enabled; +function _forceColour(enabled = originalEnabled) { + $.enabled = enabled; +} + +// packages/miniflare/src/shared/error.ts +var MiniflareError = class extends Error { + constructor(code, message, cause) { + super(message); + this.code = code; + this.cause = cause; + Object.setPrototypeOf(this, new.target.prototype); + this.name = `${new.target.name} [${code}]`; + } +}; +var MiniflareCoreError = class extends MiniflareError { +}; + +// packages/miniflare/src/shared/event.ts +var TypedEventTarget = class extends EventTarget { + addEventListener(type, listener, options) { + super.addEventListener( + type, + listener, + options + ); + } + removeEventListener(type, listener, options) { + super.removeEventListener( + type, + listener, + options + ); + } + dispatchEvent(event) { + return super.dispatchEvent(event); + } +}; + +// packages/miniflare/src/shared/log.ts +var import_path4 = __toESM(require("path")); +var cwd = process.cwd(); +var cwdNodeModules = import_path4.default.join(cwd, "node_modules"); +var LEVEL_PREFIX = { + [0 /* NONE */]: "", + [1 /* ERROR */]: "err", + [2 /* WARN */]: "wrn", + [3 /* INFO */]: "inf", + [4 /* DEBUG */]: "dbg", + [5 /* VERBOSE */]: "vrb" +}; +var LEVEL_COLOUR = { + [0 /* NONE */]: reset, + [1 /* ERROR */]: red, + [2 /* WARN */]: yellow, + [3 /* INFO */]: green, + [4 /* DEBUG */]: grey, + [5 /* VERBOSE */]: (input) => dim(grey(input)) +}; +function prefixError(prefix, e) { + if (e.stack) { + return new Proxy(e, { + get(target, propertyKey, receiver) { + const value = Reflect.get(target, propertyKey, receiver); + return propertyKey === "stack" ? `${prefix}: ${value}` : value; + } + }); + } + return e; +} +function dimInternalStackLine(line) { + if (line.startsWith(" at") && (!line.includes(cwd) || line.includes(cwdNodeModules))) { + return dim(line); + } + return line; +} +var Log = class { + constructor(level = 3 /* INFO */, opts = {}) { + this.level = level; + const prefix = opts.prefix ?? "mf"; + const suffix = opts.suffix ?? ""; + this.#prefix = prefix ? prefix + ":" : ""; + this.#suffix = suffix ? ":" + suffix : ""; + } + #prefix; + #suffix; + log(message) { + console.log(message); + } + logWithLevel(level, message) { + if (level <= this.level) { + const prefix = `[${this.#prefix}${LEVEL_PREFIX[level]}${this.#suffix}]`; + this.log(LEVEL_COLOUR[level](`${prefix} ${message}`)); + } + } + error(message) { + if (this.level < 1 /* ERROR */) { + throw message; + } else if (message.stack) { + const lines = message.stack.split("\n").map(dimInternalStackLine); + this.logWithLevel(1 /* ERROR */, lines.join("\n")); + } else { + this.logWithLevel(1 /* ERROR */, message.toString()); + } + if (message.cause) { + this.error(prefixError("Cause", message.cause)); + } + } + warn(message) { + this.logWithLevel(2 /* WARN */, message); + } + info(message) { + this.logWithLevel(3 /* INFO */, message); + } + debug(message) { + this.logWithLevel(4 /* DEBUG */, message); + } + verbose(message) { + this.logWithLevel(5 /* VERBOSE */, message); + } +}; +var NoOpLog = class extends Log { + constructor() { + super(0 /* NONE */); + } + log() { + } + error(message) { + throw message; + } +}; +var ansiRegexpPattern = [ + "[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)", + "(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))" +].join("|"); +var ansiRegexp = new RegExp(ansiRegexpPattern, "g"); +function stripAnsi(value) { + return value.replace(ansiRegexp, ""); +} + +// packages/miniflare/src/shared/matcher.ts +var import_glob_to_regexp = __toESM(require("glob-to-regexp")); +function globsToRegExps(globs = []) { + const include = []; + const exclude = []; + const opts = { globstar: true, flags: "g" }; + for (const glob of globs) { + if (glob.startsWith("!")) { + exclude.push(new RegExp((0, import_glob_to_regexp.default)(glob.slice(1), opts), "")); + } else { + include.push(new RegExp((0, import_glob_to_regexp.default)(glob, opts), "")); + } + } + return { include, exclude }; +} + +// packages/miniflare/src/shared/streams.ts +var import_web = require("stream/web"); +function prefixStream(prefix, stream) { + const identity = new import_web.TransformStream(); + const writer = identity.writable.getWriter(); + void writer.write(prefix).then(() => { + writer.releaseLock(); + return stream.pipeTo(identity.writable); + }).catch((error) => { + return writer.abort(error); + }); + return identity.readable; +} +async function readPrefix(stream, prefixLength) { + const chunks = []; + let chunksLength = 0; + for await (const chunk of stream.values({ preventCancel: true })) { + chunks.push(chunk); + chunksLength += chunk.byteLength; + if (chunksLength >= prefixLength) + break; + } + if (chunksLength < prefixLength) { + throw new RangeError( + `Expected ${prefixLength} byte prefix, but received ${chunksLength} byte stream` + ); + } + const atLeastPrefix = Buffer.concat(chunks, chunksLength); + const prefix = atLeastPrefix.subarray(0, prefixLength); + let rest = stream; + if (chunksLength > prefixLength) { + rest = prefixStream(atLeastPrefix.subarray(prefixLength), stream); + } + return [prefix, rest]; +} + +// packages/miniflare/src/shared/types.ts +var import_zod3 = require("zod"); +function zAwaitable(type) { + return type.or(import_zod3.z.promise(type)); +} +var LiteralSchema = import_zod3.z.union([ + import_zod3.z.string(), + import_zod3.z.number(), + import_zod3.z.boolean(), + import_zod3.z.null() +]); +var JsonSchema = import_zod3.z.lazy( + () => import_zod3.z.union([LiteralSchema, import_zod3.z.array(JsonSchema), import_zod3.z.record(JsonSchema)]) +); + +// packages/miniflare/src/http/websocket.ts +var MessageEvent = class extends Event { + data; + constructor(type, init2) { + super(type); + this.data = init2.data; + } +}; +var CloseEvent = class extends Event { + code; + reason; + wasClean; + constructor(type, init2) { + super(type); + this.code = init2?.code ?? 1005; + this.reason = init2?.reason ?? ""; + this.wasClean = init2?.wasClean ?? false; + } +}; +var ErrorEvent = class extends Event { + error; + constructor(type, init2) { + super(type); + this.error = init2?.error ?? null; + } +}; +var kPair = Symbol("kPair"); +var kAccepted = Symbol("kAccepted"); +var kCoupled = Symbol("kCoupled"); +var kClosedOutgoing = Symbol("kClosedOutgoing"); +var kClosedIncoming = Symbol("kClosedIncoming"); +var kSend = Symbol("kSend"); +var kClose = Symbol("kClose"); +var kError = Symbol("kError"); +var _dispatchQueue, _a, _b, _c, _d, _e, _queuingDispatchToPair, queuingDispatchToPair_fn; +var _WebSocket = class extends TypedEventTarget { + constructor() { + super(...arguments); + __privateAdd(this, _queuingDispatchToPair); + __privateAdd(this, _dispatchQueue, []); + __publicField(this, _a); + __publicField(this, _b, false); + __publicField(this, _c, false); + __publicField(this, _d, false); + __publicField(this, _e, false); + } + get readyState() { + if (this[kClosedOutgoing] && this[kClosedIncoming]) { + return _WebSocket.READY_STATE_CLOSED; + } else if (this[kClosedOutgoing] || this[kClosedIncoming]) { + return _WebSocket.READY_STATE_CLOSING; + } + return _WebSocket.READY_STATE_OPEN; + } + accept() { + if (this[kCoupled]) { + throw new TypeError( + "Can't accept() WebSocket that was already used in a response." + ); + } + if (this[kAccepted]) + return; + this[kAccepted] = true; + if (__privateGet(this, _dispatchQueue) !== void 0) { + for (const event of __privateGet(this, _dispatchQueue)) + this.dispatchEvent(event); + __privateSet(this, _dispatchQueue, void 0); + } + } + send(message) { + if (!this[kAccepted]) { + throw new TypeError( + "You must call accept() on this WebSocket before sending messages." + ); + } + this[kSend](message); + } + [(_a = kPair, _b = kAccepted, _c = kCoupled, _d = kClosedOutgoing, _e = kClosedIncoming, kSend)](message) { + if (this[kClosedOutgoing]) { + throw new TypeError("Can't call WebSocket send() after close()."); + } + const event = new MessageEvent("message", { data: message }); + void __privateMethod(this, _queuingDispatchToPair, queuingDispatchToPair_fn).call(this, event); + } + close(code, reason) { + if (code) { + const validCode = code >= 1e3 && code < 5e3 && code !== 1004 && code !== 1005 && code !== 1006 && code !== 1015; + if (!validCode) + throw new TypeError("Invalid WebSocket close code."); + } + if (reason !== void 0 && code === void 0) { + throw new TypeError( + "If you specify a WebSocket close reason, you must also specify a code." + ); + } + if (!this[kAccepted]) { + throw new TypeError( + "You must call accept() on this WebSocket before sending messages." + ); + } + this[kClose](code, reason); + } + [kClose](code, reason) { + if (this[kClosedOutgoing]) + throw new TypeError("WebSocket already closed"); + const pair = this[kPair]; + (0, import_assert2.default)(pair !== void 0); + this[kClosedOutgoing] = true; + pair[kClosedIncoming] = true; + const event = new CloseEvent("close", { code, reason }); + void __privateMethod(this, _queuingDispatchToPair, queuingDispatchToPair_fn).call(this, event); + } + [kError](error) { + const event = new ErrorEvent("error", { error }); + void __privateMethod(this, _queuingDispatchToPair, queuingDispatchToPair_fn).call(this, event); + } +}; +var WebSocket = _WebSocket; +_dispatchQueue = new WeakMap(); +_queuingDispatchToPair = new WeakSet(); +queuingDispatchToPair_fn = async function(event) { + const pair = this[kPair]; + (0, import_assert2.default)(pair !== void 0); + if (pair[kAccepted]) { + pair.dispatchEvent(event); + } else { + (0, import_assert2.default)(__privateGet(pair, _dispatchQueue) !== void 0); + __privateGet(pair, _dispatchQueue).push(event); + } +}; +// The Workers runtime prefixes these constants with `READY_STATE_`, unlike +// those in the spec: https://websockets.spec.whatwg.org/#interface-definition +__publicField(WebSocket, "READY_STATE_CONNECTING", 0); +__publicField(WebSocket, "READY_STATE_OPEN", 1); +__publicField(WebSocket, "READY_STATE_CLOSING", 2); +__publicField(WebSocket, "READY_STATE_CLOSED", 3); +var WebSocketPair = function() { + if (!(this instanceof WebSocketPair)) { + throw new TypeError( + "Failed to construct 'WebSocketPair': Please use the 'new' operator, this object constructor cannot be called as a function." + ); + } + this[0] = new WebSocket(); + this[1] = new WebSocket(); + this[0][kPair] = this[1]; + this[1][kPair] = this[0]; +}; +async function coupleWebSocket(ws, pair) { + if (pair[kCoupled]) { + throw new TypeError( + "Can't return WebSocket that was already used in a response." + ); + } + if (pair[kAccepted]) { + throw new TypeError( + "Can't return WebSocket in a Response after calling accept()." + ); + } + ws.on("message", (message, isBinary) => { + if (!pair[kClosedOutgoing]) { + pair[kSend](isBinary ? viewToBuffer(message) : message.toString()); + } + }); + ws.on("close", (code, reason) => { + if (!pair[kClosedOutgoing]) { + pair[kClose](code, reason.toString()); + } + }); + ws.on("error", (error) => { + pair[kError](error); + }); + pair.addEventListener("message", (e) => { + ws.send(e.data); + }); + pair.addEventListener("close", (e) => { + if (e.code === 1005) { + ws.close(); + } else if (e.code === 1006) { + ws.terminate(); + } else { + ws.close(e.code, e.reason); + } + }); + if (ws.readyState === import_ws.default.CONNECTING) { + await (0, import_events.once)(ws, "open"); + } else if (ws.readyState >= import_ws.default.CLOSING) { + throw new TypeError("Incoming WebSocket connection already closed."); + } + pair.accept(); + pair[kCoupled] = true; +} + +// packages/miniflare/src/http/fetch.ts +var allowUnauthorizedDispatchers = /* @__PURE__ */ new WeakSet(); +function registerAllowUnauthorizedDispatcher(dispatcher) { + allowUnauthorizedDispatchers.add(dispatcher); +} +var ignored = ["transfer-encoding", "connection", "keep-alive", "expect"]; +function headersFromIncomingRequest(req) { + const entries = Object.entries(req.headers).filter( + (pair) => { + const [name, value] = pair; + return !ignored.includes(name) && value !== void 0; + } + ); + return new import_undici4.Headers(Object.fromEntries(entries)); +} +async function fetch2(input, init2) { + const requestInit = init2; + const request = new Request(input, requestInit); + if (request.method === "GET" && request.headers.get("upgrade") === "websocket") { + const url13 = new URL(request.url); + if (url13.protocol !== "http:" && url13.protocol !== "https:") { + throw new TypeError( + `Fetch API cannot load: ${url13.toString()}. +Make sure you're using http(s):// URLs for WebSocket requests via fetch.` + ); + } + url13.protocol = url13.protocol.replace("http", "ws"); + const headers = {}; + let protocols; + for (const [key, value] of request.headers.entries()) { + if (key.toLowerCase() === "sec-websocket-protocol") { + protocols = value.split(",").map((protocol) => protocol.trim()); + } else { + headers[key] = value; + } + } + const rejectUnauthorized = requestInit?.dispatcher !== void 0 && allowUnauthorizedDispatchers.has(requestInit?.dispatcher) ? { rejectUnauthorized: false } : {}; + const ws = new import_ws2.default(url13, protocols, { + followRedirects: request.redirect === "follow", + headers, + ...rejectUnauthorized + }); + const headersPromise = new DeferredPromise(); + ws.once("upgrade", (req) => { + headersPromise.resolve(headersFromIncomingRequest(req)); + }); + const [worker, client] = Object.values(new WebSocketPair()); + await coupleWebSocket(ws, client); + return new Response(null, { + status: 101, + webSocket: worker, + headers: await headersPromise + }); + } + const response = await (0, import_undici4.fetch)(request, { + dispatcher: requestInit?.dispatcher + }); + return new Response(response.body, response); +} + +// packages/miniflare/src/http/server.ts +var import_promises10 = __toESM(require("fs/promises")); + +// packages/miniflare/src/plugins/cache/index.ts +var import_promises3 = __toESM(require("fs/promises")); + +// embed-worker:/home/jspspike/Projects/miniflare/packages/miniflare/src/workers/cache/cache.worker.ts +var import_fs3 = __toESM(require("fs")); +var import_path5 = __toESM(require("path")); +var import_url3 = __toESM(require("url")); +var contents3; +function cache_worker_default() { + if (contents3 !== void 0) + return contents3; + const filePath = import_path5.default.join(__dirname, "workers", "cache/cache.worker.js"); + contents3 = import_fs3.default.readFileSync(filePath, "utf8") + "//# sourceURL=" + import_url3.default.pathToFileURL(filePath); + return contents3; +} + +// embed-worker:/home/jspspike/Projects/miniflare/packages/miniflare/src/workers/cache/cache-entry.worker.ts +var import_fs4 = __toESM(require("fs")); +var import_path6 = __toESM(require("path")); +var import_url4 = __toESM(require("url")); +var contents4; +function cache_entry_worker_default() { + if (contents4 !== void 0) + return contents4; + const filePath = import_path6.default.join(__dirname, "workers", "cache/cache-entry.worker.js"); + contents4 = import_fs4.default.readFileSync(filePath, "utf8") + "//# sourceURL=" + import_url4.default.pathToFileURL(filePath); + return contents4; +} + +// embed-worker:/home/jspspike/Projects/miniflare/packages/miniflare/src/workers/cache/cache-entry-noop.worker.ts +var import_fs5 = __toESM(require("fs")); +var import_path7 = __toESM(require("path")); +var import_url5 = __toESM(require("url")); +var contents5; +function cache_entry_noop_worker_default() { + if (contents5 !== void 0) + return contents5; + const filePath = import_path7.default.join(__dirname, "workers", "cache/cache-entry-noop.worker.js"); + contents5 = import_fs5.default.readFileSync(filePath, "utf8") + "//# sourceURL=" + import_url5.default.pathToFileURL(filePath); + return contents5; +} + +// packages/miniflare/src/plugins/cache/index.ts +var import_zod5 = require("zod"); + +// packages/miniflare/src/plugins/shared/index.ts +var import_crypto = __toESM(require("crypto")); +var import_fs7 = require("fs"); +var import_promises2 = __toESM(require("fs/promises")); +var import_path9 = __toESM(require("path")); +var import_url8 = require("url"); +var import_zod4 = require("zod"); + +// embed-worker:/home/jspspike/Projects/miniflare/packages/miniflare/src/workers/shared/object-entry.worker.ts +var import_fs6 = __toESM(require("fs")); +var import_path8 = __toESM(require("path")); +var import_url6 = __toESM(require("url")); +var contents6; +function object_entry_worker_default() { + if (contents6 !== void 0) + return contents6; + const filePath = import_path8.default.join(__dirname, "workers", "shared/object-entry.worker.js"); + contents6 = import_fs6.default.readFileSync(filePath, "utf8") + "//# sourceURL=" + import_url6.default.pathToFileURL(filePath); + return contents6; +} + +// packages/miniflare/src/plugins/shared/constants.ts +var SOCKET_ENTRY = "entry"; +var SERVICE_LOOPBACK = "loopback"; +var HEADER_CF_BLOB = "MF-CF-Blob"; +var WORKER_BINDING_SERVICE_LOOPBACK = { + name: CoreBindings.SERVICE_LOOPBACK, + service: { name: SERVICE_LOOPBACK } +}; +function objectEntryWorker(durableObjectNamespace, namespace) { + return { + compatibilityDate: "2023-07-24", + modules: [ + { name: "object-entry.worker.js", esModule: object_entry_worker_default() } + ], + bindings: [ + { name: SharedBindings.TEXT_NAMESPACE, text: namespace }, + { + name: SharedBindings.DURABLE_OBJECT_NAMESPACE_OBJECT, + durableObjectNamespace + } + ] + }; +} + +// packages/miniflare/src/plugins/shared/routing.ts +var import_url7 = require("url"); +var RouterError = class extends MiniflareError { +}; +function routeSpecificity(url13) { + const hostParts = url13.host.split("."); + let hostScore = hostParts.length; + if (hostParts[0] === "*") + hostScore -= 2; + const pathParts = url13.pathname.split("/"); + let pathScore = pathParts.length; + if (pathParts[pathParts.length - 1] === "*") + pathScore -= 2; + return hostScore * 26 + pathScore; +} +function parseRoutes(allRoutes) { + const routes = []; + for (const [target, targetRoutes] of allRoutes) { + for (const route of targetRoutes) { + const hasProtocol = /^[a-z0-9+\-.]+:\/\//i.test(route); + let urlInput = route; + if (!hasProtocol) + urlInput = `https://${urlInput}`; + const url13 = new import_url7.URL(urlInput); + const specificity = routeSpecificity(url13); + const protocol = hasProtocol ? url13.protocol : void 0; + const internationalisedAllowHostnamePrefix = url13.hostname.startsWith("xn--*"); + const allowHostnamePrefix = url13.hostname.startsWith("*") || internationalisedAllowHostnamePrefix; + const anyHostname = url13.hostname === "*"; + if (allowHostnamePrefix && !anyHostname) { + let hostname = url13.hostname; + if (internationalisedAllowHostnamePrefix) { + hostname = (0, import_url7.domainToUnicode)(hostname); + } + url13.hostname = hostname.substring(1); + } + const allowPathSuffix = url13.pathname.endsWith("*"); + if (allowPathSuffix) { + url13.pathname = url13.pathname.substring(0, url13.pathname.length - 1); + } + if (url13.search) { + throw new RouterError( + "ERR_QUERY_STRING", + `Route "${route}" for "${target}" contains a query string. This is not allowed.` + ); + } + if (url13.toString().includes("*") && !anyHostname) { + throw new RouterError( + "ERR_INFIX_WILDCARD", + `Route "${route}" for "${target}" contains an infix wildcard. This is not allowed.` + ); + } + routes.push({ + target, + route, + specificity, + protocol, + allowHostnamePrefix, + hostname: anyHostname ? "" : url13.hostname, + path: url13.pathname, + allowPathSuffix + }); + } + } + routes.sort((a, b) => { + if (a.specificity === b.specificity) { + return b.route.length - a.route.length; + } else { + return b.specificity - a.specificity; + } + }); + return routes; +} + +// packages/miniflare/src/plugins/shared/index.ts +var DEFAULT_PERSIST_ROOT = ".mf"; +var PersistenceSchema = import_zod4.z.boolean().or(import_zod4.z.string()).optional(); +var kProxyNodeBinding = Symbol("kProxyNodeBinding"); +function namespaceKeys(namespaces) { + if (Array.isArray(namespaces)) { + return namespaces; + } else if (namespaces !== void 0) { + return Object.keys(namespaces); + } else { + return []; + } +} +function namespaceEntries(namespaces) { + if (Array.isArray(namespaces)) { + return namespaces.map((bindingName) => [bindingName, bindingName]); + } else if (namespaces !== void 0) { + return Object.entries(namespaces); + } else { + return []; + } +} +function maybeParseURL(url13) { + if (typeof url13 !== "string" || import_path9.default.isAbsolute(url13)) + return; + try { + return new URL(url13); + } catch { + } +} +function getPersistPath(pluginName, tmpPath, persist) { + const memoryishPath = import_path9.default.join(tmpPath, pluginName); + if (persist === void 0 || persist === false) { + return memoryishPath; + } + const url13 = maybeParseURL(persist); + if (url13 !== void 0) { + if (url13.protocol === "memory:") { + return memoryishPath; + } else if (url13.protocol === "file:") { + return (0, import_url8.fileURLToPath)(url13); + } + throw new MiniflareCoreError( + "ERR_PERSIST_UNSUPPORTED", + `Unsupported "${url13.protocol}" persistence protocol for storage: ${url13.href}` + ); + } + return persist === true ? import_path9.default.join(DEFAULT_PERSIST_ROOT, pluginName) : persist; +} +function durableObjectNamespaceIdFromName(uniqueKey, name) { + const key = import_crypto.default.createHash("sha256").update(uniqueKey).digest(); + const nameHmac = import_crypto.default.createHmac("sha256", key).update(name).digest().subarray(0, 16); + const hmac = import_crypto.default.createHmac("sha256", key).update(nameHmac).digest().subarray(0, 16); + return Buffer.concat([nameHmac, hmac]).toString("hex"); +} +async function migrateDatabase(log, uniqueKey, persistPath, namespace) { + const sanitisedNamespace = sanitisePath(namespace); + const previousDir = import_path9.default.join(persistPath, sanitisedNamespace); + const previousPath = import_path9.default.join(previousDir, "db.sqlite"); + const previousWalPath = import_path9.default.join(previousDir, "db.sqlite-wal"); + if (!(0, import_fs7.existsSync)(previousPath)) + return; + const id = durableObjectNamespaceIdFromName(uniqueKey, namespace); + const newDir = import_path9.default.join(persistPath, uniqueKey); + const newPath = import_path9.default.join(newDir, `${id}.sqlite`); + const newWalPath = import_path9.default.join(newDir, `${id}.sqlite-wal`); + if ((0, import_fs7.existsSync)(newPath)) { + log.debug( + `Not migrating ${previousPath} to ${newPath} as it already exists` + ); + return; + } + log.debug(`Migrating ${previousPath} to ${newPath}...`); + await import_promises2.default.mkdir(newDir, { recursive: true }); + try { + await import_promises2.default.copyFile(previousPath, newPath); + if ((0, import_fs7.existsSync)(previousWalPath)) { + await import_promises2.default.copyFile(previousWalPath, newWalPath); + } + await import_promises2.default.unlink(previousPath); + await import_promises2.default.unlink(previousWalPath); + } catch (e) { + log.warn(`Error migrating ${previousPath} to ${newPath}: ${e}`); + } +} + +// packages/miniflare/src/plugins/cache/index.ts +var CacheOptionsSchema = import_zod5.z.object({ + cache: import_zod5.z.boolean().optional(), + cacheWarnUsage: import_zod5.z.boolean().optional() +}); +var CacheSharedOptionsSchema = import_zod5.z.object({ + cachePersist: PersistenceSchema +}); +var CACHE_PLUGIN_NAME = "cache"; +var CACHE_STORAGE_SERVICE_NAME = `${CACHE_PLUGIN_NAME}:storage`; +var CACHE_SERVICE_PREFIX = `${CACHE_PLUGIN_NAME}:cache`; +var CACHE_OBJECT_CLASS_NAME = "CacheObject"; +var CACHE_OBJECT = { + serviceName: CACHE_SERVICE_PREFIX, + className: CACHE_OBJECT_CLASS_NAME +}; +function getCacheServiceName(workerIndex) { + return `${CACHE_PLUGIN_NAME}:${workerIndex}`; +} +var CACHE_PLUGIN = { + options: CacheOptionsSchema, + sharedOptions: CacheSharedOptionsSchema, + getBindings() { + return []; + }, + getNodeBindings() { + return {}; + }, + async getServices({ sharedOptions, options, workerIndex, tmpPath }) { + const cache = options.cache ?? true; + const cacheWarnUsage = options.cacheWarnUsage ?? false; + let entryWorker; + if (cache) { + entryWorker = { + compatibilityDate: "2023-07-24", + compatibilityFlags: ["nodejs_compat", "experimental"], + modules: [ + { name: "cache-entry.worker.js", esModule: cache_entry_worker_default() } + ], + bindings: [ + { + name: SharedBindings.DURABLE_OBJECT_NAMESPACE_OBJECT, + durableObjectNamespace: CACHE_OBJECT + }, + { + name: CacheBindings.MAYBE_JSON_CACHE_WARN_USAGE, + json: JSON.stringify(cacheWarnUsage) + } + ] + }; + } else { + entryWorker = { + compatibilityDate: "2023-07-24", + compatibilityFlags: ["nodejs_compat", "experimental"], + modules: [ + { + name: "cache-entry-noop.worker.js", + esModule: cache_entry_noop_worker_default() + } + ] + }; + } + const uniqueKey = `miniflare-${CACHE_OBJECT_CLASS_NAME}`; + const persist = sharedOptions.cachePersist; + const persistPath = getPersistPath(CACHE_PLUGIN_NAME, tmpPath, persist); + await import_promises3.default.mkdir(persistPath, { recursive: true }); + const storageService = { + name: CACHE_STORAGE_SERVICE_NAME, + disk: { path: persistPath, writable: true } + }; + const objectService = { + name: CACHE_SERVICE_PREFIX, + worker: { + compatibilityDate: "2023-07-24", + compatibilityFlags: ["nodejs_compat", "experimental"], + modules: [ + { + name: "cache.worker.js", + esModule: cache_worker_default() + } + ], + durableObjectNamespaces: [ + { + className: CACHE_OBJECT_CLASS_NAME, + uniqueKey + } + ], + // Store Durable Object SQL databases in persist path + durableObjectStorage: { localDisk: CACHE_STORAGE_SERVICE_NAME }, + // Bind blob disk directory service to object + bindings: [ + { + name: SharedBindings.MAYBE_SERVICE_BLOBS, + service: { name: CACHE_STORAGE_SERVICE_NAME } + }, + { + name: SharedBindings.MAYBE_SERVICE_LOOPBACK, + service: { name: SERVICE_LOOPBACK } + } + ] + } + }; + const services = [ + { name: getCacheServiceName(workerIndex), worker: entryWorker }, + storageService, + objectService + ]; + return services; + } +}; + +// packages/miniflare/src/plugins/core/index.ts +var import_assert8 = __toESM(require("assert")); +var import_fs11 = require("fs"); +var import_promises5 = __toESM(require("fs/promises")); +var import_path13 = __toESM(require("path")); +var import_tls = __toESM(require("tls")); +var import_util3 = require("util"); +var import_undici7 = require("undici"); + +// embed-worker:/home/jspspike/Projects/miniflare/packages/miniflare/src/workers/core/entry.worker.ts +var import_fs8 = __toESM(require("fs")); +var import_path10 = __toESM(require("path")); +var import_url9 = __toESM(require("url")); +var contents7; +function entry_worker_default() { + if (contents7 !== void 0) + return contents7; + const filePath = import_path10.default.join(__dirname, "workers", "core/entry.worker.js"); + contents7 = import_fs8.default.readFileSync(filePath, "utf8") + "//# sourceURL=" + import_url9.default.pathToFileURL(filePath); + return contents7; +} + +// packages/miniflare/src/plugins/core/index.ts +var import_zod11 = require("zod"); + +// packages/miniflare/src/runtime/index.ts +var import_assert3 = __toESM(require("assert")); +var import_child_process = __toESM(require("child_process")); +var import_readline = __toESM(require("readline")); +var import_stream = require("stream"); +var import_workerd2 = __toESM(require("workerd")); +var import_zod6 = require("zod"); + +// packages/miniflare/src/runtime/config/index.ts +var import_capnp_ts = require("capnp-ts"); + +// packages/miniflare/src/runtime/config/workerd.ts +var import_workerd_capnp = __toESM(require_workerd_capnp()); +var kVoid = Symbol("kVoid"); + +// packages/miniflare/src/runtime/config/index.ts +var import_workerd_capnp2 = __toESM(require_workerd_capnp()); +function capitalize(str) { + return str.length > 0 ? str[0].toUpperCase() + str.substring(1) : str; +} +function encodeCapnpStruct(obj, struct) { + const anyStruct = struct; + for (const [key, value] of Object.entries(obj)) { + const capitalized = capitalize(key); + if (value instanceof Uint8Array) { + const newData = anyStruct[`init${capitalized}`](value.byteLength); + newData.copyBuffer(value); + } else if (Array.isArray(value)) { + const newList = anyStruct[`init${capitalized}`](value.length); + for (let i = 0; i < value.length; i++) { + if (typeof value[i] === "object") { + encodeCapnpStruct(value[i], newList.get(i)); + } else { + newList.set(i, value[i]); + } + } + } else if (typeof value === "object") { + const newStruct = anyStruct[`init${capitalized}`](); + encodeCapnpStruct(value, newStruct); + } else if (value === kVoid) { + anyStruct[`set${capitalized}`](); + } else if (value !== void 0) { + anyStruct[`set${capitalized}`](value); + } + } +} +function serializeConfig(config) { + const message = new import_capnp_ts.Message(); + const struct = message.initRoot(import_workerd_capnp2.Config); + encodeCapnpStruct(config, struct); + return Buffer.from(message.toArrayBuffer()); +} + +// packages/miniflare/src/runtime/index.ts +var ControlMessageSchema = import_zod6.z.object({ + event: import_zod6.z.literal("listen"), + socket: import_zod6.z.string(), + port: import_zod6.z.number() +}); +async function waitForPort(socket, stream, options) { + if (options?.signal?.aborted) + return; + const lines = import_readline.default.createInterface(stream); + const abortListener = () => lines.close(); + options?.signal?.addEventListener("abort", abortListener, { once: true }); + try { + for await (const line of lines) { + const message = ControlMessageSchema.safeParse(JSON.parse(line)); + if (message.success && message.data.socket === socket) { + return message.data.port; + } + } + } finally { + options?.signal?.removeEventListener("abort", abortListener); + } +} +function waitForExit(process2) { + return new Promise((resolve) => { + process2.once("exit", () => resolve()); + }); +} +function pipeOutput(runtime) { + const stdout = import_readline.default.createInterface(runtime.stdout); + const stderr = import_readline.default.createInterface(runtime.stderr); + stdout.on("line", (data) => console.log(data)); + stderr.on("line", (data) => console.error(red(data))); +} +var Runtime = class { + constructor(opts) { + this.opts = opts; + this.#command = process.env.MINIFLARE_WORKERD_PATH ?? import_workerd2.default; + } + #command; + #process; + #processExitPromise; + get #args() { + const args = [ + "serve", + // Required to use binary capnp config + "--binary", + // Required to use compatibility flags without a default-on date, + // (e.g. "streams_enable_constructors"), see https://github.com/cloudflare/workerd/pull/21 + "--experimental", + `--socket-addr=${SOCKET_ENTRY}=${this.opts.entryHost}:${this.opts.entryPort}`, + `--external-addr=${SERVICE_LOOPBACK}=localhost:${this.opts.loopbackPort}`, + // Configure extra pipe for receiving control messages (e.g. when ready) + "--control-fd=3", + // Read config from stdin + "-" + ]; + if (this.opts.inspectorPort !== void 0) { + args.push(`--inspector-addr=localhost:${this.opts.inspectorPort}`); + } + if (this.opts.verbose) { + args.push("--verbose"); + } + return args; + } + async updateConfig(configBuffer, options) { + await this.dispose(); + if (options?.entryPort !== void 0) { + this.opts.entryPort = options.entryPort; + } + const runtimeProcess = import_child_process.default.spawn(this.#command, this.#args, { + stdio: ["pipe", "pipe", "pipe", "pipe"], + env: process.env + }); + this.#process = runtimeProcess; + this.#processExitPromise = waitForExit(runtimeProcess); + pipeOutput(runtimeProcess); + const controlPipe = runtimeProcess.stdio[3]; + (0, import_assert3.default)(controlPipe instanceof import_stream.Readable); + runtimeProcess.stdin.write(configBuffer); + runtimeProcess.stdin.end(); + return waitForPort(SOCKET_ENTRY, controlPipe, options); + } + dispose() { + this.#process?.kill("SIGKILL"); + return this.#processExitPromise; + } +}; + +// packages/miniflare/src/plugins/do/index.ts +var import_promises4 = __toESM(require("fs/promises")); +var import_zod7 = require("zod"); +var DurableObjectsOptionsSchema = import_zod7.z.object({ + durableObjects: import_zod7.z.record( + import_zod7.z.union([ + import_zod7.z.string(), + import_zod7.z.object({ + className: import_zod7.z.string(), + scriptName: import_zod7.z.string().optional(), + // Allow `uniqueKey` to be customised. We use in Wrangler when setting + // up stub Durable Objects that proxy requests to Durable Objects in + // another `workerd` process, to ensure the IDs created by the stub + // object can be used by the real object too. + unsafeUniqueKey: import_zod7.z.string().optional() + }) + ]) + ).optional() +}); +var DurableObjectsSharedOptionsSchema = import_zod7.z.object({ + durableObjectsPersist: PersistenceSchema +}); +function normaliseDurableObject(designator) { + const isObject = typeof designator === "object"; + const className = isObject ? designator.className : designator; + const serviceName = isObject && designator.scriptName !== void 0 ? getUserServiceName(designator.scriptName) : void 0; + const unsafeUniqueKey = isObject ? designator.unsafeUniqueKey : void 0; + return { className, serviceName, unsafeUniqueKey }; +} +var DURABLE_OBJECTS_PLUGIN_NAME = "do"; +var DURABLE_OBJECTS_STORAGE_SERVICE_NAME = `${DURABLE_OBJECTS_PLUGIN_NAME}:storage`; +var DURABLE_OBJECTS_PLUGIN = { + options: DurableObjectsOptionsSchema, + sharedOptions: DurableObjectsSharedOptionsSchema, + getBindings(options) { + return Object.entries(options.durableObjects ?? {}).map( + ([name, klass]) => { + const { className, serviceName } = normaliseDurableObject(klass); + return { + name, + durableObjectNamespace: { className, serviceName } + }; + } + ); + }, + getNodeBindings(options) { + const objects = Object.keys(options.durableObjects ?? {}); + return Object.fromEntries(objects.map((name) => [name, kProxyNodeBinding])); + }, + async getServices({ sharedOptions, tmpPath, durableObjectClassNames }) { + let hasDurableObjects = false; + for (const classNames of durableObjectClassNames.values()) { + if (classNames.size > 0) { + hasDurableObjects = true; + break; + } + } + if (!hasDurableObjects) + return; + const storagePath = getPersistPath( + DURABLE_OBJECTS_PLUGIN_NAME, + tmpPath, + sharedOptions.durableObjectsPersist + ); + await import_promises4.default.mkdir(storagePath, { recursive: true }); + return [ + { + // Note this service will be de-duped by name if multiple Workers create + // it. Each Worker will have the same `sharedOptions` though, so this + // isn't a problem. + name: DURABLE_OBJECTS_STORAGE_SERVICE_NAME, + disk: { path: storagePath, writable: true } + } + ]; + } +}; + +// packages/miniflare/src/plugins/core/constants.ts +var CORE_PLUGIN_NAME = "core"; +var SERVICE_ENTRY = `${CORE_PLUGIN_NAME}:entry`; +var SERVICE_USER_PREFIX = `${CORE_PLUGIN_NAME}:user`; +var SERVICE_BUILTIN_PREFIX = `${CORE_PLUGIN_NAME}:builtin`; +var SERVICE_CUSTOM_PREFIX = `${CORE_PLUGIN_NAME}:custom`; +function getUserServiceName(workerName = "") { + return `${SERVICE_USER_PREFIX}:${workerName}`; +} +var CUSTOM_SERVICE_KNOWN_OUTBOUND = "outbound"; +function getBuiltinServiceName(workerIndex, kind, bindingName) { + return `${SERVICE_BUILTIN_PREFIX}:${workerIndex}:${kind}${bindingName}`; +} +function getCustomServiceName(workerIndex, kind, bindingName) { + return `${SERVICE_CUSTOM_PREFIX}:${workerIndex}:${kind}${bindingName}`; +} + +// packages/miniflare/src/plugins/core/modules.ts +var import_assert4 = __toESM(require("assert")); +var import_fs9 = require("fs"); +var import_module = require("module"); +var import_path11 = __toESM(require("path")); +var import_url10 = require("url"); +var import_util = require("util"); +var import_acorn = require("acorn"); +var import_acorn_walk = require("acorn-walk"); +var import_zod8 = require("zod"); +var SUGGEST_BUNDLE = "If you're trying to import an npm package, you'll need to bundle your Worker first."; +var SUGGEST_NODE = "If you're trying to import a Node.js built-in module, or an npm package that uses Node.js built-ins, you'll either need to:\n- Bundle your Worker, configuring your bundler to polyfill Node.js built-ins\n- Configure your bundler to load Workers-compatible builds by changing the main fields/conditions\n- Enable the `nodejs_compat` compatibility flag and use the `NodeJsCompatModule` module type\n- Find an alternative package that doesn't require Node.js built-ins"; +var builtinModulesWithPrefix = import_module.builtinModules.concat( + import_module.builtinModules.map((module2) => `node:${module2}`) +); +function buildStringScriptPath(workerIndex) { + return `script:${workerIndex}`; +} +var stringScriptRegexp = /^script:(\d+)$/; +function maybeGetStringScriptPathIndex(scriptPath) { + const match = stringScriptRegexp.exec(scriptPath); + return match === null ? void 0 : parseInt(match[1]); +} +var ModuleRuleTypeSchema = import_zod8.z.enum([ + "ESModule", + "CommonJS", + "NodeJsCompatModule", + "Text", + "Data", + "CompiledWasm" +]); +var ModuleRuleSchema = import_zod8.z.object({ + type: ModuleRuleTypeSchema, + include: import_zod8.z.string().array(), + fallthrough: import_zod8.z.boolean().optional() +}); +var ModuleDefinitionSchema = import_zod8.z.object({ + type: ModuleRuleTypeSchema, + path: import_zod8.z.string(), + contents: import_zod8.z.string().or(import_zod8.z.instanceof(Uint8Array)).optional() +}); +var SourceOptionsSchema = import_zod8.z.union([ + import_zod8.z.object({ + // Manually defined modules + // (used by Wrangler which has its own module collection code) + modules: import_zod8.z.array(ModuleDefinitionSchema), + // `modules` "name"s will be their paths relative to this value. + // This ensures file paths in stack traces are correct. + modulesRoot: import_zod8.z.string().optional() + }), + import_zod8.z.object({ + script: import_zod8.z.string(), + // Optional script path for resolving modules, and stack traces file names + scriptPath: import_zod8.z.string().optional(), + // Automatically collect modules by parsing `script` if `true`, or treat as + // service-worker if `false` + modules: import_zod8.z.boolean().optional(), + // How to interpret automatically collected modules + modulesRules: import_zod8.z.array(ModuleRuleSchema).optional(), + // `modules` "name"s will be their paths relative to this value. + // This ensures file paths in stack traces are correct. + modulesRoot: import_zod8.z.string().optional() + }), + import_zod8.z.object({ + scriptPath: import_zod8.z.string(), + // Automatically collect modules by parsing `scriptPath` if `true`, or treat + // as service-worker if `false` + modules: import_zod8.z.boolean().optional(), + // How to interpret automatically collected modules + modulesRules: import_zod8.z.array(ModuleRuleSchema).optional(), + // `modules` "name"s will be their paths relative to this value. + // This ensures file paths in stack traces are correct. + modulesRoot: import_zod8.z.string().optional() + }) +]); +var DEFAULT_MODULE_RULES = [ + { type: "ESModule", include: ["**/*.mjs"] }, + { type: "CommonJS", include: ["**/*.js", "**/*.cjs"] } +]; +function compileModuleRules(rules) { + const compiledRules = []; + const finalisedTypes = /* @__PURE__ */ new Set(); + for (const rule of [...rules ?? [], ...DEFAULT_MODULE_RULES]) { + if (finalisedTypes.has(rule.type)) + continue; + compiledRules.push({ + type: rule.type, + include: globsToRegExps(rule.include) + }); + if (!rule.fallthrough) + finalisedTypes.add(rule.type); + } + return compiledRules; +} +function moduleName(modulesRoot, modulePath) { + const name = import_path11.default.relative(modulesRoot, modulePath); + return import_path11.default.sep === "\\" ? name.replaceAll("\\", "/") : name; +} +function withSourceURL(script, scriptPath) { + let scriptURL = scriptPath; + if (maybeGetStringScriptPathIndex(scriptPath) === void 0) { + scriptURL = (0, import_url10.pathToFileURL)(scriptPath); + } + const sourceURL = ` +//# sourceURL=${scriptURL} +`; + return script + sourceURL; +} +function getResolveErrorPrefix(referencingPath) { + const relative = import_path11.default.relative("", referencingPath); + return `Unable to resolve "${relative}" dependency`; +} +var ModuleLocator = class { + constructor(modulesRoot, additionalModuleNames, rules, compatibilityFlags) { + this.modulesRoot = modulesRoot; + this.additionalModuleNames = additionalModuleNames; + this.#compiledRules = compileModuleRules(rules); + this.#nodejsCompat = compatibilityFlags?.includes("nodejs_compat") ?? false; + } + #compiledRules; + #nodejsCompat; + #visitedPaths = /* @__PURE__ */ new Set(); + modules = []; + visitEntrypoint(code, modulePath) { + modulePath = import_path11.default.resolve(this.modulesRoot, modulePath); + if (this.#visitedPaths.has(modulePath)) + return; + this.#visitedPaths.add(modulePath); + this.#visitJavaScriptModule(code, modulePath, "ESModule"); + } + #visitJavaScriptModule(code, modulePath, type) { + const name = moduleName(this.modulesRoot, modulePath); + const module2 = createJavaScriptModule(code, name, modulePath, type); + this.modules.push(module2); + const isESM = type === "ESModule"; + let root; + try { + root = (0, import_acorn.parse)(code, { + ecmaVersion: "latest", + sourceType: isESM ? "module" : "script", + locations: true + }); + } catch (e) { + let loc = ""; + if (e.loc?.line !== void 0) { + loc += `:${e.loc.line}`; + if (e.loc.column !== void 0) + loc += `:${e.loc.column}`; + } + throw new MiniflareCoreError( + "ERR_MODULE_PARSE", + `Unable to parse "${name}": ${e.message ?? e} + at ${modulePath}${loc}` + ); + } + const visitors = { + ImportDeclaration: (node) => { + this.#visitModule(modulePath, name, type, node.source); + }, + ExportNamedDeclaration: (node) => { + if (node.source != null) { + this.#visitModule(modulePath, name, type, node.source); + } + }, + ExportAllDeclaration: (node) => { + this.#visitModule(modulePath, name, type, node.source); + }, + ImportExpression: (node) => { + this.#visitModule(modulePath, name, type, node.source); + }, + CallExpression: isESM ? void 0 : (node) => { + const argument = node.arguments[0]; + if (node.callee.type === "Identifier" && node.callee.name === "require" && argument !== void 0) { + this.#visitModule(modulePath, name, type, argument); + } + } + }; + (0, import_acorn_walk.simple)(root, visitors); + } + #visitModule(referencingPath, referencingName, referencingType, specExpression) { + if (maybeGetStringScriptPathIndex(referencingName) !== void 0) { + const prefix = getResolveErrorPrefix(referencingPath); + throw new MiniflareCoreError( + "ERR_MODULE_STRING_SCRIPT", + `${prefix}: imports are unsupported in string \`script\` without defined \`scriptPath\`` + ); + } + if (specExpression.type !== "Literal" || typeof specExpression.value !== "string") { + const modules = this.modules.map((mod) => { + const def = convertWorkerModule(mod); + return ` { type: "${def.type}", path: "${def.path}" }`; + }); + const modulesConfig = ` new Miniflare({ + ..., + modules: [ +${modules.join(",\n")}, + ... + ] + })`; + const prefix = getResolveErrorPrefix(referencingPath); + let message = `${prefix}: dynamic module specifiers are unsupported. +You must manually define your modules when constructing Miniflare: +${dim(modulesConfig)}`; + if (specExpression.loc != null) { + const { line, column } = specExpression.loc.start; + message += ` + at ${referencingPath}:${line}:${column}`; + } + throw new MiniflareCoreError("ERR_MODULE_DYNAMIC_SPEC", message); + } + const spec = specExpression.value; + const isNodeJsCompatModule = referencingType === "NodeJsCompatModule"; + if (this.#nodejsCompat && spec.startsWith("node:") || spec.startsWith("cloudflare:") || spec.startsWith("workerd:") || isNodeJsCompatModule && builtinModulesWithPrefix.includes(spec) || this.additionalModuleNames.includes(spec)) { + return; + } + const identifier = import_path11.default.resolve(import_path11.default.dirname(referencingPath), spec); + const name = moduleName(this.modulesRoot, identifier); + if (this.#visitedPaths.has(identifier)) + return; + this.#visitedPaths.add(identifier); + const rule = this.#compiledRules.find( + (rule2) => testRegExps(rule2.include, identifier) + ); + if (rule === void 0) { + const prefix = getResolveErrorPrefix(referencingPath); + const isBuiltin = builtinModulesWithPrefix.includes(spec); + const suggestion = isBuiltin ? SUGGEST_NODE : SUGGEST_BUNDLE; + throw new MiniflareCoreError( + "ERR_MODULE_RULE", + `${prefix} "${spec}": no matching module rules. +${suggestion}` + ); + } + const data = (0, import_fs9.readFileSync)(identifier); + switch (rule.type) { + case "ESModule": + case "CommonJS": + case "NodeJsCompatModule": + const code = data.toString("utf8"); + this.#visitJavaScriptModule(code, identifier, rule.type); + break; + case "Text": + this.modules.push({ name, text: data.toString("utf8") }); + break; + case "Data": + this.modules.push({ name, data }); + break; + case "CompiledWasm": + this.modules.push({ name, wasm: data }); + break; + default: + const exhaustive = rule.type; + import_assert4.default.fail(`Unreachable: ${exhaustive} modules are unsupported`); + } + } +}; +function createJavaScriptModule(code, name, modulePath, type) { + code = withSourceURL(code, modulePath); + if (type === "ESModule") { + return { name, esModule: code }; + } else if (type === "CommonJS") { + return { name, commonJsModule: code }; + } else if (type === "NodeJsCompatModule") { + return { name, nodeJsCompatModule: code }; + } + const exhaustive = type; + import_assert4.default.fail(`Unreachable: ${exhaustive} JavaScript modules are unsupported`); +} +var encoder = new import_util.TextEncoder(); +var decoder = new import_util.TextDecoder(); +function contentsToString(contents13) { + return typeof contents13 === "string" ? contents13 : decoder.decode(contents13); +} +function contentsToArray(contents13) { + return typeof contents13 === "string" ? encoder.encode(contents13) : contents13; +} +function convertModuleDefinition(modulesRoot, def) { + const name = moduleName(modulesRoot, def.path); + const contents13 = def.contents ?? (0, import_fs9.readFileSync)(def.path); + switch (def.type) { + case "ESModule": + case "CommonJS": + case "NodeJsCompatModule": + return createJavaScriptModule( + contentsToString(contents13), + name, + import_path11.default.resolve(modulesRoot, def.path), + def.type + ); + case "Text": + return { name, text: contentsToString(contents13) }; + case "Data": + return { name, data: contentsToArray(contents13) }; + case "CompiledWasm": + return { name, wasm: contentsToArray(contents13) }; + default: + const exhaustive = def.type; + import_assert4.default.fail(`Unreachable: ${exhaustive} modules are unsupported`); + } +} +function convertWorkerModule(mod) { + const path21 = mod.name; + (0, import_assert4.default)(path21 !== void 0); + const m = mod; + if ("esModule" in m) + return { path: path21, type: "ESModule" }; + else if ("commonJsModule" in m) + return { path: path21, type: "CommonJS" }; + else if ("nodeJsCompatModule" in m) + return { path: path21, type: "NodeJsCompatModule" }; + else if ("text" in m) + return { path: path21, type: "Text" }; + else if ("data" in m) + return { path: path21, type: "Data" }; + else if ("wasm" in m) + return { path: path21, type: "CompiledWasm" }; + (0, import_assert4.default)(!("json" in m), "Unreachable: json modules aren't generated"); + const exhaustive = m; + import_assert4.default.fail( + `Unreachable: [${Object.keys(exhaustive).join( + ", " + )}] modules are unsupported` + ); +} + +// packages/miniflare/src/plugins/core/services.ts +var import_zod9 = require("zod"); +var HttpOptionsHeaderSchema = import_zod9.z.object({ + name: import_zod9.z.string(), + // name should be required + value: import_zod9.z.ostring() + // If omitted, the header will be removed +}); +var HttpOptionsSchema = import_zod9.z.object({ + style: import_zod9.z.nativeEnum(import_workerd_capnp.HttpOptions_Style).optional(), + forwardedProtoHeader: import_zod9.z.ostring(), + cfBlobHeader: import_zod9.z.ostring(), + injectRequestHeaders: HttpOptionsHeaderSchema.array().optional(), + injectResponseHeaders: HttpOptionsHeaderSchema.array().optional() +}); +var TlsOptionsKeypairSchema = import_zod9.z.object({ + privateKey: import_zod9.z.ostring(), + certificateChain: import_zod9.z.ostring() +}); +var TlsOptionsSchema = import_zod9.z.object({ + keypair: TlsOptionsKeypairSchema.optional(), + requireClientCerts: import_zod9.z.oboolean(), + trustBrowserCas: import_zod9.z.oboolean(), + trustedCertificates: import_zod9.z.string().array().optional(), + minVersion: import_zod9.z.nativeEnum(import_workerd_capnp.TlsOptions_Version).optional(), + cipherList: import_zod9.z.ostring() +}); +var NetworkSchema = import_zod9.z.object({ + allow: import_zod9.z.string().array().optional(), + deny: import_zod9.z.string().array().optional(), + tlsOptions: TlsOptionsSchema.optional() +}); +var ExternalServerSchema = import_zod9.z.intersection( + import_zod9.z.object({ address: import_zod9.z.string() }), + // address should be required + import_zod9.z.union([ + import_zod9.z.object({ http: import_zod9.z.optional(HttpOptionsSchema) }), + import_zod9.z.object({ + https: import_zod9.z.optional( + import_zod9.z.object({ + options: HttpOptionsSchema.optional(), + tlsOptions: TlsOptionsSchema.optional(), + certificateHost: import_zod9.z.ostring() + }) + ) + }) + ]) +); +var DiskDirectorySchema = import_zod9.z.object({ + path: import_zod9.z.string(), + // path should be required + writable: import_zod9.z.oboolean() +}); +var ServiceFetchSchema = import_zod9.z.function().args(import_zod9.z.instanceof(Request)).returns(zAwaitable(import_zod9.z.instanceof(Response))); +var ServiceDesignatorSchema = import_zod9.z.union([ + import_zod9.z.string(), + import_zod9.z.object({ network: NetworkSchema }), + import_zod9.z.object({ external: ExternalServerSchema }), + import_zod9.z.object({ disk: DiskDirectorySchema }), + ServiceFetchSchema +]); + +// packages/miniflare/src/plugins/core/errors/index.ts +var import_fs10 = __toESM(require("fs")); +var import_path12 = __toESM(require("path")); +var import_url11 = require("url"); +var import_zod10 = require("zod"); + +// packages/miniflare/src/plugins/core/errors/sourcemap.ts +var import_assert5 = __toESM(require("assert")); + +// packages/miniflare/src/plugins/core/errors/callsite.ts +function parseStack(stack) { + return stack.split("\n").slice(1).map(parseCallSite).filter((site) => site !== void 0); +} +function parseCallSite(line) { + const lineMatch = line.match( + /at (?:(.+?)\s+\()?(?:(.+?):(\d+)(?::(\d+))?|([^)]+))\)?/ + ); + if (!lineMatch) { + return; + } + let object = null; + let method = null; + let functionName = null; + let typeName = null; + let methodName = null; + const isNative = lineMatch[5] === "native"; + if (lineMatch[1]) { + functionName = lineMatch[1]; + let methodStart = functionName.lastIndexOf("."); + if (functionName[methodStart - 1] == ".") + methodStart--; + if (methodStart > 0) { + object = functionName.substring(0, methodStart); + method = functionName.substring(methodStart + 1); + const objectEnd = object.indexOf(".Module"); + if (objectEnd > 0) { + functionName = functionName.substring(objectEnd + 1); + object = object.substring(0, objectEnd); + } + } + } + if (method) { + typeName = object; + methodName = method; + } + if (method === "<anonymous>") { + methodName = null; + functionName = null; + } + return new CallSite({ + typeName, + functionName, + methodName, + fileName: lineMatch[2] || null, + lineNumber: parseInt(lineMatch[3]) || null, + columnNumber: parseInt(lineMatch[4]) || null, + native: isNative + }); +} +var CallSite = class { + constructor(opts) { + this.opts = opts; + } + getThis() { + return null; + } + getTypeName() { + return this.opts.typeName; + } + // eslint-disable-next-line @typescript-eslint/ban-types + getFunction() { + return void 0; + } + getFunctionName() { + return this.opts.functionName; + } + getMethodName() { + return this.opts.methodName; + } + getFileName() { + return this.opts.fileName; + } + getScriptNameOrSourceURL() { + return this.opts.fileName; + } + getLineNumber() { + return this.opts.lineNumber; + } + getColumnNumber() { + return this.opts.columnNumber; + } + getEvalOrigin() { + return void 0; + } + isToplevel() { + return false; + } + isEval() { + return false; + } + isNative() { + return this.opts.native; + } + isConstructor() { + return false; + } + isAsync() { + return false; + } + isPromiseAll() { + return false; + } + isPromiseAny() { + return false; + } + getPromiseIndex() { + return null; + } +}; + +// packages/miniflare/src/plugins/core/errors/sourcemap.ts +var sourceMapInstallBaseOptions = { + environment: "node", + // Don't add Node `uncaughtException` handler + handleUncaughtExceptions: false, + // Don't hook Node `require` function + hookRequire: false, + // Make sure we're using fresh copies of files (i.e. between `setOptions()`) + emptyCacheBetweenOperations: true, + // Always remove existing retrievers when calling `install()`, we should be + // specifying them each time we want to source map + overrideRetrieveFile: true, + overrideRetrieveSourceMap: true +}; +var sourceMapper; +function getSourceMapper() { + if (sourceMapper !== void 0) + return sourceMapper; + const originalSupport = require.cache["source-map-support"]; + delete require.cache["source-map-support"]; + const support = require("source-map-support"); + require.cache["source-map-support"] = originalSupport; + const originalPrepareStackTrace = Error.prepareStackTrace; + support.install(sourceMapInstallBaseOptions); + const prepareStackTrace = Error.prepareStackTrace; + (0, import_assert5.default)(prepareStackTrace !== void 0); + Error.prepareStackTrace = originalPrepareStackTrace; + sourceMapper = (retrieveSourceMap, error) => { + support.install({ + ...sourceMapInstallBaseOptions, + retrieveFile(file) { + import_assert5.default.fail(`Unexpected retrieveFile(${JSON.stringify(file)}) call`); + }, + retrieveSourceMap + }); + const callSites = parseStack(error.stack ?? ""); + return prepareStackTrace(error, callSites); + }; + return sourceMapper; +} + +// packages/miniflare/src/plugins/core/errors/index.ts +function maybeGetDiskFile(filePath) { + try { + const contents13 = import_fs10.default.readFileSync(filePath, "utf8"); + return { path: filePath, contents: contents13 }; + } catch (e) { + if (e.code !== "ENOENT") + throw e; + } +} +function maybeGetFile(workerSrcOpts, fileSpecifier) { + const maybeUrl = maybeParseURL(fileSpecifier); + if (maybeUrl !== void 0 && maybeUrl.protocol === "file:") { + const filePath = (0, import_url11.fileURLToPath)(maybeUrl); + for (const srcOpts of workerSrcOpts) { + if (Array.isArray(srcOpts.modules)) { + const modulesRoot = srcOpts.modulesRoot ?? ""; + for (const module2 of srcOpts.modules) { + if (module2.contents !== void 0 && import_path12.default.resolve(modulesRoot, module2.path) === filePath) { + const contents13 = contentsToString(module2.contents); + return { path: filePath, contents: contents13 }; + } + } + } else if ("script" in srcOpts && "scriptPath" in srcOpts && srcOpts.script !== void 0 && srcOpts.scriptPath !== void 0) { + const modulesRoot = srcOpts.modules && srcOpts.modulesRoot || ""; + if (import_path12.default.resolve(modulesRoot, srcOpts.scriptPath) === filePath) { + return { path: filePath, contents: srcOpts.script }; + } + } + } + return maybeGetDiskFile(filePath); + } + const workerIndex = maybeGetStringScriptPathIndex(fileSpecifier); + if (workerIndex !== void 0) { + const srcOpts = workerSrcOpts[workerIndex]; + if ("script" in srcOpts && srcOpts.script !== void 0) { + return { contents: srcOpts.script }; + } + } +} +function getSourceMappedStack(workerSrcOpts, error) { + function retrieveSourceMap(fileSpecifier) { + const sourceFile = maybeGetFile(workerSrcOpts, fileSpecifier); + if (sourceFile?.path === void 0) + return null; + const sourceMapRegexp = /# sourceMappingURL=(.+)/g; + const matches = [...sourceFile.contents.matchAll(sourceMapRegexp)]; + if (matches.length === 0) + return null; + const sourceMapMatch = matches[matches.length - 1]; + const root = import_path12.default.dirname(sourceFile.path); + const sourceMapPath = import_path12.default.resolve(root, sourceMapMatch[1]); + const sourceMapFile = maybeGetDiskFile(sourceMapPath); + if (sourceMapFile === void 0) + return null; + return { map: sourceMapFile.contents, url: sourceMapFile.path }; + } + return getSourceMapper()(retrieveSourceMap, error); +} +var JsonErrorSchema = import_zod10.z.lazy( + () => import_zod10.z.object({ + message: import_zod10.z.string().optional(), + name: import_zod10.z.string().optional(), + stack: import_zod10.z.string().optional(), + cause: JsonErrorSchema.optional() + }) +); +var ALLOWED_ERROR_SUBCLASS_CONSTRUCTORS = [ + EvalError, + RangeError, + ReferenceError, + SyntaxError, + TypeError, + URIError +]; +function reviveError(workerSrcOpts, jsonError) { + let cause; + if (jsonError.cause !== void 0) { + cause = reviveError(workerSrcOpts, jsonError.cause); + } + let ctor = Error; + if (jsonError.name !== void 0 && jsonError.name in globalThis) { + const maybeCtor = globalThis[jsonError.name]; + if (ALLOWED_ERROR_SUBCLASS_CONSTRUCTORS.includes(maybeCtor)) { + ctor = maybeCtor; + } + } + const error = new ctor(jsonError.message, { cause }); + if (jsonError.name !== void 0) + error.name = jsonError.name; + error.stack = jsonError.stack; + error.stack = getSourceMappedStack(workerSrcOpts, error); + return error; +} +async function handlePrettyErrorRequest(log, workerSrcOpts, request) { + const caught = JsonErrorSchema.parse(await request.json()); + const error = reviveError(workerSrcOpts, caught); + log.error(error); + const accept = request.headers.get("Accept")?.toLowerCase() ?? ""; + const userAgent = request.headers.get("User-Agent")?.toLowerCase() ?? ""; + const acceptsPrettyError = !userAgent.includes("curl/") && (accept.includes("text/html") || accept.includes("*/*") || accept.includes("text/*")); + if (!acceptsPrettyError) { + return new Response(error.stack, { status: 500 }); + } + const Youch = require("youch"); + const youch = new Youch(error.cause ?? error, { + url: request.url, + method: request.method, + headers: Object.fromEntries(request.headers) + }); + youch.addLink(() => { + return [ + '<a href="https://developers.cloudflare.com/workers/" target="_blank" style="text-decoration:none">\u{1F4DA} Workers Docs</a>', + '<a href="https://discord.gg/cloudflaredev" target="_blank" style="text-decoration:none">\u{1F4AC} Workers Discord</a>' + ].join(""); + }); + return new Response(await youch.toHTML(), { + status: 500, + headers: { "Content-Type": "text/html;charset=utf-8" } + }); +} + +// packages/miniflare/src/plugins/core/proxy/client.ts +var import_assert7 = __toESM(require("assert")); +var import_web4 = require("stream/web"); +var import_util2 = __toESM(require("util")); +var import_undici6 = require("undici"); + +// packages/miniflare/src/plugins/core/proxy/fetch-sync.ts +var import_assert6 = __toESM(require("assert")); +var import_web2 = require("stream/web"); +var import_worker_threads = require("worker_threads"); +var DECODER = new TextDecoder(); +var WORKER_SCRIPT = ( + /* javascript */ + ` +const { createRequire } = require("module"); +const { workerData } = require("worker_threads"); + +// Not using parentPort here so we can call receiveMessageOnPort() in host +const { notifyHandle, port, filename } = workerData; + +// When running Miniflare from Jest, regular 'require("undici")' will fail here +// with "Error: Cannot find module 'undici'". Instead we need to create a +// 'require' using the '__filename' of the host... :( +const actualRequire = createRequire(filename); +const { Client, fetch } = actualRequire("undici"); + +let clientUrl; +let client; + +port.addEventListener("message", async (event) => { + const { id, method, url, headers, body } = event.data; + if (clientUrl !== url) { + clientUrl = url; + client = new Client(url, { + connect: { rejectUnauthorized: false }, + }); + } + headers["${CoreHeaders.OP_SYNC}"] = "true"; + try { + // body cannot be a ReadableStream, so no need to specify duplex + const response = await fetch(url, { method, headers, body, dispatcher: client }); + const responseBody = response.headers.get("${CoreHeaders.OP_RESULT_TYPE}") === "ReadableStream" + ? response.body + : await response.arrayBuffer(); + const transferList = responseBody === null ? undefined : [responseBody]; + port.postMessage( + { + id, + response: { + status: response.status, + headers: Object.fromEntries(response.headers), + body: responseBody, + } + }, + transferList + ); + } catch (error) { + try { + port.postMessage({ id, error }); + } catch { + // If error failed to serialise, post simplified version + port.postMessage({ id, error: new Error(String(error)) }); + } + } + Atomics.store(notifyHandle, /* index */ 0, /* value */ 1); + Atomics.notify(notifyHandle, /* index */ 0); +}); +` +); +var SynchronousFetcher = class { + #channel; + #notifyHandle; + #worker; + #nextId = 0; + constructor() { + this.#channel = new import_worker_threads.MessageChannel(); + this.#notifyHandle = new Int32Array(new SharedArrayBuffer(4)); + } + #ensureWorker() { + if (this.#worker !== void 0) + return; + this.#worker = new import_worker_threads.Worker(WORKER_SCRIPT, { + eval: true, + workerData: { + notifyHandle: this.#notifyHandle, + port: this.#channel.port2, + filename: __filename + }, + transferList: [this.#channel.port2] + }); + } + fetch(url13, init2) { + this.#ensureWorker(); + Atomics.store( + this.#notifyHandle, + /* index */ + 0, + /* value */ + 0 + ); + const id = this.#nextId++; + this.#channel.port1.postMessage({ + id, + method: init2.method, + url: url13.toString(), + headers: init2.headers, + body: init2.body + }); + Atomics.wait( + this.#notifyHandle, + /* index */ + 0, + /* value */ + 0 + ); + const message = (0, import_worker_threads.receiveMessageOnPort)( + this.#channel.port1 + )?.message; + (0, import_assert6.default)(message?.id === id); + if ("response" in message) { + const { status, headers: rawHeaders, body } = message.response; + const headers = new import_undici8.Headers(rawHeaders); + const stack = headers.get(CoreHeaders.ERROR_STACK); + if (status === 500 && stack !== null && body !== null) { + (0, import_assert6.default)(!(body instanceof import_web2.ReadableStream)); + const caught = JsonErrorSchema.parse(JSON.parse(DECODER.decode(body))); + throw reviveError([], caught); + } + return { status, headers, body }; + } else { + throw message.error; + } + } + async dispose() { + await this.#worker?.terminate(); + } +}; + +// packages/miniflare/src/plugins/core/proxy/types.ts +var import_buffer = require("buffer"); +var import_consumers = require("stream/consumers"); +var import_web3 = require("stream/web"); +var import_undici5 = require("undici"); +var NODE_PLATFORM_IMPL = { + // Node's implementation of these classes don't quite match Workers', + // but they're close enough for us + Blob: import_buffer.Blob, + File: import_undici5.File, + Headers: import_undici5.Headers, + Request, + Response, + isReadableStream(value) { + return value instanceof import_web3.ReadableStream; + }, + bufferReadableStream(stream) { + return (0, import_consumers.arrayBuffer)(stream); + }, + unbufferReadableStream(buffer) { + return new import_buffer.Blob([new Uint8Array(buffer)]).stream(); + } +}; + +// packages/miniflare/src/plugins/core/proxy/client.ts +var kAddress = Symbol("kAddress"); +var kName = Symbol("kName"); +function isNativeTarget(value) { + return typeof value === "object" && value !== null && kAddress in value; +} +var TARGET_GLOBAL = { + [kAddress]: ProxyAddresses.GLOBAL, + [kName]: "global" +}; +var TARGET_ENV = { + [kAddress]: ProxyAddresses.ENV, + [kName]: "env" +}; +var reducers = { + ...structuredSerializableReducers, + ...createHTTPReducers(NODE_PLATFORM_IMPL), + Native(value) { + if (isNativeTarget(value)) + return [value[kAddress], value[kName]]; + } +}; +var revivers = { + ...structuredSerializableRevivers, + ...createHTTPRevivers(NODE_PLATFORM_IMPL) + // `Native` reviver depends on `ProxyStubHandler` methods +}; +var ProxyClient = class { + #bridge; + constructor(runtimeEntryURL, dispatchFetch) { + this.#bridge = new ProxyClientBridge(runtimeEntryURL, dispatchFetch); + } + // Lazily initialise proxies as required + #globalProxy; + #envProxy; + get global() { + return this.#globalProxy ??= this.#bridge.getProxy(TARGET_GLOBAL); + } + get env() { + return this.#envProxy ??= this.#bridge.getProxy(TARGET_ENV); + } + poisonProxies(runtimeEntryURL) { + this.#bridge.poisonProxies(runtimeEntryURL); + this.#globalProxy = void 0; + this.#envProxy = void 0; + } + dispose() { + return this.#bridge.dispose(); + } +}; +var ProxyClientBridge = class { + constructor(url13, dispatchFetch) { + this.url = url13; + this.dispatchFetch = dispatchFetch; + this.#finalizationRegistry = new FinalizationRegistry(this.#finalizeProxy); + } + // Each proxy stub is initialised with the version stored here. Whenever + // `poisonProxies()` is called, this version is incremented. Before the + // proxy makes any request to `workerd`, it checks the version number here + // matches its own internal version, and throws if not. + #version = 0; + // Whenever the `ProxyServer` returns a native target, it adds a strong + // reference to the "heap" in the singleton object. This prevents the object + // being garbage collected. To solve this, we register the native target + // proxies on the client in a `FinalizationRegistry`. When the proxies get + // garbage collected, we let the `ProxyServer` know it can release the strong + // "heap" reference, as we'll never be able to access it again. Importantly, + // we need to unregister all proxies from the registry when we poison them, + // as the references will be invalid, and a new object with the same address + // may be added to the "heap". + #finalizationRegistry; + sync = new SynchronousFetcher(); + get version() { + return this.#version; + } + #finalizeProxy = async (held) => { + if (held.version !== this.#version) + return; + try { + await this.dispatchFetch(this.url, { + method: "DELETE", + headers: { + [CoreHeaders.OP]: ProxyOps.FREE, + [CoreHeaders.OP_TARGET]: held.address.toString() + } + }); + } catch { + } + }; + getProxy(target) { + const handler = new ProxyStubHandler(this, target); + const proxy = new Proxy( + { [import_util2.default.inspect.custom]: handler.inspect }, + handler + ); + const held = { + address: target[kAddress], + version: this.#version + }; + this.#finalizationRegistry.register(proxy, held, this); + return proxy; + } + poisonProxies(url13) { + this.#version++; + if (url13 !== void 0) + this.url = url13; + this.#finalizationRegistry.unregister(this); + } + dispose() { + this.poisonProxies(); + return this.sync.dispose(); + } +}; +var ProxyStubHandler = class { + constructor(bridge, target) { + this.bridge = bridge; + this.target = target; + this.#version = bridge.version; + this.#stringifiedTarget = stringify(this.target, reducers); + } + #version; + #stringifiedTarget; + #known = /* @__PURE__ */ new Map(); + revivers = { + ...revivers, + Native: (value) => { + (0, import_assert7.default)(Array.isArray(value)); + const [address, name] = value; + (0, import_assert7.default)(typeof address === "number"); + (0, import_assert7.default)(typeof name === "string"); + const target = { [kAddress]: address, [kName]: name }; + if (name === "Promise") { + const resPromise = this.bridge.dispatchFetch(this.bridge.url, { + method: "POST", + headers: { + [CoreHeaders.OP]: ProxyOps.GET, + // GET without key just gets target + [CoreHeaders.OP_TARGET]: stringify(target, reducers) + } + }); + return this.#parseAsyncResponse(resPromise); + } else { + return this.bridge.getProxy(target); + } + } + }; + get #poisoned() { + return this.#version !== this.bridge.version; + } + #assertSafe() { + if (this.#poisoned) { + throw new Error( + "Attempted to use poisoned stub. Stubs to runtime objects must be re-created after calling `Miniflare#setOptions()` or `Miniflare#dispose()`." + ); + } + } + inspect = (depth, options) => { + const details = { name: this.target[kName], poisoned: this.#poisoned }; + return `ProxyStub ${import_util2.default.inspect(details, options)}`; + }; + #maybeThrow(res, result, caller) { + if (res.status === 500) { + if (typeof result === "object" && result !== null) { + Error.captureStackTrace(result, caller); + } + throw result; + } else { + (0, import_assert7.default)(res.status === 200); + return result; + } + } + async #parseAsyncResponse(resPromise) { + const res = await resPromise; + const typeHeader = res.headers.get(CoreHeaders.OP_RESULT_TYPE); + if (typeHeader === "Promise, ReadableStream") + return res.body; + (0, import_assert7.default)(typeHeader === "Promise"); + let stringifiedResult; + let unbufferedStream; + const stringifiedSizeHeader = res.headers.get( + CoreHeaders.OP_STRINGIFIED_SIZE + ); + if (stringifiedSizeHeader === null) { + stringifiedResult = await res.text(); + } else { + const stringifiedSize = parseInt(stringifiedSizeHeader); + (0, import_assert7.default)(!Number.isNaN(stringifiedSize)); + (0, import_assert7.default)(res.body !== null); + const [buffer, rest] = await readPrefix(res.body, stringifiedSize); + stringifiedResult = buffer.toString(); + unbufferedStream = rest.pipeThrough(new import_web4.TransformStream()); + } + const result = parseWithReadableStreams( + NODE_PLATFORM_IMPL, + { value: stringifiedResult, unbufferedStream }, + this.revivers + ); + return this.#maybeThrow(res, result, this.#parseAsyncResponse); + } + #parseSyncResponse(syncRes, caller) { + (0, import_assert7.default)(syncRes.body !== null); + (0, import_assert7.default)(syncRes.headers.get(CoreHeaders.OP_STRINGIFIED_SIZE) === null); + if (syncRes.body instanceof import_web4.ReadableStream) + return syncRes.body; + const stringifiedResult = DECODER.decode(syncRes.body); + const result = parseWithReadableStreams( + NODE_PLATFORM_IMPL, + { value: stringifiedResult }, + this.revivers + ); + return this.#maybeThrow(syncRes, result, caller); + } + get(_target, key, _receiver) { + this.#assertSafe(); + if (key === kAddress) + return this.target[kAddress]; + if (key === kName) + return this.target[kName]; + if (typeof key === "symbol" || key === "then") + return void 0; + const maybeKnown = this.#known.get(key); + if (maybeKnown !== void 0) + return maybeKnown; + const syncRes = this.bridge.sync.fetch(this.bridge.url, { + method: "POST", + headers: { + [CoreHeaders.OP]: ProxyOps.GET, + [CoreHeaders.OP_TARGET]: this.#stringifiedTarget, + [CoreHeaders.OP_KEY]: key + } + }); + let result; + if (syncRes.headers.get(CoreHeaders.OP_RESULT_TYPE) === "Function") { + result = this.#createFunction(key); + } else { + result = this.#parseSyncResponse(syncRes, this.get); + } + if ( + // Optimisation: if this property is a function, we assume constant + // prototypes of proxied objects, so it's never going to change + typeof result === "function" || // Optimisation: if this property is a reference, we assume it's never + // going to change. This allows us to reuse the known cache of nested + // objects on multiple access (e.g. reusing `env["...<bucket>"]` proxy if + // `getR2Bucket(<bucket>)` is called on the same bucket multiple times). + isNativeTarget(result) || // Once a `ReadableStream` sent across proxy, we won't be able to read it + // again in the server, so reuse the same stream for future accesses + // (e.g. accessing `R2ObjectBody#body` multiple times) + result instanceof import_web4.ReadableStream + ) { + this.#known.set(key, result); + } + return result; + } + has(target, key) { + return this.get(target, key, void 0) !== void 0; + } + #createFunction(key) { + let knownAsync = false; + const func = { + [key]: (...args) => { + const result = this.#call(key, knownAsync, args, func); + if (!knownAsync && result instanceof Promise) + knownAsync = true; + return result; + } + }[key]; + return func; + } + #call(key, knownAsync, args, caller) { + this.#assertSafe(); + const targetName = this.target[kName]; + if (isFetcherFetch(targetName, key)) + return this.#fetcherFetchCall(args); + const stringified = stringifyWithStreams( + NODE_PLATFORM_IMPL, + args, + reducers, + /* allowUnbufferedStream */ + true + ); + if (knownAsync || // We assume every call with `ReadableStream`/`Blob` arguments is async. + // Note that you can't consume `ReadableStream`/`Blob` synchronously: if + // you tried a similar trick to `SynchronousFetcher`, blocking the main + // thread with `Atomics.wait()` would prevent chunks being read. This + // assumption doesn't hold for `Blob`s and `FormData#{append,set}()`, but + // we should never expose proxies for those APIs to users. + stringified instanceof Promise || // (instanceof Promise if buffered `ReadableStream`/`Blob`s) + stringified.unbufferedStream !== void 0) { + return this.#asyncCall(key, stringified); + } else { + const result = this.#syncCall(key, stringified.value, caller); + if (isR2ObjectWriteHttpMetadata(targetName, key)) { + const arg = args[0]; + (0, import_assert7.default)(arg instanceof import_undici6.Headers); + (0, import_assert7.default)(result instanceof import_undici6.Headers); + for (const [key2, value] of result) + arg.set(key2, value); + return; + } + return result; + } + } + #syncCall(key, stringifiedValue, caller) { + const argsSize = Buffer.byteLength(stringifiedValue).toString(); + const syncRes = this.bridge.sync.fetch(this.bridge.url, { + method: "POST", + headers: { + [CoreHeaders.OP]: ProxyOps.CALL, + [CoreHeaders.OP_TARGET]: this.#stringifiedTarget, + [CoreHeaders.OP_KEY]: key, + [CoreHeaders.OP_STRINGIFIED_SIZE]: argsSize, + "Content-Length": argsSize + }, + body: stringifiedValue + }); + return this.#parseSyncResponse(syncRes, caller); + } + async #asyncCall(key, stringifiedAwaitable) { + const stringified = await stringifiedAwaitable; + let resPromise; + if (stringified.unbufferedStream === void 0) { + const argsSize = Buffer.byteLength(stringified.value).toString(); + resPromise = this.bridge.dispatchFetch(this.bridge.url, { + method: "POST", + headers: { + [CoreHeaders.OP]: ProxyOps.CALL, + [CoreHeaders.OP_TARGET]: this.#stringifiedTarget, + [CoreHeaders.OP_KEY]: key, + [CoreHeaders.OP_STRINGIFIED_SIZE]: argsSize, + "Content-Length": argsSize + }, + body: stringified.value + }); + } else { + const encodedArgs = Buffer.from(stringified.value); + const argsSize = encodedArgs.byteLength.toString(); + const body = prefixStream(encodedArgs, stringified.unbufferedStream); + resPromise = this.bridge.dispatchFetch(this.bridge.url, { + method: "POST", + headers: { + [CoreHeaders.OP]: ProxyOps.CALL, + [CoreHeaders.OP_TARGET]: this.#stringifiedTarget, + [CoreHeaders.OP_KEY]: key, + [CoreHeaders.OP_STRINGIFIED_SIZE]: argsSize + }, + duplex: "half", + body + }); + } + return this.#parseAsyncResponse(resPromise); + } + #fetcherFetchCall(args) { + const request = new Request(...args); + request.headers.set(CoreHeaders.OP, ProxyOps.CALL); + request.headers.set(CoreHeaders.OP_TARGET, this.#stringifiedTarget); + request.headers.set(CoreHeaders.OP_KEY, "fetch"); + return this.bridge.dispatchFetch(request); + } +}; + +// packages/miniflare/src/plugins/core/index.ts +var trustedCertificates = process.platform === "win32" ? Array.from(import_tls.default.rootCertificates) : []; +if (process.env.NODE_EXTRA_CA_CERTS !== void 0) { + try { + const extra = (0, import_fs11.readFileSync)(process.env.NODE_EXTRA_CA_CERTS, "utf8"); + const pemBegin = "-----BEGIN"; + for (const cert of extra.split(pemBegin)) { + if (cert.trim() !== "") + trustedCertificates.push(pemBegin + cert); + } + } catch { + } +} +var encoder2 = new import_util3.TextEncoder(); +var numericCompare = new Intl.Collator(void 0, { numeric: true }).compare; +function createFetchMock() { + return new import_undici7.MockAgent(); +} +var CoreOptionsSchemaInput = import_zod11.z.intersection( + SourceOptionsSchema, + import_zod11.z.object({ + name: import_zod11.z.string().optional(), + compatibilityDate: import_zod11.z.string().optional(), + compatibilityFlags: import_zod11.z.string().array().optional(), + routes: import_zod11.z.string().array().optional(), + bindings: import_zod11.z.record(JsonSchema).optional(), + wasmBindings: import_zod11.z.record(import_zod11.z.string()).optional(), + textBlobBindings: import_zod11.z.record(import_zod11.z.string()).optional(), + dataBlobBindings: import_zod11.z.record(import_zod11.z.string()).optional(), + serviceBindings: import_zod11.z.record(ServiceDesignatorSchema).optional(), + outboundService: ServiceDesignatorSchema.optional(), + fetchMock: import_zod11.z.instanceof(import_undici7.MockAgent).optional(), + unsafeEphemeralDurableObjects: import_zod11.z.boolean().optional() + }) +); +var CoreOptionsSchema = CoreOptionsSchemaInput.transform((value) => { + const fetchMock = value.fetchMock; + if (fetchMock !== void 0) { + if (value.outboundService !== void 0) { + throw new MiniflareCoreError( + "ERR_MULTIPLE_OUTBOUNDS", + "Only one of `outboundService` or `fetchMock` may be specified per worker" + ); + } + value.outboundService = (req) => fetch2(req, { dispatcher: fetchMock }); + } + return value; +}); +var CoreSharedOptionsSchema = import_zod11.z.object({ + host: import_zod11.z.string().optional(), + port: import_zod11.z.number().optional(), + https: import_zod11.z.boolean().optional(), + httpsKey: import_zod11.z.string().optional(), + httpsKeyPath: import_zod11.z.string().optional(), + httpsCert: import_zod11.z.string().optional(), + httpsCertPath: import_zod11.z.string().optional(), + inspectorPort: import_zod11.z.number().optional(), + verbose: import_zod11.z.boolean().optional(), + log: import_zod11.z.instanceof(Log).optional(), + upstream: import_zod11.z.string().optional(), + // TODO: add back validation of cf object + cf: import_zod11.z.union([import_zod11.z.boolean(), import_zod11.z.string(), import_zod11.z.record(import_zod11.z.any())]).optional(), + liveReload: import_zod11.z.boolean().optional() +}); +var CORE_PLUGIN_NAME2 = "core"; +var LIVE_RELOAD_SCRIPT_TEMPLATE = (port) => `<script defer type="application/javascript"> +(function () { + // Miniflare Live Reload + var url = new URL("/cdn-cgi/mf/reload", location.origin); + url.protocol = url.protocol.replace("http", "ws"); + url.port = ${port}; + function reload() { location.reload(); } + function connect(reconnected) { + var ws = new WebSocket(url); + if (reconnected) ws.onopen = reload; + ws.onclose = function(e) { + e.code === 1012 ? reload() : e.code === 1000 || e.code === 1001 || setTimeout(connect, 1000, true); + } + } + connect(); +})(); +</script>`; +var SCRIPT_CUSTOM_SERVICE = `addEventListener("fetch", (event) => { + const request = new Request(event.request); + request.headers.set("${CoreHeaders.CUSTOM_SERVICE}", ${CoreBindings.TEXT_CUSTOM_SERVICE}); + request.headers.set("${CoreHeaders.ORIGINAL_URL}", request.url); + event.respondWith(${CoreBindings.SERVICE_LOOPBACK}.fetch(request)); +})`; +function getCustomServiceDesignator(workerIndex, kind, name, service) { + let serviceName; + if (typeof service === "function") { + serviceName = getCustomServiceName(workerIndex, kind, name); + } else if (typeof service === "object") { + serviceName = getBuiltinServiceName(workerIndex, kind, name); + } else { + serviceName = getUserServiceName(service); + } + return { name: serviceName }; +} +function maybeGetCustomServiceService(workerIndex, kind, name, service) { + if (typeof service === "function") { + return { + name: getCustomServiceName(workerIndex, kind, name), + worker: { + serviceWorkerScript: SCRIPT_CUSTOM_SERVICE, + compatibilityDate: "2022-09-01", + bindings: [ + { + name: CoreBindings.TEXT_CUSTOM_SERVICE, + text: `${workerIndex}/${kind}${name}` + }, + WORKER_BINDING_SERVICE_LOOPBACK + ] + } + }; + } else if (typeof service === "object") { + return { + name: getBuiltinServiceName(workerIndex, kind, name), + ...service + }; + } +} +var FALLBACK_COMPATIBILITY_DATE = "2000-01-01"; +function getCurrentCompatibilityDate() { + const now = new Date().toISOString(); + return now.substring(0, now.indexOf("T")); +} +function validateCompatibilityDate(log, compatibilityDate) { + if (numericCompare(compatibilityDate, getCurrentCompatibilityDate()) > 0) { + throw new MiniflareCoreError( + "ERR_FUTURE_COMPATIBILITY_DATE", + `Compatibility date "${compatibilityDate}" is in the future and unsupported` + ); + } else if (numericCompare(compatibilityDate, import_workerd2.compatibilityDate) > 0) { + log.warn( + [ + "The latest compatibility date supported by the installed Cloudflare Workers Runtime is ", + bold(`"${import_workerd2.compatibilityDate}"`), + ",\nbut you've requested ", + bold(`"${compatibilityDate}"`), + ". Falling back to ", + bold(`"${import_workerd2.compatibilityDate}"`), + "..." + ].join("") + ); + return import_workerd2.compatibilityDate; + } + return compatibilityDate; +} +var CORE_PLUGIN = { + options: CoreOptionsSchema, + sharedOptions: CoreSharedOptionsSchema, + getBindings(options, workerIndex) { + const bindings = []; + if (options.bindings !== void 0) { + bindings.push( + ...Object.entries(options.bindings).map(([name, value]) => ({ + name, + json: JSON.stringify(value) + })) + ); + } + if (options.wasmBindings !== void 0) { + bindings.push( + ...Object.entries(options.wasmBindings).map( + ([name, path21]) => import_promises5.default.readFile(path21).then((wasmModule) => ({ name, wasmModule })) + ) + ); + } + if (options.textBlobBindings !== void 0) { + bindings.push( + ...Object.entries(options.textBlobBindings).map( + ([name, path21]) => import_promises5.default.readFile(path21, "utf8").then((text) => ({ name, text })) + ) + ); + } + if (options.dataBlobBindings !== void 0) { + bindings.push( + ...Object.entries(options.dataBlobBindings).map( + ([name, path21]) => import_promises5.default.readFile(path21).then((data) => ({ name, data })) + ) + ); + } + if (options.serviceBindings !== void 0) { + bindings.push( + ...Object.entries(options.serviceBindings).map(([name, service]) => { + return { + name, + service: getCustomServiceDesignator( + workerIndex, + "#" /* UNKNOWN */, + name, + service + ) + }; + }) + ); + } + return Promise.all(bindings); + }, + async getNodeBindings(options) { + const bindingEntries = []; + if (options.bindings !== void 0) { + bindingEntries.push( + ...Object.entries(options.bindings).map(([name, value]) => [ + name, + JSON.parse(JSON.stringify(value)) + ]) + ); + } + if (options.wasmBindings !== void 0) { + bindingEntries.push( + ...Object.entries(options.wasmBindings).map( + ([name, path21]) => import_promises5.default.readFile(path21).then((buffer) => [name, new WebAssembly.Module(buffer)]) + ) + ); + } + if (options.textBlobBindings !== void 0) { + bindingEntries.push( + ...Object.entries(options.textBlobBindings).map( + ([name, path21]) => import_promises5.default.readFile(path21, "utf8").then((text) => [name, text]) + ) + ); + } + if (options.dataBlobBindings !== void 0) { + bindingEntries.push( + ...Object.entries(options.dataBlobBindings).map( + ([name, path21]) => import_promises5.default.readFile(path21).then((buffer) => [name, viewToBuffer(buffer)]) + ) + ); + } + if (options.serviceBindings !== void 0) { + bindingEntries.push( + ...Object.keys(options.serviceBindings).map((name) => [ + name, + kProxyNodeBinding + ]) + ); + } + return Object.fromEntries(await Promise.all(bindingEntries)); + }, + async getServices({ + log, + options, + workerBindings, + workerIndex, + durableObjectClassNames, + additionalModules + }) { + const additionalModuleNames = additionalModules.map(({ name: name2 }) => name2); + const workerScript = getWorkerScript( + options, + workerIndex, + additionalModuleNames + ); + if ("modules" in workerScript) { + const subDirs = new Set( + workerScript.modules.map(({ name: name2 }) => import_path13.default.posix.dirname(name2)) + ); + subDirs.delete("."); + for (const module2 of additionalModules) { + workerScript.modules.push(module2); + for (const subDir of subDirs) { + const relativePath = import_path13.default.posix.relative(subDir, module2.name); + const relativePathString = JSON.stringify(relativePath); + workerScript.modules.push({ + name: import_path13.default.posix.join(subDir, module2.name), + // TODO(someday): if we ever have additional modules without + // default exports, this may be a problem. For now, our only + // additional module is `__STATIC_CONTENT_MANIFEST` so it's fine. + // If needed, we could look for instances of `export default` or + // `as default` in the module's code as a heuristic. + esModule: `export * from ${relativePathString}; export { default } from ${relativePathString};` + }); + } + } + } + const name = getUserServiceName(options.name); + const classNames = durableObjectClassNames.get(name); + const classNamesEntries = Array.from(classNames ?? []); + const compatibilityDate = validateCompatibilityDate( + log, + options.compatibilityDate ?? FALLBACK_COMPATIBILITY_DATE + ); + const services = [ + { + name, + worker: { + ...workerScript, + compatibilityDate, + compatibilityFlags: options.compatibilityFlags, + bindings: workerBindings, + durableObjectNamespaces: classNamesEntries.map( + ([className, unsafeUniqueKey]) => { + return { + className, + // This `uniqueKey` will (among other things) be used as part of the + // path when persisting to the file-system. `-` is invalid in + // JavaScript class names, but safe on filesystems (incl. Windows). + uniqueKey: unsafeUniqueKey ?? `${options.name ?? ""}-${className}` + }; + } + ), + durableObjectStorage: classNamesEntries.length === 0 ? void 0 : options.unsafeEphemeralDurableObjects ? { inMemory: kVoid } : { localDisk: DURABLE_OBJECTS_STORAGE_SERVICE_NAME }, + globalOutbound: options.outboundService === void 0 ? void 0 : getCustomServiceDesignator( + workerIndex, + "$" /* KNOWN */, + CUSTOM_SERVICE_KNOWN_OUTBOUND, + options.outboundService + ), + cacheApiOutbound: { name: getCacheServiceName(workerIndex) } + } + } + ]; + if (options.serviceBindings !== void 0) { + for (const [name2, service] of Object.entries(options.serviceBindings)) { + const maybeService = maybeGetCustomServiceService( + workerIndex, + "#" /* UNKNOWN */, + name2, + service + ); + if (maybeService !== void 0) + services.push(maybeService); + } + } + if (options.outboundService !== void 0) { + const maybeService = maybeGetCustomServiceService( + workerIndex, + "$" /* KNOWN */, + CUSTOM_SERVICE_KNOWN_OUTBOUND, + options.outboundService + ); + if (maybeService !== void 0) + services.push(maybeService); + } + return services; + } +}; +function getGlobalServices({ + sharedOptions, + allWorkerRoutes, + fallbackWorkerName, + loopbackPort, + log, + proxyBindings +}) { + const workerNames = [...allWorkerRoutes.keys()]; + const routes = parseRoutes(allWorkerRoutes); + const serviceEntryBindings = [ + WORKER_BINDING_SERVICE_LOOPBACK, + // For converting stack-traces to pretty-error pages + { name: CoreBindings.JSON_ROUTES, json: JSON.stringify(routes) }, + { name: CoreBindings.JSON_CF_BLOB, json: JSON.stringify(sharedOptions.cf) }, + { name: CoreBindings.JSON_LOG_LEVEL, json: JSON.stringify(log.level) }, + { + name: CoreBindings.SERVICE_USER_FALLBACK, + service: { name: getUserServiceName(fallbackWorkerName) } + }, + ...workerNames.map((name) => ({ + name: CoreBindings.SERVICE_USER_ROUTE_PREFIX + name, + service: { name: getUserServiceName(name) } + })), + { + name: CoreBindings.DURABLE_OBJECT_NAMESPACE_PROXY, + durableObjectNamespace: { className: "ProxyServer" } + }, + // Add `proxyBindings` here, they'll be added to the `ProxyServer` `env`. + // TODO(someday): consider making the proxy server a separate worker + ...proxyBindings + ]; + if (sharedOptions.upstream !== void 0) { + serviceEntryBindings.push({ + name: CoreBindings.TEXT_UPSTREAM_URL, + text: sharedOptions.upstream + }); + } + if (sharedOptions.liveReload) { + const liveReloadScript = LIVE_RELOAD_SCRIPT_TEMPLATE(loopbackPort); + serviceEntryBindings.push({ + name: CoreBindings.DATA_LIVE_RELOAD_SCRIPT, + data: encoder2.encode(liveReloadScript) + }); + } + return [ + { + name: SERVICE_LOOPBACK, + external: { http: { cfBlobHeader: HEADER_CF_BLOB } } + }, + { + name: SERVICE_ENTRY, + worker: { + modules: [{ name: "entry.worker.js", esModule: entry_worker_default() }], + compatibilityDate: "2023-04-04", + compatibilityFlags: ["nodejs_compat", "service_binding_extra_handlers"], + bindings: serviceEntryBindings, + durableObjectNamespaces: [ + { + className: "ProxyServer", + uniqueKey: `${SERVICE_ENTRY}-ProxyServer` + } + ], + // `ProxyServer` doesn't make use of Durable Object storage + durableObjectStorage: { inMemory: kVoid }, + // Always use the entrypoints cache implementation for proxying. This + // means if the entrypoint disables caching, proxied cache operations + // will be no-ops. Note we always require at least one worker to be set. + cacheApiOutbound: { name: "cache:0" } + } + }, + { + name: "internet", + network: { + // Allow access to private/public addresses: + // https://github.com/cloudflare/miniflare/issues/412 + allow: ["public", "private"], + deny: [], + tlsOptions: { + trustBrowserCas: true, + trustedCertificates + } + } + } + ]; +} +function getWorkerScript(options, workerIndex, additionalModuleNames) { + const modulesRoot = ("modulesRoot" in options ? options.modulesRoot : void 0) ?? ""; + if (Array.isArray(options.modules)) { + return { + modules: options.modules.map( + (module2) => convertModuleDefinition(modulesRoot, module2) + ) + }; + } + let code; + if ("script" in options && options.script !== void 0) { + code = options.script; + } else if ("scriptPath" in options && options.scriptPath !== void 0) { + code = (0, import_fs11.readFileSync)(options.scriptPath, "utf8"); + } else { + import_assert8.default.fail("Unreachable: Workers must have code"); + } + const scriptPath = options.scriptPath ?? buildStringScriptPath(workerIndex); + if (options.modules) { + const locator = new ModuleLocator( + modulesRoot, + additionalModuleNames, + options.modulesRules, + options.compatibilityFlags + ); + locator.visitEntrypoint(code, scriptPath); + return { modules: locator.modules }; + } else { + code = withSourceURL(code, scriptPath); + return { serviceWorkerScript: code }; + } +} + +// packages/miniflare/src/plugins/d1/index.ts +var import_promises6 = __toESM(require("fs/promises")); + +// embed-worker:/home/jspspike/Projects/miniflare/packages/miniflare/src/workers/d1/database.worker.ts +var import_fs12 = __toESM(require("fs")); +var import_path14 = __toESM(require("path")); +var import_url12 = __toESM(require("url")); +var contents8; +function database_worker_default() { + if (contents8 !== void 0) + return contents8; + const filePath = import_path14.default.join(__dirname, "workers", "d1/database.worker.js"); + contents8 = import_fs12.default.readFileSync(filePath, "utf8") + "//# sourceURL=" + import_url12.default.pathToFileURL(filePath); + return contents8; +} + +// packages/miniflare/src/plugins/d1/index.ts +var import_zod12 = require("zod"); +var D1OptionsSchema = import_zod12.z.object({ + d1Databases: import_zod12.z.union([import_zod12.z.record(import_zod12.z.string()), import_zod12.z.string().array()]).optional() +}); +var D1SharedOptionsSchema = import_zod12.z.object({ + d1Persist: PersistenceSchema +}); +var D1_PLUGIN_NAME = "d1"; +var D1_STORAGE_SERVICE_NAME = `${D1_PLUGIN_NAME}:storage`; +var D1_DATABASE_SERVICE_PREFIX = `${D1_PLUGIN_NAME}:db`; +var D1_DATABASE_OBJECT_CLASS_NAME = "D1DatabaseObject"; +var D1_DATABASE_OBJECT = { + serviceName: D1_DATABASE_SERVICE_PREFIX, + className: D1_DATABASE_OBJECT_CLASS_NAME +}; +var D1_PLUGIN = { + options: D1OptionsSchema, + sharedOptions: D1SharedOptionsSchema, + getBindings(options) { + const databases = namespaceEntries(options.d1Databases); + return databases.map(([name, id]) => { + const binding = name.startsWith("__D1_BETA__") ? ( + // Used before Wrangler 3.3 + { + service: { name: `${D1_DATABASE_SERVICE_PREFIX}:${id}` } + } + ) : ( + // Used after Wrangler 3.3 + { + wrapped: { + moduleName: "cloudflare-internal:d1-api", + innerBindings: [ + { + name: "fetcher", + service: { name: `${D1_DATABASE_SERVICE_PREFIX}:${id}` } + } + ] + } + } + ); + return { name, ...binding }; + }); + }, + getNodeBindings(options) { + const databases = namespaceKeys(options.d1Databases); + return Object.fromEntries( + databases.map((name) => [name, kProxyNodeBinding]) + ); + }, + async getServices({ options, sharedOptions, tmpPath, log }) { + const persist = sharedOptions.d1Persist; + const databases = namespaceEntries(options.d1Databases); + const services = databases.map(([_, id]) => ({ + name: `${D1_DATABASE_SERVICE_PREFIX}:${id}`, + worker: objectEntryWorker(D1_DATABASE_OBJECT, id) + })); + if (databases.length > 0) { + const uniqueKey = `miniflare-${D1_DATABASE_OBJECT_CLASS_NAME}`; + const persistPath = getPersistPath(D1_PLUGIN_NAME, tmpPath, persist); + await import_promises6.default.mkdir(persistPath, { recursive: true }); + const storageService = { + name: D1_STORAGE_SERVICE_NAME, + disk: { path: persistPath, writable: true } + }; + const objectService = { + name: D1_DATABASE_SERVICE_PREFIX, + worker: { + compatibilityDate: "2023-07-24", + compatibilityFlags: ["nodejs_compat", "experimental"], + modules: [ + { + name: "database.worker.js", + esModule: database_worker_default() + } + ], + durableObjectNamespaces: [ + { + className: D1_DATABASE_OBJECT_CLASS_NAME, + uniqueKey + } + ], + // Store Durable Object SQL databases in persist path + durableObjectStorage: { localDisk: D1_STORAGE_SERVICE_NAME }, + // Bind blob disk directory service to object + bindings: [ + { + name: SharedBindings.MAYBE_SERVICE_BLOBS, + service: { name: D1_STORAGE_SERVICE_NAME } + }, + { + name: SharedBindings.MAYBE_SERVICE_LOOPBACK, + service: { name: SERVICE_LOOPBACK } + } + ] + } + }; + services.push(storageService, objectService); + for (const database of databases) { + await migrateDatabase(log, uniqueKey, persistPath, database[1]); + } + } + return services; + } +}; + +// packages/miniflare/src/plugins/kv/index.ts +var import_promises8 = __toESM(require("fs/promises")); + +// embed-worker:/home/jspspike/Projects/miniflare/packages/miniflare/src/workers/kv/namespace.worker.ts +var import_fs13 = __toESM(require("fs")); +var import_path15 = __toESM(require("path")); +var import_url13 = __toESM(require("url")); +var contents9; +function namespace_worker_default() { + if (contents9 !== void 0) + return contents9; + const filePath = import_path15.default.join(__dirname, "workers", "kv/namespace.worker.js"); + contents9 = import_fs13.default.readFileSync(filePath, "utf8") + "//# sourceURL=" + import_url13.default.pathToFileURL(filePath); + return contents9; +} + +// packages/miniflare/src/plugins/kv/index.ts +var import_zod13 = require("zod"); + +// packages/miniflare/src/plugins/kv/constants.ts +var KV_PLUGIN_NAME = "kv"; + +// packages/miniflare/src/plugins/kv/sites.ts +var import_assert9 = __toESM(require("assert")); +var import_promises7 = __toESM(require("fs/promises")); +var import_path17 = __toESM(require("path")); + +// embed-worker:/home/jspspike/Projects/miniflare/packages/miniflare/src/workers/kv/sites.worker.ts +var import_fs14 = __toESM(require("fs")); +var import_path16 = __toESM(require("path")); +var import_url14 = __toESM(require("url")); +var contents10; +function sites_worker_default() { + if (contents10 !== void 0) + return contents10; + const filePath = import_path16.default.join(__dirname, "workers", "kv/sites.worker.js"); + contents10 = import_fs14.default.readFileSync(filePath, "utf8") + "//# sourceURL=" + import_url14.default.pathToFileURL(filePath); + return contents10; +} + +// packages/miniflare/src/plugins/kv/sites.ts +async function* listKeysInDirectoryInner(rootPath, currentPath) { + const fileEntries = await import_promises7.default.readdir(currentPath, { withFileTypes: true }); + for (const fileEntry of fileEntries) { + const filePath = import_path17.default.posix.join(currentPath, fileEntry.name); + if (fileEntry.isDirectory()) { + yield* listKeysInDirectoryInner(rootPath, filePath); + } else { + yield filePath.substring(rootPath.length + 1); + } + } +} +function listKeysInDirectory(rootPath) { + rootPath = import_path17.default.resolve(rootPath); + return listKeysInDirectoryInner(rootPath, rootPath); +} +var sitesRegExpsCache = /* @__PURE__ */ new WeakMap(); +var SERVICE_NAMESPACE_SITE = `${KV_PLUGIN_NAME}:site`; +async function buildStaticContentManifest(sitePath, siteRegExps) { + const staticContentManifest = {}; + for await (const key of listKeysInDirectory(sitePath)) { + if (testSiteRegExps(siteRegExps, key)) { + staticContentManifest[key] = encodeSitesKey(key); + } + } + return staticContentManifest; +} +async function getSitesBindings(options) { + const siteRegExps = { + include: options.siteInclude && globsToRegExps(options.siteInclude), + exclude: options.siteExclude && globsToRegExps(options.siteExclude) + }; + sitesRegExpsCache.set(options, siteRegExps); + const __STATIC_CONTENT_MANIFEST = await buildStaticContentManifest( + options.sitePath, + siteRegExps + ); + return [ + { + name: SiteBindings.KV_NAMESPACE_SITE, + kvNamespace: { name: SERVICE_NAMESPACE_SITE } + }, + { + name: SiteBindings.JSON_SITE_MANIFEST, + json: JSON.stringify(__STATIC_CONTENT_MANIFEST) + } + ]; +} +async function getSitesNodeBindings(options) { + const siteRegExps = sitesRegExpsCache.get(options); + (0, import_assert9.default)(siteRegExps !== void 0); + const __STATIC_CONTENT_MANIFEST = await buildStaticContentManifest( + options.sitePath, + siteRegExps + ); + return { + [SiteBindings.KV_NAMESPACE_SITE]: kProxyNodeBinding, + [SiteBindings.JSON_SITE_MANIFEST]: __STATIC_CONTENT_MANIFEST + }; +} +function maybeGetSitesManifestModule(bindings) { + for (const binding of bindings) { + if (binding.name === SiteBindings.JSON_SITE_MANIFEST) { + (0, import_assert9.default)("json" in binding && binding.json !== void 0); + return { name: SiteBindings.JSON_SITE_MANIFEST, text: binding.json }; + } + } +} +function getSitesServices(options) { + const siteRegExps = sitesRegExpsCache.get(options); + (0, import_assert9.default)(siteRegExps !== void 0); + const serialisedSiteRegExps = serialiseSiteRegExps(siteRegExps); + const persist = import_path17.default.resolve(options.sitePath); + const storageServiceName = `${SERVICE_NAMESPACE_SITE}:storage`; + const storageService = { + name: storageServiceName, + disk: { path: persist, writable: true } + }; + const namespaceService = { + name: SERVICE_NAMESPACE_SITE, + worker: { + compatibilityDate: "2023-07-24", + compatibilityFlags: ["nodejs_compat"], + modules: [ + { + name: "site.worker.js", + esModule: sites_worker_default() + } + ], + bindings: [ + { + name: SharedBindings.MAYBE_SERVICE_BLOBS, + service: { name: storageServiceName } + }, + { + name: SiteBindings.JSON_SITE_FILTER, + json: JSON.stringify(serialisedSiteRegExps) + } + ] + } + }; + return [storageService, namespaceService]; +} + +// packages/miniflare/src/plugins/kv/index.ts +var KVOptionsSchema = import_zod13.z.object({ + kvNamespaces: import_zod13.z.union([import_zod13.z.record(import_zod13.z.string()), import_zod13.z.string().array()]).optional(), + // Workers Sites + sitePath: import_zod13.z.string().optional(), + siteInclude: import_zod13.z.string().array().optional(), + siteExclude: import_zod13.z.string().array().optional() +}); +var KVSharedOptionsSchema = import_zod13.z.object({ + kvPersist: PersistenceSchema +}); +var SERVICE_NAMESPACE_PREFIX = `${KV_PLUGIN_NAME}:ns`; +var KV_STORAGE_SERVICE_NAME = `${KV_PLUGIN_NAME}:storage`; +var KV_NAMESPACE_OBJECT_CLASS_NAME = "KVNamespaceObject"; +var KV_NAMESPACE_OBJECT = { + serviceName: SERVICE_NAMESPACE_PREFIX, + className: KV_NAMESPACE_OBJECT_CLASS_NAME +}; +function isWorkersSitesEnabled(options) { + return options.sitePath !== void 0; +} +var KV_PLUGIN = { + options: KVOptionsSchema, + sharedOptions: KVSharedOptionsSchema, + async getBindings(options) { + const namespaces = namespaceEntries(options.kvNamespaces); + const bindings = namespaces.map(([name, id]) => ({ + name, + kvNamespace: { name: `${SERVICE_NAMESPACE_PREFIX}:${id}` } + })); + if (isWorkersSitesEnabled(options)) { + bindings.push(...await getSitesBindings(options)); + } + return bindings; + }, + async getNodeBindings(options) { + const namespaces = namespaceKeys(options.kvNamespaces); + const bindings = Object.fromEntries( + namespaces.map((name) => [name, kProxyNodeBinding]) + ); + if (isWorkersSitesEnabled(options)) { + Object.assign(bindings, await getSitesNodeBindings(options)); + } + return bindings; + }, + async getServices({ options, sharedOptions, tmpPath, log }) { + const persist = sharedOptions.kvPersist; + const namespaces = namespaceEntries(options.kvNamespaces); + const services = namespaces.map(([_, id]) => ({ + name: `${SERVICE_NAMESPACE_PREFIX}:${id}`, + worker: objectEntryWorker(KV_NAMESPACE_OBJECT, id) + })); + if (services.length > 0) { + const uniqueKey = `miniflare-${KV_NAMESPACE_OBJECT_CLASS_NAME}`; + const persistPath = getPersistPath(KV_PLUGIN_NAME, tmpPath, persist); + await import_promises8.default.mkdir(persistPath, { recursive: true }); + const storageService = { + name: KV_STORAGE_SERVICE_NAME, + disk: { path: persistPath, writable: true } + }; + const objectService = { + name: SERVICE_NAMESPACE_PREFIX, + worker: { + compatibilityDate: "2023-07-24", + compatibilityFlags: ["nodejs_compat", "experimental"], + modules: [ + { + name: "namespace.worker.js", + esModule: namespace_worker_default() + } + ], + durableObjectNamespaces: [ + { className: KV_NAMESPACE_OBJECT_CLASS_NAME, uniqueKey } + ], + // Store Durable Object SQL databases in persist path + durableObjectStorage: { localDisk: KV_STORAGE_SERVICE_NAME }, + // Bind blob disk directory service to object + bindings: [ + { + name: SharedBindings.MAYBE_SERVICE_BLOBS, + service: { name: KV_STORAGE_SERVICE_NAME } + }, + { + name: SharedBindings.MAYBE_SERVICE_LOOPBACK, + service: { name: SERVICE_LOOPBACK } + } + ] + } + }; + services.push(storageService, objectService); + for (const namespace of namespaces) { + await migrateDatabase(log, uniqueKey, persistPath, namespace[1]); + } + } + if (isWorkersSitesEnabled(options)) { + services.push(...getSitesServices(options)); + } + return services; + } +}; + +// embed-worker:/home/jspspike/Projects/miniflare/packages/miniflare/src/workers/queues/broker.worker.ts +var import_fs15 = __toESM(require("fs")); +var import_path18 = __toESM(require("path")); +var import_url15 = __toESM(require("url")); +var contents11; +function broker_worker_default() { + if (contents11 !== void 0) + return contents11; + const filePath = import_path18.default.join(__dirname, "workers", "queues/broker.worker.js"); + contents11 = import_fs15.default.readFileSync(filePath, "utf8") + "//# sourceURL=" + import_url15.default.pathToFileURL(filePath); + return contents11; +} + +// packages/miniflare/src/plugins/queues/index.ts +var import_zod14 = require("zod"); + +// packages/miniflare/src/plugins/queues/errors.ts +var QueuesError = class extends MiniflareError { +}; + +// packages/miniflare/src/plugins/queues/index.ts +var QueuesOptionsSchema = import_zod14.z.object({ + queueProducers: import_zod14.z.union([import_zod14.z.record(import_zod14.z.string()), import_zod14.z.string().array()]).optional(), + queueConsumers: import_zod14.z.union([import_zod14.z.record(QueueConsumerOptionsSchema), import_zod14.z.string().array()]).optional() +}); +var QUEUES_PLUGIN_NAME = "queues"; +var SERVICE_QUEUE_PREFIX = `${QUEUES_PLUGIN_NAME}:queue`; +var QUEUE_BROKER_OBJECT_CLASS_NAME = "QueueBrokerObject"; +var QUEUE_BROKER_OBJECT = { + serviceName: SERVICE_QUEUE_PREFIX, + className: QUEUE_BROKER_OBJECT_CLASS_NAME +}; +var QUEUES_PLUGIN = { + options: QueuesOptionsSchema, + getBindings(options) { + const queues = namespaceEntries(options.queueProducers); + return queues.map(([name, id]) => ({ + name, + queue: { name: `${SERVICE_QUEUE_PREFIX}:${id}` } + })); + }, + getNodeBindings(options) { + const queues = namespaceKeys(options.queueProducers); + return Object.fromEntries(queues.map((name) => [name, kProxyNodeBinding])); + }, + async getServices({ + options, + workerNames, + queueConsumers: allQueueConsumers + }) { + const queues = namespaceEntries(options.queueProducers); + if (queues.length === 0) + return []; + const services = queues.map(([_, id]) => ({ + name: `${SERVICE_QUEUE_PREFIX}:${id}`, + worker: objectEntryWorker(QUEUE_BROKER_OBJECT, id) + })); + const uniqueKey = `miniflare-${QUEUE_BROKER_OBJECT_CLASS_NAME}`; + const objectService = { + name: SERVICE_QUEUE_PREFIX, + worker: { + compatibilityDate: "2023-07-24", + compatibilityFlags: [ + "nodejs_compat", + "experimental", + "service_binding_extra_handlers" + ], + modules: [ + { name: "broker.worker.js", esModule: broker_worker_default() } + ], + durableObjectNamespaces: [ + { className: QUEUE_BROKER_OBJECT_CLASS_NAME, uniqueKey } + ], + // Miniflare's Queue broker is in-memory only at the moment + durableObjectStorage: { inMemory: kVoid }, + bindings: [ + { + name: SharedBindings.MAYBE_SERVICE_LOOPBACK, + service: { name: SERVICE_LOOPBACK } + }, + { + name: SharedBindings.DURABLE_OBJECT_NAMESPACE_OBJECT, + durableObjectNamespace: { + className: QUEUE_BROKER_OBJECT_CLASS_NAME + } + }, + { + name: QueueBindings.MAYBE_JSON_QUEUE_CONSUMERS, + json: JSON.stringify(Object.fromEntries(allQueueConsumers)) + }, + ...workerNames.map((name) => ({ + name: QueueBindings.SERVICE_WORKER_PREFIX + name, + service: { name: getUserServiceName(name) } + })) + ] + } + }; + services.push(objectService); + return services; + } +}; + +// packages/miniflare/src/plugins/r2/index.ts +var import_promises9 = __toESM(require("fs/promises")); + +// embed-worker:/home/jspspike/Projects/miniflare/packages/miniflare/src/workers/r2/bucket.worker.ts +var import_fs16 = __toESM(require("fs")); +var import_path19 = __toESM(require("path")); +var import_url16 = __toESM(require("url")); +var contents12; +function bucket_worker_default() { + if (contents12 !== void 0) + return contents12; + const filePath = import_path19.default.join(__dirname, "workers", "r2/bucket.worker.js"); + contents12 = import_fs16.default.readFileSync(filePath, "utf8") + "//# sourceURL=" + import_url16.default.pathToFileURL(filePath); + return contents12; +} + +// packages/miniflare/src/plugins/r2/index.ts +var import_zod15 = require("zod"); +var R2OptionsSchema = import_zod15.z.object({ + r2Buckets: import_zod15.z.union([import_zod15.z.record(import_zod15.z.string()), import_zod15.z.string().array()]).optional() +}); +var R2SharedOptionsSchema = import_zod15.z.object({ + r2Persist: PersistenceSchema +}); +var R2_PLUGIN_NAME = "r2"; +var R2_STORAGE_SERVICE_NAME = `${R2_PLUGIN_NAME}:storage`; +var R2_BUCKET_SERVICE_PREFIX = `${R2_PLUGIN_NAME}:bucket`; +var R2_BUCKET_OBJECT_CLASS_NAME = "R2BucketObject"; +var R2_BUCKET_OBJECT = { + serviceName: R2_BUCKET_SERVICE_PREFIX, + className: R2_BUCKET_OBJECT_CLASS_NAME +}; +var R2_PLUGIN = { + options: R2OptionsSchema, + sharedOptions: R2SharedOptionsSchema, + getBindings(options) { + const buckets = namespaceEntries(options.r2Buckets); + return buckets.map(([name, id]) => ({ + name, + r2Bucket: { name: `${R2_BUCKET_SERVICE_PREFIX}:${id}` } + })); + }, + getNodeBindings(options) { + const buckets = namespaceKeys(options.r2Buckets); + return Object.fromEntries(buckets.map((name) => [name, kProxyNodeBinding])); + }, + async getServices({ options, sharedOptions, tmpPath, log }) { + const persist = sharedOptions.r2Persist; + const buckets = namespaceEntries(options.r2Buckets); + const services = buckets.map(([_, id]) => ({ + name: `${R2_BUCKET_SERVICE_PREFIX}:${id}`, + worker: objectEntryWorker(R2_BUCKET_OBJECT, id) + })); + if (buckets.length > 0) { + const uniqueKey = `miniflare-${R2_BUCKET_OBJECT_CLASS_NAME}`; + const persistPath = getPersistPath(R2_PLUGIN_NAME, tmpPath, persist); + await import_promises9.default.mkdir(persistPath, { recursive: true }); + const storageService = { + name: R2_STORAGE_SERVICE_NAME, + disk: { path: persistPath, writable: true } + }; + const objectService = { + name: R2_BUCKET_SERVICE_PREFIX, + worker: { + compatibilityDate: "2023-07-24", + compatibilityFlags: ["nodejs_compat", "experimental"], + modules: [ + { + name: "bucket.worker.js", + esModule: bucket_worker_default() + } + ], + durableObjectNamespaces: [ + { + className: R2_BUCKET_OBJECT_CLASS_NAME, + uniqueKey + } + ], + // Store Durable Object SQL databases in persist path + durableObjectStorage: { localDisk: R2_STORAGE_SERVICE_NAME }, + // Bind blob disk directory service to object + bindings: [ + { + name: SharedBindings.MAYBE_SERVICE_BLOBS, + service: { name: R2_STORAGE_SERVICE_NAME } + }, + { + name: SharedBindings.MAYBE_SERVICE_LOOPBACK, + service: { name: SERVICE_LOOPBACK } + } + ] + } + }; + services.push(storageService, objectService); + for (const bucket of buckets) { + await migrateDatabase(log, uniqueKey, persistPath, bucket[1]); + } + } + return services; + } +}; + +// packages/miniflare/src/plugins/index.ts +var PLUGINS = { + [CORE_PLUGIN_NAME2]: CORE_PLUGIN, + [CACHE_PLUGIN_NAME]: CACHE_PLUGIN, + [D1_PLUGIN_NAME]: D1_PLUGIN, + [DURABLE_OBJECTS_PLUGIN_NAME]: DURABLE_OBJECTS_PLUGIN, + [KV_PLUGIN_NAME]: KV_PLUGIN, + [QUEUES_PLUGIN_NAME]: QUEUES_PLUGIN, + [R2_PLUGIN_NAME]: R2_PLUGIN +}; +var PLUGIN_ENTRIES = Object.entries(PLUGINS); + +// packages/miniflare/src/http/cert.ts +var KEY = ` +-----BEGIN EC PRIVATE KEY----- +MHcCAQEEIC+umAaVUbEfPqGA9M7b5zAP7tN2eLT1bu8U8gpbaKbsoAoGCCqGSM49 +AwEHoUQDQgAEtrIEgzogjrUHIvB4qgjg/cT7blhWuLUfSUp6H62NCo21NrVWgPtC +mCWw+vbGTBwIr/9X1S4UL1/f3zDICC7YSA== +-----END EC PRIVATE KEY----- +`; +var CERT = ` +-----BEGIN CERTIFICATE----- +MIICcDCCAhegAwIBAgIUE97EcbEWw3YZMN/ucGBSzJ/5qA4wCgYIKoZIzj0EAwIw +VTELMAkGA1UEBhMCVVMxDjAMBgNVBAgMBVRleGFzMQ8wDQYDVQQHDAZBdXN0aW4x +EzARBgNVBAoMCkNsb3VkZmxhcmUxEDAOBgNVBAsMB1dvcmtlcnMwIBcNMjMwNjIy +MTg1ODQ3WhgPMjEyMzA1MjkxODU4NDdaMFUxCzAJBgNVBAYTAlVTMQ4wDAYDVQQI +DAVUZXhhczEPMA0GA1UEBwwGQXVzdGluMRMwEQYDVQQKDApDbG91ZGZsYXJlMRAw +DgYDVQQLDAdXb3JrZXJzMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEtrIEgzog +jrUHIvB4qgjg/cT7blhWuLUfSUp6H62NCo21NrVWgPtCmCWw+vbGTBwIr/9X1S4U +L1/f3zDICC7YSKOBwjCBvzAdBgNVHQ4EFgQUSXahTksi00c6KhUECHIY4FLW7Sow +HwYDVR0jBBgwFoAUSXahTksi00c6KhUECHIY4FLW7SowDwYDVR0TAQH/BAUwAwEB +/zAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUw +CwYDVR0PBAQDAgL0MDEGA1UdJQQqMCgGCCsGAQUFBwMBBggrBgEFBQcDAgYIKwYB +BQUHAwMGCCsGAQUFBwMIMAoGCCqGSM49BAMCA0cAMEQCIE2qnXbKTHQ8wtwI+9XR +h4ivDyz7w7iGxn3+ccmj/CQqAiApdX/Iz/jGRzi04xFlE4GoPVG/zaMi64ckmIpE +ez/dHA== +-----END CERTIFICATE----- +`; + +// packages/miniflare/src/http/server.ts +async function configureEntrySocket(coreOpts) { + const httpOptions = { + // Even though we inject a `cf` object in the entry worker, allow it to + // be customised via `dispatchFetch` + cfBlobHeader: HEADER_CF_BLOB + }; + let privateKey = void 0; + let certificateChain = void 0; + if ((coreOpts.httpsKey || coreOpts.httpsKeyPath) && (coreOpts.httpsCert || coreOpts.httpsCertPath)) { + privateKey = await valueOrFile(coreOpts.httpsKey, coreOpts.httpsKeyPath); + certificateChain = await valueOrFile( + coreOpts.httpsCert, + coreOpts.httpsCertPath + ); + } else if (coreOpts.https) { + privateKey = KEY; + certificateChain = CERT; + } + let options; + if (privateKey && certificateChain) { + options = { + https: { + options: httpOptions, + tlsOptions: { + keypair: { + privateKey, + certificateChain + } + } + } + }; + } else { + options = { + http: httpOptions + }; + } + return { + name: SOCKET_ENTRY, + service: { name: SERVICE_ENTRY }, + ...options + }; +} +function valueOrFile(value, filePath) { + return value ?? (filePath && import_promises10.default.readFile(filePath, "utf8")); +} + +// packages/miniflare/src/http/helpers.ts +var import_os = require("os"); +function getAccessibleHosts(ipv4Only = false) { + const hosts = []; + Object.values((0, import_os.networkInterfaces)()).forEach((net2) => { + net2?.forEach(({ family, address }) => { + if (family === "IPv4" || family === 4) { + hosts.push(address); + } else if (!ipv4Only && (family === "IPv6" || family === 6)) { + hosts.push(`[${address}]`); + } + }); + }); + return hosts; +} + +// packages/miniflare/src/http/index.ts +var import_undici8 = require("undici"); + +// packages/miniflare/src/zod-format.ts +var import_assert10 = __toESM(require("assert")); +var import_util4 = __toESM(require("util")); +var kMessages = Symbol("kMessages"); +var kActual = Symbol("kActual"); +var kGroupId = Symbol("kGroupId"); +var groupColours = [ + yellow, + /* (green) */ + cyan, + blue, + magenta, + green +]; +var GroupCountsMap = Map; +function isAnnotation(value) { + return typeof value === "object" && value !== null && kMessages in value && kActual in value; +} +function isRecord(value) { + return typeof value === "object" && value !== null; +} +function arrayShallowEqual(a, b) { + if (a.length !== b.length) + return false; + for (let i = 0; i < a.length; i++) + if (a[i] !== b[i]) + return false; + return true; +} +function issueEqual(a, b) { + return a.message === b.message && arrayShallowEqual(a.path, b.path); +} +function hasMultipleDistinctMessages(issues, atDepth) { + let firstIssue; + for (const issue of issues) { + if (issue.path.length < atDepth) + continue; + if (firstIssue === void 0) + firstIssue = issue; + else if (!issueEqual(firstIssue, issue)) + return true; + } + return false; +} +function annotate(groupCounts, annotated, input, issue, path21, groupId) { + if (path21.length === 0) { + if (issue.code === "invalid_union") { + const unionIssues = issue.unionErrors.flatMap(({ issues }) => issues); + let newGroupId; + const multipleDistinct = hasMultipleDistinctMessages( + unionIssues, + // For this check, we only include messages that are deeper than our + // current level, so we don't include messages we'd ignore if we grouped + issue.path.length + 1 + ); + if (isRecord(input) && multipleDistinct) { + newGroupId = groupCounts.size; + groupCounts.set(newGroupId, 0); + } + for (const unionIssue of unionIssues) { + const unionPath = unionIssue.path.slice(issue.path.length); + if (multipleDistinct && unionPath.length === 0) + continue; + annotated = annotate( + groupCounts, + annotated, + input, + unionIssue, + unionPath, + newGroupId + ); + } + return annotated; + } + const message = issue.message; + if (annotated !== void 0) { + if (isAnnotation(annotated) && !annotated[kMessages].includes(message)) { + annotated[kMessages].push(message); + } + return annotated; + } + if (groupId !== void 0) { + const current = groupCounts.get(groupId); + (0, import_assert10.default)(current !== void 0); + groupCounts.set(groupId, current + 1); + } + return { + [kMessages]: [message], + [kActual]: input, + [kGroupId]: groupId + }; + } + const [head, ...tail] = path21; + (0, import_assert10.default)(isRecord(input), "Expected object/array input for nested issue"); + if (annotated === void 0) { + if (Array.isArray(input)) { + annotated = new Array(input.length); + } else { + const entries = Object.keys(input).map((key) => [key, void 0]); + annotated = Object.fromEntries(entries); + } + } + (0, import_assert10.default)(isRecord(annotated), "Expected object/array for nested issue"); + annotated[head] = annotate( + groupCounts, + annotated[head], + input[head], + issue, + tail, + groupId + ); + return annotated; +} +function print(inspectOptions, groupCounts, annotated, indent = "", extras) { + const prefix = extras?.prefix ?? ""; + const suffix = extras?.suffix ?? ""; + if (isAnnotation(annotated)) { + const prefixIndent = indent + " ".repeat(prefix.length); + const actual = import_util4.default.inspect(annotated[kActual], inspectOptions); + const actualIndented = actual.split("\n").map((line, i) => i > 0 ? prefixIndent + line : line).join("\n"); + let messageColour = red; + let messagePrefix = prefixIndent + "^"; + let groupOr = ""; + if (annotated[kGroupId] !== void 0) { + messageColour = groupColours[annotated[kGroupId] % groupColours.length]; + messagePrefix += annotated[kGroupId] + 1; + const remaining = groupCounts.get(annotated[kGroupId]); + (0, import_assert10.default)(remaining !== void 0); + if (remaining > 1) + groupOr = " *or*"; + groupCounts.set(annotated[kGroupId], remaining - 1); + } + messagePrefix += " "; + const messageIndent = " ".repeat(messagePrefix.length); + const messageIndented = annotated[kMessages].flatMap((m) => m.split("\n")).map((line, i) => i > 0 ? messageIndent + line : line).join("\n"); + const error = messageColour(`${messagePrefix}${messageIndented}${groupOr}`); + return `${indent}${dim(prefix)}${actualIndented}${dim(suffix)} +${error}`; + } else if (Array.isArray(annotated)) { + let result = `${indent}${dim(`${prefix}[`)} +`; + const arrayIndent = indent + " "; + for (let i = 0; i < annotated.length; i++) { + const value = annotated[i]; + if (value === void 0 && (i === 0 || annotated[i - 1] !== void 0)) { + result += `${arrayIndent}${dim("...,")} +`; + } + if (value !== void 0) { + result += print(inspectOptions, groupCounts, value, arrayIndent, { + prefix: `/* [${i}] */ `, + suffix: "," + }); + result += "\n"; + } + } + result += `${indent}${dim(`]${suffix}`)}`; + return result; + } else if (isRecord(annotated)) { + let result = `${indent}${dim(`${prefix}{`)} +`; + const objectIndent = indent + " "; + const entries = Object.entries(annotated); + for (let i = 0; i < entries.length; i++) { + const [key, value] = entries[i]; + if (value === void 0 && (i === 0 || entries[i - 1][1] !== void 0)) { + result += `${objectIndent}${dim("...,")} +`; + } + if (value !== void 0) { + result += print(inspectOptions, groupCounts, value, objectIndent, { + prefix: `${key}: `, + suffix: "," + }); + result += "\n"; + } + } + result += `${indent}${dim(`}${suffix}`)}`; + return result; + } + return ""; +} +function _formatZodError(error, input) { + const sortedIssues = Array.from(error.issues).sort((a, b) => { + if (a.code !== b.code) { + if (a.code === "invalid_union") + return -1; + if (b.code === "invalid_union") + return 1; + } + return 0; + }); + let annotated; + const groupCounts = new GroupCountsMap(); + for (const issue of sortedIssues) { + annotated = annotate(groupCounts, annotated, input, issue, issue.path); + } + const inspectOptions = { + depth: 0, + colors: $.enabled + }; + return print(inspectOptions, groupCounts, annotated); +} + +// packages/miniflare/src/index.ts +function hasMultipleWorkers(opts) { + return typeof opts === "object" && opts !== null && "workers" in opts && Array.isArray(opts.workers); +} +function validateOptions(opts) { + const sharedOpts = opts; + const multipleWorkers = hasMultipleWorkers(opts); + const workerOpts = multipleWorkers ? opts.workers : [opts]; + if (workerOpts.length === 0) { + throw new MiniflareCoreError("ERR_NO_WORKERS", "No workers defined"); + } + const pluginSharedOpts = {}; + const pluginWorkerOpts = Array.from(Array(workerOpts.length)).map( + () => ({}) + ); + try { + for (const [key, plugin] of PLUGIN_ENTRIES) { + pluginSharedOpts[key] = plugin.sharedOptions?.parse(sharedOpts); + for (let i = 0; i < workerOpts.length; i++) { + const path21 = multipleWorkers ? ["workers", i] : void 0; + pluginWorkerOpts[i][key] = plugin.options.parse(workerOpts[i], { + path: path21 + }); + } + } + } catch (e) { + if (e instanceof import_zod17.z.ZodError) { + let formatted; + try { + formatted = _formatZodError(e, opts); + } catch (formatError) { + const title = "[Miniflare] Validation Error Format Failure"; + const message = [ + "### Input", + "```", + import_util5.default.inspect(opts, { depth: null }), + "```", + "", + "### Validation Error", + "```", + e.stack, + "```", + "", + "### Format Error", + "```", + typeof formatError === "object" && formatError !== null && "stack" in formatError && typeof formatError.stack === "string" ? formatError.stack : String(formatError), + "```" + ].join("\n"); + const githubIssueUrl = new URL( + "https://github.com/cloudflare/miniflare/issues/new" + ); + githubIssueUrl.searchParams.set("title", title); + githubIssueUrl.searchParams.set("body", message); + formatted = [ + "Unable to format validation error.", + "Please open the following URL in your browser to create a GitHub issue:", + githubIssueUrl, + "", + message, + "" + ].join("\n"); + } + const error = new MiniflareCoreError( + "ERR_VALIDATION", + `Unexpected options passed to \`new Miniflare()\` constructor: +${formatted}` + ); + Object.defineProperty(error, "cause", { get: () => e }); + throw error; + } + throw e; + } + const names = /* @__PURE__ */ new Set(); + for (const opts2 of pluginWorkerOpts) { + const name = opts2.core.name ?? ""; + if (names.has(name)) { + throw new MiniflareCoreError( + "ERR_DUPLICATE_NAME", + name === "" ? "Multiple workers defined without a `name`" : `Multiple workers defined with the same \`name\`: "${name}"` + ); + } + names.add(name); + } + return [pluginSharedOpts, pluginWorkerOpts]; +} +function getDurableObjectClassNames(allWorkerOpts) { + const serviceClassNames = /* @__PURE__ */ new Map(); + for (const workerOpts of allWorkerOpts) { + const workerServiceName = getUserServiceName(workerOpts.core.name); + for (const designator of Object.values( + workerOpts.do.durableObjects ?? {} + )) { + const { + className, + // Fallback to current worker service if name not defined + serviceName = workerServiceName, + unsafeUniqueKey + } = normaliseDurableObject(designator); + let classNames = serviceClassNames.get(serviceName); + if (classNames === void 0) { + classNames = /* @__PURE__ */ new Map(); + serviceClassNames.set(serviceName, classNames); + } + if (classNames.has(className)) { + const existingUnsafeUniqueKey = classNames.get(className); + if (existingUnsafeUniqueKey !== unsafeUniqueKey) { + throw new MiniflareCoreError( + "ERR_DIFFERENT_UNIQUE_KEYS", + `Multiple unsafe unique keys defined for Durable Object "${className}" in "${serviceName}": ${JSON.stringify( + unsafeUniqueKey + )} and ${JSON.stringify(existingUnsafeUniqueKey)}` + ); + } + } else { + classNames.set(className, unsafeUniqueKey); + } + } + } + return serviceClassNames; +} +function getQueueConsumers(allWorkerOpts) { + const queueConsumers = /* @__PURE__ */ new Map(); + for (const workerOpts of allWorkerOpts) { + const workerName = workerOpts.core.name ?? ""; + let workerConsumers = workerOpts.queues.queueConsumers; + if (workerConsumers !== void 0) { + if (Array.isArray(workerConsumers)) { + workerConsumers = Object.fromEntries( + workerConsumers.map((queueName) => [queueName, {}]) + ); + } + for (const [queueName, opts] of Object.entries(workerConsumers)) { + const existingConsumer = queueConsumers.get(queueName); + if (existingConsumer !== void 0) { + throw new QueuesError( + "ERR_MULTIPLE_CONSUMERS", + `Multiple consumers defined for queue "${queueName}": "${existingConsumer.workerName}" and "${workerName}"` + ); + } + queueConsumers.set(queueName, { workerName, ...opts }); + } + } + } + for (const [queueName, consumer] of queueConsumers) { + if (consumer.deadLetterQueue === queueName) { + throw new QueuesError( + "ERR_DEAD_LETTER_QUEUE_CYCLE", + `Dead letter queue for queue "${queueName}" cannot be itself` + ); + } + } + return queueConsumers; +} +function getWorkerRoutes(allWorkerOpts) { + const allRoutes = /* @__PURE__ */ new Map(); + for (const workerOpts of allWorkerOpts) { + const name = workerOpts.core.name ?? ""; + (0, import_assert11.default)(!allRoutes.has(name)); + allRoutes.set(name, workerOpts.core.routes ?? []); + } + return allRoutes; +} +function getProxyBindingName(plugin, worker, binding) { + return [ + CoreBindings.DURABLE_OBJECT_NAMESPACE_PROXY, + plugin, + worker, + binding + ].join(":"); +} +function isNativeTargetBinding(binding) { + return !("json" in binding || "wasmModule" in binding || "text" in binding || "data" in binding); +} +function buildProxyBinding(plugin, worker, binding) { + (0, import_assert11.default)(binding.name !== void 0); + const name = getProxyBindingName(plugin, worker, binding.name); + const proxyBinding = { ...binding, name }; + if ("durableObjectNamespace" in proxyBinding && proxyBinding.durableObjectNamespace !== void 0) { + proxyBinding.durableObjectNamespace.serviceName ??= getUserServiceName(worker); + } + return proxyBinding; +} +function getInternalDurableObjectProxyBindings(plugin, service) { + if (!("worker" in service)) + return; + (0, import_assert11.default)(service.worker !== void 0); + const serviceName = service.name; + (0, import_assert11.default)(serviceName !== void 0); + return service.worker.durableObjectNamespaces?.map(({ className }) => { + (0, import_assert11.default)(className !== void 0); + return { + name: getProxyBindingName(`${plugin}-internal`, serviceName, className), + durableObjectNamespace: { serviceName, className } + }; + }); +} +var restrictedUndiciHeaders = [ + // From Miniflare 2: + // https://github.com/cloudflare/miniflare/blob/9c135599dc21fe69080ada17fce6153692793bf1/packages/core/src/standards/http.ts#L129-L132 + "transfer-encoding", + "connection", + "keep-alive", + "expect" +]; +var restrictedWebSocketUpgradeHeaders = [ + "upgrade", + "connection", + "sec-websocket-accept" +]; +function _transformsForContentEncoding(encoding) { + const encoders = []; + if (!encoding) + return encoders; + const codings = encoding.toLowerCase().split(",").map((x) => x.trim()); + for (const coding of codings) { + if (/(x-)?gzip/.test(coding)) { + encoders.push(import_zlib.default.createGzip()); + } else if (/(x-)?deflate/.test(coding)) { + encoders.push(import_zlib.default.createDeflate()); + } else if (coding === "br") { + encoders.push(import_zlib.default.createBrotliCompress()); + } else { + encoders.length = 0; + break; + } + } + return encoders; +} +async function writeResponse(response, res) { + const headers = {}; + for (const entry of response.headers) { + const key = entry[0].toLowerCase(); + const value = entry[1]; + if (key === "set-cookie") { + headers[key] = response.headers.getSetCookie(); + } else { + headers[key] = value; + } + } + const encoding = headers["content-encoding"]?.toString(); + const encoders = _transformsForContentEncoding(encoding); + if (encoders.length > 0) { + delete headers["content-length"]; + } + res.writeHead(response.status, response.statusText, headers); + let initialStream = res; + for (let i = encoders.length - 1; i >= 0; i--) { + encoders[i].pipe(initialStream); + initialStream = encoders[i]; + } + if (response.body) { + for await (const chunk of response.body) { + if (chunk) + initialStream.write(chunk); + } + } + initialStream.end(); +} +function safeReadableStreamFrom(iterable) { + let iterator; + return new import_web5.ReadableStream( + { + async start() { + iterator = iterable[Symbol.asyncIterator](); + }, + // @ts-expect-error `pull` may return anything + async pull(controller) { + try { + const { done, value } = await iterator.next(); + if (done) { + queueMicrotask(() => controller.close()); + } else { + const buf = Buffer.isBuffer(value) ? value : Buffer.from(value); + controller.enqueue(new Uint8Array(buf)); + } + } catch { + queueMicrotask(() => controller.close()); + } + return controller.desiredSize > 0; + }, + async cancel() { + await iterator.return?.(); + } + }, + 0 + ); +} +var maybeInstanceRegistry; +function _initialiseInstanceRegistry() { + return maybeInstanceRegistry = /* @__PURE__ */ new Map(); +} +var Miniflare = class { + #sharedOpts; + #workerOpts; + #log; + #host; + #accessibleHost; + #runtime; + #removeRuntimeExitHook; + #runtimeEntryURL; + #runtimeClient; + #proxyClient; + // Path to temporary directory for use as scratch space/"in-memory" Durable + // Object storage. Note this may not exist, it's up to the consumers to + // create this if needed. Deleted on `dispose()`. + #tmpPath; + #removeTmpPathExitHook; + // Mutual exclusion lock for runtime operations (i.e. initialisation and + // updating config). This essentially puts initialisation and future updates + // in a queue, ensuring they're performed in calling order. + #runtimeMutex; + // Store `#init()` `Promise`, so we can propagate initialisation errors in + // `ready`. We would have no way of catching these otherwise. + #initPromise; + // Aborted when dispose() is called + #disposeController; + #loopbackServer; + #loopbackPort; + #liveReloadServer; + #webSocketServer; + #webSocketExtraHeaders; + constructor(opts) { + const [sharedOpts, workerOpts] = validateOptions(opts); + this.#sharedOpts = sharedOpts; + this.#workerOpts = workerOpts; + if (maybeInstanceRegistry !== void 0) { + const object = { name: "Miniflare", stack: "" }; + Error.captureStackTrace(object, Miniflare); + maybeInstanceRegistry.set(this, object.stack); + } + this.#log = this.#sharedOpts.core.log ?? new NoOpLog(); + this.#host = this.#sharedOpts.core.host ?? "127.0.0.1"; + this.#accessibleHost = this.#host === "*" || this.#host === "0.0.0.0" || this.#host === "::" ? "127.0.0.1" : this.#host; + if (import_net.default.isIPv6(this.#accessibleHost)) { + this.#accessibleHost = `[${this.#accessibleHost}]`; + } + this.#liveReloadServer = new import_ws3.WebSocketServer({ noServer: true }); + this.#webSocketServer = new import_ws3.WebSocketServer({ + noServer: true, + // Disable automatic handling of `Sec-WebSocket-Protocol` header, + // Cloudflare Workers require users to include this header themselves in + // `Response`s: https://github.com/cloudflare/miniflare/issues/179 + handleProtocols: () => false + }); + this.#webSocketExtraHeaders = /* @__PURE__ */ new WeakMap(); + this.#webSocketServer.on("headers", (headers, req) => { + const extra = this.#webSocketExtraHeaders.get(req); + this.#webSocketExtraHeaders.delete(req); + if (extra) { + for (const [key, value] of extra) { + if (!restrictedWebSocketUpgradeHeaders.includes(key.toLowerCase())) { + headers.push(`${key}: ${value}`); + } + } + } + }); + this.#tmpPath = import_path20.default.join( + import_os2.default.tmpdir(), + `miniflare-${import_crypto2.default.randomBytes(16).toString("hex")}` + ); + this.#removeTmpPathExitHook = (0, import_exit_hook.default)(() => { + import_fs17.default.rmSync(this.#tmpPath, { force: true, recursive: true }); + }); + this.#disposeController = new AbortController(); + this.#runtimeMutex = new Mutex(); + this.#initPromise = this.#runtimeMutex.runWith(() => this.#init()).catch((e) => { + maybeInstanceRegistry?.delete(this); + throw e; + }); + } + #handleReload() { + for (const ws of this.#liveReloadServer.clients) { + ws.close(1012, "Service Restart"); + } + for (const ws of this.#webSocketServer.clients) { + ws.close(1012, "Service Restart"); + } + } + async #init() { + this.#loopbackServer = await this.#startLoopbackServer(0, this.#host); + const address = this.#loopbackServer.address(); + (0, import_assert11.default)(address !== null && typeof address === "object"); + this.#loopbackPort = address.port; + const port = this.#sharedOpts.core.port ?? 0; + const opts = { + entryHost: import_net.default.isIPv6(this.#host) ? `[${this.#host}]` : this.#host, + entryPort: port, + loopbackPort: this.#loopbackPort, + inspectorPort: this.#sharedOpts.core.inspectorPort, + verbose: this.#sharedOpts.core.verbose + }; + this.#runtime = new Runtime(opts); + this.#removeRuntimeExitHook = (0, import_exit_hook.default)(() => void this.#runtime?.dispose()); + await this.#assembleAndUpdateConfig(); + } + async #handleLoopbackCustomService(request, customService) { + const slashIndex = customService.indexOf("/"); + const workerIndex = parseInt(customService.substring(0, slashIndex)); + const serviceKind = customService[slashIndex + 1]; + const serviceName = customService.substring(slashIndex + 2); + let service; + if (serviceKind === "#" /* UNKNOWN */) { + service = this.#workerOpts[workerIndex]?.core.serviceBindings?.[serviceName]; + } else if (serviceName === CUSTOM_SERVICE_KNOWN_OUTBOUND) { + service = this.#workerOpts[workerIndex]?.core.outboundService; + } + (0, import_assert11.default)(typeof service === "function"); + try { + const response = await service(request); + return import_zod17.z.instanceof(Response).parse(response); + } catch (e) { + return new Response(e?.stack ?? e, { status: 500 }); + } + } + get #workerSrcOpts() { + return this.#workerOpts.map(({ core }) => core); + } + #handleLoopback = async (req, res) => { + const headers = new import_undici8.Headers(); + for (const [name, values] of Object.entries(req.headers)) { + if (restrictedUndiciHeaders.includes(name)) + continue; + if (Array.isArray(values)) { + for (const value of values) + headers.append(name, value); + } else if (values !== void 0) { + headers.append(name, values); + } + } + const cfBlob = headers.get(HEADER_CF_BLOB); + headers.delete(HEADER_CF_BLOB); + (0, import_assert11.default)(!Array.isArray(cfBlob)); + const cf = cfBlob ? JSON.parse(cfBlob) : void 0; + const url13 = new URL( + headers.get(CoreHeaders.ORIGINAL_URL) ?? req.url ?? "", + "http://localhost" + ); + headers.delete(CoreHeaders.ORIGINAL_URL); + const noBody = req.method === "GET" || req.method === "HEAD"; + const body = noBody ? void 0 : safeReadableStreamFrom(req); + const request = new Request(url13, { + method: req.method, + headers, + body, + duplex: "half", + cf + }); + let response; + try { + const customService = request.headers.get(CoreHeaders.CUSTOM_SERVICE); + if (customService !== null) { + request.headers.delete(CoreHeaders.CUSTOM_SERVICE); + response = await this.#handleLoopbackCustomService( + request, + customService + ); + } else if (url13.pathname === "/core/error") { + response = await handlePrettyErrorRequest( + this.#log, + this.#workerSrcOpts, + request + ); + } else if (url13.pathname === "/core/log") { + const level = parseInt(request.headers.get(SharedHeaders.LOG_LEVEL)); + (0, import_assert11.default)( + 0 /* NONE */ <= level && level <= 5 /* VERBOSE */, + `Expected ${SharedHeaders.LOG_LEVEL} header to be log level, got ${level}` + ); + const logLevel = level; + let message = await request.text(); + if (!$.enabled) + message = stripAnsi(message); + this.#log.logWithLevel(logLevel, message); + response = new Response(null, { status: 204 }); + } + } catch (e) { + this.#log.error(e); + res?.writeHead(500); + res?.end(e?.stack ?? String(e)); + return; + } + if (res !== void 0) { + if (response === void 0) { + res.writeHead(404); + res.end(); + } else { + await writeResponse(response, res); + } + } + return response; + }; + #handleLoopbackUpgrade = async (req, socket, head) => { + const { pathname } = new URL(req.url ?? "", "http://localhost"); + if (pathname === "/cdn-cgi/mf/reload") { + this.#liveReloadServer.handleUpgrade(req, socket, head, (ws) => { + this.#liveReloadServer.emit("connection", ws, req); + }); + return; + } + const response = await this.#handleLoopback(req); + const webSocket = response?.webSocket; + if (response?.status === 101 && webSocket) { + this.#webSocketExtraHeaders.set(req, response.headers); + this.#webSocketServer.handleUpgrade(req, socket, head, (ws) => { + void coupleWebSocket(ws, webSocket); + this.#webSocketServer.emit("connection", ws, req); + }); + return; + } + const res = new import_http7.default.ServerResponse(req); + (0, import_assert11.default)(socket instanceof import_net.default.Socket); + res.assignSocket(socket); + if (!response || response.ok) { + res.writeHead(500); + res.end(); + this.#log.error( + new TypeError( + "Web Socket request did not return status 101 Switching Protocols response with Web Socket" + ) + ); + return; + } + await writeResponse(response, res); + }; + #startLoopbackServer(port, hostname) { + if (hostname === "*") { + hostname = "::"; + } + return new Promise((resolve) => { + const server = (0, import_stoppable.default)( + import_http7.default.createServer(this.#handleLoopback), + /* grace */ + 0 + ); + server.on("upgrade", this.#handleLoopbackUpgrade); + server.listen(port, hostname, () => resolve(server)); + }); + } + #stopLoopbackServer() { + return new Promise((resolve, reject) => { + (0, import_assert11.default)(this.#loopbackServer !== void 0); + this.#loopbackServer.stop((err) => err ? reject(err) : resolve()); + }); + } + async #assembleConfig() { + const allWorkerOpts = this.#workerOpts; + const sharedOpts = this.#sharedOpts; + const loopbackPort = this.#loopbackPort; + (0, import_assert11.default)(loopbackPort !== void 0); + sharedOpts.core.cf = await setupCf(this.#log, sharedOpts.core.cf); + const durableObjectClassNames = getDurableObjectClassNames(allWorkerOpts); + const queueConsumers = getQueueConsumers(allWorkerOpts); + const allWorkerRoutes = getWorkerRoutes(allWorkerOpts); + const workerNames = [...allWorkerRoutes.keys()]; + const services = /* @__PURE__ */ new Map(); + const sockets = [await configureEntrySocket(sharedOpts.core)]; + const proxyBindings = []; + for (let i = 0; i < allWorkerOpts.length; i++) { + const workerOpts = allWorkerOpts[i]; + const workerName = workerOpts.core.name ?? ""; + const workerBindings = []; + const additionalModules = []; + for (const [key, plugin] of PLUGIN_ENTRIES) { + const pluginBindings = await plugin.getBindings(workerOpts[key], i); + if (pluginBindings !== void 0) { + for (const binding of pluginBindings) { + workerBindings.push(binding); + if (isNativeTargetBinding(binding)) { + proxyBindings.push(buildProxyBinding(key, workerName, binding)); + } + } + if (key === "kv") { + const module2 = maybeGetSitesManifestModule(pluginBindings); + if (module2 !== void 0) + additionalModules.push(module2); + } + } + } + const pluginServicesOptionsBase = { + log: this.#log, + workerBindings, + workerIndex: i, + additionalModules, + tmpPath: this.#tmpPath, + workerNames, + durableObjectClassNames, + queueConsumers + }; + for (const [key, plugin] of PLUGIN_ENTRIES) { + const pluginServices = await plugin.getServices({ + ...pluginServicesOptionsBase, + // @ts-expect-error `CoreOptionsSchema` has required options which are + // missing in other plugins' options. + options: workerOpts[key], + // @ts-expect-error `QueuesPlugin` doesn't define shared options + sharedOptions: sharedOpts[key] + }); + if (pluginServices !== void 0) { + for (const service of pluginServices) { + if (service.name !== void 0 && !services.has(service.name)) { + services.set(service.name, service); + if (key !== DURABLE_OBJECTS_PLUGIN_NAME) { + const maybeBindings = getInternalDurableObjectProxyBindings( + key, + service + ); + if (maybeBindings !== void 0) { + proxyBindings.push(...maybeBindings); + } + } + } + } + } + } + } + const extensions = [ + { + modules: [ + { name: "miniflare:shared", esModule: index_worker_default() }, + { name: "miniflare:zod", esModule: zod_worker_default() } + ] + }, + { + modules: [ + { + name: "miniflare-internal:identity", + internal: true, + // Not accessible to user code + esModule: ` + class Identity { + async asyncIdentity(...args) { + const i = args.findIndex((arg) => arg instanceof ReadableStream); + if (i !== -1) args[i] = args[i].pipeThrough(new TransformStream()); + return args; + } + } + export default function() { return new Identity(); } + ` + } + ] + } + ]; + proxyBindings.push({ + name: "IDENTITY", + wrapped: { moduleName: "miniflare-internal:identity" } + }); + const globalServices = getGlobalServices({ + sharedOptions: sharedOpts.core, + allWorkerRoutes, + fallbackWorkerName: this.#workerOpts[0].core.name, + loopbackPort, + log: this.#log, + proxyBindings + }); + for (const service of globalServices) { + (0, import_assert11.default)(service.name !== void 0 && !services.has(service.name)); + services.set(service.name, service); + } + return { services: Array.from(services.values()), sockets, extensions }; + } + async #assembleAndUpdateConfig() { + const initial = !this.#runtimeEntryURL; + (0, import_assert11.default)(this.#runtime !== void 0); + const config = await this.#assembleConfig(); + const configBuffer = serializeConfig(config); + const maybePort = await this.#runtime.updateConfig(configBuffer, { + signal: this.#disposeController.signal, + entryPort: maybeApply(parseInt, this.#runtimeEntryURL?.port) + }); + if (this.#disposeController.signal.aborted) + return; + if (maybePort === void 0) { + throw new MiniflareCoreError( + "ERR_RUNTIME_FAILURE", + "The Workers runtime failed to start. There is likely additional logging output above." + ); + } + const entrySocket = config.sockets?.[0]; + const secure = entrySocket !== void 0 && "https" in entrySocket; + const previousEntry = this.#runtimeEntryURL; + this.#runtimeEntryURL = new URL( + `${secure ? "https" : "http"}://${this.#accessibleHost}:${maybePort}` + ); + if (previousEntry?.toString() !== this.#runtimeEntryURL.toString()) { + this.#runtimeClient = new import_undici9.Client(this.#runtimeEntryURL, { + connect: { rejectUnauthorized: false } + }); + registerAllowUnauthorizedDispatcher(this.#runtimeClient); + } + if (this.#proxyClient === void 0) { + this.#proxyClient = new ProxyClient( + this.#runtimeEntryURL, + this.dispatchFetch + ); + } else { + this.#proxyClient.poisonProxies(this.#runtimeEntryURL); + } + if (!this.#runtimeMutex.hasWaiting) { + const ready = initial ? "Ready" : "Updated and ready"; + const host = import_net.default.isIPv6(this.#host) ? `[${this.#host}]` : this.#host; + this.#log.info( + `${ready} on ${secure ? "https" : "http"}://${host}:${maybePort} ` + ); + if (initial) { + let hosts; + if (this.#host === "::" || this.#host === "*") { + hosts = getAccessibleHosts(false); + } else if (this.#host === "0.0.0.0") { + hosts = getAccessibleHosts(true); + } else { + hosts = []; + } + for (const h of hosts) { + this.#log.info(`- ${secure ? "https" : "http"}://${h}:${maybePort}`); + } + } + this.#handleReload(); + } + } + async #waitForReady() { + await this.#initPromise; + await this.#runtimeMutex.drained(); + (0, import_assert11.default)(this.#runtimeEntryURL !== void 0); + return new URL(this.#runtimeEntryURL.toString()); + } + get ready() { + return this.#waitForReady(); + } + #checkDisposed() { + if (this.#disposeController.signal.aborted) { + throw new MiniflareCoreError( + "ERR_DISPOSED", + "Cannot use disposed instance" + ); + } + } + async #setOptions(opts) { + const [sharedOpts, workerOpts] = validateOptions(opts); + this.#sharedOpts = sharedOpts; + this.#workerOpts = workerOpts; + this.#log = this.#sharedOpts.core.log ?? this.#log; + await this.#assembleAndUpdateConfig(); + } + setOptions(opts) { + this.#checkDisposed(); + return this.#runtimeMutex.runWith(() => this.#setOptions(opts)); + } + dispatchFetch = async (input, init2) => { + this.#checkDisposed(); + await this.ready; + (0, import_assert11.default)(this.#runtimeEntryURL !== void 0); + (0, import_assert11.default)(this.#runtimeClient !== void 0); + const forward = new Request(input, init2); + const url13 = new URL(forward.url); + forward.headers.set(CoreHeaders.ORIGINAL_URL, url13.toString()); + url13.protocol = this.#runtimeEntryURL.protocol; + url13.host = this.#runtimeEntryURL.host; + if (forward.cf) { + const cf = { ...fallbackCf, ...forward.cf }; + forward.headers.set(HEADER_CF_BLOB, JSON.stringify(cf)); + } + if (forward.body !== null && forward.headers.get("Content-Length") === "0") { + forward.headers.delete("Content-Length"); + } + const forwardInit = forward; + forwardInit.dispatcher = this.#runtimeClient; + const response = await fetch2(url13, forwardInit); + const stack = response.headers.get(CoreHeaders.ERROR_STACK); + if (response.status === 500 && stack !== null) { + const caught = JsonErrorSchema.parse(await response.json()); + throw reviveError(this.#workerSrcOpts, caught); + } + if (process.env.MINIFLARE_ASSERT_BODIES_CONSUMED === "true" && response.body !== null) { + const originalLimit = Error.stackTraceLimit; + Error.stackTraceLimit = Infinity; + const error = new Error( + "`body` returned from `Miniflare#dispatchFetch()` not consumed immediately" + ); + Error.stackTraceLimit = originalLimit; + setImmediate(() => { + if (!response.bodyUsed) + throw error; + }); + } + return response; + }; + /** @internal */ + async _getProxyClient() { + this.#checkDisposed(); + await this.ready; + (0, import_assert11.default)(this.#proxyClient !== void 0); + return this.#proxyClient; + } + async getBindings(workerName) { + const bindings = {}; + const proxyClient = await this._getProxyClient(); + let workerOpts; + if (workerName === void 0) { + workerOpts = this.#workerOpts[0]; + } else { + workerOpts = this.#workerOpts.find( + ({ core }) => (core.name ?? "") === workerName + ); + if (workerOpts === void 0) { + throw new TypeError(`${JSON.stringify(workerName)} worker not found`); + } + } + workerName = workerOpts.core.name ?? ""; + for (const [key, plugin] of PLUGIN_ENTRIES) { + const pluginBindings = await plugin.getNodeBindings(workerOpts[key]); + for (const [name, binding] of Object.entries(pluginBindings)) { + if (binding === kProxyNodeBinding) { + const proxyBindingName = getProxyBindingName(key, workerName, name); + const proxy = proxyClient.env[proxyBindingName]; + (0, import_assert11.default)( + proxy !== void 0, + `Expected ${proxyBindingName} to be bound` + ); + bindings[name] = proxy; + } else { + bindings[name] = binding; + } + } + } + return bindings; + } + async #getProxy(pluginName, bindingName, workerName) { + const proxyClient = await this._getProxyClient(); + const proxyBindingName = getProxyBindingName( + pluginName, + // Default to entrypoint worker if none specified + workerName ?? this.#workerOpts[0].core.name ?? "", + bindingName + ); + const proxy = proxyClient.env[proxyBindingName]; + if (proxy === void 0) { + const friendlyWorkerName = workerName === void 0 ? "entrypoint" : JSON.stringify(workerName); + throw new TypeError( + `${JSON.stringify(bindingName)} unbound in ${friendlyWorkerName} worker` + ); + } + return proxy; + } + // TODO(someday): would be nice to define these in plugins + async getCaches() { + const proxyClient = await this._getProxyClient(); + return proxyClient.global.caches; + } + getD1Database(bindingName, workerName) { + return this.#getProxy(D1_PLUGIN_NAME, bindingName, workerName); + } + getDurableObjectNamespace(bindingName, workerName) { + return this.#getProxy(DURABLE_OBJECTS_PLUGIN_NAME, bindingName, workerName); + } + getKVNamespace(bindingName, workerName) { + return this.#getProxy(KV_PLUGIN_NAME, bindingName, workerName); + } + getQueueProducer(bindingName, workerName) { + return this.#getProxy(QUEUES_PLUGIN_NAME, bindingName, workerName); + } + getR2Bucket(bindingName, workerName) { + return this.#getProxy(R2_PLUGIN_NAME, bindingName, workerName); + } + /** @internal */ + _getInternalDurableObjectNamespace(pluginName, serviceName, className) { + return this.#getProxy(`${pluginName}-internal`, className, serviceName); + } + async dispose() { + this.#disposeController.abort(); + try { + await this.ready; + } finally { + this.#removeTmpPathExitHook(); + this.#removeRuntimeExitHook?.(); + await this.#proxyClient?.dispose(); + await this.#runtime?.dispose(); + await this.#stopLoopbackServer(); + await import_fs17.default.promises.rm(this.#tmpPath, { force: true, recursive: true }); + maybeInstanceRegistry?.delete(this); + } + } +}; +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + CACHE_PLUGIN, + CACHE_PLUGIN_NAME, + CORE_PLUGIN, + CORE_PLUGIN_NAME, + CacheBindings, + CacheHeaders, + CacheOptionsSchema, + CacheSharedOptionsSchema, + CloseEvent, + CoreBindings, + CoreHeaders, + CoreOptionsSchema, + CoreSharedOptionsSchema, + D1OptionsSchema, + D1SharedOptionsSchema, + D1_PLUGIN, + D1_PLUGIN_NAME, + DEFAULT_PERSIST_ROOT, + DURABLE_OBJECTS_PLUGIN, + DURABLE_OBJECTS_PLUGIN_NAME, + DURABLE_OBJECTS_STORAGE_SERVICE_NAME, + DeferredPromise, + DurableObjectsOptionsSchema, + DurableObjectsSharedOptionsSchema, + ErrorEvent, + File, + FormData, + HEADER_CF_BLOB, + Headers, + HttpOptions_Style, + JsonSchema, + KVHeaders, + KVLimits, + KVOptionsSchema, + KVParams, + KVSharedOptionsSchema, + KV_PLUGIN, + KV_PLUGIN_NAME, + LiteralSchema, + Log, + LogLevel, + MessageEvent, + Miniflare, + MiniflareCoreError, + MiniflareError, + ModuleDefinitionSchema, + ModuleRuleSchema, + ModuleRuleTypeSchema, + Mutex, + NoOpLog, + PLUGINS, + PLUGIN_ENTRIES, + PersistenceSchema, + ProxyAddresses, + ProxyClient, + ProxyOps, + QUEUES_PLUGIN, + QUEUES_PLUGIN_NAME, + QueueBindings, + QueueConsumerOptionsSchema, + QueueConsumerSchema, + QueueConsumersSchema, + QueueContentTypeSchema, + QueueIncomingMessageSchema, + QueuesBatchRequestSchema, + QueuesError, + QueuesOptionsSchema, + R2OptionsSchema, + R2SharedOptionsSchema, + R2_PLUGIN, + R2_PLUGIN_NAME, + Request, + Response, + RouterError, + Runtime, + SERVICE_ENTRY, + SERVICE_LOOPBACK, + SITES_NO_CACHE_PREFIX, + SOCKET_ENTRY, + SharedBindings, + SharedHeaders, + SiteBindings, + SourceOptionsSchema, + TlsOptions_Version, + TypedEventTarget, + WORKER_BINDING_SERVICE_LOOPBACK, + WaitGroup, + WebSocket, + WebSocketPair, + Worker_Binding_CryptoKey_Usage, + _forceColour, + _formatZodError, + _initialiseInstanceRegistry, + _transformsForContentEncoding, + base64Decode, + base64Encode, + configureEntrySocket, + coupleWebSocket, + createFetchMock, + createHTTPReducers, + createHTTPRevivers, + decodeSitesKey, + deserialiseRegExps, + deserialiseSiteRegExps, + encodeSitesKey, + fetch, + getAccessibleHosts, + getCacheServiceName, + getGlobalServices, + getPersistPath, + globsToRegExps, + isFetcherFetch, + isR2ObjectWriteHttpMetadata, + isSitesRequest, + kProxyNodeBinding, + kVoid, + matchRoutes, + maybeApply, + maybeGetSitesManifestModule, + maybeParseURL, + migrateDatabase, + namespaceEntries, + namespaceKeys, + normaliseDurableObject, + objectEntryWorker, + parseRanges, + parseRoutes, + parseWithReadableStreams, + prefixError, + prefixStream, + readPrefix, + reduceError, + registerAllowUnauthorizedDispatcher, + sanitisePath, + serialiseRegExps, + serialiseSiteRegExps, + serializeConfig, + stringifyWithStreams, + stripAnsi, + structuredSerializableReducers, + structuredSerializableRevivers, + supportedCompatibilityDate, + testRegExps, + testSiteRegExps, + viewToBuffer, + zAwaitable +}); +/*! Path sanitisation regexps adapted from node-sanitize-filename: + * https://github.com/parshap/node-sanitize-filename/blob/209c39b914c8eb48ee27bcbde64b2c7822fdf3de/index.js#L4-L37 + * + * Licensed under the ISC license: + * + * Copyright Parsha Pourkhomami <parshap@gmail.com> + * + * Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the + * above copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY + * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ +/*! + * MIT License + * + * Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +/*! + * Copyright (c) 2011 Felix Geisendörfer (felix@debuggable.com) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +//# sourceMappingURL=index.js.map diff --git a/node_modules/miniflare/dist/src/index.js.map b/node_modules/miniflare/dist/src/index.js.map new file mode 100644 index 0000000..ecd19b6 --- /dev/null +++ b/node_modules/miniflare/dist/src/index.js.map @@ -0,0 +1,6 @@ +{ + "version": 3, + "sources": ["../../src/runtime/config/workerd.capnp.js", "../../src/index.ts", "../../../../node_modules/kleur/colors.mjs", "embed-worker:/home/jspspike/Projects/miniflare/packages/miniflare/src/workers/shared/index.worker.ts", "embed-worker:/home/jspspike/Projects/miniflare/packages/miniflare/src/workers/shared/zod.worker.ts", "../../src/cf.ts", "../../src/http/fetch.ts", "../../src/workers/cache/constants.ts", "../../src/workers/core/constants.ts", "../../src/workers/core/devalue.ts", "../../../../node_modules/devalue/src/utils.js", "../../../../node_modules/devalue/src/constants.js", "../../../../node_modules/devalue/src/parse.js", "../../../../node_modules/devalue/src/stringify.js", "../../src/workers/core/routing.ts", "../../src/workers/shared/constants.ts", "../../src/workers/shared/data.ts", "../../src/workers/shared/matcher.ts", "../../src/workers/shared/range.ts", "../../src/workers/shared/sync.ts", "../../src/workers/shared/types.ts", "../../src/workers/kv/constants.ts", "../../src/workers/queues/constants.ts", "../../src/workers/shared/zod.worker.ts", "../../src/workers/queues/schemas.ts", "../../src/http/request.ts", "../../src/http/response.ts", "../../src/http/websocket.ts", "../../src/shared/colour.ts", "../../src/shared/error.ts", "../../src/shared/event.ts", "../../src/shared/log.ts", "../../src/shared/matcher.ts", "../../src/shared/streams.ts", "../../src/shared/types.ts", "../../src/http/server.ts", "../../src/plugins/cache/index.ts", "embed-worker:/home/jspspike/Projects/miniflare/packages/miniflare/src/workers/cache/cache.worker.ts", "embed-worker:/home/jspspike/Projects/miniflare/packages/miniflare/src/workers/cache/cache-entry.worker.ts", "embed-worker:/home/jspspike/Projects/miniflare/packages/miniflare/src/workers/cache/cache-entry-noop.worker.ts", "../../src/plugins/shared/index.ts", "embed-worker:/home/jspspike/Projects/miniflare/packages/miniflare/src/workers/shared/object-entry.worker.ts", "../../src/plugins/shared/constants.ts", "../../src/plugins/shared/routing.ts", "../../src/plugins/core/index.ts", "embed-worker:/home/jspspike/Projects/miniflare/packages/miniflare/src/workers/core/entry.worker.ts", "../../src/runtime/index.ts", "../../src/runtime/config/index.ts", "../../src/runtime/config/workerd.ts", "../../src/plugins/do/index.ts", "../../src/plugins/core/constants.ts", "../../src/plugins/core/modules.ts", "../../src/plugins/core/services.ts", "../../src/plugins/core/errors/index.ts", "../../src/plugins/core/errors/sourcemap.ts", "../../src/plugins/core/errors/callsite.ts", "../../src/plugins/core/proxy/client.ts", "../../src/plugins/core/proxy/fetch-sync.ts", "../../src/plugins/core/proxy/types.ts", "../../src/plugins/d1/index.ts", "embed-worker:/home/jspspike/Projects/miniflare/packages/miniflare/src/workers/d1/database.worker.ts", "../../src/plugins/kv/index.ts", "embed-worker:/home/jspspike/Projects/miniflare/packages/miniflare/src/workers/kv/namespace.worker.ts", "../../src/plugins/kv/constants.ts", "../../src/plugins/kv/sites.ts", "embed-worker:/home/jspspike/Projects/miniflare/packages/miniflare/src/workers/kv/sites.worker.ts", "embed-worker:/home/jspspike/Projects/miniflare/packages/miniflare/src/workers/queues/broker.worker.ts", "../../src/plugins/queues/index.ts", "../../src/plugins/queues/errors.ts", "../../src/plugins/r2/index.ts", "embed-worker:/home/jspspike/Projects/miniflare/packages/miniflare/src/workers/r2/bucket.worker.ts", "../../src/plugins/index.ts", "../../src/http/cert.ts", "../../src/http/helpers.ts", "../../src/http/index.ts", "../../src/zod-format.ts"], + "mappings": "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", + "names": ["Config", "Socket_Which", "Socket", "ServiceDesignator", "Service_Which", "Service", "Worker", "ExternalServer", "Worker_Module_Which", "Worker_Module", "Worker_Binding_Type_Which", "Worker_Binding_DurableObjectNamespaceDesignator", "Worker_Binding_CryptoKey_Usage", "Worker_Binding_CryptoKey_Algorithm_Which", "Worker_Binding_CryptoKey_Which", "Worker_Binding_Which", "Worker_Binding", "Worker_DurableObjectNamespace_Which", "Worker_DurableObjectStorage_Which", "Worker_Which", "ExternalServer_Which", "HttpOptions_Style", "TlsOptions_Version", "Extension", "CORE_PLUGIN_NAME", "fetch", "supportedCompatibilityDate", "import_assert", "import_crypto", "import_fs", "import_http", "import_os", "import_path", "import_web", "import_util", "import_undici", "path", "fs", "url", "import_fs", "import_path", "import_url", "contents", "path", "fs", "url", "import_ws", "import_zod", "import_path", "path", "assert", "import_undici", "import_ws", "revivers", "reducers", "index", "value", "assert", "url", "reducers", "value", "stringifiedValue", "revivers", "url", "path", "LogLevel", "import_node_buffer", "import_node_assert", "assert", "url", "import_node_buffer", "import_zod", "import_undici", "BaseRequest", "init", "import_undici", "BaseResponse", "url", "init", "import_assert", "import_path", "path", "globToRegexp", "import_zod", "init", "assert", "NodeWebSocket", "fetch", "init", "url", "NodeWebSocket", "baseFetch", "import_promises", "import_promises", "import_fs", "import_path", "import_url", "contents", "path", "fs", "url", "import_fs", "import_path", "import_url", "contents", "path", "fs", "url", "import_fs", "import_path", "import_url", "contents", "path", "fs", "url", "import_zod", "import_fs", "import_promises", "import_path", "import_url", "import_zod", "import_fs", "import_path", "import_url", "contents", "path", "fs", "url", "import_url", "url", "url", "path", "crypto", "fs", "fs", "import_assert", "import_fs", "import_promises", "import_path", "import_util", "import_undici", "import_fs", "import_path", "import_url", "contents", "path", "fs", "url", "import_zod", "import_assert", "import_workerd", "import_zod", "import_workerd_capnp", "CapnpConfig", "rl", "process", "workerdPath", "childProcess", "assert", "import_promises", "import_zod", "fs", "import_assert", "import_fs", "import_path", "import_url", "import_zod", "module", "path", "rule", "assert", "contents", "import_zod", "import_fs", "import_path", "import_url", "import_zod", "import_assert", "assert", "contents", "fs", "module", "path", "import_assert", "import_web", "import_util", "import_undici", "import_assert", "import_web", "url", "init", "assert", "import_web", "import_undici", "url", "util", "assert", "key", "tls", "encoder", "fetch", "CORE_PLUGIN_NAME", "supportedCompatibilityDate", "path", "fs", "name", "module", "assert", "import_promises", "import_fs", "import_path", "import_url", "contents", "path", "fs", "url", "import_zod", "fs", "import_promises", "import_fs", "import_path", "import_url", "contents", "path", "fs", "url", "import_zod", "import_assert", "import_promises", "import_path", "import_fs", "import_path", "import_url", "contents", "path", "fs", "url", "fs", "path", "assert", "fs", "import_fs", "import_path", "import_url", "contents", "path", "fs", "url", "import_zod", "import_promises", "import_fs", "import_path", "import_url", "contents", "path", "fs", "url", "import_zod", "fs", "CORE_PLUGIN_NAME", "fs", "net", "import_undici", "import_assert", "import_util", "path", "assert", "util", "path", "util", "opts", "assert", "zlib", "net", "os", "crypto", "exitHook", "fs", "url", "http", "stoppable", "module", "init", "fetch"] +} diff --git a/node_modules/miniflare/dist/src/workers/cache/cache-entry-noop.worker.js b/node_modules/miniflare/dist/src/workers/cache/cache-entry-noop.worker.js new file mode 100644 index 0000000..46b3f7e --- /dev/null +++ b/node_modules/miniflare/dist/src/workers/cache/cache-entry-noop.worker.js @@ -0,0 +1,19 @@ +// packages/miniflare/src/workers/cache/constants.ts +var CacheHeaders = { + NAMESPACE: "cf-cache-namespace", + STATUS: "cf-cache-status" +}; + +// packages/miniflare/src/workers/cache/cache-entry-noop.worker.ts +var cache_entry_noop_worker_default = { + async fetch(request) { + return request.method === "GET" ? new Response(null, { + status: 504, + headers: { [CacheHeaders.STATUS]: "MISS" } + }) : request.method === "PUT" ? (await request.body?.pipeTo(new WritableStream()), new Response(null, { status: 204 })) : request.method === "PURGE" ? new Response(null, { status: 404 }) : new Response(null, { status: 405 }); + } +}; +export { + cache_entry_noop_worker_default as default +}; +//# sourceMappingURL=cache-entry-noop.worker.js.map diff --git a/node_modules/miniflare/dist/src/workers/cache/cache-entry-noop.worker.js.map b/node_modules/miniflare/dist/src/workers/cache/cache-entry-noop.worker.js.map new file mode 100644 index 0000000..ad9e74e --- /dev/null +++ b/node_modules/miniflare/dist/src/workers/cache/cache-entry-noop.worker.js.map @@ -0,0 +1,6 @@ +{ + "version": 3, + "sources": ["../../../../src/workers/cache/constants.ts", "../../../../src/workers/cache/cache-entry-noop.worker.ts"], + "mappings": ";AAAO,IAAM,eAAe;AAAA,EAC1B,WAAW;AAAA,EACX,QAAQ;AACV;;;ACDA,IAAO,kCAAyB;AAAA,EAC9B,MAAM,MAAM,SAAS;AACnB,WAAI,QAAQ,WAAW,QACd,IAAI,SAAS,MAAM;AAAA,MACxB,QAAQ;AAAA,MACR,SAAS,EAAE,CAAC,aAAa,MAAM,GAAG,OAAO;AAAA,IAC3C,CAAC,IACQ,QAAQ,WAAW,SAE5B,MAAM,QAAQ,MAAM,OAAO,IAAI,eAAe,CAAC,GACxC,IAAI,SAAS,MAAM,EAAE,QAAQ,IAAI,CAAC,KAChC,QAAQ,WAAW,UACrB,IAAI,SAAS,MAAM,EAAE,QAAQ,IAAI,CAAC,IAElC,IAAI,SAAS,MAAM,EAAE,QAAQ,IAAI,CAAC;AAAA,EAE7C;AACF;", + "names": [] +} diff --git a/node_modules/miniflare/dist/src/workers/cache/cache-entry.worker.js b/node_modules/miniflare/dist/src/workers/cache/cache-entry.worker.js new file mode 100644 index 0000000..3fcefe7 --- /dev/null +++ b/node_modules/miniflare/dist/src/workers/cache/cache-entry.worker.js @@ -0,0 +1,28 @@ +// packages/miniflare/src/workers/cache/cache-entry.worker.ts +import { SharedBindings } from "miniflare:shared"; + +// packages/miniflare/src/workers/cache/constants.ts +var CacheHeaders = { + NAMESPACE: "cf-cache-namespace", + STATUS: "cf-cache-status" +}, CacheBindings = { + MAYBE_JSON_CACHE_WARN_USAGE: "MINIFLARE_CACHE_WARN_USAGE" +}; + +// packages/miniflare/src/workers/cache/cache-entry.worker.ts +var cache_entry_worker_default = { + async fetch(request, env) { + let namespace = request.headers.get(CacheHeaders.NAMESPACE), name = namespace === null ? "default" : `named:${namespace}`, objectNamespace = env[SharedBindings.DURABLE_OBJECT_NAMESPACE_OBJECT], id = objectNamespace.idFromName(name), stub = objectNamespace.get(id), cf = { + ...request.cf, + miniflare: { + name, + cacheWarnUsage: env[CacheBindings.MAYBE_JSON_CACHE_WARN_USAGE] + } + }; + return await stub.fetch(request, { cf }); + } +}; +export { + cache_entry_worker_default as default +}; +//# sourceMappingURL=cache-entry.worker.js.map diff --git a/node_modules/miniflare/dist/src/workers/cache/cache-entry.worker.js.map b/node_modules/miniflare/dist/src/workers/cache/cache-entry.worker.js.map new file mode 100644 index 0000000..49e5e4b --- /dev/null +++ b/node_modules/miniflare/dist/src/workers/cache/cache-entry.worker.js.map @@ -0,0 +1,6 @@ +{ + "version": 3, + "sources": ["../../../../src/workers/cache/cache-entry.worker.ts", "../../../../src/workers/cache/constants.ts"], + "mappings": ";AAAA,SAAmC,sBAAsB;;;ACAlD,IAAM,eAAe;AAAA,EAC1B,WAAW;AAAA,EACX,QAAQ;AACV,GAEa,gBAAgB;AAAA,EAC3B,6BAA6B;AAC/B;;;ADCA,IAAO,6BAA8B;AAAA,EACnC,MAAM,MAAM,SAAS,KAAK;AACxB,QAAM,YAAY,QAAQ,QAAQ,IAAI,aAAa,SAAS,GACtD,OAAO,cAAc,OAAO,YAAY,SAAS,aAEjD,kBAAkB,IAAI,eAAe,+BAA+B,GACpE,KAAK,gBAAgB,WAAW,IAAI,GACpC,OAAO,gBAAgB,IAAI,EAAE,GAC7B,KAA+C;AAAA,MACnD,GAAG,QAAQ;AAAA,MACX,WAAW;AAAA,QACT;AAAA,QACA,gBAAgB,IAAI,cAAc,2BAA2B;AAAA,MAC/D;AAAA,IACF;AACA,WAAO,MAAM,KAAK,MAAM,SAAS,EAAE,GAAkC,CAAC;AAAA,EACxE;AACF;", + "names": [] +} diff --git a/node_modules/miniflare/dist/src/workers/cache/cache.worker.js b/node_modules/miniflare/dist/src/workers/cache/cache.worker.js new file mode 100644 index 0000000..bdd258a --- /dev/null +++ b/node_modules/miniflare/dist/src/workers/cache/cache.worker.js @@ -0,0 +1,655 @@ +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf, __hasOwnProp = Object.prototype.hasOwnProperty; +var __commonJS = (cb, mod) => function() { + return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from == "object" || typeof from == "function") + for (let key of __getOwnPropNames(from)) + !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: !0 }) : target, + mod +)); +var __decorateClass = (decorators, target, key, kind) => { + for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--) + (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result); + return kind && result && __defProp(target, key, result), result; +}; + +// node_modules/http-cache-semantics/index.js +var require_http_cache_semantics = __commonJS({ + "node_modules/http-cache-semantics/index.js"(exports, module) { + "use strict"; + var statusCodeCacheableByDefault = /* @__PURE__ */ new Set([ + 200, + 203, + 204, + 206, + 300, + 301, + 404, + 405, + 410, + 414, + 501 + ]), understoodStatuses = /* @__PURE__ */ new Set([ + 200, + 203, + 204, + 300, + 301, + 302, + 303, + 307, + 308, + 404, + 405, + 410, + 414, + 501 + ]), errorStatusCodes = /* @__PURE__ */ new Set([ + 500, + 502, + 503, + 504 + ]), hopByHopHeaders = { + date: !0, + // included, because we add Age update Date + connection: !0, + "keep-alive": !0, + "proxy-authenticate": !0, + "proxy-authorization": !0, + te: !0, + trailer: !0, + "transfer-encoding": !0, + upgrade: !0 + }, excludedFromRevalidationUpdate = { + // Since the old body is reused, it doesn't make sense to change properties of the body + "content-length": !0, + "content-encoding": !0, + "transfer-encoding": !0, + "content-range": !0 + }; + function toNumberOrZero(s) { + let n = parseInt(s, 10); + return isFinite(n) ? n : 0; + } + function isErrorResponse(response) { + return response ? errorStatusCodes.has(response.status) : !0; + } + function parseCacheControl(header) { + let cc = {}; + if (!header) + return cc; + let parts = header.trim().split(/\s*,\s*/); + for (let part of parts) { + let [k, v] = part.split(/\s*=\s*/, 2); + cc[k] = v === void 0 ? !0 : v.replace(/^"|"$/g, ""); + } + return cc; + } + function formatCacheControl(cc) { + let parts = []; + for (let k in cc) { + let v = cc[k]; + parts.push(v === !0 ? k : k + "=" + v); + } + if (parts.length) + return parts.join(", "); + } + module.exports = class { + constructor(req, res, { + shared, + cacheHeuristic, + immutableMinTimeToLive, + ignoreCargoCult, + _fromObject + } = {}) { + if (_fromObject) { + this._fromObject(_fromObject); + return; + } + if (!res || !res.headers) + throw Error("Response headers missing"); + this._assertRequestHasHeaders(req), this._responseTime = this.now(), this._isShared = shared !== !1, this._cacheHeuristic = cacheHeuristic !== void 0 ? cacheHeuristic : 0.1, this._immutableMinTtl = immutableMinTimeToLive !== void 0 ? immutableMinTimeToLive : 24 * 3600 * 1e3, this._status = "status" in res ? res.status : 200, this._resHeaders = res.headers, this._rescc = parseCacheControl(res.headers["cache-control"]), this._method = "method" in req ? req.method : "GET", this._url = req.url, this._host = req.headers.host, this._noAuthorization = !req.headers.authorization, this._reqHeaders = res.headers.vary ? req.headers : null, this._reqcc = parseCacheControl(req.headers["cache-control"]), ignoreCargoCult && "pre-check" in this._rescc && "post-check" in this._rescc && (delete this._rescc["pre-check"], delete this._rescc["post-check"], delete this._rescc["no-cache"], delete this._rescc["no-store"], delete this._rescc["must-revalidate"], this._resHeaders = Object.assign({}, this._resHeaders, { + "cache-control": formatCacheControl(this._rescc) + }), delete this._resHeaders.expires, delete this._resHeaders.pragma), res.headers["cache-control"] == null && /no-cache/.test(res.headers.pragma) && (this._rescc["no-cache"] = !0); + } + now() { + return Date.now(); + } + storable() { + return !!(!this._reqcc["no-store"] && // A cache MUST NOT store a response to any request, unless: + // The request method is understood by the cache and defined as being cacheable, and + (this._method === "GET" || this._method === "HEAD" || this._method === "POST" && this._hasExplicitExpiration()) && // the response status code is understood by the cache, and + understoodStatuses.has(this._status) && // the "no-store" cache directive does not appear in request or response header fields, and + !this._rescc["no-store"] && // the "private" response directive does not appear in the response, if the cache is shared, and + (!this._isShared || !this._rescc.private) && // the Authorization header field does not appear in the request, if the cache is shared, + (!this._isShared || this._noAuthorization || this._allowsStoringAuthenticated()) && // the response either: + // contains an Expires header field, or + (this._resHeaders.expires || // contains a max-age response directive, or + // contains a s-maxage response directive and the cache is shared, or + // contains a public response directive. + this._rescc["max-age"] || this._isShared && this._rescc["s-maxage"] || this._rescc.public || // has a status code that is defined as cacheable by default + statusCodeCacheableByDefault.has(this._status))); + } + _hasExplicitExpiration() { + return this._isShared && this._rescc["s-maxage"] || this._rescc["max-age"] || this._resHeaders.expires; + } + _assertRequestHasHeaders(req) { + if (!req || !req.headers) + throw Error("Request headers missing"); + } + satisfiesWithoutRevalidation(req) { + this._assertRequestHasHeaders(req); + let requestCC = parseCacheControl(req.headers["cache-control"]); + return requestCC["no-cache"] || /no-cache/.test(req.headers.pragma) || requestCC["max-age"] && this.age() > requestCC["max-age"] || requestCC["min-fresh"] && this.timeToLive() < 1e3 * requestCC["min-fresh"] || this.stale() && !(requestCC["max-stale"] && !this._rescc["must-revalidate"] && (requestCC["max-stale"] === !0 || requestCC["max-stale"] > this.age() - this.maxAge())) ? !1 : this._requestMatches(req, !1); + } + _requestMatches(req, allowHeadMethod) { + return (!this._url || this._url === req.url) && this._host === req.headers.host && // the request method associated with the stored response allows it to be used for the presented request, and + (!req.method || this._method === req.method || allowHeadMethod && req.method === "HEAD") && // selecting header fields nominated by the stored response (if any) match those presented, and + this._varyMatches(req); + } + _allowsStoringAuthenticated() { + return this._rescc["must-revalidate"] || this._rescc.public || this._rescc["s-maxage"]; + } + _varyMatches(req) { + if (!this._resHeaders.vary) + return !0; + if (this._resHeaders.vary === "*") + return !1; + let fields = this._resHeaders.vary.trim().toLowerCase().split(/\s*,\s*/); + for (let name of fields) + if (req.headers[name] !== this._reqHeaders[name]) + return !1; + return !0; + } + _copyWithoutHopByHopHeaders(inHeaders) { + let headers = {}; + for (let name in inHeaders) + hopByHopHeaders[name] || (headers[name] = inHeaders[name]); + if (inHeaders.connection) { + let tokens = inHeaders.connection.trim().split(/\s*,\s*/); + for (let name of tokens) + delete headers[name]; + } + if (headers.warning) { + let warnings = headers.warning.split(/,/).filter((warning) => !/^\s*1[0-9][0-9]/.test(warning)); + warnings.length ? headers.warning = warnings.join(",").trim() : delete headers.warning; + } + return headers; + } + responseHeaders() { + let headers = this._copyWithoutHopByHopHeaders(this._resHeaders), age = this.age(); + return age > 3600 * 24 && !this._hasExplicitExpiration() && this.maxAge() > 3600 * 24 && (headers.warning = (headers.warning ? `${headers.warning}, ` : "") + '113 - "rfc7234 5.5.4"'), headers.age = `${Math.round(age)}`, headers.date = new Date(this.now()).toUTCString(), headers; + } + /** + * Value of the Date response header or current time if Date was invalid + * @return timestamp + */ + date() { + let serverDate = Date.parse(this._resHeaders.date); + return isFinite(serverDate) ? serverDate : this._responseTime; + } + /** + * Value of the Age header, in seconds, updated for the current time. + * May be fractional. + * + * @return Number + */ + age() { + let age = this._ageValue(), residentTime = (this.now() - this._responseTime) / 1e3; + return age + residentTime; + } + _ageValue() { + return toNumberOrZero(this._resHeaders.age); + } + /** + * Value of applicable max-age (or heuristic equivalent) in seconds. This counts since response's `Date`. + * + * For an up-to-date value, see `timeToLive()`. + * + * @return Number + */ + maxAge() { + if (!this.storable() || this._rescc["no-cache"] || this._isShared && this._resHeaders["set-cookie"] && !this._rescc.public && !this._rescc.immutable || this._resHeaders.vary === "*") + return 0; + if (this._isShared) { + if (this._rescc["proxy-revalidate"]) + return 0; + if (this._rescc["s-maxage"]) + return toNumberOrZero(this._rescc["s-maxage"]); + } + if (this._rescc["max-age"]) + return toNumberOrZero(this._rescc["max-age"]); + let defaultMinTtl = this._rescc.immutable ? this._immutableMinTtl : 0, serverDate = this.date(); + if (this._resHeaders.expires) { + let expires = Date.parse(this._resHeaders.expires); + return Number.isNaN(expires) || expires < serverDate ? 0 : Math.max(defaultMinTtl, (expires - serverDate) / 1e3); + } + if (this._resHeaders["last-modified"]) { + let lastModified = Date.parse(this._resHeaders["last-modified"]); + if (isFinite(lastModified) && serverDate > lastModified) + return Math.max( + defaultMinTtl, + (serverDate - lastModified) / 1e3 * this._cacheHeuristic + ); + } + return defaultMinTtl; + } + timeToLive() { + let age = this.maxAge() - this.age(), staleIfErrorAge = age + toNumberOrZero(this._rescc["stale-if-error"]), staleWhileRevalidateAge = age + toNumberOrZero(this._rescc["stale-while-revalidate"]); + return Math.max(0, age, staleIfErrorAge, staleWhileRevalidateAge) * 1e3; + } + stale() { + return this.maxAge() <= this.age(); + } + _useStaleIfError() { + return this.maxAge() + toNumberOrZero(this._rescc["stale-if-error"]) > this.age(); + } + useStaleWhileRevalidate() { + return this.maxAge() + toNumberOrZero(this._rescc["stale-while-revalidate"]) > this.age(); + } + static fromObject(obj) { + return new this(void 0, void 0, { _fromObject: obj }); + } + _fromObject(obj) { + if (this._responseTime) + throw Error("Reinitialized"); + if (!obj || obj.v !== 1) + throw Error("Invalid serialization"); + this._responseTime = obj.t, this._isShared = obj.sh, this._cacheHeuristic = obj.ch, this._immutableMinTtl = obj.imm !== void 0 ? obj.imm : 24 * 3600 * 1e3, this._status = obj.st, this._resHeaders = obj.resh, this._rescc = obj.rescc, this._method = obj.m, this._url = obj.u, this._host = obj.h, this._noAuthorization = obj.a, this._reqHeaders = obj.reqh, this._reqcc = obj.reqcc; + } + toObject() { + return { + v: 1, + t: this._responseTime, + sh: this._isShared, + ch: this._cacheHeuristic, + imm: this._immutableMinTtl, + st: this._status, + resh: this._resHeaders, + rescc: this._rescc, + m: this._method, + u: this._url, + h: this._host, + a: this._noAuthorization, + reqh: this._reqHeaders, + reqcc: this._reqcc + }; + } + /** + * Headers for sending to the origin server to revalidate stale response. + * Allows server to return 304 to allow reuse of the previous response. + * + * Hop by hop headers are always stripped. + * Revalidation headers may be added or removed, depending on request. + */ + revalidationHeaders(incomingReq) { + this._assertRequestHasHeaders(incomingReq); + let headers = this._copyWithoutHopByHopHeaders(incomingReq.headers); + if (delete headers["if-range"], !this._requestMatches(incomingReq, !0) || !this.storable()) + return delete headers["if-none-match"], delete headers["if-modified-since"], headers; + if (this._resHeaders.etag && (headers["if-none-match"] = headers["if-none-match"] ? `${headers["if-none-match"]}, ${this._resHeaders.etag}` : this._resHeaders.etag), headers["accept-ranges"] || headers["if-match"] || headers["if-unmodified-since"] || this._method && this._method != "GET") { + if (delete headers["if-modified-since"], headers["if-none-match"]) { + let etags = headers["if-none-match"].split(/,/).filter((etag) => !/^\s*W\//.test(etag)); + etags.length ? headers["if-none-match"] = etags.join(",").trim() : delete headers["if-none-match"]; + } + } else + this._resHeaders["last-modified"] && !headers["if-modified-since"] && (headers["if-modified-since"] = this._resHeaders["last-modified"]); + return headers; + } + /** + * Creates new CachePolicy with information combined from the previews response, + * and the new revalidation response. + * + * Returns {policy, modified} where modified is a boolean indicating + * whether the response body has been modified, and old cached body can't be used. + * + * @return {Object} {policy: CachePolicy, modified: Boolean} + */ + revalidatedPolicy(request, response) { + if (this._assertRequestHasHeaders(request), this._useStaleIfError() && isErrorResponse(response)) + return { + modified: !1, + matches: !1, + policy: this + }; + if (!response || !response.headers) + throw Error("Response headers missing"); + let matches = !1; + if (response.status !== void 0 && response.status != 304 ? matches = !1 : response.headers.etag && !/^\s*W\//.test(response.headers.etag) ? matches = this._resHeaders.etag && this._resHeaders.etag.replace(/^\s*W\//, "") === response.headers.etag : this._resHeaders.etag && response.headers.etag ? matches = this._resHeaders.etag.replace(/^\s*W\//, "") === response.headers.etag.replace(/^\s*W\//, "") : this._resHeaders["last-modified"] ? matches = this._resHeaders["last-modified"] === response.headers["last-modified"] : !this._resHeaders.etag && !this._resHeaders["last-modified"] && !response.headers.etag && !response.headers["last-modified"] && (matches = !0), !matches) + return { + policy: new this.constructor(request, response), + // Client receiving 304 without body, even if it's invalid/mismatched has no option + // but to reuse a cached body. We don't have a good way to tell clients to do + // error recovery in such case. + modified: response.status != 304, + matches: !1 + }; + let headers = {}; + for (let k in this._resHeaders) + headers[k] = k in response.headers && !excludedFromRevalidationUpdate[k] ? response.headers[k] : this._resHeaders[k]; + let newResponse = Object.assign({}, response, { + status: this._status, + method: this._method, + headers + }); + return { + policy: new this.constructor(request, newResponse, { + shared: this._isShared, + cacheHeuristic: this._cacheHeuristic, + immutableMinTimeToLive: this._immutableMinTtl + }), + modified: !1, + matches: !0 + }; + } + }; + } +}); + +// packages/miniflare/src/workers/cache/cache.worker.ts +var import_http_cache_semantics = __toESM(require_http_cache_semantics()); +import assert from "node:assert"; +import { Buffer as Buffer2 } from "node:buffer"; +import { + DeferredPromise, + GET, + KeyValueStorage, + LogLevel, + MiniflareDurableObject, + PURGE, + PUT, + parseRanges +} from "miniflare:shared"; + +// packages/miniflare/src/workers/kv/constants.ts +import { testRegExps } from "miniflare:shared"; +var KVLimits = { + MIN_CACHE_TTL: 60, + MAX_LIST_KEYS: 1e3, + MAX_KEY_SIZE: 512, + MAX_VALUE_SIZE: 25 * 1024 * 1024, + MAX_VALUE_SIZE_TEST: 1024, + MAX_METADATA_SIZE: 1024 +}; +var SITES_NO_CACHE_PREFIX = "$__MINIFLARE_SITES__$/"; +function isSitesRequest(request) { + return new URL(request.url).pathname.startsWith(`/${SITES_NO_CACHE_PREFIX}`); +} + +// packages/miniflare/src/workers/cache/errors.worker.ts +import { HttpError } from "miniflare:shared"; + +// packages/miniflare/src/workers/cache/constants.ts +var CacheHeaders = { + NAMESPACE: "cf-cache-namespace", + STATUS: "cf-cache-status" +}; + +// packages/miniflare/src/workers/cache/errors.worker.ts +var CacheError = class extends HttpError { + constructor(code, message, headers = []) { + super(code, message); + this.headers = headers; + } + toResponse() { + return new Response(null, { + status: this.code, + headers: this.headers + }); + } + context(info) { + return this.message += ` (${info})`, this; + } +}, StorageFailure = class extends CacheError { + constructor() { + super(413, "Cache storage failed"); + } +}, PurgeFailure = class extends CacheError { + constructor() { + super(404, "Couldn't find asset to purge"); + } +}, CacheMiss = class extends CacheError { + constructor() { + super( + // workerd ignores this, but it's the correct status code + 504, + "Asset not found in cache", + [[CacheHeaders.STATUS, "MISS"]] + ); + } +}, RangeNotSatisfiable = class extends CacheError { + constructor(size) { + super(416, "Range not satisfiable", [ + ["Content-Range", `bytes */${size}`], + [CacheHeaders.STATUS, "HIT"] + ]); + } +}; + +// packages/miniflare/src/workers/cache/cache.worker.ts +function getCacheKey(req) { + return req.cf?.cacheKey ? String(req.cf?.cacheKey) : req.url; +} +function getExpiration(timers, req, res) { + let reqHeaders = normaliseHeaders(req.headers); + delete reqHeaders["cache-control"]; + let resHeaders = normaliseHeaders(res.headers); + resHeaders["cache-control"]?.toLowerCase().includes("private=set-cookie") && (resHeaders["cache-control"] = resHeaders["cache-control"]?.toLowerCase().replace(/private=set-cookie;?/i, ""), delete resHeaders["set-cookie"]); + let cacheReq = { + url: req.url, + // If a request gets to the Cache service, it's method will be GET. See README.md for details + method: "GET", + headers: reqHeaders + }, cacheRes = { + status: res.status, + headers: resHeaders + }, originalNow = import_http_cache_semantics.default.prototype.now; + import_http_cache_semantics.default.prototype.now = timers.now; + try { + let policy = new import_http_cache_semantics.default(cacheReq, cacheRes, { shared: !0 }); + return { + // Check if the request & response is cacheable + storable: policy.storable() && !("set-cookie" in resHeaders), + expiration: policy.timeToLive(), + // Cache Policy Headers is typed as [header: string]: string | string[] | undefined + // It's safe to ignore the undefined here, which is what casting to HeadersInit does + headers: policy.responseHeaders() + }; + } finally { + import_http_cache_semantics.default.prototype.now = originalNow; + } +} +function normaliseHeaders(headers) { + let result = {}; + for (let [key, value] of headers) + result[key.toLowerCase()] = value; + return result; +} +var etagRegexp = /^(W\/)?"(.+)"$/; +function parseETag(value) { + return etagRegexp.exec(value.trim())?.[2] ?? void 0; +} +var utcDateRegexp = /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), \d\d (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) \d\d\d\d \d\d:\d\d:\d\d GMT$/; +function parseUTCDate(value) { + return utcDateRegexp.test(value) ? Date.parse(value) : NaN; +} +function getMatchResponse(reqHeaders, res) { + let reqIfNoneMatchHeader = reqHeaders.get("If-None-Match"), resETagHeader = res.headers.get("ETag"); + if (reqIfNoneMatchHeader !== null && resETagHeader !== null) { + let resETag = parseETag(resETagHeader); + if (resETag !== void 0) { + if (reqIfNoneMatchHeader.trim() === "*") + return new Response(null, { status: 304, headers: res.headers }); + for (let reqIfNoneMatch of reqIfNoneMatchHeader.split(",")) + if (resETag === parseETag(reqIfNoneMatch)) + return new Response(null, { status: 304, headers: res.headers }); + } + } + let reqIfModifiedSinceHeader = reqHeaders.get("If-Modified-Since"), resLastModifiedHeader = res.headers.get("Last-Modified"); + if (reqIfModifiedSinceHeader !== null && resLastModifiedHeader !== null) { + let reqIfModifiedSince = parseUTCDate(reqIfModifiedSinceHeader); + if (parseUTCDate(resLastModifiedHeader) <= reqIfModifiedSince) + return new Response(null, { status: 304, headers: res.headers }); + } + if (res.ranges.length > 0) + if (res.status = 206, res.ranges.length > 1) + assert(!(res.body instanceof ReadableStream)), res.headers.set("Content-Type", res.body.multipartContentType); + else { + let { start, end } = res.ranges[0]; + res.headers.set( + "Content-Range", + `bytes ${start}-${end}/${res.totalSize}` + ), res.headers.set("Content-Length", `${end - start + 1}`); + } + return res.body instanceof ReadableStream || (res.body = res.body.body), new Response(res.body, { status: res.status, headers: res.headers }); +} +var CR = "\r".charCodeAt(0), LF = ` +`.charCodeAt(0), STATUS_REGEXP = /^HTTP\/\d(?:\.\d)? (?<rawStatusCode>\d+) (?<statusText>.*)$/; +async function parseHttpResponse(stream) { + let buffer = Buffer2.alloc(0), blankLineIndex = -1; + for await (let chunk of stream.values({ preventCancel: !0 })) + if (buffer = Buffer2.concat([buffer, chunk]), blankLineIndex = buffer.findIndex( + (_value, index) => buffer[index] === CR && buffer[index + 1] === LF && buffer[index + 2] === CR && buffer[index + 3] === LF + ), blankLineIndex !== -1) + break; + assert(blankLineIndex !== -1, "Expected to find blank line in HTTP message"); + let rawStatusHeaders = buffer.subarray(0, blankLineIndex).toString(), [rawStatus, ...rawHeaders] = rawStatusHeaders.split(`\r +`), statusMatch = rawStatus.match(STATUS_REGEXP); + assert( + statusMatch?.groups != null, + `Expected first line ${JSON.stringify(rawStatus)} to be HTTP status line` + ); + let { rawStatusCode, statusText } = statusMatch.groups, statusCode = parseInt(rawStatusCode), headers = rawHeaders.map((rawHeader) => { + let index = rawHeader.indexOf(":"); + return [ + rawHeader.substring(0, index), + rawHeader.substring(index + 1).trim() + ]; + }), prefix = buffer.subarray( + blankLineIndex + 4 + /* "\r\n\r\n" */ + ), { readable, writable } = new IdentityTransformStream(), writer = writable.getWriter(); + return writer.write(prefix).then(() => (writer.releaseLock(), stream.pipeTo(writable))).catch((e) => console.error("Error writing HTTP body:", e)), new Response(readable, { status: statusCode, statusText, headers }); +} +var SizingStream = class extends TransformStream { + size; + constructor() { + let sizePromise = new DeferredPromise(), size = 0; + super({ + transform(chunk, controller) { + size += chunk.byteLength, controller.enqueue(chunk); + }, + flush() { + sizePromise.resolve(size); + } + }), this.size = sizePromise; + } +}, CacheObject = class extends MiniflareDurableObject { + #warnedUsage = !1; + async #maybeWarnUsage(request) { + !this.#warnedUsage && request.cf?.miniflare?.cacheWarnUsage === !0 && (this.#warnedUsage = !0, await this.logWithLevel( + LogLevel.WARN, + "Cache operations will have no impact if you deploy to a workers.dev subdomain!" + )); + } + #storage; + get storage() { + return this.#storage ??= new KeyValueStorage(this); + } + match = async (req) => { + await this.#maybeWarnUsage(req); + let cacheKey = getCacheKey(req); + if (isSitesRequest(req)) + throw new CacheMiss(); + let resHeaders, resRanges, cached = await this.storage.get(cacheKey, ({ size, headers }) => { + resHeaders = new Headers(headers); + let contentType = resHeaders.get("Content-Type"), rangeHeader = req.headers.get("Range"); + if (rangeHeader !== null && (resRanges = parseRanges(rangeHeader, size), resRanges === void 0)) + throw new RangeNotSatisfiable(size); + return { + ranges: resRanges, + contentLength: size, + contentType: contentType ?? void 0 + }; + }); + if (cached?.metadata === void 0) + throw new CacheMiss(); + return assert(resHeaders !== void 0), resHeaders.set("CF-Cache-Status", "HIT"), resRanges ??= [], getMatchResponse(req.headers, { + status: cached.metadata.status, + headers: resHeaders, + ranges: resRanges, + body: cached.value, + totalSize: cached.metadata.size + }); + }; + put = async (req) => { + await this.#maybeWarnUsage(req); + let cacheKey = getCacheKey(req); + if (isSitesRequest(req)) + throw new CacheMiss(); + assert(req.body !== null); + let res = await parseHttpResponse(req.body), body = res.body; + assert(body !== null); + let { storable, expiration, headers } = getExpiration( + this.timers, + req, + res + ); + if (!storable) { + try { + await body.pipeTo(new WritableStream()); + } catch { + } + throw new StorageFailure(); + } + let contentLength = parseInt(res.headers.get("Content-Length")), sizePromise; + if (Number.isNaN(contentLength)) { + let stream = new SizingStream(); + body = body.pipeThrough(stream), sizePromise = stream.size; + } else + sizePromise = Promise.resolve(contentLength); + let metadata = sizePromise.then((size) => ({ + headers: Object.entries(headers), + status: res.status, + size + })); + return await this.storage.put({ + key: cacheKey, + value: body, + expiration: this.timers.now() + expiration, + metadata + }), new Response(null, { status: 204 }); + }; + delete = async (req) => { + await this.#maybeWarnUsage(req); + let cacheKey = getCacheKey(req); + if (!await this.storage.delete(cacheKey)) + throw new PurgeFailure(); + return new Response(null); + }; +}; +__decorateClass([ + GET() +], CacheObject.prototype, "match", 2), __decorateClass([ + PUT() +], CacheObject.prototype, "put", 2), __decorateClass([ + PURGE() +], CacheObject.prototype, "delete", 2); +export { + CacheObject, + parseHttpResponse +}; +//# sourceMappingURL=cache.worker.js.map diff --git a/node_modules/miniflare/dist/src/workers/cache/cache.worker.js.map b/node_modules/miniflare/dist/src/workers/cache/cache.worker.js.map new file mode 100644 index 0000000..db51edc --- /dev/null +++ b/node_modules/miniflare/dist/src/workers/cache/cache.worker.js.map @@ -0,0 +1,6 @@ +{ + "version": 3, + "sources": ["../../../../../../node_modules/http-cache-semantics/index.js", "../../../../src/workers/cache/cache.worker.ts", "../../../../src/workers/kv/constants.ts", "../../../../src/workers/cache/errors.worker.ts", "../../../../src/workers/cache/constants.ts"], + "mappings": "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", + "names": ["Buffer", "CachePolicy", "Buffer"] +} diff --git a/node_modules/miniflare/dist/src/workers/core/entry.worker.js b/node_modules/miniflare/dist/src/workers/core/entry.worker.js new file mode 100644 index 0000000..d09861b --- /dev/null +++ b/node_modules/miniflare/dist/src/workers/core/entry.worker.js @@ -0,0 +1,845 @@ +// node_modules/kleur/colors.mjs +var FORCE_COLOR, NODE_DISABLE_COLORS, NO_COLOR, TERM, isTTY = !0; +typeof process < "u" && ({ FORCE_COLOR, NODE_DISABLE_COLORS, NO_COLOR, TERM } = process.env || {}, isTTY = process.stdout && process.stdout.isTTY); +var $ = { + enabled: !NODE_DISABLE_COLORS && NO_COLOR == null && TERM !== "dumb" && (FORCE_COLOR != null && FORCE_COLOR !== "0" || isTTY) +}; +function init(x, y) { + let rgx = new RegExp(`\\x1b\\[${y}m`, "g"), open = `\x1B[${x}m`, close = `\x1B[${y}m`; + return function(txt) { + return !$.enabled || txt == null ? txt : open + (~("" + txt).indexOf(close) ? txt.replace(rgx, close + open) : txt) + close; + }; +} +var reset = init(0, 0), bold = init(1, 22), dim = init(2, 22), italic = init(3, 23), underline = init(4, 24), inverse = init(7, 27), hidden = init(8, 28), strikethrough = init(9, 29), black = init(30, 39), red = init(31, 39), green = init(32, 39), yellow = init(33, 39), blue = init(34, 39), magenta = init(35, 39), cyan = init(36, 39), white = init(37, 39), gray = init(90, 39), grey = init(90, 39), bgBlack = init(40, 49), bgRed = init(41, 49), bgGreen = init(42, 49), bgYellow = init(43, 49), bgBlue = init(44, 49), bgMagenta = init(45, 49), bgCyan = init(46, 49), bgWhite = init(47, 49); + +// packages/miniflare/src/workers/core/entry.worker.ts +import { LogLevel, SharedHeaders } from "miniflare:shared"; + +// packages/miniflare/src/workers/core/constants.ts +var CoreHeaders = { + CUSTOM_SERVICE: "MF-Custom-Service", + ORIGINAL_URL: "MF-Original-URL", + ERROR_STACK: "MF-Experimental-Error-Stack", + ROUTE_OVERRIDE: "MF-Route-Override", + // API Proxy + OP: "MF-Op", + OP_TARGET: "MF-Op-Target", + OP_KEY: "MF-Op-Key", + OP_SYNC: "MF-Op-Sync", + OP_STRINGIFIED_SIZE: "MF-Op-Stringified-Size", + OP_RESULT_TYPE: "MF-Op-Result-Type" +}, CoreBindings = { + SERVICE_LOOPBACK: "MINIFLARE_LOOPBACK", + SERVICE_USER_ROUTE_PREFIX: "MINIFLARE_USER_ROUTE_", + SERVICE_USER_FALLBACK: "MINIFLARE_USER_FALLBACK", + TEXT_CUSTOM_SERVICE: "MINIFLARE_CUSTOM_SERVICE", + TEXT_UPSTREAM_URL: "MINIFLARE_UPSTREAM_URL", + JSON_CF_BLOB: "CF_BLOB", + JSON_ROUTES: "MINIFLARE_ROUTES", + JSON_LOG_LEVEL: "MINIFLARE_LOG_LEVEL", + DATA_LIVE_RELOAD_SCRIPT: "MINIFLARE_LIVE_RELOAD_SCRIPT", + DURABLE_OBJECT_NAMESPACE_PROXY: "MINIFLARE_PROXY" +}, ProxyOps = { + // Get the target or a property of the target + GET: "GET", + // Call a method on the target + CALL: "CALL", + // Remove the strong reference to the target on the "heap", allowing it to be + // garbage collected + FREE: "FREE" +}, ProxyAddresses = { + GLOBAL: 0, + // globalThis + ENV: 1, + // env + USER_START: 2 +}; +function isFetcherFetch(targetName, key) { + return (targetName === "Fetcher" || targetName === "DurableObject") && key === "fetch"; +} +function isR2ObjectWriteHttpMetadata(targetName, key) { + return (targetName === "HeadResult" || targetName === "GetResult") && key === "writeHttpMetadata"; +} + +// packages/miniflare/src/workers/core/http.ts +var STATUS_CODES = { + 100: "Continue", + 101: "Switching Protocols", + 102: "Processing", + 103: "Early Hints", + 200: "OK", + 201: "Created", + 202: "Accepted", + 203: "Non-Authoritative Information", + 204: "No Content", + 205: "Reset Content", + 206: "Partial Content", + 207: "Multi-Status", + 208: "Already Reported", + 226: "IM Used", + 300: "Multiple Choices", + 301: "Moved Permanently", + 302: "Found", + 303: "See Other", + 304: "Not Modified", + 305: "Use Proxy", + 307: "Temporary Redirect", + 308: "Permanent Redirect", + 400: "Bad Request", + 401: "Unauthorized", + 402: "Payment Required", + 403: "Forbidden", + 404: "Not Found", + 405: "Method Not Allowed", + 406: "Not Acceptable", + 407: "Proxy Authentication Required", + 408: "Request Timeout", + 409: "Conflict", + 410: "Gone", + 411: "Length Required", + 412: "Precondition Failed", + 413: "Payload Too Large", + 414: "URI Too Long", + 415: "Unsupported Media Type", + 416: "Range Not Satisfiable", + 417: "Expectation Failed", + 418: "I'm a Teapot", + 421: "Misdirected Request", + 422: "Unprocessable Entity", + 423: "Locked", + 424: "Failed Dependency", + 425: "Too Early", + 426: "Upgrade Required", + 428: "Precondition Required", + 429: "Too Many Requests", + 431: "Request Header Fields Too Large", + 451: "Unavailable For Legal Reasons", + 500: "Internal Server Error", + 501: "Not Implemented", + 502: "Bad Gateway", + 503: "Service Unavailable", + 504: "Gateway Timeout", + 505: "HTTP Version Not Supported", + 506: "Variant Also Negotiates", + 507: "Insufficient Storage", + 508: "Loop Detected", + 509: "Bandwidth Limit Exceeded", + 510: "Not Extended", + 511: "Network Authentication Required" +}; + +// packages/miniflare/src/workers/core/routing.ts +function matchRoutes(routes, url) { + for (let route of routes) { + if (route.protocol && route.protocol !== url.protocol) + continue; + if (route.allowHostnamePrefix) { + if (!url.hostname.endsWith(route.hostname)) + continue; + } else if (url.hostname !== route.hostname) + continue; + let path = url.pathname + url.search; + if (route.allowPathSuffix) { + if (!path.startsWith(route.path)) + continue; + } else if (path !== route.path) + continue; + return route.target; + } + return null; +} + +// packages/miniflare/src/workers/core/proxy.worker.ts +import assert2 from "node:assert"; + +// node_modules/devalue/src/utils.js +var escaped = { + "<": "\\u003C", + ">": "\\u003E", + "/": "\\u002F", + "\\": "\\\\", + "\b": "\\b", + "\f": "\\f", + "\n": "\\n", + "\r": "\\r", + " ": "\\t", + "\0": "\\u0000", + "\u2028": "\\u2028", + "\u2029": "\\u2029" +}, DevalueError = class extends Error { + /** + * @param {string} message + * @param {string[]} keys + */ + constructor(message, keys) { + super(message), this.name = "DevalueError", this.path = keys.join(""); + } +}; +function is_primitive(thing) { + return Object(thing) !== thing; +} +var object_proto_names = Object.getOwnPropertyNames(Object.prototype).sort().join("\0"); +function is_plain_object(thing) { + let proto = Object.getPrototypeOf(thing); + return proto === Object.prototype || proto === null || Object.getOwnPropertyNames(proto).sort().join("\0") === object_proto_names; +} +function get_type(thing) { + return Object.prototype.toString.call(thing).slice(8, -1); +} +function stringify_string(str) { + let result = '"'; + for (let i = 0; i < str.length; i += 1) { + let char = str.charAt(i), code = char.charCodeAt(0); + if (char === '"') + result += '\\"'; + else if (char in escaped) + result += escaped[char]; + else if (code <= 31) + result += `\\u${code.toString(16).toUpperCase().padStart(4, "0")}`; + else if (code >= 55296 && code <= 57343) { + let next = str.charCodeAt(i + 1); + code <= 56319 && next >= 56320 && next <= 57343 ? result += char + str[++i] : result += `\\u${code.toString(16).toUpperCase()}`; + } else + result += char; + } + return result += '"', result; +} + +// node_modules/devalue/src/parse.js +function parse(serialized, revivers) { + return unflatten(JSON.parse(serialized), revivers); +} +function unflatten(parsed, revivers) { + if (typeof parsed == "number") + return hydrate(parsed, !0); + if (!Array.isArray(parsed) || parsed.length === 0) + throw new Error("Invalid input"); + let values = ( + /** @type {any[]} */ + parsed + ), hydrated = Array(values.length); + function hydrate(index, standalone = !1) { + if (index === -1) + return; + if (index === -3) + return NaN; + if (index === -4) + return 1 / 0; + if (index === -5) + return -1 / 0; + if (index === -6) + return -0; + if (standalone) + throw new Error("Invalid input"); + if (index in hydrated) + return hydrated[index]; + let value = values[index]; + if (!value || typeof value != "object") + hydrated[index] = value; + else if (Array.isArray(value)) + if (typeof value[0] == "string") { + let type = value[0], reviver = revivers?.[type]; + if (reviver) + return hydrated[index] = reviver(hydrate(value[1])); + switch (type) { + case "Date": + hydrated[index] = new Date(value[1]); + break; + case "Set": + let set = /* @__PURE__ */ new Set(); + hydrated[index] = set; + for (let i = 1; i < value.length; i += 1) + set.add(hydrate(value[i])); + break; + case "Map": + let map = /* @__PURE__ */ new Map(); + hydrated[index] = map; + for (let i = 1; i < value.length; i += 2) + map.set(hydrate(value[i]), hydrate(value[i + 1])); + break; + case "RegExp": + hydrated[index] = new RegExp(value[1], value[2]); + break; + case "Object": + hydrated[index] = Object(value[1]); + break; + case "BigInt": + hydrated[index] = BigInt(value[1]); + break; + case "null": + let obj = /* @__PURE__ */ Object.create(null); + hydrated[index] = obj; + for (let i = 1; i < value.length; i += 2) + obj[value[i]] = hydrate(value[i + 1]); + break; + default: + throw new Error(`Unknown type ${type}`); + } + } else { + let array = new Array(value.length); + hydrated[index] = array; + for (let i = 0; i < value.length; i += 1) { + let n = value[i]; + n !== -2 && (array[i] = hydrate(n)); + } + } + else { + let object = {}; + hydrated[index] = object; + for (let key in value) { + let n = value[key]; + object[key] = hydrate(n); + } + } + return hydrated[index]; + } + return hydrate(0); +} + +// node_modules/devalue/src/stringify.js +function stringify(value, reducers) { + let stringified = [], indexes = /* @__PURE__ */ new Map(), custom = []; + for (let key in reducers) + custom.push({ key, fn: reducers[key] }); + let keys = [], p = 0; + function flatten(thing) { + if (typeof thing == "function") + throw new DevalueError("Cannot stringify a function", keys); + if (indexes.has(thing)) + return indexes.get(thing); + if (thing === void 0) + return -1; + if (Number.isNaN(thing)) + return -3; + if (thing === 1 / 0) + return -4; + if (thing === -1 / 0) + return -5; + if (thing === 0 && 1 / thing < 0) + return -6; + let index2 = p++; + indexes.set(thing, index2); + for (let { key, fn } of custom) { + let value2 = fn(thing); + if (value2) + return stringified[index2] = `["${key}",${flatten(value2)}]`, index2; + } + let str = ""; + if (is_primitive(thing)) + str = stringify_primitive(thing); + else + switch (get_type(thing)) { + case "Number": + case "String": + case "Boolean": + str = `["Object",${stringify_primitive(thing)}]`; + break; + case "BigInt": + str = `["BigInt",${thing}]`; + break; + case "Date": + str = `["Date","${thing.toISOString()}"]`; + break; + case "RegExp": + let { source, flags } = thing; + str = flags ? `["RegExp",${stringify_string(source)},"${flags}"]` : `["RegExp",${stringify_string(source)}]`; + break; + case "Array": + str = "["; + for (let i = 0; i < thing.length; i += 1) + i > 0 && (str += ","), i in thing ? (keys.push(`[${i}]`), str += flatten(thing[i]), keys.pop()) : str += -2; + str += "]"; + break; + case "Set": + str = '["Set"'; + for (let value2 of thing) + str += `,${flatten(value2)}`; + str += "]"; + break; + case "Map": + str = '["Map"'; + for (let [key, value2] of thing) + keys.push( + `.get(${is_primitive(key) ? stringify_primitive(key) : "..."})` + ), str += `,${flatten(key)},${flatten(value2)}`; + str += "]"; + break; + default: + if (!is_plain_object(thing)) + throw new DevalueError( + "Cannot stringify arbitrary non-POJOs", + keys + ); + if (Object.getOwnPropertySymbols(thing).length > 0) + throw new DevalueError( + "Cannot stringify POJOs with symbolic keys", + keys + ); + if (Object.getPrototypeOf(thing) === null) { + str = '["null"'; + for (let key in thing) + keys.push(`.${key}`), str += `,${stringify_string(key)},${flatten(thing[key])}`, keys.pop(); + str += "]"; + } else { + str = "{"; + let started = !1; + for (let key in thing) + started && (str += ","), started = !0, keys.push(`.${key}`), str += `${stringify_string(key)}:${flatten(thing[key])}`, keys.pop(); + str += "}"; + } + } + return stringified[index2] = str, index2; + } + let index = flatten(value); + return index < 0 ? `${index}` : `[${stringified.join(",")}]`; +} +function stringify_primitive(thing) { + let type = typeof thing; + return type === "string" ? stringify_string(thing) : thing instanceof String ? stringify_string(thing.toString()) : thing === void 0 ? (-1).toString() : thing === 0 && 1 / thing < 0 ? (-6).toString() : type === "bigint" ? `["BigInt","${thing}"]` : String(thing); +} + +// packages/miniflare/src/workers/core/proxy.worker.ts +import { readPrefix, reduceError } from "miniflare:shared"; + +// packages/miniflare/src/workers/core/devalue.ts +import assert from "node:assert"; +import { Buffer } from "node:buffer"; +var ALLOWED_ARRAY_BUFFER_VIEW_CONSTRUCTORS = [ + DataView, + Int8Array, + Uint8Array, + Uint8ClampedArray, + Int16Array, + Uint16Array, + Int32Array, + Uint32Array, + Float32Array, + Float64Array, + BigInt64Array, + BigUint64Array +], ALLOWED_ERROR_CONSTRUCTORS = [ + EvalError, + RangeError, + ReferenceError, + SyntaxError, + TypeError, + URIError, + Error + // `Error` last so more specific error subclasses preferred +], structuredSerializableReducers = { + ArrayBuffer(value) { + if (value instanceof ArrayBuffer) + return [Buffer.from(value).toString("base64")]; + }, + ArrayBufferView(value) { + if (ArrayBuffer.isView(value)) + return [ + value.constructor.name, + value.buffer, + value.byteOffset, + value.byteLength + ]; + }, + Error(value) { + for (let ctor of ALLOWED_ERROR_CONSTRUCTORS) + if (value instanceof ctor && value.name === ctor.name) + return [value.name, value.message, value.stack, value.cause]; + if (value instanceof Error) + return ["Error", value.message, value.stack, value.cause]; + } +}, structuredSerializableRevivers = { + ArrayBuffer(value) { + assert(Array.isArray(value)); + let [encoded] = value; + assert(typeof encoded == "string"); + let view = Buffer.from(encoded, "base64"); + return view.buffer.slice( + view.byteOffset, + view.byteOffset + view.byteLength + ); + }, + ArrayBufferView(value) { + assert(Array.isArray(value)); + let [name, buffer, byteOffset, byteLength] = value; + assert(typeof name == "string"), assert(buffer instanceof ArrayBuffer), assert(typeof byteOffset == "number"), assert(typeof byteLength == "number"); + let ctor = globalThis[name]; + assert(ALLOWED_ARRAY_BUFFER_VIEW_CONSTRUCTORS.includes(ctor)); + let length = byteLength; + return "BYTES_PER_ELEMENT" in ctor && (length /= ctor.BYTES_PER_ELEMENT), new ctor(buffer, byteOffset, length); + }, + Error(value) { + assert(Array.isArray(value)); + let [name, message, stack, cause] = value; + assert(typeof name == "string"), assert(typeof message == "string"), assert(stack === void 0 || typeof stack == "string"); + let ctor = globalThis[name]; + assert(ALLOWED_ERROR_CONSTRUCTORS.includes(ctor)); + let error = new ctor(message, { cause }); + return error.stack = stack, error; + } +}; +function createHTTPReducers(impl) { + return { + Headers(val) { + if (val instanceof impl.Headers) + return Object.fromEntries(val); + }, + Request(val) { + if (val instanceof impl.Request) + return [val.method, val.url, val.headers, val.cf, val.body]; + }, + Response(val) { + if (val instanceof impl.Response) + return [val.status, val.statusText, val.headers, val.cf, val.body]; + } + }; +} +function createHTTPRevivers(impl) { + return { + Headers(value) { + return assert(typeof value == "object" && value !== null), new impl.Headers(value); + }, + Request(value) { + assert(Array.isArray(value)); + let [method, url, headers, cf, body] = value; + return assert(typeof method == "string"), assert(typeof url == "string"), assert(headers instanceof impl.Headers), assert(body === null || impl.isReadableStream(body)), new impl.Request(url, { + method, + headers, + cf, + // @ts-expect-error `duplex` is not required by `workerd` yet + duplex: body === null ? void 0 : "half", + body + }); + }, + Response(value) { + assert(Array.isArray(value)); + let [status, statusText, headers, cf, body] = value; + return assert(typeof status == "number"), assert(typeof statusText == "string"), assert(headers instanceof impl.Headers), assert(body === null || impl.isReadableStream(body)), new impl.Response(body, { + status, + statusText, + headers, + cf + }); + } + }; +} +function stringifyWithStreams(impl, value, reducers, allowUnbufferedStream) { + let unbufferedStream, bufferPromises = [], streamReducers = { + ReadableStream(value2) { + if (impl.isReadableStream(value2)) + return allowUnbufferedStream && unbufferedStream === void 0 ? unbufferedStream = value2 : bufferPromises.push(impl.bufferReadableStream(value2)), !0; + }, + Blob(value2) { + if (value2 instanceof impl.Blob) + return bufferPromises.push(value2.arrayBuffer()), !0; + }, + ...reducers + }, stringifiedValue = stringify(value, streamReducers); + return bufferPromises.length === 0 ? { value: stringifiedValue, unbufferedStream } : Promise.all(bufferPromises).then((streamBuffers) => (streamReducers.ReadableStream = function(value2) { + if (impl.isReadableStream(value2)) + return value2 === unbufferedStream ? !0 : streamBuffers.shift(); + }, streamReducers.Blob = function(value2) { + if (value2 instanceof impl.Blob) { + let array = [streamBuffers.shift(), value2.type]; + return value2 instanceof impl.File && array.push(value2.name, value2.lastModified), array; + } + }, { value: stringify(value, streamReducers), unbufferedStream })); +} +function parseWithReadableStreams(impl, stringified, revivers) { + let streamRevivers = { + ReadableStream(value) { + return value === !0 ? (assert(stringified.unbufferedStream !== void 0), stringified.unbufferedStream) : (assert(value instanceof ArrayBuffer), impl.unbufferReadableStream(value)); + }, + Blob(value) { + if (assert(Array.isArray(value)), value.length === 2) { + let [buffer, type] = value; + assert(buffer instanceof ArrayBuffer), assert(typeof type == "string"); + let opts = {}; + return type !== "" && (opts.type = type), new impl.Blob([buffer], opts); + } else { + assert(value.length === 4); + let [buffer, type, name, lastModified] = value; + assert(buffer instanceof ArrayBuffer), assert(typeof type == "string"), assert(typeof name == "string"), assert(typeof lastModified == "number"); + let opts = { lastModified }; + return type !== "" && (opts.type = type), new impl.File([buffer], name, opts); + } + }, + ...revivers + }; + return parse(stringified.value, streamRevivers); +} + +// packages/miniflare/src/workers/core/proxy.worker.ts +var ENCODER = new TextEncoder(), DECODER = new TextDecoder(), WORKERS_PLATFORM_IMPL = { + Blob, + File, + Headers, + Request, + Response, + isReadableStream(value) { + return value instanceof ReadableStream; + }, + bufferReadableStream(stream) { + return new Response(stream).arrayBuffer(); + }, + unbufferReadableStream(buffer) { + let body = new Response(buffer).body; + return assert2(body !== null), body; + } +}, objectProtoNames = Object.getOwnPropertyNames(Object.prototype).sort().join("\0"); +function isPlainObject(value) { + let proto = Object.getPrototypeOf(value); + return proto === Object.prototype || proto === null || Object.getOwnPropertyNames(proto).sort().join("\0") === objectProtoNames; +} +function getType(value) { + return Object.prototype.toString.call(value).slice(8, -1); +} +var ProxyServer = class { + // On the first `fetch()`, start a `setInterval()` to keep this Durable Object + // and its heap alive. This is required to ensure heap references stay valid + // for the lifetime of this `workerd` process (except it isn't since `workerd` + // doesn't evict Durable Objects yet :P, but it probably will soon). + anchorInterval; + nextHeapAddress = ProxyAddresses.USER_START; + heap = /* @__PURE__ */ new Map(); + reducers = { + ...structuredSerializableReducers, + ...createHTTPReducers(WORKERS_PLATFORM_IMPL), + // Corresponding revivers in `ProxyClient` + // `Native` reducer *MUST* be applied last + Native: (value) => { + let type = getType(value); + if (type === "Object" && !isPlainObject(value) || type === "Promise") { + let address = this.nextHeapAddress++; + return this.heap.set(address, value), assert2(typeof value == "object" && value !== null), [address, value.constructor.name]; + } + } + }; + revivers = { + ...structuredSerializableRevivers, + ...createHTTPRevivers(WORKERS_PLATFORM_IMPL), + // Corresponding reducers in `ProxyClient` + Native: (value) => { + assert2(Array.isArray(value)); + let [address] = value; + assert2(typeof address == "number"); + let heapValue = this.heap.get(address); + return assert2(heapValue !== void 0), heapValue instanceof Promise && this.heap.delete(address), heapValue; + } + }; + nativeReviver = { Native: this.revivers.Native }; + constructor(_state, env) { + this.heap.set(ProxyAddresses.GLOBAL, globalThis), this.heap.set(ProxyAddresses.ENV, env); + } + async fetch(request) { + this.anchorInterval ??= setInterval(() => { + }, 1e4); + try { + return await this.#fetch(request); + } catch (e) { + let error = reduceError(e); + return Response.json(error, { + status: 500, + headers: { [CoreHeaders.ERROR_STACK]: "true" } + }); + } + } + async #fetch(request) { + let opHeader = request.headers.get(CoreHeaders.OP), targetHeader = request.headers.get(CoreHeaders.OP_TARGET), keyHeader = request.headers.get(CoreHeaders.OP_KEY), allowAsync = request.headers.get(CoreHeaders.OP_SYNC) === null, argsSizeHeader = request.headers.get(CoreHeaders.OP_STRINGIFIED_SIZE), contentLengthHeader = request.headers.get("Content-Length"); + if (targetHeader === null) + return new Response(null, { status: 400 }); + if (opHeader === ProxyOps.FREE) { + let targetAddress = parseInt(targetHeader); + return assert2(!Number.isNaN(targetAddress)), this.heap.delete(targetAddress), new Response(null, { status: 204 }); + } + let target = parse( + targetHeader, + this.nativeReviver + ), targetName = target.constructor.name, status = 200, result, unbufferedRest; + if (opHeader === ProxyOps.GET) { + if (result = keyHeader === null ? target : target[keyHeader], typeof result == "function") + return new Response(null, { + status: 204, + headers: { [CoreHeaders.OP_RESULT_TYPE]: "Function" } + }); + } else if (opHeader === ProxyOps.CALL) { + if (keyHeader === null) + return new Response(null, { status: 400 }); + let func = target[keyHeader]; + if (assert2(typeof func == "function"), isFetcherFetch(targetName, keyHeader)) + return request = new Request(request), request.headers.delete(CoreHeaders.OP), request.headers.delete(CoreHeaders.OP_TARGET), request.headers.delete(CoreHeaders.OP_KEY), func.call(target, request); + let args; + if (argsSizeHeader === null || argsSizeHeader === contentLengthHeader) + args = parseWithReadableStreams( + WORKERS_PLATFORM_IMPL, + { value: await request.text() }, + this.revivers + ); + else { + let argsSize = parseInt(argsSizeHeader); + assert2(!Number.isNaN(argsSize)), assert2(request.body !== null); + let [encodedArgs, rest] = await readPrefix(request.body, argsSize); + unbufferedRest = rest; + let stringifiedArgs = DECODER.decode(encodedArgs); + args = parseWithReadableStreams( + WORKERS_PLATFORM_IMPL, + { value: stringifiedArgs, unbufferedStream: rest }, + this.revivers + ); + } + assert2(Array.isArray(args)); + try { + result = func.apply(target, args), isR2ObjectWriteHttpMetadata(targetName, keyHeader) && (result = args[0]); + } catch (e) { + status = 500, result = e; + } + } else + return new Response(null, { status: 404 }); + let headers = new Headers(); + if (allowAsync && result instanceof Promise) { + try { + result = await result; + } catch (e) { + status = 500, result = e; + } + headers.append(CoreHeaders.OP_RESULT_TYPE, "Promise"); + } + if (unbufferedRest !== void 0 && !unbufferedRest.locked) + try { + await unbufferedRest.pipeTo(new WritableStream()); + } catch { + } + if (result instanceof ReadableStream) + return headers.append(CoreHeaders.OP_RESULT_TYPE, "ReadableStream"), new Response(result, { status, headers }); + { + let stringified = await stringifyWithStreams( + WORKERS_PLATFORM_IMPL, + result, + this.reducers, + /* allowUnbufferedStream */ + allowAsync + ); + if (stringified.unbufferedStream === void 0) + return new Response(stringified.value, { status, headers }); + { + let body = new IdentityTransformStream(), encodedValue = ENCODER.encode(stringified.value), encodedSize = encodedValue.byteLength.toString(); + return headers.set(CoreHeaders.OP_STRINGIFIED_SIZE, encodedSize), this.#writeWithUnbufferedStream( + body.writable, + encodedValue, + stringified.unbufferedStream + ), new Response(body.readable, { status, headers }); + } + } + } + async #writeWithUnbufferedStream(writable, encodedValue, unbufferedStream) { + let writer = writable.getWriter(); + await writer.write(encodedValue), writer.releaseLock(), await unbufferedStream.pipeTo(writable); + } +}; + +// packages/miniflare/src/workers/core/entry.worker.ts +function getUserRequest(request, env) { + let originalUrl = request.headers.get(CoreHeaders.ORIGINAL_URL), upstreamUrl = env[CoreBindings.TEXT_UPSTREAM_URL], url = new URL(originalUrl ?? request.url); + if (upstreamUrl !== void 0) { + let path = url.pathname + url.search; + path.startsWith("/") && (path = path.substring(1)), url = new URL(path, upstreamUrl); + } + return request = new Request(url, request), request.cf === void 0 && (request = new Request(request, { cf: env[CoreBindings.JSON_CF_BLOB] })), request.headers.delete(CoreHeaders.ORIGINAL_URL), request; +} +function getTargetService(request, url, env) { + let service = env[CoreBindings.SERVICE_USER_FALLBACK], override = request.headers.get(CoreHeaders.ROUTE_OVERRIDE); + request.headers.delete(CoreHeaders.ROUTE_OVERRIDE); + let route = override ?? matchRoutes(env[CoreBindings.JSON_ROUTES], url); + return route !== null && (service = env[`${CoreBindings.SERVICE_USER_ROUTE_PREFIX}${route}`]), service; +} +function maybePrettifyError(request, response, env) { + if (response.status !== 500 || response.headers.get(CoreHeaders.ERROR_STACK) === null) + return response; + let accept = request.headers.get("Accept"), userAgent = request.headers.get("User-Agent"), headers = new Headers(); + return accept !== null && headers.set("Accept", accept), userAgent !== null && headers.set("User-Agent", userAgent), env[CoreBindings.SERVICE_LOOPBACK].fetch( + "http://localhost/core/error", + { + method: "POST", + headers, + body: response.body + } + ); +} +function maybeInjectLiveReload(response, env, ctx) { + let liveReloadScript = env[CoreBindings.DATA_LIVE_RELOAD_SCRIPT]; + if (liveReloadScript === void 0 || !response.headers.get("Content-Type")?.toLowerCase().includes("text/html")) + return response; + let headers = new Headers(response.headers), contentLength = parseInt(headers.get("content-length")); + isNaN(contentLength) || headers.set( + "content-length", + String(contentLength + liveReloadScript.byteLength) + ); + let { readable, writable } = new IdentityTransformStream(); + return ctx.waitUntil( + (async () => { + await response.body?.pipeTo(writable, { preventClose: !0 }); + let writer = writable.getWriter(); + await writer.write(liveReloadScript), await writer.close(); + })() + ), new Response(readable, { + status: response.status, + statusText: response.statusText, + headers + }); +} +function colourFromHTTPStatus(status) { + return 200 <= status && status < 300 ? green : 400 <= status && status < 500 ? yellow : 500 <= status ? red : blue; +} +function maybeLogRequest(req, res, env, ctx, startTime) { + if (env[CoreBindings.JSON_LOG_LEVEL] < LogLevel.INFO) + return; + let url = new URL(req.url), statusText = (res.statusText.trim() || STATUS_CODES[res.status]) ?? "", lines = [ + `${bold(req.method)} ${url.pathname} `, + colourFromHTTPStatus(res.status)(`${bold(res.status)} ${statusText} `), + grey(`(${Date.now() - startTime}ms)`) + ], message = reset(lines.join("")); + ctx.waitUntil( + env[CoreBindings.SERVICE_LOOPBACK].fetch("http://localhost/core/log", { + method: "POST", + headers: { [SharedHeaders.LOG_LEVEL]: LogLevel.INFO.toString() }, + body: message + }) + ); +} +function handleProxy(request, env) { + let ns = env[CoreBindings.DURABLE_OBJECT_NAMESPACE_PROXY], id = ns.idFromName(""); + return ns.get(id).fetch(request); +} +async function handleScheduled(params, service) { + let time = params.get("time"), scheduledTime = time ? new Date(parseInt(time)) : void 0, cron = params.get("cron") ?? void 0, result = await service.scheduled({ + scheduledTime, + cron + }); + return new Response(result.outcome, { + status: result.outcome === "ok" ? 200 : 500 + }); +} +var entry_worker_default = { + async fetch(request, env, ctx) { + let startTime = Date.now(); + if (request.headers.get(CoreHeaders.OP) !== null) + return handleProxy(request, env); + let isDispatchFetch = request.headers.get(CoreHeaders.ORIGINAL_URL) !== null; + request = getUserRequest(request, env); + let url = new URL(request.url), service = getTargetService(request, url, env); + if (service === void 0) + return new Response("No entrypoint worker found", { status: 404 }); + try { + if (url.pathname === "/cdn-cgi/mf/scheduled") + return await handleScheduled(url.searchParams, service); + let response = await service.fetch(request); + return isDispatchFetch || (response = await maybePrettifyError(request, response, env)), response = maybeInjectLiveReload(response, env, ctx), maybeLogRequest(request, response, env, ctx, startTime), response; + } catch (e) { + return new Response(e?.stack ?? String(e), { status: 500 }); + } + } +}; +export { + ProxyServer, + entry_worker_default as default +}; +//# sourceMappingURL=entry.worker.js.map diff --git a/node_modules/miniflare/dist/src/workers/core/entry.worker.js.map b/node_modules/miniflare/dist/src/workers/core/entry.worker.js.map new file mode 100644 index 0000000..c7de168 --- /dev/null +++ b/node_modules/miniflare/dist/src/workers/core/entry.worker.js.map @@ -0,0 +1,6 @@ +{ + "version": 3, + "sources": ["../../../../../../node_modules/kleur/colors.mjs", "../../../../src/workers/core/entry.worker.ts", "../../../../src/workers/core/constants.ts", "../../../../src/workers/core/http.ts", "../../../../src/workers/core/routing.ts", "../../../../src/workers/core/proxy.worker.ts", "../../../../../../node_modules/devalue/src/utils.js", "../../../../../../node_modules/devalue/src/parse.js", "../../../../../../node_modules/devalue/src/stringify.js", "../../../../src/workers/core/devalue.ts"], + "mappings": "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", + "names": ["assert", "index", "value", "value", "assert"] +} diff --git a/node_modules/miniflare/dist/src/workers/d1/database.worker.js b/node_modules/miniflare/dist/src/workers/d1/database.worker.js new file mode 100644 index 0000000..c2fbc92 --- /dev/null +++ b/node_modules/miniflare/dist/src/workers/d1/database.worker.js @@ -0,0 +1,113 @@ +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __decorateClass = (decorators, target, key, kind) => { + for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--) + (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result); + return kind && result && __defProp(target, key, result), result; +}; + +// packages/miniflare/src/workers/d1/database.worker.ts +import assert from "node:assert"; +import { + HttpError, + MiniflareDurableObject, + POST, + all, + get, + viewToBuffer +} from "miniflare:shared"; +import { z } from "miniflare:zod"; +var D1ValueSchema = z.union([ + z.number(), + z.string(), + z.null(), + z.number().array() +]), D1QuerySchema = z.object({ + sql: z.string(), + params: z.array(D1ValueSchema).nullable().optional() +}), D1QueriesSchema = z.union([D1QuerySchema, z.array(D1QuerySchema)]), served_by = "miniflare.db", D1Error = class extends HttpError { + constructor(cause) { + super(500); + this.cause = cause; + } + toResponse() { + let response = { success: !1, error: typeof this.cause == "object" && this.cause !== null && "message" in this.cause && typeof this.cause.message == "string" ? this.cause.message : String(this.cause) }; + return Response.json(response); + } +}; +function convertParams(params) { + return (params ?? []).map( + (param) => ( + // If `param` is an array, assume it's a byte array + Array.isArray(param) ? viewToBuffer(new Uint8Array(param)) : param + ) + ); +} +function convertResults(rows) { + return rows.map( + (row) => Object.fromEntries( + Object.entries(row).map(([key, value]) => { + let normalised; + return value instanceof ArrayBuffer ? normalised = Array.from(new Uint8Array(value)) : normalised = value, [key, normalised]; + }) + ) + ); +} +function sqlStmts(db) { + return { + getChanges: db.prepare( + "SELECT total_changes() AS totalChanges, last_insert_rowid() AS lastRowId" + ) + }; +} +var D1DatabaseObject = class extends MiniflareDurableObject { + #stmts; + constructor(state, env) { + super(state, env), this.#stmts = sqlStmts(this.db); + } + #changes() { + let changes = get(this.#stmts.getChanges()); + return assert(changes !== void 0), changes; + } + #query = (query) => { + let beforeTime = performance.now(), beforeSize = this.state.storage.sql.databaseSize, beforeChanges = this.#changes(), params = convertParams(query.params ?? []), cursor = this.db.prepare(query.sql)(...params), results = convertResults(all(cursor)), afterTime = performance.now(), afterSize = this.state.storage.sql.databaseSize, afterChanges = this.#changes(), duration = afterTime - beforeTime, changes = afterChanges.totalChanges - beforeChanges.totalChanges, hasChanges = changes !== 0, lastRowChanged = afterChanges.lastRowId !== beforeChanges.lastRowId, changed = hasChanges || lastRowChanged || afterSize !== beforeSize; + return { + success: !0, + results, + meta: { + served_by, + duration, + changes, + last_row_id: afterChanges.lastRowId, + changed_db: changed, + size_after: afterSize + } + }; + }; + #txn(queries) { + if (queries = queries.filter( + (query) => query.sql.replace(/^\s+--.*/gm, "").trim().length > 0 + ), queries.length === 0) { + let error = new Error("No SQL statements detected."); + throw new D1Error(error); + } + try { + return this.state.storage.transactionSync(() => queries.map(this.#query)); + } catch (e) { + throw new D1Error(e); + } + } + queryExecute = async (req) => { + let queries = D1QueriesSchema.parse(await req.json()); + return Array.isArray(queries) || (queries = [queries]), Response.json(this.#txn(queries)); + }; +}; +__decorateClass([ + POST("/query"), + POST("/execute") +], D1DatabaseObject.prototype, "queryExecute", 2); +export { + D1DatabaseObject, + D1Error +}; +//# sourceMappingURL=database.worker.js.map diff --git a/node_modules/miniflare/dist/src/workers/d1/database.worker.js.map b/node_modules/miniflare/dist/src/workers/d1/database.worker.js.map new file mode 100644 index 0000000..87681a5 --- /dev/null +++ b/node_modules/miniflare/dist/src/workers/d1/database.worker.js.map @@ -0,0 +1,6 @@ +{ + "version": 3, + "sources": ["../../../../src/workers/d1/database.worker.ts"], + "mappings": "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", + "names": [] +} diff --git a/node_modules/miniflare/dist/src/workers/kv/namespace.worker.js b/node_modules/miniflare/dist/src/workers/kv/namespace.worker.js new file mode 100644 index 0000000..98e414a --- /dev/null +++ b/node_modules/miniflare/dist/src/workers/kv/namespace.worker.js @@ -0,0 +1,254 @@ +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __decorateClass = (decorators, target, key, kind) => { + for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--) + (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result); + return kind && result && __defProp(target, key, result), result; +}; + +// packages/miniflare/src/workers/kv/namespace.worker.ts +import assert from "node:assert"; +import { + DELETE, + DeferredPromise, + GET, + HttpError as HttpError2, + KeyValueStorage, + MiniflareDurableObject, + PUT, + maybeApply +} from "miniflare:shared"; + +// packages/miniflare/src/workers/kv/constants.ts +import { testRegExps } from "miniflare:shared"; +var KVLimits = { + MIN_CACHE_TTL: 60, + MAX_LIST_KEYS: 1e3, + MAX_KEY_SIZE: 512, + MAX_VALUE_SIZE: 25 * 1024 * 1024, + MAX_VALUE_SIZE_TEST: 1024, + MAX_METADATA_SIZE: 1024 +}, KVParams = { + URL_ENCODED: "urlencoded", + CACHE_TTL: "cache_ttl", + EXPIRATION: "expiration", + EXPIRATION_TTL: "expiration_ttl", + LIST_LIMIT: "key_count_limit", + LIST_PREFIX: "prefix", + LIST_CURSOR: "cursor" +}, KVHeaders = { + EXPIRATION: "CF-Expiration", + METADATA: "CF-KV-Metadata" +}; + +// packages/miniflare/src/workers/kv/validator.worker.ts +import { Buffer as Buffer2 } from "node:buffer"; +import { HttpError } from "miniflare:shared"; +function decodeKey({ key }, query) { + if (query.get(KVParams.URL_ENCODED)?.toLowerCase() !== "true") + return key; + try { + return decodeURIComponent(key); + } catch (e) { + throw e instanceof URIError ? new HttpError(400, "Could not URL-decode key name") : e; + } +} +function validateKey(key) { + if (key === "") + throw new HttpError(400, "Key names must not be empty"); + if (key === "." || key === "..") + throw new HttpError( + 400, + `Illegal key name "${key}". Please use a different name.` + ); + validateKeyLength(key); +} +function validateKeyLength(key) { + let keyLength = Buffer2.byteLength(key); + if (keyLength > KVLimits.MAX_KEY_SIZE) + throw new HttpError( + 414, + `UTF-8 encoded length of ${keyLength} exceeds key length limit of ${KVLimits.MAX_KEY_SIZE}.` + ); +} +function validateGetOptions(key, options) { + validateKey(key); + let cacheTtl = options?.cacheTtl; + if (cacheTtl !== void 0 && (isNaN(cacheTtl) || cacheTtl < KVLimits.MIN_CACHE_TTL)) + throw new HttpError( + 400, + `Invalid ${KVParams.CACHE_TTL} of ${cacheTtl}. Cache TTL must be at least ${KVLimits.MIN_CACHE_TTL}.` + ); +} +function validatePutOptions(key, options) { + let { now, rawExpiration, rawExpirationTtl, rawMetadata } = options; + validateKey(key); + let expiration; + if (rawExpirationTtl !== null) { + let expirationTtl = parseInt(rawExpirationTtl); + if (Number.isNaN(expirationTtl) || expirationTtl <= 0) + throw new HttpError( + 400, + `Invalid ${KVParams.EXPIRATION_TTL} of ${rawExpirationTtl}. Please specify integer greater than 0.` + ); + if (expirationTtl < KVLimits.MIN_CACHE_TTL) + throw new HttpError( + 400, + `Invalid ${KVParams.EXPIRATION_TTL} of ${rawExpirationTtl}. Expiration TTL must be at least ${KVLimits.MIN_CACHE_TTL}.` + ); + expiration = now + expirationTtl; + } else if (rawExpiration !== null) { + if (expiration = parseInt(rawExpiration), Number.isNaN(expiration) || expiration <= now) + throw new HttpError( + 400, + `Invalid ${KVParams.EXPIRATION} of ${rawExpiration}. Please specify integer greater than the current number of seconds since the UNIX epoch.` + ); + if (expiration < now + KVLimits.MIN_CACHE_TTL) + throw new HttpError( + 400, + `Invalid ${KVParams.EXPIRATION} of ${rawExpiration}. Expiration times must be at least ${KVLimits.MIN_CACHE_TTL} seconds in the future.` + ); + } + let metadata; + if (rawMetadata !== null) { + let metadataLength = Buffer2.byteLength(rawMetadata); + if (metadataLength > KVLimits.MAX_METADATA_SIZE) + throw new HttpError( + 413, + `Metadata length of ${metadataLength} exceeds limit of ${KVLimits.MAX_METADATA_SIZE}.` + ); + metadata = JSON.parse(rawMetadata); + } + return { expiration, metadata }; +} +function decodeListOptions(url) { + let limitParam = url.searchParams.get(KVParams.LIST_LIMIT), limit = limitParam === null ? KVLimits.MAX_LIST_KEYS : parseInt(limitParam), prefix = url.searchParams.get(KVParams.LIST_PREFIX) ?? void 0, cursor = url.searchParams.get(KVParams.LIST_CURSOR) ?? void 0; + return { limit, prefix, cursor }; +} +function validateListOptions(options) { + let limit = options.limit; + if (limit !== void 0) { + if (isNaN(limit) || limit < 1) + throw new HttpError( + 400, + `Invalid ${KVParams.LIST_LIMIT} of ${limit}. Please specify an integer greater than 0.` + ); + if (limit > KVLimits.MAX_LIST_KEYS) + throw new HttpError( + 400, + `Invalid ${KVParams.LIST_LIMIT} of ${limit}. Please specify an integer less than ${KVLimits.MAX_LIST_KEYS}.` + ); + } + let prefix = options.prefix; + prefix != null && validateKeyLength(prefix); +} + +// packages/miniflare/src/workers/kv/namespace.worker.ts +function createMaxValueSizeError(length, maxValueSize) { + return new HttpError2( + 413, + `Value length of ${length} exceeds limit of ${maxValueSize}.` + ); +} +var MaxLengthStream = class extends TransformStream { + signal; + length; + constructor(maxLength) { + let abortController = new AbortController(), lengthPromise = new DeferredPromise(), length = 0; + super({ + transform(chunk, controller) { + length += chunk.byteLength, length <= maxLength ? controller.enqueue(chunk) : abortController.signal.aborted || abortController.abort(); + }, + flush() { + lengthPromise.resolve(length); + } + }), this.signal = abortController.signal, this.length = lengthPromise; + } +}; +function millisToSeconds(millis) { + return Math.floor(millis / 1e3); +} +function secondsToMillis(seconds) { + return seconds * 1e3; +} +var KVNamespaceObject = class extends MiniflareDurableObject { + #storage; + get storage() { + return this.#storage ??= new KeyValueStorage(this); + } + get = async (req, params, url) => { + let key = decodeKey(params, url.searchParams), cacheTtlParam = url.searchParams.get(KVParams.CACHE_TTL), cacheTtl = cacheTtlParam === null ? void 0 : parseInt(cacheTtlParam); + validateGetOptions(key, { cacheTtl }); + let entry = await this.storage.get(key); + if (entry === null) + throw new HttpError2(404, "Not Found"); + let headers = new Headers(); + return entry.expiration !== void 0 && headers.set( + KVHeaders.EXPIRATION, + millisToSeconds(entry.expiration).toString() + ), entry.metadata !== void 0 && headers.set(KVHeaders.METADATA, JSON.stringify(entry.metadata)), new Response(entry.value, { headers }); + }; + put = async (req, params, url) => { + let key = decodeKey(params, url.searchParams), rawExpiration = url.searchParams.get(KVParams.EXPIRATION), rawExpirationTtl = url.searchParams.get(KVParams.EXPIRATION_TTL), rawMetadata = req.headers.get(KVHeaders.METADATA), now = millisToSeconds(this.timers.now()), { expiration, metadata } = validatePutOptions(key, { + now, + rawExpiration, + rawExpirationTtl, + rawMetadata + }), value = req.body; + assert(value !== null); + let contentLength = parseInt(req.headers.get("Content-Length")), valueLengthHint = Number.isNaN(contentLength) ? void 0 : contentLength, maxValueSize = this.beingTested ? KVLimits.MAX_VALUE_SIZE_TEST : KVLimits.MAX_VALUE_SIZE, maxLengthStream; + if (valueLengthHint !== void 0 && valueLengthHint > maxValueSize) + throw createMaxValueSizeError(valueLengthHint, maxValueSize); + maxLengthStream = new MaxLengthStream(maxValueSize), value = value.pipeThrough(maxLengthStream); + try { + await this.storage.put({ + key, + value, + expiration: maybeApply(secondsToMillis, expiration), + metadata, + signal: maxLengthStream?.signal + }); + } catch (e) { + if (typeof e == "object" && e !== null && "name" in e && e.name === "AbortError") { + assert(maxLengthStream !== void 0); + let length = await maxLengthStream.length; + throw createMaxValueSizeError(length, maxValueSize); + } else + throw e; + } + return new Response(); + }; + delete = async (req, params, url) => { + let key = decodeKey(params, url.searchParams); + return validateKey(key), await this.storage.delete(key), new Response(); + }; + list = async (req, params, url) => { + let options = decodeListOptions(url); + validateListOptions(options); + let res = await this.storage.list(options), keys = res.keys.map((key) => ({ + name: key.key, + expiration: maybeApply(millisToSeconds, key.expiration), + // workerd expects metadata to be a JSON-serialised string + metadata: maybeApply(JSON.stringify, key.metadata) + })), result; + return res.cursor === void 0 ? result = { keys, list_complete: !0, cacheStatus: null } : result = { + keys, + list_complete: !1, + cursor: res.cursor, + cacheStatus: null + }, Response.json(result); + }; +}; +__decorateClass([ + GET("/:key") +], KVNamespaceObject.prototype, "get", 2), __decorateClass([ + PUT("/:key") +], KVNamespaceObject.prototype, "put", 2), __decorateClass([ + DELETE("/:key") +], KVNamespaceObject.prototype, "delete", 2), __decorateClass([ + GET("/") +], KVNamespaceObject.prototype, "list", 2); +export { + KVNamespaceObject +}; +//# sourceMappingURL=namespace.worker.js.map diff --git a/node_modules/miniflare/dist/src/workers/kv/namespace.worker.js.map b/node_modules/miniflare/dist/src/workers/kv/namespace.worker.js.map new file mode 100644 index 0000000..ddee3bb --- /dev/null +++ b/node_modules/miniflare/dist/src/workers/kv/namespace.worker.js.map @@ -0,0 +1,6 @@ +{ + "version": 3, + "sources": ["../../../../src/workers/kv/namespace.worker.ts", "../../../../src/workers/kv/constants.ts", "../../../../src/workers/kv/validator.worker.ts"], + "mappings": "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", + "names": ["HttpError", "Buffer", "Buffer", "HttpError"] +} diff --git a/node_modules/miniflare/dist/src/workers/kv/sites.worker.js b/node_modules/miniflare/dist/src/workers/kv/sites.worker.js new file mode 100644 index 0000000..e81e4fe --- /dev/null +++ b/node_modules/miniflare/dist/src/workers/kv/sites.worker.js @@ -0,0 +1,147 @@ +// packages/miniflare/src/workers/kv/sites.worker.ts +import { SharedBindings, base64Decode, base64Encode } from "miniflare:shared"; + +// packages/miniflare/src/workers/kv/constants.ts +import { testRegExps } from "miniflare:shared"; +var KVLimits = { + MIN_CACHE_TTL: 60, + MAX_LIST_KEYS: 1e3, + MAX_KEY_SIZE: 512, + MAX_VALUE_SIZE: 25 * 1024 * 1024, + MAX_VALUE_SIZE_TEST: 1024, + MAX_METADATA_SIZE: 1024 +}, KVParams = { + URL_ENCODED: "urlencoded", + CACHE_TTL: "cache_ttl", + EXPIRATION: "expiration", + EXPIRATION_TTL: "expiration_ttl", + LIST_LIMIT: "key_count_limit", + LIST_PREFIX: "prefix", + LIST_CURSOR: "cursor" +}; +var SiteBindings = { + KV_NAMESPACE_SITE: "__STATIC_CONTENT", + JSON_SITE_MANIFEST: "__STATIC_CONTENT_MANIFEST", + JSON_SITE_FILTER: "MINIFLARE_SITE_FILTER" +}, SITES_NO_CACHE_PREFIX = "$__MINIFLARE_SITES__$/"; +function encodeSitesKey(key) { + return SITES_NO_CACHE_PREFIX + encodeURIComponent(key); +} +function decodeSitesKey(key) { + return key.startsWith(SITES_NO_CACHE_PREFIX) ? decodeURIComponent(key.substring(SITES_NO_CACHE_PREFIX.length)) : key; +} +function deserialiseRegExps(matcher) { + return { + include: matcher.include.map((regExp) => new RegExp(regExp)), + exclude: matcher.exclude.map((regExp) => new RegExp(regExp)) + }; +} +function deserialiseSiteRegExps(siteRegExps) { + return { + include: siteRegExps.include && deserialiseRegExps(siteRegExps.include), + exclude: siteRegExps.exclude && deserialiseRegExps(siteRegExps.exclude) + }; +} +function testSiteRegExps(regExps, key) { + return regExps.include !== void 0 ? testRegExps(regExps.include, key) : regExps.exclude !== void 0 ? !testRegExps(regExps.exclude, key) : !0; +} + +// packages/miniflare/src/workers/kv/validator.worker.ts +import { Buffer } from "node:buffer"; +import { HttpError } from "miniflare:shared"; +function validateKeyLength(key) { + let keyLength = Buffer.byteLength(key); + if (keyLength > KVLimits.MAX_KEY_SIZE) + throw new HttpError( + 414, + `UTF-8 encoded length of ${keyLength} exceeds key length limit of ${KVLimits.MAX_KEY_SIZE}.` + ); +} +function decodeListOptions(url) { + let limitParam = url.searchParams.get(KVParams.LIST_LIMIT), limit = limitParam === null ? KVLimits.MAX_LIST_KEYS : parseInt(limitParam), prefix = url.searchParams.get(KVParams.LIST_PREFIX) ?? void 0, cursor = url.searchParams.get(KVParams.LIST_CURSOR) ?? void 0; + return { limit, prefix, cursor }; +} +function validateListOptions(options) { + let limit = options.limit; + if (limit !== void 0) { + if (isNaN(limit) || limit < 1) + throw new HttpError( + 400, + `Invalid ${KVParams.LIST_LIMIT} of ${limit}. Please specify an integer greater than 0.` + ); + if (limit > KVLimits.MAX_LIST_KEYS) + throw new HttpError( + 400, + `Invalid ${KVParams.LIST_LIMIT} of ${limit}. Please specify an integer less than ${KVLimits.MAX_LIST_KEYS}.` + ); + } + let prefix = options.prefix; + prefix != null && validateKeyLength(prefix); +} + +// packages/miniflare/src/workers/kv/sites.worker.ts +var siteRegExpsCache = /* @__PURE__ */ new WeakMap(); +function getSiteRegExps(env) { + let regExps = siteRegExpsCache.get(env); + return regExps !== void 0 || (regExps = deserialiseSiteRegExps(env[SiteBindings.JSON_SITE_FILTER]), siteRegExpsCache.set(env, regExps)), regExps; +} +async function* walkDirectory(blobsService, path = "") { + let res = await blobsService.fetch(`http://placeholder/${path}`); + if (!(res.headers.get("Content-Type") ?? "").toLowerCase().startsWith("application/json")) { + await res.body?.pipeTo(new WritableStream()), yield path; + return; + } + let entries = await res.json(); + for (let { name, type } of entries) { + let entryPath = `${path}${path === "" ? "" : "/"}${name}`; + type === "directory" ? yield* walkDirectory(blobsService, entryPath) : yield entryPath; + } +} +var encoder = new TextEncoder(); +function arrayCompare(a, b) { + let minLength = Math.min(a.length, b.length); + for (let i = 0; i < minLength; i++) { + let aElement = a[i], bElement = b[i]; + if (aElement < bElement) + return -1; + if (aElement > bElement) + return 1; + } + return a.length - b.length; +} +async function handleListRequest(url, blobsService, siteRegExps) { + let options = decodeListOptions(url); + validateListOptions(options); + let { limit = KVLimits.MAX_LIST_KEYS, prefix, cursor } = options, keys = []; + for await (let name of walkDirectory(blobsService)) + testSiteRegExps(siteRegExps, name) && (name = encodeSitesKey(name), !(prefix !== void 0 && !name.startsWith(prefix)) && keys.push({ name, encodedName: encoder.encode(name) })); + keys.sort((a, b) => arrayCompare(a.encodedName, b.encodedName)); + for (let key of keys) + delete key.encodedName; + let startAfter = cursor === void 0 ? "" : base64Decode(cursor), startIndex = 0; + startAfter !== "" && (startIndex = keys.findIndex(({ name }) => name === startAfter), startIndex === -1 && (startIndex = keys.length), startIndex++); + let endIndex = startIndex + limit, nextCursor = endIndex < keys.length ? base64Encode(keys[endIndex - 1].name) : void 0; + return keys = keys.slice(startIndex, endIndex), nextCursor === void 0 ? Response.json({ keys, list_complete: !0 }) : Response.json({ keys, list_complete: !1, cursor: nextCursor }); +} +var sites_worker_default = { + async fetch(request, env) { + if (request.method !== "GET") { + let message = `Cannot ${request.method.toLowerCase()}() with Workers Sites namespace`; + return new Response(message, { status: 405, statusText: message }); + } + let url = new URL(request.url), key = url.pathname.substring(1); + url.searchParams.get(KVParams.URL_ENCODED)?.toLowerCase() === "true" && (key = decodeURIComponent(key)), key = decodeSitesKey(key); + let siteRegExps = getSiteRegExps(env); + if (key !== "" && !testSiteRegExps(siteRegExps, key)) + return new Response("Not Found", { + status: 404, + statusText: "Not Found" + }); + let blobsService = env[SharedBindings.MAYBE_SERVICE_BLOBS]; + return key === "" ? handleListRequest(url, blobsService, siteRegExps) : blobsService.fetch(new URL(key, "http://placeholder")); + } +}; +export { + sites_worker_default as default +}; +//# sourceMappingURL=sites.worker.js.map diff --git a/node_modules/miniflare/dist/src/workers/kv/sites.worker.js.map b/node_modules/miniflare/dist/src/workers/kv/sites.worker.js.map new file mode 100644 index 0000000..f44adab --- /dev/null +++ b/node_modules/miniflare/dist/src/workers/kv/sites.worker.js.map @@ -0,0 +1,6 @@ +{ + "version": 3, + "sources": ["../../../../src/workers/kv/sites.worker.ts", "../../../../src/workers/kv/constants.ts", "../../../../src/workers/kv/validator.worker.ts"], + "mappings": "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", + "names": [] +} diff --git a/node_modules/miniflare/dist/src/workers/queues/broker.worker.js b/node_modules/miniflare/dist/src/workers/queues/broker.worker.js new file mode 100644 index 0000000..793e8f6 --- /dev/null +++ b/node_modules/miniflare/dist/src/workers/queues/broker.worker.js @@ -0,0 +1,238 @@ +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __decorateClass = (decorators, target, key, kind) => { + for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--) + (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result); + return kind && result && __defProp(target, key, result), result; +}; + +// packages/miniflare/src/workers/queues/broker.worker.ts +import assert from "node:assert"; +import { Buffer as Buffer2 } from "node:buffer"; + +// node_modules/kleur/colors.mjs +var FORCE_COLOR, NODE_DISABLE_COLORS, NO_COLOR, TERM, isTTY = !0; +typeof process < "u" && ({ FORCE_COLOR, NODE_DISABLE_COLORS, NO_COLOR, TERM } = process.env || {}, isTTY = process.stdout && process.stdout.isTTY); +var $ = { + enabled: !NODE_DISABLE_COLORS && NO_COLOR == null && TERM !== "dumb" && (FORCE_COLOR != null && FORCE_COLOR !== "0" || isTTY) +}; +function init(x, y) { + let rgx = new RegExp(`\\x1b\\[${y}m`, "g"), open = `\x1B[${x}m`, close = `\x1B[${y}m`; + return function(txt) { + return !$.enabled || txt == null ? txt : open + (~("" + txt).indexOf(close) ? txt.replace(rgx, close + open) : txt) + close; + }; +} +var reset = init(0, 0), bold = init(1, 22), dim = init(2, 22), italic = init(3, 23), underline = init(4, 24), inverse = init(7, 27), hidden = init(8, 28), strikethrough = init(9, 29), black = init(30, 39), red = init(31, 39), green = init(32, 39), yellow = init(33, 39), blue = init(34, 39), magenta = init(35, 39), cyan = init(36, 39), white = init(37, 39), gray = init(90, 39), grey = init(90, 39), bgBlack = init(40, 49), bgRed = init(41, 49), bgGreen = init(42, 49), bgYellow = init(43, 49), bgBlue = init(44, 49), bgMagenta = init(45, 49), bgCyan = init(46, 49), bgWhite = init(47, 49); + +// packages/miniflare/src/workers/queues/broker.worker.ts +import { + HttpError, + LogLevel, + MiniflareDurableObject, + POST, + SharedBindings, + viewToBuffer +} from "miniflare:shared"; + +// packages/miniflare/src/workers/queues/constants.ts +var QueueBindings = { + SERVICE_WORKER_PREFIX: "MINIFLARE_WORKER_", + MAYBE_JSON_QUEUE_CONSUMERS: "MINIFLARE_QUEUE_CONSUMERS" +}; + +// packages/miniflare/src/workers/queues/schemas.ts +import { Base64DataSchema, z } from "miniflare:zod"; +var QueueConsumerOptionsSchema = /* @__PURE__ */ z.object({ + // https://developers.cloudflare.com/queues/platform/configuration/#consumer + // https://developers.cloudflare.com/queues/platform/limits/ + maxBatchSize: z.number().min(0).max(100).optional(), + maxBatchTimeout: z.number().min(0).max(30).optional(), + // seconds + maxRetires: z.number().min(0).max(100).optional(), + deadLetterQueue: z.ostring() +}), QueueConsumerSchema = /* @__PURE__ */ z.intersection( + QueueConsumerOptionsSchema, + z.object({ workerName: z.string() }) +), QueueConsumersSchema = /* @__PURE__ */ z.record(QueueConsumerSchema), QueueContentTypeSchema = /* @__PURE__ */ z.enum(["text", "json", "bytes", "v8"]).default("v8"), QueueIncomingMessageSchema = /* @__PURE__ */ z.object({ + contentType: QueueContentTypeSchema, + body: Base64DataSchema, + // When enqueuing messages on dead-letter queues, we want to reuse the same ID + // and timestamp + id: z.ostring(), + timestamp: z.onumber() +}), QueuesBatchRequestSchema = /* @__PURE__ */ z.object({ + messages: z.array(QueueIncomingMessageSchema) +}); + +// packages/miniflare/src/workers/queues/broker.worker.ts +var MAX_MESSAGE_SIZE_BYTES = 128 * 1e3, MAX_MESSAGE_BATCH_COUNT = 100, MAX_MESSAGE_BATCH_SIZE = (256 + 32) * 1e3, DEFAULT_BATCH_SIZE = 5, DEFAULT_BATCH_TIMEOUT = 1, DEFAULT_RETRIES = 2, exceptionQueueResponse = { + outcome: "exception", + retryAll: !1, + ackAll: !1, + explicitRetries: [], + explicitAcks: [] +}, PayloadTooLargeError = class extends HttpError { + constructor(message) { + super(413, message); + } +}; +function validateMessageSize(headers) { + let size = headers.get("Content-Length"); + if (size !== null && parseInt(size) > MAX_MESSAGE_SIZE_BYTES) + throw new PayloadTooLargeError( + `message length of ${size} bytes exceeds limit of ${MAX_MESSAGE_SIZE_BYTES}` + ); +} +function validateContentType(headers) { + let format = headers.get("X-Msg-Fmt") ?? void 0, result = QueueContentTypeSchema.safeParse(format); + if (!result.success) + throw new HttpError( + 400, + `message content type ${format} is invalid; if specified, must be one of 'text', 'json', 'bytes', or 'v8'` + ); + return result.data; +} +function validateBatchSize(headers) { + let count = headers.get("CF-Queue-Batch-Count"); + if (count !== null && parseInt(count) > MAX_MESSAGE_BATCH_COUNT) + throw new PayloadTooLargeError( + `batch message count of ${count} exceeds limit of ${MAX_MESSAGE_BATCH_COUNT}` + ); + let largestSize = headers.get("CF-Queue-Largest-Msg"); + if (largestSize !== null && parseInt(largestSize) > MAX_MESSAGE_SIZE_BYTES) + throw new PayloadTooLargeError( + `message in batch has length ${largestSize} bytes which exceeds single message size limit of ${MAX_MESSAGE_SIZE_BYTES}` + ); + let batchSize = headers.get("CF-Queue-Batch-Bytes"); + if (batchSize !== null && parseInt(batchSize) > MAX_MESSAGE_BATCH_SIZE) + throw new PayloadTooLargeError( + `batch size of ${batchSize} bytes exceeds limit of 256000` + ); +} +function deserialise({ contentType, body }) { + return contentType === "text" ? { contentType, body: body.toString() } : contentType === "json" ? { contentType, body: JSON.parse(body.toString()) } : contentType === "bytes" ? { contentType, body: viewToBuffer(body) } : { contentType, body }; +} +function serialise(msg) { + let body; + return msg.body.contentType === "text" ? body = Buffer2.from(msg.body.body) : msg.body.contentType === "json" ? body = Buffer2.from(JSON.stringify(msg.body.body)) : msg.body.contentType === "bytes" ? body = Buffer2.from(msg.body.body) : body = msg.body.body, { + id: msg.id, + timestamp: msg.timestamp, + contentType: msg.body.contentType, + body: body.toString("base64") + }; +} +var QueueMessage = class { + constructor(id, timestamp, body) { + this.id = id; + this.timestamp = timestamp; + this.body = body; + } + #failedAttempts = 0; + incrementFailedAttempts() { + return ++this.#failedAttempts; + } +}; +function formatQueueResponse(queueName, acked, total, time) { + let colour; + acked === total ? colour = green : acked > 0 ? colour = yellow : colour = red; + let message = `${bold("QUEUE")} ${queueName} ${colour(`${acked}/${total}`)}`; + return time !== void 0 && (message += grey(` (${time}ms)`)), reset(message); +} +var QueueBrokerObject = class extends MiniflareDurableObject { + #consumers; + #messages = []; + #pendingFlush; + constructor(state, env) { + super(state, env); + let maybeConsumers = env[QueueBindings.MAYBE_JSON_QUEUE_CONSUMERS]; + maybeConsumers === void 0 ? this.#consumers = {} : this.#consumers = QueueConsumersSchema.parse(maybeConsumers); + } + get #maybeConsumer() { + return this.#consumers[this.name]; + } + #dispatchBatch(workerName, batch) { + let bindingName = `${QueueBindings.SERVICE_WORKER_PREFIX}${workerName}`, maybeService = this.env[bindingName]; + assert( + maybeService !== void 0, + `Expected ${bindingName} service binding` + ); + let messages = batch.map(({ id, timestamp, body }) => body.contentType === "v8" ? { id, timestamp, serializedBody: body.body } : { id, timestamp, body: body.body }); + return maybeService.queue(this.name, messages); + } + #flush = async () => { + let consumer = this.#maybeConsumer; + assert(consumer !== void 0); + let batchSize = consumer.maxBatchSize ?? DEFAULT_BATCH_SIZE, maxAttempts = (consumer.maxRetires ?? DEFAULT_RETRIES) + 1, maxAttemptsS = maxAttempts === 1 ? "" : "s", batch = this.#messages.splice(0, batchSize), startTime = Date.now(), endTime, response; + try { + response = await this.#dispatchBatch(consumer.workerName, batch), endTime = Date.now(); + } catch (e) { + endTime = Date.now(), await this.logWithLevel(LogLevel.ERROR, String(e)), response = exceptionQueueResponse; + } + let retryAll = response.retryAll || response.outcome !== "ok", explicitRetries = new Set(response.explicitRetries), failedMessages = 0, toRetry = [], toDeadLetterQueue = []; + for (let message of batch) + (retryAll || explicitRetries.has(message.id)) && (failedMessages++, message.incrementFailedAttempts() < maxAttempts ? (await this.logWithLevel( + LogLevel.DEBUG, + `Retrying message "${message.id}" on queue "${this.name}"...` + ), toRetry.push(message)) : consumer.deadLetterQueue !== void 0 ? (await this.logWithLevel( + LogLevel.WARN, + `Moving message "${message.id}" on queue "${this.name}" to dead letter queue "${consumer.deadLetterQueue}" after ${maxAttempts} failed attempt${maxAttemptsS}...` + ), toDeadLetterQueue.push(message)) : await this.logWithLevel( + LogLevel.WARN, + `Dropped message "${message.id}" on queue "${this.name}" after ${maxAttempts} failed attempt${maxAttemptsS}!` + )); + let acked = batch.length - failedMessages; + if (await this.logWithLevel( + LogLevel.INFO, + formatQueueResponse(this.name, acked, batch.length, endTime - startTime) + ), this.#messages.push(...toRetry), this.#pendingFlush = void 0, this.#messages.length > 0 && this.#ensurePendingFlush(), toDeadLetterQueue.length > 0) { + let name = consumer.deadLetterQueue; + assert(name !== void 0); + let ns = this.env[SharedBindings.DURABLE_OBJECT_NAMESPACE_OBJECT], id = ns.idFromName(name), stub = ns.get(id), cf = { miniflare: { name } }, batchRequest = { + messages: toDeadLetterQueue.map(serialise) + }, res = await stub.fetch("http://placeholder/batch", { + method: "POST", + body: JSON.stringify(batchRequest), + cf + }); + assert(res.ok); + } + }; + #ensurePendingFlush() { + let consumer = this.#maybeConsumer; + assert(consumer !== void 0); + let batchSize = consumer.maxBatchSize ?? DEFAULT_BATCH_SIZE, batchTimeout = consumer.maxBatchTimeout ?? DEFAULT_BATCH_TIMEOUT, batchHasSpace = this.#messages.length < batchSize; + if (this.#pendingFlush !== void 0) { + if (this.#pendingFlush.immediate || batchHasSpace) + return; + this.timers.clearTimeout(this.#pendingFlush.timeout), this.#pendingFlush = void 0; + } + let delay = batchHasSpace ? batchTimeout * 1e3 : 0, timeout = this.timers.setTimeout(this.#flush, delay); + this.#pendingFlush = { immediate: delay === 0, timeout }; + } + #enqueue(messages) { + for (let message of messages) { + let randomness = crypto.getRandomValues(new Uint8Array(16)), id = message.id ?? Buffer2.from(randomness).toString("hex"), timestamp = message.timestamp ?? this.timers.now(), body = deserialise(message); + this.#messages.push(new QueueMessage(id, timestamp, body)); + } + this.#ensurePendingFlush(); + } + message = async (req) => { + validateMessageSize(req.headers); + let contentType = validateContentType(req.headers), body = Buffer2.from(await req.arrayBuffer()); + return this.#maybeConsumer === void 0 ? new Response() : (this.#enqueue([{ contentType, body }]), new Response()); + }; + batch = async (req) => { + validateBatchSize(req.headers); + let body = QueuesBatchRequestSchema.parse(await req.json()); + return this.#maybeConsumer === void 0 ? new Response() : (this.#enqueue(body.messages), new Response()); + }; +}; +__decorateClass([ + POST("/message") +], QueueBrokerObject.prototype, "message", 2), __decorateClass([ + POST("/batch") +], QueueBrokerObject.prototype, "batch", 2); +export { + QueueBrokerObject +}; +//# sourceMappingURL=broker.worker.js.map diff --git a/node_modules/miniflare/dist/src/workers/queues/broker.worker.js.map b/node_modules/miniflare/dist/src/workers/queues/broker.worker.js.map new file mode 100644 index 0000000..abb4f32 --- /dev/null +++ b/node_modules/miniflare/dist/src/workers/queues/broker.worker.js.map @@ -0,0 +1,6 @@ +{ + "version": 3, + "sources": ["../../../../src/workers/queues/broker.worker.ts", "../../../../../../node_modules/kleur/colors.mjs", "../../../../src/workers/queues/constants.ts", "../../../../src/workers/queues/schemas.ts"], + "mappings": "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", + "names": ["Buffer", "Buffer"] +} diff --git a/node_modules/miniflare/dist/src/workers/r2/bucket.worker.js b/node_modules/miniflare/dist/src/workers/r2/bucket.worker.js new file mode 100644 index 0000000..2c239d7 --- /dev/null +++ b/node_modules/miniflare/dist/src/workers/r2/bucket.worker.js @@ -0,0 +1,1158 @@ +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __decorateClass = (decorators, target, key, kind) => { + for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--) + (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result); + return kind && result && __defProp(target, key, result), result; +}; + +// packages/miniflare/src/workers/r2/bucket.worker.ts +import assert2 from "node:assert"; +import { Buffer as Buffer3 } from "node:buffer"; +import { createHash } from "node:crypto"; +import { + DeferredPromise, + GET, + MiniflareDurableObject, + PUT, + WaitGroup, + all, + base64Decode, + base64Encode, + escapeLike, + get, + maybeApply, + readPrefix +} from "miniflare:shared"; + +// packages/miniflare/src/workers/r2/constants.ts +var R2Limits = { + MAX_LIST_KEYS: 1e3, + MAX_KEY_SIZE: 1024, + // https://developers.cloudflare.com/r2/platform/limits/ + MAX_VALUE_SIZE: 5363466240, + // 5 GiB - 5 MiB + MAX_METADATA_SIZE: 2048, + // 2048 B + MIN_MULTIPART_PART_SIZE: 5242880, + MIN_MULTIPART_PART_SIZE_TEST: 50 +}, R2Headers = { + ERROR: "cf-r2-error", + REQUEST: "cf-r2-request", + METADATA_SIZE: "cf-r2-metadata-size" +}; + +// packages/miniflare/src/workers/r2/errors.worker.ts +import { HttpError } from "miniflare:shared"; +var R2ErrorCode = { + INTERNAL_ERROR: 10001, + NO_SUCH_OBJECT_KEY: 10007, + ENTITY_TOO_LARGE: 100100, + ENTITY_TOO_SMALL: 10011, + METADATA_TOO_LARGE: 10012, + INVALID_OBJECT_NAME: 10020, + INVALID_MAX_KEYS: 10022, + NO_SUCH_UPLOAD: 10024, + INVALID_PART: 10025, + INVALID_ARGUMENT: 10029, + PRECONDITION_FAILED: 10031, + BAD_DIGEST: 10037, + INVALID_RANGE: 10039, + BAD_UPLOAD: 10048 +}, R2Error = class extends HttpError { + constructor(code, message, v4Code) { + super(code, message); + this.v4Code = v4Code; + } + object; + toResponse() { + if (this.object !== void 0) { + let { metadataSize, value } = this.object.encode(); + return new Response(value, { + status: this.code, + headers: { + [R2Headers.METADATA_SIZE]: `${metadataSize}`, + "Content-Type": "application/json", + [R2Headers.ERROR]: JSON.stringify({ + message: this.message, + version: 1, + // Note the lowercase 'c', which the runtime expects + v4code: this.v4Code + }) + } + }); + } + return new Response(null, { + status: this.code, + headers: { + [R2Headers.ERROR]: JSON.stringify({ + message: this.message, + version: 1, + // Note the lowercase 'c', which the runtime expects + v4code: this.v4Code + }) + } + }); + } + context(info) { + return this.message += ` (${info})`, this; + } + attach(object) { + return this.object = object, this; + } +}, InvalidMetadata = class extends R2Error { + constructor() { + super(400, "Metadata missing or invalid", R2ErrorCode.INVALID_ARGUMENT); + } +}, InternalError = class extends R2Error { + constructor() { + super( + 500, + "We encountered an internal error. Please try again.", + R2ErrorCode.INTERNAL_ERROR + ); + } +}, NoSuchKey = class extends R2Error { + constructor() { + super( + 404, + "The specified key does not exist.", + R2ErrorCode.NO_SUCH_OBJECT_KEY + ); + } +}, EntityTooLarge = class extends R2Error { + constructor() { + super( + 400, + "Your proposed upload exceeds the maximum allowed object size.", + R2ErrorCode.ENTITY_TOO_LARGE + ); + } +}, EntityTooSmall = class extends R2Error { + constructor() { + super( + 400, + "Your proposed upload is smaller than the minimum allowed object size.", + R2ErrorCode.ENTITY_TOO_SMALL + ); + } +}, MetadataTooLarge = class extends R2Error { + constructor() { + super( + 400, + "Your metadata headers exceed the maximum allowed metadata size.", + R2ErrorCode.METADATA_TOO_LARGE + ); + } +}, BadDigest = class extends R2Error { + constructor(algorithm, provided, calculated) { + super( + 400, + [ + `The ${algorithm} checksum you specified did not match what we received.`, + `You provided a ${algorithm} checksum with value: ${provided.toString( + "hex" + )}`, + `Actual ${algorithm} was: ${calculated.toString("hex")}` + ].join(` +`), + R2ErrorCode.BAD_DIGEST + ); + } +}, InvalidObjectName = class extends R2Error { + constructor() { + super( + 400, + "The specified object name is not valid.", + R2ErrorCode.INVALID_OBJECT_NAME + ); + } +}, InvalidMaxKeys = class extends R2Error { + constructor() { + super( + 400, + "MaxKeys params must be positive integer <= 1000.", + R2ErrorCode.INVALID_MAX_KEYS + ); + } +}, NoSuchUpload = class extends R2Error { + constructor() { + super( + 400, + "The specified multipart upload does not exist.", + R2ErrorCode.NO_SUCH_UPLOAD + ); + } +}, InvalidPart = class extends R2Error { + constructor() { + super( + 400, + "One or more of the specified parts could not be found.", + R2ErrorCode.INVALID_PART + ); + } +}, PreconditionFailed = class extends R2Error { + constructor() { + super( + 412, + "At least one of the pre-conditions you specified did not hold.", + R2ErrorCode.PRECONDITION_FAILED + ); + } +}, InvalidRange = class extends R2Error { + constructor() { + super( + 416, + "The requested range is not satisfiable", + R2ErrorCode.INVALID_RANGE + ); + } +}, BadUpload = class extends R2Error { + constructor() { + super( + 500, + "There was a problem with the multipart upload.", + R2ErrorCode.BAD_UPLOAD + ); + } +}; + +// packages/miniflare/src/workers/r2/r2Object.worker.ts +import { HEX_REGEXP } from "miniflare:zod"; +var InternalR2Object = class { + key; + version; + size; + etag; + uploaded; + httpMetadata; + customMetadata; + range; + checksums; + constructor(row, range) { + this.key = row.key, this.version = row.version, this.size = row.size, this.etag = row.etag, this.uploaded = row.uploaded, this.httpMetadata = JSON.parse(row.http_metadata), this.customMetadata = JSON.parse(row.custom_metadata), this.range = range; + let checksums = JSON.parse(row.checksums); + this.etag.length === 32 && HEX_REGEXP.test(this.etag) && (checksums.md5 = row.etag), this.checksums = checksums; + } + // Format for return to the Workers Runtime + #rawProperties() { + return { + name: this.key, + version: this.version, + size: this.size, + etag: this.etag, + uploaded: this.uploaded, + httpFields: this.httpMetadata, + customFields: Object.entries(this.customMetadata).map(([k, v]) => ({ + k, + v + })), + range: this.range, + checksums: { + 0: this.checksums.md5, + 1: this.checksums.sha1, + 2: this.checksums.sha256, + 3: this.checksums.sha384, + 4: this.checksums.sha512 + } + }; + } + encode() { + let json = JSON.stringify(this.#rawProperties()), blob = new Blob([json]); + return { metadataSize: blob.size, value: blob.stream() }; + } + static encodeMultiple(objects) { + let json = JSON.stringify({ + ...objects, + objects: objects.objects.map((o) => o.#rawProperties()) + }), blob = new Blob([json]); + return { metadataSize: blob.size, value: blob.stream() }; + } +}, InternalR2ObjectBody = class extends InternalR2Object { + constructor(metadata, body, range) { + super(metadata, range); + this.body = body; + } + encode() { + let { metadataSize, value: metadata } = super.encode(), identity2 = new IdentityTransformStream(); + return metadata.pipeTo(identity2.writable, { preventClose: !0 }).then(() => this.body.pipeTo(identity2.writable)), { + metadataSize, + value: identity2.readable + }; + } +}; + +// packages/miniflare/src/workers/r2/schemas.worker.ts +import { Base64DataSchema, HexDataSchema, z } from "miniflare:zod"; +var MultipartUploadState = { + IN_PROGRESS: 0, + COMPLETED: 1, + ABORTED: 2 +}, SQL_SCHEMA = ` +CREATE TABLE IF NOT EXISTS _mf_objects ( + key TEXT PRIMARY KEY, + blob_id TEXT, + version TEXT NOT NULL, + size INTEGER NOT NULL, + etag TEXT NOT NULL, + uploaded INTEGER NOT NULL, + checksums TEXT NOT NULL, + http_metadata TEXT NOT NULL, + custom_metadata TEXT NOT NULL +); +CREATE TABLE IF NOT EXISTS _mf_multipart_uploads ( + upload_id TEXT PRIMARY KEY, + key TEXT NOT NULL, + http_metadata TEXT NOT NULL, + custom_metadata TEXT NOT NULL, + state TINYINT DEFAULT 0 NOT NULL +); +CREATE TABLE IF NOT EXISTS _mf_multipart_parts ( + upload_id TEXT NOT NULL REFERENCES _mf_multipart_uploads(upload_id), + part_number INTEGER NOT NULL, + blob_id TEXT NOT NULL, + size INTEGER NOT NULL, + etag TEXT NOT NULL, + checksum_md5 TEXT NOT NULL, + object_key TEXT REFERENCES _mf_objects(key) DEFERRABLE INITIALLY DEFERRED, + PRIMARY KEY (upload_id, part_number) +); +`, DateSchema = z.coerce.number().transform((value) => new Date(value)), RecordSchema = z.object({ + k: z.string(), + v: z.string() +}).array().transform( + (entries) => Object.fromEntries(entries.map(({ k, v }) => [k, v])) +), R2RangeSchema = z.object({ + offset: z.coerce.number().optional(), + length: z.coerce.number().optional(), + suffix: z.coerce.number().optional() +}), R2EtagSchema = z.discriminatedUnion("type", [ + z.object({ type: z.literal("strong"), value: z.string() }), + z.object({ type: z.literal("weak"), value: z.string() }), + z.object({ type: z.literal("wildcard") }) +]), R2EtagMatchSchema = R2EtagSchema.array().min(1).optional(), R2ConditionalSchema = z.object({ + // Performs the operation if the object's ETag matches the given string + etagMatches: R2EtagMatchSchema, + // "If-Match" + // Performs the operation if the object's ETag does NOT match the given string + etagDoesNotMatch: R2EtagMatchSchema, + // "If-None-Match" + // Performs the operation if the object was uploaded BEFORE the given date + uploadedBefore: DateSchema.optional(), + // "If-Unmodified-Since" + // Performs the operation if the object was uploaded AFTER the given date + uploadedAfter: DateSchema.optional(), + // "If-Modified-Since" + // Truncates dates to seconds before performing comparisons + secondsGranularity: z.oboolean() +}), R2ChecksumsSchema = z.object({ + 0: HexDataSchema.optional(), + 1: HexDataSchema.optional(), + 2: HexDataSchema.optional(), + 3: HexDataSchema.optional(), + 4: HexDataSchema.optional() +}).transform((checksums) => ({ + md5: checksums[0], + sha1: checksums[1], + sha256: checksums[2], + sha384: checksums[3], + sha512: checksums[4] +})), R2PublishedPartSchema = z.object({ + etag: z.string(), + part: z.number() +}), R2HttpFieldsSchema = z.object({ + contentType: z.ostring(), + contentLanguage: z.ostring(), + contentDisposition: z.ostring(), + contentEncoding: z.ostring(), + cacheControl: z.ostring(), + cacheExpiry: z.coerce.number().optional() +}), R2HeadRequestSchema = z.object({ + method: z.literal("head"), + object: z.string() +}), R2GetRequestSchema = z.object({ + method: z.literal("get"), + object: z.string(), + // Specifies that only a specific length (from an optional offset) or suffix + // of bytes from the object should be returned. Refer to + // https://developers.cloudflare.com/r2/runtime-apis/#ranged-reads. + range: R2RangeSchema.optional(), + rangeHeader: z.ostring(), + // Specifies that the object should only be returned given satisfaction of + // certain conditions in the R2Conditional. Refer to R2Conditional above. + onlyIf: R2ConditionalSchema.optional() +}), R2PutRequestSchema = z.object({ + method: z.literal("put"), + object: z.string(), + customFields: RecordSchema.optional(), + // (renamed in transform) + httpFields: R2HttpFieldsSchema.optional(), + // (renamed in transform) + onlyIf: R2ConditionalSchema.optional(), + md5: Base64DataSchema.optional(), + // (intentionally base64, not hex) + sha1: HexDataSchema.optional(), + sha256: HexDataSchema.optional(), + sha384: HexDataSchema.optional(), + sha512: HexDataSchema.optional() +}).transform((value) => ({ + method: value.method, + object: value.object, + customMetadata: value.customFields, + httpMetadata: value.httpFields, + onlyIf: value.onlyIf, + md5: value.md5, + sha1: value.sha1, + sha256: value.sha256, + sha384: value.sha384, + sha512: value.sha512 +})), R2CreateMultipartUploadRequestSchema = z.object({ + method: z.literal("createMultipartUpload"), + object: z.string(), + customFields: RecordSchema.optional(), + // (renamed in transform) + httpFields: R2HttpFieldsSchema.optional() + // (renamed in transform) +}).transform((value) => ({ + method: value.method, + object: value.object, + customMetadata: value.customFields, + httpMetadata: value.httpFields +})), R2UploadPartRequestSchema = z.object({ + method: z.literal("uploadPart"), + object: z.string(), + uploadId: z.string(), + partNumber: z.number() +}), R2CompleteMultipartUploadRequestSchema = z.object({ + method: z.literal("completeMultipartUpload"), + object: z.string(), + uploadId: z.string(), + parts: R2PublishedPartSchema.array() +}), R2AbortMultipartUploadRequestSchema = z.object({ + method: z.literal("abortMultipartUpload"), + object: z.string(), + uploadId: z.string() +}), R2ListRequestSchema = z.object({ + method: z.literal("list"), + limit: z.onumber(), + prefix: z.ostring(), + cursor: z.ostring(), + delimiter: z.ostring(), + startAfter: z.ostring(), + include: z.union([z.literal(0), z.literal(1)]).transform((value) => value === 0 ? "httpMetadata" : "customMetadata").array().optional() +}), R2DeleteRequestSchema = z.intersection( + z.object({ method: z.literal("delete") }), + z.union([ + z.object({ object: z.string() }), + z.object({ objects: z.string().array() }) + ]) +), R2BindingRequestSchema = z.union([ + R2HeadRequestSchema, + R2GetRequestSchema, + R2PutRequestSchema, + R2CreateMultipartUploadRequestSchema, + R2UploadPartRequestSchema, + R2CompleteMultipartUploadRequestSchema, + R2AbortMultipartUploadRequestSchema, + R2ListRequestSchema, + R2DeleteRequestSchema +]); + +// packages/miniflare/src/workers/r2/validator.worker.ts +import assert from "node:assert"; +import { Buffer as Buffer2 } from "node:buffer"; +import { parseRanges } from "miniflare:shared"; +function identity(ms) { + return ms; +} +function truncateToSeconds(ms) { + return Math.floor(ms / 1e3) * 1e3; +} +function includesEtag(conditions, etag, comparison) { + for (let condition of conditions) + if (condition.type === "wildcard" || condition.value === etag && (condition.type === "strong" || comparison === "weak")) + return !0; + return !1; +} +function _testR2Conditional(cond, metadata) { + if (metadata === void 0) { + let ifMatch2 = cond.etagMatches === void 0, ifModifiedSince2 = cond.uploadedAfter === void 0; + return ifMatch2 && ifModifiedSince2; + } + let { etag, uploaded: lastModifiedRaw } = metadata, ifMatch = cond.etagMatches === void 0 || includesEtag(cond.etagMatches, etag, "strong"), ifNoneMatch = cond.etagDoesNotMatch === void 0 || !includesEtag(cond.etagDoesNotMatch, etag, "weak"), maybeTruncate = cond.secondsGranularity ? truncateToSeconds : identity, lastModified = maybeTruncate(lastModifiedRaw), ifModifiedSince = cond.uploadedAfter === void 0 || maybeTruncate(cond.uploadedAfter.getTime()) < lastModified || cond.etagDoesNotMatch !== void 0 && ifNoneMatch, ifUnmodifiedSince = cond.uploadedBefore === void 0 || lastModified < maybeTruncate(cond.uploadedBefore.getTime()) || cond.etagMatches !== void 0 && ifMatch; + return ifMatch && ifNoneMatch && ifModifiedSince && ifUnmodifiedSince; +} +var R2_HASH_ALGORITHMS = [ + { name: "MD5", field: "md5" }, + { name: "SHA-1", field: "sha1" }, + { name: "SHA-256", field: "sha256" }, + { name: "SHA-384", field: "sha384" }, + { name: "SHA-512", field: "sha512" } +]; +function serialisedLength(x) { + for (let i = 0; i < x.length; i++) + if (x.charCodeAt(i) >= 256) + return x.length * 2; + return x.length; +} +var Validator = class { + hash(digests, hashes) { + let checksums = {}; + for (let { name, field } of R2_HASH_ALGORITHMS) { + let providedHash = hashes[field]; + if (providedHash !== void 0) { + let computedHash = digests.get(name); + if (assert(computedHash !== void 0), !providedHash.equals(computedHash)) + throw new BadDigest(name, providedHash, computedHash); + checksums[field] = computedHash.toString("hex"); + } + } + return checksums; + } + condition(meta, onlyIf) { + if (onlyIf !== void 0 && !_testR2Conditional(onlyIf, meta)) + throw new PreconditionFailed(); + return this; + } + range(options, size) { + if (options.rangeHeader !== void 0) { + let ranges = parseRanges(options.rangeHeader, size); + if (ranges?.length === 1) + return ranges[0]; + } else if (options.range !== void 0) { + let { offset, length, suffix } = options.range; + if (suffix !== void 0) { + if (suffix <= 0) + throw new InvalidRange(); + suffix > size && (suffix = size), offset = size - suffix, length = suffix; + } + if (offset === void 0 && (offset = 0), length === void 0 && (length = size - offset), offset < 0 || offset > size || length <= 0) + throw new InvalidRange(); + return offset + length > size && (length = size - offset), { start: offset, end: offset + length - 1 }; + } + } + size(size) { + if (size > R2Limits.MAX_VALUE_SIZE) + throw new EntityTooLarge(); + return this; + } + metadataSize(customMetadata) { + if (customMetadata === void 0) + return this; + let metadataLength = 0; + for (let [key, value] of Object.entries(customMetadata)) + metadataLength += serialisedLength(key) + serialisedLength(value); + if (metadataLength > R2Limits.MAX_METADATA_SIZE) + throw new MetadataTooLarge(); + return this; + } + key(key) { + if (Buffer2.byteLength(key) >= R2Limits.MAX_KEY_SIZE) + throw new InvalidObjectName(); + return this; + } + limit(limit) { + if (limit !== void 0 && (limit < 1 || limit > R2Limits.MAX_LIST_KEYS)) + throw new InvalidMaxKeys(); + return this; + } +}; + +// packages/miniflare/src/workers/r2/bucket.worker.ts +var DigestingStream = class extends TransformStream { + digests; + constructor(algorithms) { + let digests = new DeferredPromise(), hashes = algorithms.map((alg) => { + let stream = new crypto.DigestStream(alg), writer = stream.getWriter(); + return { stream, writer }; + }); + super({ + async transform(chunk, controller) { + for (let hash of hashes) + await hash.writer.write(chunk); + controller.enqueue(chunk); + }, + async flush() { + let result = /* @__PURE__ */ new Map(); + for (let i = 0; i < hashes.length; i++) + await hashes[i].writer.close(), result.set(algorithms[i], Buffer3.from(await hashes[i].stream.digest)); + digests.resolve(result); + } + }), this.digests = digests; + } +}, validate = new Validator(), decoder = new TextDecoder(); +function generateVersion() { + return Buffer3.from(crypto.getRandomValues(new Uint8Array(16))).toString( + "hex" + ); +} +function generateId() { + return Buffer3.from(crypto.getRandomValues(new Uint8Array(128))).toString( + "base64url" + ); +} +function generateMultipartEtag(md5Hexes) { + let hash = createHash("md5"); + for (let md5Hex of md5Hexes) + hash.update(md5Hex, "hex"); + return `${hash.digest("hex")}-${md5Hexes.length}`; +} +function rangeOverlaps(a, b) { + return a.start <= b.end && b.start <= a.end; +} +async function decodeMetadata(req) { + let metadataSize = parseInt(req.headers.get(R2Headers.METADATA_SIZE)); + if (Number.isNaN(metadataSize)) + throw new InvalidMetadata(); + assert2(req.body !== null); + let body = req.body, [metadataBuffer, value] = await readPrefix(body, metadataSize), metadataJson = decoder.decode(metadataBuffer); + return { metadata: R2BindingRequestSchema.parse(JSON.parse(metadataJson)), metadataSize, value }; +} +function decodeHeaderMetadata(req) { + let header = req.headers.get(R2Headers.REQUEST); + if (header === null) + throw new InvalidMetadata(); + return R2BindingRequestSchema.parse(JSON.parse(header)); +} +function encodeResult(result) { + let encoded; + return result instanceof InternalR2Object ? encoded = result.encode() : encoded = InternalR2Object.encodeMultiple(result), new Response(encoded.value, { + headers: { + [R2Headers.METADATA_SIZE]: `${encoded.metadataSize}`, + "Content-Type": "application/json" + } + }); +} +function encodeJSONResult(result) { + let encoded = JSON.stringify(result); + return new Response(encoded, { + headers: { + [R2Headers.METADATA_SIZE]: `${Buffer3.byteLength(encoded)}`, + "Content-Type": "application/json" + } + }); +} +function sqlStmts(db) { + let stmtGetPreviousByKey = db.stmt("SELECT blob_id, etag, uploaded FROM _mf_objects WHERE key = :key"), stmtGetByKey = db.stmt(` + SELECT key, blob_id, version, size, etag, uploaded, checksums, http_metadata, custom_metadata + FROM _mf_objects WHERE key = :key + `), stmtPut = db.stmt(` + INSERT OR REPLACE INTO _mf_objects (key, blob_id, version, size, etag, uploaded, checksums, http_metadata, custom_metadata) + VALUES (:key, :blob_id, :version, :size, :etag, :uploaded, :checksums, :http_metadata, :custom_metadata) + `), stmtDelete = db.stmt("DELETE FROM _mf_objects WHERE key = :key RETURNING blob_id"); + function stmtListWithoutDelimiter(...extraColumns) { + let columns = [ + "key", + "version", + "size", + "etag", + "uploaded", + "checksums", + ...extraColumns + ]; + return db.stmt(` + SELECT ${columns.join(", ")} + FROM _mf_objects + WHERE key LIKE :escaped_prefix || '%' ESCAPE '\\' + AND (:start_after IS NULL OR key > :start_after) + ORDER BY key LIMIT :limit + `); + } + let stmtGetUploadState = db.stmt( + // For checking current upload state + "SELECT state FROM _mf_multipart_uploads WHERE upload_id = :upload_id AND key = :key" + ), stmtGetUploadMetadata = db.stmt( + // For checking current upload state, and getting metadata for completion + "SELECT http_metadata, custom_metadata, state FROM _mf_multipart_uploads WHERE upload_id = :upload_id AND key = :key" + ), stmtUpdateUploadState = db.stmt( + // For completing/aborting uploads + "UPDATE _mf_multipart_uploads SET state = :state WHERE upload_id = :upload_id" + ), stmtGetPreviousPartByNumber = db.stmt( + // For getting part number's previous blob ID to garbage collect + "SELECT blob_id FROM _mf_multipart_parts WHERE upload_id = :upload_id AND part_number = :part_number" + ), stmtPutPart = db.stmt( + // For recording metadata when uploading parts + `INSERT OR REPLACE INTO _mf_multipart_parts (upload_id, part_number, blob_id, size, etag, checksum_md5) + VALUES (:upload_id, :part_number, :blob_id, :size, :etag, :checksum_md5)` + ), stmtLinkPart = db.stmt( + // For linking parts with an object when completing uploads + `UPDATE _mf_multipart_parts SET object_key = :object_key + WHERE upload_id = :upload_id AND part_number = :part_number` + ), stmtDeletePartsByUploadId = db.stmt( + // For deleting parts when aborting uploads + "DELETE FROM _mf_multipart_parts WHERE upload_id = :upload_id RETURNING blob_id" + ), stmtDeleteUnlinkedPartsByUploadId = db.stmt( + // For deleting unused parts when completing uploads + "DELETE FROM _mf_multipart_parts WHERE upload_id = :upload_id AND object_key IS NULL RETURNING blob_id" + ), stmtDeletePartsByKey = db.stmt( + // For deleting dangling parts when overwriting an existing key + "DELETE FROM _mf_multipart_parts WHERE object_key = :object_key RETURNING blob_id" + ), stmtListPartsByUploadId = db.stmt( + // For getting part metadata when completing uploads + `SELECT upload_id, part_number, blob_id, size, etag, checksum_md5, object_key + FROM _mf_multipart_parts WHERE upload_id = :upload_id` + ), stmtListPartsByKey = db.stmt( + // For getting part metadata when getting values, size included for range + // requests, so we only need to read blobs containing the required data + "SELECT blob_id, size FROM _mf_multipart_parts WHERE object_key = :object_key ORDER BY part_number" + ); + return { + getByKey: stmtGetByKey, + getPartsByKey: db.txn((key) => { + let row = get(stmtGetByKey({ key })); + if (row !== void 0) + if (row.blob_id === null) { + let partsRows = all(stmtListPartsByKey({ object_key: key })); + return { row, parts: partsRows }; + } else + return { row }; + }), + put: db.txn((newRow, onlyIf) => { + let key = newRow.key, row = get(stmtGetPreviousByKey({ key })); + onlyIf !== void 0 && validate.condition(row, onlyIf), stmtPut(newRow); + let maybeOldBlobId = row?.blob_id; + return maybeOldBlobId === void 0 ? [] : maybeOldBlobId === null ? all(stmtDeletePartsByKey({ object_key: key })).map(({ blob_id }) => blob_id) : [maybeOldBlobId]; + }), + deleteByKeys: db.txn((keys) => { + let oldBlobIds = []; + for (let key of keys) { + let maybeOldBlobId = get(stmtDelete({ key }))?.blob_id; + if (maybeOldBlobId === null) { + let partRows = stmtDeletePartsByKey({ object_key: key }); + for (let partRow of partRows) + oldBlobIds.push(partRow.blob_id); + } else + maybeOldBlobId !== void 0 && oldBlobIds.push(maybeOldBlobId); + } + return oldBlobIds; + }), + listWithoutDelimiter: stmtListWithoutDelimiter(), + listHttpMetadataWithoutDelimiter: stmtListWithoutDelimiter("http_metadata"), + listCustomMetadataWithoutDelimiter: stmtListWithoutDelimiter("custom_metadata"), + listHttpCustomMetadataWithoutDelimiter: stmtListWithoutDelimiter( + "http_metadata", + "custom_metadata" + ), + listMetadata: db.stmt(` + SELECT + -- When grouping by a delimited prefix, this will give us the last key with that prefix. + -- NOTE: we'll use this for the next cursor. If we didn't return the last key, the next page may return the + -- same delimited prefix. Essentially, we're skipping over all keys with this group's delimited prefix. + -- When grouping by a key, this will just give us the key. + max(key) AS last_key, + iif( + -- Try get 1-indexed position \`i\` of :delimiter in rest of key after :prefix... + instr(substr(key, length(:prefix) + 1), :delimiter), + -- ...if found, we have a delimited prefix of the :prefix followed by the rest of key up to and including the :delimiter + 'dlp:' || substr(key, 1, length(:prefix) + instr(substr(key, length(:prefix) + 1), :delimiter) + length(:delimiter) - 1), + -- ...otherwise, we just have a regular key + 'key:' || key + ) AS delimited_prefix_or_key, + -- NOTE: we'll ignore metadata for delimited prefix rows, so it doesn't matter which keys' we return + version, size, etag, uploaded, checksums, http_metadata, custom_metadata + FROM _mf_objects + WHERE key LIKE :escaped_prefix || '%' ESCAPE '\\' + AND (:start_after IS NULL OR key > :start_after) + GROUP BY delimited_prefix_or_key -- Group keys with same delimited prefix into a row, leaving others in their own rows + ORDER BY last_key LIMIT :limit; + `), + createMultipartUpload: db.stmt(` + INSERT INTO _mf_multipart_uploads (upload_id, key, http_metadata, custom_metadata) + VALUES (:upload_id, :key, :http_metadata, :custom_metadata) + `), + putPart: db.txn( + (key, newRow) => { + if (get( + stmtGetUploadState({ + key, + upload_id: newRow.upload_id + }) + )?.state !== MultipartUploadState.IN_PROGRESS) + throw new NoSuchUpload(); + let partRow = get( + stmtGetPreviousPartByNumber({ + upload_id: newRow.upload_id, + part_number: newRow.part_number + }) + ); + return stmtPutPart(newRow), partRow?.blob_id; + } + ), + completeMultipartUpload: db.txn( + (key, upload_id, selectedParts, minPartSize) => { + let uploadRow = get(stmtGetUploadMetadata({ key, upload_id })); + if (uploadRow === void 0) + throw new InternalError(); + if (uploadRow.state > MultipartUploadState.IN_PROGRESS) + throw new NoSuchUpload(); + let partNumberSet = /* @__PURE__ */ new Set(); + for (let { part } of selectedParts) { + if (partNumberSet.has(part)) + throw new InternalError(); + partNumberSet.add(part); + } + let uploadedPartRows = stmtListPartsByUploadId({ upload_id }), uploadedParts = /* @__PURE__ */ new Map(); + for (let row of uploadedPartRows) + uploadedParts.set(row.part_number, row); + let parts = selectedParts.map((selectedPart) => { + let uploadedPart = uploadedParts.get(selectedPart.part); + if (uploadedPart?.etag !== selectedPart.etag) + throw new InvalidPart(); + return uploadedPart; + }); + for (let part of parts.slice(0, -1)) + if (part.size < minPartSize) + throw new EntityTooSmall(); + parts.sort((a, b) => a.part_number - b.part_number); + let partSize; + for (let part of parts.slice(0, -1)) + if (partSize ??= part.size, part.size < minPartSize || part.size !== partSize) + throw new BadUpload(); + if (partSize !== void 0 && parts[parts.length - 1].size > partSize) + throw new BadUpload(); + let oldBlobIds = [], maybeOldBlobId = get(stmtGetPreviousByKey({ key }))?.blob_id; + if (maybeOldBlobId === null) { + let partRows2 = stmtDeletePartsByKey({ object_key: key }); + for (let partRow of partRows2) + oldBlobIds.push(partRow.blob_id); + } else + maybeOldBlobId !== void 0 && oldBlobIds.push(maybeOldBlobId); + let totalSize = parts.reduce((acc, { size }) => acc + size, 0), etag = generateMultipartEtag( + parts.map(({ checksum_md5 }) => checksum_md5) + ), newRow = { + key, + blob_id: null, + version: generateVersion(), + size: totalSize, + etag, + uploaded: Date.now(), + checksums: "{}", + http_metadata: uploadRow.http_metadata, + custom_metadata: uploadRow.custom_metadata + }; + stmtPut(newRow); + for (let part of parts) + stmtLinkPart({ + upload_id, + part_number: part.part_number, + object_key: key + }); + let partRows = stmtDeleteUnlinkedPartsByUploadId({ upload_id }); + for (let partRow of partRows) + oldBlobIds.push(partRow.blob_id); + return stmtUpdateUploadState({ + upload_id, + state: MultipartUploadState.COMPLETED + }), { newRow, oldBlobIds }; + } + ), + abortMultipartUpload: db.txn((key, upload_id) => { + let uploadRow = get(stmtGetUploadState({ key, upload_id })); + if (uploadRow === void 0) + throw new InternalError(); + if (uploadRow.state > MultipartUploadState.IN_PROGRESS) + return []; + let oldBlobIds = all(stmtDeletePartsByUploadId({ upload_id })).map(({ blob_id }) => blob_id); + return stmtUpdateUploadState({ + upload_id, + state: MultipartUploadState.ABORTED + }), oldBlobIds; + }) + }; +} +var R2BucketObject = class extends MiniflareDurableObject { + #stmts; + // Multipart uploads are stored as multiple blobs. Therefore, when reading a + // multipart upload, we'll be reading multiple blobs. When an object is + // deleted, all its blobs are deleted in the background. + // + // Normally for single part objects, this is fine, since we'd open a handle to + // a single blob, which we'd have until we closed it, at which point the blob + // may be deleted. With multipart, we don't want to open handles for all blobs + // as we could hit open file descriptor limits. Similarly, we don't want to + // read all blobs first, as we'd have to buffer them. + // + // Instead, we set up in-process locking on blobs needed for multipart reads. + // When we start a multipart read, we acquire all the blobs we need, then + // release them as we've streamed each part. Multiple multipart reads may be + // in-progress at any given time, so we use a wait group. + // + // This assumes we only ever have a single Miniflare instance operating on a + // blob store, which is always true for in-memory stores, and usually true for + // on-disk ones. If we really wanted to do this properly, we could store the + // bookkeeping for the wait group in SQLite, but then we'd have to implement + // some inter-process signalling/subscription system. + #inUseBlobs = /* @__PURE__ */ new Map(); + constructor(state, env) { + super(state, env), this.db.exec("PRAGMA case_sensitive_like = TRUE"), this.db.exec(SQL_SCHEMA), this.#stmts = sqlStmts(this.db); + } + #acquireBlob(blobId) { + let waitGroup = this.#inUseBlobs.get(blobId); + waitGroup === void 0 ? (waitGroup = new WaitGroup(), this.#inUseBlobs.set(blobId, waitGroup), waitGroup.add(), waitGroup.wait().then(() => this.#inUseBlobs.delete(blobId))) : waitGroup.add(); + } + #releaseBlob(blobId) { + this.#inUseBlobs.get(blobId)?.done(); + } + #backgroundDelete(blobId) { + this.timers.queueMicrotask(async () => (await this.#inUseBlobs.get(blobId)?.wait(), this.blob.delete(blobId).catch((e) => { + console.error("R2BucketObject##backgroundDelete():", e); + }))); + } + #assembleMultipartValue(parts, queryRange) { + let requiredParts = [], start = 0; + for (let part of parts) { + let partRange = { start, end: start + part.size - 1 }; + if (rangeOverlaps(partRange, queryRange)) { + let range = { + start: Math.max(partRange.start, queryRange.start) - partRange.start, + end: Math.min(partRange.end, queryRange.end) - partRange.start + }; + this.#acquireBlob(part.blob_id), requiredParts.push({ blobId: part.blob_id, range }); + } + start = partRange.end + 1; + } + let identity2 = new TransformStream(); + return (async () => { + let i = 0; + try { + for (; i < requiredParts.length; i++) { + let { blobId, range } = requiredParts[i], value = await this.blob.get(blobId, range), msg = `Expected to find blob "${blobId}" for multipart value`; + assert2(value !== null, msg), await value.pipeTo(identity2.writable, { preventClose: !0 }), this.#releaseBlob(blobId); + } + await identity2.writable.close(); + } catch (e) { + await identity2.writable.abort(e); + } finally { + for (; i < requiredParts.length; i++) + this.#releaseBlob(requiredParts[i].blobId); + } + })(), identity2.readable; + } + async #head(key) { + validate.key(key); + let row = get(this.#stmts.getByKey({ key })); + if (row === void 0) + throw new NoSuchKey(); + let range = { offset: 0, length: row.size }; + return new InternalR2Object(row, range); + } + async #get(key, opts) { + validate.key(key); + let result = this.#stmts.getPartsByKey(key); + if (result === void 0) + throw new NoSuchKey(); + let { row, parts } = result, defaultR2Range = { offset: 0, length: row.size }; + try { + validate.condition(row, opts.onlyIf); + } catch (e) { + throw e instanceof PreconditionFailed && e.attach(new InternalR2Object(row, defaultR2Range)), e; + } + let range = validate.range(opts, row.size), r2Range; + if (range === void 0) + r2Range = defaultR2Range; + else { + let start = range.start, end = Math.min(range.end, row.size); + r2Range = { offset: start, length: end - start + 1 }; + } + let value; + if (row.blob_id === null) { + assert2(parts !== void 0); + let defaultRange = { start: 0, end: row.size - 1 }; + value = this.#assembleMultipartValue(parts, range ?? defaultRange); + } else if (value = await this.blob.get(row.blob_id, range), value === null) + throw new NoSuchKey(); + return new InternalR2ObjectBody(row, value, r2Range); + } + async #put(key, value, valueSize, opts) { + let algorithms = []; + for (let { name, field } of R2_HASH_ALGORITHMS) + (field === "md5" || opts[field] !== void 0) && algorithms.push(name); + let digesting = new DigestingStream(algorithms), blobId = await this.blob.put(value.pipeThrough(digesting)), digests = await digesting.digests, md5Digest = digests.get("MD5"); + assert2(md5Digest !== void 0); + let md5DigestHex = md5Digest.toString("hex"), checksums = validate.key(key).size(valueSize).metadataSize(opts.customMetadata).hash(digests, opts), row = { + key, + blob_id: blobId, + version: generateVersion(), + size: valueSize, + etag: md5DigestHex, + uploaded: Date.now(), + checksums: JSON.stringify(checksums), + http_metadata: JSON.stringify(opts.httpMetadata ?? {}), + custom_metadata: JSON.stringify(opts.customMetadata ?? {}) + }, oldBlobIds; + try { + oldBlobIds = this.#stmts.put(row, opts.onlyIf); + } catch (e) { + throw this.#backgroundDelete(blobId), e; + } + if (oldBlobIds !== void 0) + for (let blobId2 of oldBlobIds) + this.#backgroundDelete(blobId2); + return new InternalR2Object(row); + } + #delete(keys) { + Array.isArray(keys) || (keys = [keys]); + for (let key of keys) + validate.key(key); + let oldBlobIds = this.#stmts.deleteByKeys(keys); + for (let blobId of oldBlobIds) + this.#backgroundDelete(blobId); + } + #listWithoutDelimiterQuery(excludeHttp, excludeCustom) { + return excludeHttp && excludeCustom ? this.#stmts.listWithoutDelimiter : excludeHttp ? this.#stmts.listCustomMetadataWithoutDelimiter : excludeCustom ? this.#stmts.listHttpMetadataWithoutDelimiter : this.#stmts.listHttpCustomMetadataWithoutDelimiter; + } + async #list(opts) { + let prefix = opts.prefix ?? "", limit = opts.limit ?? R2Limits.MAX_LIST_KEYS; + validate.limit(limit); + let include = opts.include ?? []; + include.length > 0 && (limit = Math.min(limit, 100)); + let excludeHttp = !include.includes("httpMetadata"), excludeCustom = !include.includes("customMetadata"), rowObject = (row) => ((row.http_metadata === void 0 || excludeHttp) && (row.http_metadata = "{}"), (row.custom_metadata === void 0 || excludeCustom) && (row.custom_metadata = "{}"), new InternalR2Object(row)), startAfter = opts.startAfter; + if (opts.cursor !== void 0) { + let cursorStartAfter = base64Decode(opts.cursor); + (startAfter === void 0 || cursorStartAfter > startAfter) && (startAfter = cursorStartAfter); + } + let delimiter = opts.delimiter; + delimiter === "" && (delimiter = void 0); + let params = { + escaped_prefix: escapeLike(prefix), + start_after: startAfter ?? null, + // Increase the queried limit by 1, if we return this many results, we + // know there are more rows. We'll truncate to the original limit before + // returning results. + limit: limit + 1 + }, objects, delimitedPrefixes = [], nextCursorStartAfter; + if (delimiter !== void 0) { + let rows = all( + this.#stmts.listMetadata({ ...params, prefix, delimiter }) + ), hasMoreRows = rows.length === limit + 1; + rows.splice(limit, 1), objects = []; + for (let row of rows) + row.delimited_prefix_or_key.startsWith("dlp:") ? delimitedPrefixes.push(row.delimited_prefix_or_key.substring(4)) : objects.push(rowObject({ ...row, key: row.last_key })); + hasMoreRows && (nextCursorStartAfter = rows[limit - 1].last_key); + } else { + let query = this.#listWithoutDelimiterQuery(excludeHttp, excludeCustom), rows = all(query(params)), hasMoreRows = rows.length === limit + 1; + rows.splice(limit, 1), objects = rows.map(rowObject), hasMoreRows && (nextCursorStartAfter = rows[limit - 1].key); + } + let nextCursor = maybeApply(base64Encode, nextCursorStartAfter); + return { + objects, + truncated: nextCursor !== void 0, + cursor: nextCursor, + delimitedPrefixes + }; + } + async #createMultipartUpload(key, opts) { + validate.key(key); + let uploadId = generateId(); + return this.#stmts.createMultipartUpload({ + key, + upload_id: uploadId, + http_metadata: JSON.stringify(opts.httpMetadata ?? {}), + custom_metadata: JSON.stringify(opts.customMetadata ?? {}) + }), { uploadId }; + } + async #uploadPart(key, uploadId, partNumber, value, valueSize) { + validate.key(key); + let digesting = new DigestingStream(["MD5"]), blobId = await this.blob.put(value.pipeThrough(digesting)), md5Digest = (await digesting.digests).get("MD5"); + assert2(md5Digest !== void 0); + let etag = generateId(), maybeOldBlobId; + try { + maybeOldBlobId = this.#stmts.putPart(key, { + upload_id: uploadId, + part_number: partNumber, + blob_id: blobId, + size: valueSize, + etag, + checksum_md5: md5Digest.toString("hex") + }); + } catch (e) { + throw this.#backgroundDelete(blobId), e; + } + return maybeOldBlobId !== void 0 && this.#backgroundDelete(maybeOldBlobId), { etag }; + } + async #completeMultipartUpload(key, uploadId, parts) { + validate.key(key); + let minPartSize = this.beingTested ? R2Limits.MIN_MULTIPART_PART_SIZE_TEST : R2Limits.MIN_MULTIPART_PART_SIZE, { newRow, oldBlobIds } = this.#stmts.completeMultipartUpload( + key, + uploadId, + parts, + minPartSize + ); + for (let blobId of oldBlobIds) + this.#backgroundDelete(blobId); + return new InternalR2Object(newRow); + } + async #abortMultipartUpload(key, uploadId) { + validate.key(key); + let oldBlobIds = this.#stmts.abortMultipartUpload(key, uploadId); + for (let blobId of oldBlobIds) + this.#backgroundDelete(blobId); + } + get = async (req) => { + let metadata = decodeHeaderMetadata(req), result; + if (metadata.method === "head") + result = await this.#head(metadata.object); + else if (metadata.method === "get") + result = await this.#get(metadata.object, metadata); + else if (metadata.method === "list") + result = await this.#list(metadata); + else + throw new InternalError(); + return encodeResult(result); + }; + put = async (req) => { + let { metadata, metadataSize, value } = await decodeMetadata(req); + if (metadata.method === "delete") + return await this.#delete( + "object" in metadata ? metadata.object : metadata.objects + ), new Response(); + if (metadata.method === "put") { + let contentLength = parseInt(req.headers.get("Content-Length")); + assert2(!isNaN(contentLength)); + let valueSize = contentLength - metadataSize, result = await this.#put( + metadata.object, + value, + valueSize, + metadata + ); + return encodeResult(result); + } else if (metadata.method === "createMultipartUpload") { + let result = await this.#createMultipartUpload( + metadata.object, + metadata + ); + return encodeJSONResult(result); + } else if (metadata.method === "uploadPart") { + let contentLength = parseInt(req.headers.get("Content-Length")); + assert2(!isNaN(contentLength)); + let valueSize = contentLength - metadataSize, result = await this.#uploadPart( + metadata.object, + metadata.uploadId, + metadata.partNumber, + value, + valueSize + ); + return encodeJSONResult(result); + } else if (metadata.method === "completeMultipartUpload") { + let result = await this.#completeMultipartUpload( + metadata.object, + metadata.uploadId, + metadata.parts + ); + return encodeResult(result); + } else { + if (metadata.method === "abortMultipartUpload") + return await this.#abortMultipartUpload(metadata.object, metadata.uploadId), new Response(); + throw new InternalError(); + } + }; +}; +__decorateClass([ + GET("/") +], R2BucketObject.prototype, "get", 2), __decorateClass([ + PUT("/") +], R2BucketObject.prototype, "put", 2); +export { + R2BucketObject +}; +//# sourceMappingURL=bucket.worker.js.map diff --git a/node_modules/miniflare/dist/src/workers/r2/bucket.worker.js.map b/node_modules/miniflare/dist/src/workers/r2/bucket.worker.js.map new file mode 100644 index 0000000..d0c6155 --- /dev/null +++ b/node_modules/miniflare/dist/src/workers/r2/bucket.worker.js.map @@ -0,0 +1,6 @@ +{ + "version": 3, + "sources": ["../../../../src/workers/r2/bucket.worker.ts", "../../../../src/workers/r2/constants.ts", "../../../../src/workers/r2/errors.worker.ts", "../../../../src/workers/r2/r2Object.worker.ts", "../../../../src/workers/r2/schemas.worker.ts", "../../../../src/workers/r2/validator.worker.ts"], + "mappings": "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", + "names": ["assert", "Buffer", "identity", "Buffer", "ifMatch", "ifModifiedSince", "Buffer", "Buffer", "assert", "partRows", "identity", "blobId"] +} diff --git a/node_modules/miniflare/dist/src/workers/shared/index.worker.js b/node_modules/miniflare/dist/src/workers/shared/index.worker.js new file mode 100644 index 0000000..1fb902c --- /dev/null +++ b/node_modules/miniflare/dist/src/workers/shared/index.worker.js @@ -0,0 +1,706 @@ +// packages/miniflare/src/workers/shared/blob.worker.ts +import assert from "node-internal:internal_assert"; +import { Buffer as Buffer2 } from "node-internal:internal_buffer"; + +// packages/miniflare/src/workers/shared/data.ts +import { Buffer } from "node-internal:internal_buffer"; +function viewToBuffer(view) { + return view.buffer.slice(view.byteOffset, view.byteOffset + view.byteLength); +} +function base64Encode(value) { + return Buffer.from(value, "utf8").toString("base64"); +} +function base64Decode(encoded) { + return Buffer.from(encoded, "base64").toString("utf8"); +} +var dotRegexp = /(^|\/|\\)(\.+)(\/|\\|$)/g, illegalRegexp = /[?<>*"'^/\\:|\x00-\x1f\x80-\x9f]/g, windowsReservedRegexp = /^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\..*)?$/i, leadingRegexp = /^[ /\\]+/, trailingRegexp = /[ /\\]+$/; +function dotReplacement(match, g1, g2, g3) { + return `${g1}${"".padStart(g2.length, "_")}${g3}`; +} +function underscoreReplacement(match) { + return "".padStart(match.length, "_"); +} +function sanitisePath(unsafe) { + return unsafe.replace(dotRegexp, dotReplacement).replace(dotRegexp, dotReplacement).replace(illegalRegexp, "_").replace(windowsReservedRegexp, "_").replace(leadingRegexp, underscoreReplacement).replace(trailingRegexp, underscoreReplacement).substring(0, 255); +} + +// packages/miniflare/src/workers/shared/blob.worker.ts +var ENCODER = new TextEncoder(); +async function readPrefix(stream, prefixLength) { + let reader = await stream.getReader({ mode: "byob" }), result = await reader.readAtLeast( + prefixLength, + new Uint8Array(prefixLength) + ); + assert(result.value !== void 0), reader.releaseLock(); + let rest = stream.pipeThrough(new IdentityTransformStream()); + return [result.value, rest]; +} +function rangeHeaders(range) { + return { Range: `bytes=${range.start}-${range.end}` }; +} +function assertFullRangeRequest(range, contentLength) { + assert( + range.start === 0 && range.end === contentLength - 1, + "Received full content, but requested partial content" + ); +} +async function fetchSingleRange(fetcher, url, range) { + let headers = range === void 0 ? {} : rangeHeaders(range), res = await fetcher.fetch(url, { headers }); + if (res.status === 404) + return null; + if (assert(res.ok && res.body !== null), range !== void 0 && res.status !== 206) { + let contentLength = parseInt(res.headers.get("Content-Length")); + assert(!Number.isNaN(contentLength)), assertFullRangeRequest(range, contentLength); + } + return res.body; +} +async function writeMultipleRanges(fetcher, url, ranges, boundary, writable, contentLength, contentType) { + for (let i = 0; i < ranges.length; i++) { + let range = ranges[i], writer2 = writable.getWriter(); + i > 0 && await writer2.write(ENCODER.encode(`\r +`)), await writer2.write(ENCODER.encode(`--${boundary}\r +`)), contentType !== void 0 && await writer2.write(ENCODER.encode(`Content-Type: ${contentType}\r +`)); + let start = range.start, end = Math.min(range.end, contentLength - 1); + await writer2.write( + ENCODER.encode( + `Content-Range: bytes ${start}-${end}/${contentLength}\r +\r +` + ) + ), writer2.releaseLock(); + let res = await fetcher.fetch(url, { headers: rangeHeaders(range) }); + assert( + res.ok && res.body !== null, + `Failed to fetch ${url}[${range.start},${range.end}], received ${res.status} ${res.statusText}` + ), res.status !== 206 && assertFullRangeRequest(range, contentLength), await res.body.pipeTo(writable, { preventClose: !0 }); + } + let writer = writable.getWriter(); + ranges.length > 0 && await writer.write(ENCODER.encode(`\r +`)), await writer.write(ENCODER.encode(`--${boundary}--`)), await writer.close(); +} +async function fetchMultipleRanges(fetcher, url, ranges, opts) { + let res = await fetcher.fetch(url, { method: "HEAD" }); + if (res.status === 404) + return null; + assert(res.ok); + let contentLength = parseInt(res.headers.get("Content-Length")); + assert(!Number.isNaN(contentLength)); + let boundary = `miniflare-boundary-${crypto.randomUUID()}`, multipartContentType = `multipart/byteranges; boundary=${boundary}`, { readable, writable } = new IdentityTransformStream(); + return writeMultipleRanges( + fetcher, + url, + ranges, + boundary, + writable, + contentLength, + opts?.contentType + ).catch((e) => console.error("Error writing multipart stream:", e)), { multipartContentType, body: readable }; +} +async function fetchRange(fetcher, url, range, opts) { + return Array.isArray(range) ? fetchMultipleRanges(fetcher, url, range, opts) : fetchSingleRange(fetcher, url, range); +} +function generateBlobId() { + let idBuffer = Buffer2.alloc(40); + return crypto.getRandomValues( + new Uint8Array(idBuffer.buffer, idBuffer.byteOffset, 32) + ), idBuffer.writeBigInt64BE( + BigInt(performance.timeOrigin + performance.now()), + 32 + ), idBuffer.toString("hex"); +} +var BlobStore = class { + // Database for binary large objects. Provides single and multi-ranged + // streaming reads and writes. + // + // Blobs have unguessable identifiers, can be deleted, but are otherwise + // immutable. These properties make it possible to perform atomic updates with + // the SQLite metadata store. No other operations will be able to interact + // with the blob until it's committed to the metadata store, because they + // won't be able to guess the ID, and we don't allow listing blobs. + // + // For example, if we put a blob in the store, then fail to insert the blob ID + // into the SQLite database for some reason during a transaction (e.g. + // `onlyIf` condition failed), no other operations can read that blob because + // the ID is lost (we'll just background-delete the blob in this case). + #fetcher; + #baseURL; + constructor(fetcher, namespace) { + namespace = encodeURIComponent(sanitisePath(namespace)), this.#fetcher = fetcher, this.#baseURL = `http://placeholder/${namespace}/blobs/`; + } + idURL(id) { + let url = new URL(this.#baseURL + id); + return url.toString().startsWith(this.#baseURL) ? url : null; + } + async get(id, range, opts) { + let idURL = this.idURL(id); + return idURL === null ? null : fetchRange(this.#fetcher, idURL, range, opts); + } + async put(stream) { + let id = generateBlobId(), idURL = this.idURL(id); + return assert(idURL !== null), await this.#fetcher.fetch(idURL, { + method: "PUT", + body: stream + }), id; + } + async delete(id) { + let idURL = this.idURL(id); + if (idURL === null) + return; + let res = await this.#fetcher.fetch(idURL, { method: "DELETE" }); + assert(res.ok || res.status === 404); + } +}; + +// packages/miniflare/src/workers/shared/constants.ts +var SharedHeaders = { + LOG_LEVEL: "MF-Log-Level" +}, SharedBindings = { + TEXT_NAMESPACE: "MINIFLARE_NAMESPACE", + DURABLE_OBJECT_NAMESPACE_OBJECT: "MINIFLARE_OBJECT", + MAYBE_SERVICE_BLOBS: "MINIFLARE_BLOBS", + MAYBE_SERVICE_LOOPBACK: "MINIFLARE_LOOPBACK" +}, LogLevel = /* @__PURE__ */ ((LogLevel3) => (LogLevel3[LogLevel3.NONE = 0] = "NONE", LogLevel3[LogLevel3.ERROR = 1] = "ERROR", LogLevel3[LogLevel3.WARN = 2] = "WARN", LogLevel3[LogLevel3.INFO = 3] = "INFO", LogLevel3[LogLevel3.DEBUG = 4] = "DEBUG", LogLevel3[LogLevel3.VERBOSE = 5] = "VERBOSE", LogLevel3))(LogLevel || {}); + +// packages/miniflare/src/workers/shared/keyvalue.worker.ts +import assert3 from "node-internal:internal_assert"; + +// packages/miniflare/src/workers/shared/sql.worker.ts +import assert2 from "node-internal:internal_assert"; +function isTypedValue(value) { + return value === null || typeof value == "string" || typeof value == "number" || value instanceof ArrayBuffer; +} +function createStatementFactory(sql) { + return (query) => { + let keyIndices = /* @__PURE__ */ new Map(); + query = query.replace(/[:@$]([a-z0-9_]+)/gi, (_, name) => { + let index = keyIndices.get(name); + return index === void 0 && (index = keyIndices.size, keyIndices.set(name, index)), `?${index + 1}`; + }); + let stmt = sql.prepare(query); + return (argsObject) => { + let entries = Object.entries(argsObject); + assert2.strictEqual( + entries.length, + keyIndices.size, + "Expected same number of keys in bindings and query" + ); + let argsArray = new Array(entries.length); + for (let [key, value] of entries) { + let index = keyIndices.get(key); + assert2(index !== void 0, `Unexpected binding key: ${key}`), argsArray[index] = value; + } + return stmt(...argsArray); + }; + }; +} +function createTransactionFactory(storage) { + return (closure) => (...args) => storage.transactionSync(() => closure(...args)); +} +function createTypedSql(storage) { + let sql = storage.sql; + return sql.stmt = createStatementFactory(sql), sql.txn = createTransactionFactory(storage), sql; +} +function get(cursor) { + let result; + for (let row of cursor) + result ??= row; + return result; +} +function all(cursor) { + return Array.from(cursor); +} +function drain(cursor) { + for (let _ of cursor) + ; +} +function escapeLike(prefix) { + return prefix.replace(/[\\_%]/g, "\\$&"); +} + +// packages/miniflare/src/workers/shared/keyvalue.worker.ts +var SQL_SCHEMA = ` +CREATE TABLE IF NOT EXISTS _mf_entries ( + key TEXT PRIMARY KEY, + blob_id TEXT NOT NULL, + expiration INTEGER, + metadata TEXT +); +CREATE INDEX IF NOT EXISTS _mf_entries_expiration_idx ON _mf_entries(expiration); +`; +function sqlStmts(db) { + let stmtGetBlobIdByKey = db.stmt( + "SELECT blob_id FROM _mf_entries WHERE :key" + ), stmtPut = db.stmt( + `INSERT OR REPLACE INTO _mf_entries (key, blob_id, expiration, metadata) + VALUES (:key, :blob_id, :expiration, :metadata)` + ); + return { + getByKey: db.prepare( + "SELECT key, blob_id, expiration, metadata FROM _mf_entries WHERE key = ?1" + ), + put: db.txn((newEntry) => { + let key = newEntry.key, previousEntry = get(stmtGetBlobIdByKey({ key })); + return stmtPut(newEntry), previousEntry?.blob_id; + }), + deleteByKey: db.stmt( + "DELETE FROM _mf_entries WHERE key = :key RETURNING blob_id, expiration" + ), + deleteExpired: db.stmt( + // `expiration` may be `NULL`, but `NULL < ...` should be falsy + "DELETE FROM _mf_entries WHERE expiration < :now RETURNING blob_id" + ), + list: db.stmt( + `SELECT key, expiration, metadata FROM _mf_entries + WHERE key LIKE :escaped_prefix || '%' ESCAPE '\\' + AND key > :start_after + AND (expiration IS NULL OR expiration >= :now) + ORDER BY key LIMIT :limit` + ) + }; +} +function escapePrefix(prefix) { + return prefix.replace(/[\\_%]/g, "\\$&"); +} +function rowEntry(entry) { + return { + key: entry.key, + expiration: entry.expiration ?? void 0, + metadata: entry.metadata === null ? void 0 : JSON.parse(entry.metadata) + }; +} +var KeyValueStorage = class { + #stmts; + #blob; + #timers; + constructor(object) { + object.db.exec("PRAGMA case_sensitive_like = TRUE"), object.db.exec(SQL_SCHEMA), this.#stmts = sqlStmts(object.db), this.#blob = object.blob, this.#timers = object.timers; + } + #hasExpired(entry) { + return entry.expiration !== null && entry.expiration <= this.#timers.now(); + } + #backgroundDelete(blobId) { + this.#timers.queueMicrotask( + () => this.#blob.delete(blobId).catch(() => { + }) + ); + } + async get(key, optsFactory) { + let row = get(this.#stmts.getByKey(key)); + if (row === void 0) + return null; + if (this.#hasExpired(row)) + return drain(this.#stmts.deleteByKey({ key })), this.#backgroundDelete(row.blob_id), null; + let entry = rowEntry(row), opts = entry.metadata && optsFactory?.(entry.metadata); + if (opts?.ranges === void 0 || opts.ranges.length <= 1) { + let value = await this.#blob.get(row.blob_id, opts?.ranges?.[0]); + return value === null ? null : { ...entry, value }; + } else { + let value = await this.#blob.get(row.blob_id, opts.ranges, opts); + return value === null ? null : { ...entry, value }; + } + } + async put(entry) { + assert3(entry.key !== ""); + let blobId = await this.#blob.put(entry.value); + entry.signal?.aborted && (this.#backgroundDelete(blobId), entry.signal.throwIfAborted()); + let maybeOldBlobId = this.#stmts.put({ + key: entry.key, + blob_id: blobId, + expiration: entry.expiration ?? null, + metadata: entry.metadata === void 0 ? null : JSON.stringify(await entry.metadata) + }); + maybeOldBlobId !== void 0 && this.#backgroundDelete(maybeOldBlobId); + } + async delete(key) { + let cursor = this.#stmts.deleteByKey({ key }), row = get(cursor); + return row === void 0 ? !1 : (this.#backgroundDelete(row.blob_id), !this.#hasExpired(row)); + } + async list(opts) { + let now = this.#timers.now(), escaped_prefix = escapePrefix(opts.prefix ?? ""), start_after = opts.cursor === void 0 ? "" : base64Decode(opts.cursor), limit = opts.limit + 1, rowsCursor = this.#stmts.list({ + now, + escaped_prefix, + start_after, + limit + }), rows = Array.from(rowsCursor), expiredRows = this.#stmts.deleteExpired({ now }); + for (let row of expiredRows) + this.#backgroundDelete(row.blob_id); + let hasMoreRows = rows.length === opts.limit + 1; + rows.splice(opts.limit, 1); + let keys = rows.map((row) => rowEntry(row)), nextCursor = hasMoreRows ? base64Encode(rows[opts.limit - 1].key) : void 0; + return { keys, cursor: nextCursor }; + } +}; + +// packages/miniflare/src/workers/shared/matcher.ts +function testRegExps(matcher, value) { + for (let exclude of matcher.exclude) + if (exclude.test(value)) + return !1; + for (let include of matcher.include) + if (include.test(value)) + return !0; + return !1; +} + +// packages/miniflare/src/workers/shared/object.worker.ts +import assert5 from "node-internal:internal_assert"; + +// packages/miniflare/src/workers/shared/router.worker.ts +var HttpError = class extends Error { + constructor(code, message) { + super(message); + this.code = code; + Object.setPrototypeOf(this, new.target.prototype), this.name = `${new.target.name} [${code}]`; + } + toResponse() { + return new Response(this.message, { + status: this.code, + // Custom statusMessage is required for runtime error messages + statusText: this.message.substring(0, 512) + }); + } +}, kRoutesTemplate = Symbol("kRoutesTemplate"), Router = class { + // Routes added by @METHOD decorators + #routes; + constructor() { + this.#routes = new.target.prototype[kRoutesTemplate]; + } + async fetch(req) { + let url = new URL(req.url), methodRoutes = this.#routes?.get(req.method); + if (methodRoutes === void 0) + return new Response(null, { status: 405 }); + let handlers = this; + try { + for (let [path, key] of methodRoutes) { + let match = path.exec(url.pathname); + if (match !== null) + return await handlers[key](req, match.groups, url); + } + return new Response(null, { status: 404 }); + } catch (e) { + if (e instanceof HttpError) + return e.toResponse(); + throw e; + } + } +}; +function pathToRegexp(path) { + return path === void 0 ? /^.*$/ : (path.endsWith("/") || (path += "/?"), path = path.replace(/\//g, "\\/"), path = path.replace(/:(\w+)/g, "(?<$1>[^\\/]+)"), new RegExp(`^${path}$`)); +} +var createRouteDecorator = (method) => (path) => (prototype, key) => { + let route = [pathToRegexp(path), key], routes = prototype[kRoutesTemplate] ??= /* @__PURE__ */ new Map(), methodRoutes = routes.get(method); + methodRoutes ? methodRoutes.push(route) : routes.set(method, [route]); +}, GET = createRouteDecorator("GET"), HEAD = createRouteDecorator("HEAD"), POST = createRouteDecorator("POST"), PUT = createRouteDecorator("PUT"), DELETE = createRouteDecorator("DELETE"), PURGE = createRouteDecorator("PURGE"), PATCH = createRouteDecorator("PATCH"); + +// packages/miniflare/src/workers/shared/timers.worker.ts +import assert4 from "node-internal:internal_assert"; +var kFakeTimerHandle = Symbol("kFakeTimerHandle"), Timers = class { + // Fake unix time in milliseconds. If defined, fake timers will be enabled. + #fakeTimestamp; + #fakeNextTimerHandle = 0; + #fakePendingTimeouts = /* @__PURE__ */ new Map(); + #fakeRunningTasks = /* @__PURE__ */ new Set(); + // Timers API + now = () => this.#fakeTimestamp ?? Date.now(); + setTimeout(closure, delay, ...args) { + if (this.#fakeTimestamp === void 0) + return setTimeout(closure, delay, ...args); + let handle = this.#fakeNextTimerHandle++, argsClosure = () => closure(...args); + if (delay === 0) + this.queueMicrotask(argsClosure); + else { + let timeout = { + triggerTimestamp: this.#fakeTimestamp + delay, + closure: argsClosure + }; + this.#fakePendingTimeouts.set(handle, timeout); + } + return { [kFakeTimerHandle]: handle }; + } + clearTimeout(handle) { + if (typeof handle == "number") + return clearTimeout(handle); + this.#fakePendingTimeouts.delete(handle[kFakeTimerHandle]); + } + queueMicrotask(closure) { + if (this.#fakeTimestamp === void 0) + return queueMicrotask(closure); + let result = closure(); + result instanceof Promise && (this.#fakeRunningTasks.add(result), result.finally(() => this.#fakeRunningTasks.delete(result))); + } + // Fake Timers Control API + #runPendingTimeouts() { + if (this.#fakeTimestamp !== void 0) + for (let [handle, timeout] of this.#fakePendingTimeouts) + timeout.triggerTimestamp <= this.#fakeTimestamp && (this.#fakePendingTimeouts.delete(handle), this.queueMicrotask(timeout.closure)); + } + enableFakeTimers(timestamp) { + this.#fakeTimestamp = timestamp, this.#runPendingTimeouts(); + } + disableFakeTimers() { + this.#fakeTimestamp = void 0, this.#fakePendingTimeouts.clear(); + } + advanceFakeTime(delta) { + assert4( + this.#fakeTimestamp !== void 0, + "Expected fake timers to be enabled before `advanceFakeTime()` call" + ), this.#fakeTimestamp += delta, this.#runPendingTimeouts(); + } + async waitForFakeTasks() { + for (; this.#fakeRunningTasks.size > 0; ) + await Promise.all(this.#fakeRunningTasks); + } +}; + +// packages/miniflare/src/workers/shared/types.ts +function reduceError(e) { + return { + name: e?.name, + message: e?.message ?? String(e), + stack: e?.stack, + cause: e?.cause === void 0 ? void 0 : reduceError(e.cause) + }; +} +function maybeApply(f, maybeValue) { + return maybeValue === void 0 ? void 0 : f(maybeValue); +} + +// packages/miniflare/src/workers/shared/object.worker.ts +var MiniflareDurableObject = class extends Router { + constructor(state, env) { + super(); + this.state = state; + this.env = env; + } + timers = new Timers(); + // If this Durable Object receives a control op, assume it's being tested. + // We use this to adjust some limits in tests. + beingTested = !1; + #db; + get db() { + return this.#db ??= createTypedSql(this.state.storage); + } + #name; + get name() { + return assert5( + this.#name !== void 0, + "Expected `MiniflareDurableObject#fetch()` call before `name` access" + ), this.#name; + } + #blob; + get blob() { + if (this.#blob !== void 0) + return this.#blob; + let maybeBlobsService = this.env[SharedBindings.MAYBE_SERVICE_BLOBS]; + return assert5( + maybeBlobsService !== void 0, + `Expected ${SharedBindings.MAYBE_SERVICE_BLOBS} service binding` + ), this.#blob = new BlobStore(maybeBlobsService, this.name), this.#blob; + } + async logWithLevel(level, message) { + await this.env[SharedBindings.MAYBE_SERVICE_LOOPBACK]?.fetch( + "http://localhost/core/log", + { + method: "POST", + headers: { [SharedHeaders.LOG_LEVEL]: level.toString() }, + body: message + } + ); + } + async #handleControlOp({ + name, + args + }) { + if (this.beingTested = !0, name === "sqlQuery") { + assert5(args !== void 0); + let [query, ...params] = args; + assert5(typeof query == "string"), assert5(params.every(isTypedValue)); + let results = all(this.db.prepare(query)(...params)); + return Response.json(results); + } else if (name === "getBlob") { + assert5(args !== void 0); + let [id] = args; + assert5(typeof id == "string"); + let stream = await this.blob.get(id); + return new Response(stream, { status: stream === null ? 404 : 200 }); + } else { + let func = this.timers[name]; + assert5(typeof func == "function"); + let result = await func.apply(this.timers, args); + return Response.json(result ?? null); + } + } + async fetch(req) { + let controlOp = req?.cf?.miniflare?.controlOp; + if (controlOp !== void 0) + return this.#handleControlOp(controlOp); + let name = req.cf?.miniflare?.name; + assert5(name !== void 0, "Expected `cf.miniflare.name`"), this.#name = name; + try { + return await super.fetch(req); + } catch (e) { + let error = reduceError(e), fallback = error.stack ?? error.message, loopbackService = this.env[SharedBindings.MAYBE_SERVICE_LOOPBACK]; + return loopbackService !== void 0 ? loopbackService.fetch("http://localhost/core/error", { + method: "POST", + body: JSON.stringify(error) + }).catch(() => { + console.error(fallback); + }) : console.error(fallback), new Response(fallback, { status: 500 }); + } finally { + req.body !== null && !req.bodyUsed && await req.body.pipeTo(new WritableStream()); + } + } +}; + +// packages/miniflare/src/workers/shared/range.ts +var rangePrefixRegexp = /^ *bytes *=/i, rangeRegexp = /^ *(?<start>\d+)? *- *(?<end>\d+)? *$/; +function parseRanges(rangeHeader, length) { + let prefixMatch = rangePrefixRegexp.exec(rangeHeader); + if (prefixMatch === null) + return; + if (rangeHeader = rangeHeader.substring(prefixMatch[0].length), rangeHeader.trimStart() === "") + return []; + let ranges = rangeHeader.split(","), result = []; + for (let range of ranges) { + let match = rangeRegexp.exec(range); + if (match === null) + return; + let { start, end } = match.groups; + if (start !== void 0 && end !== void 0) { + let rangeStart = parseInt(start), rangeEnd = parseInt(end); + if (rangeStart > rangeEnd || rangeStart >= length) + return; + rangeEnd >= length && (rangeEnd = length - 1), result.push({ start: rangeStart, end: rangeEnd }); + } else if (start !== void 0 && end === void 0) { + let rangeStart = parseInt(start); + if (rangeStart >= length) + return; + result.push({ start: rangeStart, end: length - 1 }); + } else if (start === void 0 && end !== void 0) { + let suffix = parseInt(end); + if (suffix >= length) + return []; + if (suffix === 0) + continue; + result.push({ start: length - suffix, end: length - 1 }); + } else + return; + } + return result; +} + +// packages/miniflare/src/workers/shared/sync.ts +import assert6 from "node-internal:internal_assert"; +var DeferredPromise = class extends Promise { + resolve; + reject; + constructor(executor = () => { + }) { + let promiseResolve, promiseReject; + super((resolve, reject) => (promiseResolve = resolve, promiseReject = reject, executor(resolve, reject))), this.resolve = promiseResolve, this.reject = promiseReject; + } +}, Mutex = class { + locked = !1; + resolveQueue = []; + drainQueue = []; + lock() { + if (!this.locked) { + this.locked = !0; + return; + } + return new Promise((resolve) => this.resolveQueue.push(resolve)); + } + unlock() { + if (assert6(this.locked), this.resolveQueue.length > 0) + this.resolveQueue.shift()?.(); + else { + this.locked = !1; + let resolve; + for (; (resolve = this.drainQueue.shift()) !== void 0; ) + resolve(); + } + } + get hasWaiting() { + return this.resolveQueue.length > 0; + } + async runWith(closure) { + let acquireAwaitable = this.lock(); + acquireAwaitable instanceof Promise && await acquireAwaitable; + try { + let awaitable = closure(); + return awaitable instanceof Promise ? await awaitable : awaitable; + } finally { + this.unlock(); + } + } + async drained() { + if (this.resolveQueue.length !== 0) + return new Promise((resolve) => this.drainQueue.push(resolve)); + } +}, WaitGroup = class { + counter = 0; + resolveQueue = []; + add() { + this.counter++; + } + done() { + if (assert6(this.counter > 0), this.counter--, this.counter === 0) { + let resolve; + for (; (resolve = this.resolveQueue.shift()) !== void 0; ) + resolve(); + } + } + wait() { + return this.counter === 0 ? Promise.resolve() : new Promise((resolve) => this.resolveQueue.push(resolve)); + } +}; +export { + BlobStore, + DELETE, + DeferredPromise, + GET, + HEAD, + HttpError, + KeyValueStorage, + LogLevel, + MiniflareDurableObject, + Mutex, + PATCH, + POST, + PURGE, + PUT, + Router, + SharedBindings, + SharedHeaders, + Timers, + WaitGroup, + all, + base64Decode, + base64Encode, + drain, + escapeLike, + get, + maybeApply, + parseRanges, + readPrefix, + reduceError, + testRegExps, + viewToBuffer +}; +/*! Path sanitisation regexps adapted from node-sanitize-filename: + * https://github.com/parshap/node-sanitize-filename/blob/209c39b914c8eb48ee27bcbde64b2c7822fdf3de/index.js#L4-L37 + * + * Licensed under the ISC license: + * + * Copyright Parsha Pourkhomami <parshap@gmail.com> + * + * Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the + * above copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY + * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ +//# sourceMappingURL=index.worker.js.map diff --git a/node_modules/miniflare/dist/src/workers/shared/index.worker.js.map b/node_modules/miniflare/dist/src/workers/shared/index.worker.js.map new file mode 100644 index 0000000..63ad169 --- /dev/null +++ b/node_modules/miniflare/dist/src/workers/shared/index.worker.js.map @@ -0,0 +1,6 @@ +{ + "version": 3, + "sources": ["../../../../src/workers/shared/blob.worker.ts", "../../../../src/workers/shared/data.ts", "../../../../src/workers/shared/constants.ts", "../../../../src/workers/shared/keyvalue.worker.ts", "../../../../src/workers/shared/sql.worker.ts", "../../../../src/workers/shared/matcher.ts", "../../../../src/workers/shared/object.worker.ts", "../../../../src/workers/shared/router.worker.ts", "../../../../src/workers/shared/timers.worker.ts", "../../../../src/workers/shared/types.ts", "../../../../src/workers/shared/range.ts", "../../../../src/workers/shared/sync.ts"], + "mappings": "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", + "names": ["Buffer", "writer", "Buffer", "LogLevel", "assert", "assert", "assert", "assert", "assert", "assert", "assert"] +} diff --git a/node_modules/miniflare/dist/src/workers/shared/object-entry.worker.js b/node_modules/miniflare/dist/src/workers/shared/object-entry.worker.js new file mode 100644 index 0000000..d9763e3 --- /dev/null +++ b/node_modules/miniflare/dist/src/workers/shared/object-entry.worker.js @@ -0,0 +1,19 @@ +// packages/miniflare/src/workers/shared/constants.ts +var SharedBindings = { + TEXT_NAMESPACE: "MINIFLARE_NAMESPACE", + DURABLE_OBJECT_NAMESPACE_OBJECT: "MINIFLARE_OBJECT", + MAYBE_SERVICE_BLOBS: "MINIFLARE_BLOBS", + MAYBE_SERVICE_LOOPBACK: "MINIFLARE_LOOPBACK" +}; + +// packages/miniflare/src/workers/shared/object-entry.worker.ts +var object_entry_worker_default = { + async fetch(request, env) { + let name = env[SharedBindings.TEXT_NAMESPACE], objectNamespace = env[SharedBindings.DURABLE_OBJECT_NAMESPACE_OBJECT], id = objectNamespace.idFromName(name), stub = objectNamespace.get(id), cf = { miniflare: { name } }; + return await stub.fetch(request, { cf }); + } +}; +export { + object_entry_worker_default as default +}; +//# sourceMappingURL=object-entry.worker.js.map diff --git a/node_modules/miniflare/dist/src/workers/shared/object-entry.worker.js.map b/node_modules/miniflare/dist/src/workers/shared/object-entry.worker.js.map new file mode 100644 index 0000000..5d16e94 --- /dev/null +++ b/node_modules/miniflare/dist/src/workers/shared/object-entry.worker.js.map @@ -0,0 +1,6 @@ +{ + "version": 3, + "sources": ["../../../../src/workers/shared/constants.ts", "../../../../src/workers/shared/object-entry.worker.ts"], + "mappings": ";AAIO,IAAM,iBAAiB;AAAA,EAC5B,gBAAgB;AAAA,EAChB,iCAAiC;AAAA,EACjC,qBAAqB;AAAA,EACrB,wBAAwB;AAC1B;;;ACDA,IAAO,8BAA8B;AAAA,EACnC,MAAM,MAAM,SAAS,KAAK;AACxB,QAAM,OAAO,IAAI,eAAe,cAAc,GACxC,kBAAkB,IAAI,eAAe,+BAA+B,GACpE,KAAK,gBAAgB,WAAW,IAAI,GACpC,OAAO,gBAAgB,IAAI,EAAE,GAC7B,KAA+B,EAAE,WAAW,EAAE,KAAK,EAAE;AAC3D,WAAO,MAAM,KAAK,MAAM,SAAS,EAAE,GAAkC,CAAC;AAAA,EACxE;AACF;", + "names": [] +} diff --git a/node_modules/miniflare/dist/src/workers/shared/zod.worker.js b/node_modules/miniflare/dist/src/workers/shared/zod.worker.js new file mode 100644 index 0000000..9cd18f1 --- /dev/null +++ b/node_modules/miniflare/dist/src/workers/shared/zod.worker.js @@ -0,0 +1,2486 @@ +// packages/miniflare/src/workers/shared/zod.worker.ts +import { Buffer } from "node-internal:internal_buffer"; + +// node_modules/zod/lib/index.mjs +var util; +(function(util2) { + util2.assertEqual = (val) => val; + function assertIs(_arg) { + } + util2.assertIs = assertIs; + function assertNever(_x) { + throw new Error(); + } + util2.assertNever = assertNever, util2.arrayToEnum = (items) => { + let obj = {}; + for (let item of items) + obj[item] = item; + return obj; + }, util2.getValidEnumValues = (obj) => { + let validKeys = util2.objectKeys(obj).filter((k) => typeof obj[obj[k]] != "number"), filtered = {}; + for (let k of validKeys) + filtered[k] = obj[k]; + return util2.objectValues(filtered); + }, util2.objectValues = (obj) => util2.objectKeys(obj).map(function(e) { + return obj[e]; + }), util2.objectKeys = typeof Object.keys == "function" ? (obj) => Object.keys(obj) : (object) => { + let keys = []; + for (let key in object) + Object.prototype.hasOwnProperty.call(object, key) && keys.push(key); + return keys; + }, util2.find = (arr, checker) => { + for (let item of arr) + if (checker(item)) + return item; + }, util2.isInteger = typeof Number.isInteger == "function" ? (val) => Number.isInteger(val) : (val) => typeof val == "number" && isFinite(val) && Math.floor(val) === val; + function joinValues(array, separator = " | ") { + return array.map((val) => typeof val == "string" ? `'${val}'` : val).join(separator); + } + util2.joinValues = joinValues, util2.jsonStringifyReplacer = (_, value) => typeof value == "bigint" ? value.toString() : value; +})(util || (util = {})); +var ZodParsedType = util.arrayToEnum([ + "string", + "nan", + "number", + "integer", + "float", + "boolean", + "date", + "bigint", + "symbol", + "function", + "undefined", + "null", + "array", + "object", + "unknown", + "promise", + "void", + "never", + "map", + "set" +]), getParsedType = (data) => { + switch (typeof data) { + case "undefined": + return ZodParsedType.undefined; + case "string": + return ZodParsedType.string; + case "number": + return isNaN(data) ? ZodParsedType.nan : ZodParsedType.number; + case "boolean": + return ZodParsedType.boolean; + case "function": + return ZodParsedType.function; + case "bigint": + return ZodParsedType.bigint; + case "symbol": + return ZodParsedType.symbol; + case "object": + return Array.isArray(data) ? ZodParsedType.array : data === null ? ZodParsedType.null : data.then && typeof data.then == "function" && data.catch && typeof data.catch == "function" ? ZodParsedType.promise : typeof Map < "u" && data instanceof Map ? ZodParsedType.map : typeof Set < "u" && data instanceof Set ? ZodParsedType.set : typeof Date < "u" && data instanceof Date ? ZodParsedType.date : ZodParsedType.object; + default: + return ZodParsedType.unknown; + } +}, ZodIssueCode = util.arrayToEnum([ + "invalid_type", + "invalid_literal", + "custom", + "invalid_union", + "invalid_union_discriminator", + "invalid_enum_value", + "unrecognized_keys", + "invalid_arguments", + "invalid_return_type", + "invalid_date", + "invalid_string", + "too_small", + "too_big", + "invalid_intersection_types", + "not_multiple_of", + "not_finite" +]), quotelessJson = (obj) => JSON.stringify(obj, null, 2).replace(/"([^"]+)":/g, "$1:"), ZodError = class extends Error { + constructor(issues) { + super(), this.issues = [], this.addIssue = (sub) => { + this.issues = [...this.issues, sub]; + }, this.addIssues = (subs = []) => { + this.issues = [...this.issues, ...subs]; + }; + let actualProto = new.target.prototype; + Object.setPrototypeOf ? Object.setPrototypeOf(this, actualProto) : this.__proto__ = actualProto, this.name = "ZodError", this.issues = issues; + } + get errors() { + return this.issues; + } + format(_mapper) { + let mapper = _mapper || function(issue) { + return issue.message; + }, fieldErrors = { _errors: [] }, processError = (error) => { + for (let issue of error.issues) + if (issue.code === "invalid_union") + issue.unionErrors.map(processError); + else if (issue.code === "invalid_return_type") + processError(issue.returnTypeError); + else if (issue.code === "invalid_arguments") + processError(issue.argumentsError); + else if (issue.path.length === 0) + fieldErrors._errors.push(mapper(issue)); + else { + let curr = fieldErrors, i = 0; + for (; i < issue.path.length; ) { + let el = issue.path[i]; + i === issue.path.length - 1 ? (curr[el] = curr[el] || { _errors: [] }, curr[el]._errors.push(mapper(issue))) : curr[el] = curr[el] || { _errors: [] }, curr = curr[el], i++; + } + } + }; + return processError(this), fieldErrors; + } + toString() { + return this.message; + } + get message() { + return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2); + } + get isEmpty() { + return this.issues.length === 0; + } + flatten(mapper = (issue) => issue.message) { + let fieldErrors = {}, formErrors = []; + for (let sub of this.issues) + sub.path.length > 0 ? (fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [], fieldErrors[sub.path[0]].push(mapper(sub))) : formErrors.push(mapper(sub)); + return { formErrors, fieldErrors }; + } + get formErrors() { + return this.flatten(); + } +}; +ZodError.create = (issues) => new ZodError(issues); +var errorMap = (issue, _ctx) => { + let message; + switch (issue.code) { + case ZodIssueCode.invalid_type: + issue.received === ZodParsedType.undefined ? message = "Required" : message = `Expected ${issue.expected}, received ${issue.received}`; + break; + case ZodIssueCode.invalid_literal: + message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`; + break; + case ZodIssueCode.unrecognized_keys: + message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, ", ")}`; + break; + case ZodIssueCode.invalid_union: + message = "Invalid input"; + break; + case ZodIssueCode.invalid_union_discriminator: + message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`; + break; + case ZodIssueCode.invalid_enum_value: + message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`; + break; + case ZodIssueCode.invalid_arguments: + message = "Invalid function arguments"; + break; + case ZodIssueCode.invalid_return_type: + message = "Invalid function return type"; + break; + case ZodIssueCode.invalid_date: + message = "Invalid date"; + break; + case ZodIssueCode.invalid_string: + typeof issue.validation == "object" ? "startsWith" in issue.validation ? message = `Invalid input: must start with "${issue.validation.startsWith}"` : "endsWith" in issue.validation ? message = `Invalid input: must end with "${issue.validation.endsWith}"` : util.assertNever(issue.validation) : issue.validation !== "regex" ? message = `Invalid ${issue.validation}` : message = "Invalid"; + break; + case ZodIssueCode.too_small: + issue.type === "array" ? message = `Array must contain ${issue.exact ? "exactly" : issue.inclusive ? "at least" : "more than"} ${issue.minimum} element(s)` : issue.type === "string" ? message = `String must contain ${issue.exact ? "exactly" : issue.inclusive ? "at least" : "over"} ${issue.minimum} character(s)` : issue.type === "number" ? message = `Number must be ${issue.exact ? "exactly equal to " : issue.inclusive ? "greater than or equal to " : "greater than "}${issue.minimum}` : issue.type === "date" ? message = `Date must be ${issue.exact ? "exactly equal to " : issue.inclusive ? "greater than or equal to " : "greater than "}${new Date(issue.minimum)}` : message = "Invalid input"; + break; + case ZodIssueCode.too_big: + issue.type === "array" ? message = `Array must contain ${issue.exact ? "exactly" : issue.inclusive ? "at most" : "less than"} ${issue.maximum} element(s)` : issue.type === "string" ? message = `String must contain ${issue.exact ? "exactly" : issue.inclusive ? "at most" : "under"} ${issue.maximum} character(s)` : issue.type === "number" ? message = `Number must be ${issue.exact ? "exactly" : issue.inclusive ? "less than or equal to" : "less than"} ${issue.maximum}` : issue.type === "date" ? message = `Date must be ${issue.exact ? "exactly" : issue.inclusive ? "smaller than or equal to" : "smaller than"} ${new Date(issue.maximum)}` : message = "Invalid input"; + break; + case ZodIssueCode.custom: + message = "Invalid input"; + break; + case ZodIssueCode.invalid_intersection_types: + message = "Intersection results could not be merged"; + break; + case ZodIssueCode.not_multiple_of: + message = `Number must be a multiple of ${issue.multipleOf}`; + break; + case ZodIssueCode.not_finite: + message = "Number must be finite"; + break; + default: + message = _ctx.defaultError, util.assertNever(issue); + } + return { message }; +}, overrideErrorMap = errorMap; +function setErrorMap(map) { + overrideErrorMap = map; +} +function getErrorMap() { + return overrideErrorMap; +} +var makeIssue = (params) => { + let { data, path, errorMaps, issueData } = params, fullPath = [...path, ...issueData.path || []], fullIssue = { + ...issueData, + path: fullPath + }, errorMessage = "", maps = errorMaps.filter((m) => !!m).slice().reverse(); + for (let map of maps) + errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message; + return { + ...issueData, + path: fullPath, + message: issueData.message || errorMessage + }; +}, EMPTY_PATH = []; +function addIssueToContext(ctx, issueData) { + let issue = makeIssue({ + issueData, + data: ctx.data, + path: ctx.path, + errorMaps: [ + ctx.common.contextualErrorMap, + ctx.schemaErrorMap, + getErrorMap(), + errorMap + // then global default map + ].filter((x) => !!x) + }); + ctx.common.issues.push(issue); +} +var ParseStatus = class { + constructor() { + this.value = "valid"; + } + dirty() { + this.value === "valid" && (this.value = "dirty"); + } + abort() { + this.value !== "aborted" && (this.value = "aborted"); + } + static mergeArray(status, results) { + let arrayValue = []; + for (let s of results) { + if (s.status === "aborted") + return INVALID; + s.status === "dirty" && status.dirty(), arrayValue.push(s.value); + } + return { status: status.value, value: arrayValue }; + } + static async mergeObjectAsync(status, pairs) { + let syncPairs = []; + for (let pair of pairs) + syncPairs.push({ + key: await pair.key, + value: await pair.value + }); + return ParseStatus.mergeObjectSync(status, syncPairs); + } + static mergeObjectSync(status, pairs) { + let finalObject = {}; + for (let pair of pairs) { + let { key, value } = pair; + if (key.status === "aborted" || value.status === "aborted") + return INVALID; + key.status === "dirty" && status.dirty(), value.status === "dirty" && status.dirty(), (typeof value.value < "u" || pair.alwaysSet) && (finalObject[key.value] = value.value); + } + return { status: status.value, value: finalObject }; + } +}, INVALID = Object.freeze({ + status: "aborted" +}), DIRTY = (value) => ({ status: "dirty", value }), OK = (value) => ({ status: "valid", value }), isAborted = (x) => x.status === "aborted", isDirty = (x) => x.status === "dirty", isValid = (x) => x.status === "valid", isAsync = (x) => typeof Promise < "u" && x instanceof Promise, errorUtil; +(function(errorUtil2) { + errorUtil2.errToObj = (message) => typeof message == "string" ? { message } : message || {}, errorUtil2.toString = (message) => typeof message == "string" ? message : message?.message; +})(errorUtil || (errorUtil = {})); +var ParseInputLazyPath = class { + constructor(parent, value, path, key) { + this.parent = parent, this.data = value, this._path = path, this._key = key; + } + get path() { + return this._path.concat(this._key); + } +}, handleResult = (ctx, result) => { + if (isValid(result)) + return { success: !0, data: result.value }; + if (!ctx.common.issues.length) + throw new Error("Validation failed but no issues detected."); + return { success: !1, error: new ZodError(ctx.common.issues) }; +}; +function processCreateParams(params) { + if (!params) + return {}; + let { errorMap: errorMap2, invalid_type_error, required_error, description } = params; + if (errorMap2 && (invalid_type_error || required_error)) + throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`); + return errorMap2 ? { errorMap: errorMap2, description } : { errorMap: (iss, ctx) => iss.code !== "invalid_type" ? { message: ctx.defaultError } : typeof ctx.data > "u" ? { message: required_error ?? ctx.defaultError } : { message: invalid_type_error ?? ctx.defaultError }, description }; +} +var ZodType = class { + constructor(def) { + this.spa = this.safeParseAsync, this._def = def, this.parse = this.parse.bind(this), this.safeParse = this.safeParse.bind(this), this.parseAsync = this.parseAsync.bind(this), this.safeParseAsync = this.safeParseAsync.bind(this), this.spa = this.spa.bind(this), this.refine = this.refine.bind(this), this.refinement = this.refinement.bind(this), this.superRefine = this.superRefine.bind(this), this.optional = this.optional.bind(this), this.nullable = this.nullable.bind(this), this.nullish = this.nullish.bind(this), this.array = this.array.bind(this), this.promise = this.promise.bind(this), this.or = this.or.bind(this), this.and = this.and.bind(this), this.transform = this.transform.bind(this), this.brand = this.brand.bind(this), this.default = this.default.bind(this), this.catch = this.catch.bind(this), this.describe = this.describe.bind(this), this.pipe = this.pipe.bind(this), this.isNullable = this.isNullable.bind(this), this.isOptional = this.isOptional.bind(this); + } + get description() { + return this._def.description; + } + _getType(input) { + return getParsedType(input.data); + } + _getOrReturnCtx(input, ctx) { + return ctx || { + common: input.parent.common, + data: input.data, + parsedType: getParsedType(input.data), + schemaErrorMap: this._def.errorMap, + path: input.path, + parent: input.parent + }; + } + _processInputParams(input) { + return { + status: new ParseStatus(), + ctx: { + common: input.parent.common, + data: input.data, + parsedType: getParsedType(input.data), + schemaErrorMap: this._def.errorMap, + path: input.path, + parent: input.parent + } + }; + } + _parseSync(input) { + let result = this._parse(input); + if (isAsync(result)) + throw new Error("Synchronous parse encountered promise."); + return result; + } + _parseAsync(input) { + let result = this._parse(input); + return Promise.resolve(result); + } + parse(data, params) { + let result = this.safeParse(data, params); + if (result.success) + return result.data; + throw result.error; + } + safeParse(data, params) { + var _a; + let ctx = { + common: { + issues: [], + async: (_a = params?.async) !== null && _a !== void 0 ? _a : !1, + contextualErrorMap: params?.errorMap + }, + path: params?.path || [], + schemaErrorMap: this._def.errorMap, + parent: null, + data, + parsedType: getParsedType(data) + }, result = this._parseSync({ data, path: ctx.path, parent: ctx }); + return handleResult(ctx, result); + } + async parseAsync(data, params) { + let result = await this.safeParseAsync(data, params); + if (result.success) + return result.data; + throw result.error; + } + async safeParseAsync(data, params) { + let ctx = { + common: { + issues: [], + contextualErrorMap: params?.errorMap, + async: !0 + }, + path: params?.path || [], + schemaErrorMap: this._def.errorMap, + parent: null, + data, + parsedType: getParsedType(data) + }, maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx }), result = await (isAsync(maybeAsyncResult) ? maybeAsyncResult : Promise.resolve(maybeAsyncResult)); + return handleResult(ctx, result); + } + refine(check, message) { + let getIssueProperties = (val) => typeof message == "string" || typeof message > "u" ? { message } : typeof message == "function" ? message(val) : message; + return this._refinement((val, ctx) => { + let result = check(val), setError = () => ctx.addIssue({ + code: ZodIssueCode.custom, + ...getIssueProperties(val) + }); + return typeof Promise < "u" && result instanceof Promise ? result.then((data) => data ? !0 : (setError(), !1)) : result ? !0 : (setError(), !1); + }); + } + refinement(check, refinementData) { + return this._refinement((val, ctx) => check(val) ? !0 : (ctx.addIssue(typeof refinementData == "function" ? refinementData(val, ctx) : refinementData), !1)); + } + _refinement(refinement) { + return new ZodEffects({ + schema: this, + typeName: ZodFirstPartyTypeKind.ZodEffects, + effect: { type: "refinement", refinement } + }); + } + superRefine(refinement) { + return this._refinement(refinement); + } + optional() { + return ZodOptional.create(this, this._def); + } + nullable() { + return ZodNullable.create(this, this._def); + } + nullish() { + return this.nullable().optional(); + } + array() { + return ZodArray.create(this, this._def); + } + promise() { + return ZodPromise.create(this, this._def); + } + or(option) { + return ZodUnion.create([this, option], this._def); + } + and(incoming) { + return ZodIntersection.create(this, incoming, this._def); + } + transform(transform) { + return new ZodEffects({ + ...processCreateParams(this._def), + schema: this, + typeName: ZodFirstPartyTypeKind.ZodEffects, + effect: { type: "transform", transform } + }); + } + default(def) { + let defaultValueFunc = typeof def == "function" ? def : () => def; + return new ZodDefault({ + ...processCreateParams(this._def), + innerType: this, + defaultValue: defaultValueFunc, + typeName: ZodFirstPartyTypeKind.ZodDefault + }); + } + brand() { + return new ZodBranded({ + typeName: ZodFirstPartyTypeKind.ZodBranded, + type: this, + ...processCreateParams(this._def) + }); + } + catch(def) { + let catchValueFunc = typeof def == "function" ? def : () => def; + return new ZodCatch({ + ...processCreateParams(this._def), + innerType: this, + catchValue: catchValueFunc, + typeName: ZodFirstPartyTypeKind.ZodCatch + }); + } + describe(description) { + let This = this.constructor; + return new This({ + ...this._def, + description + }); + } + pipe(target) { + return ZodPipeline.create(this, target); + } + isOptional() { + return this.safeParse(void 0).success; + } + isNullable() { + return this.safeParse(null).success; + } +}, cuidRegex = /^c[^\s-]{8,}$/i, cuid2Regex = /^[a-z][a-z0-9]*$/, uuidRegex = /^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i, emailRegex = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|([^-]([a-zA-Z0-9-]*\.)+[a-zA-Z]{2,}))$/, datetimeRegex = (args) => args.precision ? args.offset ? new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{${args.precision}}(([+-]\\d{2}(:?\\d{2})?)|Z)$`) : new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{${args.precision}}Z$`) : args.precision === 0 ? args.offset ? new RegExp("^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(([+-]\\d{2}(:?\\d{2})?)|Z)$") : new RegExp("^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$") : args.offset ? new RegExp("^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(([+-]\\d{2}(:?\\d{2})?)|Z)$") : new RegExp("^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?Z$"), ZodString = class extends ZodType { + constructor() { + super(...arguments), this._regex = (regex, validation, message) => this.refinement((data) => regex.test(data), { + validation, + code: ZodIssueCode.invalid_string, + ...errorUtil.errToObj(message) + }), this.nonempty = (message) => this.min(1, errorUtil.errToObj(message)), this.trim = () => new ZodString({ + ...this._def, + checks: [...this._def.checks, { kind: "trim" }] + }); + } + _parse(input) { + if (this._def.coerce && (input.data = String(input.data)), this._getType(input) !== ZodParsedType.string) { + let ctx2 = this._getOrReturnCtx(input); + return addIssueToContext( + ctx2, + { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.string, + received: ctx2.parsedType + } + // + ), INVALID; + } + let status = new ParseStatus(), ctx; + for (let check of this._def.checks) + if (check.kind === "min") + input.data.length < check.value && (ctx = this._getOrReturnCtx(input, ctx), addIssueToContext(ctx, { + code: ZodIssueCode.too_small, + minimum: check.value, + type: "string", + inclusive: !0, + exact: !1, + message: check.message + }), status.dirty()); + else if (check.kind === "max") + input.data.length > check.value && (ctx = this._getOrReturnCtx(input, ctx), addIssueToContext(ctx, { + code: ZodIssueCode.too_big, + maximum: check.value, + type: "string", + inclusive: !0, + exact: !1, + message: check.message + }), status.dirty()); + else if (check.kind === "length") { + let tooBig = input.data.length > check.value, tooSmall = input.data.length < check.value; + (tooBig || tooSmall) && (ctx = this._getOrReturnCtx(input, ctx), tooBig ? addIssueToContext(ctx, { + code: ZodIssueCode.too_big, + maximum: check.value, + type: "string", + inclusive: !0, + exact: !0, + message: check.message + }) : tooSmall && addIssueToContext(ctx, { + code: ZodIssueCode.too_small, + minimum: check.value, + type: "string", + inclusive: !0, + exact: !0, + message: check.message + }), status.dirty()); + } else if (check.kind === "email") + emailRegex.test(input.data) || (ctx = this._getOrReturnCtx(input, ctx), addIssueToContext(ctx, { + validation: "email", + code: ZodIssueCode.invalid_string, + message: check.message + }), status.dirty()); + else if (check.kind === "uuid") + uuidRegex.test(input.data) || (ctx = this._getOrReturnCtx(input, ctx), addIssueToContext(ctx, { + validation: "uuid", + code: ZodIssueCode.invalid_string, + message: check.message + }), status.dirty()); + else if (check.kind === "cuid") + cuidRegex.test(input.data) || (ctx = this._getOrReturnCtx(input, ctx), addIssueToContext(ctx, { + validation: "cuid", + code: ZodIssueCode.invalid_string, + message: check.message + }), status.dirty()); + else if (check.kind === "cuid2") + cuid2Regex.test(input.data) || (ctx = this._getOrReturnCtx(input, ctx), addIssueToContext(ctx, { + validation: "cuid2", + code: ZodIssueCode.invalid_string, + message: check.message + }), status.dirty()); + else if (check.kind === "url") + try { + new URL(input.data); + } catch { + ctx = this._getOrReturnCtx(input, ctx), addIssueToContext(ctx, { + validation: "url", + code: ZodIssueCode.invalid_string, + message: check.message + }), status.dirty(); + } + else + check.kind === "regex" ? (check.regex.lastIndex = 0, check.regex.test(input.data) || (ctx = this._getOrReturnCtx(input, ctx), addIssueToContext(ctx, { + validation: "regex", + code: ZodIssueCode.invalid_string, + message: check.message + }), status.dirty())) : check.kind === "trim" ? input.data = input.data.trim() : check.kind === "startsWith" ? input.data.startsWith(check.value) || (ctx = this._getOrReturnCtx(input, ctx), addIssueToContext(ctx, { + code: ZodIssueCode.invalid_string, + validation: { startsWith: check.value }, + message: check.message + }), status.dirty()) : check.kind === "endsWith" ? input.data.endsWith(check.value) || (ctx = this._getOrReturnCtx(input, ctx), addIssueToContext(ctx, { + code: ZodIssueCode.invalid_string, + validation: { endsWith: check.value }, + message: check.message + }), status.dirty()) : check.kind === "datetime" ? datetimeRegex(check).test(input.data) || (ctx = this._getOrReturnCtx(input, ctx), addIssueToContext(ctx, { + code: ZodIssueCode.invalid_string, + validation: "datetime", + message: check.message + }), status.dirty()) : util.assertNever(check); + return { status: status.value, value: input.data }; + } + _addCheck(check) { + return new ZodString({ + ...this._def, + checks: [...this._def.checks, check] + }); + } + email(message) { + return this._addCheck({ kind: "email", ...errorUtil.errToObj(message) }); + } + url(message) { + return this._addCheck({ kind: "url", ...errorUtil.errToObj(message) }); + } + uuid(message) { + return this._addCheck({ kind: "uuid", ...errorUtil.errToObj(message) }); + } + cuid(message) { + return this._addCheck({ kind: "cuid", ...errorUtil.errToObj(message) }); + } + cuid2(message) { + return this._addCheck({ kind: "cuid2", ...errorUtil.errToObj(message) }); + } + datetime(options) { + var _a; + return typeof options == "string" ? this._addCheck({ + kind: "datetime", + precision: null, + offset: !1, + message: options + }) : this._addCheck({ + kind: "datetime", + precision: typeof options?.precision > "u" ? null : options?.precision, + offset: (_a = options?.offset) !== null && _a !== void 0 ? _a : !1, + ...errorUtil.errToObj(options?.message) + }); + } + regex(regex, message) { + return this._addCheck({ + kind: "regex", + regex, + ...errorUtil.errToObj(message) + }); + } + startsWith(value, message) { + return this._addCheck({ + kind: "startsWith", + value, + ...errorUtil.errToObj(message) + }); + } + endsWith(value, message) { + return this._addCheck({ + kind: "endsWith", + value, + ...errorUtil.errToObj(message) + }); + } + min(minLength, message) { + return this._addCheck({ + kind: "min", + value: minLength, + ...errorUtil.errToObj(message) + }); + } + max(maxLength, message) { + return this._addCheck({ + kind: "max", + value: maxLength, + ...errorUtil.errToObj(message) + }); + } + length(len, message) { + return this._addCheck({ + kind: "length", + value: len, + ...errorUtil.errToObj(message) + }); + } + get isDatetime() { + return !!this._def.checks.find((ch) => ch.kind === "datetime"); + } + get isEmail() { + return !!this._def.checks.find((ch) => ch.kind === "email"); + } + get isURL() { + return !!this._def.checks.find((ch) => ch.kind === "url"); + } + get isUUID() { + return !!this._def.checks.find((ch) => ch.kind === "uuid"); + } + get isCUID() { + return !!this._def.checks.find((ch) => ch.kind === "cuid"); + } + get isCUID2() { + return !!this._def.checks.find((ch) => ch.kind === "cuid2"); + } + get minLength() { + let min = null; + for (let ch of this._def.checks) + ch.kind === "min" && (min === null || ch.value > min) && (min = ch.value); + return min; + } + get maxLength() { + let max = null; + for (let ch of this._def.checks) + ch.kind === "max" && (max === null || ch.value < max) && (max = ch.value); + return max; + } +}; +ZodString.create = (params) => { + var _a; + return new ZodString({ + checks: [], + typeName: ZodFirstPartyTypeKind.ZodString, + coerce: (_a = params?.coerce) !== null && _a !== void 0 ? _a : !1, + ...processCreateParams(params) + }); +}; +function floatSafeRemainder(val, step) { + let valDecCount = (val.toString().split(".")[1] || "").length, stepDecCount = (step.toString().split(".")[1] || "").length, decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount, valInt = parseInt(val.toFixed(decCount).replace(".", "")), stepInt = parseInt(step.toFixed(decCount).replace(".", "")); + return valInt % stepInt / Math.pow(10, decCount); +} +var ZodNumber = class extends ZodType { + constructor() { + super(...arguments), this.min = this.gte, this.max = this.lte, this.step = this.multipleOf; + } + _parse(input) { + if (this._def.coerce && (input.data = Number(input.data)), this._getType(input) !== ZodParsedType.number) { + let ctx2 = this._getOrReturnCtx(input); + return addIssueToContext(ctx2, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.number, + received: ctx2.parsedType + }), INVALID; + } + let ctx, status = new ParseStatus(); + for (let check of this._def.checks) + check.kind === "int" ? util.isInteger(input.data) || (ctx = this._getOrReturnCtx(input, ctx), addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: "integer", + received: "float", + message: check.message + }), status.dirty()) : check.kind === "min" ? (check.inclusive ? input.data < check.value : input.data <= check.value) && (ctx = this._getOrReturnCtx(input, ctx), addIssueToContext(ctx, { + code: ZodIssueCode.too_small, + minimum: check.value, + type: "number", + inclusive: check.inclusive, + exact: !1, + message: check.message + }), status.dirty()) : check.kind === "max" ? (check.inclusive ? input.data > check.value : input.data >= check.value) && (ctx = this._getOrReturnCtx(input, ctx), addIssueToContext(ctx, { + code: ZodIssueCode.too_big, + maximum: check.value, + type: "number", + inclusive: check.inclusive, + exact: !1, + message: check.message + }), status.dirty()) : check.kind === "multipleOf" ? floatSafeRemainder(input.data, check.value) !== 0 && (ctx = this._getOrReturnCtx(input, ctx), addIssueToContext(ctx, { + code: ZodIssueCode.not_multiple_of, + multipleOf: check.value, + message: check.message + }), status.dirty()) : check.kind === "finite" ? Number.isFinite(input.data) || (ctx = this._getOrReturnCtx(input, ctx), addIssueToContext(ctx, { + code: ZodIssueCode.not_finite, + message: check.message + }), status.dirty()) : util.assertNever(check); + return { status: status.value, value: input.data }; + } + gte(value, message) { + return this.setLimit("min", value, !0, errorUtil.toString(message)); + } + gt(value, message) { + return this.setLimit("min", value, !1, errorUtil.toString(message)); + } + lte(value, message) { + return this.setLimit("max", value, !0, errorUtil.toString(message)); + } + lt(value, message) { + return this.setLimit("max", value, !1, errorUtil.toString(message)); + } + setLimit(kind, value, inclusive, message) { + return new ZodNumber({ + ...this._def, + checks: [ + ...this._def.checks, + { + kind, + value, + inclusive, + message: errorUtil.toString(message) + } + ] + }); + } + _addCheck(check) { + return new ZodNumber({ + ...this._def, + checks: [...this._def.checks, check] + }); + } + int(message) { + return this._addCheck({ + kind: "int", + message: errorUtil.toString(message) + }); + } + positive(message) { + return this._addCheck({ + kind: "min", + value: 0, + inclusive: !1, + message: errorUtil.toString(message) + }); + } + negative(message) { + return this._addCheck({ + kind: "max", + value: 0, + inclusive: !1, + message: errorUtil.toString(message) + }); + } + nonpositive(message) { + return this._addCheck({ + kind: "max", + value: 0, + inclusive: !0, + message: errorUtil.toString(message) + }); + } + nonnegative(message) { + return this._addCheck({ + kind: "min", + value: 0, + inclusive: !0, + message: errorUtil.toString(message) + }); + } + multipleOf(value, message) { + return this._addCheck({ + kind: "multipleOf", + value, + message: errorUtil.toString(message) + }); + } + finite(message) { + return this._addCheck({ + kind: "finite", + message: errorUtil.toString(message) + }); + } + get minValue() { + let min = null; + for (let ch of this._def.checks) + ch.kind === "min" && (min === null || ch.value > min) && (min = ch.value); + return min; + } + get maxValue() { + let max = null; + for (let ch of this._def.checks) + ch.kind === "max" && (max === null || ch.value < max) && (max = ch.value); + return max; + } + get isInt() { + return !!this._def.checks.find((ch) => ch.kind === "int" || ch.kind === "multipleOf" && util.isInteger(ch.value)); + } + get isFinite() { + let max = null, min = null; + for (let ch of this._def.checks) { + if (ch.kind === "finite" || ch.kind === "int" || ch.kind === "multipleOf") + return !0; + ch.kind === "min" ? (min === null || ch.value > min) && (min = ch.value) : ch.kind === "max" && (max === null || ch.value < max) && (max = ch.value); + } + return Number.isFinite(min) && Number.isFinite(max); + } +}; +ZodNumber.create = (params) => new ZodNumber({ + checks: [], + typeName: ZodFirstPartyTypeKind.ZodNumber, + coerce: params?.coerce || !1, + ...processCreateParams(params) +}); +var ZodBigInt = class extends ZodType { + _parse(input) { + if (this._def.coerce && (input.data = BigInt(input.data)), this._getType(input) !== ZodParsedType.bigint) { + let ctx = this._getOrReturnCtx(input); + return addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.bigint, + received: ctx.parsedType + }), INVALID; + } + return OK(input.data); + } +}; +ZodBigInt.create = (params) => { + var _a; + return new ZodBigInt({ + typeName: ZodFirstPartyTypeKind.ZodBigInt, + coerce: (_a = params?.coerce) !== null && _a !== void 0 ? _a : !1, + ...processCreateParams(params) + }); +}; +var ZodBoolean = class extends ZodType { + _parse(input) { + if (this._def.coerce && (input.data = Boolean(input.data)), this._getType(input) !== ZodParsedType.boolean) { + let ctx = this._getOrReturnCtx(input); + return addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.boolean, + received: ctx.parsedType + }), INVALID; + } + return OK(input.data); + } +}; +ZodBoolean.create = (params) => new ZodBoolean({ + typeName: ZodFirstPartyTypeKind.ZodBoolean, + coerce: params?.coerce || !1, + ...processCreateParams(params) +}); +var ZodDate = class extends ZodType { + _parse(input) { + if (this._def.coerce && (input.data = new Date(input.data)), this._getType(input) !== ZodParsedType.date) { + let ctx2 = this._getOrReturnCtx(input); + return addIssueToContext(ctx2, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.date, + received: ctx2.parsedType + }), INVALID; + } + if (isNaN(input.data.getTime())) { + let ctx2 = this._getOrReturnCtx(input); + return addIssueToContext(ctx2, { + code: ZodIssueCode.invalid_date + }), INVALID; + } + let status = new ParseStatus(), ctx; + for (let check of this._def.checks) + check.kind === "min" ? input.data.getTime() < check.value && (ctx = this._getOrReturnCtx(input, ctx), addIssueToContext(ctx, { + code: ZodIssueCode.too_small, + message: check.message, + inclusive: !0, + exact: !1, + minimum: check.value, + type: "date" + }), status.dirty()) : check.kind === "max" ? input.data.getTime() > check.value && (ctx = this._getOrReturnCtx(input, ctx), addIssueToContext(ctx, { + code: ZodIssueCode.too_big, + message: check.message, + inclusive: !0, + exact: !1, + maximum: check.value, + type: "date" + }), status.dirty()) : util.assertNever(check); + return { + status: status.value, + value: new Date(input.data.getTime()) + }; + } + _addCheck(check) { + return new ZodDate({ + ...this._def, + checks: [...this._def.checks, check] + }); + } + min(minDate, message) { + return this._addCheck({ + kind: "min", + value: minDate.getTime(), + message: errorUtil.toString(message) + }); + } + max(maxDate, message) { + return this._addCheck({ + kind: "max", + value: maxDate.getTime(), + message: errorUtil.toString(message) + }); + } + get minDate() { + let min = null; + for (let ch of this._def.checks) + ch.kind === "min" && (min === null || ch.value > min) && (min = ch.value); + return min != null ? new Date(min) : null; + } + get maxDate() { + let max = null; + for (let ch of this._def.checks) + ch.kind === "max" && (max === null || ch.value < max) && (max = ch.value); + return max != null ? new Date(max) : null; + } +}; +ZodDate.create = (params) => new ZodDate({ + checks: [], + coerce: params?.coerce || !1, + typeName: ZodFirstPartyTypeKind.ZodDate, + ...processCreateParams(params) +}); +var ZodSymbol = class extends ZodType { + _parse(input) { + if (this._getType(input) !== ZodParsedType.symbol) { + let ctx = this._getOrReturnCtx(input); + return addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.symbol, + received: ctx.parsedType + }), INVALID; + } + return OK(input.data); + } +}; +ZodSymbol.create = (params) => new ZodSymbol({ + typeName: ZodFirstPartyTypeKind.ZodSymbol, + ...processCreateParams(params) +}); +var ZodUndefined = class extends ZodType { + _parse(input) { + if (this._getType(input) !== ZodParsedType.undefined) { + let ctx = this._getOrReturnCtx(input); + return addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.undefined, + received: ctx.parsedType + }), INVALID; + } + return OK(input.data); + } +}; +ZodUndefined.create = (params) => new ZodUndefined({ + typeName: ZodFirstPartyTypeKind.ZodUndefined, + ...processCreateParams(params) +}); +var ZodNull = class extends ZodType { + _parse(input) { + if (this._getType(input) !== ZodParsedType.null) { + let ctx = this._getOrReturnCtx(input); + return addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.null, + received: ctx.parsedType + }), INVALID; + } + return OK(input.data); + } +}; +ZodNull.create = (params) => new ZodNull({ + typeName: ZodFirstPartyTypeKind.ZodNull, + ...processCreateParams(params) +}); +var ZodAny = class extends ZodType { + constructor() { + super(...arguments), this._any = !0; + } + _parse(input) { + return OK(input.data); + } +}; +ZodAny.create = (params) => new ZodAny({ + typeName: ZodFirstPartyTypeKind.ZodAny, + ...processCreateParams(params) +}); +var ZodUnknown = class extends ZodType { + constructor() { + super(...arguments), this._unknown = !0; + } + _parse(input) { + return OK(input.data); + } +}; +ZodUnknown.create = (params) => new ZodUnknown({ + typeName: ZodFirstPartyTypeKind.ZodUnknown, + ...processCreateParams(params) +}); +var ZodNever = class extends ZodType { + _parse(input) { + let ctx = this._getOrReturnCtx(input); + return addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.never, + received: ctx.parsedType + }), INVALID; + } +}; +ZodNever.create = (params) => new ZodNever({ + typeName: ZodFirstPartyTypeKind.ZodNever, + ...processCreateParams(params) +}); +var ZodVoid = class extends ZodType { + _parse(input) { + if (this._getType(input) !== ZodParsedType.undefined) { + let ctx = this._getOrReturnCtx(input); + return addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.void, + received: ctx.parsedType + }), INVALID; + } + return OK(input.data); + } +}; +ZodVoid.create = (params) => new ZodVoid({ + typeName: ZodFirstPartyTypeKind.ZodVoid, + ...processCreateParams(params) +}); +var ZodArray = class extends ZodType { + _parse(input) { + let { ctx, status } = this._processInputParams(input), def = this._def; + if (ctx.parsedType !== ZodParsedType.array) + return addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.array, + received: ctx.parsedType + }), INVALID; + if (def.exactLength !== null) { + let tooBig = ctx.data.length > def.exactLength.value, tooSmall = ctx.data.length < def.exactLength.value; + (tooBig || tooSmall) && (addIssueToContext(ctx, { + code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small, + minimum: tooSmall ? def.exactLength.value : void 0, + maximum: tooBig ? def.exactLength.value : void 0, + type: "array", + inclusive: !0, + exact: !0, + message: def.exactLength.message + }), status.dirty()); + } + if (def.minLength !== null && ctx.data.length < def.minLength.value && (addIssueToContext(ctx, { + code: ZodIssueCode.too_small, + minimum: def.minLength.value, + type: "array", + inclusive: !0, + exact: !1, + message: def.minLength.message + }), status.dirty()), def.maxLength !== null && ctx.data.length > def.maxLength.value && (addIssueToContext(ctx, { + code: ZodIssueCode.too_big, + maximum: def.maxLength.value, + type: "array", + inclusive: !0, + exact: !1, + message: def.maxLength.message + }), status.dirty()), ctx.common.async) + return Promise.all([...ctx.data].map((item, i) => def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i)))).then((result2) => ParseStatus.mergeArray(status, result2)); + let result = [...ctx.data].map((item, i) => def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i))); + return ParseStatus.mergeArray(status, result); + } + get element() { + return this._def.type; + } + min(minLength, message) { + return new ZodArray({ + ...this._def, + minLength: { value: minLength, message: errorUtil.toString(message) } + }); + } + max(maxLength, message) { + return new ZodArray({ + ...this._def, + maxLength: { value: maxLength, message: errorUtil.toString(message) } + }); + } + length(len, message) { + return new ZodArray({ + ...this._def, + exactLength: { value: len, message: errorUtil.toString(message) } + }); + } + nonempty(message) { + return this.min(1, message); + } +}; +ZodArray.create = (schema, params) => new ZodArray({ + type: schema, + minLength: null, + maxLength: null, + exactLength: null, + typeName: ZodFirstPartyTypeKind.ZodArray, + ...processCreateParams(params) +}); +var objectUtil; +(function(objectUtil2) { + objectUtil2.mergeShapes = (first, second) => ({ + ...first, + ...second + // second overwrites first + }); +})(objectUtil || (objectUtil = {})); +function deepPartialify(schema) { + if (schema instanceof ZodObject) { + let newShape = {}; + for (let key in schema.shape) { + let fieldSchema = schema.shape[key]; + newShape[key] = ZodOptional.create(deepPartialify(fieldSchema)); + } + return new ZodObject({ + ...schema._def, + shape: () => newShape + }); + } else + return schema instanceof ZodArray ? ZodArray.create(deepPartialify(schema.element)) : schema instanceof ZodOptional ? ZodOptional.create(deepPartialify(schema.unwrap())) : schema instanceof ZodNullable ? ZodNullable.create(deepPartialify(schema.unwrap())) : schema instanceof ZodTuple ? ZodTuple.create(schema.items.map((item) => deepPartialify(item))) : schema; +} +var ZodObject = class extends ZodType { + constructor() { + super(...arguments), this._cached = null, this.nonstrict = this.passthrough, this.augment = this.extend; + } + _getCached() { + if (this._cached !== null) + return this._cached; + let shape = this._def.shape(), keys = util.objectKeys(shape); + return this._cached = { shape, keys }; + } + _parse(input) { + if (this._getType(input) !== ZodParsedType.object) { + let ctx2 = this._getOrReturnCtx(input); + return addIssueToContext(ctx2, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.object, + received: ctx2.parsedType + }), INVALID; + } + let { status, ctx } = this._processInputParams(input), { shape, keys: shapeKeys } = this._getCached(), extraKeys = []; + if (!(this._def.catchall instanceof ZodNever && this._def.unknownKeys === "strip")) + for (let key in ctx.data) + shapeKeys.includes(key) || extraKeys.push(key); + let pairs = []; + for (let key of shapeKeys) { + let keyValidator = shape[key], value = ctx.data[key]; + pairs.push({ + key: { status: "valid", value: key }, + value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)), + alwaysSet: key in ctx.data + }); + } + if (this._def.catchall instanceof ZodNever) { + let unknownKeys = this._def.unknownKeys; + if (unknownKeys === "passthrough") + for (let key of extraKeys) + pairs.push({ + key: { status: "valid", value: key }, + value: { status: "valid", value: ctx.data[key] } + }); + else if (unknownKeys === "strict") + extraKeys.length > 0 && (addIssueToContext(ctx, { + code: ZodIssueCode.unrecognized_keys, + keys: extraKeys + }), status.dirty()); + else if (unknownKeys !== "strip") + throw new Error("Internal ZodObject error: invalid unknownKeys value."); + } else { + let catchall = this._def.catchall; + for (let key of extraKeys) { + let value = ctx.data[key]; + pairs.push({ + key: { status: "valid", value: key }, + value: catchall._parse( + new ParseInputLazyPath(ctx, value, ctx.path, key) + //, ctx.child(key), value, getParsedType(value) + ), + alwaysSet: key in ctx.data + }); + } + } + return ctx.common.async ? Promise.resolve().then(async () => { + let syncPairs = []; + for (let pair of pairs) { + let key = await pair.key; + syncPairs.push({ + key, + value: await pair.value, + alwaysSet: pair.alwaysSet + }); + } + return syncPairs; + }).then((syncPairs) => ParseStatus.mergeObjectSync(status, syncPairs)) : ParseStatus.mergeObjectSync(status, pairs); + } + get shape() { + return this._def.shape(); + } + strict(message) { + return errorUtil.errToObj, new ZodObject({ + ...this._def, + unknownKeys: "strict", + ...message !== void 0 ? { + errorMap: (issue, ctx) => { + var _a, _b, _c, _d; + let defaultError = (_c = (_b = (_a = this._def).errorMap) === null || _b === void 0 ? void 0 : _b.call(_a, issue, ctx).message) !== null && _c !== void 0 ? _c : ctx.defaultError; + return issue.code === "unrecognized_keys" ? { + message: (_d = errorUtil.errToObj(message).message) !== null && _d !== void 0 ? _d : defaultError + } : { + message: defaultError + }; + } + } : {} + }); + } + strip() { + return new ZodObject({ + ...this._def, + unknownKeys: "strip" + }); + } + passthrough() { + return new ZodObject({ + ...this._def, + unknownKeys: "passthrough" + }); + } + // const AugmentFactory = + // <Def extends ZodObjectDef>(def: Def) => + // <Augmentation extends ZodRawShape>( + // augmentation: Augmentation + // ): ZodObject< + // extendShape<ReturnType<Def["shape"]>, Augmentation>, + // Def["unknownKeys"], + // Def["catchall"] + // > => { + // return new ZodObject({ + // ...def, + // shape: () => ({ + // ...def.shape(), + // ...augmentation, + // }), + // }) as any; + // }; + extend(augmentation) { + return new ZodObject({ + ...this._def, + shape: () => ({ + ...this._def.shape(), + ...augmentation + }) + }); + } + /** + * Prior to zod@1.0.12 there was a bug in the + * inferred type of merged objects. Please + * upgrade if you are experiencing issues. + */ + merge(merging) { + return new ZodObject({ + unknownKeys: merging._def.unknownKeys, + catchall: merging._def.catchall, + shape: () => objectUtil.mergeShapes(this._def.shape(), merging._def.shape()), + typeName: ZodFirstPartyTypeKind.ZodObject + }); + } + // merge< + // Incoming extends AnyZodObject, + // Augmentation extends Incoming["shape"], + // NewOutput extends { + // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation + // ? Augmentation[k]["_output"] + // : k extends keyof Output + // ? Output[k] + // : never; + // }, + // NewInput extends { + // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation + // ? Augmentation[k]["_input"] + // : k extends keyof Input + // ? Input[k] + // : never; + // } + // >( + // merging: Incoming + // ): ZodObject< + // extendShape<T, ReturnType<Incoming["_def"]["shape"]>>, + // Incoming["_def"]["unknownKeys"], + // Incoming["_def"]["catchall"], + // NewOutput, + // NewInput + // > { + // const merged: any = new ZodObject({ + // unknownKeys: merging._def.unknownKeys, + // catchall: merging._def.catchall, + // shape: () => + // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()), + // typeName: ZodFirstPartyTypeKind.ZodObject, + // }) as any; + // return merged; + // } + setKey(key, schema) { + return this.augment({ [key]: schema }); + } + // merge<Incoming extends AnyZodObject>( + // merging: Incoming + // ): //ZodObject<T & Incoming["_shape"], UnknownKeys, Catchall> = (merging) => { + // ZodObject< + // extendShape<T, ReturnType<Incoming["_def"]["shape"]>>, + // Incoming["_def"]["unknownKeys"], + // Incoming["_def"]["catchall"] + // > { + // // const mergedShape = objectUtil.mergeShapes( + // // this._def.shape(), + // // merging._def.shape() + // // ); + // const merged: any = new ZodObject({ + // unknownKeys: merging._def.unknownKeys, + // catchall: merging._def.catchall, + // shape: () => + // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()), + // typeName: ZodFirstPartyTypeKind.ZodObject, + // }) as any; + // return merged; + // } + catchall(index) { + return new ZodObject({ + ...this._def, + catchall: index + }); + } + pick(mask) { + let shape = {}; + return util.objectKeys(mask).forEach((key) => { + mask[key] && this.shape[key] && (shape[key] = this.shape[key]); + }), new ZodObject({ + ...this._def, + shape: () => shape + }); + } + omit(mask) { + let shape = {}; + return util.objectKeys(this.shape).forEach((key) => { + mask[key] || (shape[key] = this.shape[key]); + }), new ZodObject({ + ...this._def, + shape: () => shape + }); + } + deepPartial() { + return deepPartialify(this); + } + partial(mask) { + let newShape = {}; + return util.objectKeys(this.shape).forEach((key) => { + let fieldSchema = this.shape[key]; + mask && !mask[key] ? newShape[key] = fieldSchema : newShape[key] = fieldSchema.optional(); + }), new ZodObject({ + ...this._def, + shape: () => newShape + }); + } + required(mask) { + let newShape = {}; + return util.objectKeys(this.shape).forEach((key) => { + if (mask && !mask[key]) + newShape[key] = this.shape[key]; + else { + let newField = this.shape[key]; + for (; newField instanceof ZodOptional; ) + newField = newField._def.innerType; + newShape[key] = newField; + } + }), new ZodObject({ + ...this._def, + shape: () => newShape + }); + } + keyof() { + return createZodEnum(util.objectKeys(this.shape)); + } +}; +ZodObject.create = (shape, params) => new ZodObject({ + shape: () => shape, + unknownKeys: "strip", + catchall: ZodNever.create(), + typeName: ZodFirstPartyTypeKind.ZodObject, + ...processCreateParams(params) +}); +ZodObject.strictCreate = (shape, params) => new ZodObject({ + shape: () => shape, + unknownKeys: "strict", + catchall: ZodNever.create(), + typeName: ZodFirstPartyTypeKind.ZodObject, + ...processCreateParams(params) +}); +ZodObject.lazycreate = (shape, params) => new ZodObject({ + shape, + unknownKeys: "strip", + catchall: ZodNever.create(), + typeName: ZodFirstPartyTypeKind.ZodObject, + ...processCreateParams(params) +}); +var ZodUnion = class extends ZodType { + _parse(input) { + let { ctx } = this._processInputParams(input), options = this._def.options; + function handleResults(results) { + for (let result of results) + if (result.result.status === "valid") + return result.result; + for (let result of results) + if (result.result.status === "dirty") + return ctx.common.issues.push(...result.ctx.common.issues), result.result; + let unionErrors = results.map((result) => new ZodError(result.ctx.common.issues)); + return addIssueToContext(ctx, { + code: ZodIssueCode.invalid_union, + unionErrors + }), INVALID; + } + if (ctx.common.async) + return Promise.all(options.map(async (option) => { + let childCtx = { + ...ctx, + common: { + ...ctx.common, + issues: [] + }, + parent: null + }; + return { + result: await option._parseAsync({ + data: ctx.data, + path: ctx.path, + parent: childCtx + }), + ctx: childCtx + }; + })).then(handleResults); + { + let dirty, issues = []; + for (let option of options) { + let childCtx = { + ...ctx, + common: { + ...ctx.common, + issues: [] + }, + parent: null + }, result = option._parseSync({ + data: ctx.data, + path: ctx.path, + parent: childCtx + }); + if (result.status === "valid") + return result; + result.status === "dirty" && !dirty && (dirty = { result, ctx: childCtx }), childCtx.common.issues.length && issues.push(childCtx.common.issues); + } + if (dirty) + return ctx.common.issues.push(...dirty.ctx.common.issues), dirty.result; + let unionErrors = issues.map((issues2) => new ZodError(issues2)); + return addIssueToContext(ctx, { + code: ZodIssueCode.invalid_union, + unionErrors + }), INVALID; + } + } + get options() { + return this._def.options; + } +}; +ZodUnion.create = (types, params) => new ZodUnion({ + options: types, + typeName: ZodFirstPartyTypeKind.ZodUnion, + ...processCreateParams(params) +}); +var getDiscriminator = (type) => type instanceof ZodLazy ? getDiscriminator(type.schema) : type instanceof ZodEffects ? getDiscriminator(type.innerType()) : type instanceof ZodLiteral ? [type.value] : type instanceof ZodEnum ? type.options : type instanceof ZodNativeEnum ? Object.keys(type.enum) : type instanceof ZodDefault ? getDiscriminator(type._def.innerType) : type instanceof ZodUndefined ? [void 0] : type instanceof ZodNull ? [null] : null, ZodDiscriminatedUnion = class extends ZodType { + _parse(input) { + let { ctx } = this._processInputParams(input); + if (ctx.parsedType !== ZodParsedType.object) + return addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.object, + received: ctx.parsedType + }), INVALID; + let discriminator = this.discriminator, discriminatorValue = ctx.data[discriminator], option = this.optionsMap.get(discriminatorValue); + return option ? ctx.common.async ? option._parseAsync({ + data: ctx.data, + path: ctx.path, + parent: ctx + }) : option._parseSync({ + data: ctx.data, + path: ctx.path, + parent: ctx + }) : (addIssueToContext(ctx, { + code: ZodIssueCode.invalid_union_discriminator, + options: Array.from(this.optionsMap.keys()), + path: [discriminator] + }), INVALID); + } + get discriminator() { + return this._def.discriminator; + } + get options() { + return this._def.options; + } + get optionsMap() { + return this._def.optionsMap; + } + /** + * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor. + * However, it only allows a union of objects, all of which need to share a discriminator property. This property must + * have a different value for each object in the union. + * @param discriminator the name of the discriminator property + * @param types an array of object schemas + * @param params + */ + static create(discriminator, options, params) { + let optionsMap = /* @__PURE__ */ new Map(); + for (let type of options) { + let discriminatorValues = getDiscriminator(type.shape[discriminator]); + if (!discriminatorValues) + throw new Error(`A discriminator value for key \`${discriminator}\` could not be extracted from all schema options`); + for (let value of discriminatorValues) { + if (optionsMap.has(value)) + throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`); + optionsMap.set(value, type); + } + } + return new ZodDiscriminatedUnion({ + typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion, + discriminator, + options, + optionsMap, + ...processCreateParams(params) + }); + } +}; +function mergeValues(a, b) { + let aType = getParsedType(a), bType = getParsedType(b); + if (a === b) + return { valid: !0, data: a }; + if (aType === ZodParsedType.object && bType === ZodParsedType.object) { + let bKeys = util.objectKeys(b), sharedKeys = util.objectKeys(a).filter((key) => bKeys.indexOf(key) !== -1), newObj = { ...a, ...b }; + for (let key of sharedKeys) { + let sharedValue = mergeValues(a[key], b[key]); + if (!sharedValue.valid) + return { valid: !1 }; + newObj[key] = sharedValue.data; + } + return { valid: !0, data: newObj }; + } else if (aType === ZodParsedType.array && bType === ZodParsedType.array) { + if (a.length !== b.length) + return { valid: !1 }; + let newArray = []; + for (let index = 0; index < a.length; index++) { + let itemA = a[index], itemB = b[index], sharedValue = mergeValues(itemA, itemB); + if (!sharedValue.valid) + return { valid: !1 }; + newArray.push(sharedValue.data); + } + return { valid: !0, data: newArray }; + } else + return aType === ZodParsedType.date && bType === ZodParsedType.date && +a == +b ? { valid: !0, data: a } : { valid: !1 }; +} +var ZodIntersection = class extends ZodType { + _parse(input) { + let { status, ctx } = this._processInputParams(input), handleParsed = (parsedLeft, parsedRight) => { + if (isAborted(parsedLeft) || isAborted(parsedRight)) + return INVALID; + let merged = mergeValues(parsedLeft.value, parsedRight.value); + return merged.valid ? ((isDirty(parsedLeft) || isDirty(parsedRight)) && status.dirty(), { status: status.value, value: merged.data }) : (addIssueToContext(ctx, { + code: ZodIssueCode.invalid_intersection_types + }), INVALID); + }; + return ctx.common.async ? Promise.all([ + this._def.left._parseAsync({ + data: ctx.data, + path: ctx.path, + parent: ctx + }), + this._def.right._parseAsync({ + data: ctx.data, + path: ctx.path, + parent: ctx + }) + ]).then(([left, right]) => handleParsed(left, right)) : handleParsed(this._def.left._parseSync({ + data: ctx.data, + path: ctx.path, + parent: ctx + }), this._def.right._parseSync({ + data: ctx.data, + path: ctx.path, + parent: ctx + })); + } +}; +ZodIntersection.create = (left, right, params) => new ZodIntersection({ + left, + right, + typeName: ZodFirstPartyTypeKind.ZodIntersection, + ...processCreateParams(params) +}); +var ZodTuple = class extends ZodType { + _parse(input) { + let { status, ctx } = this._processInputParams(input); + if (ctx.parsedType !== ZodParsedType.array) + return addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.array, + received: ctx.parsedType + }), INVALID; + if (ctx.data.length < this._def.items.length) + return addIssueToContext(ctx, { + code: ZodIssueCode.too_small, + minimum: this._def.items.length, + inclusive: !0, + exact: !1, + type: "array" + }), INVALID; + !this._def.rest && ctx.data.length > this._def.items.length && (addIssueToContext(ctx, { + code: ZodIssueCode.too_big, + maximum: this._def.items.length, + inclusive: !0, + exact: !1, + type: "array" + }), status.dirty()); + let items = [...ctx.data].map((item, itemIndex) => { + let schema = this._def.items[itemIndex] || this._def.rest; + return schema ? schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex)) : null; + }).filter((x) => !!x); + return ctx.common.async ? Promise.all(items).then((results) => ParseStatus.mergeArray(status, results)) : ParseStatus.mergeArray(status, items); + } + get items() { + return this._def.items; + } + rest(rest) { + return new ZodTuple({ + ...this._def, + rest + }); + } +}; +ZodTuple.create = (schemas, params) => { + if (!Array.isArray(schemas)) + throw new Error("You must pass an array of schemas to z.tuple([ ... ])"); + return new ZodTuple({ + items: schemas, + typeName: ZodFirstPartyTypeKind.ZodTuple, + rest: null, + ...processCreateParams(params) + }); +}; +var ZodRecord = class extends ZodType { + get keySchema() { + return this._def.keyType; + } + get valueSchema() { + return this._def.valueType; + } + _parse(input) { + let { status, ctx } = this._processInputParams(input); + if (ctx.parsedType !== ZodParsedType.object) + return addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.object, + received: ctx.parsedType + }), INVALID; + let pairs = [], keyType = this._def.keyType, valueType = this._def.valueType; + for (let key in ctx.data) + pairs.push({ + key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)), + value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)) + }); + return ctx.common.async ? ParseStatus.mergeObjectAsync(status, pairs) : ParseStatus.mergeObjectSync(status, pairs); + } + get element() { + return this._def.valueType; + } + static create(first, second, third) { + return second instanceof ZodType ? new ZodRecord({ + keyType: first, + valueType: second, + typeName: ZodFirstPartyTypeKind.ZodRecord, + ...processCreateParams(third) + }) : new ZodRecord({ + keyType: ZodString.create(), + valueType: first, + typeName: ZodFirstPartyTypeKind.ZodRecord, + ...processCreateParams(second) + }); + } +}, ZodMap = class extends ZodType { + _parse(input) { + let { status, ctx } = this._processInputParams(input); + if (ctx.parsedType !== ZodParsedType.map) + return addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.map, + received: ctx.parsedType + }), INVALID; + let keyType = this._def.keyType, valueType = this._def.valueType, pairs = [...ctx.data.entries()].map(([key, value], index) => ({ + key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, "key"])), + value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, "value"])) + })); + if (ctx.common.async) { + let finalMap = /* @__PURE__ */ new Map(); + return Promise.resolve().then(async () => { + for (let pair of pairs) { + let key = await pair.key, value = await pair.value; + if (key.status === "aborted" || value.status === "aborted") + return INVALID; + (key.status === "dirty" || value.status === "dirty") && status.dirty(), finalMap.set(key.value, value.value); + } + return { status: status.value, value: finalMap }; + }); + } else { + let finalMap = /* @__PURE__ */ new Map(); + for (let pair of pairs) { + let key = pair.key, value = pair.value; + if (key.status === "aborted" || value.status === "aborted") + return INVALID; + (key.status === "dirty" || value.status === "dirty") && status.dirty(), finalMap.set(key.value, value.value); + } + return { status: status.value, value: finalMap }; + } + } +}; +ZodMap.create = (keyType, valueType, params) => new ZodMap({ + valueType, + keyType, + typeName: ZodFirstPartyTypeKind.ZodMap, + ...processCreateParams(params) +}); +var ZodSet = class extends ZodType { + _parse(input) { + let { status, ctx } = this._processInputParams(input); + if (ctx.parsedType !== ZodParsedType.set) + return addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.set, + received: ctx.parsedType + }), INVALID; + let def = this._def; + def.minSize !== null && ctx.data.size < def.minSize.value && (addIssueToContext(ctx, { + code: ZodIssueCode.too_small, + minimum: def.minSize.value, + type: "set", + inclusive: !0, + exact: !1, + message: def.minSize.message + }), status.dirty()), def.maxSize !== null && ctx.data.size > def.maxSize.value && (addIssueToContext(ctx, { + code: ZodIssueCode.too_big, + maximum: def.maxSize.value, + type: "set", + inclusive: !0, + exact: !1, + message: def.maxSize.message + }), status.dirty()); + let valueType = this._def.valueType; + function finalizeSet(elements2) { + let parsedSet = /* @__PURE__ */ new Set(); + for (let element of elements2) { + if (element.status === "aborted") + return INVALID; + element.status === "dirty" && status.dirty(), parsedSet.add(element.value); + } + return { status: status.value, value: parsedSet }; + } + let elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i))); + return ctx.common.async ? Promise.all(elements).then((elements2) => finalizeSet(elements2)) : finalizeSet(elements); + } + min(minSize, message) { + return new ZodSet({ + ...this._def, + minSize: { value: minSize, message: errorUtil.toString(message) } + }); + } + max(maxSize, message) { + return new ZodSet({ + ...this._def, + maxSize: { value: maxSize, message: errorUtil.toString(message) } + }); + } + size(size, message) { + return this.min(size, message).max(size, message); + } + nonempty(message) { + return this.min(1, message); + } +}; +ZodSet.create = (valueType, params) => new ZodSet({ + valueType, + minSize: null, + maxSize: null, + typeName: ZodFirstPartyTypeKind.ZodSet, + ...processCreateParams(params) +}); +var ZodFunction = class extends ZodType { + constructor() { + super(...arguments), this.validate = this.implement; + } + _parse(input) { + let { ctx } = this._processInputParams(input); + if (ctx.parsedType !== ZodParsedType.function) + return addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.function, + received: ctx.parsedType + }), INVALID; + function makeArgsIssue(args, error) { + return makeIssue({ + data: args, + path: ctx.path, + errorMaps: [ + ctx.common.contextualErrorMap, + ctx.schemaErrorMap, + getErrorMap(), + errorMap + ].filter((x) => !!x), + issueData: { + code: ZodIssueCode.invalid_arguments, + argumentsError: error + } + }); + } + function makeReturnsIssue(returns, error) { + return makeIssue({ + data: returns, + path: ctx.path, + errorMaps: [ + ctx.common.contextualErrorMap, + ctx.schemaErrorMap, + getErrorMap(), + errorMap + ].filter((x) => !!x), + issueData: { + code: ZodIssueCode.invalid_return_type, + returnTypeError: error + } + }); + } + let params = { errorMap: ctx.common.contextualErrorMap }, fn = ctx.data; + return this._def.returns instanceof ZodPromise ? OK(async (...args) => { + let error = new ZodError([]), parsedArgs = await this._def.args.parseAsync(args, params).catch((e) => { + throw error.addIssue(makeArgsIssue(args, e)), error; + }), result = await fn(...parsedArgs); + return await this._def.returns._def.type.parseAsync(result, params).catch((e) => { + throw error.addIssue(makeReturnsIssue(result, e)), error; + }); + }) : OK((...args) => { + let parsedArgs = this._def.args.safeParse(args, params); + if (!parsedArgs.success) + throw new ZodError([makeArgsIssue(args, parsedArgs.error)]); + let result = fn(...parsedArgs.data), parsedReturns = this._def.returns.safeParse(result, params); + if (!parsedReturns.success) + throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]); + return parsedReturns.data; + }); + } + parameters() { + return this._def.args; + } + returnType() { + return this._def.returns; + } + args(...items) { + return new ZodFunction({ + ...this._def, + args: ZodTuple.create(items).rest(ZodUnknown.create()) + }); + } + returns(returnType) { + return new ZodFunction({ + ...this._def, + returns: returnType + }); + } + implement(func) { + return this.parse(func); + } + strictImplement(func) { + return this.parse(func); + } + static create(args, returns, params) { + return new ZodFunction({ + args: args || ZodTuple.create([]).rest(ZodUnknown.create()), + returns: returns || ZodUnknown.create(), + typeName: ZodFirstPartyTypeKind.ZodFunction, + ...processCreateParams(params) + }); + } +}, ZodLazy = class extends ZodType { + get schema() { + return this._def.getter(); + } + _parse(input) { + let { ctx } = this._processInputParams(input); + return this._def.getter()._parse({ data: ctx.data, path: ctx.path, parent: ctx }); + } +}; +ZodLazy.create = (getter, params) => new ZodLazy({ + getter, + typeName: ZodFirstPartyTypeKind.ZodLazy, + ...processCreateParams(params) +}); +var ZodLiteral = class extends ZodType { + _parse(input) { + if (input.data !== this._def.value) { + let ctx = this._getOrReturnCtx(input); + return addIssueToContext(ctx, { + received: ctx.data, + code: ZodIssueCode.invalid_literal, + expected: this._def.value + }), INVALID; + } + return { status: "valid", value: input.data }; + } + get value() { + return this._def.value; + } +}; +ZodLiteral.create = (value, params) => new ZodLiteral({ + value, + typeName: ZodFirstPartyTypeKind.ZodLiteral, + ...processCreateParams(params) +}); +function createZodEnum(values, params) { + return new ZodEnum({ + values, + typeName: ZodFirstPartyTypeKind.ZodEnum, + ...processCreateParams(params) + }); +} +var ZodEnum = class extends ZodType { + _parse(input) { + if (typeof input.data != "string") { + let ctx = this._getOrReturnCtx(input), expectedValues = this._def.values; + return addIssueToContext(ctx, { + expected: util.joinValues(expectedValues), + received: ctx.parsedType, + code: ZodIssueCode.invalid_type + }), INVALID; + } + if (this._def.values.indexOf(input.data) === -1) { + let ctx = this._getOrReturnCtx(input), expectedValues = this._def.values; + return addIssueToContext(ctx, { + received: ctx.data, + code: ZodIssueCode.invalid_enum_value, + options: expectedValues + }), INVALID; + } + return OK(input.data); + } + get options() { + return this._def.values; + } + get enum() { + let enumValues = {}; + for (let val of this._def.values) + enumValues[val] = val; + return enumValues; + } + get Values() { + let enumValues = {}; + for (let val of this._def.values) + enumValues[val] = val; + return enumValues; + } + get Enum() { + let enumValues = {}; + for (let val of this._def.values) + enumValues[val] = val; + return enumValues; + } + extract(values) { + return ZodEnum.create(values); + } + exclude(values) { + return ZodEnum.create(this.options.filter((opt) => !values.includes(opt))); + } +}; +ZodEnum.create = createZodEnum; +var ZodNativeEnum = class extends ZodType { + _parse(input) { + let nativeEnumValues = util.getValidEnumValues(this._def.values), ctx = this._getOrReturnCtx(input); + if (ctx.parsedType !== ZodParsedType.string && ctx.parsedType !== ZodParsedType.number) { + let expectedValues = util.objectValues(nativeEnumValues); + return addIssueToContext(ctx, { + expected: util.joinValues(expectedValues), + received: ctx.parsedType, + code: ZodIssueCode.invalid_type + }), INVALID; + } + if (nativeEnumValues.indexOf(input.data) === -1) { + let expectedValues = util.objectValues(nativeEnumValues); + return addIssueToContext(ctx, { + received: ctx.data, + code: ZodIssueCode.invalid_enum_value, + options: expectedValues + }), INVALID; + } + return OK(input.data); + } + get enum() { + return this._def.values; + } +}; +ZodNativeEnum.create = (values, params) => new ZodNativeEnum({ + values, + typeName: ZodFirstPartyTypeKind.ZodNativeEnum, + ...processCreateParams(params) +}); +var ZodPromise = class extends ZodType { + unwrap() { + return this._def.type; + } + _parse(input) { + let { ctx } = this._processInputParams(input); + if (ctx.parsedType !== ZodParsedType.promise && ctx.common.async === !1) + return addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.promise, + received: ctx.parsedType + }), INVALID; + let promisified = ctx.parsedType === ZodParsedType.promise ? ctx.data : Promise.resolve(ctx.data); + return OK(promisified.then((data) => this._def.type.parseAsync(data, { + path: ctx.path, + errorMap: ctx.common.contextualErrorMap + }))); + } +}; +ZodPromise.create = (schema, params) => new ZodPromise({ + type: schema, + typeName: ZodFirstPartyTypeKind.ZodPromise, + ...processCreateParams(params) +}); +var ZodEffects = class extends ZodType { + innerType() { + return this._def.schema; + } + sourceType() { + return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects ? this._def.schema.sourceType() : this._def.schema; + } + _parse(input) { + let { status, ctx } = this._processInputParams(input), effect = this._def.effect || null; + if (effect.type === "preprocess") { + let processed = effect.transform(ctx.data); + return ctx.common.async ? Promise.resolve(processed).then((processed2) => this._def.schema._parseAsync({ + data: processed2, + path: ctx.path, + parent: ctx + })) : this._def.schema._parseSync({ + data: processed, + path: ctx.path, + parent: ctx + }); + } + let checkCtx = { + addIssue: (arg) => { + addIssueToContext(ctx, arg), arg.fatal ? status.abort() : status.dirty(); + }, + get path() { + return ctx.path; + } + }; + if (checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx), effect.type === "refinement") { + let executeRefinement = (acc) => { + let result = effect.refinement(acc, checkCtx); + if (ctx.common.async) + return Promise.resolve(result); + if (result instanceof Promise) + throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead."); + return acc; + }; + if (ctx.common.async === !1) { + let inner = this._def.schema._parseSync({ + data: ctx.data, + path: ctx.path, + parent: ctx + }); + return inner.status === "aborted" ? INVALID : (inner.status === "dirty" && status.dirty(), executeRefinement(inner.value), { status: status.value, value: inner.value }); + } else + return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((inner) => inner.status === "aborted" ? INVALID : (inner.status === "dirty" && status.dirty(), executeRefinement(inner.value).then(() => ({ status: status.value, value: inner.value })))); + } + if (effect.type === "transform") + if (ctx.common.async === !1) { + let base = this._def.schema._parseSync({ + data: ctx.data, + path: ctx.path, + parent: ctx + }); + if (!isValid(base)) + return base; + let result = effect.transform(base.value, checkCtx); + if (result instanceof Promise) + throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead."); + return { status: status.value, value: result }; + } else + return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((base) => isValid(base) ? Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({ status: status.value, value: result })) : base); + util.assertNever(effect); + } +}; +ZodEffects.create = (schema, effect, params) => new ZodEffects({ + schema, + typeName: ZodFirstPartyTypeKind.ZodEffects, + effect, + ...processCreateParams(params) +}); +ZodEffects.createWithPreprocess = (preprocess, schema, params) => new ZodEffects({ + schema, + effect: { type: "preprocess", transform: preprocess }, + typeName: ZodFirstPartyTypeKind.ZodEffects, + ...processCreateParams(params) +}); +var ZodOptional = class extends ZodType { + _parse(input) { + return this._getType(input) === ZodParsedType.undefined ? OK(void 0) : this._def.innerType._parse(input); + } + unwrap() { + return this._def.innerType; + } +}; +ZodOptional.create = (type, params) => new ZodOptional({ + innerType: type, + typeName: ZodFirstPartyTypeKind.ZodOptional, + ...processCreateParams(params) +}); +var ZodNullable = class extends ZodType { + _parse(input) { + return this._getType(input) === ZodParsedType.null ? OK(null) : this._def.innerType._parse(input); + } + unwrap() { + return this._def.innerType; + } +}; +ZodNullable.create = (type, params) => new ZodNullable({ + innerType: type, + typeName: ZodFirstPartyTypeKind.ZodNullable, + ...processCreateParams(params) +}); +var ZodDefault = class extends ZodType { + _parse(input) { + let { ctx } = this._processInputParams(input), data = ctx.data; + return ctx.parsedType === ZodParsedType.undefined && (data = this._def.defaultValue()), this._def.innerType._parse({ + data, + path: ctx.path, + parent: ctx + }); + } + removeDefault() { + return this._def.innerType; + } +}; +ZodDefault.create = (type, params) => new ZodDefault({ + innerType: type, + typeName: ZodFirstPartyTypeKind.ZodDefault, + defaultValue: typeof params.default == "function" ? params.default : () => params.default, + ...processCreateParams(params) +}); +var ZodCatch = class extends ZodType { + _parse(input) { + let { ctx } = this._processInputParams(input), result = this._def.innerType._parse({ + data: ctx.data, + path: ctx.path, + parent: { + ...ctx, + common: { + ...ctx.common, + issues: [] + // don't collect issues from inner type + } + } + }); + return isAsync(result) ? result.then((result2) => ({ + status: "valid", + value: result2.status === "valid" ? result2.value : this._def.catchValue() + })) : { + status: "valid", + value: result.status === "valid" ? result.value : this._def.catchValue() + }; + } + removeCatch() { + return this._def.innerType; + } +}; +ZodCatch.create = (type, params) => new ZodCatch({ + innerType: type, + typeName: ZodFirstPartyTypeKind.ZodCatch, + catchValue: typeof params.catch == "function" ? params.catch : () => params.catch, + ...processCreateParams(params) +}); +var ZodNaN = class extends ZodType { + _parse(input) { + if (this._getType(input) !== ZodParsedType.nan) { + let ctx = this._getOrReturnCtx(input); + return addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.nan, + received: ctx.parsedType + }), INVALID; + } + return { status: "valid", value: input.data }; + } +}; +ZodNaN.create = (params) => new ZodNaN({ + typeName: ZodFirstPartyTypeKind.ZodNaN, + ...processCreateParams(params) +}); +var BRAND = Symbol("zod_brand"), ZodBranded = class extends ZodType { + _parse(input) { + let { ctx } = this._processInputParams(input), data = ctx.data; + return this._def.type._parse({ + data, + path: ctx.path, + parent: ctx + }); + } + unwrap() { + return this._def.type; + } +}, ZodPipeline = class extends ZodType { + _parse(input) { + let { status, ctx } = this._processInputParams(input); + if (ctx.common.async) + return (async () => { + let inResult = await this._def.in._parseAsync({ + data: ctx.data, + path: ctx.path, + parent: ctx + }); + return inResult.status === "aborted" ? INVALID : inResult.status === "dirty" ? (status.dirty(), DIRTY(inResult.value)) : this._def.out._parseAsync({ + data: inResult.value, + path: ctx.path, + parent: ctx + }); + })(); + { + let inResult = this._def.in._parseSync({ + data: ctx.data, + path: ctx.path, + parent: ctx + }); + return inResult.status === "aborted" ? INVALID : inResult.status === "dirty" ? (status.dirty(), { + status: "dirty", + value: inResult.value + }) : this._def.out._parseSync({ + data: inResult.value, + path: ctx.path, + parent: ctx + }); + } + } + static create(a, b) { + return new ZodPipeline({ + in: a, + out: b, + typeName: ZodFirstPartyTypeKind.ZodPipeline + }); + } +}, custom = (check, params = {}, fatal) => check ? ZodAny.create().superRefine((data, ctx) => { + if (!check(data)) { + let p = typeof params == "function" ? params(data) : params, p2 = typeof p == "string" ? { message: p } : p; + ctx.addIssue({ code: "custom", ...p2, fatal }); + } +}) : ZodAny.create(), late = { + object: ZodObject.lazycreate +}, ZodFirstPartyTypeKind; +(function(ZodFirstPartyTypeKind2) { + ZodFirstPartyTypeKind2.ZodString = "ZodString", ZodFirstPartyTypeKind2.ZodNumber = "ZodNumber", ZodFirstPartyTypeKind2.ZodNaN = "ZodNaN", ZodFirstPartyTypeKind2.ZodBigInt = "ZodBigInt", ZodFirstPartyTypeKind2.ZodBoolean = "ZodBoolean", ZodFirstPartyTypeKind2.ZodDate = "ZodDate", ZodFirstPartyTypeKind2.ZodSymbol = "ZodSymbol", ZodFirstPartyTypeKind2.ZodUndefined = "ZodUndefined", ZodFirstPartyTypeKind2.ZodNull = "ZodNull", ZodFirstPartyTypeKind2.ZodAny = "ZodAny", ZodFirstPartyTypeKind2.ZodUnknown = "ZodUnknown", ZodFirstPartyTypeKind2.ZodNever = "ZodNever", ZodFirstPartyTypeKind2.ZodVoid = "ZodVoid", ZodFirstPartyTypeKind2.ZodArray = "ZodArray", ZodFirstPartyTypeKind2.ZodObject = "ZodObject", ZodFirstPartyTypeKind2.ZodUnion = "ZodUnion", ZodFirstPartyTypeKind2.ZodDiscriminatedUnion = "ZodDiscriminatedUnion", ZodFirstPartyTypeKind2.ZodIntersection = "ZodIntersection", ZodFirstPartyTypeKind2.ZodTuple = "ZodTuple", ZodFirstPartyTypeKind2.ZodRecord = "ZodRecord", ZodFirstPartyTypeKind2.ZodMap = "ZodMap", ZodFirstPartyTypeKind2.ZodSet = "ZodSet", ZodFirstPartyTypeKind2.ZodFunction = "ZodFunction", ZodFirstPartyTypeKind2.ZodLazy = "ZodLazy", ZodFirstPartyTypeKind2.ZodLiteral = "ZodLiteral", ZodFirstPartyTypeKind2.ZodEnum = "ZodEnum", ZodFirstPartyTypeKind2.ZodEffects = "ZodEffects", ZodFirstPartyTypeKind2.ZodNativeEnum = "ZodNativeEnum", ZodFirstPartyTypeKind2.ZodOptional = "ZodOptional", ZodFirstPartyTypeKind2.ZodNullable = "ZodNullable", ZodFirstPartyTypeKind2.ZodDefault = "ZodDefault", ZodFirstPartyTypeKind2.ZodCatch = "ZodCatch", ZodFirstPartyTypeKind2.ZodPromise = "ZodPromise", ZodFirstPartyTypeKind2.ZodBranded = "ZodBranded", ZodFirstPartyTypeKind2.ZodPipeline = "ZodPipeline"; +})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {})); +var instanceOfType = (cls, params = { + message: `Input not instance of ${cls.name}` +}) => custom((data) => data instanceof cls, params, !0), stringType = ZodString.create, numberType = ZodNumber.create, nanType = ZodNaN.create, bigIntType = ZodBigInt.create, booleanType = ZodBoolean.create, dateType = ZodDate.create, symbolType = ZodSymbol.create, undefinedType = ZodUndefined.create, nullType = ZodNull.create, anyType = ZodAny.create, unknownType = ZodUnknown.create, neverType = ZodNever.create, voidType = ZodVoid.create, arrayType = ZodArray.create, objectType = ZodObject.create, strictObjectType = ZodObject.strictCreate, unionType = ZodUnion.create, discriminatedUnionType = ZodDiscriminatedUnion.create, intersectionType = ZodIntersection.create, tupleType = ZodTuple.create, recordType = ZodRecord.create, mapType = ZodMap.create, setType = ZodSet.create, functionType = ZodFunction.create, lazyType = ZodLazy.create, literalType = ZodLiteral.create, enumType = ZodEnum.create, nativeEnumType = ZodNativeEnum.create, promiseType = ZodPromise.create, effectsType = ZodEffects.create, optionalType = ZodOptional.create, nullableType = ZodNullable.create, preprocessType = ZodEffects.createWithPreprocess, pipelineType = ZodPipeline.create, ostring = () => stringType().optional(), onumber = () => numberType().optional(), oboolean = () => booleanType().optional(), coerce = { + string: (arg) => ZodString.create({ ...arg, coerce: !0 }), + number: (arg) => ZodNumber.create({ ...arg, coerce: !0 }), + boolean: (arg) => ZodBoolean.create({ + ...arg, + coerce: !0 + }), + bigint: (arg) => ZodBigInt.create({ ...arg, coerce: !0 }), + date: (arg) => ZodDate.create({ ...arg, coerce: !0 }) +}, NEVER = INVALID, mod = /* @__PURE__ */ Object.freeze({ + __proto__: null, + defaultErrorMap: errorMap, + setErrorMap, + getErrorMap, + makeIssue, + EMPTY_PATH, + addIssueToContext, + ParseStatus, + INVALID, + DIRTY, + OK, + isAborted, + isDirty, + isValid, + isAsync, + get util() { + return util; + }, + ZodParsedType, + getParsedType, + ZodType, + ZodString, + ZodNumber, + ZodBigInt, + ZodBoolean, + ZodDate, + ZodSymbol, + ZodUndefined, + ZodNull, + ZodAny, + ZodUnknown, + ZodNever, + ZodVoid, + ZodArray, + get objectUtil() { + return objectUtil; + }, + ZodObject, + ZodUnion, + ZodDiscriminatedUnion, + ZodIntersection, + ZodTuple, + ZodRecord, + ZodMap, + ZodSet, + ZodFunction, + ZodLazy, + ZodLiteral, + ZodEnum, + ZodNativeEnum, + ZodPromise, + ZodEffects, + ZodTransformer: ZodEffects, + ZodOptional, + ZodNullable, + ZodDefault, + ZodCatch, + ZodNaN, + BRAND, + ZodBranded, + ZodPipeline, + custom, + Schema: ZodType, + ZodSchema: ZodType, + late, + get ZodFirstPartyTypeKind() { + return ZodFirstPartyTypeKind; + }, + coerce, + any: anyType, + array: arrayType, + bigint: bigIntType, + boolean: booleanType, + date: dateType, + discriminatedUnion: discriminatedUnionType, + effect: effectsType, + enum: enumType, + function: functionType, + instanceof: instanceOfType, + intersection: intersectionType, + lazy: lazyType, + literal: literalType, + map: mapType, + nan: nanType, + nativeEnum: nativeEnumType, + never: neverType, + null: nullType, + nullable: nullableType, + number: numberType, + object: objectType, + oboolean, + onumber, + optional: optionalType, + ostring, + pipeline: pipelineType, + preprocess: preprocessType, + promise: promiseType, + record: recordType, + set: setType, + strictObject: strictObjectType, + string: stringType, + symbol: symbolType, + transformer: effectsType, + tuple: tupleType, + undefined: undefinedType, + union: unionType, + unknown: unknownType, + void: voidType, + NEVER, + ZodIssueCode, + quotelessJson, + ZodError +}); + +// packages/miniflare/src/workers/shared/zod.worker.ts +var HEX_REGEXP = /^[0-9a-f]*$/i, BASE64_REGEXP = /^[0-9a-z+/=]*$/i, HexDataSchema = mod.string().regex(HEX_REGEXP).transform((hex) => Buffer.from(hex, "hex")), Base64DataSchema = mod.string().regex(BASE64_REGEXP).transform((base64) => Buffer.from(base64, "base64")); +export { + BASE64_REGEXP, + Base64DataSchema, + HEX_REGEXP, + HexDataSchema, + mod as z +}; +//# sourceMappingURL=zod.worker.js.map diff --git a/node_modules/miniflare/dist/src/workers/shared/zod.worker.js.map b/node_modules/miniflare/dist/src/workers/shared/zod.worker.js.map new file mode 100644 index 0000000..1ee4ceb --- /dev/null +++ b/node_modules/miniflare/dist/src/workers/shared/zod.worker.js.map @@ -0,0 +1,6 @@ +{ + "version": 3, + "sources": ["../../../../src/workers/shared/zod.worker.ts", "../../../../../../node_modules/zod/lib/index.mjs"], + "mappings": "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", + "names": ["util", "errorUtil", "errorMap", "ctx", "result", "objectUtil", "issues", "elements", "processed", "ZodFirstPartyTypeKind"] +} diff --git a/node_modules/miniflare/package.json b/node_modules/miniflare/package.json new file mode 100644 index 0000000..1146c91 --- /dev/null +++ b/node_modules/miniflare/package.json @@ -0,0 +1,67 @@ +{ + "name": "miniflare", + "version": "3.20230918.0", + "description": "Fun, full-featured, fully-local simulator for Cloudflare Workers", + "keywords": [ + "cloudflare", + "workers", + "worker", + "local", + "cloudworker" + ], + "homepage": "https://github.com/cloudflare/miniflare/tree/master/packages/tre#readme", + "bugs": { + "url": "https://github.com/cloudflare/miniflare/issues" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/cloudflare/miniflare.git", + "directory": "packages/tre" + }, + "license": "MIT", + "author": "MrBBot <me@mrbbot.dev>", + "main": "./dist/src/index.js", + "types": "./dist/src/index.d.ts", + "files": [ + "dist/src", + "bootstrap.js" + ], + "dependencies": { + "acorn": "^8.8.0", + "acorn-walk": "^8.2.0", + "capnp-ts": "^0.7.0", + "exit-hook": "^2.2.1", + "glob-to-regexp": "^0.4.1", + "source-map-support": "0.5.21", + "stoppable": "^1.1.0", + "undici": "^5.22.1", + "workerd": "1.20230904.0", + "ws": "^8.11.0", + "youch": "^3.2.2", + "zod": "^3.20.6" + }, + "devDependencies": { + "@cloudflare/kv-asset-handler": "^0.3.0", + "@cloudflare/workers-types": "^4.20230807.0", + "@types/debug": "^4.1.7", + "@types/estree": "^1.0.0", + "@types/glob-to-regexp": "^0.4.1", + "@types/http-cache-semantics": "^4.0.1", + "@types/source-map-support": "^0.5.6", + "@types/stoppable": "^1.1.1", + "@types/ws": "^8.5.3", + "devalue": "^4.3.0", + "devtools-protocol": "^0.0.1182435", + "http-cache-semantics": "^4.1.0", + "kleur": "^4.1.5" + }, + "engines": { + "node": ">=16.13" + }, + "volta": { + "extends": "../../package.json" + }, + "publishConfig": { + "access": "public" + } +} |
