solid-objects 0.15.2 → 0.16.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.
Files changed (127) hide show
  1. package/CHANGELOG.md +130 -0
  2. package/README.md +1 -1
  3. package/dist/actor-runtime.d.ts +9 -1
  4. package/dist/actor-runtime.d.ts.map +1 -1
  5. package/dist/actor.d.ts +22 -4
  6. package/dist/actor.d.ts.map +1 -1
  7. package/dist/actor.js +81 -2
  8. package/dist/actor.js.map +1 -1
  9. package/dist/broadcast-worker.js +1 -1
  10. package/dist/broadcast-worker.js.map +1 -1
  11. package/dist/cloudflare/configuration.d.ts +3 -1
  12. package/dist/cloudflare/configuration.d.ts.map +1 -1
  13. package/dist/cloudflare/configuration.js +4 -0
  14. package/dist/cloudflare/configuration.js.map +1 -1
  15. package/dist/cloudflare/engine.d.ts +4 -0
  16. package/dist/cloudflare/engine.d.ts.map +1 -1
  17. package/dist/cloudflare/engine.js +91 -24
  18. package/dist/cloudflare/engine.js.map +1 -1
  19. package/dist/cloudflare/records.d.ts +2 -0
  20. package/dist/cloudflare/records.d.ts.map +1 -1
  21. package/dist/cloudflare/runtime.d.ts +8 -0
  22. package/dist/cloudflare/runtime.d.ts.map +1 -1
  23. package/dist/cloudflare/runtime.js +52 -1
  24. package/dist/cloudflare/runtime.js.map +1 -1
  25. package/dist/cloudflare/storage.d.ts +2 -0
  26. package/dist/cloudflare/storage.d.ts.map +1 -1
  27. package/dist/cloudflare/storage.js +10 -0
  28. package/dist/cloudflare/storage.js.map +1 -1
  29. package/dist/configuration.d.ts +9 -5
  30. package/dist/configuration.d.ts.map +1 -1
  31. package/dist/configuration.js +43 -7
  32. package/dist/configuration.js.map +1 -1
  33. package/dist/database/types.d.ts +4 -0
  34. package/dist/database/types.d.ts.map +1 -1
  35. package/dist/dead-letter-scopes.d.ts +75 -0
  36. package/dist/dead-letter-scopes.d.ts.map +1 -0
  37. package/dist/dead-letter-scopes.js +157 -0
  38. package/dist/dead-letter-scopes.js.map +1 -0
  39. package/dist/dead-letters.d.ts +5 -0
  40. package/dist/dead-letters.d.ts.map +1 -1
  41. package/dist/dead-letters.js +16 -0
  42. package/dist/dead-letters.js.map +1 -1
  43. package/dist/definition.d.ts +2 -0
  44. package/dist/definition.d.ts.map +1 -1
  45. package/dist/definition.js +1 -1
  46. package/dist/definition.js.map +1 -1
  47. package/dist/doctor.d.ts +1 -0
  48. package/dist/doctor.d.ts.map +1 -1
  49. package/dist/doctor.js +35 -2
  50. package/dist/doctor.js.map +1 -1
  51. package/dist/effect-recovery-coordinator.d.ts +2 -0
  52. package/dist/effect-recovery-coordinator.d.ts.map +1 -1
  53. package/dist/effect-recovery-coordinator.js +1 -1
  54. package/dist/effect-recovery-coordinator.js.map +1 -1
  55. package/dist/effect-worker.js +1 -1
  56. package/dist/effect-worker.js.map +1 -1
  57. package/dist/errors.d.ts +4 -0
  58. package/dist/errors.d.ts.map +1 -1
  59. package/dist/errors.js +7 -0
  60. package/dist/errors.js.map +1 -1
  61. package/dist/index.d.ts +9 -5
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +5 -2
  64. package/dist/index.js.map +1 -1
  65. package/dist/outcome.d.ts +18 -0
  66. package/dist/outcome.d.ts.map +1 -0
  67. package/dist/outcome.js +2 -0
  68. package/dist/outcome.js.map +1 -0
  69. package/dist/platform/uuid.d.ts +1 -0
  70. package/dist/platform/uuid.d.ts.map +1 -1
  71. package/dist/platform/uuid.js +5 -0
  72. package/dist/platform/uuid.js.map +1 -1
  73. package/dist/records.d.ts +6 -0
  74. package/dist/records.d.ts.map +1 -1
  75. package/dist/redrive.d.ts +60 -0
  76. package/dist/redrive.d.ts.map +1 -0
  77. package/dist/redrive.js +239 -0
  78. package/dist/redrive.js.map +1 -0
  79. package/dist/reference.d.ts +17 -3
  80. package/dist/reference.d.ts.map +1 -1
  81. package/dist/reference.js +10 -0
  82. package/dist/reference.js.map +1 -1
  83. package/dist/reminder-scheduler.js +1 -1
  84. package/dist/reminder-scheduler.js.map +1 -1
  85. package/dist/repository.d.ts +34 -4
  86. package/dist/repository.d.ts.map +1 -1
  87. package/dist/repository.js +124 -21
  88. package/dist/repository.js.map +1 -1
  89. package/dist/runtime.d.ts +42 -1
  90. package/dist/runtime.d.ts.map +1 -1
  91. package/dist/runtime.js +263 -6
  92. package/dist/runtime.js.map +1 -1
  93. package/dist/schema.d.ts +1 -0
  94. package/dist/schema.d.ts.map +1 -1
  95. package/dist/schema.js +97 -1
  96. package/dist/schema.js.map +1 -1
  97. package/dist/types.d.ts +15 -0
  98. package/dist/types.d.ts.map +1 -1
  99. package/dist/version.d.ts +1 -1
  100. package/dist/version.js +1 -1
  101. package/dist/wake-up/postgresql.d.ts +4 -2
  102. package/dist/wake-up/postgresql.d.ts.map +1 -1
  103. package/dist/wake-up/postgresql.js +9 -0
  104. package/dist/wake-up/postgresql.js.map +1 -1
  105. package/dist/wake-up/redis.d.ts +2 -1
  106. package/dist/wake-up/redis.d.ts.map +1 -1
  107. package/dist/wake-up/redis.js +6 -0
  108. package/dist/wake-up/redis.js.map +1 -1
  109. package/dist/wake-up-selection.d.ts +22 -0
  110. package/dist/wake-up-selection.d.ts.map +1 -0
  111. package/dist/wake-up-selection.js +198 -0
  112. package/dist/wake-up-selection.js.map +1 -0
  113. package/dist/wake-up.d.ts +15 -0
  114. package/dist/wake-up.d.ts.map +1 -1
  115. package/dist/wake-up.js +6 -0
  116. package/dist/wake-up.js.map +1 -1
  117. package/dist/worker.js +1 -1
  118. package/dist/worker.js.map +1 -1
  119. package/docs/api.md +202 -6
  120. package/docs/cloudflare.md +1 -0
  121. package/docs/configuration.md +52 -22
  122. package/docs/correctness.md +8 -0
  123. package/docs/dashboard.md +9 -0
  124. package/docs/fit.md +3 -1
  125. package/docs/operations.md +104 -7
  126. package/docs/parity.md +100 -25
  127. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,135 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.16.0 - 2026-09-23
