terse-sdk 0.6.4 → 0.7.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.
@@ -0,0 +1,25 @@
1
+ import { type ActorRpcTransport, type ActorSessionTransportOptions, createActorTransport } from "durable-actors/backend";
2
+ import type { ActorEndpoint } from "terse-types/ActorEndpoint";
3
+ interface ConnectionSettings {
4
+ endpoint: ActorEndpoint;
5
+ apiKey: string;
6
+ }
7
+ interface AccessDependencies {
8
+ fetch: typeof globalThis.fetch;
9
+ createTransport: typeof createActorTransport;
10
+ createSessionTransport: (options: ActorSessionTransportOptions) => ActorRpcTransport & {
11
+ dispose(): void;
12
+ };
13
+ }
14
+ export declare class ActorAccessTransport implements ActorRpcTransport {
15
+ private readonly settings;
16
+ private readonly connections;
17
+ private readonly dependencies;
18
+ constructor(settings: () => ConnectionSettings, dependencies?: Partial<AccessDependencies>);
19
+ invoke(actorName: string, actorId: string, method: string, args: readonly unknown[]): Promise<unknown>;
20
+ dispose(): void;
21
+ private connection;
22
+ private getSession;
23
+ }
24
+ export {};
25
+ //# sourceMappingURL=actorAccess.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actorAccess.d.ts","sourceRoot":"","sources":["../src/actorAccess.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAA6B,KAAK,4BAA4B,EAA+B,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAChL,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAK9D,UAAU,kBAAkB;IACxB,QAAQ,EAAE,aAAa,CAAA;IACvB,MAAM,EAAE,MAAM,CAAA;CACjB;AAED,UAAU,kBAAkB;IACxB,KAAK,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;IAC9B,eAAe,EAAE,OAAO,oBAAoB,CAAA;IAC5C,sBAAsB,EAAE,CAAC,OAAO,EAAE,4BAA4B,KAAK,iBAAiB,GAAG;QAAE,OAAO,IAAI,IAAI,CAAA;KAAE,CAAA;CAC7G;AAID,qBAAa,oBAAqB,YAAW,iBAAiB;IAKtD,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAJ7B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqC;IACjE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;gBAG5B,QAAQ,EAAE,MAAM,kBAAkB,EACnD,YAAY,GAAE,OAAO,CAAC,kBAAkB,CAAM;IAK5C,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAI5G,OAAO,IAAI,IAAI;IAKf,OAAO,CAAC,UAAU;YAsBJ,UAAU;CAe3B"}
@@ -0,0 +1,57 @@
1
+ import { ActorSessionRejectedError, createActorSessionTransport, createActorTransport } from "durable-actors/backend";
2
+ import { z } from "zod";
3
+ const sessionSchema = z.object({ projectId: z.string(), controlPlaneUrl: z.url().refine(url => new URL(url).protocol === "https:"), token: z.string().min(1), expiresAtMs: z.number().int() });
4
+ export class ActorAccessTransport {
5
+ settings;
6
+ connections = new Map();
7
+ dependencies;
8
+ constructor(settings, dependencies = {}) {
9
+ this.settings = settings;
10
+ this.dependencies = { fetch: (input, init) => globalThis.fetch(input, init), createTransport: createActorTransport, createSessionTransport: createActorSessionTransport, ...dependencies };
11
+ }
12
+ async invoke(actorName, actorId, method, args) {
13
+ return this.connection(this.settings()).invoke(actorName, actorId, method, args);
14
+ }
15
+ dispose() {
16
+ for (const transport of this.connections.values())
17
+ transport.dispose?.();
18
+ this.connections.clear();
19
+ }
20
+ connection(settings) {
21
+ const key = JSON.stringify([settings.endpoint.actorUrl, settings.apiKey]);
22
+ const current = this.connections.get(key);
23
+ if (current) {
24
+ this.connections.delete(key);
25
+ this.connections.set(key, current);
26
+ return current;
27
+ }
28
+ if (this.connections.size >= 128) {
29
+ const oldest = this.connections.entries().next().value;
30
+ oldest[1].dispose?.();
31
+ this.connections.delete(oldest[0]);
32
+ }
33
+ const { endpoint, apiKey } = settings;
34
+ const transport = endpoint.kind === "runtime"
35
+ ? this.dependencies.createTransport({ projectId: endpoint.projectId, controlPlaneUrl: endpoint.origin, apiKey: apiKey || undefined })
36
+ : this.dependencies.createSessionTransport({ projectId: endpoint.projectId, getSession: () => this.getSession(settings) });
37
+ this.connections.set(key, transport);
38
+ return transport;
39
+ }
40
+ async getSession({ endpoint, apiKey }) {
41
+ const response = await this.dependencies.fetch(`${endpoint.actorUrl}/access`, {
42
+ method: "POST",
43
+ headers: { Authorization: `Bearer ${apiKey}`, Accept: "application/json" },
44
+ redirect: "error",
45
+ signal: AbortSignal.timeout(10_000)
46
+ });
47
+ if (!response.ok) {
48
+ await response.body?.cancel();
49
+ const message = `Actor authorization failed (HTTP ${response.status})`;
50
+ if (response.status === 401 || response.status === 403)
51
+ throw new ActorSessionRejectedError(message);
52
+ throw new Error(message);
53
+ }
54
+ return sessionSchema.parse(await response.json());
55
+ }
56
+ }
57
+ //# sourceMappingURL=actorAccess.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actorAccess.js","sourceRoot":"","sources":["../src/actorAccess.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"actorProxy.d.ts","sourceRoot":"","sources":["../src/actorProxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAMxF,MAAM,WAAW,iBAAiB;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;CAClC;AAUD,qBAAa,UAAU,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC;IAEzD,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBADP,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,iBAAiB;IAGzC,MAAM,CAAC,aAAa,EAAE,mBAAmB,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;CAqBjF;AAED,YAAY,EAAE,UAAU,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA"}
1
+ {"version":3,"file":"actorProxy.d.ts","sourceRoot":"","sources":["../src/actorProxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAMxF,MAAM,WAAW,iBAAiB;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;CAClC;AASD,qBAAa,UAAU,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC;IAEzD,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBADP,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,iBAAiB;IAGzC,MAAM,CAAC,aAAa,EAAE,mBAAmB,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;CAqBjF;AAED,YAAY,EAAE,UAAU,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA"}
@@ -3,7 +3,6 @@ import { z } from "zod";
3
3
  import { resolveTerseBackendUrl } from "./backendRequest.js";
4
4
  const grantSchema = z.object({
5
5
  websocketUrl: z.url().refine(value => ["ws:", "wss:"].includes(new URL(value).protocol)),
6
- transport: z.literal("websocket"),
7
6
  homeRegion: z.string().min(1),
8
7
  connectByMs: z.number().int(),
9
8
  authorizedUntilMs: z.number().int()
@@ -1 +1 @@
1
- {"version":3,"file":"actorProxy.js","sourceRoot":"","sources":["../src/actorProxy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAS5D,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IACzB,YAAY,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC;IACxF,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;IACjC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC7B,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;CACtC,CAAC,CAAA;AAEF,MAAM,OAAO,UAAU;IAEE;IACA;IAFrB,YACqB,MAAc,EACd,OAA0B;QAD1B,WAAM,GAAN,MAAM,CAAQ;QACd,YAAO,GAAP,OAAO,CAAmB;IAC5C,CAAC;IAEJ,KAAK,CAAC,MAAM,CAAC,aAA0C;QACnD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;QAC/E,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,uBAAuB,EAAE,GAAG,aAAa,CAAA;QAC/E,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,SAAS,EAAE,CAAC,CAAA;QAC/F,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAE7C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,sBAAsB,EAAE,CAAC,CAAA;QACxJ,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE;YACjE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACL,aAAa,EAAE,UAAU,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;gBAClD,cAAc,EAAE,kBAAkB;gBAClC,MAAM,EAAE,kBAAkB;aAC7B;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,uBAAuB,EAAE,CAAC;YAC7F,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;YACnC,QAAQ,EAAE,OAAO;SACpB,CAAC,CAAA;QACF,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAA;QACzG,OAAO,WAAW,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;IACnD,CAAC;CACJ"}
1
+ {"version":3,"file":"actorProxy.js","sourceRoot":"","sources":["../src/actorProxy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAS5D,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IACzB,YAAY,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC;IACxF,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC7B,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;CACtC,CAAC,CAAA;AAEF,MAAM,OAAO,UAAU;IAEE;IACA;IAFrB,YACqB,MAAc,EACd,OAA0B;QAD1B,WAAM,GAAN,MAAM,CAAQ;QACd,YAAO,GAAP,OAAO,CAAmB;IAC5C,CAAC;IAEJ,KAAK,CAAC,MAAM,CAAC,aAA0C;QACnD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;QAC/E,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,uBAAuB,EAAE,GAAG,aAAa,CAAA;QAC/E,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,SAAS,EAAE,CAAC,CAAA;QAC/F,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAE7C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,sBAAsB,EAAE,CAAC,CAAA;QACxJ,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE;YACjE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACL,aAAa,EAAE,UAAU,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;gBAClD,cAAc,EAAE,kBAAkB;gBAClC,MAAM,EAAE,kBAAkB;aAC7B;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,uBAAuB,EAAE,CAAC;YAC7F,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;YACnC,QAAQ,EAAE,OAAO;SACpB,CAAC,CAAA;QACF,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAA;QACzG,OAAO,WAAW,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;IACnD,CAAC;CACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"actors.d.ts","sourceRoot":"","sources":["../src/actors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,iBAAiB,EAAmE,MAAM,wBAAwB,CAAA;AAMrJ,OAAO,EAAc,KAAK,UAAU,EAAE,KAAK,mBAAmB,EAAE,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAmCzG,wBAAgB,eAAe,CAAC,IAAI,SAAS,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,cAAc,EAAE,EAAE,SAAS,GAAE,iBAAkC,GAAG,IAAI,CAEhL;AAWD,MAAM,WAAW,uBAAuB;IACpC,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;CAClC;AAED,qBAAa,WAAW,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC;IAE1D,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY;gBADZ,MAAM,EAAE,MAAM,EACd,YAAY,GAAE,uBAA4B;IAGzD,MAAM,CAAC,aAAa,EAAE,mBAAmB,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;CAkBjF;AAED,YAAY,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC/D,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA"}
1
+ {"version":3,"file":"actors.d.ts","sourceRoot":"","sources":["../src/actors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,iBAAiB,EAA6C,MAAM,wBAAwB,CAAA;AAM/H,OAAO,EAAc,KAAK,UAAU,EAAE,KAAK,mBAAmB,EAAE,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAczG,wBAAgB,eAAe,CAAC,IAAI,SAAS,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,cAAc,EAAE,EAAE,SAAS,GAAE,iBAAkC,GAAG,IAAI,CAEhL;AAWD,MAAM,WAAW,uBAAuB;IACpC,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;CAClC;AAED,qBAAa,WAAW,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC;IAE1D,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY;gBADZ,MAAM,EAAE,MAAM,EACd,YAAY,GAAE,uBAA4B;IAGzD,MAAM,CAAC,aAAa,EAAE,mBAAmB,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;CAkBjF;AAED,YAAY,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC/D,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA"}
package/dist/actors.js CHANGED
@@ -1,38 +1,18 @@
1
- import { createActorTransport, createActorStub as createDurableActorStub } from "durable-actors/backend";
1
+ import { createActorStub as createDurableActorStub } from "durable-actors/backend";
2
2
  import { SocketProxy as RuntimeSocketProxy } from "durable-actors/proxy";
3
3
  import { rethrowActorError } from "terse-types/ActorDiagnostics";
4
4
  import { DEFAULT_ACTOR_URL, isLocalActorEndpoint, parseActorEndpoint } from "terse-types/ActorEndpoint";
5
- import { z } from "zod";
5
+ import { ActorAccessTransport } from "./actorAccess.js";
6
6
  import { ActorProxy } from "./actorProxy.js";
7
- const invocationResultSchema = z.object({ result: z.json() });
7
+ const directTransport = new ActorAccessTransport(actorConnectionSettings);
8
8
  const terseTransport = {
9
9
  async invoke(actorName, actorId, method, args) {
10
- const { endpoint, apiKey } = actorConnectionSettings();
11
- if (endpoint.kind === "runtime") {
12
- // Source reloads replace actor hosts. Resolve the current host for each call.
13
- try {
14
- return await createActorTransport({ projectId: endpoint.projectId, controlPlaneUrl: endpoint.origin, apiKey: apiKey || undefined }).invoke(actorName, actorId, method, args);
15
- }
16
- catch (error) {
17
- rethrowActorError(error);
18
- }
10
+ try {
11
+ return await directTransport.invoke(actorName, actorId, method, args);
19
12
  }
20
- const response = await fetch(`${endpoint.actorUrl}/invoke`, {
21
- method: "POST",
22
- headers: {
23
- Authorization: `Bearer ${apiKey}`,
24
- "Content-Type": "application/json",
25
- Accept: "application/json"
26
- },
27
- body: JSON.stringify({ actorName, actorId, method, args }),
28
- signal: AbortSignal.timeout(180_000),
29
- redirect: "error"
30
- });
31
- if (!response.ok) {
32
- await response.body?.cancel();
33
- throw new Error(`Actor invocation failed (HTTP ${response.status})`);
13
+ catch (error) {
14
+ rethrowActorError(error);
34
15
  }
35
- return invocationResultSchema.parse(await response.json()).result;
36
16
  }
37
17
  };
38
18
  export function createActorStub(actorName, actorId, methods, transport = terseTransport) {
@@ -1 +1 @@
1
- {"version":3,"file":"actors.js","sourceRoot":"","sources":["../src/actors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"actors.js","sourceRoot":"","sources":["../src/actors.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+C,eAAe,IAAI,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AAC/H,OAAO,EAAE,WAAW,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAEvG,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAAE,UAAU,EAA+D,MAAM,iBAAiB,CAAA;AAEzG,MAAM,eAAe,GAAG,IAAI,oBAAoB,CAAC,uBAAuB,CAAC,CAAA;AAEzE,MAAM,cAAc,GAAsB;IACtC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI;QACzC,IAAI,CAAC;YACD,OAAO,MAAM,eAAe,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;QACzE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,iBAAiB,CAAC,KAAK,CAAC,CAAA;QAC5B,CAAC;IACL,CAAC;CACJ,CAAA;AAED,MAAM,UAAU,eAAe,CAAsB,SAAiB,EAAE,OAAe,EAAE,OAAkC,EAAE,YAA+B,cAAc;IACtK,OAAO,sBAAsB,CAAO,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA;AAC/E,CAAC;AAED,SAAS,uBAAuB;IAC5B,MAAM,QAAQ,GAAG,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,EAAE,IAAI,iBAAiB,CAAC,CAAA;IAC7F,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;IACtD,IAAI,CAAC,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAA;IAClG,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;AAC/B,CAAC;AAMD,MAAM,OAAO,WAAW;IAEC;IACA;IAFrB,YACqB,MAAc,EACd,eAAwC,EAAE;QAD1C,WAAM,GAAN,MAAM,CAAQ;QACd,iBAAY,GAAZ,YAAY,CAA8B;IAC5D,CAAC;IAEJ,KAAK,CAAC,MAAM,CAAC,aAA0C;QACnD,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,uBAAuB,EAAE,CAAA;QACtD,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACD,OAAO,MAAM,IAAI,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,eAAe,EAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,SAAS,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,CACxK,aAAa,CAChB,CAAA;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,iBAAiB,CAAC,KAAK,CAAC,CAAA;YAC5B,CAAC;QACL,CAAC;QACD,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE;YAC/B,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,QAAQ,CAAC,MAAM;YAC3B,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK;SACjC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;IAC5B,CAAC;CACJ"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "terse-sdk",
3
- "version": "0.6.4",
3
+ "version": "0.7.0",
4
4
  "type": "module",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "repository": {
@@ -46,10 +46,10 @@
46
46
  "zod": "^4.3.6"
47
47
  },
48
48
  "dependencies": {
49
- "durable-actors": "0.4.5",
49
+ "durable-actors": "0.5.0",
50
50
  "little-durable": "0.1.3",
51
51
  "ms": "2.1.3",
52
- "terse-types": "0.6.4"
52
+ "terse-types": "0.7.0"
53
53
  },
54
54
  "scripts": {
55
55
  "build": "rm -rf dist && tsc",