@powerhousedao/reactor 6.0.0-dev.3 → 6.0.0-dev.30

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 (174) hide show
  1. package/dist/src/cache/document-meta-cache.d.ts.map +1 -1
  2. package/dist/src/cache/document-meta-cache.js +4 -4
  3. package/dist/src/cache/document-meta-cache.js.map +1 -1
  4. package/dist/src/cache/kysely-operation-index.d.ts +3 -1
  5. package/dist/src/cache/kysely-operation-index.d.ts.map +1 -1
  6. package/dist/src/cache/kysely-operation-index.js +31 -4
  7. package/dist/src/cache/kysely-operation-index.js.map +1 -1
  8. package/dist/src/cache/kysely-write-cache.d.ts.map +1 -1
  9. package/dist/src/cache/kysely-write-cache.js +11 -11
  10. package/dist/src/cache/kysely-write-cache.js.map +1 -1
  11. package/dist/src/cache/operation-index-types.d.ts +3 -1
  12. package/dist/src/cache/operation-index-types.d.ts.map +1 -1
  13. package/dist/src/cache/operation-index-types.js.map +1 -1
  14. package/dist/src/client/reactor-client.d.ts +10 -8
  15. package/dist/src/client/reactor-client.d.ts.map +1 -1
  16. package/dist/src/client/reactor-client.js +37 -23
  17. package/dist/src/client/reactor-client.js.map +1 -1
  18. package/dist/src/client/types.d.ts +15 -6
  19. package/dist/src/client/types.d.ts.map +1 -1
  20. package/dist/src/client/types.js.map +1 -1
  21. package/dist/src/core/reactor-builder.d.ts +3 -0
  22. package/dist/src/core/reactor-builder.d.ts.map +1 -1
  23. package/dist/src/core/reactor-builder.js +51 -11
  24. package/dist/src/core/reactor-builder.js.map +1 -1
  25. package/dist/src/core/reactor-client-builder.d.ts +3 -2
  26. package/dist/src/core/reactor-client-builder.d.ts.map +1 -1
  27. package/dist/src/core/reactor-client-builder.js +13 -4
  28. package/dist/src/core/reactor-client-builder.js.map +1 -1
  29. package/dist/src/core/reactor.d.ts +17 -78
  30. package/dist/src/core/reactor.d.ts.map +1 -1
  31. package/dist/src/core/reactor.js +109 -556
  32. package/dist/src/core/reactor.js.map +1 -1
  33. package/dist/src/core/types.d.ts +32 -24
  34. package/dist/src/core/types.d.ts.map +1 -1
  35. package/dist/src/core/utils.d.ts +6 -1
  36. package/dist/src/core/utils.d.ts.map +1 -1
  37. package/dist/src/core/utils.js +22 -6
  38. package/dist/src/core/utils.js.map +1 -1
  39. package/dist/src/events/types.d.ts +26 -8
  40. package/dist/src/events/types.d.ts.map +1 -1
  41. package/dist/src/events/types.js +7 -5
  42. package/dist/src/events/types.js.map +1 -1
  43. package/dist/src/executor/simple-job-executor-manager.d.ts.map +1 -1
  44. package/dist/src/executor/simple-job-executor-manager.js +21 -8
  45. package/dist/src/executor/simple-job-executor-manager.js.map +1 -1
  46. package/dist/src/executor/simple-job-executor.d.ts.map +1 -1
  47. package/dist/src/executor/simple-job-executor.js +24 -9
  48. package/dist/src/executor/simple-job-executor.js.map +1 -1
  49. package/dist/src/index.d.ts +5 -5
  50. package/dist/src/index.d.ts.map +1 -1
  51. package/dist/src/index.js +4 -4
  52. package/dist/src/index.js.map +1 -1
  53. package/dist/src/job-tracker/in-memory-job-tracker.d.ts +4 -3
  54. package/dist/src/job-tracker/in-memory-job-tracker.d.ts.map +1 -1
  55. package/dist/src/job-tracker/in-memory-job-tracker.js +18 -18
  56. package/dist/src/job-tracker/in-memory-job-tracker.js.map +1 -1
  57. package/dist/src/job-tracker/interfaces.d.ts +3 -1
  58. package/dist/src/job-tracker/interfaces.d.ts.map +1 -1
  59. package/dist/src/logging/console.d.ts +1 -22
  60. package/dist/src/logging/console.d.ts.map +1 -1
  61. package/dist/src/logging/console.js +1 -107
  62. package/dist/src/logging/console.js.map +1 -1
  63. package/dist/src/logging/types.d.ts +1 -11
  64. package/dist/src/logging/types.d.ts.map +1 -1
  65. package/dist/src/processors/utils.d.ts.map +1 -1
  66. package/dist/src/processors/utils.js +2 -1
  67. package/dist/src/processors/utils.js.map +1 -1
  68. package/dist/src/read-models/base-read-model.js +4 -4
  69. package/dist/src/read-models/base-read-model.js.map +1 -1
  70. package/dist/src/read-models/coordinator.d.ts +2 -2
  71. package/dist/src/read-models/coordinator.d.ts.map +1 -1
  72. package/dist/src/read-models/coordinator.js +8 -8
  73. package/dist/src/read-models/coordinator.js.map +1 -1
  74. package/dist/src/read-models/document-view.d.ts +5 -2
  75. package/dist/src/read-models/document-view.d.ts.map +1 -1
  76. package/dist/src/read-models/document-view.js +130 -48
  77. package/dist/src/read-models/document-view.js.map +1 -1
  78. package/dist/src/shared/awaiter.d.ts +2 -2
  79. package/dist/src/shared/awaiter.d.ts.map +1 -1
  80. package/dist/src/shared/awaiter.js +11 -11
  81. package/dist/src/shared/awaiter.js.map +1 -1
  82. package/dist/src/shared/collect-all-pages.d.ts +7 -0
  83. package/dist/src/shared/collect-all-pages.d.ts.map +1 -0
  84. package/dist/src/shared/collect-all-pages.js +17 -0
  85. package/dist/src/shared/collect-all-pages.js.map +1 -0
  86. package/dist/src/shared/drive-url.d.ts +15 -0
  87. package/dist/src/shared/drive-url.d.ts.map +1 -0
  88. package/dist/src/shared/drive-url.js +17 -0
  89. package/dist/src/shared/drive-url.js.map +1 -0
  90. package/dist/src/shared/factories.d.ts +6 -2
  91. package/dist/src/shared/factories.d.ts.map +1 -1
  92. package/dist/src/shared/factories.js +10 -2
  93. package/dist/src/shared/factories.js.map +1 -1
  94. package/dist/src/shared/types.d.ts +17 -4
  95. package/dist/src/shared/types.d.ts.map +1 -1
  96. package/dist/src/shared/types.js +4 -4
  97. package/dist/src/shared/types.js.map +1 -1
  98. package/dist/src/signer/passthrough-signer.d.ts +1 -1
  99. package/dist/src/signer/passthrough-signer.d.ts.map +1 -1
  100. package/dist/src/signer/passthrough-signer.js +1 -3
  101. package/dist/src/signer/passthrough-signer.js.map +1 -1
  102. package/dist/src/storage/interfaces.d.ts +52 -94
  103. package/dist/src/storage/interfaces.d.ts.map +1 -1
  104. package/dist/src/storage/interfaces.js.map +1 -1
  105. package/dist/src/storage/kysely/document-indexer.d.ts +6 -6
  106. package/dist/src/storage/kysely/document-indexer.d.ts.map +1 -1
  107. package/dist/src/storage/kysely/document-indexer.js +123 -52
  108. package/dist/src/storage/kysely/document-indexer.js.map +1 -1
  109. package/dist/src/storage/kysely/store.d.ts +4 -3
  110. package/dist/src/storage/kysely/store.d.ts.map +1 -1
  111. package/dist/src/storage/kysely/store.js +52 -21
  112. package/dist/src/storage/kysely/store.js.map +1 -1
  113. package/dist/src/storage/kysely/sync-remote-storage.js +1 -1
  114. package/dist/src/storage/kysely/sync-remote-storage.js.map +1 -1
  115. package/dist/src/subs/subscription-notification-read-model.d.ts +1 -1
  116. package/dist/src/subs/subscription-notification-read-model.js +1 -1
  117. package/dist/src/sync/channels/composite-channel-factory.d.ts +9 -3
  118. package/dist/src/sync/channels/composite-channel-factory.d.ts.map +1 -1
  119. package/dist/src/sync/channels/composite-channel-factory.js +16 -12
  120. package/dist/src/sync/channels/composite-channel-factory.js.map +1 -1
  121. package/dist/src/sync/channels/gql-channel-factory.d.ts +9 -3
  122. package/dist/src/sync/channels/gql-channel-factory.d.ts.map +1 -1
  123. package/dist/src/sync/channels/gql-channel-factory.js +14 -10
  124. package/dist/src/sync/channels/gql-channel-factory.js.map +1 -1
  125. package/dist/src/sync/channels/gql-channel.d.ts +13 -12
  126. package/dist/src/sync/channels/gql-channel.d.ts.map +1 -1
  127. package/dist/src/sync/channels/gql-channel.js +45 -33
  128. package/dist/src/sync/channels/gql-channel.js.map +1 -1
  129. package/dist/src/sync/channels/index.d.ts +2 -0
  130. package/dist/src/sync/channels/index.d.ts.map +1 -1
  131. package/dist/src/sync/channels/index.js +2 -0
  132. package/dist/src/sync/channels/index.js.map +1 -1
  133. package/dist/src/sync/channels/interval-poll-timer.d.ts +18 -0
  134. package/dist/src/sync/channels/interval-poll-timer.d.ts.map +1 -0
  135. package/dist/src/sync/channels/interval-poll-timer.js +43 -0
  136. package/dist/src/sync/channels/interval-poll-timer.js.map +1 -0
  137. package/dist/src/sync/channels/poll-timer.d.ts +14 -0
  138. package/dist/src/sync/channels/poll-timer.d.ts.map +1 -0
  139. package/dist/src/sync/channels/poll-timer.js +2 -0
  140. package/dist/src/sync/channels/poll-timer.js.map +1 -0
  141. package/dist/src/sync/channels/utils.d.ts.map +1 -1
  142. package/dist/src/sync/channels/utils.js +2 -2
  143. package/dist/src/sync/channels/utils.js.map +1 -1
  144. package/dist/src/sync/index.d.ts +3 -3
  145. package/dist/src/sync/index.d.ts.map +1 -1
  146. package/dist/src/sync/index.js +2 -2
  147. package/dist/src/sync/index.js.map +1 -1
  148. package/dist/src/sync/interfaces.d.ts +14 -2
  149. package/dist/src/sync/interfaces.d.ts.map +1 -1
  150. package/dist/src/sync/sync-awaiter.d.ts +34 -0
  151. package/dist/src/sync/sync-awaiter.d.ts.map +1 -0
  152. package/dist/src/sync/sync-awaiter.js +124 -0
  153. package/dist/src/sync/sync-awaiter.js.map +1 -0
  154. package/dist/src/sync/sync-manager.d.ts +6 -2
  155. package/dist/src/sync/sync-manager.d.ts.map +1 -1
  156. package/dist/src/sync/sync-manager.js +95 -15
  157. package/dist/src/sync/sync-manager.js.map +1 -1
  158. package/dist/src/sync/sync-operation.d.ts +2 -1
  159. package/dist/src/sync/sync-operation.d.ts.map +1 -1
  160. package/dist/src/sync/sync-operation.js +3 -1
  161. package/dist/src/sync/sync-operation.js.map +1 -1
  162. package/dist/src/sync/types.d.ts +71 -1
  163. package/dist/src/sync/types.d.ts.map +1 -1
  164. package/dist/src/sync/types.js +10 -0
  165. package/dist/src/sync/types.js.map +1 -1
  166. package/dist/src/utils/reshuffle.d.ts +15 -5
  167. package/dist/src/utils/reshuffle.d.ts.map +1 -1
  168. package/dist/src/utils/reshuffle.js +29 -6
  169. package/dist/src/utils/reshuffle.js.map +1 -1
  170. package/package.json +6 -7
  171. package/dist/src/storage/consistency-aware-legacy-storage.d.ts +0 -33
  172. package/dist/src/storage/consistency-aware-legacy-storage.d.ts.map +0 -1
  173. package/dist/src/storage/consistency-aware-legacy-storage.js +0 -65
  174. package/dist/src/storage/consistency-aware-legacy-storage.js.map +0 -1
