@powerhousedao/reactor 6.0.0-dev.8 → 6.0.0-dev.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 (376) hide show
  1. package/dist/src/cache/collection-membership-cache.d.ts +13 -0
  2. package/dist/src/cache/collection-membership-cache.d.ts.map +1 -0
  3. package/dist/src/cache/document-meta-cache.d.ts.map +1 -1
  4. package/dist/src/cache/kysely-operation-index.d.ts +6 -1
  5. package/dist/src/cache/kysely-operation-index.d.ts.map +1 -1
  6. package/dist/src/cache/kysely-write-cache.d.ts +9 -2
  7. package/dist/src/cache/kysely-write-cache.d.ts.map +1 -1
  8. package/dist/src/cache/operation-index-types.d.ts +16 -2
  9. package/dist/src/cache/operation-index-types.d.ts.map +1 -1
  10. package/dist/src/cache/write/interfaces.d.ts +7 -2
  11. package/dist/src/cache/write/interfaces.d.ts.map +1 -1
  12. package/dist/src/client/reactor-client.d.ts +13 -10
  13. package/dist/src/client/reactor-client.d.ts.map +1 -1
  14. package/dist/src/client/types.d.ts +25 -6
  15. package/dist/src/client/types.d.ts.map +1 -1
  16. package/dist/src/core/reactor-builder.d.ts +23 -10
  17. package/dist/src/core/reactor-builder.d.ts.map +1 -1
  18. package/dist/src/core/reactor-client-builder.d.ts +5 -4
  19. package/dist/src/core/reactor-client-builder.d.ts.map +1 -1
  20. package/dist/src/core/reactor.d.ts +20 -80
  21. package/dist/src/core/reactor.d.ts.map +1 -1
  22. package/dist/src/core/types.d.ts +64 -28
  23. package/dist/src/core/types.d.ts.map +1 -1
  24. package/dist/src/core/utils.d.ts +39 -3
  25. package/dist/src/core/utils.d.ts.map +1 -1
  26. package/dist/src/events/types.d.ts +35 -10
  27. package/dist/src/events/types.d.ts.map +1 -1
  28. package/dist/src/executor/document-action-handler.d.ts +37 -0
  29. package/dist/src/executor/document-action-handler.d.ts.map +1 -0
  30. package/dist/src/executor/signature-verifier.d.ts +9 -0
  31. package/dist/src/executor/signature-verifier.d.ts.map +1 -0
  32. package/dist/src/executor/simple-job-executor-manager.d.ts +6 -1
  33. package/dist/src/executor/simple-job-executor-manager.d.ts.map +1 -1
  34. package/dist/src/executor/simple-job-executor.d.ts +6 -46
  35. package/dist/src/executor/simple-job-executor.d.ts.map +1 -1
  36. package/dist/src/executor/types.d.ts +1 -3
  37. package/dist/src/executor/types.d.ts.map +1 -1
  38. package/dist/src/executor/util.d.ts +12 -2
  39. package/dist/src/executor/util.d.ts.map +1 -1
  40. package/dist/src/index.d.ts +11 -9
  41. package/dist/src/index.d.ts.map +1 -1
  42. package/dist/src/index.js +20208 -61
  43. package/dist/src/job-tracker/in-memory-job-tracker.d.ts +4 -3
  44. package/dist/src/job-tracker/in-memory-job-tracker.d.ts.map +1 -1
  45. package/dist/src/job-tracker/interfaces.d.ts +3 -1
  46. package/dist/src/job-tracker/interfaces.d.ts.map +1 -1
  47. package/dist/src/logging/console.d.ts +1 -22
  48. package/dist/src/logging/console.d.ts.map +1 -1
  49. package/dist/src/logging/types.d.ts +1 -11
  50. package/dist/src/logging/types.d.ts.map +1 -1
  51. package/dist/src/processors/index.d.ts +1 -1
  52. package/dist/src/processors/index.d.ts.map +1 -1
  53. package/dist/src/processors/processor-manager.d.ts +19 -6
  54. package/dist/src/processors/processor-manager.d.ts.map +1 -1
  55. package/dist/src/processors/relational/types.d.ts +2 -0
  56. package/dist/src/processors/relational/types.d.ts.map +1 -0
  57. package/dist/src/processors/relational/utils.d.ts +2 -0
  58. package/dist/src/processors/relational/utils.d.ts.map +1 -0
  59. package/dist/src/processors/utils.d.ts +3 -2
  60. package/dist/src/processors/utils.d.ts.map +1 -1
  61. package/dist/src/queue/job-execution-handle.d.ts +3 -0
  62. package/dist/src/queue/job-execution-handle.d.ts.map +1 -1
  63. package/dist/src/queue/queue.d.ts +30 -1
  64. package/dist/src/queue/queue.d.ts.map +1 -1
  65. package/dist/src/queue/types.d.ts +4 -3
  66. package/dist/src/queue/types.d.ts.map +1 -1
  67. package/dist/src/read-models/base-read-model.d.ts +11 -9
  68. package/dist/src/read-models/base-read-model.d.ts.map +1 -1
  69. package/dist/src/read-models/coordinator.d.ts +2 -2
  70. package/dist/src/read-models/coordinator.d.ts.map +1 -1
  71. package/dist/src/read-models/document-view.d.ts +7 -4
  72. package/dist/src/read-models/document-view.d.ts.map +1 -1
  73. package/dist/src/read-models/interfaces.d.ts +1 -1
  74. package/dist/src/read-models/interfaces.d.ts.map +1 -1
  75. package/dist/src/read-models/types.d.ts +16 -0
  76. package/dist/src/read-models/types.d.ts.map +1 -1
  77. package/dist/src/registry/document-model-resolver.d.ts +29 -0
  78. package/dist/src/registry/document-model-resolver.d.ts.map +1 -0
  79. package/dist/src/registry/implementation.d.ts +4 -0
  80. package/dist/src/registry/implementation.d.ts.map +1 -1
  81. package/dist/src/registry/index.d.ts +3 -1
  82. package/dist/src/registry/index.d.ts.map +1 -1
  83. package/dist/src/registry/interfaces.d.ts +8 -0
  84. package/dist/src/registry/interfaces.d.ts.map +1 -1
  85. package/dist/src/shared/awaiter.d.ts +2 -2
  86. package/dist/src/shared/awaiter.d.ts.map +1 -1
  87. package/dist/src/shared/collect-all-pages.d.ts +7 -0
  88. package/dist/src/shared/collect-all-pages.d.ts.map +1 -0
  89. package/dist/src/shared/drive-url.d.ts +15 -0
  90. package/dist/src/shared/drive-url.d.ts.map +1 -0
  91. package/dist/src/shared/errors.d.ts +9 -0
  92. package/dist/src/shared/errors.d.ts.map +1 -1
  93. package/dist/src/shared/factories.d.ts +6 -2
  94. package/dist/src/shared/factories.d.ts.map +1 -1
  95. package/dist/src/shared/types.d.ts +32 -6
  96. package/dist/src/shared/types.d.ts.map +1 -1
  97. package/dist/src/signer/passthrough-signer.d.ts +1 -1
  98. package/dist/src/signer/passthrough-signer.d.ts.map +1 -1
  99. package/dist/src/storage/interfaces.d.ts +238 -124
  100. package/dist/src/storage/interfaces.d.ts.map +1 -1
  101. package/dist/src/storage/kysely/document-indexer.d.ts +17 -18
  102. package/dist/src/storage/kysely/document-indexer.d.ts.map +1 -1
  103. package/dist/src/storage/kysely/store.d.ts +5 -4
  104. package/dist/src/storage/kysely/store.d.ts.map +1 -1
  105. package/dist/src/storage/kysely/sync-cursor-storage.d.ts +1 -1
  106. package/dist/src/storage/kysely/sync-cursor-storage.d.ts.map +1 -1
  107. package/dist/src/storage/kysely/sync-dead-letter-storage.d.ts +17 -0
  108. package/dist/src/storage/kysely/sync-dead-letter-storage.d.ts.map +1 -0
  109. package/dist/src/storage/kysely/types.d.ts +22 -0
  110. package/dist/src/storage/kysely/types.d.ts.map +1 -1
  111. package/dist/src/storage/migrations/011_add_cursor_type_column.d.ts +3 -0
  112. package/dist/src/storage/migrations/011_add_cursor_type_column.d.ts.map +1 -0
  113. package/dist/src/storage/migrations/012_add_source_remote_column.d.ts +3 -0
  114. package/dist/src/storage/migrations/012_add_source_remote_column.d.ts.map +1 -0
  115. package/dist/src/storage/migrations/013_create_sync_dead_letters_table.d.ts +3 -0
  116. package/dist/src/storage/migrations/013_create_sync_dead_letters_table.d.ts.map +1 -0
  117. package/dist/src/storage/migrations/014_create_processor_cursor_table.d.ts +3 -0
  118. package/dist/src/storage/migrations/014_create_processor_cursor_table.d.ts.map +1 -0
  119. package/dist/src/storage/migrations/migrator.d.ts.map +1 -1
  120. package/dist/src/subs/default-error-handler.d.ts.map +1 -1
  121. package/dist/src/subs/subscription-notification-read-model.d.ts +3 -2
  122. package/dist/src/subs/subscription-notification-read-model.d.ts.map +1 -1
  123. package/dist/src/sync/batch-aggregator.d.ts +25 -0
  124. package/dist/src/sync/batch-aggregator.d.ts.map +1 -0
  125. package/dist/src/sync/buffered-mailbox.d.ts +36 -0
  126. package/dist/src/sync/buffered-mailbox.d.ts.map +1 -0
  127. package/dist/src/sync/channels/gql-req-channel.d.ts +121 -0
  128. package/dist/src/sync/channels/gql-req-channel.d.ts.map +1 -0
  129. package/dist/src/sync/channels/gql-request-channel-factory.d.ts +32 -0
  130. package/dist/src/sync/channels/gql-request-channel-factory.d.ts.map +1 -0
  131. package/dist/src/sync/channels/gql-res-channel.d.ts +31 -0
  132. package/dist/src/sync/channels/gql-res-channel.d.ts.map +1 -0
  133. package/dist/src/sync/channels/gql-response-channel-factory.d.ts +13 -0
  134. package/dist/src/sync/channels/gql-response-channel-factory.d.ts.map +1 -0
  135. package/dist/src/sync/channels/index.d.ts +6 -4
  136. package/dist/src/sync/channels/index.d.ts.map +1 -1
  137. package/dist/src/sync/channels/interval-poll-timer.d.ts +40 -0
  138. package/dist/src/sync/channels/interval-poll-timer.d.ts.map +1 -0
  139. package/dist/src/sync/channels/poll-timer.d.ts +14 -0
  140. package/dist/src/sync/channels/poll-timer.d.ts.map +1 -0
  141. package/dist/src/sync/channels/utils.d.ts +15 -1
  142. package/dist/src/sync/channels/utils.d.ts.map +1 -1
  143. package/dist/src/sync/index.d.ts +11 -7
  144. package/dist/src/sync/index.d.ts.map +1 -1
  145. package/dist/src/sync/interfaces.d.ts +42 -19
  146. package/dist/src/sync/interfaces.d.ts.map +1 -1
  147. package/dist/src/sync/mailbox.d.ts +51 -12
  148. package/dist/src/sync/mailbox.d.ts.map +1 -1
  149. package/dist/src/sync/sync-awaiter.d.ts +34 -0
  150. package/dist/src/sync/sync-awaiter.d.ts.map +1 -0
  151. package/dist/src/sync/sync-builder.d.ts +5 -1
  152. package/dist/src/sync/sync-builder.d.ts.map +1 -1
  153. package/dist/src/sync/sync-manager.d.ts +22 -8
  154. package/dist/src/sync/sync-manager.d.ts.map +1 -1
  155. package/dist/src/sync/sync-operation.d.ts +4 -2
  156. package/dist/src/sync/sync-operation.d.ts.map +1 -1
  157. package/dist/src/sync/sync-status-tracker.d.ts +31 -0
  158. package/dist/src/sync/sync-status-tracker.d.ts.map +1 -0
  159. package/dist/src/sync/types.d.ts +107 -2
  160. package/dist/src/sync/types.d.ts.map +1 -1
  161. package/dist/src/sync/utils.d.ts +37 -2
  162. package/dist/src/sync/utils.d.ts.map +1 -1
  163. package/dist/src/utils/reshuffle.d.ts +22 -5
  164. package/dist/src/utils/reshuffle.d.ts.map +1 -1
  165. package/package.json +24 -20
  166. package/dist/src/actions/index.js +0 -76
  167. package/dist/src/actions/index.js.map +0 -1
  168. package/dist/src/cache/buffer/ring-buffer.js +0 -69
  169. package/dist/src/cache/buffer/ring-buffer.js.map +0 -1
  170. package/dist/src/cache/document-meta-cache-types.js +0 -2
  171. package/dist/src/cache/document-meta-cache-types.js.map +0 -1
  172. package/dist/src/cache/document-meta-cache.js +0 -128
  173. package/dist/src/cache/document-meta-cache.js.map +0 -1
  174. package/dist/src/cache/index.js +0 -2
  175. package/dist/src/cache/index.js.map +0 -1
  176. package/dist/src/cache/kysely-operation-index.js +0 -250
  177. package/dist/src/cache/kysely-operation-index.js.map +0 -1
  178. package/dist/src/cache/kysely-write-cache.js +0 -388
  179. package/dist/src/cache/kysely-write-cache.js.map +0 -1
  180. package/dist/src/cache/lru/lru-tracker.js +0 -96
  181. package/dist/src/cache/lru/lru-tracker.js.map +0 -1
  182. package/dist/src/cache/operation-index-types.js +0 -4
  183. package/dist/src/cache/operation-index-types.js.map +0 -1
  184. package/dist/src/cache/write/interfaces.js +0 -2
  185. package/dist/src/cache/write/interfaces.js.map +0 -1
  186. package/dist/src/cache/write-cache-types.js +0 -2
  187. package/dist/src/cache/write-cache-types.js.map +0 -1
  188. package/dist/src/client/reactor-client.js +0 -406
  189. package/dist/src/client/reactor-client.js.map +0 -1
  190. package/dist/src/client/types.js +0 -14
  191. package/dist/src/client/types.js.map +0 -1
  192. package/dist/src/core/reactor-builder.js +0 -231
  193. package/dist/src/core/reactor-builder.js.map +0 -1
  194. package/dist/src/core/reactor-client-builder.js +0 -123
  195. package/dist/src/core/reactor-client-builder.js.map +0 -1
  196. package/dist/src/core/reactor.js +0 -981
  197. package/dist/src/core/reactor.js.map +0 -1
  198. package/dist/src/core/types.js +0 -2
  199. package/dist/src/core/types.js.map +0 -1
  200. package/dist/src/core/utils.js +0 -171
  201. package/dist/src/core/utils.js.map +0 -1
  202. package/dist/src/events/event-bus.js +0 -53
  203. package/dist/src/events/event-bus.js.map +0 -1
  204. package/dist/src/events/interfaces.js +0 -2
  205. package/dist/src/events/interfaces.js.map +0 -1
  206. package/dist/src/events/types.js +0 -28
  207. package/dist/src/events/types.js.map +0 -1
  208. package/dist/src/executor/interfaces.js +0 -2
  209. package/dist/src/executor/interfaces.js.map +0 -1
  210. package/dist/src/executor/simple-job-executor-manager.js +0 -233
  211. package/dist/src/executor/simple-job-executor-manager.js.map +0 -1
  212. package/dist/src/executor/simple-job-executor.js +0 -898
  213. package/dist/src/executor/simple-job-executor.js.map +0 -1
  214. package/dist/src/executor/types.js +0 -11
  215. package/dist/src/executor/types.js.map +0 -1
  216. package/dist/src/executor/util.js +0 -184
  217. package/dist/src/executor/util.js.map +0 -1
  218. package/dist/src/index.js.map +0 -1
  219. package/dist/src/job-tracker/in-memory-job-tracker.js +0 -112
  220. package/dist/src/job-tracker/in-memory-job-tracker.js.map +0 -1
  221. package/dist/src/job-tracker/index.js +0 -2
  222. package/dist/src/job-tracker/index.js.map +0 -1
  223. package/dist/src/job-tracker/interfaces.js +0 -2
  224. package/dist/src/job-tracker/interfaces.js.map +0 -1
  225. package/dist/src/logging/console.js +0 -108
  226. package/dist/src/logging/console.js.map +0 -1
  227. package/dist/src/logging/types.js +0 -2
  228. package/dist/src/logging/types.js.map +0 -1
  229. package/dist/src/processors/index.js +0 -2
  230. package/dist/src/processors/index.js.map +0 -1
  231. package/dist/src/processors/processor-manager.js +0 -165
  232. package/dist/src/processors/processor-manager.js.map +0 -1
  233. package/dist/src/processors/types.d.ts +0 -63
  234. package/dist/src/processors/types.d.ts.map +0 -1
  235. package/dist/src/processors/types.js +0 -2
  236. package/dist/src/processors/types.js.map +0 -1
  237. package/dist/src/processors/utils.js +0 -58
  238. package/dist/src/processors/utils.js.map +0 -1
  239. package/dist/src/queue/interfaces.js +0 -2
  240. package/dist/src/queue/interfaces.js.map +0 -1
  241. package/dist/src/queue/job-execution-handle.js +0 -62
  242. package/dist/src/queue/job-execution-handle.js.map +0 -1
  243. package/dist/src/queue/queue.js +0 -384
  244. package/dist/src/queue/queue.js.map +0 -1
  245. package/dist/src/queue/types.js +0 -19
  246. package/dist/src/queue/types.js.map +0 -1
  247. package/dist/src/read-models/base-read-model.js +0 -143
  248. package/dist/src/read-models/base-read-model.js.map +0 -1
  249. package/dist/src/read-models/coordinator.js +0 -72
  250. package/dist/src/read-models/coordinator.js.map +0 -1
  251. package/dist/src/read-models/document-view.js +0 -375
  252. package/dist/src/read-models/document-view.js.map +0 -1
  253. package/dist/src/read-models/interfaces.js +0 -2
  254. package/dist/src/read-models/interfaces.js.map +0 -1
  255. package/dist/src/read-models/types.js +0 -2
  256. package/dist/src/read-models/types.js.map +0 -1
  257. package/dist/src/registry/implementation.js +0 -216
  258. package/dist/src/registry/implementation.js.map +0 -1
  259. package/dist/src/registry/index.js +0 -2
  260. package/dist/src/registry/index.js.map +0 -1
  261. package/dist/src/registry/interfaces.js +0 -2
  262. package/dist/src/registry/interfaces.js.map +0 -1
  263. package/dist/src/shared/awaiter.js +0 -123
  264. package/dist/src/shared/awaiter.js.map +0 -1
  265. package/dist/src/shared/consistency-tracker.js +0 -123
  266. package/dist/src/shared/consistency-tracker.js.map +0 -1
  267. package/dist/src/shared/errors.js +0 -75
  268. package/dist/src/shared/errors.js.map +0 -1
  269. package/dist/src/shared/factories.js +0 -33
  270. package/dist/src/shared/factories.js.map +0 -1
  271. package/dist/src/shared/types.js +0 -38
  272. package/dist/src/shared/types.js.map +0 -1
  273. package/dist/src/shared/utils.js +0 -8
  274. package/dist/src/shared/utils.js.map +0 -1
  275. package/dist/src/signer/passthrough-signer.js +0 -19
  276. package/dist/src/signer/passthrough-signer.js.map +0 -1
  277. package/dist/src/signer/types.js +0 -2
  278. package/dist/src/signer/types.js.map +0 -1
  279. package/dist/src/storage/consistency-aware-legacy-storage.d.ts +0 -33
  280. package/dist/src/storage/consistency-aware-legacy-storage.d.ts.map +0 -1
  281. package/dist/src/storage/consistency-aware-legacy-storage.js +0 -65
  282. package/dist/src/storage/consistency-aware-legacy-storage.js.map +0 -1
  283. package/dist/src/storage/index.js +0 -3
  284. package/dist/src/storage/index.js.map +0 -1
  285. package/dist/src/storage/interfaces.js +0 -19
  286. package/dist/src/storage/interfaces.js.map +0 -1
  287. package/dist/src/storage/kysely/document-indexer.js +0 -350
  288. package/dist/src/storage/kysely/document-indexer.js.map +0 -1
  289. package/dist/src/storage/kysely/keyframe-store.js +0 -64
  290. package/dist/src/storage/kysely/keyframe-store.js.map +0 -1
  291. package/dist/src/storage/kysely/store.js +0 -233
  292. package/dist/src/storage/kysely/store.js.map +0 -1
  293. package/dist/src/storage/kysely/sync-cursor-storage.js +0 -93
  294. package/dist/src/storage/kysely/sync-cursor-storage.js.map +0 -1
  295. package/dist/src/storage/kysely/sync-remote-storage.js +0 -133
  296. package/dist/src/storage/kysely/sync-remote-storage.js.map +0 -1
  297. package/dist/src/storage/kysely/types.js +0 -2
  298. package/dist/src/storage/kysely/types.js.map +0 -1
  299. package/dist/src/storage/migrations/001_create_operation_table.js +0 -41
  300. package/dist/src/storage/migrations/001_create_operation_table.js.map +0 -1
  301. package/dist/src/storage/migrations/002_create_keyframe_table.js +0 -27
  302. package/dist/src/storage/migrations/002_create_keyframe_table.js.map +0 -1
  303. package/dist/src/storage/migrations/003_create_document_table.js +0 -10
  304. package/dist/src/storage/migrations/003_create_document_table.js.map +0 -1
  305. package/dist/src/storage/migrations/004_create_document_relationship_table.js +0 -35
  306. package/dist/src/storage/migrations/004_create_document_relationship_table.js.map +0 -1
  307. package/dist/src/storage/migrations/005_create_indexer_state_table.js +0 -10
  308. package/dist/src/storage/migrations/005_create_indexer_state_table.js.map +0 -1
  309. package/dist/src/storage/migrations/006_create_document_snapshot_table.js +0 -49
  310. package/dist/src/storage/migrations/006_create_document_snapshot_table.js.map +0 -1
  311. package/dist/src/storage/migrations/007_create_slug_mapping_table.js +0 -24
  312. package/dist/src/storage/migrations/007_create_slug_mapping_table.js.map +0 -1
  313. package/dist/src/storage/migrations/008_create_view_state_table.js +0 -10
  314. package/dist/src/storage/migrations/008_create_view_state_table.js.map +0 -1
  315. package/dist/src/storage/migrations/009_create_operation_index_tables.js +0 -50
  316. package/dist/src/storage/migrations/009_create_operation_index_tables.js.map +0 -1
  317. package/dist/src/storage/migrations/010_create_sync_tables.js +0 -43
  318. package/dist/src/storage/migrations/010_create_sync_tables.js.map +0 -1
  319. package/dist/src/storage/migrations/index.js +0 -3
  320. package/dist/src/storage/migrations/index.js.map +0 -1
  321. package/dist/src/storage/migrations/migrator.js +0 -78
  322. package/dist/src/storage/migrations/migrator.js.map +0 -1
  323. package/dist/src/storage/migrations/run-migrations.js +0 -58
  324. package/dist/src/storage/migrations/run-migrations.js.map +0 -1
  325. package/dist/src/storage/migrations/types.js +0 -2
  326. package/dist/src/storage/migrations/types.js.map +0 -1
  327. package/dist/src/storage/txn.js +0 -42
  328. package/dist/src/storage/txn.js.map +0 -1
  329. package/dist/src/subs/default-error-handler.js +0 -27
  330. package/dist/src/subs/default-error-handler.js.map +0 -1
  331. package/dist/src/subs/react-subscription-manager.js +0 -185
  332. package/dist/src/subs/react-subscription-manager.js.map +0 -1
  333. package/dist/src/subs/subscription-notification-read-model.js +0 -62
  334. package/dist/src/subs/subscription-notification-read-model.js.map +0 -1
  335. package/dist/src/subs/types.js +0 -2
  336. package/dist/src/subs/types.js.map +0 -1
  337. package/dist/src/sync/channels/composite-channel-factory.d.ts +0 -30
  338. package/dist/src/sync/channels/composite-channel-factory.d.ts.map +0 -1
  339. package/dist/src/sync/channels/composite-channel-factory.js +0 -87
  340. package/dist/src/sync/channels/composite-channel-factory.js.map +0 -1
  341. package/dist/src/sync/channels/gql-channel-factory.d.ts +0 -25
  342. package/dist/src/sync/channels/gql-channel-factory.d.ts.map +0 -1
  343. package/dist/src/sync/channels/gql-channel-factory.js +0 -76
  344. package/dist/src/sync/channels/gql-channel-factory.js.map +0 -1
  345. package/dist/src/sync/channels/gql-channel.d.ts +0 -118
  346. package/dist/src/sync/channels/gql-channel.d.ts.map +0 -1
  347. package/dist/src/sync/channels/gql-channel.js +0 -423
  348. package/dist/src/sync/channels/gql-channel.js.map +0 -1
  349. package/dist/src/sync/channels/index.js +0 -6
  350. package/dist/src/sync/channels/index.js.map +0 -1
  351. package/dist/src/sync/channels/polling-channel.d.ts +0 -39
  352. package/dist/src/sync/channels/polling-channel.d.ts.map +0 -1
  353. package/dist/src/sync/channels/polling-channel.js +0 -72
  354. package/dist/src/sync/channels/polling-channel.js.map +0 -1
  355. package/dist/src/sync/channels/utils.js +0 -96
  356. package/dist/src/sync/channels/utils.js.map +0 -1
  357. package/dist/src/sync/errors.js +0 -17
  358. package/dist/src/sync/errors.js.map +0 -1
  359. package/dist/src/sync/index.js +0 -9
  360. package/dist/src/sync/index.js.map +0 -1
  361. package/dist/src/sync/interfaces.js +0 -2
  362. package/dist/src/sync/interfaces.js.map +0 -1
  363. package/dist/src/sync/mailbox.js +0 -59
  364. package/dist/src/sync/mailbox.js.map +0 -1
  365. package/dist/src/sync/sync-builder.js +0 -39
  366. package/dist/src/sync/sync-builder.js.map +0 -1
  367. package/dist/src/sync/sync-manager.js +0 -266
  368. package/dist/src/sync/sync-manager.js.map +0 -1
  369. package/dist/src/sync/sync-operation.js +0 -63
  370. package/dist/src/sync/sync-operation.js.map +0 -1
  371. package/dist/src/sync/types.js +0 -16
  372. package/dist/src/sync/types.js.map +0 -1
  373. package/dist/src/sync/utils.js +0 -78
  374. package/dist/src/sync/utils.js.map +0 -1
  375. package/dist/src/utils/reshuffle.js +0 -47
  376. package/dist/src/utils/reshuffle.js.map +0 -1
