@livestore/common 0.4.0-dev.8 → 0.4.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 (518) 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/WorkerTransportError.d.ts +11 -0
  6. package/dist/WorkerTransportError.d.ts.map +1 -0
  7. package/dist/WorkerTransportError.js +11 -0
  8. package/dist/WorkerTransportError.js.map +1 -0
  9. package/dist/adapter-types.d.ts +37 -7
  10. package/dist/adapter-types.d.ts.map +1 -1
  11. package/dist/adapter-types.js +27 -1
  12. package/dist/adapter-types.js.map +1 -1
  13. package/dist/bounded-collections.d.ts.map +1 -1
  14. package/dist/bounded-collections.js +6 -4
  15. package/dist/bounded-collections.js.map +1 -1
  16. package/dist/debug-info.d.ts.map +1 -1
  17. package/dist/debug-info.js +33 -6
  18. package/dist/debug-info.js.map +1 -1
  19. package/dist/devtools/devtools-compatibility.test.d.ts +2 -0
  20. package/dist/devtools/devtools-compatibility.test.d.ts.map +1 -0
  21. package/dist/devtools/devtools-compatibility.test.js +15 -0
  22. package/dist/devtools/devtools-compatibility.test.js.map +1 -0
  23. package/dist/devtools/devtools-messages-client-session.d.ts +55 -24
  24. package/dist/devtools/devtools-messages-client-session.d.ts.map +1 -1
  25. package/dist/devtools/devtools-messages-client-session.js +22 -5
  26. package/dist/devtools/devtools-messages-client-session.js.map +1 -1
  27. package/dist/devtools/devtools-messages-common.d.ts +11 -14
  28. package/dist/devtools/devtools-messages-common.d.ts.map +1 -1
  29. package/dist/devtools/devtools-messages-common.js +7 -9
  30. package/dist/devtools/devtools-messages-common.js.map +1 -1
  31. package/dist/devtools/devtools-messages-leader.d.ts +65 -30
  32. package/dist/devtools/devtools-messages-leader.d.ts.map +1 -1
  33. package/dist/devtools/devtools-messages-leader.js +29 -11
  34. package/dist/devtools/devtools-messages-leader.js.map +1 -1
  35. package/dist/devtools/devtools-sessioninfo.d.ts +14 -2
  36. package/dist/devtools/devtools-sessioninfo.d.ts.map +1 -1
  37. package/dist/devtools/devtools-sessioninfo.js +7 -4
  38. package/dist/devtools/devtools-sessioninfo.js.map +1 -1
  39. package/dist/devtools/mod.d.ts +13 -2
  40. package/dist/devtools/mod.d.ts.map +1 -1
  41. package/dist/devtools/mod.js +10 -3
  42. package/dist/devtools/mod.js.map +1 -1
  43. package/dist/errors.d.ts +48 -18
  44. package/dist/errors.d.ts.map +1 -1
  45. package/dist/errors.js +20 -12
  46. package/dist/errors.js.map +1 -1
  47. package/dist/index.d.ts +4 -1
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +4 -1
  50. package/dist/index.js.map +1 -1
  51. package/dist/leader-thread/LeaderSyncProcessor.d.ts +53 -6
  52. package/dist/leader-thread/LeaderSyncProcessor.d.ts.map +1 -1
  53. package/dist/leader-thread/LeaderSyncProcessor.js +325 -257
  54. package/dist/leader-thread/LeaderSyncProcessor.js.map +1 -1
  55. package/dist/leader-thread/RejectedPushError.d.ts +107 -0
  56. package/dist/leader-thread/RejectedPushError.d.ts.map +1 -0
  57. package/dist/leader-thread/RejectedPushError.js +78 -0
  58. package/dist/leader-thread/RejectedPushError.js.map +1 -0
  59. package/dist/leader-thread/connection.js +1 -1
  60. package/dist/leader-thread/connection.js.map +1 -1
  61. package/dist/leader-thread/eventlog.d.ts +19 -14
  62. package/dist/leader-thread/eventlog.d.ts.map +1 -1
  63. package/dist/leader-thread/eventlog.js +78 -18
  64. package/dist/leader-thread/eventlog.js.map +1 -1
  65. package/dist/leader-thread/leader-worker-devtools.d.ts +1 -2
  66. package/dist/leader-thread/leader-worker-devtools.d.ts.map +1 -1
  67. package/dist/leader-thread/leader-worker-devtools.js +90 -58
  68. package/dist/leader-thread/leader-worker-devtools.js.map +1 -1
  69. package/dist/leader-thread/make-leader-thread-layer.d.ts +15 -7
  70. package/dist/leader-thread/make-leader-thread-layer.d.ts.map +1 -1
  71. package/dist/leader-thread/make-leader-thread-layer.js +49 -17
  72. package/dist/leader-thread/make-leader-thread-layer.js.map +1 -1
  73. package/dist/leader-thread/make-leader-thread-layer.test.d.ts +2 -0
  74. package/dist/leader-thread/make-leader-thread-layer.test.d.ts.map +1 -0
  75. package/dist/leader-thread/make-leader-thread-layer.test.js +32 -0
  76. package/dist/leader-thread/make-leader-thread-layer.test.js.map +1 -0
  77. package/dist/leader-thread/materialize-event.d.ts +1 -1
  78. package/dist/leader-thread/materialize-event.d.ts.map +1 -1
  79. package/dist/leader-thread/materialize-event.js +28 -9
  80. package/dist/leader-thread/materialize-event.js.map +1 -1
  81. package/dist/leader-thread/mod.d.ts +1 -0
  82. package/dist/leader-thread/mod.d.ts.map +1 -1
  83. package/dist/leader-thread/mod.js +1 -0
  84. package/dist/leader-thread/mod.js.map +1 -1
  85. package/dist/leader-thread/recreate-db.d.ts +2 -2
  86. package/dist/leader-thread/recreate-db.d.ts.map +1 -1
  87. package/dist/leader-thread/recreate-db.js +6 -6
  88. package/dist/leader-thread/recreate-db.js.map +1 -1
  89. package/dist/leader-thread/shutdown-channel.d.ts +2 -2
  90. package/dist/leader-thread/shutdown-channel.d.ts.map +1 -1
  91. package/dist/leader-thread/shutdown-channel.js +2 -2
  92. package/dist/leader-thread/shutdown-channel.js.map +1 -1
  93. package/dist/leader-thread/stream-events.d.ts +56 -0
  94. package/dist/leader-thread/stream-events.d.ts.map +1 -0
  95. package/dist/leader-thread/stream-events.js +167 -0
  96. package/dist/leader-thread/stream-events.js.map +1 -0
  97. package/dist/leader-thread/types.d.ts +95 -17
  98. package/dist/leader-thread/types.d.ts.map +1 -1
  99. package/dist/leader-thread/types.js +13 -0
  100. package/dist/leader-thread/types.js.map +1 -1
  101. package/dist/logging.d.ts +40 -0
  102. package/dist/logging.d.ts.map +1 -0
  103. package/dist/logging.js +33 -0
  104. package/dist/logging.js.map +1 -0
  105. package/dist/make-client-session.d.ts +5 -3
  106. package/dist/make-client-session.d.ts.map +1 -1
  107. package/dist/make-client-session.js +7 -4
  108. package/dist/make-client-session.js.map +1 -1
  109. package/dist/materializer-helper.d.ts +6 -6
  110. package/dist/materializer-helper.d.ts.map +1 -1
  111. package/dist/materializer-helper.js +18 -8
  112. package/dist/materializer-helper.js.map +1 -1
  113. package/dist/otel.d.ts +2 -1
  114. package/dist/otel.d.ts.map +1 -1
  115. package/dist/otel.js +7 -2
  116. package/dist/otel.js.map +1 -1
  117. package/dist/rematerialize-from-eventlog.d.ts +3 -3
  118. package/dist/rematerialize-from-eventlog.d.ts.map +1 -1
  119. package/dist/rematerialize-from-eventlog.js +40 -29
  120. package/dist/rematerialize-from-eventlog.js.map +1 -1
  121. package/dist/schema/EventDef/define.d.ts +161 -0
  122. package/dist/schema/EventDef/define.d.ts.map +1 -0
  123. package/dist/schema/EventDef/define.js +140 -0
  124. package/dist/schema/EventDef/define.js.map +1 -0
  125. package/dist/schema/EventDef/deprecated.d.ts +99 -0
  126. package/dist/schema/EventDef/deprecated.d.ts.map +1 -0
  127. package/dist/schema/EventDef/deprecated.js +144 -0
  128. package/dist/schema/EventDef/deprecated.js.map +1 -0
  129. package/dist/schema/EventDef/deprecated.test.d.ts +2 -0
  130. package/dist/schema/EventDef/deprecated.test.d.ts.map +1 -0
  131. package/dist/schema/EventDef/deprecated.test.js +95 -0
  132. package/dist/schema/EventDef/deprecated.test.js.map +1 -0
  133. package/dist/schema/EventDef/event-def.d.ts +110 -0
  134. package/dist/schema/EventDef/event-def.d.ts.map +1 -0
  135. package/dist/schema/EventDef/event-def.js +2 -0
  136. package/dist/schema/EventDef/event-def.js.map +1 -0
  137. package/dist/schema/EventDef/facts.d.ts +118 -0
  138. package/dist/schema/EventDef/facts.d.ts.map +1 -0
  139. package/dist/schema/EventDef/facts.js +53 -0
  140. package/dist/schema/EventDef/facts.js.map +1 -0
  141. package/dist/schema/EventDef/materializer.d.ts +155 -0
  142. package/dist/schema/EventDef/materializer.d.ts.map +1 -0
  143. package/dist/schema/EventDef/materializer.js +83 -0
  144. package/dist/schema/EventDef/materializer.js.map +1 -0
  145. package/dist/schema/EventDef/mod.d.ts +6 -0
  146. package/dist/schema/EventDef/mod.d.ts.map +1 -0
  147. package/dist/schema/EventDef/mod.js +6 -0
  148. package/dist/schema/EventDef/mod.js.map +1 -0
  149. package/dist/schema/EventSequenceNumber/client.d.ts +136 -0
  150. package/dist/schema/EventSequenceNumber/client.d.ts.map +1 -0
  151. package/dist/schema/EventSequenceNumber/client.js +193 -0
  152. package/dist/schema/EventSequenceNumber/client.js.map +1 -0
  153. package/dist/schema/EventSequenceNumber/global.d.ts +15 -0
  154. package/dist/schema/EventSequenceNumber/global.d.ts.map +1 -0
  155. package/dist/schema/EventSequenceNumber/global.js +14 -0
  156. package/dist/schema/EventSequenceNumber/global.js.map +1 -0
  157. package/dist/schema/EventSequenceNumber/mod.d.ts +37 -0
  158. package/dist/schema/EventSequenceNumber/mod.d.ts.map +1 -0
  159. package/dist/schema/EventSequenceNumber/mod.js +37 -0
  160. package/dist/schema/EventSequenceNumber/mod.js.map +1 -0
  161. package/dist/schema/EventSequenceNumber.test.js +44 -44
  162. package/dist/schema/EventSequenceNumber.test.js.map +1 -1
  163. package/dist/schema/{LiveStoreEvent.d.ts → LiveStoreEvent/client.d.ts} +102 -111
  164. package/dist/schema/LiveStoreEvent/client.d.ts.map +1 -0
  165. package/dist/schema/LiveStoreEvent/client.js +176 -0
  166. package/dist/schema/LiveStoreEvent/client.js.map +1 -0
  167. package/dist/schema/LiveStoreEvent/client.test.d.ts +2 -0
  168. package/dist/schema/LiveStoreEvent/client.test.d.ts.map +1 -0
  169. package/dist/schema/LiveStoreEvent/client.test.js +111 -0
  170. package/dist/schema/LiveStoreEvent/client.test.js.map +1 -0
  171. package/dist/schema/LiveStoreEvent/for-event-def.d.ts +52 -0
  172. package/dist/schema/LiveStoreEvent/for-event-def.d.ts.map +1 -0
  173. package/dist/schema/LiveStoreEvent/for-event-def.js +2 -0
  174. package/dist/schema/LiveStoreEvent/for-event-def.js.map +1 -0
  175. package/dist/schema/LiveStoreEvent/global.d.ts +36 -0
  176. package/dist/schema/LiveStoreEvent/global.d.ts.map +1 -0
  177. package/dist/schema/LiveStoreEvent/global.js +31 -0
  178. package/dist/schema/LiveStoreEvent/global.js.map +1 -0
  179. package/dist/schema/LiveStoreEvent/input.d.ts +46 -0
  180. package/dist/schema/LiveStoreEvent/input.d.ts.map +1 -0
  181. package/dist/schema/LiveStoreEvent/input.js +26 -0
  182. package/dist/schema/LiveStoreEvent/input.js.map +1 -0
  183. package/dist/schema/LiveStoreEvent/mod.d.ts +5 -0
  184. package/dist/schema/LiveStoreEvent/mod.d.ts.map +1 -0
  185. package/dist/schema/LiveStoreEvent/mod.js +5 -0
  186. package/dist/schema/LiveStoreEvent/mod.js.map +1 -0
  187. package/dist/schema/events.d.ts +1 -1
  188. package/dist/schema/events.d.ts.map +1 -1
  189. package/dist/schema/events.js +1 -1
  190. package/dist/schema/events.js.map +1 -1
  191. package/dist/schema/mod.d.ts +6 -4
  192. package/dist/schema/mod.d.ts.map +1 -1
  193. package/dist/schema/mod.js +5 -4
  194. package/dist/schema/mod.js.map +1 -1
  195. package/dist/schema/schema.d.ts +16 -1
  196. package/dist/schema/schema.d.ts.map +1 -1
  197. package/dist/schema/schema.js +32 -4
  198. package/dist/schema/schema.js.map +1 -1
  199. package/dist/schema/state/sqlite/client-document-def.d.ts +2 -1
  200. package/dist/schema/state/sqlite/client-document-def.d.ts.map +1 -1
  201. package/dist/schema/state/sqlite/client-document-def.js +36 -15
  202. package/dist/schema/state/sqlite/client-document-def.js.map +1 -1
  203. package/dist/schema/state/sqlite/client-document-def.test.js +121 -2
  204. package/dist/schema/state/sqlite/client-document-def.test.js.map +1 -1
  205. package/dist/schema/state/sqlite/column-annotations.d.ts.map +1 -1
  206. package/dist/schema/state/sqlite/column-annotations.js +1 -1
  207. package/dist/schema/state/sqlite/column-annotations.js.map +1 -1
  208. package/dist/schema/state/sqlite/column-annotations.test.js +2 -2
  209. package/dist/schema/state/sqlite/column-annotations.test.js.map +1 -1
  210. package/dist/schema/state/sqlite/column-def.d.ts.map +1 -1
  211. package/dist/schema/state/sqlite/column-def.js +96 -47
  212. package/dist/schema/state/sqlite/column-def.js.map +1 -1
  213. package/dist/schema/state/sqlite/column-def.test.js +51 -12
  214. package/dist/schema/state/sqlite/column-def.test.js.map +1 -1
  215. package/dist/schema/state/sqlite/column-spec.d.ts.map +1 -1
  216. package/dist/schema/state/sqlite/column-spec.js +30 -12
  217. package/dist/schema/state/sqlite/column-spec.js.map +1 -1
  218. package/dist/schema/state/sqlite/column-spec.test.js +24 -15
  219. package/dist/schema/state/sqlite/column-spec.test.js.map +1 -1
  220. package/dist/schema/state/sqlite/db-schema/ast/sqlite.js +2 -2
  221. package/dist/schema/state/sqlite/db-schema/ast/sqlite.js.map +1 -1
  222. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.d.ts +16 -10
  223. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.d.ts.map +1 -1
  224. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.js +15 -4
  225. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.js.map +1 -1
  226. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.test.js +1 -1
  227. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.test.js.map +1 -1
  228. package/dist/schema/state/sqlite/db-schema/dsl/mod.d.ts +1 -1
  229. package/dist/schema/state/sqlite/db-schema/dsl/mod.d.ts.map +1 -1
  230. package/dist/schema/state/sqlite/db-schema/dsl/mod.js +1 -1
  231. package/dist/schema/state/sqlite/db-schema/dsl/mod.js.map +1 -1
  232. package/dist/schema/state/sqlite/mod.d.ts +2 -2
  233. package/dist/schema/state/sqlite/mod.d.ts.map +1 -1
  234. package/dist/schema/state/sqlite/mod.js +5 -7
  235. package/dist/schema/state/sqlite/mod.js.map +1 -1
  236. package/dist/schema/state/sqlite/query-builder/api.d.ts +51 -22
  237. package/dist/schema/state/sqlite/query-builder/api.d.ts.map +1 -1
  238. package/dist/schema/state/sqlite/query-builder/astToSql.d.ts.map +1 -1
  239. package/dist/schema/state/sqlite/query-builder/astToSql.js +99 -22
  240. package/dist/schema/state/sqlite/query-builder/astToSql.js.map +1 -1
  241. package/dist/schema/state/sqlite/query-builder/impl.d.ts +1 -1
  242. package/dist/schema/state/sqlite/query-builder/impl.d.ts.map +1 -1
  243. package/dist/schema/state/sqlite/query-builder/impl.js +28 -15
  244. package/dist/schema/state/sqlite/query-builder/impl.js.map +1 -1
  245. package/dist/schema/state/sqlite/query-builder/impl.test.js +231 -93
  246. package/dist/schema/state/sqlite/query-builder/impl.test.js.map +1 -1
  247. package/dist/schema/state/sqlite/schema-helpers.d.ts +2 -2
  248. package/dist/schema/state/sqlite/schema-helpers.d.ts.map +1 -1
  249. package/dist/schema/state/sqlite/schema-helpers.js +24 -14
  250. package/dist/schema/state/sqlite/schema-helpers.js.map +1 -1
  251. package/dist/schema/state/sqlite/schema-helpers.test.d.ts +2 -0
  252. package/dist/schema/state/sqlite/schema-helpers.test.d.ts.map +1 -0
  253. package/dist/schema/state/sqlite/schema-helpers.test.js +36 -0
  254. package/dist/schema/state/sqlite/schema-helpers.test.js.map +1 -0
  255. package/dist/schema/state/sqlite/{system-tables.d.ts → system-tables/eventlog-tables.d.ts} +21 -450
  256. package/dist/schema/state/sqlite/system-tables/eventlog-tables.d.ts.map +1 -0
  257. package/dist/schema/state/sqlite/system-tables/eventlog-tables.js +54 -0
  258. package/dist/schema/state/sqlite/system-tables/eventlog-tables.js.map +1 -0
  259. package/dist/schema/state/sqlite/system-tables/mod.d.ts +3 -0
  260. package/dist/schema/state/sqlite/system-tables/mod.d.ts.map +1 -0
  261. package/dist/schema/state/sqlite/system-tables/mod.js +3 -0
  262. package/dist/schema/state/sqlite/system-tables/mod.js.map +1 -0
  263. package/dist/schema/state/sqlite/system-tables/state-tables.d.ts +456 -0
  264. package/dist/schema/state/sqlite/system-tables/state-tables.d.ts.map +1 -0
  265. package/dist/schema/state/sqlite/system-tables/state-tables.js +55 -0
  266. package/dist/schema/state/sqlite/system-tables/state-tables.js.map +1 -0
  267. package/dist/schema/state/sqlite/table-def.d.ts +5 -3
  268. package/dist/schema/state/sqlite/table-def.d.ts.map +1 -1
  269. package/dist/schema/state/sqlite/table-def.js +1 -1
  270. package/dist/schema/state/sqlite/table-def.js.map +1 -1
  271. package/dist/schema/state/sqlite/table-def.test.js +92 -3
  272. package/dist/schema/state/sqlite/table-def.test.js.map +1 -1
  273. package/dist/schema/unknown-events.d.ts +47 -0
  274. package/dist/schema/unknown-events.d.ts.map +1 -0
  275. package/dist/schema/unknown-events.js +69 -0
  276. package/dist/schema/unknown-events.js.map +1 -0
  277. package/dist/schema-management/__tests__/migrations-autoincrement-quoting.test.d.ts +2 -0
  278. package/dist/schema-management/__tests__/migrations-autoincrement-quoting.test.d.ts.map +1 -0
  279. package/dist/schema-management/__tests__/migrations-autoincrement-quoting.test.js +73 -0
  280. package/dist/schema-management/__tests__/migrations-autoincrement-quoting.test.js.map +1 -0
  281. package/dist/schema-management/common.js +2 -2
  282. package/dist/schema-management/common.js.map +1 -1
  283. package/dist/schema-management/migrations.d.ts +32 -2
  284. package/dist/schema-management/migrations.d.ts.map +1 -1
  285. package/dist/schema-management/migrations.js +38 -6
  286. package/dist/schema-management/migrations.js.map +1 -1
  287. package/dist/schema-management/validate-schema.d.ts +3 -3
  288. package/dist/schema-management/validate-schema.d.ts.map +1 -1
  289. package/dist/schema-management/validate-schema.js +2 -2
  290. package/dist/schema-management/validate-schema.js.map +1 -1
  291. package/dist/sql-queries/sql-queries.d.ts.map +1 -1
  292. package/dist/sql-queries/sql-queries.js +18 -6
  293. package/dist/sql-queries/sql-queries.js.map +1 -1
  294. package/dist/sql-queries/sql-query-builder.d.ts.map +1 -1
  295. package/dist/sql-queries/sql-query-builder.js.map +1 -1
  296. package/dist/sqlite-db-helper.js +3 -3
  297. package/dist/sqlite-db-helper.js.map +1 -1
  298. package/dist/sqlite-types.d.ts +5 -5
  299. package/dist/sqlite-types.d.ts.map +1 -1
  300. package/dist/sqlite-types.js.map +1 -1
  301. package/dist/sync/ClientSessionSyncProcessor.d.ts +12 -12
  302. package/dist/sync/ClientSessionSyncProcessor.d.ts.map +1 -1
  303. package/dist/sync/ClientSessionSyncProcessor.js +99 -114
  304. package/dist/sync/ClientSessionSyncProcessor.js.map +1 -1
  305. package/dist/sync/errors.d.ts +0 -33
  306. package/dist/sync/errors.d.ts.map +1 -1
  307. package/dist/sync/errors.js +5 -22
  308. package/dist/sync/errors.js.map +1 -1
  309. package/dist/sync/index.d.ts +2 -0
  310. package/dist/sync/index.d.ts.map +1 -1
  311. package/dist/sync/index.js +2 -0
  312. package/dist/sync/index.js.map +1 -1
  313. package/dist/sync/mock-sync-backend.d.ts +10 -8
  314. package/dist/sync/mock-sync-backend.d.ts.map +1 -1
  315. package/dist/sync/mock-sync-backend.js +71 -69
  316. package/dist/sync/mock-sync-backend.js.map +1 -1
  317. package/dist/sync/next/compact-events.d.ts.map +1 -1
  318. package/dist/sync/next/compact-events.js +11 -12
  319. package/dist/sync/next/compact-events.js.map +1 -1
  320. package/dist/sync/next/facts.d.ts +5 -5
  321. package/dist/sync/next/facts.d.ts.map +1 -1
  322. package/dist/sync/next/facts.js +7 -8
  323. package/dist/sync/next/facts.js.map +1 -1
  324. package/dist/sync/next/history-dag-common.d.ts +54 -15
  325. package/dist/sync/next/history-dag-common.d.ts.map +1 -1
  326. package/dist/sync/next/history-dag-common.js +198 -9
  327. package/dist/sync/next/history-dag-common.js.map +1 -1
  328. package/dist/sync/next/history-dag.d.ts.map +1 -1
  329. package/dist/sync/next/history-dag.js +11 -11
  330. package/dist/sync/next/history-dag.js.map +1 -1
  331. package/dist/sync/next/rebase-events.d.ts +5 -5
  332. package/dist/sync/next/rebase-events.d.ts.map +1 -1
  333. package/dist/sync/next/rebase-events.js +6 -6
  334. package/dist/sync/next/rebase-events.js.map +1 -1
  335. package/dist/sync/next/test/compact-events.calculator.test.js +2 -2
  336. package/dist/sync/next/test/compact-events.calculator.test.js.map +1 -1
  337. package/dist/sync/next/test/compact-events.test.d.ts.map +1 -1
  338. package/dist/sync/next/test/compact-events.test.js +2 -2
  339. package/dist/sync/next/test/compact-events.test.js.map +1 -1
  340. package/dist/sync/next/test/event-fixtures.d.ts +2 -2
  341. package/dist/sync/next/test/event-fixtures.d.ts.map +1 -1
  342. package/dist/sync/next/test/event-fixtures.js +11 -11
  343. package/dist/sync/next/test/event-fixtures.js.map +1 -1
  344. package/dist/sync/sync-backend-kv.d.ts +3 -3
  345. package/dist/sync/sync-backend-kv.d.ts.map +1 -1
  346. package/dist/sync/sync-backend-kv.js +3 -3
  347. package/dist/sync/sync-backend-kv.js.map +1 -1
  348. package/dist/sync/sync-backend.d.ts +33 -13
  349. package/dist/sync/sync-backend.d.ts.map +1 -1
  350. package/dist/sync/sync-backend.js +38 -1
  351. package/dist/sync/sync-backend.js.map +1 -1
  352. package/dist/sync/sync.d.ts +23 -2
  353. package/dist/sync/sync.d.ts.map +1 -1
  354. package/dist/sync/syncstate.d.ts +55 -55
  355. package/dist/sync/syncstate.d.ts.map +1 -1
  356. package/dist/sync/syncstate.js +80 -98
  357. package/dist/sync/syncstate.js.map +1 -1
  358. package/dist/sync/syncstate.test.js +221 -132
  359. package/dist/sync/syncstate.test.js.map +1 -1
  360. package/dist/sync/transport-chunking.d.ts +36 -0
  361. package/dist/sync/transport-chunking.d.ts.map +1 -0
  362. package/dist/sync/transport-chunking.js +56 -0
  363. package/dist/sync/transport-chunking.js.map +1 -0
  364. package/dist/sync/validate-push-payload.d.ts +2 -2
  365. package/dist/sync/validate-push-payload.d.ts.map +1 -1
  366. package/dist/sync/validate-push-payload.js +4 -6
  367. package/dist/sync/validate-push-payload.js.map +1 -1
  368. package/dist/testing/event-factory.d.ts +68 -0
  369. package/dist/testing/event-factory.d.ts.map +1 -0
  370. package/dist/testing/event-factory.js +78 -0
  371. package/dist/testing/event-factory.js.map +1 -0
  372. package/dist/testing/mod.d.ts +2 -0
  373. package/dist/testing/mod.d.ts.map +1 -0
  374. package/dist/testing/mod.js +2 -0
  375. package/dist/testing/mod.js.map +1 -0
  376. package/dist/util.js +2 -2
  377. package/dist/util.js.map +1 -1
  378. package/dist/version.d.ts +24 -5
  379. package/dist/version.d.ts.map +1 -1
  380. package/dist/version.js +25 -8
  381. package/dist/version.js.map +1 -1
  382. package/package.json +69 -16
  383. package/src/ClientSessionLeaderThreadProxy.ts +27 -12
  384. package/src/WorkerTransportError.ts +12 -0
  385. package/src/adapter-types.ts +50 -7
  386. package/src/bounded-collections.ts +6 -5
  387. package/src/debug-info.ts +37 -6
  388. package/src/devtools/devtools-compatibility.test.ts +18 -0
  389. package/src/devtools/devtools-messages-client-session.ts +22 -4
  390. package/src/devtools/devtools-messages-common.ts +7 -12
  391. package/src/devtools/devtools-messages-leader.ts +29 -10
  392. package/src/devtools/devtools-sessioninfo.ts +8 -5
  393. package/src/devtools/mod.ts +11 -2
  394. package/src/errors.ts +32 -24
  395. package/src/index.ts +4 -1
  396. package/src/leader-thread/LeaderSyncProcessor.ts +523 -373
  397. package/src/leader-thread/RejectedPushError.ts +106 -0
  398. package/src/leader-thread/connection.ts +1 -1
  399. package/src/leader-thread/eventlog.ts +112 -39
  400. package/src/leader-thread/leader-worker-devtools.ts +201 -120
  401. package/src/leader-thread/make-leader-thread-layer.test.ts +44 -0
  402. package/src/leader-thread/make-leader-thread-layer.ts +125 -40
  403. package/src/leader-thread/materialize-event.ts +40 -10
  404. package/src/leader-thread/mod.ts +1 -0
  405. package/src/leader-thread/recreate-db.ts +7 -7
  406. package/src/leader-thread/shutdown-channel.ts +4 -8
  407. package/src/leader-thread/stream-events.ts +206 -0
  408. package/src/leader-thread/types.ts +68 -18
  409. package/src/logging.ts +62 -0
  410. package/src/make-client-session.ts +11 -5
  411. package/src/materializer-helper.ts +27 -16
  412. package/src/otel.ts +13 -2
  413. package/src/rematerialize-from-eventlog.ts +61 -51
  414. package/src/schema/EventDef/define.ts +217 -0
  415. package/src/schema/EventDef/deprecated.test.ts +129 -0
  416. package/src/schema/EventDef/deprecated.ts +175 -0
  417. package/src/schema/EventDef/event-def.ts +125 -0
  418. package/src/schema/EventDef/facts.ts +135 -0
  419. package/src/schema/EventDef/materializer.ts +172 -0
  420. package/src/schema/EventDef/mod.ts +5 -0
  421. package/src/schema/EventSequenceNumber/client.ts +257 -0
  422. package/src/schema/EventSequenceNumber/global.ts +19 -0
  423. package/src/schema/EventSequenceNumber/mod.ts +37 -0
  424. package/src/schema/EventSequenceNumber.test.ts +72 -53
  425. package/src/schema/LiveStoreEvent/client.test.ts +129 -0
  426. package/src/schema/LiveStoreEvent/client.ts +235 -0
  427. package/src/schema/LiveStoreEvent/for-event-def.ts +60 -0
  428. package/src/schema/LiveStoreEvent/global.ts +45 -0
  429. package/src/schema/LiveStoreEvent/input.ts +63 -0
  430. package/src/schema/LiveStoreEvent/mod.ts +4 -0
  431. package/src/schema/events.ts +1 -1
  432. package/src/schema/mod.ts +6 -4
  433. package/src/schema/schema.ts +46 -5
  434. package/src/schema/state/sqlite/client-document-def.test.ts +144 -5
  435. package/src/schema/state/sqlite/client-document-def.ts +47 -34
  436. package/src/schema/state/sqlite/column-annotations.test.ts +3 -2
  437. package/src/schema/state/sqlite/column-annotations.ts +2 -1
  438. package/src/schema/state/sqlite/column-def.test.ts +66 -12
  439. package/src/schema/state/sqlite/column-def.ts +119 -47
  440. package/src/schema/state/sqlite/column-spec.test.ts +32 -17
  441. package/src/schema/state/sqlite/column-spec.ts +37 -11
  442. package/src/schema/state/sqlite/db-schema/ast/sqlite.ts +2 -2
  443. package/src/schema/state/sqlite/db-schema/dsl/field-defs.test.ts +2 -1
  444. package/src/schema/state/sqlite/db-schema/dsl/field-defs.ts +41 -15
  445. package/src/schema/state/sqlite/db-schema/dsl/mod.ts +13 -19
  446. package/src/schema/state/sqlite/mod.ts +7 -8
  447. package/src/schema/state/sqlite/query-builder/api.ts +55 -17
  448. package/src/schema/state/sqlite/query-builder/astToSql.ts +110 -21
  449. package/src/schema/state/sqlite/query-builder/impl.test.ts +267 -93
  450. package/src/schema/state/sqlite/query-builder/impl.ts +26 -13
  451. package/src/schema/state/sqlite/schema-helpers.test.ts +44 -0
  452. package/src/schema/state/sqlite/schema-helpers.ts +30 -22
  453. package/src/schema/state/sqlite/system-tables/eventlog-tables.ts +64 -0
  454. package/src/schema/state/sqlite/system-tables/mod.ts +2 -0
  455. package/src/schema/state/sqlite/system-tables/state-tables.ts +69 -0
  456. package/src/schema/state/sqlite/table-def.test.ts +114 -3
  457. package/src/schema/state/sqlite/table-def.ts +16 -22
  458. package/src/schema/unknown-events.ts +131 -0
  459. package/src/schema-management/__tests__/migrations-autoincrement-quoting.test.ts +88 -0
  460. package/src/schema-management/common.ts +2 -2
  461. package/src/schema-management/migrations.ts +42 -9
  462. package/src/schema-management/validate-schema.ts +3 -3
  463. package/src/sql-queries/sql-queries.ts +18 -6
  464. package/src/sql-queries/sql-query-builder.ts +1 -0
  465. package/src/sqlite-db-helper.ts +3 -3
  466. package/src/sqlite-types.ts +6 -5
  467. package/src/sync/ClientSessionSyncProcessor.ts +152 -142
  468. package/src/sync/errors.ts +12 -24
  469. package/src/sync/index.ts +2 -0
  470. package/src/sync/mock-sync-backend.ts +146 -104
  471. package/src/sync/next/compact-events.ts +10 -11
  472. package/src/sync/next/facts.ts +13 -14
  473. package/src/sync/next/history-dag-common.ts +280 -26
  474. package/src/sync/next/history-dag.ts +17 -13
  475. package/src/sync/next/rebase-events.ts +12 -12
  476. package/src/sync/next/test/compact-events.calculator.test.ts +3 -2
  477. package/src/sync/next/test/compact-events.test.ts +4 -3
  478. package/src/sync/next/test/event-fixtures.ts +13 -13
  479. package/src/sync/sync-backend-kv.ts +4 -3
  480. package/src/sync/sync-backend.ts +66 -17
  481. package/src/sync/sync.ts +24 -2
  482. package/src/sync/syncstate.test.ts +583 -419
  483. package/src/sync/syncstate.ts +127 -122
  484. package/src/sync/transport-chunking.ts +90 -0
  485. package/src/sync/validate-push-payload.ts +6 -8
  486. package/src/testing/event-factory.ts +131 -0
  487. package/src/testing/mod.ts +1 -0
  488. package/src/util.ts +2 -2
  489. package/src/version.ts +33 -8
  490. package/dist/schema/EventDef.d.ts +0 -126
  491. package/dist/schema/EventDef.d.ts.map +0 -1
  492. package/dist/schema/EventDef.js +0 -46
  493. package/dist/schema/EventDef.js.map +0 -1
  494. package/dist/schema/EventSequenceNumber.d.ts +0 -80
  495. package/dist/schema/EventSequenceNumber.d.ts.map +0 -1
  496. package/dist/schema/EventSequenceNumber.js +0 -139
  497. package/dist/schema/EventSequenceNumber.js.map +0 -1
  498. package/dist/schema/LiveStoreEvent.d.ts.map +0 -1
  499. package/dist/schema/LiveStoreEvent.js +0 -147
  500. package/dist/schema/LiveStoreEvent.js.map +0 -1
  501. package/dist/schema/state/sqlite/system-tables.d.ts.map +0 -1
  502. package/dist/schema/state/sqlite/system-tables.js +0 -81
  503. package/dist/schema/state/sqlite/system-tables.js.map +0 -1
  504. package/dist/sync/next/graphology.d.ts +0 -8
  505. package/dist/sync/next/graphology.d.ts.map +0 -1
  506. package/dist/sync/next/graphology.js +0 -30
  507. package/dist/sync/next/graphology.js.map +0 -1
  508. package/dist/sync/next/graphology_.d.ts +0 -3
  509. package/dist/sync/next/graphology_.d.ts.map +0 -1
  510. package/dist/sync/next/graphology_.js +0 -3
  511. package/dist/sync/next/graphology_.js.map +0 -1
  512. package/src/schema/EventDef.ts +0 -222
  513. package/src/schema/EventSequenceNumber.ts +0 -199
  514. package/src/schema/LiveStoreEvent.ts +0 -286
  515. package/src/schema/state/sqlite/system-tables.ts +0 -106
  516. package/src/sync/next/ambient.d.ts +0 -3
  517. package/src/sync/next/graphology.ts +0 -41
  518. package/src/sync/next/graphology_.ts +0 -2
