effect-cf 0.40.0 → 0.40.2
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 +14 -0
- package/README.md +2 -0
- package/dist/AiGateway.d.mts +86 -0
- package/dist/AiGateway.mjs +178 -0
- package/dist/AnalyticsEngine.d.mts +170 -0
- package/dist/AnalyticsEngine.mjs +275 -0
- package/dist/{Artifacts-B3r3RuTB.d.mts → Artifacts.d.mts} +8 -5
- package/dist/{Artifacts-CBxWGeZB.mjs → Artifacts.mjs} +9 -5
- package/dist/Binding.d.mts +45 -0
- package/dist/{Binding-C82jRhdr.mjs → Binding.mjs} +8 -4
- package/dist/BrowserRendering.d.mts +85 -0
- package/dist/BrowserRendering.mjs +81 -0
- package/dist/Cache.d.mts +40 -0
- package/dist/Cache.mjs +51 -0
- package/dist/CloudflareOtlp.d.mts +95 -0
- package/dist/CloudflareOtlp.mjs +125 -0
- package/dist/CloudflareTracer.d.mts +20 -0
- package/dist/CloudflareTracer.mjs +69 -0
- package/dist/ComputerArtifacts.d.mts +2 -2
- package/dist/ComputerArtifacts.mjs +3 -2
- package/dist/ComputerWorkspace.d.mts +36 -31
- package/dist/ComputerWorkspace.mjs +8 -3
- package/dist/ComputerWorkspaceHost.d.mts +1 -1
- package/dist/ComputerWorkspaceHost.mjs +1 -1
- package/dist/{ContainerNamespace-DbLaeFhN.d.mts → ContainerNamespace.d.mts} +16 -12
- package/dist/ContainerNamespace.mjs +165 -0
- package/dist/D1.d.mts +33 -0
- package/dist/D1.mjs +32 -0
- package/dist/DurableObject.d.mts +103 -0
- package/dist/DurableObject.mjs +77 -0
- package/dist/DurableObjectAlarm.d.mts +187 -0
- package/dist/DurableObjectAlarm.mjs +344 -0
- package/dist/DurableObjectDefinition.d.mts +87 -0
- package/dist/DurableObjectDefinition.mjs +125 -0
- package/dist/DurableObjectNamespace.d.mts +154 -0
- package/dist/DurableObjectNamespace.mjs +144 -0
- package/dist/DurableObjectRpcWebSocket.d.mts +112 -0
- package/dist/DurableObjectRpcWebSocket.mjs +547 -0
- package/dist/DurableObjectSqlite.d.mts +11 -0
- package/dist/DurableObjectSqlite.mjs +16 -0
- package/dist/DurableObjectState.d.mts +65 -0
- package/dist/DurableObjectState.mjs +47 -0
- package/dist/DurableObjectStorage.d.mts +112 -0
- package/dist/{DurableObjectState-DLL0YgBd.mjs → DurableObjectStorage.mjs} +19 -157
- package/dist/DurableObjectWebSocket.d.mts +83 -0
- package/dist/DurableObjectWebSocket.mjs +120 -0
- package/dist/Email.d.mts +106 -0
- package/dist/Email.mjs +247 -0
- package/dist/Environment.d.mts +59 -0
- package/dist/{ErrorMessage-Byx2OgNd.mjs → Environment.mjs} +7 -18
- package/dist/{Hyperdrive-HrwFlZ6x.d.mts → Hyperdrive.d.mts} +8 -5
- package/dist/Hyperdrive.mjs +32 -0
- package/dist/HyperdrivePg.d.mts +4 -3
- package/dist/HyperdrivePg.mjs +3 -1
- package/dist/Images.d.mts +191 -0
- package/dist/Images.mjs +112 -0
- package/dist/Kv.d.mts +84 -0
- package/dist/Kv.mjs +132 -0
- package/dist/Mcp.d.mts +5 -3
- package/dist/Mcp.mjs +13 -4
- package/dist/Queue.d.mts +64 -0
- package/dist/Queue.mjs +52 -0
- package/dist/QueueBinding.d.mts +42 -0
- package/dist/QueueBinding.mjs +69 -0
- package/dist/QueueDefinition.d.mts +48 -0
- package/dist/QueueDefinition.mjs +63 -0
- package/dist/R2.d.mts +89 -0
- package/dist/R2.mjs +117 -0
- package/dist/Rpc.d.mts +29 -0
- package/dist/Rpc.mjs +28 -0
- package/dist/RpcDefinition.d.mts +116 -0
- package/dist/RpcDefinition.mjs +184 -0
- package/dist/RpcTracing.d.mts +52 -0
- package/dist/RpcTracing.mjs +77 -0
- package/dist/Sandbox.d.mts +10 -5
- package/dist/Sandbox.mjs +9 -3
- package/dist/ServiceBinding.d.mts +112 -0
- package/dist/ServiceBinding.mjs +145 -0
- package/dist/Vectorize.d.mts +68 -0
- package/dist/Vectorize.mjs +76 -0
- package/dist/Vitest.d.mts +6 -4
- package/dist/Vitest.mjs +8 -4
- package/dist/WebTransport.d.mts +66 -0
- package/dist/WebTransport.mjs +63 -0
- package/dist/Worker.d.mts +139 -0
- package/dist/Worker.mjs +141 -0
- package/dist/WorkerDefinition.d.mts +100 -0
- package/dist/WorkerDefinition.mjs +103 -0
- package/dist/WorkersAi.d.mts +84 -0
- package/dist/WorkersAi.mjs +84 -0
- package/dist/Workflow.d.mts +86 -0
- package/dist/Workflow.mjs +137 -0
- package/dist/{WorkflowBinding-DtVykUCz.d.mts → WorkflowBinding.d.mts} +14 -10
- package/dist/WorkflowBinding.mjs +100 -0
- package/dist/WorkflowDefinition.d.mts +51 -0
- package/dist/WorkflowDefinition.mjs +69 -0
- package/dist/{rolldown-runtime-D7D4PA-g.mjs → _virtual/_rolldown/runtime.mjs} +1 -1
- package/dist/index.d.mts +40 -1839
- package/dist/index.mjs +40 -3161
- package/dist/{ComputerWorkspaceHostRegistry-CY5Fv4Ng.mjs → internal/ComputerWorkspaceHostRegistry.mjs} +1 -1
- package/dist/internal/Entrypoint.mjs +37 -0
- package/dist/internal/ErrorMessage.mjs +17 -0
- package/dist/internal/NativeCallback.mjs +33 -0
- package/dist/internal/RpcInvocation.d.mts +13 -0
- package/dist/internal/RpcInvocation.mjs +34 -0
- package/dist/internal/Runtime.mjs +31 -0
- package/dist/internal/Telemetry.mjs +20 -0
- package/dist/{WorkerContext-Yobnfw-K.mjs → internal/WorkerContext.mjs} +4 -31
- package/package.json +1 -1
- package/src/AiGateway.ts +5 -1
- package/src/AnalyticsEngine.ts +14 -19
- package/src/Artifacts.ts +6 -1
- package/src/Binding.ts +5 -1
- package/src/BrowserRendering.ts +5 -1
- package/src/Cache.ts +5 -1
- package/src/CloudflareOtlp.ts +12 -10
- package/src/CloudflareTracer.ts +7 -1
- package/src/ComputerArtifacts.ts +2 -1
- package/src/ComputerWorkspace.ts +7 -1
- package/src/ContainerNamespace.ts +6 -1
- package/src/D1.ts +4 -1
- package/src/DurableObject.ts +4 -1
- package/src/DurableObjectAlarm.ts +10 -12
- package/src/DurableObjectDefinition.ts +3 -1
- package/src/DurableObjectNamespace.ts +4 -1
- package/src/DurableObjectRpcWebSocket.ts +7 -1
- package/src/DurableObjectSqlite.ts +2 -1
- package/src/DurableObjectState.ts +4 -1
- package/src/DurableObjectStorage.ts +11 -13
- package/src/DurableObjectWebSocket.ts +5 -1
- package/src/Email.ts +5 -1
- package/src/Environment.ts +6 -1
- package/src/Hyperdrive.ts +4 -1
- package/src/HyperdrivePg.ts +3 -1
- package/src/Images.ts +7 -1
- package/src/Kv.ts +7 -1
- package/src/Mcp.ts +13 -13
- package/src/Queue.ts +5 -11
- package/src/QueueBinding.ts +5 -1
- package/src/QueueDefinition.ts +4 -1
- package/src/R2.ts +7 -1
- package/src/Rpc.ts +4 -1
- package/src/RpcDefinition.ts +4 -1
- package/src/RpcTracing.ts +9 -1
- package/src/Sandbox.ts +7 -1
- package/src/ServiceBinding.ts +6 -1
- package/src/Vectorize.ts +7 -1
- package/src/Vitest.ts +5 -1
- package/src/WebTransport.ts +6 -1
- package/src/Worker.ts +10 -16
- package/src/WorkerDefinition.ts +3 -1
- package/src/WorkersAi.ts +7 -1
- package/src/Workflow.ts +10 -25
- package/src/WorkflowBinding.ts +6 -1
- package/src/WorkflowDefinition.ts +4 -1
- package/src/internal/Entrypoint.ts +3 -1
- package/src/internal/ErrorMessage.ts +1 -1
- package/src/internal/NativeCallback.ts +3 -1
- package/src/internal/RpcInvocation.ts +5 -1
- package/src/internal/Runtime.ts +5 -1
- package/src/internal/Telemetry.ts +4 -3
- package/src/internal/WorkerContext.ts +3 -1
- package/dist/Binding-DKcLrQCM.d.mts +0 -94
- package/dist/DurableObjectState-DJ0K-zyd.d.mts +0 -244
- package/dist/Worker-XsGJsCJX.mjs +0 -885
- package/dist/Worker-gV4mDqIs.d.mts +0 -641
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# effect-cf
|
|
2
2
|
|
|
3
|
+
## 0.40.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#155](https://github.com/danieljvdm/effect-cf/pull/155) [`c23dd31`](https://github.com/danieljvdm/effect-cf/commit/c23dd319f7ea018f803de31095937c2ca69eb0ed) Thanks [@danieljvdm](https://github.com/danieljvdm)! - Fix initialization failures when importing Queue or Workflow definitions from the published ES modules. Their factory exports remain the same functions regardless of module evaluation order.
|
|
8
|
+
|
|
9
|
+
## 0.40.1
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- [#151](https://github.com/danieljvdm/effect-cf/pull/151) [`f6c9c9f`](https://github.com/danieljvdm/effect-cf/commit/f6c9c9f8ff504d44ab9c5c0d0fa6fc4c47a98039) Thanks [@danieljvdm](https://github.com/danieljvdm)! - Reduce consumer bundles by preserving module boundaries in the published package and avoiding unused telemetry exporters. Consumers using only KV no longer retain unrelated Workers, Workflows, or Node async-hooks imports.
|
|
14
|
+
|
|
15
|
+
- [#153](https://github.com/danieljvdm/effect-cf/pull/153) [`00a1247`](https://github.com/danieljvdm/effect-cf/commit/00a1247cfff4641539ffdb3928b56e4887e32499) Thanks [@danieljvdm](https://github.com/danieljvdm)! - Reduce unused Effect code retained by consumer bundlers such as Wrangler and esbuild. Existing package imports and APIs continue to work without application changes.
|
|
16
|
+
|
|
3
17
|
## 0.40.0
|
|
4
18
|
|
|
5
19
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -8,6 +8,8 @@ npm install effect-cf "effect@^4.0.0-rc.112"
|
|
|
8
8
|
|
|
9
9
|
The repository tests against workerd `1.20260825.1` and `@cloudflare/workers-types@5.20260825.1`. Use `compatibility_date: "2026-08-25"` in Wrangler.
|
|
10
10
|
|
|
11
|
+
See the [runtime performance guide](https://github.com/danieljvdm/effect-cf/blob/main/docs/runtime-performance.md) for measured alarm batching and telemetry configuration guidance.
|
|
12
|
+
|
|
11
13
|
## Worker
|
|
12
14
|
|
|
13
15
|
```ts
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { WorkerEnvironment } from "./Environment.mjs";
|
|
2
|
+
import { BindingNotFoundError, BindingValidationError } from "./Binding.mjs";
|
|
3
|
+
import { WorkersAiBinding, isWorkersAiBinding } from "./WorkersAi.mjs";
|
|
4
|
+
import * as Context$1 from "effect/Context";
|
|
5
|
+
import * as Effect from "effect/Effect";
|
|
6
|
+
import { Layer } from "effect";
|
|
7
|
+
declare namespace AiGateway_d_exports {
|
|
8
|
+
export { AiGatewayBinding, AiGatewayClient, AiGatewayDefinition, AiGatewayFetchOptions, AiGatewayHeaders, AiGatewayLog, AiGatewayOperationError, AiGatewayPatchLog, AiGatewayProvider, AiGatewayRunOptions, AiGatewayService, AiGatewayUniversalRequest, LayerOptions, Tag, TagClass, isAiGatewayBinding, layer, make, makeClient, makeClientFromAi, makeHttpClient };
|
|
9
|
+
}
|
|
10
|
+
declare const AiGatewayOperationError_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 & {
|
|
11
|
+
readonly _tag: "AiGatewayOperationError";
|
|
12
|
+
} & Readonly<A>;
|
|
13
|
+
declare class AiGatewayOperationError extends AiGatewayOperationError_base<{
|
|
14
|
+
readonly binding: string;
|
|
15
|
+
readonly operation: string;
|
|
16
|
+
readonly cause: unknown;
|
|
17
|
+
}> {
|
|
18
|
+
get message(): string;
|
|
19
|
+
}
|
|
20
|
+
interface AiGatewayDefinition {
|
|
21
|
+
readonly binding: string;
|
|
22
|
+
readonly gatewayId: string;
|
|
23
|
+
readonly accountId?: string;
|
|
24
|
+
}
|
|
25
|
+
type AiGatewayBinding = CloudflareAiGateway;
|
|
26
|
+
type AiGatewayRunData = Parameters<AiGatewayBinding["run"]>[0];
|
|
27
|
+
type AiGatewayPatchLog = Parameters<AiGatewayBinding["patchLog"]>[1];
|
|
28
|
+
type AiGatewayLog = Awaited<ReturnType<AiGatewayBinding["getLog"]>>;
|
|
29
|
+
type AiGatewayProvider = NonNullable<Parameters<AiGatewayBinding["getUrl"]>[0]>;
|
|
30
|
+
type AiGatewayUniversalRequest = Exclude<AiGatewayRunData, ReadonlyArray<unknown>>;
|
|
31
|
+
type AiGatewayHeaders = NonNullable<AiGatewayUniversalRequest["headers"]>;
|
|
32
|
+
type AiGatewayRunOptions = Parameters<CloudflareAiGateway["run"]>[1];
|
|
33
|
+
type AiGatewayBindingCandidate = Parameters<typeof isWorkersAiBinding>[0];
|
|
34
|
+
interface AiGatewayFetchOptions {
|
|
35
|
+
readonly provider?: AiGatewayProvider;
|
|
36
|
+
readonly path?: string;
|
|
37
|
+
readonly init?: RequestInit;
|
|
38
|
+
}
|
|
39
|
+
interface AiGatewayClient {
|
|
40
|
+
readonly run: (data: AiGatewayUniversalRequest | ReadonlyArray<AiGatewayUniversalRequest>, options?: AiGatewayRunOptions) => Effect.Effect<Response, AiGatewayOperationError>;
|
|
41
|
+
readonly getUrl: (provider?: AiGatewayProvider) => Effect.Effect<string, AiGatewayOperationError>;
|
|
42
|
+
readonly fetch: (options: AiGatewayFetchOptions) => Effect.Effect<Response, AiGatewayOperationError>;
|
|
43
|
+
readonly patchLog: (logId: string, data: AiGatewayPatchLog) => Effect.Effect<void, AiGatewayOperationError>;
|
|
44
|
+
readonly getLog: (logId: string) => Effect.Effect<AiGatewayLog, AiGatewayOperationError>;
|
|
45
|
+
readonly rawUnsafe: Effect.Effect<AiGatewayBinding, AiGatewayOperationError>;
|
|
46
|
+
readonly definition: AiGatewayDefinition;
|
|
47
|
+
}
|
|
48
|
+
declare const AiGatewayServiceTypeId: unique symbol;
|
|
49
|
+
interface AiGatewayService<Id extends string> {
|
|
50
|
+
readonly [AiGatewayServiceTypeId]: {
|
|
51
|
+
readonly id: Id;
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
type LayerOptions = {
|
|
55
|
+
readonly binding: string;
|
|
56
|
+
readonly gatewayId: string;
|
|
57
|
+
readonly accountId?: string;
|
|
58
|
+
};
|
|
59
|
+
interface TagClass<Self, Id extends string> extends Context$1.ServiceClass<Self, Id, AiGatewayClient> {
|
|
60
|
+
readonly id: Id;
|
|
61
|
+
readonly layer: (options: LayerOptions) => Layer.Layer<Self, BindingNotFoundError | BindingValidationError | AiGatewayOperationError, WorkerEnvironment>;
|
|
62
|
+
}
|
|
63
|
+
declare const isAiGatewayBinding: (value: AiGatewayBindingCandidate) => value is WorkersAiBinding;
|
|
64
|
+
declare const makeClient: (definition: AiGatewayDefinition, gateway: AiGatewayBinding) => {
|
|
65
|
+
definition: AiGatewayDefinition;
|
|
66
|
+
run: (data: import("@cloudflare/workers-types").AIGatewayUniversalRequest | readonly import("@cloudflare/workers-types").AIGatewayUniversalRequest[], options?: {
|
|
67
|
+
gateway?: import("@cloudflare/workers-types").UniversalGatewayOptions;
|
|
68
|
+
extraHeaders?: object;
|
|
69
|
+
signal?: import("@cloudflare/workers-types").AbortSignal;
|
|
70
|
+
} | undefined) => Effect.Effect<import("@cloudflare/workers-types").Response, AiGatewayOperationError, never>;
|
|
71
|
+
getUrl: (provider?: string | undefined) => Effect.Effect<string, AiGatewayOperationError, never>;
|
|
72
|
+
fetch: (options: AiGatewayFetchOptions) => Effect.Effect<Response, AiGatewayOperationError, never>;
|
|
73
|
+
patchLog: (logId: string, data: import("@cloudflare/workers-types").AiGatewayPatchLog) => Effect.Effect<void, AiGatewayOperationError, never>;
|
|
74
|
+
getLog: (logId: string) => Effect.Effect<import("@cloudflare/workers-types").AiGatewayLog, AiGatewayOperationError, never>;
|
|
75
|
+
rawUnsafe: Effect.Effect<CloudflareAiGateway, never, never>;
|
|
76
|
+
};
|
|
77
|
+
declare const makeClientFromAi: (definition: AiGatewayDefinition, ai: WorkersAiBinding) => AiGatewayClient;
|
|
78
|
+
declare const makeHttpClient: (definition: Omit<AiGatewayDefinition, "binding"> & {
|
|
79
|
+
readonly accountId: string;
|
|
80
|
+
readonly binding?: string;
|
|
81
|
+
}, request?: typeof fetch) => AiGatewayClient;
|
|
82
|
+
declare const layer: <Self>(tag: Context$1.Service<Self, AiGatewayClient>, definition: AiGatewayDefinition) => Layer.Layer<Self, BindingNotFoundError | BindingValidationError, WorkerEnvironment>;
|
|
83
|
+
declare const make: <Id extends string>(id: Id) => TagClass<AiGatewayService<Id>, Id>;
|
|
84
|
+
declare const Tag: <Self>() => <Id extends string>(id: Id) => TagClass<Self, Id>;
|
|
85
|
+
//#endregion
|
|
86
|
+
export { AiGatewayBinding, AiGatewayClient, AiGatewayDefinition, AiGatewayFetchOptions, AiGatewayHeaders, AiGatewayLog, AiGatewayOperationError, AiGatewayPatchLog, AiGatewayProvider, AiGatewayRunOptions, AiGatewayService, AiGatewayUniversalRequest, AiGateway_d_exports, LayerOptions, Tag, TagClass, isAiGatewayBinding, layer, make, makeClient, makeClientFromAi, makeHttpClient };
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import { __exportAll } from "./_virtual/_rolldown/runtime.mjs";
|
|
2
|
+
import { layer as layer$1 } from "./Binding.mjs";
|
|
3
|
+
import { causeMessage } from "./internal/ErrorMessage.mjs";
|
|
4
|
+
import { isWorkersAiBinding } from "./WorkersAi.mjs";
|
|
5
|
+
import * as Context from "effect/Context";
|
|
6
|
+
import * as Data from "effect/Data";
|
|
7
|
+
import * as Effect from "effect/Effect";
|
|
8
|
+
import * as S from "effect/Schema";
|
|
9
|
+
//#region src/AiGateway.ts
|
|
10
|
+
var AiGateway_exports = /* @__PURE__ */ __exportAll({
|
|
11
|
+
AiGatewayOperationError: () => AiGatewayOperationError,
|
|
12
|
+
Tag: () => Tag,
|
|
13
|
+
isAiGatewayBinding: () => isAiGatewayBinding,
|
|
14
|
+
layer: () => layer,
|
|
15
|
+
make: () => make,
|
|
16
|
+
makeClient: () => makeClient,
|
|
17
|
+
makeClientFromAi: () => makeClientFromAi,
|
|
18
|
+
makeHttpClient: () => makeHttpClient
|
|
19
|
+
});
|
|
20
|
+
const expectedAiGatewayBinding = "Workers AI binding with gateway()";
|
|
21
|
+
var AiGatewayOperationError = class extends Data.TaggedError("AiGatewayOperationError") {
|
|
22
|
+
get message() {
|
|
23
|
+
return `AI Gateway ${this.operation} failed for binding "${this.binding}": ${causeMessage(this.cause)}`;
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
const AiGatewayMetadata = S.Record(S.String, S.Union([
|
|
27
|
+
S.String,
|
|
28
|
+
S.Number,
|
|
29
|
+
S.Boolean,
|
|
30
|
+
S.Null
|
|
31
|
+
]));
|
|
32
|
+
const AiGatewayHttpMetadata = S.Union([AiGatewayMetadata, S.fromJsonString(AiGatewayMetadata)]);
|
|
33
|
+
const AiGatewayLogResponse = S.Struct({
|
|
34
|
+
success: S.Literal(true),
|
|
35
|
+
result: S.Struct({
|
|
36
|
+
id: S.String,
|
|
37
|
+
provider: S.String,
|
|
38
|
+
model: S.String,
|
|
39
|
+
model_type: S.optional(S.String),
|
|
40
|
+
path: S.String,
|
|
41
|
+
duration: S.Number,
|
|
42
|
+
request_type: S.optional(S.String),
|
|
43
|
+
request_content_type: S.optional(S.String),
|
|
44
|
+
status_code: S.Number,
|
|
45
|
+
response_content_type: S.optional(S.String),
|
|
46
|
+
success: S.Boolean,
|
|
47
|
+
cached: S.Boolean,
|
|
48
|
+
tokens_in: S.optional(S.Number),
|
|
49
|
+
tokens_out: S.optional(S.Number),
|
|
50
|
+
metadata: S.optional(AiGatewayHttpMetadata),
|
|
51
|
+
step: S.optional(S.Number),
|
|
52
|
+
cost: S.optional(S.Number),
|
|
53
|
+
custom_cost: S.optional(S.Boolean),
|
|
54
|
+
request_size: S.Number,
|
|
55
|
+
request_head: S.optional(S.String),
|
|
56
|
+
request_head_complete: S.Boolean,
|
|
57
|
+
response_size: S.Number,
|
|
58
|
+
response_head: S.optional(S.String),
|
|
59
|
+
response_head_complete: S.Boolean,
|
|
60
|
+
created_at: S.DateFromString
|
|
61
|
+
})
|
|
62
|
+
});
|
|
63
|
+
const AiGatewayPatchLogResponse = S.Struct({
|
|
64
|
+
success: S.Literal(true),
|
|
65
|
+
result: S.Unknown
|
|
66
|
+
});
|
|
67
|
+
const decodeAiGatewayLogResponse = S.decodeUnknownPromise(AiGatewayLogResponse);
|
|
68
|
+
const decodeAiGatewayPatchLogResponse = S.decodeUnknownPromise(AiGatewayPatchLogResponse);
|
|
69
|
+
const aiGatewayError = (binding, operation, cause) => new AiGatewayOperationError({
|
|
70
|
+
binding,
|
|
71
|
+
operation,
|
|
72
|
+
cause
|
|
73
|
+
});
|
|
74
|
+
const tryAiGatewayPromise = (binding, operation, evaluate) => Effect.tryPromise({
|
|
75
|
+
try: evaluate,
|
|
76
|
+
catch: (cause) => aiGatewayError(binding, operation, cause)
|
|
77
|
+
});
|
|
78
|
+
const mergeAbortSignals = (userSignal, signal) => userSignal === null || userSignal === void 0 ? signal : AbortSignal.any([userSignal, signal]);
|
|
79
|
+
const tryAiGatewaySync = (binding, operation, evaluate) => Effect.try({
|
|
80
|
+
try: evaluate,
|
|
81
|
+
catch: (cause) => aiGatewayError(binding, operation, cause)
|
|
82
|
+
});
|
|
83
|
+
const providerUrl = (baseUrl, path = "") => {
|
|
84
|
+
const url = new URL(baseUrl.endsWith("/") ? baseUrl : `${baseUrl}/`);
|
|
85
|
+
const normalizedPath = path.replace(/^\/+/, "");
|
|
86
|
+
return normalizedPath === "" ? url : new URL(normalizedPath, url);
|
|
87
|
+
};
|
|
88
|
+
const gatewayUrl = (definition) => `https://gateway.ai.cloudflare.com/v1/${definition.accountId}/${definition.gatewayId}/`;
|
|
89
|
+
const ensureSuccessfulResponse = (response) => {
|
|
90
|
+
if (!response.ok) throw new Error(`AI Gateway HTTP request failed with status ${response.status}`);
|
|
91
|
+
};
|
|
92
|
+
const isAiGatewayBinding = (value) => isWorkersAiBinding(value);
|
|
93
|
+
const makeClient = (definition, gateway) => ({
|
|
94
|
+
definition,
|
|
95
|
+
run: Effect.fn("AiGateway.run")((data, options) => tryAiGatewayPromise(definition.binding, "run", () => gateway.run(Array.isArray(data) ? [...data] : data, options))),
|
|
96
|
+
getUrl: Effect.fn("AiGateway.getUrl")((provider) => tryAiGatewayPromise(definition.binding, "getUrl", () => gateway.getUrl(provider))),
|
|
97
|
+
fetch: Effect.fn("AiGateway.fetch")(function* (options) {
|
|
98
|
+
const baseUrl = yield* tryAiGatewayPromise(definition.binding, "getUrl", () => gateway.getUrl(options.provider));
|
|
99
|
+
return yield* tryAiGatewayPromise(definition.binding, "fetch", (signal) => fetch(providerUrl(baseUrl, options.path).href, {
|
|
100
|
+
...options.init,
|
|
101
|
+
signal: mergeAbortSignals(options.init?.signal, signal)
|
|
102
|
+
}));
|
|
103
|
+
}),
|
|
104
|
+
patchLog: Effect.fn("AiGateway.patchLog")((logId, data) => tryAiGatewayPromise(definition.binding, "patchLog", () => gateway.patchLog(logId, data))),
|
|
105
|
+
getLog: Effect.fn("AiGateway.getLog")((logId) => tryAiGatewayPromise(definition.binding, "getLog", () => gateway.getLog(logId))),
|
|
106
|
+
rawUnsafe: Effect.succeed(gateway)
|
|
107
|
+
});
|
|
108
|
+
const makeClientFromAi = (definition, ai) => {
|
|
109
|
+
const gateway = tryAiGatewaySync(definition.binding, "gateway", () => ai.gateway(definition.gatewayId));
|
|
110
|
+
const withGateway = (operation) => gateway.pipe(Effect.flatMap(operation));
|
|
111
|
+
return {
|
|
112
|
+
definition,
|
|
113
|
+
run: (data, options) => withGateway((raw) => makeClient(definition, raw).run(data, options)),
|
|
114
|
+
getUrl: (provider) => withGateway((raw) => makeClient(definition, raw).getUrl(provider)),
|
|
115
|
+
fetch: (options) => withGateway((raw) => makeClient(definition, raw).fetch(options)),
|
|
116
|
+
patchLog: (logId, data) => withGateway((raw) => makeClient(definition, raw).patchLog(logId, data)),
|
|
117
|
+
getLog: (logId) => withGateway((raw) => makeClient(definition, raw).getLog(logId)),
|
|
118
|
+
rawUnsafe: gateway
|
|
119
|
+
};
|
|
120
|
+
};
|
|
121
|
+
const makeHttpClient = (definition, request = fetch) => {
|
|
122
|
+
const binding = definition.binding ?? "AI_GATEWAY";
|
|
123
|
+
const clientDefinition = {
|
|
124
|
+
binding,
|
|
125
|
+
gatewayId: definition.gatewayId,
|
|
126
|
+
accountId: definition.accountId
|
|
127
|
+
};
|
|
128
|
+
const getUrl = (provider) => Effect.succeed(provider === void 0 ? gatewayUrl(definition) : providerUrl(gatewayUrl(definition), provider).href.replace(/\/$/, ""));
|
|
129
|
+
const extraHeaders = (options) => {
|
|
130
|
+
if (options?.extraHeaders === void 0 || Array.isArray(options.extraHeaders) || options.extraHeaders instanceof Headers) return options?.extraHeaders;
|
|
131
|
+
return Object.fromEntries(Object.entries(options.extraHeaders).map(([key, value]) => [key, String(value)]));
|
|
132
|
+
};
|
|
133
|
+
return {
|
|
134
|
+
definition: clientDefinition,
|
|
135
|
+
run: Effect.fn("AiGateway.run")((data, options) => tryAiGatewayPromise(binding, "run", (signal) => request(gatewayUrl(definition), {
|
|
136
|
+
method: "POST",
|
|
137
|
+
body: JSON.stringify(data),
|
|
138
|
+
headers: new Headers({
|
|
139
|
+
"content-type": "application/json",
|
|
140
|
+
...Object.fromEntries(new Headers(extraHeaders(options)).entries())
|
|
141
|
+
}),
|
|
142
|
+
signal: mergeAbortSignals(options?.signal, signal)
|
|
143
|
+
}))),
|
|
144
|
+
getUrl,
|
|
145
|
+
fetch: Effect.fn("AiGateway.fetch")((options) => getUrl(options.provider).pipe(Effect.flatMap((baseUrl) => tryAiGatewayPromise(binding, "fetch", (signal) => request(providerUrl(baseUrl, options.path).href, {
|
|
146
|
+
...options.init,
|
|
147
|
+
signal: mergeAbortSignals(options.init?.signal, signal)
|
|
148
|
+
}))))),
|
|
149
|
+
patchLog: Effect.fn("AiGateway.patchLog")((logId, data) => tryAiGatewayPromise(binding, "patchLog", async (signal) => {
|
|
150
|
+
const response = await request(providerUrl(gatewayUrl(definition), `logs/${logId}`).href, {
|
|
151
|
+
method: "PATCH",
|
|
152
|
+
body: JSON.stringify(data),
|
|
153
|
+
headers: { "content-type": "application/json" },
|
|
154
|
+
signal
|
|
155
|
+
});
|
|
156
|
+
ensureSuccessfulResponse(response);
|
|
157
|
+
await decodeAiGatewayPatchLogResponse(await response.json());
|
|
158
|
+
})),
|
|
159
|
+
getLog: Effect.fn("AiGateway.getLog")((logId) => tryAiGatewayPromise(binding, "getLog", async (signal) => {
|
|
160
|
+
const response = await request(providerUrl(gatewayUrl(definition), `logs/${logId}`).href, { signal });
|
|
161
|
+
ensureSuccessfulResponse(response);
|
|
162
|
+
return (await decodeAiGatewayLogResponse(await response.json())).result;
|
|
163
|
+
})),
|
|
164
|
+
rawUnsafe: Effect.fail(aiGatewayError(binding, "rawUnsafe", /* @__PURE__ */ new TypeError("HTTP AI Gateway clients have no raw binding")))
|
|
165
|
+
};
|
|
166
|
+
};
|
|
167
|
+
const layer = (tag, definition) => layer$1(tag, definition.binding, isAiGatewayBinding, (ai) => makeClientFromAi(definition, ai), { expected: expectedAiGatewayBinding });
|
|
168
|
+
const make = (id) => Tag()(id);
|
|
169
|
+
const Tag = () => (id) => {
|
|
170
|
+
const tag = Context.Service()(id);
|
|
171
|
+
const makeLayer = (definition) => layer(tag, definition);
|
|
172
|
+
return Object.assign(tag, {
|
|
173
|
+
id,
|
|
174
|
+
layer: makeLayer
|
|
175
|
+
});
|
|
176
|
+
};
|
|
177
|
+
//#endregion
|
|
178
|
+
export { AiGatewayOperationError, AiGateway_exports, Tag, isAiGatewayBinding, layer, make, makeClient, makeClientFromAi, makeHttpClient };
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import { WorkerEnvironment } from "./Environment.mjs";
|
|
2
|
+
import { BindingNotFoundError, BindingValidationError } from "./Binding.mjs";
|
|
3
|
+
import * as Context$1 from "effect/Context";
|
|
4
|
+
import * as Effect from "effect/Effect";
|
|
5
|
+
import * as S from "effect/Schema";
|
|
6
|
+
import * as Layer$1 from "effect/Layer";
|
|
7
|
+
import * as Config$1 from "effect/Config";
|
|
8
|
+
import * as Option from "effect/Option";
|
|
9
|
+
import * as HttpClient from "effect/unstable/http/HttpClient";
|
|
10
|
+
import { Redacted } from "effect";
|
|
11
|
+
import { Headers, HttpClientResponse } from "effect/unstable/http";
|
|
12
|
+
declare namespace AnalyticsEngine_d_exports {
|
|
13
|
+
export { AnalyticsEngineBinding, AnalyticsEngineClient, AnalyticsEngineDataPoint, AnalyticsEngineDataPointSchema, AnalyticsEngineDefinition, AnalyticsEngineFieldValue, AnalyticsEngineFieldValueSchema, AnalyticsEngineInvalidWritePolicy, AnalyticsEngineOperationError, AnalyticsEngineQueryClient, AnalyticsEngineQueryColumn, AnalyticsEngineQueryDefinition, AnalyticsEngineQueryError, AnalyticsEngineQueryOptions, AnalyticsEngineQueryResult, AnalyticsEngineQueryRow, AnalyticsEngineQueryService, AnalyticsEngineService, AnalyticsEngineWriteError, AnalyticsEngineWriteOptions, AnalyticsEngineWritePolicy, AnalyticsEngineWriteValidationError, AnalyticsEngineWriteViolation, LayerOptions, QueryConfigOptions, QueryTag, QueryTagClass, Tag, TagClass, isAnalyticsEngineDataset, layer, layerFetch, layerFetchConfig, make, makeClient, makeQuery, makeQueryClient, queryConfig, queryLayer, queryLayerConfig, writeLimits };
|
|
14
|
+
}
|
|
15
|
+
declare const writeLimits: {
|
|
16
|
+
readonly maxBlobs: 20;
|
|
17
|
+
readonly maxDoubles: 20;
|
|
18
|
+
readonly maxIndexes: 1;
|
|
19
|
+
readonly maxBlobBytes: number;
|
|
20
|
+
readonly maxIndexBytes: 96;
|
|
21
|
+
readonly maxDataPointsPerInvocation: 250;
|
|
22
|
+
};
|
|
23
|
+
declare const queryColumnSchema: S.Struct<{
|
|
24
|
+
readonly name: S.String;
|
|
25
|
+
readonly type: S.String;
|
|
26
|
+
}>;
|
|
27
|
+
declare const queryRowSchema: S.$Record<S.String, S.Unknown>;
|
|
28
|
+
declare const AnalyticsEngineFieldValueSchema: S.NullOr<S.Union<readonly [S.String, S.instanceOf<ArrayBuffer, unknown>]>>;
|
|
29
|
+
declare const AnalyticsEngineDataPointSchema: S.Struct<{
|
|
30
|
+
readonly indexes: S.optional<S.$Array<S.NullOr<S.Union<readonly [S.String, S.instanceOf<ArrayBuffer, unknown>]>>>>;
|
|
31
|
+
readonly doubles: S.optional<S.$Array<S.Finite>>;
|
|
32
|
+
readonly blobs: S.optional<S.$Array<S.NullOr<S.Union<readonly [S.String, S.instanceOf<ArrayBuffer, unknown>]>>>>;
|
|
33
|
+
}>;
|
|
34
|
+
declare const AnalyticsEngineOperationError_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 & {
|
|
35
|
+
readonly _tag: "AnalyticsEngineOperationError";
|
|
36
|
+
} & Readonly<A>;
|
|
37
|
+
declare class AnalyticsEngineOperationError extends AnalyticsEngineOperationError_base<{
|
|
38
|
+
readonly binding: string;
|
|
39
|
+
readonly operation: string;
|
|
40
|
+
readonly cause: unknown;
|
|
41
|
+
}> {
|
|
42
|
+
get message(): string;
|
|
43
|
+
}
|
|
44
|
+
interface AnalyticsEngineWriteViolation {
|
|
45
|
+
readonly path: string;
|
|
46
|
+
readonly message: string;
|
|
47
|
+
readonly limit?: number;
|
|
48
|
+
readonly actual?: number;
|
|
49
|
+
}
|
|
50
|
+
declare const AnalyticsEngineWriteValidationError_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 & {
|
|
51
|
+
readonly _tag: "AnalyticsEngineWriteValidationError";
|
|
52
|
+
} & Readonly<A>;
|
|
53
|
+
declare class AnalyticsEngineWriteValidationError extends AnalyticsEngineWriteValidationError_base<{
|
|
54
|
+
readonly binding: string;
|
|
55
|
+
readonly operation: string;
|
|
56
|
+
readonly violations: ReadonlyArray<AnalyticsEngineWriteViolation>;
|
|
57
|
+
readonly cause?: unknown;
|
|
58
|
+
}> {
|
|
59
|
+
get message(): string;
|
|
60
|
+
}
|
|
61
|
+
declare const AnalyticsEngineQueryError_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 & {
|
|
62
|
+
readonly _tag: "AnalyticsEngineQueryError";
|
|
63
|
+
} & Readonly<A>;
|
|
64
|
+
declare class AnalyticsEngineQueryError extends AnalyticsEngineQueryError_base<{
|
|
65
|
+
readonly operation: string;
|
|
66
|
+
readonly accountId: string;
|
|
67
|
+
readonly message: string;
|
|
68
|
+
readonly status?: number;
|
|
69
|
+
readonly body?: string;
|
|
70
|
+
readonly cause?: unknown;
|
|
71
|
+
}> {}
|
|
72
|
+
interface AnalyticsEngineDefinition {
|
|
73
|
+
readonly binding: string;
|
|
74
|
+
}
|
|
75
|
+
type AnalyticsEngineBinding = CloudflareAnalyticsEngineDataset;
|
|
76
|
+
type AnalyticsEngineDataPoint = CloudflareAnalyticsEngineDataPoint;
|
|
77
|
+
type AnalyticsEngineFieldValue = ArrayBuffer | string | null;
|
|
78
|
+
type AnalyticsEngineWriteError = AnalyticsEngineOperationError | AnalyticsEngineWriteValidationError;
|
|
79
|
+
type AnalyticsEngineInvalidWritePolicy = "error" | "drop";
|
|
80
|
+
type AnalyticsEngineQueryColumn = S.Schema.Type<typeof queryColumnSchema>;
|
|
81
|
+
type AnalyticsEngineQueryRow = S.Schema.Type<typeof queryRowSchema>;
|
|
82
|
+
interface AnalyticsEngineWriteOptions {
|
|
83
|
+
/**
|
|
84
|
+
* Controls invalid write behavior. The default is `"error"`, which fails with
|
|
85
|
+
* `AnalyticsEngineWriteValidationError`. `"drop"` skips invalid points.
|
|
86
|
+
*/
|
|
87
|
+
readonly onInvalid?: AnalyticsEngineInvalidWritePolicy;
|
|
88
|
+
}
|
|
89
|
+
type AnalyticsEngineWritePolicy = AnalyticsEngineWriteOptions;
|
|
90
|
+
interface AnalyticsEngineQueryResult<Row = AnalyticsEngineQueryRow> {
|
|
91
|
+
readonly meta: ReadonlyArray<AnalyticsEngineQueryColumn>;
|
|
92
|
+
readonly data: ReadonlyArray<Row>;
|
|
93
|
+
readonly rows: number;
|
|
94
|
+
}
|
|
95
|
+
interface AnalyticsEngineQueryDefinition {
|
|
96
|
+
readonly accountId: string;
|
|
97
|
+
/** API token with Account Analytics Read permission. */
|
|
98
|
+
readonly apiToken: Redacted.Redacted<string>;
|
|
99
|
+
readonly apiBaseUrl?: string | URL;
|
|
100
|
+
}
|
|
101
|
+
interface AnalyticsEngineQueryOptions {
|
|
102
|
+
/** Additional request headers. Authorization is always derived from `apiToken`. */
|
|
103
|
+
readonly headers?: Headers.Input;
|
|
104
|
+
}
|
|
105
|
+
interface AnalyticsEngineClient {
|
|
106
|
+
readonly writeDataPoint: (dataPoint?: AnalyticsEngineDataPoint, options?: AnalyticsEngineWriteOptions) => Effect.Effect<void, AnalyticsEngineWriteError>;
|
|
107
|
+
readonly writeDataPoints: (dataPoints: ReadonlyArray<AnalyticsEngineDataPoint>, options?: AnalyticsEngineWriteOptions) => Effect.Effect<void, AnalyticsEngineWriteError>;
|
|
108
|
+
readonly rawUnsafe: Effect.Effect<AnalyticsEngineBinding>;
|
|
109
|
+
readonly definition: AnalyticsEngineDefinition;
|
|
110
|
+
}
|
|
111
|
+
interface AnalyticsEngineQueryClient {
|
|
112
|
+
readonly query: (sql: string, options?: AnalyticsEngineQueryOptions) => Effect.Effect<AnalyticsEngineQueryResult, AnalyticsEngineQueryError | S.SchemaError>;
|
|
113
|
+
readonly queryResult: <Row>(row: S.Codec<Row, unknown>, sql: string, options?: AnalyticsEngineQueryOptions) => Effect.Effect<AnalyticsEngineQueryResult<Row>, AnalyticsEngineQueryError | S.SchemaError>;
|
|
114
|
+
readonly queryRows: <Row>(row: S.Codec<Row, unknown>, sql: string, options?: AnalyticsEngineQueryOptions) => Effect.Effect<ReadonlyArray<Row>, AnalyticsEngineQueryError | S.SchemaError>;
|
|
115
|
+
readonly queryOne: <Row>(row: S.Codec<Row, unknown>, sql: string, options?: AnalyticsEngineQueryOptions) => Effect.Effect<Option.Option<Row>, AnalyticsEngineQueryError | S.SchemaError>;
|
|
116
|
+
readonly queryText: (sql: string, options?: AnalyticsEngineQueryOptions) => Effect.Effect<string, AnalyticsEngineQueryError>;
|
|
117
|
+
readonly raw: (sql: string, options?: AnalyticsEngineQueryOptions) => Effect.Effect<HttpClientResponse.HttpClientResponse, AnalyticsEngineQueryError>;
|
|
118
|
+
readonly definition: AnalyticsEngineQueryDefinition;
|
|
119
|
+
}
|
|
120
|
+
declare const AnalyticsEngineServiceTypeId: unique symbol;
|
|
121
|
+
declare const AnalyticsEngineQueryServiceTypeId: unique symbol;
|
|
122
|
+
interface AnalyticsEngineService<Id extends string> {
|
|
123
|
+
readonly [AnalyticsEngineServiceTypeId]: {
|
|
124
|
+
readonly id: Id;
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
interface AnalyticsEngineQueryService<Id extends string> {
|
|
128
|
+
readonly [AnalyticsEngineQueryServiceTypeId]: {
|
|
129
|
+
readonly id: Id;
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
type LayerOptions = {
|
|
133
|
+
readonly binding: string;
|
|
134
|
+
readonly write?: AnalyticsEngineWritePolicy;
|
|
135
|
+
};
|
|
136
|
+
type QueryConfigOptions = {
|
|
137
|
+
readonly accountId?: Config$1.Config<string>;
|
|
138
|
+
readonly apiToken?: Config$1.Config<Redacted.Redacted<string>>;
|
|
139
|
+
readonly apiBaseUrl?: Config$1.Config<string>;
|
|
140
|
+
};
|
|
141
|
+
interface TagClass<Self, Id extends string> extends Context$1.ServiceClass<Self, Id, AnalyticsEngineClient> {
|
|
142
|
+
readonly id: Id;
|
|
143
|
+
readonly layer: (options: LayerOptions) => Layer$1.Layer<Self, BindingNotFoundError | BindingValidationError, WorkerEnvironment>;
|
|
144
|
+
}
|
|
145
|
+
interface QueryTagClass<Self, Id extends string> extends Context$1.ServiceClass<Self, Id, AnalyticsEngineQueryClient> {
|
|
146
|
+
readonly id: Id;
|
|
147
|
+
readonly layer: (definition: AnalyticsEngineQueryDefinition) => Layer$1.Layer<Self, never, HttpClient.HttpClient>;
|
|
148
|
+
readonly layerFetch: (definition: AnalyticsEngineQueryDefinition) => Layer$1.Layer<Self>;
|
|
149
|
+
readonly layerConfig: (config?: Config$1.Config<AnalyticsEngineQueryDefinition>) => Layer$1.Layer<Self, Config$1.ConfigError, HttpClient.HttpClient>;
|
|
150
|
+
readonly layerFetchConfig: (config?: Config$1.Config<AnalyticsEngineQueryDefinition>) => Layer$1.Layer<Self, Config$1.ConfigError>;
|
|
151
|
+
}
|
|
152
|
+
declare const makeQueryClient: (definition: AnalyticsEngineQueryDefinition) => Effect.Effect<AnalyticsEngineQueryClient, never, HttpClient.HttpClient>;
|
|
153
|
+
declare const isAnalyticsEngineDataset: <Candidate>(value: Candidate) => value is Candidate & AnalyticsEngineBinding;
|
|
154
|
+
declare const makeClient: (definition: AnalyticsEngineDefinition, defaults?: AnalyticsEngineWritePolicy) => (dataset: AnalyticsEngineBinding) => AnalyticsEngineClient;
|
|
155
|
+
declare const queryConfig: (options?: QueryConfigOptions) => Config$1.Config<{
|
|
156
|
+
accountId: string;
|
|
157
|
+
apiToken: Redacted.Redacted<string>;
|
|
158
|
+
apiBaseUrl: string;
|
|
159
|
+
}>;
|
|
160
|
+
declare const queryLayer: <Self>(tag: Context$1.Service<Self, AnalyticsEngineQueryClient>, definition: AnalyticsEngineQueryDefinition) => Layer$1.Layer<Self, never, HttpClient.HttpClient>;
|
|
161
|
+
declare const layerFetch: <Self>(tag: Context$1.Service<Self, AnalyticsEngineQueryClient>, definition: AnalyticsEngineQueryDefinition) => Layer$1.Layer<Self, never, never>;
|
|
162
|
+
declare const queryLayerConfig: <Self>(tag: Context$1.Service<Self, AnalyticsEngineQueryClient>, config?: Config$1.Config<AnalyticsEngineQueryDefinition>) => Layer$1.Layer<Self, Config$1.ConfigError, HttpClient.HttpClient>;
|
|
163
|
+
declare const layerFetchConfig: <Self>(tag: Context$1.Service<Self, AnalyticsEngineQueryClient>, config?: Config$1.Config<AnalyticsEngineQueryDefinition>) => Layer$1.Layer<Self, Config$1.ConfigError, never>;
|
|
164
|
+
declare const layer: <Self>(tag: Context$1.Service<Self, AnalyticsEngineClient>, definition: LayerOptions) => Layer$1.Layer<Self, BindingNotFoundError | BindingValidationError, WorkerEnvironment>;
|
|
165
|
+
declare const make: <Id extends string>(id: Id) => TagClass<AnalyticsEngineService<Id>, Id>;
|
|
166
|
+
declare const makeQuery: <Id extends string>(id: Id) => QueryTagClass<AnalyticsEngineQueryService<Id>, Id>;
|
|
167
|
+
declare const Tag: <Self>() => <Id extends string>(id: Id) => TagClass<Self, Id>;
|
|
168
|
+
declare const QueryTag: <Self>() => <Id extends string>(id: Id) => QueryTagClass<Self, Id>;
|
|
169
|
+
//#endregion
|
|
170
|
+
export { AnalyticsEngineBinding, AnalyticsEngineClient, AnalyticsEngineDataPoint, AnalyticsEngineDataPointSchema, AnalyticsEngineDefinition, AnalyticsEngineFieldValue, AnalyticsEngineFieldValueSchema, AnalyticsEngineInvalidWritePolicy, AnalyticsEngineOperationError, AnalyticsEngineQueryClient, AnalyticsEngineQueryColumn, AnalyticsEngineQueryDefinition, AnalyticsEngineQueryError, AnalyticsEngineQueryOptions, AnalyticsEngineQueryResult, AnalyticsEngineQueryRow, AnalyticsEngineQueryService, AnalyticsEngineService, AnalyticsEngineWriteError, AnalyticsEngineWriteOptions, AnalyticsEngineWritePolicy, AnalyticsEngineWriteValidationError, AnalyticsEngineWriteViolation, AnalyticsEngine_d_exports, LayerOptions, QueryConfigOptions, QueryTag, QueryTagClass, Tag, TagClass, isAnalyticsEngineDataset, layer, layerFetch, layerFetchConfig, make, makeClient, makeQuery, makeQueryClient, queryConfig, queryLayer, queryLayerConfig, writeLimits };
|