@@ -1,12 +1,16 @@
1
- export type { IChannel, IChannelFactory, ISyncManager, Remote, } from "./interfaces.js";
1
+ export type { ConnectionStateChangeCallback, 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, ChannelMeta, ConnectionState, ConnectionStateChangedEvent, ConnectionStateSnapshot, DeadLetterAddedEvent, JwtHandler, RemoteCursor, RemoteFilter, RemoteOptions, RemoteRecord, RemoteStatus, SyncEnvelope, SyncEnvelopeType, SyncFailedEvent, SyncOperationErrorType, SyncPendingEvent, SyncResult, SyncResultError, SyncResultStatus, SyncSucceededEvent, } from "./types.js";
4
+ export { ChannelErrorSource, ChannelScheme, SyncEventTypes, SyncOperationStatus, } from "./types.js";
5
+ export { BufferedMailbox } from "./buffered-mailbox.js";
6
+ export { Mailbox, type IMailbox } from "./mailbox.js";
5
7
  export { SyncOperation, SyncOperationAggregateError, } from "./sync-operation.js";
6
- export { Mailbox, type MailboxItem } from "./mailbox.js";
7
8
  export { ChannelError, PollingChannelError } from "./errors.js";
8
- export { PollingChannel, GqlChannelFactory, CompositeChannelFactory, } from "./channels/index.js";
9
- export { SyncManager } from "./sync-manager.js";
9
+ export { GqlRequestChannel, GqlRequestChannelFactory, GqlResponseChannel, GqlResponseChannelFactory, IntervalPollTimer, type GqlChannelConfig, type IPollTimer, } from "./channels/index.js";
10
10
  export { SyncBuilder } from "./sync-builder.js";
