@livestore/common 0.4.0-dev.18 → 0.4.0-dev.19

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 (286) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/ClientSessionLeaderThreadProxy.d.ts +10 -10
  3. package/dist/ClientSessionLeaderThreadProxy.d.ts.map +1 -1
  4. package/dist/adapter-types.d.ts +5 -5
  5. package/dist/adapter-types.d.ts.map +1 -1
  6. package/dist/devtools/devtools-messages-client-session.d.ts +28 -23
  7. package/dist/devtools/devtools-messages-client-session.d.ts.map +1 -1
  8. package/dist/devtools/devtools-messages-client-session.js +2 -2
  9. package/dist/devtools/devtools-messages-client-session.js.map +1 -1
  10. package/dist/devtools/devtools-messages-common.d.ts +6 -6
  11. package/dist/devtools/devtools-messages-leader.d.ts +33 -28
  12. package/dist/devtools/devtools-messages-leader.d.ts.map +1 -1
  13. package/dist/devtools/devtools-messages-leader.js +8 -8
  14. package/dist/devtools/devtools-messages-leader.js.map +1 -1
  15. package/dist/errors.d.ts +6 -6
  16. package/dist/errors.d.ts.map +1 -1
  17. package/dist/errors.js +7 -7
  18. package/dist/errors.js.map +1 -1
  19. package/dist/leader-thread/LeaderSyncProcessor.d.ts +2 -2
  20. package/dist/leader-thread/LeaderSyncProcessor.d.ts.map +1 -1
  21. package/dist/leader-thread/LeaderSyncProcessor.js +28 -28
  22. package/dist/leader-thread/LeaderSyncProcessor.js.map +1 -1
  23. package/dist/leader-thread/eventlog.d.ts +13 -13
  24. package/dist/leader-thread/eventlog.d.ts.map +1 -1
  25. package/dist/leader-thread/eventlog.js +12 -11
  26. package/dist/leader-thread/eventlog.js.map +1 -1
  27. package/dist/leader-thread/leader-worker-devtools.d.ts +2 -2
  28. package/dist/leader-thread/leader-worker-devtools.d.ts.map +1 -1
  29. package/dist/leader-thread/leader-worker-devtools.js +3 -3
  30. package/dist/leader-thread/leader-worker-devtools.js.map +1 -1
  31. package/dist/leader-thread/make-leader-thread-layer.d.ts +2 -2
  32. package/dist/leader-thread/make-leader-thread-layer.d.ts.map +1 -1
  33. package/dist/leader-thread/make-leader-thread-layer.js +10 -8
  34. package/dist/leader-thread/make-leader-thread-layer.js.map +1 -1
  35. package/dist/leader-thread/materialize-event.d.ts +1 -1
  36. package/dist/leader-thread/materialize-event.d.ts.map +1 -1
  37. package/dist/leader-thread/materialize-event.js +2 -2
  38. package/dist/leader-thread/materialize-event.js.map +1 -1
  39. package/dist/leader-thread/recreate-db.d.ts +2 -2
  40. package/dist/leader-thread/recreate-db.d.ts.map +1 -1
  41. package/dist/leader-thread/recreate-db.js +5 -5
  42. package/dist/leader-thread/recreate-db.js.map +1 -1
  43. package/dist/leader-thread/shutdown-channel.d.ts +2 -2
  44. package/dist/leader-thread/shutdown-channel.d.ts.map +1 -1
  45. package/dist/leader-thread/shutdown-channel.js +2 -2
  46. package/dist/leader-thread/shutdown-channel.js.map +1 -1
  47. package/dist/leader-thread/types.d.ts +15 -15
  48. package/dist/leader-thread/types.d.ts.map +1 -1
  49. package/dist/make-client-session.d.ts +2 -2
  50. package/dist/make-client-session.d.ts.map +1 -1
  51. package/dist/materializer-helper.d.ts +5 -5
  52. package/dist/materializer-helper.d.ts.map +1 -1
  53. package/dist/materializer-helper.js.map +1 -1
  54. package/dist/rematerialize-from-eventlog.d.ts +2 -2
  55. package/dist/rematerialize-from-eventlog.d.ts.map +1 -1
  56. package/dist/rematerialize-from-eventlog.js +6 -6
  57. package/dist/rematerialize-from-eventlog.js.map +1 -1
  58. package/dist/schema/EventDef/define.d.ts +147 -0
  59. package/dist/schema/EventDef/define.d.ts.map +1 -0
  60. package/dist/schema/EventDef/define.js +139 -0
  61. package/dist/schema/EventDef/define.js.map +1 -0
  62. package/dist/schema/EventDef/event-def.d.ts +106 -0
  63. package/dist/schema/EventDef/event-def.d.ts.map +1 -0
  64. package/dist/schema/EventDef/event-def.js +2 -0
  65. package/dist/schema/EventDef/event-def.js.map +1 -0
  66. package/dist/schema/EventDef/facts.d.ts +118 -0
  67. package/dist/schema/EventDef/facts.d.ts.map +1 -0
  68. package/dist/schema/EventDef/facts.js +53 -0
  69. package/dist/schema/EventDef/facts.js.map +1 -0
  70. package/dist/schema/EventDef/materializer.d.ts +155 -0
  71. package/dist/schema/EventDef/materializer.d.ts.map +1 -0
  72. package/dist/schema/EventDef/materializer.js +83 -0
  73. package/dist/schema/EventDef/materializer.js.map +1 -0
  74. package/dist/schema/EventDef/mod.d.ts +5 -0
  75. package/dist/schema/EventDef/mod.d.ts.map +1 -0
  76. package/dist/schema/EventDef/mod.js +5 -0
  77. package/dist/schema/EventDef/mod.js.map +1 -0
  78. package/dist/schema/EventSequenceNumber/client.d.ts +136 -0
  79. package/dist/schema/EventSequenceNumber/client.d.ts.map +1 -0
  80. package/dist/schema/{EventSequenceNumber.js → EventSequenceNumber/client.js} +86 -39
  81. package/dist/schema/EventSequenceNumber/client.js.map +1 -0
  82. package/dist/schema/EventSequenceNumber/global.d.ts +15 -0
  83. package/dist/schema/EventSequenceNumber/global.d.ts.map +1 -0
  84. package/dist/schema/EventSequenceNumber/global.js +14 -0
  85. package/dist/schema/EventSequenceNumber/global.js.map +1 -0
  86. package/dist/schema/EventSequenceNumber/mod.d.ts +37 -0
  87. package/dist/schema/EventSequenceNumber/mod.d.ts.map +1 -0
  88. package/dist/schema/EventSequenceNumber/mod.js +37 -0
  89. package/dist/schema/EventSequenceNumber/mod.js.map +1 -0
  90. package/dist/schema/EventSequenceNumber.test.js +41 -41
  91. package/dist/schema/EventSequenceNumber.test.js.map +1 -1
  92. package/dist/schema/{LiveStoreEvent.d.ts → LiveStoreEvent/client.d.ts} +84 -101
  93. package/dist/schema/LiveStoreEvent/client.d.ts.map +1 -0
  94. package/dist/schema/{LiveStoreEvent.js → LiveStoreEvent/client.js} +69 -52
  95. package/dist/schema/LiveStoreEvent/client.js.map +1 -0
  96. package/dist/schema/LiveStoreEvent/for-event-def.d.ts +52 -0
  97. package/dist/schema/LiveStoreEvent/for-event-def.d.ts.map +1 -0
  98. package/dist/schema/LiveStoreEvent/for-event-def.js +2 -0
  99. package/dist/schema/LiveStoreEvent/for-event-def.js.map +1 -0
  100. package/dist/schema/LiveStoreEvent/global.d.ts +36 -0
  101. package/dist/schema/LiveStoreEvent/global.d.ts.map +1 -0
  102. package/dist/schema/LiveStoreEvent/global.js +31 -0
  103. package/dist/schema/LiveStoreEvent/global.js.map +1 -0
  104. package/dist/schema/LiveStoreEvent/input.d.ts +46 -0
  105. package/dist/schema/LiveStoreEvent/input.d.ts.map +1 -0
  106. package/dist/schema/LiveStoreEvent/input.js +26 -0
  107. package/dist/schema/LiveStoreEvent/input.js.map +1 -0
  108. package/dist/schema/LiveStoreEvent/mod.d.ts +5 -0
  109. package/dist/schema/LiveStoreEvent/mod.d.ts.map +1 -0
  110. package/dist/schema/LiveStoreEvent/mod.js +5 -0
  111. package/dist/schema/LiveStoreEvent/mod.js.map +1 -0
  112. package/dist/schema/events.d.ts +1 -1
  113. package/dist/schema/events.d.ts.map +1 -1
  114. package/dist/schema/events.js +1 -1
  115. package/dist/schema/events.js.map +1 -1
  116. package/dist/schema/mod.d.ts +3 -3
  117. package/dist/schema/mod.d.ts.map +1 -1
  118. package/dist/schema/mod.js +3 -3
  119. package/dist/schema/mod.js.map +1 -1
  120. package/dist/schema/schema.d.ts +1 -1
  121. package/dist/schema/schema.d.ts.map +1 -1
  122. package/dist/schema/state/sqlite/client-document-def.d.ts +1 -1
  123. package/dist/schema/state/sqlite/client-document-def.d.ts.map +1 -1
  124. package/dist/schema/state/sqlite/client-document-def.js +2 -2
  125. package/dist/schema/state/sqlite/client-document-def.js.map +1 -1
  126. package/dist/schema/state/sqlite/client-document-def.test.js.map +1 -1
  127. package/dist/schema/state/sqlite/column-def.js +13 -0
  128. package/dist/schema/state/sqlite/column-def.js.map +1 -1
  129. package/dist/schema/state/sqlite/column-def.test.js +2 -1
  130. package/dist/schema/state/sqlite/column-def.test.js.map +1 -1
  131. package/dist/schema/state/sqlite/mod.d.ts +2 -2
  132. package/dist/schema/state/sqlite/mod.d.ts.map +1 -1
  133. package/dist/schema/state/sqlite/mod.js +1 -1
  134. package/dist/schema/state/sqlite/mod.js.map +1 -1
  135. package/dist/schema/state/sqlite/query-builder/api.d.ts +12 -8
  136. package/dist/schema/state/sqlite/query-builder/api.d.ts.map +1 -1
  137. package/dist/schema/state/sqlite/query-builder/astToSql.d.ts.map +1 -1
  138. package/dist/schema/state/sqlite/query-builder/astToSql.js +18 -11
  139. package/dist/schema/state/sqlite/query-builder/astToSql.js.map +1 -1
  140. package/dist/schema/state/sqlite/query-builder/impl.test.js +119 -90
  141. package/dist/schema/state/sqlite/query-builder/impl.test.js.map +1 -1
  142. package/dist/schema/state/sqlite/system-tables/eventlog-tables.js +5 -5
  143. package/dist/schema/state/sqlite/system-tables/eventlog-tables.js.map +1 -1
  144. package/dist/schema/state/sqlite/system-tables/state-tables.js +3 -3
  145. package/dist/schema/state/sqlite/system-tables/state-tables.js.map +1 -1
  146. package/dist/schema/unknown-events.d.ts +3 -3
  147. package/dist/schema/unknown-events.d.ts.map +1 -1
  148. package/dist/schema-management/migrations.d.ts +2 -2
  149. package/dist/schema-management/migrations.d.ts.map +1 -1
  150. package/dist/schema-management/migrations.js.map +1 -1
  151. package/dist/schema-management/validate-schema.d.ts +3 -3
  152. package/dist/schema-management/validate-schema.d.ts.map +1 -1
  153. package/dist/schema-management/validate-schema.js +2 -2
  154. package/dist/schema-management/validate-schema.js.map +1 -1
  155. package/dist/sqlite-types.d.ts +3 -3
  156. package/dist/sqlite-types.d.ts.map +1 -1
  157. package/dist/sync/ClientSessionSyncProcessor.d.ts +5 -5
  158. package/dist/sync/ClientSessionSyncProcessor.d.ts.map +1 -1
  159. package/dist/sync/ClientSessionSyncProcessor.js +12 -12
  160. package/dist/sync/ClientSessionSyncProcessor.js.map +1 -1
  161. package/dist/sync/errors.d.ts +9 -4
  162. package/dist/sync/errors.d.ts.map +1 -1
  163. package/dist/sync/errors.js +6 -6
  164. package/dist/sync/errors.js.map +1 -1
  165. package/dist/sync/mock-sync-backend.d.ts +6 -6
  166. package/dist/sync/mock-sync-backend.d.ts.map +1 -1
  167. package/dist/sync/mock-sync-backend.js +4 -4
  168. package/dist/sync/mock-sync-backend.js.map +1 -1
  169. package/dist/sync/next/compact-events.js +2 -2
  170. package/dist/sync/next/compact-events.js.map +1 -1
  171. package/dist/sync/next/facts.d.ts +5 -5
  172. package/dist/sync/next/facts.d.ts.map +1 -1
  173. package/dist/sync/next/facts.js.map +1 -1
  174. package/dist/sync/next/history-dag-common.d.ts +5 -5
  175. package/dist/sync/next/history-dag-common.d.ts.map +1 -1
  176. package/dist/sync/next/history-dag-common.js +5 -5
  177. package/dist/sync/next/history-dag-common.js.map +1 -1
  178. package/dist/sync/next/history-dag.d.ts.map +1 -1
  179. package/dist/sync/next/history-dag.js +8 -8
  180. package/dist/sync/next/history-dag.js.map +1 -1
  181. package/dist/sync/next/rebase-events.d.ts +5 -5
  182. package/dist/sync/next/rebase-events.d.ts.map +1 -1
  183. package/dist/sync/next/rebase-events.js +5 -5
  184. package/dist/sync/next/rebase-events.js.map +1 -1
  185. package/dist/sync/next/test/event-fixtures.d.ts +2 -2
  186. package/dist/sync/next/test/event-fixtures.d.ts.map +1 -1
  187. package/dist/sync/next/test/event-fixtures.js +9 -9
  188. package/dist/sync/next/test/event-fixtures.js.map +1 -1
  189. package/dist/sync/sync-backend-kv.d.ts +3 -3
  190. package/dist/sync/sync-backend-kv.d.ts.map +1 -1
  191. package/dist/sync/sync-backend-kv.js +3 -3
  192. package/dist/sync/sync-backend-kv.js.map +1 -1
  193. package/dist/sync/sync-backend.d.ts +9 -9
  194. package/dist/sync/sync-backend.d.ts.map +1 -1
  195. package/dist/sync/syncstate.d.ts +55 -42
  196. package/dist/sync/syncstate.d.ts.map +1 -1
  197. package/dist/sync/syncstate.js +42 -42
  198. package/dist/sync/syncstate.js.map +1 -1
  199. package/dist/sync/syncstate.test.js +40 -40
  200. package/dist/sync/syncstate.test.js.map +1 -1
  201. package/dist/sync/validate-push-payload.d.ts +1 -1
  202. package/dist/sync/validate-push-payload.d.ts.map +1 -1
  203. package/dist/sync/validate-push-payload.js +2 -2
  204. package/dist/sync/validate-push-payload.js.map +1 -1
  205. package/dist/testing/event-factory.d.ts +3 -3
  206. package/dist/testing/event-factory.d.ts.map +1 -1
  207. package/dist/testing/event-factory.js +5 -7
  208. package/dist/testing/event-factory.js.map +1 -1
  209. package/dist/version.d.ts +1 -1
  210. package/dist/version.js +1 -1
  211. package/package.json +4 -4
  212. package/src/ClientSessionLeaderThreadProxy.ts +10 -10
  213. package/src/adapter-types.ts +5 -5
  214. package/src/devtools/devtools-messages-client-session.ts +2 -2
  215. package/src/devtools/devtools-messages-leader.ts +8 -8
  216. package/src/errors.ts +11 -13
  217. package/src/leader-thread/LeaderSyncProcessor.ts +54 -56
  218. package/src/leader-thread/eventlog.ts +21 -26
  219. package/src/leader-thread/leader-worker-devtools.ts +3 -3
  220. package/src/leader-thread/make-leader-thread-layer.ts +12 -10
  221. package/src/leader-thread/materialize-event.ts +3 -3
  222. package/src/leader-thread/recreate-db.ts +6 -6
  223. package/src/leader-thread/shutdown-channel.ts +2 -2
  224. package/src/leader-thread/types.ts +15 -15
  225. package/src/make-client-session.ts +2 -2
  226. package/src/materializer-helper.ts +5 -5
  227. package/src/rematerialize-from-eventlog.ts +6 -6
  228. package/src/schema/EventDef/define.ts +201 -0
  229. package/src/schema/EventDef/event-def.ts +120 -0
  230. package/src/schema/EventDef/facts.ts +135 -0
  231. package/src/schema/EventDef/materializer.ts +172 -0
  232. package/src/schema/EventDef/mod.ts +4 -0
  233. package/src/schema/EventSequenceNumber/client.ts +257 -0
  234. package/src/schema/EventSequenceNumber/global.ts +19 -0
  235. package/src/schema/EventSequenceNumber/mod.ts +37 -0
  236. package/src/schema/EventSequenceNumber.test.ts +68 -50
  237. package/src/schema/LiveStoreEvent/client.ts +221 -0
  238. package/src/schema/LiveStoreEvent/for-event-def.ts +60 -0
  239. package/src/schema/LiveStoreEvent/global.ts +45 -0
  240. package/src/schema/LiveStoreEvent/input.ts +63 -0
  241. package/src/schema/LiveStoreEvent/mod.ts +4 -0
  242. package/src/schema/events.ts +1 -1
  243. package/src/schema/mod.ts +3 -3
  244. package/src/schema/schema.ts +1 -1
  245. package/src/schema/state/sqlite/client-document-def.test.ts +2 -2
  246. package/src/schema/state/sqlite/client-document-def.ts +3 -3
  247. package/src/schema/state/sqlite/column-def.test.ts +2 -1
  248. package/src/schema/state/sqlite/column-def.ts +17 -0
  249. package/src/schema/state/sqlite/mod.ts +2 -2
  250. package/src/schema/state/sqlite/query-builder/api.ts +12 -8
  251. package/src/schema/state/sqlite/query-builder/astToSql.ts +20 -11
  252. package/src/schema/state/sqlite/query-builder/impl.test.ts +122 -90
  253. package/src/schema/state/sqlite/system-tables/eventlog-tables.ts +5 -5
  254. package/src/schema/state/sqlite/system-tables/state-tables.ts +3 -3
  255. package/src/schema/unknown-events.ts +3 -3
  256. package/src/schema-management/migrations.ts +2 -2
  257. package/src/schema-management/validate-schema.ts +3 -3
  258. package/src/sqlite-types.ts +3 -3
  259. package/src/sync/ClientSessionSyncProcessor.ts +17 -17
  260. package/src/sync/errors.ts +6 -6
  261. package/src/sync/mock-sync-backend.ts +16 -16
  262. package/src/sync/next/compact-events.ts +2 -2
  263. package/src/sync/next/facts.ts +6 -6
  264. package/src/sync/next/history-dag-common.ts +8 -8
  265. package/src/sync/next/history-dag.ts +14 -10
  266. package/src/sync/next/rebase-events.ts +11 -11
  267. package/src/sync/next/test/event-fixtures.ts +11 -11
  268. package/src/sync/sync-backend-kv.ts +3 -3
  269. package/src/sync/sync-backend.ts +9 -9
  270. package/src/sync/syncstate.test.ts +46 -46
  271. package/src/sync/syncstate.ts +59 -55
  272. package/src/sync/validate-push-payload.ts +4 -4
  273. package/src/testing/event-factory.ts +10 -12
  274. package/src/version.ts +1 -1
  275. package/dist/schema/EventDef.d.ts +0 -126
  276. package/dist/schema/EventDef.d.ts.map +0 -1
  277. package/dist/schema/EventDef.js +0 -46
  278. package/dist/schema/EventDef.js.map +0 -1
  279. package/dist/schema/EventSequenceNumber.d.ts +0 -89
  280. package/dist/schema/EventSequenceNumber.d.ts.map +0 -1
  281. package/dist/schema/EventSequenceNumber.js.map +0 -1
  282. package/dist/schema/LiveStoreEvent.d.ts.map +0 -1
  283. package/dist/schema/LiveStoreEvent.js.map +0 -1
  284. package/src/schema/EventDef.ts +0 -222
  285. package/src/schema/EventSequenceNumber.ts +0 -208
  286. package/src/schema/LiveStoreEvent.ts +0 -286