@@ -0,0 +1,18 @@
1
+ import type { IPollTimer } from "./poll-timer.js";
2
+ /**
3
+ * Default poll timer using setTimeout.
4
+ * Waits for delegate completion before scheduling next tick.
5
+ */
6
+ export declare class IntervalPollTimer implements IPollTimer {
7
+ private readonly intervalMs;
8
+ private delegate;
9
+ private timer;
10
+ private running;
11
+ constructor(intervalMs: number);
12
+ setDelegate(delegate: () => Promise<void>): void;
13
+ start(): void;
14
+ stop(): void;
15
+ private tick;
16
+ private scheduleNext;
17
+ }
18
+ //# sourceMappingURL=interval-poll-timer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interval-poll-timer.d.ts","sourceRoot":"","sources":["../../../../src/sync/channels/interval-poll-timer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD;;;GAGG;AACH,qBAAa,iBAAkB,YAAW,UAAU;IAKtC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAJvC,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,OAAO,CAAU;gBAEI,UAAU,EAAE,MAAM;IAI/C,WAAW,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAIhD,KAAK,IAAI,IAAI;IAKb,IAAI,IAAI,IAAI;IAQZ,OAAO,CAAC,IAAI;IASZ,OAAO,CAAC,YAAY;CAIrB"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Default poll timer using setTimeout.
3
+ * Waits for delegate completion before scheduling next tick.
4
+ */
5
+ export class IntervalPollTimer {
6
+ intervalMs;
7
+ delegate;
8
+ timer;
9
+ running;
10
+ constructor(intervalMs) {
11
+ this.intervalMs = intervalMs;
12
+ this.running = false;
13
+ }
14
+ setDelegate(delegate) {
15
+ this.delegate = delegate;
16
+ }
17
+ start() {
18
+ this.running = true;
19
+ this.tick();
20
+ }
21
+ stop() {
22
+ this.running = false;
23
+ if (this.timer) {
24
+ clearTimeout(this.timer);
25
+ this.timer = undefined;
26
+ }
27
+ }
28
+ tick() {
29
+ if (!this.delegate || !this.running)
30
+ return;
31
+ void this.delegate()
32
+ .then(() => this.scheduleNext())
33
+ .catch(() => {
34
+ // Delegate errors are not propagated; timer stops on error
35
+ });
36
+ }
37
+ scheduleNext() {
38
+ if (!this.running)
39
+ return;
40
+ this.timer = setTimeout(() => this.tick(), this.intervalMs);
41
+ }
42
+ }
43
+ //# sourceMappingURL=interval-poll-timer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interval-poll-timer.js","sourceRoot":"","sources":["../../../../src/sync/channels/interval-poll-timer.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,OAAO,iBAAiB;IAKC;IAJrB,QAAQ,CAAoC;IAC5C,KAAK,CAA6B;IAClC,OAAO,CAAU;IAEzB,YAA6B,UAAkB;QAAlB,eAAU,GAAV,UAAU,CAAQ;QAC7C,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,WAAW,CAAC,QAA6B;QACvC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,IAAI;QACF,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACzB,CAAC;IACH,CAAC;IAEO,IAAI;QACV,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC5C,KAAK,IAAI,CAAC,QAAQ,EAAE;aACjB,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;aAC/B,KAAK,CAAC,GAAG,EAAE;YACV,2DAA2D;QAC7D,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,YAAY;QAClB,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9D,CAAC;CACF"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Timer that controls when polling occurs.
3
+ * GqlChannel registers a delegate; the timer invokes it when appropriate.
4
+ * The delegate returns a Promise; timer waits for completion before scheduling next tick.
5
+ */
6
+ export type IPollTimer = {
7
+ /** Register the delegate to be called on each tick. Returns Promise that timer awaits. */
8
+ setDelegate: (delegate: () => Promise<void>) => void;
9
+ /** Start the timer (begins calling delegate periodically) */
10
+ start: () => void;
11
+ /** Stop the timer */
12
+ stop: () => void;
13
+ };
14
+ //# sourceMappingURL=poll-timer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"poll-timer.d.ts","sourceRoot":"","sources":["../../../../src/sync/channels/poll-timer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,0FAA0F;IAC1F,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IAErD,6DAA6D;IAC7D,KAAK,EAAE,MAAM,IAAI,CAAC;IAElB,qBAAqB;IACrB,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=poll-timer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"poll-timer.js","sourceRoot":"","sources":["../../../../src/sync/channels/poll-timer.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/sync/channels/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAsDhD;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,MAAM,GACjB,aAAa,CA2Bf;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,MAAM,GACjB,aAAa,EAAE,CAqBjB"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/sync/channels/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAsDhD;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,MAAM,GACjB,aAAa,CA4Bf;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,MAAM,GACjB,aAAa,EAAE,CAsBjB"}
@@ -68,7 +68,7 @@ export function envelopeToSyncOperation(envelope, remoteName) {
68
68
  ...new Set(deserializedOperations.map((op) => op.context.scope)),
69
69
  ];
