@indigoai-us/hq-cloud 6.15.78 → 6.15.80

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 (95) hide show
  1. package/dist/bin/area-ledger-migration.d.ts +13 -0
  2. package/dist/bin/area-ledger-migration.d.ts.map +1 -0
  3. package/dist/bin/area-ledger-migration.js +64 -0
  4. package/dist/bin/area-ledger-migration.js.map +1 -0
  5. package/dist/bin/area-ledger-migration.test.d.ts +2 -0
  6. package/dist/bin/area-ledger-migration.test.d.ts.map +1 -0
  7. package/dist/bin/area-ledger-migration.test.js +55 -0
  8. package/dist/bin/area-ledger-migration.test.js.map +1 -0
  9. package/dist/bin/sync-runner-company.d.ts +6 -0
  10. package/dist/bin/sync-runner-company.d.ts.map +1 -1
  11. package/dist/bin/sync-runner-company.js +6 -0
  12. package/dist/bin/sync-runner-company.js.map +1 -1
  13. package/dist/bin/sync-runner-company.test.js +47 -0
  14. package/dist/bin/sync-runner-company.test.js.map +1 -1
  15. package/dist/cli/share.d.ts +8 -0
  16. package/dist/cli/share.d.ts.map +1 -1
  17. package/dist/cli/share.js +184 -10
  18. package/dist/cli/share.js.map +1 -1
  19. package/dist/cli/share.test.js +330 -7
  20. package/dist/cli/share.test.js.map +1 -1
  21. package/dist/cli/sync.d.ts +7 -0
  22. package/dist/cli/sync.d.ts.map +1 -1
  23. package/dist/cli/sync.js +11 -1
  24. package/dist/cli/sync.js.map +1 -1
  25. package/dist/cli/sync.test.js +25 -0
  26. package/dist/cli/sync.test.js.map +1 -1
  27. package/dist/index.d.ts +2 -0
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +3 -0
  30. package/dist/index.js.map +1 -1
  31. package/dist/index.test.js +11 -1
  32. package/dist/index.test.js.map +1 -1
  33. package/dist/journal-store.test.js +42 -1
  34. package/dist/journal-store.test.js.map +1 -1
  35. package/dist/journal.d.ts +13 -1
  36. package/dist/journal.d.ts.map +1 -1
  37. package/dist/journal.js +104 -3
  38. package/dist/journal.js.map +1 -1
  39. package/dist/sync/area-ledger-migration.d.ts +116 -0
  40. package/dist/sync/area-ledger-migration.d.ts.map +1 -0
  41. package/dist/sync/area-ledger-migration.js +505 -0
  42. package/dist/sync/area-ledger-migration.js.map +1 -0
  43. package/dist/sync/area-ledger-migration.test.d.ts +2 -0
  44. package/dist/sync/area-ledger-migration.test.d.ts.map +1 -0
  45. package/dist/sync/area-ledger-migration.test.js +274 -0
  46. package/dist/sync/area-ledger-migration.test.js.map +1 -0
  47. package/dist/sync/area-ledger.d.ts +93 -0
  48. package/dist/sync/area-ledger.d.ts.map +1 -0
  49. package/dist/sync/area-ledger.js +460 -0
  50. package/dist/sync/area-ledger.js.map +1 -0
  51. package/dist/sync/area-ledger.test.d.ts +2 -0
  52. package/dist/sync/area-ledger.test.d.ts.map +1 -0
  53. package/dist/sync/area-ledger.test.js +199 -0
  54. package/dist/sync/area-ledger.test.js.map +1 -0
  55. package/dist/sync/event-sync.d.ts +14 -4
  56. package/dist/sync/event-sync.d.ts.map +1 -1
  57. package/dist/sync/event-sync.js +177 -61
  58. package/dist/sync/event-sync.js.map +1 -1
  59. package/dist/sync/event-sync.test.js +140 -10
  60. package/dist/sync/event-sync.test.js.map +1 -1
  61. package/dist/sync/index.d.ts +2 -0
  62. package/dist/sync/index.d.ts.map +1 -1
  63. package/dist/sync/index.js +1 -0
  64. package/dist/sync/index.js.map +1 -1
  65. package/dist/sync/parallel-sync-coordinator.d.ts.map +1 -1
  66. package/dist/sync/parallel-sync-coordinator.js +22 -4
  67. package/dist/sync/parallel-sync-coordinator.js.map +1 -1
  68. package/dist/sync/parallel-sync-coordinator.test.js +45 -0
  69. package/dist/sync/parallel-sync-coordinator.test.js.map +1 -1
  70. package/dist/sync/reconcile-cursor.d.ts +97 -0
  71. package/dist/sync/reconcile-cursor.d.ts.map +1 -0
  72. package/dist/sync/reconcile-cursor.js +215 -0
  73. package/dist/sync/reconcile-cursor.js.map +1 -0
  74. package/dist/sync/reconcile-cursor.test.d.ts +2 -0
  75. package/dist/sync/reconcile-cursor.test.d.ts.map +1 -0
  76. package/dist/sync/reconcile-cursor.test.js +139 -0
  77. package/dist/sync/reconcile-cursor.test.js.map +1 -0
  78. package/dist/sync/state-store.d.ts +76 -0
  79. package/dist/sync/state-store.d.ts.map +1 -1
  80. package/dist/sync/state-store.js +317 -3
  81. package/dist/sync/state-store.js.map +1 -1
  82. package/dist/sync/state-store.test.js +39 -1
  83. package/dist/sync/state-store.test.js.map +1 -1
  84. package/dist/sync/sync-work.d.ts +2 -1
  85. package/dist/sync/sync-work.d.ts.map +1 -1
  86. package/dist/sync/sync-work.js.map +1 -1
  87. package/dist/types.d.ts +6 -0
  88. package/dist/types.d.ts.map +1 -1
  89. package/dist/vault-client.d.ts +9 -2
  90. package/dist/vault-client.d.ts.map +1 -1
  91. package/dist/vault-client.js +3 -2
  92. package/dist/vault-client.js.map +1 -1
  93. package/dist/vault-client.test.js +26 -0
  94. package/dist/vault-client.test.js.map +1 -1
  95. package/package.json +3 -2