11
- export { createIdleHealth, filterOperations } from "./utils.js";
11
+ export { SyncManager } from "./sync-manager.js";
12
+ export { SyncStatus, SyncStatusTracker } from "./sync-status-tracker.js";
13
+ export type { ISyncStatusTracker, SyncStatusChangeCallback, } from "./sync-status-tracker.js";
14
+ export { batchOperationsByDocument, consolidateSyncOperations, createIdleHealth, filterOperations, sortEnvelopesByFirstOperationTimestamp, trimMailboxFromAckOrdinal, } from "./utils.js";
15
+ export type { OperationBatch } from "./utils.js";
12
16
  //# sourceMappingURL=index.d.ts.map
@@ -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,6BAA6B,EAC7B,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,WAAW,EACX,eAAe,EACf,2BAA2B,EAC3B,uBAAuB,EACvB,oBAAoB,EACpB,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,sBAAsB,EACtB,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAEpB,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,EAAE,KAAK,QAAQ,EAAE,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,EACjB,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;AAChD,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AACzE,YAAY,EACV,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,gBAAgB,EAChB,gBAAgB,EAChB,sCAAsC,EACtC,yBAAyB,GAC1B,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,cAAc,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
- import type { SyncOperation } from "./sync-operation.js";
4
- import type { Mailbox } from "./mailbox.js";
5
- import type { ChannelConfig, RemoteFilter, RemoteOptions } from "./types.js";
4
+ import type { IMailbox } from "./mailbox.js";
5
+ import type { SyncStatus, SyncStatusChangeCallback } from "./sync-status-tracker.js";
6
+ import type { ChannelConfig, ConnectionStateSnapshot, RemoteFilter, RemoteOptions, SyncResult } from "./types.js";
6
7
  /**
7
8
  * Represents a bidirectional synchronization channel between two reactor instances.
8
9
  *
@@ -10,29 +11,24 @@ import type { ChannelConfig, RemoteFilter, RemoteOptions } from "./types.js";
10
11
  * - inbox: Sync operations received from the remote that need to be applied locally
11
12
  * - outbox: Sync operations to be sent to the remote
12
13
  * - deadLetter: Sync operations that failed and cannot be retried
13
- *
14
- * Channels are responsible for:
15
- * - Transporting sync envelopes between reactor instances
16
- * - Managing sync operation lifecycle through status transitions
17
- * - Handling errors and moving failed sync operations to dead letter queue
18
- * - Updating cursors as operations are applied
19
14
  */
