terse-sdk 0.6.3 → 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.
- package/dist/actorAccess.d.ts +25 -0
- package/dist/actorAccess.d.ts.map +1 -0
- package/dist/actorAccess.js +57 -0
- package/dist/actorAccess.js.map +1 -0
- package/dist/actorProxy.d.ts.map +1 -1
- package/dist/actorProxy.js +0 -1
- package/dist/actorProxy.js.map +1 -1
- package/dist/actors.d.ts.map +1 -1
- package/dist/actors.js +7 -27
- package/dist/actors.js.map +1 -1
- package/package.json +3 -3
|
@@ -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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"}
|
package/dist/actorProxy.d.ts.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/actorProxy.js
CHANGED
|
@@ -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()
|
package/dist/actorProxy.js.map
CHANGED
|
@@ -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,
|
|
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"}
|
package/dist/actors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actors.d.ts","sourceRoot":"","sources":["../src/actors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,iBAAiB,
|
|
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 {
|
|
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 {
|
|
5
|
+
import { ActorAccessTransport } from "./actorAccess.js";
|
|
6
6
|
import { ActorProxy } from "./actorProxy.js";
|
|
7
|
-
const
|
|
7
|
+
const directTransport = new ActorAccessTransport(actorConnectionSettings);
|
|
8
8
|
const terseTransport = {
|
|
9
9
|
async invoke(actorName, actorId, method, args) {
|
|
10
|
-
|
|
11
|
-
|
|
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
|
-
|
|
21
|
-
|
|
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) {
|
package/dist/actors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actors.js","sourceRoot":"","sources":["../src/actors.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+C,
|
|
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.
|
|
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.
|
|
49
|
+
"durable-actors": "0.5.0",
|
|
50
50
|
"little-durable": "0.1.3",
|
|
51
51
|
"ms": "2.1.3",
|
|
52
|
-
"terse-types": "0.
|
|
52
|
+
"terse-types": "0.7.0"
|
|
53
53
|
},
|
|
54
54
|
"scripts": {
|
|
55
55
|
"build": "rm -rf dist && tsc",
|