@livestore/common 0.4.0-dev.9 → 0.5.0-dev.0

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 (580) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/ClientSessionLeaderThreadProxy.d.ts +27 -12
  3. package/dist/ClientSessionLeaderThreadProxy.d.ts.map +1 -1
  4. package/dist/ClientSessionLeaderThreadProxy.js.map +1 -1
  5. package/dist/MaterializationJournal.d.ts +44 -0
  6. package/dist/MaterializationJournal.d.ts.map +1 -0
  7. package/dist/MaterializationJournal.js +112 -0
  8. package/dist/MaterializationJournal.js.map +1 -0
  9. package/dist/StateHead.d.ts +26 -0
  10. package/dist/StateHead.d.ts.map +1 -0
  11. package/dist/StateHead.js +50 -0
  12. package/dist/StateHead.js.map +1 -0
  13. package/dist/WorkerTransportError.d.ts +11 -0
  14. package/dist/WorkerTransportError.d.ts.map +1 -0
  15. package/dist/WorkerTransportError.js +11 -0
  16. package/dist/WorkerTransportError.js.map +1 -0
  17. package/dist/__tests__/fixture.d.ts +1 -1
  18. package/dist/__tests__/fixture.d.ts.map +1 -1
  19. package/dist/__tests__/fixture.js +3 -3
  20. package/dist/__tests__/fixture.js.map +1 -1
  21. package/dist/adapter-types.d.ts +59 -57
  22. package/dist/adapter-types.d.ts.map +1 -1
  23. package/dist/adapter-types.js +31 -22
  24. package/dist/adapter-types.js.map +1 -1
  25. package/dist/bounded-collections.d.ts.map +1 -1
  26. package/dist/bounded-collections.js +6 -4
  27. package/dist/bounded-collections.js.map +1 -1
  28. package/dist/debug-info.d.ts +56 -56
  29. package/dist/debug-info.d.ts.map +1 -1
  30. package/dist/debug-info.js +46 -32
  31. package/dist/debug-info.js.map +1 -1
  32. package/dist/defs.d.ts +9 -9
  33. package/dist/defs.js +2 -2
  34. package/dist/devtools/devtools-compatibility.test.d.ts +2 -0
  35. package/dist/devtools/devtools-compatibility.test.d.ts.map +1 -0
  36. package/dist/devtools/devtools-compatibility.test.js +16 -0
  37. package/dist/devtools/devtools-compatibility.test.js.map +1 -0
  38. package/dist/devtools/devtools-messages-client-session.d.ts +531 -312
  39. package/dist/devtools/devtools-messages-client-session.d.ts.map +1 -1
  40. package/dist/devtools/devtools-messages-client-session.js +86 -67
  41. package/dist/devtools/devtools-messages-client-session.js.map +1 -1
  42. package/dist/devtools/devtools-messages-common.d.ts +32 -35
  43. package/dist/devtools/devtools-messages-common.d.ts.map +1 -1
  44. package/dist/devtools/devtools-messages-common.js +12 -14
  45. package/dist/devtools/devtools-messages-common.js.map +1 -1
  46. package/dist/devtools/devtools-messages-leader.d.ts +417 -320
  47. package/dist/devtools/devtools-messages-leader.d.ts.map +1 -1
  48. package/dist/devtools/devtools-messages-leader.js +117 -87
  49. package/dist/devtools/devtools-messages-leader.js.map +1 -1
  50. package/dist/devtools/devtools-sessioninfo.d.ts +28 -17
  51. package/dist/devtools/devtools-sessioninfo.d.ts.map +1 -1
  52. package/dist/devtools/devtools-sessioninfo.js +12 -6
  53. package/dist/devtools/devtools-sessioninfo.js.map +1 -1
  54. package/dist/devtools/mod.d.ts +17 -7
  55. package/dist/devtools/mod.d.ts.map +1 -1
  56. package/dist/devtools/mod.js +19 -8
  57. package/dist/devtools/mod.js.map +1 -1
  58. package/dist/errors.d.ts +52 -46
  59. package/dist/errors.d.ts.map +1 -1
  60. package/dist/errors.js +31 -21
  61. package/dist/errors.js.map +1 -1
  62. package/dist/index.d.ts +7 -1
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.js +7 -1
  65. package/dist/index.js.map +1 -1
  66. package/dist/leader-thread/LeaderSyncProcessor.d.ts +116 -21
  67. package/dist/leader-thread/LeaderSyncProcessor.d.ts.map +1 -1
  68. package/dist/leader-thread/LeaderSyncProcessor.js +596 -470
  69. package/dist/leader-thread/LeaderSyncProcessor.js.map +1 -1
  70. package/dist/leader-thread/RejectedPushError.d.ts +138 -0
  71. package/dist/leader-thread/RejectedPushError.d.ts.map +1 -0
  72. package/dist/leader-thread/RejectedPushError.js +97 -0
  73. package/dist/leader-thread/RejectedPushError.js.map +1 -0
  74. package/dist/leader-thread/connection.d.ts +1 -0
  75. package/dist/leader-thread/connection.d.ts.map +1 -1
  76. package/dist/leader-thread/connection.js +10 -9
  77. package/dist/leader-thread/connection.js.map +1 -1
  78. package/dist/leader-thread/eventlog.d.ts +20 -15
  79. package/dist/leader-thread/eventlog.d.ts.map +1 -1
  80. package/dist/leader-thread/eventlog.js +80 -20
  81. package/dist/leader-thread/eventlog.js.map +1 -1
  82. package/dist/leader-thread/leader-worker-devtools.d.ts +1 -2
  83. package/dist/leader-thread/leader-worker-devtools.d.ts.map +1 -1
  84. package/dist/leader-thread/leader-worker-devtools.js +110 -62
  85. package/dist/leader-thread/leader-worker-devtools.js.map +1 -1
  86. package/dist/leader-thread/make-leader-thread-layer.d.ts +19 -7
  87. package/dist/leader-thread/make-leader-thread-layer.d.ts.map +1 -1
  88. package/dist/leader-thread/make-leader-thread-layer.js +67 -45
  89. package/dist/leader-thread/make-leader-thread-layer.js.map +1 -1
  90. package/dist/leader-thread/make-leader-thread-layer.test.d.ts +2 -0
  91. package/dist/leader-thread/make-leader-thread-layer.test.d.ts.map +1 -0
  92. package/dist/leader-thread/make-leader-thread-layer.test.js +32 -0
  93. package/dist/leader-thread/make-leader-thread-layer.test.js.map +1 -0
  94. package/dist/leader-thread/materialize-event.d.ts +3 -2
  95. package/dist/leader-thread/materialize-event.d.ts.map +1 -1
  96. package/dist/leader-thread/materialize-event.js +32 -9
  97. package/dist/leader-thread/materialize-event.js.map +1 -1
  98. package/dist/leader-thread/mod.d.ts +1 -0
  99. package/dist/leader-thread/mod.d.ts.map +1 -1
  100. package/dist/leader-thread/mod.js +1 -0
  101. package/dist/leader-thread/mod.js.map +1 -1
  102. package/dist/leader-thread/recreate-db.d.ts +2 -2
  103. package/dist/leader-thread/recreate-db.d.ts.map +1 -1
  104. package/dist/leader-thread/recreate-db.js +19 -40
  105. package/dist/leader-thread/recreate-db.js.map +1 -1
  106. package/dist/leader-thread/shutdown-channel.d.ts +3 -7
  107. package/dist/leader-thread/shutdown-channel.d.ts.map +1 -1
  108. package/dist/leader-thread/shutdown-channel.js +2 -3
  109. package/dist/leader-thread/shutdown-channel.js.map +1 -1
  110. package/dist/leader-thread/stream-events.d.ts +53 -0
  111. package/dist/leader-thread/stream-events.d.ts.map +1 -0
  112. package/dist/leader-thread/stream-events.js +164 -0
  113. package/dist/leader-thread/stream-events.js.map +1 -0
  114. package/dist/leader-thread/types.d.ts +92 -51
  115. package/dist/leader-thread/types.d.ts.map +1 -1
  116. package/dist/leader-thread/types.js +17 -4
  117. package/dist/leader-thread/types.js.map +1 -1
  118. package/dist/logging.d.ts +15 -0
  119. package/dist/logging.d.ts.map +1 -0
  120. package/dist/logging.js +2 -0
  121. package/dist/logging.js.map +1 -0
  122. package/dist/make-client-session.d.ts +6 -5
  123. package/dist/make-client-session.d.ts.map +1 -1
  124. package/dist/make-client-session.js +10 -7
  125. package/dist/make-client-session.js.map +1 -1
  126. package/dist/materializer-helper.d.ts +6 -7
  127. package/dist/materializer-helper.d.ts.map +1 -1
  128. package/dist/materializer-helper.js +22 -40
  129. package/dist/materializer-helper.js.map +1 -1
  130. package/dist/otel.d.ts +4 -4
  131. package/dist/otel.d.ts.map +1 -1
  132. package/dist/otel.js +8 -8
  133. package/dist/otel.js.map +1 -1
  134. package/dist/rematerialize-from-eventlog.d.ts +3 -3
  135. package/dist/rematerialize-from-eventlog.d.ts.map +1 -1
  136. package/dist/rematerialize-from-eventlog.js +52 -39
  137. package/dist/rematerialize-from-eventlog.js.map +1 -1
  138. package/dist/schema/EventDef/define.d.ts +161 -0
  139. package/dist/schema/EventDef/define.d.ts.map +1 -0
  140. package/dist/schema/EventDef/define.js +140 -0
  141. package/dist/schema/EventDef/define.js.map +1 -0
  142. package/dist/schema/EventDef/define.test.d.ts +2 -0
  143. package/dist/schema/EventDef/define.test.d.ts.map +1 -0
  144. package/dist/schema/EventDef/define.test.js +23 -0
  145. package/dist/schema/EventDef/define.test.js.map +1 -0
  146. package/dist/schema/EventDef/deprecated.d.ts +94 -0
  147. package/dist/schema/EventDef/deprecated.d.ts.map +1 -0
  148. package/dist/schema/EventDef/deprecated.js +143 -0
  149. package/dist/schema/EventDef/deprecated.js.map +1 -0
  150. package/dist/schema/EventDef/deprecated.test.d.ts +2 -0
  151. package/dist/schema/EventDef/deprecated.test.d.ts.map +1 -0
  152. package/dist/schema/EventDef/deprecated.test.js +95 -0
  153. package/dist/schema/EventDef/deprecated.test.js.map +1 -0
  154. package/dist/schema/EventDef/event-def.d.ts +110 -0
  155. package/dist/schema/EventDef/event-def.d.ts.map +1 -0
  156. package/dist/schema/EventDef/event-def.js +2 -0
  157. package/dist/schema/EventDef/event-def.js.map +1 -0
  158. package/dist/schema/EventDef/facts.d.ts +118 -0
  159. package/dist/schema/EventDef/facts.d.ts.map +1 -0
  160. package/dist/schema/EventDef/facts.js +53 -0
  161. package/dist/schema/EventDef/facts.js.map +1 -0
  162. package/dist/schema/EventDef/materializer.d.ts +155 -0
  163. package/dist/schema/EventDef/materializer.d.ts.map +1 -0
  164. package/dist/schema/EventDef/materializer.js +83 -0
  165. package/dist/schema/EventDef/materializer.js.map +1 -0
  166. package/dist/schema/EventDef/mod.d.ts +6 -0
  167. package/dist/schema/EventDef/mod.d.ts.map +1 -0
  168. package/dist/schema/EventDef/mod.js +6 -0
  169. package/dist/schema/EventDef/mod.js.map +1 -0
  170. package/dist/schema/EventSequenceNumber/client.d.ts +136 -0
  171. package/dist/schema/EventSequenceNumber/client.d.ts.map +1 -0
  172. package/dist/schema/EventSequenceNumber/client.js +192 -0
  173. package/dist/schema/EventSequenceNumber/client.js.map +1 -0
  174. package/dist/schema/EventSequenceNumber/global.d.ts +15 -0
  175. package/dist/schema/EventSequenceNumber/global.d.ts.map +1 -0
  176. package/dist/schema/EventSequenceNumber/global.js +14 -0
  177. package/dist/schema/EventSequenceNumber/global.js.map +1 -0
  178. package/dist/schema/EventSequenceNumber/mod.d.ts +37 -0
  179. package/dist/schema/EventSequenceNumber/mod.d.ts.map +1 -0
  180. package/dist/schema/EventSequenceNumber/mod.js +37 -0
  181. package/dist/schema/EventSequenceNumber/mod.js.map +1 -0
  182. package/dist/schema/EventSequenceNumber.test.js +44 -44
  183. package/dist/schema/EventSequenceNumber.test.js.map +1 -1
  184. package/dist/schema/LiveStoreEvent/client.d.ts +168 -0
  185. package/dist/schema/LiveStoreEvent/client.d.ts.map +1 -0
  186. package/dist/schema/LiveStoreEvent/client.js +179 -0
  187. package/dist/schema/LiveStoreEvent/client.js.map +1 -0
  188. package/dist/schema/LiveStoreEvent/client.test.d.ts +2 -0
  189. package/dist/schema/LiveStoreEvent/client.test.d.ts.map +1 -0
  190. package/dist/schema/LiveStoreEvent/client.test.js +120 -0
  191. package/dist/schema/LiveStoreEvent/client.test.js.map +1 -0
  192. package/dist/schema/LiveStoreEvent/for-event-def.d.ts +52 -0
  193. package/dist/schema/LiveStoreEvent/for-event-def.d.ts.map +1 -0
  194. package/dist/schema/LiveStoreEvent/for-event-def.js +2 -0
  195. package/dist/schema/LiveStoreEvent/for-event-def.js.map +1 -0
  196. package/dist/schema/LiveStoreEvent/global.d.ts +36 -0
  197. package/dist/schema/LiveStoreEvent/global.d.ts.map +1 -0
  198. package/dist/schema/LiveStoreEvent/global.js +31 -0
  199. package/dist/schema/LiveStoreEvent/global.js.map +1 -0
  200. package/dist/schema/LiveStoreEvent/input.d.ts +46 -0
  201. package/dist/schema/LiveStoreEvent/input.d.ts.map +1 -0
  202. package/dist/schema/LiveStoreEvent/input.js +26 -0
  203. package/dist/schema/LiveStoreEvent/input.js.map +1 -0
  204. package/dist/schema/LiveStoreEvent/mod.d.ts +5 -0
  205. package/dist/schema/LiveStoreEvent/mod.d.ts.map +1 -0
  206. package/dist/schema/LiveStoreEvent/mod.js +5 -0
  207. package/dist/schema/LiveStoreEvent/mod.js.map +1 -0
  208. package/dist/schema/events.d.ts +1 -1
  209. package/dist/schema/events.d.ts.map +1 -1
  210. package/dist/schema/events.js +1 -1
  211. package/dist/schema/events.js.map +1 -1
  212. package/dist/schema/mod.d.ts +7 -4
  213. package/dist/schema/mod.d.ts.map +1 -1
  214. package/dist/schema/mod.js +6 -4
  215. package/dist/schema/mod.js.map +1 -1
  216. package/dist/schema/schema.d.ts +16 -1
  217. package/dist/schema/schema.d.ts.map +1 -1
  218. package/dist/schema/schema.js +34 -5
  219. package/dist/schema/schema.js.map +1 -1
  220. package/dist/schema/state/sqlite/client-document-def.d.ts +14 -18
  221. package/dist/schema/state/sqlite/client-document-def.d.ts.map +1 -1
  222. package/dist/schema/state/sqlite/client-document-def.js +54 -30
  223. package/dist/schema/state/sqlite/client-document-def.js.map +1 -1
  224. package/dist/schema/state/sqlite/client-document-def.test.js +146 -6
  225. package/dist/schema/state/sqlite/client-document-def.test.js.map +1 -1
  226. package/dist/schema/state/sqlite/column-annotations.d.ts +13 -13
  227. package/dist/schema/state/sqlite/column-annotations.d.ts.map +1 -1
  228. package/dist/schema/state/sqlite/column-annotations.js +13 -15
  229. package/dist/schema/state/sqlite/column-annotations.js.map +1 -1
  230. package/dist/schema/state/sqlite/column-annotations.test.js +19 -43
  231. package/dist/schema/state/sqlite/column-annotations.test.js.map +1 -1
  232. package/dist/schema/state/sqlite/column-def.d.ts +1 -1
  233. package/dist/schema/state/sqlite/column-def.d.ts.map +1 -1
  234. package/dist/schema/state/sqlite/column-def.js +132 -57
  235. package/dist/schema/state/sqlite/column-def.js.map +1 -1
  236. package/dist/schema/state/sqlite/column-def.test.js +155 -70
  237. package/dist/schema/state/sqlite/column-def.test.js.map +1 -1
  238. package/dist/schema/state/sqlite/column-spec.d.ts.map +1 -1
  239. package/dist/schema/state/sqlite/column-spec.js +30 -12
  240. package/dist/schema/state/sqlite/column-spec.js.map +1 -1
  241. package/dist/schema/state/sqlite/column-spec.test.js +26 -17
  242. package/dist/schema/state/sqlite/column-spec.test.js.map +1 -1
  243. package/dist/schema/state/sqlite/db-schema/ast/sqlite.d.ts +2 -2
  244. package/dist/schema/state/sqlite/db-schema/ast/sqlite.d.ts.map +1 -1
  245. package/dist/schema/state/sqlite/db-schema/ast/sqlite.js +15 -6
  246. package/dist/schema/state/sqlite/db-schema/ast/sqlite.js.map +1 -1
  247. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.d.ts +25 -19
  248. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.d.ts.map +1 -1
  249. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.js +22 -16
  250. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.js.map +1 -1
  251. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.test.js +28 -17
  252. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.test.js.map +1 -1
  253. package/dist/schema/state/sqlite/db-schema/dsl/mod.d.ts +14 -12
  254. package/dist/schema/state/sqlite/db-schema/dsl/mod.d.ts.map +1 -1
  255. package/dist/schema/state/sqlite/db-schema/dsl/mod.js +6 -4
  256. package/dist/schema/state/sqlite/db-schema/dsl/mod.js.map +1 -1
  257. package/dist/schema/state/sqlite/mod.d.ts +3 -5
  258. package/dist/schema/state/sqlite/mod.d.ts.map +1 -1
  259. package/dist/schema/state/sqlite/mod.js +6 -8
  260. package/dist/schema/state/sqlite/mod.js.map +1 -1
  261. package/dist/schema/state/sqlite/persistence.d.ts +11 -0
  262. package/dist/schema/state/sqlite/persistence.d.ts.map +1 -0
  263. package/dist/schema/state/sqlite/persistence.js +10 -0
  264. package/dist/schema/state/sqlite/persistence.js.map +1 -0
  265. package/dist/schema/state/sqlite/query-builder/api.d.ts +58 -29
  266. package/dist/schema/state/sqlite/query-builder/api.d.ts.map +1 -1
  267. package/dist/schema/state/sqlite/query-builder/astToSql.d.ts.map +1 -1
  268. package/dist/schema/state/sqlite/query-builder/astToSql.js +105 -24
  269. package/dist/schema/state/sqlite/query-builder/astToSql.js.map +1 -1
  270. package/dist/schema/state/sqlite/query-builder/impl.d.ts +4 -2
  271. package/dist/schema/state/sqlite/query-builder/impl.d.ts.map +1 -1
  272. package/dist/schema/state/sqlite/query-builder/impl.js +42 -27
  273. package/dist/schema/state/sqlite/query-builder/impl.js.map +1 -1
  274. package/dist/schema/state/sqlite/query-builder/impl.test.js +402 -498
  275. package/dist/schema/state/sqlite/query-builder/impl.test.js.map +1 -1
  276. package/dist/schema/state/sqlite/schema-helpers.d.ts +2 -2
  277. package/dist/schema/state/sqlite/schema-helpers.d.ts.map +1 -1
  278. package/dist/schema/state/sqlite/schema-helpers.js +24 -14
  279. package/dist/schema/state/sqlite/schema-helpers.js.map +1 -1
  280. package/dist/schema/state/sqlite/schema-helpers.test.d.ts +2 -0
  281. package/dist/schema/state/sqlite/schema-helpers.test.d.ts.map +1 -0
  282. package/dist/schema/state/sqlite/schema-helpers.test.js +36 -0
  283. package/dist/schema/state/sqlite/schema-helpers.test.js.map +1 -0
  284. package/dist/schema/state/sqlite/system-tables/eventlog-tables.d.ts +515 -0
  285. package/dist/schema/state/sqlite/system-tables/eventlog-tables.d.ts.map +1 -0
  286. package/dist/schema/state/sqlite/system-tables/eventlog-tables.js +54 -0
  287. package/dist/schema/state/sqlite/system-tables/eventlog-tables.js.map +1 -0
  288. package/dist/schema/state/sqlite/system-tables/mod.d.ts +3 -0
  289. package/dist/schema/state/sqlite/system-tables/mod.d.ts.map +1 -0
  290. package/dist/schema/state/sqlite/system-tables/mod.js +3 -0
  291. package/dist/schema/state/sqlite/system-tables/mod.js.map +1 -0
  292. package/dist/schema/state/sqlite/system-tables/state-tables.d.ts +678 -0
  293. package/dist/schema/state/sqlite/system-tables/state-tables.d.ts.map +1 -0
  294. package/dist/schema/state/sqlite/system-tables/state-tables.js +87 -0
  295. package/dist/schema/state/sqlite/system-tables/state-tables.js.map +1 -0
  296. package/dist/schema/state/sqlite/table-def.d.ts +19 -20
  297. package/dist/schema/state/sqlite/table-def.d.ts.map +1 -1
  298. package/dist/schema/state/sqlite/table-def.js +54 -4
  299. package/dist/schema/state/sqlite/table-def.js.map +1 -1
  300. package/dist/schema/state/sqlite/table-def.test.js +226 -20
  301. package/dist/schema/state/sqlite/table-def.test.js.map +1 -1
  302. package/dist/schema/unknown-events.d.ts +47 -0
  303. package/dist/schema/unknown-events.d.ts.map +1 -0
  304. package/dist/schema/unknown-events.js +70 -0
  305. package/dist/schema/unknown-events.js.map +1 -0
  306. package/dist/schema-management/__tests__/migrations-autoincrement-quoting.test.d.ts +2 -0
  307. package/dist/schema-management/__tests__/migrations-autoincrement-quoting.test.d.ts.map +1 -0
  308. package/dist/schema-management/__tests__/migrations-autoincrement-quoting.test.js +73 -0
  309. package/dist/schema-management/__tests__/migrations-autoincrement-quoting.test.js.map +1 -0
  310. package/dist/schema-management/common.js +2 -2
  311. package/dist/schema-management/common.js.map +1 -1
  312. package/dist/schema-management/migrations.d.ts +32 -2
  313. package/dist/schema-management/migrations.d.ts.map +1 -1
  314. package/dist/schema-management/migrations.js +38 -6
  315. package/dist/schema-management/migrations.js.map +1 -1
  316. package/dist/schema-management/validate-schema.d.ts +3 -3
  317. package/dist/schema-management/validate-schema.d.ts.map +1 -1
  318. package/dist/schema-management/validate-schema.js +2 -2
  319. package/dist/schema-management/validate-schema.js.map +1 -1
  320. package/dist/session-id-symbol.d.ts +29 -0
  321. package/dist/session-id-symbol.d.ts.map +1 -0
  322. package/dist/session-id-symbol.js +44 -0
  323. package/dist/session-id-symbol.js.map +1 -0
  324. package/dist/sql-queries/sql-queries.d.ts.map +1 -1
  325. package/dist/sql-queries/sql-queries.js +26 -16
  326. package/dist/sql-queries/sql-queries.js.map +1 -1
  327. package/dist/sql-queries/sql-query-builder.d.ts.map +1 -1
  328. package/dist/sql-queries/sql-query-builder.js.map +1 -1
  329. package/dist/sql-queries/types.d.ts +6 -7
  330. package/dist/sql-queries/types.d.ts.map +1 -1
  331. package/dist/sql-queries/types.js.map +1 -1
  332. package/dist/sqlite-db-helper.d.ts +21 -1
  333. package/dist/sqlite-db-helper.d.ts.map +1 -1
  334. package/dist/sqlite-db-helper.js +40 -5
  335. package/dist/sqlite-db-helper.js.map +1 -1
  336. package/dist/sqlite-types.d.ts +8 -11
  337. package/dist/sqlite-types.d.ts.map +1 -1
  338. package/dist/sqlite-types.js +3 -3
  339. package/dist/sqlite-types.js.map +1 -1
  340. package/dist/sync/ClientSessionSyncProcessor.d.ts +47 -25
  341. package/dist/sync/ClientSessionSyncProcessor.d.ts.map +1 -1
  342. package/dist/sync/ClientSessionSyncProcessor.js +269 -154
  343. package/dist/sync/ClientSessionSyncProcessor.js.map +1 -1
  344. package/dist/sync/errors.d.ts +12 -51
  345. package/dist/sync/errors.d.ts.map +1 -1
  346. package/dist/sync/errors.js +7 -24
  347. package/dist/sync/errors.js.map +1 -1
  348. package/dist/sync/index.d.ts +2 -0
  349. package/dist/sync/index.d.ts.map +1 -1
  350. package/dist/sync/index.js +2 -0
  351. package/dist/sync/index.js.map +1 -1
  352. package/dist/sync/mock-sync-backend.d.ts +11 -10
  353. package/dist/sync/mock-sync-backend.d.ts.map +1 -1
  354. package/dist/sync/mock-sync-backend.js +97 -74
  355. package/dist/sync/mock-sync-backend.js.map +1 -1
  356. package/dist/sync/mock-sync-backend.test.d.ts +2 -0
  357. package/dist/sync/mock-sync-backend.test.d.ts.map +1 -0
  358. package/dist/sync/mock-sync-backend.test.js +49 -0
  359. package/dist/sync/mock-sync-backend.test.js.map +1 -0
  360. package/dist/sync/next/compact-events.d.ts.map +1 -1
  361. package/dist/sync/next/compact-events.js +11 -12
  362. package/dist/sync/next/compact-events.js.map +1 -1
  363. package/dist/sync/next/facts.d.ts +5 -5
  364. package/dist/sync/next/facts.d.ts.map +1 -1
  365. package/dist/sync/next/facts.js +7 -8
  366. package/dist/sync/next/facts.js.map +1 -1
  367. package/dist/sync/next/history-dag-common.d.ts +58 -15
  368. package/dist/sync/next/history-dag-common.d.ts.map +1 -1
  369. package/dist/sync/next/history-dag-common.js +219 -9
  370. package/dist/sync/next/history-dag-common.js.map +1 -1
  371. package/dist/sync/next/history-dag.d.ts.map +1 -1
  372. package/dist/sync/next/history-dag.js +12 -11
  373. package/dist/sync/next/history-dag.js.map +1 -1
  374. package/dist/sync/next/rebase-events.d.ts +5 -5
  375. package/dist/sync/next/rebase-events.d.ts.map +1 -1
  376. package/dist/sync/next/rebase-events.js +6 -6
  377. package/dist/sync/next/rebase-events.js.map +1 -1
  378. package/dist/sync/next/test/compact-events.calculator.test.js +4 -4
  379. package/dist/sync/next/test/compact-events.calculator.test.js.map +1 -1
  380. package/dist/sync/next/test/compact-events.test.d.ts.map +1 -1
  381. package/dist/sync/next/test/compact-events.test.js +2 -2
  382. package/dist/sync/next/test/compact-events.test.js.map +1 -1
  383. package/dist/sync/next/test/event-fixtures.d.ts +9 -9
  384. package/dist/sync/next/test/event-fixtures.d.ts.map +1 -1
  385. package/dist/sync/next/test/event-fixtures.js +12 -12
  386. package/dist/sync/next/test/event-fixtures.js.map +1 -1
  387. package/dist/sync/next/test/history-dag-common.test.d.ts +2 -0
  388. package/dist/sync/next/test/history-dag-common.test.d.ts.map +1 -0
  389. package/dist/sync/next/test/history-dag-common.test.js +73 -0
  390. package/dist/sync/next/test/history-dag-common.test.js.map +1 -0
  391. package/dist/sync/sync-backend-kv.d.ts +3 -3
  392. package/dist/sync/sync-backend-kv.d.ts.map +1 -1
  393. package/dist/sync/sync-backend-kv.js +6 -4
  394. package/dist/sync/sync-backend-kv.js.map +1 -1
  395. package/dist/sync/sync-backend.d.ts +41 -21
  396. package/dist/sync/sync-backend.d.ts.map +1 -1
  397. package/dist/sync/sync-backend.js +45 -4
  398. package/dist/sync/sync-backend.js.map +1 -1
  399. package/dist/sync/sync.d.ts +23 -2
  400. package/dist/sync/sync.d.ts.map +1 -1
  401. package/dist/sync/syncstate.d.ts +115 -191
  402. package/dist/sync/syncstate.d.ts.map +1 -1
  403. package/dist/sync/syncstate.js +108 -129
  404. package/dist/sync/syncstate.js.map +1 -1
  405. package/dist/sync/syncstate.test.js +289 -161
  406. package/dist/sync/syncstate.test.js.map +1 -1
  407. package/dist/sync/transport-chunking.d.ts +35 -0
  408. package/dist/sync/transport-chunking.d.ts.map +1 -0
  409. package/dist/sync/transport-chunking.js +47 -0
  410. package/dist/sync/transport-chunking.js.map +1 -0
  411. package/dist/sync/validate-push-payload.d.ts +2 -2
  412. package/dist/sync/validate-push-payload.d.ts.map +1 -1
  413. package/dist/sync/validate-push-payload.js +4 -6
  414. package/dist/sync/validate-push-payload.js.map +1 -1
  415. package/dist/testing/event-factory.d.ts +3 -3
  416. package/dist/testing/event-factory.d.ts.map +1 -1
  417. package/dist/testing/event-factory.js +5 -7
  418. package/dist/testing/event-factory.js.map +1 -1
  419. package/dist/util.d.ts +11 -4
  420. package/dist/util.d.ts.map +1 -1
  421. package/dist/util.js +21 -4
  422. package/dist/util.js.map +1 -1
  423. package/dist/version.d.ts +24 -5
  424. package/dist/version.d.ts.map +1 -1
  425. package/dist/version.js +25 -8
  426. package/dist/version.js.map +1 -1
  427. package/package.json +50 -16
  428. package/src/ClientSessionLeaderThreadProxy.ts +27 -12
  429. package/src/MaterializationJournal.ts +184 -0
  430. package/src/StateHead.ts +80 -0
  431. package/src/WorkerTransportError.ts +12 -0
  432. package/src/__tests__/fixture.ts +3 -3
  433. package/src/adapter-types.ts +62 -56
  434. package/src/bounded-collections.ts +6 -5
  435. package/src/debug-info.ts +54 -43
  436. package/src/defs.ts +2 -2
  437. package/src/devtools/devtools-compatibility.test.ts +19 -0
  438. package/src/devtools/devtools-messages-client-session.ts +72 -63
  439. package/src/devtools/devtools-messages-common.ts +18 -22
  440. package/src/devtools/devtools-messages-leader.ts +89 -68
  441. package/src/devtools/devtools-sessioninfo.ts +17 -12
  442. package/src/devtools/mod.ts +15 -7
  443. package/src/errors.ts +58 -38
  444. package/src/index.ts +11 -1
  445. package/src/leader-thread/LeaderSyncProcessor.ts +927 -674
  446. package/src/leader-thread/RejectedPushError.ts +119 -0
  447. package/src/leader-thread/connection.ts +13 -9
  448. package/src/leader-thread/eventlog.ts +114 -41
  449. package/src/leader-thread/leader-worker-devtools.ts +223 -124
  450. package/src/leader-thread/make-leader-thread-layer.test.ts +44 -0
  451. package/src/leader-thread/make-leader-thread-layer.ts +170 -82
  452. package/src/leader-thread/materialize-event.ts +51 -16
  453. package/src/leader-thread/mod.ts +1 -0
  454. package/src/leader-thread/recreate-db.ts +26 -61
  455. package/src/leader-thread/shutdown-channel.ts +3 -18
  456. package/src/leader-thread/stream-events.ts +209 -0
  457. package/src/leader-thread/types.ts +77 -65
  458. package/src/logging.ts +15 -0
  459. package/src/make-client-session.ts +16 -10
  460. package/src/materializer-helper.ts +31 -49
  461. package/src/otel.ts +15 -13
  462. package/src/rematerialize-from-eventlog.ts +106 -93
  463. package/src/schema/EventDef/define.test.ts +28 -0
  464. package/src/schema/EventDef/define.ts +218 -0
  465. package/src/schema/EventDef/deprecated.test.ts +122 -0
  466. package/src/schema/EventDef/deprecated.ts +172 -0
  467. package/src/schema/EventDef/event-def.ts +123 -0
  468. package/src/schema/EventDef/facts.ts +135 -0
  469. package/src/schema/EventDef/materializer.ts +172 -0
  470. package/src/schema/EventDef/mod.ts +5 -0
  471. package/src/schema/EventSequenceNumber/client.ts +256 -0
  472. package/src/schema/EventSequenceNumber/global.ts +19 -0
  473. package/src/schema/EventSequenceNumber/mod.ts +37 -0
  474. package/src/schema/EventSequenceNumber.test.ts +72 -53
  475. package/src/schema/LiveStoreEvent/client.test.ts +142 -0
  476. package/src/schema/LiveStoreEvent/client.ts +236 -0
  477. package/src/schema/LiveStoreEvent/for-event-def.ts +60 -0
  478. package/src/schema/LiveStoreEvent/global.ts +45 -0
  479. package/src/schema/LiveStoreEvent/input.ts +63 -0
  480. package/src/schema/LiveStoreEvent/mod.ts +4 -0
  481. package/src/schema/events.ts +1 -1
  482. package/src/schema/mod.ts +7 -4
  483. package/src/schema/schema.ts +48 -6
  484. package/src/schema/state/sqlite/client-document-def.test.ts +172 -14
  485. package/src/schema/state/sqlite/client-document-def.ts +126 -98
  486. package/src/schema/state/sqlite/column-annotations.test.ts +27 -45
  487. package/src/schema/state/sqlite/column-annotations.ts +27 -30
  488. package/src/schema/state/sqlite/column-def.test.ts +186 -77
  489. package/src/schema/state/sqlite/column-def.ts +169 -62
  490. package/src/schema/state/sqlite/column-spec.test.ts +34 -19
  491. package/src/schema/state/sqlite/column-spec.ts +38 -11
  492. package/src/schema/state/sqlite/db-schema/ast/sqlite.ts +17 -7
  493. package/src/schema/state/sqlite/db-schema/dsl/__snapshots__/field-defs.test.ts.snap +123 -63
  494. package/src/schema/state/sqlite/db-schema/dsl/field-defs.test.ts +37 -17
  495. package/src/schema/state/sqlite/db-schema/dsl/field-defs.ts +65 -45
  496. package/src/schema/state/sqlite/db-schema/dsl/mod.ts +48 -40
  497. package/src/schema/state/sqlite/mod.ts +9 -12
  498. package/src/schema/state/sqlite/persistence.ts +11 -0
  499. package/src/schema/state/sqlite/query-builder/api.ts +61 -23
  500. package/src/schema/state/sqlite/query-builder/astToSql.ts +117 -23
  501. package/src/schema/state/sqlite/query-builder/impl.test.ts +489 -551
  502. package/src/schema/state/sqlite/query-builder/impl.ts +43 -26
  503. package/src/schema/state/sqlite/schema-helpers.test.ts +44 -0
  504. package/src/schema/state/sqlite/schema-helpers.ts +30 -22
  505. package/src/schema/state/sqlite/system-tables/eventlog-tables.ts +64 -0
  506. package/src/schema/state/sqlite/system-tables/mod.ts +2 -0
  507. package/src/schema/state/sqlite/system-tables/state-tables.ts +109 -0
  508. package/src/schema/state/sqlite/table-def.test.ts +295 -46
  509. package/src/schema/state/sqlite/table-def.ts +109 -64
  510. package/src/schema/unknown-events.ts +132 -0
  511. package/src/schema-management/__tests__/migrations-autoincrement-quoting.test.ts +88 -0
  512. package/src/schema-management/common.ts +2 -2
  513. package/src/schema-management/migrations.ts +42 -9
  514. package/src/schema-management/validate-schema.ts +3 -3
  515. package/src/session-id-symbol.ts +59 -0
  516. package/src/sql-queries/sql-queries.ts +26 -18
  517. package/src/sql-queries/sql-query-builder.ts +1 -0
  518. package/src/sql-queries/types.ts +6 -7
  519. package/src/sqlite-db-helper.ts +67 -5
  520. package/src/sqlite-types.ts +9 -11
  521. package/src/sync/ClientSessionSyncProcessor.ts +388 -194
  522. package/src/sync/errors.ts +18 -28
  523. package/src/sync/index.ts +2 -0
  524. package/src/sync/mock-sync-backend.test.ts +78 -0
  525. package/src/sync/mock-sync-backend.ts +196 -108
  526. package/src/sync/next/compact-events.ts +10 -11
  527. package/src/sync/next/facts.ts +13 -14
  528. package/src/sync/next/history-dag-common.ts +306 -26
  529. package/src/sync/next/history-dag.ts +20 -13
  530. package/src/sync/next/rebase-events.ts +12 -12
  531. package/src/sync/next/test/compact-events.calculator.test.ts +5 -4
  532. package/src/sync/next/test/compact-events.test.ts +4 -3
  533. package/src/sync/next/test/event-fixtures.ts +14 -14
  534. package/src/sync/next/test/history-dag-common.test.ts +87 -0
  535. package/src/sync/sync-backend-kv.ts +7 -4
  536. package/src/sync/sync-backend.ts +75 -26
  537. package/src/sync/sync.ts +24 -2
  538. package/src/sync/syncstate.test.ts +657 -442
  539. package/src/sync/syncstate.ts +175 -160
  540. package/src/sync/transport-chunking.ts +85 -0
  541. package/src/sync/validate-push-payload.ts +6 -8
  542. package/src/testing/event-factory.ts +10 -12
  543. package/src/util.ts +20 -11
  544. package/src/version.ts +32 -8
  545. package/dist/schema/EventDef.d.ts +0 -126
  546. package/dist/schema/EventDef.d.ts.map +0 -1
  547. package/dist/schema/EventDef.js +0 -46
  548. package/dist/schema/EventDef.js.map +0 -1
  549. package/dist/schema/EventSequenceNumber.d.ts +0 -80
  550. package/dist/schema/EventSequenceNumber.d.ts.map +0 -1
  551. package/dist/schema/EventSequenceNumber.js +0 -139
  552. package/dist/schema/EventSequenceNumber.js.map +0 -1
  553. package/dist/schema/LiveStoreEvent.d.ts +0 -306
  554. package/dist/schema/LiveStoreEvent.d.ts.map +0 -1
  555. package/dist/schema/LiveStoreEvent.js +0 -147
  556. package/dist/schema/LiveStoreEvent.js.map +0 -1
  557. package/dist/schema/state/sqlite/system-tables.d.ts +0 -976
  558. package/dist/schema/state/sqlite/system-tables.d.ts.map +0 -1
  559. package/dist/schema/state/sqlite/system-tables.js +0 -81
  560. package/dist/schema/state/sqlite/system-tables.js.map +0 -1
  561. package/dist/sql-queries/misc.d.ts +0 -2
  562. package/dist/sql-queries/misc.d.ts.map +0 -1
  563. package/dist/sql-queries/misc.js +0 -2
  564. package/dist/sql-queries/misc.js.map +0 -1
  565. package/dist/sync/next/graphology.d.ts +0 -8
  566. package/dist/sync/next/graphology.d.ts.map +0 -1
  567. package/dist/sync/next/graphology.js +0 -30
  568. package/dist/sync/next/graphology.js.map +0 -1
  569. package/dist/sync/next/graphology_.d.ts +0 -3
  570. package/dist/sync/next/graphology_.d.ts.map +0 -1
  571. package/dist/sync/next/graphology_.js +0 -3
  572. package/dist/sync/next/graphology_.js.map +0 -1
  573. package/src/schema/EventDef.ts +0 -222
  574. package/src/schema/EventSequenceNumber.ts +0 -199
  575. package/src/schema/LiveStoreEvent.ts +0 -286
  576. package/src/schema/state/sqlite/system-tables.ts +0 -106
  577. package/src/sql-queries/misc.ts +0 -2
  578. package/src/sync/next/ambient.d.ts +0 -3
  579. package/src/sync/next/graphology.ts +0 -41
  580. package/src/sync/next/graphology_.ts +0 -2
