@livestore/common 0.3.0-dev.28 → 0.3.0-dev.29

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 (277) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/__tests__/fixture.d.ts +83 -221
  3. package/dist/__tests__/fixture.d.ts.map +1 -1
  4. package/dist/__tests__/fixture.js +33 -11
  5. package/dist/__tests__/fixture.js.map +1 -1
  6. package/dist/adapter-types.d.ts +22 -15
  7. package/dist/adapter-types.d.ts.map +1 -1
  8. package/dist/adapter-types.js +15 -2
  9. package/dist/adapter-types.js.map +1 -1
  10. package/dist/bounded-collections.d.ts +1 -1
  11. package/dist/bounded-collections.d.ts.map +1 -1
  12. package/dist/debug-info.d.ts.map +1 -1
  13. package/dist/debug-info.js +1 -0
  14. package/dist/debug-info.js.map +1 -1
  15. package/dist/devtools/devtools-messages-client-session.d.ts +21 -21
  16. package/dist/devtools/devtools-messages-common.d.ts +6 -6
  17. package/dist/devtools/devtools-messages-leader.d.ts +45 -45
  18. package/dist/devtools/devtools-messages-leader.d.ts.map +1 -1
  19. package/dist/devtools/devtools-messages-leader.js +11 -11
  20. package/dist/devtools/devtools-messages-leader.js.map +1 -1
  21. package/dist/index.d.ts +2 -5
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +2 -5
  24. package/dist/index.js.map +1 -1
  25. package/dist/leader-thread/LeaderSyncProcessor.d.ts +10 -10
  26. package/dist/leader-thread/LeaderSyncProcessor.d.ts.map +1 -1
  27. package/dist/leader-thread/LeaderSyncProcessor.js +63 -65
  28. package/dist/leader-thread/LeaderSyncProcessor.js.map +1 -1
  29. package/dist/leader-thread/{apply-mutation.d.ts → apply-event.d.ts} +7 -7
  30. package/dist/leader-thread/apply-event.d.ts.map +1 -0
  31. package/dist/leader-thread/apply-event.js +103 -0
  32. package/dist/leader-thread/apply-event.js.map +1 -0
  33. package/dist/leader-thread/eventlog.d.ts +27 -0
  34. package/dist/leader-thread/eventlog.d.ts.map +1 -0
  35. package/dist/leader-thread/eventlog.js +123 -0
  36. package/dist/leader-thread/eventlog.js.map +1 -0
  37. package/dist/leader-thread/leader-worker-devtools.js +18 -18
  38. package/dist/leader-thread/leader-worker-devtools.js.map +1 -1
  39. package/dist/leader-thread/make-leader-thread-layer.d.ts +2 -2
  40. package/dist/leader-thread/make-leader-thread-layer.d.ts.map +1 -1
  41. package/dist/leader-thread/make-leader-thread-layer.js +16 -16
  42. package/dist/leader-thread/make-leader-thread-layer.js.map +1 -1
  43. package/dist/leader-thread/mod.d.ts +1 -1
  44. package/dist/leader-thread/mod.d.ts.map +1 -1
  45. package/dist/leader-thread/mod.js +1 -1
  46. package/dist/leader-thread/mod.js.map +1 -1
  47. package/dist/leader-thread/recreate-db.d.ts.map +1 -1
  48. package/dist/leader-thread/recreate-db.js +6 -8
  49. package/dist/leader-thread/recreate-db.js.map +1 -1
  50. package/dist/leader-thread/types.d.ts +11 -11
  51. package/dist/leader-thread/types.d.ts.map +1 -1
  52. package/dist/materializer-helper.d.ts +23 -0
  53. package/dist/materializer-helper.d.ts.map +1 -0
  54. package/dist/materializer-helper.js +70 -0
  55. package/dist/materializer-helper.js.map +1 -0
  56. package/dist/query-builder/api.d.ts +58 -53
  57. package/dist/query-builder/api.d.ts.map +1 -1
  58. package/dist/query-builder/api.js +3 -5
  59. package/dist/query-builder/api.js.map +1 -1
  60. package/dist/query-builder/astToSql.d.ts.map +1 -1
  61. package/dist/query-builder/astToSql.js +59 -37
  62. package/dist/query-builder/astToSql.js.map +1 -1
  63. package/dist/query-builder/impl.d.ts +2 -3
  64. package/dist/query-builder/impl.d.ts.map +1 -1
  65. package/dist/query-builder/impl.js +48 -46
  66. package/dist/query-builder/impl.js.map +1 -1
  67. package/dist/query-builder/impl.test.d.ts +86 -1
  68. package/dist/query-builder/impl.test.d.ts.map +1 -1
  69. package/dist/query-builder/impl.test.js +244 -36
  70. package/dist/query-builder/impl.test.js.map +1 -1
  71. package/dist/rehydrate-from-eventlog.d.ts +14 -0
  72. package/dist/rehydrate-from-eventlog.d.ts.map +1 -0
  73. package/dist/{rehydrate-from-mutationlog.js → rehydrate-from-eventlog.js} +25 -26
  74. package/dist/rehydrate-from-eventlog.js.map +1 -0
  75. package/dist/schema/EventDef.d.ts +136 -0
  76. package/dist/schema/EventDef.d.ts.map +1 -0
  77. package/dist/schema/EventDef.js +58 -0
  78. package/dist/schema/EventDef.js.map +1 -0
  79. package/dist/schema/EventId.d.ts +2 -2
  80. package/dist/schema/EventId.d.ts.map +1 -1
  81. package/dist/schema/EventId.js +3 -2
  82. package/dist/schema/EventId.js.map +1 -1
  83. package/dist/schema/{MutationEvent.d.ts → LiveStoreEvent.d.ts} +56 -56
  84. package/dist/schema/LiveStoreEvent.d.ts.map +1 -0
  85. package/dist/schema/{MutationEvent.js → LiveStoreEvent.js} +24 -24
  86. package/dist/schema/LiveStoreEvent.js.map +1 -0
  87. package/dist/schema/client-document-def.d.ts +223 -0
  88. package/dist/schema/client-document-def.d.ts.map +1 -0
  89. package/dist/schema/client-document-def.js +170 -0
  90. package/dist/schema/client-document-def.js.map +1 -0
  91. package/dist/schema/client-document-def.test.d.ts +2 -0
  92. package/dist/schema/client-document-def.test.d.ts.map +1 -0
  93. package/dist/schema/client-document-def.test.js +201 -0
  94. package/dist/schema/client-document-def.test.js.map +1 -0
  95. package/dist/schema/db-schema/dsl/mod.d.ts.map +1 -1
  96. package/dist/schema/events.d.ts +2 -0
  97. package/dist/schema/events.d.ts.map +1 -0
  98. package/dist/schema/events.js +2 -0
  99. package/dist/schema/events.js.map +1 -0
  100. package/dist/schema/mod.d.ts +4 -3
  101. package/dist/schema/mod.d.ts.map +1 -1
  102. package/dist/schema/mod.js +4 -3
  103. package/dist/schema/mod.js.map +1 -1
  104. package/dist/schema/schema.d.ts +27 -23
  105. package/dist/schema/schema.d.ts.map +1 -1
  106. package/dist/schema/schema.js +45 -43
  107. package/dist/schema/schema.js.map +1 -1
  108. package/dist/schema/sqlite-state.d.ts +12 -0
  109. package/dist/schema/sqlite-state.d.ts.map +1 -0
  110. package/dist/schema/sqlite-state.js +36 -0
  111. package/dist/schema/sqlite-state.js.map +1 -0
  112. package/dist/schema/system-tables.d.ts +67 -98
  113. package/dist/schema/system-tables.d.ts.map +1 -1
  114. package/dist/schema/system-tables.js +62 -48
  115. package/dist/schema/system-tables.js.map +1 -1
  116. package/dist/schema/table-def.d.ts +26 -96
  117. package/dist/schema/table-def.d.ts.map +1 -1
  118. package/dist/schema/table-def.js +16 -64
  119. package/dist/schema/table-def.js.map +1 -1
  120. package/dist/schema/view.d.ts +3 -0
  121. package/dist/schema/view.d.ts.map +1 -0
  122. package/dist/schema/view.js +3 -0
  123. package/dist/schema/view.js.map +1 -0
  124. package/dist/schema-management/common.d.ts +4 -4
  125. package/dist/schema-management/common.d.ts.map +1 -1
  126. package/dist/schema-management/migrations.d.ts.map +1 -1
  127. package/dist/schema-management/migrations.js +6 -6
  128. package/dist/schema-management/migrations.js.map +1 -1
  129. package/dist/schema-management/validate-mutation-defs.d.ts +3 -3
  130. package/dist/schema-management/validate-mutation-defs.d.ts.map +1 -1
  131. package/dist/schema-management/validate-mutation-defs.js +17 -17
  132. package/dist/schema-management/validate-mutation-defs.js.map +1 -1
  133. package/dist/sync/ClientSessionSyncProcessor.d.ts +7 -7
  134. package/dist/sync/ClientSessionSyncProcessor.d.ts.map +1 -1
  135. package/dist/sync/ClientSessionSyncProcessor.js +31 -30
  136. package/dist/sync/ClientSessionSyncProcessor.js.map +1 -1
  137. package/dist/sync/next/facts.d.ts +19 -19
  138. package/dist/sync/next/facts.d.ts.map +1 -1
  139. package/dist/sync/next/facts.js +2 -2
  140. package/dist/sync/next/facts.js.map +1 -1
  141. package/dist/sync/next/history-dag-common.d.ts +3 -3
  142. package/dist/sync/next/history-dag-common.d.ts.map +1 -1
  143. package/dist/sync/next/history-dag-common.js +1 -1
  144. package/dist/sync/next/history-dag-common.js.map +1 -1
  145. package/dist/sync/next/history-dag.js +1 -1
  146. package/dist/sync/next/history-dag.js.map +1 -1
  147. package/dist/sync/next/rebase-events.d.ts +7 -7
  148. package/dist/sync/next/rebase-events.d.ts.map +1 -1
  149. package/dist/sync/next/rebase-events.js +5 -5
  150. package/dist/sync/next/rebase-events.js.map +1 -1
  151. package/dist/sync/next/test/compact-events.calculator.test.js +38 -33
  152. package/dist/sync/next/test/compact-events.calculator.test.js.map +1 -1
  153. package/dist/sync/next/test/compact-events.test.js +71 -71
  154. package/dist/sync/next/test/compact-events.test.js.map +1 -1
  155. package/dist/sync/next/test/{mutation-fixtures.d.ts → event-fixtures.d.ts} +29 -29
  156. package/dist/sync/next/test/event-fixtures.d.ts.map +1 -0
  157. package/dist/sync/next/test/{mutation-fixtures.js → event-fixtures.js} +60 -25
  158. package/dist/sync/next/test/event-fixtures.js.map +1 -0
  159. package/dist/sync/next/test/mod.d.ts +1 -1
  160. package/dist/sync/next/test/mod.d.ts.map +1 -1
  161. package/dist/sync/next/test/mod.js +1 -1
  162. package/dist/sync/next/test/mod.js.map +1 -1
  163. package/dist/sync/sync.d.ts +3 -3
  164. package/dist/sync/sync.d.ts.map +1 -1
  165. package/dist/sync/syncstate.d.ts +32 -32
  166. package/dist/sync/syncstate.d.ts.map +1 -1
  167. package/dist/sync/syncstate.js +10 -10
  168. package/dist/sync/syncstate.js.map +1 -1
  169. package/dist/sync/syncstate.test.js +5 -5
  170. package/dist/sync/syncstate.test.js.map +1 -1
  171. package/dist/sync/validate-push-payload.d.ts +2 -2
  172. package/dist/sync/validate-push-payload.d.ts.map +1 -1
  173. package/dist/sync/validate-push-payload.js.map +1 -1
  174. package/dist/version.d.ts +1 -1
  175. package/dist/version.js +1 -1
  176. package/package.json +3 -3
  177. package/src/__tests__/fixture.ts +36 -15
  178. package/src/adapter-types.ts +23 -16
  179. package/src/debug-info.ts +1 -0
  180. package/src/devtools/devtools-messages-leader.ts +13 -13
  181. package/src/index.ts +2 -5
  182. package/src/leader-thread/LeaderSyncProcessor.ts +81 -91
  183. package/src/leader-thread/{apply-mutation.ts → apply-event.ts} +50 -74
  184. package/src/leader-thread/eventlog.ts +199 -0
  185. package/src/leader-thread/leader-worker-devtools.ts +18 -18
  186. package/src/leader-thread/make-leader-thread-layer.ts +18 -18
  187. package/src/leader-thread/mod.ts +1 -1
  188. package/src/leader-thread/recreate-db.ts +6 -9
  189. package/src/leader-thread/types.ts +12 -12
  190. package/src/materializer-helper.ts +110 -0
  191. package/src/query-builder/api.ts +79 -105
  192. package/src/query-builder/astToSql.ts +68 -39
  193. package/src/query-builder/impl.test.ts +264 -42
  194. package/src/query-builder/impl.ts +72 -56
  195. package/src/{rehydrate-from-mutationlog.ts → rehydrate-from-eventlog.ts} +33 -40
  196. package/src/schema/EventDef.ts +216 -0
  197. package/src/schema/EventId.ts +5 -3
  198. package/src/schema/{MutationEvent.ts → LiveStoreEvent.ts} +67 -68
  199. package/src/schema/client-document-def.test.ts +239 -0
  200. package/src/schema/client-document-def.ts +444 -0
  201. package/src/schema/db-schema/dsl/mod.ts +0 -1
  202. package/src/schema/events.ts +1 -0
  203. package/src/schema/mod.ts +4 -3
  204. package/src/schema/schema.ts +79 -69
  205. package/src/schema/sqlite-state.ts +62 -0
  206. package/src/schema/system-tables.ts +42 -53
  207. package/src/schema/table-def.ts +53 -209
  208. package/src/schema/view.ts +2 -0
  209. package/src/schema-management/common.ts +4 -4
  210. package/src/schema-management/migrations.ts +8 -9
  211. package/src/schema-management/validate-mutation-defs.ts +22 -24
  212. package/src/sync/ClientSessionSyncProcessor.ts +37 -36
  213. package/src/sync/next/facts.ts +31 -32
  214. package/src/sync/next/history-dag-common.ts +4 -4
  215. package/src/sync/next/history-dag.ts +1 -1
  216. package/src/sync/next/rebase-events.ts +13 -13
  217. package/src/sync/next/test/compact-events.calculator.test.ts +45 -45
  218. package/src/sync/next/test/compact-events.test.ts +73 -73
  219. package/src/sync/next/test/event-fixtures.ts +219 -0
  220. package/src/sync/next/test/mod.ts +1 -1
  221. package/src/sync/sync.ts +3 -3
  222. package/src/sync/syncstate.test.ts +8 -8
  223. package/src/sync/syncstate.ts +19 -19
  224. package/src/sync/validate-push-payload.ts +2 -2
  225. package/src/version.ts +1 -1
  226. package/tmp/pack.tgz +0 -0
  227. package/tsconfig.json +1 -0
  228. package/dist/derived-mutations.d.ts +0 -109
  229. package/dist/derived-mutations.d.ts.map +0 -1
  230. package/dist/derived-mutations.js +0 -54
  231. package/dist/derived-mutations.js.map +0 -1
  232. package/dist/derived-mutations.test.d.ts +0 -2
  233. package/dist/derived-mutations.test.d.ts.map +0 -1
  234. package/dist/derived-mutations.test.js +0 -93
  235. package/dist/derived-mutations.test.js.map +0 -1
  236. package/dist/init-singleton-tables.d.ts +0 -4
  237. package/dist/init-singleton-tables.d.ts.map +0 -1
  238. package/dist/init-singleton-tables.js +0 -16
  239. package/dist/init-singleton-tables.js.map +0 -1
  240. package/dist/leader-thread/apply-mutation.d.ts.map +0 -1
  241. package/dist/leader-thread/apply-mutation.js +0 -122
  242. package/dist/leader-thread/apply-mutation.js.map +0 -1
  243. package/dist/leader-thread/mutationlog.d.ts +0 -27
  244. package/dist/leader-thread/mutationlog.d.ts.map +0 -1
  245. package/dist/leader-thread/mutationlog.js +0 -124
  246. package/dist/leader-thread/mutationlog.js.map +0 -1
  247. package/dist/leader-thread/pull-queue-set.d.ts +0 -7
  248. package/dist/leader-thread/pull-queue-set.d.ts.map +0 -1
  249. package/dist/leader-thread/pull-queue-set.js +0 -38
  250. package/dist/leader-thread/pull-queue-set.js.map +0 -1
  251. package/dist/mutation.d.ts +0 -20
  252. package/dist/mutation.d.ts.map +0 -1
  253. package/dist/mutation.js +0 -68
  254. package/dist/mutation.js.map +0 -1
  255. package/dist/query-info.d.ts +0 -41
  256. package/dist/query-info.d.ts.map +0 -1
  257. package/dist/query-info.js +0 -7
  258. package/dist/query-info.js.map +0 -1
  259. package/dist/rehydrate-from-mutationlog.d.ts +0 -15
  260. package/dist/rehydrate-from-mutationlog.d.ts.map +0 -1
  261. package/dist/rehydrate-from-mutationlog.js.map +0 -1
  262. package/dist/schema/MutationEvent.d.ts.map +0 -1
  263. package/dist/schema/MutationEvent.js.map +0 -1
  264. package/dist/schema/mutations.d.ts +0 -115
  265. package/dist/schema/mutations.d.ts.map +0 -1
  266. package/dist/schema/mutations.js +0 -42
  267. package/dist/schema/mutations.js.map +0 -1
  268. package/dist/sync/next/test/mutation-fixtures.d.ts.map +0 -1
  269. package/dist/sync/next/test/mutation-fixtures.js.map +0 -1
  270. package/src/derived-mutations.test.ts +0 -101
  271. package/src/derived-mutations.ts +0 -170
  272. package/src/init-singleton-tables.ts +0 -24
  273. package/src/leader-thread/mutationlog.ts +0 -202
  274. package/src/mutation.ts +0 -108
  275. package/src/query-info.ts +0 -83
  276. package/src/schema/mutations.ts +0 -193
  277. package/src/sync/next/test/mutation-fixtures.ts +0 -228
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA;AACzC,cAAc,WAAW,CAAA;AACzB,cAAc,oBAAoB,CAAA;AAClC,cAAc,mCAAmC,CAAA;AACjD,cAAc,eAAe,CAAA;AAC7B,cAAc,4BAA4B,CAAA;AAC1C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,iBAAiB,CAAA;AAC/B,cAAc,wBAAwB,CAAA;AACtC,cAAc,iBAAiB,CAAA;AAC/B,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAA;AAC7C,cAAc,iBAAiB,CAAA;AAC/B,cAAc,0BAA0B,CAAA;AACxC,cAAc,cAAc,CAAA;AAC5B,cAAc,wBAAwB,CAAA;AACtC,OAAO,KAAK,SAAS,MAAM,qBAAqB,CAAA;AAChD,cAAc,WAAW,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA;AACzC,cAAc,WAAW,CAAA;AACzB,cAAc,oBAAoB,CAAA;AAClC,cAAc,mCAAmC,CAAA;AACjD,cAAc,0BAA0B,CAAA;AACxC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,iBAAiB,CAAA;AAC/B,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAA;AAC7C,cAAc,iBAAiB,CAAA;AAC/B,cAAc,0BAA0B,CAAA;AACxC,cAAc,cAAc,CAAA;AAC5B,cAAc,wBAAwB,CAAA;AACtC,OAAO,KAAK,SAAS,MAAM,qBAAqB,CAAA;AAChD,cAAc,WAAW,CAAA"}
@@ -5,15 +5,15 @@ import { UnexpectedError } from '../adapter-types.js';
5
5
  import type { LiveStoreSchema } from '../schema/mod.js';
