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

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 (465) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/ClientSessionLeaderThreadProxy.d.ts +20 -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 +38 -29
  20. package/dist/devtools/devtools-messages-leader.d.ts.map +1 -1
  21. package/dist/devtools/devtools-messages-leader.js +9 -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 +41 -4
  40. package/dist/leader-thread/LeaderSyncProcessor.d.ts.map +1 -1
  41. package/dist/leader-thread/LeaderSyncProcessor.js +158 -75
  42. package/dist/leader-thread/LeaderSyncProcessor.js.map +1 -1
  43. package/dist/leader-thread/eventlog.d.ts +21 -22
  44. package/dist/leader-thread/eventlog.d.ts.map +1 -1
  45. package/dist/leader-thread/eventlog.js +77 -20
  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 +56 -45
  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/mod.d.ts +1 -0
  64. package/dist/leader-thread/mod.d.ts.map +1 -1
  65. package/dist/leader-thread/mod.js +1 -0
  66. package/dist/leader-thread/mod.js.map +1 -1
  67. package/dist/leader-thread/recreate-db.d.ts +2 -3
  68. package/dist/leader-thread/recreate-db.d.ts.map +1 -1
  69. package/dist/leader-thread/recreate-db.js +5 -5
  70. package/dist/leader-thread/recreate-db.js.map +1 -1
  71. package/dist/leader-thread/shutdown-channel.d.ts +2 -2
  72. package/dist/leader-thread/shutdown-channel.d.ts.map +1 -1
  73. package/dist/leader-thread/shutdown-channel.js +2 -2
  74. package/dist/leader-thread/shutdown-channel.js.map +1 -1
  75. package/dist/leader-thread/stream-events.d.ts +56 -0
  76. package/dist/leader-thread/stream-events.d.ts.map +1 -0
  77. package/dist/leader-thread/stream-events.js +166 -0
  78. package/dist/leader-thread/stream-events.js.map +1 -0
  79. package/dist/leader-thread/types.d.ts +98 -20
  80. package/dist/leader-thread/types.d.ts.map +1 -1
  81. package/dist/leader-thread/types.js +13 -0
  82. package/dist/leader-thread/types.js.map +1 -1
  83. package/dist/logging.d.ts +40 -0
  84. package/dist/logging.d.ts.map +1 -0
  85. package/dist/logging.js +33 -0
  86. package/dist/logging.js.map +1 -0
  87. package/dist/make-client-session.d.ts +5 -3
  88. package/dist/make-client-session.d.ts.map +1 -1
  89. package/dist/make-client-session.js +5 -2
  90. package/dist/make-client-session.js.map +1 -1
  91. package/dist/materializer-helper.d.ts +6 -6
  92. package/dist/materializer-helper.d.ts.map +1 -1
  93. package/dist/materializer-helper.js +20 -4
  94. package/dist/materializer-helper.js.map +1 -1
  95. package/dist/otel.d.ts +2 -1
  96. package/dist/otel.d.ts.map +1 -1
  97. package/dist/otel.js +5 -0
  98. package/dist/otel.js.map +1 -1
  99. package/dist/rematerialize-from-eventlog.d.ts +2 -2
  100. package/dist/rematerialize-from-eventlog.d.ts.map +1 -1
  101. package/dist/rematerialize-from-eventlog.js +29 -20
  102. package/dist/rematerialize-from-eventlog.js.map +1 -1
  103. package/dist/schema/EventDef/define.d.ts +147 -0
  104. package/dist/schema/EventDef/define.d.ts.map +1 -0
  105. package/dist/schema/EventDef/define.js +139 -0
  106. package/dist/schema/EventDef/define.js.map +1 -0
  107. package/dist/schema/EventDef/event-def.d.ts +106 -0
  108. package/dist/schema/EventDef/event-def.d.ts.map +1 -0
  109. package/dist/schema/EventDef/event-def.js +2 -0
  110. package/dist/schema/EventDef/event-def.js.map +1 -0
  111. package/dist/schema/EventDef/facts.d.ts +118 -0
  112. package/dist/schema/EventDef/facts.d.ts.map +1 -0
  113. package/dist/schema/EventDef/facts.js +53 -0
  114. package/dist/schema/EventDef/facts.js.map +1 -0
  115. package/dist/schema/EventDef/materializer.d.ts +155 -0
  116. package/dist/schema/EventDef/materializer.d.ts.map +1 -0
  117. package/dist/schema/EventDef/materializer.js +83 -0
  118. package/dist/schema/EventDef/materializer.js.map +1 -0
  119. package/dist/schema/EventDef/mod.d.ts +5 -0
  120. package/dist/schema/EventDef/mod.d.ts.map +1 -0
  121. package/dist/schema/EventDef/mod.js +5 -0
  122. package/dist/schema/EventDef/mod.js.map +1 -0
  123. package/dist/schema/EventSequenceNumber/client.d.ts +136 -0
  124. package/dist/schema/EventSequenceNumber/client.d.ts.map +1 -0
  125. package/dist/schema/EventSequenceNumber/client.js +193 -0
  126. package/dist/schema/EventSequenceNumber/client.js.map +1 -0
  127. package/dist/schema/EventSequenceNumber/global.d.ts +15 -0
  128. package/dist/schema/EventSequenceNumber/global.d.ts.map +1 -0
  129. package/dist/schema/EventSequenceNumber/global.js +14 -0
  130. package/dist/schema/EventSequenceNumber/global.js.map +1 -0
  131. package/dist/schema/EventSequenceNumber/mod.d.ts +37 -0
  132. package/dist/schema/EventSequenceNumber/mod.d.ts.map +1 -0
  133. package/dist/schema/EventSequenceNumber/mod.js +37 -0
  134. package/dist/schema/EventSequenceNumber/mod.js.map +1 -0
  135. package/dist/schema/EventSequenceNumber.test.js +43 -43
  136. package/dist/schema/EventSequenceNumber.test.js.map +1 -1
  137. package/dist/schema/{LiveStoreEvent.d.ts → LiveStoreEvent/client.d.ts} +89 -106
  138. package/dist/schema/LiveStoreEvent/client.d.ts.map +1 -0
  139. package/dist/schema/{LiveStoreEvent.js → LiveStoreEvent/client.js} +74 -58
  140. package/dist/schema/LiveStoreEvent/client.js.map +1 -0
  141. package/dist/schema/LiveStoreEvent/for-event-def.d.ts +52 -0
  142. package/dist/schema/LiveStoreEvent/for-event-def.d.ts.map +1 -0
  143. package/dist/schema/LiveStoreEvent/for-event-def.js +2 -0
  144. package/dist/schema/LiveStoreEvent/for-event-def.js.map +1 -0
  145. package/dist/schema/LiveStoreEvent/global.d.ts +36 -0
  146. package/dist/schema/LiveStoreEvent/global.d.ts.map +1 -0
  147. package/dist/schema/LiveStoreEvent/global.js +31 -0
  148. package/dist/schema/LiveStoreEvent/global.js.map +1 -0
  149. package/dist/schema/LiveStoreEvent/input.d.ts +46 -0
  150. package/dist/schema/LiveStoreEvent/input.d.ts.map +1 -0
  151. package/dist/schema/LiveStoreEvent/input.js +26 -0
  152. package/dist/schema/LiveStoreEvent/input.js.map +1 -0
  153. package/dist/schema/LiveStoreEvent/mod.d.ts +5 -0
  154. package/dist/schema/LiveStoreEvent/mod.d.ts.map +1 -0
  155. package/dist/schema/LiveStoreEvent/mod.js +5 -0
  156. package/dist/schema/LiveStoreEvent/mod.js.map +1 -0
  157. package/dist/schema/events.d.ts +1 -1
  158. package/dist/schema/events.d.ts.map +1 -1
  159. package/dist/schema/events.js +1 -1
  160. package/dist/schema/events.js.map +1 -1
  161. package/dist/schema/mod.d.ts +6 -4
  162. package/dist/schema/mod.d.ts.map +1 -1
  163. package/dist/schema/mod.js +5 -4
  164. package/dist/schema/mod.js.map +1 -1
  165. package/dist/schema/schema.d.ts +16 -1
  166. package/dist/schema/schema.d.ts.map +1 -1
  167. package/dist/schema/schema.js +27 -2
  168. package/dist/schema/schema.js.map +1 -1
  169. package/dist/schema/state/sqlite/client-document-def.d.ts +36 -6
  170. package/dist/schema/state/sqlite/client-document-def.d.ts.map +1 -1
  171. package/dist/schema/state/sqlite/client-document-def.js +97 -6
  172. package/dist/schema/state/sqlite/client-document-def.js.map +1 -1
  173. package/dist/schema/state/sqlite/client-document-def.test.js +16 -0
  174. package/dist/schema/state/sqlite/client-document-def.test.js.map +1 -1
  175. package/dist/schema/state/sqlite/column-annotations.d.ts.map +1 -1
  176. package/dist/schema/state/sqlite/column-annotations.js +14 -6
  177. package/dist/schema/state/sqlite/column-annotations.js.map +1 -1
  178. package/dist/schema/state/sqlite/column-annotations.test.js +1 -1
  179. package/dist/schema/state/sqlite/column-annotations.test.js.map +1 -1
  180. package/dist/schema/state/sqlite/column-def.js +69 -22
  181. package/dist/schema/state/sqlite/column-def.js.map +1 -1
  182. package/dist/schema/state/sqlite/column-def.test.js +48 -10
  183. package/dist/schema/state/sqlite/column-def.test.js.map +1 -1
  184. package/dist/schema/state/sqlite/column-spec.d.ts.map +1 -1
  185. package/dist/schema/state/sqlite/column-spec.js +30 -12
  186. package/dist/schema/state/sqlite/column-spec.js.map +1 -1
  187. package/dist/schema/state/sqlite/column-spec.test.js +23 -14
  188. package/dist/schema/state/sqlite/column-spec.test.js.map +1 -1
  189. package/dist/schema/state/sqlite/db-schema/ast/sqlite.d.ts +2 -1
  190. package/dist/schema/state/sqlite/db-schema/ast/sqlite.d.ts.map +1 -1
  191. package/dist/schema/state/sqlite/db-schema/ast/sqlite.js +23 -6
  192. package/dist/schema/state/sqlite/db-schema/ast/sqlite.js.map +1 -1
  193. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.d.ts +14 -8
  194. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.d.ts.map +1 -1
  195. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.js +5 -3
  196. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.js.map +1 -1
  197. package/dist/schema/state/sqlite/db-schema/dsl/mod.d.ts.map +1 -1
  198. package/dist/schema/state/sqlite/db-schema/dsl/mod.js +2 -1
  199. package/dist/schema/state/sqlite/db-schema/dsl/mod.js.map +1 -1
  200. package/dist/schema/state/sqlite/mod.d.ts +3 -3
  201. package/dist/schema/state/sqlite/mod.d.ts.map +1 -1
  202. package/dist/schema/state/sqlite/mod.js +3 -3
  203. package/dist/schema/state/sqlite/mod.js.map +1 -1
  204. package/dist/schema/state/sqlite/query-builder/api.d.ts +19 -11
  205. package/dist/schema/state/sqlite/query-builder/api.d.ts.map +1 -1
  206. package/dist/schema/state/sqlite/query-builder/astToSql.d.ts.map +1 -1
  207. package/dist/schema/state/sqlite/query-builder/astToSql.js +22 -15
  208. package/dist/schema/state/sqlite/query-builder/astToSql.js.map +1 -1
  209. package/dist/schema/state/sqlite/query-builder/impl.d.ts.map +1 -1
  210. package/dist/schema/state/sqlite/query-builder/impl.js +6 -3
  211. package/dist/schema/state/sqlite/query-builder/impl.js.map +1 -1
  212. package/dist/schema/state/sqlite/query-builder/impl.test.js +252 -88
  213. package/dist/schema/state/sqlite/query-builder/impl.test.js.map +1 -1
  214. package/dist/schema/state/sqlite/schema-helpers.d.ts +2 -2
  215. package/dist/schema/state/sqlite/schema-helpers.d.ts.map +1 -1
  216. package/dist/schema/state/sqlite/schema-helpers.js +22 -12
  217. package/dist/schema/state/sqlite/schema-helpers.js.map +1 -1
  218. package/dist/schema/state/sqlite/schema-helpers.test.d.ts +2 -0
  219. package/dist/schema/state/sqlite/schema-helpers.test.d.ts.map +1 -0
  220. package/dist/schema/state/sqlite/schema-helpers.test.js +36 -0
  221. package/dist/schema/state/sqlite/schema-helpers.test.js.map +1 -0
  222. package/dist/schema/state/sqlite/{system-tables.d.ts → system-tables/eventlog-tables.d.ts} +63 -456
  223. package/dist/schema/state/sqlite/system-tables/eventlog-tables.d.ts.map +1 -0
  224. package/dist/schema/state/sqlite/system-tables/eventlog-tables.js +54 -0
  225. package/dist/schema/state/sqlite/system-tables/eventlog-tables.js.map +1 -0
  226. package/dist/schema/state/sqlite/system-tables/mod.d.ts +3 -0
  227. package/dist/schema/state/sqlite/system-tables/mod.d.ts.map +1 -0
  228. package/dist/schema/state/sqlite/system-tables/mod.js +3 -0
  229. package/dist/schema/state/sqlite/system-tables/mod.js.map +1 -0
  230. package/dist/schema/state/sqlite/system-tables/state-tables.d.ts +456 -0
  231. package/dist/schema/state/sqlite/system-tables/state-tables.d.ts.map +1 -0
  232. package/dist/schema/state/sqlite/system-tables/state-tables.js +55 -0
  233. package/dist/schema/state/sqlite/system-tables/state-tables.js.map +1 -0
  234. package/dist/schema/state/sqlite/table-def.d.ts +4 -4
  235. package/dist/schema/state/sqlite/table-def.d.ts.map +1 -1
  236. package/dist/schema/state/sqlite/table-def.js +2 -2
  237. package/dist/schema/state/sqlite/table-def.js.map +1 -1
  238. package/dist/schema/state/sqlite/table-def.test.js +80 -0
  239. package/dist/schema/state/sqlite/table-def.test.js.map +1 -1
  240. package/dist/schema/unknown-events.d.ts +47 -0
  241. package/dist/schema/unknown-events.d.ts.map +1 -0
  242. package/dist/schema/unknown-events.js +69 -0
  243. package/dist/schema/unknown-events.js.map +1 -0
  244. package/dist/schema-management/__tests__/migrations-autoincrement-quoting.test.d.ts +2 -0
  245. package/dist/schema-management/__tests__/migrations-autoincrement-quoting.test.d.ts.map +1 -0
  246. package/dist/schema-management/__tests__/migrations-autoincrement-quoting.test.js +73 -0
  247. package/dist/schema-management/__tests__/migrations-autoincrement-quoting.test.js.map +1 -0
  248. package/dist/schema-management/migrations.d.ts +32 -2
  249. package/dist/schema-management/migrations.d.ts.map +1 -1
  250. package/dist/schema-management/migrations.js +37 -5
  251. package/dist/schema-management/migrations.js.map +1 -1
  252. package/dist/schema-management/validate-schema.d.ts +3 -3
  253. package/dist/schema-management/validate-schema.d.ts.map +1 -1
  254. package/dist/schema-management/validate-schema.js +2 -2
  255. package/dist/schema-management/validate-schema.js.map +1 -1
  256. package/dist/sql-queries/sql-queries.d.ts.map +1 -1
  257. package/dist/sql-queries/sql-queries.js +11 -1
  258. package/dist/sql-queries/sql-queries.js.map +1 -1
  259. package/dist/sql-queries/sql-query-builder.d.ts.map +1 -1
  260. package/dist/sql-queries/sql-query-builder.js +2 -1
  261. package/dist/sql-queries/sql-query-builder.js.map +1 -1
  262. package/dist/sqlite-types.d.ts +3 -3
  263. package/dist/sqlite-types.d.ts.map +1 -1
  264. package/dist/sync/ClientSessionSyncProcessor.d.ts +11 -13
  265. package/dist/sync/ClientSessionSyncProcessor.d.ts.map +1 -1
  266. package/dist/sync/ClientSessionSyncProcessor.js +45 -42
  267. package/dist/sync/ClientSessionSyncProcessor.js.map +1 -1
  268. package/dist/sync/errors.d.ts +66 -0
  269. package/dist/sync/errors.d.ts.map +1 -0
  270. package/dist/sync/errors.js +36 -0
  271. package/dist/sync/errors.js.map +1 -0
  272. package/dist/sync/index.d.ts +3 -0
  273. package/dist/sync/index.d.ts.map +1 -1
  274. package/dist/sync/index.js +3 -0
  275. package/dist/sync/index.js.map +1 -1
  276. package/dist/sync/mock-sync-backend.d.ts +23 -0
  277. package/dist/sync/mock-sync-backend.d.ts.map +1 -0
  278. package/dist/sync/mock-sync-backend.js +114 -0
  279. package/dist/sync/mock-sync-backend.js.map +1 -0
  280. package/dist/sync/next/compact-events.d.ts.map +1 -1
  281. package/dist/sync/next/compact-events.js +6 -7
  282. package/dist/sync/next/compact-events.js.map +1 -1
  283. package/dist/sync/next/facts.d.ts +5 -5
  284. package/dist/sync/next/facts.d.ts.map +1 -1
  285. package/dist/sync/next/facts.js +1 -2
  286. package/dist/sync/next/facts.js.map +1 -1
  287. package/dist/sync/next/history-dag-common.d.ts +54 -15
  288. package/dist/sync/next/history-dag-common.d.ts.map +1 -1
  289. package/dist/sync/next/history-dag-common.js +198 -9
  290. package/dist/sync/next/history-dag-common.js.map +1 -1
  291. package/dist/sync/next/history-dag.d.ts.map +1 -1
  292. package/dist/sync/next/history-dag.js +10 -8
  293. package/dist/sync/next/history-dag.js.map +1 -1
  294. package/dist/sync/next/rebase-events.d.ts +5 -5
  295. package/dist/sync/next/rebase-events.d.ts.map +1 -1
  296. package/dist/sync/next/rebase-events.js +5 -5
  297. package/dist/sync/next/rebase-events.js.map +1 -1
  298. package/dist/sync/next/test/event-fixtures.d.ts +2 -2
  299. package/dist/sync/next/test/event-fixtures.d.ts.map +1 -1
  300. package/dist/sync/next/test/event-fixtures.js +9 -9
  301. package/dist/sync/next/test/event-fixtures.js.map +1 -1
  302. package/dist/sync/sync-backend-kv.d.ts +7 -0
  303. package/dist/sync/sync-backend-kv.d.ts.map +1 -0
  304. package/dist/sync/sync-backend-kv.js +18 -0
  305. package/dist/sync/sync-backend-kv.js.map +1 -0
  306. package/dist/sync/sync-backend.d.ts +105 -0
  307. package/dist/sync/sync-backend.d.ts.map +1 -0
  308. package/dist/sync/sync-backend.js +61 -0
  309. package/dist/sync/sync-backend.js.map +1 -0
  310. package/dist/sync/sync.d.ts +9 -86
  311. package/dist/sync/sync.d.ts.map +1 -1
  312. package/dist/sync/sync.js +2 -27
  313. package/dist/sync/sync.js.map +1 -1
  314. package/dist/sync/syncstate.d.ts +57 -44
  315. package/dist/sync/syncstate.d.ts.map +1 -1
  316. package/dist/sync/syncstate.js +50 -45
  317. package/dist/sync/syncstate.js.map +1 -1
  318. package/dist/sync/syncstate.test.js +83 -46
  319. package/dist/sync/syncstate.test.js.map +1 -1
  320. package/dist/sync/transport-chunking.d.ts +36 -0
  321. package/dist/sync/transport-chunking.d.ts.map +1 -0
  322. package/dist/sync/transport-chunking.js +56 -0
  323. package/dist/sync/transport-chunking.js.map +1 -0
  324. package/dist/sync/validate-push-payload.d.ts +2 -2
  325. package/dist/sync/validate-push-payload.d.ts.map +1 -1
  326. package/dist/sync/validate-push-payload.js +6 -6
  327. package/dist/sync/validate-push-payload.js.map +1 -1
  328. package/dist/testing/event-factory.d.ts +68 -0
  329. package/dist/testing/event-factory.d.ts.map +1 -0
  330. package/dist/testing/event-factory.js +78 -0
  331. package/dist/testing/event-factory.js.map +1 -0
  332. package/dist/testing/mod.d.ts +2 -0
  333. package/dist/testing/mod.d.ts.map +1 -0
  334. package/dist/testing/mod.js +2 -0
  335. package/dist/testing/mod.js.map +1 -0
  336. package/dist/version.d.ts +16 -6
  337. package/dist/version.d.ts.map +1 -1
  338. package/dist/version.js +16 -6
  339. package/dist/version.js.map +1 -1
  340. package/package.json +7 -8
  341. package/src/ClientSessionLeaderThreadProxy.ts +20 -12
  342. package/src/adapter-types.ts +18 -6
  343. package/src/debug-info.ts +37 -6
  344. package/src/devtools/devtools-messages-client-session.ts +2 -2
  345. package/src/devtools/devtools-messages-common.ts +1 -8
  346. package/src/devtools/devtools-messages-leader.ts +9 -8
  347. package/src/devtools/devtools-sessioninfo.ts +8 -5
  348. package/src/devtools/mod.ts +11 -2
  349. package/src/errors.ts +38 -11
  350. package/src/index.ts +2 -1
  351. package/src/leader-thread/LeaderSyncProcessor.ts +277 -105
  352. package/src/leader-thread/eventlog.ts +113 -38
  353. package/src/leader-thread/leader-worker-devtools.ts +86 -55
  354. package/src/leader-thread/make-leader-thread-layer.test.ts +44 -0
  355. package/src/leader-thread/make-leader-thread-layer.ts +156 -37
  356. package/src/leader-thread/materialize-event.ts +37 -12
  357. package/src/leader-thread/mod.ts +1 -0
  358. package/src/leader-thread/recreate-db.ts +15 -7
  359. package/src/leader-thread/shutdown-channel.ts +16 -2
  360. package/src/leader-thread/stream-events.ts +201 -0
  361. package/src/leader-thread/types.ts +70 -20
  362. package/src/logging.ts +62 -0
  363. package/src/make-client-session.ts +9 -3
  364. package/src/materializer-helper.ts +27 -10
  365. package/src/otel.ts +10 -0
  366. package/src/rematerialize-from-eventlog.ts +37 -27
  367. package/src/schema/EventDef/define.ts +201 -0
  368. package/src/schema/EventDef/event-def.ts +120 -0
  369. package/src/schema/EventDef/facts.ts +135 -0
  370. package/src/schema/EventDef/materializer.ts +172 -0
  371. package/src/schema/EventDef/mod.ts +4 -0
  372. package/src/schema/EventSequenceNumber/client.ts +257 -0
  373. package/src/schema/EventSequenceNumber/global.ts +19 -0
  374. package/src/schema/EventSequenceNumber/mod.ts +37 -0
  375. package/src/schema/EventSequenceNumber.test.ts +70 -52
  376. package/src/schema/LiveStoreEvent/client.ts +221 -0
  377. package/src/schema/LiveStoreEvent/for-event-def.ts +60 -0
  378. package/src/schema/LiveStoreEvent/global.ts +45 -0
  379. package/src/schema/LiveStoreEvent/input.ts +63 -0
  380. package/src/schema/LiveStoreEvent/mod.ts +4 -0
  381. package/src/schema/events.ts +1 -1
  382. package/src/schema/mod.ts +6 -4
  383. package/src/schema/schema.ts +39 -3
  384. package/src/schema/state/sqlite/client-document-def.test.ts +19 -2
  385. package/src/schema/state/sqlite/client-document-def.ts +127 -25
  386. package/src/schema/state/sqlite/column-annotations.test.ts +1 -1
  387. package/src/schema/state/sqlite/column-annotations.ts +16 -6
  388. package/src/schema/state/sqlite/column-def.test.ts +62 -10
  389. package/src/schema/state/sqlite/column-def.ts +88 -21
  390. package/src/schema/state/sqlite/column-spec.test.ts +29 -16
  391. package/src/schema/state/sqlite/column-spec.ts +36 -11
  392. package/src/schema/state/sqlite/db-schema/ast/sqlite.ts +26 -6
  393. package/src/schema/state/sqlite/db-schema/dsl/field-defs.ts +29 -12
  394. package/src/schema/state/sqlite/db-schema/dsl/mod.ts +12 -17
  395. package/src/schema/state/sqlite/mod.ts +4 -3
  396. package/src/schema/state/sqlite/query-builder/api.ts +25 -11
  397. package/src/schema/state/sqlite/query-builder/astToSql.ts +23 -14
  398. package/src/schema/state/sqlite/query-builder/impl.test.ts +305 -92
  399. package/src/schema/state/sqlite/query-builder/impl.ts +8 -3
  400. package/src/schema/state/sqlite/schema-helpers.test.ts +44 -0
  401. package/src/schema/state/sqlite/schema-helpers.ts +28 -20
  402. package/src/schema/state/sqlite/system-tables/eventlog-tables.ts +64 -0
  403. package/src/schema/state/sqlite/system-tables/mod.ts +2 -0
  404. package/src/schema/state/sqlite/system-tables/state-tables.ts +69 -0
  405. package/src/schema/state/sqlite/table-def.test.ts +101 -0
  406. package/src/schema/state/sqlite/table-def.ts +8 -6
  407. package/src/schema/unknown-events.ts +131 -0
  408. package/src/schema-management/__tests__/migrations-autoincrement-quoting.test.ts +86 -0
  409. package/src/schema-management/migrations.ts +41 -8
  410. package/src/schema-management/validate-schema.ts +3 -3
  411. package/src/sql-queries/sql-queries.ts +9 -1
  412. package/src/sql-queries/sql-query-builder.ts +2 -1
  413. package/src/sqlite-types.ts +3 -3
  414. package/src/sync/ClientSessionSyncProcessor.ts +69 -62
  415. package/src/sync/errors.ts +38 -0
  416. package/src/sync/index.ts +3 -0
  417. package/src/sync/mock-sync-backend.ts +184 -0
  418. package/src/sync/next/compact-events.ts +6 -7
  419. package/src/sync/next/facts.ts +7 -9
  420. package/src/sync/next/history-dag-common.ts +277 -26
  421. package/src/sync/next/history-dag.ts +16 -10
  422. package/src/sync/next/rebase-events.ts +11 -11
  423. package/src/sync/next/test/event-fixtures.ts +11 -11
  424. package/src/sync/sync-backend-kv.ts +22 -0
  425. package/src/sync/sync-backend.ts +185 -0
  426. package/src/sync/sync.ts +9 -91
  427. package/src/sync/syncstate.test.ts +96 -52
  428. package/src/sync/syncstate.ts +69 -58
  429. package/src/sync/transport-chunking.ts +90 -0
  430. package/src/sync/validate-push-payload.ts +8 -9
  431. package/src/testing/event-factory.ts +131 -0
  432. package/src/testing/mod.ts +1 -0
  433. package/src/version.ts +16 -6
  434. package/dist/schema/EventDef.d.ts +0 -123
  435. package/dist/schema/EventDef.d.ts.map +0 -1
  436. package/dist/schema/EventDef.js +0 -46
  437. package/dist/schema/EventDef.js.map +0 -1
  438. package/dist/schema/EventSequenceNumber.d.ts +0 -80
  439. package/dist/schema/EventSequenceNumber.d.ts.map +0 -1
  440. package/dist/schema/EventSequenceNumber.js +0 -139
  441. package/dist/schema/EventSequenceNumber.js.map +0 -1
  442. package/dist/schema/LiveStoreEvent.d.ts.map +0 -1
  443. package/dist/schema/LiveStoreEvent.js.map +0 -1
  444. package/dist/schema/state/sqlite/system-tables.d.ts.map +0 -1
  445. package/dist/schema/state/sqlite/system-tables.js +0 -79
  446. package/dist/schema/state/sqlite/system-tables.js.map +0 -1
  447. package/dist/schema-management/migrations.test.d.ts +0 -2
  448. package/dist/schema-management/migrations.test.d.ts.map +0 -1
  449. package/dist/schema-management/migrations.test.js +0 -52
  450. package/dist/schema-management/migrations.test.js.map +0 -1
  451. package/dist/sync/next/graphology.d.ts +0 -8
  452. package/dist/sync/next/graphology.d.ts.map +0 -1
  453. package/dist/sync/next/graphology.js +0 -30
  454. package/dist/sync/next/graphology.js.map +0 -1
  455. package/dist/sync/next/graphology_.d.ts +0 -3
  456. package/dist/sync/next/graphology_.d.ts.map +0 -1
  457. package/dist/sync/next/graphology_.js +0 -3
  458. package/dist/sync/next/graphology_.js.map +0 -1
  459. package/src/schema/EventDef.ts +0 -219
  460. package/src/schema/EventSequenceNumber.ts +0 -199
  461. package/src/schema/LiveStoreEvent.ts +0 -287
  462. package/src/schema/state/sqlite/system-tables.ts +0 -104
  463. package/src/sync/next/ambient.d.ts +0 -3
  464. package/src/sync/next/graphology.ts +0 -41
  465. package/src/sync/next/graphology_.ts +0 -2