15
+ export type ConnectionStateChangeCallback = (snapshot: ConnectionStateSnapshot) => void;
20
16
  export interface IChannel {
21
17
  /**
22
18
  * Mailbox containing sync operations received from the remote that need to be applied locally.
23
19
  * Consumers should register callbacks via onAdded to process incoming sync operations.
24
20
  */
25
- inbox: Mailbox<SyncOperation>;
21
+ inbox: IMailbox;
26
22
  /**
27
23
  * Mailbox containing sync operations that need to be sent to the remote.
28
24
  * The channel is responsible for transporting these sync operations and handling ACKs.
29
25
  */
30
- outbox: Mailbox<SyncOperation>;
26
+ outbox: IMailbox;
31
27
  /**
32
28
  * Mailbox containing sync operations that failed and cannot be retried.
33
29
  * These sync operations require manual intervention or should be logged for debugging.
34
30
  */
35
- deadLetter: Mailbox<SyncOperation>;
31
+ deadLetter: IMailbox;
36
32
  /**
37
33
  * Initializes the channel asynchronously.
38
34
  * For remote channels, this typically involves registering the channel on the remote server.
@@ -42,14 +38,16 @@ export interface IChannel {
42
38
  /**
43
39
  * Shuts down the channel and prevents further operations.
44
40
  */
45
- shutdown(): void;
41
+ shutdown(): Promise<void>;
46
42
  /**
47
- * Updates the synchronization cursor for this channel.
48
- * For polling channels, this also removes acknowledged operations from the outbox.
49
- *
50
- * @param cursorOrdinal - The last processed ordinal
43
+ * Returns the current connection state snapshot.
44
+ */
45
+ getConnectionState(): ConnectionStateSnapshot;
46
+ /**
47
+ * Registers a callback that fires when the connection state changes.
48
+ * Returns an unsubscribe function.
51
49
  */
52
- updateCursor(cursorOrdinal: number): Promise<void>;
50
+ onConnectionStateChange(callback: ConnectionStateChangeCallback): () => void;
53
51
  }
