durable-actors 0.4.6 → 0.5.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 +47 -2
- package/dist/backend.d.ts +6 -0
- package/dist/backend.d.ts.map +1 -1
- package/dist/backend.js +5 -0
- package/dist/backend.js.map +1 -1
- package/dist/client-runtime/client.d.ts +5 -2
- package/dist/client-runtime/client.d.ts.map +1 -1
- package/dist/client-runtime/client.js +102 -48
- package/dist/client-runtime/client.js.map +1 -1
- package/dist/client-runtime/errors.d.ts +5 -1
- package/dist/client-runtime/errors.d.ts.map +1 -1
- package/dist/client-runtime/errors.js +5 -1
- package/dist/client-runtime/errors.js.map +1 -1
- package/dist/client-runtime/http.d.ts +8 -7
- package/dist/client-runtime/http.d.ts.map +1 -1
- package/dist/client-runtime/http.js +19 -34
- package/dist/client-runtime/http.js.map +1 -1
- package/dist/client-runtime/index.browser.d.ts +5 -2
- package/dist/client-runtime/index.browser.d.ts.map +1 -1
- package/dist/client-runtime/index.browser.js +5 -2
- package/dist/client-runtime/index.browser.js.map +1 -1
- package/dist/client-runtime/index.d.ts +2 -0
- package/dist/client-runtime/index.d.ts.map +1 -1
- package/dist/client-runtime/index.js +1 -0
- package/dist/client-runtime/index.js.map +1 -1
- package/dist/client-runtime/session.d.ts +45 -0
- package/dist/client-runtime/session.d.ts.map +1 -0
- package/dist/client-runtime/session.js +108 -0
- package/dist/client-runtime/session.js.map +1 -0
- package/dist/compiler/generators/client-artifacts.d.ts.map +1 -1
- package/dist/compiler/generators/client-artifacts.js +2 -1
- package/dist/compiler/generators/client-artifacts.js.map +1 -1
- package/dist/generated/client-runtime.d.ts.map +1 -1
- package/dist/generated/client-runtime.js +1 -1
- package/dist/generated/client-runtime.js.map +1 -1
- package/dist/templates/actor/package.json +1 -1
- package/dist/templates/ai-chat/package.json +1 -1
- package/dist/templates/chat/package.json +1 -1
- package/dist/templates/documents/package.json +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,4 +1,41 @@
|
|
|
1
|
-
|
|
1
|
+
<div align="center">
|
|
2
|
+
<a href="https://github.com/TerseAI/durable-actors/blob/main/.github/assets/team-agent.gif">
|
|
3
|
+
<picture>
|
|
4
|
+
<source media="(prefers-reduced-motion: reduce)" srcset="https://raw.githubusercontent.com/TerseAI/durable-actors/main/.github/assets/team-agent.png">
|
|
5
|
+
<img alt="Teammates share one TeamAgent chat across regions; prompts queue, replies stream to everyone, and conversation state is durably persisted." src="https://raw.githubusercontent.com/TerseAI/durable-actors/main/.github/assets/team-agent.gif" width="1000">
|
|
6
|
+
</picture>
|
|
7
|
+
</a>
|
|
8
|
+
|
|
9
|
+
<h1>Durable Actors</h1>
|
|
10
|
+
|
|
11
|
+
<p><strong>Durable state for collaborative apps and AI agents.</strong></p>
|
|
12
|
+
<p>TypeScript actors. Rust runtime. Built by Terse.</p>
|
|
13
|
+
|
|
14
|
+
<p>
|
|
15
|
+
<a href="https://github.com/TerseAI/durable-actors/stargazers"><img alt="GitHub stars" src="https://img.shields.io/github/stars/TerseAI/durable-actors?style=flat&logo=github&color=f5a623"></a>
|
|
16
|
+
<a href="https://www.npmjs.com/package/durable-actors"><img alt="durable-actors on npm" src="https://img.shields.io/npm/v/durable-actors?label=npm&logo=npm&color=cb3837"></a>
|
|
17
|
+
<a href="https://crates.io/crates/durable-actors"><img alt="durable-actors on crates.io" src="https://img.shields.io/crates/v/durable-actors?logo=rust&color=dea584"></a>
|
|
18
|
+
<a href="https://github.com/TerseAI/durable-actors/actions/workflows/ci.yml"><img alt="CI status on main" src="https://img.shields.io/github/actions/workflow/status/TerseAI/durable-actors/ci.yml?branch=main&event=push&label=CI&logo=githubactions"></a>
|
|
19
|
+
<a href="https://github.com/TerseAI/durable-actors/blob/main/LICENSE.md"><img alt="License: MIT" src="https://img.shields.io/badge/license-MIT-blue"></a>
|
|
20
|
+
</p>
|
|
21
|
+
|
|
22
|
+
<p>
|
|
23
|
+
<a href="#local-development"><img alt="Quickstart" src="https://img.shields.io/badge/quickstart-local%20development-22c55e?logo=rocket&logoColor=white"></a>
|
|
24
|
+
<a href="https://github.com/TerseAI/durable-actors/tree/main/docs"><img alt="Documentation" src="https://img.shields.io/badge/docs-Durable%20Actors-2563eb?logo=readthedocs&logoColor=white"></a>
|
|
25
|
+
<a href="https://useterse.ai"><img alt="Terse website" src="https://img.shields.io/badge/website-useterse.ai-000000"></a>
|
|
26
|
+
<a href="https://www.linkedin.com/company/terse-inc"><img alt="Terse on LinkedIn" src="https://img.shields.io/badge/LinkedIn-Terse-0a66c2"></a>
|
|
27
|
+
</p>
|
|
28
|
+
|
|
29
|
+
<p>
|
|
30
|
+
<a href="#local-development">Quickstart</a> ·
|
|
31
|
+
<a href="https://github.com/TerseAI/durable-actors/blob/main/docs/reference/typescript.md">SDK</a> ·
|
|
32
|
+
<a href="https://github.com/TerseAI/durable-actors/blob/main/docs/reference/openapi.md">HTTP API</a> ·
|
|
33
|
+
<a href="https://github.com/TerseAI/durable-actors/tree/main/examples">Examples</a> ·
|
|
34
|
+
<a href="https://github.com/TerseAI/durable-actors/blob/main/CONTRIBUTING.md">Contributing</a>
|
|
35
|
+
</p>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
---
|
|
2
39
|
|
|
3
40
|
Managing state is hard! Back in the pre-agent era, building a multiplayer app showed just how hard this could be. You had to lock resources, deal with websockets at scale, handle peak loads etc...
|
|
4
41
|
|
|
@@ -167,6 +204,14 @@ function Chat() {
|
|
|
167
204
|
|
|
168
205
|
Follow the [self-hosting guide](https://github.com/TerseAI/durable-actors/blob/main/docs/reference/self-hosting.md) to connect your backend with an API key and deploy your actors.
|
|
169
206
|
|
|
207
|
+
## Community
|
|
208
|
+
|
|
209
|
+
Bug reports, feature requests, documentation fixes, and code contributions are welcome. See the [contributing guide](https://github.com/TerseAI/durable-actors/blob/main/CONTRIBUTING.md) for repository setup and checks, and follow our [code of conduct](https://github.com/TerseAI/durable-actors/blob/main/CODE_OF_CONDUCT.md).
|
|
210
|
+
|
|
211
|
+
Use [GitHub Issues](https://github.com/TerseAI/durable-actors/issues) for bugs, ideas, and questions. Report vulnerabilities privately using our [security policy](https://github.com/TerseAI/durable-actors/blob/main/SECURITY.md).
|
|
212
|
+
|
|
213
|
+
Follow development and release notes on [GitHub Releases](https://github.com/TerseAI/durable-actors/releases).
|
|
214
|
+
|
|
170
215
|
## License
|
|
171
216
|
|
|
172
|
-
MIT © 2026 Terse
|
|
217
|
+
[MIT](https://github.com/TerseAI/durable-actors/blob/main/LICENSE.md) © 2026 Terse
|
package/dist/backend.d.ts
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
|
+
/** @module durable-actors/backend */
|
|
2
|
+
import { ActorSessionTransport } from "./client-runtime/session.js";
|
|
3
|
+
import type { ActorSessionTransportOptions } from "./client-runtime/session.js";
|
|
1
4
|
import type { ActorRpcMethod, ActorRpcTransport } from "./client-runtime/stub.js";
|
|
2
5
|
import type { DurableActorsClientOptions } from "./client/remoteClient.js";
|
|
3
6
|
export declare function createActorStub<Stub extends object>(actorName: string, actorId: string, methods: readonly ActorRpcMethod[], transport?: ActorRpcTransport): Stub;
|
|
4
7
|
/** Connects backend clients using explicit settings. Keep the API key on the server. */
|
|
5
8
|
export declare function createActorTransport(options: DurableActorsClientOptions): ActorRpcTransport;
|
|
9
|
+
export declare function createActorSessionTransport(options: ActorSessionTransportOptions): ActorSessionTransport;
|
|
10
|
+
export { ActorSessionRejectedError } from "./client-runtime/session.js";
|
|
11
|
+
export type { ActorSession, ActorSessionTransportOptions, ActorSessionTransport } from "./client-runtime/session.js";
|
|
6
12
|
export type { DurableActorsClientOptions };
|
|
7
13
|
export type { ActorRpcMethod, ActorRpcTransport };
|
|
8
14
|
//# sourceMappingURL=backend.d.ts.map
|
package/dist/backend.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AACnE,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAA;AAE/E,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAEjF,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAA;AAE1E,wBAAgB,eAAe,CAAC,IAAI,SAAS,MAAM,EAC/C,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,SAAS,cAAc,EAAE,EAClC,SAAS,CAAC,EAAE,iBAAiB,GAC9B,IAAI,CAWN;AACD,wFAAwF;AACxF,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,0BAA0B,GAAG,iBAAiB,CAU3F;AACD,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,4BAA4B,GAAG,qBAAqB,CAExG;AACD,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AACvE,YAAY,EAAE,YAAY,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AACpH,YAAY,EAAE,0BAA0B,EAAE,CAAA;AAE1C,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,CAAA"}
|
package/dist/backend.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/** @module durable-actors/backend */
|
|
2
|
+
import { ActorSessionTransport } from "./client-runtime/session.js";
|
|
2
3
|
import { createActorStub as stub } from "./client-runtime/stub.js";
|
|
3
4
|
import { actorClient } from "./client/client.js";
|
|
4
5
|
export function createActorStub(actorName, actorId, methods, transport) {
|
|
@@ -18,4 +19,8 @@ export function createActorTransport(options) {
|
|
|
18
19
|
}
|
|
19
20
|
};
|
|
20
21
|
}
|
|
22
|
+
export function createActorSessionTransport(options) {
|
|
23
|
+
return new ActorSessionTransport(options, { createTransport: createActorTransport });
|
|
24
|
+
}
|
|
25
|
+
export { ActorSessionRejectedError } from "./client-runtime/session.js";
|
|
21
26
|
//# sourceMappingURL=backend.js.map
|
package/dist/backend.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend.js","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,EAAE,eAAe,IAAI,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAElE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAGhD,MAAM,UAAU,eAAe,CAC3B,SAAiB,EACjB,OAAe,EACf,OAAkC,EAClC,SAA6B;IAE7B,OAAO,IAAI,CACP,SAAS,EACT,OAAO,EACP,OAAO,EACP,SAAS,IAAI;QACT,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI;YAChB,OAAO,CAAC,MAAM,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAA;QAChD,CAAC;KACJ,CACJ,CAAA;AACL,CAAC;AACD,wFAAwF;AACxF,MAAM,UAAU,oBAAoB,CAAC,OAAmC;IACpE,IAAI,MAA8C,CAAA;IAClD,OAAO;QACH,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI;YAChB,MAAM,KAAK,MAAM,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAC9C,CAAC,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAC5D,CAAA;YACD,OAAO,CAAC,MAAM,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAA;QACzC,CAAC;KACJ,CAAA;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"backend.js","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AAEnE,OAAO,EAAE,eAAe,IAAI,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAElE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAGhD,MAAM,UAAU,eAAe,CAC3B,SAAiB,EACjB,OAAe,EACf,OAAkC,EAClC,SAA6B;IAE7B,OAAO,IAAI,CACP,SAAS,EACT,OAAO,EACP,OAAO,EACP,SAAS,IAAI;QACT,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI;YAChB,OAAO,CAAC,MAAM,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAA;QAChD,CAAC;KACJ,CACJ,CAAA;AACL,CAAC;AACD,wFAAwF;AACxF,MAAM,UAAU,oBAAoB,CAAC,OAAmC;IACpE,IAAI,MAA8C,CAAA;IAClD,OAAO;QACH,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI;YAChB,MAAM,KAAK,MAAM,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAC9C,CAAC,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAC5D,CAAA;YACD,OAAO,CAAC,MAAM,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAA;QACzC,CAAC;KACJ,CAAA;AACL,CAAC;AACD,MAAM,UAAU,2BAA2B,CAAC,OAAqC;IAC7E,OAAO,IAAI,qBAAqB,CAAC,OAAO,EAAE,EAAE,eAAe,EAAE,oBAAoB,EAAE,CAAC,CAAA;AACxF,CAAC;AACD,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ActorHostTarget, ActorHostTransport,
|
|
1
|
+
import type { ActorHostTarget, ActorHostTransport, ActorInvocation } from "./http.js";
|
|
2
2
|
import { configuredSettings } from "./settings.js";
|
|
3
3
|
import type { DurableActorsClientOptions, Environment } from "./settings.js";
|
|
4
4
|
import { LatencyTimeline } from "./telemetry.js";
|
|
@@ -16,8 +16,11 @@ export declare class HttpActorClient {
|
|
|
16
16
|
protected readonly targets: Map<string, TargetResolution>;
|
|
17
17
|
constructor(options?: DurableActorsClientOptions, dependencies?: HttpActorClientDependencies);
|
|
18
18
|
invoke(actorName: string, actorId: string, method: string, args: readonly unknown[]): Promise<unknown>;
|
|
19
|
+
private invokeAttempt;
|
|
19
20
|
private direct;
|
|
21
|
+
private resolveAndInvoke;
|
|
20
22
|
private invalidateTarget;
|
|
23
|
+
private cachedTarget;
|
|
21
24
|
protected target(invocation: ActorAddress, timeline: LatencyTimeline): Promise<ActorHostTarget>;
|
|
22
25
|
private resolveTarget;
|
|
23
26
|
private throwResponseFailure;
|
|
@@ -25,7 +28,7 @@ export declare class HttpActorClient {
|
|
|
25
28
|
protected get settings(): RemoteActorSettings;
|
|
26
29
|
private jsonArguments;
|
|
27
30
|
}
|
|
28
|
-
type ActorAddress = Pick<
|
|
31
|
+
type ActorAddress = Pick<ActorInvocation, "requestId" | "projectId" | "actorName" | "actorId">;
|
|
29
32
|
interface TargetResolution {
|
|
30
33
|
readonly promise: Promise<ActorHostTarget>;
|
|
31
34
|
target?: ActorHostTarget;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client-runtime/client.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client-runtime/client.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAkB,eAAe,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAGrG,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,gCAAsC;gBAEpD,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;YAwB9F,aAAa;YAiCb,MAAM;YAeN,gBAAgB;IA4C9B,OAAO,CAAC,gBAAgB;YAKV,YAAY;cAeV,MAAM,CAAC,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;YAoBvF,aAAa;IA2B3B,OAAO,CAAC,oBAAoB;IAsB5B,OAAO,CAAC,UAAU;IAiBlB,SAAS,KAAK,QAAQ,IAAI,mBAAmB,CAI5C;IAED,OAAO,CAAC,aAAa;CAKxB;AAiCD,KAAK,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,WAAW,GAAG,WAAW,GAAG,WAAW,GAAG,SAAS,CAAC,CAAA;AAC9F,UAAU,gBAAgB;IACtB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IAC1C,MAAM,CAAC,EAAE,eAAe,CAAA;CAC3B;AACD,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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ActorInvocationError, ActorProtocolError } from "./errors.js";
|
|
2
|
-
import { HttpActorHostTransport, isRecord, responseDocument } from "./http.js";
|
|
2
|
+
import { HttpActorHostTransport, isRecord, parseActorHostReply, responseDocument } from "./http.js";
|
|
3
3
|
import { cloneJson } from "./json.js";
|
|
4
4
|
import { authorizationHeaders, configuredSettings, environmentSettings, projectActorPath, runtimeEnvironment, validateActorComponent, validateOrigin } from "./settings.js";
|
|
5
5
|
import { LatencyTimeline } from "./telemetry.js";
|
|
@@ -35,9 +35,7 @@ export class HttpActorClient {
|
|
|
35
35
|
this.beforeInvoke(requestId);
|
|
36
36
|
const invocation = this.invocation(requestId, actorName, actorId, method, args);
|
|
37
37
|
timeline.mark("invocation_built");
|
|
38
|
-
const
|
|
39
|
-
timeline.mark("target_resolved");
|
|
40
|
-
const result = await this.direct(target, invocation, true, timeline);
|
|
38
|
+
const result = await this.invokeAttempt(invocation, true, timeline);
|
|
41
39
|
outcome = "completed";
|
|
42
40
|
return result;
|
|
43
41
|
}
|
|
@@ -53,53 +51,106 @@ export class HttpActorClient {
|
|
|
53
51
|
});
|
|
54
52
|
}
|
|
55
53
|
}
|
|
56
|
-
async
|
|
57
|
-
|
|
58
|
-
|
|
54
|
+
async invokeAttempt(invocation, retryAvailable, timeline) {
|
|
55
|
+
let target = await this.cachedTarget(invocation, timeline);
|
|
56
|
+
let reply;
|
|
57
|
+
if (target) {
|
|
58
|
+
reply = await this.direct(target, invocation);
|
|
59
59
|
timeline.mark("host_rpc_completed");
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
if (reply.type === "
|
|
68
|
-
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
const key = actorKey(invocation.actorName, invocation.actorId);
|
|
63
|
+
const current = this.targets.get(key);
|
|
64
|
+
const resolved = await this.resolveAndInvoke(invocation);
|
|
65
|
+
target = resolved.target;
|
|
66
|
+
reply = resolved.reply;
|
|
67
|
+
if ((reply.type === "completed" || reply.type === "failed") && this.targets.get(key) === current) {
|
|
68
|
+
this.targets.set(key, { promise: Promise.resolve(target), target });
|
|
69
69
|
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
70
|
+
timeline.mark("control_plane_invocation_completed");
|
|
71
|
+
}
|
|
72
|
+
if (reply.type === "completed")
|
|
73
|
+
return reply.result;
|
|
74
|
+
if (reply.type === "failed")
|
|
75
|
+
throw new ActorInvocationError(reply.code, invocation.requestId, reply.message);
|
|
76
|
+
this.invalidateTarget(invocation, target);
|
|
77
|
+
if (!retryAvailable)
|
|
78
|
+
throw new ActorInvocationError(reply.type === "unauthenticated" ? "unauthenticated" : "unavailable", invocation.requestId, "actor host rejected the invocation before execution after recovery");
|
|
79
|
+
return this.invokeAttempt(invocation, false, timeline);
|
|
80
|
+
}
|
|
81
|
+
async direct(target, invocation) {
|
|
82
|
+
try {
|
|
83
|
+
return await this.actorHost.invoke(target, invocation);
|
|
76
84
|
}
|
|
77
85
|
catch (error) {
|
|
86
|
+
this.invalidateTarget(invocation, target);
|
|
78
87
|
if (error instanceof ActorInvocationError || error instanceof ActorProtocolError)
|
|
79
88
|
throw error;
|
|
80
|
-
this.invalidateTarget(invocation, target);
|
|
81
89
|
const message = error instanceof Error ? error.message : String(error);
|
|
82
90
|
throw new ActorInvocationError("outcome_unknown", invocation.requestId, `actor-host HTTP request failed after dispatch: ${message}`);
|
|
83
91
|
}
|
|
84
92
|
}
|
|
93
|
+
async resolveAndInvoke(invocation) {
|
|
94
|
+
let response;
|
|
95
|
+
try {
|
|
96
|
+
response = await this.fetchRequest(`${this.settings.controlPlaneUrl}${projectActorPath(this.settings.projectId, invocation.actorName, invocation.actorId)}/invoke`, {
|
|
97
|
+
method: "POST",
|
|
98
|
+
redirect: "error",
|
|
99
|
+
headers: {
|
|
100
|
+
accept: "application/json",
|
|
101
|
+
...authorizationHeaders(this.settings.credential),
|
|
102
|
+
"x-request-id": invocation.requestId,
|
|
103
|
+
"content-type": "application/json"
|
|
104
|
+
},
|
|
105
|
+
body: JSON.stringify({
|
|
106
|
+
requestId: invocation.requestId,
|
|
107
|
+
method: invocation.method,
|
|
108
|
+
args: invocation.args,
|
|
109
|
+
homeRegion: this.settings.homeRegion
|
|
110
|
+
})
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
115
|
+
throw new ActorInvocationError("outcome_unknown", invocation.requestId, `control-plane invocation failed after it may have been dispatched: ${message}`);
|
|
116
|
+
}
|
|
117
|
+
const document = await responseDocument(response);
|
|
118
|
+
if (!response.ok)
|
|
119
|
+
this.throwResponseFailure(response, document, invocation.requestId);
|
|
120
|
+
if (!isRecord(document))
|
|
121
|
+
throw new ActorProtocolError("control-plane response did not contain an invocation outcome and target");
|
|
122
|
+
const target = parseTarget(document.target);
|
|
123
|
+
const reply = isRecord(document.outcome) && document.outcome.type === "unauthenticated"
|
|
124
|
+
? { type: "unauthenticated" }
|
|
125
|
+
: parseActorHostReply(document.outcome);
|
|
126
|
+
return { target, reply };
|
|
127
|
+
}
|
|
85
128
|
invalidateTarget(invocation, target) {
|
|
86
129
|
const key = actorKey(invocation.actorName, invocation.actorId);
|
|
87
|
-
|
|
88
|
-
if (current?.target === target)
|
|
130
|
+
if (this.targets.get(key)?.target === target)
|
|
89
131
|
this.targets.delete(key);
|
|
90
132
|
}
|
|
91
|
-
async
|
|
133
|
+
async cachedTarget(invocation, timeline) {
|
|
92
134
|
const key = actorKey(invocation.actorName, invocation.actorId);
|
|
93
135
|
const current = this.targets.get(key);
|
|
94
136
|
timeline.mark("target_cache_checked");
|
|
95
|
-
if (current)
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
137
|
+
if (!current)
|
|
138
|
+
return undefined;
|
|
139
|
+
const target = await current.promise;
|
|
140
|
+
if (this.targets.get(key) !== current)
|
|
141
|
+
return this.cachedTarget(invocation, timeline);
|
|
142
|
+
if (target.expiresAtMs > this.now() + TARGET_EXPIRATION_SAFETY_MS)
|
|
143
|
+
return target;
|
|
144
|
+
this.targets.delete(key);
|
|
145
|
+
return undefined;
|
|
146
|
+
}
|
|
147
|
+
async target(invocation, timeline) {
|
|
148
|
+
const cached = await this.cachedTarget(invocation, timeline);
|
|
149
|
+
if (cached)
|
|
150
|
+
return cached;
|
|
151
|
+
const key = actorKey(invocation.actorName, invocation.actorId);
|
|
152
|
+
if (this.targets.has(key))
|
|
153
|
+
return this.target(invocation, timeline);
|
|
103
154
|
const resolving = {
|
|
104
155
|
promise: this.resolveTarget(invocation)
|
|
105
156
|
.then(target => {
|
|
@@ -137,20 +188,7 @@ export class HttpActorClient {
|
|
|
137
188
|
const document = await responseDocument(response);
|
|
138
189
|
if (!response.ok)
|
|
139
190
|
this.throwResponseFailure(response, document, invocation.requestId);
|
|
140
|
-
|
|
141
|
-
typeof document.route !== "string" ||
|
|
142
|
-
typeof document.token !== "string" ||
|
|
143
|
-
!document.token.trim() ||
|
|
144
|
-
!positiveInteger(document.ownerEpoch) ||
|
|
145
|
-
!positiveInteger(document.expiresAtMs))
|
|
146
|
-
throw new ActorProtocolError("control-plane response did not contain a valid actor host target");
|
|
147
|
-
validateOrigin(document.route);
|
|
148
|
-
return {
|
|
149
|
-
route: document.route,
|
|
150
|
-
token: document.token,
|
|
151
|
-
ownerEpoch: document.ownerEpoch,
|
|
152
|
-
expiresAtMs: document.expiresAtMs
|
|
153
|
-
};
|
|
191
|
+
return parseTarget(document);
|
|
154
192
|
}
|
|
155
193
|
throwResponseFailure(response, document, requestId) {
|
|
156
194
|
if (response.status === 401 || response.status === 403)
|
|
@@ -186,6 +224,22 @@ export class HttpActorClient {
|
|
|
186
224
|
return value;
|
|
187
225
|
}
|
|
188
226
|
}
|
|
227
|
+
function parseTarget(document) {
|
|
228
|
+
if (!isRecord(document) ||
|
|
229
|
+
typeof document.route !== "string" ||
|
|
230
|
+
typeof document.token !== "string" ||
|
|
231
|
+
!document.token.trim() ||
|
|
232
|
+
!positiveInteger(document.ownerEpoch) ||
|
|
233
|
+
!positiveInteger(document.expiresAtMs))
|
|
234
|
+
throw new ActorProtocolError("control-plane response did not contain a valid actor host target");
|
|
235
|
+
validateOrigin(document.route);
|
|
236
|
+
return {
|
|
237
|
+
route: document.route,
|
|
238
|
+
token: document.token,
|
|
239
|
+
ownerEpoch: document.ownerEpoch,
|
|
240
|
+
expiresAtMs: document.expiresAtMs
|
|
241
|
+
};
|
|
242
|
+
}
|
|
189
243
|
function targetUrl(settings, actorName, actorId) {
|
|
190
244
|
const actor = validateActorComponent("actor name", actorName);
|
|
191
245
|
const id = validateActorComponent("actor ID", actorId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client-runtime/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AACtE,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAE9E,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAErC,OAAO,EACH,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,cAAc,EACjB,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAGhD,MAAM,2BAA2B,GAAG,KAAK,CAAA;AAEzC,MAAM,OAAO,eAAe;IACP,YAAY,CAA6B;IAClD,aAAa,CAAiC;IACnC,WAAW,CAAa;IACxB,YAAY,CAAyB;IACrC,SAAS,CAAc;IACvB,SAAS,CAAoB;IAC7B,GAAG,CAAc;IACjB,YAAY,CAAc;IAC1B,SAAS,CAAe;IACxB,OAAO,GAAG,IAAI,GAAG,EAA4B,CAAA;IAEhE,YAAY,OAAoC,EAAE,eAA4C,EAAE;QAC5F,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,YAAY,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QAC3D,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,WAAW,IAAI,kBAAkB,EAAE,CAAA;QACnE,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAA;QAC1D,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,SAAS,IAAI,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAA;QACjF,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,SAAS,IAAI,IAAI,sBAAsB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QACxF,uEAAuE;QACvE,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,CAAA;QACjF,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,YAAY,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAA;QAC1E,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,SAAS,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QACrD,IAAI,CAAC,aAAa,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAA;IACxF,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,SAAiB,EAAE,OAAe,EAAE,MAAc,EAAE,IAAwB;QACrF,MAAM,SAAS,GAAG,sBAAsB,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAA;QACxE,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QACvD,IAAI,OAAO,GAAG,QAAQ,CAAA;QACtB,IAAI,CAAC;YACD,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;YAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;YAC/E,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;YACjC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;YACtD,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;YAChC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;YACpE,OAAO,GAAG,WAAW,CAAA;YACrB,OAAO,MAAM,CAAA;QACjB,CAAC;gBAAS,CAAC;YACP,IAAI,CAAC,SAAS,CAAC;gBACX,KAAK,EAAE,yBAAyB;gBAChC,UAAU,EAAE,SAAS;gBACrB,UAAU,EAAE,SAAS;gBACrB,QAAQ,EAAE,OAAO;gBACjB,MAAM;gBACN,GAAG,QAAQ,CAAC,MAAM,EAAE;gBACpB,OAAO;aACV,CAAC,CAAA;QACN,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,MAAM,CAChB,MAAuB,EACvB,UAAiC,EACjC,cAAuB,EACvB,QAAyB;QAEzB,IAAI,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;YAC7D,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;YACnC,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBAC7B,QAAQ,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAA;gBACzC,OAAO,KAAK,CAAC,MAAM,CAAA;YACvB,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;gBAAE,MAAM,IAAI,oBAAoB,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;YAC5G,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;YACzC,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtD,MAAM,IAAI,oBAAoB,CAC1B,iBAAiB,EACjB,UAAU,CAAC,SAAS,EACpB,qDAAqD,CACxD,CAAA;YACL,CAAC;YACD,IAAI,CAAC,cAAc;gBACf,MAAM,IAAI,oBAAoB,CAC1B,aAAa,EACb,UAAU,CAAC,SAAS,EACpB,KAAK,CAAC,IAAI,KAAK,gBAAgB;oBAC3B,CAAC,CAAC,kDAAkD;oBACpD,CAAC,CAAC,qDAAqD,CAC9D,CAAA;YACL,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;YACxD,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;QAC7D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,KAAK,YAAY,oBAAoB,IAAI,KAAK,YAAY,kBAAkB;gBAAE,MAAM,KAAK,CAAA;YAC7F,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;YACzC,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACtE,MAAM,IAAI,oBAAoB,CAC1B,iBAAiB,EACjB,UAAU,CAAC,SAAS,EACpB,kDAAkD,OAAO,EAAE,CAC9D,CAAA;QACL,CAAC;IACL,CAAC;IAEO,gBAAgB,CAAC,UAAwB,EAAE,MAAuB;QACtE,MAAM,GAAG,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC,CAAA;QAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACrC,IAAI,OAAO,EAAE,MAAM,KAAK,MAAM;YAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAC5D,CAAC;IAES,KAAK,CAAC,MAAM,CAAC,UAAwB,EAAE,QAAyB;QACtE,MAAM,GAAG,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC,CAAA;QAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACrC,QAAQ,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;QACrC,IAAI,OAAO,EAAE,CAAC;YACV,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAA;YACpC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,OAAO;gBAAE,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;YAC/E,IAAI,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,2BAA2B;gBAAE,OAAO,MAAM,CAAA;YAChF,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC5B,CAAC;QACD,MAAM,SAAS,GAAqB;YAChC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;iBAClC,IAAI,CAAC,MAAM,CAAC,EAAE;gBACX,SAAS,CAAC,MAAM,GAAG,MAAM,CAAA;gBACzB,OAAO,MAAM,CAAA;YACjB,CAAC,CAAC;iBACD,KAAK,CAAC,KAAK,CAAC,EAAE;gBACX,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS;oBAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;gBACjE,MAAM,KAAK,CAAA;YACf,CAAC,CAAC;SACT,CAAA;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;QAChC,OAAO,SAAS,CAAC,OAAO,CAAA;IAC5B,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,UAAwB;QAChD,IAAI,QAAkB,CAAA;QACtB,IAAI,CAAC;YACD,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE;gBACnG,MAAM,EAAE,MAAM;gBACd,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE;oBACL,MAAM,EAAE,kBAAkB;oBAC1B,GAAG,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;oBACjD,cAAc,EAAE,UAAU,CAAC,SAAS;oBACpC,cAAc,EAAE,kBAAkB;iBACrC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;aACjE,CAAC,CAAA;QACN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACtE,MAAM,IAAI,oBAAoB,CAC1B,aAAa,EACb,UAAU,CAAC,SAAS,EACpB,sDAAsD,OAAO,EAAE,CAClE,CAAA;QACL,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAA;QACjD,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,SAAS,CAAC,CAAA;QACrF,IACI,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACnB,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ;YAClC,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ;YAClC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE;YACtB,CAAC,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC;YACrC,CAAC,eAAe,CAAC,QAAQ,CAAC,WAAW,CAAC;YAEtC,MAAM,IAAI,kBAAkB,CAAC,kEAAkE,CAAC,CAAA;QACpG,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAC9B,OAAO;YACH,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,WAAW,EAAE,QAAQ,CAAC,WAAW;SACpC,CAAA;IACL,CAAC;IAEO,oBAAoB,CAAC,QAAkB,EAAE,QAAiB,EAAE,SAAiB;QACjF,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;YAClD,MAAM,IAAI,oBAAoB,CAC1B,iBAAiB,EACjB,SAAS,EACT,wDAAwD,CAC3D,CAAA;QACL,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;QAC/D,IACI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAClB,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ;YAChC,CAAC,OAAO,CAAC,IAAI;YACb,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ;YAEnC,MAAM,IAAI,kBAAkB,CAAC,sBAAsB,QAAQ,CAAC,MAAM,yCAAyC,CAAC,CAAA;QAChH,MAAM,IAAI,oBAAoB,CAC1B,OAAO,CAAC,IAAI,EACZ,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EACrE,OAAO,CAAC,OAAO,CAClB,CAAA;IACL,CAAC;IAEO,UAAU,CACd,SAAiB,EACjB,SAAiB,EACjB,OAAe,EACf,MAAc,EACd,IAAwB;QAExB,OAAO;YACH,SAAS;YACT,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS;YAClC,SAAS,EAAE,sBAAsB,CAAC,YAAY,EAAE,SAAS,CAAC;YAC1D,OAAO,EAAE,sBAAsB,CAAC,UAAU,EAAE,OAAO,CAAC;YACpD,MAAM,EAAE,sBAAsB,CAAC,cAAc,EAAE,MAAM,CAAC;YACtD,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;SACjC,CAAA;IACL,CAAC;IAED,IAAc,QAAQ;QAClB,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,aAAa,CAAA;QAC/D,IAAI,CAAC,aAAa,GAAG,kBAAkB,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAA;QAC9E,OAAO,IAAI,CAAC,aAAa,CAAA;IAC7B,CAAC;IAEO,aAAa,CAAC,IAAwB;QAC1C,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAA;QAChD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,kBAAkB,CAAC,sCAAsC,CAAC,CAAA;QAC/F,OAAO,KAAK,CAAA;IAChB,CAAC;CACJ;AAED,SAAS,SAAS,CAAC,QAA6B,EAAE,SAAiB,EAAE,OAAe;IAChF,MAAM,KAAK,GAAG,sBAAsB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA;IAC7D,MAAM,EAAE,GAAG,sBAAsB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IACtD,OAAO,GAAG,QAAQ,CAAC,eAAe,GAAG,gBAAgB,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,aAAa,CAAA;AACrG,CAAC;AAED,SAAS,QAAQ,CAAC,SAAiB,EAAE,OAAe;IAChD,OAAO,GAAG,SAAS,SAAS,OAAO,EAAE,CAAA;AACzC,CAAC;AACD,SAAS,eAAe,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAA;AAChF,CAAC"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client-runtime/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,10 @@ declare class ActorInvocationError extends Error {
|
|
|
12
12
|
readonly requestId: string;
|
|
13
13
|
constructor(code: string, requestId: string, message: string);
|
|
14
14
|
}
|
|
15
|
+
/** Signals that the authorization service explicitly revoked or denied access. */
|
|
16
|
+
declare class ActorSessionRejectedError extends Error {
|
|
17
|
+
readonly name = "ActorSessionRejectedError";
|
|
18
|
+
}
|
|
15
19
|
declare class ActorSessionError extends Error {
|
|
16
20
|
constructor(message: string, options?: ErrorOptions);
|
|
17
21
|
}
|
|
@@ -24,7 +28,7 @@ declare class ActorSerializationError extends Error {
|
|
|
24
28
|
declare class ActorValidationError extends Error {
|
|
25
29
|
constructor(message: string);
|
|
26
30
|
}
|
|
27
|
-
export { ActorConfigurationError, ActorDefinitionError, ActorInvocationError, ActorProtocolError, ActorSerializationError, ActorSessionError, ActorValidationError };
|
|
31
|
+
export { ActorConfigurationError, ActorDefinitionError, ActorInvocationError, ActorProtocolError, ActorSerializationError, ActorSessionError, ActorSessionRejectedError, ActorValidationError };
|
|
28
32
|
declare function errorMessage(error: unknown): string;
|
|
29
33
|
export { errorMessage };
|
|
30
34
|
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -1 +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"}
|
|
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,kFAAkF;AAClF,cAAM,yBAA0B,SAAQ,KAAK;IACzC,SAAkB,IAAI,+BAA8B;CACvD;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,yBAAyB,EACzB,oBAAoB,EACvB,CAAA;AAED,iBAAS,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAE5C;AAED,OAAO,EAAE,YAAY,EAAE,CAAA"}
|
|
@@ -23,6 +23,10 @@ class ActorInvocationError extends Error {
|
|
|
23
23
|
this.requestId = requestId;
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
|
+
/** Signals that the authorization service explicitly revoked or denied access. */
|
|
27
|
+
class ActorSessionRejectedError extends Error {
|
|
28
|
+
name = "ActorSessionRejectedError";
|
|
29
|
+
}
|
|
26
30
|
class ActorSessionError extends Error {
|
|
27
31
|
constructor(message, options) {
|
|
28
32
|
super(message, options);
|
|
@@ -47,7 +51,7 @@ class ActorValidationError extends Error {
|
|
|
47
51
|
this.name = "ActorValidationError";
|
|
48
52
|
}
|
|
49
53
|
}
|
|
50
|
-
export { ActorConfigurationError, ActorDefinitionError, ActorInvocationError, ActorProtocolError, ActorSerializationError, ActorSessionError, ActorValidationError };
|
|
54
|
+
export { ActorConfigurationError, ActorDefinitionError, ActorInvocationError, ActorProtocolError, ActorSerializationError, ActorSessionError, ActorSessionRejectedError, ActorValidationError };
|
|
51
55
|
function errorMessage(error) {
|
|
52
56
|
return error instanceof Error ? error.message : String(error);
|
|
53
57
|
}
|
|
@@ -1 +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"}
|
|
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,kFAAkF;AAClF,MAAM,yBAA0B,SAAQ,KAAK;IACvB,IAAI,GAAG,2BAA2B,CAAA;CACvD;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,yBAAyB,EACzB,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"}
|
|
@@ -2,11 +2,11 @@ import type { JsonValue } from "./json.js";
|
|
|
2
2
|
export declare class HttpActorHostTransport implements ActorHostTransport {
|
|
3
3
|
private readonly fetchRequest;
|
|
4
4
|
constructor(fetchRequest?: typeof globalThis.fetch);
|
|
5
|
-
invoke(target: ActorHostTarget, invocation:
|
|
5
|
+
invoke(target: ActorHostTarget, invocation: ActorInvocation): Promise<ActorHostReply>;
|
|
6
6
|
publish(target: ActorHostTarget, actor: ActorAddress, effects: readonly unknown[]): Promise<void>;
|
|
7
|
-
private ping;
|
|
8
7
|
private post;
|
|
9
8
|
}
|
|
9
|
+
export declare function parseActorHostReply(reply: unknown): ActorHostReply;
|
|
10
10
|
export declare function responseDocument(response: Response): Promise<unknown>;
|
|
11
11
|
export declare function isRecord(value: unknown): value is Record<string, unknown>;
|
|
12
12
|
export interface ActorAddress {
|
|
@@ -20,11 +20,12 @@ export interface ActorHostTarget {
|
|
|
20
20
|
readonly ownerEpoch: number;
|
|
21
21
|
readonly expiresAtMs: number;
|
|
22
22
|
}
|
|
23
|
-
export interface
|
|
23
|
+
export interface ActorInvocation extends ActorAddress {
|
|
24
24
|
readonly requestId: string;
|
|
25
25
|
readonly method: string;
|
|
26
26
|
readonly args: readonly JsonValue[];
|
|
27
27
|
}
|
|
28
|
+
type ActorRejectionReason = "stale_owner" | "host_unavailable" | "upstream_not_reached";
|
|
28
29
|
export type ActorHostReply = {
|
|
29
30
|
readonly type: "completed";
|
|
30
31
|
readonly result: unknown;
|
|
@@ -32,15 +33,15 @@ export type ActorHostReply = {
|
|
|
32
33
|
readonly type: "failed";
|
|
33
34
|
readonly code: string;
|
|
34
35
|
readonly message: string;
|
|
35
|
-
} | {
|
|
36
|
-
readonly type: "reroute";
|
|
37
36
|
} | {
|
|
38
37
|
readonly type: "unauthenticated";
|
|
39
38
|
} | {
|
|
40
|
-
readonly type: "
|
|
39
|
+
readonly type: "not_executed";
|
|
40
|
+
readonly reason: ActorRejectionReason;
|
|
41
41
|
};
|
|
42
42
|
export interface ActorHostTransport {
|
|
43
|
-
invoke(target: ActorHostTarget, invocation:
|
|
43
|
+
invoke(target: ActorHostTarget, invocation: ActorInvocation): Promise<ActorHostReply>;
|
|
44
44
|
publish(target: ActorHostTarget, actor: ActorAddress, effects: readonly unknown[]): Promise<void>;
|
|
45
45
|
}
|
|
46
|
+
export {};
|
|
46
47
|
//# sourceMappingURL=http.d.ts.map
|
|
@@ -1 +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,
|
|
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,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IAmBrF,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,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,CAelE;AAoBD,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,eAAgB,SAAQ,YAAY;IACjD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,SAAS,SAAS,EAAE,CAAA;CACtC;AACD,KAAK,oBAAoB,GAAG,aAAa,GAAG,kBAAkB,GAAG,sBAAsB,CAAA;AAEvF,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,iBAAiB,CAAA;CAAE,GACpC;IAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAA;CAAE,CAAA;AAC9E,MAAM,WAAW,kBAAkB;IAC/B,MAAM,CAAC,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;IACrF,OAAO,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACpG"}
|
|
@@ -6,10 +6,6 @@ export class HttpActorHostTransport {
|
|
|
6
6
|
this.fetchRequest = fetchRequest;
|
|
7
7
|
}
|
|
8
8
|
async invoke(target, invocation) {
|
|
9
|
-
// TODO: Replace this extra round trip with durable idempotency keys for safe invocation retries.
|
|
10
|
-
const readiness = await this.ping(target, invocation);
|
|
11
|
-
if (readiness !== "ready")
|
|
12
|
-
return { type: readiness };
|
|
13
9
|
let response;
|
|
14
10
|
try {
|
|
15
11
|
response = await this.post(target, invocation, "invoke", {
|
|
@@ -21,7 +17,7 @@ export class HttpActorHostTransport {
|
|
|
21
17
|
}
|
|
22
18
|
catch (error) {
|
|
23
19
|
if (connectionRefused(error))
|
|
24
|
-
return { type: "
|
|
20
|
+
return { type: "not_executed", reason: "upstream_not_reached" };
|
|
25
21
|
throw error;
|
|
26
22
|
}
|
|
27
23
|
// A 401 is issued before dispatch, so refreshing this ticket cannot repeat actor code.
|
|
@@ -29,41 +25,13 @@ export class HttpActorHostTransport {
|
|
|
29
25
|
return { type: "unauthenticated" };
|
|
30
26
|
if (!response.ok)
|
|
31
27
|
throw new Error(`actor host returned HTTP ${response.status}`);
|
|
32
|
-
|
|
33
|
-
if (isRecord(reply)) {
|
|
34
|
-
if (reply.type === "completed" && Object.hasOwn(reply, "result"))
|
|
35
|
-
return { type: "completed", result: reply.result };
|
|
36
|
-
if (reply.type === "failed" &&
|
|
37
|
-
typeof reply.code === "string" &&
|
|
38
|
-
reply.code.length > 0 &&
|
|
39
|
-
typeof reply.message === "string")
|
|
40
|
-
return { type: "failed", code: reply.code, message: reply.message };
|
|
41
|
-
if (reply.type === "reroute")
|
|
42
|
-
return { type: "reroute" };
|
|
43
|
-
}
|
|
44
|
-
throw new ActorProtocolError("actor host response did not contain a valid outcome");
|
|
28
|
+
return parseActorHostReply(await responseDocument(response));
|
|
45
29
|
}
|
|
46
30
|
async publish(target, actor, effects) {
|
|
47
31
|
const response = await this.post(target, actor, "socket-effects", { ownerEpoch: target.ownerEpoch, effects });
|
|
48
32
|
if (!response.ok)
|
|
49
33
|
throw new Error(`socket effects returned HTTP ${response.status}`);
|
|
50
34
|
}
|
|
51
|
-
async ping(target, actor) {
|
|
52
|
-
try {
|
|
53
|
-
const response = await this.fetchRequest(`${validateOrigin(target.route)}${projectActorPath(actor.projectId, actor.actorName, actor.actorId)}/invoke`, {
|
|
54
|
-
method: "HEAD",
|
|
55
|
-
redirect: "error",
|
|
56
|
-
headers: { authorization: `Bearer ${target.token}` },
|
|
57
|
-
signal: AbortSignal.timeout(5_000)
|
|
58
|
-
});
|
|
59
|
-
if (response.status === 401)
|
|
60
|
-
return "unauthenticated";
|
|
61
|
-
return response.status === 204 ? "ready" : "not_dispatched";
|
|
62
|
-
}
|
|
63
|
-
catch {
|
|
64
|
-
return "not_dispatched";
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
35
|
post(target, actor, endpoint, body) {
|
|
68
36
|
return this.fetchRequest(`${validateOrigin(target.route)}${projectActorPath(actor.projectId, actor.actorName, actor.actorId)}/${endpoint}`, {
|
|
69
37
|
method: "POST",
|
|
@@ -77,6 +45,23 @@ export class HttpActorHostTransport {
|
|
|
77
45
|
});
|
|
78
46
|
}
|
|
79
47
|
}
|
|
48
|
+
export function parseActorHostReply(reply) {
|
|
49
|
+
if (isRecord(reply)) {
|
|
50
|
+
if (reply.type === "completed" && Object.hasOwn(reply, "result"))
|
|
51
|
+
return { type: "completed", result: reply.result };
|
|
52
|
+
if (reply.type === "failed" &&
|
|
53
|
+
typeof reply.code === "string" &&
|
|
54
|
+
reply.code.length > 0 &&
|
|
55
|
+
typeof reply.message === "string")
|
|
56
|
+
return { type: "failed", code: reply.code, message: reply.message };
|
|
57
|
+
if (reply.type === "not_executed" && rejectionReason(reply.reason))
|
|
58
|
+
return { type: "not_executed", reason: reply.reason };
|
|
59
|
+
}
|
|
60
|
+
throw new ActorProtocolError("actor host response did not contain a valid outcome");
|
|
61
|
+
}
|
|
62
|
+
function rejectionReason(value) {
|
|
63
|
+
return value === "stale_owner" || value === "host_unavailable" || value === "upstream_not_reached";
|
|
64
|
+
}
|
|
80
65
|
function connectionRefused(error, ancestors = new Set()) {
|
|
81
66
|
if (!isRecord(error) || ancestors.has(error))
|
|
82
67
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/client-runtime/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAEhD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAEhE,MAAM,OAAO,sBAAsB;IACF;IAA7B,YAA6B,eAAwC,UAAU,CAAC,KAAK;QAAxD,iBAAY,GAAZ,YAAY,CAA4C;IAAG,CAAC;IAEzF,KAAK,CAAC,MAAM,CAAC,MAAuB,EAAE,
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/client-runtime/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAEhD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAEhE,MAAM,OAAO,sBAAsB;IACF;IAA7B,YAA6B,eAAwC,UAAU,CAAC,KAAK;QAAxD,iBAAY,GAAZ,YAAY,CAA4C;IAAG,CAAC;IAEzF,KAAK,CAAC,MAAM,CAAC,MAAuB,EAAE,UAA2B;QAC7D,IAAI,QAAkB,CAAA;QACtB,IAAI,CAAC;YACD,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE;gBACrD,SAAS,EAAE,UAAU,CAAC,SAAS;gBAC/B,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,MAAM,EAAE,UAAU,CAAC,MAAM;gBACzB,IAAI,EAAE,UAAU,CAAC,IAAI;aACxB,CAAC,CAAA;QACN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,iBAAiB,CAAC,KAAK,CAAC;gBAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,sBAAsB,EAAE,CAAA;YAC7F,MAAM,KAAK,CAAA;QACf,CAAC;QACD,uFAAuF;QACvF,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAA;QAC/D,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;QAChF,OAAO,mBAAmB,CAAC,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAA;IAChE,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAuB,EAAE,KAAmB,EAAE,OAA2B;QACnF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,CAAC,CAAA;QAC7G,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;IACxF,CAAC;IAEO,IAAI,CAAC,MAAuB,EAAE,KAAmB,EAAE,QAAgB,EAAE,IAAa;QACtF,OAAO,IAAI,CAAC,YAAY,CACpB,GAAG,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,QAAQ,EAAE,EACjH;YACI,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE;gBACL,aAAa,EAAE,UAAU,MAAM,CAAC,KAAK,EAAE;gBACvC,cAAc,EAAE,kBAAkB;gBAClC,MAAM,EAAE,kBAAkB;aAC7B;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC7B,CACJ,CAAA;IACL,CAAC;CACJ;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAC9C,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAClB,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC;YAC5D,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAA;QACtD,IACI,KAAK,CAAC,IAAI,KAAK,QAAQ;YACvB,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;YAC9B,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;YACrB,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;YAEjC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAA;QACvE,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,IAAI,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC;YAC9D,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAA;IAC7D,CAAC;IACD,MAAM,IAAI,kBAAkB,CAAC,qDAAqD,CAAC,CAAA;AACvF,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACnC,OAAO,KAAK,KAAK,aAAa,IAAI,KAAK,KAAK,kBAAkB,IAAI,KAAK,KAAK,sBAAsB,CAAA;AACtG,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc,EAAE,YAAY,IAAI,GAAG,EAAW;IACrE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IAC1D,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAC7C,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc;QAAE,OAAO,KAAK,CAAA;IAC3E,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;QAC1B,OAAO,CACH,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;YAC3B,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;YACvB,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CACjE,CAAA;IACL,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc;QAAE,OAAO,KAAK,CAAC,OAAO,KAAK,SAAS,CAAA;IACrE,OAAO,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;AAClD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,QAAkB;IACrD,IAAI,CAAC;QACD,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;IAChC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,IAAI,kBAAkB,CAAC,QAAQ,QAAQ,CAAC,MAAM,8BAA8B,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;IACzG,CAAC;AACL,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAC/E,CAAC"}
|