4
+
5
+ - Find a message whose reference a caller lost. `runtime.findBy({ requestId })`
6
+ answers a request id, which is unique across the table, and
7
+ `reference.findBy({ idempotencyKey })` answers a key, which is unique per
8
+ actor, so the receiver supplies the scope the key needs. Naming neither key,
9
+ naming both, or naming an idempotency key without a reference throws.
10
+ - Authorize every lookup with the hook the original call ran, against the stored
11
+ operation and arguments, because a request id is not a capability. An absent
12
+ row, an actor this process no longer registers, and a caller the policy
13
+ refuses all return `undefined`, so a lookup cannot be used to ask whether a
14
+ request id exists.
15
+ - Add `messageReference.outcome()`, which reports the status, the result, the
16
+ persisted error, the rejection, and the attempt count, so a terminal failure
17
+ answers as well as a success. Every value is frozen, so a caller cannot mutate
18
+ a durable result it read. The error carries `name` and `message`; this runtime
19
+ has never persisted a stack, which [parity](docs/parity.md) now records
20
+ against Ruby's `backtrace`.
21
+ - Add schema version 12: a unique index on `messages.request_id`. The table had
22
+ only `UNIQUE (actor_type, actor_id, request_id)`, which cannot serve a lookup
23
+ that names the request id alone.
24
+ - Tell a pruned message from one that never existed. An actor remembers the
25
+ idempotency keys of its own finished turns, the way an Orleans grain keeps its
26
+ deduplication history in grain state, so the memory needs no second store and
27
+ no second write. `reference.findBy({ idempotencyKey })` throws
28
+ `MessagePruned` for a key the actor remembers and whose message retention
29
+ removed, and still returns `undefined` for a key no caller ever sent. The
30
+ An actor remembers the operation beside each key, so the pruned answer runs
31
+ the same hook against the same operation a lookup of the surviving row would,
32
+ and a caller the policy refuses reads `undefined` for both. Gating it on
33
+ `snapshot` would have told a caller who may read state, but not the
34
+ operation, that the operation had run. The Durable Objects lookup no longer
35
+ demands a synthetic `__lookupMessage__` query in addition, which a policy
36
+ that allows only declared queries refused. `retainedIdempotencyKeys` bounds the memory and defaults
37
+ to 64 keys for each actor. A lookup by request id cannot make the
38
+ distinction, because the runtime generates a request id and no actor
39
+ remembers one. `retainedIdempotencyKeysBytes` bounds the serialized memory as
40
+ well, because an idempotency key has no length limit and the memory outlives
41
+ the message row. An actor drops its oldest keys until the list fits, so a key
42
+ long enough to fill the limit by itself is never remembered.
43
+ - Add schema version 13: `instances.completed_idempotency_keys`. The doctor
44
+ now reports the column as missing when it is not installed.
45
+ - Implement `findBy` and `messageOutcome` on the Durable Objects runtime, which
46
+ `ActorRuntime` required and the backend did not supply, so `pnpm run check`
47
+ and `pnpm run build` both failed. A Durable Object indexes only its own
48
+ messages, so `runtime.findBy({ requestId })` without a reference raises
49
+ `UnsupportedCapability`; every other form works. A lookup that the policy
50
+ refuses answers `undefined` there too. The Durable Objects `lookup` gates on
51
+ `authorizeQuery` before it reads, which would otherwise have thrown
52
+ `Unauthorized` where the SQL runtime answers absent, and a lookup that threw
53
+ where it was refused is a way to ask whether a key exists.
54
+ - Read the expected schema migration list from `SCHEMA_VERSIONS` in the doctor
55
+ and in the tests that assert it, rather than from four hand-copied lists.
56
+
57
+ - Retry a dead effect or broadcast. `runtime.deadLetters` keeps its message
58
+ meaning and answers `effects` and `broadcasts`, so the kind rides on the
59
+ receiver. `retry` returns a dead row to pending with a zero attempt count and
60
+ no claim, keeps its id so a deduplicating handler sees the same key, and acts
61
+ only on a dead row, so a second press cannot double-enqueue.
62
+ - Redrive a whole scope. `redrive` opens a durable task, returns at once, and is
63
+ idempotent over its scope and filters, which a dashboard button needs. A
64
+ unique index on the active scope enforces that in the database.
65
+ `runtime.run()` advances one bounded batch per pass, so a redrive never holds
66
+ a transaction longer than one batch. `runtime.redrives` reads tasks back, and
67
+ `task.cancel()` stops one and leaves the rows it already moved. A redrive
68
+ moves what was dead when it started, so a still-broken handler cannot make it
69
+ run forever.
70
+ - Record who pressed what. Every retry and every redrive transition writes one
71
+ row to `solid_objects_administration_events`. The identity comes from the
72
+ authorization context through a new `administrationIdentity` option.
73
+ - Add `redriveBatchSize`, which defaults to 100, and
74
+ `redriveBatchPauseMilliseconds`, which defaults to 50.
75
+ - Add schema version 11: two tables, `solid_objects_administration_events` and
76
+ `solid_objects_redrives`, and a `failed_at_ms` stamp on effects and
77
+ broadcasts, which a redrive filters on. Existing dead rows take their
78
+ availability stamp.
79
+
80
+ - Select a wake-up adapter automatically. `wakeUp` now takes a name or an
81
+ adapter, as `config.cache_store` does in Rails, and defaults to
82
+ `"automatic"`. Selection prefers `SOLID_OBJECTS_REDIS_URL`, then PostgreSQL
83
+ notifications, then polling. `"in_process"` opts out, and an unknown name
84
+ throws rather than polls quietly.
85
+ - PostgreSQL applications that configure nothing now use notifications. They
86
+ gain cross-process wake-up, one dedicated listening client, and one `NOTIFY`
87
+ per commit. Set `wakeUp: "in_process"` to keep polling.
88
+ - Prove the PostgreSQL notification path before selecting it, because `LISTEN`
89
+ does not survive a transaction pooler such as PgBouncer. Selection listens on
90
+ a probe channel, sends one `NOTIFY` from a second connection, and waits up to
91
+ two seconds for it to arrive. A probe that does not deliver falls back to
92
+ polling and warns once.
93
+ - Report the resolved choice. `runtime.wakeUpCapability()` names the adapter,
94
+ whether it crosses processes, its measured floor, and why it was chosen. The
95
+ doctor reports it as a `wakeUp` check, and the polling-only warning now fires
96
+ on what was installed rather than on whether a setting was set.
97
+ - Keep the capability a configured adapter reports about itself. A configured
98
+ `InProcessWakeUpAdapter` now reports `in_process` and warns, rather than
99
+ claim that it crosses processes.
100
+ - Poll rather than pretend when a requested adapter cannot be built.
101
+ `wakeUp: "postgresql"` on a database with no notification channel,
102
+ `wakeUp: "redis"` without `SOLID_OBJECTS_REDIS_URL`, and a Redis URL without
103
+ the `redis` package each log `solid_objects.wake_up.unavailable` once and
104
+ report the reason in the capability, so the doctor warns rather than claim a
105
+ cross-process wake-up that cannot happen.
106
+ - Select once per runtime. `runtime.wakeUpAdapter()` memoises the selection, so
107
+ callers that race for the first use share one probe rather than run one each.
108
+
109
+ - Add reminder reading. `reminder()` returns one armed alarm as a
110
+ `ScheduledReminder`, and `reminders()` lists every key of one operation. Both
111
+ apply the intents staged so far in the turn, so a read agrees with what the
112
+ commit will write. Reading works on the SQL backends and on Durable Objects.
113
+ - Leave a one-shot reminder that already fired out of `reminder()` and
114
+ `reminders()`. Its row stays as `completed`, so a next-run lookup reported an
115
+ old time rather than nothing, and an existence check refused to re-arm an
116
+ alarm that could never fire again.
117
+ - Refuse an unknown operation in `unschedule()` and `unscheduleAll()`.
118
+ `schedule()` already threw `UnknownOperation` for one, so a typo cancelled
119
+ nothing quietly and left a recurring reminder running.
120
+ - Add reminder cancellation. `unschedule()` removes one alarm by operation, by
121
+ operation and key, or by the handle `schedule()` now returns.
122
+ `unscheduleAll()` removes every key of one operation. Both stage an intent
123
+ beside the schedules, so they apply in the order the turn called them, commit
124
+ with the state change that decided them, and cancel nothing when a turn
125
+ throws. Cancellation works on the SQL backends and on Durable Objects. A
126
+ cancellation that lands on an occurrence the scheduler claimed but has not yet
127
+ enqueued pre-empts it, and the scheduler continues rather than failing.
128
+ - `schedule()` now returns a `ReminderHandle` (`{ name: string }`) instead of
129
+ `void`. A handle is a plain object, so it survives in actor state and still
130
+ cancels after a deactivation. Code that assigned the result to `void` needs
131
+ updating, as `emit` required in 0.15.0.
132
+
3
133
  ## 0.15.2 - 2026-09-21
