solid-objects 1.0.5 → 1.0.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.
Files changed (87) hide show
  1. package/CHANGELOG.md +69 -0
  2. package/README.md +7 -0
  3. package/dist/actor-runtime.d.ts +3 -0
  4. package/dist/actor-runtime.d.ts.map +1 -1
  5. package/dist/broadcast-worker.d.ts +1 -0
  6. package/dist/broadcast-worker.d.ts.map +1 -1
  7. package/dist/broadcast-worker.js +10 -1
  8. package/dist/broadcast-worker.js.map +1 -1
  9. package/dist/configuration.d.ts +2 -0
  10. package/dist/configuration.d.ts.map +1 -1
  11. package/dist/configuration.js +24 -1
  12. package/dist/configuration.js.map +1 -1
  13. package/dist/database/sqlite.d.ts +6 -0
  14. package/dist/database/sqlite.d.ts.map +1 -1
  15. package/dist/database/sqlite.js +23 -2
  16. package/dist/database/sqlite.js.map +1 -1
  17. package/dist/doctor.js +1 -1
  18. package/dist/doctor.js.map +1 -1
  19. package/dist/due-work.d.ts +15 -0
  20. package/dist/due-work.d.ts.map +1 -0
  21. package/dist/due-work.js +124 -0
  22. package/dist/due-work.js.map +1 -0
  23. package/dist/effect-worker.d.ts +1 -0
  24. package/dist/effect-worker.d.ts.map +1 -1
  25. package/dist/effect-worker.js +10 -1
  26. package/dist/effect-worker.js.map +1 -1
  27. package/dist/errors.d.ts +14 -0
  28. package/dist/errors.d.ts.map +1 -1
  29. package/dist/errors.js +11 -0
  30. package/dist/errors.js.map +1 -1
  31. package/dist/index.d.ts +1 -1
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +1 -1
  34. package/dist/index.js.map +1 -1
  35. package/dist/local-signal.d.ts +15 -0
  36. package/dist/local-signal.d.ts.map +1 -0
  37. package/dist/local-signal.js +35 -0
  38. package/dist/local-signal.js.map +1 -0
  39. package/dist/redrive.d.ts +3 -0
  40. package/dist/redrive.d.ts.map +1 -1
  41. package/dist/redrive.js +30 -1
  42. package/dist/redrive.js.map +1 -1
  43. package/dist/reminder-scheduler.d.ts +1 -0
  44. package/dist/reminder-scheduler.d.ts.map +1 -1
  45. package/dist/reminder-scheduler.js +10 -1
  46. package/dist/reminder-scheduler.js.map +1 -1
  47. package/dist/repository.d.ts +8 -1
  48. package/dist/repository.d.ts.map +1 -1
  49. package/dist/repository.js +57 -21
  50. package/dist/repository.js.map +1 -1
  51. package/dist/runtime.d.ts +8 -7
  52. package/dist/runtime.d.ts.map +1 -1
  53. package/dist/runtime.js +50 -6
  54. package/dist/runtime.js.map +1 -1
  55. package/dist/single-owner.d.ts +17 -0
  56. package/dist/single-owner.d.ts.map +1 -0
  57. package/dist/single-owner.js +27 -0
  58. package/dist/single-owner.js.map +1 -0
  59. package/dist/version.d.ts +1 -1
  60. package/dist/version.js +1 -1
  61. package/dist/wake-up-selection.d.ts +1 -0
  62. package/dist/wake-up-selection.d.ts.map +1 -1
  63. package/dist/wake-up-selection.js +10 -0
  64. package/dist/wake-up-selection.js.map +1 -1
  65. package/dist/wall-clock-watch.d.ts +14 -0
  66. package/dist/wall-clock-watch.d.ts.map +1 -0
  67. package/dist/wall-clock-watch.js +35 -0
  68. package/dist/wall-clock-watch.js.map +1 -0
  69. package/dist/worker.d.ts +3 -0
  70. package/dist/worker.d.ts.map +1 -1
  71. package/dist/worker.js +29 -4
  72. package/dist/worker.js.map +1 -1
  73. package/docs/agents.md +10 -3
  74. package/docs/api.md +66 -16
  75. package/docs/benchmarks.md +208 -69
  76. package/docs/compare/ai-agents.md +252 -0
  77. package/docs/compare/dbos.md +12 -0
  78. package/docs/compare/graphile-worker.md +11 -0
  79. package/docs/compare/restate.md +12 -1
  80. package/docs/comparisons.md +1 -0
  81. package/docs/configuration.md +114 -18
  82. package/docs/correctness.md +61 -10
  83. package/docs/errors-and-recovery.md +4 -0
  84. package/docs/operations.md +45 -5
  85. package/docs/parity.md +7 -2
  86. package/docs/virtual-actors.md +2 -2
  87. package/package.json +5 -4