70
70
  const syncOpId = `syncop-${envelope.channelMeta.id}-${Date.now()}-${syncOpCounter++}`;
71
- return new SyncOperation(syncOpId, remoteName, documentId, scopes, branch, deserializedOperations);
71
+ return new SyncOperation(syncOpId, "", remoteName, documentId, scopes, branch, deserializedOperations);
72
72
  }
73
73
  /**
74
74
  * Converts a SyncEnvelope containing operations into multiple SyncOperations.
@@ -90,7 +90,7 @@ export function envelopesToSyncOperations(envelope, remoteName) {
90
90
  const batches = batchOperationsByDocument(deserializedOps);
91
91
  return batches.map((batch) => {
92
92
  const syncOpId = `syncop-${envelope.channelMeta.id}-${Date.now()}-${syncOpCounter++}`;
93
- return new SyncOperation(syncOpId, remoteName, batch.documentId, [batch.scope], batch.branch, batch.operations);
93
+ return new SyncOperation(syncOpId, "", remoteName, batch.documentId, [batch.scope], batch.branch, batch.operations);
94
94
  });
95
95
  }
96
96
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/sync/channels/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/sync/channels/utils.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  export type { IChannel, IChannelFactory, ISyncManager, Remote, } from "./interfaces.js";
2
2
  export type { ShutdownStatus } from "../shared/types.js";
3
- export type { ChannelConfig, ChannelHealth, SyncOperationErrorType, RemoteFilter, RemoteOptions, RemoteRecord, RemoteCursor, RemoteStatus, SyncEnvelope, SyncEnvelopeType, ChannelMeta, } from "./types.js";
4
- export { ChannelErrorSource, SyncOperationStatus } from "./types.js";
3
+ export type { ChannelConfig, ChannelHealth, JwtHandler, SyncOperationErrorType, RemoteFilter, RemoteOptions, RemoteRecord, RemoteCursor, RemoteStatus, SyncEnvelope, SyncEnvelopeType, ChannelMeta, SyncPendingEvent, SyncSucceededEvent, SyncFailedEvent, SyncResult, SyncResultStatus, SyncResultError, } from "./types.js";
4
+ export { ChannelErrorSource, SyncEventTypes, SyncOperationStatus, } from "./types.js";
5
5
  export { SyncOperation, SyncOperationAggregateError, } from "./sync-operation.js";
6
6
  export { Mailbox, type MailboxItem } from "./mailbox.js";
7
7
  export { ChannelError, PollingChannelError } from "./errors.js";
8
- export { PollingChannel, GqlChannelFactory, CompositeChannelFactory, } from "./channels/index.js";
8
+ export { PollingChannel, GqlChannel, GqlChannelFactory, CompositeChannelFactory, type GqlChannelConfig, type IPollTimer, } from "./channels/index.js";
9
9
  export { SyncManager } from "./sync-manager.js";
10
10
  export { SyncBuilder } from "./sync-builder.js";
11
11
  export { createIdleHealth, filterOperations } from "./utils.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sync/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,MAAM,GACP,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,YAAY,EACV,aAAa,EACb,aAAa,EACb,sBAAsB,EACtB,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAErE,OAAO,EACL,aAAa,EACb,2BAA2B,GAC5B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEhE,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sync/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,MAAM,GACP,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,YAAY,EACV,aAAa,EACb,aAAa,EACb,UAAU,EACV,sBAAsB,EACtB,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,eAAe,GAChB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,aAAa,EACb,2BAA2B,GAC5B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEhE,OAAO,EACL,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,uBAAuB,EACvB,KAAK,gBAAgB,EACrB,KAAK,UAAU,GAChB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC"}
@@ -1,8 +1,8 @@
1
- export { ChannelErrorSource, SyncOperationStatus } from "./types.js";
1
+ export { ChannelErrorSource, SyncEventTypes, SyncOperationStatus, } from "./types.js";
2
2
  export { SyncOperation, SyncOperationAggregateError, } from "./sync-operation.js";
3
3
  export { Mailbox } from "./mailbox.js";
4
4
  export { ChannelError, PollingChannelError } from "./errors.js";
5
- export { PollingChannel, GqlChannelFactory, CompositeChannelFactory, } from "./channels/index.js";
5
+ export { PollingChannel, GqlChannel, GqlChannelFactory, CompositeChannelFactory, } from "./channels/index.js";
6
6
  export { SyncManager } from "./sync-manager.js";
7
7
  export { SyncBuilder } from "./sync-builder.js";
8
8
  export { createIdleHealth, filterOperations } from "./utils.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/sync/index.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAErE,OAAO,EACL,aAAa,EACb,2BAA2B,GAC5B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAoB,MAAM,cAAc,CAAC;AAEzD,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEhE,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/sync/index.ts"],"names":[],"mappings":"AA8BA,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,aAAa,EACb,2BAA2B,GAC5B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAoB,MAAM,cAAc,CAAC;AAEzD,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEhE,OAAO,EACL,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,uBAAuB,GAGxB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC"}
@@ -1,8 +1,9 @@
1
+ import type { IOperationIndex } from "../cache/operation-index-types.js";
1
2
  import type { ShutdownStatus } from "../shared/types.js";
2
3
  import type { ISyncCursorStorage } from "../storage/interfaces.js";
3
4
  import type { SyncOperation } from "./sync-operation.js";
4
5
  import type { Mailbox } from "./mailbox.js";
5
- import type { ChannelConfig, RemoteFilter, RemoteOptions } from "./types.js";
6
+ import type { ChannelConfig, RemoteFilter, RemoteOptions, SyncResult } from "./types.js";
6
7
  /**
7
8
  * Represents a bidirectional synchronization channel between two reactor instances.
8
9
  *
@@ -67,9 +68,10 @@ export interface IChannelFactory {
67
68
  * @param cursorStorage - Storage for persisting synchronization cursors
68
69
  * @param collectionId - Collection ID to synchronize
69
70
  * @param filter - Filter to apply to operations
71
+ * @param operationIndex - Operation index for querying timestamps
70
72
  * @returns A new channel instance
71
73
  */