4
134
 
5
135
  - Stop the deadlock between concurrent callers that create the same actor from
package/README.md CHANGED
@@ -16,7 +16,7 @@ Solid Object JavaScript Actors elegantly fit anything where one identifiable thi
16
16
  - Ticket holds and reservations
17
17
  - Multiplayer games and shared rooms
18
18
  - Shopping carts and checkout recovery
19
- - Rate limits and account quotas
19
+ - Low-rate quotas and account limits
20
20
  - Session expiration
21
21
  - Job leases and workflows
22
22
  - Connected devices
@@ -1,7 +1,8 @@
1
1
  import type { RealtimeManager } from "./realtime.js";
2
2
  import type { Actor, ActorClass } from "./actor.js";
3
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";
4
+ import type { Outcome } from "./outcome.js";
5
+ import type { ActorIdentifier, AdministrationOptions, AsyncInvocationOptions, DeepReadonly, DestroyOptions, InvocationOptions, JsonObject, JsonValue, Logger, MessageStatus, SnapshotOptions } from "./types.js";
5
6
  export interface SnapshotWithIncarnation<ActorType extends Actor> {
6
7
  snapshot: ActorSnapshot<ActorType>;
7
8
  instanceId: string;
@@ -24,6 +25,13 @@ export interface ActorRuntime {
24
25
  }): Promise<MessageReference<Result>>;
