durable-actors 0.8.0 → 0.8.1
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 +1 -1
- package/dist/actor/actor.d.ts +19 -11
- package/dist/actor/actor.d.ts.map +1 -1
- package/dist/actor/actor.js +41 -36
- package/dist/actor/actor.js.map +1 -1
- package/dist/actor/alarm.d.ts +19 -0
- package/dist/actor/alarm.d.ts.map +1 -0
- package/dist/actor/alarm.js +2 -0
- package/dist/actor/alarm.js.map +1 -0
- package/dist/actor/context.d.ts +25 -0
- package/dist/actor/context.d.ts.map +1 -0
- package/dist/actor/context.js +83 -0
- package/dist/actor/context.js.map +1 -0
- package/dist/actor/database.d.ts +5 -5
- package/dist/actor/database.d.ts.map +1 -1
- package/dist/actor/database.js +9 -37
- package/dist/actor/database.js.map +1 -1
- package/dist/actor/decorators.d.ts +7 -2
- package/dist/actor/decorators.d.ts.map +1 -1
- package/dist/actor/decorators.js +11 -2
- package/dist/actor/decorators.js.map +1 -1
- package/dist/actor/resource.d.ts +9 -0
- package/dist/actor/resource.d.ts.map +1 -0
- package/dist/actor/resource.js +2 -0
- package/dist/actor/resource.js.map +1 -0
- package/dist/actor/schema.d.ts +3 -1
- package/dist/actor/schema.d.ts.map +1 -1
- package/dist/actor/schema.js.map +1 -1
- package/dist/actor/unchecked.d.ts +12 -0
- package/dist/actor/unchecked.d.ts.map +1 -0
- package/dist/actor/unchecked.js +8 -0
- package/dist/actor/unchecked.js.map +1 -0
- package/dist/cli/inspect.d.ts +73 -0
- package/dist/cli/inspect.d.ts.map +1 -0
- package/dist/cli/inspect.js +132 -0
- package/dist/cli/inspect.js.map +1 -0
- package/dist/cli.js +2 -0
- package/dist/cli.js.map +1 -1
- package/dist/client-runtime/http.d.ts +1 -1
- package/dist/client-runtime/http.d.ts.map +1 -1
- package/dist/client-runtime/http.js +1 -1
- package/dist/client-runtime/http.js.map +1 -1
- package/dist/client-runtime/stub.d.ts.map +1 -1
- package/dist/client-runtime/stub.js +11 -1
- package/dist/client-runtime/stub.js.map +1 -1
- package/dist/compiler/actor-compiler.d.ts +4 -2
- package/dist/compiler/actor-compiler.d.ts.map +1 -1
- package/dist/compiler/actor-compiler.js +48 -13
- package/dist/compiler/actor-compiler.js.map +1 -1
- package/dist/compiler/declarations.d.ts.map +1 -1
- package/dist/compiler/declarations.js +31 -1
- package/dist/compiler/declarations.js.map +2 -2
- package/dist/compiler/features/atomicity.d.ts +9 -0
- package/dist/compiler/features/atomicity.d.ts.map +1 -0
- package/dist/compiler/features/atomicity.js +44 -0
- package/dist/compiler/features/atomicity.js.map +1 -0
- package/dist/compiler/features/interleave.d.ts +9 -0
- package/dist/compiler/features/{reentrancy.d.ts.map → interleave.d.ts.map} +1 -1
- package/dist/compiler/features/{reentrancy.js → interleave.js} +13 -13
- package/dist/compiler/features/{reentrancy.js.map → interleave.js.map} +1 -1
- package/dist/compiler/features/persistence.d.ts +2 -5
- package/dist/compiler/features/persistence.d.ts.map +1 -1
- package/dist/compiler/features/persistence.js +5 -83
- package/dist/compiler/features/persistence.js.map +1 -1
- package/dist/compiler/features/resource.d.ts +5 -0
- package/dist/compiler/features/resource.d.ts.map +1 -0
- package/dist/compiler/features/resource.js +18 -0
- package/dist/compiler/features/resource.js.map +1 -0
- package/dist/compiler/fieldParsing.d.ts +12 -0
- package/dist/compiler/fieldParsing.d.ts.map +1 -0
- package/dist/compiler/fieldParsing.js +106 -0
- package/dist/compiler/fieldParsing.js.map +1 -0
- package/dist/compiler/json-schema.d.ts +2 -2
- package/dist/compiler/json-schema.d.ts.map +1 -1
- package/dist/compiler/json-schema.js +22 -14
- package/dist/compiler/json-schema.js.map +1 -1
- package/dist/compiler/rpc-contract.d.ts +1 -1
- package/dist/compiler/rpc-contract.d.ts.map +1 -1
- package/dist/compiler/rpc-contract.js +21 -11
- package/dist/compiler/rpc-contract.js.map +1 -1
- package/dist/compiler/socket-contract.d.ts +1 -1
- package/dist/compiler/socket-contract.d.ts.map +1 -1
- package/dist/compiler/socket-contract.js +3 -3
- package/dist/compiler/socket-contract.js.map +1 -1
- package/dist/compiler/types.d.ts +13 -3
- package/dist/compiler/types.d.ts.map +1 -1
- package/dist/compiler/types.js +3 -1
- package/dist/compiler/types.js.map +1 -1
- package/dist/compiler/validate-public-contract.d.ts.map +1 -1
- package/dist/compiler/validate-public-contract.js +12 -1
- package/dist/compiler/validate-public-contract.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/host/actor-host.d.ts.map +1 -1
- package/dist/host/actor-host.js +44 -50
- package/dist/host/actor-host.js.map +1 -1
- package/dist/host/actor-runtime.d.ts +7 -8
- package/dist/host/actor-runtime.d.ts.map +1 -1
- package/dist/host/actor-runtime.js +80 -78
- package/dist/host/actor-runtime.js.map +1 -1
- package/dist/host/actor-worker.js +10 -27
- package/dist/host/actor-worker.js.map +1 -1
- package/dist/host/database-bridge.d.ts +16 -0
- package/dist/host/database-bridge.d.ts.map +1 -0
- package/dist/host/database-bridge.js +29 -0
- package/dist/host/database-bridge.js.map +1 -0
- package/dist/host/database.d.ts +86 -0
- package/dist/host/database.d.ts.map +1 -0
- package/dist/host/database.js +87 -0
- package/dist/host/database.js.map +1 -0
- package/dist/host/generic-host.js +1 -1
- package/dist/host/persisted-fields.d.ts +7 -0
- package/dist/host/persisted-fields.d.ts.map +1 -0
- package/dist/host/persisted-fields.js +29 -0
- package/dist/host/persisted-fields.js.map +1 -0
- package/dist/host/protocol.d.ts +55 -131
- package/dist/host/protocol.d.ts.map +1 -1
- package/dist/host/protocol.js +28 -28
- package/dist/host/protocol.js.map +1 -1
- package/dist/host/types.d.ts +8 -9
- package/dist/host/types.d.ts.map +1 -1
- package/dist/host/worker-supervisor.d.ts +32 -30
- package/dist/host/worker-supervisor.d.ts.map +1 -1
- package/dist/host/worker-supervisor.js +246 -230
- package/dist/host/worker-supervisor.js.map +1 -1
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/templates/actor/package.json +1 -1
- package/dist/templates/ai-chat/package.json +1 -1
- package/dist/templates/ai-chat/src/actors.ts +1 -1
- package/dist/templates/chat/package.json +1 -1
- package/dist/templates/chat/src/actors.ts +1 -1
- package/dist/templates/documents/package.json +1 -1
- package/dist/templates/documents/src/actors.ts +1 -1
- package/package.json +2 -2
- package/dist/compiler/features/reentrancy.d.ts +0 -9
- package/dist/host/sqlite.d.ts +0 -49
- package/dist/host/sqlite.d.ts.map +0 -1
- package/dist/host/sqlite.js +0 -161
- package/dist/host/sqlite.js.map +0 -1
package/dist/host/protocol.js
CHANGED
|
@@ -19,38 +19,36 @@ function parseActorSessionServerMessage(document) {
|
|
|
19
19
|
function failedReply(code, message) {
|
|
20
20
|
return { type: "failed", code, message };
|
|
21
21
|
}
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
})
|
|
22
|
+
const databaseValueSchema = z.discriminatedUnion("type", [
|
|
23
|
+
z.object({ type: z.literal("null") }),
|
|
24
|
+
z.object({ type: z.literal("integer"), value: z.string().regex(/^-?\d+$/) }),
|
|
25
|
+
z.object({ type: z.literal("real"), value: z.number() }),
|
|
26
|
+
z.object({ type: z.literal("text"), value: z.string() }),
|
|
27
|
+
z.object({ type: z.literal("blob"), value: z.base64() })
|
|
28
|
+
]);
|
|
29
|
+
const databaseResultSchema = z.discriminatedUnion("type", [
|
|
30
|
+
z.object({ type: z.literal("rows"), columns: z.array(z.string()), rows: z.array(z.array(databaseValueSchema)) }),
|
|
31
|
+
z.object({ type: z.literal("fields"), fields: z.record(z.string(), jsonValueSchema) }),
|
|
32
|
+
z.object({
|
|
33
|
+
type: z.literal("alarm"),
|
|
34
|
+
timestamp_ms: z.number().int().safe().nullable()
|
|
35
|
+
}),
|
|
36
|
+
z.object({ type: z.literal("done") })
|
|
37
|
+
]);
|
|
26
38
|
const invokeCommandSchema = z.object({
|
|
27
39
|
type: z.literal("invoke"),
|
|
28
40
|
request_id: actorComponentSchema,
|
|
29
|
-
actor: actorIdentitySchema,
|
|
30
41
|
method: actorComponentSchema,
|
|
31
|
-
args: z.array(jsonValueSchema)
|
|
32
|
-
sqlite: sqliteStateSchema.optional(),
|
|
33
|
-
resident_only: z.boolean().optional()
|
|
42
|
+
args: z.array(jsonValueSchema)
|
|
34
43
|
});
|
|
35
44
|
const websocketEventCommandSchema = z.object({
|
|
36
45
|
type: z.literal("websocket_event"),
|
|
37
46
|
request_id: actorComponentSchema,
|
|
38
|
-
actor: actorIdentitySchema,
|
|
39
47
|
event: socketEventSchema,
|
|
40
|
-
connections: z.array(socketConnectionSchema)
|
|
41
|
-
sqlite: sqliteStateSchema.optional(),
|
|
42
|
-
resident_only: z.boolean().optional()
|
|
43
|
-
});
|
|
44
|
-
const evictCommandSchema = z.object({
|
|
45
|
-
type: z.literal("evict"),
|
|
46
|
-
actor: actorIdentitySchema
|
|
47
|
-
});
|
|
48
|
-
const hydrateCommandSchema = z.object({
|
|
49
|
-
type: z.literal("hydrate"),
|
|
50
|
-
actor: actorIdentitySchema,
|
|
51
|
-
sqlite: sqliteStateSchema.optional(),
|
|
52
|
-
resident_only: z.boolean().optional()
|
|
48
|
+
connections: z.array(socketConnectionSchema)
|
|
53
49
|
});
|
|
50
|
+
const evictCommandSchema = z.object({ type: z.literal("evict"), graceful: z.boolean() });
|
|
51
|
+
const hydrateCommandSchema = z.object({ type: z.literal("hydrate") });
|
|
54
52
|
const executorCommandSchema = z.discriminatedUnion("type", [
|
|
55
53
|
invokeCommandSchema,
|
|
56
54
|
websocketEventCommandSchema,
|
|
@@ -58,13 +56,15 @@ const executorCommandSchema = z.discriminatedUnion("type", [
|
|
|
58
56
|
hydrateCommandSchema
|
|
59
57
|
]);
|
|
60
58
|
const actorSessionServerMessageSchema = z.discriminatedUnion("type", [
|
|
61
|
-
z
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
59
|
+
z
|
|
60
|
+
.object({
|
|
61
|
+
type: z.literal("database_result"),
|
|
62
|
+
message_id: z.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER),
|
|
63
|
+
result: databaseResultSchema.optional(),
|
|
65
64
|
error: z.string().optional()
|
|
66
|
-
})
|
|
67
|
-
|
|
65
|
+
})
|
|
66
|
+
.refine(message => (message.result === undefined) !== (message.error === undefined)),
|
|
67
|
+
z.object({ type: z.literal("attached"), protocol: z.literal(28), actor: actorIdentitySchema }),
|
|
68
68
|
z.object({
|
|
69
69
|
type: z.literal("socket_connections"),
|
|
70
70
|
message_id: z.number().int().nonnegative(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/host/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/host/protocol.ts"],"names":[],"mappings":"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"}
|
package/dist/host/types.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import type { ActorIdentity } from "../actor/identity.js";
|
|
2
1
|
import type { SocketEffect, SocketSource } from "../actor/socketProtocol.js";
|
|
3
|
-
import type {
|
|
4
|
-
import type {
|
|
2
|
+
import type { DatabaseCall, DatabaseResult } from "./database.js";
|
|
3
|
+
import type { ActorExecutorReply, ActorWorkerCommand, ActorWorkerData } from "./protocol.js";
|
|
5
4
|
import type { ActorWorkerSupervisor } from "./worker-supervisor.js";
|
|
6
5
|
interface ActorHostSettings {
|
|
7
6
|
readonly socketPath: string;
|
|
@@ -9,16 +8,16 @@ interface ActorHostSettings {
|
|
|
9
8
|
readonly startupTimeoutMs: number;
|
|
10
9
|
}
|
|
11
10
|
type SocketPublisher = (effects: readonly SocketEffect[]) => Promise<void>;
|
|
12
|
-
type
|
|
13
|
-
type
|
|
11
|
+
type DatabaseRequester = (call: DatabaseCall) => Promise<DatabaseResult>;
|
|
12
|
+
type ActorSessionSupervisor = Pick<ActorWorkerSupervisor, "assign" | "handle" | "isResident" | "onResidencyChange">;
|
|
13
|
+
type ActorWorkerSupervisorFactory = (options: ActorWorkerSupervisorOptions) => ActorSessionSupervisor & Pick<ActorWorkerSupervisor, "ready" | "close">;
|
|
14
14
|
interface ActorWorkerSupervisorOptions {
|
|
15
15
|
readonly actorEntrypointUrl: string;
|
|
16
16
|
readonly createWorker?: ActorWorkerFactory;
|
|
17
17
|
}
|
|
18
18
|
interface ResidentActorWorkerOptions {
|
|
19
|
-
readonly identity: ActorIdentity;
|
|
20
19
|
readonly sequenceBase: number;
|
|
21
|
-
readonly
|
|
20
|
+
readonly onResidencyChange: () => void;
|
|
22
21
|
readonly moduleUrl: string;
|
|
23
22
|
readonly worker?: ActorWorkerHandle;
|
|
24
23
|
readonly createWorker: ActorWorkerFactory;
|
|
@@ -27,9 +26,9 @@ type ActorWorkerState = "starting" | "ready" | "stopping" | "stopped";
|
|
|
27
26
|
interface ActorWorkerHandle {
|
|
28
27
|
readonly state: ActorWorkerState;
|
|
29
28
|
ready(): Promise<readonly string[]>;
|
|
30
|
-
execute(command:
|
|
29
|
+
execute(command: ActorWorkerCommand, allowNextInvocation: () => void, database: DatabaseRequester, publish?: SocketPublisher, connections?: SocketSource): Promise<ActorExecutorReply>;
|
|
31
30
|
terminate(reason: string): void;
|
|
32
31
|
}
|
|
33
32
|
type ActorWorkerFactory = (data: ActorWorkerData, onStateChange: () => void) => ActorWorkerHandle;
|
|
34
|
-
export type {
|
|
33
|
+
export type { ActorHostSettings, ActorSessionSupervisor, ActorWorkerFactory, ActorWorkerHandle, ActorWorkerState, ActorWorkerSupervisorFactory, ActorWorkerSupervisorOptions, DatabaseRequester, ResidentActorWorkerOptions, SocketPublisher, SocketSource };
|
|
35
34
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/host/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/host/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/host/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAE5E,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC5F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAEnE,UAAU,iBAAiB;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5C,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;CACpC;AAED,KAAK,eAAe,GAAG,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAE1E,KAAK,iBAAiB,GAAG,CAAC,IAAI,EAAE,YAAY,KAAK,OAAO,CAAC,cAAc,CAAC,CAAA;AAExE,KAAK,sBAAsB,GAAG,IAAI,CAAC,qBAAqB,EAAE,QAAQ,GAAG,QAAQ,GAAG,YAAY,GAAG,mBAAmB,CAAC,CAAA;AAEnH,KAAK,4BAA4B,GAAG,CAChC,OAAO,EAAE,4BAA4B,KACpC,sBAAsB,GAAG,IAAI,CAAC,qBAAqB,EAAE,OAAO,GAAG,OAAO,CAAC,CAAA;AAE5E,UAAU,4BAA4B;IAClC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAA;IACnC,QAAQ,CAAC,YAAY,CAAC,EAAE,kBAAkB,CAAA;CAC7C;AAED,UAAU,0BAA0B;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,IAAI,CAAA;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAA;IACnC,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAA;CAC5C;AAED,KAAK,gBAAgB,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,CAAA;AAErE,UAAU,iBAAiB;IACvB,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAA;IAChC,KAAK,IAAI,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAA;IACnC,OAAO,CACH,OAAO,EAAE,kBAAkB,EAC3B,mBAAmB,EAAE,MAAM,IAAI,EAC/B,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,CAAC,EAAE,eAAe,EACzB,WAAW,CAAC,EAAE,YAAY,GAC3B,OAAO,CAAC,kBAAkB,CAAC,CAAA;IAC9B,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CAClC;AAED,KAAK,kBAAkB,GAAG,CAAC,IAAI,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,IAAI,KAAK,iBAAiB,CAAA;AAEjG,YAAY,EACR,iBAAiB,EACjB,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,4BAA4B,EAC5B,4BAA4B,EAC5B,iBAAiB,EACjB,0BAA0B,EAC1B,eAAe,EACf,YAAY,EACf,CAAA"}
|
|
@@ -1,31 +1,6 @@
|
|
|
1
1
|
import type { ActorIdentity } from "../actor/identity.js";
|
|
2
|
-
import type { ActorExecutorCommand, ActorExecutorReply,
|
|
3
|
-
import type {
|
|
4
|
-
import type { ActorWorkerHandle, ActorWorkerState, ActorWorkerSupervisorOptions, SocketPublisher, SocketSource } from "./types.js";
|
|
5
|
-
declare class ActorWorkerSupervisor {
|
|
6
|
-
private readonly actorEntrypointUrl;
|
|
7
|
-
private readonly createWorker;
|
|
8
|
-
private resident;
|
|
9
|
-
private lastActiveActors;
|
|
10
|
-
private readonly activeActorListeners;
|
|
11
|
-
private speculativeWorker;
|
|
12
|
-
private identity;
|
|
13
|
-
private closed;
|
|
14
|
-
private actorNames;
|
|
15
|
-
private lastSequence;
|
|
16
|
-
constructor(options: ActorWorkerSupervisorOptions);
|
|
17
|
-
ready(): Promise<readonly string[]>;
|
|
18
|
-
handle(command: ActorExecutorCommand, allowNextInvocation: () => void, commit: SqliteCommitter, publish?: SocketPublisher, connections?: SocketSource): Promise<ActorExecutorReply>;
|
|
19
|
-
onActiveActorsChange(listener: () => void): () => void;
|
|
20
|
-
private notifyActiveActorsChange;
|
|
21
|
-
activeActors(): readonly ActorIdentity[];
|
|
22
|
-
close(): void;
|
|
23
|
-
private preload;
|
|
24
|
-
private discardPreload;
|
|
25
|
-
private execute;
|
|
26
|
-
private evict;
|
|
27
|
-
private takeSpeculativeWorker;
|
|
28
|
-
}
|
|
2
|
+
import type { ActorExecutorCommand, ActorExecutorReply, ActorWorkerCommand, ActorWorkerData } from "./protocol.js";
|
|
3
|
+
import type { ActorWorkerHandle, ActorWorkerState, ActorWorkerSupervisorOptions, DatabaseRequester, SocketPublisher, SocketSource } from "./types.js";
|
|
29
4
|
declare class ActorWorker implements ActorWorkerHandle {
|
|
30
5
|
private onStateChange;
|
|
31
6
|
private readonly worker;
|
|
@@ -33,6 +8,7 @@ declare class ActorWorker implements ActorWorkerHandle {
|
|
|
33
8
|
private readyResolve;
|
|
34
9
|
private readyReject;
|
|
35
10
|
private readonly pending;
|
|
11
|
+
private readonly databaseCalls;
|
|
36
12
|
private nextMessageId;
|
|
37
13
|
private lifecycleState;
|
|
38
14
|
private terminalError;
|
|
@@ -41,14 +17,14 @@ declare class ActorWorker implements ActorWorkerHandle {
|
|
|
41
17
|
private warmReject;
|
|
42
18
|
private assigned;
|
|
43
19
|
constructor(data?: ActorWorkerData, onStateChange?: () => void);
|
|
20
|
+
private receive;
|
|
44
21
|
warm(): Promise<void>;
|
|
45
22
|
load(data: ActorWorkerData, onStateChange: () => void): void;
|
|
46
23
|
get state(): ActorWorkerState;
|
|
47
24
|
ready(): Promise<readonly string[]>;
|
|
48
|
-
execute(command:
|
|
25
|
+
execute(command: ActorWorkerCommand, allowNextInvocation: () => void, database: DatabaseRequester, publish?: SocketPublisher, connections?: SocketSource): Promise<ActorExecutorReply>;
|
|
49
26
|
terminate(reason: string): void;
|
|
50
|
-
private
|
|
51
|
-
private commitSqlite;
|
|
27
|
+
private callDatabase;
|
|
52
28
|
private publishEffects;
|
|
53
29
|
private loadConnections;
|
|
54
30
|
private reply;
|
|
@@ -57,5 +33,31 @@ declare class ActorWorker implements ActorWorkerHandle {
|
|
|
57
33
|
private exited;
|
|
58
34
|
private fail;
|
|
59
35
|
}
|
|
36
|
+
declare class ActorWorkerSupervisor {
|
|
37
|
+
private readonly actorEntrypointUrl;
|
|
38
|
+
private readonly createWorker;
|
|
39
|
+
private resident;
|
|
40
|
+
private lastResident;
|
|
41
|
+
private readonly residencyListeners;
|
|
42
|
+
private speculativeWorker;
|
|
43
|
+
private identity;
|
|
44
|
+
private closed;
|
|
45
|
+
private actorNames;
|
|
46
|
+
private lastSequence;
|
|
47
|
+
constructor(options: ActorWorkerSupervisorOptions);
|
|
48
|
+
ready(): Promise<readonly string[]>;
|
|
49
|
+
assign(actor: ActorIdentity): void;
|
|
50
|
+
handle(command: ActorExecutorCommand, allowNextInvocation: () => void, database: DatabaseRequester, publish?: SocketPublisher, connections?: SocketSource): Promise<ActorExecutorReply>;
|
|
51
|
+
onResidencyChange(listener: () => void): () => void;
|
|
52
|
+
private notifyResidencyChange;
|
|
53
|
+
isResident(): boolean;
|
|
54
|
+
close(): void;
|
|
55
|
+
private preload;
|
|
56
|
+
private discardPreload;
|
|
57
|
+
private execute;
|
|
58
|
+
private evict;
|
|
59
|
+
private workerCommand;
|
|
60
|
+
private takeSpeculativeWorker;
|
|
61
|
+
}
|
|
60
62
|
export { ActorWorker, ActorWorkerSupervisor };
|
|
61
63
|
//# sourceMappingURL=worker-supervisor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-supervisor.d.ts","sourceRoot":"","sources":["../../src/host/worker-supervisor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAOzD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"worker-supervisor.d.ts","sourceRoot":"","sources":["../../src/host/worker-supervisor.ts"],"names":[],"mappings":"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"}
|