@@ -0,0 +1,46 @@
1
+ import { Schema } from '@livestore/utils/effect';
2
+ import type { EventDef, EventDefRecord } from '../EventDef/mod.ts';
3
+ import type { LiveStoreSchema } from '../schema.ts';
4
+ import type * as ForEventDef from './for-event-def.ts';
5
+ /**
6
+ * Effect Schema for validating/decoding input events with encoded args.
7
+ * @example
8
+ * ```ts
9
+ * import { Schema } from '@effect/schema'
10
+ * const decoded = Schema.decodeUnknownSync(LiveStoreEvent.Input.Encoded)(rawEvent)
11
+ * ```
12
+ */
13
+ export declare const Encoded: Schema.Struct<{
14
+ name: typeof Schema.String;
15
+ args: typeof Schema.Any;
16
+ }>;
17
+ /** Event without sequence numbers, with decoded (native TypeScript) args. */
18
+ export type Decoded = ForEventDef.InputDecoded<EventDef.Any>;
19
+ /** Event without sequence numbers, with encoded (serialized) args. */
20
+ export type Encoded = ForEventDef.InputEncoded<EventDef.Any>;
21
+ /** Union of all input event types for a given schema (type-safe event discrimination). */
22
+ export type ForSchema<TSchema extends LiveStoreSchema> = {
23
+ [K in keyof TSchema['_EventDefMapType']]: ForEventDef.InputDecoded<TSchema['_EventDefMapType'][K]>;
24
+ }[keyof TSchema['_EventDefMapType']];
25
+ /** Effect Schema union of all event types in an EventDefRecord (input format, no sequence numbers). */
26
+ export type ForRecord<TEventDefRecord extends EventDefRecord> = Schema.Schema<{
27
+ [K in keyof TEventDefRecord]: {
28
+ name: K;
29
+ args: Schema.Schema.Type<TEventDefRecord[K]['schema']>;
30
+ };
31
+ }[keyof TEventDefRecord], {
32
+ [K in keyof TEventDefRecord]: {
33
+ name: K;
34
+ args: Schema.Schema.Encoded<TEventDefRecord[K]['schema']>;
35
+ };
36
+ }[keyof TEventDefRecord]>;
37
+ /**
38
+ * Creates an Effect Schema union for all event types in a schema (input format, no sequence numbers).
39
+ * @example
40
+ * ```ts
41
+ * const inputSchema = LiveStoreEvent.Input.makeSchema(schema)
42
+ * const event = Schema.decodeUnknownSync(inputSchema)(rawEvent)
43
+ * ```
44
+ */
45
+ export declare const makeSchema: <TSchema extends LiveStoreSchema>(schema: TSchema) => ForRecord<TSchema["_EventDefMapType"]>;
46
+ //# sourceMappingURL=input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../src/schema/LiveStoreEvent/input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,KAAK,KAAK,WAAW,MAAM,oBAAoB,CAAA;AAEtD;;;;;;;GAOG;AACH,eAAO,MAAM,OAAO;;;EAGqC,CAAA;AAEzD,6EAA6E;AAC7E,MAAM,MAAM,OAAO,GAAG,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;AAE5D,sEAAsE;AACtE,MAAM,MAAM,OAAO,GAAG,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;AAE5D,0FAA0F;AAC1F,MAAM,MAAM,SAAS,CAAC,OAAO,SAAS,eAAe,IAAI;KACtD,CAAC,IAAI,MAAM,OAAO,CAAC,kBAAkB,CAAC,GAAG,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;CACnG,CAAC,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAA;AAEpC,uGAAuG;AACvG,MAAM,MAAM,SAAS,CAAC,eAAe,SAAS,cAAc,IAAI,MAAM,CAAC,MAAM,CAC3E;KACG,CAAC,IAAI,MAAM,eAAe,GAAG;QAC5B,IAAI,EAAE,CAAC,CAAA;QACP,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;KACvD;CACF,CAAC,MAAM,eAAe,CAAC,EACxB;KACG,CAAC,IAAI,MAAM,eAAe,GAAG;QAC5B,IAAI,EAAE,CAAC,CAAA;QACP,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;KAC1D;CACF,CAAC,MAAM,eAAe,CAAC,CACzB,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU,GAAI,OAAO,SAAS,eAAe,EAAE,QAAQ,OAAO,KAAG,SAAS,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAQ1D,CAAA"}
@@ -0,0 +1,26 @@
1
+ import { Schema } from '@livestore/utils/effect';
2
+ /**
3
+ * Effect Schema for validating/decoding input events with encoded args.
4
+ * @example
5
+ * ```ts
6
+ * import { Schema } from '@effect/schema'
7
+ * const decoded = Schema.decodeUnknownSync(LiveStoreEvent.Input.Encoded)(rawEvent)
8
+ * ```
9
+ */
10
+ export const Encoded = Schema.Struct({
11
+ name: Schema.String,
12
+ args: Schema.Any,
13
+ }).annotations({ title: 'LiveStoreEvent.Input.Encoded' });
14
+ /**
15
+ * Creates an Effect Schema union for all event types in a schema (input format, no sequence numbers).
16
+ * @example
17
+ * ```ts
18
+ * const inputSchema = LiveStoreEvent.Input.makeSchema(schema)
19
+ * const event = Schema.decodeUnknownSync(inputSchema)(rawEvent)
20
+ * ```
21
+ */
22
+ export const makeSchema = (schema) => Schema.Union(...[...schema.eventsDefsMap.values()].map((def) => Schema.Struct({
23
+ name: Schema.Literal(def.name),
24
+ args: def.schema,
25
+ }))).annotations({ title: 'LiveStoreEvent.Input' });
26
+ //# sourceMappingURL=input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.js","sourceRoot":"","sources":["../../../src/schema/LiveStoreEvent/input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAMhD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;IACnC,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,IAAI,EAAE,MAAM,CAAC,GAAG;CACjB,CAAC,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,8BAA8B,EAAE,CAAC,CAAA;AA6BzD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAkC,MAAe,EAA0C,EAAE,CACrH,MAAM,CAAC,KAAK,CACV,GAAG,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAChD,MAAM,CAAC,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;IAC9B,IAAI,EAAE,GAAG,CAAC,MAAM;CACjB,CAAC,CACH,CACF,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAQ,CAAA"}
@@ -0,0 +1,5 @@
1
+ export * as Client from './client.ts';
2
+ export * as ForEventDef from './for-event-def.ts';
3
+ export * as Global from './global.ts';
4
+ export * as Input from './input.ts';
5
+ //# sourceMappingURL=mod.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../src/schema/LiveStoreEvent/mod.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,WAAW,MAAM,oBAAoB,CAAA;AACjD,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA"}
@@ -0,0 +1,5 @@
1
+ export * as Client from "./client.js";
2
+ export * as ForEventDef from "./for-event-def.js";
3
+ export * as Global from "./global.js";
4
+ export * as Input from "./input.js";
5
+ //# sourceMappingURL=mod.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mod.js","sourceRoot":"","sources":["../../../src/schema/LiveStoreEvent/mod.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,WAAW,MAAM,oBAAoB,CAAA;AACjD,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA"}
@@ -1,2 +1,2 @@
1
- export { clientOnly, defineEvent, synced } from './EventDef.ts';
1
+ export { clientOnly, defineEvent, synced } from './EventDef/mod.ts';
2
2
  //# sourceMappingURL=events.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/schema/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/schema/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA"}