25
26
  wait<Result>(reference: MessageReference<Result>, options?: InvocationOptions): Promise<DeepReadonly<Result>>;
26
27
  messageStatus(reference: MessageReference, options?: SnapshotOptions): Promise<MessageStatus>;
28
+ messageOutcome<Result>(reference: MessageReference<Result>, options?: SnapshotOptions): Promise<Outcome<Result>>;
29
+ findBy(input: {
30
+ reference?: ActorReferenceCore<Actor>;
31
+ requestId?: string;
32
+ idempotencyKey?: string;
33
+ authorizationContext?: AdministrationOptions["authorizationContext"];
34
+ }): Promise<MessageReference | undefined>;
27
35
  messageResult<Result>(reference: MessageReference<Result>, options?: SnapshotOptions): Promise<DeepReadonly<Result> | undefined>;
28
36
  snapshot<ActorType extends Actor>(reference: ActorReferenceCore<ActorType>, options?: SnapshotOptions): Promise<ActorSnapshot<ActorType>>;
29
37
  snapshotWithIncarnation<ActorType extends Actor>(reference: ActorReferenceCore<ActorType>, options?: SnapshotOptions): Promise<SnapshotWithIncarnation<ActorType>>;
@@ -1 +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"}
1
+ {"version":3,"file":"actor-runtime.d.ts","sourceRoot":"","sources":["../src/actor-runtime.ts"],"names":[],"mappings":"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"}
package/dist/actor.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import type { StateMigration } from "./definition.js";
2
- import { type ActorReference, type ScheduledOperationsFor, type StagedOperations } from "./reference.js";
3
- import type { ActorIdentifier, EffectHandle, JsonObject, JsonValue, MessageContext } from "./types.js";
2
+ import { type ActorReference, type ScheduledOperationsFor, type TransmittedOperationsFor, type StagedOperations } from "./reference.js";
3
+ import type { ActorIdentifier, EffectHandle, JsonObject, ReminderHandle, ScheduledReminder, JsonValue, MessageContext } from "./types.js";
4
4
  declare const observableBroadcastMode: unique symbol;