72
- instance(remoteId: string, remoteName: string, config: ChannelConfig, cursorStorage: ISyncCursorStorage, collectionId: string, filter: RemoteFilter): IChannel;
74
+ instance(remoteId: string, remoteName: string, config: ChannelConfig, cursorStorage: ISyncCursorStorage, collectionId: string, filter: RemoteFilter, operationIndex: IOperationIndex): IChannel;
73
75
  }
74
76
  /**
75
77
  * Represents a configured remote with an active channel.
@@ -176,5 +178,15 @@ export interface ISyncManager {
176
178
  * @returns Array of all remotes
177
179
  */
178
180
  list(): Remote[];
181
+ /**
182
+ * Waits for sync operations for a job to complete.
183
+ * Resolves when SYNC_SUCCEEDED is emitted.
184
+ * Rejects when SYNC_FAILED is emitted.
185
+ *
186
+ * @param jobId - The job id to wait for
187
+ * @param signal - Optional abort signal
188
+ * @returns The sync result
189
+ */
190
+ waitForSync(jobId: string, signal?: AbortSignal): Promise<SyncResult>;
179
191
  }
180
192
  //# sourceMappingURL=interfaces.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/sync/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE7E;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,QAAQ;IACvB;;;OAGG;IACH,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAE9B;;;OAGG;IACH,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAE/B;;;OAGG;IACH,UAAU,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAEnC;;;;OAIG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtB;;OAEG;IACH,QAAQ,IAAI,IAAI,CAAC;IAEjB;;;;;OAKG;IACH,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpD;AAED;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;;;;;;OAUG;IACH,QAAQ,CACN,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,aAAa,EACrB,aAAa,EAAE,kBAAkB,EACjC,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,YAAY,GACnB,QAAQ,CAAC;CACb;AAED;;;;;GAKG;AACH,MAAM,MAAM,MAAM,GAAG;IACnB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,MAAM,EAAE,YAAY,CAAC;IAErB;;OAEG;IACH,OAAO,EAAE,aAAa,CAAC;IAEvB;;OAEG;IACH,OAAO,EAAE,QAAQ,CAAC;CACnB,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;;;OAOG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzB;;;;;;;OAOG;IACH,QAAQ,IAAI,cAAc,CAAC;IAE3B;;;;;;OAMG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAEhC;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IAE5B;;;;;;;;;;;;;;OAcG;IACH,GAAG,CACD,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,aAAa,EAC5B,MAAM,CAAC,EAAE,YAAY,EACrB,OAAO,CAAC,EAAE,aAAa,EACvB,EAAE,CAAC,EAAE,MAAM,GACV,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnB;;;;;;;;;OASG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpC;;;;OAIG;IACH,IAAI,IAAI,MAAM,EAAE,CAAC;CAClB"}
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/sync/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,aAAa,EACb,UAAU,EACX,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,QAAQ;IACvB;;;OAGG;IACH,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAE9B;;;OAGG;IACH,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAE/B;;;OAGG;IACH,UAAU,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAEnC;;;;OAIG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtB;;OAEG;IACH,QAAQ,IAAI,IAAI,CAAC;IAEjB;;;;;OAKG;IACH,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpD;AAED;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;;;;;;;OAWG;IACH,QAAQ,CACN,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,aAAa,EACrB,aAAa,EAAE,kBAAkB,EACjC,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,YAAY,EACpB,cAAc,EAAE,eAAe,GAC9B,QAAQ,CAAC;CACb;AAED;;;;;GAKG;AACH,MAAM,MAAM,MAAM,GAAG;IACnB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,MAAM,EAAE,YAAY,CAAC;IAErB;;OAEG;IACH,OAAO,EAAE,aAAa,CAAC;IAEvB;;OAEG;IACH,OAAO,EAAE,QAAQ,CAAC;CACnB,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;;;OAOG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzB;;;;;;;OAOG;IACH,QAAQ,IAAI,cAAc,CAAC;IAE3B;;;;;;OAMG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAEhC;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IAE5B;;;;;;;;;;;;;;OAcG;IACH,GAAG,CACD,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,aAAa,EAC5B,MAAM,CAAC,EAAE,YAAY,EACrB,OAAO,CAAC,EAAE,aAAa,EACvB,EAAE,CAAC,EAAE,MAAM,GACV,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnB;;;;;;;;;OASG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpC;;;;OAIG;IACH,IAAI,IAAI,MAAM,EAAE,CAAC;IAEjB;;;;;;;;OAQG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CACvE"}
@@ -0,0 +1,34 @@
1
+ import type { IEventBus } from "../events/interfaces.js";
2
+ import { type SyncResult } from "./types.js";
3
+ /**
4
+ * Provides a promise-based interface for waiting on sync completion.
5
+ * Subscribes to sync events at construction and tracks completed sync results
6
+ * to provide a fast path for jobs that have already synced.
7
+ */
8
+ export declare class SyncAwaiter {
9
+ private readonly eventBus;
10
+ private readonly completedResults;
11
+ private readonly pendingWaiters;
12
+ private readonly unsubscribers;
13
+ private isShutdown;
14
+ constructor(eventBus: IEventBus);
15
+ /**
16
+ * Waits for sync operations for a job to complete.
17
+ * Resolves when SYNC_SUCCEEDED is emitted.
18
+ * Rejects when SYNC_FAILED is emitted.
19
+ *
20
+ * @param jobId - The job id to wait for
21
+ * @param signal - Optional abort signal
22
+ * @returns The sync result
23
+ */
24
+ waitForSync(jobId: string, signal?: AbortSignal): Promise<SyncResult>;
25
+ /**
26
+ * Shuts down the sync awaiter. This will synchronously reject all pending waiters.
27
+ */
28
+ shutdown(): void;
29
+ private subscribeToEvents;
30
+ private handleSyncSucceeded;
31
+ private handleSyncFailed;
32
+ private resolveWaiters;
33
+ }
34
+ //# sourceMappingURL=sync-awaiter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-awaiter.d.ts","sourceRoot":"","sources":["../../../src/sync/sync-awaiter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD,OAAO,EAGL,KAAK,UAAU,EAEhB,MAAM,YAAY,CAAC;AAQpB;;;;GAIG;AACH,qBAAa,WAAW;IAMV,OAAO,CAAC,QAAQ,CAAC,QAAQ;IALrC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAiC;IAClE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAmC;IAClE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,UAAU,CAAS;gBAEE,QAAQ,EAAE,SAAS;IAIhD;;;;;;;;OAQG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAyCrE;;OAEG;IACH,QAAQ,IAAI,IAAI;IAgBhB,OAAO,CAAC,iBAAiB;IAoBzB,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,cAAc;CAgBvB"}
@@ -0,0 +1,124 @@
1
+ import { SyncEventTypes, } from "./types.js";
2
+ /**
3
+ * Provides a promise-based interface for waiting on sync completion.
4
+ * Subscribes to sync events at construction and tracks completed sync results
5
+ * to provide a fast path for jobs that have already synced.
6
+ */
7
+ export class SyncAwaiter {
8
+ eventBus;
9
+ completedResults = new Map();
10
+ pendingWaiters = new Map();
11
+ unsubscribers = [];
12
+ isShutdown = false;
13
+ constructor(eventBus) {
14
+ this.eventBus = eventBus;
15
+ this.subscribeToEvents();
16
+ }
17
+ /**
18
+ * Waits for sync operations for a job to complete.
19
+ * Resolves when SYNC_SUCCEEDED is emitted.
20
+ * Rejects when SYNC_FAILED is emitted.
21
+ *
22
+ * @param jobId - The job id to wait for
23
+ * @param signal - Optional abort signal
24
+ * @returns The sync result
25
+ */
26
+ waitForSync(jobId, signal) {
27
+ if (signal?.aborted) {
28
+ return Promise.reject(new Error("Operation aborted"));
29
+ }
30
+ if (this.isShutdown) {
31
+ return Promise.reject(new Error("SyncAwaiter is shutdown"));
32
+ }
33
+ const completedResult = this.completedResults.get(jobId);
34
+ if (completedResult) {
35
+ return Promise.resolve(completedResult);
36
+ }
37
+ return new Promise((resolve, reject) => {
38
+ const waiter = { resolve, reject, signal };
39
+ const existingWaiters = this.pendingWaiters.get(jobId) || [];
40
+ existingWaiters.push(waiter);
41
+ this.pendingWaiters.set(jobId, existingWaiters);
42
+ if (signal) {
43
+ const abortHandler = () => {
44
+ const waiters = this.pendingWaiters.get(jobId);
45
+ if (waiters) {
46
+ const index = waiters.indexOf(waiter);
47
+ if (index !== -1) {
48
+ waiters.splice(index, 1);
49
+ if (waiters.length === 0) {
50
+ this.pendingWaiters.delete(jobId);
51
+ }
52
+ waiter.reject(new Error("Operation aborted"));
53
+ }
54
+ }
55
+ };
56
+ signal.addEventListener("abort", abortHandler, { once: true });
57
+ }
58
+ });
59
+ }
60
+ /**
61
+ * Shuts down the sync awaiter. This will synchronously reject all pending waiters.
62
+ */
63
+ shutdown() {
64
+ this.isShutdown = true;
65
+ for (const unsubscribe of this.unsubscribers) {
66
+ unsubscribe();
67
+ }
68
+ this.unsubscribers.length = 0;
69
+ for (const [, waiters] of this.pendingWaiters) {
70
+ for (const waiter of waiters) {
71
+ waiter.reject(new Error("SyncAwaiter shutdown"));
72
+ }
73
+ }
74
+ this.pendingWaiters.clear();
75
+ }
76
+ subscribeToEvents() {
77
+ this.unsubscribers.push(this.eventBus.subscribe(SyncEventTypes.SYNC_SUCCEEDED, (_type, event) => {
78
+ this.handleSyncSucceeded(event);
79
+ }));
80
+ this.unsubscribers.push(this.eventBus.subscribe(SyncEventTypes.SYNC_FAILED, (_type, event) => {
81
+ this.handleSyncFailed(event);
82
+ }));
83
+ }
84
+ handleSyncSucceeded(event) {
85
+ const result = {
86
+ jobId: event.jobId,
87
+ status: "succeeded",
88
+ syncOperationCount: event.syncOperationCount,
89
+ successCount: event.syncOperationCount,
90
+ failureCount: 0,
91
+ errors: [],
92
+ };
93
+ this.completedResults.set(event.jobId, result);
94
+ this.resolveWaiters(event.jobId, result);
95
+ }
96
+ handleSyncFailed(event) {
97
+ const result = {
98
+ jobId: event.jobId,
99
+ status: "failed",
100
+ syncOperationCount: event.successCount + event.failureCount,
101
+ successCount: event.successCount,
102
+ failureCount: event.failureCount,
103
+ errors: event.errors,
104
+ };
105
+ this.completedResults.set(event.jobId, result);
106
+ this.resolveWaiters(event.jobId, result);
107
+ }
108
+ resolveWaiters(jobId, result) {
109
+ const waiters = this.pendingWaiters.get(jobId);
110
+ if (!waiters || waiters.length === 0) {
111
+ return;
112
+ }
113
+ this.pendingWaiters.delete(jobId);
114
+ for (const waiter of waiters) {
115
+ if (waiter.signal?.aborted) {
116
+ waiter.reject(new Error("Operation aborted"));
117
+ }
118
+ else {
119
+ waiter.resolve(result);
120
+ }
121
+ }
122
+ }
123
+ }
124
+ //# sourceMappingURL=sync-awaiter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-awaiter.js","sourceRoot":"","sources":["../../../src/sync/sync-awaiter.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ import type { ILogger } from "../logging/types.js";
5
5
  import { type JobInfo, type ShutdownStatus } from "../shared/types.js";
