@livestore/common 0.4.0-dev.2 → 0.4.0-dev.20

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 (449) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/ClientSessionLeaderThreadProxy.d.ts +17 -12
  3. package/dist/ClientSessionLeaderThreadProxy.d.ts.map +1 -1
  4. package/dist/ClientSessionLeaderThreadProxy.js.map +1 -1
  5. package/dist/adapter-types.d.ts +14 -6
  6. package/dist/adapter-types.d.ts.map +1 -1
  7. package/dist/adapter-types.js.map +1 -1
  8. package/dist/debug-info.d.ts.map +1 -1
  9. package/dist/debug-info.js +33 -6
  10. package/dist/debug-info.js.map +1 -1
  11. package/dist/devtools/devtools-messages-client-session.d.ts +28 -23
  12. package/dist/devtools/devtools-messages-client-session.d.ts.map +1 -1
  13. package/dist/devtools/devtools-messages-client-session.js +2 -2
  14. package/dist/devtools/devtools-messages-client-session.js.map +1 -1
  15. package/dist/devtools/devtools-messages-common.d.ts +7 -14
  16. package/dist/devtools/devtools-messages-common.d.ts.map +1 -1
  17. package/dist/devtools/devtools-messages-common.js +1 -6
  18. package/dist/devtools/devtools-messages-common.js.map +1 -1
  19. package/dist/devtools/devtools-messages-leader.d.ts +36 -29
  20. package/dist/devtools/devtools-messages-leader.d.ts.map +1 -1
  21. package/dist/devtools/devtools-messages-leader.js +8 -8
  22. package/dist/devtools/devtools-messages-leader.js.map +1 -1
  23. package/dist/devtools/devtools-sessioninfo.d.ts +14 -2
  24. package/dist/devtools/devtools-sessioninfo.d.ts.map +1 -1
  25. package/dist/devtools/devtools-sessioninfo.js +7 -4
  26. package/dist/devtools/devtools-sessioninfo.js.map +1 -1
  27. package/dist/devtools/mod.d.ts +13 -2
  28. package/dist/devtools/mod.d.ts.map +1 -1
  29. package/dist/devtools/mod.js +10 -3
  30. package/dist/devtools/mod.js.map +1 -1
  31. package/dist/errors.d.ts +52 -10
  32. package/dist/errors.d.ts.map +1 -1
  33. package/dist/errors.js +25 -6
  34. package/dist/errors.js.map +1 -1
  35. package/dist/index.d.ts +2 -1
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +2 -1
  38. package/dist/index.js.map +1 -1
  39. package/dist/leader-thread/LeaderSyncProcessor.d.ts +8 -4
  40. package/dist/leader-thread/LeaderSyncProcessor.d.ts.map +1 -1
  41. package/dist/leader-thread/LeaderSyncProcessor.js +156 -73
  42. package/dist/leader-thread/LeaderSyncProcessor.js.map +1 -1
  43. package/dist/leader-thread/eventlog.d.ts +15 -21
  44. package/dist/leader-thread/eventlog.d.ts.map +1 -1
  45. package/dist/leader-thread/eventlog.js +18 -18
  46. package/dist/leader-thread/eventlog.js.map +1 -1
  47. package/dist/leader-thread/leader-worker-devtools.d.ts +2 -2
  48. package/dist/leader-thread/leader-worker-devtools.d.ts.map +1 -1
  49. package/dist/leader-thread/leader-worker-devtools.js +30 -42
  50. package/dist/leader-thread/leader-worker-devtools.js.map +1 -1
  51. package/dist/leader-thread/make-leader-thread-layer.d.ts +6 -6
  52. package/dist/leader-thread/make-leader-thread-layer.d.ts.map +1 -1
  53. package/dist/leader-thread/make-leader-thread-layer.js +79 -27
  54. package/dist/leader-thread/make-leader-thread-layer.js.map +1 -1
  55. package/dist/leader-thread/make-leader-thread-layer.test.d.ts +2 -0
  56. package/dist/leader-thread/make-leader-thread-layer.test.d.ts.map +1 -0
  57. package/dist/leader-thread/make-leader-thread-layer.test.js +32 -0
  58. package/dist/leader-thread/make-leader-thread-layer.test.js.map +1 -0
  59. package/dist/leader-thread/materialize-event.d.ts +3 -3
  60. package/dist/leader-thread/materialize-event.d.ts.map +1 -1
  61. package/dist/leader-thread/materialize-event.js +25 -11
  62. package/dist/leader-thread/materialize-event.js.map +1 -1
  63. package/dist/leader-thread/recreate-db.d.ts +2 -3
  64. package/dist/leader-thread/recreate-db.d.ts.map +1 -1
  65. package/dist/leader-thread/recreate-db.js +5 -5
  66. package/dist/leader-thread/recreate-db.js.map +1 -1
  67. package/dist/leader-thread/shutdown-channel.d.ts +2 -2
  68. package/dist/leader-thread/shutdown-channel.d.ts.map +1 -1
  69. package/dist/leader-thread/shutdown-channel.js +2 -2
  70. package/dist/leader-thread/shutdown-channel.js.map +1 -1
  71. package/dist/leader-thread/types.d.ts +21 -19
  72. package/dist/leader-thread/types.d.ts.map +1 -1
  73. package/dist/leader-thread/types.js.map +1 -1
  74. package/dist/logging.d.ts +40 -0
  75. package/dist/logging.d.ts.map +1 -0
  76. package/dist/logging.js +33 -0
  77. package/dist/logging.js.map +1 -0
  78. package/dist/make-client-session.d.ts +5 -3
  79. package/dist/make-client-session.d.ts.map +1 -1
  80. package/dist/make-client-session.js +5 -2
  81. package/dist/make-client-session.js.map +1 -1
  82. package/dist/materializer-helper.d.ts +6 -6
  83. package/dist/materializer-helper.d.ts.map +1 -1
  84. package/dist/materializer-helper.js +20 -4
  85. package/dist/materializer-helper.js.map +1 -1
  86. package/dist/rematerialize-from-eventlog.d.ts +2 -2
  87. package/dist/rematerialize-from-eventlog.d.ts.map +1 -1
  88. package/dist/rematerialize-from-eventlog.js +29 -20
  89. package/dist/rematerialize-from-eventlog.js.map +1 -1
  90. package/dist/schema/EventDef/define.d.ts +147 -0
  91. package/dist/schema/EventDef/define.d.ts.map +1 -0
  92. package/dist/schema/EventDef/define.js +139 -0
  93. package/dist/schema/EventDef/define.js.map +1 -0
  94. package/dist/schema/EventDef/event-def.d.ts +106 -0
  95. package/dist/schema/EventDef/event-def.d.ts.map +1 -0
  96. package/dist/schema/EventDef/event-def.js +2 -0
  97. package/dist/schema/EventDef/event-def.js.map +1 -0
  98. package/dist/schema/EventDef/facts.d.ts +118 -0
  99. package/dist/schema/EventDef/facts.d.ts.map +1 -0
  100. package/dist/schema/EventDef/facts.js +53 -0
  101. package/dist/schema/EventDef/facts.js.map +1 -0
  102. package/dist/schema/EventDef/materializer.d.ts +155 -0
  103. package/dist/schema/EventDef/materializer.d.ts.map +1 -0
  104. package/dist/schema/EventDef/materializer.js +83 -0
  105. package/dist/schema/EventDef/materializer.js.map +1 -0
  106. package/dist/schema/EventDef/mod.d.ts +5 -0
  107. package/dist/schema/EventDef/mod.d.ts.map +1 -0
  108. package/dist/schema/EventDef/mod.js +5 -0
  109. package/dist/schema/EventDef/mod.js.map +1 -0
  110. package/dist/schema/EventSequenceNumber/client.d.ts +136 -0
  111. package/dist/schema/EventSequenceNumber/client.d.ts.map +1 -0
  112. package/dist/schema/EventSequenceNumber/client.js +193 -0
  113. package/dist/schema/EventSequenceNumber/client.js.map +1 -0
  114. package/dist/schema/EventSequenceNumber/global.d.ts +15 -0
  115. package/dist/schema/EventSequenceNumber/global.d.ts.map +1 -0
  116. package/dist/schema/EventSequenceNumber/global.js +14 -0
  117. package/dist/schema/EventSequenceNumber/global.js.map +1 -0
  118. package/dist/schema/EventSequenceNumber/mod.d.ts +37 -0
  119. package/dist/schema/EventSequenceNumber/mod.d.ts.map +1 -0
  120. package/dist/schema/EventSequenceNumber/mod.js +37 -0
  121. package/dist/schema/EventSequenceNumber/mod.js.map +1 -0
  122. package/dist/schema/EventSequenceNumber.test.js +43 -43
  123. package/dist/schema/EventSequenceNumber.test.js.map +1 -1
  124. package/dist/schema/{LiveStoreEvent.d.ts → LiveStoreEvent/client.d.ts} +89 -106
  125. package/dist/schema/LiveStoreEvent/client.d.ts.map +1 -0
  126. package/dist/schema/{LiveStoreEvent.js → LiveStoreEvent/client.js} +74 -58
  127. package/dist/schema/LiveStoreEvent/client.js.map +1 -0
  128. package/dist/schema/LiveStoreEvent/for-event-def.d.ts +52 -0
  129. package/dist/schema/LiveStoreEvent/for-event-def.d.ts.map +1 -0
  130. package/dist/schema/LiveStoreEvent/for-event-def.js +2 -0
  131. package/dist/schema/LiveStoreEvent/for-event-def.js.map +1 -0
  132. package/dist/schema/LiveStoreEvent/global.d.ts +36 -0
  133. package/dist/schema/LiveStoreEvent/global.d.ts.map +1 -0
  134. package/dist/schema/LiveStoreEvent/global.js +31 -0
  135. package/dist/schema/LiveStoreEvent/global.js.map +1 -0
  136. package/dist/schema/LiveStoreEvent/input.d.ts +46 -0
  137. package/dist/schema/LiveStoreEvent/input.d.ts.map +1 -0
  138. package/dist/schema/LiveStoreEvent/input.js +26 -0
  139. package/dist/schema/LiveStoreEvent/input.js.map +1 -0
  140. package/dist/schema/LiveStoreEvent/mod.d.ts +5 -0
  141. package/dist/schema/LiveStoreEvent/mod.d.ts.map +1 -0
  142. package/dist/schema/LiveStoreEvent/mod.js +5 -0
  143. package/dist/schema/LiveStoreEvent/mod.js.map +1 -0
  144. package/dist/schema/events.d.ts +1 -1
  145. package/dist/schema/events.d.ts.map +1 -1
  146. package/dist/schema/events.js +1 -1
  147. package/dist/schema/events.js.map +1 -1
  148. package/dist/schema/mod.d.ts +6 -4
  149. package/dist/schema/mod.d.ts.map +1 -1
  150. package/dist/schema/mod.js +5 -4
  151. package/dist/schema/mod.js.map +1 -1
  152. package/dist/schema/schema.d.ts +16 -1
  153. package/dist/schema/schema.d.ts.map +1 -1
  154. package/dist/schema/schema.js +27 -2
  155. package/dist/schema/schema.js.map +1 -1
  156. package/dist/schema/state/sqlite/client-document-def.d.ts +36 -6
  157. package/dist/schema/state/sqlite/client-document-def.d.ts.map +1 -1
  158. package/dist/schema/state/sqlite/client-document-def.js +97 -6
  159. package/dist/schema/state/sqlite/client-document-def.js.map +1 -1
  160. package/dist/schema/state/sqlite/client-document-def.test.js +16 -0
  161. package/dist/schema/state/sqlite/client-document-def.test.js.map +1 -1
  162. package/dist/schema/state/sqlite/column-annotations.d.ts.map +1 -1
  163. package/dist/schema/state/sqlite/column-annotations.js +14 -6
  164. package/dist/schema/state/sqlite/column-annotations.js.map +1 -1
  165. package/dist/schema/state/sqlite/column-annotations.test.js +1 -1
  166. package/dist/schema/state/sqlite/column-annotations.test.js.map +1 -1
  167. package/dist/schema/state/sqlite/column-def.js +69 -22
  168. package/dist/schema/state/sqlite/column-def.js.map +1 -1
  169. package/dist/schema/state/sqlite/column-def.test.js +46 -7
  170. package/dist/schema/state/sqlite/column-def.test.js.map +1 -1
  171. package/dist/schema/state/sqlite/column-spec.d.ts.map +1 -1
  172. package/dist/schema/state/sqlite/column-spec.js +30 -12
  173. package/dist/schema/state/sqlite/column-spec.js.map +1 -1
  174. package/dist/schema/state/sqlite/column-spec.test.js +23 -14
  175. package/dist/schema/state/sqlite/column-spec.test.js.map +1 -1
  176. package/dist/schema/state/sqlite/db-schema/ast/sqlite.d.ts +2 -1
  177. package/dist/schema/state/sqlite/db-schema/ast/sqlite.d.ts.map +1 -1
  178. package/dist/schema/state/sqlite/db-schema/ast/sqlite.js +23 -6
  179. package/dist/schema/state/sqlite/db-schema/ast/sqlite.js.map +1 -1
  180. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.d.ts +14 -8
  181. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.d.ts.map +1 -1
  182. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.js +5 -3
  183. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.js.map +1 -1
  184. package/dist/schema/state/sqlite/db-schema/dsl/mod.d.ts.map +1 -1
  185. package/dist/schema/state/sqlite/db-schema/dsl/mod.js +2 -1
  186. package/dist/schema/state/sqlite/db-schema/dsl/mod.js.map +1 -1
  187. package/dist/schema/state/sqlite/mod.d.ts +3 -3
  188. package/dist/schema/state/sqlite/mod.d.ts.map +1 -1
  189. package/dist/schema/state/sqlite/mod.js +3 -3
  190. package/dist/schema/state/sqlite/mod.js.map +1 -1
  191. package/dist/schema/state/sqlite/query-builder/api.d.ts +17 -10
  192. package/dist/schema/state/sqlite/query-builder/api.d.ts.map +1 -1
  193. package/dist/schema/state/sqlite/query-builder/astToSql.d.ts.map +1 -1
  194. package/dist/schema/state/sqlite/query-builder/astToSql.js +22 -15
  195. package/dist/schema/state/sqlite/query-builder/astToSql.js.map +1 -1
  196. package/dist/schema/state/sqlite/query-builder/impl.d.ts.map +1 -1
  197. package/dist/schema/state/sqlite/query-builder/impl.js +6 -3
  198. package/dist/schema/state/sqlite/query-builder/impl.js.map +1 -1
  199. package/dist/schema/state/sqlite/query-builder/impl.test.js +252 -88
  200. package/dist/schema/state/sqlite/query-builder/impl.test.js.map +1 -1
  201. package/dist/schema/state/sqlite/schema-helpers.d.ts +2 -2
  202. package/dist/schema/state/sqlite/schema-helpers.d.ts.map +1 -1
  203. package/dist/schema/state/sqlite/schema-helpers.js +22 -12
  204. package/dist/schema/state/sqlite/schema-helpers.js.map +1 -1
  205. package/dist/schema/state/sqlite/schema-helpers.test.d.ts +2 -0
  206. package/dist/schema/state/sqlite/schema-helpers.test.d.ts.map +1 -0
  207. package/dist/schema/state/sqlite/schema-helpers.test.js +36 -0
  208. package/dist/schema/state/sqlite/schema-helpers.test.js.map +1 -0
  209. package/dist/schema/state/sqlite/{system-tables.d.ts → system-tables/eventlog-tables.d.ts} +63 -456
  210. package/dist/schema/state/sqlite/system-tables/eventlog-tables.d.ts.map +1 -0
  211. package/dist/schema/state/sqlite/system-tables/eventlog-tables.js +54 -0
  212. package/dist/schema/state/sqlite/system-tables/eventlog-tables.js.map +1 -0
  213. package/dist/schema/state/sqlite/system-tables/mod.d.ts +3 -0
  214. package/dist/schema/state/sqlite/system-tables/mod.d.ts.map +1 -0
  215. package/dist/schema/state/sqlite/system-tables/mod.js +3 -0
  216. package/dist/schema/state/sqlite/system-tables/mod.js.map +1 -0
  217. package/dist/schema/state/sqlite/system-tables/state-tables.d.ts +456 -0
  218. package/dist/schema/state/sqlite/system-tables/state-tables.d.ts.map +1 -0
  219. package/dist/schema/state/sqlite/system-tables/state-tables.js +55 -0
  220. package/dist/schema/state/sqlite/system-tables/state-tables.js.map +1 -0
  221. package/dist/schema/state/sqlite/table-def.d.ts +4 -4
  222. package/dist/schema/state/sqlite/table-def.d.ts.map +1 -1
  223. package/dist/schema/state/sqlite/table-def.js +2 -2
  224. package/dist/schema/state/sqlite/table-def.js.map +1 -1
  225. package/dist/schema/state/sqlite/table-def.test.js +80 -0
  226. package/dist/schema/state/sqlite/table-def.test.js.map +1 -1
  227. package/dist/schema/unknown-events.d.ts +47 -0
  228. package/dist/schema/unknown-events.d.ts.map +1 -0
  229. package/dist/schema/unknown-events.js +69 -0
  230. package/dist/schema/unknown-events.js.map +1 -0
  231. package/dist/schema-management/__tests__/migrations-autoincrement-quoting.test.d.ts +2 -0
  232. package/dist/schema-management/__tests__/migrations-autoincrement-quoting.test.d.ts.map +1 -0
  233. package/dist/schema-management/__tests__/migrations-autoincrement-quoting.test.js +73 -0
  234. package/dist/schema-management/__tests__/migrations-autoincrement-quoting.test.js.map +1 -0
  235. package/dist/schema-management/migrations.d.ts +32 -2
  236. package/dist/schema-management/migrations.d.ts.map +1 -1
  237. package/dist/schema-management/migrations.js +37 -5
  238. package/dist/schema-management/migrations.js.map +1 -1
  239. package/dist/schema-management/validate-schema.d.ts +3 -3
  240. package/dist/schema-management/validate-schema.d.ts.map +1 -1
  241. package/dist/schema-management/validate-schema.js +2 -2
  242. package/dist/schema-management/validate-schema.js.map +1 -1
  243. package/dist/sql-queries/sql-queries.d.ts.map +1 -1
  244. package/dist/sql-queries/sql-queries.js +11 -1
  245. package/dist/sql-queries/sql-queries.js.map +1 -1
  246. package/dist/sql-queries/sql-query-builder.d.ts.map +1 -1
  247. package/dist/sql-queries/sql-query-builder.js +2 -1
  248. package/dist/sql-queries/sql-query-builder.js.map +1 -1
  249. package/dist/sqlite-types.d.ts +3 -3
  250. package/dist/sqlite-types.d.ts.map +1 -1
  251. package/dist/sync/ClientSessionSyncProcessor.d.ts +11 -13
  252. package/dist/sync/ClientSessionSyncProcessor.d.ts.map +1 -1
  253. package/dist/sync/ClientSessionSyncProcessor.js +45 -42
  254. package/dist/sync/ClientSessionSyncProcessor.js.map +1 -1
  255. package/dist/sync/errors.d.ts +66 -0
  256. package/dist/sync/errors.d.ts.map +1 -0
  257. package/dist/sync/errors.js +36 -0
  258. package/dist/sync/errors.js.map +1 -0
  259. package/dist/sync/index.d.ts +3 -0
  260. package/dist/sync/index.d.ts.map +1 -1
  261. package/dist/sync/index.js +3 -0
  262. package/dist/sync/index.js.map +1 -1
  263. package/dist/sync/mock-sync-backend.d.ts +23 -0
  264. package/dist/sync/mock-sync-backend.d.ts.map +1 -0
  265. package/dist/sync/mock-sync-backend.js +114 -0
  266. package/dist/sync/mock-sync-backend.js.map +1 -0
  267. package/dist/sync/next/compact-events.d.ts.map +1 -1
  268. package/dist/sync/next/compact-events.js +6 -7
  269. package/dist/sync/next/compact-events.js.map +1 -1
  270. package/dist/sync/next/facts.d.ts +5 -5
  271. package/dist/sync/next/facts.d.ts.map +1 -1
  272. package/dist/sync/next/facts.js +1 -2
  273. package/dist/sync/next/facts.js.map +1 -1
  274. package/dist/sync/next/history-dag-common.d.ts +54 -15
  275. package/dist/sync/next/history-dag-common.d.ts.map +1 -1
  276. package/dist/sync/next/history-dag-common.js +198 -9
  277. package/dist/sync/next/history-dag-common.js.map +1 -1
  278. package/dist/sync/next/history-dag.d.ts.map +1 -1
  279. package/dist/sync/next/history-dag.js +10 -8
  280. package/dist/sync/next/history-dag.js.map +1 -1
  281. package/dist/sync/next/rebase-events.d.ts +5 -5
  282. package/dist/sync/next/rebase-events.d.ts.map +1 -1
  283. package/dist/sync/next/rebase-events.js +5 -5
  284. package/dist/sync/next/rebase-events.js.map +1 -1
  285. package/dist/sync/next/test/event-fixtures.d.ts +2 -2
  286. package/dist/sync/next/test/event-fixtures.d.ts.map +1 -1
  287. package/dist/sync/next/test/event-fixtures.js +9 -9
  288. package/dist/sync/next/test/event-fixtures.js.map +1 -1
  289. package/dist/sync/sync-backend-kv.d.ts +7 -0
  290. package/dist/sync/sync-backend-kv.d.ts.map +1 -0
  291. package/dist/sync/sync-backend-kv.js +18 -0
  292. package/dist/sync/sync-backend-kv.js.map +1 -0
  293. package/dist/sync/sync-backend.d.ts +105 -0
  294. package/dist/sync/sync-backend.d.ts.map +1 -0
  295. package/dist/sync/sync-backend.js +61 -0
  296. package/dist/sync/sync-backend.js.map +1 -0
  297. package/dist/sync/sync.d.ts +9 -86
  298. package/dist/sync/sync.d.ts.map +1 -1
  299. package/dist/sync/sync.js +2 -27
  300. package/dist/sync/sync.js.map +1 -1
  301. package/dist/sync/syncstate.d.ts +57 -44
  302. package/dist/sync/syncstate.d.ts.map +1 -1
  303. package/dist/sync/syncstate.js +50 -45
  304. package/dist/sync/syncstate.js.map +1 -1
  305. package/dist/sync/syncstate.test.js +83 -46
  306. package/dist/sync/syncstate.test.js.map +1 -1
  307. package/dist/sync/transport-chunking.d.ts +36 -0
  308. package/dist/sync/transport-chunking.d.ts.map +1 -0
  309. package/dist/sync/transport-chunking.js +56 -0
  310. package/dist/sync/transport-chunking.js.map +1 -0
  311. package/dist/sync/validate-push-payload.d.ts +2 -2
  312. package/dist/sync/validate-push-payload.d.ts.map +1 -1
  313. package/dist/sync/validate-push-payload.js +6 -6
  314. package/dist/sync/validate-push-payload.js.map +1 -1
  315. package/dist/testing/event-factory.d.ts +68 -0
  316. package/dist/testing/event-factory.d.ts.map +1 -0
  317. package/dist/testing/event-factory.js +78 -0
  318. package/dist/testing/event-factory.js.map +1 -0
  319. package/dist/testing/mod.d.ts +2 -0
  320. package/dist/testing/mod.d.ts.map +1 -0
  321. package/dist/testing/mod.js +2 -0
  322. package/dist/testing/mod.js.map +1 -0
  323. package/dist/version.d.ts +16 -6
  324. package/dist/version.d.ts.map +1 -1
  325. package/dist/version.js +16 -6
  326. package/dist/version.js.map +1 -1
  327. package/package.json +7 -8
  328. package/src/ClientSessionLeaderThreadProxy.ts +17 -12
  329. package/src/adapter-types.ts +18 -6
  330. package/src/debug-info.ts +37 -6
  331. package/src/devtools/devtools-messages-client-session.ts +2 -2
  332. package/src/devtools/devtools-messages-common.ts +1 -8
  333. package/src/devtools/devtools-messages-leader.ts +8 -8
  334. package/src/devtools/devtools-sessioninfo.ts +8 -5
  335. package/src/devtools/mod.ts +11 -2
  336. package/src/errors.ts +38 -11
  337. package/src/index.ts +2 -1
  338. package/src/leader-thread/LeaderSyncProcessor.ts +242 -103
  339. package/src/leader-thread/eventlog.ts +33 -34
  340. package/src/leader-thread/leader-worker-devtools.ts +50 -54
  341. package/src/leader-thread/make-leader-thread-layer.test.ts +44 -0
  342. package/src/leader-thread/make-leader-thread-layer.ts +156 -37
  343. package/src/leader-thread/materialize-event.ts +37 -12
  344. package/src/leader-thread/recreate-db.ts +15 -7
  345. package/src/leader-thread/shutdown-channel.ts +16 -2
  346. package/src/leader-thread/types.ts +21 -19
  347. package/src/logging.ts +62 -0
  348. package/src/make-client-session.ts +9 -3
  349. package/src/materializer-helper.ts +27 -10
  350. package/src/rematerialize-from-eventlog.ts +37 -27
  351. package/src/schema/EventDef/define.ts +201 -0
  352. package/src/schema/EventDef/event-def.ts +120 -0
  353. package/src/schema/EventDef/facts.ts +135 -0
  354. package/src/schema/EventDef/materializer.ts +172 -0
  355. package/src/schema/EventDef/mod.ts +4 -0
  356. package/src/schema/EventSequenceNumber/client.ts +257 -0
  357. package/src/schema/EventSequenceNumber/global.ts +19 -0
  358. package/src/schema/EventSequenceNumber/mod.ts +37 -0
  359. package/src/schema/EventSequenceNumber.test.ts +70 -52
  360. package/src/schema/LiveStoreEvent/client.ts +221 -0
  361. package/src/schema/LiveStoreEvent/for-event-def.ts +60 -0
  362. package/src/schema/LiveStoreEvent/global.ts +45 -0
  363. package/src/schema/LiveStoreEvent/input.ts +63 -0
  364. package/src/schema/LiveStoreEvent/mod.ts +4 -0
  365. package/src/schema/events.ts +1 -1
  366. package/src/schema/mod.ts +6 -4
  367. package/src/schema/schema.ts +39 -3
  368. package/src/schema/state/sqlite/client-document-def.test.ts +19 -2
  369. package/src/schema/state/sqlite/client-document-def.ts +120 -8
  370. package/src/schema/state/sqlite/column-annotations.test.ts +1 -1
  371. package/src/schema/state/sqlite/column-annotations.ts +16 -6
  372. package/src/schema/state/sqlite/column-def.test.ts +60 -7
  373. package/src/schema/state/sqlite/column-def.ts +88 -21
  374. package/src/schema/state/sqlite/column-spec.test.ts +29 -16
  375. package/src/schema/state/sqlite/column-spec.ts +36 -11
  376. package/src/schema/state/sqlite/db-schema/ast/sqlite.ts +26 -6
  377. package/src/schema/state/sqlite/db-schema/dsl/field-defs.ts +29 -12
  378. package/src/schema/state/sqlite/db-schema/dsl/mod.ts +2 -1
  379. package/src/schema/state/sqlite/mod.ts +4 -3
  380. package/src/schema/state/sqlite/query-builder/api.ts +19 -10
  381. package/src/schema/state/sqlite/query-builder/astToSql.ts +23 -14
  382. package/src/schema/state/sqlite/query-builder/impl.test.ts +305 -92
  383. package/src/schema/state/sqlite/query-builder/impl.ts +8 -3
  384. package/src/schema/state/sqlite/schema-helpers.test.ts +44 -0
  385. package/src/schema/state/sqlite/schema-helpers.ts +28 -20
  386. package/src/schema/state/sqlite/system-tables/eventlog-tables.ts +64 -0
  387. package/src/schema/state/sqlite/system-tables/mod.ts +2 -0
  388. package/src/schema/state/sqlite/system-tables/state-tables.ts +69 -0
  389. package/src/schema/state/sqlite/table-def.test.ts +101 -0
  390. package/src/schema/state/sqlite/table-def.ts +9 -8
  391. package/src/schema/unknown-events.ts +131 -0
  392. package/src/schema-management/__tests__/migrations-autoincrement-quoting.test.ts +86 -0
  393. package/src/schema-management/migrations.ts +41 -8
  394. package/src/schema-management/validate-schema.ts +3 -3
  395. package/src/sql-queries/sql-queries.ts +9 -1
  396. package/src/sql-queries/sql-query-builder.ts +2 -1
  397. package/src/sqlite-types.ts +3 -3
  398. package/src/sync/ClientSessionSyncProcessor.ts +69 -62
  399. package/src/sync/errors.ts +38 -0
  400. package/src/sync/index.ts +3 -0
  401. package/src/sync/mock-sync-backend.ts +184 -0
  402. package/src/sync/next/compact-events.ts +6 -7
  403. package/src/sync/next/facts.ts +7 -9
  404. package/src/sync/next/history-dag-common.ts +277 -26
  405. package/src/sync/next/history-dag.ts +16 -10
  406. package/src/sync/next/rebase-events.ts +11 -11
  407. package/src/sync/next/test/event-fixtures.ts +11 -11
  408. package/src/sync/sync-backend-kv.ts +22 -0
  409. package/src/sync/sync-backend.ts +185 -0
  410. package/src/sync/sync.ts +9 -91
  411. package/src/sync/syncstate.test.ts +96 -52
  412. package/src/sync/syncstate.ts +69 -58
  413. package/src/sync/transport-chunking.ts +90 -0
  414. package/src/sync/validate-push-payload.ts +8 -9
  415. package/src/testing/event-factory.ts +131 -0
  416. package/src/testing/mod.ts +1 -0
  417. package/src/version.ts +16 -6
  418. package/dist/schema/EventDef.d.ts +0 -123
  419. package/dist/schema/EventDef.d.ts.map +0 -1
  420. package/dist/schema/EventDef.js +0 -46
  421. package/dist/schema/EventDef.js.map +0 -1
  422. package/dist/schema/EventSequenceNumber.d.ts +0 -80
  423. package/dist/schema/EventSequenceNumber.d.ts.map +0 -1
  424. package/dist/schema/EventSequenceNumber.js +0 -139
  425. package/dist/schema/EventSequenceNumber.js.map +0 -1
  426. package/dist/schema/LiveStoreEvent.d.ts.map +0 -1
  427. package/dist/schema/LiveStoreEvent.js.map +0 -1
  428. package/dist/schema/state/sqlite/system-tables.d.ts.map +0 -1
  429. package/dist/schema/state/sqlite/system-tables.js +0 -79
  430. package/dist/schema/state/sqlite/system-tables.js.map +0 -1
  431. package/dist/schema-management/migrations.test.d.ts +0 -2
  432. package/dist/schema-management/migrations.test.d.ts.map +0 -1
  433. package/dist/schema-management/migrations.test.js +0 -52
  434. package/dist/schema-management/migrations.test.js.map +0 -1
  435. package/dist/sync/next/graphology.d.ts +0 -8
  436. package/dist/sync/next/graphology.d.ts.map +0 -1
  437. package/dist/sync/next/graphology.js +0 -30
  438. package/dist/sync/next/graphology.js.map +0 -1
  439. package/dist/sync/next/graphology_.d.ts +0 -3
  440. package/dist/sync/next/graphology_.d.ts.map +0 -1
  441. package/dist/sync/next/graphology_.js +0 -3
  442. package/dist/sync/next/graphology_.js.map +0 -1
  443. package/src/schema/EventDef.ts +0 -219
  444. package/src/schema/EventSequenceNumber.ts +0 -199
  445. package/src/schema/LiveStoreEvent.ts +0 -287
  446. package/src/schema/state/sqlite/system-tables.ts +0 -104
  447. package/src/sync/next/ambient.d.ts +0 -3
  448. package/src/sync/next/graphology.ts +0 -41
  449. package/src/sync/next/graphology_.ts +0 -2
