effect-cf 0.27.0 → 0.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -0
- package/dist/{Artifacts-DcoXcRP5.d.mts → Artifacts-DnHQA-Ax.d.mts} +42 -25
- package/dist/{Artifacts-BhWrdyqX.mjs → Artifacts-rq3hUKQE.mjs} +46 -30
- package/dist/{Binding-COCtoJXa.d.mts → Binding-xJJJPmiD.d.mts} +6 -5
- package/dist/ComputerArtifacts.d.mts +1 -1
- package/dist/ComputerArtifacts.mjs +9 -9
- package/dist/ComputerWorkspace.d.mts +5 -5
- package/dist/ComputerWorkspace.mjs +107 -75
- package/dist/ComputerWorkspaceHost.d.mts +1 -1
- package/dist/ComputerWorkspaceHost.mjs +18 -16
- package/dist/{DurableObjectState-biHrHwrh.d.mts → DurableObjectState-B3uFY1eM.d.mts} +85 -62
- package/dist/{DurableObjectState-Dux8KfjG.mjs → DurableObjectState-BjkK2kwH.mjs} +3 -3
- package/dist/{ErrorMessage-_lg53p3W.mjs → ErrorMessage-BM0K-Nik.mjs} +1 -4
- package/dist/{Hyperdrive-6p59yyVk.d.mts → Hyperdrive-z-9fFz15.d.mts} +2 -2
- package/dist/HyperdrivePg.d.mts +2 -2
- package/dist/Vitest.d.mts +6 -5
- package/dist/Vitest.mjs +2 -2
- package/dist/{WorkflowBinding-zlRPCXVf.d.mts → WorkflowBinding-wZ-yGHow.d.mts} +5 -10
- package/dist/index.d.mts +82 -60
- package/dist/index.mjs +268 -170
- package/package.json +1 -1
- package/src/AiGateway.ts +62 -7
- package/src/AnalyticsEngine.ts +17 -13
- package/src/Artifacts.ts +111 -47
- package/src/Binding.ts +34 -23
- package/src/BrowserRendering.ts +72 -33
- package/src/CloudflareOtlp.ts +8 -5
- package/src/ComputerArtifacts.ts +17 -9
- package/src/ComputerWorkspace.ts +202 -98
- package/src/ComputerWorkspaceHost.ts +55 -27
- package/src/ContainerNamespace.ts +8 -9
- package/src/D1.ts +8 -14
- package/src/DurableObject.ts +27 -11
- package/src/DurableObjectAlarm.ts +17 -5
- package/src/DurableObjectDefinition.ts +89 -72
- package/src/DurableObjectNamespace.ts +26 -12
- package/src/DurableObjectRpcWebSocket.ts +9 -10
- package/src/DurableObjectState.ts +1 -0
- package/src/DurableObjectStorage.ts +5 -2
- package/src/DurableObjectWebSocket.ts +4 -1
- package/src/Email.ts +26 -25
- package/src/Hyperdrive.ts +4 -10
- package/src/Images.ts +12 -14
- package/src/Kv.ts +15 -17
- package/src/Queue.ts +2 -1
- package/src/QueueBinding.ts +7 -12
- package/src/QueueDefinition.ts +7 -2
- package/src/R2.ts +33 -24
- package/src/Rpc.ts +15 -21
- package/src/RpcDefinition.ts +33 -38
- package/src/ServiceBinding.ts +26 -8
- package/src/Vectorize.ts +45 -18
- package/src/Vitest.ts +9 -3
- package/src/WebTransport.ts +11 -5
- package/src/Worker.ts +91 -21
- package/src/WorkerDefinition.ts +143 -63
- package/src/WorkersAi.ts +50 -28
- package/src/Workflow.ts +66 -13
- package/src/WorkflowBinding.ts +18 -25
- package/src/WorkflowDefinition.ts +4 -2
- package/src/internal/Entrypoint.ts +29 -13
- package/src/internal/ErrorMessage.ts +7 -6
- package/src/internal/RpcInvocation.ts +34 -11
- package/src/internal/Runtime.ts +33 -22
- package/src/internal/WorkerContext.ts +3 -3
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as ArtifactsBinding } from "./Artifacts-
|
|
1
|
+
import { t as ArtifactsBinding } from "./Artifacts-DnHQA-Ax.mjs";
|
|
2
2
|
import { GitClientFactory } from "@cloudflare/computer/git";
|
|
3
3
|
import { DurableObjectStorageLike, SyncRetryIntent, SyncRetryOptions, SyncRetryScheduler, WithWorkspaceCtor, WorkspaceAttributeValue, WorkspaceAttributes, WorkspaceObserver, WorkspaceOptions, WorkspaceRegisteredBackend, WorkspaceRetryPendingSyncResult, WorkspaceServiceProxy, WorkspaceSpan } from "@cloudflare/computer";
|
|
4
4
|
import { ShellModuleGroup, WorkerShellBackendOptions, WorkerShellLoader, WorkspaceEgressPolicy } from "@cloudflare/computer/backends/worker-shell";
|
|
@@ -18,24 +18,26 @@ const toWorkspaceOptions = (config) => {
|
|
|
18
18
|
egress: egress ?? { mode: "none" }
|
|
19
19
|
}));
|
|
20
20
|
}
|
|
21
|
-
|
|
21
|
+
const options = {
|
|
22
22
|
storage: config.storage,
|
|
23
|
-
git: config.git ?? createGitClient()
|
|
24
|
-
...config.gitIdentity === void 0 ? {} : { defaultGitIdentity: config.gitIdentity },
|
|
25
|
-
...backends.length === 0 ? {} : { backends },
|
|
26
|
-
...config.sessionId === void 0 ? {} : { sessionId: config.sessionId },
|
|
27
|
-
...config.mounts === void 0 ? {} : { mounts: config.mounts },
|
|
28
|
-
...config.observer === void 0 ? {} : { observer: config.observer },
|
|
29
|
-
...config.retryScheduler === void 0 ? {} : { retryScheduler: config.retryScheduler },
|
|
30
|
-
...config.retry === void 0 ? {} : { retry: config.retry },
|
|
31
|
-
...config.assets === void 0 ? {} : { assets: config.assets },
|
|
32
|
-
...config.artifacts === void 0 ? {} : { artifacts: {
|
|
33
|
-
binding: config.artifacts.binding,
|
|
34
|
-
...config.artifacts.sessionId === void 0 ? {} : { sessionId: config.artifacts.sessionId }
|
|
35
|
-
} },
|
|
36
|
-
...config.now === void 0 ? {} : { now: config.now },
|
|
37
|
-
...config.useThink === void 0 ? {} : { useThink: config.useThink }
|
|
23
|
+
git: config.git ?? createGitClient()
|
|
38
24
|
};
|
|
25
|
+
if (config.gitIdentity !== void 0) options.defaultGitIdentity = config.gitIdentity;
|
|
26
|
+
if (backends.length !== 0) options.backends = backends;
|
|
27
|
+
if (config.sessionId !== void 0) options.sessionId = config.sessionId;
|
|
28
|
+
if (config.mounts !== void 0) options.mounts = config.mounts;
|
|
29
|
+
if (config.observer !== void 0) options.observer = config.observer;
|
|
30
|
+
if (config.retryScheduler !== void 0) options.retryScheduler = config.retryScheduler;
|
|
31
|
+
if (config.retry !== void 0) options.retry = config.retry;
|
|
32
|
+
if (config.assets !== void 0) options.assets = config.assets;
|
|
33
|
+
if (config.artifacts !== void 0) {
|
|
34
|
+
const artifacts = { binding: config.artifacts.binding };
|
|
35
|
+
if (config.artifacts.sessionId !== void 0) artifacts.sessionId = config.artifacts.sessionId;
|
|
36
|
+
options.artifacts = artifacts;
|
|
37
|
+
}
|
|
38
|
+
if (config.now !== void 0) options.now = config.now;
|
|
39
|
+
if (config.useThink !== void 0) options.useThink = config.useThink;
|
|
40
|
+
return options;
|
|
39
41
|
};
|
|
40
42
|
const HostArguments = Symbol("effect-cf/ComputerWorkspaceHost/arguments");
|
|
41
43
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { c as WorkerEnvironment, n as BindingService, r as BindingValidationError, s as WorkerEnv, t as BindingNotFoundError } from "./Binding-
|
|
2
|
-
import { Cause, Context, Effect, Layer, Option, Schema, Scope } from "effect";
|
|
1
|
+
import { c as WorkerEnvironment, n as BindingService, r as BindingValidationError, s as WorkerEnv, t as BindingNotFoundError } from "./Binding-xJJJPmiD.mjs";
|
|
2
|
+
import { Cause, Context, Effect, Layer, Option, Predicate, Schema, Scope } from "effect";
|
|
3
3
|
import { HttpServerRequest, HttpServerResponse } from "effect/unstable/http";
|
|
4
4
|
import { RpcStub, RpcTarget, WorkerEntrypoint } from "cloudflare:workers";
|
|
5
5
|
declare namespace DurableObjectStorage_d_exports {
|
|
@@ -236,13 +236,13 @@ declare const attachment: <const AttachmentSchema extends Schema.Codec<any, any,
|
|
|
236
236
|
interface DurableWebSocketHandlers<R = never, E = unknown> {
|
|
237
237
|
readonly message?: (socket: DurableWebSocket, message: string | ArrayBuffer) => Effect.Effect<void, E, R>;
|
|
238
238
|
readonly close?: (socket: DurableWebSocket, code: number, reason: string, wasClean: boolean) => Effect.Effect<void, E, R>;
|
|
239
|
-
readonly error?: (socket: DurableWebSocket,
|
|
239
|
+
readonly error?: (socket: DurableWebSocket, cause: unknown) => Effect.Effect<void, E, R>;
|
|
240
240
|
}
|
|
241
241
|
/** Maps compact websocket lifecycle handler names to `DurableObject.make` options. */
|
|
242
242
|
declare const handlers: <R = never, E = unknown>(options: DurableWebSocketHandlers<R, E>) => {
|
|
243
243
|
webSocketMessage: ((socket: DurableWebSocket, message: string | ArrayBuffer) => Effect.Effect<void, E, R>) | undefined;
|
|
244
244
|
webSocketClose: ((socket: DurableWebSocket, code: number, reason: string, wasClean: boolean) => Effect.Effect<void, E, R>) | undefined;
|
|
245
|
-
webSocketError: ((socket: DurableWebSocket,
|
|
245
|
+
webSocketError: ((socket: DurableWebSocket, cause: unknown) => Effect.Effect<void, E, R>) | undefined;
|
|
246
246
|
};
|
|
247
247
|
declare namespace Rpc_d_exports {
|
|
248
248
|
export { DisposableValue, MethodArgs, MethodKey, MethodReturn, Provider, Result$1 as Result, RpcStub, RpcTarget, Serializable, Stub, Stubable, Stubify, dispose, isDisposable, resolve, scoped };
|
|
@@ -252,20 +252,19 @@ type Stub<T extends Stubable> = Rpc.Stub<T>;
|
|
|
252
252
|
type Provider<T extends object, Reserved extends string = never> = Rpc.Provider<T, Reserved>;
|
|
253
253
|
type BaseType = void | undefined | null | boolean | number | bigint | string | TypedArray | ArrayBuffer | DataView | Date | Error | RegExp | ReadableStream<Uint8Array> | WritableStream<Uint8Array> | Request | Response | Headers;
|
|
254
254
|
type Serializable<T> = BaseType | Map<T extends Map<infer Key, unknown> ? Serializable<Key> : never, T extends Map<unknown, infer Value> ? Serializable<Value> : never> | Set<T extends Set<infer Value> ? Serializable<Value> : never> | ReadonlyArray<T extends ReadonlyArray<infer Value> ? Serializable<Value> : never> | { [Key in keyof T]: Key extends number | string ? Serializable<T[Key]> : never; } | Stub<Stubable> | Stubable;
|
|
255
|
-
type Stubify<T> = T extends Stubable ? Stub<T> : T extends Map<infer Key, infer Value> ? Map<Stubify<Key>, Stubify<Value>> : T extends Set<infer Value> ? Set<Stubify<Value>> : T extends Array<infer Value> ? Array<Stubify<Value>> : T extends ReadonlyArray<infer Value> ? ReadonlyArray<Stubify<Value>> : T extends BaseType ? T : T extends {
|
|
256
|
-
[key: string | number]: unknown;
|
|
257
|
-
} ? { [Key in keyof T]: Stubify<T[Key]>; } : T;
|
|
255
|
+
type Stubify<T> = T extends Stubable ? Stub<T> : T extends Map<infer Key, infer Value> ? Map<Stubify<Key>, Stubify<Value>> : T extends Set<infer Value> ? Set<Stubify<Value>> : T extends Array<infer Value> ? Array<Stubify<Value>> : T extends ReadonlyArray<infer Value> ? ReadonlyArray<Stubify<Value>> : T extends BaseType ? T : T extends Record<string | number, infer _Value> ? { [Key in keyof T]: Stubify<T[Key]>; } : T;
|
|
258
256
|
type MaybeProvider<T> = T extends object ? Provider<T> : unknown;
|
|
259
257
|
type MaybeDisposable<T> = T extends object ? Disposable : unknown;
|
|
260
258
|
type Result$1<T> = T extends Stubable ? Promise<Stub<T>> & Provider<T> : T extends Serializable<T> ? Promise<Stubify<T> & MaybeDisposable<T>> & MaybeProvider<T> : never;
|
|
261
|
-
type MethodKey<Api> = { [Key in keyof Api]-?: Key extends string ? Api[Key] extends ((...args: Array<any>) =>
|
|
262
|
-
type MethodArgs<Api, Method extends keyof Api> = Api[Method] extends ((...args: infer Args) =>
|
|
259
|
+
type MethodKey<Api> = { [Key in keyof Api]-?: Key extends string ? Api[Key] extends ((...args: Array<any>) => any) ? Key : never : never; }[keyof Api];
|
|
260
|
+
type MethodArgs<Api, Method extends keyof Api> = Api[Method] extends ((...args: infer Args) => any) ? Args : never;
|
|
263
261
|
type MethodReturn<Api, Method extends keyof Api> = Api[Method] extends ((...args: Array<any>) => infer Return) ? Return : never;
|
|
264
262
|
type DisposableValue = {
|
|
265
263
|
[Symbol.dispose](): void;
|
|
266
264
|
};
|
|
267
|
-
|
|
268
|
-
declare const
|
|
265
|
+
type RpcBoundaryValue = Schema.Schema.Type<typeof Schema.Unknown>;
|
|
266
|
+
declare const isDisposable: (value: RpcBoundaryValue) => value is DisposableValue;
|
|
267
|
+
declare const dispose: (value: RpcBoundaryValue) => Effect.Effect<void>;
|
|
269
268
|
declare const resolve: <A>(value: A) => Effect.Effect<Awaited<A>, unknown>;
|
|
270
269
|
declare const scoped: <A>(value: A) => Effect.Effect<Awaited<A>, unknown, Scope.Scope>;
|
|
271
270
|
declare namespace RpcDefinition_d_exports {
|
|
@@ -327,14 +326,15 @@ declare class RpcSuccessEncodeError extends RpcSuccessEncodeError_base {
|
|
|
327
326
|
}
|
|
328
327
|
/** Errors raised server-side that must survive the Cloudflare RPC wire. */
|
|
329
328
|
type WireError = RpcArgumentCountError | RpcArgumentDecodeError | RpcSuccessEncodeError;
|
|
330
|
-
|
|
329
|
+
type WireValue = Schema.Schema.Type<typeof Schema.Unknown>;
|
|
330
|
+
declare const isWireError: (error: WireValue) => error is WireError;
|
|
331
331
|
/**
|
|
332
332
|
* Encodes package RPC errors into a plain `Error` envelope so their tags
|
|
333
333
|
* survive Cloudflare RPC serialization, which drops custom error properties.
|
|
334
334
|
*/
|
|
335
|
-
declare const encodeWireError: (error:
|
|
335
|
+
declare const encodeWireError: (error: WireValue) => WireValue;
|
|
336
336
|
/** Restores package RPC errors from the {@link encodeWireError} envelope. */
|
|
337
|
-
declare const decodeWireError: (cause:
|
|
337
|
+
declare const decodeWireError: (cause: WireValue) => WireValue;
|
|
338
338
|
declare const reservedMethodNames: Set<string>;
|
|
339
339
|
type ReservedMethodName$3 = "constructor" | "fetch" | "connect" | "alarm" | "webSocketMessage" | "webSocketClose" | "webSocketError" | "then" | "dup" | "dispose" | "serialize" | "deserialize";
|
|
340
340
|
type ServiceFreeSchema$1 = Schema.Codec<any, any, never, never>;
|
|
@@ -350,14 +350,14 @@ declare namespace Method$2 {
|
|
|
350
350
|
export type Args<Self extends Any> = ArgsFromSchemas<Self["args"]>;
|
|
351
351
|
export type EncodedArgs<Self extends Any> = EncodedArgsFromSchemas<Self["args"]>;
|
|
352
352
|
export type Success<Self extends Any> = Schema.Schema.Type<Self["success"]>;
|
|
353
|
-
export type EncodedSuccess<
|
|
353
|
+
export type EncodedSuccess<_Self extends Any> = Schema.Json;
|
|
354
354
|
export {};
|
|
355
355
|
}
|
|
356
356
|
type Methods$1 = Record<string, Method$2.Any>;
|
|
357
|
-
type NoReservedMethods$1<
|
|
358
|
-
interface Definition$3<Id extends string = string,
|
|
357
|
+
type NoReservedMethods$1<MethodDefinitions extends Methods$1, Reserved extends string = ReservedMethodName$3> = Extract<keyof MethodDefinitions, Reserved> extends never ? MethodDefinitions : never;
|
|
358
|
+
interface Definition$3<Id extends string = string, MethodDefinitions extends Methods$1 = Methods$1> {
|
|
359
359
|
readonly id: Id;
|
|
360
|
-
readonly methods:
|
|
360
|
+
readonly methods: MethodDefinitions;
|
|
361
361
|
}
|
|
362
362
|
declare namespace Definition$3 {
|
|
363
363
|
type Any = Definition$3<string, Methods$1>;
|
|
@@ -365,7 +365,8 @@ declare namespace Definition$3 {
|
|
|
365
365
|
type Api<Self extends Any, Reserved extends string = never> = Provider<ServerApi<Self>, Reserved>;
|
|
366
366
|
type MethodNames<Self extends Any> = Extract<keyof Self["methods"], string>;
|
|
367
367
|
}
|
|
368
|
-
|
|
368
|
+
type ReservedMethodValue = Schema.Schema.Type<typeof Schema.Unknown>;
|
|
369
|
+
declare const assertNoReservedMethods: <MethodDefinitions extends Readonly<Record<string, ReservedMethodValue>>>(target: string, methods: MethodDefinitions, reserved: ReadonlySet<string>) => void;
|
|
369
370
|
declare function method$1<Success extends ServiceFreeSchema$1>(definition: {
|
|
370
371
|
readonly success: Success;
|
|
371
372
|
}): Method$2<readonly [], Success>;
|
|
@@ -376,8 +377,8 @@ declare function method$1<const Args extends ReadonlyArray<ServiceFreeSchema$1>,
|
|
|
376
377
|
declare const decodeArgs: <const Self extends Definition$3.Any, MethodName extends Definition$3.MethodNames<Self>>(definition: Self, methodName: MethodName, args: readonly unknown[]) => Effect.Effect<Self["methods"][MethodName]["args"] extends (infer T) ? T extends Self["methods"][MethodName]["args"] ? T extends readonly [] ? [] : T extends readonly [infer Head extends ServiceFreeSchema$1, ...infer Tail extends readonly ServiceFreeSchema$1[]] ? [Schema.Schema.Type<Head>, ...Tail extends readonly [] ? [] : Tail extends readonly [infer Head extends ServiceFreeSchema$1, ...infer Tail extends readonly ServiceFreeSchema$1[]] ? [Schema.Schema.Type<Head>, ...Tail extends readonly [] ? [] : Tail extends readonly [infer Head extends ServiceFreeSchema$1, ...infer Tail extends readonly ServiceFreeSchema$1[]] ? [Schema.Schema.Type<Head>, ...Tail extends readonly [] ? [] : Tail extends readonly [infer Head extends ServiceFreeSchema$1, ...infer Tail extends readonly ServiceFreeSchema$1[]] ? [Schema.Schema.Type<Head>, ...Tail extends readonly [] ? [] : Tail extends readonly [infer Head extends ServiceFreeSchema$1, ...infer Tail extends readonly ServiceFreeSchema$1[]] ? [Schema.Schema.Type<Head>, ...Tail extends readonly [] ? [] : Tail extends readonly [infer Head extends ServiceFreeSchema$1, ...infer Tail extends readonly ServiceFreeSchema$1[]] ? [Schema.Schema.Type<Head>, ...Tail extends readonly [] ? [] : Tail extends readonly [infer Head extends ServiceFreeSchema$1, ...infer Tail extends readonly ServiceFreeSchema$1[]] ? [Schema.Schema.Type<Head>, ...Tail extends readonly [] ? [] : Tail extends readonly [infer Head extends ServiceFreeSchema$1, ...infer Tail extends readonly ServiceFreeSchema$1[]] ? [Schema.Schema.Type<Head>, ...Tail extends readonly [] ? [] : Tail extends readonly [infer Head extends ServiceFreeSchema$1, ...infer Tail extends readonly ServiceFreeSchema$1[]] ? [Schema.Schema.Type<Head>, ...Tail extends readonly [] ? [] : Tail extends readonly [infer Head extends ServiceFreeSchema$1, ...infer Tail extends readonly ServiceFreeSchema$1[]] ? [Schema.Schema.Type<Head>, ...Tail extends readonly [] ? [] : Tail extends readonly [infer Head extends ServiceFreeSchema$1, ...infer Tail extends readonly ServiceFreeSchema$1[]] ? [Schema.Schema.Type<Head>, ... /*elided*/ any] : Schema.Schema.Type<Tail[number]>[]] : Schema.Schema.Type<Tail[number]>[]] : Schema.Schema.Type<Tail[number]>[]] : Schema.Schema.Type<Tail[number]>[]] : Schema.Schema.Type<Tail[number]>[]] : Schema.Schema.Type<Tail[number]>[]] : Schema.Schema.Type<Tail[number]>[]] : Schema.Schema.Type<Tail[number]>[]] : Schema.Schema.Type<Tail[number]>[]] : Schema.Schema.Type<Tail[number]>[]] : Schema.Schema.Type<T[number]>[] : never : never, RpcArgumentCountError | RpcArgumentDecodeError, never>;
|
|
377
378
|
declare const encodeArgs: <const Self extends Definition$3.Any, MethodName extends Definition$3.MethodNames<Self>>(definition: Self, methodName: MethodName, args: Self["methods"][MethodName]["args"] extends (infer T) ? T extends Self["methods"][MethodName]["args"] ? T extends readonly [] ? [] : T extends readonly [infer Head extends ServiceFreeSchema$1, ...infer Tail extends readonly ServiceFreeSchema$1[]] ? [Schema.Schema.Type<Head>, ...Tail extends readonly [] ? [] : Tail extends readonly [infer Head extends ServiceFreeSchema$1, ...infer Tail extends readonly ServiceFreeSchema$1[]] ? [Schema.Schema.Type<Head>, ...Tail extends readonly [] ? [] : Tail extends readonly [infer Head extends ServiceFreeSchema$1, ...infer Tail extends readonly ServiceFreeSchema$1[]] ? [Schema.Schema.Type<Head>, ...Tail extends readonly [] ? [] : Tail extends readonly [infer Head extends ServiceFreeSchema$1, ...infer Tail extends readonly ServiceFreeSchema$1[]] ? [Schema.Schema.Type<Head>, ...Tail extends readonly [] ? [] : Tail extends readonly [infer Head extends ServiceFreeSchema$1, ...infer Tail extends readonly ServiceFreeSchema$1[]] ? [Schema.Schema.Type<Head>, ...Tail extends readonly [] ? [] : Tail extends readonly [infer Head extends ServiceFreeSchema$1, ...infer Tail extends readonly ServiceFreeSchema$1[]] ? [Schema.Schema.Type<Head>, ...Tail extends readonly [] ? [] : Tail extends readonly [infer Head extends ServiceFreeSchema$1, ...infer Tail extends readonly ServiceFreeSchema$1[]] ? [Schema.Schema.Type<Head>, ...Tail extends readonly [] ? [] : Tail extends readonly [infer Head extends ServiceFreeSchema$1, ...infer Tail extends readonly ServiceFreeSchema$1[]] ? [Schema.Schema.Type<Head>, ...Tail extends readonly [] ? [] : Tail extends readonly [infer Head extends ServiceFreeSchema$1, ...infer Tail extends readonly ServiceFreeSchema$1[]] ? [Schema.Schema.Type<Head>, ...Tail extends readonly [] ? [] : Tail extends readonly [infer Head extends ServiceFreeSchema$1, ...infer Tail extends readonly ServiceFreeSchema$1[]] ? [Schema.Schema.Type<Head>, ...Tail extends readonly [] ? [] : Tail extends readonly [infer Head extends ServiceFreeSchema$1, ...infer Tail extends readonly ServiceFreeSchema$1[]] ? [Schema.Schema.Type<Head>, ... /*elided*/ any] : Schema.Schema.Type<Tail[number]>[]] : Schema.Schema.Type<Tail[number]>[]] : Schema.Schema.Type<Tail[number]>[]] : Schema.Schema.Type<Tail[number]>[]] : Schema.Schema.Type<Tail[number]>[]] : Schema.Schema.Type<Tail[number]>[]] : Schema.Schema.Type<Tail[number]>[]] : Schema.Schema.Type<Tail[number]>[]] : Schema.Schema.Type<Tail[number]>[]] : Schema.Schema.Type<Tail[number]>[]] : Schema.Schema.Type<T[number]>[] : never : never) => Effect.Effect<Self["methods"][MethodName]["args"] extends (infer T_1 extends readonly ServiceFreeSchema$1[]) ? { [Index in keyof T_1]: Schema.Json; } : never, RpcArgumentCountError | RpcArgumentEncodeError, never>;
|
|
378
379
|
declare const encodeSuccess: <const Self extends Definition$3.Any, MethodName extends Definition$3.MethodNames<Self>>(definition: Self, methodName: MethodName, value: Method$2.Success<Self["methods"][MethodName]>) => Effect.Effect<Method$2.EncodedSuccess<Self["methods"][MethodName]>, RpcSuccessEncodeError>;
|
|
379
|
-
declare const decodeSuccess: <const Self extends Definition$3.Any, MethodName extends Definition$3.MethodNames<Self>>(definition: Self, methodName: MethodName, value:
|
|
380
|
-
declare const make$3: <Id extends string, const
|
|
380
|
+
declare const decodeSuccess: <const Self extends Definition$3.Any, MethodName extends Definition$3.MethodNames<Self>>(definition: Self, methodName: MethodName, value: WireValue) => Effect.Effect<Method$2.Success<Self["methods"][MethodName]>, RpcSuccessDecodeError>;
|
|
381
|
+
declare const make$3: <Id extends string, const MethodDefinitions extends Methods$1>(id: Id, methods: MethodDefinitions) => Definition$3<Id, MethodDefinitions>;
|
|
381
382
|
declare namespace QueueBinding_d_exports {
|
|
382
383
|
export { MessageSendRequest, QueueBindingClient, QueueBindingDefinition, QueueMetrics, QueueOperationError, QueueProducer, QueueSendBatchOptions, QueueSendBatchResponse, QueueSendOptions, QueueSendResponse, isQueue, layer$1 as layer, makeClient$1 as makeClient };
|
|
383
384
|
}
|
|
@@ -388,6 +389,7 @@ type QueueSendBatchResponse = CloudflareQueueSendBatchResponse;
|
|
|
388
389
|
type QueueMetrics = CloudflareQueueMetrics;
|
|
389
390
|
type MessageSendRequest<Body> = CloudflareMessageSendRequest<Body>;
|
|
390
391
|
type QueueProducer<Body> = Pick<CloudflareQueue<Body>, "send"> & Partial<Pick<CloudflareQueue<Body>, "sendBatch" | "metrics">>;
|
|
392
|
+
type QueueCandidate = Parameters<typeof Predicate.isUnknown>[0];
|
|
391
393
|
interface QueueBindingDefinition<Message extends ServiceFreeSchema$1> {
|
|
392
394
|
/** Binding name as configured in `wrangler.jsonc`. */
|
|
393
395
|
readonly binding: string;
|
|
@@ -398,7 +400,7 @@ interface QueueBindingClient<Message extends ServiceFreeSchema$1> {
|
|
|
398
400
|
readonly send: (message: Schema.Schema.Type<Message>, options?: QueueSendOptions) => Effect.Effect<void, QueueOperationError | Schema.SchemaError>;
|
|
399
401
|
readonly sendBatch: (messages: Iterable<MessageSendRequest<Schema.Schema.Type<Message>>>, options?: QueueSendBatchOptions) => Effect.Effect<void, QueueOperationError | Schema.SchemaError>;
|
|
400
402
|
readonly metrics: () => Effect.Effect<QueueMetrics, QueueOperationError>;
|
|
401
|
-
readonly rawUnsafe: Effect.Effect<
|
|
403
|
+
readonly rawUnsafe: Effect.Effect<QueueProducer<Schema.Codec.Encoded<Message>>>;
|
|
402
404
|
}
|
|
403
405
|
declare const QueueOperationError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
404
406
|
readonly _tag: "QueueOperationError";
|
|
@@ -409,7 +411,7 @@ declare class QueueOperationError extends QueueOperationError_base<{
|
|
|
409
411
|
readonly cause: unknown;
|
|
410
412
|
readonly message: string;
|
|
411
413
|
}> {}
|
|
412
|
-
declare const isQueue: <Body>(value:
|
|
414
|
+
declare const isQueue: <Body>(value: QueueCandidate) => value is QueueProducer<Body>;
|
|
413
415
|
declare const makeClient$1: <Message extends ServiceFreeSchema$1>(definition: QueueBindingDefinition<Message>) => ((queue: QueueProducer<Schema.Codec.Encoded<Message>>) => QueueBindingClient<Message>);
|
|
414
416
|
declare const layer$1: <Self, Message extends ServiceFreeSchema$1>(tag: Context.Service<Self, QueueBindingClient<Message>>, definition: QueueBindingDefinition<Message>) => import("effect/Layer").Layer<Self, BindingNotFoundError | BindingValidationError, WorkerEnvironment>;
|
|
415
417
|
declare namespace QueueDefinition_d_exports {
|
|
@@ -423,7 +425,7 @@ declare namespace Definition$2 {
|
|
|
423
425
|
type Any = Definition$2<string, ServiceFreeSchema$1>;
|
|
424
426
|
}
|
|
425
427
|
type Handler$1<ROut, Self extends Definition$2.Any> = (batch: QueueBatch<Schema.Schema.Type<Self["message"]>>) => Effect.Effect<void, unknown, ExecutionContext | WorkerContext | WorkerEnvironment | Scope.Scope | ROut>;
|
|
426
|
-
interface Options$2<ROut, Self extends Definition$2.Any> extends Omit<WorkerOptions<ROut, Record<never, never>>, "queue" | "rpc"> {
|
|
428
|
+
interface Options$2<ROut, Self extends Definition$2.Any> extends Omit<WorkerOptions<ROut, never, never, Record<never, never>>, "queue" | "rpc"> {
|
|
427
429
|
readonly queue: Handler$1<ROut, Self>;
|
|
428
430
|
readonly rpc?: never;
|
|
429
431
|
}
|
|
@@ -438,7 +440,7 @@ interface TagClass$2<Self, Id extends string, Message extends ServiceFreeSchema$
|
|
|
438
440
|
readonly send: (message: Schema.Schema.Type<Message>, options?: QueueSendOptions) => Effect.Effect<void, QueueOperationError | Schema.SchemaError, Self>;
|
|
439
441
|
readonly sendBatch: (messages: Iterable<MessageSendRequest<Schema.Schema.Type<Message>>>, options?: QueueSendBatchOptions) => Effect.Effect<void, QueueOperationError | Schema.SchemaError, Self>;
|
|
440
442
|
readonly metrics: () => Effect.Effect<QueueMetrics, QueueOperationError, Self>;
|
|
441
|
-
readonly rawUnsafe: Effect.Effect<
|
|
443
|
+
readonly rawUnsafe: Effect.Effect<QueueProducer<Schema.Codec.Encoded<Message>>, never, Self>;
|
|
442
444
|
}
|
|
443
445
|
declare const make$2: <Id extends string, Message extends ServiceFreeSchema$1>(id: Id, definition: {
|
|
444
446
|
readonly message: Message;
|
|
@@ -481,6 +483,7 @@ declare class QueueMessageDecodeError extends QueueMessageDecodeError_base<{
|
|
|
481
483
|
}
|
|
482
484
|
type RuntimeContext<ROut> = ExecutionContext | WorkerContext | WorkerEnvironment | ROut;
|
|
483
485
|
type QueueHandlerContext<ROut> = RuntimeContext<ROut> | Scope.Scope;
|
|
486
|
+
type EncodedQueueBody = globalThis.Message<unknown>["body"];
|
|
484
487
|
type QueueHandler<ROut, Body = unknown> = (batch: QueueBatch<Body>) => Effect.Effect<void, unknown, QueueHandlerContext<ROut>>;
|
|
485
488
|
interface QueueOptions<ROut, Body = unknown> {
|
|
486
489
|
readonly queue: QueueHandler<ROut, Body>;
|
|
@@ -495,7 +498,7 @@ declare const fromMessage: <Body>(message: globalThis.Message<unknown>, body: Bo
|
|
|
495
498
|
retry: (options?: globalThis.QueueRetryOptions) => Effect.Effect<void, never, never>;
|
|
496
499
|
};
|
|
497
500
|
declare const fromMessageBatch: <Body>(batch: globalThis.MessageBatch<unknown>, messages: ReadonlyArray<QueueMessage<Body>>) => QueueBatch<Body>;
|
|
498
|
-
declare const decodeBatch: <Body>(batch: globalThis.MessageBatch<unknown>, decodeBody: (body:
|
|
501
|
+
declare const decodeBatch: <Body>(batch: globalThis.MessageBatch<unknown>, decodeBody: (body: EncodedQueueBody) => Effect.Effect<Body, unknown>) => Effect.Effect<QueueBatch<Body>, QueueMessageDecodeError>;
|
|
499
502
|
type Definition$1<Id extends string = string, Message extends Definition$2.Any["message"] = Definition$2.Any["message"]> = Definition$2<Id, Message>;
|
|
500
503
|
declare namespace Definition$1 {
|
|
501
504
|
type Any = Definition$2.Any;
|
|
@@ -511,8 +514,8 @@ type Options$1<ROut, Self extends Definition$2.Any> = Options$2<ROut, Self>;
|
|
|
511
514
|
//#endregion
|
|
512
515
|
//#region src/internal/RpcInvocation.d.ts
|
|
513
516
|
type AnyArgs = Array<any>;
|
|
514
|
-
type AsyncMethodKey<Api> = { [Key in keyof Api]-?: Key extends string ? Api[Key] extends ((...args: AnyArgs) => Promise<
|
|
515
|
-
type AsyncMethodArgs<Api, Method extends keyof Api> = Api[Method] extends ((...args: infer Args) => Promise<
|
|
517
|
+
type AsyncMethodKey<Api> = { [Key in keyof Api]-?: Key extends string ? Api[Key] extends ((...args: AnyArgs) => Promise<any>) ? Key : never : never; }[keyof Api];
|
|
518
|
+
type AsyncMethodArgs<Api, Method extends keyof Api> = Api[Method] extends ((...args: infer Args) => Promise<any>) ? Args : never;
|
|
516
519
|
type AsyncMethodSuccess<Api, Method extends keyof Api> = Api[Method] extends ((...args: AnyArgs) => Promise<infer A>) ? A : never;
|
|
517
520
|
type AsyncMethodCloudflareReturn<Api, Method extends keyof Api> = Result$1<AsyncMethodSuccess<Api, Method>>;
|
|
518
521
|
declare namespace ServiceBinding_d_exports {
|
|
@@ -525,22 +528,22 @@ declare const TypeId: "effect-cf/ServiceBinding";
|
|
|
525
528
|
interface ServiceFetcher {
|
|
526
529
|
fetch(input: RequestInfo | URL, init?: RequestInit): Promise<Response>;
|
|
527
530
|
}
|
|
528
|
-
type RpcClient<Api> = { readonly [Key in keyof Api as Key extends string ? Api[Key] extends ((...args: Array<any>) =>
|
|
531
|
+
type RpcClient<Api> = { readonly [Key in keyof Api as Key extends string ? Api[Key] extends ((...args: Array<any>) => any) ? Key : never : never]: Api[Key]; };
|
|
529
532
|
type ReservedMethodName$2 = ReservedMethodName$1 | "fetch";
|
|
530
533
|
/**
|
|
531
534
|
* Native Cloudflare service object including optional RPC methods.
|
|
532
535
|
*/
|
|
533
536
|
type ServiceBindingClient<Api extends object> = ServiceFetcher & RpcClient<Provider<Api, ReservedMethodName$2>>;
|
|
534
|
-
type ApiFromDefinition<Definition$
|
|
537
|
+
type ApiFromDefinition<Definition$12> = Definition$12 extends Definition.Any ? ServerApi$1<Definition$12> : never;
|
|
535
538
|
type ApiOrDefinition<Api extends object, Definition> = [Api] extends [never] ? ApiFromDefinition<Definition> : Api;
|
|
536
539
|
/**
|
|
537
540
|
* Binding metadata used to create an Effect service from a Worker binding.
|
|
538
541
|
*/
|
|
539
|
-
interface ServiceBindingDefinition<Definition$
|
|
542
|
+
interface ServiceBindingDefinition<Definition$8 extends Definition.Any | undefined = undefined> {
|
|
540
543
|
/** Binding name as configured in `wrangler.jsonc`. */
|
|
541
544
|
readonly binding: string;
|
|
542
545
|
/** Optional RPC schema used for argument/result encoding. */
|
|
543
|
-
readonly definition?: Definition$
|
|
546
|
+
readonly definition?: Definition$8;
|
|
544
547
|
}
|
|
545
548
|
declare const ServiceBindingFetchError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
546
549
|
readonly _tag: "ServiceBindingFetchError";
|
|
@@ -572,9 +575,9 @@ type ServiceMethodArgs<Api, Method extends keyof Api> = AsyncMethodArgs<Api, Met
|
|
|
572
575
|
type ServiceMethodSuccess<Api, Method extends keyof Api> = AsyncMethodSuccess<Api, Method>;
|
|
573
576
|
type ServiceMethodCloudflareReturn<Api, Method extends keyof Api> = AsyncMethodCloudflareReturn<Api, Method>;
|
|
574
577
|
type ServiceCall<R, Api> = <Method extends ServiceMethodKey<Api>>(method: Method, ...args: ServiceMethodArgs<Api, Method>) => Effect.Effect<ServiceMethodSuccess<Api, Method>, ServiceBindingRpcError, R>;
|
|
575
|
-
type DefinitionDirectMethods<R, Definition$
|
|
578
|
+
type DefinitionDirectMethods<R, Definition$11 extends Definition.Any> = { readonly [Method in Definition$3.MethodNames<Definition$11>]: (...args: Method$2.Args<Definition$11["methods"][Method]>) => Effect.Effect<Method$2.Success<Definition$11["methods"][Method]>, ServiceBindingRpcError, R>; };
|
|
576
579
|
type DirectMethods<R, Definition$10> = Definition$10 extends Definition.Any ? DefinitionDirectMethods<R, Definition$10> : {};
|
|
577
|
-
type ServiceBindingEffectClient<Api extends object, Definition$
|
|
580
|
+
type ServiceBindingEffectClient<Api extends object, Definition$4 extends Definition.Any | undefined = undefined> = DirectMethods<never, Definition$4> & {
|
|
578
581
|
/**
|
|
579
582
|
* Forwards an HTTP request to the bound Worker service.
|
|
580
583
|
*
|
|
@@ -659,15 +662,16 @@ type ServiceBindingEffectClient<Api extends object, Definition$6 extends Definit
|
|
|
659
662
|
*/
|
|
660
663
|
readonly scopedCall: <Method extends ServiceMethodKey<Api>>(method: Method, ...args: ServiceMethodArgs<Api, Method>) => Effect.Effect<Awaited<ServiceMethodSuccess<Api, Method>>, unknown, Scope.Scope>;
|
|
661
664
|
};
|
|
662
|
-
type ServiceBindingStaticClient<R, Api extends object, Definition$
|
|
665
|
+
type ServiceBindingStaticClient<R, Api extends object, Definition$5 extends Definition.Any | undefined = undefined> = DirectMethods<R, Definition$5> & {
|
|
663
666
|
readonly fetch: (input: RequestInfo | URL, init?: RequestInit) => Effect.Effect<globalThis.Response, ServiceBindingFetchError, R>;
|
|
664
667
|
readonly rpc: <Method extends ServiceMethodKey<Api>>(method: Method, ...args: ServiceMethodArgs<Api, Method>) => Effect.Effect<ServiceMethodCloudflareReturn<Api, Method>, ServiceBindingRpcError, R>;
|
|
665
668
|
readonly call: <Method extends ServiceMethodKey<Api>>(method: Method, ...args: ServiceMethodArgs<Api, Method>) => Effect.Effect<ServiceMethodSuccess<Api, Method>, ServiceBindingRpcError, R>;
|
|
666
669
|
readonly scopedCall: <Method extends ServiceMethodKey<Api>>(method: Method, ...args: ServiceMethodArgs<Api, Method>) => Effect.Effect<Awaited<ServiceMethodSuccess<Api, Method>>, unknown, Scope.Scope | R>;
|
|
667
670
|
};
|
|
668
|
-
|
|
669
|
-
declare const
|
|
670
|
-
declare const
|
|
671
|
+
type ServiceBindingValue = Schema.Schema.Type<typeof Schema.Unknown>;
|
|
672
|
+
declare const isServiceBindingClient: <Api extends object>(value: ServiceBindingValue) => value is ServiceBindingClient<Api>;
|
|
673
|
+
declare const makeClient: <Api extends object, const Definition$13 extends Definition.Any | undefined = undefined>(definition: ServiceBindingDefinition<Definition$13>) => ((service: ServiceBindingClient<Api>) => ServiceBindingEffectClient<Api, Definition$13>);
|
|
674
|
+
declare const layer: <Self, Api extends object, const Definition$6 extends Definition.Any | undefined = undefined>(tag: Context.Service<Self, ServiceBindingEffectClient<Api, Definition$6>>, definition: ServiceBindingDefinition<Definition$6>) => import("effect/Layer").Layer<Self, BindingNotFoundError | BindingValidationError, WorkerEnvironment>;
|
|
671
675
|
/**
|
|
672
676
|
* Creates a typed Effect service for a Worker service binding.
|
|
673
677
|
*
|
|
@@ -697,15 +701,15 @@ declare const layer: <Self, Api extends object, const Definition$12 extends Defi
|
|
|
697
701
|
* });
|
|
698
702
|
* ```
|
|
699
703
|
*/
|
|
700
|
-
declare const Service: <Self, Api extends object = never>() => <Id extends string, const Definition$
|
|
704
|
+
declare const Service: <Self, Api extends object = never>() => <Id extends string, const Definition$9 extends Definition.Any | undefined = undefined>(id: Id, definition: ServiceBindingDefinition<Definition$9>) => BindingService<Self, Id, ServiceBindingEffectClient<ApiOrDefinition<Api, Definition$9>, Definition$9>> & DirectMethods<Self, Definition$9> & {
|
|
701
705
|
readonly [TypeId]: typeof TypeId;
|
|
702
|
-
readonly definition: ServiceBindingDefinition<Definition$
|
|
706
|
+
readonly definition: ServiceBindingDefinition<Definition$9>;
|
|
703
707
|
readonly fetch: (input: URL | RequestInfo<unknown, CfProperties<unknown>>, init?: RequestInit<CfProperties<unknown>> | undefined) => Effect.Effect<Response, ServiceBindingFetchError, Self>;
|
|
704
|
-
readonly rpc: <Method extends ServiceMethodKey<ApiOrDefinition<Api, Definition$
|
|
705
|
-
readonly call: <Method extends ServiceMethodKey<ApiOrDefinition<Api, Definition$
|
|
706
|
-
readonly scopedCall: <Method extends ServiceMethodKey<ApiOrDefinition<Api, Definition$
|
|
708
|
+
readonly rpc: <Method extends ServiceMethodKey<ApiOrDefinition<Api, Definition$9>>>(method: Method, ...args: AsyncMethodArgs<ApiOrDefinition<Api, Definition$9>, Method>) => Effect.Effect<Result$1<AsyncMethodSuccess<ApiOrDefinition<Api, Definition$9>, Method>>, ServiceBindingRpcError, Self>;
|
|
709
|
+
readonly call: <Method extends ServiceMethodKey<ApiOrDefinition<Api, Definition$9>>>(method: Method, ...args: AsyncMethodArgs<ApiOrDefinition<Api, Definition$9>, Method>) => Effect.Effect<AsyncMethodSuccess<ApiOrDefinition<Api, Definition$9>, Method>, ServiceBindingRpcError, Self>;
|
|
710
|
+
readonly scopedCall: <Method extends ServiceMethodKey<ApiOrDefinition<Api, Definition$9>>>(method: Method, ...args: AsyncMethodArgs<ApiOrDefinition<Api, Definition$9>, Method>) => Effect.Effect<Awaited<AsyncMethodSuccess<ApiOrDefinition<Api, Definition$9>, Method>>, unknown, Self | Scope.Scope>;
|
|
707
711
|
};
|
|
708
|
-
declare const makeDirectMethods: <R, Api, Definition$
|
|
712
|
+
declare const makeDirectMethods: <R, Api, Definition$7 extends Definition.Any | undefined>(rpcDefinition: Definition$7 | undefined, call: ServiceCall<R, Api>) => DirectMethods<R, Definition$7>;
|
|
709
713
|
declare namespace WorkerDefinition_d_exports {
|
|
710
714
|
export { Api, Definition, HandlerEffect, Handlers, LayerOptions, Method$1 as Method, Methods, NoReservedMethods, Options, ReservedMethodName$1 as ReservedMethodName, ServerApi$1 as ServerApi, ServiceFreeSchema, Tag, TagClass, Worker, implement, make$1 as make, method };
|
|
711
715
|
}
|
|
@@ -722,7 +726,7 @@ declare namespace Method$1 {
|
|
|
722
726
|
export type Args<Self extends Any> = ArgsFromSchemas<Self["args"]>;
|
|
723
727
|
export type EncodedArgs<Self extends Any> = EncodedArgsFromSchemas<Self["args"]>;
|
|
724
728
|
export type Success<Self extends Any> = Schema.Schema.Type<Self["success"]>;
|
|
725
|
-
export type EncodedSuccess<
|
|
729
|
+
export type EncodedSuccess<_Self extends Any> = Schema.Json;
|
|
726
730
|
export {};
|
|
727
731
|
}
|
|
728
732
|
type Methods = Record<string, Method$1.Any>;
|
|
@@ -732,15 +736,15 @@ type Methods = Record<string, Method$1.Any>;
|
|
|
732
736
|
* Create with {@link make} and reuse to type both worker implementations and
|
|
733
737
|
* service bindings in other workers.
|
|
734
738
|
*/
|
|
735
|
-
interface Definition<Id extends string = string,
|
|
739
|
+
interface Definition<Id extends string = string, MethodDefinitions extends Methods = Methods> {
|
|
736
740
|
readonly id: Id;
|
|
737
|
-
readonly methods:
|
|
741
|
+
readonly methods: MethodDefinitions;
|
|
738
742
|
}
|
|
739
743
|
declare namespace Definition {
|
|
740
744
|
type Any = Definition<string, Methods>;
|
|
741
745
|
}
|
|
742
746
|
type ReservedMethodName$1 = ReservedMethodName;
|
|
743
|
-
type NoReservedMethods<
|
|
747
|
+
type NoReservedMethods<MethodDefinitions extends Methods> = Extract<keyof MethodDefinitions, ReservedMethodName$1> extends never ? MethodDefinitions : never;
|
|
744
748
|
/**
|
|
745
749
|
* Promise-based client API derived from a {@link Definition}.
|
|
746
750
|
*/
|
|
@@ -750,19 +754,28 @@ type Api<Self extends Definition.Any> = Provider<ServerApi$1<Self>, ReservedMeth
|
|
|
750
754
|
* Effect handlers for each RPC method in a worker definition.
|
|
751
755
|
*/
|
|
752
756
|
type Handlers<ROut, Self extends Definition.Any> = { readonly [Key in keyof Self["methods"]]: (...args: Method$1.Args<Self["methods"][Key]>) => WorkerRpcHandler<ROut, Method$1.Success<Self["methods"][Key]>>; };
|
|
757
|
+
type BaseOptions<ROut, Self extends Definition.Any, REvent, EventLayerError> = Omit<WorkerOptions<ROut, REvent, EventLayerError, Handlers<ROut | REvent, Self>>, "eventLayer" | "rpc"> & {
|
|
758
|
+
readonly rpc: Handlers<ROut | REvent, Self>;
|
|
759
|
+
};
|
|
760
|
+
type EventLayerOptions<ROut, REvent, EventLayerError> = [REvent] extends [never] ? Pick<WorkerOptions<ROut, never, EventLayerError>, "eventLayer"> : {
|
|
761
|
+
readonly eventLayer: NonNullable<WorkerOptions<ROut, REvent, EventLayerError>["eventLayer"]>;
|
|
762
|
+
};
|
|
753
763
|
/**
|
|
754
764
|
* Worker constructor options for a specific RPC definition.
|
|
755
765
|
*/
|
|
756
|
-
|
|
757
|
-
readonly rpc: Handlers<ROut | REvent, Self>;
|
|
758
|
-
}
|
|
766
|
+
type Options<ROut, Self extends Definition.Any, REvent = never, EventLayerError = never> = BaseOptions<ROut, Self, REvent, EventLayerError> & EventLayerOptions<ROut, REvent, EventLayerError>;
|
|
759
767
|
type LayerOptions = {
|
|
760
768
|
readonly binding: string;
|
|
761
769
|
};
|
|
762
|
-
type TagClass<Self, Id extends string,
|
|
770
|
+
type TagClass<Self, Id extends string, MethodDefinitions extends Methods> = Context.ServiceClass<Self, Id, ServiceBindingEffectClient<Api<Definition<Id, MethodDefinitions>>, Definition<Id, MethodDefinitions>>> & ServiceBindingStaticClient<Self, Api<Definition<Id, MethodDefinitions>>, Definition<Id, MethodDefinitions>> & {
|
|
763
771
|
readonly id: Id;
|
|
764
|
-
readonly methods:
|
|
765
|
-
readonly make:
|
|
772
|
+
readonly methods: MethodDefinitions;
|
|
773
|
+
readonly make: {
|
|
774
|
+
<ROut, LayerError, REvent, EventLayerError = never>(layer: Layer.Layer<ROut, LayerError, ExecutionContext | WorkerContext | WorkerEnvironment>, options: Options<ROut, Definition<Id, MethodDefinitions>, REvent, EventLayerError> & {
|
|
775
|
+
readonly eventLayer: NonNullable<WorkerOptions<ROut, REvent, EventLayerError>["eventLayer"]>;
|
|
776
|
+
}): WorkerClass<Handlers<ROut | REvent, Definition<Id, MethodDefinitions>>, ROut | REvent>;
|
|
777
|
+
<ROut, LayerError, REvent extends never = never, EventLayerError = never>(layer: Layer.Layer<ROut, LayerError, ExecutionContext | WorkerContext | WorkerEnvironment>, options: Options<ROut, Definition<Id, MethodDefinitions>, REvent, EventLayerError>): WorkerClass<Handlers<ROut | REvent, Definition<Id, MethodDefinitions>>, ROut | REvent>;
|
|
778
|
+
};
|
|
766
779
|
readonly layer: (options: LayerOptions) => Layer.Layer<Self, BindingNotFoundError | BindingValidationError, WorkerEnvironment>;
|
|
767
780
|
};
|
|
768
781
|
/**
|
|
@@ -777,8 +790,8 @@ declare const method: {
|
|
|
777
790
|
readonly success: Success;
|
|
778
791
|
}): Method$1<Args, Success>;
|
|
779
792
|
};
|
|
780
|
-
declare const make$1: <Id extends string, const
|
|
781
|
-
declare const Tag: <Self>() => <Id extends string, const
|
|
793
|
+
declare const make$1: <Id extends string, const MethodDefinitions extends Methods>(id: Id, methods: MethodDefinitions & NoReservedMethods<MethodDefinitions>) => TagClass<Definition<Id, MethodDefinitions>, Id, MethodDefinitions>;
|
|
794
|
+
declare const Tag: <Self>() => <Id extends string, const MethodDefinitions extends Methods>(id: Id, methods: MethodDefinitions & NoReservedMethods<MethodDefinitions>) => TagClass<Self, Id, MethodDefinitions>;
|
|
782
795
|
declare const Worker: typeof Tag;
|
|
783
796
|
/**
|
|
784
797
|
* Helper for implementing handlers with the exact method shape of a definition.
|
|
@@ -789,7 +802,7 @@ declare const implement: <ROut, const Self extends Definition.Any>(_definition:
|
|
|
789
802
|
*/
|
|
790
803
|
type HandlerEffect<ROut, Self extends Definition.Any, Key extends keyof Self["methods"]> = WorkerRpcHandler<ROut, Method$1.Success<Self["methods"][Key]>>;
|
|
791
804
|
declare namespace Worker_d_exports {
|
|
792
|
-
export { Api, Definition, ExecutionContext, FetchHandler, FetchWorkerOptions, HandlerEffect, Handlers, LayerOptions, Method$1 as Method, Methods, NativeRequest, NoReservedMethods, Options, ReservedMethodName, RpcHandlers, ServerApi$1 as ServerApi, ServiceFreeSchema, Tag, TagClass, WorkerClass, WorkerContext, WorkerContextService, WorkerContextWaitUntilOptions, WorkerFetchSuccess, WorkerHandler, WorkerOptions, WorkerRpc, WorkerRpcHandler, WorkerRpcShape, implement, isWebSocketUpgrade, make, makeFetchHandler, method };
|
|
805
|
+
export { Api, Definition, ExecutionContext, FetchHandler, FetchWorkerOptions, HandlerEffect, Handlers, LayerOptions, Method$1 as Method, Methods, NativeRequest, NoReservedMethods, Options, ReservedMethodName, RpcHandlers, ServerApi$1 as ServerApi, ServiceFreeSchema, Tag, TagClass, WorkerClass, WorkerContext, WorkerContextService, WorkerContextWaitUntilOptions, WorkerFetchSuccess, WorkerHandler, WorkerOptions, WorkerRpc, WorkerRpcContract, WorkerRpcHandler, WorkerRpcContract as WorkerRpcShape, implement, isWebSocketUpgrade, make, makeFetchHandler, method };
|
|
793
806
|
}
|
|
794
807
|
declare const ExecutionContext_base: Context.ServiceClass<ExecutionContext, "effect-cf/ExecutionContext", globalThis.ExecutionContext<unknown>>;
|
|
795
808
|
/**
|
|
@@ -845,6 +858,7 @@ type ReservedMethodName = ReservedMethodName$3 | "fetch" | "connect" | "queue" |
|
|
|
845
858
|
type WorkerBaseContext<ROut> = ExecutionContext | WorkerContext | WorkerEnvironment | ROut;
|
|
846
859
|
type WorkerFetchContext<ROut> = WorkerBaseContext<ROut> | NativeRequest | HttpServerRequest.HttpServerRequest | Scope.Scope;
|
|
847
860
|
type WorkerRpcContext<ROut> = WorkerBaseContext<ROut> | Scope.Scope;
|
|
861
|
+
declare const FetchSymbol: unique symbol;
|
|
848
862
|
/**
|
|
849
863
|
* Successful result of a worker fetch handler: either a native `Response`
|
|
850
864
|
* (returned to Cloudflare untouched) or an Effect `HttpServerResponse`
|
|
@@ -863,8 +877,8 @@ type WorkerRpcHandler<ROut, A = unknown> = Effect.Effect<A, unknown, WorkerRpcCo
|
|
|
863
877
|
* Shape of worker RPC handlers passed to {@link make}.
|
|
864
878
|
*/
|
|
865
879
|
type WorkerRpc<ROut> = Record<string, (...args: Array<any>) => WorkerRpcHandler<ROut>>;
|
|
866
|
-
type
|
|
867
|
-
type RpcHandlers<ROut, Api> = { readonly [Key in keyof Api as Key extends keyof WorkerEntrypoint ? never : Key extends string ? Key extends ReservedMethodName ? never : [Api[Key]] extends [never] ? never : Api[Key] extends ((...args: Array<any>) => Promise<
|
|
880
|
+
type WorkerRpcContract<Rpc extends WorkerRpc<ROut>, ROut> = { readonly [Key in keyof Rpc]: Rpc[Key] extends ((...args: infer Args) => Effect.Effect<infer A, unknown, WorkerRpcContext<ROut>>) ? (...args: Args) => Promise<A> : never; };
|
|
881
|
+
type RpcHandlers<ROut, Api> = { readonly [Key in keyof Api as Key extends keyof WorkerEntrypoint ? never : Key extends string ? Key extends ReservedMethodName ? never : [Api[Key]] extends [never] ? never : Api[Key] extends ((...args: Array<any>) => Promise<any>) ? Key : never : never]: Api[Key] extends ((...args: infer Args) => Promise<infer A>) ? (...args: Args) => WorkerRpcHandler<ROut, A> : never; };
|
|
868
882
|
/**
|
|
869
883
|
* Options for creating a worker class with Effect handlers.
|
|
870
884
|
*/
|
|
@@ -889,16 +903,23 @@ interface WorkerOptions<RRuntime, REvent = never, EventLayerError = never, Rpc e
|
|
|
889
903
|
*/
|
|
890
904
|
readonly rpc?: Rpc;
|
|
891
905
|
}
|
|
906
|
+
type WorkerOptionsWithEventLayer<RRuntime, REvent, EventLayerError, Rpc extends WorkerRpc<RRuntime | REvent> = Record<never, never>> = Omit<WorkerOptions<RRuntime, REvent, EventLayerError, Rpc>, "eventLayer"> & {
|
|
907
|
+
readonly eventLayer: Layer.Layer<REvent, EventLayerError, WorkerBaseContext<RRuntime>>;
|
|
908
|
+
};
|
|
892
909
|
type FetchWorkerOptions<RRuntime, REvent = never, EventLayerError = never> = Omit<WorkerOptions<RRuntime, REvent, EventLayerError, Record<never, never>>, "rpc"> & {
|
|
893
910
|
readonly rpc?: never;
|
|
894
911
|
};
|
|
912
|
+
type FetchWorkerOptionsWithEventLayer<RRuntime, REvent, EventLayerError> = Omit<FetchWorkerOptions<RRuntime, REvent, EventLayerError>, "eventLayer"> & {
|
|
913
|
+
readonly eventLayer: Layer.Layer<REvent, EventLayerError, WorkerBaseContext<RRuntime>>;
|
|
914
|
+
};
|
|
895
915
|
/**
|
|
896
916
|
* Cloudflare `WorkerEntrypoint` constructor produced by {@link make}.
|
|
897
917
|
*/
|
|
898
918
|
type WorkerClass<Rpc extends WorkerRpc<ROut>, ROut> = new (ctx: globalThis.ExecutionContext, env: WorkerEnv) => WorkerEntrypoint<WorkerEnv> & {
|
|
899
919
|
fetch(request: Request): Promise<Response>;
|
|
900
920
|
queue(batch: globalThis.MessageBatch): Promise<void>;
|
|
901
|
-
|
|
921
|
+
[FetchSymbol](request: Request, requestContext: globalThis.ExecutionContext): Promise<Response>;
|
|
922
|
+
} & WorkerRpcContract<Rpc, ROut>;
|
|
902
923
|
/**
|
|
903
924
|
* `ExportedHandler`-compatible fetch object produced by {@link makeFetchHandler}.
|
|
904
925
|
*/
|
|
@@ -921,7 +942,8 @@ interface FetchHandler<Env extends WorkerEnv = WorkerEnv> {
|
|
|
921
942
|
* ```
|
|
922
943
|
*/
|
|
923
944
|
declare function make<ROut, LayerError>(layer: Layer.Layer<ROut, LayerError, ExecutionContext | WorkerContext | WorkerEnvironment>, fetch: WorkerHandler<ROut>): WorkerClass<Record<never, never>, ROut>;
|
|
924
|
-
declare function make<ROut, LayerError, REvent
|
|
945
|
+
declare function make<ROut, LayerError, REvent, EventLayerError = never, const Rpc extends WorkerRpc<ROut | REvent> = Record<never, never>>(layer: Layer.Layer<ROut, LayerError, ExecutionContext | WorkerContext | WorkerEnvironment>, options: WorkerOptionsWithEventLayer<ROut, REvent, EventLayerError, Rpc>): WorkerClass<Rpc, ROut | REvent>;
|
|
946
|
+
declare function make<ROut, LayerError, REvent extends never = never, EventLayerError = never, const Rpc extends WorkerRpc<ROut | REvent> = Record<never, never>>(layer: Layer.Layer<ROut, LayerError, ExecutionContext | WorkerContext | WorkerEnvironment>, options: WorkerOptions<ROut, REvent, EventLayerError, Rpc>): WorkerClass<Rpc, ROut | REvent>;
|
|
925
947
|
/**
|
|
926
948
|
* Creates an `ExportedHandler`-compatible `{ fetch }` object backed by
|
|
927
949
|
* {@link make}.
|
|
@@ -933,7 +955,8 @@ declare function make<ROut, LayerError, REvent = never, EventLayerError = never,
|
|
|
933
955
|
* isolate is evicted; Cloudflare provides no shutdown hook. Use `eventLayer`
|
|
934
956
|
* for resources that must be finalized per event.
|
|
935
957
|
*/
|
|
936
|
-
declare
|
|
958
|
+
declare function makeFetchHandler<ROut, LayerError, REvent, EventLayerError = never, Env extends WorkerEnv = WorkerEnv>(layer: Layer.Layer<ROut, LayerError, ExecutionContext | WorkerContext | WorkerEnvironment>, options: FetchWorkerOptionsWithEventLayer<ROut, REvent, EventLayerError>): FetchHandler<Env>;
|
|
959
|
+
declare function makeFetchHandler<ROut, LayerError, REvent extends never = never, EventLayerError = never, Env extends WorkerEnv = WorkerEnv>(layer: Layer.Layer<ROut, LayerError, ExecutionContext | WorkerContext | WorkerEnvironment>, options: FetchWorkerOptions<ROut, REvent, EventLayerError>): FetchHandler<Env>;
|
|
937
960
|
declare namespace DurableObjectState_d_exports {
|
|
938
961
|
export { DurableObjectState, DurableObjectStateService, fromDurableObjectState };
|
|
939
962
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.mjs";
|
|
2
|
-
import { t as causeMessage } from "./ErrorMessage-
|
|
3
|
-
import { Cause, Context, Data, Effect, Exit, Option, Result, Schema } from "effect";
|
|
2
|
+
import { t as causeMessage } from "./ErrorMessage-BM0K-Nik.mjs";
|
|
3
|
+
import { Cause, Context, Data, Effect, Exit, Option, Predicate, Result, Schema } from "effect";
|
|
4
4
|
//#region src/DurableObjectStorage.ts
|
|
5
5
|
var DurableObjectStorage_exports = /* @__PURE__ */ __exportAll({
|
|
6
6
|
StorageOperationError: () => StorageOperationError,
|
|
@@ -80,7 +80,7 @@ const fromSyncKvStorage = (kv) => ({
|
|
|
80
80
|
const fromDurableObjectTransaction = (txn) => ({
|
|
81
81
|
get: (keyOrKeys, options) => Array.isArray(keyOrKeys) ? tryStoragePromise("transaction.get", () => txn.get(keyOrKeys, options)) : tryStoragePromise("transaction.get", () => txn.get(keyOrKeys, options)),
|
|
82
82
|
list: (options) => tryStoragePromise("transaction.list", () => txn.list(options)),
|
|
83
|
-
put: (keyOrEntries, valueOrOptions, maybeOptions) => tryStoragePromise("transaction.put", () =>
|
|
83
|
+
put: (keyOrEntries, valueOrOptions, maybeOptions) => tryStoragePromise("transaction.put", () => Predicate.isString(keyOrEntries) ? txn.put(keyOrEntries, valueOrOptions, maybeOptions) : txn.put(keyOrEntries, valueOrOptions)),
|
|
84
84
|
delete: (keyOrKeys, options) => Array.isArray(keyOrKeys) ? tryStoragePromise("transaction.delete", () => txn.delete(keyOrKeys, options)) : tryStoragePromise("transaction.delete", () => txn.delete(keyOrKeys, options)),
|
|
85
85
|
rollback: () => tryStorageSync("transaction.rollback", () => txn.rollback()),
|
|
86
86
|
getAlarm: (options) => tryStoragePromise("transaction.getAlarm", () => txn.getAlarm(options)),
|
|
@@ -33,10 +33,7 @@ let WorkerConfig;
|
|
|
33
33
|
* for use in tagged error `message` getters.
|
|
34
34
|
*/
|
|
35
35
|
const causeMessage = (cause) => {
|
|
36
|
-
if (
|
|
37
|
-
const message = Reflect.get(cause, "message");
|
|
38
|
-
if (typeof message === "string" && message.length > 0) return message;
|
|
39
|
-
}
|
|
36
|
+
if (Predicate.hasProperty(cause, "message") && Predicate.isString(cause.message) && cause.message.length > 0) return cause.message;
|
|
40
37
|
try {
|
|
41
38
|
return String(cause);
|
|
42
39
|
} catch {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { c as WorkerEnvironment, r as BindingValidationError, t as BindingNotFoundError } from "./Binding-
|
|
1
|
+
import { c as WorkerEnvironment, r as BindingValidationError, t as BindingNotFoundError } from "./Binding-xJJJPmiD.mjs";
|
|
2
2
|
import { Context, Effect, Layer } from "effect";
|
|
3
3
|
declare namespace Hyperdrive_d_exports {
|
|
4
4
|
export { HyperdriveClient, HyperdriveDefinition, HyperdriveService, LayerOptions, Tag, TagClass, isHyperdrive, layer, make, makeClient };
|
|
@@ -27,7 +27,7 @@ interface TagClass<Self, Id extends string> extends Context.ServiceClass<Self, I
|
|
|
27
27
|
readonly id: Id;
|
|
28
28
|
readonly layer: (options: LayerOptions) => Layer.Layer<Self, BindingNotFoundError | BindingValidationError, WorkerEnvironment>;
|
|
29
29
|
}
|
|
30
|
-
declare const isHyperdrive: (value:
|
|
30
|
+
declare const isHyperdrive: <Candidate>(value: Candidate) => value is Candidate & Hyperdrive;
|
|
31
31
|
declare const makeClient: (definition: HyperdriveDefinition) => (hyperdrive: Hyperdrive) => HyperdriveClient;
|
|
32
32
|
declare const layer: <Self>(tag: Context.Service<Self, HyperdriveClient>, definition: HyperdriveDefinition) => Layer.Layer<Self, BindingNotFoundError | BindingValidationError, WorkerEnvironment>;
|
|
33
33
|
declare const make: <Id extends string>(id: Id) => TagClass<HyperdriveService<Id>, Id>;
|
package/dist/HyperdrivePg.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { c as WorkerEnvironment, r as BindingValidationError, t as BindingNotFoundError } from "./Binding-
|
|
2
|
-
import { n as LayerOptions, r as TagClass } from "./Hyperdrive-
|
|
1
|
+
import { c as WorkerEnvironment, r as BindingValidationError, t as BindingNotFoundError } from "./Binding-xJJJPmiD.mjs";
|
|
2
|
+
import { n as LayerOptions, r as TagClass } from "./Hyperdrive-z-9fFz15.mjs";
|
|
3
3
|
import { Layer } from "effect";
|
|
4
4
|
import { PgClient } from "@effect/sql-pg";
|
|
5
5
|
import { SqlClient, SqlError } from "effect/unstable/sql";
|
package/dist/Vitest.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { c as WorkerEnvironment, s as WorkerEnv } from "./Binding-
|
|
2
|
-
import { n as DurableObjectStateService, t as DurableObjectState } from "./DurableObjectState-
|
|
3
|
-
import { o as WorkflowInstanceStatusName } from "./WorkflowBinding-
|
|
4
|
-
import { Effect, Layer } from "effect";
|
|
1
|
+
import { c as WorkerEnvironment, s as WorkerEnv } from "./Binding-xJJJPmiD.mjs";
|
|
2
|
+
import { n as DurableObjectStateService, t as DurableObjectState } from "./DurableObjectState-B3uFY1eM.mjs";
|
|
3
|
+
import { o as WorkflowInstanceStatusName } from "./WorkflowBinding-wZ-yGHow.mjs";
|
|
4
|
+
import { Effect, Layer, Schema } from "effect";
|
|
5
5
|
import { DurableObject } from "cloudflare:workers";
|
|
6
6
|
import { adminSecretsStore as adminSecretsStore$1, getQueueResult, introspectWorkflow as introspectWorkflow$1, introspectWorkflowInstance as introspectWorkflowInstance$1 } from "cloudflare:test";
|
|
7
7
|
//#region src/Vitest.d.ts
|
|
@@ -155,12 +155,13 @@ interface WorkflowMockEvent {
|
|
|
155
155
|
interface WorkflowInstanceModifier {
|
|
156
156
|
readonly disableSleeps: (steps?: ReadonlyArray<WorkflowStepTarget>) => Effect.Effect<void>;
|
|
157
157
|
readonly disableRetryDelays: (steps?: ReadonlyArray<WorkflowStepTarget>) => Effect.Effect<void>;
|
|
158
|
-
readonly mockStepResult: (step: WorkflowStepTarget, result:
|
|
158
|
+
readonly mockStepResult: (step: WorkflowStepTarget, result: WorkflowMockResult) => Effect.Effect<void>;
|
|
159
159
|
readonly mockStepError: (step: WorkflowStepTarget, error: Error, times?: number) => Effect.Effect<void>;
|
|
160
160
|
readonly forceStepTimeout: (step: WorkflowStepTarget, times?: number) => Effect.Effect<void>;
|
|
161
161
|
readonly mockEvent: (event: WorkflowMockEvent) => Effect.Effect<void>;
|
|
162
162
|
readonly forceEventTimeout: (step: WorkflowStepTarget) => Effect.Effect<void>;
|
|
163
163
|
}
|
|
164
|
+
type WorkflowMockResult = Schema.Schema.Type<typeof Schema.Unknown>;
|
|
164
165
|
/** Effect-native introspector for one Workflow instance. */
|
|
165
166
|
interface WorkflowInstanceIntrospector {
|
|
166
167
|
readonly raw: NativeWorkflowInstanceIntrospector;
|
package/dist/Vitest.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as WorkerEnvironment, i as WorkerConfig } from "./ErrorMessage-
|
|
2
|
-
import { r as fromDurableObjectState, t as DurableObjectState } from "./DurableObjectState-
|
|
1
|
+
import { a as WorkerEnvironment, i as WorkerConfig } from "./ErrorMessage-BM0K-Nik.mjs";
|
|
2
|
+
import { r as fromDurableObjectState, t as DurableObjectState } from "./DurableObjectState-BjkK2kwH.mjs";
|
|
3
3
|
import { ConfigProvider, Effect, Exit, Layer } from "effect";
|
|
4
4
|
import { env } from "cloudflare:workers";
|
|
5
5
|
import { abortAllDurableObjects as abortAllDurableObjects$1, adminSecretsStore as adminSecretsStore$1, applyD1Migrations as applyD1Migrations$1, createExecutionContext, createMessageBatch, createPagesEventContext, createScheduledController, evictAllDurableObjects as evictAllDurableObjects$1, evictDurableObject as evictDurableObject$1, getQueueResult, introspectWorkflow as introspectWorkflow$1, introspectWorkflowInstance as introspectWorkflowInstance$1, listDurableObjectIds as listDurableObjectIds$1, reset as reset$1, runDurableObjectAlarm as runDurableObjectAlarm$1, runInDurableObject as runInDurableObject$1, waitOnExecutionContext } from "cloudflare:test";
|