@@ -0,0 +1,199 @@
1
+ import * as fs from "node:fs";
2
+ import * as os from "node:os";
3
+ import * as path from "node:path";
4
+ import { spawn } from "node:child_process";
5
+ import { once } from "node:events";
6
+ import { afterEach, describe, expect, it } from "vitest";
7
+ import { AreaLedger, setAreaLedgerTestHooksForTest } from "./area-ledger.js";
8
+ const roots = [];
9
+ afterEach(() => {
10
+ setAreaLedgerTestHooksForTest(undefined);
11
+ for (const root of roots.splice(0))
12
+ fs.rmSync(root, { recursive: true, force: true });
13
+ });
14
+ function entry(size) {
15
+ return {
16
+ hash: `${size}`.repeat(64),
17
+ size,
18
+ syncedAt: "2026-08-27T00:00:00.000Z",
19
+ direction: "up",
20
+ };
21
+ }
22
+ function makeRoot() {
23
+ const root = fs.mkdtempSync(path.join(os.tmpdir(), "hq-area-ledger-test-"));
24
+ roots.push(root);
25
+ return root;
26
+ }
27
+ function open(root, initialJournal) {
28
+ return AreaLedger.open({
29
+ rootDir: root,
30
+ journalSlug: "personal-vault",
31
+ layoutEpoch: 1,
32
+ areaIds: ["root:alpha", "root:beta"],
33
+ resolveArea: (key) => key.startsWith("alpha/") ? "root:alpha" : key.startsWith("beta/") ? "root:beta" : undefined,
34
+ initialJournal,
35
+ maxRecordsBeforeCompaction: 2,
36
+ });
37
+ }
38
+ async function exitCode(child) {
39
+ const [code, signal] = await once(child, "exit");
40
+ if (code !== 0)
41
+ throw new Error(`area-ledger child failed with ${String(code)} / ${String(signal)}`);
42
+ return code;
43
+ }
44
+ if (process.env.AREA_LEDGER_CHILD_ROOT) {
45
+ describe("AreaLedger child append", () => {
46
+ it("appends its assigned independent area", () => {
47
+ const ledger = open(process.env.AREA_LEDGER_CHILD_ROOT);
48
+ ledger.append({ upserts: { "beta/from-child.md": entry(2) } });
49
+ });
50
+ });
51
+ }
52
+ else {
53
+ describe("AreaLedger", () => {
54
+ it("allows two processes to append independent areas through distinct append locks", async () => {
55
+ const root = makeRoot();
56
+ const child = spawn(process.execPath, [path.join(process.cwd(), "node_modules/vitest/vitest.mjs"), "run", "src/sync/area-ledger.test.ts", "--no-file-parallelism"], {
57
+ cwd: process.cwd(),
58
+ env: { ...process.env, AREA_LEDGER_CHILD_ROOT: root },
59
+ stdio: "pipe",
60
+ });
61
+ const parent = open(root);
62
+ parent.append({ upserts: { "alpha/from-parent.md": entry(1) } });
63
+ await exitCode(child);
64
+ const reopened = open(root);
65
+ expect(reopened.read().files).toMatchObject({
66
+ "alpha/from-parent.md": { size: 1 },
67
+ "beta/from-child.md": { size: 2 },
68
+ });
69
+ const directories = reopened.stateDirectoriesForTest();
70
+ const alphaLock = path.join(directories.get("root:alpha"), "append.lock");
71
+ const betaLock = path.join(directories.get("root:beta"), "append.lock");
72
+ expect(alphaLock).not.toBe(betaLock);
73
+ expect(fs.existsSync(alphaLock)).toBe(false);
74
+ expect(fs.existsSync(betaLock)).toBe(false);
75
+ }, 30_000);
76
+ it("preserves same-area append ordering and durability", () => {
77
+ const root = makeRoot();
78
+ const first = open(root);
79
+ const second = open(root);
80
+ first.append({ upserts: { "alpha/one.md": entry(1) } });
81
+ second.append({ upserts: { "alpha/two.md": entry(2) } });
82
+ expect(open(root).readScoped(["alpha/one.md", "alpha/two.md"]).files).toMatchObject({
83
+ "alpha/one.md": { size: 1 },
84
+ "alpha/two.md": { size: 2 },
85
+ });
86
+ });
87
+ it("opens only the routed data area for a scoped read", () => {
88
+ const root = makeRoot();
89
+ const ledger = open(root);
90
+ ledger.append({ upserts: { "alpha/one.md": entry(1) } });
91
+ ledger.append({ upserts: { "beta/two.md": entry(2) } });
92
+ const scoped = open(root);
93
+ expect(scoped.readScoped(["alpha/one.md"])).toMatchObject({ files: { "alpha/one.md": { size: 1 } } });
94
+ // Scoped reads refresh @meta so they can include a committed prepare.
95
+ // No unrelated beta data store is needed when no watermark names it.
96
+ expect(scoped.openedAreasForTest()).toEqual(["@meta", "root:alpha"]);
97
+ });
98
+ it("orders a prepared update before later direct updates and deletes", () => {
99
+ const root = makeRoot();
100
+ const ledger = open(root);
101
+ ledger.append({ upserts: { "alpha/x.md": entry(1) }, metadata: { lastSync: "prepared", pulls: [] } });
102
+ ledger.append({ upserts: { "alpha/x.md": entry(2) } });
103
+ expect(ledger.read().files["alpha/x.md"]).toMatchObject({ size: 2 });
104
+ ledger.append({ upserts: { "alpha/x.md": entry(3) }, metadata: { lastSync: "prepared-again", pulls: [] } });
105
+ ledger.append({ deletes: ["alpha/x.md"] });
106
+ expect(ledger.read().files["alpha/x.md"]).toBeUndefined();
107
+ });
108
+ it("includes committed multi-area prepares in scoped reads and refreshes cached stores", () => {
109
+ const root = makeRoot();
110
+ const reader = open(root);
111
+ expect(reader.readScoped(["alpha/one.md"]).files).toEqual({});
112
+ const writer = open(root);
113
+ writer.append({
114
+ upserts: { "alpha/one.md": entry(1), "beta/two.md": entry(2) },
115
+ metadata: { lastSync: "visible", pulls: [] },
116
+ });
117
+ expect(reader.readScoped(["alpha/one.md"])).toMatchObject({
118
+ lastSync: "visible",
119
+ files: { "alpha/one.md": { size: 1 } },
120
+ });
121
+ });
122
+ it("hides a watermark when independent recovery lost one named area prepare", () => {
123
+ const root = makeRoot();
124
+ const ledger = open(root);
125
+ setAreaLedgerTestHooksForTest({
126
+ afterWatermarkBeforeFinalize: () => { throw new Error("simulated crash after watermark"); },
127
+ });
128
+ expect(() => ledger.append({
129
+ upserts: { "alpha/one.md": entry(1), "beta/two.md": entry(2) },
130
+ metadata: { lastSync: "must-be-atomic", pulls: [] },
131
+ })).toThrow("simulated crash after watermark");
132
+ setAreaLedgerTestHooksForTest(undefined);
133
+ const betaDir = ledger.stateDirectoriesForTest().get("root:beta");
134
+ fs.rmSync(betaDir, { recursive: true, force: true });
135
+ expect(open(root).read().files).toEqual({});
136
+ });
137
+ it("retires published prepares and watermarks after folding them into base journals", () => {
138
+ const root = makeRoot();
139
+ const ledger = open(root);
140
+ ledger.append({
141
+ upserts: { "alpha/one.md": entry(1), "beta/two.md": entry(2) },
142
+ metadata: { lastSync: "fold", pulls: [] },
143
+ });
144
+ expect(ledger.transactionCountsForTest()).toEqual({ prepared: 0, watermarks: 0, finalized: 0 });
145
+ expect(ledger.read().files).toMatchObject({ "alpha/one.md": { size: 1 }, "beta/two.md": { size: 2 } });
146
+ expect(ledger.transactionCountsForTest()).toEqual({ prepared: 0, watermarks: 0, finalized: 0 });
147
+ expect(open(root).read().files).toMatchObject({ "alpha/one.md": { size: 1 }, "beta/two.md": { size: 2 } });
148
+ });
149
+ it("recovers a fully prepared cross-area transaction by writing the watermark last", () => {
150
+ const root = makeRoot();
151
+ const ledger = open(root);
152
+ setAreaLedgerTestHooksForTest({
153
+ afterDataBeforeWatermark: () => { throw new Error("simulated process crash"); },
154
+ });
155
+ expect(() => ledger.append({
156
+ upserts: { "alpha/one.md": entry(1), "beta/two.md": entry(2) },
157
+ metadata: { lastSync: "watermark", pulls: [] },
158
+ })).toThrow("simulated process crash");
159
+ setAreaLedgerTestHooksForTest(undefined);
160
+ expect(open(root).read()).toMatchObject({
161
+ lastSync: "watermark",
162
+ files: { "alpha/one.md": { size: 1 }, "beta/two.md": { size: 2 } },
163
+ });
164
+ });
165
+ it("keeps appenders correct while one area compacts off-lock", () => {
166
+ const root = makeRoot();
167
+ const ledger = open(root);
168
+ ledger.append({ upserts: { "alpha/one.md": entry(1) } });
169
+ ledger.append({ upserts: { "alpha/two.md": entry(2) } });
170
+ ledger.append({ upserts: { "beta/other.md": entry(3) } });
171
+ expect(open(root).read().files).toMatchObject({
172
+ "alpha/one.md": { size: 1 },
173
+ "alpha/two.md": { size: 2 },
174
+ "beta/other.md": { size: 3 },
175
+ });
176
+ });
177
+ it("matches the legacy aggregate journal fixture while keeping the legacy adapter opt-in default", () => {
178
+ const root = makeRoot();
179
+ const legacy = {
180
+ version: "2",
181
+ lastSync: "before",
182
+ files: { "alpha/one.md": entry(1), "beta/two.md": entry(2) },
183
+ pulls: [],
184
+ };
185
+ const ledger = open(root, legacy);
186
+ expect(ledger.read()).toEqual(legacy);
187
+ legacy.files["alpha/three.md"] = entry(3);
188
+ delete legacy.files["beta/two.md"];
189
+ legacy.lastSync = "after";
190
+ ledger.append({
191
+ upserts: { "alpha/three.md": entry(3) },
192
+ deletes: ["beta/two.md"],
193
+ metadata: { lastSync: "after", pulls: [] },
194
+ });
195
+ expect(ledger.read()).toEqual(legacy);
196
+ });
197
+ });
198
+ }
199
+ //# sourceMappingURL=area-ledger.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"area-ledger.test.js","sourceRoot":"","sources":["../../src/sync/area-ledger.test.ts"],"names":[],"mappings":"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"}
@@ -150,6 +150,12 @@ export interface StartEventSyncOptions {
150
150
  now?: () => number;
151
151
  /** Clock seam for deferred publish cleanup tests. */
152
152
  clock?: Clock;
153
+ /** Test seam for event-sync startup retry scheduling. */
154
+ retryInitialMs?: number;
155
+ /** Test seam for the capped event-sync startup retry delay. */
156
+ retryMaxMs?: number;
157
+ /** Test seam for full-jitter event-sync startup retries. */
158
+ retryRandom?: () => number;
153
159
  /** Override the per-path trailing-publish interval. */
154
160
  publishMinIntervalMs?: number;
155
161
  /** Existing runner state directory for restart-durable publish suppression. */
@@ -174,6 +180,9 @@ export interface EventSyncHandles {
174
180
  /** Tear down transport + receiver (runner shutdown path). */
175
181
  dispose: () => Promise<void>;
176
182
  }
183
+ /** Startup retry defaults: full jitter over a 30s → 10min exponential cap. */
184
+ export declare const DEFAULT_EVENT_SYNC_RETRY_INITIAL_MS = 30000;
185
+ export declare const DEFAULT_EVENT_SYNC_RETRY_MAX_MS: number;
177
186
  /** Every v2 signal has identical correctness semantics: schedule one drain. */
178
187
  export type RealtimeDrainSignal = "watcher" | "wake" | "high-water" | "reconnect" | "retry";
179
188
  export interface UnifiedRealtimeSchedulerOptions {
@@ -207,10 +216,11 @@ export interface UnifiedRealtimeScheduler {
207
216
  */
208
217
  export declare function createUnifiedRealtimeScheduler(options: UnifiedRealtimeSchedulerOptions): UnifiedRealtimeScheduler;
209
218
  /**
210
- * Bring up the publish + receive legs. Returns `null` (poll-only degradation)
211
- * on ANY startup failure subscribe 5xx, tenant resolution failure, etc.
212
- * after logging the reason. The caller treats `null` as "today's behavior".
219
+ * Bring up the publish + receive legs. A failed initial subscribe deliberately
220
+ * keeps the watch runner poll-only, but returns an offline handle that retries
221
+ * the complete startup sequence forever. Once it succeeds, the same handle
222
+ * forwards publishes and disposes the live legs just like an immediate start.
213
223
  */
214
- export declare function startEventSync(opts: StartEventSyncOptions): Promise<EventSyncHandles | null>;
224
+ export declare function startEventSync(opts: StartEventSyncOptions): Promise<EventSyncHandles>;
215
225
  export {};
216
226
  //# sourceMappingURL=event-sync.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-sync.d.ts","sourceRoot":"","sources":["../../src/sync/event-sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"event-sync.d.ts","sourceRoot":"","sources":["../../src/sync/event-sync.ts"],"names":[],"mappings":"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"}
@@ -32,7 +32,7 @@
32
32
  import { SQSClient, ReceiveMessageCommand, DeleteMessageCommand, ChangeMessageVisibilityCommand, } from "@aws-sdk/client-sqs";
33
33
  import { HttpPushTransport } from "./push-transport.js";
34
34
  import { SqsPushReceiver, RealtimeWakeReceiver, } from "./push-receiver.js";
35
- import { PushEventEmitter } from "../watcher.js";
35
+ import { PushEventEmitter, systemClock, } from "../watcher.js";
36
36
  import { emitCloudTelemetry, } from "../telemetry-events.js";
37
37
  import { createSyncLatencyMetricPublisher, } from "./metrics.js";
38
38
  import { isEventSyncLocallyDisabled } from "./feature-flags.js";
@@ -246,6 +246,9 @@ export function createRefreshingSqsClient(opts) {
246
246
  changeMessageVisibility: (args) => withRetry(() => inner.changeMessageVisibility(args)),
247
247
  };
248
248
  }
249
+ /** Startup retry defaults: full jitter over a 30s → 10min exponential cap. */
250
+ export const DEFAULT_EVENT_SYNC_RETRY_INITIAL_MS = 30_000;
251
+ export const DEFAULT_EVENT_SYNC_RETRY_MAX_MS = 10 * 60_000;
249
252
  /**
250
253
  * Coalesces all v2 notifications into a single drain bit. The cursor carried
251
254
  * by a wake is intentionally ignored: duplicate, stale, and reordered wakes
@@ -394,35 +397,48 @@ export function createUnifiedRealtimeScheduler(options) {
394
397
  },
395
398
  };
396
399
  }
397
- /**
398
- * Bring up the publish + receive legs. Returns `null` (poll-only degradation)
399
- * on ANY startup failure — subscribe 5xx, tenant resolution failure, etc. —
400
- * after logging the reason. The caller treats `null` as "today's behavior".
401
- */
402
- export async function startEventSync(opts) {
400
+ /** Build the real publish + receive legs once a subscribe attempt succeeds. */
401
+ async function startLiveEventSync(opts) {
403
402
  const log = opts.log ?? ((m) => console.error(m));
403
+ const tenantId = await opts.resolveTenantId();
404
+ const deviceId = opts.deviceId;
405
+ // The subscription response is the authenticated legacy inventory/grant.
406
+ // No email, environment, tenant, or queued hint can reach the live path
407
+ // without this server-issued queue and credential material.
408
+ const subscribe = opts.subscribe ??
409
+ ((dev) => subscribeSyncReceive({
410
+ apiUrl: opts.apiUrl,
411
+ authToken: opts.authToken,
412
+ deviceId: dev,
413
+ }));
414
+ const initial = await subscribe(deviceId);
415
+ const syncBatchFn = opts.syncBatchFn ?? (opts.syncFn
416
+ ? async ({ events, signal }) => {
417
+ for (const event of events)
418
+ await opts.syncFn({ event, signal });
419
+ }
420
+ : null);
421
+ if (!syncBatchFn) {
422
+ throw new Error("event-sync: syncBatchFn is required");
423
+ }
424
+ // ── publish leg (US-017) ──
425
+ const transport = opts.transport ??
426
+ new HttpPushTransport({
427
+ apiUrl: opts.apiUrl,
428
+ pushPath: "/v1/sync/push",
429
+ authToken: opts.authToken,
430
+ });
404
431
  try {
405
- const tenantId = await opts.resolveTenantId();
406
- const deviceId = opts.deviceId;
407
- // The subscription response is the authenticated legacy inventory/grant.
408
- // No email, environment, tenant, or queued hint can reach the live path
409
- // without this server-issued queue and credential material.
410
- const subscribe = opts.subscribe ??
411
- ((dev) => subscribeSyncReceive({
412
- apiUrl: opts.apiUrl,
413
- authToken: opts.authToken,
414
- deviceId: dev,
415
- }));
416
- const initial = await subscribe(deviceId);
417
- // ── publish leg (US-017) ──
418
- const transport = opts.transport ??
419
- new HttpPushTransport({
420
- apiUrl: opts.apiUrl,
421
- pushPath: "/v1/sync/push",
422
- authToken: opts.authToken,
423
- });
424
432
  await transport.start();
425
- const emitter = new PushEventEmitter({
433
+ }
434
+ catch (startupError) {
435
+ await transport.dispose().catch(() => undefined);
436
+ throw startupError;
437
+ }
438
+ let emitter = null;
439
+ let receiver = null;
440
+ try {
441
+ emitter = new PushEventEmitter({
426
442
  originTenantId: tenantId,
427
443
  originDeviceId: deviceId,
428
444
  transport,
@@ -446,15 +462,6 @@ export async function startEventSync(opts) {
446
462
  initialPublishedContentHashes: opts.initialPublishedContentHashes,
447
463
  });
448
464
  // ── receive leg (US-018) ──
449
- const syncBatchFn = opts.syncBatchFn ?? (opts.syncFn
450
- ? async ({ events, signal }) => {
451
- for (const event of events)
452
- await opts.syncFn({ event, signal });
453
- }
454
- : null);
455
- if (!syncBatchFn) {
456
- throw new Error("event-sync: syncBatchFn is required");
457
- }
458
465
  const publishMetric = initial.cloudWatch
459
466
  ? createSyncLatencyMetricPublisher(initial.cloudWatch)
460
467
  : async () => undefined;
@@ -464,7 +471,7 @@ export async function startEventSync(opts) {
464
471
  buildSqs: opts.buildSqs,
465
472
  now: opts.now,
466
473
  });
467
- const receiver = new SqsPushReceiver({
474
+ receiver = new SqsPushReceiver({
468
475
  tenantId,
469
476
  queueUrl: initial.queueUrl,
470
477
  sqs,
@@ -476,30 +483,54 @@ export async function startEventSync(opts) {
476
483
  onReceiveActivity: opts.onReceiveActivity,
477
484
  });
478
485
  await receiver.start();
479
- log(`event-sync: live (tenant=${tenantId} device=${deviceId} queue=${initial.queueUrl})`);
480
- void emitCloudTelemetry(opts.telemetryClient, {
481
- eventName: "event_sync_live",
482
- source: "event-sync",
483
- properties: {
484
- deviceId,
485
- startupResult: "live",
486
- receiveState: "enabled",
487
- publishState: "enabled",
488
- },
489
- }, { claims: opts.telemetryClaims });
490
- return {
491
- publishBatch: (batch) => void emitter.emitForBatch(batch),
492
- receiver,
493
- ownDeviceId: deviceId,
494
- dispose: async () => {
495
- await receiver.dispose().catch(() => undefined);
496
- emitter.dispose();
497
- await transport.dispose().catch(() => undefined);
498
- },
499
- };
500
486
  }
501
- catch (err) {
502
- log(`event-sync: startup failed, continuing poll-only: ${err instanceof Error ? err.message : String(err)}`);
487
+ catch (startupError) {
488
+ await receiver?.dispose().catch(() => undefined);
489
+ emitter?.dispose();
490
+ await transport.dispose().catch(() => undefined);
491
+ throw startupError;
492
+ }
493
+ if (!emitter || !receiver) {
494
+ throw new Error("event-sync: live startup completed without handles");
495
+ }
496
+ log(`event-sync: live (tenant=${tenantId} device=${deviceId} queue=${initial.queueUrl})`);
497
+ void emitCloudTelemetry(opts.telemetryClient, {
498
+ eventName: "event_sync_live",
499
+ source: "event-sync",
500
+ properties: {
501
+ deviceId,
502
+ startupResult: "live",
503
+ receiveState: "enabled",
504
+ publishState: "enabled",
505
+ },
506
+ }, { claims: opts.telemetryClaims });
507
+ return {
508
+ publishBatch: (batch) => void emitter.emitForBatch(batch),
509
+ receiver,
510
+ ownDeviceId: deviceId,
511
+ dispose: async () => {
512
+ await receiver.dispose().catch(() => undefined);
513
+ emitter.dispose();
514
+ await transport.dispose().catch(() => undefined);
515
+ },
516
+ };
517
+ }
518
+ function describeStartupError(error) {
519
+ return error instanceof Error ? error.message : String(error);
520
+ }
521
+ /**
522
+ * Bring up the publish + receive legs. A failed initial subscribe deliberately
523
+ * keeps the watch runner poll-only, but returns an offline handle that retries
524
+ * the complete startup sequence forever. Once it succeeds, the same handle
525
+ * forwards publishes and disposes the live legs just like an immediate start.
526
+ */
527
+ export async function startEventSync(opts) {
528
+ const log = opts.log ?? ((m) => console.error(m));
529
+ try {
530
+ return await startLiveEventSync(opts);
531
+ }
532
+ catch (error) {
533
+ log(`event-sync: startup failed, continuing poll-only: ${describeStartupError(error)}`);
503
534
  void emitCloudTelemetry(opts.telemetryClient, {
504
535
  eventName: "event_sync_live",
505
536
  source: "event-sync",
@@ -510,7 +541,92 @@ export async function startEventSync(opts) {
510
541
  publishState: "disabled",
511
542
  },
512
543
  }, { claims: opts.telemetryClaims });
513
- return null;
544
+ const clock = opts.clock ?? systemClock;
545
+ const initialDelayMs = opts.retryInitialMs ?? DEFAULT_EVENT_SYNC_RETRY_INITIAL_MS;
546
+ const maxDelayMs = opts.retryMaxMs ?? DEFAULT_EVENT_SYNC_RETRY_MAX_MS;
547
+ if (!Number.isSafeInteger(initialDelayMs) || initialDelayMs < 0) {
548
+ throw new Error("event-sync: retryInitialMs must be a non-negative safe integer");
549
+ }
550
+ if (!Number.isSafeInteger(maxDelayMs) || maxDelayMs < initialDelayMs) {
551
+ throw new Error("event-sync: retryMaxMs must be a safe integer no smaller than retryInitialMs");
552
+ }
553
+ let disposed = false;
554
+ let live = null;
555
+ let retryTimer = null;
556
+ let retryAttempt = null;
557
+ let disposePromise = null;
558
+ let failures = 0;
559
+ const jitteredDelay = () => {
560
+ const ceiling = Math.min(maxDelayMs, initialDelayMs * 2 ** failures);
561
+ const random = Math.min(1, Math.max(0, (opts.retryRandom ?? Math.random)()));
562
+ return Math.floor(ceiling * random);
563
+ };
564
+ const retry = async () => {
565
+ if (disposed || live)
566
+ return;
567
+ try {
568
+ const handles = await startLiveEventSync(opts);
569
+ if (disposed) {
570
+ await handles.dispose();
571
+ return;
572
+ }
573
+ live = handles;
574
+ }
575
+ catch (retryError) {
576
+ scheduleRetry(retryError);
577
+ }
578
+ };
579
+ const scheduleRetry = (retryError, initial = false) => {
580
+ if (disposed || live || retryTimer !== null)
581
+ return;
582
+ const delayMs = jitteredDelay();
583
+ failures += 1;
584
+ log(`event-sync: startup retry ${initial ? "scheduled" : "failed"} (attempt=${failures} reason=${describeStartupError(retryError)}); next retry in ${delayMs}ms`);
585
+ retryTimer = clock.setTimeout(() => {
586
+ retryTimer = null;
587
+ const attempt = retry();
588
+ retryAttempt = attempt;
589
+ void attempt.then(() => {
590
+ if (retryAttempt === attempt)
591
+ retryAttempt = null;
592
+ }, () => {
593
+ if (retryAttempt === attempt)
594
+ retryAttempt = null;
595
+ });
596
+ }, delayMs);
597
+ retryTimer.unref?.();
598
+ };
599
+ scheduleRetry(error, true);
600
+ const dispose = async () => {
601
+ if (disposePromise !== null)
602
+ return disposePromise;
603
+ disposed = true;
604
+ disposePromise = (async () => {
605
+ if (retryTimer !== null)
606
+ clock.clearTimeout(retryTimer);
607
+ retryTimer = null;
608
+ await retryAttempt;
609
+ const active = live;
610
+ live = null;
611
+ if (active)
612
+ await active.dispose();
613
+ })();
614
+ return disposePromise;
615
+ };
616
+ return {
617
+ publishBatch: (batch) => live?.publishBatch(batch),
618
+ receiver: {
619
+ start: async () => {
620
+ await live?.receiver.start();
621
+ },
622
+ dispose,
623
+ get connected() {
624
+ return live?.receiver.connected ?? false;
625
+ },
626
+ },
627
+ ownDeviceId: opts.deviceId,
628
+ dispose,
629
+ };
514
630
  }
515
631
  }
516
632
  //# sourceMappingURL=event-sync.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-sync.js","sourceRoot":"","sources":["../../src/sync/event-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EACL,SAAS,EACT,qBAAqB,EACrB,oBAAoB,EACpB,8BAA8B,GAC/B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,iBAAiB,EAAwB,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EACL,eAAe,EACf,oBAAoB,GAOrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAoC,MAAM,eAAe,CAAC;AACnF,OAAO,EACL,kBAAkB,GAGnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,gCAAgC,GAEjC,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAEhE;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAA4B;IAC3D,OAAO,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;AAC/C,CAAC;AAqCD,SAAS,gBAAgB,CAAC,CAAU,EAAE,KAAa;IACjD,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,0CAA0C,KAAK,EAAE,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,uBAAuB,CAC9B,GAA4B;IAE5B,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACnD,IACE,CAAC,GAAG,CAAC,UAAU;QACf,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ;QAClC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAC7B,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,UAAU,GAAG,GAAG,CAAC,UAAqC,CAAC;IAC7D,MAAM,KAAK,GAAG,CAAC,UAAU,CAAC,WAAW,IAAI,EAAE,CAA4B,CAAC;IACxE,OAAO;QACL,MAAM,EAAE,gBAAgB,CAAC,UAAU,CAAC,MAAM,EAAE,mBAAmB,CAAC;QAChE,WAAW,EAAE;YACX,WAAW,EAAE,gBAAgB,CAC3B,KAAK,CAAC,WAAW,EACjB,oCAAoC,CACrC;YACD,eAAe,EAAE,gBAAgB,CAC/B,KAAK,CAAC,eAAe,EACrB,wCAAwC,CACzC;YACD,YAAY,EACV,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;gBACrE,CAAC,CAAC,KAAK,CAAC,YAAY;gBACpB,CAAC,CAAC,SAAS;YACf,UAAU,EACR,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;gBACjE,CAAC,CAAC,KAAK,CAAC,UAAU;gBAClB,CAAC,CAAC,SAAS;SAChB;KACF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAM1C;IACC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;IAC3B,MAAM,KAAK,GAAG,OAAO,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAC5D,MAAM,SAAS,GACb,IAAI,CAAC,SAAS;QACd,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAE,UAAU,CAAC,KAA8B,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IAE7E,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,OAAO,GAAG,UAAU,CACxB,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EACxB,IAAI,CAAC,SAAS,IAAI,MAAM,CACzB,CAAC;IACF,IAAI,GAAmC,CAAC;IACxC,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,SAAS,CAAC,GAAG,MAAM,oBAAoB,EAAE;YACnD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,KAAK,EAAE;gBAChC,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjD,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9C,MAAM,IAAI,KAAK,CACb,yDAAyD,GAAG,CAAC,MAAM,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAC9F,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IACrD,MAAM,GAAG,GAAG,MAAiC,CAAC;IAC9C,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAA4B,CAAC;IACjE,MAAM,UAAU,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC;IAChD,MAAM,QAAQ,GAA0B;QACtC,QAAQ,EAAE,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC;QACpD,MAAM,EAAE,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC;QAC9C,WAAW,EAAE;YACX,WAAW,EAAE,gBAAgB,CAAC,KAAK,CAAC,WAAW,EAAE,yBAAyB,CAAC;YAC3E,eAAe,EAAE,gBAAgB,CAC/B,KAAK,CAAC,eAAe,EACrB,6BAA6B,CAC9B;YACD,YAAY,EAAE,gBAAgB,CAC5B,KAAK,CAAC,YAAY,EAClB,0BAA0B,CAC3B;YACD,UAAU,EAAE,gBAAgB,CAAC,KAAK,CAAC,UAAU,EAAE,wBAAwB,CAAC;SACzE;KACF,CAAC;IACF,IAAI,UAAU,KAAK,SAAS;QAAE,QAAQ,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/D,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,+EAA+E;AAE/E;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAA+B;IAE/B,OAAO;QACL,KAAK,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,EAAE;YAC/F,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAC3B,IAAI,qBAAqB,CAAC;gBACxB,QAAQ,EAAE,QAAQ;gBAClB,mBAAmB,EAAE,WAAW;gBAChC,eAAe,EAAE,eAAe;gBAChC,iBAAiB,EAAE,wBAAwB;aAC5C,CAAC,EACF,EAAE,WAAW,EAAE,MAAM,EAAE,CACxB,CAAC;YACF,OAAO;gBACL,QAAQ,EAAE,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACzC,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,aAAa,EAAE,CAAC,CAAC,aAAa;oBAC9B,SAAS,EAAE,CAAC,CAAC,SAAS;iBACvB,CAAC,CAAC;aACJ,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE;YAC7C,MAAM,MAAM,CAAC,IAAI,CACf,IAAI,oBAAoB,CAAC;gBACvB,QAAQ,EAAE,QAAQ;gBAClB,aAAa,EAAE,aAAa;aAC7B,CAAC,CACH,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,uBAAuB,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,wBAAwB,EAAE;YACjF,MAAM,MAAM,CAAC,IAAI,CACf,IAAI,8BAA8B,CAAC;gBACjC,QAAQ,EAAE,QAAQ;gBAClB,aAAa,EAAE,aAAa;gBAC5B,iBAAiB,EAAE,wBAAwB;aAC5C,CAAC,CACH,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED,+EAA+E;AAE/E;;;;GAIG;AACH,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC;IACjC,cAAc;IACd,uBAAuB;IACvB,sBAAsB;IACtB,sBAAsB;IACtB,6BAA6B;CAC9B,CAAC,CAAC;AAEH,SAAS,aAAa,CAAC,GAAY;IACjC,OAAO,GAAG,YAAY,KAAK,IAAI,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAClE,CAAC;AAED,+EAA+E;AAC/E,MAAM,eAAe,GAAG,OAAO,CAAC;AAgBhC,SAAS,eAAe,CAAC,IAA2B;IAClD,OAAO,mBAAmB,CACxB,IAAI,SAAS,CAAC;QACZ,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,WAAW,EAAE;YACX,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW;YACzC,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC,eAAe;YACjD,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY;YAC3C,UAAU,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;SAClD;KACF,CAAC,CACH,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,yBAAyB,CACvC,IAAgC;IAEhC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,eAAe,CAAC;IAElD,IAAI,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnC,IAAI,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAClE,IAAI,UAAU,GAAyB,IAAI,CAAC;IAE5C,MAAM,OAAO,GAAG,GAAkB,EAAE;QAClC,UAAU,KAAK,CAAC,KAAK,IAAI,EAAE;YACzB,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;gBACpC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACvB,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YACxD,CAAC;oBAAS,CAAC;gBACT,UAAU,GAAG,IAAI,CAAC;YACpB,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QACL,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,KAAK,IAAmB,EAAE;QAC5C,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,GAAG,EAAE,IAAI,WAAW,GAAG,eAAe,EAAE,CAAC;YAC3E,MAAM,OAAO,EAAE,CAAC;QAClB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,KAAK,EAAK,IAAsB,EAAc,EAAE;QAChE,MAAM,WAAW,EAAE,CAAC;QACpB,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,EAAE,CAAC;QACtB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;gBAAE,MAAM,GAAG,CAAC;YACnC,MAAM,OAAO,EAAE,CAAC;YAChB,OAAO,MAAM,IAAI,EAAE,CAAC;QACtB,CAAC;IACH,CAAC,CAAC;IAEF,OAAO;QACL,cAAc,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACrE,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACnE,uBAAuB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;KACxF,CAAC;AACJ,CAAC;AAoGD;;;;;GAKG;AACH,MAAM,UAAU,8BAA8B,CAC5C,OAAwC;IAExC,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,SAAS,GAAyB,IAAI,CAAC;IAC3C,IAAI,QAAQ,GAAkB,IAAI,CAAC;IACnC,IAAI,QAAQ,GAAgC,IAAI,CAAC;IACjD,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,KAAK,CAAC;IACnD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,YAAY,GAAG,CAAC,IAAI,YAAY,GAAG,MAAM,EAAE,CAAC;QACrF,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;IAC9F,CAAC;IACD,IAAI,UAAU,GAAyC,IAAI,CAAC;IAE5D,MAAM,MAAM,GAAG,CAAC,MAA2B,EAAE,KAAc,EAAQ,EAAE;QACnE,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAC/B,OAAO;QACT,CAAC;QACD,uEAAuE;QACvE,oDAAoD;QACpD,OAAO,CAAC,KAAK,CAAC,uBAAuB,MAAM,SAAS,CAAC,CAAC;IACxD,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,GAAS,EAAE;QAC1B,IAAI,QAAQ,IAAI,SAAS,KAAK,IAAI;YAAE,OAAO;QAC3C,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE;YACxC,qEAAqE;YACrE,qEAAqE;YACrE,GAAG,CAAC;gBACF,OAAO,GAAG,KAAK,CAAC;gBAChB,IAAI,CAAC;oBACH,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;gBACxB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,GAAG,IAAI,CAAC;oBACf,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;oBACvB,IAAI,UAAU,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACrC,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE;4BAC3B,UAAU,GAAG,IAAI,CAAC;4BAClB,QAAQ,EAAE,CAAC;wBACb,CAAC,EAAE,YAAY,CAAC,CAAC;wBAChB,UAAqC,CAAC,KAAK,EAAE,EAAE,CAAC;oBACnD,CAAC;oBACD,OAAO;gBACT,CAAC;YACH,CAAC,QAAQ,CAAC,QAAQ,IAAI,OAAO,EAAE;QACjC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACjB,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;YACd,SAAS,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,QAAQ,IAAI,OAAO,IAAI,UAAU,KAAK,IAAI;gBAAE,QAAQ,EAAE,CAAC;QAC9D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,CAAC,OAA4B,EAAQ,EAAE;QACpD,IAAI,QAAQ;YAAE,OAAO;QACrB,OAAO,GAAG,IAAI,CAAC;QACf,QAAQ,EAAE,CAAC;IACb,CAAC,CAAC;IAEF,OAAO;QACL,MAAM;QACN,KAAK,CAAC,cAAc;YAClB,IAAI,QAAQ,IAAI,CAAC,OAAO,CAAC,cAAc;gBAAE,OAAO;YAChD,IAAI,CAAC;gBACH,IAAI,MAAM,OAAO,CAAC,cAAc,EAAE;oBAAE,MAAM,CAAC,YAAY,CAAC,CAAC;YAC3D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,qEAAqE;gBACrE,sEAAsE;gBACtE,MAAM,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QACD,KAAK,CAAC,eAAe,CAAC,mBAA2B,EAAE,MAA0B;YAC3E,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;YACzG,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;gBACvB,OAAO;YACT,CAAC;YACD,IAAI,QAAQ,KAAK,mBAAmB,IAAI,QAAQ,KAAK,IAAI;gBAAE,OAAO;YAClE,qEAAqE;YACrE,oEAAoE;YACpE,OAAO,GAAG,KAAK,CAAC;YAChB,IAAI,UAAU,KAAK,IAAI;gBAAE,YAAY,CAAC,UAAU,CAAC,CAAC;YAClD,UAAU,GAAG,IAAI,CAAC;YAClB,MAAM,QAAQ,GAAG,QAAQ,CAAC;YAC1B,QAAQ,GAAG,IAAI,CAAC;YAChB,QAAQ,GAAG,IAAI,CAAC;YAChB,IAAI,QAAQ;gBAAE,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;YACvC,wEAAwE;YACxE,qEAAqE;YACrE,4BAA4B;YAC5B,MAAM,SAAS,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YACxC,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;gBACvB,OAAO;YACT,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,oBAAoB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAChF,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YACrB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;gBACvB,CAAC;gBAAC,OAAO,YAAY,EAAE,CAAC;oBACtB,MAAM,IAAI,KAAK,CAAC,qEAAqE,EAAE;wBACrF,KAAK,EAAE,IAAI,cAAc,CAAC,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;qBACjD,CAAC,CAAC;gBACL,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,yDAAyD,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;YAC/F,CAAC;YACD,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;gBACrB,OAAO;YACT,CAAC;YACD,QAAQ,GAAG,mBAAmB,CAAC;YAC/B,QAAQ,GAAG,IAAI,CAAC;YAChB,qEAAqE;YACrE,MAAM,CAAC,WAAW,CAAC,CAAC;QACtB,CAAC;QACD,KAAK,CAAC,OAAO;YACX,IAAI,QAAQ;gBAAE,OAAO;YACrB,QAAQ,GAAG,IAAI,CAAC;YAChB,OAAO,GAAG,KAAK,CAAC;YAChB,IAAI,UAAU,KAAK,IAAI;gBAAE,YAAY,CAAC,UAAU,CAAC,CAAC;YAClD,UAAU,GAAG,IAAI,CAAC;YAClB,MAAM,MAAM,GAAG,QAAQ,CAAC;YACxB,QAAQ,GAAG,IAAI,CAAC;YAChB,QAAQ,GAAG,IAAI,CAAC;YAChB,IAAI,MAAM;gBAAE,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;YACnC,MAAM,SAAS,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC1C,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,IAA2B;IAE3B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1D,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAE/B,yEAAyE;QACzE,wEAAwE;QACxE,4DAA4D;QAC5D,MAAM,SAAS,GACb,IAAI,CAAC,SAAS;YACd,CAAC,CAAC,GAAW,EAAE,EAAE,CACf,oBAAoB,CAAC;gBACnB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,QAAQ,EAAE,GAAG;aACd,CAAC,CAAC,CAAC;QACR,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC;QAE1C,6BAA6B;QAC7B,MAAM,SAAS,GACb,IAAI,CAAC,SAAS;YACd,IAAI,iBAAiB,CAAC;gBACpB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,QAAQ,EAAE,eAAe;gBACzB,SAAS,EAAE,IAAI,CAAC,SAAS;aAC1B,CAAC,CAAC;QACL,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC;YACnC,cAAc,EAAE,QAAQ;YACxB,cAAc,EAAE,QAAQ;YACxB,SAAS;YACT,sEAAsE;YACtE,yEAAyE;YACzE,8CAA8C;YAC9C,YAAY,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE;YACvC,kEAAkE;YAClE,oEAAoE;YACpE,qEAAqE;YACrE,sEAAsE;YACtE,6DAA6D;YAC7D,iBAAiB,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE;YACjD,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CACpB,GAAG,CACD,kCAAkC,GAAG,CAAC,YAAY,IAAI,GAAG,KAAK,GAAG,CAAC,OAAO,EAAE,CAC5E;YACH,gBAAgB,EAAE,CAAC,OAAO,EAAE,EAAE,CAC5B,GAAG,CAAC,+BAA+B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/D,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;YAC/C,gCAAgC,EAAE,IAAI,CAAC,4BAA4B;YACnE,6BAA6B,EAAE,IAAI,CAAC,6BAA6B;SAClE,CAAC,CAAC;QAEH,6BAA6B;QAC7B,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,MAAM;YAClD,CAAC,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE;gBAC3B,KAAK,MAAM,KAAK,IAAI,MAAM;oBAAE,MAAM,IAAI,CAAC,MAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YACpE,CAAC;YACH,CAAC,CAAC,IAAI,CAAC,CAAC;QACV,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACzD,CAAC;QACD,MAAM,aAAa,GAAoB,OAAO,CAAC,UAAU;YACvD,CAAC,CAAC,gCAAgC,CAAC,OAAO,CAAC,UAAU,CAAC;YACtD,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC;QAC1B,MAAM,GAAG,GAAG,yBAAyB,CAAC;YACpC,OAAO;YACP,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC;YACpC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,GAAG,EAAE,IAAI,CAAC,GAAG;SACd,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC;YACnC,QAAQ;YACR,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,GAAG;YACH,yEAAyE;YACzE,wEAAwE;YACxE,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,KAAK,QAAQ;YAC3D,WAAW;YACX,aAAa;YACb,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;SAC1C,CAAC,CAAC;QACH,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;QAEvB,GAAG,CACD,4BAA4B,QAAQ,WAAW,QAAQ,UAAU,OAAO,CAAC,QAAQ,GAAG,CACrF,CAAC;QACF,KAAK,kBAAkB,CACrB,IAAI,CAAC,eAAe,EACpB;YACE,SAAS,EAAE,iBAAiB;YAC5B,MAAM,EAAE,YAAY;YACpB,UAAU,EAAE;gBACV,QAAQ;gBACR,aAAa,EAAE,MAAM;gBACrB,YAAY,EAAE,SAAS;gBACvB,YAAY,EAAE,SAAS;aACxB;SACF,EACD,EAAE,MAAM,EAAE,IAAI,CAAC,eAAe,EAAE,CACjC,CAAC;QAEF,OAAO;YACL,YAAY,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC;YACzD,QAAQ;YACR,WAAW,EAAE,QAAQ;YACrB,OAAO,EAAE,KAAK,IAAI,EAAE;gBAClB,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;gBAChD,OAAO,CAAC,OAAO,EAAE,CAAC;gBAClB,MAAM,SAAS,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YACnD,CAAC;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CACD,qDAAqD,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CACxG,CAAC;QACF,KAAK,kBAAkB,CACrB,IAAI,CAAC,eAAe,EACpB;YACE,SAAS,EAAE,iBAAiB;YAC5B,MAAM,EAAE,YAAY;YACpB,UAAU,EAAE;gBACV,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,aAAa,EAAE,WAAW;gBAC1B,YAAY,EAAE,UAAU;gBACxB,YAAY,EAAE,UAAU;aACzB;SACF,EACD,EAAE,MAAM,EAAE,IAAI,CAAC,eAAe,EAAE,CACjC,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"event-sync.js","sourceRoot":"","sources":["../../src/sync/event-sync.ts"],"names":[],"mappings":"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"}