5
5
  export type ObservableBroadcast<Value> = Readonly<{
6
6
  value: Value;
@@ -43,6 +43,7 @@ export interface CommitActionIntent {
43
43
  arguments: JsonObject;
44
44
  }
45
45
  export interface ReminderIntent {
46
+ cancel?: undefined;
46
47
  /** Without a key this is the operation. */
47
48
  name: string;
48
49
  operation: string;
@@ -51,6 +52,15 @@ export interface ReminderIntent {
51
52
  intervalMilliseconds?: number;
52
53
  missedPolicy: "all" | "latest";
53
54
  }
55
+ export interface UnscheduleIntent {
56
+ cancel: "one";
57
+ name: string;
58
+ }
59
+ export interface UnscheduleAllIntent {
60
+ cancel: "all";
61
+ operation: string;
62
+ }
63
+ export type ReminderMutation = ReminderIntent | UnscheduleIntent | UnscheduleAllIntent;
54
64
  export interface OutboundMessageIntent {
55
65
  actorType: string;
56
66
  actorId: string;
@@ -63,7 +73,7 @@ export interface ActorIntents {
63
73
  effects: EffectIntent[];
64
74
  effectRecoveries?: EffectRecoveryIntent[];
65
75
  commitActions: CommitActionIntent[];
66
- reminders: ReminderIntent[];
76
+ reminders: ReminderMutation[];
67
77
  outboundMessages: OutboundMessageIntent[];
68
78
  }
69
79
  export interface ActorClass<ActorType extends Actor = Actor> {
@@ -105,10 +115,18 @@ export declare abstract class Actor {
105
115
  }): never;
106
116
  emit<const Success extends string = never, const Failure extends string = never, const Recovery extends string = never, const Status extends string = never>(this: CallbackActor<NoInfer<Success>> & CallbackActor<NoInfer<Failure>> & CallbackActor<NoInfer<Recovery>> & CallbackActor<NoInfer<Status>>, name: string, options?: EffectOptions<Success, Failure, Recovery, Status>): EffectHandle;
107
117
  requestEffectRecovery(handle: EffectHandle): void;
108
- transmit<Keys extends keyof this, ActorType>(this: Actor & Pick<this, Keys> & (Partial<ActorType> | NoInfer<this>)): ScheduledOperationsFor<InferredActor<Keys, ActorType>>;
118
+ transmit<Keys extends keyof this, ActorType>(this: Actor & Pick<this, Keys> & (Partial<ActorType> | NoInfer<this>)): TransmittedOperationsFor<InferredActor<Keys, ActorType>>;
109
119
  commitAction(name: string, argumentsValue?: Record<string, unknown>): void;
110
120
  /** See docs/api.md for when to give a reminder a key. */
111
121
  schedule<Keys extends keyof this, ActorType>(this: Actor & Pick<this, Keys> & (Partial<ActorType> | NoInfer<this>), options: ReminderOptions): ScheduledOperationsFor<InferredActor<Keys, ActorType>>;
122
+ unschedule(operationOrHandle: string | ReminderHandle, options?: {
123
+ key?: string | number;
124
+ }): void;
125
+ unscheduleAll(operation: string): void;
126
+ reminder(operationOrHandle: string | ReminderHandle, options?: {
127
+ key?: string | number;
128
+ }): Promise<ScheduledReminder | undefined>;
129
+ reminders(operation: string): Promise<ScheduledReminder[]>;
112
130
  sendTo<TargetActor extends Actor>(reference: ActorReference<TargetActor>, options?: OutboundMessageOptions): StagedOperations<TargetActor>;
113
131
  }
114
132
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"actor.d.ts","sourceRoot":"","sources":["../src/actor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"actor.d.ts","sourceRoot":"","sources":["../src/actor.ts"],"names":[],"mappings":"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"}
package/dist/actor.js CHANGED
@@ -32,6 +32,38 @@ function validatedReminderKey(key) {
32
32
  * reverse, and it is refused here rather than at the insert, once the turn is
33
33
  * already doing work.
34
34
  */
35
+ function handleName(handle, key) {
36
+ if (key !== undefined)
37
+ throw new TypeError("a reminder handle already names its key");
38
+ const name = handle?.name;
39
+ if (typeof name !== "string" || name.length === 0) {
40
+ throw new TypeError("a reminder handle returned by schedule is required");
41
+ }
42
+ return name;
43
+ }
44
+ function applyReminderIntent(view, intent) {
45
+ if (intent.cancel === "all") {
46
+ for (const [name, status] of view) {
47
+ if (status.operation === intent.operation)
48
+ view.delete(name);
49
+ }
50
+ return;
51
+ }
52
+ if (intent.cancel === "one") {
53
+ view.delete(intent.name);
54
+ return;
55
+ }
56
+ view.set(intent.name, {
57
+ name: intent.name,
58
+ operation: intent.operation,
59
+ key: intent.name === intent.operation ? null : intent.name.slice(intent.operation.length + 1),
60
+ runAtMilliseconds: intent.atMilliseconds,
61
+ intervalMilliseconds: intent.intervalMilliseconds ?? null,
62
+ missedPolicy: intent.missedPolicy,
63
+ status: "scheduled",
64
+ handle: { name: intent.name },
65
+ });
66
+ }
35
67
  function reminderName(operation, key) {
36
68
  if (key === undefined)
37
69
  return operation;
@@ -50,6 +82,7 @@ export class Actor {
50
82
  return (currentRuntime() ?? getDefaultRuntime()).ref(this, actorId);
51
83
  }
52
84
  #actorId;
85
+ #readReminders;
53
86
  #intents = {
54
87
  effects: [],
55
88
  commitActions: [],
@@ -148,8 +181,9 @@ export class Actor {
148
181
  }
149
182
  const key = validatedReminderKey(options.key);
150
183
  return createStagedOperationMap(this.#operations, (operation, argumentsValue) => {
184
+ const name = reminderName(operation, key);
151
185
  this.#intents.reminders.push({
152
- name: reminderName(operation, key),
186
+ name,
153
187
  operation,
154
188
  atMilliseconds,
155
189
  arguments: jsonObject(argumentsValue),
@@ -158,8 +192,52 @@ export class Actor {
158
192
  ? {}
159
193
  : { intervalMilliseconds: options.everyMilliseconds }),
160
194
  });
195
+ return { name };
196
+ });
197
+ }
198
+ unschedule(operationOrHandle, options = {}) {
199
+ this.#intents.reminders.push({
200
+ cancel: "one",
201
+ name: this.#reminderNameOf(operationOrHandle, options),
161
202
  });
