durable-actors 0.3.1 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -15
- package/dist/backend.d.ts +3 -10
- package/dist/backend.d.ts.map +1 -1
- package/dist/backend.js +7 -34
- package/dist/backend.js.map +1 -1
- package/dist/cli/actor-source-watcher.d.ts.map +1 -1
- package/dist/cli/actor-source-watcher.js +6 -2
- package/dist/cli/actor-source-watcher.js.map +1 -1
- package/dist/cli/connection.d.ts +1 -1
- package/dist/cli/control-plane.d.ts.map +1 -1
- package/dist/cli/control-plane.js +8 -4
- package/dist/cli/control-plane.js.map +1 -1
- package/dist/cli/dev.d.ts.map +1 -1
- package/dist/cli/dev.js +35 -3
- package/dist/cli/dev.js.map +1 -1
- package/dist/cli/generate.d.ts.map +1 -1
- package/dist/cli/generate.js +16 -9
- package/dist/cli/generate.js.map +1 -1
- package/dist/cli.js +18 -3
- package/dist/cli.js.map +1 -1
- package/dist/client/clientSettings.d.ts +1 -8
- package/dist/client/clientSettings.d.ts.map +1 -1
- package/dist/client/clientSettings.js +1 -51
- package/dist/client/clientSettings.js.map +1 -1
- package/dist/client/remoteClient.d.ts +4 -35
- package/dist/client/remoteClient.d.ts.map +1 -1
- package/dist/client/remoteClient.js +13 -201
- package/dist/client/remoteClient.js.map +1 -1
- package/dist/client/telemetry.d.ts +4 -12
- package/dist/client/telemetry.d.ts.map +1 -1
- package/dist/client/telemetry.js +3 -19
- package/dist/client/telemetry.js.map +1 -1
- package/dist/client-runtime/client.d.ts +40 -0
- package/dist/client-runtime/client.d.ts.map +1 -0
- package/dist/client-runtime/client.js +183 -0
- package/dist/client-runtime/client.js.map +1 -0
- package/dist/client-runtime/errors.d.ts +30 -0
- package/dist/client-runtime/errors.d.ts.map +1 -0
- package/dist/client-runtime/errors.js +55 -0
- package/dist/client-runtime/errors.js.map +1 -0
- package/dist/client-runtime/http.d.ts +43 -0
- package/dist/client-runtime/http.d.ts.map +1 -0
- package/dist/client-runtime/http.js +63 -0
- package/dist/client-runtime/http.js.map +1 -0
- package/dist/client-runtime/index.browser.d.ts +8 -0
- package/dist/client-runtime/index.browser.d.ts.map +1 -0
- package/dist/client-runtime/index.browser.js +14 -0
- package/dist/client-runtime/index.browser.js.map +1 -0
- package/dist/client-runtime/index.d.ts +6 -0
- package/dist/client-runtime/index.d.ts.map +1 -0
- package/dist/client-runtime/index.js +4 -0
- package/dist/client-runtime/index.js.map +1 -0
- package/dist/client-runtime/json.d.ts +9 -0
- package/dist/client-runtime/json.d.ts.map +1 -0
- package/dist/client-runtime/json.js +16 -0
- package/dist/client-runtime/json.js.map +1 -0
- package/dist/client-runtime/proxy.d.ts +49 -0
- package/dist/client-runtime/proxy.d.ts.map +1 -0
- package/dist/client-runtime/proxy.js +106 -0
- package/dist/client-runtime/proxy.js.map +1 -0
- package/dist/client-runtime/settings.d.ts +20 -0
- package/dist/client-runtime/settings.d.ts.map +1 -0
- package/dist/client-runtime/settings.js +60 -0
- package/dist/client-runtime/settings.js.map +1 -0
- package/dist/client-runtime/stub.d.ts +15 -0
- package/dist/client-runtime/stub.d.ts.map +1 -0
- package/dist/client-runtime/stub.js +44 -0
- package/dist/client-runtime/stub.js.map +1 -0
- package/dist/client-runtime/telemetry.d.ts +13 -0
- package/dist/client-runtime/telemetry.d.ts.map +1 -0
- package/dist/client-runtime/telemetry.js +18 -0
- package/dist/client-runtime/telemetry.js.map +1 -0
- package/dist/compiler/actor-build.js +1 -1
- package/dist/compiler/deployment-build.js +15 -0
- package/dist/compiler/deployment-build.js.map +1 -1
- package/dist/compiler/generators/backend-generator.js +4 -4
- package/dist/compiler/generators/backend-generator.js.map +1 -1
- package/dist/compiler/generators/client-generator.d.ts.map +1 -1
- package/dist/compiler/generators/client-generator.js +6 -19
- package/dist/compiler/generators/client-generator.js.map +1 -1
- package/dist/compiler/generators/typescript-generator.d.ts +1 -1
- package/dist/compiler/generators/typescript-generator.d.ts.map +1 -1
- package/dist/compiler/generators/typescript-generator.js +11 -8
- package/dist/compiler/generators/typescript-generator.js.map +1 -1
- package/dist/compiler/json-schema.d.ts.map +1 -1
- package/dist/compiler/json-schema.js +2 -1
- package/dist/compiler/json-schema.js.map +1 -1
- package/dist/errors.d.ts +1 -29
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +1 -54
- package/dist/errors.js.map +1 -1
- package/dist/generated/client-runtime.d.ts +2 -0
- package/dist/generated/client-runtime.d.ts.map +1 -0
- package/dist/generated/client-runtime.js +2 -0
- package/dist/generated/client-runtime.js.map +1 -0
- package/dist/host/actor-host.d.ts.map +1 -1
- package/dist/host/actor-host.js +4 -18
- package/dist/host/actor-host.js.map +1 -1
- package/dist/host/actor-worker.js +7 -1
- package/dist/host/actor-worker.js.map +1 -1
- package/dist/host/generic-host.d.ts.map +1 -1
- package/dist/host/generic-host.js +4 -5
- package/dist/host/generic-host.js.map +1 -1
- package/dist/host/protocol.d.ts +2 -2
- package/dist/host/protocol.js +1 -1
- package/dist/host/types.d.ts +1 -5
- package/dist/host/types.d.ts.map +1 -1
- package/dist/host/validate-artifact.d.ts +2 -0
- package/dist/host/validate-artifact.d.ts.map +1 -0
- package/dist/host/validate-artifact.js +10 -0
- package/dist/host/validate-artifact.js.map +1 -0
- package/dist/host/worker-supervisor.d.ts +2 -25
- package/dist/host/worker-supervisor.d.ts.map +1 -1
- package/dist/host/worker-supervisor.js +2 -53
- package/dist/host/worker-supervisor.js.map +1 -1
- package/dist/json.d.ts +1 -1
- package/dist/json.d.ts.map +1 -1
- package/dist/json.js +1 -13
- package/dist/json.js.map +1 -1
- package/dist/localRuntime.d.ts.map +1 -1
- package/dist/localRuntime.js +5 -0
- package/dist/localRuntime.js.map +1 -1
- package/dist/projectSdk.d.ts +2 -0
- package/dist/projectSdk.d.ts.map +1 -0
- package/dist/projectSdk.js +19 -0
- package/dist/projectSdk.js.map +1 -0
- package/dist/proxy.d.ts +1 -51
- package/dist/proxy.d.ts.map +1 -1
- package/dist/proxy.js +1 -71
- package/dist/proxy.js.map +1 -1
- package/dist/templates/actor/README.md +6 -6
- package/dist/templates/actor/package.json +2 -2
- package/dist/templates/actor/pnpm-workspace.yaml +2 -0
- package/dist/templates/ai-chat/README.md +5 -10
- package/dist/templates/ai-chat/package.json +1 -1
- package/dist/templates/ai-chat/pnpm-workspace.yaml +2 -0
- package/dist/templates/ai-chat/src/actors.ts +3 -8
- package/dist/templates/ai-chat/src/backend.ts +2 -12
- package/dist/templates/chat/README.md +1 -1
- package/dist/templates/chat/package.json +2 -2
- package/dist/templates/chat/pnpm-workspace.yaml +2 -0
- package/dist/templates/documents/README.md +1 -1
- package/dist/templates/documents/package.json +2 -2
- package/dist/templates/documents/pnpm-workspace.yaml +2 -0
- package/package.json +24 -21
- package/dist/client/actorHostGrpc.d.ts +0 -50
- package/dist/client/actorHostGrpc.d.ts.map +0 -1
- package/dist/client/actorHostGrpc.js +0 -111
- package/dist/client/actorHostGrpc.js.map +0 -1
- package/dist/generated/durable_actors/v1/ActivateActorReply.d.ts +0 -8
- package/dist/generated/durable_actors/v1/ActivateActorReply.d.ts.map +0 -1
- package/dist/generated/durable_actors/v1/ActivateActorReply.js +0 -3
- package/dist/generated/durable_actors/v1/ActivateActorReply.js.map +0 -1
- package/dist/generated/durable_actors/v1/ActivateActorRequest.d.ts +0 -8
- package/dist/generated/durable_actors/v1/ActivateActorRequest.d.ts.map +0 -1
- package/dist/generated/durable_actors/v1/ActivateActorRequest.js +0 -3
- package/dist/generated/durable_actors/v1/ActivateActorRequest.js.map +0 -1
- package/dist/generated/durable_actors/v1/ActorCompleted.d.ts +0 -9
- package/dist/generated/durable_actors/v1/ActorCompleted.d.ts.map +0 -1
- package/dist/generated/durable_actors/v1/ActorCompleted.js +0 -3
- package/dist/generated/durable_actors/v1/ActorCompleted.js.map +0 -1
- package/dist/generated/durable_actors/v1/ActorControlPlaneService.d.ts +0 -21
- package/dist/generated/durable_actors/v1/ActorControlPlaneService.d.ts.map +0 -1
- package/dist/generated/durable_actors/v1/ActorControlPlaneService.js +0 -3
- package/dist/generated/durable_actors/v1/ActorControlPlaneService.js.map +0 -1
- package/dist/generated/durable_actors/v1/ActorFailed.d.ts +0 -9
- package/dist/generated/durable_actors/v1/ActorFailed.d.ts.map +0 -1
- package/dist/generated/durable_actors/v1/ActorFailed.js +0 -3
- package/dist/generated/durable_actors/v1/ActorFailed.js.map +0 -1
- package/dist/generated/durable_actors/v1/ActorHostService.d.ts +0 -56
- package/dist/generated/durable_actors/v1/ActorHostService.d.ts.map +0 -1
- package/dist/generated/durable_actors/v1/ActorHostService.js +0 -3
- package/dist/generated/durable_actors/v1/ActorHostService.js.map +0 -1
- package/dist/generated/durable_actors/v1/ActorKey.d.ts +0 -11
- package/dist/generated/durable_actors/v1/ActorKey.d.ts.map +0 -1
- package/dist/generated/durable_actors/v1/ActorKey.js +0 -3
- package/dist/generated/durable_actors/v1/ActorKey.js.map +0 -1
- package/dist/generated/durable_actors/v1/ControlPlaneReply.d.ts +0 -7
- package/dist/generated/durable_actors/v1/ControlPlaneReply.d.ts.map +0 -1
- package/dist/generated/durable_actors/v1/ControlPlaneReply.js +0 -3
- package/dist/generated/durable_actors/v1/ControlPlaneReply.js.map +0 -1
- package/dist/generated/durable_actors/v1/ControlPlaneRequest.d.ts +0 -7
- package/dist/generated/durable_actors/v1/ControlPlaneRequest.d.ts.map +0 -1
- package/dist/generated/durable_actors/v1/ControlPlaneRequest.js +0 -3
- package/dist/generated/durable_actors/v1/ControlPlaneRequest.js.map +0 -1
- package/dist/generated/durable_actors/v1/Empty.d.ts +0 -5
- package/dist/generated/durable_actors/v1/Empty.d.ts.map +0 -1
- package/dist/generated/durable_actors/v1/Empty.js +0 -3
- package/dist/generated/durable_actors/v1/Empty.js.map +0 -1
- package/dist/generated/durable_actors/v1/HostInvokeActorRequest.d.ts +0 -11
- package/dist/generated/durable_actors/v1/HostInvokeActorRequest.d.ts.map +0 -1
- package/dist/generated/durable_actors/v1/HostInvokeActorRequest.js +0 -3
- package/dist/generated/durable_actors/v1/HostInvokeActorRequest.js.map +0 -1
- package/dist/generated/durable_actors/v1/HostSocketEventRequest.d.ts +0 -17
- package/dist/generated/durable_actors/v1/HostSocketEventRequest.d.ts.map +0 -1
- package/dist/generated/durable_actors/v1/HostSocketEventRequest.js +0 -3
- package/dist/generated/durable_actors/v1/HostSocketEventRequest.js.map +0 -1
- package/dist/generated/durable_actors/v1/InvokeActorReply.d.ts +0 -16
- package/dist/generated/durable_actors/v1/InvokeActorReply.d.ts.map +0 -1
- package/dist/generated/durable_actors/v1/InvokeActorReply.js +0 -3
- package/dist/generated/durable_actors/v1/InvokeActorReply.js.map +0 -1
- package/dist/generated/durable_actors/v1/InvokeActorRequest.d.ts +0 -14
- package/dist/generated/durable_actors/v1/InvokeActorRequest.d.ts.map +0 -1
- package/dist/generated/durable_actors/v1/InvokeActorRequest.js +0 -3
- package/dist/generated/durable_actors/v1/InvokeActorRequest.js.map +0 -1
- package/dist/generated/durable_actors/v1/PublishSocketEffectsRequest.d.ts +0 -13
- package/dist/generated/durable_actors/v1/PublishSocketEffectsRequest.d.ts.map +0 -1
- package/dist/generated/durable_actors/v1/PublishSocketEffectsRequest.js +0 -3
- package/dist/generated/durable_actors/v1/PublishSocketEffectsRequest.js.map +0 -1
- package/dist/generated/durable_actors/v1/ReplicaService.d.ts +0 -42
- package/dist/generated/durable_actors/v1/ReplicaService.d.ts.map +0 -1
- package/dist/generated/durable_actors/v1/ReplicaService.js +0 -3
- package/dist/generated/durable_actors/v1/ReplicaService.js.map +0 -1
- package/dist/generated/durable_actors/v1/ReplicaSessionHead.d.ts +0 -14
- package/dist/generated/durable_actors/v1/ReplicaSessionHead.d.ts.map +0 -1
- package/dist/generated/durable_actors/v1/ReplicaSessionHead.js +0 -3
- package/dist/generated/durable_actors/v1/ReplicaSessionHead.js.map +0 -1
- package/dist/generated/durable_actors/v1/ReplicaSnapshotRef.d.ts +0 -14
- package/dist/generated/durable_actors/v1/ReplicaSnapshotRef.d.ts.map +0 -1
- package/dist/generated/durable_actors/v1/ReplicaSnapshotRef.js +0 -3
- package/dist/generated/durable_actors/v1/ReplicaSnapshotRef.js.map +0 -1
- package/dist/generated/durable_actors/v1/ReplicaStreamHead.d.ts +0 -11
- package/dist/generated/durable_actors/v1/ReplicaStreamHead.d.ts.map +0 -1
- package/dist/generated/durable_actors/v1/ReplicaStreamHead.js +0 -3
- package/dist/generated/durable_actors/v1/ReplicaStreamHead.js.map +0 -1
- package/dist/generated/durable_actors/v1/ReplicaStreamIdentity.d.ts +0 -14
- package/dist/generated/durable_actors/v1/ReplicaStreamIdentity.d.ts.map +0 -1
- package/dist/generated/durable_actors/v1/ReplicaStreamIdentity.js +0 -3
- package/dist/generated/durable_actors/v1/ReplicaStreamIdentity.js.map +0 -1
- package/dist/generated/durable_actors/v1/Reroute.d.ts +0 -5
- package/dist/generated/durable_actors/v1/Reroute.d.ts.map +0 -1
- package/dist/generated/durable_actors/v1/Reroute.js +0 -3
- package/dist/generated/durable_actors/v1/Reroute.js.map +0 -1
- package/dist/generated/durable_actors/v1/SnapshotData.d.ts +0 -7
- package/dist/generated/durable_actors/v1/SnapshotData.d.ts.map +0 -1
- package/dist/generated/durable_actors/v1/SnapshotData.js +0 -3
- package/dist/generated/durable_actors/v1/SnapshotData.js.map +0 -1
- package/dist/generated/durable_actors/v1/SnapshotService.d.ts +0 -32
- package/dist/generated/durable_actors/v1/SnapshotService.d.ts.map +0 -1
- package/dist/generated/durable_actors/v1/SnapshotService.js +0 -3
- package/dist/generated/durable_actors/v1/SnapshotService.js.map +0 -1
- package/dist/generated/durable_actors/v1/SnapshotWriteReply.d.ts +0 -7
- package/dist/generated/durable_actors/v1/SnapshotWriteReply.d.ts.map +0 -1
- package/dist/generated/durable_actors/v1/SnapshotWriteReply.js +0 -3
- package/dist/generated/durable_actors/v1/SnapshotWriteReply.js.map +0 -1
- package/dist/generated/durable_actors.d.ts +0 -69
- package/dist/generated/durable_actors.d.ts.map +0 -1
- package/dist/generated/durable_actors.js +0 -2
- package/dist/generated/durable_actors.js.map +0 -1
- package/dist/generated/durable_actors.proto +0 -117
- package/dist/generated.browser.d.ts +0 -6
- package/dist/generated.browser.d.ts.map +0 -1
- package/dist/generated.browser.js +0 -10
- package/dist/generated.browser.js.map +0 -1
- package/dist/generated.d.ts +0 -3
- package/dist/generated.d.ts.map +0 -1
- package/dist/generated.js +0 -3
- package/dist/generated.js.map +0 -1
- package/dist/templates/actor/LICENSE.md +0 -9
- package/dist/templates/ai-chat/LICENSE.md +0 -9
- package/dist/templates/chat/LICENSE.md +0 -9
- package/dist/templates/documents/LICENSE.md +0 -9
|
@@ -1,46 +1,15 @@
|
|
|
1
1
|
import type { ActorConnection, ActorSocketMessage } from "../actor/socket.js";
|
|
2
2
|
import type { ActorSchemas } from "../actor/socketValidation.js";
|
|
3
|
-
import
|
|
4
|
-
import type {
|
|
5
|
-
declare class RemoteActorClient {
|
|
6
|
-
private settingsValue;
|
|
7
|
-
private readonly environment;
|
|
8
|
-
private readonly fetchRequest;
|
|
9
|
-
private readonly requestId;
|
|
10
|
-
private readonly actorHost;
|
|
11
|
-
private readonly now;
|
|
12
|
-
private readonly monotonicNow;
|
|
13
|
-
private readonly telemetry;
|
|
14
|
-
private readonly targets;
|
|
3
|
+
import { HttpActorClient } from "../client-runtime/client.js";
|
|
4
|
+
import type { DurableActorsClientOptions, HttpActorClientDependencies } from "../client-runtime/client.js";
|
|
5
|
+
declare class RemoteActorClient extends HttpActorClient {
|
|
15
6
|
private readonly connectWebSocket;
|
|
16
7
|
constructor(options?: DurableActorsClientOptions, dependencies?: RemoteActorClientDependencies);
|
|
17
|
-
invoke(actorName: string, actorId: string, method: string, args: readonly unknown[]): Promise<unknown>;
|
|
18
8
|
connect(actorName: string, actorId: string, metadata: unknown, schemas?: ActorSchemas): Promise<ActorConnection>;
|
|
19
9
|
broadcast(actorName: string, actorId: string, message: ActorSocketMessage): Promise<void>;
|
|
20
|
-
private direct;
|
|
21
|
-
private applySocketEffects;
|
|
22
10
|
private deliverSocketEffects;
|
|
23
|
-
private target;
|
|
24
|
-
private resolveTarget;
|
|
25
|
-
private throwResponseFailure;
|
|
26
|
-
private invocation;
|
|
27
|
-
private get settings();
|
|
28
|
-
private jsonArguments;
|
|
29
11
|
}
|
|
30
|
-
interface
|
|
31
|
-
readonly projectId?: string;
|
|
32
|
-
readonly apiKey?: string;
|
|
33
|
-
readonly homeRegion?: string;
|
|
34
|
-
readonly controlPlaneUrl: string;
|
|
35
|
-
}
|
|
36
|
-
interface RemoteActorClientDependencies {
|
|
37
|
-
readonly environment?: NodeJS.ProcessEnv;
|
|
38
|
-
readonly fetch?: typeof globalThis.fetch;
|
|
39
|
-
readonly requestId?: () => string;
|
|
40
|
-
readonly actorHost?: ActorHostTransport;
|
|
41
|
-
readonly now?: () => number;
|
|
42
|
-
readonly monotonicNow?: () => number;
|
|
43
|
-
readonly telemetry?: TelemetrySink;
|
|
12
|
+
interface RemoteActorClientDependencies extends HttpActorClientDependencies {
|
|
44
13
|
readonly connectWebSocket?: WebSocketConnector;
|
|
45
14
|
}
|
|
46
15
|
type WebSocketConnector = (url: string, schemas: ActorSchemas) => Promise<ActorConnection>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remoteClient.d.ts","sourceRoot":"","sources":["../../src/client/remoteClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"remoteClient.d.ts","sourceRoot":"","sources":["../../src/client/remoteClient.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAG7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,KAAK,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAA;AAQ1G,cAAM,iBAAkB,SAAQ,eAAe;IAC3C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAoB;gBACzC,OAAO,CAAC,EAAE,0BAA0B,EAAE,YAAY,GAAE,6BAAkC;IAW5F,OAAO,CACT,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,OAAO,EACjB,OAAO,GAAE,YAAiB,GAC3B,OAAO,CAAC,eAAe,CAAC;IAoCrB,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;YAuBjF,oBAAoB;CAkBrC;AAuBD,UAAU,6BAA8B,SAAQ,2BAA2B;IACvE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,kBAAkB,CAAA;CACjD;AACD,KAAK,kBAAkB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,eAAe,CAAC,CAAA;AAE1F,OAAO,EAAE,iBAAiB,EAAE,CAAA;AAC5B,YAAY,EAAE,0BAA0B,EAAE,6BAA6B,EAAE,CAAA"}
|
|
@@ -1,68 +1,26 @@
|
|
|
1
|
-
import { performance } from "node:perf_hooks";
|
|
2
1
|
import WebSocket from "ws";
|
|
3
2
|
import { z } from "zod";
|
|
4
3
|
import { projectActorPath, validateActorComponent } from "../actor/identity.js";
|
|
5
4
|
import { currentActorInvocation } from "../actor/invocationContext.js";
|
|
6
5
|
import { socketMessage } from "../actor/socket.js";
|
|
7
6
|
import { socketMetadata } from "../actor/socketValidation.js";
|
|
8
|
-
import {
|
|
9
|
-
import { ActorInvocationError
|
|
10
|
-
import {
|
|
11
|
-
import { GrpcActorHostTransport } from "./actorHostGrpc.js";
|
|
12
|
-
import { authorizationHeaders, configuredSettings } from "./clientSettings.js";
|
|
7
|
+
import { HttpActorClient } from "../client-runtime/client.js";
|
|
8
|
+
import { ActorInvocationError } from "../errors.js";
|
|
9
|
+
import { authorizationHeaders } from "./clientSettings.js";
|
|
13
10
|
import { SocketConnection } from "./socketConnection.js";
|
|
14
11
|
import { LatencyTimeline, stderrTelemetry } from "./telemetry.js";
|
|
15
|
-
|
|
16
|
-
class RemoteActorClient {
|
|
17
|
-
settingsValue;
|
|
18
|
-
environment;
|
|
19
|
-
fetchRequest;
|
|
20
|
-
requestId;
|
|
21
|
-
actorHost;
|
|
22
|
-
now;
|
|
23
|
-
monotonicNow;
|
|
24
|
-
telemetry;
|
|
25
|
-
targets = new Map();
|
|
12
|
+
class RemoteActorClient extends HttpActorClient {
|
|
26
13
|
connectWebSocket;
|
|
27
14
|
constructor(options, dependencies = {}) {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
this.monotonicNow = dependencies.monotonicNow ?? (() => performance.now());
|
|
35
|
-
this.telemetry = dependencies.telemetry ?? stderrTelemetry;
|
|
36
|
-
this.connectWebSocket = dependencies.connectWebSocket ?? openWebSocket;
|
|
37
|
-
this.settingsValue = options === undefined ? undefined : configuredSettings(options);
|
|
38
|
-
}
|
|
39
|
-
async invoke(actorName, actorId, method, args) {
|
|
40
|
-
const requestId = validateActorComponent("request ID", this.requestId());
|
|
41
|
-
const timeline = new LatencyTimeline(this.monotonicNow);
|
|
42
|
-
let outcome = "failed";
|
|
43
|
-
try {
|
|
44
|
-
if (currentActorInvocation() !== undefined) {
|
|
45
|
-
throw new ActorInvocationError("actor_error", requestId, "actor-to-actor calls are not available");
|
|
15
|
+
super(options, {
|
|
16
|
+
...dependencies,
|
|
17
|
+
telemetry: dependencies.telemetry ?? stderrTelemetry,
|
|
18
|
+
beforeInvoke: requestId => {
|
|
19
|
+
if (currentActorInvocation() !== undefined)
|
|
20
|
+
throw new ActorInvocationError("actor_error", requestId, "actor-to-actor calls are not available");
|
|
46
21
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
const target = await this.target(invocation, timeline);
|
|
50
|
-
timeline.mark("target_resolved");
|
|
51
|
-
const result = await this.direct(target, invocation, true, timeline);
|
|
52
|
-
outcome = "completed";
|
|
53
|
-
return result;
|
|
54
|
-
}
|
|
55
|
-
finally {
|
|
56
|
-
this.telemetry({
|
|
57
|
-
event: "actor_client_invocation",
|
|
58
|
-
request_id: requestId,
|
|
59
|
-
actor_name: actorName,
|
|
60
|
-
actor_id: actorId,
|
|
61
|
-
method,
|
|
62
|
-
...timeline.finish(),
|
|
63
|
-
outcome
|
|
64
|
-
});
|
|
65
|
-
}
|
|
22
|
+
});
|
|
23
|
+
this.connectWebSocket = dependencies.connectWebSocket ?? openWebSocket;
|
|
66
24
|
}
|
|
67
25
|
async connect(actorName, actorId, metadata, schemas = {}) {
|
|
68
26
|
const requestId = validateActorComponent("request ID", this.requestId());
|
|
@@ -105,136 +63,16 @@ class RemoteActorClient {
|
|
|
105
63
|
const target = await this.target(actor, new LatencyTimeline(this.monotonicNow));
|
|
106
64
|
await this.deliverSocketEffects(target, actor, [{ type: "broadcast", message: socketMessage(message), except_connection_ids: [], tags: [] }], "actor socket broadcast");
|
|
107
65
|
}
|
|
108
|
-
async direct(target, invocation, retryReroute, timeline) {
|
|
109
|
-
try {
|
|
110
|
-
const reply = await this.actorHost.invoke(target, invocation);
|
|
111
|
-
timeline.mark("host_rpc_completed");
|
|
112
|
-
if (reply.type === "completed") {
|
|
113
|
-
await this.applySocketEffects(target, invocation, reply.effects);
|
|
114
|
-
timeline.mark("socket_effects_completed");
|
|
115
|
-
return reply.result;
|
|
116
|
-
}
|
|
117
|
-
if (reply.type === "failed")
|
|
118
|
-
throw new ActorInvocationError(reply.code, invocation.requestId, reply.message);
|
|
119
|
-
if (reply.type === "unauthenticated" && !retryReroute) {
|
|
120
|
-
this.targets.delete(actorKey(invocation.actorName, invocation.actorId));
|
|
121
|
-
throw new ActorInvocationError("unauthenticated", invocation.requestId, "actor host rejected the refreshed invocation ticket");
|
|
122
|
-
}
|
|
123
|
-
if (!retryReroute)
|
|
124
|
-
throw new ActorInvocationError("unavailable", invocation.requestId, "actor ownership changed repeatedly before execution");
|
|
125
|
-
this.targets.delete(actorKey(invocation.actorName, invocation.actorId));
|
|
126
|
-
const rerouted = await this.target(invocation, timeline);
|
|
127
|
-
return this.direct(rerouted, invocation, false, timeline);
|
|
128
|
-
}
|
|
129
|
-
catch (error) {
|
|
130
|
-
if (error instanceof ActorInvocationError || error instanceof ActorProtocolError)
|
|
131
|
-
throw error;
|
|
132
|
-
this.targets.delete(actorKey(invocation.actorName, invocation.actorId));
|
|
133
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
134
|
-
throw new ActorInvocationError("outcome_unknown", invocation.requestId, `actor-host gRPC request failed after dispatch: ${message}`);
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
async applySocketEffects(target, invocation, effects) {
|
|
138
|
-
if (effects.length === 0)
|
|
139
|
-
return;
|
|
140
|
-
await this.deliverSocketEffects(target, invocation, effects, "actor completed but socket effects");
|
|
141
|
-
}
|
|
142
66
|
async deliverSocketEffects(target, actor, effects, context) {
|
|
143
67
|
try {
|
|
144
68
|
await this.actorHost.publish(target, actor, effects);
|
|
145
69
|
}
|
|
146
70
|
catch (error) {
|
|
147
|
-
this.targets.delete(
|
|
71
|
+
this.targets.delete(`${actor.actorName}\u001f${actor.actorId}`);
|
|
148
72
|
const message = error instanceof Error ? error.message : String(error);
|
|
149
73
|
throw new ActorInvocationError("outcome_unknown", actor.requestId, `${context} could not be delivered: ${message}`);
|
|
150
74
|
}
|
|
151
75
|
}
|
|
152
|
-
async target(invocation, timeline) {
|
|
153
|
-
const key = actorKey(invocation.actorName, invocation.actorId);
|
|
154
|
-
const current = this.targets.get(key);
|
|
155
|
-
timeline.mark("target_cache_checked");
|
|
156
|
-
if (current) {
|
|
157
|
-
const target = await current;
|
|
158
|
-
if (target.expiresAtMs > this.now() + TARGET_EXPIRATION_SAFETY_MS)
|
|
159
|
-
return target;
|
|
160
|
-
this.targets.delete(key);
|
|
161
|
-
}
|
|
162
|
-
const resolving = this.resolveTarget(invocation).catch(error => {
|
|
163
|
-
this.targets.delete(key);
|
|
164
|
-
throw error;
|
|
165
|
-
});
|
|
166
|
-
this.targets.set(key, resolving);
|
|
167
|
-
return resolving;
|
|
168
|
-
}
|
|
169
|
-
async resolveTarget(invocation) {
|
|
170
|
-
let response;
|
|
171
|
-
try {
|
|
172
|
-
response = await this.fetchRequest(targetUrl(this.settings, invocation.actorName, invocation.actorId), {
|
|
173
|
-
method: "POST",
|
|
174
|
-
headers: {
|
|
175
|
-
accept: "application/json",
|
|
176
|
-
...authorizationHeaders(this.settings.credential),
|
|
177
|
-
"x-request-id": invocation.requestId,
|
|
178
|
-
"content-type": "application/json"
|
|
179
|
-
},
|
|
180
|
-
body: JSON.stringify({ homeRegion: this.settings.homeRegion })
|
|
181
|
-
});
|
|
182
|
-
}
|
|
183
|
-
catch (error) {
|
|
184
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
185
|
-
throw new ActorInvocationError("outcome_unknown", invocation.requestId, `control-plane HTTP request failed before dispatch: ${message}`);
|
|
186
|
-
}
|
|
187
|
-
const document = await responseDocument(response);
|
|
188
|
-
if (!response.ok)
|
|
189
|
-
this.throwResponseFailure(response, document, invocation.requestId);
|
|
190
|
-
const target = actorHostTargetSchema.safeParse(document);
|
|
191
|
-
if (!target.success)
|
|
192
|
-
throw new ActorProtocolError("control-plane response did not contain a valid actor host target");
|
|
193
|
-
return target.data;
|
|
194
|
-
}
|
|
195
|
-
throwResponseFailure(response, document, requestId) {
|
|
196
|
-
if (response.status === 401 || response.status === 403) {
|
|
197
|
-
throw new ActorInvocationError("unauthenticated", requestId, "the durable-actors application credential was rejected");
|
|
198
|
-
}
|
|
199
|
-
const failure = errorDocumentSchema.safeParse(document);
|
|
200
|
-
if (!failure.success) {
|
|
201
|
-
throw new ActorProtocolError(`control-plane HTTP ${response.status} response did not contain a valid error`);
|
|
202
|
-
}
|
|
203
|
-
throw new ActorInvocationError(failure.data.error.code, failure.data.error.requestId ?? requestId, failure.data.error.message);
|
|
204
|
-
}
|
|
205
|
-
invocation(requestId, actorName, actorId, method, args) {
|
|
206
|
-
return {
|
|
207
|
-
requestId,
|
|
208
|
-
projectId: this.settings.projectId,
|
|
209
|
-
actorName: validateActorComponent("actor name", actorName),
|
|
210
|
-
actorId: validateActorComponent("actor ID", actorId),
|
|
211
|
-
method: validateActorComponent("actor method", method),
|
|
212
|
-
args: this.jsonArguments(args)
|
|
213
|
-
};
|
|
214
|
-
}
|
|
215
|
-
get settings() {
|
|
216
|
-
if (this.settingsValue !== undefined)
|
|
217
|
-
return this.settingsValue;
|
|
218
|
-
const environment = actorEnvironment(this.environment);
|
|
219
|
-
this.settingsValue = configuredSettings({
|
|
220
|
-
apiKey: environment.DURABLE_ACTORS_SECRET,
|
|
221
|
-
projectId: environment.DURABLE_ACTORS_PROJECT_ID,
|
|
222
|
-
homeRegion: environment.DURABLE_ACTORS_HOME_REGION,
|
|
223
|
-
controlPlaneUrl: environment.DURABLE_ACTORS_CONTROL_PLANE_URL ?? "http://127.0.0.1:7100"
|
|
224
|
-
});
|
|
225
|
-
return this.settingsValue;
|
|
226
|
-
}
|
|
227
|
-
jsonArguments(args) {
|
|
228
|
-
const value = cloneJson(args, "actor arguments");
|
|
229
|
-
if (!Array.isArray(value))
|
|
230
|
-
throw new ActorProtocolError("actor arguments must be a JSON array");
|
|
231
|
-
return value;
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
function targetUrl(settings, actorName, actorId) {
|
|
235
|
-
const actor = validateActorComponent("actor name", actorName);
|
|
236
|
-
const id = validateActorComponent("actor ID", actorId);
|
|
237
|
-
return `${settings.controlPlaneUrl}${projectActorPath(settings.projectId, actor, id)}/find-actor`;
|
|
238
76
|
}
|
|
239
77
|
function openWebSocket(url, schemas) {
|
|
240
78
|
const socket = new WebSocket(url);
|
|
@@ -255,31 +93,5 @@ function openWebSocket(url, schemas) {
|
|
|
255
93
|
});
|
|
256
94
|
});
|
|
257
95
|
}
|
|
258
|
-
function actorKey(actorName, actorId) {
|
|
259
|
-
return `${actorName}\u001f${actorId}`;
|
|
260
|
-
}
|
|
261
|
-
async function responseDocument(response) {
|
|
262
|
-
try {
|
|
263
|
-
return (await response.json());
|
|
264
|
-
}
|
|
265
|
-
catch (error) {
|
|
266
|
-
throw new ActorProtocolError(`control-plane HTTP ${response.status} response was not valid JSON`, {
|
|
267
|
-
cause: error
|
|
268
|
-
});
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
const errorDocumentSchema = z.object({
|
|
272
|
-
error: z.object({
|
|
273
|
-
code: z.string().min(1),
|
|
274
|
-
message: z.string(),
|
|
275
|
-
requestId: z.string().optional()
|
|
276
|
-
})
|
|
277
|
-
});
|
|
278
|
-
const actorHostTargetSchema = z.object({
|
|
279
|
-
route: z.string().url(),
|
|
280
|
-
token: z.string().trim().min(1),
|
|
281
|
-
ownerEpoch: z.number().int().positive(),
|
|
282
|
-
expiresAtMs: z.number().int().positive()
|
|
283
|
-
});
|
|
284
96
|
export { RemoteActorClient };
|
|
285
97
|
//# sourceMappingURL=remoteClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remoteClient.js","sourceRoot":"","sources":["../../src/client/remoteClient.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"remoteClient.js","sourceRoot":"","sources":["../../src/client/remoteClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,6 @@
|
|
|
1
|
-
type
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
private readonly now;
|
|
5
|
-
private readonly origin;
|
|
6
|
-
private readonly milestones;
|
|
7
|
-
constructor(now?: () => number);
|
|
8
|
-
mark(name: string): void;
|
|
9
|
-
finish(): Record<string, number>;
|
|
10
|
-
}
|
|
1
|
+
import type { TelemetrySink } from "../client-runtime/telemetry.js";
|
|
2
|
+
export { LatencyTimeline } from "../client-runtime/telemetry.js";
|
|
3
|
+
export type { TelemetryEvent, TelemetrySink } from "../client-runtime/telemetry.js";
|
|
11
4
|
declare const stderrTelemetry: TelemetrySink;
|
|
12
|
-
export {
|
|
13
|
-
export type { TelemetryEvent, TelemetrySink };
|
|
5
|
+
export { stderrTelemetry };
|
|
14
6
|
//# sourceMappingURL=telemetry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/client/telemetry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/client/telemetry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAEnE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAChE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAEnF,QAAA,MAAM,eAAe,EAAE,aAEtB,CAAA;AAED,OAAO,EAAE,eAAe,EAAE,CAAA"}
|
package/dist/client/telemetry.js
CHANGED
|
@@ -1,23 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
class LatencyTimeline {
|
|
3
|
-
now;
|
|
4
|
-
origin;
|
|
5
|
-
milestones = { started_at_ms: 0 };
|
|
6
|
-
constructor(now = () => performance.now()) {
|
|
7
|
-
this.now = now;
|
|
8
|
-
this.origin = this.now();
|
|
9
|
-
}
|
|
10
|
-
mark(name) {
|
|
11
|
-
this.milestones[`${name}_at_ms`] = Math.max(0, Math.round(this.now() - this.origin));
|
|
12
|
-
}
|
|
13
|
-
finish() {
|
|
14
|
-
this.mark("completed");
|
|
15
|
-
return { ...this.milestones };
|
|
16
|
-
}
|
|
17
|
-
}
|
|
1
|
+
export { LatencyTimeline } from "../client-runtime/telemetry.js";
|
|
18
2
|
const stderrTelemetry = event => {
|
|
19
|
-
if (process.env.DURABLE_ACTORS_TELEMETRY
|
|
3
|
+
if (process.env.DURABLE_ACTORS_TELEMETRY === "1")
|
|
20
4
|
process.stderr.write(`${JSON.stringify(event)}\n`);
|
|
21
5
|
};
|
|
22
|
-
export {
|
|
6
|
+
export { stderrTelemetry };
|
|
23
7
|
//# sourceMappingURL=telemetry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/client/telemetry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/client/telemetry.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAGhE,MAAM,eAAe,GAAkB,KAAK,CAAC,EAAE;IAC3C,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,KAAK,GAAG;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AACxG,CAAC,CAAA;AAED,OAAO,EAAE,eAAe,EAAE,CAAA"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { ActorHostTarget, ActorHostTransport, DirectActorInvocation } from "./http.js";
|
|
2
|
+
import { configuredSettings } from "./settings.js";
|
|
3
|
+
import type { DurableActorsClientOptions, Environment } from "./settings.js";
|
|
4
|
+
import { LatencyTimeline } from "./telemetry.js";
|
|
5
|
+
import type { TelemetrySink } from "./telemetry.js";
|
|
6
|
+
export declare class HttpActorClient {
|
|
7
|
+
private readonly beforeInvoke;
|
|
8
|
+
private settingsValue;
|
|
9
|
+
protected readonly environment: Environment;
|
|
10
|
+
protected readonly fetchRequest: typeof globalThis.fetch;
|
|
11
|
+
protected readonly requestId: () => string;
|
|
12
|
+
protected readonly actorHost: ActorHostTransport;
|
|
13
|
+
protected readonly now: () => number;
|
|
14
|
+
protected readonly monotonicNow: () => number;
|
|
15
|
+
protected readonly telemetry: TelemetrySink;
|
|
16
|
+
protected readonly targets: Map<string, Promise<ActorHostTarget>>;
|
|
17
|
+
constructor(options?: DurableActorsClientOptions, dependencies?: HttpActorClientDependencies);
|
|
18
|
+
invoke(actorName: string, actorId: string, method: string, args: readonly unknown[]): Promise<unknown>;
|
|
19
|
+
private direct;
|
|
20
|
+
protected target(invocation: ActorAddress, timeline: LatencyTimeline): Promise<ActorHostTarget>;
|
|
21
|
+
private resolveTarget;
|
|
22
|
+
private throwResponseFailure;
|
|
23
|
+
private invocation;
|
|
24
|
+
protected get settings(): RemoteActorSettings;
|
|
25
|
+
private jsonArguments;
|
|
26
|
+
}
|
|
27
|
+
type ActorAddress = Pick<DirectActorInvocation, "requestId" | "projectId" | "actorName" | "actorId">;
|
|
28
|
+
type RemoteActorSettings = ReturnType<typeof configuredSettings>;
|
|
29
|
+
export interface HttpActorClientDependencies {
|
|
30
|
+
readonly environment?: Environment;
|
|
31
|
+
readonly fetch?: typeof globalThis.fetch;
|
|
32
|
+
readonly requestId?: () => string;
|
|
33
|
+
readonly actorHost?: ActorHostTransport;
|
|
34
|
+
readonly now?: () => number;
|
|
35
|
+
readonly monotonicNow?: () => number;
|
|
36
|
+
readonly telemetry?: TelemetrySink;
|
|
37
|
+
readonly beforeInvoke?: (requestId: string) => void;
|
|
38
|
+
}
|
|
39
|
+
export type { DurableActorsClientOptions };
|
|
40
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client-runtime/client.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAA;AAG3F,OAAO,EAEH,kBAAkB,EAMrB,MAAM,eAAe,CAAA;AACtB,OAAO,KAAK,EAAE,0BAA0B,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAInD,qBAAa,eAAe;IACxB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6B;IAC1D,OAAO,CAAC,aAAa,CAAiC;IACtD,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAA;IAC3C,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;IACxD,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,MAAM,CAAA;IAC1C,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAA;IAChD,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,MAAM,CAAA;IACpC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,MAAM,CAAA;IAC7C,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAA;IAC3C,SAAS,CAAC,QAAQ,CAAC,OAAO,wCAA8C;gBAE5D,OAAO,CAAC,EAAE,0BAA0B,EAAE,YAAY,GAAE,2BAAgC;IAa1F,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;YA0B9F,MAAM;cA2CJ,MAAM,CAAC,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;YAiBvF,aAAa;IA0C3B,OAAO,CAAC,oBAAoB;IAsB5B,OAAO,CAAC,UAAU;IAiBlB,SAAS,KAAK,QAAQ,IAAI,mBAAmB,CAI5C;IAED,OAAO,CAAC,aAAa;CAKxB;AAcD,KAAK,YAAY,GAAG,IAAI,CAAC,qBAAqB,EAAE,WAAW,GAAG,WAAW,GAAG,WAAW,GAAG,SAAS,CAAC,CAAA;AACpG,KAAK,mBAAmB,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAChE,MAAM,WAAW,2BAA2B;IACxC,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAA;IAClC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;IACxC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,MAAM,CAAA;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,kBAAkB,CAAA;IACvC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,MAAM,CAAA;IACpC,QAAQ,CAAC,SAAS,CAAC,EAAE,aAAa,CAAA;IAClC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;CACtD;AACD,YAAY,EAAE,0BAA0B,EAAE,CAAA"}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import { ActorInvocationError, ActorProtocolError } from "./errors.js";
|
|
2
|
+
import { HttpActorHostTransport, isRecord, responseDocument } from "./http.js";
|
|
3
|
+
import { cloneJson } from "./json.js";
|
|
4
|
+
import { authorizationHeaders, configuredSettings, environmentSettings, projectActorPath, runtimeEnvironment, validateActorComponent, validateOrigin } from "./settings.js";
|
|
5
|
+
import { LatencyTimeline } from "./telemetry.js";
|
|
6
|
+
const TARGET_EXPIRATION_SAFETY_MS = 5_000;
|
|
7
|
+
export class HttpActorClient {
|
|
8
|
+
beforeInvoke;
|
|
9
|
+
settingsValue;
|
|
10
|
+
environment;
|
|
11
|
+
fetchRequest;
|
|
12
|
+
requestId;
|
|
13
|
+
actorHost;
|
|
14
|
+
now;
|
|
15
|
+
monotonicNow;
|
|
16
|
+
telemetry;
|
|
17
|
+
targets = new Map();
|
|
18
|
+
constructor(options, dependencies = {}) {
|
|
19
|
+
this.beforeInvoke = dependencies.beforeInvoke ?? (() => { });
|
|
20
|
+
this.environment = dependencies.environment ?? runtimeEnvironment();
|
|
21
|
+
this.fetchRequest = dependencies.fetch ?? globalThis.fetch;
|
|
22
|
+
this.requestId = dependencies.requestId ?? (() => globalThis.crypto.randomUUID());
|
|
23
|
+
this.actorHost = dependencies.actorHost ?? new HttpActorHostTransport(this.fetchRequest);
|
|
24
|
+
// Workflow runtimes can replace Date.now with replayable logical time.
|
|
25
|
+
this.now = dependencies.now ?? (() => performance.timeOrigin + performance.now());
|
|
26
|
+
this.monotonicNow = dependencies.monotonicNow ?? (() => performance.now());
|
|
27
|
+
this.telemetry = dependencies.telemetry ?? (() => { });
|
|
28
|
+
this.settingsValue = options === undefined ? undefined : configuredSettings(options);
|
|
29
|
+
}
|
|
30
|
+
async invoke(actorName, actorId, method, args) {
|
|
31
|
+
const requestId = validateActorComponent("request ID", this.requestId());
|
|
32
|
+
const timeline = new LatencyTimeline(this.monotonicNow);
|
|
33
|
+
let outcome = "failed";
|
|
34
|
+
try {
|
|
35
|
+
this.beforeInvoke(requestId);
|
|
36
|
+
const invocation = this.invocation(requestId, actorName, actorId, method, args);
|
|
37
|
+
timeline.mark("invocation_built");
|
|
38
|
+
const target = await this.target(invocation, timeline);
|
|
39
|
+
timeline.mark("target_resolved");
|
|
40
|
+
const result = await this.direct(target, invocation, true, timeline);
|
|
41
|
+
outcome = "completed";
|
|
42
|
+
return result;
|
|
43
|
+
}
|
|
44
|
+
finally {
|
|
45
|
+
this.telemetry({
|
|
46
|
+
event: "actor_client_invocation",
|
|
47
|
+
request_id: requestId,
|
|
48
|
+
actor_name: actorName,
|
|
49
|
+
actor_id: actorId,
|
|
50
|
+
method,
|
|
51
|
+
...timeline.finish(),
|
|
52
|
+
outcome
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
async direct(target, invocation, retryReroute, timeline) {
|
|
57
|
+
try {
|
|
58
|
+
const reply = await this.actorHost.invoke(target, invocation);
|
|
59
|
+
timeline.mark("host_rpc_completed");
|
|
60
|
+
if (reply.type === "completed") {
|
|
61
|
+
timeline.mark("socket_effects_completed");
|
|
62
|
+
return reply.result;
|
|
63
|
+
}
|
|
64
|
+
if (reply.type === "failed")
|
|
65
|
+
throw new ActorInvocationError(reply.code, invocation.requestId, reply.message);
|
|
66
|
+
if (reply.type === "unauthenticated" && !retryReroute) {
|
|
67
|
+
this.targets.delete(actorKey(invocation.actorName, invocation.actorId));
|
|
68
|
+
throw new ActorInvocationError("unauthenticated", invocation.requestId, "actor host rejected the refreshed invocation ticket");
|
|
69
|
+
}
|
|
70
|
+
if (!retryReroute)
|
|
71
|
+
throw new ActorInvocationError("unavailable", invocation.requestId, "actor ownership changed repeatedly before execution");
|
|
72
|
+
this.targets.delete(actorKey(invocation.actorName, invocation.actorId));
|
|
73
|
+
const rerouted = await this.target(invocation, timeline);
|
|
74
|
+
return this.direct(rerouted, invocation, false, timeline);
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
if (error instanceof ActorInvocationError || error instanceof ActorProtocolError)
|
|
78
|
+
throw error;
|
|
79
|
+
this.targets.delete(actorKey(invocation.actorName, invocation.actorId));
|
|
80
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
81
|
+
throw new ActorInvocationError("outcome_unknown", invocation.requestId, `actor-host HTTP request failed after dispatch: ${message}`);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
async target(invocation, timeline) {
|
|
85
|
+
const key = actorKey(invocation.actorName, invocation.actorId);
|
|
86
|
+
const current = this.targets.get(key);
|
|
87
|
+
timeline.mark("target_cache_checked");
|
|
88
|
+
if (current) {
|
|
89
|
+
const target = await current;
|
|
90
|
+
if (target.expiresAtMs > this.now() + TARGET_EXPIRATION_SAFETY_MS)
|
|
91
|
+
return target;
|
|
92
|
+
this.targets.delete(key);
|
|
93
|
+
}
|
|
94
|
+
const resolving = this.resolveTarget(invocation).catch(error => {
|
|
95
|
+
this.targets.delete(key);
|
|
96
|
+
throw error;
|
|
97
|
+
});
|
|
98
|
+
this.targets.set(key, resolving);
|
|
99
|
+
return resolving;
|
|
100
|
+
}
|
|
101
|
+
async resolveTarget(invocation) {
|
|
102
|
+
let response;
|
|
103
|
+
try {
|
|
104
|
+
response = await this.fetchRequest(targetUrl(this.settings, invocation.actorName, invocation.actorId), {
|
|
105
|
+
method: "POST",
|
|
106
|
+
redirect: "error",
|
|
107
|
+
headers: {
|
|
108
|
+
accept: "application/json",
|
|
109
|
+
...authorizationHeaders(this.settings.credential),
|
|
110
|
+
"x-request-id": invocation.requestId,
|
|
111
|
+
"content-type": "application/json"
|
|
112
|
+
},
|
|
113
|
+
body: JSON.stringify({ homeRegion: this.settings.homeRegion })
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
catch (error) {
|
|
117
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
118
|
+
throw new ActorInvocationError("outcome_unknown", invocation.requestId, `control-plane HTTP request failed before dispatch: ${message}`);
|
|
119
|
+
}
|
|
120
|
+
const document = await responseDocument(response);
|
|
121
|
+
if (!response.ok)
|
|
122
|
+
this.throwResponseFailure(response, document, invocation.requestId);
|
|
123
|
+
if (!isRecord(document) ||
|
|
124
|
+
typeof document.route !== "string" ||
|
|
125
|
+
typeof document.token !== "string" ||
|
|
126
|
+
!document.token.trim() ||
|
|
127
|
+
!positiveInteger(document.ownerEpoch) ||
|
|
128
|
+
!positiveInteger(document.expiresAtMs))
|
|
129
|
+
throw new ActorProtocolError("control-plane response did not contain a valid actor host target");
|
|
130
|
+
validateOrigin(document.route);
|
|
131
|
+
return {
|
|
132
|
+
route: document.route,
|
|
133
|
+
token: document.token,
|
|
134
|
+
ownerEpoch: document.ownerEpoch,
|
|
135
|
+
expiresAtMs: document.expiresAtMs
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
throwResponseFailure(response, document, requestId) {
|
|
139
|
+
if (response.status === 401 || response.status === 403)
|
|
140
|
+
throw new ActorInvocationError("unauthenticated", requestId, "the durable-actors application credential was rejected");
|
|
141
|
+
const failure = isRecord(document) ? document.error : undefined;
|
|
142
|
+
if (!isRecord(failure) ||
|
|
143
|
+
typeof failure.code !== "string" ||
|
|
144
|
+
!failure.code ||
|
|
145
|
+
typeof failure.message !== "string")
|
|
146
|
+
throw new ActorProtocolError(`control-plane HTTP ${response.status} response did not contain a valid error`);
|
|
147
|
+
throw new ActorInvocationError(failure.code, typeof failure.requestId === "string" ? failure.requestId : requestId, failure.message);
|
|
148
|
+
}
|
|
149
|
+
invocation(requestId, actorName, actorId, method, args) {
|
|
150
|
+
return {
|
|
151
|
+
requestId,
|
|
152
|
+
projectId: this.settings.projectId,
|
|
153
|
+
actorName: validateActorComponent("actor name", actorName),
|
|
154
|
+
actorId: validateActorComponent("actor ID", actorId),
|
|
155
|
+
method: validateActorComponent("actor method", method),
|
|
156
|
+
args: this.jsonArguments(args)
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
get settings() {
|
|
160
|
+
if (this.settingsValue !== undefined)
|
|
161
|
+
return this.settingsValue;
|
|
162
|
+
this.settingsValue = configuredSettings(environmentSettings(this.environment));
|
|
163
|
+
return this.settingsValue;
|
|
164
|
+
}
|
|
165
|
+
jsonArguments(args) {
|
|
166
|
+
const value = cloneJson(args, "actor arguments");
|
|
167
|
+
if (!Array.isArray(value))
|
|
168
|
+
throw new ActorProtocolError("actor arguments must be a JSON array");
|
|
169
|
+
return value;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
function targetUrl(settings, actorName, actorId) {
|
|
173
|
+
const actor = validateActorComponent("actor name", actorName);
|
|
174
|
+
const id = validateActorComponent("actor ID", actorId);
|
|
175
|
+
return `${settings.controlPlaneUrl}${projectActorPath(settings.projectId, actor, id)}/find-actor`;
|
|
176
|
+
}
|
|
177
|
+
function actorKey(actorName, actorId) {
|
|
178
|
+
return `${actorName}\u001f${actorId}`;
|
|
179
|
+
}
|
|
180
|
+
function positiveInteger(value) {
|
|
181
|
+
return typeof value === "number" && Number.isSafeInteger(value) && value > 0;
|
|
182
|
+
}
|
|
183
|
+
//# sourceMappingURL=client.js.map
|