effect-cf 0.39.1 → 0.40.1

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.
Files changed (166) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +9 -1
  3. package/dist/AiGateway.d.mts +86 -0
  4. package/dist/AiGateway.mjs +178 -0
  5. package/dist/AnalyticsEngine.d.mts +170 -0
  6. package/dist/AnalyticsEngine.mjs +275 -0
  7. package/dist/{Artifacts-B3r3RuTB.d.mts → Artifacts.d.mts} +8 -5
  8. package/dist/{Artifacts-CBxWGeZB.mjs → Artifacts.mjs} +9 -5
  9. package/dist/Binding.d.mts +45 -0
  10. package/dist/{Binding-C82jRhdr.mjs → Binding.mjs} +8 -4
  11. package/dist/BrowserRendering.d.mts +85 -0
  12. package/dist/BrowserRendering.mjs +81 -0
  13. package/dist/Cache.d.mts +40 -0
  14. package/dist/Cache.mjs +51 -0
  15. package/dist/CloudflareOtlp.d.mts +95 -0
  16. package/dist/CloudflareOtlp.mjs +125 -0
  17. package/dist/CloudflareTracer.d.mts +20 -0
  18. package/dist/CloudflareTracer.mjs +69 -0
  19. package/dist/ComputerArtifacts.d.mts +2 -2
  20. package/dist/ComputerArtifacts.mjs +3 -2
  21. package/dist/ComputerWorkspace.d.mts +36 -31
  22. package/dist/ComputerWorkspace.mjs +8 -3
  23. package/dist/ComputerWorkspaceHost.d.mts +1 -1
  24. package/dist/ComputerWorkspaceHost.mjs +1 -1
  25. package/dist/{ContainerNamespace-DbLaeFhN.d.mts → ContainerNamespace.d.mts} +16 -12
  26. package/dist/ContainerNamespace.mjs +165 -0
  27. package/dist/D1.d.mts +33 -0
  28. package/dist/D1.mjs +32 -0
  29. package/dist/DurableObject.d.mts +103 -0
  30. package/dist/DurableObject.mjs +77 -0
  31. package/dist/DurableObjectAlarm.d.mts +187 -0
  32. package/dist/DurableObjectAlarm.mjs +344 -0
  33. package/dist/DurableObjectDefinition.d.mts +87 -0
  34. package/dist/DurableObjectDefinition.mjs +125 -0
  35. package/dist/DurableObjectNamespace.d.mts +154 -0
  36. package/dist/DurableObjectNamespace.mjs +144 -0
  37. package/dist/DurableObjectRpcWebSocket.d.mts +112 -0
  38. package/dist/DurableObjectRpcWebSocket.mjs +547 -0
  39. package/dist/DurableObjectSqlite.d.mts +11 -0
  40. package/dist/DurableObjectSqlite.mjs +16 -0
  41. package/dist/DurableObjectState.d.mts +65 -0
  42. package/dist/DurableObjectState.mjs +47 -0
  43. package/dist/DurableObjectStorage.d.mts +112 -0
  44. package/dist/{DurableObjectState-DLL0YgBd.mjs → DurableObjectStorage.mjs} +19 -157
  45. package/dist/DurableObjectWebSocket.d.mts +83 -0
  46. package/dist/DurableObjectWebSocket.mjs +120 -0
  47. package/dist/Email.d.mts +106 -0
  48. package/dist/Email.mjs +247 -0
  49. package/dist/Environment.d.mts +59 -0
  50. package/dist/{ErrorMessage-Byx2OgNd.mjs → Environment.mjs} +7 -18
  51. package/dist/{Hyperdrive-HrwFlZ6x.d.mts → Hyperdrive.d.mts} +8 -5
  52. package/dist/Hyperdrive.mjs +32 -0
  53. package/dist/HyperdrivePg.d.mts +4 -3
  54. package/dist/HyperdrivePg.mjs +3 -1
  55. package/dist/Images.d.mts +191 -0
  56. package/dist/Images.mjs +112 -0
  57. package/dist/Kv.d.mts +84 -0
  58. package/dist/Kv.mjs +132 -0
  59. package/dist/Mcp.d.mts +5 -3
  60. package/dist/Mcp.mjs +13 -4
  61. package/dist/Queue.d.mts +68 -0
  62. package/dist/Queue.mjs +54 -0
  63. package/dist/QueueBinding.d.mts +42 -0
  64. package/dist/QueueBinding.mjs +69 -0
  65. package/dist/QueueDefinition.d.mts +48 -0
  66. package/dist/QueueDefinition.mjs +63 -0
  67. package/dist/R2.d.mts +89 -0
  68. package/dist/R2.mjs +117 -0
  69. package/dist/Rpc.d.mts +29 -0
  70. package/dist/Rpc.mjs +28 -0
  71. package/dist/RpcDefinition.d.mts +116 -0
  72. package/dist/RpcDefinition.mjs +184 -0
  73. package/dist/RpcTracing.d.mts +52 -0
  74. package/dist/RpcTracing.mjs +77 -0
  75. package/dist/Sandbox.d.mts +10 -5
  76. package/dist/Sandbox.mjs +9 -3
  77. package/dist/ServiceBinding.d.mts +112 -0
  78. package/dist/ServiceBinding.mjs +145 -0
  79. package/dist/Vectorize.d.mts +68 -0
  80. package/dist/Vectorize.mjs +76 -0
  81. package/dist/Vitest.d.mts +6 -4
  82. package/dist/Vitest.mjs +8 -4
  83. package/dist/WebTransport.d.mts +66 -0
  84. package/dist/WebTransport.mjs +63 -0
  85. package/dist/Worker.d.mts +139 -0
  86. package/dist/Worker.mjs +141 -0
  87. package/dist/WorkerDefinition.d.mts +100 -0
  88. package/dist/WorkerDefinition.mjs +103 -0
  89. package/dist/WorkersAi.d.mts +84 -0
  90. package/dist/WorkersAi.mjs +84 -0
  91. package/dist/Workflow.d.mts +91 -0
  92. package/dist/Workflow.mjs +139 -0
  93. package/dist/{WorkflowBinding-DtVykUCz.d.mts → WorkflowBinding.d.mts} +14 -10
  94. package/dist/WorkflowBinding.mjs +100 -0
  95. package/dist/WorkflowDefinition.d.mts +51 -0
  96. package/dist/WorkflowDefinition.mjs +69 -0
  97. package/dist/{rolldown-runtime-D7D4PA-g.mjs → _virtual/_rolldown/runtime.mjs} +1 -1
  98. package/dist/index.d.mts +40 -1800
  99. package/dist/index.mjs +40 -3123
  100. package/dist/{ComputerWorkspaceHostRegistry-CY5Fv4Ng.mjs → internal/ComputerWorkspaceHostRegistry.mjs} +1 -1
  101. package/dist/internal/Entrypoint.mjs +37 -0
  102. package/dist/internal/ErrorMessage.mjs +17 -0
  103. package/dist/internal/NativeCallback.mjs +33 -0
  104. package/dist/internal/RpcInvocation.d.mts +13 -0
  105. package/dist/internal/RpcInvocation.mjs +34 -0
  106. package/dist/internal/Runtime.mjs +31 -0
  107. package/dist/internal/Telemetry.mjs +20 -0
  108. package/dist/{WorkerContext-Yobnfw-K.mjs → internal/WorkerContext.mjs} +4 -31
  109. package/package.json +1 -1
  110. package/src/AiGateway.ts +5 -1
  111. package/src/AnalyticsEngine.ts +14 -19
  112. package/src/Artifacts.ts +6 -1
  113. package/src/Binding.ts +5 -1
  114. package/src/BrowserRendering.ts +5 -1
  115. package/src/Cache.ts +5 -1
  116. package/src/CloudflareOtlp.ts +12 -10
  117. package/src/CloudflareTracer.ts +7 -1
  118. package/src/ComputerArtifacts.ts +2 -1
  119. package/src/ComputerWorkspace.ts +7 -1
  120. package/src/ContainerNamespace.ts +6 -1
  121. package/src/D1.ts +4 -1
  122. package/src/DurableObject.ts +122 -29
  123. package/src/DurableObjectAlarm.ts +185 -52
  124. package/src/DurableObjectDefinition.ts +22 -22
  125. package/src/DurableObjectNamespace.ts +4 -1
  126. package/src/DurableObjectRpcWebSocket.ts +7 -1
  127. package/src/DurableObjectSqlite.ts +2 -1
  128. package/src/DurableObjectState.ts +4 -1
  129. package/src/DurableObjectStorage.ts +11 -13
  130. package/src/DurableObjectWebSocket.ts +5 -1
  131. package/src/Email.ts +5 -1
  132. package/src/Environment.ts +6 -1
  133. package/src/Hyperdrive.ts +4 -1
  134. package/src/HyperdrivePg.ts +3 -1
  135. package/src/Images.ts +7 -1
  136. package/src/Kv.ts +7 -1
  137. package/src/Mcp.ts +13 -13
  138. package/src/Queue.ts +3 -1
  139. package/src/QueueBinding.ts +5 -1
  140. package/src/QueueDefinition.ts +4 -1
  141. package/src/R2.ts +7 -1
  142. package/src/Rpc.ts +4 -1
  143. package/src/RpcDefinition.ts +4 -1
  144. package/src/RpcTracing.ts +9 -1
  145. package/src/Sandbox.ts +7 -1
  146. package/src/ServiceBinding.ts +6 -1
  147. package/src/Vectorize.ts +7 -1
  148. package/src/Vitest.ts +5 -1
  149. package/src/WebTransport.ts +6 -1
  150. package/src/Worker.ts +10 -16
  151. package/src/WorkerDefinition.ts +3 -1
  152. package/src/WorkersAi.ts +7 -1
  153. package/src/Workflow.ts +8 -11
  154. package/src/WorkflowBinding.ts +6 -1
  155. package/src/WorkflowDefinition.ts +4 -1
  156. package/src/internal/Entrypoint.ts +3 -1
  157. package/src/internal/ErrorMessage.ts +1 -1
  158. package/src/internal/NativeCallback.ts +3 -1
  159. package/src/internal/RpcInvocation.ts +5 -1
  160. package/src/internal/Runtime.ts +5 -1
  161. package/src/internal/Telemetry.ts +4 -3
  162. package/src/internal/WorkerContext.ts +3 -1
  163. package/dist/Binding-DKcLrQCM.d.mts +0 -94
  164. package/dist/DurableObjectState-DJ0K-zyd.d.mts +0 -244
  165. package/dist/Worker-XsGJsCJX.mjs +0 -885
  166. package/dist/Worker-gV4mDqIs.d.mts +0 -641
