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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client-runtime/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
declare class ActorConfigurationError extends Error {
|
|
2
|
+
constructor(message: string, options?: ErrorOptions);
|
|
3
|
+
}
|
|
4
|
+
declare class ActorDefinitionError extends Error {
|
|
5
|
+
constructor(message: string);
|
|
6
|
+
}
|
|
7
|
+
/** Remote failure. Retrying an `outcome_unknown` operation may run it twice. */
|
|
8
|
+
declare class ActorInvocationError extends Error {
|
|
9
|
+
/** Error category, such as `actor_error` or `outcome_unknown`. New codes may be added. */
|
|
10
|
+
readonly code: string;
|
|
11
|
+
/** Identifies this caller attempt; it is not an application idempotency key. */
|
|
12
|
+
readonly requestId: string;
|
|
13
|
+
constructor(code: string, requestId: string, message: string);
|
|
14
|
+
}
|
|
15
|
+
declare class ActorSessionError extends Error {
|
|
16
|
+
constructor(message: string, options?: ErrorOptions);
|
|
17
|
+
}
|
|
18
|
+
declare class ActorProtocolError extends Error {
|
|
19
|
+
constructor(message: string, options?: ErrorOptions);
|
|
20
|
+
}
|
|
21
|
+
declare class ActorSerializationError extends Error {
|
|
22
|
+
constructor(message: string, options?: ErrorOptions);
|
|
23
|
+
}
|
|
24
|
+
declare class ActorValidationError extends Error {
|
|
25
|
+
constructor(message: string);
|
|
26
|
+
}
|
|
27
|
+
export { ActorConfigurationError, ActorDefinitionError, ActorInvocationError, ActorProtocolError, ActorSerializationError, ActorSessionError, ActorValidationError };
|
|
28
|
+
declare function errorMessage(error: unknown): string;
|
|
29
|
+
export { errorMessage };
|
|
30
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/client-runtime/errors.ts"],"names":[],"mappings":"AAAA,cAAM,uBAAwB,SAAQ,KAAK;gBAC3B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;CAItD;AAED,cAAM,oBAAqB,SAAQ,KAAK;gBACxB,OAAO,EAAE,MAAM;CAI9B;AAED,gFAAgF;AAChF,cAAM,oBAAqB,SAAQ,KAAK;IACpC,0FAA0F;IAC1F,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,gFAAgF;IAChF,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;gBAEd,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAM/D;AAED,cAAM,iBAAkB,SAAQ,KAAK;gBACrB,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;CAItD;AAED,cAAM,kBAAmB,SAAQ,KAAK;gBACtB,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;CAItD;AAED,cAAM,uBAAwB,SAAQ,KAAK;gBAC3B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;CAItD;AAED,cAAM,oBAAqB,SAAQ,KAAK;gBACxB,OAAO,EAAE,MAAM;CAI9B;AAED,OAAO,EACH,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,oBAAoB,EACvB,CAAA;AAED,iBAAS,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAE5C;AAED,OAAO,EAAE,YAAY,EAAE,CAAA"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
class ActorConfigurationError extends Error {
|
|
2
|
+
constructor(message, options) {
|
|
3
|
+
super(message, options);
|
|
4
|
+
this.name = "ActorConfigurationError";
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
class ActorDefinitionError extends Error {
|
|
8
|
+
constructor(message) {
|
|
9
|
+
super(message);
|
|
10
|
+
this.name = "ActorDefinitionError";
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
/** Remote failure. Retrying an `outcome_unknown` operation may run it twice. */
|
|
14
|
+
class ActorInvocationError extends Error {
|
|
15
|
+
/** Error category, such as `actor_error` or `outcome_unknown`. New codes may be added. */
|
|
16
|
+
code;
|
|
17
|
+
/** Identifies this caller attempt; it is not an application idempotency key. */
|
|
18
|
+
requestId;
|
|
19
|
+
constructor(code, requestId, message) {
|
|
20
|
+
super(message);
|
|
21
|
+
this.name = "ActorInvocationError";
|
|
22
|
+
this.code = code;
|
|
23
|
+
this.requestId = requestId;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
class ActorSessionError extends Error {
|
|
27
|
+
constructor(message, options) {
|
|
28
|
+
super(message, options);
|
|
29
|
+
this.name = "ActorSessionError";
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
class ActorProtocolError extends Error {
|
|
33
|
+
constructor(message, options) {
|
|
34
|
+
super(message, options);
|
|
35
|
+
this.name = "ActorProtocolError";
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
class ActorSerializationError extends Error {
|
|
39
|
+
constructor(message, options) {
|
|
40
|
+
super(message, options);
|
|
41
|
+
this.name = "ActorSerializationError";
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
class ActorValidationError extends Error {
|
|
45
|
+
constructor(message) {
|
|
46
|
+
super(message);
|
|
47
|
+
this.name = "ActorValidationError";
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
export { ActorConfigurationError, ActorDefinitionError, ActorInvocationError, ActorProtocolError, ActorSerializationError, ActorSessionError, ActorValidationError };
|
|
51
|
+
function errorMessage(error) {
|
|
52
|
+
return error instanceof Error ? error.message : String(error);
|
|
53
|
+
}
|
|
54
|
+
export { errorMessage };
|
|
55
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/client-runtime/errors.ts"],"names":[],"mappings":"AAAA,MAAM,uBAAwB,SAAQ,KAAK;IACvC,YAAY,OAAe,EAAE,OAAsB;QAC/C,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACvB,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAA;IACzC,CAAC;CACJ;AAED,MAAM,oBAAqB,SAAQ,KAAK;IACpC,YAAY,OAAe;QACvB,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAA;IACtC,CAAC;CACJ;AAED,gFAAgF;AAChF,MAAM,oBAAqB,SAAQ,KAAK;IACpC,0FAA0F;IACjF,IAAI,CAAQ;IACrB,gFAAgF;IACvE,SAAS,CAAQ;IAE1B,YAAY,IAAY,EAAE,SAAiB,EAAE,OAAe;QACxD,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAA;QAClC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC9B,CAAC;CACJ;AAED,MAAM,iBAAkB,SAAQ,KAAK;IACjC,YAAY,OAAe,EAAE,OAAsB;QAC/C,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACvB,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAA;IACnC,CAAC;CACJ;AAED,MAAM,kBAAmB,SAAQ,KAAK;IAClC,YAAY,OAAe,EAAE,OAAsB;QAC/C,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACvB,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAA;IACpC,CAAC;CACJ;AAED,MAAM,uBAAwB,SAAQ,KAAK;IACvC,YAAY,OAAe,EAAE,OAAsB;QAC/C,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACvB,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAA;IACzC,CAAC;CACJ;AAED,MAAM,oBAAqB,SAAQ,KAAK;IACpC,YAAY,OAAe;QACvB,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAA;IACtC,CAAC;CACJ;AAED,OAAO,EACH,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,oBAAoB,EACvB,CAAA;AAED,SAAS,YAAY,CAAC,KAAc;IAChC,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AACjE,CAAC;AAED,OAAO,EAAE,YAAY,EAAE,CAAA"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { JsonValue } from "./json.js";
|
|
2
|
+
export declare class HttpActorHostTransport implements ActorHostTransport {
|
|
3
|
+
private readonly fetchRequest;
|
|
4
|
+
constructor(fetchRequest?: typeof globalThis.fetch);
|
|
5
|
+
invoke(target: ActorHostTarget, invocation: DirectActorInvocation): Promise<ActorHostReply>;
|
|
6
|
+
publish(target: ActorHostTarget, actor: ActorAddress, effects: readonly unknown[]): Promise<void>;
|
|
7
|
+
private post;
|
|
8
|
+
}
|
|
9
|
+
export declare function responseDocument(response: Response): Promise<unknown>;
|
|
10
|
+
export declare function isRecord(value: unknown): value is Record<string, unknown>;
|
|
11
|
+
export interface ActorAddress {
|
|
12
|
+
readonly projectId: string;
|
|
13
|
+
readonly actorName: string;
|
|
14
|
+
readonly actorId: string;
|
|
15
|
+
}
|
|
16
|
+
export interface ActorHostTarget {
|
|
17
|
+
readonly route: string;
|
|
18
|
+
readonly token: string;
|
|
19
|
+
readonly ownerEpoch: number;
|
|
20
|
+
readonly expiresAtMs: number;
|
|
21
|
+
}
|
|
22
|
+
export interface DirectActorInvocation extends ActorAddress {
|
|
23
|
+
readonly requestId: string;
|
|
24
|
+
readonly method: string;
|
|
25
|
+
readonly args: readonly JsonValue[];
|
|
26
|
+
}
|
|
27
|
+
export type ActorHostReply = {
|
|
28
|
+
readonly type: "completed";
|
|
29
|
+
readonly result: unknown;
|
|
30
|
+
} | {
|
|
31
|
+
readonly type: "failed";
|
|
32
|
+
readonly code: string;
|
|
33
|
+
readonly message: string;
|
|
34
|
+
} | {
|
|
35
|
+
readonly type: "reroute";
|
|
36
|
+
} | {
|
|
37
|
+
readonly type: "unauthenticated";
|
|
38
|
+
};
|
|
39
|
+
export interface ActorHostTransport {
|
|
40
|
+
invoke(target: ActorHostTarget, invocation: DirectActorInvocation): Promise<ActorHostReply>;
|
|
41
|
+
publish(target: ActorHostTarget, actor: ActorAddress, effects: readonly unknown[]): Promise<void>;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=http.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/client-runtime/http.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAG1C,qBAAa,sBAAuB,YAAW,kBAAkB;IACjD,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAAZ,YAAY,GAAE,OAAO,UAAU,CAAC,KAAwB;IAE/E,MAAM,CAAC,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,qBAAqB,GAAG,OAAO,CAAC,cAAc,CAAC;IA0B3F,OAAO,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAKvG,OAAO,CAAC,IAAI;CAef;AAED,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAM3E;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzE;AAED,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAC3B;AACD,MAAM,WAAW,eAAe;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAC/B;AACD,MAAM,WAAW,qBAAsB,SAAQ,YAAY;IACvD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,SAAS,SAAS,EAAE,CAAA;CACtC;AACD,MAAM,MAAM,cAAc,GACpB;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GACxD;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC5E;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GAC5B;IAAE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAA;CAAE,CAAA;AAC1C,MAAM,WAAW,kBAAkB;IAC/B,MAAM,CAAC,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,qBAAqB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;IAC3F,OAAO,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACpG"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { ActorProtocolError } from "./errors.js";
|
|
2
|
+
import { projectActorPath, validateOrigin } from "./settings.js";
|
|
3
|
+
export class HttpActorHostTransport {
|
|
4
|
+
fetchRequest;
|
|
5
|
+
constructor(fetchRequest = globalThis.fetch) {
|
|
6
|
+
this.fetchRequest = fetchRequest;
|
|
7
|
+
}
|
|
8
|
+
async invoke(target, invocation) {
|
|
9
|
+
const response = await this.post(target, invocation, "invoke", {
|
|
10
|
+
requestId: invocation.requestId,
|
|
11
|
+
ownerEpoch: target.ownerEpoch,
|
|
12
|
+
method: invocation.method,
|
|
13
|
+
args: invocation.args
|
|
14
|
+
});
|
|
15
|
+
// A 401 is issued before dispatch, so refreshing this ticket cannot repeat actor code.
|
|
16
|
+
if (response.status === 401)
|
|
17
|
+
return { type: "unauthenticated" };
|
|
18
|
+
if (!response.ok)
|
|
19
|
+
throw new Error(`actor host returned HTTP ${response.status}`);
|
|
20
|
+
const reply = await responseDocument(response);
|
|
21
|
+
if (isRecord(reply)) {
|
|
22
|
+
if (reply.type === "completed" && Object.hasOwn(reply, "result"))
|
|
23
|
+
return { type: "completed", result: reply.result };
|
|
24
|
+
if (reply.type === "failed" &&
|
|
25
|
+
typeof reply.code === "string" &&
|
|
26
|
+
reply.code.length > 0 &&
|
|
27
|
+
typeof reply.message === "string")
|
|
28
|
+
return { type: "failed", code: reply.code, message: reply.message };
|
|
29
|
+
if (reply.type === "reroute")
|
|
30
|
+
return { type: "reroute" };
|
|
31
|
+
}
|
|
32
|
+
throw new ActorProtocolError("actor host response did not contain a valid outcome");
|
|
33
|
+
}
|
|
34
|
+
async publish(target, actor, effects) {
|
|
35
|
+
const response = await this.post(target, actor, "socket-effects", { ownerEpoch: target.ownerEpoch, effects });
|
|
36
|
+
if (!response.ok)
|
|
37
|
+
throw new Error(`socket effects returned HTTP ${response.status}`);
|
|
38
|
+
}
|
|
39
|
+
post(target, actor, endpoint, body) {
|
|
40
|
+
return this.fetchRequest(`${validateOrigin(target.route)}${projectActorPath(actor.projectId, actor.actorName, actor.actorId)}/${endpoint}`, {
|
|
41
|
+
method: "POST",
|
|
42
|
+
redirect: "error",
|
|
43
|
+
headers: {
|
|
44
|
+
authorization: `Bearer ${target.token}`,
|
|
45
|
+
"content-type": "application/json",
|
|
46
|
+
accept: "application/json"
|
|
47
|
+
},
|
|
48
|
+
body: JSON.stringify(body)
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
export async function responseDocument(response) {
|
|
53
|
+
try {
|
|
54
|
+
return await response.json();
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
throw new ActorProtocolError(`HTTP ${response.status} response was not valid JSON`, { cause: error });
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
export function isRecord(value) {
|
|
61
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=http.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/client-runtime/http.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { SocketProxy as ServerProxy } from "./proxy.js";
|
|
2
|
+
import type { createActorStub as ServerStub, createActorTransport as ServerTransport } from "./stub.js";
|
|
3
|
+
declare const createActorStub: typeof ServerStub;
|
|
4
|
+
declare const createActorTransport: typeof ServerTransport;
|
|
5
|
+
declare const SocketProxy: typeof ServerProxy;
|
|
6
|
+
export { createActorStub, createActorTransport, SocketProxy };
|
|
7
|
+
export { ActorInvocationError } from "./errors.js";
|
|
8
|
+
//# sourceMappingURL=index.browser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.browser.d.ts","sourceRoot":"","sources":["../../src/client-runtime/index.browser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,IAAI,WAAW,EAAE,MAAM,YAAY,CAAA;AAC5D,OAAO,KAAK,EAAE,eAAe,IAAI,UAAU,EAAE,oBAAoB,IAAI,eAAe,EAAE,MAAM,WAAW,CAAA;AAEvG,QAAA,MAAM,eAAe,EAAE,OAAO,UAE7B,CAAA;AAED,QAAA,MAAM,oBAAoB,EAAE,OAAO,eAElC,CAAA;AAED,QAAA,MAAM,WAAW,EAID,OAAO,WAAW,CAAA;AAElC,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,WAAW,EAAE,CAAA;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
const createActorStub = () => {
|
|
2
|
+
throw new Error("actors must be used on the server");
|
|
3
|
+
};
|
|
4
|
+
const createActorTransport = () => {
|
|
5
|
+
throw new Error("actors must be used on the server");
|
|
6
|
+
};
|
|
7
|
+
const SocketProxy = class {
|
|
8
|
+
constructor() {
|
|
9
|
+
throw new Error("ActorProxy must be used on the server");
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
export { createActorStub, createActorTransport, SocketProxy };
|
|
13
|
+
export { ActorInvocationError } from "./errors.js";
|
|
14
|
+
//# sourceMappingURL=index.browser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.browser.js","sourceRoot":"","sources":["../../src/client-runtime/index.browser.ts"],"names":[],"mappings":"AAGA,MAAM,eAAe,GAAsB,GAAG,EAAE;IAC5C,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;AACxD,CAAC,CAAA;AAED,MAAM,oBAAoB,GAA2B,GAAG,EAAE;IACtD,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;AACxD,CAAC,CAAA;AAED,MAAM,WAAW,GAAG;IAChB;QACI,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;IAC5D,CAAC;CAC6B,CAAA;AAElC,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,WAAW,EAAE,CAAA;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { createActorStub, createActorTransport } from "./stub.js";
|
|
2
|
+
export type { ActorRpcTransport, DurableActorsClientOptions } from "./stub.js";
|
|
3
|
+
export { ActorInvocationError } from "./errors.js";
|
|
4
|
+
export { SocketProxy } from "./proxy.js";
|
|
5
|
+
export type { ProxyActor, SocketGrant, SocketProxyDependencies, SocketProxyOptions } from "./proxy.js";
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client-runtime/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AACjE,YAAY,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAA;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client-runtime/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAEjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
type JsonPrimitive = string | number | boolean | null;
|
|
2
|
+
type JsonObject = {
|
|
3
|
+
readonly [key: string]: JsonValue;
|
|
4
|
+
};
|
|
5
|
+
type JsonValue = JsonPrimitive | JsonObject | readonly JsonValue[];
|
|
6
|
+
declare function cloneJson(value: unknown, label: string): JsonValue;
|
|
7
|
+
export { cloneJson };
|
|
8
|
+
export type { JsonValue };
|
|
9
|
+
//# sourceMappingURL=json.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/client-runtime/json.ts"],"names":[],"mappings":"AAEA,KAAK,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAA;AACrD,KAAK,UAAU,GAAG;IAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAA;AACvD,KAAK,SAAS,GAAG,aAAa,GAAG,UAAU,GAAG,SAAS,SAAS,EAAE,CAAA;AAElE,iBAAS,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,CAS3D;AAED,OAAO,EAAE,SAAS,EAAE,CAAA;AACpB,YAAY,EAAE,SAAS,EAAE,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ActorSerializationError } from "./errors.js";
|
|
2
|
+
function cloneJson(value, label) {
|
|
3
|
+
try {
|
|
4
|
+
const encoded = JSON.stringify(value);
|
|
5
|
+
if (encoded === undefined)
|
|
6
|
+
throw new ActorSerializationError(`${label} must be JSON serializable`);
|
|
7
|
+
return JSON.parse(encoded);
|
|
8
|
+
}
|
|
9
|
+
catch (error) {
|
|
10
|
+
if (error instanceof ActorSerializationError)
|
|
11
|
+
throw error;
|
|
12
|
+
throw new ActorSerializationError(`${label} must be JSON serializable`, { cause: error });
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export { cloneJson };
|
|
16
|
+
//# sourceMappingURL=json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/client-runtime/json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAA;AAMrD,SAAS,SAAS,CAAC,KAAc,EAAE,KAAa;IAC5C,IAAI,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;QACrC,IAAI,OAAO,KAAK,SAAS;YAAE,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,4BAA4B,CAAC,CAAA;QAClG,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAc,CAAA;IAC3C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,IAAI,KAAK,YAAY,uBAAuB;YAAE,MAAM,KAAK,CAAA;QACzD,MAAM,IAAI,uBAAuB,CAAC,GAAG,KAAK,4BAA4B,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;IAC7F,CAAC;AACL,CAAC;AAED,OAAO,EAAE,SAAS,EAAE,CAAA"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/** Overrides for the backend's DURABLE_ACTORS environment settings. */
|
|
2
|
+
interface SocketProxyOptions {
|
|
3
|
+
readonly projectId?: string;
|
|
4
|
+
readonly controlPlaneUrl?: string;
|
|
5
|
+
readonly apiKey?: string;
|
|
6
|
+
/** Defaults to 180000 ms; accepts 1000–600000 ms. */
|
|
7
|
+
readonly setupTimeoutMs?: number;
|
|
8
|
+
}
|
|
9
|
+
interface SocketProxyDependencies {
|
|
10
|
+
readonly fetch?: typeof globalThis.fetch;
|
|
11
|
+
}
|
|
12
|
+
interface ProxyActor<Metadata = unknown> {
|
|
13
|
+
readonly types?: Metadata;
|
|
14
|
+
}
|
|
15
|
+
/** Actor access your backend has already authorized. */
|
|
16
|
+
type SocketAuthorization<Actors extends Record<string, ProxyActor>> = {
|
|
17
|
+
[Name in keyof Actors & string]: {
|
|
18
|
+
readonly actorName: Name;
|
|
19
|
+
readonly actorId: string;
|
|
20
|
+
readonly metadata: Actors[Name] extends ProxyActor<infer Metadata> ? Metadata : never;
|
|
21
|
+
readonly homeRegion?: string;
|
|
22
|
+
readonly authorizationLifetimeMs?: number;
|
|
23
|
+
};
|
|
24
|
+
}[keyof Actors & string];
|
|
25
|
+
/** Browser connection URL and deadlines in Unix milliseconds. Treat the URL as a credential. */
|
|
26
|
+
interface SocketGrant {
|
|
27
|
+
websocketUrl: string;
|
|
28
|
+
homeRegion: string;
|
|
29
|
+
connectByMs: number;
|
|
30
|
+
authorizedUntilMs: number;
|
|
31
|
+
}
|
|
32
|
+
/** Issues browser connection URLs from your backend. */
|
|
33
|
+
declare class SocketProxy<Actors extends Record<string, ProxyActor>> {
|
|
34
|
+
private readonly actors;
|
|
35
|
+
private readonly projectId;
|
|
36
|
+
private readonly origin;
|
|
37
|
+
private readonly apiKey;
|
|
38
|
+
private readonly setupTimeoutMs;
|
|
39
|
+
private readonly fetchRequest;
|
|
40
|
+
constructor(actors: Actors, options?: SocketProxyOptions, dependencies?: SocketProxyDependencies);
|
|
41
|
+
/**
|
|
42
|
+
* Call after authenticating the user and checking actor access.
|
|
43
|
+
* Pass `websocketUrl` to the browser's `new WebSocket()`.
|
|
44
|
+
*/
|
|
45
|
+
handle(authorization: SocketAuthorization<Actors>): Promise<SocketGrant>;
|
|
46
|
+
}
|
|
47
|
+
export { SocketProxy };
|
|
48
|
+
export type { ProxyActor, SocketAuthorization, SocketGrant, SocketProxyDependencies, SocketProxyOptions };
|
|
49
|
+
//# sourceMappingURL=proxy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../src/client-runtime/proxy.ts"],"names":[],"mappings":"AAUA,uEAAuE;AACvE,UAAU,kBAAkB;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,qDAAqD;IACrD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CACnC;AAED,UAAU,uBAAuB;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;CAC3C;AAED,UAAU,UAAU,CAAC,QAAQ,GAAG,OAAO;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAA;CAC5B;AAED,wDAAwD;AACxD,KAAK,mBAAmB,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI;KACjE,IAAI,IAAI,MAAM,MAAM,GAAG,MAAM,GAAG;QAC7B,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAA;QACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;QACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,UAAU,CAAC,MAAM,QAAQ,CAAC,GAAG,QAAQ,GAAG,KAAK,CAAA;QACrF,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;QAC5B,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAA;KAC5C;CACJ,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAA;AAExB,gGAAgG;AAChG,UAAU,WAAW;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,iBAAiB,EAAE,MAAM,CAAA;CAC5B;AAED,wDAAwD;AACxD,cAAM,WAAW,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC;IAQnD,OAAO,CAAC,QAAQ,CAAC,MAAM;IAP3B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAQ;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAyB;gBAGjC,MAAM,EAAE,MAAM,EAC/B,OAAO,GAAE,kBAAuB,EAChC,YAAY,GAAE,uBAA4B;IAY9C;;;OAGG;IACG,MAAM,CAAC,aAAa,EAAE,mBAAmB,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;CA6BjF;AAaD,OAAO,EAAE,WAAW,EAAE,CAAA;AACtB,YAAY,EAAE,UAAU,EAAE,mBAAmB,EAAE,WAAW,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,CAAA"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { ActorProtocolError, ActorSerializationError, ActorValidationError } from "./errors.js";
|
|
2
|
+
import { isRecord } from "./http.js";
|
|
3
|
+
import { authorizationHeaders, configuredSettings, environmentSettings, projectActorPath, validateActorComponent } from "./settings.js";
|
|
4
|
+
/** Issues browser connection URLs from your backend. */
|
|
5
|
+
class SocketProxy {
|
|
6
|
+
actors;
|
|
7
|
+
projectId;
|
|
8
|
+
origin;
|
|
9
|
+
apiKey;
|
|
10
|
+
setupTimeoutMs;
|
|
11
|
+
fetchRequest;
|
|
12
|
+
constructor(actors, options = {}, dependencies = {}) {
|
|
13
|
+
this.actors = actors;
|
|
14
|
+
this.setupTimeoutMs = options.setupTimeoutMs ?? 180000;
|
|
15
|
+
if (!Number.isSafeInteger(this.setupTimeoutMs) || this.setupTimeoutMs < 1000 || this.setupTimeoutMs > 600000)
|
|
16
|
+
throw new Error("Socket setup timeout must be between one second and ten minutes");
|
|
17
|
+
const settings = configuredSettings(proxySettings(options));
|
|
18
|
+
this.origin = settings.controlPlaneUrl;
|
|
19
|
+
this.apiKey = settings.credential;
|
|
20
|
+
this.projectId = settings.projectId;
|
|
21
|
+
this.fetchRequest = dependencies.fetch ?? globalThis.fetch;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Call after authenticating the user and checking actor access.
|
|
25
|
+
* Pass `websocketUrl` to the browser's `new WebSocket()`.
|
|
26
|
+
*/
|
|
27
|
+
async handle(authorization) {
|
|
28
|
+
const actorName = validateActorComponent("actor name", authorization.actorName);
|
|
29
|
+
const actorId = validateActorComponent("actor ID", authorization.actorId);
|
|
30
|
+
if (!Object.hasOwn(this.actors, actorName))
|
|
31
|
+
throw new Error(`Unknown actor name: ${actorName}`);
|
|
32
|
+
const metadata = socketMetadata(authorization.metadata);
|
|
33
|
+
const authorizationLifetimeMs = authorization.authorizationLifetimeMs ?? 900000;
|
|
34
|
+
if (!Number.isSafeInteger(authorizationLifetimeMs) ||
|
|
35
|
+
authorizationLifetimeMs < 1000 ||
|
|
36
|
+
authorizationLifetimeMs > 86400000)
|
|
37
|
+
throw new Error("Socket authorization lifetime must be between one second and one day");
|
|
38
|
+
const homeRegion = authorization.homeRegion === undefined
|
|
39
|
+
? undefined
|
|
40
|
+
: validateActorComponent("home region", authorization.homeRegion);
|
|
41
|
+
const response = await this.fetchRequest(`${this.origin}${projectActorPath(this.projectId, actorName, actorId)}/find-websocket`, {
|
|
42
|
+
method: "POST",
|
|
43
|
+
redirect: "error",
|
|
44
|
+
headers: { ...authorizationHeaders(this.apiKey), "content-type": "application/json" },
|
|
45
|
+
body: JSON.stringify({ metadata, authorizationLifetimeMs, homeRegion }),
|
|
46
|
+
signal: AbortSignal.timeout(this.setupTimeoutMs)
|
|
47
|
+
});
|
|
48
|
+
if (!response.ok)
|
|
49
|
+
throw new Error(`WebSocket authorization could not be issued (HTTP ${response.status})`);
|
|
50
|
+
return socketGrant(await response.json());
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
function proxySettings(options) {
|
|
54
|
+
const environment = environmentSettings();
|
|
55
|
+
const controlPlaneUrl = options.controlPlaneUrl ?? environment.controlPlaneUrl;
|
|
56
|
+
const apiKey = options.apiKey ?? environment.apiKey;
|
|
57
|
+
return {
|
|
58
|
+
projectId: options.projectId ?? environment.projectId,
|
|
59
|
+
controlPlaneUrl: controlPlaneUrl ?? "http://127.0.0.1:7100",
|
|
60
|
+
apiKey
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
export { SocketProxy };
|
|
64
|
+
function socketGrant(value) {
|
|
65
|
+
if (!isRecord(value) ||
|
|
66
|
+
typeof value.websocketUrl !== "string" ||
|
|
67
|
+
!URL.canParse(value.websocketUrl) ||
|
|
68
|
+
!/^wss?:$/u.test(new URL(value.websocketUrl).protocol) ||
|
|
69
|
+
typeof value.homeRegion !== "string" ||
|
|
70
|
+
!value.homeRegion ||
|
|
71
|
+
!Number.isSafeInteger(value.connectByMs) ||
|
|
72
|
+
!Number.isSafeInteger(value.authorizedUntilMs))
|
|
73
|
+
throw new ActorProtocolError("invalid WebSocket authorization response");
|
|
74
|
+
return {
|
|
75
|
+
websocketUrl: value.websocketUrl,
|
|
76
|
+
homeRegion: value.homeRegion,
|
|
77
|
+
connectByMs: value.connectByMs,
|
|
78
|
+
authorizedUntilMs: value.authorizedUntilMs
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
function socketMetadata(value) {
|
|
82
|
+
let encoded;
|
|
83
|
+
try {
|
|
84
|
+
encoded = JSON.stringify(value);
|
|
85
|
+
if (!isJsonValue(value))
|
|
86
|
+
throw new Error("invalid JSON value");
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
throw new ActorSerializationError("socket metadata must be a JSON value", { cause: error });
|
|
90
|
+
}
|
|
91
|
+
if (new TextEncoder().encode(encoded).length > 64 * 1024)
|
|
92
|
+
throw new ActorValidationError("socket metadata exceeds 65536 bytes");
|
|
93
|
+
return value;
|
|
94
|
+
}
|
|
95
|
+
function isJsonValue(value) {
|
|
96
|
+
if (value === null || typeof value === "string" || typeof value === "boolean")
|
|
97
|
+
return true;
|
|
98
|
+
if (typeof value === "number")
|
|
99
|
+
return Number.isFinite(value);
|
|
100
|
+
if (Array.isArray(value))
|
|
101
|
+
return Array.from(value).every(isJsonValue);
|
|
102
|
+
return (isRecord(value) &&
|
|
103
|
+
[Object.prototype, null].includes(Object.getPrototypeOf(value)) &&
|
|
104
|
+
Object.values(value).every(isJsonValue));
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=proxy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../src/client-runtime/proxy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export interface DurableActorsClientOptions {
|
|
2
|
+
readonly projectId?: string;
|
|
3
|
+
readonly apiKey?: string;
|
|
4
|
+
readonly homeRegion?: string;
|
|
5
|
+
readonly controlPlaneUrl: string;
|
|
6
|
+
}
|
|
7
|
+
export type Environment = Record<string, string | undefined>;
|
|
8
|
+
export declare function configuredSettings(value: unknown): {
|
|
9
|
+
projectId: string;
|
|
10
|
+
credential: string | undefined;
|
|
11
|
+
homeRegion: string | undefined;
|
|
12
|
+
controlPlaneUrl: string;
|
|
13
|
+
};
|
|
14
|
+
export declare function environmentSettings(environment?: Environment): DurableActorsClientOptions;
|
|
15
|
+
export declare function runtimeEnvironment(): Environment;
|
|
16
|
+
export declare function validateOrigin(origin: string): string;
|
|
17
|
+
export declare function validateActorComponent(name: string, value: string): string;
|
|
18
|
+
export declare function projectActorPath(projectId: string, actorName: string, actorId: string): string;
|
|
19
|
+
export declare function authorizationHeaders(credential: string | undefined): Record<string, string>;
|
|
20
|
+
//# sourceMappingURL=settings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/client-runtime/settings.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,0BAA0B;IACvC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;CACnC;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;AAE5D,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO;;;;;EAoBhD;AAED,wBAAgB,mBAAmB,CAAC,WAAW,GAAE,WAAkC,GAAG,0BAA0B,CAO/G;AAED,wBAAgB,kBAAkB,IAAI,WAAW,CAEhD;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAkBrD;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAM1E;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAE9F;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAE3F"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { ActorConfigurationError, ActorValidationError } from "./errors.js";
|
|
2
|
+
export function configuredSettings(value) {
|
|
3
|
+
if (typeof value !== "object" ||
|
|
4
|
+
value === null ||
|
|
5
|
+
Array.isArray(value) ||
|
|
6
|
+
Object.keys(value).some(key => !["projectId", "apiKey", "homeRegion", "controlPlaneUrl"].includes(key)))
|
|
7
|
+
throw new ActorConfigurationError("durable-actors client settings are invalid");
|
|
8
|
+
const options = value;
|
|
9
|
+
const controlPlaneUrl = validateOrigin(options.controlPlaneUrl);
|
|
10
|
+
const local = ["localhost", "127.0.0.1", "[::1]"].includes(new URL(controlPlaneUrl).hostname);
|
|
11
|
+
const projectId = options.projectId ?? (local ? "local" : undefined);
|
|
12
|
+
if (typeof projectId !== "string" || !/^[A-Za-z0-9._-]{1,64}$/u.test(projectId) || [".", ".."].includes(projectId))
|
|
13
|
+
throw new ActorConfigurationError("durable-actors client settings are invalid: a valid projectId is required for remote connections");
|
|
14
|
+
if (options.apiKey !== undefined && (typeof options.apiKey !== "string" || !options.apiKey.trim()))
|
|
15
|
+
throw new ActorConfigurationError("durable-actors client settings are invalid: apiKey must not be empty");
|
|
16
|
+
if (options.homeRegion !== undefined)
|
|
17
|
+
validateActorComponent("home region", options.homeRegion);
|
|
18
|
+
return { projectId, credential: options.apiKey?.trim(), homeRegion: options.homeRegion, controlPlaneUrl };
|
|
19
|
+
}
|
|
20
|
+
export function environmentSettings(environment = runtimeEnvironment()) {
|
|
21
|
+
return {
|
|
22
|
+
projectId: environment.DURABLE_ACTORS_PROJECT_ID,
|
|
23
|
+
apiKey: environment.DURABLE_ACTORS_SECRET ?? environment.DURABLE_ACTORS_API_KEY,
|
|
24
|
+
homeRegion: environment.DURABLE_ACTORS_HOME_REGION,
|
|
25
|
+
controlPlaneUrl: environment.DURABLE_ACTORS_CONTROL_PLANE_URL ?? "http://127.0.0.1:7100"
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
export function runtimeEnvironment() {
|
|
29
|
+
return globalThis.process?.env ?? {};
|
|
30
|
+
}
|
|
31
|
+
export function validateOrigin(origin) {
|
|
32
|
+
let url;
|
|
33
|
+
try {
|
|
34
|
+
url = new URL(origin);
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
throw new ActorConfigurationError(`actor HTTP origin is invalid: ${origin}`, { cause: error });
|
|
38
|
+
}
|
|
39
|
+
if (!/^https?:$/u.test(url.protocol) ||
|
|
40
|
+
!url.hostname ||
|
|
41
|
+
url.username ||
|
|
42
|
+
url.password ||
|
|
43
|
+
url.pathname !== "/" ||
|
|
44
|
+
url.search ||
|
|
45
|
+
url.hash)
|
|
46
|
+
throw new ActorConfigurationError(`actor URL must be an HTTP or HTTPS origin: ${origin}`);
|
|
47
|
+
return url.origin;
|
|
48
|
+
}
|
|
49
|
+
export function validateActorComponent(name, value) {
|
|
50
|
+
if (typeof value !== "string" || !/^[A-Za-z0-9._-]+$/u.test(value) || value === "." || value === "..")
|
|
51
|
+
throw new ActorValidationError(`${name} may contain only ASCII letters, digits, '.', '-', and '_' and must not be a path segment`);
|
|
52
|
+
return value;
|
|
53
|
+
}
|
|
54
|
+
export function projectActorPath(projectId, actorName, actorId) {
|
|
55
|
+
return `/v1/projects/${encodeURIComponent(validateActorComponent("project ID", projectId))}/actors/${encodeURIComponent(validateActorComponent("actor name", actorName))}/${encodeURIComponent(validateActorComponent("actor ID", actorId))}`;
|
|
56
|
+
}
|
|
57
|
+
export function authorizationHeaders(credential) {
|
|
58
|
+
return credential === undefined ? {} : { authorization: `Bearer ${credential}` };
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/client-runtime/settings.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { DurableActorsClientOptions } from "./settings.js";
|
|
2
|
+
interface ActorRpcTransport {
|
|
3
|
+
invoke(actorName: string, actorId: string, method: string, args: readonly unknown[]): Promise<unknown>;
|
|
4
|
+
}
|
|
5
|
+
interface ActorRpcMethod {
|
|
6
|
+
readonly name: string;
|
|
7
|
+
readonly result: "void" | "value";
|
|
8
|
+
}
|
|
9
|
+
/** Creates a backend client from generated method definitions. */
|
|
10
|
+
declare function createActorStub<Stub extends object>(actorName: string, actorId: string, methods: readonly ActorRpcMethod[], transport?: ActorRpcTransport): Stub;
|
|
11
|
+
export { createActorStub };
|
|
12
|
+
export type { ActorRpcMethod, ActorRpcTransport };
|
|
13
|
+
export declare function createActorTransport(options: DurableActorsClientOptions): ActorRpcTransport;
|
|
14
|
+
export type { DurableActorsClientOptions };
|
|
15
|
+
//# sourceMappingURL=stub.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stub.d.ts","sourceRoot":"","sources":["../../src/client-runtime/stub.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAA;AAE/D,UAAU,iBAAiB;IACvB,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CACzG;AAED,UAAU,cAAc;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAA;CACpC;AAED,kEAAkE;AAClE,iBAAS,eAAe,CAAC,IAAI,SAAS,MAAM,EACxC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,SAAS,cAAc,EAAE,EAClC,SAAS,CAAC,EAAE,iBAAiB,GAC9B,IAAI,CAqBN;AAED,OAAO,EAAE,eAAe,EAAE,CAAA;AAC1B,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,CAAA;AAGjD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,0BAA0B,GAAG,iBAAiB,CAE3F;AAKD,YAAY,EAAE,0BAA0B,EAAE,CAAA"}
|