@@ -1,449 +1,17 @@
1
1
  import { Schema } from '@livestore/utils/effect';
2
- export declare const SCHEMA_META_TABLE = "__livestore_schema";
3
- export declare const schemaMetaTable: import("./table-def.ts").TableDef<import("./table-def.ts").SqliteTableDefForInput<"__livestore_schema", {
4
- readonly tableName: {
5
- columnType: "text";
6
- schema: Schema.Schema<string, string, never>;
7
- default: import("effect/Option").None<never>;
8
- nullable: false;
9
- primaryKey: true;
10
- autoIncrement: false;
11
- };
12
- readonly schemaHash: {
13
- columnType: "integer";
14
- schema: Schema.Schema<number, number, never>;
15
- default: import("effect/Option").None<never>;
16
- nullable: false;
17
- primaryKey: false;
18
- autoIncrement: false;
19
- };
20
- /** ISO date format */
21
- readonly updatedAt: {
22
- columnType: "text";
23
- schema: Schema.Schema<string, string, never>;
24
- default: import("effect/Option").None<never>;
25
- nullable: false;
26
- primaryKey: false;
27
- autoIncrement: false;
28
- };
29
- }>, import("./table-def.ts").WithDefaults<{
30
- readonly tableName: {
31
- columnType: "text";
32
- schema: Schema.Schema<string, string, never>;
33
- default: import("effect/Option").None<never>;
34
- nullable: false;
35
- primaryKey: true;
36
- autoIncrement: false;
37
- };
38
- readonly schemaHash: {
39
- columnType: "integer";
40
- schema: Schema.Schema<number, number, never>;
41
- default: import("effect/Option").None<never>;
42
- nullable: false;
43
- primaryKey: false;
44
- autoIncrement: false;
45
- };
46
- /** ISO date format */
47
- readonly updatedAt: {
48
- columnType: "text";
49
- schema: Schema.Schema<string, string, never>;
50
- default: import("effect/Option").None<never>;
51
- nullable: false;
52
- primaryKey: false;
53
- autoIncrement: false;
54
- };
55
- }>, Schema.Schema<{
56
- readonly tableName: string;
57
- readonly schemaHash: number;
58
- readonly updatedAt: string;
59
- }, {
60
- readonly tableName: string;
61
- readonly schemaHash: number;
62
- readonly updatedAt: string;
63
- }, never>>;
64
- export type SchemaMetaRow = typeof schemaMetaTable.Type;
65
- export declare const SCHEMA_EVENT_DEFS_META_TABLE = "__livestore_schema_event_defs";
66
- export declare const schemaEventDefsMetaTable: import("./table-def.ts").TableDef<import("./table-def.ts").SqliteTableDefForInput<"__livestore_schema_event_defs", {
67
- readonly eventName: {
68
- columnType: "text";
69
- schema: Schema.Schema<string, string, never>;
70
- default: import("effect/Option").None<never>;
71
- nullable: false;
72
- primaryKey: true;
73
- autoIncrement: false;
74
- };
75
- readonly schemaHash: {
76
- columnType: "integer";
77
- schema: Schema.Schema<number, number, never>;
78
- default: import("effect/Option").None<never>;
79
- nullable: false;
80
- primaryKey: false;
81
- autoIncrement: false;
82
- };
83
- /** ISO date format */
84
- readonly updatedAt: {
85
- columnType: "text";
86
- schema: Schema.Schema<string, string, never>;
87
- default: import("effect/Option").None<never>;
88
- nullable: false;
89
- primaryKey: false;
90
- autoIncrement: false;
91
- };
92
- }>, import("./table-def.ts").WithDefaults<{
93
- readonly eventName: {
94
- columnType: "text";
95
- schema: Schema.Schema<string, string, never>;
96
- default: import("effect/Option").None<never>;
97
- nullable: false;
98
- primaryKey: true;
99
- autoIncrement: false;
100
- };
101
- readonly schemaHash: {
102
- columnType: "integer";
103
- schema: Schema.Schema<number, number, never>;
104
- default: import("effect/Option").None<never>;
105
- nullable: false;
106
- primaryKey: false;
107
- autoIncrement: false;
108
- };
109
- /** ISO date format */
110
- readonly updatedAt: {
111
- columnType: "text";
112
- schema: Schema.Schema<string, string, never>;
113
- default: import("effect/Option").None<never>;
114
- nullable: false;
115
- primaryKey: false;
116
- autoIncrement: false;
117
- };
118
- }>, Schema.Schema<{
119
- readonly eventName: string;
120
- readonly schemaHash: number;
121
- readonly updatedAt: string;
122
- }, {
123
- readonly eventName: string;
124
- readonly schemaHash: number;
125
- readonly updatedAt: string;
126
- }, never>>;
127
- export type SchemaEventDefsMetaRow = typeof schemaEventDefsMetaTable.Type;
128
2
  /**
129
- * Table which stores SQLite changeset blobs which is used for rolling back
130
- * read-model state during rebasing.
3
+ * EVENTLOG DATABASE SYSTEM TABLES
4
+ *
5
+ * ⚠️ CRITICAL: NEVER modify eventlog schemas without bumping `liveStoreStorageFormatVersion`!
6
+ * Eventlog is the source of truth - schema changes cause permanent data loss.
7
+ *
8
+ * TODO: Implement proper eventlog versioning system to prevent accidental data loss
131
9
  */
