@powerhousedao/reactor 6.0.0-dev.69 → 6.0.0-dev.77

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 (240) hide show
  1. package/dist/src/index.d.ts +1 -1
  2. package/dist/src/index.d.ts.map +1 -1
  3. package/dist/src/index.js +19998 -62
  4. package/dist/src/sync/index.d.ts +1 -1
  5. package/dist/src/sync/index.d.ts.map +1 -1
  6. package/dist/src/sync/sync-manager.d.ts.map +1 -1
  7. package/dist/src/sync/types.d.ts +11 -0
  8. package/dist/src/sync/types.d.ts.map +1 -1
  9. package/package.json +17 -10
  10. package/dist/src/actions/index.js +0 -76
  11. package/dist/src/actions/index.js.map +0 -1
  12. package/dist/src/cache/buffer/ring-buffer.js +0 -69
  13. package/dist/src/cache/buffer/ring-buffer.js.map +0 -1
  14. package/dist/src/cache/collection-membership-cache.js +0 -33
  15. package/dist/src/cache/collection-membership-cache.js.map +0 -1
  16. package/dist/src/cache/document-meta-cache-types.js +0 -2
  17. package/dist/src/cache/document-meta-cache-types.js.map +0 -1
  18. package/dist/src/cache/document-meta-cache.js +0 -129
  19. package/dist/src/cache/document-meta-cache.js.map +0 -1
  20. package/dist/src/cache/index.js +0 -2
  21. package/dist/src/cache/index.js.map +0 -1
  22. package/dist/src/cache/kysely-operation-index.js +0 -345
  23. package/dist/src/cache/kysely-operation-index.js.map +0 -1
  24. package/dist/src/cache/kysely-write-cache.js +0 -411
  25. package/dist/src/cache/kysely-write-cache.js.map +0 -1
  26. package/dist/src/cache/lru/lru-tracker.js +0 -96
  27. package/dist/src/cache/lru/lru-tracker.js.map +0 -1
  28. package/dist/src/cache/operation-index-types.js +0 -4
  29. package/dist/src/cache/operation-index-types.js.map +0 -1
  30. package/dist/src/cache/write/interfaces.js +0 -2
  31. package/dist/src/cache/write/interfaces.js.map +0 -1
  32. package/dist/src/cache/write-cache-types.js +0 -2
  33. package/dist/src/cache/write-cache-types.js.map +0 -1
  34. package/dist/src/client/reactor-client.js +0 -497
  35. package/dist/src/client/reactor-client.js.map +0 -1
  36. package/dist/src/client/types.js +0 -14
  37. package/dist/src/client/types.js.map +0 -1
  38. package/dist/src/core/reactor-builder.js +0 -306
  39. package/dist/src/core/reactor-builder.js.map +0 -1
  40. package/dist/src/core/reactor-client-builder.js +0 -132
  41. package/dist/src/core/reactor-client-builder.js.map +0 -1
  42. package/dist/src/core/reactor.js +0 -640
  43. package/dist/src/core/reactor.js.map +0 -1
  44. package/dist/src/core/types.js +0 -2
  45. package/dist/src/core/types.js.map +0 -1
  46. package/dist/src/core/utils.js +0 -225
  47. package/dist/src/core/utils.js.map +0 -1
  48. package/dist/src/events/event-bus.js +0 -53
  49. package/dist/src/events/event-bus.js.map +0 -1
  50. package/dist/src/events/interfaces.js +0 -2
  51. package/dist/src/events/interfaces.js.map +0 -1
  52. package/dist/src/events/types.js +0 -30
  53. package/dist/src/events/types.js.map +0 -1
  54. package/dist/src/executor/document-action-handler.js +0 -356
  55. package/dist/src/executor/document-action-handler.js.map +0 -1
  56. package/dist/src/executor/interfaces.js +0 -2
  57. package/dist/src/executor/interfaces.js.map +0 -1
  58. package/dist/src/executor/signature-verifier.js +0 -70
  59. package/dist/src/executor/signature-verifier.js.map +0 -1
  60. package/dist/src/executor/simple-job-executor-manager.js +0 -345
  61. package/dist/src/executor/simple-job-executor-manager.js.map +0 -1
  62. package/dist/src/executor/simple-job-executor.js +0 -423
  63. package/dist/src/executor/simple-job-executor.js.map +0 -1
  64. package/dist/src/executor/types.js +0 -11
  65. package/dist/src/executor/types.js.map +0 -1
  66. package/dist/src/executor/util.js +0 -230
  67. package/dist/src/executor/util.js.map +0 -1
  68. package/dist/src/index.js.map +0 -1
  69. package/dist/src/job-tracker/in-memory-job-tracker.js +0 -114
  70. package/dist/src/job-tracker/in-memory-job-tracker.js.map +0 -1
  71. package/dist/src/job-tracker/index.js +0 -2
  72. package/dist/src/job-tracker/index.js.map +0 -1
  73. package/dist/src/job-tracker/interfaces.js +0 -2
  74. package/dist/src/job-tracker/interfaces.js.map +0 -1
  75. package/dist/src/logging/console.js +0 -2
  76. package/dist/src/logging/console.js.map +0 -1
  77. package/dist/src/logging/types.js +0 -2
  78. package/dist/src/logging/types.js.map +0 -1
  79. package/dist/src/processors/index.js +0 -2
  80. package/dist/src/processors/index.js.map +0 -1
  81. package/dist/src/processors/processor-manager.js +0 -165
  82. package/dist/src/processors/processor-manager.js.map +0 -1
  83. package/dist/src/processors/relational/types.js +0 -2
  84. package/dist/src/processors/relational/types.js.map +0 -1
  85. package/dist/src/processors/relational/utils.js +0 -2
  86. package/dist/src/processors/relational/utils.js.map +0 -1
  87. package/dist/src/processors/utils.js +0 -59
  88. package/dist/src/processors/utils.js.map +0 -1
  89. package/dist/src/queue/interfaces.js +0 -2
  90. package/dist/src/queue/interfaces.js.map +0 -1
  91. package/dist/src/queue/job-execution-handle.js +0 -71
  92. package/dist/src/queue/job-execution-handle.js.map +0 -1
  93. package/dist/src/queue/queue.js +0 -493
  94. package/dist/src/queue/queue.js.map +0 -1
  95. package/dist/src/queue/types.js +0 -19
  96. package/dist/src/queue/types.js.map +0 -1
  97. package/dist/src/read-models/base-read-model.js +0 -143
  98. package/dist/src/read-models/base-read-model.js.map +0 -1
  99. package/dist/src/read-models/coordinator.js +0 -72
  100. package/dist/src/read-models/coordinator.js.map +0 -1
  101. package/dist/src/read-models/document-view.js +0 -457
  102. package/dist/src/read-models/document-view.js.map +0 -1
  103. package/dist/src/read-models/interfaces.js +0 -2
  104. package/dist/src/read-models/interfaces.js.map +0 -1
  105. package/dist/src/read-models/types.js +0 -2
  106. package/dist/src/read-models/types.js.map +0 -1
  107. package/dist/src/registry/document-model-resolver.js +0 -81
  108. package/dist/src/registry/document-model-resolver.js.map +0 -1
  109. package/dist/src/registry/implementation.js +0 -226
  110. package/dist/src/registry/implementation.js.map +0 -1
  111. package/dist/src/registry/index.js +0 -3
  112. package/dist/src/registry/index.js.map +0 -1
  113. package/dist/src/registry/interfaces.js +0 -2
  114. package/dist/src/registry/interfaces.js.map +0 -1
  115. package/dist/src/shared/awaiter.js +0 -123
  116. package/dist/src/shared/awaiter.js.map +0 -1
  117. package/dist/src/shared/collect-all-pages.js +0 -17
  118. package/dist/src/shared/collect-all-pages.js.map +0 -1
  119. package/dist/src/shared/consistency-tracker.js +0 -123
  120. package/dist/src/shared/consistency-tracker.js.map +0 -1
  121. package/dist/src/shared/drive-url.js +0 -17
  122. package/dist/src/shared/drive-url.js.map +0 -1
  123. package/dist/src/shared/errors.js +0 -93
  124. package/dist/src/shared/errors.js.map +0 -1
  125. package/dist/src/shared/factories.js +0 -41
  126. package/dist/src/shared/factories.js.map +0 -1
  127. package/dist/src/shared/types.js +0 -38
  128. package/dist/src/shared/types.js.map +0 -1
  129. package/dist/src/shared/utils.js +0 -8
  130. package/dist/src/shared/utils.js.map +0 -1
  131. package/dist/src/signer/passthrough-signer.js +0 -17
  132. package/dist/src/signer/passthrough-signer.js.map +0 -1
  133. package/dist/src/signer/types.js +0 -2
  134. package/dist/src/signer/types.js.map +0 -1
  135. package/dist/src/storage/index.js +0 -3
  136. package/dist/src/storage/index.js.map +0 -1
  137. package/dist/src/storage/interfaces.js +0 -29
  138. package/dist/src/storage/interfaces.js.map +0 -1
  139. package/dist/src/storage/kysely/document-indexer.js +0 -421
  140. package/dist/src/storage/kysely/document-indexer.js.map +0 -1
  141. package/dist/src/storage/kysely/keyframe-store.js +0 -64
  142. package/dist/src/storage/kysely/keyframe-store.js.map +0 -1
  143. package/dist/src/storage/kysely/store.js +0 -264
  144. package/dist/src/storage/kysely/store.js.map +0 -1
  145. package/dist/src/storage/kysely/sync-cursor-storage.js +0 -97
  146. package/dist/src/storage/kysely/sync-cursor-storage.js.map +0 -1
  147. package/dist/src/storage/kysely/sync-dead-letter-storage.js +0 -110
  148. package/dist/src/storage/kysely/sync-dead-letter-storage.js.map +0 -1
  149. package/dist/src/storage/kysely/sync-remote-storage.js +0 -133
  150. package/dist/src/storage/kysely/sync-remote-storage.js.map +0 -1
  151. package/dist/src/storage/kysely/types.js +0 -2
  152. package/dist/src/storage/kysely/types.js.map +0 -1
  153. package/dist/src/storage/migrations/001_create_operation_table.js +0 -41
  154. package/dist/src/storage/migrations/001_create_operation_table.js.map +0 -1
  155. package/dist/src/storage/migrations/002_create_keyframe_table.js +0 -27
  156. package/dist/src/storage/migrations/002_create_keyframe_table.js.map +0 -1
  157. package/dist/src/storage/migrations/003_create_document_table.js +0 -10
  158. package/dist/src/storage/migrations/003_create_document_table.js.map +0 -1
  159. package/dist/src/storage/migrations/004_create_document_relationship_table.js +0 -35
  160. package/dist/src/storage/migrations/004_create_document_relationship_table.js.map +0 -1
  161. package/dist/src/storage/migrations/005_create_indexer_state_table.js +0 -10
  162. package/dist/src/storage/migrations/005_create_indexer_state_table.js.map +0 -1
  163. package/dist/src/storage/migrations/006_create_document_snapshot_table.js +0 -49
  164. package/dist/src/storage/migrations/006_create_document_snapshot_table.js.map +0 -1
  165. package/dist/src/storage/migrations/007_create_slug_mapping_table.js +0 -24
  166. package/dist/src/storage/migrations/007_create_slug_mapping_table.js.map +0 -1
  167. package/dist/src/storage/migrations/008_create_view_state_table.js +0 -10
  168. package/dist/src/storage/migrations/008_create_view_state_table.js.map +0 -1
  169. package/dist/src/storage/migrations/009_create_operation_index_tables.js +0 -50
  170. package/dist/src/storage/migrations/009_create_operation_index_tables.js.map +0 -1
  171. package/dist/src/storage/migrations/010_create_sync_tables.js +0 -43
  172. package/dist/src/storage/migrations/010_create_sync_tables.js.map +0 -1
  173. package/dist/src/storage/migrations/011_add_cursor_type_column.js +0 -29
  174. package/dist/src/storage/migrations/011_add_cursor_type_column.js.map +0 -1
  175. package/dist/src/storage/migrations/012_add_source_remote_column.js +0 -7
  176. package/dist/src/storage/migrations/012_add_source_remote_column.js.map +0 -1
  177. package/dist/src/storage/migrations/013_create_sync_dead_letters_table.js +0 -24
  178. package/dist/src/storage/migrations/013_create_sync_dead_letters_table.js.map +0 -1
  179. package/dist/src/storage/migrations/index.js +0 -3
  180. package/dist/src/storage/migrations/index.js.map +0 -1
  181. package/dist/src/storage/migrations/migrator.js +0 -84
  182. package/dist/src/storage/migrations/migrator.js.map +0 -1
  183. package/dist/src/storage/migrations/run-migrations.js +0 -58
  184. package/dist/src/storage/migrations/run-migrations.js.map +0 -1
  185. package/dist/src/storage/migrations/types.js +0 -2
  186. package/dist/src/storage/migrations/types.js.map +0 -1
  187. package/dist/src/storage/txn.js +0 -42
  188. package/dist/src/storage/txn.js.map +0 -1
  189. package/dist/src/subs/default-error-handler.js +0 -27
  190. package/dist/src/subs/default-error-handler.js.map +0 -1
  191. package/dist/src/subs/react-subscription-manager.js +0 -185
  192. package/dist/src/subs/react-subscription-manager.js.map +0 -1
  193. package/dist/src/subs/subscription-notification-read-model.js +0 -62
  194. package/dist/src/subs/subscription-notification-read-model.js.map +0 -1
  195. package/dist/src/subs/types.js +0 -2
  196. package/dist/src/subs/types.js.map +0 -1
  197. package/dist/src/sync/batch-aggregator.js +0 -94
  198. package/dist/src/sync/batch-aggregator.js.map +0 -1
  199. package/dist/src/sync/buffered-mailbox.js +0 -164
  200. package/dist/src/sync/buffered-mailbox.js.map +0 -1
  201. package/dist/src/sync/channels/gql-req-channel.js +0 -548
  202. package/dist/src/sync/channels/gql-req-channel.js.map +0 -1
  203. package/dist/src/sync/channels/gql-request-channel-factory.js +0 -105
  204. package/dist/src/sync/channels/gql-request-channel-factory.js.map +0 -1
  205. package/dist/src/sync/channels/gql-res-channel.js +0 -79
  206. package/dist/src/sync/channels/gql-res-channel.js.map +0 -1
  207. package/dist/src/sync/channels/gql-response-channel-factory.js +0 -14
  208. package/dist/src/sync/channels/gql-response-channel-factory.js.map +0 -1
  209. package/dist/src/sync/channels/index.js +0 -8
  210. package/dist/src/sync/channels/index.js.map +0 -1
  211. package/dist/src/sync/channels/interval-poll-timer.js +0 -123
  212. package/dist/src/sync/channels/interval-poll-timer.js.map +0 -1
  213. package/dist/src/sync/channels/poll-timer.js +0 -2
  214. package/dist/src/sync/channels/poll-timer.js.map +0 -1
  215. package/dist/src/sync/channels/utils.js +0 -161
  216. package/dist/src/sync/channels/utils.js.map +0 -1
  217. package/dist/src/sync/errors.js +0 -17
  218. package/dist/src/sync/errors.js.map +0 -1
  219. package/dist/src/sync/index.js +0 -11
  220. package/dist/src/sync/index.js.map +0 -1
  221. package/dist/src/sync/interfaces.js +0 -2
  222. package/dist/src/sync/interfaces.js.map +0 -1
  223. package/dist/src/sync/mailbox.js +0 -142
  224. package/dist/src/sync/mailbox.js.map +0 -1
  225. package/dist/src/sync/sync-awaiter.js +0 -124
  226. package/dist/src/sync/sync-awaiter.js.map +0 -1
  227. package/dist/src/sync/sync-builder.js +0 -52
  228. package/dist/src/sync/sync-builder.js.map +0 -1
  229. package/dist/src/sync/sync-manager.js +0 -447
  230. package/dist/src/sync/sync-manager.js.map +0 -1
  231. package/dist/src/sync/sync-operation.js +0 -70
  232. package/dist/src/sync/sync-operation.js.map +0 -1
  233. package/dist/src/sync/sync-status-tracker.js +0 -137
  234. package/dist/src/sync/sync-status-tracker.js.map +0 -1
  235. package/dist/src/sync/types.js +0 -31
  236. package/dist/src/sync/types.js.map +0 -1
  237. package/dist/src/sync/utils.js +0 -283
  238. package/dist/src/sync/utils.js.map +0 -1
  239. package/dist/src/utils/reshuffle.js +0 -91
  240. package/dist/src/utils/reshuffle.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"gql-request-channel-factory.js","sourceRoot":"","sources":["../../../../src/sync/channels/gql-request-channel-factory.ts"],"names":[],"mappings":"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"}