54
52
  /**
55
53
  * Factory for creating channel instances.
@@ -67,9 +65,10 @@ export interface IChannelFactory {
67
65
  * @param cursorStorage - Storage for persisting synchronization cursors
68
66
  * @param collectionId - Collection ID to synchronize
69
67
  * @param filter - Filter to apply to operations
68
+ * @param operationIndex - Operation index for querying timestamps
70
69
  * @returns A new channel instance
71
70
  */
72
- instance(remoteId: string, remoteName: string, config: ChannelConfig, cursorStorage: ISyncCursorStorage, collectionId: string, filter: RemoteFilter): IChannel;
71
+ instance(remoteId: string, remoteName: string, config: ChannelConfig, cursorStorage: ISyncCursorStorage, collectionId: string, filter: RemoteFilter, operationIndex: IOperationIndex): IChannel;
73
72
  }
74
73
  /**
75
74
  * Represents a configured remote with an active channel.
@@ -176,5 +175,29 @@ export interface ISyncManager {
176
175
  * @returns Array of all remotes
177
176
  */
178
177
  list(): Remote[];
178
+ /**
179
+ * Waits for sync operations for a job to complete.
180
+ * Resolves when SYNC_SUCCEEDED is emitted.
181
+ * Rejects when SYNC_FAILED is emitted.
182
+ *
183
+ * @param jobId - The job id to wait for
184
+ * @param signal - Optional abort signal
185
+ * @returns The sync result
186
+ */
187
+ waitForSync(jobId: string, signal?: AbortSignal): Promise<SyncResult>;
188
+ /**
189
+ * Gets the current sync status for a document.
190
+ *
191
+ * @param documentId - The document ID to check
192
+ * @returns The sync status, or undefined if the document has never been tracked
193
+ */
194
+ getSyncStatus(documentId: string): SyncStatus | undefined;
195
+ /**
196
+ * Registers a callback that fires when a document's sync status changes.
197
+ *
198
+ * @param callback - Called with (documentId, newStatus) on each transition
199
+ * @returns Unsubscribe function
200
+ */
201
+ onSyncStatusChange(callback: SyncStatusChangeCallback): () => void;
179
202
  }
180
203
  //# 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,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,KAAK,EACV,UAAU,EACV,wBAAwB,EACzB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EACV,aAAa,EACb,uBAAuB,EACvB,YAAY,EACZ,aAAa,EACb,UAAU,EACX,MAAM,YAAY,CAAC;AAEpB;;;;;;;GAOG;AACH,MAAM,MAAM,6BAA6B,GAAG,CAC1C,QAAQ,EAAE,uBAAuB,KAC9B,IAAI,CAAC;AAEV,MAAM,WAAW,QAAQ;IACvB;;;OAGG;IACH,KAAK,EAAE,QAAQ,CAAC;IAEhB;;;OAGG;IACH,MAAM,EAAE,QAAQ,CAAC;IAEjB;;;OAGG;IACH,UAAU,EAAE,QAAQ,CAAC;IAErB;;;;OAIG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtB;;OAEG;IACH,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1B;;OAEG;IACH,kBAAkB,IAAI,uBAAuB,CAAC;IAE9C;;;OAGG;IACH,uBAAuB,CAAC,QAAQ,EAAE,6BAA6B,GAAG,MAAM,IAAI,CAAC;CAC9E;AAED;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;;;;;;;OAWG;IACH,QAAQ,CACN,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,aAAa,EAErB,aAAa,EAAE,kBAAkB,EACjC,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,YAAY,EAEpB,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;IAEtE;;;;;OAKG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IAE1D;;;;;OAKG;IACH,kBAAkB,CAAC,QAAQ,EAAE,wBAAwB,GAAG,MAAM,IAAI,CAAC;CACpE"}
@@ -1,21 +1,60 @@
1
- export type MailboxItem = {
2
- id: string;
3
- };
4
- type MailboxCallback<T extends MailboxItem> = (item: T) => void;
1
+ import type { SyncOperation } from "./sync-operation.js";
2
+ export type MailboxCallback = (items: SyncOperation[]) => void;
3
+ /**
4
+ * The Mailbox interface is not intended to use any persistence. Instead, the
5
+ * IChannel implementation is responsible for persisting cursors or other data.
6
+ *
7
+ * This means that ackOrdinal and latestOrdinal are in memory only.
8
+ */
9
+ export interface IMailbox {
10
+ get items(): ReadonlyArray<SyncOperation>;
11
+ /**
12
+ * The latest ordinal that has been acknowledged. Because acknowledged items
13
+ * are removed from the mailbox, this is the last ordinal that has been removed.
14
+ */
15
+ get ackOrdinal(): number;
16
+ /**
17
+ * The latest ordinal of the items that are or have been added to the mailbox.
18
+ * This may be greater than the ack ordinal if items have been added but not
19
+ * yet acknowledged.
20
+ */
21
+ get latestOrdinal(): number;
22
+ init(ackOrdinal: number): void;
23
+ get(id: string): SyncOperation | undefined;
24
+ add(...items: SyncOperation[]): void;
25
+ remove(...items: SyncOperation[]): void;
26
+ onAdded(callback: MailboxCallback): void;
27
+ onRemoved(callback: MailboxCallback): void;
28
+ pause(): void;
29
+ resume(): void;
30
+ flush(): void;
31
+ isPaused(): boolean;
32
+ }
5
33
  export declare class MailboxAggregateError extends Error {
6
34
  errors: Error[];
7
35
  constructor(errors: Error[]);
8
36
  }