@@ -1,2 +1,2 @@
1
- export { clientOnly, defineEvent, synced } from "./EventDef.js";
1
+ export { clientOnly, defineEvent, synced } from "./EventDef/mod.js";
2
2
  //# sourceMappingURL=events.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/schema/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/schema/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA"}
@@ -1,10 +1,12 @@
1
- export * from './EventDef.ts';
2
- export * as EventSequenceNumber from './EventSequenceNumber.ts';
1
+ export * from './EventDef/mod.ts';
2
+ export * as EventSequenceNumber from './EventSequenceNumber/mod.ts';
3
3
  export * as Events from './events.ts';
4
- export * as LiveStoreEvent from './LiveStoreEvent.ts';
4
+ export * as LiveStoreEvent from './LiveStoreEvent/mod.ts';
5
5
  export * from './schema.ts';
6
6
  export * as State from './state/mod.ts';
7
7
  export { SqliteAst, SqliteDsl } from './state/sqlite/db-schema/mod.ts';
8
8
  export * from './state/sqlite/schema-helpers.ts';
9
- export * as SystemTables from './state/sqlite/system-tables.ts';
9
+ export * as SystemTables from './state/sqlite/system-tables/mod.ts';
10
+ export type { UnknownEvents } from './unknown-events.ts';
11
+ export { normalizeUnknownEventHandling, resolveEventDef } from './unknown-events.ts';
10
12
  //# sourceMappingURL=mod.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/schema/mod.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,OAAO,KAAK,mBAAmB,MAAM,0BAA0B,CAAA;AAC/D,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AACrD,cAAc,aAAa,CAAA;AAC3B,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAA;AACtE,cAAc,kCAAkC,CAAA;AAChD,OAAO,KAAK,YAAY,MAAM,iCAAiC,CAAA"}
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/schema/mod.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,OAAO,KAAK,mBAAmB,MAAM,8BAA8B,CAAA;AACnE,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,cAAc,MAAM,yBAAyB,CAAA;AACzD,cAAc,aAAa,CAAA;AAC3B,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAA;AACtE,cAAc,kCAAkC,CAAA;AAChD,OAAO,KAAK,YAAY,MAAM,qCAAqC,CAAA;AACnE,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EAAE,6BAA6B,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA"}
@@ -1,10 +1,11 @@
1
- export * from "./EventDef.js";
2
- export * as EventSequenceNumber from "./EventSequenceNumber.js";
1
+ export * from "./EventDef/mod.js";
2
+ export * as EventSequenceNumber from "./EventSequenceNumber/mod.js";
3
3
  export * as Events from "./events.js";