@@ -1,79 +0,0 @@
1
- import { Mailbox } from "../mailbox.js";
2
- import { getLatestAppliedOrdinal } from "./utils.js";
3
- /**
4
- * This class is used server-side to accumulate inbox + outbox operations.
5
- *
6
- * In general, the resolvers are responsible for updating mailboxes.
7
- */
8
- export class GqlResponseChannel {
9
- logger;
10
- inbox;
11
- outbox;
12
- deadLetter;
13
- channelId;
14
- remoteName;
15
- cursorStorage;
16
- isShutdown;
17
- lastPersistedInboxOrdinal = 0;
18
- lastPersistedOutboxOrdinal = 0;
19
- constructor(logger, channelId, remoteName, cursorStorage) {
20
- this.logger = logger;
21
- this.channelId = channelId;
22
- this.remoteName = remoteName;
23
- this.cursorStorage = cursorStorage;
24
- this.isShutdown = false;
25
- this.inbox = new Mailbox();
26
- this.outbox = new Mailbox();
27
- this.deadLetter = new Mailbox();
28
- // Instead of listening to syncops directly for cursor updates, we listen
29
- // to the mailbox. This is for efficiency: many syncops may fire on a trim,
30
- // but only one onRemoved callback will be fired for the batch.
31
- this.outbox.onRemoved((syncOps) => {
32
- const maxOrdinal = getLatestAppliedOrdinal(syncOps);
33
- if (maxOrdinal > this.lastPersistedOutboxOrdinal) {
34
- this.lastPersistedOutboxOrdinal = maxOrdinal;
35
- this.cursorStorage
36
- .upsert({
37
- remoteName: this.remoteName,
38
- cursorType: "outbox",
39
- cursorOrdinal: maxOrdinal,
40
- lastSyncedAtUtcMs: Date.now(),
41
- })
42
- .catch((error) => {
43
- this.logger.error("Failed to update outbox cursor for @ChannelId! This means that future application runs may resend duplicate operations. This is recoverable (with deduplication protection), but not-optimal: @Error", this.channelId, error);
44
- });
45
- }
46
- });
47
- this.inbox.onRemoved((syncOps) => {
48
- const maxOrdinal = getLatestAppliedOrdinal(syncOps);
49
- if (maxOrdinal > this.lastPersistedInboxOrdinal) {
50
- this.lastPersistedInboxOrdinal = maxOrdinal;
51
- this.cursorStorage
52
- .upsert({
53
- remoteName: this.remoteName,
54
- cursorType: "inbox",
55
- cursorOrdinal: maxOrdinal,
56
- lastSyncedAtUtcMs: Date.now(),
57
- })
58
- .catch((error) => {
59
- this.logger.error("Failed to update inbox cursor for @ChannelId! This is unlikely to cause a problem, but not-optimal: @Error", this.channelId, error);
60
- });
61
- }
62
- });
63
- }
64
- shutdown() {
65
- this.isShutdown = true;
66
- return Promise.resolve();
67
- }
68
- async init() {
69
- // get cursors -- these are the last acknowledged ordinals for the inbox and outbox
70
- const cursors = await this.cursorStorage.list(this.remoteName);
71
- const inboxOrdinal = cursors.find((c) => c.cursorType === "inbox")?.cursorOrdinal ?? 0;
72
- const outboxOrdinal = cursors.find((c) => c.cursorType === "outbox")?.cursorOrdinal ?? 0;
73
- this.inbox.init(inboxOrdinal);
74
- this.outbox.init(outboxOrdinal);
75
- this.lastPersistedInboxOrdinal = inboxOrdinal;
76
- this.lastPersistedOutboxOrdinal = outboxOrdinal;
77
- }
78
- }
79
- //# sourceMappingURL=gql-res-channel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gql-res-channel.js","sourceRoot":"","sources":["../../../../src/sync/channels/gql-res-channel.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- import { GqlResponseChannel } from "./gql-res-channel.js";
2
- /**
3
- * Factory for creating GqlResponseChannel instances.
4
- */
5
- export class GqlResponseChannelFactory {
6
- logger;
7
- constructor(logger) {
8
- this.logger = logger;
9
- }
10
- instance(remoteId, remoteName, config, cursorStorage) {
11
- return new GqlResponseChannel(this.logger, remoteId, remoteName, cursorStorage);
12
- }
13
- }
14
- //# sourceMappingURL=gql-response-channel-factory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gql-response-channel-factory.js","sourceRoot":"","sources":["../../../../src/sync/channels/gql-response-channel-factory.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;GAEG;AACH,MAAM,OAAO,yBAAyB;IACnB,MAAM,CAAU;IAEjC,YAAY,MAAe;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,QAAQ,CACN,QAAgB,EAChB,UAAkB,EAClB,MAAqB,EACrB,aAAiC;QAEjC,OAAO,IAAI,kBAAkB,CAC3B,IAAI,CAAC,MAAM,EACX,QAAQ,EACR,UAAU,EACV,aAAa,CACd,CAAC;IACJ,CAAC;CACF"}
@@ -1,8 +0,0 @@
1
- export { GqlRequestChannelFactory } from "./gql-request-channel-factory.js";
2
- export { GqlResponseChannelFactory } from "./gql-response-channel-factory.js";
3
- export { GqlRequestChannel } from "./gql-req-channel.js";
4
- export { GqlResponseChannel } from "./gql-res-channel.js";
5
- export { IntervalPollTimer, calculateBackoffDelay, } from "./interval-poll-timer.js";
6
- export {} from "./poll-timer.js";
7
- export { envelopeToSyncOperation } from "./utils.js";
8
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/sync/channels/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAyB,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EACL,iBAAiB,EACjB,qBAAqB,GAEtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAmB,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC"}
@@ -1,123 +0,0 @@
1
- const DEFAULT_CONFIG = {
2
- intervalMs: 2000,
3
- maxQueueDepth: 100,
4
- backpressureCheckIntervalMs: 500,
5
- retryBaseDelayMs: 1000,
6
- retryMaxDelayMs: 300000,
7
- };
8
- export function calculateBackoffDelay(consecutiveFailures, retryBaseDelayMs, retryMaxDelayMs, random) {
9
- const backoff = Math.min(retryMaxDelayMs, retryBaseDelayMs * Math.pow(2, consecutiveFailures - 1));
10
- return backoff / 2 + random * (backoff / 2);
11
- }
12
- /**
13
- * Default poll timer using setTimeout.
14
- * Waits for delegate completion before scheduling next tick.
15
- * Checks queue depth and defers polling when backpressure is detected.
16
- */
17
- export class IntervalPollTimer {
18
- delegate;
19
- timer;
20
- running;
21
- paused;
22
- consecutiveFailures;
23
- queue;
24
- config;
25
- constructor(queue, config = {}) {
26
- this.queue = queue;
27
- this.config = { ...DEFAULT_CONFIG, ...config };
28
- this.running = false;
29
- this.paused = false;
30
- this.consecutiveFailures = 0;
31
- }
32
- setDelegate(delegate) {
33
- this.delegate = delegate;
34
- }
35
- start() {
36
- this.running = true;
37
- this.consecutiveFailures = 0;
38
- this.tick();
39
- }
40
- stop() {
41
- this.running = false;
42
- if (this.timer) {
43
- clearTimeout(this.timer);
44
- this.timer = undefined;
45
- }
46
- }
47
- tick() {
48
- if (!this.delegate || !this.running)
49
- return;
50
- const delegate = this.delegate;
51
- void this.queue
52
- .totalSize()
53
- .then((size) => {
54
- if (!this.running)
55
- return;
56
- if (size > this.config.maxQueueDepth) {
57
- this.scheduleBackpressureRecheck();
58
- }
59
- else {
60
- void delegate()
61
- .then(() => {
62
- this.consecutiveFailures = 0;
63
- this.scheduleNext();
64
- })
65
- .catch(() => {
66
- this.consecutiveFailures++;
67
- this.scheduleRetry();
68
- });
69
- }
70
- })
71
- .catch(() => {
72
- // Fail-open: schedule next at normal interval when totalSize() throws
73
- this.scheduleNext();
74
- });
75
- }
76
- scheduleNext() {
77
- if (!this.running || this.paused)
78
- return;
79
- this.timer = setTimeout(() => this.tick(), this.config.intervalMs);
80
- }
81
- scheduleRetry() {
82
- if (!this.running || this.paused)
83
- return;
84
- const delay = calculateBackoffDelay(this.consecutiveFailures, this.config.retryBaseDelayMs, this.config.retryMaxDelayMs, Math.random());
85
- this.timer = setTimeout(() => this.tick(), delay);
86
- }
87
- scheduleBackpressureRecheck() {
88
- if (!this.running || this.paused)
89
- return;
90
- this.timer = setTimeout(() => this.tick(), this.config.backpressureCheckIntervalMs);
91
- }
92
- pause() {
93
- this.paused = true;
94
- if (this.timer) {
95
- clearTimeout(this.timer);
96
- this.timer = undefined;
97
- }
98
- }
99
- resume() {
100
- this.paused = false;
101
- if (this.running) {
102
- this.scheduleNext();
103
- }
104
- }
105
- triggerNow() {
106
- if (this.running && this.delegate) {
107
- this.tick();
108
- }
109
- }
110
- isPaused() {
111
- return this.paused;
112
- }
113
- isRunning() {
114
- return this.running;
115
- }
116
- getIntervalMs() {
117
- return this.config.intervalMs;
118
- }
119
- setIntervalMs(ms) {
120
- this.config.intervalMs = ms;
121
- }
122
- }
123
- //# sourceMappingURL=interval-poll-timer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"interval-poll-timer.js","sourceRoot":"","sources":["../../../../src/sync/channels/interval-poll-timer.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=poll-timer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"poll-timer.js","sourceRoot":"","sources":["../../../../src/sync/channels/poll-timer.ts"],"names":[],"mappings":""}
@@ -1,161 +0,0 @@
1
- import { SyncOperation } from "../sync-operation.js";
2
- import { SyncOperationStatus } from "../types.js";
3
- import { batchOperationsByDocument } from "../utils.js";
4
- let syncOpCounter = 0;
5
- /**
6
- * Serializes an action for GraphQL transport, converting signature tuples to strings.
7
- */
8
- export function serializeAction(action) {
9
- const signer = action.context?.signer;
10
- if (!signer?.signatures) {
11
- return action;
12
- }
13
- return {
14
- ...action,
15
- context: {
16
- ...action.context,
17
- signer: {
18
- ...signer,
19
- signatures: signer.signatures.map((sig) => Array.isArray(sig) ? sig.join(", ") : sig),
20
- },
21
- },
22
- };
23
- }
24
- /**
25
- * Serializes a SyncEnvelope for GraphQL transport.
26
- *
27
- * Signatures are serialized as comma-separated strings since GraphQL schema
28
- * defines them as [String!]!. The resultingState context field is stripped
29
- * since it is not defined in OperationContextInput.
30
- */
31
- export function serializeEnvelope(envelope) {
32
- return {
33
- type: envelope.type.toUpperCase(),
34
- channelMeta: envelope.channelMeta,
35
- operations: envelope.operations?.map((opWithContext) => ({
36
- operation: {
37
- index: opWithContext.operation.index,
38
- timestampUtcMs: opWithContext.operation.timestampUtcMs,
39
- hash: opWithContext.operation.hash,
40
- skip: opWithContext.operation.skip,
41
- error: opWithContext.operation.error,
42
- id: opWithContext.operation.id,
43
- action: serializeAction(opWithContext.operation.action),
44
- },
45
- context: {
46
- documentId: opWithContext.context.documentId,
47
- documentType: opWithContext.context.documentType,
48
- scope: opWithContext.context.scope,
49
- branch: opWithContext.context.branch,
50
- ordinal: opWithContext.context.ordinal,
51
- },
52
- })),
53
- cursor: envelope.cursor,
54
- key: envelope.key,
55
- dependsOn: envelope.dependsOn,
56
- };
57
- }
58
- /**
59
- * Deserializes a signature from a comma-separated string back to a tuple.
60
- *
61
- * GraphQL serializes Signature tuples as comma-separated strings for transport.
62
- * This function converts them back to the expected [string, string, string, string, string] format.
63
- */
64
- function deserializeSignature(sig) {
65
- if (Array.isArray(sig)) {
66
- return sig;
67
- }
68
- return sig.split(", ");
69
- }
70
- /**
71
- * Deserializes signatures in an operation's signer context from strings back to tuples.
72
- *
73
- * When operations are transported via GraphQL, signatures are serialized as comma-separated
74
- * strings. This function restores them to the Signature tuple format required for verification.
75
- */
76
- function deserializeOperationSignatures(opWithContext) {
77
- const signer = opWithContext.operation.action.context?.signer;
78
- if (!signer?.signatures || signer.signatures.length === 0) {
79
- return opWithContext;
80
- }
81
- const deserializedSignatures = signer.signatures.map(deserializeSignature);
82
- const deserializedOperation = {
83
- ...opWithContext.operation,
84
- action: {
85
- ...opWithContext.operation.action,
86
- context: {
87
- ...opWithContext.operation.action.context,
88
- signer: {
89
- ...signer,
90
- signatures: deserializedSignatures,
91
- },
92
- },
93
- },
94
- };
95
- return {
96
- ...opWithContext,
97
- operation: deserializedOperation,
98
- };
99
- }
100
- /**
101
- * Converts a SyncEnvelope containing operations into a SyncOperation.
102
- *
103
- * Extracts the necessary metadata from the envelope's operations to create
104
- * a sync operation that can be processed by the receiving channel. Also
105
- * deserializes any signatures from comma-separated strings back to tuples,
106
- * as GraphQL transport serializes Signature tuples for compatibility.
107
- *
108
- * @param envelope - The sync envelope containing operations
109
- * @param remoteName - The name of the remote this sync operation is associated with
110
- * @returns A new SyncOperation containing the envelope's operations with deserialized signatures
111
- * @throws Error if envelope has no operations or operations array is empty
112
- */
113
- export function envelopeToSyncOperation(envelope, remoteName) {
114
- if (!envelope.operations || envelope.operations.length === 0) {
115
- throw new Error("Cannot create SyncOperation from envelope without operations");
116
- }
117
- const deserializedOperations = envelope.operations.map(deserializeOperationSignatures);
118
- const firstOp = deserializedOperations[0];
119
- const documentId = firstOp.context.documentId;
120
- const branch = firstOp.context.branch;
121
- const scopes = [
122
- ...new Set(deserializedOperations.map((op) => op.context.scope)),
123
- ];
124
- const syncOpId = `syncop-${envelope.channelMeta.id}-${Date.now()}-${syncOpCounter++}`;
125
- return new SyncOperation(syncOpId, envelope.key ?? "", (envelope.dependsOn ?? []).filter(Boolean), remoteName, documentId, scopes, branch, deserializedOperations);
126
- }
127
- /**
128
- * Converts a SyncEnvelope containing operations into multiple SyncOperations.
129
- *
130
- * This function batches operations by documentId, preserving cross-document ordering.
131
- * For operations [a1, a2, a3, b1, b2, a4], it returns:
132
- * - SyncOperation 1: [a1, a2, a3] for doc-a
133
- * - SyncOperation 2: [b1, b2] for doc-b
134
- * - SyncOperation 3: [a4] for doc-a
135
- *
136
- * This ensures operations are grouped for efficient processing while maintaining
137
- * causality across documents.
138
- */
139
- export function envelopesToSyncOperations(envelope, remoteName) {
140
- if (!envelope.operations || envelope.operations.length === 0) {
141
- return [];
142
- }
143
- const deserializedOps = envelope.operations.map(deserializeOperationSignatures);
144
- const batches = batchOperationsByDocument(deserializedOps);
145
- return batches.map((batch) => {
146
- const syncOpId = `syncop-${envelope.channelMeta.id}-${Date.now()}-${syncOpCounter++}`;
147
- return new SyncOperation(syncOpId, envelope.key ?? "", (envelope.dependsOn ?? []).filter(Boolean), remoteName, batch.documentId, [batch.scope], batch.branch, batch.operations);
148
- });
149
- }
150
- export const getLatestAppliedOrdinal = (syncOps) => {
151
- let maxOrdinal = 0;
152
- for (const syncOp of syncOps) {
153
- if (syncOp.status === SyncOperationStatus.Applied) {
154
- for (const op of syncOp.operations) {
155
- maxOrdinal = Math.max(maxOrdinal, op.context.ordinal);
156
- }
157
- }
158
- }
159
- return maxOrdinal;
160
- };
161
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/sync/channels/utils.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- export class PollingChannelError extends Error {
2
- constructor(message) {
3
- super(message);
4
- this.name = "PollingChannelError";
5
- }
6
- }
7
- export class ChannelError extends Error {
8
- source;
9
- error;
10
- constructor(source, error) {
11
- super(`ChannelError[${source}]: ${error.message}`);
12
- this.name = "ChannelError";
13
- this.source = source;
14
- this.error = error;
15
- }
16
- }
17
- //# sourceMappingURL=errors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/sync/errors.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC5C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED,MAAM,OAAO,YAAa,SAAQ,KAAK;IACrC,MAAM,CAAqB;IAC3B,KAAK,CAAQ;IAEb,YAAY,MAA0B,EAAE,KAAY;QAClD,KAAK,CAAC,gBAAgB,MAAM,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACnD,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF"}
@@ -1,11 +0,0 @@
1
- export { ChannelErrorSource, ChannelScheme, SyncEventTypes, SyncOperationStatus, } from "./types.js";
2
- export { BufferedMailbox } from "./buffered-mailbox.js";
3
- export { Mailbox } from "./mailbox.js";
4
- export { SyncOperation, SyncOperationAggregateError, } from "./sync-operation.js";
5
- export { ChannelError, PollingChannelError } from "./errors.js";
6
- export { GqlRequestChannel, GqlRequestChannelFactory, GqlResponseChannel, GqlResponseChannelFactory, IntervalPollTimer, } from "./channels/index.js";
7
- export { SyncBuilder } from "./sync-builder.js";
8
- export { SyncManager } from "./sync-manager.js";
9
- export { SyncStatus, SyncStatusTracker } from "./sync-status-tracker.js";
10
- export { batchOperationsByDocument, consolidateSyncOperations, createIdleHealth, filterOperations, sortEnvelopesByFirstOperationTimestamp, trimMailboxFromAckOrdinal, } from "./utils.js";
11
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/sync/index.ts"],"names":[],"mappings":"AA8BA,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAiB,MAAM,cAAc,CAAC;AACtD,OAAO,EACL,aAAa,EACb,2BAA2B,GAC5B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEhE,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,kBAAkB,EAClB,yBAAyB,EACzB,iBAAiB,GAGlB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAMzE,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,gBAAgB,EAChB,gBAAgB,EAChB,sCAAsC,EACtC,yBAAyB,GAC1B,MAAM,YAAY,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=interfaces.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/sync/interfaces.ts"],"names":[],"mappings":""}
@@ -1,142 +0,0 @@
1
- import { SyncOperationStatus } from "./types.js";
2
- export class MailboxAggregateError extends Error {
3
- errors;
4
- constructor(errors) {
5
- const messages = errors.map((e) => e.message).join("; ");
6
- super(`Mailbox callback failed with ${errors.length} error(s): ${messages}`);
7
- this.name = "MailboxAggregateError";
8
- this.errors = errors;
9
- }
10
- }
11
- export class Mailbox {
12
- itemsMap = new Map();
13
- addedCallbacks = [];
14
- removedCallbacks = [];
15
- paused = false;
16
- addedBuffer = [];
17
- removedBuffer = [];
18
- _ack = 0;
19
- _latestOrdinal = 0;
20
- init(ackOrdinal) {
21
- this._ack = this._latestOrdinal = ackOrdinal;
22
- }
23
- get items() {
24
- return Array.from(this.itemsMap.values());
25
- }
26
- get ackOrdinal() {
27
- return this._ack;
28
- }
29
- get latestOrdinal() {
30
- return this._latestOrdinal;
31
- }
32
- get(id) {
33
- return this.itemsMap.get(id);
34
- }
35
- add(...items) {
36
- for (const item of items) {
37
- this.itemsMap.set(item.id, item);
38
- // update latest ordinal
39
- for (const op of item.operations) {
40
- this._latestOrdinal = Math.max(this._latestOrdinal, op.context.ordinal);
41
- }
42
- // listen for updates to the syncop status
43
- item.on((syncOp, _, next) => {
44
- if (next === SyncOperationStatus.Applied) {
45
- for (const op of syncOp.operations) {
46
- this._ack = Math.max(this._ack, op.context.ordinal);
47
- }
48
- }
49
- });
50
- }
51
- if (this.paused) {
52
- this.addedBuffer.push(...items);
53
- return;
54
- }
55
- const callbacks = [...this.addedCallbacks];
56
- const errors = [];
57
- for (const callback of callbacks) {
58
- try {
59
- callback(items);
60
- }
61
- catch (error) {
62
- errors.push(error instanceof Error ? error : new Error(String(error)));
63
- }
64
- }
65
- if (errors.length > 0) {
66
- throw new MailboxAggregateError(errors);
67
- }
68
- }
69
- remove(...items) {
70
- for (const item of items) {
71
- this.itemsMap.delete(item.id);
72
- }
73
- if (this.paused) {
74
- this.removedBuffer.push(...items);
75
- return;
76
- }
77
- const callbacks = [...this.removedCallbacks];
78
- const errors = [];
79
- for (const callback of callbacks) {
80
- try {
81
- callback(items);
82
- }
83
- catch (error) {
84
- errors.push(error instanceof Error ? error : new Error(String(error)));
85
- }
86
- }
87
- if (errors.length > 0) {
88
- throw new MailboxAggregateError(errors);
89
- }
90
- }
91
- onAdded(callback) {
92
- this.addedCallbacks.push(callback);
93
- }
94
- onRemoved(callback) {
95
- this.removedCallbacks.push(callback);
96
- }
97
- pause() {
98
- this.paused = true;
99
- }
100
- resume() {
101
- this.paused = false;
102
- this.flush();
103
- }
104
- flush() {
105
- if (this.addedBuffer.length > 0) {
106
- const items = this.addedBuffer.splice(0);
107
- const callbacks = [...this.addedCallbacks];
108
- const errors = [];
109
- for (const callback of callbacks) {
110
- try {
111
- callback(items);
112
- }
113
- catch (error) {
114
- errors.push(error instanceof Error ? error : new Error(String(error)));
115
- }
116
- }
117
- if (errors.length > 0) {
118
- throw new MailboxAggregateError(errors);
119
- }
120
- }
121
- if (this.removedBuffer.length > 0) {
122
- const items = this.removedBuffer.splice(0);
123
- const callbacks = [...this.removedCallbacks];
124
- const errors = [];
125
- for (const callback of callbacks) {
126
- try {
127
- callback(items);
128
- }
129
- catch (error) {
130
- errors.push(error instanceof Error ? error : new Error(String(error)));
131
- }
132
- }
133
- if (errors.length > 0) {
134
- throw new MailboxAggregateError(errors);
135
- }
136
- }
137
- }
138
- isPaused() {
139
- return this.paused;
140
- }
141
- }
142
- //# sourceMappingURL=mailbox.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mailbox.js","sourceRoot":"","sources":["../../../src/sync/mailbox.ts"],"names":[],"mappings":"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"}