6
6
  import type { InitialBlockingSyncContext, LeaderSyncProcessor } from './types.js';
7
7
  /**
8
- * The LeaderSyncProcessor manages synchronization of mutations between
8
+ * The LeaderSyncProcessor manages synchronization of events between
9
9
  * the local state and the sync backend, ensuring efficient and orderly processing.
10
10
  *
11
11
  * In the LeaderSyncProcessor, pulling always has precedence over pushing.
12
12
  *
13
13
  * Responsibilities:
14
- * - Queueing incoming local mutations in a localPushesQueue.
15
- * - Broadcasting mutations to client sessions via pull queues.
16
- * - Pushing mutations to the sync backend.
14
+ * - Queueing incoming local events in a localPushesQueue.
15
+ * - Broadcasting events to client sessions via pull queues.
16
+ * - Pushing events to the sync backend.
17
17
  *
18
18
  * Notes:
19
19
  *
@@ -21,23 +21,23 @@ import type { InitialBlockingSyncContext, LeaderSyncProcessor } from './types.js
21
21
  * - localPushesQueue:
22
22
  * - Maintains events in ascending order.
23
23
  * - Uses `Deferred` objects to resolve/reject events based on application success.
24
- * - Processes events from the queue, applying mutations in batches.
24
+ * - Processes events from the queue, applying events in batches.
25
25
  * - Controlled by a `Latch` to manage execution flow.
26
26
  * - The latch closes on pull receipt and re-opens post-pull completion.
27
27
  * - Processes up to `maxBatchSize` events per cycle.
28
28
  *
29
- * Currently we're advancing the db read model and mutation log in lockstep, but we could also decouple this in the future
29
+ * Currently we're advancing the db read model and eventlog in lockstep, but we could also decouple this in the future
30
30
  *
31
31
  * Tricky concurrency scenarios:
32
32
  * - Queued local push batches becoming invalid due to a prior local push item being rejected.
33
33
  * Solution: Introduce a generation number for local push batches which is used to filter out old batches items in case of rejection.
34
34
  *
35
35
  */
