@powerhousedao/reactor 6.0.0-dev.105 → 6.0.0-dev.107

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 (242) hide show
  1. package/dist/index.d.ts +4306 -0
  2. package/dist/index.d.ts.map +1 -0
  3. package/dist/index.js +9433 -0
  4. package/dist/index.js.map +1 -0
  5. package/package.json +16 -18
  6. package/dist/src/actions/index.d.ts +0 -24
  7. package/dist/src/actions/index.d.ts.map +0 -1
  8. package/dist/src/admin/document-integrity-service.d.ts +0 -17
  9. package/dist/src/admin/document-integrity-service.d.ts.map +0 -1
  10. package/dist/src/admin/types.d.ts +0 -30
  11. package/dist/src/admin/types.d.ts.map +0 -1
  12. package/dist/src/cache/buffer/ring-buffer.d.ts +0 -37
  13. package/dist/src/cache/buffer/ring-buffer.d.ts.map +0 -1
  14. package/dist/src/cache/collection-membership-cache.d.ts +0 -14
  15. package/dist/src/cache/collection-membership-cache.d.ts.map +0 -1
  16. package/dist/src/cache/document-meta-cache-types.d.ts +0 -114
  17. package/dist/src/cache/document-meta-cache-types.d.ts.map +0 -1
  18. package/dist/src/cache/document-meta-cache.d.ts +0 -31
  19. package/dist/src/cache/document-meta-cache.d.ts.map +0 -1
  20. package/dist/src/cache/index.d.ts +0 -3
  21. package/dist/src/cache/index.d.ts.map +0 -1
  22. package/dist/src/cache/kysely-operation-index.d.ts +0 -24
  23. package/dist/src/cache/kysely-operation-index.d.ts.map +0 -1
  24. package/dist/src/cache/kysely-write-cache.d.ts +0 -142
  25. package/dist/src/cache/kysely-write-cache.d.ts.map +0 -1
  26. package/dist/src/cache/lru/lru-tracker.d.ts +0 -15
  27. package/dist/src/cache/lru/lru-tracker.d.ts.map +0 -1
  28. package/dist/src/cache/operation-index-types.d.ts +0 -64
  29. package/dist/src/cache/operation-index-types.d.ts.map +0 -1
  30. package/dist/src/cache/write/interfaces.d.ts +0 -88
  31. package/dist/src/cache/write/interfaces.d.ts.map +0 -1
  32. package/dist/src/cache/write-cache-types.d.ts +0 -42
  33. package/dist/src/cache/write-cache-types.d.ts.map +0 -1
  34. package/dist/src/client/reactor-client.d.ts +0 -121
  35. package/dist/src/client/reactor-client.d.ts.map +0 -1
  36. package/dist/src/client/types.d.ts +0 -260
  37. package/dist/src/client/types.d.ts.map +0 -1
  38. package/dist/src/core/reactor-builder.d.ts +0 -60
  39. package/dist/src/core/reactor-builder.d.ts.map +0 -1
  40. package/dist/src/core/reactor-client-builder.d.ts +0 -53
  41. package/dist/src/core/reactor-client-builder.d.ts.map +0 -1
  42. package/dist/src/core/reactor.d.ts +0 -56
  43. package/dist/src/core/reactor.d.ts.map +0 -1
  44. package/dist/src/core/types.d.ts +0 -312
  45. package/dist/src/core/types.d.ts.map +0 -1
  46. package/dist/src/core/utils.d.ts +0 -95
  47. package/dist/src/core/utils.d.ts.map +0 -1
  48. package/dist/src/events/event-bus.d.ts +0 -8
  49. package/dist/src/events/event-bus.d.ts.map +0 -1
  50. package/dist/src/events/interfaces.d.ts +0 -27
  51. package/dist/src/events/interfaces.d.ts.map +0 -1
  52. package/dist/src/events/types.d.ts +0 -92
  53. package/dist/src/events/types.d.ts.map +0 -1
  54. package/dist/src/executor/document-action-handler.d.ts +0 -30
  55. package/dist/src/executor/document-action-handler.d.ts.map +0 -1
  56. package/dist/src/executor/execution-scope.d.ts +0 -44
  57. package/dist/src/executor/execution-scope.d.ts.map +0 -1
  58. package/dist/src/executor/interfaces.d.ts +0 -49
  59. package/dist/src/executor/interfaces.d.ts.map +0 -1
  60. package/dist/src/executor/signature-verifier.d.ts +0 -9
  61. package/dist/src/executor/signature-verifier.d.ts.map +0 -1
  62. package/dist/src/executor/simple-job-executor-manager.d.ts +0 -40
  63. package/dist/src/executor/simple-job-executor-manager.d.ts.map +0 -1
  64. package/dist/src/executor/simple-job-executor.d.ts +0 -42
  65. package/dist/src/executor/simple-job-executor.d.ts.map +0 -1
  66. package/dist/src/executor/types.d.ts +0 -91
  67. package/dist/src/executor/types.d.ts.map +0 -1
  68. package/dist/src/executor/util.d.ts +0 -84
  69. package/dist/src/executor/util.d.ts.map +0 -1
  70. package/dist/src/index.d.ts +0 -56
  71. package/dist/src/index.d.ts.map +0 -1
  72. package/dist/src/index.js +0 -20714
  73. package/dist/src/job-tracker/in-memory-job-tracker.d.ts +0 -26
  74. package/dist/src/job-tracker/in-memory-job-tracker.d.ts.map +0 -1
  75. package/dist/src/job-tracker/index.d.ts +0 -3
  76. package/dist/src/job-tracker/index.d.ts.map +0 -1
  77. package/dist/src/job-tracker/interfaces.d.ts +0 -41
  78. package/dist/src/job-tracker/interfaces.d.ts.map +0 -1
  79. package/dist/src/logging/console.d.ts +0 -2
  80. package/dist/src/logging/console.d.ts.map +0 -1
  81. package/dist/src/logging/types.d.ts +0 -2
  82. package/dist/src/logging/types.d.ts.map +0 -1
  83. package/dist/src/processors/index.d.ts +0 -2
  84. package/dist/src/processors/index.d.ts.map +0 -1
  85. package/dist/src/processors/processor-manager.d.ts +0 -51
  86. package/dist/src/processors/processor-manager.d.ts.map +0 -1
  87. package/dist/src/processors/utils.d.ts +0 -11
  88. package/dist/src/processors/utils.d.ts.map +0 -1
  89. package/dist/src/queue/interfaces.d.ts +0 -103
  90. package/dist/src/queue/interfaces.d.ts.map +0 -1
  91. package/dist/src/queue/job-execution-handle.d.ts +0 -28
  92. package/dist/src/queue/job-execution-handle.d.ts.map +0 -1
  93. package/dist/src/queue/queue.d.ts +0 -110
  94. package/dist/src/queue/queue.d.ts.map +0 -1
  95. package/dist/src/queue/types.d.ts +0 -74
  96. package/dist/src/queue/types.d.ts.map +0 -1
  97. package/dist/src/read-models/base-read-model.d.ts +0 -62
  98. package/dist/src/read-models/base-read-model.d.ts.map +0 -1
  99. package/dist/src/read-models/coordinator.d.ts +0 -39
  100. package/dist/src/read-models/coordinator.d.ts.map +0 -1
  101. package/dist/src/read-models/document-view.d.ts +0 -27
  102. package/dist/src/read-models/document-view.d.ts.map +0 -1
  103. package/dist/src/read-models/interfaces.d.ts +0 -29
  104. package/dist/src/read-models/interfaces.d.ts.map +0 -1
  105. package/dist/src/read-models/types.d.ts +0 -63
  106. package/dist/src/read-models/types.d.ts.map +0 -1
  107. package/dist/src/registry/document-model-resolver.d.ts +0 -29
  108. package/dist/src/registry/document-model-resolver.d.ts.map +0 -1
  109. package/dist/src/registry/implementation.d.ts +0 -74
  110. package/dist/src/registry/implementation.d.ts.map +0 -1
  111. package/dist/src/registry/index.d.ts +0 -5
  112. package/dist/src/registry/index.d.ts.map +0 -1
  113. package/dist/src/registry/interfaces.d.ts +0 -108
  114. package/dist/src/registry/interfaces.d.ts.map +0 -1
  115. package/dist/src/shared/awaiter.d.ts +0 -35
  116. package/dist/src/shared/awaiter.d.ts.map +0 -1
  117. package/dist/src/shared/collect-all-pages.d.ts +0 -7
  118. package/dist/src/shared/collect-all-pages.d.ts.map +0 -1
  119. package/dist/src/shared/consistency-tracker.d.ts +0 -48
  120. package/dist/src/shared/consistency-tracker.d.ts.map +0 -1
  121. package/dist/src/shared/drive-url.d.ts +0 -15
  122. package/dist/src/shared/drive-url.d.ts.map +0 -1
  123. package/dist/src/shared/errors.d.ts +0 -50
  124. package/dist/src/shared/errors.d.ts.map +0 -1
  125. package/dist/src/shared/factories.d.ts +0 -20
  126. package/dist/src/shared/factories.d.ts.map +0 -1
  127. package/dist/src/shared/types.d.ts +0 -161
  128. package/dist/src/shared/types.d.ts.map +0 -1
  129. package/dist/src/shared/utils.d.ts +0 -3
  130. package/dist/src/shared/utils.d.ts.map +0 -1
  131. package/dist/src/signer/passthrough-signer.d.ts +0 -12
  132. package/dist/src/signer/passthrough-signer.d.ts.map +0 -1
  133. package/dist/src/signer/types.d.ts +0 -17
  134. package/dist/src/signer/types.d.ts.map +0 -1
  135. package/dist/src/storage/index.d.ts +0 -4
  136. package/dist/src/storage/index.d.ts.map +0 -1
  137. package/dist/src/storage/interfaces.d.ts +0 -574
  138. package/dist/src/storage/interfaces.d.ts.map +0 -1
  139. package/dist/src/storage/kysely/document-indexer.d.ts +0 -27
  140. package/dist/src/storage/kysely/document-indexer.d.ts.map +0 -1
  141. package/dist/src/storage/kysely/keyframe-store.d.ts +0 -24
  142. package/dist/src/storage/kysely/keyframe-store.d.ts.map +0 -1
  143. package/dist/src/storage/kysely/store.d.ts +0 -21
  144. package/dist/src/storage/kysely/store.d.ts.map +0 -1
  145. package/dist/src/storage/kysely/sync-cursor-storage.d.ts +0 -13
  146. package/dist/src/storage/kysely/sync-cursor-storage.d.ts.map +0 -1
  147. package/dist/src/storage/kysely/sync-dead-letter-storage.d.ts +0 -18
  148. package/dist/src/storage/kysely/sync-dead-letter-storage.d.ts.map +0 -1
  149. package/dist/src/storage/kysely/sync-remote-storage.d.ts +0 -13
  150. package/dist/src/storage/kysely/sync-remote-storage.d.ts.map +0 -1
  151. package/dist/src/storage/kysely/types.d.ts +0 -157
  152. package/dist/src/storage/kysely/types.d.ts.map +0 -1
  153. package/dist/src/storage/migrations/001_create_operation_table.d.ts +0 -3
  154. package/dist/src/storage/migrations/001_create_operation_table.d.ts.map +0 -1
  155. package/dist/src/storage/migrations/002_create_keyframe_table.d.ts +0 -3
  156. package/dist/src/storage/migrations/002_create_keyframe_table.d.ts.map +0 -1
  157. package/dist/src/storage/migrations/003_create_document_table.d.ts +0 -3
  158. package/dist/src/storage/migrations/003_create_document_table.d.ts.map +0 -1
  159. package/dist/src/storage/migrations/004_create_document_relationship_table.d.ts +0 -3
  160. package/dist/src/storage/migrations/004_create_document_relationship_table.d.ts.map +0 -1
  161. package/dist/src/storage/migrations/005_create_indexer_state_table.d.ts +0 -3
  162. package/dist/src/storage/migrations/005_create_indexer_state_table.d.ts.map +0 -1
  163. package/dist/src/storage/migrations/006_create_document_snapshot_table.d.ts +0 -3
  164. package/dist/src/storage/migrations/006_create_document_snapshot_table.d.ts.map +0 -1
  165. package/dist/src/storage/migrations/007_create_slug_mapping_table.d.ts +0 -3
  166. package/dist/src/storage/migrations/007_create_slug_mapping_table.d.ts.map +0 -1
  167. package/dist/src/storage/migrations/008_create_view_state_table.d.ts +0 -3
  168. package/dist/src/storage/migrations/008_create_view_state_table.d.ts.map +0 -1
  169. package/dist/src/storage/migrations/009_create_operation_index_tables.d.ts +0 -3
  170. package/dist/src/storage/migrations/009_create_operation_index_tables.d.ts.map +0 -1
  171. package/dist/src/storage/migrations/010_create_sync_tables.d.ts +0 -3
  172. package/dist/src/storage/migrations/010_create_sync_tables.d.ts.map +0 -1
  173. package/dist/src/storage/migrations/011_add_cursor_type_column.d.ts +0 -3
  174. package/dist/src/storage/migrations/011_add_cursor_type_column.d.ts.map +0 -1
  175. package/dist/src/storage/migrations/012_add_source_remote_column.d.ts +0 -3
  176. package/dist/src/storage/migrations/012_add_source_remote_column.d.ts.map +0 -1
  177. package/dist/src/storage/migrations/013_create_sync_dead_letters_table.d.ts +0 -3
  178. package/dist/src/storage/migrations/013_create_sync_dead_letters_table.d.ts.map +0 -1
  179. package/dist/src/storage/migrations/014_create_processor_cursor_table.d.ts +0 -3
  180. package/dist/src/storage/migrations/014_create_processor_cursor_table.d.ts.map +0 -1
  181. package/dist/src/storage/migrations/index.d.ts +0 -3
  182. package/dist/src/storage/migrations/index.d.ts.map +0 -1
  183. package/dist/src/storage/migrations/migrator.d.ts +0 -6
  184. package/dist/src/storage/migrations/migrator.d.ts.map +0 -1
  185. package/dist/src/storage/migrations/run-migrations.d.ts +0 -2
  186. package/dist/src/storage/migrations/run-migrations.d.ts.map +0 -1
  187. package/dist/src/storage/migrations/types.d.ts +0 -9
  188. package/dist/src/storage/migrations/types.d.ts.map +0 -1
  189. package/dist/src/storage/txn.d.ts +0 -15
  190. package/dist/src/storage/txn.d.ts.map +0 -1
  191. package/dist/src/subs/default-error-handler.d.ts +0 -13
  192. package/dist/src/subs/default-error-handler.d.ts.map +0 -1
  193. package/dist/src/subs/react-subscription-manager.d.ts +0 -45
  194. package/dist/src/subs/react-subscription-manager.d.ts.map +0 -1
  195. package/dist/src/subs/subscription-notification-read-model.d.ts +0 -18
  196. package/dist/src/subs/subscription-notification-read-model.d.ts.map +0 -1
  197. package/dist/src/subs/types.d.ts +0 -64
  198. package/dist/src/subs/types.d.ts.map +0 -1
  199. package/dist/src/sync/batch-aggregator.d.ts +0 -25
  200. package/dist/src/sync/batch-aggregator.d.ts.map +0 -1
  201. package/dist/src/sync/buffered-mailbox.d.ts +0 -37
  202. package/dist/src/sync/buffered-mailbox.d.ts.map +0 -1
  203. package/dist/src/sync/channels/gql-req-channel.d.ts +0 -133
  204. package/dist/src/sync/channels/gql-req-channel.d.ts.map +0 -1
  205. package/dist/src/sync/channels/gql-request-channel-factory.d.ts +0 -32
  206. package/dist/src/sync/channels/gql-request-channel-factory.d.ts.map +0 -1
  207. package/dist/src/sync/channels/gql-res-channel.d.ts +0 -31
  208. package/dist/src/sync/channels/gql-res-channel.d.ts.map +0 -1
  209. package/dist/src/sync/channels/gql-response-channel-factory.d.ts +0 -13
  210. package/dist/src/sync/channels/gql-response-channel-factory.d.ts.map +0 -1
  211. package/dist/src/sync/channels/index.d.ts +0 -8
  212. package/dist/src/sync/channels/index.d.ts.map +0 -1
  213. package/dist/src/sync/channels/interval-poll-timer.d.ts +0 -40
  214. package/dist/src/sync/channels/interval-poll-timer.d.ts.map +0 -1
  215. package/dist/src/sync/channels/poll-timer.d.ts +0 -14
  216. package/dist/src/sync/channels/poll-timer.d.ts.map +0 -1
  217. package/dist/src/sync/channels/utils.d.ts +0 -44
  218. package/dist/src/sync/channels/utils.d.ts.map +0 -1
  219. package/dist/src/sync/errors.d.ts +0 -16
  220. package/dist/src/sync/errors.d.ts.map +0 -1
  221. package/dist/src/sync/index.d.ts +0 -16
  222. package/dist/src/sync/index.d.ts.map +0 -1
  223. package/dist/src/sync/interfaces.d.ts +0 -203
  224. package/dist/src/sync/interfaces.d.ts.map +0 -1
  225. package/dist/src/sync/mailbox.d.ts +0 -62
  226. package/dist/src/sync/mailbox.d.ts.map +0 -1
  227. package/dist/src/sync/sync-awaiter.d.ts +0 -34
  228. package/dist/src/sync/sync-awaiter.d.ts.map +0 -1
  229. package/dist/src/sync/sync-builder.d.ts +0 -23
  230. package/dist/src/sync/sync-builder.d.ts.map +0 -1
  231. package/dist/src/sync/sync-manager.d.ts +0 -51
  232. package/dist/src/sync/sync-manager.d.ts.map +0 -1
  233. package/dist/src/sync/sync-operation.d.ts +0 -30
  234. package/dist/src/sync/sync-operation.d.ts.map +0 -1
  235. package/dist/src/sync/sync-status-tracker.d.ts +0 -31
  236. package/dist/src/sync/sync-status-tracker.d.ts.map +0 -1
  237. package/dist/src/sync/types.d.ts +0 -165
  238. package/dist/src/sync/types.d.ts.map +0 -1
  239. package/dist/src/sync/utils.d.ts +0 -71
  240. package/dist/src/sync/utils.d.ts.map +0 -1
  241. package/dist/src/utils/reshuffle.d.ts +0 -47
  242. package/dist/src/utils/reshuffle.d.ts.map +0 -1