@@ -3,56 +3,56 @@ import { expect } from 'vitest';
3
3
  import { EventSequenceNumber } from "./mod.js";
4
4
  Vitest.describe('EventSequenceNumber', () => {
5
5
  Vitest.test('nextPair (no rebase)', () => {
6
- const e_0_0 = EventSequenceNumber.make({ global: 0, client: 0 });
7
- expect(EventSequenceNumber.nextPair({ seqNum: e_0_0, isClient: false }).seqNum).toStrictEqual({
6
+ const e_0_0 = EventSequenceNumber.Client.Composite.make({ global: 0, client: 0 });
7
+ expect(EventSequenceNumber.Client.nextPair({ seqNum: e_0_0, isClient: false }).seqNum).toStrictEqual({
8
8
  global: 1,
9
9
  client: 0,
10
10
  rebaseGeneration: 0,
11
11
  });
12
- expect(EventSequenceNumber.nextPair({ seqNum: e_0_0, isClient: true }).seqNum).toStrictEqual({
12
+ expect(EventSequenceNumber.Client.nextPair({ seqNum: e_0_0, isClient: true }).seqNum).toStrictEqual({
13
13
  global: 0,
14
14
  client: 1,
15
15
  rebaseGeneration: 0,
16
16
  });
17
17
  });
18
18
  Vitest.test('nextPair (rebase)', () => {
19
- const e_0_0 = EventSequenceNumber.make({ global: 0, client: 0 });
20
- expect(EventSequenceNumber.nextPair({ seqNum: e_0_0, isClient: false, rebaseGeneration: 1 }).seqNum).toStrictEqual({
19
+ const e_0_0 = EventSequenceNumber.Client.Composite.make({ global: 0, client: 0 });
20
+ expect(EventSequenceNumber.Client.nextPair({ seqNum: e_0_0, isClient: false, rebaseGeneration: 1 }).seqNum).toStrictEqual({
21
21
  global: 1,
22
22
  client: 0,
23
23
  rebaseGeneration: 1,
24
24
  });
25
- expect(EventSequenceNumber.nextPair({ seqNum: e_0_0, isClient: true, rebaseGeneration: 1 }).seqNum).toStrictEqual({
25
+ expect(EventSequenceNumber.Client.nextPair({ seqNum: e_0_0, isClient: true, rebaseGeneration: 1 }).seqNum).toStrictEqual({
26
26
  global: 0,
27
27
  client: 1,
28
28
  rebaseGeneration: 1,
29
29
  });
30
- const e_0_0_g1 = EventSequenceNumber.make({ global: 0, client: 0, rebaseGeneration: 2 });
31
- expect(EventSequenceNumber.nextPair({ seqNum: e_0_0_g1, isClient: false }).seqNum).toStrictEqual({
30
+ const e_0_0_g1 = EventSequenceNumber.Client.Composite.make({ global: 0, client: 0, rebaseGeneration: 2 });
31
+ expect(EventSequenceNumber.Client.nextPair({ seqNum: e_0_0_g1, isClient: false }).seqNum).toStrictEqual({
32
32
  global: 1,
33
33
  client: 0,
34
34
  rebaseGeneration: 2,
35
35
  });
36
36
  });
37
37
  Vitest.test('toString', () => {
38
- expect(EventSequenceNumber.toString(EventSequenceNumber.make({ global: 0, client: 0 }))).toBe('e0');
39
- expect(EventSequenceNumber.toString(EventSequenceNumber.make({ global: 0, client: 0, rebaseGeneration: 1 }))).toBe('e0r1');
40
- expect(EventSequenceNumber.toString(EventSequenceNumber.make({ global: 0, client: 1 }))).toBe('e0.1');
41
- expect(EventSequenceNumber.toString(EventSequenceNumber.make({ global: 0, client: 1, rebaseGeneration: 1 }))).toBe('e0.1r1');
42
- expect(EventSequenceNumber.toString(EventSequenceNumber.make({ global: 5, client: 3, rebaseGeneration: 2 }))).toBe('e5.3r2');
38
+ expect(EventSequenceNumber.Client.toString(EventSequenceNumber.Client.Composite.make({ global: 0, client: 0 }))).toBe('e0');
39
+ expect(EventSequenceNumber.Client.toString(EventSequenceNumber.Client.Composite.make({ global: 0, client: 0, rebaseGeneration: 1 }))).toBe('e0r1');
40
+ expect(EventSequenceNumber.Client.toString(EventSequenceNumber.Client.Composite.make({ global: 0, client: 1 }))).toBe('e0.1');
41
+ expect(EventSequenceNumber.Client.toString(EventSequenceNumber.Client.Composite.make({ global: 0, client: 1, rebaseGeneration: 1 }))).toBe('e0.1r1');
42
+ expect(EventSequenceNumber.Client.toString(EventSequenceNumber.Client.Composite.make({ global: 5, client: 3, rebaseGeneration: 2 }))).toBe('e5.3r2');
43
43
  });
44
44
  Vitest.test('fromString', () => {
45
45
  // Basic cases
46
- expect(EventSequenceNumber.fromString('e0')).toStrictEqual(EventSequenceNumber.make({ global: 0, client: 0 }));
47
- expect(EventSequenceNumber.fromString('e0r1')).toStrictEqual(EventSequenceNumber.make({ global: 0, client: 0, rebaseGeneration: 1 }));
48
- expect(EventSequenceNumber.fromString('e0.1')).toStrictEqual(EventSequenceNumber.make({ global: 0, client: 1 }));
49
- expect(EventSequenceNumber.fromString('e0.1r1')).toStrictEqual(EventSequenceNumber.make({ global: 0, client: 1, rebaseGeneration: 1 }));
50
- expect(EventSequenceNumber.fromString('e5.3r2')).toStrictEqual(EventSequenceNumber.make({ global: 5, client: 3, rebaseGeneration: 2 }));
46
+ expect(EventSequenceNumber.Client.fromString('e0')).toStrictEqual(EventSequenceNumber.Client.Composite.make({ global: 0, client: 0 }));
47
+ expect(EventSequenceNumber.Client.fromString('e0r1')).toStrictEqual(EventSequenceNumber.Client.Composite.make({ global: 0, client: 0, rebaseGeneration: 1 }));
48
+ expect(EventSequenceNumber.Client.fromString('e0.1')).toStrictEqual(EventSequenceNumber.Client.Composite.make({ global: 0, client: 1 }));
49
+ expect(EventSequenceNumber.Client.fromString('e0.1r1')).toStrictEqual(EventSequenceNumber.Client.Composite.make({ global: 0, client: 1, rebaseGeneration: 1 }));
50
+ expect(EventSequenceNumber.Client.fromString('e5.3r2')).toStrictEqual(EventSequenceNumber.Client.Composite.make({ global: 5, client: 3, rebaseGeneration: 2 }));
51
51
  // Error cases
52
- expect(() => EventSequenceNumber.fromString('0')).toThrow('Invalid event sequence number string: must start with "e"');
53
- expect(() => EventSequenceNumber.fromString('eabc')).toThrow('Invalid event sequence number string: invalid number format');
54
- expect(() => EventSequenceNumber.fromString('e0.abc')).toThrow('Invalid event sequence number string: invalid number format');
55
- expect(() => EventSequenceNumber.fromString('e0rabc')).toThrow('Invalid event sequence number string: invalid number format');
52
+ expect(() => EventSequenceNumber.Client.fromString('0')).toThrow('Invalid event sequence number string: must start with "e"');
53
+ expect(() => EventSequenceNumber.Client.fromString('eabc')).toThrow('Invalid event sequence number string: invalid number format');
54
+ expect(() => EventSequenceNumber.Client.fromString('e0.abc')).toThrow('Invalid event sequence number string: invalid number format');
55
+ expect(() => EventSequenceNumber.Client.fromString('e0rabc')).toThrow('Invalid event sequence number string: invalid number format');
56
56
  });
57
57
  Vitest.test('toString/fromString roundtrip', () => {
58
58
  const testCases = [
@@ -64,33 +64,33 @@ Vitest.describe('EventSequenceNumber', () => {
64
64
  { global: 100, client: 50, rebaseGeneration: 10 },
65
65
  ];
66
66
  for (const testCase of testCases) {
67
- const original = EventSequenceNumber.make(testCase);
68
- const str = EventSequenceNumber.toString(original);
69
- const parsed = EventSequenceNumber.fromString(str);
67
+ const original = EventSequenceNumber.Client.Composite.make(testCase);
68
+ const str = EventSequenceNumber.Client.toString(original);
69
+ const parsed = EventSequenceNumber.Client.fromString(str);
70
70
  expect(parsed).toStrictEqual(original);
71
71
  }
72
72
  });
73
73
  Vitest.test('compare', () => {
74
- const e_0_0_r0 = EventSequenceNumber.make({ global: 0, client: 0, rebaseGeneration: 0 });
75
- const e_0_0_r1 = EventSequenceNumber.make({ global: 0, client: 0, rebaseGeneration: 1 });
76
- const e_0_1_r0 = EventSequenceNumber.make({ global: 0, client: 1, rebaseGeneration: 0 });
77
- const e_0_1_r1 = EventSequenceNumber.make({ global: 0, client: 1, rebaseGeneration: 1 });
78
- const e_1_0_r0 = EventSequenceNumber.make({ global: 1, client: 0, rebaseGeneration: 0 });
79
- const e_1_1_r0 = EventSequenceNumber.make({ global: 1, client: 1, rebaseGeneration: 0 });
74
+ const e_0_0_r0 = EventSequenceNumber.Client.Composite.make({ global: 0, client: 0, rebaseGeneration: 0 });
75
+ const e_0_0_r1 = EventSequenceNumber.Client.Composite.make({ global: 0, client: 0, rebaseGeneration: 1 });
76
+ const e_0_1_r0 = EventSequenceNumber.Client.Composite.make({ global: 0, client: 1, rebaseGeneration: 0 });
77
+ const e_0_1_r1 = EventSequenceNumber.Client.Composite.make({ global: 0, client: 1, rebaseGeneration: 1 });
78
+ const e_1_0_r0 = EventSequenceNumber.Client.Composite.make({ global: 1, client: 0, rebaseGeneration: 0 });
79
+ const e_1_1_r0 = EventSequenceNumber.Client.Composite.make({ global: 1, client: 1, rebaseGeneration: 0 });
80
80
  // Global comparison (strongest level)
81
- expect(EventSequenceNumber.compare(e_0_0_r0, e_1_0_r0)).toBeLessThan(0);
82
- expect(EventSequenceNumber.compare(e_1_0_r0, e_0_0_r0)).toBeGreaterThan(0);
83
- expect(EventSequenceNumber.compare(e_0_1_r1, e_1_0_r0)).toBeLessThan(0); // global overrides client and rebase
81
+ expect(EventSequenceNumber.Client.compare(e_0_0_r0, e_1_0_r0)).toBeLessThan(0);
82
+ expect(EventSequenceNumber.Client.compare(e_1_0_r0, e_0_0_r0)).toBeGreaterThan(0);
83
+ expect(EventSequenceNumber.Client.compare(e_0_1_r1, e_1_0_r0)).toBeLessThan(0); // global overrides client and rebase
84
84
  // Client comparison (second level)
85
- expect(EventSequenceNumber.compare(e_0_0_r0, e_0_1_r0)).toBeLessThan(0);
86
- expect(EventSequenceNumber.compare(e_0_1_r0, e_0_0_r0)).toBeGreaterThan(0);
87
- expect(EventSequenceNumber.compare(e_0_0_r1, e_0_1_r0)).toBeLessThan(0); // client overrides rebase
85
+ expect(EventSequenceNumber.Client.compare(e_0_0_r0, e_0_1_r0)).toBeLessThan(0);
86
+ expect(EventSequenceNumber.Client.compare(e_0_1_r0, e_0_0_r0)).toBeGreaterThan(0);
87
+ expect(EventSequenceNumber.Client.compare(e_0_0_r1, e_0_1_r0)).toBeLessThan(0); // client overrides rebase
88
88
  // Rebase generation comparison (weakest level)
89
- expect(EventSequenceNumber.compare(e_0_0_r0, e_0_0_r1)).toBeLessThan(0);
90
- expect(EventSequenceNumber.compare(e_0_0_r1, e_0_0_r0)).toBeGreaterThan(0);
89
+ expect(EventSequenceNumber.Client.compare(e_0_0_r0, e_0_0_r1)).toBeLessThan(0);
90
+ expect(EventSequenceNumber.Client.compare(e_0_0_r1, e_0_0_r0)).toBeGreaterThan(0);
91
91
  // Equal comparison
92
- expect(EventSequenceNumber.compare(e_0_0_r0, e_0_0_r0)).toBe(0);
93
- expect(EventSequenceNumber.compare(e_1_1_r0, e_1_1_r0)).toBe(0);
92
+ expect(EventSequenceNumber.Client.compare(e_0_0_r0, e_0_0_r0)).toBe(0);
93
+ expect(EventSequenceNumber.Client.compare(e_1_1_r0, e_1_1_r0)).toBe(0);
94
94
  });
95
95
  });
96
96
  //# sourceMappingURL=EventSequenceNumber.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EventSequenceNumber.test.js","sourceRoot":"","sources":["../../src/schema/EventSequenceNumber.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EventSequenceNumber.test.js","sourceRoot":"","sources":["../../src/schema/EventSequenceNumber.test.ts"],"names":[],"mappings":"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"}
@@ -1,123 +1,79 @@
1
1
  import { Option, Schema } from '@livestore/utils/effect';
2
- import type { EventDef, EventDefRecord } from './EventDef.ts';
3
- import * as EventSequenceNumber from './EventSequenceNumber.ts';
4
- import type { LiveStoreSchema } from './schema.ts';
5
- export declare namespace ForEventDef {
6
- type PartialDecoded<TEventDef extends EventDef.Any> = {
7
- name: TEventDef['name'];
8
- args: Schema.Schema.Type<TEventDef['schema']>;
9
- };
10
- type PartialEncoded<TEventDef extends EventDef.Any> = {
11
- name: TEventDef['name'];
12
- args: Schema.Schema.Encoded<TEventDef['schema']>;
13
- };
14
- type Decoded<TEventDef extends EventDef.Any> = {
15
- name: TEventDef['name'];
16
- args: Schema.Schema.Type<TEventDef['schema']>;
17
- seqNum: EventSequenceNumber.EventSequenceNumber;
18
- parentSeqNum: EventSequenceNumber.EventSequenceNumber;
19
- clientId: string;
20
- sessionId: string;
21
- };
22
- type Encoded<TEventDef extends EventDef.Any> = {
23
- name: TEventDef['name'];
24
- args: Schema.Schema.Encoded<TEventDef['schema']>;
25
- seqNum: EventSequenceNumber.EventSequenceNumber;
26
- parentSeqNum: EventSequenceNumber.EventSequenceNumber;
27
- clientId: string;
28
- sessionId: string;
29
- };
30
- }
31
- export type AnyDecoded = ForEventDef.Decoded<EventDef.Any>;
32
- export declare const AnyDecoded: Schema.Struct<{
2
+ import type { EventDef } from '../EventDef/mod.ts';
3
+ import * as EventSequenceNumber from '../EventSequenceNumber/mod.ts';
4
+ import type { LiveStoreSchema } from '../schema.ts';
5
+ import type * as ForEventDef from './for-event-def.ts';
6
+ import type * as Global from './global.ts';
7
+ /** Effect Schema for client events with decoded args. */
8
+ export declare const Decoded: Schema.Struct<{
33
9
  name: typeof Schema.String;
34
10
  args: typeof Schema.Any;
35
11
  seqNum: Schema.Struct<{
36
12
  global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
37
13
  client: Schema.BrandSchema<number & import("effect/Brand").Brand<"ClientEventSequenceNumber">, number, never>;
38
14
  rebaseGeneration: typeof Schema.Int;
39
- }>;
15
+ }> & {
16
+ make: (seqNum: EventSequenceNumber.Client.CompositeInput) => EventSequenceNumber.Client.Composite;
17
+ };
40
18
  parentSeqNum: Schema.Struct<{
41
19
  global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
42
20
  client: Schema.BrandSchema<number & import("effect/Brand").Brand<"ClientEventSequenceNumber">, number, never>;
43
21
  rebaseGeneration: typeof Schema.Int;
44
- }>;
22
+ }> & {
23
+ make: (seqNum: EventSequenceNumber.Client.CompositeInput) => EventSequenceNumber.Client.Composite;
24
+ };
45
25
  clientId: typeof Schema.String;
46
26
  sessionId: typeof Schema.String;
47
27
  }>;
48
- export type AnyEncoded = ForEventDef.Encoded<EventDef.Any>;
49
- export declare const AnyEncoded: Schema.Struct<{
28
+ /**
29
+ * Effect Schema for client events with encoded args.
30
+ * @example
31
+ * ```ts
32
+ * // Confirmed event (client=0)
33
+ * const event: LiveStoreEvent.Client.Encoded = {
34
+ * name: 'todoCreated-v1',
35
+ * args: { id: 'abc', text: 'Buy milk' },
36
+ * seqNum: { global: 5, client: 0, rebaseGeneration: 0 },
37
+ * parentSeqNum: { global: 4, client: 0, rebaseGeneration: 0 },
38
+ * clientId: 'client-xyz',
39
+ * sessionId: 'session-123'
40
+ * }
41
+ *
42
+ * // Pending local event (client=1, not yet synced)
43
+ * const pending: LiveStoreEvent.Client.Encoded = {
44
+ * ...event,
45
+ * seqNum: { global: 5, client: 1, rebaseGeneration: 0 }, // e5.1
46
+ * }
47
+ * ```
48
+ */
49
+ export declare const Encoded: Schema.Struct<{
50
50
  name: typeof Schema.String;
51
51
  args: typeof Schema.Any;
52
52
  seqNum: Schema.Struct<{
53
53
  global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
54
54
  client: Schema.BrandSchema<number & import("effect/Brand").Brand<"ClientEventSequenceNumber">, number, never>;
55
55
  rebaseGeneration: typeof Schema.Int;
56
- }>;
56
+ }> & {
57
+ make: (seqNum: EventSequenceNumber.Client.CompositeInput) => EventSequenceNumber.Client.Composite;
58
+ };
57
59
  parentSeqNum: Schema.Struct<{
58
60
  global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
59
61
  client: Schema.BrandSchema<number & import("effect/Brand").Brand<"ClientEventSequenceNumber">, number, never>;
60
62
  rebaseGeneration: typeof Schema.Int;
61
- }>;
62
- clientId: typeof Schema.String;
63
- sessionId: typeof Schema.String;
64
- }>;
65
- export declare const AnyEncodedGlobal: Schema.Struct<{
66
- name: typeof Schema.String;
67
- args: typeof Schema.Any;
68
- seqNum: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
69
- parentSeqNum: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
63
+ }> & {
64
+ make: (seqNum: EventSequenceNumber.Client.CompositeInput) => EventSequenceNumber.Client.Composite;
65
+ };
70
66
  clientId: typeof Schema.String;
71
67
  sessionId: typeof Schema.String;
72
68
  }>;
73
- export type AnyEncodedGlobal = typeof AnyEncodedGlobal.Type;
74
- export type PartialAnyDecoded = ForEventDef.PartialDecoded<EventDef.Any>;
75
- export type PartialAnyEncoded = ForEventDef.PartialEncoded<EventDef.Any>;
76
- export declare const PartialAnyEncoded: Schema.Struct<{
77
- name: typeof Schema.String;
78
- args: typeof Schema.Any;
79
- }>;
80
- export type PartialForSchema<TSchema extends LiveStoreSchema> = {
81
- [K in keyof TSchema['_EventDefMapType']]: ForEventDef.PartialDecoded<TSchema['_EventDefMapType'][K]>;
82
- }[keyof TSchema['_EventDefMapType']];
69
+ /** Event with composite sequence numbers and decoded (native TypeScript) args. */
70
+ export type Decoded = ForEventDef.Decoded<EventDef.Any>;
71
+ /** Event with composite sequence numbers and encoded (serialized) args. */
72
+ export type Encoded = ForEventDef.Encoded<EventDef.Any>;
73
+ /** Union of all client event types for a given schema (type-safe event discrimination). */
83
74
  export type ForSchema<TSchema extends LiveStoreSchema> = {
84
75
  [K in keyof TSchema['_EventDefMapType']]: ForEventDef.Decoded<TSchema['_EventDefMapType'][K]>;
85
76
  }[keyof TSchema['_EventDefMapType']];
86
- export declare const isPartialEventDef: (event: AnyDecoded | PartialAnyDecoded) => event is PartialAnyDecoded;
87
- export type ForEventDefRecord<TEventDefRecord extends EventDefRecord> = Schema.Schema<{
88
- [K in keyof TEventDefRecord]: {
89
- name: K;
90
- args: Schema.Schema.Type<TEventDefRecord[K]['schema']>;
91
- seqNum: EventSequenceNumber.EventSequenceNumber;
92
- parentSeqNum: EventSequenceNumber.EventSequenceNumber;
93
- clientId: string;
94
- sessionId: string;
95
- };
96
- }[keyof TEventDefRecord], {
97
- [K in keyof TEventDefRecord]: {
98
- name: K;
99
- args: Schema.Schema.Encoded<TEventDefRecord[K]['schema']>;
100
- seqNum: EventSequenceNumber.EventSequenceNumber;
101
- parentSeqNum: EventSequenceNumber.EventSequenceNumber;
102
- clientId: string;
103
- sessionId: string;
104
- };
105
- }[keyof TEventDefRecord]>;
106
- export type EventDefPartialSchema<TEventDefRecord extends EventDefRecord> = Schema.Schema<{
107
- [K in keyof TEventDefRecord]: {
108
- name: K;
109
- args: Schema.Schema.Type<TEventDefRecord[K]['schema']>;
110
- };
111
- }[keyof TEventDefRecord], {
112
- [K in keyof TEventDefRecord]: {
113
- name: K;
114
- args: Schema.Schema.Encoded<TEventDefRecord[K]['schema']>;
115
- };
116
- }[keyof TEventDefRecord]>;
117
- export declare const makeEventDefSchema: <TSchema extends LiveStoreSchema>(schema: TSchema) => ForEventDefRecord<TSchema["_EventDefMapType"]>;
118
- export declare const makeEventDefPartialSchema: <TSchema extends LiveStoreSchema>(schema: TSchema) => EventDefPartialSchema<TSchema["_EventDefMapType"]>;
119
- export declare const makeEventDefSchemaMemo: <TSchema extends LiveStoreSchema>(schema: TSchema) => ForEventDefRecord<TSchema["_EventDefMapType"]>;
120
- export declare const encodedFromGlobal: (event: AnyEncodedGlobal) => AnyEncoded;
121
77
  declare const EncodedWithMeta_base: Schema.Class<EncodedWithMeta, {
122
78
  name: typeof Schema.String;
123
79
  args: typeof Schema.Any;
@@ -125,12 +81,16 @@ declare const EncodedWithMeta_base: Schema.Class<EncodedWithMeta, {
125
81
  global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
126
82
  client: Schema.BrandSchema<number & import("effect/Brand").Brand<"ClientEventSequenceNumber">, number, never>;
127
83
  rebaseGeneration: typeof Schema.Int;
128
- }>;
84
+ }> & {
85
+ make: (seqNum: EventSequenceNumber.Client.CompositeInput) => EventSequenceNumber.Client.Composite;
86
+ };
129
87
  parentSeqNum: Schema.Struct<{
130
88
  global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
131
89
  client: Schema.BrandSchema<number & import("effect/Brand").Brand<"ClientEventSequenceNumber">, number, never>;
132
90
  rebaseGeneration: typeof Schema.Int;
133
- }>;
91
+ }> & {
92
+ make: (seqNum: EventSequenceNumber.Client.CompositeInput) => EventSequenceNumber.Client.Composite;
93
+ };
134
94
  clientId: typeof Schema.String;
135
95
  sessionId: typeof Schema.String;
136
96
  meta: Schema.PropertySignature<":", {
@@ -182,12 +142,16 @@ declare const EncodedWithMeta_base: Schema.Class<EncodedWithMeta, {
182
142
  global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
183
143
  client: Schema.BrandSchema<number & import("effect/Brand").Brand<"ClientEventSequenceNumber">, number, never>;
184
144
  rebaseGeneration: typeof Schema.Int;
185
- }>;
145
+ }> & {
146
+ make: (seqNum: EventSequenceNumber.Client.CompositeInput) => EventSequenceNumber.Client.Composite;
147
+ };
186
148
  parentSeqNum: Schema.Struct<{
187
149
  global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
188
150
  client: Schema.BrandSchema<number & import("effect/Brand").Brand<"ClientEventSequenceNumber">, number, never>;
189
151
  rebaseGeneration: typeof Schema.Int;
190
- }>;
152
+ }> & {
153
+ make: (seqNum: EventSequenceNumber.Client.CompositeInput) => EventSequenceNumber.Client.Composite;
154
+ };
191
155
  clientId: typeof Schema.String;
192
156
  sessionId: typeof Schema.String;
193
157
  meta: Schema.PropertySignature<":", {
@@ -268,7 +232,12 @@ declare const EncodedWithMeta_base: Schema.Class<EncodedWithMeta, {
268
232
  materializerHashSession: Option.Option<number>;
269
233
  };
270
234
  }, {}, {}>;
271
- /** Equivalent to AnyEncoded but with a meta field and some convenience methods */
235
+ /**
236
+ * Internal event representation with metadata for sync processing.
237
+ * Includes changeset data and materializer hashes for conflict detection and rebasing.
238
+ *
239
+ * Note: This class is exported for internal use. The preferred access is via `LiveStoreEvent.Client.EncodedWithMeta`.
240
+ */
272
241
  export declare class EncodedWithMeta extends EncodedWithMeta_base {
273
242
  toJSON: () => any;
274
243
  /**
@@ -289,18 +258,32 @@ export declare class EncodedWithMeta extends EncodedWithMeta_base {
289
258
  * Client num is omitted for global events
290
259
  */
291
260
  rebase: ({ parentSeqNum, isClient, rebaseGeneration, }: {
292
- parentSeqNum: EventSequenceNumber.EventSequenceNumber;
261
+ parentSeqNum: EventSequenceNumber.Client.Composite;
293
262
  isClient: boolean;
294
263
  rebaseGeneration: number;
295
264
  }) => EncodedWithMeta;
296
- static fromGlobal: (event: AnyEncodedGlobal, meta: {
265
+ static fromGlobal: (event: Global.Encoded, meta: {
297
266
  syncMetadata: Option.Option<Schema.JsonValue>;
298
267
  materializerHashLeader: Option.Option<number>;
299
268
  materializerHashSession: Option.Option<number>;
300
269
  }) => EncodedWithMeta;
301
- toGlobal: () => AnyEncodedGlobal;
270
+ toGlobal: () => Global.Encoded;
302
271
  }
303
- /** NOTE `meta` is not considered for equality */
304
- export declare const isEqualEncoded: (a: AnyEncoded, b: AnyEncoded) => boolean;
272
+ /**
273
+ * Structural equality check for client events. Compares seqNum (global + client),
274
+ * name, clientId, sessionId, and args. The `meta` field is ignored.
275
+ */
276
+ export declare const isEqualEncoded: (a: Encoded, b: Encoded) => boolean;
277
+ /**
278
+ * Creates an Effect Schema union for all event types in a schema (with composite sequence numbers).
279
+ * @example
280
+ * ```ts
281
+ * const eventSchema = LiveStoreEvent.Client.makeSchema(schema)
282
+ * const event = Schema.decodeUnknownSync(eventSchema)(rawEvent)
283
+ * ```
284
+ */
285
+ export declare const makeSchema: <TSchema extends LiveStoreSchema>(schema: TSchema) => ForEventDef.ForRecord<TSchema["_EventDefMapType"]>;
286
+ /** Memoized `makeSchema` - caches the generated schema by reference. */
287
+ export declare const makeSchemaMemo: <TSchema extends LiveStoreSchema>(schema: TSchema) => ForEventDef.ForRecord<TSchema["_EventDefMapType"]>;
305
288
  export {};
306
- //# sourceMappingURL=LiveStoreEvent.d.ts.map
289
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/schema/LiveStoreEvent/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAExD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,KAAK,mBAAmB,MAAM,+BAA+B,CAAA;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,KAAK,KAAK,WAAW,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,KAAK,MAAM,MAAM,aAAa,CAAA;AAE1C,yDAAyD;AACzD,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;EAOsC,CAAA;AAE1D;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;EAOsC,CAAA;AAE1D,kFAAkF;AAClF,MAAM,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;AAEvD,2EAA2E;AAC3E,MAAM,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;AAEvD,2FAA2F;AAC3F,MAAM,MAAM,SAAS,CAAC,OAAO,SAAS,eAAe,IAAI;KACtD,CAAC,IAAI,MAAM,OAAO,CAAC,kBAAkB,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;CAC9F,CAAC,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEpC;;;;;GAKG;AACH,qBAAa,eAAgB,SAAQ,oBAuCnC;IACA,MAAM,QAAO,GAAG,CASf;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,GAAI,+CAIP;QACD,YAAY,EAAE,mBAAmB,CAAC,MAAM,CAAC,SAAS,CAAA;QAClD,QAAQ,EAAE,OAAO,CAAA;QACjB,gBAAgB,EAAE,MAAM,CAAA;KACzB,qBAIG;IAEJ,MAAM,CAAC,UAAU,GACf,OAAO,MAAM,CAAC,OAAO,EACrB,MAAM;QACJ,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QAC7C,sBAAsB,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAC7C,uBAAuB,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;KAC/C,qBAoBC;IAEJ,QAAQ,QAAO,MAAM,CAAC,OAAO,CAI3B;CACH;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,GAAG,OAAO,EAAE,GAAG,OAAO,YAMF,CAAA;AAEnD;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU,GAAI,OAAO,SAAS,eAAe,EACxD,QAAQ,OAAO,KACd,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAYM,CAAA;AAE1D,wEAAwE;AACxE,eAAO,MAAM,cAAc,GAjBA,OAAO,SAAS,eAAe,UAChD,OAAO,KACd,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAeE,CAAA"}
@@ -1,59 +1,55 @@
1
1
  import { memoizeByRef } from '@livestore/utils';
2
2
  import { Option, Schema } from '@livestore/utils/effect';
3
- import * as EventSequenceNumber from "./EventSequenceNumber.js";
4
- export const AnyDecoded = Schema.Struct({
3
+ import * as EventSequenceNumber from "../EventSequenceNumber/mod.js";
4
+ /** Effect Schema for client events with decoded args. */
5
+ export const Decoded = Schema.Struct({
5
6
  name: Schema.String,
6
7
  args: Schema.Any,
7
- seqNum: EventSequenceNumber.EventSequenceNumber,
8
- parentSeqNum: EventSequenceNumber.EventSequenceNumber,
8
+ seqNum: EventSequenceNumber.Client.Composite,
9
+ parentSeqNum: EventSequenceNumber.Client.Composite,
9
10
  clientId: Schema.String,
10
11
  sessionId: Schema.String,
11
- }).annotations({ title: 'LiveStoreEvent.AnyDecoded' });
12
- export const AnyEncoded = Schema.Struct({
12
+ }).annotations({ title: 'LiveStoreEvent.Client.Decoded' });
13
+ /**
14
+ * Effect Schema for client events with encoded args.
15
+ * @example
16
+ * ```ts
17
+ * // Confirmed event (client=0)
18
+ * const event: LiveStoreEvent.Client.Encoded = {
19
+ * name: 'todoCreated-v1',
20
+ * args: { id: 'abc', text: 'Buy milk' },
21
+ * seqNum: { global: 5, client: 0, rebaseGeneration: 0 },
22
+ * parentSeqNum: { global: 4, client: 0, rebaseGeneration: 0 },
23
+ * clientId: 'client-xyz',
24
+ * sessionId: 'session-123'
25
+ * }
26
+ *
27
+ * // Pending local event (client=1, not yet synced)
28
+ * const pending: LiveStoreEvent.Client.Encoded = {
29
+ * ...event,
30
+ * seqNum: { global: 5, client: 1, rebaseGeneration: 0 }, // e5.1
31
+ * }
32
+ * ```
33
+ */
34
+ export const Encoded = Schema.Struct({
13
35
  name: Schema.String,
14
36
  args: Schema.Any,
15
- seqNum: EventSequenceNumber.EventSequenceNumber,
16
- parentSeqNum: EventSequenceNumber.EventSequenceNumber,
37
+ seqNum: EventSequenceNumber.Client.Composite,
38
+ parentSeqNum: EventSequenceNumber.Client.Composite,
17
39
  clientId: Schema.String,
18
40
  sessionId: Schema.String,
19
- }).annotations({ title: 'LiveStoreEvent.AnyEncoded' });
20
- export const AnyEncodedGlobal = Schema.Struct({
41
+ }).annotations({ title: 'LiveStoreEvent.Client.Encoded' });
42
+ /**
43
+ * Internal event representation with metadata for sync processing.
44
+ * Includes changeset data and materializer hashes for conflict detection and rebasing.
45
+ *
46
+ * Note: This class is exported for internal use. The preferred access is via `LiveStoreEvent.Client.EncodedWithMeta`.
47
+ */
48
+ export class EncodedWithMeta extends Schema.Class('LiveStoreEvent.Client.EncodedWithMeta')({
21
49
  name: Schema.String,
22
50
  args: Schema.Any,
23
- seqNum: EventSequenceNumber.GlobalEventSequenceNumber,
24
- parentSeqNum: EventSequenceNumber.GlobalEventSequenceNumber,
25
- clientId: Schema.String,
26
- sessionId: Schema.String,
27
- }).annotations({ title: 'LiveStoreEvent.AnyEncodedGlobal' });
28
- export const PartialAnyEncoded = Schema.Struct({
29
- name: Schema.String,
30
- args: Schema.Any,
31
- });
32
- export const isPartialEventDef = (event) => 'num' in event === false && 'parentSeqNum' in event === false;
33
- export const makeEventDefSchema = (schema) => Schema.Union(...[...schema.eventsDefsMap.values()].map((def) => Schema.Struct({
34
- name: Schema.Literal(def.name),
35
- args: def.schema,
36
- seqNum: EventSequenceNumber.EventSequenceNumber,
37
- parentSeqNum: EventSequenceNumber.EventSequenceNumber,
38
- clientId: Schema.String,
39
- sessionId: Schema.String,
40
- }))).annotations({ title: 'EventDef' });
41
- export const makeEventDefPartialSchema = (schema) => Schema.Union(...[...schema.eventsDefsMap.values()].map((def) => Schema.Struct({
42
- name: Schema.Literal(def.name),
43
- args: def.schema,
44
- }))).annotations({ title: 'EventDefPartial' });
45
- export const makeEventDefSchemaMemo = memoizeByRef(makeEventDefSchema);
46
- export const encodedFromGlobal = (event) => ({
47
- ...event,
48
- seqNum: EventSequenceNumber.fromGlobal(event.seqNum),
49
- parentSeqNum: EventSequenceNumber.fromGlobal(event.parentSeqNum),
50
- });
51
- /** Equivalent to AnyEncoded but with a meta field and some convenience methods */
52
- export class EncodedWithMeta extends Schema.Class('LiveStoreEvent.EncodedWithMeta')({
53
- name: Schema.String,
54
- args: Schema.Any,
55
- seqNum: EventSequenceNumber.EventSequenceNumber,
56
- parentSeqNum: EventSequenceNumber.EventSequenceNumber,
51
+ seqNum: EventSequenceNumber.Client.Composite,
52
+ parentSeqNum: EventSequenceNumber.Client.Composite,
57
53
  clientId: Schema.String,
58
54
  sessionId: Schema.String,
59
55
  // TODO get rid of `meta` again by cleaning up the usage implementations
@@ -86,7 +82,7 @@ export class EncodedWithMeta extends Schema.Class('LiveStoreEvent.EncodedWithMet
86
82
  // - More readable way to print the seqNum + parentSeqNum
87
83
  // - not including `meta`, `clientId`, `sessionId`
88
84
  return {
89
- seqNum: `${EventSequenceNumber.toString(this.seqNum)} → ${EventSequenceNumber.toString(this.parentSeqNum)} (${this.clientId}, ${this.sessionId})`,
85
+ seqNum: `${EventSequenceNumber.Client.toString(this.seqNum)} → ${EventSequenceNumber.Client.toString(this.parentSeqNum)} (${this.clientId}, ${this.sessionId})`,
90
86
  name: this.name,
91
87
  args: this.args,
92
88
  };
@@ -110,19 +106,19 @@ export class EncodedWithMeta extends Schema.Class('LiveStoreEvent.EncodedWithMet
110
106
  */
111
107
  rebase = ({ parentSeqNum, isClient, rebaseGeneration, }) => new EncodedWithMeta({
112
108
  ...this,
113
- ...EventSequenceNumber.nextPair({ seqNum: parentSeqNum, isClient, rebaseGeneration }),
109
+ ...EventSequenceNumber.Client.nextPair({ seqNum: parentSeqNum, isClient, rebaseGeneration }),
114
110
  });
115
111
  static fromGlobal = (event, meta) => new EncodedWithMeta({
116
112
  ...event,
117
113
  seqNum: {
118
114
  global: event.seqNum,
119
- client: EventSequenceNumber.clientDefault,
120
- rebaseGeneration: EventSequenceNumber.rebaseGenerationDefault,
115
+ client: EventSequenceNumber.Client.DEFAULT,
116
+ rebaseGeneration: EventSequenceNumber.Client.REBASE_GENERATION_DEFAULT,
121
117
  },
122
118
  parentSeqNum: {
123
119
  global: event.parentSeqNum,
124
- client: EventSequenceNumber.clientDefault,
125
- rebaseGeneration: EventSequenceNumber.rebaseGenerationDefault,
120
+ client: EventSequenceNumber.Client.DEFAULT,
121
+ rebaseGeneration: EventSequenceNumber.Client.REBASE_GENERATION_DEFAULT,
126
122
  },
127
123
  meta: {
128
124
  sessionChangeset: { _tag: 'unset' },
@@ -137,11 +133,32 @@ export class EncodedWithMeta extends Schema.Class('LiveStoreEvent.EncodedWithMet
137
133
  parentSeqNum: this.parentSeqNum.global,
138
134
  });
139
135
  }
140
- /** NOTE `meta` is not considered for equality */
136
+ /**
137
+ * Structural equality check for client events. Compares seqNum (global + client),
138
+ * name, clientId, sessionId, and args. The `meta` field is ignored.
139
+ */
141
140
  export const isEqualEncoded = (a, b) => a.seqNum.global === b.seqNum.global &&
142
141
  a.seqNum.client === b.seqNum.client &&
143
142
  a.name === b.name &&
144
143
  a.clientId === b.clientId &&
145
144
  a.sessionId === b.sessionId &&
146
145
  JSON.stringify(a.args) === JSON.stringify(b.args); // TODO use schema equality here
147
- //# sourceMappingURL=LiveStoreEvent.js.map
146
+ /**
147
+ * Creates an Effect Schema union for all event types in a schema (with composite sequence numbers).
148
+ * @example
149
+ * ```ts
150
+ * const eventSchema = LiveStoreEvent.Client.makeSchema(schema)
151
+ * const event = Schema.decodeUnknownSync(eventSchema)(rawEvent)
152
+ * ```
153
+ */
154
+ export const makeSchema = (schema) => Schema.Union(...[...schema.eventsDefsMap.values()].map((def) => Schema.Struct({
155
+ name: Schema.Literal(def.name),
156
+ args: def.schema,
157
+ seqNum: EventSequenceNumber.Client.Composite,
158
+ parentSeqNum: EventSequenceNumber.Client.Composite,
159
+ clientId: Schema.String,
160
+ sessionId: Schema.String,
161
+ }))).annotations({ title: 'LiveStoreEvent.Client' });
162
+ /** Memoized `makeSchema` - caches the generated schema by reference. */
163
+ export const makeSchemaMemo = memoizeByRef(makeSchema);
164
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/schema/LiveStoreEvent/client.ts"],"names":[],"mappings":"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"}