solid-objects 0.14.6 → 0.14.7
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 +16 -0
- package/README.md +4 -0
- 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 +5 -1
- package/dist/repository.d.ts.map +1 -1
- package/dist/repository.js +16 -0
- 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 +19 -0
- 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 +20 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.14.7 - 2026-09-05
|
|
4
|
+
|
|
5
|
+
- Read SQL message results and completion status in one statement so concurrent
|
|
6
|
+
completion cannot return a stale `null` result.
|
|
7
|
+
- Add `solid-objects/core` and the Cloudflare Durable Objects runtime backend.
|
|
8
|
+
Each actor identity owns SQLite state, a durable mailbox, retry state,
|
|
9
|
+
reminders, and effect/message outboxes. Request IDs recover ambiguous RPC
|
|
10
|
+
acceptance; incarnation and execution generations fence stale commits.
|
|
11
|
+
- Add hibernating session Durable Objects for existing browser subscriptions,
|
|
12
|
+
including multi-actor connections, fresh authorization, personalized payloads,
|
|
13
|
+
revision fencing, and durable subscription cleanup.
|
|
14
|
+
- Share actor turn evaluation across SQL and Cloudflare. Keep Workers types and
|
|
15
|
+
imports separate from the Node target. Add Workers integration tests, a
|
|
16
|
+
runnable example, bundle checks, and an explicit backend capability matrix.
|
|
17
|
+
The Cloudflare backend is experimental pending deployed failover/soak testing.
|
|
18
|
+
|
|
3
19
|
## 0.14.6 - 2026-09-03
|
|
4
20
|
|
|
5
21
|
- Poll effects, reminders, and broadcasts through ordered indexes installed by
|
package/README.md
CHANGED
|
@@ -5,6 +5,10 @@
|
|
|
5
5
|
|
|
6
6
|
**Open Source Durable Objects in your Node app.**
|
|
7
7
|
|
|
8
|
+
Deploying on Cloudflare? The [Durable Objects backend](docs/cloudflare.md) runs
|
|
9
|
+
the same actor API on Workers, with durable mailboxes, alarms, and browser
|
|
10
|
+
subscriptions. Start with the [Cloudflare example](examples/cloudflare/README.md).
|
|
11
|
+
|
|
8
12
|
In a shopping cart, paying twice at the same time is a big problem. The payment provider might time out, and your Node site could be restarting before recovery finishes.
|
|
9
13
|
|
|
10
14
|
To deal with this safely, you often need logic scattered between 7-10 files like database row locks, Redis locks, delayed jobs, retries, and cleanup code to keep that process straight. They are not all large, but they must agree about the same payment state and failure rules. That coordination is the difficult part.
|
|
@@ -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"}
|