@@ -1,71 +0,0 @@
1
- import type { OperationWithContext } from "@powerhousedao/shared/document-model";
2
- import { type OperationIndexEntry } from "../cache/operation-index-types.js";
3
- import type { JobWriteReadyEvent } from "../events/types.js";
4
- import type { PreparedBatch } from "./batch-aggregator.js";
5
- import type { IMailbox } from "./mailbox.js";
6
- import { SyncOperation } from "./sync-operation.js";
7
- import { type ChannelHealth, type RemoteFilter } from "./types.js";
8
- export type OperationBatch = {
9
- documentId: string;
10
- branch: string;
11
- scope: string;
12
- operations: OperationWithContext[];
13
- };
14
- /**
15
- * Trims a mailbox using the jobIds from a batch.
16
- */
17
- export declare function trimMailboxFromBatch(mailbox: IMailbox, batch: PreparedBatch): void;
18
- /**
19
- * Trims a mailbox using the ack ordinal.
20
- */
21
- export declare function trimMailboxFromAckOrdinal(mailbox: IMailbox, ackOrdinal: number): void;
22
- /**
23
- * Filters operations based on a remote's filter criteria.
24
- *
25
- * @param operations - The operations to filter
26
- * @param filter - The filter criteria to apply
27
- * @returns The filtered operations that match the criteria
28
- */
29
- export declare function filterOperations(operations: OperationWithContext[], filter: RemoteFilter): OperationWithContext[];
30
- /**
31
- * Creates an idle channel health status.
32
- *
33
- * @returns A new idle channel health object
34
- */
35
- export declare function createIdleHealth(): ChannelHealth;
36
- /**
37
- * Batches consecutive operations by documentId and scope, preserving ordering.
38
- *
39
- * For operations [a1_doc, a1_global, a2_doc, b1_global], this returns:
40
- * - Batch 1: [a1_doc] for doc-a, document scope
41
- * - Batch 2: [a1_global] for doc-a, global scope
42
- * - Batch 3: [a2_doc] for doc-a, document scope
43
- * - Batch 4: [b1_global] for doc-b, global scope
44
- *
45
- * This ensures operations are grouped for efficient processing while maintaining
46
- * causality across documents and scopes.
47
- */
48
- /**
49
- * Sorts envelopes by the timestamp of their first operation.
50
- * Envelopes without operations are placed at the end.
51
- */
52
- export declare function sortEnvelopesByFirstOperationTimestamp<T extends {
53
- operations?: ReadonlyArray<{
54
- operation: {
55
- timestampUtcMs: string;
56
- };
57
- }> | null | undefined;
58
- }>(envelopes: T[]): T[];
59
- export declare function batchOperationsByDocument(operations: OperationWithContext[]): OperationBatch[];
60
- export declare function getMaxOrdinal(operations: OperationWithContext[]): number;
61
- export declare function filterByCollectionMembership(operations: OperationWithContext[], collectionId: string, collectionMemberships?: Record<string, string[]>): OperationWithContext[];
62
- export declare function toOperationWithContext(entry: OperationIndexEntry): OperationWithContext;
63
- /**
64
- * Merges SyncOperations that share the same (documentId, scope, branch) into
65
- * a single SyncOperation per group. Within each group, operations are sorted
66
- * by context.ordinal. The merged SyncOperation keeps the first group member's
67
- * jobId; all other jobIds are remapped so external dependencies still resolve.
68
- */
69
- export declare function consolidateSyncOperations(syncOps: SyncOperation[]): SyncOperation[];
70
- export declare function mergeCollectionMemberships(events: JobWriteReadyEvent[]): Record<string, string[]>;
71
- //# sourceMappingURL=utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/sync/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAEjF,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,YAAY,EAClB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,oBAAoB,EAAE,CAAC;CACpC,CAAC;AAEF;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,QAAQ,EACjB,KAAK,EAAE,aAAa,GACnB,IAAI,CAuBN;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,QAAQ,EACjB,UAAU,EAAE,MAAM,QA0BnB;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,oBAAoB,EAAE,EAClC,MAAM,EAAE,YAAY,GACnB,oBAAoB,EAAE,CAmBxB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,CAKhD;AAED;;;;;;;;;;;GAWG;AACH;;;GAGG;AACH,wBAAgB,sCAAsC,CACpD,CAAC,SAAS;IACR,UAAU,CAAC,EACP,aAAa,CAAC;QAAE,SAAS,EAAE;YAAE,cAAc,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC,GACxD,IAAI,GACJ,SAAS,CAAC;CACf,EACD,SAAS,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAWrB;AAED,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,oBAAoB,EAAE,GACjC,cAAc,EAAE,CAsClB;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,oBAAoB,EAAE,GAAG,MAAM,CAKxE;AAED,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,oBAAoB,EAAE,EAClC,YAAY,EAAE,MAAM,EACpB,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAC/C,oBAAoB,EAAE,CAYxB;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,mBAAmB,GACzB,oBAAoB,CAkBtB;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,aAAa,EAAE,GACvB,aAAa,EAAE,CAiFjB;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,kBAAkB,EAAE,GAC3B,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CA2C1B"}
@@ -1,47 +0,0 @@
1
- type OperationIndex = {
2
- index: number;
3
- skip: number;
4
- id: string;
5
- timestampUtcMs: string;
6
- action?: {
7
- id?: string;
8
- type?: string;
9
- };
10
- };
11
- /**
12
- * Sorts operations by index and skip number.
13
- * [0:0 2:0 1:0 3:3 3:1] => [0:0 1:0 2:0 3:1 3:3]
14
- */
15
- export declare function sortOperations<TOpIndex extends OperationIndex>(operations: TOpIndex[]): TOpIndex[];
16
- /**
17
- * Reshuffles operations by timestamp, then applies deterministic tie-breaking.
18
- * Used for merging concurrent operations from different branches.
19
- *
20
- * For strict document-structure actions (e.g., CREATE_DOCUMENT/UPGRADE_DOCUMENT),
21
- * logical index (index - skip) is prioritized to preserve causal replay order.
22
- *
23
- * For other actions, action ID is prioritized to ensure a canonical cross-reactor order
24
- * for concurrent operations that may have diverged local indices due to prior reshuffles.
25
- * Logical index and operation ID are then used as deterministic tie-breakers.
26
- *
27
- * Example:
28
- * [0:0, 1:0, 2:0, A3:0, A4:0, A5:0] + [0:0, 1:0, 2:0, B3:0, B4:2, B5:0]
29
- * GC => [0:0, 1:0, 2:0, A3:0, A4:0, A5:0] + [0:0, 1:0, B4:2, B5:0]
30
- * Split => [0:0, 1:0] + [2:0, A3:0, A4:0, A5:0] + [B4:2, B5:0]
31
- * Reshuffle(6:4) => [6:4, 7:0, 8:0, 9:0, 10:0, 11:0]
32
- * merge => [0:0, 1:0, 6:4, 7:0, 8:0, 9:0, 10:0, 11:0]
33
- */
34
- export declare function reshuffleByTimestamp<TOp extends OperationIndex>(startIndex: {
35
- index: number;
36
- skip: number;
37
- }, opsA: TOp[], opsB: TOp[]): TOp[];
38
- /**
39
- * Reshuffles operations by timestamp first, then by original index value.
40
- * Used for merging concurrent operations while preserving index ordering for operations with same timestamp.
41
- */
42
- export declare function reshuffleByTimestampAndIndex<TOp extends OperationIndex>(startIndex: {
43
- index: number;
44
- skip: number;
45
- }, opsA: TOp[], opsB: TOp[]): TOp[];
46
- export {};
47
- //# sourceMappingURL=reshuffle.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reshuffle.d.ts","sourceRoot":"","sources":["../../../src/utils/reshuffle.ts"],"names":[],"mappings":"AAAA,KAAK,cAAc,GAAG;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE;QACP,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH,CAAC;AAUF;;;GAGG;AACH,wBAAgB,cAAc,CAAC,QAAQ,SAAS,cAAc,EAC5D,UAAU,EAAE,QAAQ,EAAE,GACrB,QAAQ,EAAE,CAKZ;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,SAAS,cAAc,EAC7D,UAAU,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC3C,IAAI,EAAE,GAAG,EAAE,EACX,IAAI,EAAE,GAAG,EAAE,GACV,GAAG,EAAE,CAuCP;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,GAAG,SAAS,cAAc,EACrE,UAAU,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC3C,IAAI,EAAE,GAAG,EAAE,EACX,IAAI,EAAE,GAAG,EAAE,GACV,GAAG,EAAE,CAoBP"}