9
- export declare class Mailbox<T extends MailboxItem> {
37
+ export declare class Mailbox implements IMailbox {
10
38
  private itemsMap;
11
39
  private addedCallbacks;
12
40
  private removedCallbacks;
13
- get items(): ReadonlyArray<T>;
14
- get(id: string): T | undefined;
15
- add(item: T): void;
16
- remove(item: T): void;
17
- onAdded(callback: MailboxCallback<T>): void;
18
- onRemoved(callback: MailboxCallback<T>): void;
41
+ private paused;
42
+ private addedBuffer;
43
+ private removedBuffer;
44
+ private _ack;
45
+ private _latestOrdinal;
46
+ init(ackOrdinal: number): void;
47
+ get items(): ReadonlyArray<SyncOperation>;
48
+ get ackOrdinal(): number;
49
+ get latestOrdinal(): number;
50
+ get(id: string): SyncOperation | undefined;
51
+ add(...items: SyncOperation[]): void;
52
+ remove(...items: SyncOperation[]): void;
53
+ onAdded(callback: MailboxCallback): void;
54
+ onRemoved(callback: MailboxCallback): void;
55
+ pause(): void;
56
+ resume(): void;
57
+ flush(): void;
58
+ isPaused(): boolean;
19
59
  }
20
- export {};
21
60
  //# sourceMappingURL=mailbox.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mailbox.d.ts","sourceRoot":"","sources":["../../../src/sync/mailbox.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,KAAK,eAAe,CAAC,CAAC,SAAS,WAAW,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;AAEhE,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,MAAM,EAAE,KAAK,EAAE,CAAC;gBAEJ,MAAM,EAAE,KAAK,EAAE;CAQ5B;AAED,qBAAa,OAAO,CAAC,CAAC,SAAS,WAAW;IACxC,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,gBAAgB,CAA4B;IAEpD,IAAI,KAAK,IAAI,aAAa,CAAC,CAAC,CAAC,CAE5B;IAED,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAI9B,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI;IAgBlB,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI;IAgBrB,OAAO,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI;IAI3C,SAAS,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI;CAG9C"}
1
+ {"version":3,"file":"mailbox.d.ts","sourceRoot":"","sources":["../../../src/sync/mailbox.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGzD,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,IAAI,CAAC;AAE/D;;;;;GAKG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,KAAK,IAAI,aAAa,CAAC,aAAa,CAAC,CAAC;IAE1C;;;OAGG;IACH,IAAI,UAAU,IAAI,MAAM,CAAC;IAEzB;;;;OAIG;IACH,IAAI,aAAa,IAAI,MAAM,CAAC;IAG5B,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAAC;IAC3C,GAAG,CAAC,GAAG,KAAK,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;IACrC,MAAM,CAAC,GAAG,KAAK,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;IAGxC,OAAO,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAC;IACzC,SAAS,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAC;IAG3C,KAAK,IAAI,IAAI,CAAC;IACd,MAAM,IAAI,IAAI,CAAC;IACf,KAAK,IAAI,IAAI,CAAC;IACd,QAAQ,IAAI,OAAO,CAAC;CACrB;AAED,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,MAAM,EAAE,KAAK,EAAE,CAAC;gBAEJ,MAAM,EAAE,KAAK,EAAE;CAQ5B;AAED,qBAAa,OAAQ,YAAW,QAAQ;IACtC,OAAO,CAAC,QAAQ,CAAyC;IACzD,OAAO,CAAC,cAAc,CAAyB;IAC/C,OAAO,CAAC,gBAAgB,CAAyB;IACjD,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,aAAa,CAAuB;IAE5C,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,cAAc,CAAa;IAEnC,IAAI,CAAC,UAAU,EAAE,MAAM;IAIvB,IAAI,KAAK,IAAI,aAAa,CAAC,aAAa,CAAC,CAExC;IAED,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAI1C,GAAG,CAAC,GAAG,KAAK,EAAE,aAAa,EAAE,GAAG,IAAI;IAsCpC,MAAM,CAAC,GAAG,KAAK,EAAE,aAAa,EAAE,GAAG,IAAI;IAwBvC,OAAO,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAIxC,SAAS,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAI1C,KAAK,IAAI,IAAI;IAIb,MAAM,IAAI,IAAI;IAKd,KAAK,IAAI,IAAI;IAsCb,QAAQ,IAAI,OAAO;CAGpB"}
@@ -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"}
@@ -3,16 +3,20 @@ import type { IOperationIndex } from "../cache/operation-index-types.js";
3
3
  import type { IReactor, SyncModule } from "../core/types.js";
4
4
  import type { IEventBus } from "../events/interfaces.js";
5
5
  import type { ILogger } from "../logging/types.js";
6
- import type { ISyncCursorStorage, ISyncRemoteStorage } from "../storage/interfaces.js";
6
+ import type { ISyncCursorStorage, ISyncDeadLetterStorage, ISyncRemoteStorage } from "../storage/interfaces.js";
7
7
  import type { Database } from "../storage/kysely/types.js";
8
8
  import type { IChannelFactory, ISyncManager } from "./interfaces.js";
9
9
  export declare class SyncBuilder {
10
10
  private channelFactory?;
11
11
  private remoteStorage?;
12
12
  private cursorStorage?;
13
+ private deadLetterStorage?;
14
+ private maxDeadLettersPerRemote;
13
15
  withChannelFactory(factory: IChannelFactory): this;
14
16
  withRemoteStorage(storage: ISyncRemoteStorage): this;
15
17
  withCursorStorage(storage: ISyncCursorStorage): this;
18
+ withDeadLetterStorage(storage: ISyncDeadLetterStorage): this;
19
+ withMaxDeadLettersPerRemote(limit: number): this;
16
20
  build(reactor: IReactor, logger: ILogger, operationIndex: IOperationIndex, eventBus: IEventBus, db: Kysely<Database>): ISyncManager;
17
21
  buildModule(reactor: IReactor, logger: ILogger, operationIndex: IOperationIndex, eventBus: IEventBus, db: Kysely<Database>): SyncModule;
18
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sync-builder.d.ts","sourceRoot":"","sources":["../../../src/sync/sync-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGrE,qBAAa,WAAW;IACtB,OAAO,CAAC,cAAc,CAAC,CAAkB;IACzC,OAAO,CAAC,aAAa,CAAC,CAAqB;IAC3C,OAAO,CAAC,aAAa,CAAC,CAAqB;IAE3C,kBAAkB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAKlD,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAKpD,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAKpD,KAAK,CACH,OAAO,EAAE,QAAQ,EACjB,MAAM,EAAE,OAAO,EACf,cAAc,EAAE,eAAe,EAC/B,QAAQ,EAAE,SAAS,EACnB,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,GACnB,YAAY;IAWf,WAAW,CACT,OAAO,EAAE,QAAQ,EACjB,MAAM,EAAE,OAAO,EACf,cAAc,EAAE,eAAe,EAC/B,QAAQ,EAAE,SAAS,EACnB,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,GACnB,UAAU;CAyBd"}
1
+ {"version":3,"file":"sync-builder.d.ts","sourceRoot":"","sources":["../../../src/sync/sync-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EACV,kBAAkB,EAClB,sBAAsB,EACtB,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAIlC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGrE,qBAAa,WAAW;IACtB,OAAO,CAAC,cAAc,CAAC,CAAkB;IACzC,OAAO,CAAC,aAAa,CAAC,CAAqB;IAC3C,OAAO,CAAC,aAAa,CAAC,CAAqB;IAC3C,OAAO,CAAC,iBAAiB,CAAC,CAAyB;IACnD,OAAO,CAAC,uBAAuB,CAAe;IAE9C,kBAAkB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAKlD,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAKpD,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAKpD,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,GAAG,IAAI;IAK5D,2BAA2B,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKhD,KAAK,CACH,OAAO,EAAE,QAAQ,EACjB,MAAM,EAAE,OAAO,EACf,cAAc,EAAE,eAAe,EAC/B,QAAQ,EAAE,SAAS,EACnB,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,GACnB,YAAY;IAWf,WAAW,CACT,OAAO,EAAE,QAAQ,EACjB,MAAM,EAAE,OAAO,EACf,cAAc,EAAE,eAAe,EAC/B,QAAQ,EAAE,SAAS,EACnB,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,GACnB,UAAU;CA8Bd"}
@@ -3,35 +3,49 @@ import type { IReactor } from "../core/types.js";
3
3
  import type { IEventBus } from "../events/interfaces.js";
4
4
  import type { ILogger } from "../logging/types.js";
5
5
  import { type JobInfo, type ShutdownStatus } from "../shared/types.js";
6
- import type { ISyncCursorStorage, ISyncRemoteStorage } from "../storage/interfaces.js";
6
+ import type { ISyncCursorStorage, ISyncDeadLetterStorage, 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 SyncStatus, type SyncStatusChangeCallback } from "./sync-status-tracker.js";
9
+ import type { ChannelConfig, RemoteFilter, RemoteOptions, SyncResult } from "./types.js";
9
10
  export declare class SyncManager implements ISyncManager {
10
11
  private readonly logger;
11
12
  private readonly remoteStorage;
12
13
  private readonly cursorStorage;
14
+ private readonly deadLetterStorage;
13
15
  private readonly channelFactory;
14
- private readonly _operationIndex;
16
+ private readonly operationIndex;
15
17
  private readonly reactor;
16
18
  private readonly eventBus;
17
19
  private readonly remotes;
18
20
  private readonly awaiter;
21
+ private readonly syncAwaiter;
19
22
  private isShutdown;
20
23
  private eventUnsubscribe?;
24
+ private failedEventUnsubscribe?;
25
+ private readonly batchAggregator;
26
+ private readonly syncStatusTracker;
27
+ private readonly maxDeadLettersPerRemote;
28
+ private readonly connectionStateUnsubscribes;
21
29
  loadJobs: Map<string, JobInfo>;
22
- constructor(logger: ILogger, remoteStorage: ISyncRemoteStorage, cursorStorage: ISyncCursorStorage, channelFactory: IChannelFactory, operationIndex: IOperationIndex, reactor: IReactor, eventBus: IEventBus);
30
+ constructor(logger: ILogger, remoteStorage: ISyncRemoteStorage, cursorStorage: ISyncCursorStorage, deadLetterStorage: ISyncDeadLetterStorage, channelFactory: IChannelFactory, operationIndex: IOperationIndex, reactor: IReactor, eventBus: IEventBus, maxDeadLettersPerRemote?: number);
23
31
  startup(): Promise<void>;
24
32
  shutdown(): ShutdownStatus;
25
33
  getByName(name: string): Remote;
26
34
  getById(id: string): Remote;
27
35
  add(name: string, collectionId: string, channelConfig: ChannelConfig, filter?: RemoteFilter, options?: RemoteOptions, id?: string): Promise<Remote>;
28
- private backfillOutbox;
29
36
  remove(name: string): Promise<void>;
30
37
  list(): Remote[];
38
+ waitForSync(jobId: string, signal?: AbortSignal): Promise<SyncResult>;
39
+ getSyncStatus(documentId: string): SyncStatus | undefined;
40
+ onSyncStatusChange(callback: SyncStatusChangeCallback): () => void;
31
41
  private wireChannelCallbacks;
32
- private handleOperationWritten;
33
- private handleInboxJob;
34
- private handleOutboxJob;
42
+ private loadDeadLetters;
43
+ private getRemotesForCollection;
44
+ private processCompleteBatch;
45
+ private handleInboxAdded;
35
46
  private applyInboxJob;
47
+ private applyInboxBatch;
48
+ private updateOutbox;
49
+ private getOperationsForRemote;
36
50
  }
37
51
  //# 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":"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"}
@@ -1,4 +1,4 @@
1
- import type { OperationWithContext } from "../storage/interfaces.js";
1
+ import type { OperationWithContext } from "@powerhousedao/shared/document-model";
2
2
  import type { ChannelError } from "./errors.js";
3
3
  import { SyncOperationStatus } from "./types.js";
4
4
  type SyncOperationStatusCallback = (syncOp: SyncOperation, prev: SyncOperationStatus, next: SyncOperationStatus) => void;
@@ -8,6 +8,8 @@ export declare class SyncOperationAggregateError extends Error {
8
8
  }
9
9
  export declare class SyncOperation {
10
10
  readonly id: string;
11
+ readonly jobId: string;
12
+ jobDependencies: string[];
11
13
  readonly remoteName: string;
12
14
  readonly documentId: string;
13
15
  readonly scopes: string[];
@@ -16,7 +18,7 @@ export declare class SyncOperation {
16
18
  status: SyncOperationStatus;
17
19
  error?: ChannelError;
18
20
  private callbacks;
19
- constructor(id: string, remoteName: string, documentId: string, scopes: string[], branch: string, operations: OperationWithContext[]);
21
+ constructor(id: string, jobId: string, jobDependencies: string[], remoteName: string, documentId: string, scopes: string[], branch: string, operations: OperationWithContext[]);
20
22
  on(callback: SyncOperationStatusCallback): void;
21
23
  started(): void;
22
24
  transported(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"sync-operation.d.ts","sourceRoot":"","sources":["../../../src/sync/sync-operation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,KAAK,2BAA2B,GAAG,CACjC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,mBAAmB,EACzB,IAAI,EAAE,mBAAmB,KACtB,IAAI,CAAC;AAEV,qBAAa,2BAA4B,SAAQ,KAAK;IACpD,MAAM,EAAE,KAAK,EAAE,CAAC;gBAEJ,MAAM,EAAE,KAAK,EAAE;CAQ5B;AAED,qBAAa,aAAa;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,oBAAoB,EAAE,CAAC;IAC5C,MAAM,EAAE,mBAAmB,CAAC;IAC5B,KAAK,CAAC,EAAE,YAAY,CAAC;IAErB,OAAO,CAAC,SAAS,CAAqC;gBAGpD,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EAAE,EAChB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,oBAAoB,EAAE;IAWpC,EAAE,CAAC,QAAQ,EAAE,2BAA2B,GAAG,IAAI;IAI/C,OAAO,IAAI,IAAI;IAIf,WAAW,IAAI,IAAI;IAInB,QAAQ,IAAI,IAAI;IAIhB,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAKjC,OAAO,CAAC,UAAU;CAenB"}
1
+ {"version":3,"file":"sync-operation.d.ts","sourceRoot":"","sources":["../../../src/sync/sync-operation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,KAAK,2BAA2B,GAAG,CACjC,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,mBAAmB,EACzB,IAAI,EAAE,mBAAmB,KACtB,IAAI,CAAC;AAEV,qBAAa,2BAA4B,SAAQ,KAAK;IACpD,MAAM,EAAE,KAAK,EAAE,CAAC;gBAEJ,MAAM,EAAE,KAAK,EAAE;CAQ5B;AAED,qBAAa,aAAa;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,oBAAoB,EAAE,CAAC;IAC5C,MAAM,EAAE,mBAAmB,CAAC;IAC5B,KAAK,CAAC,EAAE,YAAY,CAAC;IAErB,OAAO,CAAC,SAAS,CAAqC;gBAGpD,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,EACb,eAAe,EAAE,MAAM,EAAE,EACzB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EAAE,EAChB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,oBAAoB,EAAE;IAapC,EAAE,CAAC,QAAQ,EAAE,2BAA2B,GAAG,IAAI;IAI/C,OAAO,IAAI,IAAI;IAIf,WAAW,IAAI,IAAI;IAInB,QAAQ,IAAI,IAAI;IAIhB,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAKjC,OAAO,CAAC,UAAU;CAkBnB"}
@@ -0,0 +1,31 @@
1
+ import type { IChannel } from "./interfaces.js";
2
+ export declare enum SyncStatus {
3
+ Synced = "SYNCED",
4
+ Outgoing = "OUTGOING",
5
+ Incoming = "INCOMING",
6
+ OutgoingAndIncoming = "OUTGOING_AND_INCOMING",
7
+ Error = "ERROR"
8
+ }
9
+ export type SyncStatusChangeCallback = (documentId: string, status: SyncStatus) => void;
10
+ export interface ISyncStatusTracker {
11
+ getStatus(documentId: string): SyncStatus | undefined;
12
+ onChange(callback: SyncStatusChangeCallback): () => void;
13
+ trackRemote(remoteName: string, channel: IChannel): void;
14
+ untrackRemote(remoteName: string): void;
15
+ clear(): void;
16
+ }
17
+ export declare class SyncStatusTracker implements ISyncStatusTracker {
18
+ private readonly remotes;
19
+ private readonly seen;
20
+ private readonly callbacks;
21
+ getStatus(documentId: string): SyncStatus | undefined;
22
+ onChange(callback: SyncStatusChangeCallback): () => void;
23
+ trackRemote(remoteName: string, channel: IChannel): void;
24
+ untrackRemote(remoteName: string): void;
25
+ clear(): void;
26
+ private handleAdded;
27
+ private handleRemoved;
28
+ private getOrCreateCounts;
29
+ private notifyChange;
30
+ }
31
+ //# sourceMappingURL=sync-status-tracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-status-tracker.d.ts","sourceRoot":"","sources":["../../../src/sync/sync-status-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAGhD,oBAAY,UAAU;IACpB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,mBAAmB,0BAA0B;IAC7C,KAAK,UAAU;CAChB;AAED,MAAM,MAAM,wBAAwB,GAAG,CACrC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,UAAU,KACf,IAAI,CAAC;AAEV,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IACtD,QAAQ,CAAC,QAAQ,EAAE,wBAAwB,GAAG,MAAM,IAAI,CAAC;IACzD,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,IAAI,CAAC;IACzD,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,KAAK,IAAI,IAAI,CAAC;CACf;AAUD,qBAAa,iBAAkB,YAAW,kBAAkB;IAC1D,OAAO,CAAC,QAAQ,CAAC,OAAO,CACZ;IACZ,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA0B;IAC/C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4C;IAEtE,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAqBrD,QAAQ,CAAC,QAAQ,EAAE,wBAAwB,GAAG,MAAM,IAAI;IAOxD,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,IAAI;IAoBxD,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAcvC,KAAK,IAAI,IAAI;IAMb,OAAO,CAAC,WAAW;IA+BnB,OAAO,CAAC,aAAa;IAwBrB,OAAO,CAAC,iBAAiB;IAmBzB,OAAO,CAAC,YAAY;CAUrB"}
@@ -1,5 +1,17 @@
1
- import type { OperationWithContext } from "../storage/interfaces.js";
2
- export type RemoteOptions = {};
1
+ import type { OperationWithContext } from "@powerhousedao/shared/document-model";
2
+ export declare enum ChannelScheme {
3
+ CONNECT = "connect",
4
+ SWITCHBOARD = "switchboard"
5
+ }
6
+ /**
7
+ * Dynamic JWT token handler for generating authentication tokens per-request.
8
+ * Called with the target URL to enable audience-specific tokens (aud claim).
9
+ * Returns undefined if no authentication is available (e.g., user not logged in).
10
+ */
11
+ export type JwtHandler = (url: string) => Promise<string | undefined>;
12
+ export type RemoteOptions = {
13
+ sinceTimestampUtcMs: string;
14
+ };
3
15
  export type RemoteFilter = {
4
16
  documentId: string[];
5
17
  scope: string[];
@@ -7,6 +19,7 @@ export type RemoteFilter = {
7
19
  };
8
20
  export type RemoteCursor = {
9
21
  remoteName: string;
22
+ cursorType: string;
10
23
  cursorOrdinal: number;
11
24
  lastSyncedAtUtcMs?: number;
12
25
  };
@@ -19,6 +32,8 @@ export type SyncEnvelope = {
19
32
  channelMeta: ChannelMeta;
20
33
  operations?: OperationWithContext[];
21
34
  cursor?: RemoteCursor;
35
+ key?: string;
36
+ dependsOn?: string[];
22
37
  };
23
38
  export declare enum SyncOperationStatus {
24
39
  Unknown = -1,
@@ -40,6 +55,22 @@ export type ChannelHealth = {
40
55
  lastFailureUtcMs?: number;
41
56
  failureCount: number;
42
57
  };
58
+ export type ConnectionState = "connecting" | "connected" | "disconnected" | "reconnecting" | "error";
59
+ export type ConnectionStateSnapshot = {
60
+ state: ConnectionState;
61
+ failureCount: number;
62
+ lastSuccessUtcMs: number;
63
+ lastFailureUtcMs: number;
64
+ pushBlocked: boolean;
65
+ pushFailureCount: number;
66
+ };
67
+ export type ConnectionStateChangedEvent = {
68
+ remoteName: string;
69
+ remoteId: string;
70
+ previous: ConnectionState;
71
+ current: ConnectionState;
72
+ snapshot: ConnectionStateSnapshot;
73
+ };
43
74
  export type RemoteStatus = {
44
75
  push: ChannelHealth;
45
76
  pull: ChannelHealth;
@@ -57,4 +88,78 @@ export type RemoteRecord = {
57
88
  options: RemoteOptions;
58
89
  status: RemoteStatus;
59
90
  };
91
+ /**
92
+ * Event types for sync lifecycle events.
93
+ * These events track the sync progress of a job's operations to remotes.
94
+ * Uses a separate namespace (20000 range) from ReactorEventTypes (10000 range).
95
+ */
96
+ export declare const SyncEventTypes: {
97
+ readonly SYNC_PENDING: 20001;
98
+ readonly SYNC_SUCCEEDED: 20002;
99
+ readonly SYNC_FAILED: 20003;
100
+ readonly DEAD_LETTER_ADDED: 20004;
101
+ readonly CONNECTION_STATE_CHANGED: 20005;
102
+ };
103
+ /**
104
+ * Event emitted when all SyncOperations for a job are queued in outboxes.
105
+ */
106
+ export type SyncPendingEvent = {
107
+ jobId: string;
108
+ syncOperationCount: number;
109
+ remoteNames: string[];
110
+ };
111
+ /**
112
+ * Event emitted when all sync operations for a job succeed.
113
+ */
114
+ export type SyncSucceededEvent = {
115
+ jobId: string;
116
+ syncOperationCount: number;
117
+ };
118
+ /**
119
+ * Event emitted when at least one sync operation for a job fails.
120
+ */
121
+ export type SyncFailedEvent = {
122
+ jobId: string;
123
+ successCount: number;
124
+ failureCount: number;
125
+ errors: Array<{
126
+ remoteName: string;
127
+ documentId: string;
128
+ error: string;
129
+ }>;
130
+ };
131
+ /**
132
+ * Event emitted when a sync operation is moved to dead letter storage.
133
+ */
134
+ export type DeadLetterAddedEvent = {
135
+ id: string;
136
+ jobId: string;
137
+ remoteName: string;
138
+ documentId: string;
139
+ errorSource: ChannelErrorSource;
140
+ };
141
+ /**
142
+ * Status of a sync operation result.
143
+ */
144
+ export type SyncResultStatus = "succeeded" | "failed";
145
+ /**
146
+ * Error information for a failed sync operation to a specific remote.
147
+ */
148
+ export type SyncResultError = {
149
+ remoteName: string;
150
+ documentId: string;
151
+ error: string;
152
+ };
153
+ /**
154
+ * Result of waiting for sync operations to complete for a job.
155
+ * Returned by ISyncManager.waitForSync().
156
+ */
157
+ export type SyncResult = {
158
+ jobId: string;
159
+ status: SyncResultStatus;
160
+ syncOperationCount: number;
161
+ successCount: number;
162
+ failureCount: number;
163
+ errors: SyncResultError[];
164
+ };
60
165
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/sync/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGrE,MAAM,MAAM,aAAa,GAAG,EAE3B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG,KAAK,CAAC;AAEpD,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,gBAAgB,CAAC;IACvB,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACpC,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB,CAAC;AAEF,oBAAY,mBAAmB;IAC7B,OAAO,KAAK;IACZ,gBAAgB,IAAI;IACpB,gBAAgB,IAAI;IACpB,OAAO,IAAI;IACX,KAAK,IAAI;CACV;AAED,oBAAY,kBAAkB;IAC5B,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,MAAM,WAAW;CAClB;AAED,MAAM,MAAM,sBAAsB,GAC9B,mBAAmB,GACnB,eAAe,GACf,eAAe,GACf,oBAAoB,GACpB,mBAAmB,GACnB,gBAAgB,CAAC;AAErB,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IACpC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,aAAa,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,aAAa,CAAC;IAC7B,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,YAAY,CAAC;CACtB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/sync/types.ts"],"names":[],"mappings":"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"}