6
6
  import type { ISyncCursorStorage, ISyncRemoteStorage } from "../storage/interfaces.js";
7
7
  import type { IChannelFactory, ISyncManager, Remote } from "./interfaces.js";
8
- import type { ChannelConfig, RemoteFilter, RemoteOptions } from "./types.js";
8
+ import type { ChannelConfig, RemoteFilter, RemoteOptions, SyncResult } from "./types.js";
9
9
  export declare class SyncManager implements ISyncManager {
10
10
  private readonly logger;
11
11
  private readonly remoteStorage;
@@ -16,6 +16,8 @@ export declare class SyncManager implements ISyncManager {
16
16
  private readonly eventBus;
17
17
  private readonly remotes;
18
18
  private readonly awaiter;
19
+ private readonly syncAwaiter;
20
+ private readonly jobSyncStates;
19
21
  private isShutdown;
20
22
  private eventUnsubscribe?;
21
23
  loadJobs: Map<string, JobInfo>;
@@ -28,10 +30,12 @@ export declare class SyncManager implements ISyncManager {
28
30
  private backfillOutbox;
29
31
  remove(name: string): Promise<void>;
30
32
  list(): Remote[];
33
+ waitForSync(jobId: string, signal?: AbortSignal): Promise<SyncResult>;
31
34
  private wireChannelCallbacks;
32
- private handleOperationWritten;
35
+ private handleWriteReady;
33
36
  private handleInboxJob;
34
37
  private handleOutboxJob;
35
38
  private applyInboxJob;
39
+ private markSyncOpCompleted;
36
40
  }
37
41
  //# sourceMappingURL=sync-manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sync-manager.d.ts","sourceRoot":"","sources":["../../../src/sync/sync-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAKzD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,cAAc,EACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE7E,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,aAAa,EAGd,MAAM,YAAY,CAAC;AAQpB,qBAAa,WAAY,YAAW,YAAY;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAkB;IACjD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAW;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAY;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAC9C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAa;IACrC,OAAO,CAAC,UAAU,CAAU;IAC5B,OAAO,CAAC,gBAAgB,CAAC,CAAa;IAE/B,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAa;gBAGhD,MAAM,EAAE,OAAO,EACf,aAAa,EAAE,kBAAkB,EACjC,aAAa,EAAE,kBAAkB,EACjC,cAAc,EAAE,eAAe,EAC/B,cAAc,EAAE,eAAe,EAC/B,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,SAAS;IAgBf,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA6C9B,QAAQ,IAAI,cAAc;IA2B1B,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAQ/B,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;IASrB,GAAG,CACP,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,aAAa,EAC5B,MAAM,GAAE,YAAwD,EAChE,OAAO,GAAE,aAAkB,EAC3B,EAAE,CAAC,EAAE,MAAM,GACV,OAAO,CAAC,MAAM,CAAC;YAkEJ,cAAc;IAsDtB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYzC,IAAI,IAAI,MAAM,EAAE;IAIhB,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,sBAAsB;IAiC9B,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,eAAe;YAUT,aAAa;CAsD5B"}
1
+ {"version":3,"file":"sync-manager.d.ts","sourceRoot":"","sources":["../../../src/sync/sync-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,cAAc,EACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAG7E,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,aAAa,EAKb,UAAU,EAEX,MAAM,YAAY,CAAC;AAsBpB,qBAAa,WAAY,YAAW,YAAY;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAkB;IACjD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAW;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAY;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAC9C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAa;IACrC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA4B;IAC1D,OAAO,CAAC,UAAU,CAAU;IAC5B,OAAO,CAAC,gBAAgB,CAAC,CAAa;IAE/B,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAa;gBAGhD,MAAM,EAAE,OAAO,EACf,aAAa,EAAE,kBAAkB,EACjC,aAAa,EAAE,kBAAkB,EACjC,cAAc,EAAE,eAAe,EAC/B,cAAc,EAAE,eAAe,EAC/B,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,SAAS;IAkBf,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA8C9B,QAAQ,IAAI,cAAc;IA6B1B,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAQ/B,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;IASrB,GAAG,CACP,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,aAAa,EAC5B,MAAM,GAAE,YAAwD,EAChE,OAAO,GAAE,aAA4C,EACrD,EAAE,CAAC,EAAE,MAAM,GACV,OAAO,CAAC,MAAM,CAAC;YAwEJ,cAAc;IA6DtB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYzC,IAAI,IAAI,MAAM,EAAE;IAIhB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAIrE,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,gBAAgB;IAwExB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,eAAe;YAUT,aAAa;IAuD3B,OAAO,CAAC,mBAAmB;CAyC5B"}