132
- export declare const SESSION_CHANGESET_META_TABLE = "__livestore_session_changeset";
133
- export declare const sessionChangesetMetaTable: import("./table-def.ts").TableDef<import("./table-def.ts").SqliteTableDefForInput<"__livestore_session_changeset", {
134
- readonly seqNumGlobal: {
135
- columnType: "integer";
136
- schema: Schema.Schema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
137
- default: import("effect/Option").None<never>;
138
- nullable: false;
139
- primaryKey: false;
140
- autoIncrement: false;
141
- };
142
- readonly seqNumClient: {
143
- columnType: "integer";
144
- schema: Schema.Schema<number & import("effect/Brand").Brand<"ClientEventSequenceNumber">, number, never>;
145
- default: import("effect/Option").None<never>;
146
- nullable: false;
147
- primaryKey: false;
148
- autoIncrement: false;
149
- };
150
- readonly seqNumRebaseGeneration: {
151
- columnType: "integer";
152
- schema: Schema.Schema<number, number, never>;
153
- default: import("effect/Option").None<never>;
154
- nullable: false;
155
- primaryKey: false;
156
- autoIncrement: false;
157
- };
158
- readonly changeset: {
159
- columnType: "blob";
160
- schema: Schema.Schema<Uint8Array<ArrayBuffer> | null, Uint8Array<ArrayBuffer> | null, never>;
161
- default: import("effect/Option").None<never>;
162
- nullable: true;
163
- primaryKey: false;
164
- autoIncrement: false;
165
- };
166
- readonly debug: {
167
- columnType: "text";
168
- schema: Schema.Schema<unknown, string | null, never>;
169
- default: import("effect/Option").Some<any> | import("effect/Option").None<never>;
170
- nullable: true;
171
- primaryKey: false;
172
- autoIncrement: false;
173
- };
174
- }>, import("./table-def.ts").WithDefaults<{
175
- readonly seqNumGlobal: {
176
- columnType: "integer";
177
- schema: Schema.Schema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
178
- default: import("effect/Option").None<never>;
179
- nullable: false;
180
- primaryKey: false;
181
- autoIncrement: false;
182
- };
183
- readonly seqNumClient: {
184
- columnType: "integer";
185
- schema: Schema.Schema<number & import("effect/Brand").Brand<"ClientEventSequenceNumber">, number, never>;
186
- default: import("effect/Option").None<never>;
187
- nullable: false;
188
- primaryKey: false;
189
- autoIncrement: false;
190
- };
191
- readonly seqNumRebaseGeneration: {
192
- columnType: "integer";
193
- schema: Schema.Schema<number, number, never>;
194
- default: import("effect/Option").None<never>;
195
- nullable: false;
196
- primaryKey: false;
197
- autoIncrement: false;
198
- };
199
- readonly changeset: {
200
- columnType: "blob";
201
- schema: Schema.Schema<Uint8Array<ArrayBuffer> | null, Uint8Array<ArrayBuffer> | null, never>;
202
- default: import("effect/Option").None<never>;
203
- nullable: true;
204
- primaryKey: false;
205
- autoIncrement: false;
206
- };
207
- readonly debug: {
208
- columnType: "text";
209
- schema: Schema.Schema<unknown, string | null, never>;
210
- default: import("effect/Option").Some<any> | import("effect/Option").None<never>;
211
- nullable: true;
212
- primaryKey: false;
213
- autoIncrement: false;
214
- };
215
- }>, Schema.Schema<{
216
- readonly seqNumGlobal: number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">;
217
- readonly seqNumClient: number & import("effect/Brand").Brand<"ClientEventSequenceNumber">;
218
- readonly seqNumRebaseGeneration: number;
219
- readonly changeset: Uint8Array<ArrayBuffer> | null;
220
- readonly debug: unknown;
221
- }, {
222
- readonly seqNumGlobal: number;
223
- readonly seqNumClient: number;
224
- readonly seqNumRebaseGeneration: number;
225
- readonly changeset: Uint8Array<ArrayBuffer> | null;
226
- readonly debug: string | null;
227
- }, never>>;
228
- export type SessionChangesetMetaRow = typeof sessionChangesetMetaTable.Type;
229
- export declare const stateSystemTables: readonly [import("./table-def.ts").TableDef<import("./table-def.ts").SqliteTableDefForInput<"__livestore_schema", {
230
- readonly tableName: {
231
- columnType: "text";
232
- schema: Schema.Schema<string, string, never>;
233
- default: import("effect/Option").None<never>;
234
- nullable: false;
235
- primaryKey: true;
236
- autoIncrement: false;
237
- };
238
- readonly schemaHash: {
239
- columnType: "integer";
240
- schema: Schema.Schema<number, number, never>;
241
- default: import("effect/Option").None<never>;
242
- nullable: false;
243
- primaryKey: false;
244
- autoIncrement: false;
245
- };
246
- /** ISO date format */
247
- readonly updatedAt: {
248
- columnType: "text";
249
- schema: Schema.Schema<string, string, never>;
250
- default: import("effect/Option").None<never>;
251
- nullable: false;
252
- primaryKey: false;
253
- autoIncrement: false;
254
- };
255
- }>, import("./table-def.ts").WithDefaults<{
256
- readonly tableName: {
257
- columnType: "text";
258
- schema: Schema.Schema<string, string, never>;
259
- default: import("effect/Option").None<never>;
260
- nullable: false;
261
- primaryKey: true;
262
- autoIncrement: false;
263
- };
264
- readonly schemaHash: {
265
- columnType: "integer";
266
- schema: Schema.Schema<number, number, never>;
267
- default: import("effect/Option").None<never>;
268
- nullable: false;
269
- primaryKey: false;
270
- autoIncrement: false;
271
- };
272
- /** ISO date format */
273
- readonly updatedAt: {
274
- columnType: "text";
275
- schema: Schema.Schema<string, string, never>;
276
- default: import("effect/Option").None<never>;
277
- nullable: false;
278
- primaryKey: false;
279
- autoIncrement: false;
280
- };
281
- }>, Schema.Schema<{
282
- readonly tableName: string;
283
- readonly schemaHash: number;
284
- readonly updatedAt: string;
285
- }, {
286
- readonly tableName: string;
287
- readonly schemaHash: number;
288
- readonly updatedAt: string;
289
- }, never>>, import("./table-def.ts").TableDef<import("./table-def.ts").SqliteTableDefForInput<"__livestore_schema_event_defs", {
290
- readonly eventName: {
291
- columnType: "text";
292
- schema: Schema.Schema<string, string, never>;
293
- default: import("effect/Option").None<never>;
294
- nullable: false;
295
- primaryKey: true;
296
- autoIncrement: false;
297
- };
298
- readonly schemaHash: {
299
- columnType: "integer";
300
- schema: Schema.Schema<number, number, never>;
301
- default: import("effect/Option").None<never>;
302
- nullable: false;
303
- primaryKey: false;
304
- autoIncrement: false;
305
- };
306
- /** ISO date format */
307
- readonly updatedAt: {
308
- columnType: "text";
309
- schema: Schema.Schema<string, string, never>;
310
- default: import("effect/Option").None<never>;
311
- nullable: false;
312
- primaryKey: false;
313
- autoIncrement: false;
314
- };
315
- }>, import("./table-def.ts").WithDefaults<{
316
- readonly eventName: {
317
- columnType: "text";
318
- schema: Schema.Schema<string, string, never>;
319
- default: import("effect/Option").None<never>;
320
- nullable: false;
321
- primaryKey: true;
322
- autoIncrement: false;
323
- };
324
- readonly schemaHash: {
325
- columnType: "integer";
326
- schema: Schema.Schema<number, number, never>;
327
- default: import("effect/Option").None<never>;
328
- nullable: false;
329
- primaryKey: false;
330
- autoIncrement: false;
331
- };
332
- /** ISO date format */
333
- readonly updatedAt: {
334
- columnType: "text";
335
- schema: Schema.Schema<string, string, never>;
336
- default: import("effect/Option").None<never>;
337
- nullable: false;
338
- primaryKey: false;
339
- autoIncrement: false;
340
- };
341
- }>, Schema.Schema<{
342
- readonly eventName: string;
343
- readonly schemaHash: number;
344
- readonly updatedAt: string;
345
- }, {
346
- readonly eventName: string;
347
- readonly schemaHash: number;
348
- readonly updatedAt: string;
349
- }, never>>, import("./table-def.ts").TableDef<import("./table-def.ts").SqliteTableDefForInput<"__livestore_session_changeset", {
350
- readonly seqNumGlobal: {
351
- columnType: "integer";
352
- schema: Schema.Schema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
353
- default: import("effect/Option").None<never>;
354
- nullable: false;
355
- primaryKey: false;
356
- autoIncrement: false;
357
- };
358
- readonly seqNumClient: {
359
- columnType: "integer";
360
- schema: Schema.Schema<number & import("effect/Brand").Brand<"ClientEventSequenceNumber">, number, never>;
361
- default: import("effect/Option").None<never>;
362
- nullable: false;
363
- primaryKey: false;
364
- autoIncrement: false;
365
- };
366
- readonly seqNumRebaseGeneration: {
367
- columnType: "integer";
368
- schema: Schema.Schema<number, number, never>;
369
- default: import("effect/Option").None<never>;
370
- nullable: false;
371
- primaryKey: false;
372
- autoIncrement: false;
373
- };
374
- readonly changeset: {
375
- columnType: "blob";
376
- schema: Schema.Schema<Uint8Array<ArrayBuffer> | null, Uint8Array<ArrayBuffer> | null, never>;
377
- default: import("effect/Option").None<never>;
378
- nullable: true;
379
- primaryKey: false;
380
- autoIncrement: false;
381
- };
382
- readonly debug: {
383
- columnType: "text";
384
- schema: Schema.Schema<unknown, string | null, never>;
385
- default: import("effect/Option").Some<any> | import("effect/Option").None<never>;
386
- nullable: true;
387
- primaryKey: false;
388
- autoIncrement: false;
389
- };
390
- }>, import("./table-def.ts").WithDefaults<{
391
- readonly seqNumGlobal: {
392
- columnType: "integer";
393
- schema: Schema.Schema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
394
- default: import("effect/Option").None<never>;
395
- nullable: false;
396
- primaryKey: false;
397
- autoIncrement: false;
398
- };
399
- readonly seqNumClient: {
400
- columnType: "integer";
401
- schema: Schema.Schema<number & import("effect/Brand").Brand<"ClientEventSequenceNumber">, number, never>;
402
- default: import("effect/Option").None<never>;
403
- nullable: false;
404
- primaryKey: false;
405
- autoIncrement: false;
406
- };
407
- readonly seqNumRebaseGeneration: {
408
- columnType: "integer";
409
- schema: Schema.Schema<number, number, never>;
410
- default: import("effect/Option").None<never>;
411
- nullable: false;
412
- primaryKey: false;
413
- autoIncrement: false;
414
- };
415
- readonly changeset: {
416
- columnType: "blob";
417
- schema: Schema.Schema<Uint8Array<ArrayBuffer> | null, Uint8Array<ArrayBuffer> | null, never>;
418
- default: import("effect/Option").None<never>;
419
- nullable: true;
420
- primaryKey: false;
421
- autoIncrement: false;
422
- };
423
- readonly debug: {
424
- columnType: "text";
425
- schema: Schema.Schema<unknown, string | null, never>;
426
- default: import("effect/Option").Some<any> | import("effect/Option").None<never>;
427
- nullable: true;
428
- primaryKey: false;
429
- autoIncrement: false;
430
- };
431
- }>, Schema.Schema<{
432
- readonly seqNumGlobal: number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">;
433
- readonly seqNumClient: number & import("effect/Brand").Brand<"ClientEventSequenceNumber">;
434
- readonly seqNumRebaseGeneration: number;
435
- readonly changeset: Uint8Array<ArrayBuffer> | null;
436
- readonly debug: unknown;
437
- }, {
438
- readonly seqNumGlobal: number;
439
- readonly seqNumClient: number;
440
- readonly seqNumRebaseGeneration: number;
441
- readonly changeset: Uint8Array<ArrayBuffer> | null;
442
- readonly debug: string | null;
443
- }, never>>];
444
- export declare const isStateSystemTable: (tableName: string) => boolean;
445
10
  export declare const EVENTLOG_META_TABLE = "eventlog";
