@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,25 +1,25 @@
1
1
  import { type Cause, type Effect, type HttpClient, type KeyValueStore, Option, Schema, type Scope, type Stream, type SubscriptionRef } from '@livestore/utils/effect';
2
- import type { UnexpectedError } from '../adapter-types.ts';
3
- import type * as LiveStoreEvent from '../schema/LiveStoreEvent.ts';
2
+ import type { UnknownError } from '../adapter-types.ts';
3
+ import type * as LiveStoreEvent from '../schema/LiveStoreEvent/mod.ts';
4
4
  import type { EventSequenceNumber } from '../schema/mod.ts';
5
- import type { InvalidPullError, InvalidPushError, IsOfflineError } from './errors.ts';
5
+ import type { BackendIdMismatchError, IsOfflineError, ServerAheadError } from './errors.ts';
6
6
  export * from './sync-backend-kv.ts';
7
7
  /**
8
8
  * Those arguments can be used to implement multi-tenancy etc and are passed in from the store.
9
9
  */
10
- export type MakeBackendArgs = {
10
+ export type MakeBackendArgs<TPayload = Schema.Json> = {
11
11
  storeId: string;
12
12
  clientId: string;
13
- payload: Schema.JsonValue | undefined;
13
+ payload: TPayload | undefined;
14
14
  };
15
- export type SyncBackendConstructor<TSyncMetadata = Schema.JsonValue> = (args: MakeBackendArgs) => Effect.Effect<SyncBackend<TSyncMetadata>, UnexpectedError, Scope.Scope | HttpClient.HttpClient | KeyValueStore.KeyValueStore>;
16
- export type SyncBackend<TSyncMetadata = Schema.JsonValue> = {
15
+ export type SyncBackendConstructor<TSyncMetadata = Schema.Json, TPayload = Schema.Json> = (args: MakeBackendArgs<TPayload>) => Effect.Effect<SyncBackend<TSyncMetadata>, UnknownError, Scope.Scope | HttpClient.HttpClient | KeyValueStore.KeyValueStore>;
16
+ export type SyncBackend<TSyncMetadata = Schema.Json> = {
17
17
  /**
18
18
  * Can be implemented to prepare a connection to the sync backend to speed up the first pull/push.
19
19
  */
20
- connect: Effect.Effect<void, IsOfflineError | UnexpectedError, Scope.Scope>;
20
+ connect: Effect.Effect<void, IsOfflineError | UnknownError, Scope.Scope>;
21
21
  pull: (cursor: Option.Option<{
22
- eventSequenceNumber: EventSequenceNumber.GlobalEventSequenceNumber;
22
+ eventSequenceNumber: EventSequenceNumber.Global.Type;
23
23
  /** Metadata is needed by some sync backends */
24
24
  metadata: Option.Option<TSyncMetadata>;
25
25
  }>, options?: {
@@ -29,15 +29,15 @@ export type SyncBackend<TSyncMetadata = Schema.JsonValue> = {
29
29
  * @default false
30
30
  */
31
31
  live?: boolean;
32
- }) => Stream.Stream<PullResItem<TSyncMetadata>, IsOfflineError | InvalidPullError>;
32
+ }) => Stream.Stream<PullResItem<TSyncMetadata>, IsOfflineError | BackendIdMismatchError | UnknownError>;
33
33
  push: (
34
34
  /**
35
35
  * Constraints for batch:
36
36
  * - Number of events: 1-100
37
37
  * - sequence numbers must be in ascending order
38
38
  * */
39
- batch: ReadonlyArray<LiveStoreEvent.AnyEncodedGlobal>) => Effect.Effect<void, IsOfflineError | InvalidPushError>;
40
- ping: Effect.Effect<void, IsOfflineError | UnexpectedError | Cause.TimeoutException>;
39
+ batch: ReadonlyArray<LiveStoreEvent.Global.Encoded>) => Effect.Effect<void, IsOfflineError | BackendIdMismatchError | UnknownError | ServerAheadError>;
40
+ ping: Effect.Effect<void, IsOfflineError | UnknownError | Cause.TimeoutError>;
41
41
  isConnected: SubscriptionRef.SubscriptionRef<boolean>;
42
42
  /**
43
43
  * Metadata describing the sync backend. (Currently only used by devtools.)
@@ -45,7 +45,7 @@ export type SyncBackend<TSyncMetadata = Schema.JsonValue> = {
45
45
  metadata: {
46
46
  name: string;
47
47
  description: string;
48
- } & Record<string, Schema.JsonValue>;
48
+ } & Record<string, Schema.Json>;
49
49
  /** Information about the sync backend capabilities. */
50
50
  supports: {
51
51
  /**
@@ -59,27 +59,47 @@ export type SyncBackend<TSyncMetadata = Schema.JsonValue> = {
59
59
  pullLive: boolean;
60
60
  };
61
61
  };
62
- export declare const PullResPageInfo: Schema.Union<[Schema.TaggedStruct<"MoreUnknown", {}>, Schema.TaggedStruct<"MoreKnown", {
63
- remaining: typeof Schema.Number;
62
+ /**
63
+ * Connectivity metadata emitted by sync backends.
64
+ */
65
+ export declare const NetworkStatus: Schema.Struct<{
66
+ /** True when the upstream sync backend is reachable and responding to health checks. */
67
+ readonly isConnected: Schema.Boolean;
68
+ /** Unix epoch timestamp (ms) of the latest connectivity state transition. */
69
+ readonly timestampMs: Schema.Finite;
70
+ /** Devtools specific metadata describing simulator overrides. */
71
+ readonly devtools: Schema.Struct<{
72
+ /** Indicates whether the devtools latch forced the client into an offline state. */
73
+ readonly latchClosed: Schema.Boolean;
74
+ }>;
75
+ }>;
76
+ export type NetworkStatus = typeof NetworkStatus.Type;
77
+ /**
78
+ * Runtime type guard for SyncBackend objects.
79
+ * Performs lightweight structural checks on the object shape.
80
+ */
81
+ export declare const isSyncBackend: (value: unknown) => value is SyncBackend<any>;
82
+ export declare const PullResPageInfo: Schema.Union<readonly [Schema.TaggedStruct<"MoreUnknown", {}>, Schema.TaggedStruct<"MoreKnown", {
83
+ readonly remaining: Schema.Finite;
64
84
  }>, Schema.TaggedStruct<"NoMore", {}>]>;
65
85
  export type PullResPageInfo = typeof PullResPageInfo.Type;
66
86
  export declare const pageInfoNoMore: PullResPageInfo;
67
87
  export declare const pageInfoMoreUnknown: PullResPageInfo;
68
88
  export declare const pageInfoMoreKnown: (remaining: number) => PullResPageInfo;
69
- export declare const pullResItemEmpty: <TSyncMetadata = Schema.JsonValue>() => PullResItem<TSyncMetadata>;
70
- export interface PullResItem<TSyncMetadata = Schema.JsonValue> {
89
+ export declare const pullResItemEmpty: <TSyncMetadata = Schema.Json>() => PullResItem<TSyncMetadata>;
90
+ export interface PullResItem<TSyncMetadata = Schema.Json> {
71
91
  batch: ReadonlyArray<{
72
- eventEncoded: LiveStoreEvent.AnyEncodedGlobal;
92
+ eventEncoded: LiveStoreEvent.Global.Encoded;
73
93
  metadata: Option.Option<TSyncMetadata>;
74
94
  }>;
75
95
  pageInfo: PullResPageInfo;
76
96
  }
77
- export declare const of: <TSyncMetadata = Schema.JsonValue>(obj: SyncBackend<TSyncMetadata>) => SyncBackend<TSyncMetadata>;
97
+ export declare const of: <TSyncMetadata = Schema.Json>(obj: SyncBackend<TSyncMetadata>) => SyncBackend<TSyncMetadata>;
78
98
  /**
79
99
  * Useful to continue pulling from the last event in the batch.
80
100
  */
81
- export declare const cursorFromPullResItem: <TSyncMetadata = Schema.JsonValue>(item: PullResItem<TSyncMetadata>) => Option.Option<{
82
- eventSequenceNumber: EventSequenceNumber.GlobalEventSequenceNumber;
101
+ export declare const cursorFromPullResItem: <TSyncMetadata = Schema.Json>(item: PullResItem<TSyncMetadata>) => Option.Option<{
102
+ eventSequenceNumber: EventSequenceNumber.Global.Type;
83
103
  metadata: Option.Option<TSyncMetadata>;
84
104
  }>;
85
105
  //# sourceMappingURL=sync-backend.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sync-backend.d.ts","sourceRoot":"","sources":["../../src/sync/sync-backend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync-backend.d.ts","sourceRoot":"","sources":["../../src/sync/sync-backend.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,KAAK,EACV,KAAK,MAAM,EACX,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,MAAM,EACN,MAAM,EACN,KAAK,KAAK,EACV,KAAK,MAAM,EACX,KAAK,eAAe,EACrB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,KAAK,KAAK,cAAc,MAAM,iCAAiC,CAAA;AACtE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAC3D,OAAO,KAAK,EAAE,sBAAsB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAE3F,cAAc,sBAAsB,CAAA;AAEpC;;GAEG;AACH,MAAM,MAAM,eAAe,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,IAAI;IACpD,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,QAAQ,GAAG,SAAS,CAAA;CAC9B,CAAA;AAGD,MAAM,MAAM,sBAAsB,CAAC,aAAa,GAAG,MAAM,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAC,IAAI,IAAI,CACxF,IAAI,EAAE,eAAe,CAAC,QAAQ,CAAC,KAC5B,MAAM,CAAC,MAAM,CAChB,WAAW,CAAC,aAAa,CAAC,EAC1B,YAAY,EACZ,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,UAAU,GAAG,aAAa,CAAC,aAAa,CAClE,CAAA;AASD,MAAM,MAAM,WAAW,CAAC,aAAa,GAAG,MAAM,CAAC,IAAI,IAAI;IACrD;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,GAAG,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;IACxE,IAAI,EAAE,CACJ,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;QACpB,mBAAmB,EAAE,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAA;QACpD,+CAA+C;QAC/C,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;KACvC,CAAC,EACF,OAAO,CAAC,EAAE;QACR;;;;WAIG;QACH,IAAI,CAAC,EAAE,OAAO,CAAA;KACf,KACE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,cAAc,GAAG,sBAAsB,GAAG,YAAY,CAAC,CAAA;IAEtG,IAAI,EAAE;IACJ;;;;SAIK;IACL,KAAK,EAAE,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,KAChD,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,GAAG,sBAAsB,GAAG,YAAY,GAAG,gBAAgB,CAAC,CAAA;IACnG,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,GAAG,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,CAAA;IAE7E,WAAW,EAAE,eAAe,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;IACrD;;OAEG;IACH,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;IAC7E,uDAAuD;IACvD,QAAQ,EAAE;QACR;;WAEG;QACH,iBAAiB,EAAE,OAAO,CAAA;QAC1B;;;WAGG;QACH,QAAQ,EAAE,OAAO,CAAA;KAClB,CAAA;CACF,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,aAAa;IACxB,wFAAwF;;IAExF,6EAA6E;;IAE7E,iEAAiE;;QAE/D,oFAAoF;;;EAGjD,CAAA;AAEvC,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC,IAAI,CAAA;AAErD;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,WAAW,CAAC,GAAG,CAyBtE,CAAA;AAED,eAAO,MAAM,eAAe;;uCAM1B,CAAA;AAEF,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAC,IAAI,CAAA;AAEzD,eAAO,MAAM,cAAc,EAAE,eAA6C,CAAA;AAC1E,eAAO,MAAM,mBAAmB,EAAE,eAAkD,CAAA;AACpF,eAAO,MAAM,iBAAiB,GAAI,WAAW,MAAM,KAAG,eAAqD,CAAA;AAE3G,eAAO,MAAM,gBAAgB,GAAI,aAAa,GAAG,MAAM,CAAC,IAAI,OAAK,WAAW,CAAC,aAAa,CAGxF,CAAA;AAEF,MAAM,WAAW,WAAW,CAAC,aAAa,GAAG,MAAM,CAAC,IAAI;IACtD,KAAK,EAAE,aAAa,CAAC;QACnB,YAAY,EAAE,cAAc,CAAC,MAAM,CAAC,OAAO,CAAA;QAC3C,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;KACvC,CAAC,CAAA;IACF,QAAQ,EAAE,eAAe,CAAA;CAC1B;AAED,eAAO,MAAM,EAAE,GAAI,aAAa,GAAG,MAAM,CAAC,IAAI,EAAE,KAAK,WAAW,CAAC,aAAa,CAAC,+BAAQ,CAAA;AAEvF;;GAEG;AACH,eAAO,MAAM,qBAAqB,GAAI,aAAa,GAAG,MAAM,CAAC,IAAI,EAC/D,MAAM,WAAW,CAAC,aAAa,CAAC,KAC/B,MAAM,CAAC,MAAM,CAAC;IACf,mBAAmB,EAAE,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAA;IACpD,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;CACvC,CAMA,CAAA"}
@@ -1,8 +1,49 @@
1
1
  import { Option, Schema, } from '@livestore/utils/effect';
2
2
  export * from "./sync-backend-kv.js";
3
- export const PullResPageInfo = Schema.Union(Schema.TaggedStruct('MoreUnknown', {}), Schema.TaggedStruct('MoreKnown', {
4
- remaining: Schema.Number,
5
- }), Schema.TaggedStruct('NoMore', {}));
3
+ /**
4
+ * Connectivity metadata emitted by sync backends.
5
+ */
6
+ export const NetworkStatus = Schema.Struct({
7
+ /** True when the upstream sync backend is reachable and responding to health checks. */
8
+ isConnected: Schema.Boolean,
9
+ /** Unix epoch timestamp (ms) of the latest connectivity state transition. */
10
+ timestampMs: Schema.Finite,
11
+ /** Devtools specific metadata describing simulator overrides. */
12
+ devtools: Schema.Struct({
13
+ /** Indicates whether the devtools latch forced the client into an offline state. */
14
+ latchClosed: Schema.Boolean,
15
+ }),
16
+ }).annotate({ title: 'NetworkStatus' });
17
+ /**
18
+ * Runtime type guard for SyncBackend objects.
19
+ * Performs lightweight structural checks on the object shape.
20
+ */
21
+ export const isSyncBackend = (value) => {
22
+ if (typeof value !== 'object' || value === null)
23
+ return false;
24
+ const v = value;
25
+ const hasCoreFns = typeof v.connect === 'function' &&
26
+ typeof v.pull === 'function' &&
27
+ typeof v.push === 'function' &&
28
+ typeof v.ping === 'function';
29
+ const hasSupports = typeof v.supports === 'object' &&
30
+ v.supports !== null &&
31
+ typeof v.supports.pullPageInfoKnown === 'boolean' &&
32
+ typeof v.supports.pullLive === 'boolean';
33
+ const hasMetadata = typeof v.metadata === 'object' &&
34
+ v.metadata !== null &&
35
+ typeof v.metadata.name === 'string' &&
36
+ typeof v.metadata.description === 'string';
37
+ const hasIsConnected = typeof v.isConnected === 'object' && v.isConnected !== null;
38
+ return hasCoreFns && hasSupports && hasMetadata && hasIsConnected;
39
+ };
40
+ export const PullResPageInfo = Schema.Union([
41
+ Schema.TaggedStruct('MoreUnknown', {}),
42
+ Schema.TaggedStruct('MoreKnown', {
43
+ remaining: Schema.Finite,
44
+ }),
45
+ Schema.TaggedStruct('NoMore', {}),
46
+ ]);
6
47
  export const pageInfoNoMore = { _tag: 'NoMore' };
7
48
  export const pageInfoMoreUnknown = { _tag: 'MoreUnknown' };
8
49
  export const pageInfoMoreKnown = (remaining) => ({ _tag: 'MoreKnown', remaining });
@@ -16,7 +57,7 @@ export const of = (obj) => obj;
16
57
  */
17
58
  export const cursorFromPullResItem = (item) => {
18
59
  const lastEvent = item.batch.at(-1);
19
- if (!lastEvent) {
60
+ if (lastEvent == null) {
20
61
  return Option.none();
21
62
  }
22
63
  return Option.some({ eventSequenceNumber: lastEvent.eventEncoded.seqNum, metadata: lastEvent.metadata });
@@ -1 +1 @@
1
- {"version":3,"file":"sync-backend.js","sourceRoot":"","sources":["../../src/sync/sync-backend.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,MAAM,EACN,MAAM,GAIP,MAAM,yBAAyB,CAAA;AAMhC,cAAc,sBAAsB,CAAA;AA6EpC,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CACzC,MAAM,CAAC,YAAY,CAAC,aAAa,EAAE,EAAE,CAAC,EACtC,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE;IAC/B,SAAS,EAAE,MAAM,CAAC,MAAM;CACzB,CAAC,EACF,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,CAClC,CAAA;AAID,MAAM,CAAC,MAAM,cAAc,GAAoB,EAAE,IAAI,EAAE,QAAQ,EAAW,CAAA;AAC1E,MAAM,CAAC,MAAM,mBAAmB,GAAoB,EAAE,IAAI,EAAE,aAAa,EAAW,CAAA;AACpF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,SAAiB,EAAmB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAA;AAE3G,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAiE,EAAE,CAAC,CAAC;IACnG,KAAK,EAAE,EAAE;IACT,QAAQ,EAAE,cAAc;CACzB,CAAC,CAAA;AAUF,MAAM,CAAC,MAAM,EAAE,GAAG,CAAmC,GAA+B,EAAE,EAAE,CAAC,GAAG,CAAA;AAE5F;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,IAAgC,EAI/B,EAAE;IACH,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IACnC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,MAAM,CAAC,IAAI,EAAE,CAAA;IACtB,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,mBAAmB,EAAE,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAA;AAC1G,CAAC,CAAA"}
1
+ {"version":3,"file":"sync-backend.js","sourceRoot":"","sources":["../../src/sync/sync-backend.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,10 @@
1
1
  export * from './errors.ts';
2
2
  export * as SyncBackend from './sync-backend.ts';
3
+ import type { Schema } from '@livestore/utils/effect';
3
4
  import type { InitialSyncOptions } from '../leader-thread/types.ts';
4
5
  import type { SyncBackendConstructor } from './sync-backend.ts';
5
- export type SyncOptions = {
6
- backend?: SyncBackendConstructor<any>;
6
+ export type SyncOptions<TPayload = Schema.Json> = {
7
+ backend?: SyncBackendConstructor<any, TPayload>;
7
8
  /** @default { _tag: 'Skip' } */
8
9
  initialSyncOptions?: InitialSyncOptions;
9
10
  /**
@@ -16,6 +17,26 @@ export type SyncOptions = {
16
17
  * @default 'ignore'
17
18
  * */
18
19
  onSyncError?: 'shutdown' | 'ignore';
20
+ /**
21
+ * What to do when the sync backend identity has changed (i.e. the backend was reset).
22
+ *
23
+ * This commonly happens during development when:
24
+ * - The sync backend state is deleted (e.g. `.wrangler/state` for Cloudflare)
25
+ * - Running with a `--reset` flag
26
+ * - Schema changes require re-backfilling data
27
+ *
28
+ * Options:
29
+ * - `'reset'`: Clear local storage (eventlog and state databases) and shutdown.
30
+ * The app will need to restart and will sync fresh data from the backend.
31
+ * This is the recommended option for development.
32
+ * - `'shutdown'`: Shutdown without clearing local storage.
33
+ * On restart, the client will still have stale data and hit the same error.
34
+ * - `'ignore'`: Log the error and continue running.
35
+ * The client will show stale data but keep running (effectively offline mode).
36
+ *
37
+ * @default 'reset'
38
+ */
39
+ onBackendIdMismatch?: 'reset' | 'shutdown' | 'ignore';
19
40
  /**
20
41
  * Whether the sync backend should reactively pull new events from the sync backend
21
42
  * @default true
@@ -1 +1 @@
1
- {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/sync/sync.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAA;AAEhD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAE/D,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,CAAC,EAAE,sBAAsB,CAAC,GAAG,CAAC,CAAA;IACrC,gCAAgC;IAChC,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;IACvC;;;;;;;;SAQK;IACL,WAAW,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAA;IACnC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA"}
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/sync/sync.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAA;AAEhD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAErD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAE/D,MAAM,MAAM,WAAW,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,IAAI;IAChD,OAAO,CAAC,EAAE,sBAAsB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;IAC/C,gCAAgC;IAChC,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;IACvC;;;;;;;;SAQK;IACL,WAAW,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAA;IACnC;;;;;;;;;;;;;;;;;;OAkBG;IACH,mBAAmB,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAA;IACrD;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA"}
@@ -1,48 +1,25 @@
1
- import { Schema } from '@livestore/utils/effect';
2
- import * as LiveStoreEvent from '../schema/LiveStoreEvent.ts';
3
- declare const SyncState_base: Schema.Class<SyncState, {
4
- pending: Schema.Array$<typeof LiveStoreEvent.EncodedWithMeta>;
1
+ import { Effect, Schema } from '@livestore/utils/effect';
2
+ import * as EventSequenceNumber from '../schema/EventSequenceNumber/mod.ts';
3
+ import * as LiveStoreEvent from '../schema/LiveStoreEvent/mod.ts';
4
+ declare const SyncState_base: Schema.Class<SyncState, Schema.Struct<{
5
+ readonly pending: Schema.$Array<typeof LiveStoreEvent.Client.EncodedWithMeta>;
5
6
  /** What this node expects the next upstream node to have as its own local head */
6
- upstreamHead: Schema.Struct<{
7
- global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
8
- client: Schema.BrandSchema<number & import("effect/Brand").Brand<"ClientEventSequenceNumber">, number, never>;
9
- rebaseGeneration: typeof Schema.Int;
10
- }>;
11
- /** Equivalent to `pending.at(-1)?.id` if there are pending events */
12
- localHead: Schema.Struct<{
13
- global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
14
- client: Schema.BrandSchema<number & import("effect/Brand").Brand<"ClientEventSequenceNumber">, number, never>;
15
- rebaseGeneration: typeof Schema.Int;
16
- }>;
17
- }, Schema.Struct.Encoded<{
18
- pending: Schema.Array$<typeof LiveStoreEvent.EncodedWithMeta>;
19
- /** What this node expects the next upstream node to have as its own local head */
20
- upstreamHead: Schema.Struct<{
21
- global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
22
- client: Schema.BrandSchema<number & import("effect/Brand").Brand<"ClientEventSequenceNumber">, number, never>;
23
- rebaseGeneration: typeof Schema.Int;
24
- }>;
25
- /** Equivalent to `pending.at(-1)?.id` if there are pending events */
26
- localHead: Schema.Struct<{
27
- global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
28
- client: Schema.BrandSchema<number & import("effect/Brand").Brand<"ClientEventSequenceNumber">, number, never>;
29
- rebaseGeneration: typeof Schema.Int;
30
- }>;
31
- }>, never, {
32
- readonly upstreamHead: {
33
- readonly global: number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">;
34
- readonly client: number & import("effect/Brand").Brand<"ClientEventSequenceNumber">;
35
- readonly rebaseGeneration: number;
7
+ readonly upstreamHead: Schema.Struct<{
8
+ readonly global: Schema.brand<Schema.Int, "GlobalEventSequenceNumber">;
9
+ readonly client: Schema.brand<Schema.Int, "ClientEventSequenceNumber">;
10
+ readonly rebaseGeneration: Schema.Int;
11
+ }> & {
12
+ make: (seqNum: EventSequenceNumber.Client.CompositeInput) => EventSequenceNumber.Client.Composite;
36
13
  };
37
- } & {
38
- readonly localHead: {
39
- readonly global: number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">;
40
- readonly client: number & import("effect/Brand").Brand<"ClientEventSequenceNumber">;
41
- readonly rebaseGeneration: number;
14
+ /** Equivalent to `pending.at(-1)?.id` if there are pending events */
15
+ readonly localHead: Schema.Struct<{
16
+ readonly global: Schema.brand<Schema.Int, "GlobalEventSequenceNumber">;
17
+ readonly client: Schema.brand<Schema.Int, "ClientEventSequenceNumber">;
18
+ readonly rebaseGeneration: Schema.Int;
19
+ }> & {
20
+ make: (seqNum: EventSequenceNumber.Client.CompositeInput) => EventSequenceNumber.Client.Composite;
42
21
  };
43
- } & {
44
- readonly pending: readonly LiveStoreEvent.EncodedWithMeta[];
45
- }, {}, {}>;
22
+ }>, {}>;
46
23
  /**
47
24
  * SyncState represents the current sync state of a sync node relative to an upstream node.
48
25
  * Events flow from local to upstream, with each state maintaining its own event head.
@@ -54,7 +31,7 @@ declare const SyncState_base: Schema.Class<SyncState, {
54
31
  * +------------------------+
55
32
  * ▼ ▼
56
33
  * Upstream Head Local Head
57
- * (1,0) (1,1), (1,2), (2,0)
34
+ * e1 e1.1, e1.2, e2
58
35
  * ```
59
36
  *
60
37
  * **Pending Events**: Events awaiting acknowledgment from the upstream.
@@ -70,7 +47,7 @@ declare const SyncState_base: Schema.Class<SyncState, {
70
47
  * Invariants:
71
48
  * 1. **Chain Continuity**: Each event must reference its immediate parent.
72
49
  * 2. **Head Ordering**: Upstream Head ≤ Local Head.
73
- * 3. **Event number sequence**: Must follow the pattern (1,0)(1,1)(1,2)(2,0).
50
+ * 3. **Event number sequence**: Must follow the pattern e1e1.1→e1.2→e2.
74
51
  *
75
52
  * A few further notes to help form an intuition:
76
53
  * - The goal is to keep the pending events as small as possible (i.e. to have synced with the next upstream node)
@@ -83,181 +60,128 @@ declare const SyncState_base: Schema.Class<SyncState, {
83
60
  export declare class SyncState extends SyncState_base {
84
61
  toJSON: () => any;
85
62
  }
86
- declare const PayloadUpstreamRebase_base: Schema.TaggedStruct<"upstream-rebase", {
87
- /** Events which need to be rolled back */
88
- rollbackEvents: Schema.Array$<typeof LiveStoreEvent.EncodedWithMeta>;
89
- /** Events which need to be applied after the rollback (already rebased by the upstream node) */
90
- newEvents: Schema.Array$<typeof LiveStoreEvent.EncodedWithMeta>;
91
- }>;
92
63
  /**
93
64
  * This payload propagates a rebase from the upstream node
94
65
  */
95
- export declare class PayloadUpstreamRebase extends PayloadUpstreamRebase_base {
96
- }
97
- declare const PayloadUpstreamAdvance_base: Schema.TaggedStruct<"upstream-advance", {
98
- newEvents: Schema.Array$<typeof LiveStoreEvent.EncodedWithMeta>;
66
+ export declare const PayloadUpstreamRebase: Schema.TaggedStruct<"upstream-rebase", {
67
+ /** Events which need to be rolled back */
68
+ readonly rollbackEvents: Schema.$Array<typeof LiveStoreEvent.Client.EncodedWithMeta>;
69
+ /** Events which need to be applied after the rollback (already rebased by the upstream node) */
70
+ readonly newEvents: Schema.$Array<typeof LiveStoreEvent.Client.EncodedWithMeta>;
99
71
  }>;
100
- export declare class PayloadUpstreamAdvance extends PayloadUpstreamAdvance_base {
101
- }
102
- declare const PayloadLocalPush_base: Schema.TaggedStruct<"local-push", {
103
- newEvents: Schema.Array$<typeof LiveStoreEvent.EncodedWithMeta>;
72
+ export declare const PayloadUpstreamAdvance: Schema.TaggedStruct<"upstream-advance", {
73
+ readonly newEvents: Schema.$Array<typeof LiveStoreEvent.Client.EncodedWithMeta>;
104
74
  }>;
105
- export declare class PayloadLocalPush extends PayloadLocalPush_base {
106
- }
107
- declare const Payload_base: Schema.Union<[typeof PayloadUpstreamRebase, typeof PayloadUpstreamAdvance, typeof PayloadLocalPush]>;
108
- export declare class Payload extends Payload_base {
109
- }
110
- declare const PayloadUpstream_base: Schema.Union<[typeof PayloadUpstreamRebase, typeof PayloadUpstreamAdvance]>;
111
- export declare class PayloadUpstream extends PayloadUpstream_base {
112
- }
113
- declare const MergeContext_base: Schema.Class<MergeContext, {
114
- payload: typeof Payload;
115
- syncState: typeof SyncState;
116
- }, Schema.Struct.Encoded<{
117
- payload: typeof Payload;
118
- syncState: typeof SyncState;
119
- }>, never, {
120
- readonly payload: {
121
- readonly _tag: "upstream-rebase";
122
- readonly rollbackEvents: readonly LiveStoreEvent.EncodedWithMeta[];
123
- readonly newEvents: readonly LiveStoreEvent.EncodedWithMeta[];
124
- } | {
125
- readonly _tag: "upstream-advance";
126
- readonly newEvents: readonly LiveStoreEvent.EncodedWithMeta[];
127
- } | {
128
- readonly _tag: "local-push";
129
- readonly newEvents: readonly LiveStoreEvent.EncodedWithMeta[];
130
- };
131
- } & {
132
- readonly syncState: SyncState;
133
- }, {}, {}>;
75
+ export declare const PayloadLocalPush: Schema.TaggedStruct<"local-push", {
76
+ readonly newEvents: Schema.$Array<typeof LiveStoreEvent.Client.EncodedWithMeta>;
77
+ }>;
78
+ export declare const Payload: Schema.Union<readonly [Schema.TaggedStruct<"upstream-rebase", {
79
+ /** Events which need to be rolled back */
80
+ readonly rollbackEvents: Schema.$Array<typeof LiveStoreEvent.Client.EncodedWithMeta>;
81
+ /** Events which need to be applied after the rollback (already rebased by the upstream node) */
82
+ readonly newEvents: Schema.$Array<typeof LiveStoreEvent.Client.EncodedWithMeta>;
83
+ }>, Schema.TaggedStruct<"upstream-advance", {
84
+ readonly newEvents: Schema.$Array<typeof LiveStoreEvent.Client.EncodedWithMeta>;
85
+ }>, Schema.TaggedStruct<"local-push", {
86
+ readonly newEvents: Schema.$Array<typeof LiveStoreEvent.Client.EncodedWithMeta>;
87
+ }>]>;
88
+ export declare const PayloadUpstream: Schema.Union<readonly [Schema.TaggedStruct<"upstream-rebase", {
89
+ /** Events which need to be rolled back */
90
+ readonly rollbackEvents: Schema.$Array<typeof LiveStoreEvent.Client.EncodedWithMeta>;
91
+ /** Events which need to be applied after the rollback (already rebased by the upstream node) */
92
+ readonly newEvents: Schema.$Array<typeof LiveStoreEvent.Client.EncodedWithMeta>;
93
+ }>, Schema.TaggedStruct<"upstream-advance", {
94
+ readonly newEvents: Schema.$Array<typeof LiveStoreEvent.Client.EncodedWithMeta>;
95
+ }>]>;
96
+ declare const MergeContext_base: Schema.Class<MergeContext, Schema.Struct<{
97
+ readonly payload: Schema.Union<readonly [Schema.TaggedStruct<"upstream-rebase", {
98
+ /** Events which need to be rolled back */
99
+ readonly rollbackEvents: Schema.$Array<typeof LiveStoreEvent.Client.EncodedWithMeta>;
100
+ /** Events which need to be applied after the rollback (already rebased by the upstream node) */
101
+ readonly newEvents: Schema.$Array<typeof LiveStoreEvent.Client.EncodedWithMeta>;
102
+ }>, Schema.TaggedStruct<"upstream-advance", {
103
+ readonly newEvents: Schema.$Array<typeof LiveStoreEvent.Client.EncodedWithMeta>;
104
+ }>, Schema.TaggedStruct<"local-push", {
105
+ readonly newEvents: Schema.$Array<typeof LiveStoreEvent.Client.EncodedWithMeta>;
106
+ }>]>;
107
+ readonly syncState: typeof SyncState;
108
+ }>, {}>;
134
109
  /** Only used for debugging purposes */
135
110
  export declare class MergeContext extends MergeContext_base {
136
111
  toJSON: () => any;
137
112
  }
138
- declare const MergeResultAdvance_base: Schema.Class<MergeResultAdvance, {
139
- _tag: Schema.Literal<["advance"]>;
140
- newSyncState: typeof SyncState;
141
- newEvents: Schema.Array$<typeof LiveStoreEvent.EncodedWithMeta>;
142
- /** Events which were previously pending but are now confirmed */
143
- confirmedEvents: Schema.Array$<typeof LiveStoreEvent.EncodedWithMeta>;
144
- mergeContext: typeof MergeContext;
145
- }, Schema.Struct.Encoded<{
146
- _tag: Schema.Literal<["advance"]>;
147
- newSyncState: typeof SyncState;
148
- newEvents: Schema.Array$<typeof LiveStoreEvent.EncodedWithMeta>;
113
+ declare const MergeResultAdvance_base: Schema.Class<MergeResultAdvance, Schema.Struct<{
114
+ readonly _tag: Schema.Literal<"advance">;
115
+ readonly newSyncState: typeof SyncState;
116
+ readonly newEvents: Schema.$Array<typeof LiveStoreEvent.Client.EncodedWithMeta>;
149
117
  /** Events which were previously pending but are now confirmed */
150
- confirmedEvents: Schema.Array$<typeof LiveStoreEvent.EncodedWithMeta>;
151
- mergeContext: typeof MergeContext;
152
- }>, never, {
153
- readonly _tag: "advance";
154
- } & {
155
- readonly newEvents: readonly LiveStoreEvent.EncodedWithMeta[];
156
- } & {
157
- readonly newSyncState: SyncState;
158
- } & {
159
- readonly mergeContext: MergeContext;
160
- } & {
161
- readonly confirmedEvents: readonly LiveStoreEvent.EncodedWithMeta[];
162
- }, {}, {}>;
118
+ readonly confirmedEvents: Schema.$Array<typeof LiveStoreEvent.Client.EncodedWithMeta>;
119
+ readonly mergeContext: typeof MergeContext;
120
+ }>, {}>;
163
121
  export declare class MergeResultAdvance extends MergeResultAdvance_base {
164
122
  toJSON: () => any;
165
123
  }
166
- declare const MergeResultRebase_base: Schema.Class<MergeResultRebase, {
167
- _tag: Schema.Literal<["rebase"]>;
168
- newSyncState: typeof SyncState;
169
- newEvents: Schema.Array$<typeof LiveStoreEvent.EncodedWithMeta>;
170
- /** Events which need to be rolled back */
171
- rollbackEvents: Schema.Array$<typeof LiveStoreEvent.EncodedWithMeta>;
172
- mergeContext: typeof MergeContext;
173
- }, Schema.Struct.Encoded<{
174
- _tag: Schema.Literal<["rebase"]>;
175
- newSyncState: typeof SyncState;
176
- newEvents: Schema.Array$<typeof LiveStoreEvent.EncodedWithMeta>;
124
+ declare const MergeResultRebase_base: Schema.Class<MergeResultRebase, Schema.Struct<{
125
+ readonly _tag: Schema.Literal<"rebase">;
126
+ readonly newSyncState: typeof SyncState;
127
+ readonly newEvents: Schema.$Array<typeof LiveStoreEvent.Client.EncodedWithMeta>;
177
128
  /** Events which need to be rolled back */
178
- rollbackEvents: Schema.Array$<typeof LiveStoreEvent.EncodedWithMeta>;
179
- mergeContext: typeof MergeContext;
180
- }>, never, {
181
- readonly _tag: "rebase";
182
- } & {
183
- readonly rollbackEvents: readonly LiveStoreEvent.EncodedWithMeta[];
184
- } & {
185
- readonly newEvents: readonly LiveStoreEvent.EncodedWithMeta[];
186
- } & {
187
- readonly newSyncState: SyncState;
188
- } & {
189
- readonly mergeContext: MergeContext;
190
- }, {}, {}>;
129
+ readonly rollbackEvents: Schema.$Array<typeof LiveStoreEvent.Client.EncodedWithMeta>;
130
+ readonly mergeContext: typeof MergeContext;
131
+ }>, {}>;
191
132
  export declare class MergeResultRebase extends MergeResultRebase_base {
192
133
  toJSON: () => any;
193
134
  }
194
- declare const MergeResultReject_base: Schema.Class<MergeResultReject, {
195
- _tag: Schema.Literal<["reject"]>;
135
+ declare const MergeResultReject_base: Schema.Class<MergeResultReject, Schema.Struct<{
136
+ readonly _tag: Schema.Literal<"reject">;
196
137
  /** The minimum id that the new events must have */
197
- expectedMinimumId: Schema.Struct<{
198
- global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
199
- client: Schema.BrandSchema<number & import("effect/Brand").Brand<"ClientEventSequenceNumber">, number, never>;
200
- rebaseGeneration: typeof Schema.Int;
201
- }>;
202
- mergeContext: typeof MergeContext;
203
- }, Schema.Struct.Encoded<{
204
- _tag: Schema.Literal<["reject"]>;
205
- /** The minimum id that the new events must have */
206
- expectedMinimumId: Schema.Struct<{
207
- global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
208
- client: Schema.BrandSchema<number & import("effect/Brand").Brand<"ClientEventSequenceNumber">, number, never>;
209
- rebaseGeneration: typeof Schema.Int;
210
- }>;
211
- mergeContext: typeof MergeContext;
212
- }>, never, {
213
- readonly _tag: "reject";
214
- } & {
215
- readonly mergeContext: MergeContext;
216
- } & {
217
- readonly expectedMinimumId: {
218
- readonly global: number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">;
219
- readonly client: number & import("effect/Brand").Brand<"ClientEventSequenceNumber">;
220
- readonly rebaseGeneration: number;
138
+ readonly expectedMinimumId: Schema.Struct<{
139
+ readonly global: Schema.brand<Schema.Int, "GlobalEventSequenceNumber">;
140
+ readonly client: Schema.brand<Schema.Int, "ClientEventSequenceNumber">;
141
+ readonly rebaseGeneration: Schema.Int;
142
+ }> & {
143
+ make: (seqNum: EventSequenceNumber.Client.CompositeInput) => EventSequenceNumber.Client.Composite;
221
144
  };
222
- }, {}, {}>;
145
+ readonly mergeContext: typeof MergeContext;
146
+ }>, {}>;
223
147
  export declare class MergeResultReject extends MergeResultReject_base {
224
148
  toJSON: () => any;
225
149
  }
226
- declare const MergeResultUnexpectedError_base: Schema.Class<MergeResultUnexpectedError, {
227
- _tag: Schema.Literal<["unexpected-error"]>;
228
- message: typeof Schema.String;
229
- }, Schema.Struct.Encoded<{
230
- _tag: Schema.Literal<["unexpected-error"]>;
231
- message: typeof Schema.String;
232
- }>, never, {
233
- readonly _tag: "unexpected-error";
234
- } & {
235
- readonly message: string;
236
- }, {}, {}>;
237
- export declare class MergeResultUnexpectedError extends MergeResultUnexpectedError_base {
238
- }
239
- declare const MergeResult_base: Schema.Union<[typeof MergeResultAdvance, typeof MergeResultRebase, typeof MergeResultReject, typeof MergeResultUnexpectedError]>;
240
- export declare class MergeResult extends MergeResult_base {
241
- }
242
- export declare const payloadFromMergeResult: (mergeResult: typeof MergeResultAdvance.Type | typeof MergeResultRebase.Type) => typeof PayloadUpstream.Type;
243
- export declare const merge: ({ syncState, payload, isClientEvent, isEqualEvent, ignoreClientEvents, }: {
150
+ export declare const MergeResult: Schema.Union<readonly [typeof MergeResultAdvance, typeof MergeResultRebase, typeof MergeResultReject]>;
151
+ export declare const payloadFromMergeResult: (mergeResult: MergeResultAdvance | MergeResultRebase) => typeof PayloadUpstream.Type;
152
+ export declare const merge: (args_0: {
244
153
  syncState: SyncState;
245
154
  payload: typeof Payload.Type;
246
- isClientEvent: (event: LiveStoreEvent.EncodedWithMeta) => boolean;
247
- isEqualEvent: (a: LiveStoreEvent.EncodedWithMeta, b: LiveStoreEvent.EncodedWithMeta) => boolean;
248
- /** This is used in the leader which should ignore client events when receiving an upstream-advance payload */
249
- ignoreClientEvents?: boolean;
250
- }) => typeof MergeResult.Type;
155
+ /**
156
+ * `LiveStoreEvent.Client.EncodedWithMeta` does not carry the event definition's
157
+ * `clientOnly` flag. The caller supplies this schema-aware predicate so `merge`
158
+ * can preserve the correct sequence-number shape when rebasing: client-only
159
+ * events advance the client component, synced events advance the global component.
160
+ */
161
+ isClientOnlyEvent: (event: LiveStoreEvent.Client.EncodedWithMeta) => boolean;
162
+ /**
163
+ * Pending events are confirmed by comparing their logical encoded identity with
164
+ * upstream events. This is caller-supplied because comparing encoded args may
165
+ * require event-schema knowledge that the generic merge algorithm does not own.
166
+ * Implementations should ignore transport/runtime metadata.
167
+ */
168
+ isEqualEvent: (a: LiveStoreEvent.Client.EncodedWithMeta, b: LiveStoreEvent.Client.EncodedWithMeta) => boolean;
169
+ /**
170
+ * This is used in the leader which should ignore client events when
171
+ * receiving an upstream-advance payload
172
+ */
173
+ ignoreClientOnlyEvents?: boolean;
174
+ }) => Effect.Effect<MergeResultAdvance | MergeResultRebase | MergeResultReject, never, never>;
251
175
  /**
252
176
  * Gets the index relative to `existingEvents` where the divergence point is
253
177
  * by comparing each event in `existingEvents` to the corresponding event in `incomingEvents`
254
178
  */
255
- export declare const findDivergencePoint: ({ existingEvents, incomingEvents, isEqualEvent, isClientEvent, ignoreClientEvents, }: {
256
- existingEvents: ReadonlyArray<LiveStoreEvent.EncodedWithMeta>;
257
- incomingEvents: ReadonlyArray<LiveStoreEvent.EncodedWithMeta>;
258
- isEqualEvent: (a: LiveStoreEvent.EncodedWithMeta, b: LiveStoreEvent.EncodedWithMeta) => boolean;
259
- isClientEvent: (event: LiveStoreEvent.EncodedWithMeta) => boolean;
260
- ignoreClientEvents: boolean;
179
+ export declare const findDivergencePoint: ({ existingEvents, incomingEvents, isEqualEvent, isClientOnlyEvent, ignoreClientOnlyEvents, }: {
180
+ existingEvents: ReadonlyArray<LiveStoreEvent.Client.EncodedWithMeta>;
181
+ incomingEvents: ReadonlyArray<LiveStoreEvent.Client.EncodedWithMeta>;
182
+ isEqualEvent: (a: LiveStoreEvent.Client.EncodedWithMeta, b: LiveStoreEvent.Client.EncodedWithMeta) => boolean;
183
+ isClientOnlyEvent: (event: LiveStoreEvent.Client.EncodedWithMeta) => boolean;
184
+ ignoreClientOnlyEvents: boolean;
261
185
  }) => number;
262
186
  export {};
263
187
  //# sourceMappingURL=syncstate.d.ts.map