@@ -1,39 +1,44 @@
1
1
  import { omitUndefineds, shouldNeverHappen } from '@livestore/utils';
2
- import { Deferred, Effect, KeyValueStore, Layer, PlatformError, Queue, SubscriptionRef } from '@livestore/utils/effect';
3
- import { UnexpectedError, } from "../adapter-types.js";
2
+ import { Deferred, Effect, KeyValueStore, Latch, Layer, Option, Queue, ReadonlyArray, Schema, Stream, Subscribable, SubscriptionRef, } from '@livestore/utils/effect';
3
+ import { UnknownError, } from "../adapter-types.js";
4
4
  import { EventSequenceNumber, LiveStoreEvent, SystemTables } from "../schema/mod.js";
5
5
  import { SyncState } from "../sync/syncstate.js";
6
6
  import { sql } from "../util.js";
7
7
  import * as Eventlog from "./eventlog.js";
8
- import { makeLeaderSyncProcessor } from "./LeaderSyncProcessor.js";
9
8
  import { bootDevtools } from "./leader-worker-devtools.js";
9
+ import * as LeaderSyncProcessor from "./LeaderSyncProcessor.js";
10
10
  import { makeMaterializeEvent } from "./materialize-event.js";
11
11
  import { recreateDb } from "./recreate-db.js";