162
203
  }
204
+ unscheduleAll(operation) {
205
+ this.#assertOperation(operation);
206
+ this.#intents.reminders.push({ cancel: "all", operation });
207
+ }
208
+ async reminder(operationOrHandle, options = {}) {
209
+ return (await this.#reminderView()).get(this.#reminderNameOf(operationOrHandle, options));
210
+ }
211
+ async reminders(operation) {
212
+ this.#assertOperation(operation);
213
+ const view = await this.#reminderView();
214
+ return [...view.values()].filter((status) => status.operation === operation);
215
+ }
216
+ #reminderNameOf(operationOrHandle, options) {
217
+ if (typeof operationOrHandle === "string") {
218
+ this.#assertOperation(operationOrHandle);
219
+ return reminderName(operationOrHandle, validatedReminderKey(options.key));
220
+ }
221
+ return handleName(operationOrHandle, options.key);
222
+ }
223
+ async #reminderView() {
224
+ if (!this.#readReminders) {
225
+ throw new TypeError("reading reminders is not available outside an actor turn");
226
+ }
227
+ const view = new Map();
228
+ for (const reminder of await this.#readReminders()) {
229
+ if (reminder.status !== "completed")
230
+ view.set(reminder.name, reminder);
231
+ }
232
+ for (const intent of this.#intents.reminders)
233
+ applyReminderIntent(view, intent);
234
+ return view;
235
+ }
236
+ #assertOperation(operation) {
237
+ if (this.#operations.has(operation))
238
+ return;
239
+ throw new UnknownOperation(`unknown operation ${JSON.stringify(operation)}`);
240
+ }
163
241
  sendTo(reference, options = {}) {
164
242
  if (options.availableAt !== undefined && !Number.isFinite(options.availableAt.getTime())) {
165
243
  throw new TypeError("message availability time must be valid");
@@ -178,8 +256,9 @@ export class Actor {
178
256
  });
179
257
  }
