@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,264 +0,0 @@
1
- import {} from "document-model";
2
- import { sql } from "kysely";
3
- import { DuplicateOperationError, RevisionMismatchError, } from "../interfaces.js";
4
- import { AtomicTransaction } from "../txn.js";
5
- export class KyselyOperationStore {
6
- db;
7
- constructor(db) {
8
- this.db = db;
9
- }
10
- async apply(documentId, documentType, scope, branch, revision, fn, signal) {
11
- await this.db.transaction().execute(async (trx) => {
12
- // Check for abort signal
13
- if (signal?.aborted) {
14
- throw new Error("Operation aborted");
15
- }
16
- // Get the latest operation for this stream to verify revision
17
- const latestOp = await trx
18
- .selectFrom("Operation")
19
- .selectAll()
20
- .where("documentId", "=", documentId)
21
- .where("scope", "=", scope)
22
- .where("branch", "=", branch)
23
- .orderBy("index", "desc")
24
- .limit(1)
25
- .executeTakeFirst();
26
- // Check revision matches
27
- const currentRevision = latestOp ? latestOp.index : -1;
28
- if (currentRevision !== revision - 1) {
29
- throw new RevisionMismatchError(currentRevision + 1, revision);
30
- }
31
- // Create atomic transaction
32
- const atomicTxn = new AtomicTransaction(documentId, documentType, scope, branch, revision);
33
- await fn(atomicTxn);
34
- // Get operations and header updates
35
- const operations = atomicTxn.getOperations();
36
- // Insert operations
37
- if (operations.length > 0) {
38
- // Set prevOpId for each operation
39
- let prevOpId = latestOp?.opId || "";
40
- for (const op of operations) {
41
- op.prevOpId = prevOpId;
42
- prevOpId = op.opId;
43
- }
44
- try {
45
- await trx.insertInto("Operation").values(operations).execute();
46
- }
47
- catch (error) {
48
- if (error instanceof Error) {
49
- if (error.message.includes("unique constraint")) {
50
- const op = operations[0];
51
- throw new DuplicateOperationError(`${op.opId} at index ${op.index} with skip ${op.skip}`);
52
- }
53
- throw error;
54
- }
55
- throw error;
56
- }
57
- }
58
- });
59
- }
60
- async getSince(documentId, scope, branch, revision, filter, paging, signal) {
61
- if (signal?.aborted) {
62
- throw new Error("Operation aborted");
63
- }
64
- let query = this.db
65
- .selectFrom("Operation")
66
- .selectAll()
67
- .where("documentId", "=", documentId)
68
- .where("scope", "=", scope)
69
- .where("branch", "=", branch)
70
- .where("index", ">", revision)
71
- .orderBy("index", "asc");
72
- if (filter) {
73
- if (filter.actionTypes && filter.actionTypes.length > 0) {
74
- const actionTypesArray = filter.actionTypes
75
- .map((t) => `'${t.replace(/'/g, "''")}'`)
76
- .join(",");
77
- query = query.where(sql `action->>'type' = ANY(ARRAY[${sql.raw(actionTypesArray)}]::text[])`);
78
- }
79
- if (filter.timestampFrom) {
80
- query = query.where("timestampUtcMs", ">=", new Date(filter.timestampFrom));
81
- }
82
- if (filter.timestampTo) {
83
- query = query.where("timestampUtcMs", "<=", new Date(filter.timestampTo));
84
- }
85
- if (filter.sinceRevision !== undefined) {
86
- query = query.where("index", ">=", filter.sinceRevision);
87
- }
88
- }
89
- if (paging) {
90
- const cursorValue = Number.parseInt(paging.cursor, 10);
91
- if (cursorValue > 0) {
92
- query = query.where("index", ">", cursorValue);
93
- }
94
- if (paging.limit) {
95
- query = query.limit(paging.limit + 1);
96
- }
97
- }
98
- const rows = await query.execute();
99
- let hasMore = false;
100
- let items = rows;
101
- if (paging?.limit && rows.length > paging.limit) {
102
- hasMore = true;
103
- items = rows.slice(0, paging.limit);
104
- }
105
- const nextCursor = hasMore && items.length > 0
106
- ? items[items.length - 1].index.toString()
107
- : undefined;
108
- const cursor = paging?.cursor || "0";
109
- const limit = paging?.limit || 100;
110
- const operations = items.map((row) => this.rowToOperation(row));
111
- return {
112
- results: operations,
113
- options: { cursor, limit },
114
- nextCursor,
115
- next: hasMore
116
- ? () => this.getSince(documentId, scope, branch, revision, filter, { cursor: nextCursor, limit }, signal)
117
- : undefined,
118
- };
119
- }
120
- async getSinceId(id, paging, signal) {
121
- if (signal?.aborted) {
122
- throw new Error("Operation aborted");
123
- }
124
- let query = this.db
125
- .selectFrom("Operation")
126
- .selectAll()
127
- .where("id", ">", id)
128
- .orderBy("id", "asc");
129
- // Handle cursor-based pagination
130
- if (paging) {
131
- // Cursor encodes the last seen id
132
- const cursorValue = Number.parseInt(paging.cursor, 10);
133
- if (cursorValue > 0) {
134
- query = query.where("id", ">", cursorValue);
135
- }
136
- // Apply limit if specified (fetch one extra to determine hasMore)
137
- if (paging.limit) {
138
- query = query.limit(paging.limit + 1);
139
- }
140
- }
141
- const rows = await query.execute();
142
- // Determine if there are more results
143
- let hasMore = false;
144
- let items = rows;
145
- if (paging?.limit && rows.length > paging.limit) {
146
- hasMore = true;
147
- items = rows.slice(0, paging.limit);
148
- }
149
- // Generate next cursor from last item's id
150
- const nextCursor = hasMore && items.length > 0
151
- ? items[items.length - 1].id.toString()
152
- : undefined;
153
- const cursor = paging?.cursor || "0";
154
- const limit = paging?.limit || 100;
155
- const operations = items.map((row) => this.rowToOperationWithContext(row));
156
- return {
157
- results: operations,
158
- options: { cursor, limit },
159
- nextCursor,
160
- next: hasMore
161
- ? () => this.getSinceId(id, { cursor: nextCursor, limit }, signal)
162
- : undefined,
163
- };
164
- }
165
- async getConflicting(documentId, scope, branch, minTimestamp, paging, signal) {
166
- if (signal?.aborted) {
167
- throw new Error("Operation aborted");
168
- }
169
- let query = this.db
170
- .selectFrom("Operation")
171
- .selectAll()
172
- .where("documentId", "=", documentId)
173
- .where("scope", "=", scope)
174
- .where("branch", "=", branch)
175
- .where("timestampUtcMs", ">=", new Date(minTimestamp))
176
- .orderBy("index", "asc");
177
- if (paging) {
178
- const cursorValue = Number.parseInt(paging.cursor, 10);
179
- if (cursorValue > 0) {
180
- query = query.where("index", ">", cursorValue);
181
- }
182
- if (paging.limit) {
183
- query = query.limit(paging.limit + 1);
184
- }
185
- }
186
- const rows = await query.execute();
187
- let hasMore = false;
188
- let items = rows;
189
- if (paging?.limit && rows.length > paging.limit) {
190
- hasMore = true;
191
- items = rows.slice(0, paging.limit);
192
- }
193
- const nextCursor = hasMore && items.length > 0
194
- ? items[items.length - 1].index.toString()
195
- : undefined;
196
- const cursor = paging?.cursor || "0";
197
- const limit = paging?.limit || 100;
198
- const operations = items.map((row) => this.rowToOperation(row));
199
- return {
200
- results: operations,
201
- options: { cursor, limit },
202
- nextCursor,
203
- next: hasMore
204
- ? () => this.getConflicting(documentId, scope, branch, minTimestamp, { cursor: nextCursor, limit }, signal)
205
- : undefined,
206
- };
207
- }
208
- async getRevisions(documentId, branch, signal) {
209
- if (signal?.aborted) {
210
- throw new Error("Operation aborted");
211
- }
212
- // Get the latest operation for each scope in a single query
213
- // Uses a subquery to find operations where the index equals the max index for that scope
214
- const scopeRevisions = await this.db
215
- .selectFrom("Operation as o1")
216
- .select(["o1.scope", "o1.index", "o1.timestampUtcMs"])
217
- .where("o1.documentId", "=", documentId)
218
- .where("o1.branch", "=", branch)
219
- .where((eb) => eb("o1.index", "=", eb
220
- .selectFrom("Operation as o2")
221
- .select((eb2) => eb2.fn.max("o2.index").as("maxIndex"))
222
- .where("o2.documentId", "=", eb.ref("o1.documentId"))
223
- .where("o2.branch", "=", eb.ref("o1.branch"))
224
- .where("o2.scope", "=", eb.ref("o1.scope"))))
225
- .execute();
226
- const revision = {};
227
- let latestTimestamp = new Date(0).toISOString();
228
- for (const row of scopeRevisions) {
229
- revision[row.scope] = row.index + 1;
230
- const timestamp = row.timestampUtcMs.toISOString();
231
- if (timestamp > latestTimestamp) {
232
- latestTimestamp = timestamp;
233
- }
234
- }
235
- return {
236
- revision,
237
- latestTimestamp,
238
- };
239
- }
240
- rowToOperation(row) {
241
- return {
242
- index: row.index,
243
- timestampUtcMs: row.timestampUtcMs.toISOString(),
244
- hash: row.hash,
245
- skip: row.skip,
246
- error: row.error || undefined,
247
- id: row.opId,
248
- action: row.action,
249
- };
250
- }
251
- rowToOperationWithContext(row) {
252
- return {
253
- operation: this.rowToOperation(row),
254
- context: {
255
- documentId: row.documentId,
256
- documentType: row.documentType,
257
- scope: row.scope,
258
- branch: row.branch,
259
- ordinal: row.id,
260
- },
261
- };
262
- }
263
- }
264
- //# sourceMappingURL=store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../../src/storage/kysely/store.ts"],"names":[],"mappings":"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"}
@@ -1,97 +0,0 @@
1
- import { sql } from "kysely";
2
- function rowToRemoteCursor(row) {
3
- return {
4
- remoteName: row.remote_name,
5
- cursorType: row.cursor_type,
6
- cursorOrdinal: Number(row.cursor_ordinal),
7
- lastSyncedAtUtcMs: row.last_synced_at_utc_ms
8
- ? new Date(row.last_synced_at_utc_ms).getTime()
9
- : undefined,
10
- };
11
- }
12
- function remoteCursorToRow(cursor) {
13
- return {
14
- remote_name: cursor.remoteName,
15
- cursor_type: cursor.cursorType,
16
- cursor_ordinal: BigInt(cursor.cursorOrdinal),
17
- last_synced_at_utc_ms: cursor.lastSyncedAtUtcMs
18
- ? new Date(cursor.lastSyncedAtUtcMs).toISOString()
19
- : null,
20
- };
21
- }
22
- export class KyselySyncCursorStorage {
23
- db;
24
- constructor(db) {
25
- this.db = db;
26
- }
27
- async list(remoteName, signal) {
28
- if (signal?.aborted) {
29
- throw new Error("Operation aborted");
30
- }
31
- const rows = await this.db
32
- .selectFrom("sync_cursors")
33
- .selectAll()
34
- .where("remote_name", "=", remoteName)
35
- .execute();
36
- if (signal?.aborted) {
37
- throw new Error("Operation aborted");
38
- }
39
- return rows.map(rowToRemoteCursor);
40
- }
41
- async get(remoteName, cursorType, signal) {
42
- if (signal?.aborted) {
43
- throw new Error("Operation aborted");
44
- }
45
- const row = await this.db
46
- .selectFrom("sync_cursors")
47
- .selectAll()
48
- .where("remote_name", "=", remoteName)
49
- .where("cursor_type", "=", cursorType)
50
- .executeTakeFirst();
51
- if (signal?.aborted) {
52
- throw new Error("Operation aborted");
53
- }
54
- if (!row) {
55
- return {
56
- remoteName,
57
- cursorType,
58
- cursorOrdinal: 0,
59
- };
60
- }
61
- return rowToRemoteCursor(row);
62
- }
63
- async upsert(cursor, signal) {
64
- if (signal?.aborted) {
65
- throw new Error("Operation aborted");
66
- }
67
- await this.db.transaction().execute(async (trx) => {
68
- const insertable = remoteCursorToRow(cursor);
69
- await trx
70
- .insertInto("sync_cursors")
71
- .values(insertable)
72
- .onConflict((oc) => oc.columns(["remote_name", "cursor_type"]).doUpdateSet({
73
- ...insertable,
74
- updated_at: sql `NOW()`,
75
- }))
76
- .execute();
77
- });
78
- if (signal?.aborted) {
79
- throw new Error("Operation aborted");
80
- }
81
- }
82
- async remove(remoteName, signal) {
83
- if (signal?.aborted) {
84
- throw new Error("Operation aborted");
85
- }
86
- await this.db.transaction().execute(async (trx) => {
87
- await trx
88
- .deleteFrom("sync_cursors")
89
- .where("remote_name", "=", remoteName)
90
- .execute();
91
- });
92
- if (signal?.aborted) {
93
- throw new Error("Operation aborted");
94
- }
95
- }
96
- }
97
- //# sourceMappingURL=sync-cursor-storage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sync-cursor-storage.js","sourceRoot":"","sources":["../../../../src/storage/kysely/sync-cursor-storage.ts"],"names":[],"mappings":"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"}
@@ -1,110 +0,0 @@
1
- function rowToDeadLetterRecord(row) {
2
- return {
3
- id: row.id,
4
- jobId: row.job_id,
5
- jobDependencies: row.job_dependencies,
6
- remoteName: row.remote_name,
7
- documentId: row.document_id,
8
- scopes: row.scopes,
9
- branch: row.branch,
10
- operations: row.operations,
11
- errorSource: row.error_source,
12
- errorMessage: row.error_message,
13
- };
14
- }
15
- function deadLetterRecordToRow(record) {
16
- return {
17
- id: record.id,
18
- job_id: record.jobId,
19
- job_dependencies: JSON.stringify(record.jobDependencies),
20
- remote_name: record.remoteName,
21
- document_id: record.documentId,
22
- scopes: JSON.stringify(record.scopes),
23
- branch: record.branch,
24
- operations: JSON.stringify(record.operations),
25
- error_source: record.errorSource,
26
- error_message: record.errorMessage,
27
- };
28
- }
29
- /**
30
- * PGlite/Kysely-backed implementation of {@link ISyncDeadLetterStorage}.
31
- */
32
- export class KyselySyncDeadLetterStorage {
33
- db;
34
- constructor(db) {
35
- this.db = db;
36
- }
37
- async list(remoteName, paging, signal) {
38
- if (signal?.aborted) {
39
- throw new Error("Operation aborted");
40
- }
41
- const startIndex = paging?.cursor ? parseInt(paging.cursor) : 0;
42
- const limit = paging?.limit || 100;
43
- const rows = await this.db
44
- .selectFrom("sync_dead_letters")
45
- .selectAll()
46
- .where("remote_name", "=", remoteName)
47
- .orderBy("ordinal", "desc")
48
- .offset(startIndex)
49
- .limit(limit + 1)
50
- .execute();
51
- let hasMore = false;
52
- let items = rows;
53
- if (paging?.limit && rows.length > limit) {
54
- hasMore = true;
55
- items = rows.slice(0, limit);
56
- }
57
- const nextCursor = hasMore ? String(startIndex + limit) : undefined;
58
- const cursor = paging?.cursor || "0";
59
- if (signal?.aborted) {
60
- throw new Error("Operation aborted");
61
- }
62
- return {
63
- results: items.map(rowToDeadLetterRecord),
64
- options: { cursor, limit },
65
- nextCursor,
66
- };
67
- }
68
- async add(deadLetter, signal) {
69
- if (signal?.aborted) {
70
- throw new Error("Operation aborted");
71
- }
72
- await this.db.transaction().execute(async (trx) => {
73
- const insertable = deadLetterRecordToRow(deadLetter);
74
- await trx
75
- .insertInto("sync_dead_letters")
76
- .values(insertable)
77
- .onConflict((oc) => oc.column("id").doNothing())
78
- .execute();
79
- });
80
- if (signal?.aborted) {
81
- throw new Error("Operation aborted");
82
- }
83
- }
84
- async remove(id, signal) {
85
- if (signal?.aborted) {
86
- throw new Error("Operation aborted");
87
- }
88
- await this.db.transaction().execute(async (trx) => {
89
- await trx.deleteFrom("sync_dead_letters").where("id", "=", id).execute();
90
- });
91
- if (signal?.aborted) {
92
- throw new Error("Operation aborted");
93
- }
94
- }
95
- async removeByRemote(remoteName, signal) {
96
- if (signal?.aborted) {
97
- throw new Error("Operation aborted");
98
- }
99
- await this.db.transaction().execute(async (trx) => {
100
- await trx
101
- .deleteFrom("sync_dead_letters")
102
- .where("remote_name", "=", remoteName)
103
- .execute();
104
- });
105
- if (signal?.aborted) {
106
- throw new Error("Operation aborted");
107
- }
108
- }
109
- }
110
- //# sourceMappingURL=sync-dead-letter-storage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sync-dead-letter-storage.js","sourceRoot":"","sources":["../../../../src/storage/kysely/sync-dead-letter-storage.ts"],"names":[],"mappings":"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"}
@@ -1,133 +0,0 @@
1
- import { sql } from "kysely";
2
- function rowToRemoteRecord(row) {
3
- return {
4
- id: row.channel_id,
5
- name: row.name,
6
- collectionId: row.collection_id,
7
- channelConfig: {
8
- type: row.channel_type,
9
- parameters: (row.channel_parameters ?? {}),
10
- },
11
- filter: {
12
- documentId: (row.filter_document_ids ?? []),
13
- scope: (row.filter_scopes ?? []),
14
- branch: row.filter_branch,
15
- },
16
- options: { sinceTimestampUtcMs: "0" },
17
- status: {
18
- push: {
19
- state: row.push_state,
20
- lastSuccessUtcMs: row.push_last_success_utc_ms
21
- ? new Date(row.push_last_success_utc_ms).getTime()
22
- : undefined,
23
- lastFailureUtcMs: row.push_last_failure_utc_ms
24
- ? new Date(row.push_last_failure_utc_ms).getTime()
25
- : undefined,
26
- failureCount: row.push_failure_count,
27
- },
28
- pull: {
29
- state: row.pull_state,
30
- lastSuccessUtcMs: row.pull_last_success_utc_ms
31
- ? new Date(row.pull_last_success_utc_ms).getTime()
32
- : undefined,
33
- lastFailureUtcMs: row.pull_last_failure_utc_ms
34
- ? new Date(row.pull_last_failure_utc_ms).getTime()
35
- : undefined,
36
- failureCount: row.pull_failure_count,
37
- },
38
- },
39
- };
40
- }
41
- function remoteRecordToRow(remote) {
42
- return {
43
- name: remote.name,
44
- collection_id: remote.collectionId,
45
- channel_type: remote.channelConfig.type,
46
- channel_id: remote.id,
47
- remote_name: remote.name,
48
- channel_parameters: remote.channelConfig.parameters,
49
- filter_document_ids: remote.filter.documentId.length > 0 ? remote.filter.documentId : null,
50
- filter_scopes: remote.filter.scope.length > 0 ? remote.filter.scope : null,
51
- filter_branch: remote.filter.branch,
52
- push_state: remote.status.push.state,
53
- push_last_success_utc_ms: remote.status.push.lastSuccessUtcMs
54
- ? new Date(remote.status.push.lastSuccessUtcMs).toISOString()
55
- : null,
56
- push_last_failure_utc_ms: remote.status.push.lastFailureUtcMs
57
- ? new Date(remote.status.push.lastFailureUtcMs).toISOString()
58
- : null,
59
- push_failure_count: remote.status.push.failureCount,
60
- pull_state: remote.status.pull.state,
61
- pull_last_success_utc_ms: remote.status.pull.lastSuccessUtcMs
62
- ? new Date(remote.status.pull.lastSuccessUtcMs).toISOString()
63
- : null,
64
- pull_last_failure_utc_ms: remote.status.pull.lastFailureUtcMs
65
- ? new Date(remote.status.pull.lastFailureUtcMs).toISOString()
66
- : null,
67
- pull_failure_count: remote.status.pull.failureCount,
68
- };
69
- }
70
- export class KyselySyncRemoteStorage {
71
- db;
72
- constructor(db) {
73
- this.db = db;
74
- }
75
- async list(signal) {
76
- if (signal?.aborted) {
77
- throw new Error("Operation aborted");
78
- }
79
- const rows = await this.db.selectFrom("sync_remotes").selectAll().execute();
80
- if (signal?.aborted) {
81
- throw new Error("Operation aborted");
82
- }
83
- return rows.map(rowToRemoteRecord);
84
- }
85
- async get(name, signal) {
86
- if (signal?.aborted) {
87
- throw new Error("Operation aborted");
88
- }
89
- const row = await this.db
90
- .selectFrom("sync_remotes")
91
- .selectAll()
92
- .where("name", "=", name)
93
- .executeTakeFirst();
94
- if (signal?.aborted) {
95
- throw new Error("Operation aborted");
96
- }
97
- if (!row) {
98
- throw new Error(`Remote not found: ${name}`);
99
- }
100
- return rowToRemoteRecord(row);
101
- }
102
- async upsert(remote, signal) {
103
- if (signal?.aborted) {
104
- throw new Error("Operation aborted");
105
- }
106
- await this.db.transaction().execute(async (trx) => {
107
- const insertable = remoteRecordToRow(remote);
108
- await trx
109
- .insertInto("sync_remotes")
110
- .values(insertable)
111
- .onConflict((oc) => oc.column("name").doUpdateSet({
112
- ...insertable,
113
- updated_at: sql `NOW()`,
114
- }))
115
- .execute();
116
- });
117
- if (signal?.aborted) {
118
- throw new Error("Operation aborted");
119
- }
120
- }
121
- async remove(name, signal) {
122
- if (signal?.aborted) {
123
- throw new Error("Operation aborted");
124
- }
125
- await this.db.transaction().execute(async (trx) => {
126
- await trx.deleteFrom("sync_remotes").where("name", "=", name).execute();
127
- });
128
- if (signal?.aborted) {
129
- throw new Error("Operation aborted");
130
- }
131
- }
132
- }
133
- //# sourceMappingURL=sync-remote-storage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sync-remote-storage.js","sourceRoot":"","sources":["../../../../src/storage/kysely/sync-remote-storage.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/storage/kysely/types.ts"],"names":[],"mappings":""}