solid-objects 0.14.6 → 0.14.8
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/CHANGELOG.md +23 -0
- package/README.md +8 -6
- package/dist/actor-runtime.d.ts +36 -0
- package/dist/actor-runtime.d.ts.map +1 -0
- package/dist/actor-runtime.js +2 -0
- package/dist/actor-runtime.js.map +1 -0
- package/dist/browser/index.js +1 -1
- package/dist/browser/index.js.map +1 -1
- package/dist/cloudflare/configuration.d.ts +32 -0
- package/dist/cloudflare/configuration.d.ts.map +1 -0
- package/dist/cloudflare/configuration.js +46 -0
- package/dist/cloudflare/configuration.js.map +1 -0
- package/dist/cloudflare/engine.d.ts +43 -0
- package/dist/cloudflare/engine.d.ts.map +1 -0
- package/dist/cloudflare/engine.js +921 -0
- package/dist/cloudflare/engine.js.map +1 -0
- package/dist/cloudflare/host.d.ts +10 -0
- package/dist/cloudflare/host.d.ts.map +1 -0
- package/dist/cloudflare/host.js +44 -0
- package/dist/cloudflare/host.js.map +1 -0
- package/dist/cloudflare/index.d.ts +9 -0
- package/dist/cloudflare/index.d.ts.map +1 -0
- package/dist/cloudflare/index.js +8 -0
- package/dist/cloudflare/index.js.map +1 -0
- package/dist/cloudflare/platform.d.ts +2 -0
- package/dist/cloudflare/platform.d.ts.map +1 -0
- package/dist/cloudflare/platform.js +4 -0
- package/dist/cloudflare/platform.js.map +1 -0
- package/dist/cloudflare/protocol.d.ts +58 -0
- package/dist/cloudflare/protocol.d.ts.map +1 -0
- package/dist/cloudflare/protocol.js +77 -0
- package/dist/cloudflare/protocol.js.map +1 -0
- package/dist/cloudflare/records.d.ts +71 -0
- package/dist/cloudflare/records.d.ts.map +1 -0
- package/dist/cloudflare/records.js +2 -0
- package/dist/cloudflare/records.js.map +1 -0
- package/dist/cloudflare/runtime.d.ts +83 -0
- package/dist/cloudflare/runtime.d.ts.map +1 -0
- package/dist/cloudflare/runtime.js +321 -0
- package/dist/cloudflare/runtime.js.map +1 -0
- package/dist/cloudflare/session.d.ts +12 -0
- package/dist/cloudflare/session.d.ts.map +1 -0
- package/dist/cloudflare/session.js +332 -0
- package/dist/cloudflare/session.js.map +1 -0
- package/dist/cloudflare/storage.d.ts +25 -0
- package/dist/cloudflare/storage.d.ts.map +1 -0
- package/dist/cloudflare/storage.js +195 -0
- package/dist/cloudflare/storage.js.map +1 -0
- package/dist/context.d.ts +5 -4
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +3 -0
- package/dist/context.js.map +1 -1
- package/dist/core.d.ts +8 -0
- package/dist/core.d.ts.map +1 -0
- package/dist/core.js +4 -0
- package/dist/core.js.map +1 -0
- package/dist/default-runtime.d.ts +4 -4
- package/dist/default-runtime.d.ts.map +1 -1
- package/dist/default-runtime.js.map +1 -1
- package/dist/errors.d.ts +14 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +9 -0
- package/dist/errors.js.map +1 -1
- package/dist/realtime.d.ts +18 -2
- package/dist/realtime.d.ts.map +1 -1
- package/dist/realtime.js.map +1 -1
- package/dist/reference.d.ts +5 -5
- package/dist/reference.d.ts.map +1 -1
- package/dist/reference.js.map +1 -1
- package/dist/repository.d.ts +8 -1
- package/dist/repository.d.ts.map +1 -1
- package/dist/repository.js +120 -24
- package/dist/repository.js.map +1 -1
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +18 -53
- package/dist/runtime.js.map +1 -1
- package/dist/turn.d.ts +34 -0
- package/dist/turn.d.ts.map +1 -0
- package/dist/turn.js +57 -0
- package/dist/turn.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/docs/api.md +22 -0
- package/docs/architecture.md +5 -3
- package/docs/cloudflare.md +155 -0
- package/docs/parity.md +20 -1
- package/docs/support.md +12 -11
- package/examples/cloudflare/README.md +49 -0
- package/examples/cloudflare/environment.d.ts +14 -0
- package/examples/cloudflare/shopping-cart.ts +65 -0
- package/examples/cloudflare/worker.ts +87 -0
- package/examples/cloudflare/wrangler.jsonc +15 -0
- package/package.json +22 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,28 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.14.8 - 2026-09-09
|
|
4
|
+
|
|
5
|
+
- Hold the actor instance and message claim locks through every fenced commit
|
|
6
|
+
on PostgreSQL and MySQL. Lease recovery and stale-process cleanup revalidate
|
|
7
|
+
those rows after waiting, so they cannot requeue a message that completed in
|
|
8
|
+
the meantime.
|
|
9
|
+
|
|
10
|
+
## 0.14.7 - 2026-09-05
|
|
11
|
+
|
|
12
|
+
- Read SQL message results and completion status in one statement so concurrent
|
|
13
|
+
completion cannot return a stale `null` result.
|
|
14
|
+
- Add `solid-objects/core` and the Cloudflare Durable Objects runtime backend.
|
|
15
|
+
Each actor identity owns SQLite state, a durable mailbox, retry state,
|
|
16
|
+
reminders, and effect/message outboxes. Request IDs recover ambiguous RPC
|
|
17
|
+
acceptance; incarnation and execution generations fence stale commits.
|
|
18
|
+
- Add hibernating session Durable Objects for existing browser subscriptions,
|
|
19
|
+
including multi-actor connections, fresh authorization, personalized payloads,
|
|
20
|
+
revision fencing, and durable subscription cleanup.
|
|
21
|
+
- Share actor turn evaluation across SQL and Cloudflare. Keep Workers types and
|
|
22
|
+
imports separate from the Node target. Add Workers integration tests, a
|
|
23
|
+
runnable example, bundle checks, and an explicit backend capability matrix.
|
|
24
|
+
The Cloudflare backend is experimental pending deployed failover/soak testing.
|
|
25
|
+
|
|
3
26
|
## 0.14.6 - 2026-09-03
|
|
4
27
|
|
|
5
28
|
- Poll effects, reminders, and broadcasts through ordered indexes installed by
|
package/README.md
CHANGED
|
@@ -24,6 +24,10 @@ Solid Object JavaScript Actors elegantly fit anything where one identifiable thi
|
|
|
24
24
|
|
|
25
25
|
And so much more.
|
|
26
26
|
|
|
27
|
+
Deploying on Cloudflare? The [Durable Objects backend](docs/cloudflare.md) runs
|
|
28
|
+
the same actor API on Workers, with durable mailboxes, alarms, and browser
|
|
29
|
+
subscriptions. Start with the [Cloudflare example](examples/cloudflare/README.md).
|
|
30
|
+
|
|
27
31
|
## Contents
|
|
28
32
|
|
|
29
33
|
- [Installation](#installation)
|
|
@@ -134,8 +138,7 @@ policies must bind actor IDs and operations to the authenticated user or tenant.
|
|
|
134
138
|
|
|
135
139
|
The handwritten version usually starts with a row lock. Then it gains an
|
|
136
140
|
`expiresAt` column, a sweeper, retries, per-room ordering, and a broadcast path
|
|
137
|
-
that must agree with the write. The original transaction
|
|
138
|
-
interplay with four other subsystems.
|
|
141
|
+
that must agree with the write. The original transaction now depends on four other subsystems.
|
|
139
142
|
|
|
140
143
|
Solid Objects makes the application-defined identity the coordination boundary.
|
|
141
144
|
Its state, mailbox, retries, reminders, and staged consequences live in SQLite,
|
|
@@ -149,8 +152,7 @@ required. Redis is optional wake-up plumbing, not durable state.
|
|
|
149
152
|
- Accounts, devices, and long-lived jobs whose next action depends on committed state.
|
|
150
153
|
- Realtime multi-user state where publications must follow committed revisions.
|
|
151
154
|
|
|
152
|
-
Different identities can run concurrently. One global identity
|
|
153
|
-
queue wearing an ambitious name.
|
|
155
|
+
Different identities can run concurrently. One global identity serializes everything.
|
|
154
156
|
|
|
155
157
|
## Solid Objects in the browser
|
|
156
158
|
|
|
@@ -229,7 +231,7 @@ The wire shapes are documented in the
|
|
|
229
231
|
## When a transaction is better
|
|
230
232
|
|
|
231
233
|
Often. If all the work happens in one request, use a transaction, constraint, or
|
|
232
|
-
`SELECT ... FOR UPDATE`. It is smaller
|
|
234
|
+
`SELECT ... FOR UPDATE`. It is smaller and faster.
|
|
233
235
|
|
|
234
236
|
Use Solid Objects when the critical section outlives that transaction: work
|
|
235
237
|
must happen later, survive a restart, or remain ordered across several requests
|
|
@@ -246,7 +248,7 @@ or jobs. A plain counter is not a reason to install this package.
|
|
|
246
248
|
- Background work needs `runtime.run(signal)`. If no process is running, committed work waits in SQL rather than disappearing.
|
|
247
249
|
- Your application still owns authorization, database backups, failover, WebSocket transport, and capacity planning.
|
|
248
250
|
|
|
249
|
-
|
|
251
|
+
There is no exactly-once delivery. Read the
|
|
250
252
|
[correctness contract](docs/correctness.md) before using important data.
|
|
251
253
|
|
|
252
254
|
## Read more
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { RealtimeManager } from "./realtime.js";
|
|
2
|
+
import type { Actor, ActorClass } from "./actor.js";
|
|
3
|
+
import type { ActorReference, ActorReferenceCore, ActorSnapshot, MessageReference } from "./reference.js";
|
|
4
|
+
import type { ActorIdentifier, AsyncInvocationOptions, DeepReadonly, DestroyOptions, InvocationOptions, JsonObject, JsonValue, Logger, MessageStatus, SnapshotOptions } from "./types.js";
|
|
5
|
+
export interface SnapshotWithIncarnation<ActorType extends Actor> {
|
|
6
|
+
snapshot: ActorSnapshot<ActorType>;
|
|
7
|
+
instanceId: string;
|
|
8
|
+
revision: string;
|
|
9
|
+
createdAtMs: number;
|
|
10
|
+
}
|
|
11
|
+
export interface ActorRuntime {
|
|
12
|
+
ref<ActorType extends Actor>(actorClass: ActorClass<ActorType>, actorId: ActorIdentifier): ActorReference<ActorType>;
|
|
13
|
+
invoke<Result = JsonValue>(options: {
|
|
14
|
+
reference: ActorReferenceCore<Actor>;
|
|
15
|
+
operation: string;
|
|
16
|
+
argumentsValue?: JsonObject;
|
|
17
|
+
options?: InvocationOptions;
|
|
18
|
+
}): Promise<DeepReadonly<Result>>;
|
|
19
|
+
sendMessage<Result = JsonValue>(options: {
|
|
20
|
+
reference: ActorReferenceCore<Actor>;
|
|
21
|
+
operation: string;
|
|
22
|
+
argumentsValue?: JsonObject;
|
|
23
|
+
options?: AsyncInvocationOptions;
|
|
24
|
+
}): Promise<MessageReference<Result>>;
|
|
25
|
+
wait<Result>(reference: MessageReference<Result>, options?: InvocationOptions): Promise<DeepReadonly<Result>>;
|
|
26
|
+
messageStatus(reference: MessageReference, options?: SnapshotOptions): Promise<MessageStatus>;
|
|
27
|
+
messageResult<Result>(reference: MessageReference<Result>, options?: SnapshotOptions): Promise<DeepReadonly<Result> | undefined>;
|
|
28
|
+
snapshot<ActorType extends Actor>(reference: ActorReferenceCore<ActorType>, options?: SnapshotOptions): Promise<ActorSnapshot<ActorType>>;
|
|
29
|
+
snapshotWithIncarnation<ActorType extends Actor>(reference: ActorReferenceCore<ActorType>, options?: SnapshotOptions): Promise<SnapshotWithIncarnation<ActorType>>;
|
|
30
|
+
destroy(reference: ActorReferenceCore<Actor>, options?: DestroyOptions): Promise<boolean>;
|
|
31
|
+
readonly settings: {
|
|
32
|
+
readonly logger: Logger;
|
|
33
|
+
};
|
|
34
|
+
readonly realtime: Pick<RealtimeManager, "connect">;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=actor-runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"actor-runtime.d.ts","sourceRoot":"","sources":["../src/actor-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACnD,OAAO,KAAK,EACV,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,gBAAgB,EACjB,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,EACV,eAAe,EACf,sBAAsB,EACtB,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,UAAU,EACV,SAAS,EACT,MAAM,EACN,aAAa,EACb,eAAe,EAChB,MAAM,YAAY,CAAA;AAEnB,MAAM,WAAW,uBAAuB,CAAC,SAAS,SAAS,KAAK;IAC9D,QAAQ,EAAE,aAAa,CAAC,SAAS,CAAC,CAAA;IAClC,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,SAAS,SAAS,KAAK,EACzB,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC,EACjC,OAAO,EAAE,eAAe,GACvB,cAAc,CAAC,SAAS,CAAC,CAAA;IAC5B,MAAM,CAAC,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE;QAClC,SAAS,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAA;QACpC,SAAS,EAAE,MAAM,CAAA;QACjB,cAAc,CAAC,EAAE,UAAU,CAAA;QAC3B,OAAO,CAAC,EAAE,iBAAiB,CAAA;KAC5B,GAAG,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAA;IACjC,WAAW,CAAC,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE;QACvC,SAAS,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAA;QACpC,SAAS,EAAE,MAAM,CAAA;QACjB,cAAc,CAAC,EAAE,UAAU,CAAA;QAC3B,OAAO,CAAC,EAAE,sBAAsB,CAAA;KACjC,GAAG,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAA;IACrC,IAAI,CAAC,MAAM,EACT,SAAS,EAAE,gBAAgB,CAAC,MAAM,CAAC,EACnC,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAA;IAChC,aAAa,CAAC,SAAS,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;IAC7F,aAAa,CAAC,MAAM,EAClB,SAAS,EAAE,gBAAgB,CAAC,MAAM,CAAC,EACnC,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,CAAA;IAC5C,QAAQ,CAAC,SAAS,SAAS,KAAK,EAC9B,SAAS,EAAE,kBAAkB,CAAC,SAAS,CAAC,EACxC,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAA;IACpC,uBAAuB,CAAC,SAAS,SAAS,KAAK,EAC7C,SAAS,EAAE,kBAAkB,CAAC,SAAS,CAAC,EACxC,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC,CAAA;IAC9C,OAAO,CAAC,SAAS,EAAE,kBAAkB,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACzF,QAAQ,CAAC,QAAQ,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IAC9C,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,CAAA;CACpD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"actor-runtime.js","sourceRoot":"","sources":["../src/actor-runtime.ts"],"names":[],"mappings":""}
|
package/dist/browser/index.js
CHANGED
|
@@ -11,7 +11,7 @@ export class SolidObjectsBrowserClient {
|
|
|
11
11
|
connect() {
|
|
12
12
|
if (this.#socket && this.#socket.readyState < WebSocket.CLOSING)
|
|
13
13
|
return;
|
|
14
|
-
const socket = this.#options.createWebSocket?.(this.#options.url) ?? new WebSocket(this.#options.url);
|
|
14
|
+
const socket = this.#options.createWebSocket?.(this.#options.url) ?? new WebSocket(String(this.#options.url));
|
|
15
15
|
socket.addEventListener("open", () => {
|
|
16
16
|
for (const subscription of this.#subscriptions.values())
|
|
17
17
|
this.sendSubscription(subscription);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,6BAA6B,GAS9B,MAAM,iBAAiB,CAAA;AAExB,MAAM,iCAAiC,GAAG,EAAE,CAAA;AAuC5C,MAAM,OAAO,yBAAyB;IAC3B,QAAQ,CAAsB;IAC9B,cAAc,GAAG,IAAI,GAAG,EAA6B,CAAA;IACrD,UAAU,GAAG,IAAI,GAAG,EAAiE,CAAA;IAC9F,OAAO,CAAuB;IAE9B,YAAY,OAA6B;QACvC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;IACzB,CAAC;IAED,OAAO;QACL,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,OAAO;YAAE,OAAM;QACvE,MAAM,MAAM,GACV,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { SolidObjectsConfiguration } from "../configuration.js";
|
|
2
|
+
import type { EffectContext, JsonObject, JsonValue, Logger } from "../types.js";
|
|
3
|
+
import type { DurableObjectsBackend } from "./protocol.js";
|
|
4
|
+
export type EffectHandler = (argumentsValue: JsonObject, context: EffectContext) => JsonValue | void | Promise<JsonValue | void>;
|
|
5
|
+
export type CloudflareConfiguration = Pick<SolidObjectsConfiguration, "authorizeMessage" | "authorizeQuery" | "authorizeDestroy" | "authorizeSubscription" | "authorizeAdministration" | "instrumentation" | "logger" | "maxAttempts" | "maxMailboxLength" | "maxPayloadBytes" | "maxStateBytes" | "maxResultBytes" | "maxMessagesPerActivationPass" | "maxActivationDurationMilliseconds" | "retryDelayMilliseconds" | "messageRetentionMilliseconds" | "pruneBatchSize"> & {
|
|
6
|
+
backend: DurableObjectsBackend;
|
|
7
|
+
effects?: Readonly<Record<string, EffectHandler>>;
|
|
8
|
+
};
|
|
9
|
+
export declare function buildCloudflareSettings(configuration: CloudflareConfiguration): {
|
|
10
|
+
authorizeMessage: (input: import("../configuration.js").AuthorizationInput) => boolean | Promise<boolean>;
|
|
11
|
+
authorizeQuery: (input: import("../configuration.js").AuthorizationInput) => boolean | Promise<boolean>;
|
|
12
|
+
authorizeDestroy: (input: import("../configuration.js").DestroyAuthorizationInput) => boolean | Promise<boolean>;
|
|
13
|
+
authorizeSubscription: (input: import("../configuration.js").SubscriptionAuthorizationInput) => boolean | Promise<boolean>;
|
|
14
|
+
authorizeAdministration: (input: import("../configuration.js").AdministrationAuthorizationInput) => boolean | Promise<boolean>;
|
|
15
|
+
effects: Readonly<Record<string, EffectHandler>>;
|
|
16
|
+
logger: Logger;
|
|
17
|
+
maxAttempts: number;
|
|
18
|
+
maxMailboxLength: number;
|
|
19
|
+
maxPayloadBytes: number;
|
|
20
|
+
maxStateBytes: number;
|
|
21
|
+
maxResultBytes: number;
|
|
22
|
+
maxMessagesPerActivationPass: number;
|
|
23
|
+
maxActivationDurationMilliseconds: number;
|
|
24
|
+
retryDelayMilliseconds: (attempt: number) => number;
|
|
25
|
+
messageRetentionMilliseconds: number;
|
|
26
|
+
pruneBatchSize: number;
|
|
27
|
+
instrumentation?: (event: import("../configuration.js").InstrumentationEvent) => void;
|
|
28
|
+
backend: DurableObjectsBackend;
|
|
29
|
+
};
|
|
30
|
+
export type CloudflareSettings = ReturnType<typeof buildCloudflareSettings>;
|
|
31
|
+
export declare const consoleLogger: Logger;
|
|
32
|
+
//# sourceMappingURL=configuration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../../src/cloudflare/configuration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAA;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAC/E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAE1D,MAAM,MAAM,aAAa,GAAG,CAC1B,cAAc,EAAE,UAAU,EAC1B,OAAO,EAAE,aAAa,KACnB,SAAS,GAAG,IAAI,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAA;AAEjD,MAAM,MAAM,uBAAuB,GAAG,IAAI,CACxC,yBAAyB,EACvB,kBAAkB,GAClB,gBAAgB,GAChB,kBAAkB,GAClB,uBAAuB,GACvB,yBAAyB,GACzB,iBAAiB,GACjB,QAAQ,GACR,aAAa,GACb,kBAAkB,GAClB,iBAAiB,GACjB,eAAe,GACf,gBAAgB,GAChB,8BAA8B,GAC9B,mCAAmC,GACnC,wBAAwB,GACxB,8BAA8B,GAC9B,gBAAgB,CACnB,GAAG;IACF,OAAO,EAAE,qBAAqB,CAAA;IAC9B,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAA;CAClD,CAAA;AAED,wBAAgB,uBAAuB,CAAC,aAAa,EAAE,uBAAuB;;;;;;;;;;;;;;;;;;;aAJnE,qBAAqB;EA2C/B;AAED,MAAM,MAAM,kBAAkB,GAAG,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAE3E,eAAO,MAAM,aAAa,EAAE,MAK3B,CAAA"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
export function buildCloudflareSettings(configuration) {
|
|
2
|
+
const settings = {
|
|
3
|
+
...configuration,
|
|
4
|
+
authorizeMessage: configuration.authorizeMessage ?? (() => false),
|
|
5
|
+
authorizeQuery: configuration.authorizeQuery ?? (() => false),
|
|
6
|
+
authorizeDestroy: configuration.authorizeDestroy ?? (() => false),
|
|
7
|
+
authorizeSubscription: configuration.authorizeSubscription ?? (() => false),
|
|
8
|
+
authorizeAdministration: configuration.authorizeAdministration ?? (() => false),
|
|
9
|
+
effects: configuration.effects ?? {},
|
|
10
|
+
logger: configuration.logger ?? consoleLogger,
|
|
11
|
+
maxAttempts: configuration.maxAttempts ?? 5,
|
|
12
|
+
maxMailboxLength: configuration.maxMailboxLength ?? 10_000,
|
|
13
|
+
maxPayloadBytes: configuration.maxPayloadBytes ?? 1_048_576,
|
|
14
|
+
maxStateBytes: configuration.maxStateBytes ?? 1_048_576,
|
|
15
|
+
maxResultBytes: configuration.maxResultBytes ?? 1_048_576,
|
|
16
|
+
maxMessagesPerActivationPass: configuration.maxMessagesPerActivationPass ?? 50,
|
|
17
|
+
maxActivationDurationMilliseconds: configuration.maxActivationDurationMilliseconds ?? 5_000,
|
|
18
|
+
retryDelayMilliseconds: configuration.retryDelayMilliseconds ??
|
|
19
|
+
((attempt) => Math.min(2 ** (attempt - 1), 60) * 1_000),
|
|
20
|
+
messageRetentionMilliseconds: configuration.messageRetentionMilliseconds ?? 30 * 86_400_000,
|
|
21
|
+
pruneBatchSize: configuration.pruneBatchSize ?? 1_000,
|
|
22
|
+
};
|
|
23
|
+
for (const name of [
|
|
24
|
+
"maxAttempts",
|
|
25
|
+
"maxMailboxLength",
|
|
26
|
+
"maxPayloadBytes",
|
|
27
|
+
"maxStateBytes",
|
|
28
|
+
"maxResultBytes",
|
|
29
|
+
"maxMessagesPerActivationPass",
|
|
30
|
+
"maxActivationDurationMilliseconds",
|
|
31
|
+
"messageRetentionMilliseconds",
|
|
32
|
+
"pruneBatchSize",
|
|
33
|
+
]) {
|
|
34
|
+
if (!Number.isSafeInteger(settings[name]) || settings[name] <= 0) {
|
|
35
|
+
throw new TypeError(`${name} must be a positive safe integer`);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return settings;
|
|
39
|
+
}
|
|
40
|
+
export const consoleLogger = {
|
|
41
|
+
debug: (entry) => console.debug(entry),
|
|
42
|
+
info: (entry) => console.info(entry),
|
|
43
|
+
warn: (entry) => console.warn(entry),
|
|
44
|
+
error: (entry) => console.error(entry),
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=configuration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configuration.js","sourceRoot":"","sources":["../../src/cloudflare/configuration.ts"],"names":[],"mappings":"AAiCA,MAAM,UAAU,uBAAuB,CAAC,aAAsC;IAC5E,MAAM,QAAQ,GAAG;QACf,GAAG,aAAa;QAChB,gBAAgB,EAAE,aAAa,CAAC,gBAAgB,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;QACjE,cAAc,EAAE,aAAa,CAAC,cAAc,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;QAC7D,gBAAgB,EAAE,aAAa,CAAC,gBAAgB,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;QACjE,qBAAqB,EAAE,aAAa,CAAC,qBAAqB,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;QAC3E,uBAAuB,EAAE,aAAa,CAAC,uBAAuB,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;QAC/E,OAAO,EAAE,aAAa,CAAC,OAAO,IAAI,EAAE;QACpC,MAAM,EAAE,aAAa,CAAC,MAAM,IAAI,aAAa;QAC7C,WAAW,EAAE,aAAa,CAAC,WAAW,IAAI,CAAC;QAC3C,gBAAgB,EAAE,aAAa,CAAC,gBAAgB,IAAI,MAAM;QAC1D,eAAe,EAAE,aAAa,CAAC,eAAe,IAAI,SAAS;QAC3D,aAAa,EAAE,aAAa,CAAC,aAAa,IAAI,SAAS;QACvD,cAAc,EAAE,aAAa,CAAC,cAAc,IAAI,SAAS;QACzD,4BAA4B,EAAE,aAAa,CAAC,4BAA4B,IAAI,EAAE;QAC9E,iCAAiC,EAAE,aAAa,CAAC,iCAAiC,IAAI,KAAK;QAC3F,sBAAsB,EACpB,aAAa,CAAC,sBAAsB;YACpC,CAAC,CAAC,OAAe,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC;QACjE,4BAA4B,EAAE,aAAa,CAAC,4BAA4B,IAAI,EAAE,GAAG,UAAU;QAC3F,cAAc,EAAE,aAAa,CAAC,cAAc,IAAI,KAAK;KACtD,CAAA;IACD,KAAK,MAAM,IAAI,IAAI;QACjB,aAAa;QACb,kBAAkB;QAClB,iBAAiB;QACjB,eAAe;QACf,gBAAgB;QAChB,8BAA8B;QAC9B,mCAAmC;QACnC,8BAA8B;QAC9B,gBAAgB;KACR,EAAE,CAAC;QACX,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACjE,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,kCAAkC,CAAC,CAAA;QAChE,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAID,MAAM,CAAC,MAAM,aAAa,GAAW;IACnC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;IACtC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;IACpC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;IACpC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;CACvC,CAAA"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { ActorClass } from "../actor.js";
|
|
2
|
+
import type { JsonValue } from "../types.js";
|
|
3
|
+
import type { CloudflareSettings } from "./configuration.js";
|
|
4
|
+
import { type HostRequest } from "./protocol.js";
|
|
5
|
+
import { CloudflareRuntime } from "./runtime.js";
|
|
6
|
+
import { ActorStorage } from "./storage.js";
|
|
7
|
+
export declare class ActorEngine {
|
|
8
|
+
readonly store: ActorStorage;
|
|
9
|
+
readonly runtime: CloudflareRuntime;
|
|
10
|
+
private readonly definitions;
|
|
11
|
+
private actorRunning;
|
|
12
|
+
private readonly delivering;
|
|
13
|
+
private cached;
|
|
14
|
+
constructor(store: ActorStorage, actors: readonly ActorClass[]);
|
|
15
|
+
get settings(): CloudflareSettings;
|
|
16
|
+
request(input: HostRequest): Promise<JsonValue>;
|
|
17
|
+
pump(): Promise<void>;
|
|
18
|
+
private bind;
|
|
19
|
+
private definition;
|
|
20
|
+
private ensureInstance;
|
|
21
|
+
private enqueue;
|
|
22
|
+
private authorizeOperation;
|
|
23
|
+
private readMessage;
|
|
24
|
+
private committed;
|
|
25
|
+
private snapshot;
|
|
26
|
+
private projection;
|
|
27
|
+
private destroy;
|
|
28
|
+
private drainActors;
|
|
29
|
+
private execute;
|
|
30
|
+
private assertCurrent;
|
|
31
|
+
private stage;
|
|
32
|
+
private addOutbox;
|
|
33
|
+
private deliver;
|
|
34
|
+
private outboxCurrent;
|
|
35
|
+
private stageEffectCallback;
|
|
36
|
+
private scheduleReminders;
|
|
37
|
+
private completeReminder;
|
|
38
|
+
private pauseReminder;
|
|
39
|
+
private administer;
|
|
40
|
+
private retryDelay;
|
|
41
|
+
private emit;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/cloudflare/engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAS,UAAU,EAAgB,MAAM,aAAa,CAAA;AA8BlE,OAAO,KAAK,EAAc,SAAS,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAC5D,OAAO,EAA2C,KAAK,WAAW,EAAE,MAAM,eAAe,CAAA;AAEzF,OAAO,EAAkB,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAI3C,qBAAa,WAAW;IAQpB,QAAQ,CAAC,KAAK,EAAE,YAAY;IAP9B,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAA;IACnC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA8C;IAC1E,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,MAAM,CAAmD;gBAGtD,KAAK,EAAE,YAAY,EAC5B,MAAM,EAAE,SAAS,UAAU,EAAE;IAW/B,IAAI,QAAQ,IAAI,kBAAkB,CAEjC;IAEK,OAAO,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC;IAqE/C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA2B3B,OAAO,CAAC,IAAI;IASZ,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,cAAc;IAyBtB,OAAO,CAAC,OAAO;YA+FD,kBAAkB;YAWlB,WAAW;IAmCzB,OAAO,CAAC,SAAS;YAaH,QAAQ;YAwBR,UAAU;IAuDxB,OAAO,CAAC,OAAO;YAmBD,WAAW;YAeX,OAAO;IAsJrB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,KAAK;IAmEb,OAAO,CAAC,SAAS;YAwBH,OAAO;IA2HrB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,mBAAmB;IA6B3B,OAAO,CAAC,iBAAiB;IA+BzB,OAAO,CAAC,gBAAgB;IAoBxB,OAAO,CAAC,aAAa;YAUP,UAAU;IA2ExB,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,IAAI;CAWb"}
|