180
258
  /** @internal */
181
- prepare(operations) {
259
+ prepare(operations, readReminders) {
182
260
  this.#operations = operations;
261
+ this.#readReminders = readReminders;
183
262
  }
184
263
  /** @internal */
185
264
  invoke(operation, argumentsValue) {
package/dist/actor.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"actor.js","sourceRoot":"","sources":["../src/actor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"actor.js","sourceRoot":"","sources":["../src/actor.ts"],"names":[],"mappings":"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"}
@@ -51,7 +51,7 @@ export class BroadcastWorker {
51
51
  await this.ensureRegistered();
52
52
  await this.runtime.warnIfPollingIsOnlyCrossProcessWakeUp();
53
53
  while (!signal.aborted && !this.stopping) {
54
- const wakeUp = await this.runtime.settings.wakeUp.watch("broadcasts");
54
+ const wakeUp = await this.runtime.watchWakeUp("broadcasts");
55
55
  const processed = await this.runOnce();
56
56
  if (processed > 0) {
57
57
  this.pollingBackoff.reset("work");
@@ -1 +1 @@
1
- {"version":3,"file":"broadcast-worker.js","sourceRoot":"","sources":["../src/broadcast-worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"broadcast-worker.js","sourceRoot":"","sources":["../src/broadcast-worker.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import type { SolidObjectsConfiguration } from "../configuration.js";
2
2
  import type { EffectContext, JsonObject, JsonValue, Logger } from "../types.js";
3
3
  import type { DurableObjectsBackend } from "./protocol.js";
4
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"> & {
5
+ export type CloudflareConfiguration = Pick<SolidObjectsConfiguration, "authorizeMessage" | "authorizeQuery" | "authorizeDestroy" | "authorizeSubscription" | "authorizeAdministration" | "instrumentation" | "logger" | "maxAttempts" | "maxMailboxLength" | "maxPayloadBytes" | "maxStateBytes" | "maxResultBytes" | "maxMessagesPerActivationPass" | "maxActivationDurationMilliseconds" | "retryDelayMilliseconds" | "messageRetentionMilliseconds" | "pruneBatchSize" | "retainedIdempotencyKeys" | "retainedIdempotencyKeysBytes"> & {
6
6
  backend: DurableObjectsBackend;
7
7
  effects?: Readonly<Record<string, EffectHandler>>;
8
8
  };
@@ -24,6 +24,8 @@ export declare function buildCloudflareSettings(configuration: CloudflareConfigu
24
24
  retryDelayMilliseconds: (attempt: number) => number;
25
25
  messageRetentionMilliseconds: number;
26
26
  pruneBatchSize: number;
27
+ retainedIdempotencyKeys: number;
28
+ retainedIdempotencyKeysBytes: number;
27
29
  instrumentation?: (event: import("../configuration.js").InstrumentationEvent) => void;
28
30
  backend: DurableObjectsBackend;
29
31
  };
@@ -1 +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"}
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,GAChB,yBAAyB,GACzB,8BAA8B,CACjC,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;EA+C/B;AAED,MAAM,MAAM,kBAAkB,GAAG,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAE3E,eAAO,MAAM,aAAa,EAAE,MAK3B,CAAA"}
@@ -19,6 +19,8 @@ export function buildCloudflareSettings(configuration) {
19
19
  ((attempt) => Math.min(2 ** (attempt - 1), 60) * 1_000),
20
20
  messageRetentionMilliseconds: configuration.messageRetentionMilliseconds ?? 30 * 86_400_000,
21
21
  pruneBatchSize: configuration.pruneBatchSize ?? 1_000,
22
+ retainedIdempotencyKeys: configuration.retainedIdempotencyKeys ?? 64,
23
+ retainedIdempotencyKeysBytes: configuration.retainedIdempotencyKeysBytes ?? 16_384,
22
24
  };
23
25
  for (const name of [
24
26
  "maxAttempts",
@@ -30,6 +32,8 @@ export function buildCloudflareSettings(configuration) {
30
32
  "maxActivationDurationMilliseconds",
31
33
  "messageRetentionMilliseconds",
32
34
  "pruneBatchSize",
35
+ "retainedIdempotencyKeys",
36
+ "retainedIdempotencyKeysBytes",
33
37
  ]) {
34
38
  if (!Number.isSafeInteger(settings[name]) || settings[name] <= 0) {
35
39
  throw new TypeError(`${name} must be a positive safe integer`);
@@ -1 +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"}
1
+ {"version":3,"file":"configuration.js","sourceRoot":"","sources":["../../src/cloudflare/configuration.ts"],"names":[],"mappings":"AAmCA,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;QACrD,uBAAuB,EAAE,aAAa,CAAC,uBAAuB,IAAI,EAAE;QACpE,4BAA4B,EAAE,aAAa,CAAC,4BAA4B,IAAI,MAAM;KACnF,CAAA;IACD,KAAK,MAAM,IAAI,IAAI;QACjB,aAAa;QACb,kBAAkB;QAClB,iBAAiB;QACjB,eAAe;QACf,gBAAgB;QAChB,8BAA8B;QAC9B,mCAAmC;QACnC,8BAA8B;QAC9B,gBAAgB;QAChB,yBAAyB;QACzB,8BAA8B;KACtB,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"}
@@ -21,7 +21,11 @@ export declare class ActorEngine {
21
21
  private enqueue;
22
22
  private authorizeOperation;
23
23
  private readMessage;
24
+ private lookUp;
25
+ private prunedReply;
26
+ private rememberKey;
24
27
  private committed;
28
+ private readReminders;
25
29
  private snapshot;
26
30
  private projection;
27
31
  private destroy;
@@ -1 +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,EAIV,SAAS,EAEV,MAAM,aAAa,CAAA;AACpB,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;IAmKrB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,KAAK;IAmEb,OAAO,CAAC,SAAS;YAwBH,OAAO;IA4HrB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,mBAAmB;IA2B3B,OAAO,CAAC,iBAAiB;IA+BzB,OAAO,CAAC,gBAAgB;IAoBxB,OAAO,CAAC,aAAa;YAUP,UAAU;IA2ExB,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,IAAI;CAWb"}
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,EAIV,SAAS,EAGV,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAE5D,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;IAkBzB,OAAO,CAAC,MAAM;YAeA,WAAW;IAuBzB,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,aAAa,CAahB;YAES,QAAQ;YA6BR,UAAU;IA4DxB,OAAO,CAAC,OAAO;YAmBD,WAAW;YAeX,OAAO;IAyKrB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,KAAK;IA2Eb,OAAO,CAAC,SAAS;YAwBH,OAAO;IA4HrB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,mBAAmB;IA2B3B,OAAO,CAAC,iBAAiB;IA+BzB,OAAO,CAAC,gBAAgB;IAoBxB,OAAO,CAAC,aAAa;YAUP,UAAU;IA2ExB,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,IAAI;CAWb"}