12
12
  import { LeaderThreadCtx } from "./types.js";
13
- export const makeLeaderThreadLayer = ({ schema, storeId, clientId, syncPayload, makeSqliteDb, syncOptions, dbState, dbEventlog, devtoolsOptions, shutdownChannel, params, testing, }) => Effect.gen(function* () {
14
- const bootStatusQueue = yield* Queue.unbounded().pipe(Effect.acquireRelease(Queue.shutdown));
13
+ export const makeLeaderThreadLayer = ({ schema, storeId, clientId, syncPayloadSchema = Schema.Json, syncPayloadEncoded, makeSqliteDb, syncOptions, dbState, dbEventlog, devtoolsOptions, shutdownChannel, bootWarning, params, testing, }) => Effect.gen(function* () {
14
+ const syncPayloadDecoded = syncPayloadEncoded === undefined
15
+ ? undefined
16
+ : yield* Schema.decodeUnknownEffect(syncPayloadSchema)(syncPayloadEncoded);
17
+ const bootStatusQueue = yield* Effect.acquireRelease(Queue.unbounded(), Queue.shutdown);
18
+ // Emit boot warning if present (e.g., OPFS unavailable in private browsing)
19
+ if (bootWarning !== undefined) {
20
+ yield* Queue.offer(bootStatusQueue, bootWarning);
21
+ }
15
22
  const dbEventlogMissing = !hasEventlogTables(dbEventlog);
16
23
  // Either happens on initial boot or if schema changes
17
24
  const dbStateMissing = !hasStateTables(dbState);
18
25
  yield* Eventlog.initEventlogDb(dbEventlog);
19
26
  const syncBackend = syncOptions?.backend === undefined
20
27
  ? undefined
21
- : yield* syncOptions.backend({ storeId, clientId, payload: syncPayload }).pipe(Effect.provide(Layer.succeed(KeyValueStore.KeyValueStore, KeyValueStore.makeStringOnly({
22
- get: (_key) => Effect.sync(() => Eventlog.getBackendIdFromDb(dbEventlog)).pipe(Effect.catchAllDefect((cause) => PlatformError.BadArgument.make({
28
+ : yield* syncOptions.backend({ storeId, clientId, payload: syncPayloadDecoded }).pipe(Effect.provide(Layer.succeed(KeyValueStore.KeyValueStore, KeyValueStore.makeStringOnly({
29
+ get: (_key) => Effect.sync(() => Eventlog.getBackendIdFromDb(dbEventlog)).pipe(Effect.map(Option.getOrUndefined), Effect.catchDefect((cause) => new KeyValueStore.KeyValueStoreError({
23
30
  method: 'getBackendIdFromDb',
24
- description: 'Failed to get backendId',
25
- module: 'KeyValueStore',
31
+ message: 'Failed to get backendId',
26
32
  cause,
27
33
  }))),
28
- set: (_key, value) => Effect.sync(() => Eventlog.updateBackendId(dbEventlog, value)).pipe(Effect.catchAllDefect((cause) => PlatformError.BadArgument.make({
34
+ set: (_key, value) => Effect.sync(() => Eventlog.updateBackendId(dbEventlog, value)).pipe(Effect.catchDefect((cause) => new KeyValueStore.KeyValueStoreError({
29
35
  method: 'updateBackendId',
30
- module: 'KeyValueStore',
31
- description: 'Failed to update backendId',
36
+ message: 'Failed to update backendId',
32
37
  cause,
33
38
  }))),
34
- clear: Effect.dieMessage(`Not implemented. Should never be used.`),
35
- remove: () => Effect.dieMessage(`Not implemented. Should never be used.`),
36
- size: Effect.dieMessage(`Not implemented. Should never be used.`),
39
+ clear: Effect.die(new Error(`Not implemented. Should never be used.`)),
40
+ remove: () => Effect.die(new Error(`Not implemented. Should never be used.`)),
41
+ size: Effect.die(new Error(`Not implemented. Should never be used.`)),
37
42
  }))));
38
43
  if (syncBackend !== undefined) {
39
44
  // We're already connecting to the sync backend concurrently
@@ -46,15 +51,16 @@ export const makeLeaderThreadLayer = ({ schema, storeId, clientId, syncPayload,
46
51
  const materializeEvent = yield* makeMaterializeEvent({ schema, dbState, dbEventlog });
47
52
  // Recreate state database if needed BEFORE creating sync processor
48
53
  // This ensures all system tables exist before any queries are made
49
- const { migrationsReport } = dbStateMissing
54
+ const { migrationsReport } = dbStateMissing === true
50
55
  ? yield* recreateDb({ dbState, dbEventlog, schema, bootStatusQueue, materializeEvent })
51
56
  : { migrationsReport: { migrations: [] } };
52
- const syncProcessor = yield* makeLeaderSyncProcessor({
57
+ const syncProcessor = yield* LeaderSyncProcessor.make({
53
58
  schema,
54
59
  dbState,
55
60
  initialSyncState: getInitialSyncState({ dbEventlog, dbState, dbEventlogMissing }),
56
61
  initialBlockingSyncContext,
57
62
  onError: syncOptions?.onSyncError ?? 'ignore',
63
+ onBackendIdMismatch: syncOptions?.onBackendIdMismatch ?? 'reset',
58
64
  livePull: syncOptions?.livePull ?? true,
59
65
  params: {
60
66
  ...omitUndefineds({
@@ -63,17 +69,18 @@ export const makeLeaderThreadLayer = ({ schema, storeId, clientId, syncPayload,
63
69
  }),
64
70
  },
65
71
  testing: {
66
- ...omitUndefineds({ delays: testing?.syncProcessor?.delays }),
72
+ ...omitUndefineds({ delays: testing?.syncProcessor?.delays, hooks: testing?.syncProcessor?.hooks }),
67
73
  },
68
74
  });
69
- const extraIncomingMessagesQueue = yield* Queue.unbounded().pipe(Effect.acquireRelease(Queue.shutdown));
70
- const devtoolsContext = devtoolsOptions.enabled
75
+ const extraIncomingMessagesQueue = yield* Effect.acquireRelease(Queue.unbounded(), Queue.shutdown);
76
+ const devtoolsContext = devtoolsOptions.enabled === true
71
77
  ? {
72
78
  enabled: true,
73
- syncBackendLatch: yield* Effect.makeLatch(true),
79
+ syncBackendLatch: yield* Latch.make(true),
74
80
  syncBackendLatchState: yield* SubscriptionRef.make({ latchClosed: false }),
75
81
  }
76
82
  : { enabled: false };
83
+ const networkStatus = yield* makeNetworkStatusSubscribable({ syncBackend, devtoolsContext });
77
84
  const ctx = {
78
85
  schema,
79
86
  bootStatusQueue,
@@ -82,7 +89,7 @@ export const makeLeaderThreadLayer = ({ schema, storeId, clientId, syncPayload,
82
89
  dbState,
83
90
  dbEventlog,
84
91
  makeSqliteDb,
85
- eventSchema: LiveStoreEvent.makeEventDefSchema(schema),
92
+ eventSchema: LiveStoreEvent.Client.makeSchema(schema),
86
93
  shutdownStateSubRef: yield* SubscriptionRef.make('running'),
87
94
  shutdownChannel,
88
95
  syncBackend,
@@ -90,42 +97,31 @@ export const makeLeaderThreadLayer = ({ schema, storeId, clientId, syncPayload,
90
97
  materializeEvent,
91
98
  extraIncomingMessagesQueue,
92
99
  devtools: devtoolsContext,
100
+ networkStatus,
93
101
  // State will be set during `bootLeaderThread`
94
102
  initialState: {},
95
103
  };
96
104
  // @ts-expect-error For debugging purposes
97
105
  globalThis.__leaderThreadCtx = ctx;
98
- const layer = Layer.succeed(LeaderThreadCtx, ctx);
106
+ const layer = Layer.succeed(LeaderThreadCtx, LeaderThreadCtx.of(ctx));
99
107
  ctx.initialState = yield* bootLeaderThread({
100
108
  migrationsReport,
101
109
  initialBlockingSyncContext,
102
110
  devtoolsOptions,
103
111
  }).pipe(Effect.provide(layer));
104
112
  return layer;
105
- }).pipe(Effect.withSpan('@livestore/common:leader-thread:boot'), Effect.withSpanScoped('@livestore/common:leader-thread'), UnexpectedError.mapToUnexpectedError, Effect.tapCauseLogPretty, Layer.unwrapScoped);
113
+ }).pipe(Effect.withSpan('@livestore/common:leader-thread:boot'), Effect.withSpanScoped('@livestore/common:leader-thread'), UnknownError.mapToUnknownError, Effect.tapCauseLogPretty, Layer.unwrap);
106
114
  const hasEventlogTables = (db) => {
107
115
  const tableNames = new Set(db.select(sql `select name from sqlite_master`).map((_) => _.name));
108
- const eventlogTables = new Set(SystemTables.eventlogSystemTables.map((_) => _.sqliteDef.name));
109
- return isSubsetOf(eventlogTables, tableNames);
116
+ return ReadonlyArray.every(SystemTables.eventlogSystemTables, (_) => tableNames.has(_.sqliteDef.name));
110
117
  };
111
118
  const hasStateTables = (db) => {
112
119
  const tableNames = new Set(db.select(sql `select name from sqlite_master`).map((_) => _.name));
113
- const stateTables = new Set(SystemTables.stateSystemTables.map((_) => _.sqliteDef.name));
114
- return isSubsetOf(stateTables, tableNames);
115
- };
116
- const isSubsetOf = (a, b) => {
117
- for (const item of a) {
118
- if (!b.has(item)) {
119
- return false;
120
- }
121
- }
122
- return true;
120
+ return ReadonlyArray.every(SystemTables.stateSystemTables, (_) => tableNames.has(_.sqliteDef.name));
123
121
  };
124
122
  const getInitialSyncState = ({ dbEventlog, dbState, dbEventlogMissing, }) => {
125
- const initialBackendHead = dbEventlogMissing
126
- ? EventSequenceNumber.ROOT.global
127
- : Eventlog.getBackendHeadFromDb(dbEventlog);
128
- const initialLocalHead = dbEventlogMissing ? EventSequenceNumber.ROOT : Eventlog.getClientHeadFromDb(dbEventlog);
123
+ const initialBackendHead = dbEventlogMissing === true ? EventSequenceNumber.Client.ROOT.global : Eventlog.getBackendHeadFromDb(dbEventlog);
124
+ const initialLocalHead = dbEventlogMissing === true ? EventSequenceNumber.Client.ROOT : Eventlog.getClientHeadFromDb(dbEventlog);
129
125
  if (initialBackendHead > initialLocalHead.global) {
130
126
  return shouldNeverHappen(`During boot the backend head (${initialBackendHead}) should never be greater than the local head (${initialLocalHead.global})`);
131
127
  }
@@ -133,17 +129,17 @@ const getInitialSyncState = ({ dbEventlog, dbState, dbEventlogMissing, }) => {
133
129
  localHead: initialLocalHead,
134
130
  upstreamHead: {
135
131
  global: initialBackendHead,
136
- client: EventSequenceNumber.clientDefault,
137
- rebaseGeneration: EventSequenceNumber.rebaseGenerationDefault,
132
+ client: EventSequenceNumber.Client.DEFAULT,
133
+ rebaseGeneration: EventSequenceNumber.Client.REBASE_GENERATION_DEFAULT,
138
134
  },
139
- pending: dbEventlogMissing
135
+ pending: dbEventlogMissing === true
140
136
  ? []
141
137
  : Eventlog.getEventsSince({
142
138
  dbEventlog,
143
139
  dbState,
144
140
  since: {
145
141
  global: initialBackendHead,
146
- client: EventSequenceNumber.clientDefault,
142
+ client: EventSequenceNumber.Client.DEFAULT,
147
143
  rebaseGeneration: initialLocalHead.rebaseGeneration,
148
144
  },
149
145
  }),
@@ -193,10 +189,36 @@ const bootLeaderThread = ({ migrationsReport, initialBlockingSyncContext, devtoo
193
189
  stage: 'syncing',
194
190
  progress: { done: 0, total: -1 },
195
191
  });
196
- yield* initialBlockingSyncContext.blockingDeferred.pipe(Effect.withSpan('@livestore/common:leader-thread:initial-sync-blocking'));
192
+ yield* Deferred.await(initialBlockingSyncContext.blockingDeferred).pipe(Effect.withSpan('@livestore/common:leader-thread:initial-sync-blocking'));
197
193
  }
198
194
  yield* Queue.offer(bootStatusQueue, { stage: 'done' });
199
195
  yield* bootDevtools(devtoolsOptions).pipe(Effect.tapCauseLogPretty, Effect.forkScoped);
200
196
  return { migrationsReport, leaderHead: initialLeaderHead };
201
197
  });
198
+ /** @internal */
199
+ export const makeNetworkStatusSubscribable = ({ syncBackend, devtoolsContext, }) => Effect.gen(function* () {
200
+ const initialIsConnected = syncBackend !== undefined ? yield* SubscriptionRef.get(syncBackend.isConnected) : false;
201
+ const initialLatchClosed = devtoolsContext.enabled === true
202
+ ? (yield* SubscriptionRef.get(devtoolsContext.syncBackendLatchState)).latchClosed
203
+ : false;
204
+ const networkStatusRef = yield* SubscriptionRef.make({
205
+ isConnected: initialIsConnected,
206
+ timestampMs: Date.now(),
207
+ devtools: { latchClosed: initialLatchClosed },
208
+ });
209
+ const updateNetworkStatus = (patch) => SubscriptionRef.update(networkStatusRef, (previous) => ({
210
+ isConnected: patch.isConnected ?? previous.isConnected,
211
+ timestampMs: Date.now(),
212
+ devtools: {
213
+ latchClosed: patch.latchClosed ?? previous.devtools.latchClosed,
214
+ },
215
+ }));
216
+ if (syncBackend !== undefined) {
217
+ yield* SubscriptionRef.changes(syncBackend.isConnected).pipe(Stream.tap((isConnected) => updateNetworkStatus({ isConnected })), Stream.runDrain, Effect.interruptible, Effect.tapCauseLogPretty, Effect.forkScoped);
218
+ }
219
+ if (devtoolsContext.enabled === true) {
220
+ yield* SubscriptionRef.changes(devtoolsContext.syncBackendLatchState).pipe(Stream.tap(({ latchClosed }) => updateNetworkStatus({ latchClosed })), Stream.runDrain, Effect.interruptible, Effect.tapCauseLogPretty, Effect.forkScoped);
221
+ }
222
+ return Subscribable.fromSubscriptionRef(networkStatusRef);
223
+ });
202
224
  //# sourceMappingURL=make-leader-thread-layer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"make-leader-thread-layer.js","sourceRoot":"","sources":["../../src/leader-thread/make-leader-thread-layer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"make-leader-thread-layer.js","sourceRoot":"","sources":["../../src/leader-thread/make-leader-thread-layer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=make-leader-thread-layer.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"make-leader-thread-layer.test.d.ts","sourceRoot":"","sources":["../../src/leader-thread/make-leader-thread-layer.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,32 @@
1
+ import { Vitest } from '@livestore/utils-dev/node-vitest';
2
+ import { Effect, Fiber, Latch, Stream, SubscriptionRef } from '@livestore/utils/effect';
3
+ import { makeMockSyncBackend } from "../sync/mock-sync-backend.js";
4
+ import { makeNetworkStatusSubscribable } from "./make-leader-thread-layer.js";
5
+ Vitest.describe('makeNetworkStatusSubscribable', () => {
6
+ Vitest.live('tracks sync backend connectivity and devtools latch state', () => Effect.gen(function* () {
7
+ const mockBackend = yield* makeMockSyncBackend({ startConnected: false });
8
+ const syncBackend = yield* mockBackend.makeSyncBackend;
9
+ const latchStateRef = yield* SubscriptionRef.make({ latchClosed: false });
10
+ const devtoolsContext = {
11
+ enabled: true,
12
+ syncBackendLatch: yield* Latch.make(true),
13
+ syncBackendLatchState: latchStateRef,
14
+ };
15
+ const networkStatus = yield* makeNetworkStatusSubscribable({ syncBackend, devtoolsContext });
16
+ const initial = yield* networkStatus;
17
+ Vitest.expect(initial.isConnected).toBe(false);
18
+ Vitest.expect(initial.devtools.latchClosed).toBe(false);
19
+ const waitFor = (predicate) => networkStatus.changes.pipe(Stream.filter(predicate), Stream.runFirstUnsafe);
20
+ const onlineFiber = yield* waitFor((status) => status.isConnected).pipe(Effect.forkScoped);
21
+ yield* mockBackend.connect;
22
+ const online = yield* Fiber.join(onlineFiber);
23
+ Vitest.expect(online.isConnected).toBe(true);
24
+ Vitest.expect(online.timestampMs).toBeGreaterThanOrEqual(initial.timestampMs);
25
+ const latchedFiber = yield* waitFor((status) => status.devtools.latchClosed).pipe(Effect.forkScoped);
26
+ yield* SubscriptionRef.set(latchStateRef, { latchClosed: true });
27
+ const latched = yield* Fiber.join(latchedFiber);
28
+ Vitest.expect(latched.devtools.latchClosed).toBe(true);
29
+ Vitest.expect(latched.timestampMs).toBeGreaterThanOrEqual(online.timestampMs);
30
+ }));
31
+ });
32
+ //# sourceMappingURL=make-leader-thread-layer.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"make-leader-thread-layer.test.js","sourceRoot":"","sources":["../../src/leader-thread/make-leader-thread-layer.test.ts"],"names":[],"mappings":"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"}
@@ -2,15 +2,16 @@ import { Effect } from '@livestore/utils/effect';
2
2
  import { type SqliteDb } from '../adapter-types.ts';
3
3
  import type { LiveStoreSchema } from '../schema/mod.ts';
4
4
  import { EventSequenceNumber } from '../schema/mod.ts';
5
+ import * as StateHead from '../StateHead.ts';
5
6
  import type { MaterializeEvent } from './types.ts';
6
7
  export declare const makeMaterializeEvent: ({ schema, dbState, dbEventlog, }: {
7
8
  schema: LiveStoreSchema;
8
9
  dbState: SqliteDb;
9
10
  dbEventlog: SqliteDb;
10
- }) => Effect.Effect<MaterializeEvent>;
11
+ }) => Effect.Effect<MaterializeEvent, never, StateHead.StateHead>;
11
12
  export declare const rollback: ({ dbState, dbEventlog, eventNumsToRollback, }: {
12
13
  dbState: SqliteDb;
13
14
  dbEventlog: SqliteDb;
14
- eventNumsToRollback: EventSequenceNumber.EventSequenceNumber[];
15
+ eventNumsToRollback: EventSequenceNumber.Client.Composite[];
15
16
  }) => Effect.Effect<void, never, never>;
16
17
  //# sourceMappingURL=materialize-event.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"materialize-event.d.ts","sourceRoot":"","sources":["../../src/leader-thread/materialize-event.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAiC,MAAM,yBAAyB,CAAA;AAE/E,OAAO,EAAmD,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAEpG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAAE,mBAAmB,EAA6B,MAAM,kBAAkB,CAAA;AAKjF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAGlD,eAAO,MAAM,oBAAoB,GAAI,kCAIlC;IACD,MAAM,EAAE,eAAe,CAAA;IACvB,OAAO,EAAE,QAAQ,CAAA;IACjB,UAAU,EAAE,QAAQ,CAAA;CACrB,KAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAkH9B,CAAA;AAEJ,eAAO,MAAM,QAAQ,GAAI,+CAItB;IACD,OAAO,EAAE,QAAQ,CAAA;IACjB,UAAU,EAAE,QAAQ,CAAA;IACpB,mBAAmB,EAAE,mBAAmB,CAAC,mBAAmB,EAAE,CAAA;CAC/D,sCA8CE,CAAA"}
1
+ {"version":3,"file":"materialize-event.d.ts","sourceRoot":"","sources":["../../src/leader-thread/materialize-event.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAiC,MAAM,yBAAyB,CAAA;AAE/E,OAAO,EAAmD,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAGpG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAAE,mBAAmB,EAA4D,MAAM,kBAAkB,CAAA;AAEhH,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAA;AAI5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAGlD,eAAO,MAAM,oBAAoB,GAAI,kCAIlC;IACD,MAAM,EAAE,eAAe,CAAA;IACvB,OAAO,EAAE,QAAQ,CAAA;IACjB,UAAU,EAAE,QAAQ,CAAA;CACrB,KAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,KAAK,EAAE,SAAS,CAAC,SAAS,CAmJ1D,CAAA;AAEJ,eAAO,MAAM,QAAQ,GAAI,+CAItB;IACD,OAAO,EAAE,QAAQ,CAAA;IACjB,UAAU,EAAE,QAAQ,CAAA;IACpB,mBAAmB,EAAE,mBAAmB,CAAC,MAAM,CAAC,SAAS,EAAE,CAAA;CAC5D,sCA8CE,CAAA"}
@@ -2,13 +2,16 @@ import { isDevEnv, LS_DEV, shouldNeverHappen } from '@livestore/utils';
2
2
  import { Effect, Option, ReadonlyArray, Schema } from '@livestore/utils/effect';
3
3
  import { MaterializeError, MaterializerHashMismatchError } from "../adapter-types.js";
4
4
  import { getExecStatementsFromMaterializer, hashMaterializerResults } from "../materializer-helper.js";
5
- import { EventSequenceNumber, getEventDef, SystemTables } from "../schema/mod.js";
5
+ import { logDeprecationWarnings } from "../schema/EventDef/deprecated.js";
6
+ import { EventSequenceNumber, resolveEventDef, SystemTables, UNKNOWN_EVENT_SCHEMA_HASH } from "../schema/mod.js";
6
7
  import { insertRow } from "../sql-queries/index.js";
8
+ import * as StateHead from "../StateHead.js";
7
9
  import { sql } from "../util.js";
8
10
  import { execSql, execSqlPrepared } from "./connection.js";
9
11
  import * as Eventlog from "./eventlog.js";
10
12
  // TODO refactor `makeMaterializeEvent` to not return an Effect for the constructor as it's not needed
11
13
  export const makeMaterializeEvent = ({ schema, dbState, dbEventlog, }) => Effect.gen(function* () {
14
+ const stateHead = yield* StateHead.StateHead;
12
15
  const eventDefSchemaHashMap = new Map(
13
16
  // TODO Running `Schema.hash` can be a bottleneck for larger schemas. There is an opportunity to run this
14
17
  // at build time and lookup the pre-computed hash at runtime.
@@ -16,15 +19,34 @@ export const makeMaterializeEvent = ({ schema, dbState, dbEventlog, }) => Effect
16
19
  [...schema.eventsDefsMap.entries()].map(([k, v]) => [k, Schema.hash(v.schema)]));
17
20
  return (eventEncoded, options) => Effect.gen(function* () {
18
21
  const skipEventlog = options?.skipEventlog ?? false;
19
- const eventName = eventEncoded.name;
20
- const { eventDef, materializer } = getEventDef(schema, eventName);
22
+ const resolution = yield* resolveEventDef(schema, {
23
+ operation: '@livestore/common:leader-thread:materializeEvent',
24
+ event: eventEncoded,
25
+ });
26
+ if (resolution._tag === 'unknown') {
27
+ // Unknown events still enter the eventlog so newer clients can replay
28
+ // them once they learn the schema. We skip materialization to keep the
29
+ // local state consistent with the knowledge of the current client.
30
+ if (skipEventlog === false) {
31
+ yield* Eventlog.insertIntoEventlog(eventEncoded, dbEventlog, UNKNOWN_EVENT_SCHEMA_HASH, eventEncoded.clientId, eventEncoded.sessionId);
32
+ }
33
+ yield* stateHead.set(eventEncoded.seqNum);
34
+ dbState.debug.head = eventEncoded.seqNum;
35
+ return {
36
+ sessionChangeset: { _tag: 'no-op' },
37
+ hash: Option.none(),
38
+ };
39
+ }
40
+ const { eventDef, materializer } = resolution;
41
+ // Log deprecation warnings for deprecated events/fields
42
+ yield* logDeprecationWarnings(eventDef, eventEncoded.args);
21
43
  const execArgsArr = getExecStatementsFromMaterializer({
22
44
  eventDef,
23
45
  materializer,
24
46
  dbState,
25
47
  event: { decoded: undefined, encoded: eventEncoded },
26
48
  });
27
- const materializerHash = isDevEnv() ? Option.some(hashMaterializerResults(execArgsArr)) : Option.none();
49
+ const materializerHash = isDevEnv() === true ? Option.some(hashMaterializerResults(execArgsArr)) : Option.none();
28
50
  if (materializerHash._tag === 'Some' &&
29
51
  eventEncoded.meta.materializerHashSession._tag === 'Some' &&
30
52
  eventEncoded.meta.materializerHashSession.value !== materializerHash.value) {
@@ -58,9 +80,10 @@ export const makeMaterializeEvent = ({ schema, dbState, dbEventlog, }) => Effect
58
80
  seqNumRebaseGeneration: eventEncoded.seqNum.rebaseGeneration,
59
81
  // NOTE the changeset will be empty (i.e. null) for no-op events
60
82
  changeset: changeset ?? null,
61
- debug: LS_DEV ? execArgsArr : null,
83
+ debug: LS_DEV === true ? execArgsArr : null,
62
84
  },
63
85
  }));
86
+ yield* stateHead.set(eventEncoded.seqNum);
64
87
  // console.groupEnd()
65
88
  // write to eventlog
66
89
  if (skipEventlog === false) {
@@ -72,11 +95,11 @@ export const makeMaterializeEvent = ({ schema, dbState, dbEventlog, }) => Effect
72
95
  // console.debug('[@livestore/common:leader-thread] skipping eventlog write', mutation, statementSql, bindValues)
73
96
  }
74
97
  return {
75
- sessionChangeset: changeset
98
+ sessionChangeset: changeset !== undefined
76
99
  ? {
77
100
  _tag: 'sessionChangeset',
78
101
  data: changeset,
79
- debug: LS_DEV ? execArgsArr : null,
102
+ debug: LS_DEV === true ? execArgsArr : null,
80
103
  }
81
104
  : { _tag: 'no-op' },
82
105
  hash: materializerHash,
@@ -85,7 +108,7 @@ export const makeMaterializeEvent = ({ schema, dbState, dbEventlog, }) => Effect
85
108
  attributes: {
86
109
  eventName: eventEncoded.name,
87
110
  eventNum: eventEncoded.seqNum,
88
- 'span.label': `${EventSequenceNumber.toString(eventEncoded.seqNum)} ${eventEncoded.name}`,
111
+ 'span.label': `${EventSequenceNumber.Client.toString(eventEncoded.seqNum)} ${eventEncoded.name}`,
89
112
  },
90
113
  }));
91
114
  });
@@ -101,7 +124,7 @@ export const rollback = ({ dbState, dbEventlog, eventNumsToRollback, }) => Effec
101
124
  changeset: _.changeset,
102
125
  debug: _.debug,
103
126
  }))
104
- .toSorted((a, b) => EventSequenceNumber.compare(a.seqNum, b.seqNum));
127
+ .toSorted((a, b) => EventSequenceNumber.Client.compare(a.seqNum, b.seqNum));
105
128
  // Apply changesets in reverse order
106
129
  for (let i = rollbackEvents.length - 1; i >= 0; i--) {
107
130
  const { changeset } = rollbackEvents[i];
@@ -1 +1 @@
1
- {"version":3,"file":"materialize-event.js","sourceRoot":"","sources":["../../src/leader-thread/materialize-event.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"materialize-event.js","sourceRoot":"","sources":["../../src/leader-thread/materialize-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAE/E,OAAO,EAAE,gBAAgB,EAAE,6BAA6B,EAAiB,MAAM,qBAAqB,CAAA;AACpG,OAAO,EAAE,iCAAiC,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AACtG,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAA;AAEzE,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,YAAY,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAA;AAChH,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAGzC,sGAAsG;AACtG,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,EACnC,MAAM,EACN,OAAO,EACP,UAAU,GAKX,EAA+D,EAAE,CAChE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,SAAS,CAAA;IAC5C,MAAM,qBAAqB,GAAG,IAAI,GAAG;IACnC,yGAAyG;IACzG,6DAA6D;IAC7D,2DAA2D;IAC3D,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAU,CAAC,CACzF,CAAA;IAED,OAAO,CAAC,YAAY,EAAE,OAAO,EAAE,EAAE,CAC/B,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,YAAY,GAAG,OAAO,EAAE,YAAY,IAAI,KAAK,CAAA;QAEnD,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE;YAChD,SAAS,EAAE,kDAAkD;YAC7D,KAAK,EAAE,YAAY;SACpB,CAAC,CAAA;QAEF,IAAI,UAAU,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAClC,sEAAsE;YACtE,uEAAuE;YACvE,mEAAmE;YACnE,IAAI,YAAY,KAAK,KAAK,EAAE,CAAC;gBAC3B,KAAK,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAChC,YAAY,EACZ,UAAU,EACV,yBAAyB,EACzB,YAAY,CAAC,QAAQ,EACrB,YAAY,CAAC,SAAS,CACvB,CAAA;YACH,CAAC;YAED,KAAK,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;YACzC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,YAAY,CAAC,MAAM,CAAA;YAExC,OAAO;gBACL,gBAAgB,EAAE,EAAE,IAAI,EAAE,OAAgB,EAAE;gBAC5C,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE;aACpB,CAAA;QACH,CAAC;QAED,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,UAAU,CAAA;QAE7C,wDAAwD;QACxD,KAAK,CAAC,CAAC,sBAAsB,CAAC,QAAQ,EAAE,YAAY,CAAC,IAA+B,CAAC,CAAA;QAErF,MAAM,WAAW,GAAG,iCAAiC,CAAC;YACpD,QAAQ;YACR,YAAY;YACZ,OAAO;YACP,KAAK,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE;SACrD,CAAC,CAAA;QAEF,MAAM,gBAAgB,GAAG,QAAQ,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;QAEhH,IACE,gBAAgB,CAAC,IAAI,KAAK,MAAM;YAChC,YAAY,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,KAAK,MAAM;YACzD,YAAY,CAAC,IAAI,CAAC,uBAAuB,CAAC,KAAK,KAAK,gBAAgB,CAAC,KAAK,EAC1E,CAAC;YACD,OAAO,KAAK,CAAC,CAAC,6BAA6B,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,YAAY,CAAC,IAAI,EAAE,CAAC,CAAA;QACpF,CAAC;QAED,yEAAyE;QACzE,2EAA2E;QAC3E,8CAA8C;QAC9C,+BAA+B;QAC/B,oGAAoG;QACpG,QAAQ;QACR,OAAO;QACP,KAAK;QAEL,qFAAqF;QAErF,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAA;QAEjC,KAAK,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,WAAW,EAAE,CAAC;YACvD,qDAAqD;YACrD,sDAAsD;YACtD,KAAK,CAAC,CAAC,eAAe,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,CAAC,CAAA;QAC3D,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,YAAY,CAAC,MAAM,CAAA;QAExC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,EAAE,CAAA;QACrC,OAAO,CAAC,MAAM,EAAE,CAAA;QAEhB,+BAA+B;QAC/B,KAAK,CAAC,CAAC,OAAO,CACZ,OAAO,EACP,GAAG,SAAS,CAAC;YACX,SAAS,EAAE,YAAY,CAAC,4BAA4B;YACpD,OAAO,EAAE,YAAY,CAAC,yBAAyB,CAAC,SAAS,CAAC,OAAO;YACjE,MAAM,EAAE;gBACN,YAAY,EAAE,YAAY,CAAC,MAAM,CAAC,MAAM;gBACxC,YAAY,EAAE,YAAY,CAAC,MAAM,CAAC,MAAM;gBACxC,sBAAsB,EAAE,YAAY,CAAC,MAAM,CAAC,gBAAgB;gBAC5D,gEAAgE;gBAChE,SAAS,EAAE,SAAS,IAAI,IAAI;gBAC5B,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI;aAC5C;SACF,CAAC,CACH,CAAA;QACD,KAAK,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;QAEzC,qBAAqB;QAErB,oBAAoB;QACpB,IAAI,YAAY,KAAK,KAAK,EAAE,CAAC;YAC3B,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAA;YACnC,MAAM,kBAAkB,GACtB,qBAAqB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,iBAAiB,CAAC,6BAA6B,SAAS,EAAE,CAAC,CAAA;YAErG,KAAK,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAChC,YAAY,EACZ,UAAU,EACV,kBAAkB,EAClB,YAAY,CAAC,QAAQ,EACrB,YAAY,CAAC,SAAS,CACvB,CAAA;QACH,CAAC;aAAM,CAAC;YACN,mHAAmH;QACrH,CAAC;QAED,OAAO;YACL,gBAAgB,EACd,SAAS,KAAK,SAAS;gBACrB,CAAC,CAAC;oBACE,IAAI,EAAE,kBAA2B;oBACjC,IAAI,EAAE,SAAS;oBACf,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI;iBAC5C;gBACH,CAAC,CAAC,EAAE,IAAI,EAAE,OAAgB,EAAE;YAChC,IAAI,EAAE,gBAAgB;SACvB,CAAA;IACH,CAAC,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAC5D,MAAM,CAAC,QAAQ,CAAC,kDAAkD,EAAE;QAClE,UAAU,EAAE;YACV,SAAS,EAAE,YAAY,CAAC,IAAI;YAC5B,QAAQ,EAAE,YAAY,CAAC,MAAM;YAC7B,YAAY,EAAE,GAAG,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,IAAI,EAAE;SACjG;KACF,CAAC,CAEH,CAAA;AACL,CAAC,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EACvB,OAAO,EACP,UAAU,EACV,mBAAmB,GAKpB,EAAE,EAAE,CACH,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,cAAc,GAAG,OAAO;SAC3B,MAAM,CACL,GAAG,CAAA,iBAAiB,YAAY,CAAC,4BAA4B,2CAA2C,mBAAmB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACtL;SACA,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACX,MAAM,EAAE;YACN,MAAM,EAAE,CAAC,CAAC,YAAY;YACtB,MAAM,EAAE,CAAC,CAAC,YAAY;YACtB,gBAAgB,EAAE,CAAC,CAAC,EAAE,2BAA2B;SAClD;QACD,SAAS,EAAE,CAAC,CAAC,SAAS;QACtB,KAAK,EAAE,CAAC,CAAC,KAAK;KACf,CAAC,CAAC;SACF,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;IAE7E,oCAAoC;IACpC,KAAK,IAAI,CAAC,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACpD,MAAM,EAAE,SAAS,EAAE,GAAG,cAAc,CAAC,CAAC,CAAE,CAAA;QACxC,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YACvB,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAA;QACnD,CAAC;IACH,CAAC;IAED,MAAM,kBAAkB,GAAG,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CACpD,mBAAmB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,CAC5E,CAAA;IAED,4BAA4B;IAC5B,KAAK,MAAM,iBAAiB,IAAI,kBAAkB,EAAE,CAAC;QACnD,OAAO,CAAC,OAAO,CACb,GAAG,CAAA,eAAe,YAAY,CAAC,4BAA4B,2CAA2C,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACtI,CAAA;IACH,CAAC;IAED,2BAA2B;IAC3B,KAAK,MAAM,iBAAiB,IAAI,kBAAkB,EAAE,CAAC;QACnD,UAAU,CAAC,OAAO,CAChB,GAAG,CAAA,eAAe,YAAY,CAAC,mBAAmB,2CAA2C,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAC7H,CAAA;IACH,CAAC;AACH,CAAC,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,QAAQ,CAAC,gDAAgD,EAAE;IAChE,UAAU,EAAE,EAAE,KAAK,EAAE,mBAAmB,CAAC,MAAM,EAAE;CAClD,CAAC,CACH,CAAA"}
@@ -5,5 +5,6 @@ export * from './make-leader-thread-layer.ts';
5
5
  export * from './materialize-event.ts';
6
6
  export * from './recreate-db.ts';
7
7
  export * as ShutdownChannel from './shutdown-channel.ts';
8
+ export * from './stream-events.ts';
8
9
  export * from './types.ts';
9
10
  //# sourceMappingURL=mod.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/leader-thread/mod.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,wBAAwB,CAAA;AACtC,cAAc,kBAAkB,CAAA;AAChC,OAAO,KAAK,eAAe,MAAM,uBAAuB,CAAA;AACxD,cAAc,YAAY,CAAA"}
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/leader-thread/mod.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,wBAAwB,CAAA;AACtC,cAAc,kBAAkB,CAAA;AAChC,OAAO,KAAK,eAAe,MAAM,uBAAuB,CAAA;AACxD,cAAc,oBAAoB,CAAA;AAClC,cAAc,YAAY,CAAA"}
@@ -5,5 +5,6 @@ export * from "./make-leader-thread-layer.js";
5
5
  export * from "./materialize-event.js";
6
6
  export * from "./recreate-db.js";
7
7
  export * as ShutdownChannel from "./shutdown-channel.js";
8
+ export * from "./stream-events.js";
8
9
  export * from "./types.js";
9
10
  //# sourceMappingURL=mod.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mod.js","sourceRoot":"","sources":["../../src/leader-thread/mod.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,wBAAwB,CAAA;AACtC,cAAc,kBAAkB,CAAA;AAChC,OAAO,KAAK,eAAe,MAAM,uBAAuB,CAAA;AACxD,cAAc,YAAY,CAAA"}
1
+ {"version":3,"file":"mod.js","sourceRoot":"","sources":["../../src/leader-thread/mod.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,wBAAwB,CAAA;AACtC,cAAc,kBAAkB,CAAA;AAChC,OAAO,KAAK,eAAe,MAAM,uBAAuB,CAAA;AACxD,cAAc,oBAAoB,CAAA;AAClC,cAAc,YAAY,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import { Effect, Queue } from '@livestore/utils/effect';
2
2
  import type { MigrationsReport } from '../defs.ts';
3
- import { type BootStatus, type MaterializeError, type SqliteDb, type SqliteError, UnexpectedError } from '../index.ts';
3
+ import { type BootStatus, type MaterializeError, type SqliteDb, type SqliteError, UnknownError } from '../index.ts';
4
4
  import type { LiveStoreSchema } from '../schema/mod.ts';
5
5
  import type { MaterializeEvent } from './types.ts';
6
6
  export declare const recreateDb: ({ dbState, dbEventlog, schema, bootStatusQueue, materializeEvent, }: {
@@ -11,5 +11,5 @@ export declare const recreateDb: ({ dbState, dbEventlog, schema, bootStatusQueue
11
11
  materializeEvent: MaterializeEvent;
12
12
  }) => Effect.Effect<{
13
13
  migrationsReport: MigrationsReport;
14
- }, UnexpectedError | MaterializeError | SqliteError>;
14
+ }, UnknownError | MaterializeError | SqliteError>;
15
15
  //# sourceMappingURL=recreate-db.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"recreate-db.d.ts","sourceRoot":"","sources":["../../src/leader-thread/recreate-db.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAEvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAClD,OAAO,EACL,KAAK,UAAU,EACf,KAAK,gBAAgB,EAIrB,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,eAAe,EAChB,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAEvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAElD,eAAO,MAAM,UAAU,GAAI,qEAMxB;IACD,OAAO,EAAE,QAAQ,CAAA;IACjB,UAAU,EAAE,QAAQ,CAAA;IACpB,MAAM,EAAE,eAAe,CAAA;IACvB,eAAe,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IACxC,gBAAgB,EAAE,gBAAgB,CAAA;CACnC,KAAG,MAAM,CAAC,MAAM,CAAC;IAAE,gBAAgB,EAAE,gBAAgB,CAAA;CAAE,EAAE,eAAe,GAAG,gBAAgB,GAAG,WAAW,CA6FvG,CAAA"}
1
+ {"version":3,"file":"recreate-db.d.ts","sourceRoot":"","sources":["../../src/leader-thread/recreate-db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAEvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAClD,OAAO,EACL,KAAK,UAAU,EACf,KAAK,gBAAgB,EAGrB,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,YAAY,EACb,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAEvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAElD,eAAO,MAAM,UAAU,GAAI,qEAMxB;IACD,OAAO,EAAE,QAAQ,CAAA;IACjB,UAAU,EAAE,QAAQ,CAAA;IACpB,MAAM,EAAE,eAAe,CAAA;IACvB,eAAe,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IACxC,gBAAgB,EAAE,gBAAgB,CAAA;CACnC,KAAG,MAAM,CAAC,MAAM,CAAC;IAAE,gBAAgB,EAAE,gBAAgB,CAAA;CAAE,EAAE,YAAY,GAAG,gBAAgB,GAAG,WAAW,CA4DpG,CAAA"}
@@ -1,10 +1,8 @@
1
- import { casesHandled } from '@livestore/utils';
2
1
  import { Effect, Queue } from '@livestore/utils/effect';
3
- import { migrateDb, rematerializeFromEventlog, UnexpectedError, } from "../index.js";
2
+ import { migrateDb, rematerializeFromEventlog, UnknownError, } from "../index.js";
4
3
  import { configureConnection } from "./connection.js";
5
4
  export const recreateDb = ({ dbState, dbEventlog, schema, bootStatusQueue, materializeEvent, }) => Effect.gen(function* () {
6
- const migrationOptions = schema.state.sqlite.migrations;
7
- let migrationsReport;
5
+ const hooks = schema.state.sqlite.migrations.hooks;
8
6
  yield* Effect.addFinalizer(Effect.fn('recreateDb:finalizer')(function* (ex) {
9
7
  if (ex._tag === 'Failure')
10
8
  dbState.destroy();
@@ -15,43 +13,24 @@ export const recreateDb = ({ dbState, dbEventlog, schema, bootStatusQueue, mater
15
13
  // const tmpDb = yield* makeSqliteDb({ _tag: 'in-memory' })
16
14
  const tmpDb = dbState;
17
15
  yield* configureConnection(tmpDb, { foreignKeys: true });
18
- const initDb = (hooks) => Effect.gen(function* () {
19
- yield* Effect.tryAll(() => hooks?.init?.(tmpDb)).pipe(UnexpectedError.mapToUnexpectedError);
20
- const migrationsReport = yield* migrateDb({
21
- db: tmpDb,
22
- schema,
23
- onProgress: ({ done, total }) => Queue.offer(bootStatusQueue, { stage: 'migrating', progress: { done, total } }),
24
- });
25
- yield* Effect.tryAll(() => hooks?.pre?.(tmpDb)).pipe(UnexpectedError.mapToUnexpectedError);
26
- return { migrationsReport, tmpDb };
16
+ // @effect-diagnostics-next-line anyUnknownInErrorContext:off -- user hook errors are immediately normalized to LiveStore UnknownError
17
+ yield* Effect.trySyncOrPromiseOrEffect(() => hooks?.init?.(tmpDb)).pipe(UnknownError.mapToUnknownError);
18
+ const migrationsReport = yield* migrateDb({
19
+ db: tmpDb,
20
+ schema,
21
+ onProgress: ({ done, total }) => Queue.offer(bootStatusQueue, { stage: 'migrating', progress: { done, total } }),
27
22
  });
28
- switch (migrationOptions.strategy) {
29
- case 'auto': {
30
- const hooks = migrationOptions.hooks;
31
- const initResult = yield* initDb(hooks);
32
- migrationsReport = initResult.migrationsReport;
33
- yield* rematerializeFromEventlog({
34
- // db: initResult.tmpDb,
35
- dbEventlog,
36
- schema,
37
- materializeEvent,
38
- onProgress: ({ done, total }) => Queue.offer(bootStatusQueue, { stage: 'rehydrating', progress: { done, total } }),
39
- });
40
- yield* Effect.tryAll(() => hooks?.post?.(initResult.tmpDb)).pipe(UnexpectedError.mapToUnexpectedError);
41
- break;
42
- }
43
- case 'manual': {
44
- const oldDbData = dbState.export();
45
- migrationsReport = { migrations: [] };
46
- const newDbData = yield* Effect.tryAll(() => migrationOptions.migrate(oldDbData)).pipe(UnexpectedError.mapToUnexpectedError);
47
- tmpDb.import(newDbData);
48
- // TODO validate schema
49
- break;
50
- }
51
- default: {
52
- casesHandled(migrationOptions);
53
- }
54
- }
23
+ // @effect-diagnostics-next-line anyUnknownInErrorContext:off -- user hook errors are immediately normalized to LiveStore UnknownError
24
+ yield* Effect.trySyncOrPromiseOrEffect(() => hooks?.pre?.(tmpDb)).pipe(UnknownError.mapToUnknownError);
25
+ yield* rematerializeFromEventlog({
26
+ // db: tmpDb,
27
+ dbEventlog,
28
+ schema,
29
+ materializeEvent,
30
+ onProgress: ({ done, total }) => Queue.offer(bootStatusQueue, { stage: 'rehydrating', progress: { done, total } }),
31
+ });
32
+ // @effect-diagnostics-next-line anyUnknownInErrorContext:off -- user hook errors are immediately normalized to LiveStore UnknownError
33
+ yield* Effect.trySyncOrPromiseOrEffect(() => hooks?.post?.(tmpDb)).pipe(UnknownError.mapToUnknownError);
55
34
  // TODO bring back
56
35
  // Import the temporary in-memory database into the persistent database
57
36
  // yield* Effect.sync(() => db.import(tmpDb)).pipe(
@@ -1 +1 @@
1
- {"version":3,"file":"recreate-db.js","sourceRoot":"","sources":["../../src/leader-thread/recreate-db.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recreate-db.js","sourceRoot":"","sources":["../../src/leader-thread/recreate-db.ts"],"names":[],"mappings":"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"}