@@ -1,641 +0,0 @@
1
- import { c as WorkerEnvironment, n as BindingService, r as BindingValidationError, s as WorkerEnv, t as BindingNotFoundError } from "./Binding-DKcLrQCM.mjs";
2
- import { Cause, Context, Effect, Layer, Predicate, Schema, Scope, Tracer } from "effect";
3
- import { HttpServerRequest, HttpServerResponse } from "effect/unstable/http";
4
- import { RpcStub, RpcTarget, WorkerEntrypoint } from "cloudflare:workers";
5
- declare namespace Rpc_d_exports {
6
- export { DisposableValue, MethodArgs, MethodKey, MethodReturn, Provider, Result$1 as Result, RpcStub, RpcTarget, Serializable, Stub, Stubable, Stubify, dispose, isDisposable, resolve, scoped };
7
- }
8
- type Stubable = Rpc.Stubable;
9
- type Stub<T extends Stubable> = Rpc.Stub<T>;
10
- type Provider<T extends object, Reserved extends string = never> = Rpc.Provider<T, Reserved>;
11
- type BaseType = void | undefined | null | boolean | number | bigint | string | TypedArray | ArrayBuffer | DataView | Date | Error | RegExp | ReadableStream<Uint8Array> | WritableStream<Uint8Array> | Request | Response | Headers;
12
- 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;
13
- 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;
14
- type MaybeProvider<T> = T extends object ? Provider<T> : unknown;
15
- type MaybeDisposable<T> = T extends object ? Disposable : unknown;
16
- type Result$1<T> = T extends Stubable ? Promise<Stub<T>> & Provider<T> : T extends Serializable<T> ? Promise<Stubify<T> & MaybeDisposable<T>> & MaybeProvider<T> : never;
17
- type MethodKey<Api> = { [Key in keyof Api]-?: Key extends string ? Api[Key] extends ((...args: Array<any>) => any) ? Key : never : never; }[keyof Api];
18
- type MethodArgs<Api, Method extends keyof Api> = Api[Method] extends ((...args: infer Args) => any) ? Args : never;
19
- type MethodReturn<Api, Method extends keyof Api> = Api[Method] extends ((...args: Array<any>) => infer Return) ? Return : never;
20
- type DisposableValue = {
21
- [Symbol.dispose](): void;
22
- };
23
- type RpcBoundaryValue = Schema.Schema.Type<typeof Schema.Unknown>;
24
- declare const isDisposable: (value: RpcBoundaryValue) => value is DisposableValue;
25
- declare const dispose: (value: RpcBoundaryValue) => Effect.Effect<void>;
26
- declare const resolve: <A>(value: A) => Effect.Effect<Awaited<A>, unknown>;
27
- declare const scoped: <A>(value: A) => Effect.Effect<Awaited<A>, unknown, Scope.Scope>;
28
- declare namespace RpcDefinition_d_exports {
29
- export { Definition$3 as Definition, Method$2 as Method, Methods$1 as Methods, NoReservedMethods$1 as NoReservedMethods, ReservedMethodName$3 as ReservedMethodName, RpcArgumentCountError, RpcArgumentDecodeError, RpcArgumentEncodeError, RpcReservedMethodNameError, RpcSuccessDecodeError, RpcSuccessEncodeError, ServiceFreeSchema$1 as ServiceFreeSchema, WireError, assertNoReservedMethods, decodeArgs, decodeSuccess, decodeWireError, encodeArgs, encodeSuccess, encodeWireError, isWireError, make$3 as make, method$1 as method, reservedMethodNames };
30
- }
31
- declare const RpcReservedMethodNameError_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 & {
32
- readonly _tag: "RpcReservedMethodNameError";
33
- } & Readonly<A>;
34
- declare class RpcReservedMethodNameError extends RpcReservedMethodNameError_base<{
35
- readonly definition: string;
36
- readonly method: string;
37
- }> {
38
- get message(): string;
39
- }
40
- declare const RpcArgumentCountError_base: Schema.Class<RpcArgumentCountError, Schema.TaggedStruct<"RpcArgumentCountError", {
41
- readonly definition: Schema.String;
42
- readonly method: Schema.String;
43
- readonly expected: Schema.Number;
44
- readonly actual: Schema.Number;
45
- }>, import("effect/Cause").YieldableError>;
46
- declare class RpcArgumentCountError extends RpcArgumentCountError_base {
47
- get message(): string;
48
- }
49
- declare const RpcArgumentDecodeError_base: Schema.Class<RpcArgumentDecodeError, Schema.TaggedStruct<"RpcArgumentDecodeError", {
50
- readonly definition: Schema.String;
51
- readonly method: Schema.String;
52
- readonly cause: Schema.Defect;
53
- }>, import("effect/Cause").YieldableError>;
54
- declare class RpcArgumentDecodeError extends RpcArgumentDecodeError_base {
55
- get message(): string;
56
- }
57
- declare const RpcArgumentEncodeError_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 & {
58
- readonly _tag: "RpcArgumentEncodeError";
59
- } & Readonly<A>;
60
- declare class RpcArgumentEncodeError extends RpcArgumentEncodeError_base<{
61
- readonly definition: string;
62
- readonly method: string;
63
- readonly cause: unknown;
64
- }> {
65
- get message(): string;
66
- }
67
- declare const RpcSuccessDecodeError_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 & {
68
- readonly _tag: "RpcSuccessDecodeError";
69
- } & Readonly<A>;
70
- declare class RpcSuccessDecodeError extends RpcSuccessDecodeError_base<{
71
- readonly definition: string;
72
- readonly method: string;
73
- readonly cause: unknown;
74
- }> {
75
- get message(): string;
76
- }
77
- declare const RpcSuccessEncodeError_base: Schema.Class<RpcSuccessEncodeError, Schema.TaggedStruct<"RpcSuccessEncodeError", {
78
- readonly definition: Schema.String;
79
- readonly method: Schema.String;
80
- readonly cause: Schema.Defect;
81
- }>, import("effect/Cause").YieldableError>;
82
- declare class RpcSuccessEncodeError extends RpcSuccessEncodeError_base {
83
- get message(): string;
84
- }
85
- /** Errors raised server-side that must survive the Cloudflare RPC wire. */
86
- type WireError = RpcArgumentCountError | RpcArgumentDecodeError | RpcSuccessEncodeError;
87
- type WireValue = Schema.Schema.Type<typeof Schema.Unknown>;
88
- declare const isWireError: (error: WireValue) => error is WireError;
89
- /**
90
- * Encodes package RPC errors into a plain `Error` envelope so their tags
91
- * survive Cloudflare RPC serialization, which drops custom error properties.
92
- */
93
- declare const encodeWireError: (error: WireValue) => WireValue;
94
- declare const decodeWireError: (cause: WireValue) => WireValue;
95
- declare const reservedMethodNameValues: readonly ["constructor", "fetch", "connect", "alarm", "webSocketMessage", "webSocketClose", "webSocketError", "then", "dup", "dispose", "serialize", "deserialize"];
96
- declare const reservedMethodNames: Set<string>;
97
- type ReservedMethodName$3 = (typeof reservedMethodNameValues)[number];
98
- type ServiceFreeSchema$1 = Schema.Codec<any, any, never, never>;
99
- interface Method$2<Args extends ReadonlyArray<ServiceFreeSchema$1> = ReadonlyArray<ServiceFreeSchema$1>, Success extends ServiceFreeSchema$1 = ServiceFreeSchema$1> {
100
- readonly args: Args;
101
- readonly success: Success;
102
- }
103
- declare namespace Method$2 {
104
- export type Any = Method$2<ReadonlyArray<ServiceFreeSchema$1>, ServiceFreeSchema$1>;
105
- type ArgsFromSchemas<Args extends ReadonlyArray<ServiceFreeSchema$1>> = Args extends readonly [] ? [] : Args extends readonly [infer Head extends ServiceFreeSchema$1, ...infer Tail extends ReadonlyArray<ServiceFreeSchema$1>] ? [Schema.Schema.Type<Head>, ...ArgsFromSchemas<Tail>] : Array<Schema.Schema.Type<Args[number]>>;
106
- type EncodedArgsFromSchemas<Args extends ReadonlyArray<ServiceFreeSchema$1>> = { [Index in keyof Args]: Schema.Json; };
107
- export type Args<Self extends Any> = ArgsFromSchemas<Self["args"]>;
108
- export type EncodedArgs<Self extends Any> = EncodedArgsFromSchemas<Self["args"]>;
109
- export type Success<Self extends Any> = Schema.Schema.Type<Self["success"]>;
110
- export type EncodedSuccess<_Self extends Any> = Schema.Json;
111
- export {};
112
- }
113
- type Methods$1 = Record<string, Method$2.Any>;
114
- type NoReservedMethods$1<MethodDefinitions extends Methods$1, Reserved extends string = ReservedMethodName$3> = Extract<keyof MethodDefinitions, Reserved> extends never ? MethodDefinitions : never;
115
- interface Definition$3<Id extends string = string, MethodDefinitions extends Methods$1 = Methods$1> {
116
- readonly id: Id;
117
- readonly methods: MethodDefinitions;
118
- }
119
- declare namespace Definition$3 {
120
- type Any = Definition$3<string, Methods$1>;
121
- type ServerApi<Self extends Any> = { readonly [Key in keyof Self["methods"]]: (...args: Method$2.Args<Self["methods"][Key]>) => Promise<Method$2.Success<Self["methods"][Key]>>; };
122
- type Api<Self extends Any, Reserved extends string = never> = Provider<ServerApi<Self>, Reserved>;
123
- type MethodNames<Self extends Any> = Extract<keyof Self["methods"], string>;
124
- }
125
- type ReservedMethodValue = Schema.Schema.Type<typeof Schema.Unknown>;
126
- declare const assertNoReservedMethods: <MethodDefinitions extends Readonly<Record<string, ReservedMethodValue>>>(target: string, methods: MethodDefinitions, reserved: ReadonlySet<string>) => void;
127
- declare function method$1<Success extends ServiceFreeSchema$1>(definition: {
128
- readonly success: Success;
129
- }): Method$2<readonly [], Success>;
130
- declare function method$1<const Args extends ReadonlyArray<ServiceFreeSchema$1>, Success extends ServiceFreeSchema$1>(definition: {
131
- readonly args: Args;
132
- readonly success: Success;
133
- }): Method$2<Args, Success>;
134
- 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>;
135
- 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>;
136
- 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>;
137
- 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>;
138
- declare const make$3: <Id extends string, const MethodDefinitions extends Methods$1>(id: Id, methods: MethodDefinitions) => Definition$3<Id, MethodDefinitions>;
139
- declare namespace QueueBinding_d_exports {
140
- export { MessageSendRequest, QueueBindingClient, QueueBindingDefinition, QueueMetrics, QueueOperationError, QueueProducer, QueueSendBatchOptions, QueueSendBatchResponse, QueueSendOptions, QueueSendResponse, isQueue, layer$1 as layer, makeClient$1 as makeClient };
141
- }
142
- type QueueSendOptions = CloudflareQueueSendOptions;
143
- type QueueSendResponse = CloudflareQueueSendResponse;
144
- type QueueSendBatchOptions = CloudflareQueueSendBatchOptions;
145
- type QueueSendBatchResponse = CloudflareQueueSendBatchResponse;
146
- type QueueMetrics = CloudflareQueueMetrics;
147
- type MessageSendRequest<Body> = CloudflareMessageSendRequest<Body>;
148
- type QueueProducer<Body> = Pick<CloudflareQueue<Body>, "send"> & Partial<Pick<CloudflareQueue<Body>, "sendBatch" | "metrics">>;
149
- type QueueCandidate = Parameters<typeof Predicate.isUnknown>[0];
150
- interface QueueBindingDefinition<Message extends ServiceFreeSchema$1> {
151
- readonly binding: string;
152
- readonly message: Message;
153
- }
154
- interface QueueBindingClient<Message extends ServiceFreeSchema$1> {
155
- readonly send: (message: Schema.Schema.Type<Message>, options?: QueueSendOptions) => Effect.Effect<void, QueueOperationError | Schema.SchemaError>;
156
- readonly sendBatch: (messages: Iterable<MessageSendRequest<Schema.Schema.Type<Message>>>, options?: QueueSendBatchOptions) => Effect.Effect<void, QueueOperationError | Schema.SchemaError>;
157
- readonly metrics: () => Effect.Effect<QueueMetrics, QueueOperationError>;
158
- readonly rawUnsafe: Effect.Effect<QueueProducer<Schema.Codec.Encoded<Message>>>;
159
- }
160
- 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 & {
161
- readonly _tag: "QueueOperationError";
162
- } & Readonly<A>;
163
- declare class QueueOperationError extends QueueOperationError_base<{
164
- readonly binding: string;
165
- readonly operation: string;
166
- readonly cause: unknown;
167
- readonly message: string;
168
- }> {}
169
- declare const isQueue: <Body>(value: QueueCandidate) => value is QueueProducer<Body>;
170
- declare const makeClient$1: <Message extends ServiceFreeSchema$1>(definition: QueueBindingDefinition<Message>) => ((queue: QueueProducer<Schema.Codec.Encoded<Message>>) => QueueBindingClient<Message>);
171
- 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>;
172
- declare namespace QueueDefinition_d_exports {
173
- export { Definition$2 as Definition, Handler$1 as Handler, LayerOptions$2 as LayerOptions, Options$2 as Options, Queue$1 as Queue, Tag$2 as Tag, TagClass$2 as TagClass, implement$2 as implement, make$2 as make };
174
- }
175
- interface Definition$2<Id extends string = string, Message extends ServiceFreeSchema$1 = ServiceFreeSchema$1> {
176
- readonly id: Id;
177
- readonly message: Message;
178
- }
179
- declare namespace Definition$2 {
180
- type Any = Definition$2<string, ServiceFreeSchema$1>;
181
- }
182
- 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>;
183
- interface Options$2<ROut, Self extends Definition$2.Any> extends Omit<WorkerOptions<ROut, never, never, Record<never, never>>, "queue" | "rpc"> {
184
- readonly queue: Handler$1<ROut, Self>;
185
- readonly rpc?: never;
186
- }
187
- type LayerOptions$2 = {
188
- readonly binding: string;
189
- };
190
- interface TagClass$2<Self, Id extends string, Message extends ServiceFreeSchema$1> extends Context.ServiceClass<Self, `effect-cf/Queue/${Id}`, QueueBindingClient<Message>> {
191
- readonly id: Id;
192
- readonly message: Message;
193
- readonly make: <ROut, LayerError>(layer: Layer.Layer<ROut, LayerError, ExecutionContext | WorkerContext | WorkerEnvironment>, options: Options$2<ROut, Definition$2<Id, Message>>) => WorkerClass<Record<never, never>, ROut>;
194
- readonly layer: (options: LayerOptions$2) => Layer.Layer<Self, BindingNotFoundError | BindingValidationError, WorkerEnvironment>;
195
- readonly send: (message: Schema.Schema.Type<Message>, options?: QueueSendOptions) => Effect.Effect<void, QueueOperationError | Schema.SchemaError, Self>;
196
- readonly sendBatch: (messages: Iterable<MessageSendRequest<Schema.Schema.Type<Message>>>, options?: QueueSendBatchOptions) => Effect.Effect<void, QueueOperationError | Schema.SchemaError, Self>;
197
- readonly metrics: () => Effect.Effect<QueueMetrics, QueueOperationError, Self>;
198
- readonly rawUnsafe: Effect.Effect<QueueProducer<Schema.Codec.Encoded<Message>>, never, Self>;
199
- }
200
- declare const make$2: <Id extends string, Message extends ServiceFreeSchema$1>(id: Id, definition: {
201
- readonly message: Message;
202
- }) => TagClass$2<Definition$2<Id, Message>, Id, Message>;
203
- declare const Tag$2: <Self>() => <Id extends string, Message extends ServiceFreeSchema$1>(id: Id, definition: {
204
- readonly message: Message;
205
- }) => TagClass$2<Self, Id, Message>;
206
- declare const Queue$1: typeof Tag$2;
207
- declare const implement$2: <ROut, const Self extends Definition$2.Any>(_definition: Self, handler: Handler$1<ROut, Self>) => Handler$1<ROut, Self>;
208
- declare namespace Queue_d_exports {
209
- export { Definition$1 as Definition, Handler, LayerOptions$1 as LayerOptions, Options$1 as Options, QueueBatch, QueueHandler, QueueMessage, QueueMessageDecodeError, QueueOptions, Tag$1 as Tag, TagClass$1 as TagClass, decodeBatch, fromMessage, fromMessageBatch, implement$1 as implement };
210
- }
211
- interface QueueMessage<Body> {
212
- readonly raw: globalThis.Message<unknown>;
213
- readonly id: string;
214
- readonly timestamp: Date;
215
- readonly body: Body;
216
- readonly attempts: number;
217
- readonly ack: Effect.Effect<void>;
218
- readonly retry: (options?: globalThis.QueueRetryOptions) => Effect.Effect<void>;
219
- }
220
- interface QueueBatch<Body> {
221
- readonly raw: globalThis.MessageBatch<unknown>;
222
- readonly messages: ReadonlyArray<QueueMessage<Body>>;
223
- readonly queue: string;
224
- readonly metadata: globalThis.MessageBatchMetadata;
225
- readonly ackAll: Effect.Effect<void>;
226
- readonly retryAll: (options?: globalThis.QueueRetryOptions) => Effect.Effect<void>;
227
- }
228
- declare const QueueMessageDecodeError_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 & {
229
- readonly _tag: "QueueMessageDecodeError";
230
- } & Readonly<A>;
231
- declare class QueueMessageDecodeError extends QueueMessageDecodeError_base<{
232
- readonly queue: string;
233
- readonly messageId: string;
234
- readonly index: number;
235
- readonly cause: unknown;
236
- }> {
237
- get message(): string;
238
- }
239
- type RuntimeContext<ROut> = ExecutionContext | WorkerContext | WorkerEnvironment | ROut;
240
- type QueueHandlerContext<ROut> = RuntimeContext<ROut> | Scope.Scope;
241
- type EncodedQueueBody = globalThis.Message<unknown>["body"];
242
- type QueueHandler<ROut, Body = unknown> = (batch: QueueBatch<Body>) => Effect.Effect<void, unknown, QueueHandlerContext<ROut>>;
243
- interface QueueOptions<ROut, Body = unknown> {
244
- readonly queue: QueueHandler<ROut, Body>;
245
- }
246
- declare const fromMessage: <Body>(message: globalThis.Message<unknown>, body: Body) => {
247
- raw: Message<unknown>;
248
- id: string;
249
- timestamp: Date;
250
- body: Body;
251
- attempts: number;
252
- ack: Effect.Effect<void, never, never>;
253
- retry: (options?: globalThis.QueueRetryOptions) => Effect.Effect<void, never, never>;
254
- };
255
- declare const fromMessageBatch: <Body>(batch: globalThis.MessageBatch<unknown>, messages: ReadonlyArray<QueueMessage<Body>>) => QueueBatch<Body>;
256
- declare const decodeBatch: <Body>(batch: globalThis.MessageBatch<unknown>, decodeBody: (body: EncodedQueueBody) => Effect.Effect<Body, unknown>) => Effect.Effect<QueueBatch<Body>, QueueMessageDecodeError>;
257
- type Definition$1<Id extends string = string, Message extends Definition$2.Any["message"] = Definition$2.Any["message"]> = Definition$2<Id, Message>;
258
- declare namespace Definition$1 {
259
- type Any = Definition$2.Any;
260
- }
261
- type LayerOptions$1 = LayerOptions$2;
262
- type TagClass$1<Self, Id extends string, Message extends Definition$2.Any["message"]> = TagClass$2<Self, Id, Message>;
263
- declare const Tag$1: <Self>() => <Id extends string, Message extends Definition$2.Any["message"]>(id: Id, definition: {
264
- readonly message: Message;
265
- }) => TagClass$1<Self, Id, Message>;
266
- declare const implement$1: typeof implement$2;
267
- type Handler<ROut, Self extends Definition$2.Any> = Handler$1<ROut, Self>;
268
- type Options$1<ROut, Self extends Definition$2.Any> = Options$2<ROut, Self>;
269
- declare namespace RpcTracing_d_exports {
270
- export { ReceiverOptions, RpcInvocationInfo, RpcTraceContext, withRpcClientSpan, withRpcServerSpan, withRpcTraceContext };
271
- }
272
- /**
273
- * Live native RPC metadata. Opted-in receivers reserve a valid trailing value
274
- * with this tag for transport context; do not use it as a final domain argument.
275
- * Never store this in durable messages or envelopes.
276
- */
277
- declare const RpcTraceContext: Schema.Struct<{
278
- readonly _tag: Schema.Literal<"effect-cf/RpcTraceContext/v1">;
279
- readonly traceId: Schema.String;
280
- readonly spanId: Schema.String;
281
- readonly sampled: Schema.Boolean;
282
- }>;
283
- type RpcTraceContext = typeof RpcTraceContext.Type;
284
- interface ReceiverOptions {
285
- /** Stable service name, never an instance id or capability URL. */
286
- readonly service: string;
287
- }
288
- /** Per-invocation metadata passed to Worker and DurableObject RunSymbol overrides. */
289
- interface RpcInvocationInfo {
290
- readonly service: string;
291
- readonly method: string;
292
- /** Native arguments with valid, opted-in trace metadata removed. Do not log them. */
293
- readonly args: ReadonlyArray<unknown>;
294
- /**
295
- * Set after a definition-backed receiver decodes its arguments, before its
296
- * handler runs. Absent before decoding and when decoding fails. Do not log it.
297
- */
298
- readonly decodedArgs?: ReadonlyArray<unknown>;
299
- readonly parent?: RpcTraceContext;
300
- }
301
- /**
302
- * Appends the current live parent only for a receiver that has opted in.
303
- * Call this inside the CLIENT span, immediately before the native invocation.
304
- * With no valid propagating parent, the original argument array is returned.
305
- */
306
- declare const withRpcTraceContext: (args: readonly unknown[]) => Effect.Effect<readonly unknown[], never, never>;
307
- /** Wrap the whole call, including native result resolution and success decoding. */
308
- declare const withRpcClientSpan: <A, E, R>(effect: Effect.Effect<A, E, R>, binding: string, method: string) => Effect.Effect<A, E, Exclude<R, Tracer.ParentSpan>>;
309
- /**
310
- * Optional application instrumentation for the entire receiver effect.
311
- * Use in a RunSymbol override to include argument decode, handler and encode.
312
- * Records stable service/method attributes and failure status, not argument or
313
- * error payloads. The original typed failure still propagates to the caller.
314
- */
315
- declare const withRpcServerSpan: <A, E, R>(effect: Effect.Effect<A, E, R>, invocation: RpcInvocationInfo) => Effect.Effect<A, E, Exclude<R, Tracer.ParentSpan>>;
316
- //#endregion
317
- //#region src/internal/RpcInvocation.d.ts
318
- type AnyArgs = Array<any>;
319
- type AsyncMethodKey<Api> = { [Key in keyof Api]-?: Key extends string ? Api[Key] extends ((...args: AnyArgs) => Promise<any>) ? Key : never : never; }[keyof Api];
320
- type AsyncMethodArgs<Api, Method extends keyof Api> = Api[Method] extends ((...args: infer Args) => Promise<any>) ? Args : never;
321
- type AsyncMethodSuccess<Api, Method extends keyof Api> = Api[Method] extends ((...args: AnyArgs) => Promise<infer A>) ? A : never;
322
- type AsyncMethodCloudflareReturn<Api, Method extends keyof Api> = Result$1<AsyncMethodSuccess<Api, Method>>;
323
- declare namespace ServiceBinding_d_exports {
324
- export { Service, ServiceBindingClient, ServiceBindingDefinition, ServiceBindingEffectClient, ServiceBindingFetchError, ServiceBindingRpcError, ServiceBindingStaticClient, ServiceFetcher, isServiceBindingClient, layer, makeClient, makeDirectMethods };
325
- }
326
- declare const TypeId: "effect-cf/ServiceBinding";
327
- interface ServiceFetcher {
328
- fetch(input: RequestInfo | URL, init?: RequestInit): Promise<Response>;
329
- }
330
- type RpcClient<Api> = { readonly [Key in keyof Api as Key extends string ? Api[Key] extends ((...args: Array<any>) => any) ? Key : never : never]: Api[Key]; };
331
- type ReservedMethodName$2 = ReservedMethodName$1 | "fetch";
332
- type ServiceBindingClient<Api extends object> = ServiceFetcher & RpcClient<Provider<Api, ReservedMethodName$2>>;
333
- type ApiFromDefinition<Definition$4> = Definition$4 extends Definition.Any ? ServerApi$1<Definition$4> : never;
334
- type ApiOrDefinition<Api extends object, Definition> = [Api] extends [never] ? ApiFromDefinition<Definition> : Api;
335
- /**
336
- * Binding metadata used to create an Effect service from a Worker binding.
337
- */
338
- interface ServiceBindingDefinition<Definition$5 extends Definition.Any | undefined = undefined> {
339
- readonly binding: string;
340
- readonly definition?: Definition$5;
341
- /** Append live trace context only when the receiver also enables rpcTracing. */
342
- readonly rpcTracing?: boolean;
343
- }
344
- 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 & {
345
- readonly _tag: "ServiceBindingFetchError";
346
- } & Readonly<A>;
347
- /**
348
- * Failure raised when calling `fetch` on a service binding.
349
- */
350
- declare class ServiceBindingFetchError extends ServiceBindingFetchError_base<{
351
- readonly binding: string;
352
- readonly cause: unknown;
353
- }> {
354
- get message(): string;
355
- }
356
- declare const ServiceBindingRpcError_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 & {
357
- readonly _tag: "ServiceBindingRpcError";
358
- } & Readonly<A>;
359
- /**
360
- * Failure raised when invoking an RPC method on a service binding.
361
- */
362
- declare class ServiceBindingRpcError extends ServiceBindingRpcError_base<{
363
- readonly binding: string;
364
- readonly method: string;
365
- readonly cause: unknown;
366
- }> {
367
- get message(): string;
368
- }
369
- type ServiceMethodKey<Api> = AsyncMethodKey<Api>;
370
- type ServiceMethodArgs<Api, Method extends keyof Api> = AsyncMethodArgs<Api, Method>;
371
- type ServiceMethodSuccess<Api, Method extends keyof Api> = AsyncMethodSuccess<Api, Method>;
372
- type ServiceMethodCloudflareReturn<Api, Method extends keyof Api> = AsyncMethodCloudflareReturn<Api, Method>;
373
- type ServiceCall<R, Api> = <Method extends ServiceMethodKey<Api>>(method: Method, ...args: ServiceMethodArgs<Api, Method>) => Effect.Effect<ServiceMethodSuccess<Api, Method>, ServiceBindingRpcError, R>;
374
- type DefinitionDirectMethods<R, Definition$9 extends Definition.Any> = { readonly [Method in Definition$3.MethodNames<Definition$9>]: (...args: Method$2.Args<Definition$9["methods"][Method]>) => Effect.Effect<Method$2.Success<Definition$9["methods"][Method]>, ServiceBindingRpcError, R>; };
375
- type DirectMethods<R, Definition$12> = Definition$12 extends Definition.Any ? DefinitionDirectMethods<R, Definition$12> : {};
376
- type ServiceBindingEffectClient<Api extends object, Definition$10 extends Definition.Any | undefined = undefined> = DirectMethods<never, Definition$10> & {
377
- readonly fetch: (input: RequestInfo | URL, init?: RequestInit) => Effect.Effect<globalThis.Response, ServiceBindingFetchError>;
378
- /**
379
- * Invokes a Worker RPC method and returns Cloudflare's raw RPC result.
380
- *
381
- * This preserves Cloudflare RPC behavior such as promise-like pipelining and
382
- * transferable / disposable result objects. It does not resolve the returned
383
- * promise-like value and it does not decode definition-backed success schemas.
384
- *
385
- * Most application code should use {@link call} instead.
386
- */
387
- readonly rpc: <Method extends ServiceMethodKey<Api>>(method: Method, ...args: ServiceMethodArgs<Api, Method>) => Effect.Effect<ServiceMethodCloudflareReturn<Api, Method>, ServiceBindingRpcError>;
388
- /**
389
- * Invokes a Worker RPC method, resolves Cloudflare's RPC result, and decodes
390
- * the success value when the binding was created from a definition.
391
- *
392
- * This is the normal choice when application code wants the final typed value.
393
- */
394
- readonly call: <Method extends ServiceMethodKey<Api>>(method: Method, ...args: ServiceMethodArgs<Api, Method>) => Effect.Effect<ServiceMethodSuccess<Api, Method>, ServiceBindingRpcError>;
395
- /**
396
- * Invokes a Worker RPC method in the current `Scope`, resolves Cloudflare's RPC
397
- * result, decodes definition-backed success values, and disposes the resolved
398
- * result when the scope closes if it implements `Symbol.dispose`.
399
- *
400
- * Use this for RPC methods that return Cloudflare RPC resources or other
401
- * disposable objects whose lifetime should be tied to an Effect scope.
402
- */
403
- readonly scopedCall: <Method extends ServiceMethodKey<Api>>(method: Method, ...args: ServiceMethodArgs<Api, Method>) => Effect.Effect<Awaited<ServiceMethodSuccess<Api, Method>>, ServiceBindingRpcError, Scope.Scope>;
404
- };
405
- type ServiceBindingStaticClient<R, Api extends object, Definition$11 extends Definition.Any | undefined = undefined> = DirectMethods<R, Definition$11> & {
406
- readonly fetch: (input: RequestInfo | URL, init?: RequestInit) => Effect.Effect<globalThis.Response, ServiceBindingFetchError, R>;
407
- readonly rpc: <Method extends ServiceMethodKey<Api>>(method: Method, ...args: ServiceMethodArgs<Api, Method>) => Effect.Effect<ServiceMethodCloudflareReturn<Api, Method>, ServiceBindingRpcError, R>;
408
- readonly call: <Method extends ServiceMethodKey<Api>>(method: Method, ...args: ServiceMethodArgs<Api, Method>) => Effect.Effect<ServiceMethodSuccess<Api, Method>, ServiceBindingRpcError, R>;
409
- readonly scopedCall: <Method extends ServiceMethodKey<Api>>(method: Method, ...args: ServiceMethodArgs<Api, Method>) => Effect.Effect<Awaited<ServiceMethodSuccess<Api, Method>>, ServiceBindingRpcError, Scope.Scope | R>;
410
- };
411
- type ServiceBindingValue = Schema.Schema.Type<typeof Schema.Unknown>;
412
- declare const isServiceBindingClient: <Api extends object>(value: ServiceBindingValue) => value is ServiceBindingClient<Api>;
413
- declare const makeClient: <Api extends object, const Definition$6 extends Definition.Any | undefined = undefined>(definition: ServiceBindingDefinition<Definition$6>) => ((service: ServiceBindingClient<Api>) => ServiceBindingEffectClient<Api, Definition$6>);
414
- declare const layer: <Self, Api extends object, const Definition$13 extends Definition.Any | undefined = undefined>(tag: Context.Service<Self, ServiceBindingEffectClient<Api, Definition$13>>, definition: ServiceBindingDefinition<Definition$13>) => import("effect/Layer").Layer<Self, BindingNotFoundError | BindingValidationError, WorkerEnvironment>;
415
- declare const Service: <Self, Api extends object = never>() => <Id extends string, const Definition$8 extends Definition.Any | undefined = undefined>(id: Id, definition: ServiceBindingDefinition<Definition$8>) => BindingService<Self, Id, ServiceBindingEffectClient<ApiOrDefinition<Api, Definition$8>, Definition$8>> & DirectMethods<Self, Definition$8> & {
416
- readonly [TypeId]: typeof TypeId;
417
- readonly definition: ServiceBindingDefinition<Definition$8>;
418
- readonly fetch: (input: URL | RequestInfo<unknown, CfProperties<unknown>>, init?: RequestInit<CfProperties<unknown>> | undefined) => Effect.Effect<Response, ServiceBindingFetchError, Self>;
419
- readonly rpc: <Method extends ServiceMethodKey<ApiOrDefinition<Api, Definition$8>>>(method: Method, ...args: AsyncMethodArgs<ApiOrDefinition<Api, Definition$8>, Method>) => Effect.Effect<Result$1<AsyncMethodSuccess<ApiOrDefinition<Api, Definition$8>, Method>>, ServiceBindingRpcError, Self>;
420
- readonly call: <Method extends ServiceMethodKey<ApiOrDefinition<Api, Definition$8>>>(method: Method, ...args: AsyncMethodArgs<ApiOrDefinition<Api, Definition$8>, Method>) => Effect.Effect<AsyncMethodSuccess<ApiOrDefinition<Api, Definition$8>, Method>, ServiceBindingRpcError, Self>;
421
- readonly scopedCall: <Method extends ServiceMethodKey<ApiOrDefinition<Api, Definition$8>>>(method: Method, ...args: AsyncMethodArgs<ApiOrDefinition<Api, Definition$8>, Method>) => Effect.Effect<Awaited<AsyncMethodSuccess<ApiOrDefinition<Api, Definition$8>, Method>>, ServiceBindingRpcError, Self | Scope.Scope>;
422
- };
423
- declare const makeDirectMethods: <R, Api, Definition$7 extends Definition.Any | undefined>(rpcDefinition: Definition$7 | undefined, call: ServiceCall<R, Api>) => DirectMethods<R, Definition$7>;
424
- declare namespace WorkerDefinition_d_exports {
425
- 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 };
426
- }
427
- type ServiceFreeSchema = Schema.Codec<any, any, never, never>;
428
- interface Method$1<Args extends ReadonlyArray<ServiceFreeSchema> = ReadonlyArray<ServiceFreeSchema>, Success extends ServiceFreeSchema = ServiceFreeSchema> {
429
- readonly args: Args;
430
- readonly success: Success;
431
- }
432
- declare namespace Method$1 {
433
- export type Any = Method$1<ReadonlyArray<ServiceFreeSchema>, ServiceFreeSchema>;
434
- type ArgsFromSchemas<Args extends ReadonlyArray<ServiceFreeSchema>> = Args extends readonly [] ? [] : Args extends readonly [infer Head extends ServiceFreeSchema, ...infer Tail extends ReadonlyArray<ServiceFreeSchema>] ? [Schema.Schema.Type<Head>, ...ArgsFromSchemas<Tail>] : Array<Schema.Schema.Type<Args[number]>>;
435
- type EncodedArgsFromSchemas<Args extends ReadonlyArray<ServiceFreeSchema>> = { [Index in keyof Args]: Schema.Json; };
436
- export type Args<Self extends Any> = ArgsFromSchemas<Self["args"]>;
437
- export type EncodedArgs<Self extends Any> = EncodedArgsFromSchemas<Self["args"]>;
438
- export type Success<Self extends Any> = Schema.Schema.Type<Self["success"]>;
439
- export type EncodedSuccess<_Self extends Any> = Schema.Json;
440
- export {};
441
- }
442
- type Methods = Record<string, Method$1.Any>;
443
- /**
444
- * RPC contract for a Worker service.
445
- *
446
- * Create with {@link make} and reuse to type both worker implementations and
447
- * service bindings in other workers.
448
- */
449
- interface Definition<Id extends string = string, MethodDefinitions extends Methods = Methods> {
450
- readonly id: Id;
451
- readonly methods: MethodDefinitions;
452
- }
453
- declare namespace Definition {
454
- type Any = Definition<string, Methods>;
455
- }
456
- type ReservedMethodName$1 = ReservedMethodName;
457
- type NoReservedMethods<MethodDefinitions extends Methods> = Extract<keyof MethodDefinitions, ReservedMethodName$1> extends never ? MethodDefinitions : never;
458
- /**
459
- * Promise-based client API derived from a {@link Definition}.
460
- */
461
- type ServerApi$1<Self extends Definition.Any> = { readonly [Key in keyof Self["methods"]]: (...args: Method$1.Args<Self["methods"][Key]>) => Promise<Method$1.Success<Self["methods"][Key]>>; };
462
- type Api<Self extends Definition.Any> = Provider<ServerApi$1<Self>, ReservedMethodName$1>;
463
- /**
464
- * Effect handlers for each RPC method in a worker definition.
465
- */
466
- 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]>>; };
467
- type BaseOptions<ROut, Self extends Definition.Any, REvent, EventLayerError> = Omit<WorkerOptions<ROut, REvent, EventLayerError, Handlers<ROut | REvent, Self>>, "eventLayer" | "rpc"> & {
468
- readonly rpc: Handlers<ROut | REvent, Self>;
469
- };
470
- type EventLayerOptions<ROut, REvent, EventLayerError> = [REvent] extends [never] ? Pick<WorkerOptions<ROut, never, EventLayerError>, "eventLayer"> : {
471
- readonly eventLayer: NonNullable<WorkerOptions<ROut, REvent, EventLayerError>["eventLayer"]>;
472
- };
473
- /**
474
- * Worker constructor options for a specific RPC definition.
475
- */
476
- type Options<ROut, Self extends Definition.Any, REvent = never, EventLayerError = never> = BaseOptions<ROut, Self, REvent, EventLayerError> & EventLayerOptions<ROut, REvent, EventLayerError>;
477
- type LayerOptions = {
478
- readonly binding: string;
479
- readonly rpcTracing?: boolean;
480
- };
481
- 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>> & {
482
- readonly id: Id;
483
- readonly methods: MethodDefinitions;
484
- readonly make: {
485
- <ROut, LayerError, REvent, EventLayerError = never>(layer: Layer.Layer<ROut, LayerError, ExecutionContext | WorkerContext | WorkerEnvironment>, options: Options<ROut, Definition<Id, MethodDefinitions>, REvent, EventLayerError> & {
486
- readonly eventLayer: NonNullable<WorkerOptions<ROut, REvent, EventLayerError>["eventLayer"]>;
487
- }): WorkerClass<Handlers<ROut | REvent, Definition<Id, MethodDefinitions>>, ROut | REvent>;
488
- <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>;
489
- };
490
- readonly layer: (options: LayerOptions) => Layer.Layer<Self, BindingNotFoundError | BindingValidationError, WorkerEnvironment>;
491
- };
492
- /**
493
- * Defines a single RPC method schema in a worker definition.
494
- */
495
- declare const method: {
496
- <Success extends ServiceFreeSchema>(definition: {
497
- readonly success: Success;
498
- }): Method$1<readonly [], Success>;
499
- <const Args extends ReadonlyArray<ServiceFreeSchema>, Success extends ServiceFreeSchema>(definition: {
500
- readonly args: Args;
501
- readonly success: Success;
502
- }): Method$1<Args, Success>;
503
- };
504
- declare const make$1: <Id extends string, const MethodDefinitions extends Methods>(id: Id, methods: MethodDefinitions & NoReservedMethods<MethodDefinitions>) => TagClass<Definition<Id, MethodDefinitions>, Id, MethodDefinitions>;
505
- declare const Tag: <Self>() => <Id extends string, const MethodDefinitions extends Methods>(id: Id, methods: MethodDefinitions & NoReservedMethods<MethodDefinitions>) => TagClass<Self, Id, MethodDefinitions>;
506
- declare const Worker: typeof Tag;
507
- /**
508
- * Helper for implementing handlers with the exact method shape of a definition.
509
- */
510
- declare const implement: <ROut, const Self extends Definition.Any>(_definition: Self, handlers: Handlers<ROut, Self>) => Handlers<ROut, Self>;
511
- /**
512
- * Convenience alias for a single worker RPC handler Effect.
513
- */
514
- type HandlerEffect<ROut, Self extends Definition.Any, Key extends keyof Self["methods"]> = WorkerRpcHandler<ROut, Method$1.Success<Self["methods"][Key]>>;
515
- declare namespace Worker_d_exports {
516
- export { Api, Definition, ExecutionContext, FetchHandler, FetchWorkerOptions, HandlerEffect, Handlers, LayerOptions, Method$1 as Method, Methods, NativeRequest, NoReservedMethods, Options, ReservedMethodName, RpcHandlers, RunOptions, RunSymbol, 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 };
517
- }
518
- declare const ExecutionContext_base: Context.ServiceClass<ExecutionContext, "effect-cf/ExecutionContext", globalThis.ExecutionContext<unknown>>;
519
- declare class ExecutionContext extends ExecutionContext_base {}
520
- interface WorkerContextWaitUntilOptions<E, R> {
521
- /**
522
- * Failure mode for the background effect: `"observe"` (default) logs or
523
- * routes the failure to `onFailure`, while `"propagate"` also rejects the
524
- * native `waitUntil` promise.
525
- */
526
- readonly mode?: "observe" | "propagate";
527
- readonly onFailure?: (cause: Cause.Cause<E>) => Effect.Effect<void, never, R>;
528
- }
529
- interface WorkerContextService {
530
- readonly raw: globalThis.ExecutionContext;
531
- waitUntil<A, E, R, R2 = never>(effect: Effect.Effect<A, E, R>, options?: WorkerContextWaitUntilOptions<E, R2>): Effect.Effect<void, never, R | R2>;
532
- waitUntilPropagating<A, E, R, R2 = never>(effect: Effect.Effect<A, E, R>, options?: Omit<WorkerContextWaitUntilOptions<E, R2>, "mode">): Effect.Effect<void, never, R | R2>;
533
- readonly passThroughOnException: Effect.Effect<void>;
534
- abort(reason?: string): Effect.Effect<void>;
535
- }
536
- declare const WorkerContext_base: Context.ServiceClass<WorkerContext, "effect-cf/WorkerContext", WorkerContextService>;
537
- declare class WorkerContext extends WorkerContext_base {}
538
- declare const NativeRequest_base: Context.ServiceClass<NativeRequest, "effect-cf/NativeRequest", Request<unknown, CfProperties<unknown>>>;
539
- declare class NativeRequest extends NativeRequest_base {}
540
- declare const isWebSocketUpgrade: (request: Request) => boolean;
541
- type ReservedMethodName = ReservedMethodName$3 | "fetch" | "connect" | "queue" | "scheduled" | "tail" | "tailStream" | "test" | "trace" | "alarm" | "webSocketMessage" | "webSocketClose" | "webSocketError";
542
- type WorkerBaseContext<ROut> = ExecutionContext | WorkerContext | WorkerEnvironment | ROut;
543
- type WorkerFetchContext<ROut> = WorkerBaseContext<ROut> | NativeRequest | HttpServerRequest.HttpServerRequest | Scope.Scope;
544
- type WorkerRpcContext<ROut> = WorkerBaseContext<ROut> | Scope.Scope;
545
- /** Override to instrument the whole event, then call super[RunSymbol]. */
546
- declare const RunSymbol: unique symbol;
547
- declare const FetchSymbol: unique symbol;
548
- /** Metadata available before an event effect or its event layer starts. */
549
- interface RunOptions {
550
- readonly event?: "fetch" | "rpc" | "queue";
551
- readonly rpc?: RpcInvocationInfo;
552
- }
553
- type WorkerFetchSuccess = Response | HttpServerResponse.HttpServerResponse;
554
- /**
555
- * Effect type for `fetch` handlers executed by {@link make}.
556
- */
557
- type WorkerHandler<ROut, A = WorkerFetchSuccess> = Effect.Effect<A, unknown, WorkerFetchContext<ROut>>;
558
- /**
559
- * Effect type for worker RPC handlers.
560
- */
561
- type WorkerRpcHandler<ROut, A = unknown> = Effect.Effect<A, unknown, WorkerRpcContext<ROut>>;
562
- /**
563
- * Shape of worker RPC handlers passed to {@link make}.
564
- */
565
- type WorkerRpc<ROut> = Record<string, (...args: Array<any>) => WorkerRpcHandler<ROut>>;
566
- 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; };
567
- 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; };
568
- interface WorkerOptions<RRuntime, REvent = never, EventLayerError = never, Rpc extends WorkerRpc<RRuntime | REvent> = Record<never, never>> {
569
- /**
570
- * Layer provided around each Cloudflare event handled by this Worker.
571
- *
572
- * The layer is built inside the event's Effect scope. For fetch handlers that
573
- * return an Effect `HttpServerResponse` stream, its scope remains open until
574
- * the response body finishes or is canceled. Native `Response` values pass
575
- * through unchanged, so their body streams do not carry this scoped-lifetime
576
- * guarantee. Fetch, queue, and RPC handlers schedule a best-effort telemetry
577
- * flush capped at two seconds.
578
- */
579
- readonly eventLayer?: Layer.Layer<REvent, EventLayerError, WorkerBaseContext<RRuntime>>;
580
- readonly fetch?: Effect.Effect<WorkerFetchSuccess, unknown, WorkerFetchContext<RRuntime | REvent>>;
581
- readonly queue?: QueueHandler<RRuntime | REvent>;
582
- /**
583
- * Optional RPC methods exposed as class instance methods.
584
- *
585
- * After every invocation, the configured OTLP flusher is scheduled through
586
- * `WorkerContext.waitUntil`, including when the handler fails. The scheduled
587
- * flush silently settles within two seconds even if the exporter does not.
588
- */
589
- readonly rpc?: Rpc;
590
- /** Accept live native trace metadata. The client must also enable rpcTracing. */
591
- readonly rpcTracing?: ReceiverOptions;
592
- }
593
- type WorkerOptionsWithEventLayer<RRuntime, REvent, EventLayerError, Rpc extends WorkerRpc<RRuntime | REvent> = Record<never, never>> = Omit<WorkerOptions<RRuntime, REvent, EventLayerError, Rpc>, "eventLayer"> & {
594
- readonly eventLayer: Layer.Layer<REvent, EventLayerError, WorkerBaseContext<RRuntime>>;
595
- };
596
- type FetchWorkerOptions<RRuntime, REvent = never, EventLayerError = never> = Omit<WorkerOptions<RRuntime, REvent, EventLayerError, Record<never, never>>, "rpc"> & {
597
- readonly rpc?: never;
598
- };
599
- type FetchWorkerOptionsWithEventLayer<RRuntime, REvent, EventLayerError> = Omit<FetchWorkerOptions<RRuntime, REvent, EventLayerError>, "eventLayer"> & {
600
- readonly eventLayer: Layer.Layer<REvent, EventLayerError, WorkerBaseContext<RRuntime>>;
601
- };
602
- /**
603
- * Cloudflare `WorkerEntrypoint` constructor produced by {@link make}.
604
- */
605
- type WorkerClass<Rpc extends WorkerRpc<ROut>, ROut> = new (ctx: globalThis.ExecutionContext, env: WorkerEnv) => WorkerEntrypoint<WorkerEnv> & {
606
- fetch(request: Request): Promise<Response>;
607
- queue(batch: globalThis.MessageBatch): Promise<void>;
608
- [RunSymbol]<A, E>(effect: Effect.Effect<A, E, WorkerRpcContext<ROut>>, options?: RunOptions): Promise<A>;
609
- [FetchSymbol](request: Request, requestContext: globalThis.ExecutionContext): Promise<Response>;
610
- } & WorkerRpcContract<Rpc, ROut>;
611
- /**
612
- * `ExportedHandler`-compatible fetch object produced by {@link makeFetchHandler}.
613
- */
614
- interface FetchHandler<Env extends WorkerEnv = WorkerEnv> {
615
- readonly fetch: (request: Request, env: Env, ctx: globalThis.ExecutionContext) => Promise<Response>;
616
- }
617
- /**
618
- * Cloudflare creates a new `WorkerEntrypoint` instance for each native
619
- * invocation, so this base layer is not shared across invocations. Its managed
620
- * runtime has no deterministic disposal point in this adapter; use
621
- * `eventLayer` for resources whose finalizers must run with an event.
622
- */
623
- declare function make<ROut, LayerError>(layer: Layer.Layer<ROut, LayerError, ExecutionContext | WorkerContext | WorkerEnvironment>, fetch: WorkerHandler<ROut>): WorkerClass<Record<never, never>, ROut>;
624
- 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>;
625
- 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>;
626
- /**
627
- * Creates an `ExportedHandler`-compatible `{ fetch }` object backed by
628
- * {@link make}.
629
- *
630
- * The Effect runtime is cached per `env` identity, so the base layer builds
631
- * once for that cached handler. Request handlers and `eventLayer` receive fresh
632
- * `ExecutionContext` and `WorkerContext` services. A service constructed by the
633
- * cached base layer from either context instead captures the first request's
634
- * value, so construct invocation-bound services in `eventLayer`. Cloudflare
635
- * provides no isolate shutdown hook, so cached base-layer finalizers are not
636
- * guaranteed to run.
637
- */
638
- 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>;
639
- 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>;
640
- //#endregion
641
- export { Provider as C, ServiceFreeSchema$1 as S, QueueBinding_d_exports as _, Worker_d_exports as a, ReservedMethodName$3 as b, AsyncMethodArgs as c, AsyncMethodSuccess as d, ReceiverOptions as f, QueueDefinition_d_exports as g, Queue_d_exports as h, WorkerContextWaitUntilOptions as i, AsyncMethodCloudflareReturn as l, RpcTracing_d_exports as m, NativeRequest as n, WorkerDefinition_d_exports as o, RpcInvocationInfo as p, WorkerContext as r, ServiceBinding_d_exports as s, ExecutionContext as t, AsyncMethodKey as u, Definition$3 as v, Rpc_d_exports as w, RpcDefinition_d_exports as x, Method$2 as y };