terse-sdk 0.6.1 → 0.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -51,7 +51,7 @@ createJob({
51
51
 
52
52
  ## Core concepts
53
53
 
54
- For actor development, run `terse actor serve` in the actor source project. Copy the printed `TERSE_ACTOR_URL` and `TERSE_API_KEY` into your app backend environment, then run `terse actor generate` in the app project. Generated actor clients use the same settings for RPC and WebSocket authorization, including when the app lives in a separate repository. Regenerate after public API changes; no production deployment is needed. See the [local actor development guide](../terse-cli/README.md#developing-actors).
54
+ For actor development, run `terse actor dev` in the actor source project, then `terse actor generate` in your app project. Both the generator and SDK default to the local server on port `7100`, project `local`, with no API key. Set `TERSE_ACTOR_URL` and, when required, `TERSE_API_KEY` only to override those defaults or connect to deployed actors. Regenerate after public API changes. See the [local actor development guide](../terse-cli/README.md#developing-actors).
55
55
 
56
56
  | Concept | What it is |
57
57
  |---|---|
@@ -1,2 +1,2 @@
1
- export { runDurableObjectHost } from "durable-actors/host";
1
+ export { runActorHost } from "durable-actors/host";
2
2
  //# sourceMappingURL=actorHost.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"actorHost.d.ts","sourceRoot":"","sources":["../src/actorHost.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA"}
1
+ {"version":3,"file":"actorHost.d.ts","sourceRoot":"","sources":["../src/actorHost.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA"}
package/dist/actorHost.js CHANGED
@@ -1,2 +1,2 @@
1
- export { runDurableObjectHost } from "durable-actors/host";
1
+ export { runActorHost } from "durable-actors/host";
2
2
  //# sourceMappingURL=actorHost.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"actorHost.js","sourceRoot":"","sources":["../src/actorHost.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA"}
1
+ {"version":3,"file":"actorHost.js","sourceRoot":"","sources":["../src/actorHost.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA"}
@@ -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;AAKrJ,OAAO,EAAc,KAAK,UAAU,EAAE,KAAK,mBAAmB,EAAE,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAA;AA+BzG,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;AAYD,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;CAYjF;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,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"}
package/dist/actors.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { createActorTransport, createActorStub as createDurableActorStub } from "durable-actors/backend";
2
2
  import { SocketProxy as RuntimeSocketProxy } from "durable-actors/proxy";
3
- import { parseActorEndpoint } from "terse-types/ActorEndpoint";
3
+ import { rethrowActorError } from "terse-types/ActorDiagnostics";
4
+ import { DEFAULT_ACTOR_URL, isLocalActorEndpoint, parseActorEndpoint } from "terse-types/ActorEndpoint";
4
5
  import { z } from "zod";
5
6
  import { ActorProxy } from "./actorProxy.js";
6
7
  const invocationResultSchema = z.object({ result: z.json() });
@@ -9,7 +10,12 @@ const terseTransport = {
9
10
  const { endpoint, apiKey } = actorConnectionSettings();
10
11
  if (endpoint.kind === "runtime") {
11
12
  // Source reloads replace actor hosts. Resolve the current host for each call.
12
- return createActorTransport({ projectId: endpoint.projectId, controlPlaneUrl: endpoint.origin, apiKey }).invoke(actorName, actorId, method, args);
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
+ }
13
19
  }
14
20
  const response = await fetch(`${endpoint.actorUrl}/invoke`, {
15
21
  method: "POST",
@@ -33,13 +39,12 @@ export function createActorStub(actorName, actorId, methods, transport = terseTr
33
39
  return createDurableActorStub(actorName, actorId, methods, transport);
34
40
  }
35
41
  function actorConnectionSettings() {
36
- const actorUrl = process.env.TERSE_ACTOR_URL?.trim();
37
- const apiKey = process.env.TERSE_API_KEY?.trim();
38
- if (!actorUrl || !apiKey) {
39
- const missing = [!actorUrl && "TERSE_ACTOR_URL", !apiKey && "TERSE_API_KEY"].filter(Boolean);
40
- throw new Error(`Missing ${missing.join(" and ")}. Set ${missing.length === 1 ? "it" : "them"} in the .env of the project calling the actor.`);
42
+ const endpoint = parseActorEndpoint(process.env.TERSE_ACTOR_URL?.trim() || DEFAULT_ACTOR_URL);
43
+ const apiKey = process.env.TERSE_API_KEY?.trim() || "";
44
+ if (!apiKey && !isLocalActorEndpoint(endpoint)) {
45
+ throw new Error("Missing TERSE_API_KEY. Set it in the .env of the project calling the actor.");
41
46
  }
42
- return { endpoint: parseActorEndpoint(actorUrl), apiKey };
47
+ return { endpoint, apiKey };
43
48
  }
44
49
  export class SocketProxy {
45
50
  actors;
@@ -51,7 +56,12 @@ export class SocketProxy {
51
56
  async handle(authorization) {
52
57
  const { endpoint, apiKey } = actorConnectionSettings();
53
58
  if (endpoint.kind === "runtime") {
54
- return new RuntimeSocketProxy(this.actors, { projectId: endpoint.projectId, controlPlaneUrl: endpoint.origin, apiKey }, this.dependencies).handle(authorization);
59
+ try {
60
+ return await new RuntimeSocketProxy(this.actors, { projectId: endpoint.projectId, controlPlaneUrl: endpoint.origin, apiKey: apiKey || undefined }, this.dependencies).handle(authorization);
61
+ }
62
+ catch (error) {
63
+ rethrowActorError(error);
64
+ }
55
65
  }
56
66
  return new ActorProxy(this.actors, {
57
67
  projectId: endpoint.projectId,
@@ -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":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "terse-sdk",
3
- "version": "0.6.1",
3
+ "version": "0.6.2",
4
4
  "type": "module",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "repository": {
@@ -42,10 +42,10 @@
42
42
  "zod": "^4.3.6"
43
43
  },
44
44
  "dependencies": {
45
- "durable-actors": "0.2.4",
45
+ "durable-actors": "0.3.1",
46
46
  "little-durable": "0.1.3",
47
47
  "ms": "2.1.3",
48
- "terse-types": "0.6.1"
48
+ "terse-types": "0.6.2"
49
49
  },
50
50
  "scripts": {
51
51
  "build": "rm -rf dist && tsc",