446
- export declare const eventlogMetaTable: import("./table-def.ts").TableDef<import("./table-def.ts").SqliteTableDefForInput<"eventlog", {
11
+ /**
12
+ * Main client-side event log storing all events (global and local/rebased).
13
+ */
14
+ export declare const eventlogMetaTable: import("../table-def.ts").TableDef<import("../table-def.ts").SqliteTableDefForInput<"eventlog", {
447
15
  readonly seqNumGlobal: {
448
16
  columnType: "integer";
449
17
  schema: Schema.Schema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
@@ -535,13 +103,13 @@ export declare const eventlogMetaTable: import("./table-def.ts").TableDef<import
535
103
  };
536
104
  readonly syncMetadataJson: {
537
105
  columnType: "text";
538
- schema: Schema.Schema<import("effect/Option").None<Schema.JsonValue> | import("effect/Option").Some<Schema.JsonValue>, string, never>;
106
+ schema: Schema.Schema<import("effect/Option").Option<Schema.JsonValue>, string, never>;
539
107
  default: import("effect/Option").None<never>;
540
108
  nullable: false;
541
109
  primaryKey: false;
542
110
  autoIncrement: false;
543
111
  };
544
- }>, import("./table-def.ts").WithDefaults<{
112
+ }>, import("../table-def.ts").WithDefaults<{
545
113
  readonly seqNumGlobal: {
546
114
  columnType: "integer";
547
115
  schema: Schema.Schema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
@@ -633,7 +201,7 @@ export declare const eventlogMetaTable: import("./table-def.ts").TableDef<import
633
201
  };
634
202
  readonly syncMetadataJson: {
635
203
  columnType: "text";
636
- schema: Schema.Schema<import("effect/Option").None<Schema.JsonValue> | import("effect/Option").Some<Schema.JsonValue>, string, never>;
204
+ schema: Schema.Schema<import("effect/Option").Option<Schema.JsonValue>, string, never>;
637
205
  default: import("effect/Option").None<never>;
638
206
  nullable: false;
639
207
  primaryKey: false;
@@ -651,7 +219,7 @@ export declare const eventlogMetaTable: import("./table-def.ts").TableDef<import
651
219
  readonly clientId: string;
652
220
  readonly sessionId: string;
653
221
  readonly schemaHash: number;
654
- readonly syncMetadataJson: import("effect/Option").None<Schema.JsonValue> | import("effect/Option").Some<Schema.JsonValue>;
222
+ readonly syncMetadataJson: import("effect/Option").Option<Schema.JsonValue>;
655
223
  }, {
656
224
  readonly seqNumGlobal: number;
657
225
  readonly seqNumClient: number;
@@ -668,7 +236,10 @@ export declare const eventlogMetaTable: import("./table-def.ts").TableDef<import
668
236
  }, never>>;
669
237
  export type EventlogMetaRow = typeof eventlogMetaTable.Type;
670
238
  export declare const SYNC_STATUS_TABLE = "__livestore_sync_status";
671
- export declare const syncStatusTable: import("./table-def.ts").TableDef<import("./table-def.ts").SqliteTableDefForInput<"__livestore_sync_status", {
239
+ /**
240
+ * Tracks sync status including the remote head position and backend identity.
241
+ */
242
+ export declare const syncStatusTable: import("../table-def.ts").TableDef<import("../table-def.ts").SqliteTableDefForInput<"__livestore_sync_status", {
672
243
  readonly head: {
673
244
  columnType: "integer";
674
245
  schema: Schema.Schema<number, number, never>;
@@ -677,7 +248,15 @@ export declare const syncStatusTable: import("./table-def.ts").TableDef<import("
677
248
  primaryKey: true;
678
249
  autoIncrement: false;
679
250
  };
680
- }>, import("./table-def.ts").WithDefaults<{
251
+ readonly backendId: {
252
+ columnType: "text";
253
+ schema: Schema.Schema<string | null, string | null, never>;
254
+ default: import("effect/Option").None<never>;
255
+ nullable: true;
256
+ primaryKey: false;
257
+ autoIncrement: false;
258
+ };
259
+ }>, import("../table-def.ts").WithDefaults<{
681
260
  readonly head: {
682
261
  columnType: "integer";
683
262
  schema: Schema.Schema<number, number, never>;
@@ -686,13 +265,23 @@ export declare const syncStatusTable: import("./table-def.ts").TableDef<import("
686
265
  primaryKey: true;
687
266
  autoIncrement: false;
688
267
  };
268
+ readonly backendId: {
269
+ columnType: "text";
270
+ schema: Schema.Schema<string | null, string | null, never>;
271
+ default: import("effect/Option").None<never>;
272
+ nullable: true;
273
+ primaryKey: false;
274
+ autoIncrement: false;
275
+ };
689
276
  }>, Schema.Schema<{
690
277
  readonly head: number;
278
+ readonly backendId: string | null;
691
279
  }, {
692
280
  readonly head: number;
281
+ readonly backendId: string | null;
693
282
  }, never>>;
694
283
  export type SyncStatusRow = typeof syncStatusTable.Type;
695
- export declare const eventlogSystemTables: readonly [import("./table-def.ts").TableDef<import("./table-def.ts").SqliteTableDefForInput<"eventlog", {
284
+ export declare const eventlogSystemTables: readonly [import("../table-def.ts").TableDef<import("../table-def.ts").SqliteTableDefForInput<"eventlog", {
696
285
  readonly seqNumGlobal: {
697
286
  columnType: "integer";
698
287
  schema: Schema.Schema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
@@ -784,13 +373,13 @@ export declare const eventlogSystemTables: readonly [import("./table-def.ts").Ta
784
373
  };
785
374
  readonly syncMetadataJson: {
786
375
  columnType: "text";
787
- schema: Schema.Schema<import("effect/Option").None<Schema.JsonValue> | import("effect/Option").Some<Schema.JsonValue>, string, never>;
376
+ schema: Schema.Schema<import("effect/Option").Option<Schema.JsonValue>, string, never>;
788
377
  default: import("effect/Option").None<never>;
789
378
  nullable: false;
790
379
  primaryKey: false;
791
380
  autoIncrement: false;
792
381
  };
793
- }>, import("./table-def.ts").WithDefaults<{
382
+ }>, import("../table-def.ts").WithDefaults<{
794
383
  readonly seqNumGlobal: {
795
384
  columnType: "integer";
796
385
  schema: Schema.Schema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
@@ -882,7 +471,7 @@ export declare const eventlogSystemTables: readonly [import("./table-def.ts").Ta
882
471
  };
883
472
  readonly syncMetadataJson: {
884
473
  columnType: "text";
885
- schema: Schema.Schema<import("effect/Option").None<Schema.JsonValue> | import("effect/Option").Some<Schema.JsonValue>, string, never>;
474
+ schema: Schema.Schema<import("effect/Option").Option<Schema.JsonValue>, string, never>;
886
475
  default: import("effect/Option").None<never>;
887
476
  nullable: false;
888
477
  primaryKey: false;
@@ -900,7 +489,7 @@ export declare const eventlogSystemTables: readonly [import("./table-def.ts").Ta
900
489
  readonly clientId: string;
901
490
  readonly sessionId: string;
902
491
  readonly schemaHash: number;
903
- readonly syncMetadataJson: import("effect/Option").None<Schema.JsonValue> | import("effect/Option").Some<Schema.JsonValue>;
492
+ readonly syncMetadataJson: import("effect/Option").Option<Schema.JsonValue>;
904
493
  }, {
905
494
  readonly seqNumGlobal: number;
906
495
  readonly seqNumClient: number;
@@ -914,7 +503,7 @@ export declare const eventlogSystemTables: readonly [import("./table-def.ts").Ta
914
503
  readonly sessionId: string;
915
504
  readonly schemaHash: number;
916
505
  readonly syncMetadataJson: string;
917
- }, never>>, import("./table-def.ts").TableDef<import("./table-def.ts").SqliteTableDefForInput<"__livestore_sync_status", {
506
+ }, never>>, import("../table-def.ts").TableDef<import("../table-def.ts").SqliteTableDefForInput<"__livestore_sync_status", {
918
507
  readonly head: {
919
508
  columnType: "integer";
920
509
  schema: Schema.Schema<number, number, never>;
@@ -923,7 +512,15 @@ export declare const eventlogSystemTables: readonly [import("./table-def.ts").Ta
923
512
  primaryKey: true;
924
513
  autoIncrement: false;
925
514
  };
926
- }>, import("./table-def.ts").WithDefaults<{
515
+ readonly backendId: {
516
+ columnType: "text";
517
+ schema: Schema.Schema<string | null, string | null, never>;
518
+ default: import("effect/Option").None<never>;
519
+ nullable: true;
520
+ primaryKey: false;
521
+ autoIncrement: false;
522
+ };
523
+ }>, import("../table-def.ts").WithDefaults<{
927
524
  readonly head: {
928
525
  columnType: "integer";
929
526
  schema: Schema.Schema<number, number, never>;
@@ -932,9 +529,19 @@ export declare const eventlogSystemTables: readonly [import("./table-def.ts").Ta
932
529
  primaryKey: true;
933
530
  autoIncrement: false;
934
531
  };
532
+ readonly backendId: {
533
+ columnType: "text";
534
+ schema: Schema.Schema<string | null, string | null, never>;
535
+ default: import("effect/Option").None<never>;
536
+ nullable: true;
537
+ primaryKey: false;
538
+ autoIncrement: false;
539
+ };
935
540
  }>, Schema.Schema<{
936
541
  readonly head: number;
542
+ readonly backendId: string | null;
937
543
  }, {
938
544
  readonly head: number;
545
+ readonly backendId: string | null;
939
546
  }, never>>];
940
- //# sourceMappingURL=system-tables.d.ts.map
547
+ //# sourceMappingURL=eventlog-tables.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventlog-tables.d.ts","sourceRoot":"","sources":["../../../../../src/schema/state/sqlite/system-tables/eventlog-tables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAMhD;;;;;;;GAOG;AAEH,eAAO,MAAM,mBAAmB,aAAa,CAAA;AAE7C;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAU1B,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAA5B,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAY9B,CAAA;AAEF,MAAM,MAAM,eAAe,GAAG,OAAO,iBAAiB,CAAC,IAAI,CAAA;AAE3D,eAAO,MAAM,iBAAiB,4BAA4B,CAAA;AAE1D;;GAEG;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAO1B,CAAA;AAEF,MAAM,MAAM,aAAa,GAAG,OAAO,eAAe,CAAC,IAAI,CAAA;AAEvD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAjC7B,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAA5B,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAiCiD,CAAA"}
@@ -0,0 +1,54 @@
1
+ import { Schema } from '@livestore/utils/effect';
2
+ import * as EventSequenceNumber from "../../../EventSequenceNumber/mod.js";
3
+ import { SqliteDsl } from "../db-schema/mod.js";
4
+ import { table } from "../table-def.js";
5
+ /**
6
+ * EVENTLOG DATABASE SYSTEM TABLES
7
+ *
8
+ * ⚠️ CRITICAL: NEVER modify eventlog schemas without bumping `liveStoreStorageFormatVersion`!
9
+ * Eventlog is the source of truth - schema changes cause permanent data loss.
10
+ *
11
+ * TODO: Implement proper eventlog versioning system to prevent accidental data loss
12
+ */
13
+ export const EVENTLOG_META_TABLE = 'eventlog';
14
+ /**
15
+ * Main client-side event log storing all events (global and local/rebased).
16
+ */
17
+ export const eventlogMetaTable = table({
18
+ name: EVENTLOG_META_TABLE,
19
+ columns: {
20
+ // TODO Adjust modeling so a global event never needs a client id component
21
+ seqNumGlobal: SqliteDsl.integer({ primaryKey: true, schema: EventSequenceNumber.Global.Schema }),
22
+ seqNumClient: SqliteDsl.integer({ primaryKey: true, schema: EventSequenceNumber.Client.Schema }),
23
+ seqNumRebaseGeneration: SqliteDsl.integer({ primaryKey: true }),
24
+ parentSeqNumGlobal: SqliteDsl.integer({ schema: EventSequenceNumber.Global.Schema }),
25
+ parentSeqNumClient: SqliteDsl.integer({ schema: EventSequenceNumber.Client.Schema }),
26
+ parentSeqNumRebaseGeneration: SqliteDsl.integer({}),
27
+ /** Event definition name */
28
+ name: SqliteDsl.text({}),
29
+ argsJson: SqliteDsl.text({ schema: Schema.parseJson(Schema.Any) }),
30
+ clientId: SqliteDsl.text({}),
31
+ sessionId: SqliteDsl.text({}),
32
+ schemaHash: SqliteDsl.integer({}),
33
+ syncMetadataJson: SqliteDsl.text({ schema: Schema.parseJson(Schema.Option(Schema.JsonValue)) }),
34
+ },
35
+ indexes: [
36
+ { columns: ['seqNumGlobal'], name: 'idx_eventlog_seqNumGlobal' },
37
+ { columns: ['seqNumGlobal', 'seqNumClient', 'seqNumRebaseGeneration'], name: 'idx_eventlog_seqNum' },
38
+ ],
39
+ });
40
+ export const SYNC_STATUS_TABLE = '__livestore_sync_status';
41
+ /**
42
+ * Tracks sync status including the remote head position and backend identity.
43
+ */
44
+ // TODO support sync backend identity (to detect if sync backend changes)
45
+ export const syncStatusTable = table({
46
+ name: SYNC_STATUS_TABLE,
47
+ columns: {
48
+ head: SqliteDsl.integer({ primaryKey: true }),
49
+ // Null means the sync backend is not yet connected and we haven't yet seen a backend ID
50
+ backendId: SqliteDsl.text({ nullable: true }),
51
+ },
52
+ });
53
+ export const eventlogSystemTables = [eventlogMetaTable, syncStatusTable];
54
+ //# sourceMappingURL=eventlog-tables.js.map