36
- export declare const makeLeaderSyncProcessor: ({ schema, dbMutationLogMissing, dbMutationLog, dbReadModel, dbReadModelMissing, initialBlockingSyncContext, onError, params, testing, }: {
36
+ export declare const makeLeaderSyncProcessor: ({ schema, dbEventlogMissing, dbEventlog, dbReadModel, dbReadModelMissing, initialBlockingSyncContext, onError, params, testing, }: {
37
37
  schema: LiveStoreSchema;
38
- /** Only used to know whether we can safely query dbMutationLog during setup execution */
39
- dbMutationLogMissing: boolean;
40
- dbMutationLog: SqliteDb;
38
+ /** Only used to know whether we can safely query dbEventlog during setup execution */
39
+ dbEventlogMissing: boolean;
40
+ dbEventlog: SqliteDb;
41
41
  dbReadModel: SqliteDb;
42
42
  /** Only used to know whether we can safely query dbReadModel during setup execution */
43
43
  dbReadModelMissing: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"LeaderSyncProcessor.d.ts","sourceRoot":"","sources":["../../src/leader-thread/LeaderSyncProcessor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAuB,KAAK,EAAU,MAAM,yBAAyB,CAAA;AACjF,OAAO,EAGL,MAAM,EASP,MAAM,yBAAyB,CAAA;AAGhC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAavD,OAAO,KAAK,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAUjF;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,uBAAuB,GAAI,yIAUrC;IACD,MAAM,EAAE,eAAe,CAAA;IACvB,yFAAyF;IACzF,oBAAoB,EAAE,OAAO,CAAA;IAC7B,aAAa,EAAE,QAAQ,CAAA;IACvB,WAAW,EAAE,QAAQ,CAAA;IACrB,uFAAuF;IACvF,kBAAkB,EAAE,OAAO,CAAA;IAC3B,0BAA0B,EAAE,0BAA0B,CAAA;IACtD,OAAO,EAAE,UAAU,GAAG,QAAQ,CAAA;IAC9B,MAAM,EAAE;QACN;;WAEG;QACH,kBAAkB,CAAC,EAAE,MAAM,CAAA;QAC3B;;WAEG;QACH,oBAAoB,CAAC,EAAE,MAAM,CAAA;KAC9B,CAAA;IACD,OAAO,EAAE;QACP,MAAM,CAAC,EAAE;YACP,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;SAC1C,CAAA;KACF,CAAA;CACF,KAAG,MAAM,CAAC,MAAM,CAAC,mBAAmB,EAAE,eAAe,EAAE,KAAK,CAAC,KAAK,CAmS/D,CAAA"}
1
+ {"version":3,"file":"LeaderSyncProcessor.d.ts","sourceRoot":"","sources":["../../src/leader-thread/LeaderSyncProcessor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAuB,KAAK,EAAU,MAAM,yBAAyB,CAAA;AACjF,OAAO,EAGL,MAAM,EASP,MAAM,yBAAyB,CAAA;AAGhC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAavD,OAAO,KAAK,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAUjF;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,uBAAuB,GAAI,mIAUrC;IACD,MAAM,EAAE,eAAe,CAAA;IACvB,sFAAsF;IACtF,iBAAiB,EAAE,OAAO,CAAA;IAC1B,UAAU,EAAE,QAAQ,CAAA;IACpB,WAAW,EAAE,QAAQ,CAAA;IACrB,uFAAuF;IACvF,kBAAkB,EAAE,OAAO,CAAA;IAC3B,0BAA0B,EAAE,0BAA0B,CAAA;IACtD,OAAO,EAAE,UAAU,GAAG,QAAQ,CAAA;IAC9B,MAAM,EAAE;QACN;;WAEG;QACH,kBAAkB,CAAC,EAAE,MAAM,CAAA;QAC3B;;WAEG;QACH,oBAAoB,CAAC,EAAE,MAAM,CAAA;KAC9B,CAAA;IACD,OAAO,EAAE;QACP,MAAM,CAAC,EAAE;YACP,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;SAC1C,CAAA;KACF,CAAA;CACF,KAAG,MAAM,CAAC,MAAM,CAAC,mBAAmB,EAAE,eAAe,EAAE,KAAK,CAAC,KAAK,CA2R/D,CAAA"}
@@ -1,23 +1,23 @@
1
1
  import { casesHandled, isNotUndefined, LS_DEV, shouldNeverHappen, TRACE_VERBOSE } from '@livestore/utils';
2
2
  import { BucketQueue, Deferred, Effect, Exit, FiberHandle, OtelTracer, Queue, ReadonlyArray, Stream, Subscribable, SubscriptionRef, } from '@livestore/utils/effect';
3
3
  import { UnexpectedError } from '../adapter-types.js';
4
- import { EventId, getMutationDef, LEADER_MERGE_COUNTER_TABLE, MutationEvent, SESSION_CHANGESET_META_TABLE, } from '../schema/mod.js';
4
+ import { EventId, getEventDef, LEADER_MERGE_COUNTER_TABLE, LiveStoreEvent, SESSION_CHANGESET_META_TABLE, } from '../schema/mod.js';
5
5
  import { LeaderAheadError } from '../sync/sync.js';
6
6
  import * as SyncState from '../sync/syncstate.js';
7
7
  import { sql } from '../util.js';
8
- import { rollback } from './apply-mutation.js';
9
- import * as Mutationlog from './mutationlog.js';
8
+ import { rollback } from './apply-event.js';
9
+ import * as Eventlog from './eventlog.js';
10
10
  import { LeaderThreadCtx } from './types.js';
11
11
  /**
12
- * The LeaderSyncProcessor manages synchronization of mutations between
12
+ * The LeaderSyncProcessor manages synchronization of events between
13
13
  * the local state and the sync backend, ensuring efficient and orderly processing.
14
14
  *
15
15
  * In the LeaderSyncProcessor, pulling always has precedence over pushing.
16
16
  *
17
17
  * Responsibilities:
18
- * - Queueing incoming local mutations in a localPushesQueue.
19
- * - Broadcasting mutations to client sessions via pull queues.
20
- * - Pushing mutations to the sync backend.
18
+ * - Queueing incoming local events in a localPushesQueue.
19
+ * - Broadcasting events to client sessions via pull queues.
20
+ * - Pushing events to the sync backend.
21
21
  *
22
22
  * Notes:
23
23
  *
@@ -25,26 +25,26 @@ import { LeaderThreadCtx } from './types.js';
25
25
  * - localPushesQueue:
26
26
  * - Maintains events in ascending order.
27
27
  * - Uses `Deferred` objects to resolve/reject events based on application success.
28
- * - Processes events from the queue, applying mutations in batches.
28
+ * - Processes events from the queue, applying events in batches.
29
29
  * - Controlled by a `Latch` to manage execution flow.
30
30
  * - The latch closes on pull receipt and re-opens post-pull completion.
31
31
  * - Processes up to `maxBatchSize` events per cycle.
32
32
  *
33
- * Currently we're advancing the db read model and mutation log in lockstep, but we could also decouple this in the future
33
+ * Currently we're advancing the db read model and eventlog in lockstep, but we could also decouple this in the future
34
34
  *
35
35
  * Tricky concurrency scenarios:
36
36
  * - Queued local push batches becoming invalid due to a prior local push item being rejected.
37
37
  * Solution: Introduce a generation number for local push batches which is used to filter out old batches items in case of rejection.
38
38
  *
39
39
  */
40
- export const makeLeaderSyncProcessor = ({ schema, dbMutationLogMissing, dbMutationLog, dbReadModel, dbReadModelMissing, initialBlockingSyncContext, onError, params, testing, }) => Effect.gen(function* () {
40
+ export const makeLeaderSyncProcessor = ({ schema, dbEventlogMissing, dbEventlog, dbReadModel, dbReadModelMissing, initialBlockingSyncContext, onError, params, testing, }) => Effect.gen(function* () {
41
41
  const syncBackendPushQueue = yield* BucketQueue.make();
42
42
  const localPushBatchSize = params.localPushBatchSize ?? 10;
43
43
  const backendPushBatchSize = params.backendPushBatchSize ?? 50;
44
44
  const syncStateSref = yield* SubscriptionRef.make(undefined);
45
- const isClientEvent = (mutationEventEncoded) => {
46
- const mutationDef = getMutationDef(schema, mutationEventEncoded.mutation);
47
- return mutationDef.options.clientOnly;
45
+ const isClientEvent = (eventEncoded) => {
46
+ const eventDef = getEventDef(schema, eventEncoded.name);
47
+ return eventDef.eventDef.options.clientOnly;
48
48
  };
49
49
  const connectedClientSessionPullQueues = yield* makePullQueueSet;
50
50
  /**
@@ -86,12 +86,12 @@ export const makeLeaderSyncProcessor = ({ schema, dbMutationLogMissing, dbMutati
86
86
  const generation = currentLocalPushGenerationRef.current;
87
87
  if (waitForProcessing) {
88
88
  const deferreds = yield* Effect.forEach(newEvents, () => Deferred.make());
89
- const items = newEvents.map((mutationEventEncoded, i) => [mutationEventEncoded, deferreds[i], generation]);
89
+ const items = newEvents.map((eventEncoded, i) => [eventEncoded, deferreds[i], generation]);
90
90
  yield* BucketQueue.offerAll(localPushesQueue, items);
91
91
  yield* Effect.all(deferreds);
92
92
  }
93
93
  else {
94
- const items = newEvents.map((mutationEventEncoded) => [mutationEventEncoded, undefined, generation]);
94
+ const items = newEvents.map((eventEncoded) => [eventEncoded, undefined, generation]);
95
95
  yield* BucketQueue.offerAll(localPushesQueue, items);
96
96
  }
97
97
  }).pipe(Effect.withSpan('@livestore/common:LeaderSyncProcessor:push', {
@@ -101,19 +101,19 @@ export const makeLeaderSyncProcessor = ({ schema, dbMutationLogMissing, dbMutati
101
101
  },
102
102
  links: ctxRef.current?.span ? [{ _tag: 'SpanLink', span: ctxRef.current.span, attributes: {} }] : undefined,
103
103
  }));
104
- const pushPartial = ({ mutationEvent: { mutation, args }, clientId, sessionId, }) => Effect.gen(function* () {
104
+ const pushPartial = ({ event: { name, args }, clientId, sessionId }) => Effect.gen(function* () {
105
105
  const syncState = yield* syncStateSref;
106
106
  if (syncState === undefined)
107
107
  return shouldNeverHappen('Not initialized');
108
- const mutationDef = getMutationDef(schema, mutation);
109
- const mutationEventEncoded = new MutationEvent.EncodedWithMeta({
110
- mutation,
108
+ const eventDef = getEventDef(schema, name);
109
+ const eventEncoded = new LiveStoreEvent.EncodedWithMeta({
110
+ name,
111
111
  args,
112
112
  clientId,
113
113
  sessionId,
114
- ...EventId.nextPair(syncState.localHead, mutationDef.options.clientOnly),
114
+ ...EventId.nextPair(syncState.localHead, eventDef.eventDef.options.clientOnly),
115
115
  });
116
- yield* push([mutationEventEncoded]);
116
+ yield* push([eventEncoded]);
117
117
  }).pipe(Effect.catchTag('LeaderAheadError', Effect.orDie));
118
118
  // Starts various background loops
119
119
  const boot = Effect.gen(function* () {
@@ -127,33 +127,31 @@ export const makeLeaderSyncProcessor = ({ schema, dbMutationLogMissing, dbMutati
127
127
  devtoolsLatch: devtools.enabled ? devtools.syncBackendLatch : undefined,
128
128
  runtime,
129
129
  };
130
- const initialLocalHead = dbMutationLogMissing ? EventId.ROOT : Mutationlog.getClientHeadFromDb(dbMutationLog);
131
- const initialBackendHead = dbMutationLogMissing
132
- ? EventId.ROOT.global
133
- : Mutationlog.getBackendHeadFromDb(dbMutationLog);
130
+ const initialLocalHead = dbEventlogMissing ? EventId.ROOT : Eventlog.getClientHeadFromDb(dbEventlog);
131
+ const initialBackendHead = dbEventlogMissing ? EventId.ROOT.global : Eventlog.getBackendHeadFromDb(dbEventlog);
134
132
  if (initialBackendHead > initialLocalHead.global) {
135
133
  return shouldNeverHappen(`During boot the backend head (${initialBackendHead}) should never be greater than the local head (${initialLocalHead.global})`);
136
134
  }
137
- const pendingMutationEvents = dbMutationLogMissing
135
+ const pendingEvents = dbEventlogMissing
138
136
  ? []
139
- : yield* Mutationlog.getMutationEventsSince({ global: initialBackendHead, client: EventId.clientDefault });
137
+ : yield* Eventlog.getEventsSince({ global: initialBackendHead, client: EventId.clientDefault });
140
138
  const initialSyncState = new SyncState.SyncState({
141
- pending: pendingMutationEvents,
139
+ pending: pendingEvents,
142
140
  upstreamHead: { global: initialBackendHead, client: EventId.clientDefault },
143
141
  localHead: initialLocalHead,
144
142
  });
145
143
  /** State transitions need to happen atomically, so we use a Ref to track the state */
146
144
  yield* SubscriptionRef.set(syncStateSref, initialSyncState);
147
145
  // Rehydrate sync queue
148
- if (pendingMutationEvents.length > 0) {
149
- const globalPendingMutationEvents = pendingMutationEvents
150
- // Don't sync clientOnly mutations
151
- .filter((mutationEventEncoded) => {
152
- const mutationDef = getMutationDef(schema, mutationEventEncoded.mutation);
153
- return mutationDef.options.clientOnly === false;
146
+ if (pendingEvents.length > 0) {
147
+ const globalPendingEvents = pendingEvents
148
+ // Don't sync clientOnly events
149
+ .filter((eventEncoded) => {
150
+ const eventDef = getEventDef(schema, eventEncoded.name);
151
+ return eventDef.eventDef.options.clientOnly === false;
154
152
  });
155
- if (globalPendingMutationEvents.length > 0) {
156
- yield* BucketQueue.offerAll(syncBackendPushQueue, globalPendingMutationEvents);
153
+ if (globalPendingEvents.length > 0) {
154
+ yield* BucketQueue.offerAll(syncBackendPushQueue, globalPendingEvents);
157
155
  }
158
156
  }
159
157
  const shutdownOnError = (cause) => Effect.gen(function* () {
@@ -230,7 +228,7 @@ export const makeLeaderSyncProcessor = ({ schema, dbMutationLogMissing, dbMutati
230
228
  return {
231
229
  payload: {
232
230
  _tag: 'upstream-advance',
233
- newEvents: ReadonlyArray.dropWhile(payload.newEvents, (mutationEventEncoded) => EventId.isGreaterThanOrEqual(cursor.eventId, mutationEventEncoded.id)),
231
+ newEvents: ReadonlyArray.dropWhile(payload.newEvents, (eventEncoded) => EventId.isGreaterThanOrEqual(cursor.eventId, eventEncoded.id)),
234
232
  },
235
233
  mergeCounter,
236
234
  };
@@ -276,7 +274,7 @@ const backgroundApplyLocalPushes = ({ localPushesLatch, localPushesQueue, pullLa
276
274
  // It's important that we filter after we got localPushesLatch, otherwise we might filter with the old generation
277
275
  const filteredBatchItems = batchItems
278
276
  .filter(([_1, _2, generation]) => generation === currentLocalPushGenerationRef.current)
279
- .map(([mutationEventEncoded, deferred]) => [mutationEventEncoded, deferred]);
277
+ .map(([eventEncoded, deferred]) => [eventEncoded, deferred]);
280
278
  if (filteredBatchItems.length === 0) {
281
279
  // console.log('dropping old-gen batch', currentLocalPushGenerationRef.current)
282
280
  // Allow the backend pulling to start
@@ -291,7 +289,7 @@ const backgroundApplyLocalPushes = ({ localPushesLatch, localPushesQueue, pullLa
291
289
  syncState,
292
290
  payload: { _tag: 'local-push', newEvents },
293
291
  isClientEvent,
294
- isEqualEvent: MutationEvent.isEqualEncoded,
292
+ isEqualEvent: LiveStoreEvent.isEqualEncoded,
295
293
  });
296
294
  const mergeCounter = yield* incrementMergeCounter(mergeCounterRef);
297
295
  switch (mergeResult._tag) {
@@ -355,44 +353,44 @@ const backgroundApplyLocalPushes = ({ localPushesLatch, localPushesQueue, pullLa
355
353
  batchSize: newEvents.length,
356
354
  mergeResult: TRACE_VERBOSE ? JSON.stringify(mergeResult) : undefined,
357
355
  });
358
- // Don't sync clientOnly mutations
359
- const filteredBatch = mergeResult.newEvents.filter((mutationEventEncoded) => {
360
- const mutationDef = getMutationDef(schema, mutationEventEncoded.mutation);
361
- return mutationDef.options.clientOnly === false;
356
+ // Don't sync clientOnly events
357
+ const filteredBatch = mergeResult.newEvents.filter((eventEncoded) => {
358
+ const eventDef = getEventDef(schema, eventEncoded.name);
359
+ return eventDef.eventDef.options.clientOnly === false;
362
360
  });
363
361
  yield* BucketQueue.offerAll(syncBackendPushQueue, filteredBatch);
364
- yield* applyMutationsBatch({ batchItems: mergeResult.newEvents, deferreds });
362
+ yield* applyEventsBatch({ batchItems: mergeResult.newEvents, deferreds });
365
363
  // Allow the backend pulling to start
366
364
  yield* pullLatch.open;
367
365
  }
368
366
  });
369
367
  // TODO how to handle errors gracefully
370
- const applyMutationsBatch = ({ batchItems, deferreds }) => Effect.gen(function* () {
371
- const { dbReadModel: db, dbMutationLog, applyMutation } = yield* LeaderThreadCtx;
372
- // NOTE We always start a transaction to ensure consistency between db and mutation log (even for single-item batches)
368
+ const applyEventsBatch = ({ batchItems, deferreds }) => Effect.gen(function* () {
369
+ const { dbReadModel: db, dbEventlog, applyEvent } = yield* LeaderThreadCtx;
370
+ // NOTE We always start a transaction to ensure consistency between db and eventlog (even for single-item batches)
373
371
  db.execute('BEGIN TRANSACTION', undefined); // Start the transaction
374
- dbMutationLog.execute('BEGIN TRANSACTION', undefined); // Start the transaction
372
+ dbEventlog.execute('BEGIN TRANSACTION', undefined); // Start the transaction
375
373
  yield* Effect.addFinalizer((exit) => Effect.gen(function* () {
376
374
  if (Exit.isSuccess(exit))
377
375
  return;
378
376
  // Rollback in case of an error
379
377
  db.execute('ROLLBACK', undefined);
380
- dbMutationLog.execute('ROLLBACK', undefined);
378
+ dbEventlog.execute('ROLLBACK', undefined);
381
379
  }));
382
380
  for (let i = 0; i < batchItems.length; i++) {
383
- const { sessionChangeset } = yield* applyMutation(batchItems[i]);
381
+ const { sessionChangeset } = yield* applyEvent(batchItems[i]);
384
382
  batchItems[i].meta.sessionChangeset = sessionChangeset;
385
383
  if (deferreds?.[i] !== undefined) {
386
384
  yield* Deferred.succeed(deferreds[i], void 0);
387
385
  }
388
386
  }
389
387
  db.execute('COMMIT', undefined); // Commit the transaction
390
- dbMutationLog.execute('COMMIT', undefined); // Commit the transaction
391
- }).pipe(Effect.uninterruptible, Effect.scoped, Effect.withSpan('@livestore/common:LeaderSyncProcessor:applyMutationItems', {
388
+ dbEventlog.execute('COMMIT', undefined); // Commit the transaction
389
+ }).pipe(Effect.uninterruptible, Effect.scoped, Effect.withSpan('@livestore/common:LeaderSyncProcessor:applyEventItems', {
392
390
  attributes: { batchSize: batchItems.length },
393
391
  }), Effect.tapCauseLogPretty, UnexpectedError.mapToUnexpectedError);
394
392
  const backgroundBackendPulling = ({ initialBackendHead, isClientEvent, restartBackendPushing, otelSpan, syncStateSref, localPushesLatch, pullLatch, devtoolsLatch, initialBlockingSyncContext, connectedClientSessionPullQueues, mergeCounterRef, mergePayloads, advancePushHead, }) => Effect.gen(function* () {
395
- const { syncBackend, dbReadModel: db, dbMutationLog, schema } = yield* LeaderThreadCtx;
393
+ const { syncBackend, dbReadModel: db, dbEventlog, schema } = yield* LeaderThreadCtx;
396
394
  if (syncBackend === undefined)
397
395
  return;
398
396
  const onNewPullChunk = (newEvents, remaining) => Effect.gen(function* () {
@@ -412,7 +410,7 @@ const backgroundBackendPulling = ({ initialBackendHead, isClientEvent, restartBa
412
410
  syncState,
413
411
  payload: SyncState.PayloadUpstreamAdvance.make({ newEvents }),
414
412
  isClientEvent,
415
- isEqualEvent: MutationEvent.isEqualEncoded,
413
+ isEqualEvent: LiveStoreEvent.isEqualEncoded,
416
414
  ignoreClientEvents: true,
417
415
  });
418
416
  const mergeCounter = yield* incrementMergeCounter(mergeCounterRef);
@@ -427,7 +425,7 @@ const backgroundBackendPulling = ({ initialBackendHead, isClientEvent, restartBa
427
425
  return yield* Effect.fail(mergeResult.cause);
428
426
  }
429
427
  const newBackendHead = newEvents.at(-1).id;
430
- Mutationlog.updateBackendHead(dbMutationLog, newBackendHead);
428
+ Eventlog.updateBackendHead(dbEventlog, newBackendHead);
431
429
  if (mergeResult._tag === 'rebase') {
432
430
  otelSpan?.addEvent(`[${mergeCounter}]:pull:rebase`, {
433
431
  newEventsCount: newEvents.length,
@@ -435,13 +433,13 @@ const backgroundBackendPulling = ({ initialBackendHead, isClientEvent, restartBa
435
433
  rollbackCount: mergeResult.rollbackEvents.length,
436
434
  mergeResult: TRACE_VERBOSE ? JSON.stringify(mergeResult) : undefined,
437
435
  });
438
- const globalRebasedPendingEvents = mergeResult.newSyncState.pending.filter((mutationEvent) => {
439
- const mutationDef = getMutationDef(schema, mutationEvent.mutation);
440
- return mutationDef.options.clientOnly === false;
436
+ const globalRebasedPendingEvents = mergeResult.newSyncState.pending.filter((event) => {
437
+ const eventDef = getEventDef(schema, event.name);
438
+ return eventDef.eventDef.options.clientOnly === false;
441
439
  });
442
440
  yield* restartBackendPushing(globalRebasedPendingEvents);
443
441
  if (mergeResult.rollbackEvents.length > 0) {
444
- yield* rollback({ db, dbMutationLog, eventIdsToRollback: mergeResult.rollbackEvents.map((_) => _.id) });
442
+ yield* rollback({ db, dbEventlog, eventIdsToRollback: mergeResult.rollbackEvents.map((_) => _.id) });
445
443
  }
446
444
  yield* connectedClientSessionPullQueues.offer({
447
445
  payload: SyncState.PayloadUpstreamRebase.make({
@@ -468,21 +466,21 @@ const backgroundBackendPulling = ({ initialBackendHead, isClientEvent, restartBa
468
466
  if (mergeResult.confirmedEvents.length > 0) {
469
467
  // `mergeResult.confirmedEvents` don't contain the correct sync metadata, so we need to use
470
468
  // `newEvents` instead which we filter via `mergeResult.confirmedEvents`
471
- const confirmedNewEvents = newEvents.filter((mutationEvent) => mergeResult.confirmedEvents.some((confirmedEvent) => EventId.isEqual(mutationEvent.id, confirmedEvent.id)));
472
- yield* Mutationlog.updateSyncMetadata(confirmedNewEvents);
469
+ const confirmedNewEvents = newEvents.filter((event) => mergeResult.confirmedEvents.some((confirmedEvent) => EventId.isEqual(event.id, confirmedEvent.id)));
470
+ yield* Eventlog.updateSyncMetadata(confirmedNewEvents);
473
471
  }
474
472
  }
475
473
  // Removes the changeset rows which are no longer needed as we'll never have to rollback beyond this point
476
474
  trimChangesetRows(db, newBackendHead);
477
475
  advancePushHead(mergeResult.newSyncState.localHead);
478
- yield* applyMutationsBatch({ batchItems: mergeResult.newEvents, deferreds: undefined });
476
+ yield* applyEventsBatch({ batchItems: mergeResult.newEvents, deferreds: undefined });
479
477
  yield* SubscriptionRef.set(syncStateSref, mergeResult.newSyncState);
480
478
  // Allow local pushes to be processed again
481
479
  if (remaining === 0) {
482
480
  yield* localPushesLatch.open;
483
481
  }
484
482
  });
485
- const cursorInfo = yield* Mutationlog.getSyncBackendCursorInfo(initialBackendHead);
483
+ const cursorInfo = yield* Eventlog.getSyncBackendCursorInfo(initialBackendHead);
486
484
  yield* syncBackend.pull(cursorInfo).pipe(
487
485
  // TODO only take from queue while connected
488
486
  Stream.tap(({ batch, remaining }) => Effect.gen(function* () {
@@ -492,11 +490,11 @@ const backgroundBackendPulling = ({ initialBackendHead, isClientEvent, restartBa
492
490
  // batch: TRACE_VERBOSE ? batch : undefined,
493
491
  // },
494
492
  // })
495
- // NOTE we only want to take process mutations when the sync backend is connected
493
+ // NOTE we only want to take process events when the sync backend is connected
496
494
  // (e.g. needed for simulating being offline)
497
495
  // TODO remove when there's a better way to handle this in stream above
498
496
  yield* SubscriptionRef.waitUntil(syncBackend.isConnected, (isConnected) => isConnected === true);
499
- yield* onNewPullChunk(batch.map((_) => MutationEvent.EncodedWithMeta.fromGlobal(_.mutationEventEncoded, _.metadata)), remaining);
497
+ yield* onNewPullChunk(batch.map((_) => LiveStoreEvent.EncodedWithMeta.fromGlobal(_.eventEncoded, _.metadata)), remaining);
500
498
  yield* initialBlockingSyncContext.update({ processed: batch.length, remaining });
501
499
  })), Stream.runDrain, Effect.interruptible);
502
500
  }).pipe(Effect.withSpan('@livestore/common:LeaderSyncProcessor:backend-pulling'));
@@ -1 +1 @@
1
- {"version":3,"file":"LeaderSyncProcessor.js","sourceRoot":"","sources":["../../src/leader-thread/LeaderSyncProcessor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LeaderSyncProcessor.js","sourceRoot":"","sources":["../../src/leader-thread/LeaderSyncProcessor.ts"],"names":[],"mappings":"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"}
@@ -2,15 +2,15 @@ import { Effect } from '@livestore/utils/effect';
2
2
  import type { SqliteDb } from '../adapter-types.js';
3
3
  import type { LiveStoreSchema } from '../schema/mod.js';
4
4
  import { EventId } from '../schema/mod.js';
5
- import type { ApplyMutation } from './types.js';
6
- export declare const makeApplyMutation: ({ schema, dbReadModel: db, dbMutationLog, }: {
5
+ import type { ApplyEvent } from './types.js';
6
+ export declare const makeApplyEvent: ({ schema, dbReadModel: db, dbEventlog, }: {
7
7
  schema: LiveStoreSchema;
8
8
  dbReadModel: SqliteDb;
9
- dbMutationLog: SqliteDb;
10
- }) => Effect.Effect<ApplyMutation, never>;
11
- export declare const rollback: ({ db, dbMutationLog, eventIdsToRollback, }: {
9
+ dbEventlog: SqliteDb;
10
+ }) => Effect.Effect<ApplyEvent, never>;
11
+ export declare const rollback: ({ db, dbEventlog, eventIdsToRollback, }: {
12
12
  db: SqliteDb;
13
- dbMutationLog: SqliteDb;
13
+ dbEventlog: SqliteDb;
14
14
  eventIdsToRollback: EventId.EventId[];
15
15
  }) => Effect.Effect<void, never, never>;
16
- //# sourceMappingURL=apply-mutation.d.ts.map
16
+ //# sourceMappingURL=apply-event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply-event.d.ts","sourceRoot":"","sources":["../../src/leader-thread/apply-event.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAyB,MAAM,yBAAyB,CAAA;AAEvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAEnD,OAAO,KAAK,EAAE,eAAe,EAA2B,MAAM,kBAAkB,CAAA;AAChF,OAAO,EACL,OAAO,EAKR,MAAM,kBAAkB,CAAA;AAKzB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAE5C,eAAO,MAAM,cAAc,GAAI,0CAI5B;IACD,MAAM,EAAE,eAAe,CAAA;IACvB,WAAW,EAAE,QAAQ,CAAA;IACrB,UAAU,EAAE,QAAQ,CAAA;CACrB,KAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAiG/B,CAAA;AAEJ,eAAO,MAAM,QAAQ,GAAI,yCAItB;IACD,EAAE,EAAE,QAAQ,CAAA;IACZ,UAAU,EAAE,QAAQ,CAAA;IACpB,kBAAkB,EAAE,OAAO,CAAC,OAAO,EAAE,CAAA;CACtC,sCAsCE,CAAA"}
@@ -0,0 +1,103 @@
1
+ import { LS_DEV, shouldNeverHappen } from '@livestore/utils';
2
+ import { Effect, ReadonlyArray, Schema } from '@livestore/utils/effect';
3
+ import { getExecArgsFromEvent } from '../materializer-helper.js';
4
+ import { EventId, EVENTLOG_META_TABLE, getEventDef, SESSION_CHANGESET_META_TABLE, sessionChangesetMetaTable, } from '../schema/mod.js';
5
+ import { insertRow } from '../sql-queries/index.js';
6
+ import { sql } from '../util.js';
7
+ import { execSql, execSqlPrepared } from './connection.js';
8
+ import * as Eventlog from './eventlog.js';
9
+ export const makeApplyEvent = ({ schema, dbReadModel: db, dbEventlog, }) => Effect.gen(function* () {
10
+ const eventDefSchemaHashMap = new Map(
11
+ // TODO Running `Schema.hash` can be a bottleneck for larger schemas. There is an opportunity to run this
12
+ // at build time and lookup the pre-computed hash at runtime.
13
+ // Also see https://github.com/Effect-TS/effect/issues/2719
14
+ [...schema.eventsDefsMap.entries()].map(([k, v]) => [k, Schema.hash(v.schema)]));
15
+ return (eventEncoded, options) => Effect.gen(function* () {
16
+ const skipEventlog = options?.skipEventlog ?? false;
17
+ const eventName = eventEncoded.name;
18
+ const eventDef = getEventDef(schema, eventName);
19
+ const execArgsArr = getExecArgsFromEvent({
20
+ eventDef,
21
+ event: { decoded: undefined, encoded: eventEncoded },
22
+ });
23
+ // NOTE we might want to bring this back if we want to debug no-op events
24
+ // const makeExecuteOptions = (statementSql: string, bindValues: any) => ({
25
+ // onRowsChanged: (rowsChanged: number) => {
26
+ // if (rowsChanged === 0) {
27
+ // console.warn(`Event "${eventDef.name}" did not affect any rows:`, statementSql, bindValues)
28
+ // }
29
+ // },
30
+ // })
31
+ // console.group('[@livestore/common:leader-thread:applyEvent]', { eventName })
32
+ const session = db.session();
33
+ for (const { statementSql, bindValues } of execArgsArr) {
34
+ // console.debug(eventName, statementSql, bindValues)
35
+ // TODO use cached prepared statements instead of exec
36
+ yield* execSqlPrepared(db, statementSql, bindValues);
37
+ }
38
+ const changeset = session.changeset();
39
+ session.finish();
40
+ // TODO use prepared statements
41
+ yield* execSql(db, ...insertRow({
42
+ tableName: SESSION_CHANGESET_META_TABLE,
43
+ columns: sessionChangesetMetaTable.sqliteDef.columns,
44
+ values: {
45
+ idGlobal: eventEncoded.id.global,
46
+ idClient: eventEncoded.id.client,
47
+ // NOTE the changeset will be empty (i.e. null) for no-op events
48
+ changeset: changeset ?? null,
49
+ debug: LS_DEV ? execArgsArr : null,
50
+ },
51
+ }));
52
+ // console.groupEnd()
53
+ // write to eventlog
54
+ if (skipEventlog === false) {
55
+ const eventName = eventEncoded.name;
56
+ const eventDefSchemaHash = eventDefSchemaHashMap.get(eventName) ?? shouldNeverHappen(`Unknown event definition: ${eventName}`);
57
+ yield* Eventlog.insertIntoEventlog(eventEncoded, dbEventlog, eventDefSchemaHash, eventEncoded.clientId, eventEncoded.sessionId);
58
+ }
59
+ else {
60
+ // console.debug('[@livestore/common:leader-thread] skipping eventlog write', mutation, statementSql, bindValues)
61
+ }
62
+ return {
63
+ sessionChangeset: changeset
64
+ ? {
65
+ _tag: 'sessionChangeset',
66
+ data: changeset,
67
+ debug: LS_DEV ? execArgsArr : null,
68
+ }
69
+ : { _tag: 'no-op' },
70
+ };
71
+ }).pipe(Effect.withSpan(`@livestore/common:leader-thread:applyEvent`, {
72
+ attributes: {
73
+ eventName: eventEncoded.name,
74
+ mutationId: eventEncoded.id,
75
+ 'span.label': `${EventId.toString(eventEncoded.id)} ${eventEncoded.name}`,
76
+ },
77
+ }));
78
+ });
79
+ export const rollback = ({ db, dbEventlog, eventIdsToRollback, }) => Effect.gen(function* () {
80
+ const rollbackEvents = db
81
+ .select(sql `SELECT * FROM ${SESSION_CHANGESET_META_TABLE} WHERE (idGlobal, idClient) IN (${eventIdsToRollback.map((id) => `(${id.global}, ${id.client})`).join(', ')})`)
82
+ .map((_) => ({ id: { global: _.idGlobal, client: _.idClient }, changeset: _.changeset, debug: _.debug }))
83
+ .toSorted((a, b) => EventId.compare(a.id, b.id));
84
+ // Apply changesets in reverse order
85
+ for (let i = rollbackEvents.length - 1; i >= 0; i--) {
86
+ const { changeset } = rollbackEvents[i];
87
+ if (changeset !== null) {
88
+ db.makeChangeset(changeset).invert().apply();
89
+ }
90
+ }
91
+ const eventIdPairChunks = ReadonlyArray.chunksOf(100)(eventIdsToRollback.map((id) => `(${id.global}, ${id.client})`));
92
+ // Delete the changeset rows
93
+ for (const eventIdPairChunk of eventIdPairChunks) {
94
+ db.execute(sql `DELETE FROM ${SESSION_CHANGESET_META_TABLE} WHERE (idGlobal, idClient) IN (${eventIdPairChunk.join(', ')})`);
95
+ }
96
+ // Delete the eventlog rows
97
+ for (const eventIdPairChunk of eventIdPairChunks) {
98
+ dbEventlog.execute(sql `DELETE FROM ${EVENTLOG_META_TABLE} WHERE (idGlobal, idClient) IN (${eventIdPairChunk.join(', ')})`);
99
+ }
100
+ }).pipe(Effect.withSpan('@livestore/common:LeaderSyncProcessor:rollback', {
101
+ attributes: { count: eventIdsToRollback.length },
102
+ }));
103
+ //# sourceMappingURL=apply-event.js.map