4
- export * as LiveStoreEvent from "./LiveStoreEvent.js";
4
+ export * as LiveStoreEvent from "./LiveStoreEvent/mod.js";
5
5
  export * from "./schema.js";
6
6
  export * as State from "./state/mod.js";
7
7
  export { SqliteAst, SqliteDsl } from "./state/sqlite/db-schema/mod.js";
8
8
  export * from "./state/sqlite/schema-helpers.js";
9
- export * as SystemTables from "./state/sqlite/system-tables.js";
9
+ export * as SystemTables from "./state/sqlite/system-tables/mod.js";
10
+ export { normalizeUnknownEventHandling, resolveEventDef } from "./unknown-events.js";
10
11
  //# sourceMappingURL=mod.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mod.js","sourceRoot":"","sources":["../../src/schema/mod.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,OAAO,KAAK,mBAAmB,MAAM,0BAA0B,CAAA;AAC/D,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AACrD,cAAc,aAAa,CAAA;AAC3B,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAA;AACtE,cAAc,kCAAkC,CAAA;AAChD,OAAO,KAAK,YAAY,MAAM,iCAAiC,CAAA"}
1
+ {"version":3,"file":"mod.js","sourceRoot":"","sources":["../../src/schema/mod.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,OAAO,KAAK,mBAAmB,MAAM,8BAA8B,CAAA;AACnE,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,cAAc,MAAM,yBAAyB,CAAA;AACzD,cAAc,aAAa,CAAA;AAC3B,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAA;AACtE,cAAc,kCAAkC,CAAA;AAChD,OAAO,KAAK,YAAY,MAAM,qCAAqC,CAAA;AAEnE,OAAO,EAAE,6BAA6B,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA"}
@@ -1,9 +1,11 @@
1
1
  import type { MigrationOptions } from '../adapter-types.ts';
2
- import type { EventDef, EventDefRecord, Materializer } from './EventDef.ts';
2
+ import type { EventDef, EventDefRecord, Materializer } from './EventDef/mod.ts';
3
3
  import type { SqliteDsl } from './state/sqlite/db-schema/mod.ts';
4
4
  import type { TableDef } from './state/sqlite/table-def.ts';
5
+ import type { UnknownEvents } from './unknown-events.ts';
5
6
  export declare const LiveStoreSchemaSymbol: unique symbol;
6
7
  export type LiveStoreSchemaSymbol = typeof LiveStoreSchemaSymbol;
8
+ export declare const UNKNOWN_EVENT_SCHEMA_HASH = -1;
7
9
  export interface LiveStoreSchema<TDbSchema extends SqliteDsl.DbSchema = SqliteDsl.DbSchema, TEventsDefRecord extends EventDefRecord = EventDefRecord> {
8
10
  readonly LiveStoreSchemaSymbol: LiveStoreSchemaSymbol;
9
11
  /** Only used on type-level */
@@ -12,6 +14,7 @@ export interface LiveStoreSchema<TDbSchema extends SqliteDsl.DbSchema = SqliteDs
12
14
  readonly _EventDefMapType: TEventsDefRecord;
13
15
  readonly state: InternalState;
14
16
  readonly eventsDefsMap: Map<string, EventDef.AnyWithoutFn>;
17
+ readonly unknownEventHandling: UnknownEvents.HandlingConfig;
15
18
  readonly devtools: {
16
19
  /** @default 'default' */
17
20
  readonly alias: string;
@@ -20,6 +23,14 @@ export interface LiveStoreSchema<TDbSchema extends SqliteDsl.DbSchema = SqliteDs
20
23
  export declare namespace LiveStoreSchema {
21
24
  type Any = LiveStoreSchema<any, any>;
22
25
  }
26
+ /**
27
+ * Runtime type guard for LiveStoreSchema.
28
+ *
29
+ * The guard intentionally performs lightweight structural checks that are
30
+ * stable across implementations. It verifies the identifying symbol marker
31
+ * and the presence of core maps/state used at runtime.
32
+ */
33
+ export declare const isLiveStoreSchema: (value: unknown) => value is LiveStoreSchema<any, any>;
23
34
  export interface InternalState {
24
35
  readonly sqlite: {
25
36
  readonly tables: Map<string, TableDef.Any>;
@@ -41,6 +52,10 @@ export interface InputSchema {
41
52
  */
42
53
  readonly alias?: string;
43
54
  };
55
+ /**
56
+ * Configures how unknown events should be handled. Defaults to `{ strategy: 'warn' }`.
57
+ */
58
+ readonly unknownEventHandling?: UnknownEvents.HandlingConfig;
44
59
  }
45
60
  export declare const makeSchema: <TInputSchema extends InputSchema>(
46
61
  /** Note when using the object-notation for tables/events, the object keys are ignored and not used as table/mutation names */
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/schema/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/schema/schema.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,30 @@
1
1
  import { isReadonlyArray, shouldNeverHappen } from '@livestore/utils';
2
2
  import { tableIsClientDocumentTable } from "./state/sqlite/client-document-def.js";
3
- import { stateSystemTables } from "./state/sqlite/system-tables.js";
3
+ import { stateSystemTables } from "./state/sqlite/system-tables/state-tables.js";
4
+ import { normalizeUnknownEventHandling } from "./unknown-events.js";
4
5
  export const LiveStoreSchemaSymbol = Symbol.for('livestore.LiveStoreSchema');
6
+ export const UNKNOWN_EVENT_SCHEMA_HASH = -1;
7
+ /**
8
+ * Runtime type guard for LiveStoreSchema.
9
+ *
10
+ * The guard intentionally performs lightweight structural checks that are
11
+ * stable across implementations. It verifies the identifying symbol marker
12
+ * and the presence of core maps/state used at runtime.
13
+ */
14
+ export const isLiveStoreSchema = (value) => {
15
+ if (typeof value !== 'object' || value === null)
16
+ return false;
17
+ const v = value;
18
+ // Identity marker must match exactly
19
+ if (v.LiveStoreSchemaSymbol !== LiveStoreSchemaSymbol)
20
+ return false;
21
+ // Core structures used at runtime
22
+ const hasEventsMap = v.eventsDefsMap instanceof Map;
23
+ const hasStateSqliteTables = v.state?.sqlite?.tables instanceof Map;
24
+ const hasStateMaterializers = v.state?.materializers instanceof Map;
25
+ const hasDevtoolsAlias = typeof v.devtools?.alias === 'string';
26
+ return hasEventsMap && hasStateSqliteTables && hasStateMaterializers && hasDevtoolsAlias;
27
+ };
5
28
  export const makeSchema = (
6
29
  /** Note when using the object-notation for tables/events, the object keys are ignored and not used as table/mutation names */
7
30
  inputSchema) => {
@@ -29,12 +52,14 @@ inputSchema) => {
29
52
  eventsDefsMap.set(tableDef.set.name, tableDef.set);
30
53
  }
31
54
  }
55
+ const unknownEventHandling = normalizeUnknownEventHandling(inputSchema.unknownEventHandling);
32
56
  return {
33
57
  LiveStoreSchemaSymbol,
34
58
  _DbSchemaType: Symbol.for('livestore.DbSchemaType'),
35
59
  _EventDefMapType: Symbol.for('livestore.EventDefMapType'),
36
60
  state,
37
61
  eventsDefsMap,
62
+ unknownEventHandling,
38
63
  devtools: {
39
64
  alias: inputSchema.devtools?.alias ?? 'default',
40
65
  },
@@ -43,7 +68,7 @@ inputSchema) => {
43
68
  export const getEventDef = (schema, eventName) => {
44
69
  const eventDef = schema.eventsDefsMap.get(eventName);
45
70
  if (eventDef === undefined) {
46
- return shouldNeverHappen(`No mutation definition found for \`${eventName}\`.`);
71
+ return shouldNeverHappen(`No event definition found for \`${eventName}\`.`);
47
72
  }
48
73
  const materializer = schema.state.materializers.get(eventName);
49
74
  if (materializer === undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/schema/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAIrE,OAAO,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAA;AAElF,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAGnE,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAA;AAkD5E,MAAM,CAAC,MAAM,UAAU,GAAG;AACxB,8HAA8H;AAC9H,WAAyB,EACmB,EAAE;IAC9C,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAA;IAC/B,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAA;IAE9C,KAAK,MAAM,QAAQ,IAAI,iBAAiB,EAAE,CAAC;QACzC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IAC/C,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,GAAG,EAAiC,CAAA;IAE9D,IAAI,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;QACxC,KAAK,MAAM,QAAQ,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;YAC1C,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;QAC5C,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;YAC/D,IAAI,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrC,iBAAiB,CAAC,yBAAyB,QAAQ,CAAC,IAAI,uCAAuC,CAAC,CAAA;YAClG,CAAC;YACD,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;QAC5C,CAAC;IACH,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QACvC,IAAI,0BAA0B,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;YAC3F,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAA;QACpD,CAAC;IACH,CAAC;IAED,OAAO;QACL,qBAAqB;QACrB,aAAa,EAAE,MAAM,CAAC,GAAG,CAAC,wBAAwB,CAAQ;QAC1D,gBAAgB,EAAE,MAAM,CAAC,GAAG,CAAC,2BAA2B,CAAQ;QAChE,KAAK;QACL,aAAa;QACb,QAAQ,EAAE;YACR,KAAK,EAAE,WAAW,CAAC,QAAQ,EAAE,KAAK,IAAI,SAAS;SAChD;KACwB,CAAA;AAC7B,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,MAAe,EACf,SAAiB,EAIjB,EAAE;IACF,MAAM,QAAQ,GAAG,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IACpD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,iBAAiB,CAAC,sCAAsC,SAAS,KAAK,CAAC,CAAA;IAChF,CAAC;IACD,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IAC9D,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,iBAAiB,CAAC,+BAA+B,SAAS,KAAK,CAAC,CAAA;IACzE,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAA;AACnC,CAAC,CAAA"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/schema/schema.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import type { Option, Types } from '@livestore/utils/effect';
2
2
  import { Schema } from '@livestore/utils/effect';
3
3
  import { SessionIdSymbol } from '../../../adapter-types.ts';
4
- import type { EventDef, Materializer } from '../../EventDef.ts';
4
+ import type { EventDef, Materializer } from '../../EventDef/mod.ts';
5
5
  import { SqliteDsl } from './db-schema/mod.ts';
6
6
  import type { QueryBuilder } from './query-builder/mod.ts';
7
7
  import type { TableDef, TableDefBase } from './table-def.ts';
@@ -34,6 +34,34 @@ export declare const clientDocument: <TName extends string, TType, TEncoded, con
34
34
  schema: Schema.Schema<TType, TEncoded>;
35
35
  } & TOptions) => ClientDocumentTableDef<TName, TType, TEncoded, Types.Simplify<ClientDocumentTableOptions.WithDefaults<TOptions>>>;
36
36
  export declare const mergeDefaultValues: <T>(defaultValues: T, explicitDefaultValues: T) => T;
37
+ /**
38
+ * Creates an optimistic schema that accepts historical event formats
39
+ * and transforms them to the current schema, preserving data and intent.
40
+ *
41
+ * Decision Matrix for Schema Changes:
42
+ *
43
+ * | Change Type | Partial Set | Full Set | Strategy |
44
+ * |---------------------|---------------------|----------------------------------|-------------------------|
45
+ * | **Compatible Changes** |
46
+ * | Add optional field | Preserve existing | Preserve existing, new field undefined | Direct decode or merge |
47
+ * | Add required field | Preserve existing | Preserve existing, new field from default | Merge with defaults |
48
+ * | **Incompatible Changes** |
49
+ * | Remove field | Drop removed field | Drop removed field, preserve others | Filter & decode |
50
+ * | Type change | Use default for field | Use default for changed field | Selective merge |
51
+ * | Rename field | Use default | Use default (can't detect rename) | Fall back to default |
52
+ * | **Edge Cases** |
53
+ * | Empty event | Return {} | Return full default | Fallback handling |
54
+ * | Invalid structure | Return {} | Return full default | Fallback handling |
55
+ */
56
+ export declare const createOptimisticEventSchema: ({ valueSchema, defaultValue, partialSet, }: {
57
+ valueSchema: Schema.Schema<any, any>;
58
+ defaultValue: any;
59
+ partialSet: boolean;
60
+ }) => Schema.transform<typeof Schema.Unknown, Schema.Schema<any, any, never> | Schema.SchemaClass<{
61
+ [x: string]: any;
62
+ }, {
63
+ [x: string]: any;
64
+ }, never>>;
37
65
  export declare const deriveEventAndMaterializer: ({ name, valueSchema, defaultValue, partialSet, }: {
38
66
  name: string;
39
67
  valueSchema: Schema.Schema<any, any>;
@@ -44,14 +72,14 @@ export declare const deriveEventAndMaterializer: ({ name, valueSchema, defaultVa
44
72
  readonly value: any;
45
73
  readonly id: string | typeof SessionIdSymbol;
46
74
  }, {
47
- readonly value: any;
75
+ readonly value: unknown;
48
76
  readonly id: string | typeof SessionIdSymbol;
49
77
  }, true>;
50
78
  materializer: Materializer<EventDef<`${string}Set`, {
51
79
  readonly value: any;
52
80
  readonly id: string | typeof SessionIdSymbol;
53
81
  }, {
54
- readonly value: any;
82
+ readonly value: unknown;
55
83
  readonly id: string | typeof SessionIdSymbol;
56
84
  }, true>>;
57
85
  };
@@ -68,7 +96,7 @@ export type ClientDocumentTableOptions<TType> = {
68
96
  };
69
97
  };
70
98
  export declare namespace ClientDocumentTableOptions {
71
- type Input<TType> = {
99
+ export type Input<TType> = {
72
100
  /**
73
101
  * Whether to allow for partial set operations. Only applies if the schema is a struct.
74
102
  *
@@ -80,13 +108,15 @@ export declare namespace ClientDocumentTableOptions {
80
108
  value: TType;
81
109
  };
82
110
  };
83
- type WithDefaults<TInput extends Input<any>> = {
84
- partialSet: TInput['partialSet'] extends false ? false : true;
111
+ type IsStructLike<T> = T extends {} ? true : false;
112
+ export type WithDefaults<TInput extends Input<any>> = {
113
+ partialSet: TInput['partialSet'] extends false ? false : IsStructLike<TInput['default']['value']> extends true ? true : false;
85
114
  default: {
86
115
  id: TInput['default']['id'] extends string | SessionIdSymbol ? TInput['default']['id'] : undefined;
87
116
  value: TInput['default']['value'];
88
117
  };
89
118
  };
119
+ export {};
90
120
  }
91
121
  export type ClientDocumentTableDef<TName extends string, TType, TEncoded, TOptions extends ClientDocumentTableOptions<TType>> = TableDef<ClientDocumentTableDef.SqliteDef<TName, TType>, {
92
122
  isClientDocumentTable: true;
@@ -1 +1 @@
1
- {"version":3,"file":"client-document-def.d.ts","sourceRoot":"","sources":["../../../../src/schema/state/sqlite/client-document-def.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client-document-def.d.ts","sourceRoot":"","sources":["../../../../src/schema/state/sqlite/client-document-def.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { shouldNeverHappen } from '@livestore/utils';
2
- import { Schema, SchemaAST } from '@livestore/utils/effect';
2
+ import { Schema } from '@livestore/utils/effect';
3
3
  import { SessionIdSymbol } from "../../../adapter-types.js";
4
4
  import { sql } from "../../../util.js";
5
- import { defineEvent, defineMaterializer } from "../../EventDef.js";
5
+ import { defineEvent, defineMaterializer } from "../../EventDef/mod.js";
6
6
  import { SqliteDsl } from "./db-schema/mod.js";
7
7
  import { QueryBuilderAstSymbol, QueryBuilderTypeId } from "./query-builder/mod.js";
8
8
  import { table } from "./table-def.js";
@@ -38,9 +38,15 @@ export const clientDocument = ({ name, schema: valueSchema, ...inputOptions }) =
38
38
  value: inputOptions.default.value,
39
39
  },
40
40
  };
41
+ // Column needs optimistic schema to read historical data formats
42
+ const optimisticColumnSchema = createOptimisticEventSchema({
43
+ valueSchema,
44
+ defaultValue: options.default.value,
45
+ partialSet: false, // Column always stores full documents
46
+ });
41
47
  const columns = {
42
48
  id: SqliteDsl.text({ primaryKey: true }),
43
- value: SqliteDsl.json({ schema: valueSchema }),
49
+ value: SqliteDsl.json({ schema: optimisticColumnSchema }),
44
50
  };
45
51
  const tableDef = table({ name, columns });
46
52
  // @ts-expect-error TODO properly type this
@@ -97,12 +103,97 @@ export const mergeDefaultValues = (defaultValues, explicitDefaultValues) => {
97
103
  return acc;
98
104
  }, {});
99
105
  };
106
+ /**
107
+ * Creates an optimistic schema that accepts historical event formats
108
+ * and transforms them to the current schema, preserving data and intent.
109
+ *
110
+ * Decision Matrix for Schema Changes:
111
+ *
112
+ * | Change Type | Partial Set | Full Set | Strategy |
113
+ * |---------------------|---------------------|----------------------------------|-------------------------|
114
+ * | **Compatible Changes** |
115
+ * | Add optional field | Preserve existing | Preserve existing, new field undefined | Direct decode or merge |
116
+ * | Add required field | Preserve existing | Preserve existing, new field from default | Merge with defaults |
117
+ * | **Incompatible Changes** |
118
+ * | Remove field | Drop removed field | Drop removed field, preserve others | Filter & decode |
119
+ * | Type change | Use default for field | Use default for changed field | Selective merge |
120
+ * | Rename field | Use default | Use default (can't detect rename) | Fall back to default |
121
+ * | **Edge Cases** |
122
+ * | Empty event | Return {} | Return full default | Fallback handling |
123
+ * | Invalid structure | Return {} | Return full default | Fallback handling |
124
+ */
125
+ export const createOptimisticEventSchema = ({ valueSchema, defaultValue, partialSet, }) => {
126
+ const targetSchema = partialSet ? Schema.partial(valueSchema) : valueSchema;
127
+ return Schema.transform(Schema.Unknown, // Accept any historical event structure
128
+ targetSchema, // Output current schema
129
+ {
130
+ decode: (eventValue) => {
131
+ // Try direct decode first (for current schema events)
132
+ try {
133
+ return Schema.decodeUnknownSync(targetSchema)(eventValue);
134
+ }
135
+ catch {
136
+ // Optimistic decoding for historical events
137
+ // Handle null/undefined/non-object cases
138
+ if (typeof eventValue !== 'object' || eventValue === null) {
139
+ console.warn(`Client document: Non-object event value, using ${partialSet ? 'empty partial' : 'defaults'}`);
140
+ return partialSet ? {} : defaultValue;
141
+ }
142
+ if (partialSet) {
143
+ // For partial sets: only preserve fields that exist in new schema
144
+ const partialResult = {};
145
+ let hasValidFields = false;
146
+ for (const [key, value] of Object.entries(eventValue)) {
147
+ if (key in defaultValue) {
148
+ partialResult[key] = value;
149
+ hasValidFields = true;
150
+ }
151
+ // Drop fields that don't exist in new schema
152
+ }
153
+ if (hasValidFields) {
154
+ try {
155
+ return Schema.decodeUnknownSync(targetSchema)(partialResult);
156
+ }
157
+ catch {
158
+ // Even filtered fields don't match schema
159
+ console.warn('Client document: Partial fields incompatible, returning empty partial');
160
+ return {};
161
+ }
162
+ }
163
+ return {};
164
+ }
165
+ else {
166
+ // Full set: merge old data with new defaults
167
+ const merged = { ...defaultValue };
168
+ // Override defaults with valid fields from old event
169
+ for (const [key, value] of Object.entries(eventValue)) {
170
+ if (key in defaultValue) {
171
+ merged[key] = value;
172
+ }
173
+ // Drop fields that don't exist in new schema
174
+ }
175
+ // Try to decode the merged value
176
+ try {
177
+ return Schema.decodeUnknownSync(valueSchema)(merged);
178
+ }
179
+ catch {
180
+ // Merged value still doesn't match (e.g., type changes)
181
+ // Fall back to pure defaults
182
+ console.warn('Client document: Could not preserve event data, using defaults');
183
+ return defaultValue;
184
+ }
185
+ }
186
+ }
187
+ },
188
+ encode: (value) => value, // Pass-through for encoding
189
+ });
190
+ };
100
191
  export const deriveEventAndMaterializer = ({ name, valueSchema, defaultValue, partialSet, }) => {
101
192
  const derivedSetEventDef = defineEvent({
102
193
  name: `${name}Set`,
103
194
  schema: Schema.Struct({
104
195
  id: Schema.Union(Schema.String, Schema.UniqueSymbolFromSelf(SessionIdSymbol)),
105
- value: partialSet ? Schema.partial(valueSchema) : valueSchema,
196
+ value: createOptimisticEventSchema({ valueSchema, defaultValue, partialSet }),
106
197
  }).annotations({ title: `${name}Set:Args` }),
107
198
  clientOnly: true,
108
199
  derived: true,
@@ -112,7 +203,7 @@ export const deriveEventAndMaterializer = ({ name, valueSchema, defaultValue, pa
112
203
  return shouldNeverHappen(`SessionIdSymbol needs to be replaced before materializing the set event`);
113
204
  }
114
205
  // Override the full value if it's not an object or no partial set is allowed
115
- const schemaProps = SchemaAST.getPropertySignatures(valueSchema.ast);
206
+ const schemaProps = Schema.getResolvedPropertySignatures(valueSchema);
116
207
  if (schemaProps.length === 0 || partialSet === false) {
117
208
  const valueColJsonSchema = Schema.parseJson(valueSchema);
118
209
  const encodedInsertValue = Schema.encodeSyncDebug(valueColJsonSchema)(value ?? defaultValue);
@@ -180,5 +271,5 @@ const makeGetQueryBuilder = (getTableDef) => {
180
271
  };
181
272
  });
182
273
  };
183
- export const ClientDocumentTableDefSymbol = Symbol('ClientDocumentTableDef');
274
+ export const ClientDocumentTableDefSymbol = Symbol.for('livestore.ClientDocumentTableDef');
184
275
  //# sourceMappingURL=client-document-def.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client-document-def.js","sourceRoot":"","sources":["../../../../src/schema/state/sqlite/client-document-def.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client-document-def.js","sourceRoot":"","sources":["../../../../src/schema/state/sqlite/client-document-def.ts"],"names":[],"mappings":"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"}