@@ -1,7 +1,7 @@
1
1
  import { Effect, KeyValueStore, Option } from '@livestore/utils/effect';
2
- import { UnexpectedError } from '../errors.ts';
2
+ import { UnknownError } from '../errors.ts';
3
3
  export declare const makeBackendIdHelper: Effect.Effect<{
4
- lazySet: (backendId: string) => Effect.Effect<void, UnexpectedError, never>;
4
+ lazySet: (backendId: string) => Effect.Effect<void, UnknownError, never>;
5
5
  get: () => Option.Option<string>;
6
- }, UnexpectedError, KeyValueStore.KeyValueStore>;
6
+ }, UnknownError, KeyValueStore.KeyValueStore>;
7
7
  //# sourceMappingURL=sync-backend-kv.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sync-backend-kv.d.ts","sourceRoot":"","sources":["../../src/sync/sync-backend-kv.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE9C,eAAO,MAAM,mBAAmB;yBAMG,MAAM;;gDAYvC,CAAA"}
1
+ {"version":3,"file":"sync-backend-kv.d.ts","sourceRoot":"","sources":["../../src/sync/sync-backend-kv.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEvE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAE3C,eAAO,MAAM,mBAAmB;yBAMG,MAAM;;6CAYvC,CAAA"}
@@ -1,15 +1,15 @@
1
1
  import { Effect, KeyValueStore, Option } from '@livestore/utils/effect';
2
- import { UnexpectedError } from "../errors.js";
2
+ import { UnknownError } from "../errors.js";
3
3
  export const makeBackendIdHelper = Effect.gen(function* () {
4
4
  const kv = yield* KeyValueStore.KeyValueStore;
5
5
  const backendIdKey = `backendId`;
6
- const backendIdRef = { current: yield* kv.get(backendIdKey).pipe(UnexpectedError.mapToUnexpectedError) };
6
+ const backendIdRef = { current: yield* kv.get(backendIdKey).pipe(UnknownError.mapToUnknownError) };
7
7
  const setBackendId = (backendId) => Effect.gen(function* () {
8
8
  if (backendIdRef.current._tag === 'None' || backendIdRef.current.value !== backendId) {
9
9
  backendIdRef.current = Option.some(backendId);
10
10
  yield* kv.set(backendIdKey, backendId);
11
11
  }
12
- }).pipe(UnexpectedError.mapToUnexpectedError);
12
+ }).pipe(UnknownError.mapToUnknownError);
13
13
  return {
14
14
  lazySet: setBackendId,
15
15
  get: () => backendIdRef.current,
@@ -1 +1 @@
1
- {"version":3,"file":"sync-backend-kv.js","sourceRoot":"","sources":["../../src/sync/sync-backend-kv.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE9C,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IACrD,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,aAAa,CAAC,aAAa,CAAA;IAE7C,MAAM,YAAY,GAAG,WAAW,CAAA;IAChC,MAAM,YAAY,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,oBAAoB,CAAC,EAAE,CAAA;IAExG,MAAM,YAAY,GAAG,CAAC,SAAiB,EAAE,EAAE,CACzC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,YAAY,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACrF,YAAY,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YAC7C,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA;QACxC,CAAC;IACH,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAA;IAE/C,OAAO;QACL,OAAO,EAAE,YAAY;QACrB,GAAG,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO;KAChC,CAAA;AACH,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"sync-backend-kv.js","sourceRoot":"","sources":["../../src/sync/sync-backend-kv.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEvE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAE3C,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IACrD,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,aAAa,CAAC,aAAa,CAAA;IAE7C,MAAM,YAAY,GAAG,WAAW,CAAA;IAChC,MAAM,YAAY,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,EAAE,CAAA;IAElG,MAAM,YAAY,GAAG,CAAC,SAAiB,EAAE,EAAE,CACzC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,YAAY,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACrF,YAAY,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YAC7C,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA;QACxC,CAAC;IACH,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAA;IAEzC,OAAO;QACL,OAAO,EAAE,YAAY;QACrB,GAAG,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO;KAChC,CAAA;AACH,CAAC,CAAC,CAAA"}
@@ -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.JsonValue> = {
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>;
15
+ export type SyncBackendConstructor<TSyncMetadata = Schema.JsonValue, TPayload = Schema.JsonValue> = (args: MakeBackendArgs<TPayload>) => Effect.Effect<SyncBackend<TSyncMetadata>, UnknownError, Scope.Scope | HttpClient.HttpClient | KeyValueStore.KeyValueStore>;
16
16
  export type SyncBackend<TSyncMetadata = Schema.JsonValue> = {
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.TimeoutException>;
41
41
  isConnected: SubscriptionRef.SubscriptionRef<boolean>;
42
42
  /**
43
43
  * Metadata describing the sync backend. (Currently only used by devtools.)
@@ -59,6 +59,26 @@ export type SyncBackend<TSyncMetadata = Schema.JsonValue> = {
59
59
  pullLive: boolean;
60
60
  };
61
61
  };
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
+ isConnected: typeof Schema.Boolean;
68
+ /** Unix epoch timestamp (ms) of the latest connectivity state transition. */
69
+ timestampMs: typeof Schema.Number;
70
+ /** Devtools specific metadata describing simulator overrides. */
71
+ devtools: Schema.Struct<{
72
+ /** Indicates whether the devtools latch forced the client into an offline state. */
73
+ latchClosed: typeof 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>;
62
82
  export declare const PullResPageInfo: Schema.Union<[Schema.TaggedStruct<"MoreUnknown", {}>, Schema.TaggedStruct<"MoreKnown", {
63
83
  remaining: typeof Schema.Number;
64
84
  }>, Schema.TaggedStruct<"NoMore", {}>]>;
@@ -69,7 +89,7 @@ export declare const pageInfoMoreKnown: (remaining: number) => PullResPageInfo;
69
89
  export declare const pullResItemEmpty: <TSyncMetadata = Schema.JsonValue>() => PullResItem<TSyncMetadata>;
70
90
  export interface PullResItem<TSyncMetadata = Schema.JsonValue> {
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;
@@ -79,7 +99,7 @@ export declare const of: <TSyncMetadata = Schema.JsonValue>(obj: SyncBackend<TSy
79
99
  * Useful to continue pulling from the last event in the batch.
80
100
  */
81
101
  export declare const cursorFromPullResItem: <TSyncMetadata = Schema.JsonValue>(item: PullResItem<TSyncMetadata>) => Option.Option<{
82
- eventSequenceNumber: EventSequenceNumber.GlobalEventSequenceNumber;
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":"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"}
@@ -1,5 +1,42 @@
1
1
  import { Option, Schema, } from '@livestore/utils/effect';
2
2
  export * from "./sync-backend-kv.js";
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.Number,
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
+ }).annotations({ 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
+ };
3
40
  export const PullResPageInfo = Schema.Union(Schema.TaggedStruct('MoreUnknown', {}), Schema.TaggedStruct('MoreKnown', {
4
41
  remaining: Schema.Number,
5
42
  }), Schema.TaggedStruct('NoMore', {}));
@@ -16,7 +53,7 @@ export const of = (obj) => obj;
16
53
  */
17
54
  export const cursorFromPullResItem = (item) => {
18
55
  const lastEvent = item.batch.at(-1);
19
- if (!lastEvent) {
56
+ if (lastEvent == null) {
20
57
  return Option.none();
21
58
  }
22
59
  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.JsonValue> = {
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,SAAS,IAAI;IACrD,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,33 +1,42 @@
1
- import { Schema } from '@livestore/utils/effect';
2
- import * as LiveStoreEvent from '../schema/LiveStoreEvent.ts';
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';
3
4
  declare const SyncState_base: Schema.Class<SyncState, {
4
- pending: Schema.Array$<typeof LiveStoreEvent.EncodedWithMeta>;
5
+ 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
7
  upstreamHead: Schema.Struct<{
7
8
  global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
8
9
  client: Schema.BrandSchema<number & import("effect/Brand").Brand<"ClientEventSequenceNumber">, number, never>;
9
10
  rebaseGeneration: typeof Schema.Int;
10
- }>;
11
+ }> & {
12
+ make: (seqNum: EventSequenceNumber.Client.CompositeInput) => EventSequenceNumber.Client.Composite;
13
+ };
11
14
  /** Equivalent to `pending.at(-1)?.id` if there are pending events */
12
15
  localHead: Schema.Struct<{
13
16
  global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
14
17
  client: Schema.BrandSchema<number & import("effect/Brand").Brand<"ClientEventSequenceNumber">, number, never>;
15
18
  rebaseGeneration: typeof Schema.Int;
16
- }>;
19
+ }> & {
20
+ make: (seqNum: EventSequenceNumber.Client.CompositeInput) => EventSequenceNumber.Client.Composite;
21
+ };
17
22
  }, Schema.Struct.Encoded<{
18
- pending: Schema.Array$<typeof LiveStoreEvent.EncodedWithMeta>;
23
+ pending: Schema.Array$<typeof LiveStoreEvent.Client.EncodedWithMeta>;
19
24
  /** What this node expects the next upstream node to have as its own local head */
20
25
  upstreamHead: Schema.Struct<{
21
26
  global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
22
27
  client: Schema.BrandSchema<number & import("effect/Brand").Brand<"ClientEventSequenceNumber">, number, never>;
23
28
  rebaseGeneration: typeof Schema.Int;
24
- }>;
29
+ }> & {
30
+ make: (seqNum: EventSequenceNumber.Client.CompositeInput) => EventSequenceNumber.Client.Composite;
31
+ };
25
32
  /** Equivalent to `pending.at(-1)?.id` if there are pending events */
26
33
  localHead: Schema.Struct<{
27
34
  global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
28
35
  client: Schema.BrandSchema<number & import("effect/Brand").Brand<"ClientEventSequenceNumber">, number, never>;
29
36
  rebaseGeneration: typeof Schema.Int;
30
- }>;
37
+ }> & {
38
+ make: (seqNum: EventSequenceNumber.Client.CompositeInput) => EventSequenceNumber.Client.Composite;
39
+ };
31
40
  }>, never, {
32
41
  readonly upstreamHead: {
33
42
  readonly global: number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">;
@@ -41,7 +50,7 @@ declare const SyncState_base: Schema.Class<SyncState, {
41
50
  readonly rebaseGeneration: number;
42
51
  };
43
52
  } & {
44
- readonly pending: readonly LiveStoreEvent.EncodedWithMeta[];
53
+ readonly pending: readonly LiveStoreEvent.Client.EncodedWithMeta[];
45
54
  }, {}, {}>;
46
55
  /**
47
56
  * SyncState represents the current sync state of a sync node relative to an upstream node.
@@ -54,7 +63,7 @@ declare const SyncState_base: Schema.Class<SyncState, {
54
63
  * +------------------------+
55
64
  * ▼ ▼
56
65
  * Upstream Head Local Head
57
- * (1,0) (1,1), (1,2), (2,0)
66
+ * e1 e1.1, e1.2, e2
58
67
  * ```
59
68
  *
60
69
  * **Pending Events**: Events awaiting acknowledgment from the upstream.
@@ -70,7 +79,7 @@ declare const SyncState_base: Schema.Class<SyncState, {
70
79
  * Invariants:
71
80
  * 1. **Chain Continuity**: Each event must reference its immediate parent.
72
81
  * 2. **Head Ordering**: Upstream Head ≤ Local Head.
73
- * 3. **Event number sequence**: Must follow the pattern (1,0)(1,1)(1,2)(2,0).
82
+ * 3. **Event number sequence**: Must follow the pattern e1e1.1→e1.2→e2.
74
83
  *
75
84
  * A few further notes to help form an intuition:
76
85
  * - The goal is to keep the pending events as small as possible (i.e. to have synced with the next upstream node)
@@ -85,9 +94,9 @@ export declare class SyncState extends SyncState_base {
85
94
  }
86
95
  declare const PayloadUpstreamRebase_base: Schema.TaggedStruct<"upstream-rebase", {
87
96
  /** Events which need to be rolled back */
88
- rollbackEvents: Schema.Array$<typeof LiveStoreEvent.EncodedWithMeta>;
97
+ rollbackEvents: Schema.Array$<typeof LiveStoreEvent.Client.EncodedWithMeta>;
89
98
  /** Events which need to be applied after the rollback (already rebased by the upstream node) */
90
- newEvents: Schema.Array$<typeof LiveStoreEvent.EncodedWithMeta>;
99
+ newEvents: Schema.Array$<typeof LiveStoreEvent.Client.EncodedWithMeta>;
91
100
  }>;
92
101
  /**
93
102
  * This payload propagates a rebase from the upstream node
@@ -95,12 +104,12 @@ declare const PayloadUpstreamRebase_base: Schema.TaggedStruct<"upstream-rebase",
95
104
  export declare class PayloadUpstreamRebase extends PayloadUpstreamRebase_base {
96
105
  }
97
106
  declare const PayloadUpstreamAdvance_base: Schema.TaggedStruct<"upstream-advance", {
98
- newEvents: Schema.Array$<typeof LiveStoreEvent.EncodedWithMeta>;
107
+ newEvents: Schema.Array$<typeof LiveStoreEvent.Client.EncodedWithMeta>;
99
108
  }>;
100
109
  export declare class PayloadUpstreamAdvance extends PayloadUpstreamAdvance_base {
101
110
  }
102
111
  declare const PayloadLocalPush_base: Schema.TaggedStruct<"local-push", {
103
- newEvents: Schema.Array$<typeof LiveStoreEvent.EncodedWithMeta>;
112
+ newEvents: Schema.Array$<typeof LiveStoreEvent.Client.EncodedWithMeta>;
104
113
  }>;
105
114
  export declare class PayloadLocalPush extends PayloadLocalPush_base {
106
115
  }
@@ -119,14 +128,14 @@ declare const MergeContext_base: Schema.Class<MergeContext, {
119
128
  }>, never, {
120
129
  readonly payload: {
121
130
  readonly _tag: "upstream-rebase";
122
- readonly rollbackEvents: readonly LiveStoreEvent.EncodedWithMeta[];
123
- readonly newEvents: readonly LiveStoreEvent.EncodedWithMeta[];
131
+ readonly rollbackEvents: readonly LiveStoreEvent.Client.EncodedWithMeta[];
132
+ readonly newEvents: readonly LiveStoreEvent.Client.EncodedWithMeta[];
124
133
  } | {
125
134
  readonly _tag: "upstream-advance";
126
- readonly newEvents: readonly LiveStoreEvent.EncodedWithMeta[];
135
+ readonly newEvents: readonly LiveStoreEvent.Client.EncodedWithMeta[];
127
136
  } | {
128
137
  readonly _tag: "local-push";
129
- readonly newEvents: readonly LiveStoreEvent.EncodedWithMeta[];
138
+ readonly newEvents: readonly LiveStoreEvent.Client.EncodedWithMeta[];
130
139
  };
131
140
  } & {
132
141
  readonly syncState: SyncState;
@@ -138,27 +147,27 @@ export declare class MergeContext extends MergeContext_base {
138
147
  declare const MergeResultAdvance_base: Schema.Class<MergeResultAdvance, {
139
148
  _tag: Schema.Literal<["advance"]>;
140
149
  newSyncState: typeof SyncState;
141
- newEvents: Schema.Array$<typeof LiveStoreEvent.EncodedWithMeta>;
150
+ newEvents: Schema.Array$<typeof LiveStoreEvent.Client.EncodedWithMeta>;
142
151
  /** Events which were previously pending but are now confirmed */
143
- confirmedEvents: Schema.Array$<typeof LiveStoreEvent.EncodedWithMeta>;
152
+ confirmedEvents: Schema.Array$<typeof LiveStoreEvent.Client.EncodedWithMeta>;
144
153
  mergeContext: typeof MergeContext;
145
154
  }, Schema.Struct.Encoded<{
146
155
  _tag: Schema.Literal<["advance"]>;
147
156
  newSyncState: typeof SyncState;
148
- newEvents: Schema.Array$<typeof LiveStoreEvent.EncodedWithMeta>;
157
+ newEvents: Schema.Array$<typeof LiveStoreEvent.Client.EncodedWithMeta>;
149
158
  /** Events which were previously pending but are now confirmed */
150
- confirmedEvents: Schema.Array$<typeof LiveStoreEvent.EncodedWithMeta>;
159
+ confirmedEvents: Schema.Array$<typeof LiveStoreEvent.Client.EncodedWithMeta>;
151
160
  mergeContext: typeof MergeContext;
152
161
  }>, never, {
153
162
  readonly _tag: "advance";
154
163
  } & {
155
- readonly newEvents: readonly LiveStoreEvent.EncodedWithMeta[];
164
+ readonly newEvents: readonly LiveStoreEvent.Client.EncodedWithMeta[];
156
165
  } & {
157
166
  readonly newSyncState: SyncState;
158
167
  } & {
159
168
  readonly mergeContext: MergeContext;
160
169
  } & {
161
- readonly confirmedEvents: readonly LiveStoreEvent.EncodedWithMeta[];
170
+ readonly confirmedEvents: readonly LiveStoreEvent.Client.EncodedWithMeta[];
162
171
  }, {}, {}>;
163
172
  export declare class MergeResultAdvance extends MergeResultAdvance_base {
164
173
  toJSON: () => any;
@@ -166,23 +175,23 @@ export declare class MergeResultAdvance extends MergeResultAdvance_base {
166
175
  declare const MergeResultRebase_base: Schema.Class<MergeResultRebase, {
167
176
  _tag: Schema.Literal<["rebase"]>;
168
177
  newSyncState: typeof SyncState;
169
- newEvents: Schema.Array$<typeof LiveStoreEvent.EncodedWithMeta>;
178
+ newEvents: Schema.Array$<typeof LiveStoreEvent.Client.EncodedWithMeta>;
170
179
  /** Events which need to be rolled back */
171
- rollbackEvents: Schema.Array$<typeof LiveStoreEvent.EncodedWithMeta>;
180
+ rollbackEvents: Schema.Array$<typeof LiveStoreEvent.Client.EncodedWithMeta>;
172
181
  mergeContext: typeof MergeContext;
173
182
  }, Schema.Struct.Encoded<{
174
183
  _tag: Schema.Literal<["rebase"]>;
175
184
  newSyncState: typeof SyncState;
176
- newEvents: Schema.Array$<typeof LiveStoreEvent.EncodedWithMeta>;
185
+ newEvents: Schema.Array$<typeof LiveStoreEvent.Client.EncodedWithMeta>;
177
186
  /** Events which need to be rolled back */
178
- rollbackEvents: Schema.Array$<typeof LiveStoreEvent.EncodedWithMeta>;
187
+ rollbackEvents: Schema.Array$<typeof LiveStoreEvent.Client.EncodedWithMeta>;
179
188
  mergeContext: typeof MergeContext;
180
189
  }>, never, {
181
190
  readonly _tag: "rebase";
182
191
  } & {
183
- readonly rollbackEvents: readonly LiveStoreEvent.EncodedWithMeta[];
192
+ readonly rollbackEvents: readonly LiveStoreEvent.Client.EncodedWithMeta[];
184
193
  } & {
185
- readonly newEvents: readonly LiveStoreEvent.EncodedWithMeta[];
194
+ readonly newEvents: readonly LiveStoreEvent.Client.EncodedWithMeta[];
186
195
  } & {
187
196
  readonly newSyncState: SyncState;
188
197
  } & {
@@ -198,7 +207,9 @@ declare const MergeResultReject_base: Schema.Class<MergeResultReject, {
198
207
  global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
199
208
  client: Schema.BrandSchema<number & import("effect/Brand").Brand<"ClientEventSequenceNumber">, number, never>;
200
209
  rebaseGeneration: typeof Schema.Int;
201
- }>;
210
+ }> & {
211
+ make: (seqNum: EventSequenceNumber.Client.CompositeInput) => EventSequenceNumber.Client.Composite;
212
+ };
202
213
  mergeContext: typeof MergeContext;
203
214
  }, Schema.Struct.Encoded<{
204
215
  _tag: Schema.Literal<["reject"]>;
@@ -207,7 +218,9 @@ declare const MergeResultReject_base: Schema.Class<MergeResultReject, {
207
218
  global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
208
219
  client: Schema.BrandSchema<number & import("effect/Brand").Brand<"ClientEventSequenceNumber">, number, never>;
209
220
  rebaseGeneration: typeof Schema.Int;
210
- }>;
221
+ }> & {
222
+ make: (seqNum: EventSequenceNumber.Client.CompositeInput) => EventSequenceNumber.Client.Composite;
223
+ };
211
224
  mergeContext: typeof MergeContext;
212
225
  }>, never, {
213
226
  readonly _tag: "reject";
@@ -223,40 +236,27 @@ declare const MergeResultReject_base: Schema.Class<MergeResultReject, {
223
236
  export declare class MergeResultReject extends MergeResultReject_base {
224
237
  toJSON: () => any;
225
238
  }
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]>;
239
+ declare const MergeResult_base: Schema.Union<[typeof MergeResultAdvance, typeof MergeResultRebase, typeof MergeResultReject]>;
240
240
  export declare class MergeResult extends MergeResult_base {
241
241
  }
242
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, }: {
243
+ export declare const merge: (args_0: {
244
244
  syncState: SyncState;
245
245
  payload: typeof Payload.Type;
246
- isClientEvent: (event: LiveStoreEvent.EncodedWithMeta) => boolean;
247
- isEqualEvent: (a: LiveStoreEvent.EncodedWithMeta, b: LiveStoreEvent.EncodedWithMeta) => boolean;
246
+ isClientEvent: (event: LiveStoreEvent.Client.EncodedWithMeta) => boolean;
247
+ isEqualEvent: (a: LiveStoreEvent.Client.EncodedWithMeta, b: LiveStoreEvent.Client.EncodedWithMeta) => boolean;
248
248
  /** This is used in the leader which should ignore client events when receiving an upstream-advance payload */
249
249
  ignoreClientEvents?: boolean;
250
- }) => typeof MergeResult.Type;
250
+ }) => Effect.Effect<MergeResultAdvance | MergeResultRebase | MergeResultReject, never, never>;
251
251
  /**
252
252
  * Gets the index relative to `existingEvents` where the divergence point is
253
253
  * by comparing each event in `existingEvents` to the corresponding event in `incomingEvents`
254
254
  */
255
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;
256
+ existingEvents: ReadonlyArray<LiveStoreEvent.Client.EncodedWithMeta>;
257
+ incomingEvents: ReadonlyArray<LiveStoreEvent.Client.EncodedWithMeta>;
258
+ isEqualEvent: (a: LiveStoreEvent.Client.EncodedWithMeta, b: LiveStoreEvent.Client.EncodedWithMeta) => boolean;
259
+ isClientEvent: (event: LiveStoreEvent.Client.EncodedWithMeta) => boolean;
260
260
  ignoreClientEvents: boolean;
261
261
  }) => number;
262
262
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"syncstate.d.ts","sourceRoot":"","sources":["../../src/sync/syncstate.ts"],"names":[],"mappings":"AACA,OAAO,EAAwB,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAGtE,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAA;;;IAyC3D,kFAAkF;;;;;;IAElF,qEAAqE;;;;;;;;IAFrE,kFAAkF;;;;;;IAElF,qEAAqE;;;;;;;;;;;;;;;;;;;;;AAzCvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,qBAAa,SAAU,SAAQ,cAM7B;IACA,MAAM,QAAO,GAAG,CAId;CACH;;IAMC,0CAA0C;;IAE1C,gGAAgG;;;AANlG;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,0BAKzC;CAAG;;;;AAEL,qBAAa,sBAAuB,SAAQ,2BAE1C;CAAG;;;;AAEL,qBAAa,gBAAiB,SAAQ,qBAEpC;CAAG;;AAEL,qBAAa,OAAQ,SAAQ,YAA6E;CAAG;;AAE7G,qBAAa,eAAgB,SAAQ,oBAA2D;CAAG;;;;;;;;;;;;;;;;;;;;;;AAEnG,uCAAuC;AACvC,qBAAa,YAAa,SAAQ,iBAGhC;IACA,MAAM,QAAO,GAAG,CAqBf;CACF;;;;;IAMC,iEAAiE;;;;;;;IAAjE,iEAAiE;;;;;;;;;;;;;;AAJnE,qBAAa,kBAAmB,SAAQ,uBAOtC;IACA,MAAM,QAAO,GAAG,CAQf;CACF;;;;;IAMC,0CAA0C;;;;;;;IAA1C,0CAA0C;;;;;;;;;;;;;;AAJ5C,qBAAa,iBAAkB,SAAQ,sBAOrC;IACA,MAAM,QAAO,GAAG,CAQf;CACF;;;IAIC,mDAAmD;;;;;;;;;IAAnD,mDAAmD;;;;;;;;;;;;;;;;;;AAFrD,qBAAa,iBAAkB,SAAQ,sBAKrC;IACA,MAAM,QAAO,GAAG,CAMf;CACF;;;;;;;;;;;;AAED,qBAAa,0BAA2B,SAAQ,+BAG9C;CAAG;;AAEL,qBAAa,WAAY,SAAQ,gBAKhC;CAAG;AAEJ,eAAO,MAAM,sBAAsB,GACjC,aAAa,OAAO,kBAAkB,CAAC,IAAI,GAAG,OAAO,iBAAiB,CAAC,IAAI,KAC1E,OAAO,eAAe,CAAC,IAYvB,CAAA;AAkBH,eAAO,MAAM,KAAK,GAAI,0EAMnB;IACD,SAAS,EAAE,SAAS,CAAA;IACpB,OAAO,EAAE,OAAO,OAAO,CAAC,IAAI,CAAA;IAC5B,aAAa,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,eAAe,KAAK,OAAO,CAAA;IACjE,YAAY,EAAE,CAAC,CAAC,EAAE,cAAc,CAAC,eAAe,EAAE,CAAC,EAAE,cAAc,CAAC,eAAe,KAAK,OAAO,CAAA;IAC/F,8GAA8G;IAC9G,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B,KAAG,OAAO,WAAW,CAAC,IAmNtB,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAAI,sFAMjC;IACD,cAAc,EAAE,aAAa,CAAC,cAAc,CAAC,eAAe,CAAC,CAAA;IAC7D,cAAc,EAAE,aAAa,CAAC,cAAc,CAAC,eAAe,CAAC,CAAA;IAC7D,YAAY,EAAE,CAAC,CAAC,EAAE,cAAc,CAAC,eAAe,EAAE,CAAC,EAAE,cAAc,CAAC,eAAe,KAAK,OAAO,CAAA;IAC/F,aAAa,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,eAAe,KAAK,OAAO,CAAA;IACjE,kBAAkB,EAAE,OAAO,CAAA;CAC5B,KAAG,MAyBH,CAAA"}
1
+ {"version":3,"file":"syncstate.d.ts","sourceRoot":"","sources":["../../src/sync/syncstate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAwB,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAE9E,OAAO,KAAK,mBAAmB,MAAM,sCAAsC,CAAA;AAC3E,OAAO,KAAK,cAAc,MAAM,iCAAiC,CAAA;;;IAyC/D,kFAAkF;;;;;;;;IAElF,qEAAqE;;;;;;;;;;IAFrE,kFAAkF;;;;;;;;IAElF,qEAAqE;;;;;;;;;;;;;;;;;;;;;;;AAzCvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,qBAAa,SAAU,SAAQ,cAM7B;IACA,MAAM,QAAO,GAAG,CAId;CACH;;IAMC,0CAA0C;;IAE1C,gGAAgG;;;AANlG;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,0BAKzC;CAAG;;;;AAEL,qBAAa,sBAAuB,SAAQ,2BAE1C;CAAG;;;;AAEL,qBAAa,gBAAiB,SAAQ,qBAEpC;CAAG;;AAEL,qBAAa,OAAQ,SAAQ,YAA6E;CAAG;;AAE7G,qBAAa,eAAgB,SAAQ,oBAA2D;CAAG;;;;;;;;;;;;;;;;;;;;;;AAEnG,uCAAuC;AACvC,qBAAa,YAAa,SAAQ,iBAGhC;IACA,MAAM,QAAO,GAAG,CAqBf;CACF;;;;;IAMC,iEAAiE;;;;;;;IAAjE,iEAAiE;;;;;;;;;;;;;;AAJnE,qBAAa,kBAAmB,SAAQ,uBAOtC;IACA,MAAM,QAAO,GAAG,CAQf;CACF;;;;;IAMC,0CAA0C;;;;;;;IAA1C,0CAA0C;;;;;;;;;;;;;;AAJ5C,qBAAa,iBAAkB,SAAQ,sBAOrC;IACA,MAAM,QAAO,GAAG,CAQf;CACF;;;IAIC,mDAAmD;;;;;;;;;;;IAAnD,mDAAmD;;;;;;;;;;;;;;;;;;;;AAFrD,qBAAa,iBAAkB,SAAQ,sBAKrC;IACA,MAAM,QAAO,GAAG,CAMf;CACF;;AAED,qBAAa,WAAY,SAAQ,gBAIhC;CAAG;AAEJ,eAAO,MAAM,sBAAsB,GACjC,aAAa,OAAO,kBAAkB,CAAC,IAAI,GAAG,OAAO,iBAAiB,CAAC,IAAI,KAC1E,OAAO,eAAe,CAAC,IAYvB,CAAA;AASH,eAAO,MAAM,KAAK;eAOL,SAAS;aACX,OAAO,OAAO,CAAC,IAAI;mBACb,CAAC,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,eAAe,KAAK,OAAO;kBAC1D,CAAC,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,eAAe,KAAK,OAAO;IAC7G,8GAA8G;yBACzF,OAAO;6FA8N1B,CAAA;AAEJ;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAAI,sFAMjC;IACD,cAAc,EAAE,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,eAAe,CAAC,CAAA;IACpE,cAAc,EAAE,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,eAAe,CAAC,CAAA;IACpE,YAAY,EAAE,CAAC,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,eAAe,KAAK,OAAO,CAAA;IAC7G,aAAa,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,eAAe,KAAK,OAAO,CAAA;IACxE,kBAAkB,EAAE,OAAO,CAAA;CAC5B,KAAG,MAyBH,CAAA"}