@@ -1 +1 @@
1
- {"version":3,"file":"wake-up-selection.d.ts","sourceRoot":"","sources":["../src/wake-up-selection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAIL,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EACnB,MAAM,cAAc,CAAA;AAErB,eAAO,MAAM,kBAAkB,4BAA4B,CAAA;AAC3D,eAAO,MAAM,6BAA6B,MAAM,CAAA;AAChD,eAAO,MAAM,wBAAwB,MAAM,CAAA;AAC3C,eAAO,MAAM,0BAA0B,OAAQ,CAAA;AAC/C,eAAO,MAAM,oBAAoB,wBAAwB,CAAA;AAQzD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAA;IAC/B,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAA;CACtC;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,aAAa,CAAA;IACtB,QAAQ,EAAE,QAAQ,CAAA;IAClB,+BAA+B,EAAE,MAAM,CAAA;IACvC,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,wBAAwB,CAAC,EAAE,MAAM,CAAA;CAClC;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,cAAc,CAAC,CAK3F"}
1
+ {"version":3,"file":"wake-up-selection.d.ts","sourceRoot":"","sources":["../src/wake-up-selection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAIL,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EACnB,MAAM,cAAc,CAAA;AAErB,eAAO,MAAM,kBAAkB,4BAA4B,CAAA;AAC3D,eAAO,MAAM,6BAA6B,MAAM,CAAA;AAChD,eAAO,MAAM,wBAAwB,MAAM,CAAA;AAC3C,eAAO,MAAM,0BAA0B,OAAQ,CAAA;AAC/C,eAAO,MAAM,oBAAoB,wBAAwB,CAAA;AAQzD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAA;IAC/B,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAA;CACtC;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,aAAa,CAAA;IACtB,QAAQ,EAAE,QAAQ,CAAA;IAClB,+BAA+B,EAAE,MAAM,CAAA;IACvC,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,wBAAwB,CAAC,EAAE,MAAM,CAAA;CAClC;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,cAAc,CAAC,CAK3F;AAED,wBAAgB,iBAAiB,IAAI,cAAc,CAUlD"}
@@ -13,6 +13,16 @@ export async function selectWakeUp(options) {
13
13
  return await automatic(options);
14
14
  return await named({ ...options, name: setting });
15
15
  }
16
+ export function singleOwnerWakeUp() {
17
+ return {
18
+ adapter: new InProcessWakeUpAdapter(),
19
+ capability: {
20
+ adapter: "in_process",
21
+ crossesProcesses: false,
22
+ reason: "singleOwner is set, so one process owns the database and in-process signalling reaches every role",
23
+ },
24
+ };
25
+ }
16
26
  function configured(adapter) {
17
27
  if (adapter.defaultCapability)
18
28
  return { adapter, capability: adapter.defaultCapability };
@@ -1 +1 @@
1
- {"version":3,"file":"wake-up-selection.js","sourceRoot":"","sources":["../src/wake-up-selection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wake-up-selection.js","sourceRoot":"","sources":["../src/wake-up-selection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export declare const WALL_CLOCK_WATCH_INTERVAL_MILLISECONDS = 10000;
2
+ export declare const WALL_CLOCK_JUMP_MILLISECONDS = 1000;
3
+ export declare class WallClockWatch {
4
+ private readonly options;
5
+ private stopping;
6
+ constructor(options: {
7
+ onJump: () => void;
8
+ });
9
+ run(signal: AbortSignal): Promise<void>;
10
+ requestShutdown(): void;
11
+ stopped(): boolean;
12
+ stop(): void;
13
+ }
14
+ //# sourceMappingURL=wall-clock-watch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wall-clock-watch.d.ts","sourceRoot":"","sources":["../src/wall-clock-watch.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,sCAAsC,QAAS,CAAA;AAC5D,eAAO,MAAM,4BAA4B,OAAQ,CAAA;AAEjD,qBAAa,cAAc;IAGb,OAAO,CAAC,QAAQ,CAAC,OAAO;IAFpC,OAAO,CAAC,QAAQ,CAAQ;gBAEK,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,IAAI,CAAA;KAAE;IAEtD,GAAG,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAW7C,eAAe,IAAI,IAAI;IAIvB,OAAO,IAAI,OAAO;IAIlB,IAAI,IAAI,IAAI;CAGb"}
@@ -0,0 +1,35 @@
1
+ import { waitFor } from "./worker.js";
2
+ export const WALL_CLOCK_WATCH_INTERVAL_MILLISECONDS = 10_000;
3
+ export const WALL_CLOCK_JUMP_MILLISECONDS = 1_000;
4
+ export class WallClockWatch {
5
+ options;
6
+ stopping = false;
7
+ constructor(options) {
8
+ this.options = options;
9
+ }
10
+ async run(signal) {
11
+ let offset = wallClockOffset();
12
+ while (!signal.aborted && !this.stopping) {
13
+ await waitFor(WALL_CLOCK_WATCH_INTERVAL_MILLISECONDS, signal);
14
+ if (signal.aborted || this.stopping)
15
+ return;
16
+ const current = wallClockOffset();
17
+ if (Math.abs(current - offset) >= WALL_CLOCK_JUMP_MILLISECONDS)
18
+ this.options.onJump();
19
+ offset = current;
20
+ }
21
+ }
22
+ requestShutdown() {
23
+ this.stopping = true;
24
+ }
25
+ stopped() {
26
+ return this.stopping;
27
+ }
28
+ stop() {
29
+ this.stopping = true;
30
+ }
31
+ }
32
+ function wallClockOffset() {
33
+ return Date.now() - performance.now();
34
+ }
35
+ //# sourceMappingURL=wall-clock-watch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wall-clock-watch.js","sourceRoot":"","sources":["../src/wall-clock-watch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAErC,MAAM,CAAC,MAAM,sCAAsC,GAAG,MAAM,CAAA;AAC5D,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAAK,CAAA;AAEjD,MAAM,OAAO,cAAc;IAGI;IAFrB,QAAQ,GAAG,KAAK,CAAA;IAExB,YAA6B,OAA+B;QAA/B,YAAO,GAAP,OAAO,CAAwB;IAAG,CAAC;IAEhE,KAAK,CAAC,GAAG,CAAC,MAAmB;QAC3B,IAAI,MAAM,GAAG,eAAe,EAAE,CAAA;QAC9B,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACzC,MAAM,OAAO,CAAC,sCAAsC,EAAE,MAAM,CAAC,CAAA;YAC7D,IAAI,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAM;YAC3C,MAAM,OAAO,GAAG,eAAe,EAAE,CAAA;YACjC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,4BAA4B;gBAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAA;YACrF,MAAM,GAAG,OAAO,CAAA;QAClB,CAAC;IACH,CAAC;IAED,eAAe;QACb,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;IACtB,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;IACtB,CAAC;CACF;AAED,SAAS,eAAe;IACtB,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;AACvC,CAAC"}
package/dist/worker.d.ts CHANGED
@@ -7,6 +7,7 @@ export declare class Worker {
7
7
  private stopping;
8
8
  private readonly activations;
9
9
  private readonly pollingBackoff;
10
+ private readonly dueWait;
10
11
  constructor(runtime: SolidObjectsRuntime, options?: {
11
12
  setupFailure?: "report" | "throw";
12
13
  });
@@ -22,6 +23,8 @@ export declare class Worker {
22
23
  stopped(): boolean;
23
24
  stop(): Promise<void>;
24
25
  private releaseCachedActivations;
26
+ private idleWaitMilliseconds;
27
+ private untilCachedActivationDue;
25
28
  private ensureRegistered;
26
29
  private claimCachedActivation;
27
30
  private maintainCachedActivations;
@@ -1 +1 @@
1
- {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAWvD,qBAAa,MAAM;IAQf,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAR1B,QAAQ,CAAC,SAAS,SAAe;IACjC,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsC;IAClE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;gBAG5B,OAAO,EAAE,mBAAmB,EAC5B,OAAO,GAAE;QAAE,YAAY,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAA;KAAO;IAmBtE,IAAI,kCAAkC,IAAI,MAAM,CAE/C;IAEK,OAAO,CAAC,OAAO,GAAE;QAAE,mBAAmB,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;KAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IA2EtF,YAAY,CAAC,OAAO,GAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAgBlE,GAAG,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB7C,eAAe,IAAI,IAAI;IAIvB,OAAO,IAAI,OAAO;IAIZ,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAWb,wBAAwB;YAUxB,gBAAgB;YAKhB,qBAAqB;YAUrB,yBAAyB;YA6BzB,iBAAiB;YASjB,kBAAkB;IAQhC,OAAO,CAAC,kBAAkB;CAgB3B;AAmBD,wBAAgB,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAajF;AAED,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,OAAO,EAAE;IAC1D,OAAO,EAAE,mBAAmB,CAAA;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;CACjC,GAAG,OAAO,CAAC,MAAM,CAAC,CAmBlB"}
1
+ {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAYvD,qBAAa,MAAM;IASf,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAT1B,QAAQ,CAAC,SAAS,SAAe;IACjC,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsC;IAClE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;gBAGrB,OAAO,EAAE,mBAAmB,EAC5B,OAAO,GAAE;QAAE,YAAY,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAA;KAAO;IAmBtE,IAAI,kCAAkC,IAAI,MAAM,CAE/C;IAEK,OAAO,CAAC,OAAO,GAAE;QAAE,mBAAmB,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;KAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IA2EtF,YAAY,CAAC,OAAO,GAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAgBlE,GAAG,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB7C,eAAe,IAAI,IAAI;IAIvB,OAAO,IAAI,OAAO;IAIZ,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAWb,wBAAwB;YAUxB,oBAAoB;IAWlC,OAAO,CAAC,wBAAwB;YAUlB,gBAAgB;YAMhB,qBAAqB;YAUrB,yBAAyB;YA6BzB,iBAAiB;YASjB,kBAAkB;IAQhC,OAAO,CAAC,kBAAkB;CAgB3B;AAmBD,wBAAgB,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAWjF;AAED,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,OAAO,EAAE;IAC1D,OAAO,EAAE,mBAAmB,CAAA;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;CACjC,GAAG,OAAO,CAAC,MAAM,CAAC,CAmBlB"}
package/dist/worker.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { randomUUID } from "./platform/uuid.js";
2
2
  import { ActorSetupFailed, ApplicationWriteForbidden, LostActivation, StateMigrationError, } from "./errors.js";
3
3
  import { PollingBackoff } from "./polling-backoff.js";
4
+ import { DueWait, idleWaitMilliseconds } from "./single-owner.js";
4
5
  import { yieldToEventLoop } from "./yield-to-event-loop.js";
5
6
  export class Worker {
6
7
  runtime;
@@ -10,6 +11,7 @@ export class Worker {
10
11
  stopping = false;
11
12
  activations = new Map();
12
13
  pollingBackoff;
14
+ dueWait = new DueWait();
13
15
  constructor(runtime, options = {}) {
14
16
  this.runtime = runtime;
15
17
  this.options = options;
@@ -139,7 +141,7 @@ export class Worker {
139
141
  continue;
140
142
  }
141
143
  const notified = await wakeUp.wait({
142
- timeoutMilliseconds: this.pollingBackoff.currentIntervalMilliseconds,
144
+ timeoutMilliseconds: await this.idleWaitMilliseconds(),
143
145
  signal,
144
146
  });
145
147
  if (notified === false)
@@ -176,7 +178,28 @@ export class Worker {
176
178
  });
177
179
  }
178
180
  }
181
+ async idleWaitMilliseconds() {
182
+ const databaseWait = await idleWaitMilliseconds({
183
+ settings: this.runtime.settings,
184
+ pollingIntervalMilliseconds: this.pollingBackoff.currentIntervalMilliseconds,
185
+ dueWait: this.dueWait,
186
+ untilDue: () => this.runtime.dueWork.untilActorWork({ processId: this.processId }),
187
+ });
188
+ if (!this.runtime.settings.singleOwner)
189
+ return databaseWait;
190
+ return Math.min(databaseWait, this.untilCachedActivationDue());
191
+ }
192
+ untilCachedActivationDue() {
193
+ let earliest = Number.POSITIVE_INFINITY;
194
+ for (const activation of this.activations.values()) {
195
+ const deactivateAt = activation.lastUsedAt + this.runtime.settings.idleDeactivationTimeoutMilliseconds;
196
+ earliest = Math.min(earliest, activation.renewAt, deactivateAt);
197
+ }
198
+ return Math.max(Math.ceil(earliest - performance.now()), 0);
199
+ }
179
200
  async ensureRegistered() {
201
+ if (this.registered && this.runtime.settings.singleOwner)
202
+ return;
180
203
  await this.runtime.repository.registerProcess(this.processId, "worker");
181
204
  this.registered = true;
182
205
  }
@@ -266,11 +289,13 @@ export function waitFor(milliseconds, signal) {
266
289
  if (signal?.aborted)
267
290
  return Promise.resolve();
268
291
  return new Promise((resolve) => {
269
- const timeout = setTimeout(resolve, milliseconds);
270
- signal?.addEventListener("abort", () => {
292
+ const finish = () => {
271
293
  clearTimeout(timeout);
294
+ signal?.removeEventListener("abort", finish);
272
295
  resolve();
273
- }, { once: true });
296
+ };
297
+ const timeout = setTimeout(finish, milliseconds);
298
+ signal?.addEventListener("abort", finish, { once: true });
274
299
  });
275
300
  }
276
301
  export async function withProcessHeartbeat(options) {
@@ -1 +1 @@
1
- {"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAE/C,OAAO,EACL,gBAAgB,EAChB,yBAAyB,EACzB,cAAc,EACd,mBAAmB,GACpB,MAAM,aAAa,CAAA;AAGpB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAS3D,MAAM,OAAO,MAAM;IAQE;IACA;IARV,SAAS,GAAG,UAAU,EAAE,CAAA;IACzB,UAAU,GAAG,KAAK,CAAA;IAClB,QAAQ,GAAG,KAAK,CAAA;IACP,WAAW,GAAG,IAAI,GAAG,EAA4B,CAAA;IACjD,cAAc,CAAgB;IAE/C,YACmB,OAA4B,EAC5B,UAAiD,EAAE;QADnD,YAAO,GAAP,OAAO,CAAqB;QAC5B,YAAO,GAAP,OAAO,CAA4C;QAEpE,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC;YACvC,2BAA2B,EAAE,IAAI,CAAC,GAAG,CACnC,OAAO,CAAC,QAAQ,CAAC,2BAA2B,EAC5C,OAAO,CAAC,QAAQ,CAAC,gCAAgC,CAClD;YACD,2BAA2B,EAAE,IAAI,CAAC,GAAG,CACnC,OAAO,CAAC,QAAQ,CAAC,+BAA+B,EAChD,OAAO,CAAC,QAAQ,CAAC,gCAAgC,CAClD;YACD,QAAQ,EAAE,CAAC,UAAU,EAAE,EAAE,CACvB,OAAO,CAAC,mBAAmB,CAAC,0BAA0B,EAAE;gBACtD,IAAI,EAAE,QAAQ;gBACd,GAAG,UAAU;aACd,CAAC;SACL,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,kCAAkC;QACpC,OAAO,IAAI,CAAC,cAAc,CAAC,2BAA2B,CAAA;IACxD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,UAA0D,EAAE;QACxE,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO,CAAC,CAAA;YAC3B,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAA;YAC7B,MAAM,IAAI,CAAC,yBAAyB,EAAE,CAAA;YACtC,IAAI,MAAM,GAAiC,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAA;YAC7E,IAAI,IAAI,GAAG,MAAM,EAAE,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAA;YAChF,IAAI,CAAC,IAAI;gBAAE,OAAO,CAAC,CAAA;YACnB,IAAI,SAAS,GAAG,CAAC,CAAA;YACjB,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;YACvC,IAAI,aAAa,GAAG,KAAK,CAAA;YACzB,OAAO,IAAI,EAAE,CAAC;gBACZ,IAAI,SAAS,CAAA;gBACb,IAAI,CAAC;oBACH,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;gBACjE,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,CAAC,KAAK,YAAY,gBAAgB,CAAC;wBAAE,MAAM,KAAK,CAAA;oBACrD,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;oBACnC,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,KAAK,OAAO;wBAAE,MAAM,KAAK,CAAC,UAAU,CAAA;oBACjE,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,UAAU,CAAC;wBAAE,MAAM,KAAK,CAAC,UAAU,CAAA;oBACvE,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,CAAA;oBAC/C,OAAO,SAAS,CAAA;gBAClB,CAAC;gBACD,SAAS,IAAI,CAAC,CAAA;gBACd,IAAI,CAAC,SAAS,CAAC,gBAAgB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;oBACpD,MAAM,IAAI,CAAC,iBAAiB,CAAC;wBAC3B,IAAI;wBACJ,GAAG,CAAC,SAAS,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC;wBACpE,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa;qBAC7D,CAAC,CAAA;oBACF,OAAO,SAAS,CAAA;gBAClB,CAAC;gBACD,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;gBAC7B,MAAM,GAAG;oBACP,KAAK,EAAE,SAAS,CAAC,KAAK;oBACtB,IAAI;oBACJ,UAAU,EAAE,GAAG;oBACf,OAAO,EACL,MAAM,EAAE,OAAO;wBACf,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,gCAAgC;iBACzE,CAAA;gBACD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;gBAC9C,aAAa;oBACX,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,4BAA4B;wBAC/D,WAAW,CAAC,GAAG,EAAE,GAAG,aAAa;4BAC/B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iCAAiC,CAAA;gBAC3D,IAAI,aAAa;oBAAE,MAAK;gBACxB,MAAM,IAAI,CAAC,yBAAyB,EAAE,CAAA;gBACtC,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE;oBACzD,UAAU,EAAE,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC;iBACzC,CAAC,CAAA;YACJ,CAAC;YACD,IAAI,aAAa,EAAE,CAAC;gBAClB,IAAI,CAAC,MAAM;oBAAE,OAAO,SAAS,CAAA;gBAC7B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;gBACzF,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;oBAChB,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,oBAAoB,EAAE;wBACrD,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU;wBACzC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ;wBACrC,SAAS;wBACT,aAAa,EAAE,OAAO;qBACvB,CAAC,CAAA;gBACJ,CAAC;gBACD,MAAM,IAAI,CAAC,iBAAiB,CAAC;oBAC3B,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,SAAS,EAAE,WAAW;iBACvB,CAAC,CAAA;YACJ,CAAC;YACD,OAAO,SAAS,CAAA;QAClB,CAAC;gBAAS,CAAC;YACT,IAAI,OAAO,CAAC,mBAAmB,KAAK,SAAS;gBAAE,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAA;QACtF,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,UAAiC,EAAE;QACpD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAA;QAC3C,IAAI,SAAS,GAAG,CAAC,CAAA;QACjB,IAAI,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,SAAS,GAAG,QAAQ,EAAE,CAAC;gBAC9C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;gBAClC,IAAI,KAAK,KAAK,CAAC;oBAAE,MAAK;gBACtB,SAAS,IAAI,KAAK,CAAA;gBAClB,MAAM,gBAAgB,EAAE,CAAA;YAC1B,CAAC;YACD,OAAO,SAAS,CAAA;QAClB,CAAC;gBAAS,CAAC;YACT,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAA;QACvC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,MAAmB;QAC3B,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAA;QAC7B,MAAM,IAAI,CAAC,OAAO,CAAC,qCAAqC,EAAE,CAAA;QAC1D,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACzC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;YACvD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;YACtC,IAAI,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ;gBAAE,MAAK;YAC1C,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;gBAClB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;gBACjC,MAAM,gBAAgB,EAAE,CAAA;gBACxB,SAAQ;YACV,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;gBACjC,mBAAmB,EAAE,IAAI,CAAC,cAAc,CAAC,2BAA2B;gBACpE,MAAM;aACP,CAAC,CAAA;YACF,IAAI,QAAQ,KAAK,KAAK;gBAAE,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAA;;gBACnD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;QAC3C,CAAC;QACD,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;IACnB,CAAC;IAED,eAAe;QACb,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;IACtB,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAM;QAC7C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;QACpB,IAAI,IAAI,CAAC,UAAU;YAAE,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACvF,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAA;QACrC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YACzD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAA;QACzB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,wBAAwB;QACpC,KAAK,MAAM,UAAU,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;YACxD,MAAM,IAAI,CAAC,iBAAiB,CAAC;gBAC3B,IAAI,EAAE,UAAU,CAAC,IAAI;gBACrB,KAAK,EAAE,UAAU,CAAC,KAAK;gBACvB,SAAS,EAAE,WAAW;aACvB,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC5B,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;QACvE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;IACxB,CAAC;IAEO,KAAK,CAAC,qBAAqB;QACjC,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;YACnD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE;gBAC/D,UAAU,EAAE,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC;aAC7C,CAAC,CAAA;YACF,IAAI,IAAI;gBAAE,OAAO,EAAE,GAAG,UAAU,EAAE,IAAI,EAAE,CAAA;QAC1C,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IAEO,KAAK,CAAC,yBAAyB;QACrC,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;QAC7B,KAAK,MAAM,UAAU,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;YACxD,IACE,GAAG,GAAG,UAAU,CAAC,UAAU;gBAC3B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,mCAAmC,EACzD,CAAC;gBACD,MAAM,IAAI,CAAC,iBAAiB,CAAC;oBAC3B,IAAI,EAAE,UAAU,CAAC,IAAI;oBACrB,KAAK,EAAE,UAAU,CAAC,KAAK;oBACvB,SAAS,EAAE,WAAW;iBACvB,CAAC,CAAA;gBACF,SAAQ;YACV,CAAC;YACD,IAAI,GAAG,GAAG,UAAU,CAAC,OAAO;gBAAE,SAAQ;YACtC,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA;gBAC/E,UAAU,CAAC,OAAO,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,gCAAgC,CAAA;YACnF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,CAAC,KAAK,YAAY,cAAc,CAAC;oBAAE,MAAM,KAAK,CAAA;gBACnD,MAAM,IAAI,CAAC,iBAAiB,CAAC;oBAC3B,IAAI,EAAE,UAAU,CAAC,IAAI;oBACrB,KAAK,EAAE,UAAU,CAAC,KAAK;oBACvB,SAAS,EAAE,WAAW;iBACvB,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,OAI/B;QACC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QACjD,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;IAC7C,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,IAAiB;QAChD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAA;QAC5D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,CAAC,KAAK,YAAY,cAAc,CAAC;gBAAE,MAAM,KAAK,CAAA;QACrD,CAAC;IACH,CAAC;IAEO,kBAAkB,CAAC,IAAiB,EAAE,KAAc;QAC1D,MAAM,SAAS,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAA;QAC/D,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,qBAAqB,EAAE;YACtD,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU;YAClC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;YAC9B,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;YACjC,SAAS;SACV,CAAC,CAAA;QACF,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;YACjC,KAAK,EAAE,mCAAmC;YAC1C,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU;YAClC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;YAC9B,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;YACjC,SAAS;SACV,CAAC,CAAA;IACJ,CAAC;CACF;AAED,SAAS,wBAAwB,CAAC,KAAc;IAC9C,OAAO,CACL,KAAK,YAAY,mBAAmB;QACpC,KAAK,YAAY,yBAAyB;QAC1C,KAAK,YAAY,cAAc,CAChC,CAAA;AACH,CAAC;AAED,SAAS,eAAe,CAAC,IAAiB;IACxC,OAAO;QACL,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;QAC5B,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;KAChD,CAAA;AACH,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,YAAoB,EAAE,MAAoB;IAChE,IAAI,MAAM,EAAE,OAAO;QAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAC7C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;QACjD,MAAM,EAAE,gBAAgB,CACtB,OAAO,EACP,GAAG,EAAE;YACH,YAAY,CAAC,OAAO,CAAC,CAAA;YACrB,OAAO,EAAE,CAAA;QACX,CAAC,EACD,EAAE,IAAI,EAAE,IAAI,EAAE,CACf,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAS,OAIlD;IACC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,OAAO,CAAA;IACjD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;IACxC,IAAI,cAAuB,CAAA;IAC3B,MAAM,SAAS,GAAG,qBAAqB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAC9F,CAAC,KAAc,EAAE,EAAE;QACjB,cAAc,GAAG,KAAK,CAAA;IACxB,CAAC,CACF,CAAA;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAA;QAChC,UAAU,CAAC,KAAK,EAAE,CAAA;QAClB,MAAM,SAAS,CAAA;QACf,IAAI,cAAc;YAAE,MAAM,cAAc,CAAA;QACxC,OAAO,MAAM,CAAA;IACf,CAAC;YAAS,CAAC;QACT,UAAU,CAAC,KAAK,EAAE,CAAA;QAClB,MAAM,SAAS,CAAA;IACjB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,OAIpC;IACC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;IAC9C,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACvB,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,oCAAoC,EAAE,MAAM,CAAC,CAAA;QAC5E,IAAI,MAAM,CAAC,OAAO;YAAE,OAAM;QAC1B,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAA;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,UAAU,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAA;YAC1F,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;gBAC3B,KAAK,EAAE,wCAAwC;gBAC/C,GAAG,UAAU;aACd,CAAC,CAAA;YACF,OAAO,CAAC,mBAAmB,CAAC,0BAA0B,EAAE,UAAU,CAAC,CAAA;QACrE,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"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"}
package/docs/agents.md CHANGED
@@ -382,6 +382,10 @@ npm install solid-objects @sqlite.org/sqlite-wasm
382
382
  `@sqlite.org/sqlite-wasm` 3.50 or newer is an optional peer dependency. The
383
383
  browser runtime needs it.
384
384
 
385
+ The browser does not propagate ambient guards across `await`. Read the
386
+ [browser context contract](api.md#browser-async-context) before writing async
387
+ actor operations or transaction callbacks.
388
+
385
389
  Every authorization callback denies by default in the browser too. Write the
386
390
  policy in [Authorize in the browser](#authorize-in-the-browser) before you call
387
391
  an actor. Reminders and effects run only while the worker calls
@@ -505,9 +509,12 @@ leaves the device.
505
509
 
506
510
  - One worker hosts one runtime. Do not import `solid-objects/browser/host` in
507
511
  a process that also imports the Node.js entry points.
508
- - After the first `await` in an operation, `currentActor()`,
509
- `applicationWritesForbidden()`, and the database deadline read as unset. Keep
510
- guarded writes in synchronous actor code or in commit actions.
512
+ - After the first `await`, application-write and inside-transaction guards
513
+ read as unset. A direct application write can execute and survive a failed
514
+ turn. Use staged effects or a commit action's supplied fenced connection;
515
+ never wait for an actor while holding a transaction on its database. Read the
516
+ [browser context contract](api.md#browser-async-context). Durable actor fencing
517
+ and the SQLite WASM transaction deadline remain active.
511
518
  - Reminders and effects run only while a worker that calls
512
519
  `runtime.run(signal)` is alive. When the user closes every tab, nothing runs.
513
520
  - With `sharedSqliteWasm`, a statement can fail with `SharedDatabaseFailover`
package/docs/api.md CHANGED
@@ -37,11 +37,10 @@ authorization, capability boundaries, and release validation.
37
37
  owner. The normal lifecycle is `install()`, `run(signal)`, then `close()`.
38
38
  `snapshotWithIncarnation(reference)` returns the same authorized fields as
39
39
  `snapshot()`. It adds the read instance's `instanceId`, `revision`, and
40
- `createdAtMs` from that identical read. A caller can therefore fence a derived
41
- write, such as a downstream projection, against a stale or superseded actor
42
- incarnation. `createdAtMs` orders incarnations to the millisecond. See
43
- [Limitations and non-goals](correctness.md#limitations-and-non-goals) for
44
- the same-millisecond boundary.
40
+ `createdAtMs` from that identical read. Use `instanceId` for incarnation
41
+ equality and compare `revision` numerically only within that same instance.
42
+ `createdAtMs` is creation metadata, not a unique fence or a total ordering.
43
+ See [Snapshot incarnation identity](#snapshot-incarnation-identity).
45
44
  - `Actor`: base class providing `ref()`, `actorId`, `currentMessage`,
46
45
  `observables()`, `reject()`, `emit()`, `transmit()`, `commitAction()`,
47
46
  `schedule()`, `sendTo()`, and protected lifecycle hooks.
@@ -128,6 +127,35 @@ function playerForSession<PlayerType extends { sessionId: string }>(options: {
128
127
  }
129
128
  ```
130
129
 
130
+ ### Snapshot incarnation identity
131
+
132
+ An actor's `instanceId` is its opaque persisted identity. It changes on destroy
133
+ and recreation even when both creations share a database millisecond, state,
134
+ and revision. Use exact `instanceId` equality to decide whether two reads refer
135
+ to the same incarnation. Compare revisions with `BigInt` only when those IDs
136
+ match. Neither `createdAtMs` nor a reset revision can establish identity.
137
+
138
+ ```typescript
139
+ const observed = await runtime.snapshotWithIncarnation(reference)
140
+ // After asynchronous work, check whether a newly authorized read still refers
141
+ // to the same persisted incarnation.
142
+ const current = await runtime.snapshotWithIncarnation(reference)
143
+ const sameIncarnation = observed.instanceId !== "0" && current.instanceId === observed.instanceId
144
+ const sameCommittedState = sameIncarnation && BigInt(current.revision) === BigInt(observed.revision)
145
+ ```
146
+
147
+ This check is a comparison, not an atomic conditional write: the actor may
148
+ change after the second read. A derived SQL write needs its own transactional
149
+ compare-and-set on the expected instance ID and revision, with an authoritative
150
+ procedure for adopting a new instance. A delayed callback must never replace a
151
+ projection's instance merely because its UUID differs. UUIDs carry no ordering;
152
+ creation timestamps can tie, and revision numbers restart on recreation.
153
+
154
+ A snapshot of an actor that has no persisted row returns `instanceId: "0"`,
155
+ `revision: "0"`, and `createdAtMs: 0`. That sentinel is not an incarnation token.
156
+ The first durable enqueue materializes an instance with a fresh ID. Existing
157
+ snapshot fields and durable commit fencing are unchanged.
158
+
131
159
  ### Reminders
132
160
 
133
161
  Keyed reminder names combine the operation, a colon, and the key. JavaScript
@@ -765,18 +793,23 @@ The root exports `SolidObjectsError` and its supported subclasses:
765
793
  `ScheduleWithoutOperation`, `StateMigrationError`, `ApplicationWriteForbidden`, `UnknownEffect`, and
766
794
  `UnknownCommitAction`;
767
795
  - operational failures: `LostActivation`, `DatabaseDeadlineExceeded`,
768
- `UnknownDeadLetter`, `UnknownReminder`, `ReminderNotPaused`, and
769
- `UnsupportedDatabase`.
796
+ `UnknownDeadLetter`, `UnknownReminder`, `ReminderNotPaused`,
797
+ `UnsupportedDatabase`, and `SingleOwnerConflict`.
770
798
 
771
799
  `NonRetryableError` is the application subclassing point. `SyncTimeoutDetails`
772
- and `SyncTimeoutWaitingOn` type timeout diagnostics. See
800
+ and `SyncTimeoutWaitingOn` type timeout diagnostics. `SingleOwnerConflict`
801
+ carries one `SingleOwnerConflictProcess` for each live process row that stopped
802
+ a `singleOwner` runtime from starting. See
773
803
  [Errors and recovery](errors-and-recovery.md) before deciding what to catch.
774
804
 
775
805
  ## `solid-objects/database/sqlite`
776
806
 
777
807
  - `sqlite(options)`: construct `SQLiteDatabase`.
778
808
  - `SQLiteDatabase`: `Database` implementation and `close()` owner.
779
- - `SQLiteDatabaseOptions`: path, busy timeout, and lock retry options.
809
+ - `SQLiteDatabaseOptions`: path, busy timeout, lock retry, and `synchronous`
810
+ options.
811
+ - `SQLiteSynchronous`: `"normal" | "full"`, the `synchronous` level of a file
812
+ database.
780
813
 
781
814
  ## `solid-objects/database/sqlite-wasm`
782
815
 
@@ -883,15 +916,32 @@ entry points; the last registration wins.
883
916
  - The turn-scoped context store expects serialized actor turns. One worker
884
917
  hosts one runtime. A page talks to that worker through messages, not
885
918
  through direct actor references.
886
- - The store scopes only the synchronous part of a callback and restores
887
- the previous scope in strict stack order, so an interleaved task never
888
- observes another turn's scope. The cost of that isolation: after the
889
- first `await` inside an actor operation, `currentActor()`,
890
- `applicationWritesForbidden()`, and the database deadline read as unset.
891
- Keep guarded application-database writes in synchronous actor code or in
892
- commit actions; Node keeps full `AsyncLocalStorage` propagation.
893
919
  - Alarms and reminders fire only while the hosting worker is alive.
894
920
 
921
+ ### Browser async context
922
+
923
+ **The browser guards are best-effort after `await`.** The turn-scoped store
924
+ restores its previous scope as soon as a callback returns a promise. After the
925
+ first `await`, `currentActor()`, `applicationWritesForbidden()`, and the ambient
926
+ inside-transaction check read as unset. A direct application write that was
927
+ rejected before the yield can therefore execute afterward, including a write
928
+ through a row-returning method. Do not rely on the facade to make browser
929
+ actor code safe against such writes. Async callbacks passed to database
930
+ transactions also lose the inside-transaction check; never wait for an actor
931
+ on the same database while holding its transaction.
932
+
933
+ Keep external writes in staged effects, or use a commit action's supplied
934
+ fenced connection for SQL that must commit with actor state. Direct writes to a
935
+ separate application database can survive a failed actor turn. Node retains
936
+ these guards across awaits through `AsyncLocalStorage`.
937
+
938
+ Durable actor-state fencing, mailbox ordering, and the SQLite WASM adapter's
939
+ explicit transaction deadline enforcement remain active. The real-browser
940
+ context regression attempts prohibited writes before a yield, after a promise,
941
+ and after a timer, and verifies actor-state rollback independently. The context
942
+ store intentionally does not retain a global scope until a promise settles:
943
+ that would leak one actor's context into unrelated interleaved tasks.
944
+
895
945
  ## `solid-objects/browser/tab-host`
896
946
 
897
947
  Many tabs, one runtime. Each tab starts a candidate host; the Web Locks API