@livestore/common 0.4.0 → 0.5.0-dev.1

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 (501) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/ClientSessionLeaderThreadProxy.d.ts +1 -1
  3. package/dist/ClientSessionLeaderThreadProxy.d.ts.map +1 -1
  4. package/dist/MaterializationJournal.d.ts +44 -0
  5. package/dist/MaterializationJournal.d.ts.map +1 -0
  6. package/dist/MaterializationJournal.js +112 -0
  7. package/dist/MaterializationJournal.js.map +1 -0
  8. package/dist/StateHead.d.ts +26 -0
  9. package/dist/StateHead.d.ts.map +1 -0
  10. package/dist/StateHead.js +50 -0
  11. package/dist/StateHead.js.map +1 -0
  12. package/dist/WorkerTransportError.d.ts +3 -3
  13. package/dist/WorkerTransportError.d.ts.map +1 -1
  14. package/dist/WorkerTransportError.js +3 -3
  15. package/dist/WorkerTransportError.js.map +1 -1
  16. package/dist/__tests__/fixture.d.ts +8 -8
  17. package/dist/__tests__/fixture.d.ts.map +1 -1
  18. package/dist/__tests__/fixture.js +4 -4
  19. package/dist/__tests__/fixture.js.map +1 -1
  20. package/dist/adapter-types.d.ts +33 -57
  21. package/dist/adapter-types.d.ts.map +1 -1
  22. package/dist/adapter-types.js +24 -41
  23. package/dist/adapter-types.js.map +1 -1
  24. package/dist/bounded-collections.d.ts.map +1 -1
  25. package/dist/bounded-collections.js.map +1 -1
  26. package/dist/debug-info.d.ts +56 -56
  27. package/dist/debug-info.d.ts.map +1 -1
  28. package/dist/debug-info.js +32 -44
  29. package/dist/debug-info.js.map +1 -1
  30. package/dist/defs.d.ts +9 -9
  31. package/dist/defs.js +2 -2
  32. package/dist/devtools/devtools-compatibility.test.js +2 -1
  33. package/dist/devtools/devtools-compatibility.test.js.map +1 -1
  34. package/dist/devtools/devtools-messages-client-session.d.ts +522 -334
  35. package/dist/devtools/devtools-messages-client-session.d.ts.map +1 -1
  36. package/dist/devtools/devtools-messages-client-session.js +80 -78
  37. package/dist/devtools/devtools-messages-client-session.js.map +1 -1
  38. package/dist/devtools/devtools-messages-common.d.ts +27 -27
  39. package/dist/devtools/devtools-messages-common.d.ts.map +1 -1
  40. package/dist/devtools/devtools-messages-common.js +6 -6
  41. package/dist/devtools/devtools-messages-common.js.map +1 -1
  42. package/dist/devtools/devtools-messages-leader.d.ts +410 -348
  43. package/dist/devtools/devtools-messages-leader.d.ts.map +1 -1
  44. package/dist/devtools/devtools-messages-leader.js +105 -93
  45. package/dist/devtools/devtools-messages-leader.js.map +1 -1
  46. package/dist/devtools/devtools-messages.js +3 -3
  47. package/dist/devtools/devtools-sessioninfo.d.ts +18 -19
  48. package/dist/devtools/devtools-sessioninfo.d.ts.map +1 -1
  49. package/dist/devtools/devtools-sessioninfo.js +8 -5
  50. package/dist/devtools/devtools-sessioninfo.js.map +1 -1
  51. package/dist/devtools/mod.d.ts +4 -5
  52. package/dist/devtools/mod.d.ts.map +1 -1
  53. package/dist/devtools/mod.js +12 -8
  54. package/dist/devtools/mod.js.map +1 -1
  55. package/dist/errors.d.ts +45 -69
  56. package/dist/errors.d.ts.map +1 -1
  57. package/dist/errors.js +19 -17
  58. package/dist/errors.js.map +1 -1
  59. package/dist/index.d.ts +4 -1
  60. package/dist/index.d.ts.map +1 -1
  61. package/dist/index.js +22 -19
  62. package/dist/index.js.map +1 -1
  63. package/dist/leader-thread/LeaderSyncProcessor.d.ts +87 -18
  64. package/dist/leader-thread/LeaderSyncProcessor.d.ts.map +1 -1
  65. package/dist/leader-thread/LeaderSyncProcessor.js +548 -480
  66. package/dist/leader-thread/LeaderSyncProcessor.js.map +1 -1
  67. package/dist/leader-thread/RejectedPushError.d.ts +72 -41
  68. package/dist/leader-thread/RejectedPushError.d.ts.map +1 -1
  69. package/dist/leader-thread/RejectedPushError.js +25 -6
  70. package/dist/leader-thread/RejectedPushError.js.map +1 -1
  71. package/dist/leader-thread/connection.d.ts +1 -0
  72. package/dist/leader-thread/connection.d.ts.map +1 -1
  73. package/dist/leader-thread/connection.js +11 -10
  74. package/dist/leader-thread/connection.js.map +1 -1
  75. package/dist/leader-thread/eventlog.d.ts +15 -5
  76. package/dist/leader-thread/eventlog.d.ts.map +1 -1
  77. package/dist/leader-thread/eventlog.js +19 -19
  78. package/dist/leader-thread/eventlog.js.map +1 -1
  79. package/dist/leader-thread/leader-worker-devtools.d.ts +1 -1
  80. package/dist/leader-thread/leader-worker-devtools.d.ts.map +1 -1
  81. package/dist/leader-thread/leader-worker-devtools.js +36 -20
  82. package/dist/leader-thread/leader-worker-devtools.js.map +1 -1
  83. package/dist/leader-thread/make-leader-thread-layer.d.ts +15 -5
  84. package/dist/leader-thread/make-leader-thread-layer.d.ts.map +1 -1
  85. package/dist/leader-thread/make-leader-thread-layer.js +62 -58
  86. package/dist/leader-thread/make-leader-thread-layer.js.map +1 -1
  87. package/dist/leader-thread/make-leader-thread-layer.test.js +9 -9
  88. package/dist/leader-thread/make-leader-thread-layer.test.js.map +1 -1
  89. package/dist/leader-thread/materialize-event.d.ts +2 -1
  90. package/dist/leader-thread/materialize-event.d.ts.map +1 -1
  91. package/dist/leader-thread/materialize-event.js +12 -8
  92. package/dist/leader-thread/materialize-event.js.map +1 -1
  93. package/dist/leader-thread/mod.js +9 -9
  94. package/dist/leader-thread/recreate-db.d.ts +5 -1
  95. package/dist/leader-thread/recreate-db.d.ts.map +1 -1
  96. package/dist/leader-thread/recreate-db.js +34 -59
  97. package/dist/leader-thread/recreate-db.js.map +1 -1
  98. package/dist/leader-thread/shutdown-channel.d.ts +2 -6
  99. package/dist/leader-thread/shutdown-channel.d.ts.map +1 -1
  100. package/dist/leader-thread/shutdown-channel.js +2 -3
  101. package/dist/leader-thread/shutdown-channel.js.map +1 -1
  102. package/dist/leader-thread/stream-events.d.ts +4 -7
  103. package/dist/leader-thread/stream-events.d.ts.map +1 -1
  104. package/dist/leader-thread/stream-events.js +16 -21
  105. package/dist/leader-thread/stream-events.js.map +1 -1
  106. package/dist/leader-thread/types.d.ts +38 -73
  107. package/dist/leader-thread/types.d.ts.map +1 -1
  108. package/dist/leader-thread/types.js +10 -6
  109. package/dist/leader-thread/types.js.map +1 -1
  110. package/dist/logging.d.ts +5 -30
  111. package/dist/logging.d.ts.map +1 -1
  112. package/dist/logging.js +1 -32
  113. package/dist/logging.js.map +1 -1
  114. package/dist/make-client-session.d.ts +2 -3
  115. package/dist/make-client-session.d.ts.map +1 -1
  116. package/dist/make-client-session.js +5 -5
  117. package/dist/make-client-session.js.map +1 -1
  118. package/dist/materializer-helper.d.ts +0 -1
  119. package/dist/materializer-helper.d.ts.map +1 -1
  120. package/dist/materializer-helper.js +9 -37
  121. package/dist/materializer-helper.js.map +1 -1
  122. package/dist/otel.d.ts +2 -3
  123. package/dist/otel.d.ts.map +1 -1
  124. package/dist/otel.js +2 -7
  125. package/dist/otel.js.map +1 -1
  126. package/dist/rematerialize-from-eventlog.d.ts +3 -1
  127. package/dist/rematerialize-from-eventlog.d.ts.map +1 -1
  128. package/dist/rematerialize-from-eventlog.js +42 -33
  129. package/dist/rematerialize-from-eventlog.js.map +1 -1
  130. package/dist/schema/EventDef/define.d.ts +6 -6
  131. package/dist/schema/EventDef/define.d.ts.map +1 -1
  132. package/dist/schema/EventDef/define.js +5 -5
  133. package/dist/schema/EventDef/define.js.map +1 -1
  134. package/dist/schema/EventDef/define.test.d.ts +2 -0
  135. package/dist/schema/EventDef/define.test.d.ts.map +1 -0
  136. package/dist/schema/EventDef/define.test.js +23 -0
  137. package/dist/schema/EventDef/define.test.js.map +1 -0
  138. package/dist/schema/EventDef/deprecated.d.ts +8 -13
  139. package/dist/schema/EventDef/deprecated.d.ts.map +1 -1
  140. package/dist/schema/EventDef/deprecated.js +12 -13
  141. package/dist/schema/EventDef/deprecated.js.map +1 -1
  142. package/dist/schema/EventDef/deprecated.test.js +3 -3
  143. package/dist/schema/EventDef/deprecated.test.js.map +1 -1
  144. package/dist/schema/EventDef/event-def.d.ts +1 -1
  145. package/dist/schema/EventDef/event-def.d.ts.map +1 -1
  146. package/dist/schema/EventDef/facts.d.ts.map +1 -1
  147. package/dist/schema/EventDef/materializer.d.ts +2 -2
  148. package/dist/schema/EventDef/materializer.d.ts.map +1 -1
  149. package/dist/schema/EventDef/mod.js +5 -5
  150. package/dist/schema/EventSequenceNumber/client.d.ts +12 -17
  151. package/dist/schema/EventSequenceNumber/client.d.ts.map +1 -1
  152. package/dist/schema/EventSequenceNumber/client.js +20 -24
  153. package/dist/schema/EventSequenceNumber/client.js.map +1 -1
  154. package/dist/schema/EventSequenceNumber/global.d.ts +2 -2
  155. package/dist/schema/EventSequenceNumber/global.d.ts.map +1 -1
  156. package/dist/schema/EventSequenceNumber/global.js +1 -1
  157. package/dist/schema/EventSequenceNumber/global.js.map +1 -1
  158. package/dist/schema/EventSequenceNumber/mod.js +2 -2
  159. package/dist/schema/EventSequenceNumber.test.js +6 -6
  160. package/dist/schema/EventSequenceNumber.test.js.map +1 -1
  161. package/dist/schema/LiveStoreEvent/client.d.ts +58 -187
  162. package/dist/schema/LiveStoreEvent/client.d.ts.map +1 -1
  163. package/dist/schema/LiveStoreEvent/client.js +33 -30
  164. package/dist/schema/LiveStoreEvent/client.js.map +1 -1
  165. package/dist/schema/LiveStoreEvent/client.test.js +13 -4
  166. package/dist/schema/LiveStoreEvent/client.test.js.map +1 -1
  167. package/dist/schema/LiveStoreEvent/for-event-def.d.ts +7 -7
  168. package/dist/schema/LiveStoreEvent/for-event-def.d.ts.map +1 -1
  169. package/dist/schema/LiveStoreEvent/global.d.ts +6 -6
  170. package/dist/schema/LiveStoreEvent/global.d.ts.map +1 -1
  171. package/dist/schema/LiveStoreEvent/global.js +2 -2
  172. package/dist/schema/LiveStoreEvent/global.js.map +1 -1
  173. package/dist/schema/LiveStoreEvent/input.d.ts +6 -6
  174. package/dist/schema/LiveStoreEvent/input.d.ts.map +1 -1
  175. package/dist/schema/LiveStoreEvent/input.js +3 -3
  176. package/dist/schema/LiveStoreEvent/input.js.map +1 -1
  177. package/dist/schema/LiveStoreEvent/mod.js +4 -4
  178. package/dist/schema/events.js +1 -1
  179. package/dist/schema/mod.d.ts +1 -0
  180. package/dist/schema/mod.d.ts.map +1 -1
  181. package/dist/schema/mod.js +11 -10
  182. package/dist/schema/mod.js.map +1 -1
  183. package/dist/schema/schema.d.ts +1 -1
  184. package/dist/schema/schema.d.ts.map +1 -1
  185. package/dist/schema/schema.js +6 -5
  186. package/dist/schema/schema.js.map +1 -1
  187. package/dist/schema/state/mod.js +2 -2
  188. package/dist/schema/state/sqlite/client-document-def.d.ts +13 -18
  189. package/dist/schema/state/sqlite/client-document-def.d.ts.map +1 -1
  190. package/dist/schema/state/sqlite/client-document-def.js +30 -27
  191. package/dist/schema/state/sqlite/client-document-def.js.map +1 -1
  192. package/dist/schema/state/sqlite/client-document-def.test.js +53 -18
  193. package/dist/schema/state/sqlite/client-document-def.test.js.map +1 -1
  194. package/dist/schema/state/sqlite/column-annotations.d.ts +13 -13
  195. package/dist/schema/state/sqlite/column-annotations.d.ts.map +1 -1
  196. package/dist/schema/state/sqlite/column-annotations.js +13 -15
  197. package/dist/schema/state/sqlite/column-annotations.js.map +1 -1
  198. package/dist/schema/state/sqlite/column-annotations.test.js +19 -43
  199. package/dist/schema/state/sqlite/column-annotations.test.js.map +1 -1
  200. package/dist/schema/state/sqlite/column-def.d.ts +1 -1
  201. package/dist/schema/state/sqlite/column-def.d.ts.map +1 -1
  202. package/dist/schema/state/sqlite/column-def.js +73 -33
  203. package/dist/schema/state/sqlite/column-def.js.map +1 -1
  204. package/dist/schema/state/sqlite/column-def.test.js +176 -75
  205. package/dist/schema/state/sqlite/column-def.test.js.map +1 -1
  206. package/dist/schema/state/sqlite/column-spec.d.ts.map +1 -1
  207. package/dist/schema/state/sqlite/column-spec.js +1 -1
  208. package/dist/schema/state/sqlite/column-spec.js.map +1 -1
  209. package/dist/schema/state/sqlite/column-spec.test.js +4 -4
  210. package/dist/schema/state/sqlite/column-spec.test.js.map +1 -1
  211. package/dist/schema/state/sqlite/db-schema/ast/fingerprint-digest.d.ts +3 -0
  212. package/dist/schema/state/sqlite/db-schema/ast/fingerprint-digest.d.ts.map +1 -0
  213. package/dist/schema/state/sqlite/db-schema/ast/fingerprint-digest.js +5 -0
  214. package/dist/schema/state/sqlite/db-schema/ast/fingerprint-digest.js.map +1 -0
  215. package/dist/schema/state/sqlite/db-schema/ast/fingerprint.d.ts +5 -0
  216. package/dist/schema/state/sqlite/db-schema/ast/fingerprint.d.ts.map +1 -0
  217. package/dist/schema/state/sqlite/db-schema/ast/fingerprint.js +183 -0
  218. package/dist/schema/state/sqlite/db-schema/ast/fingerprint.js.map +1 -0
  219. package/dist/schema/state/sqlite/db-schema/ast/fingerprint.test.d.ts +2 -0
  220. package/dist/schema/state/sqlite/db-schema/ast/fingerprint.test.d.ts.map +1 -0
  221. package/dist/schema/state/sqlite/db-schema/ast/fingerprint.test.js +142 -0
  222. package/dist/schema/state/sqlite/db-schema/ast/fingerprint.test.js.map +1 -0
  223. package/dist/schema/state/sqlite/db-schema/ast/sqlite.d.ts +3 -8
  224. package/dist/schema/state/sqlite/db-schema/ast/sqlite.d.ts.map +1 -1
  225. package/dist/schema/state/sqlite/db-schema/ast/sqlite.js +1 -73
  226. package/dist/schema/state/sqlite/db-schema/ast/sqlite.js.map +1 -1
  227. package/dist/schema/state/sqlite/db-schema/ast/validate.d.ts.map +1 -1
  228. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.d.ts +9 -9
  229. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.d.ts.map +1 -1
  230. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.js +9 -13
  231. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.js.map +1 -1
  232. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.test.js +28 -17
  233. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.test.js.map +1 -1
  234. package/dist/schema/state/sqlite/db-schema/dsl/mod.d.ts +13 -11
  235. package/dist/schema/state/sqlite/db-schema/dsl/mod.d.ts.map +1 -1
  236. package/dist/schema/state/sqlite/db-schema/dsl/mod.js +6 -4
  237. package/dist/schema/state/sqlite/db-schema/dsl/mod.js.map +1 -1
  238. package/dist/schema/state/sqlite/db-schema/has-json-string-encoding.d.ts +3 -0
  239. package/dist/schema/state/sqlite/db-schema/has-json-string-encoding.d.ts.map +1 -0
  240. package/dist/schema/state/sqlite/db-schema/has-json-string-encoding.js +6 -0
  241. package/dist/schema/state/sqlite/db-schema/has-json-string-encoding.js.map +1 -0
  242. package/dist/schema/state/sqlite/db-schema/mod.js +2 -2
  243. package/dist/schema/state/sqlite/mod.d.ts +1 -3
  244. package/dist/schema/state/sqlite/mod.d.ts.map +1 -1
  245. package/dist/schema/state/sqlite/mod.js +11 -10
  246. package/dist/schema/state/sqlite/mod.js.map +1 -1
  247. package/dist/schema/state/sqlite/persistence.d.ts +11 -0
  248. package/dist/schema/state/sqlite/persistence.d.ts.map +1 -0
  249. package/dist/schema/state/sqlite/persistence.js +10 -0
  250. package/dist/schema/state/sqlite/persistence.js.map +1 -0
  251. package/dist/schema/state/sqlite/query-builder/api.d.ts +7 -7
  252. package/dist/schema/state/sqlite/query-builder/api.d.ts.map +1 -1
  253. package/dist/schema/state/sqlite/query-builder/astToSql.d.ts.map +1 -1
  254. package/dist/schema/state/sqlite/query-builder/astToSql.js +22 -23
  255. package/dist/schema/state/sqlite/query-builder/astToSql.js.map +1 -1
  256. package/dist/schema/state/sqlite/query-builder/impl.d.ts +1 -1
  257. package/dist/schema/state/sqlite/query-builder/impl.d.ts.map +1 -1
  258. package/dist/schema/state/sqlite/query-builder/impl.js +18 -16
  259. package/dist/schema/state/sqlite/query-builder/impl.js.map +1 -1
  260. package/dist/schema/state/sqlite/query-builder/impl.test.js +364 -598
  261. package/dist/schema/state/sqlite/query-builder/impl.test.js.map +1 -1
  262. package/dist/schema/state/sqlite/query-builder/mod.js +2 -2
  263. package/dist/schema/state/sqlite/schema-helpers.d.ts.map +1 -1
  264. package/dist/schema/state/sqlite/schema-helpers.js +2 -2
  265. package/dist/schema/state/sqlite/schema-helpers.js.map +1 -1
  266. package/dist/schema/state/sqlite/schema-helpers.test.js +2 -2
  267. package/dist/schema/state/sqlite/system-tables/eventlog-tables.d.ts +102 -134
  268. package/dist/schema/state/sqlite/system-tables/eventlog-tables.d.ts.map +1 -1
  269. package/dist/schema/state/sqlite/system-tables/eventlog-tables.js +5 -5
  270. package/dist/schema/state/sqlite/system-tables/eventlog-tables.js.map +1 -1
  271. package/dist/schema/state/sqlite/system-tables/mod.js +2 -2
  272. package/dist/schema/state/sqlite/system-tables/state-tables.d.ts +380 -115
  273. package/dist/schema/state/sqlite/system-tables/state-tables.d.ts.map +1 -1
  274. package/dist/schema/state/sqlite/system-tables/state-tables.js +47 -6
  275. package/dist/schema/state/sqlite/system-tables/state-tables.js.map +1 -1
  276. package/dist/schema/state/sqlite/table-def.d.ts +17 -20
  277. package/dist/schema/state/sqlite/table-def.d.ts.map +1 -1
  278. package/dist/schema/state/sqlite/table-def.js +72 -6
  279. package/dist/schema/state/sqlite/table-def.js.map +1 -1
  280. package/dist/schema/state/sqlite/table-def.test.js +207 -37
  281. package/dist/schema/state/sqlite/table-def.test.js.map +1 -1
  282. package/dist/schema/unknown-events.d.ts.map +1 -1
  283. package/dist/schema/unknown-events.js +3 -2
  284. package/dist/schema/unknown-events.js.map +1 -1
  285. package/dist/schema-management/__tests__/migrations-autoincrement-quoting.test.js +28 -6
  286. package/dist/schema-management/__tests__/migrations-autoincrement-quoting.test.js.map +1 -1
  287. package/dist/schema-management/common.d.ts.map +1 -1
  288. package/dist/schema-management/common.js +2 -2
  289. package/dist/schema-management/migrations.d.ts +4 -4
  290. package/dist/schema-management/migrations.d.ts.map +1 -1
  291. package/dist/schema-management/migrations.js +9 -9
  292. package/dist/schema-management/migrations.js.map +1 -1
  293. package/dist/schema-management/validate-schema.d.ts.map +1 -1
  294. package/dist/schema-management/validate-schema.js +1 -1
  295. package/dist/session-id-symbol.d.ts +29 -0
  296. package/dist/session-id-symbol.d.ts.map +1 -0
  297. package/dist/session-id-symbol.js +44 -0
  298. package/dist/session-id-symbol.js.map +1 -0
  299. package/dist/sql-queries/index.js +3 -3
  300. package/dist/sql-queries/sql-queries.d.ts.map +1 -1
  301. package/dist/sql-queries/sql-queries.js +11 -13
  302. package/dist/sql-queries/sql-queries.js.map +1 -1
  303. package/dist/sql-queries/sql-query-builder.d.ts.map +1 -1
  304. package/dist/sql-queries/sql-query-builder.js +1 -1
  305. package/dist/sql-queries/types.d.ts +6 -7
  306. package/dist/sql-queries/types.d.ts.map +1 -1
  307. package/dist/sql-queries/types.js.map +1 -1
  308. package/dist/sqlite-db-helper.d.ts +23 -3
  309. package/dist/sqlite-db-helper.d.ts.map +1 -1
  310. package/dist/sqlite-db-helper.js +39 -4
  311. package/dist/sqlite-db-helper.js.map +1 -1
  312. package/dist/sqlite-types.d.ts +3 -6
  313. package/dist/sqlite-types.d.ts.map +1 -1
  314. package/dist/sqlite-types.js +3 -3
  315. package/dist/sqlite-types.js.map +1 -1
  316. package/dist/sync/ClientSessionSyncProcessor.d.ts +41 -19
  317. package/dist/sync/ClientSessionSyncProcessor.d.ts.map +1 -1
  318. package/dist/sync/ClientSessionSyncProcessor.js +200 -70
  319. package/dist/sync/ClientSessionSyncProcessor.js.map +1 -1
  320. package/dist/sync/errors.d.ts +12 -18
  321. package/dist/sync/errors.d.ts.map +1 -1
  322. package/dist/sync/errors.js +3 -3
  323. package/dist/sync/errors.js.map +1 -1
  324. package/dist/sync/index.js +6 -6
  325. package/dist/sync/mock-sync-backend.d.ts +2 -3
  326. package/dist/sync/mock-sync-backend.d.ts.map +1 -1
  327. package/dist/sync/mock-sync-backend.js +58 -37
  328. package/dist/sync/mock-sync-backend.js.map +1 -1
  329. package/dist/sync/mock-sync-backend.test.d.ts +2 -0
  330. package/dist/sync/mock-sync-backend.test.d.ts.map +1 -0
  331. package/dist/sync/mock-sync-backend.test.js +49 -0
  332. package/dist/sync/mock-sync-backend.test.js.map +1 -0
  333. package/dist/sync/next/compact-events.d.ts.map +1 -1
  334. package/dist/sync/next/compact-events.js +3 -3
  335. package/dist/sync/next/facts.d.ts.map +1 -1
  336. package/dist/sync/next/facts.js +1 -1
  337. package/dist/sync/next/history-dag-common.d.ts +5 -1
  338. package/dist/sync/next/history-dag-common.d.ts.map +1 -1
  339. package/dist/sync/next/history-dag-common.js +53 -32
  340. package/dist/sync/next/history-dag-common.js.map +1 -1
  341. package/dist/sync/next/history-dag.d.ts.map +1 -1
  342. package/dist/sync/next/history-dag.js +5 -4
  343. package/dist/sync/next/history-dag.js.map +1 -1
  344. package/dist/sync/next/mod.js +5 -5
  345. package/dist/sync/next/rebase-events.d.ts.map +1 -1
  346. package/dist/sync/next/rebase-events.js +2 -2
  347. package/dist/sync/next/test/compact-events.calculator.test.js +6 -6
  348. package/dist/sync/next/test/compact-events.test.js +4 -4
  349. package/dist/sync/next/test/event-fixtures.d.ts +8 -8
  350. package/dist/sync/next/test/event-fixtures.d.ts.map +1 -1
  351. package/dist/sync/next/test/event-fixtures.js +6 -6
  352. package/dist/sync/next/test/event-fixtures.js.map +1 -1
  353. package/dist/sync/next/test/history-dag-common.test.d.ts +2 -0
  354. package/dist/sync/next/test/history-dag-common.test.d.ts.map +1 -0
  355. package/dist/sync/next/test/history-dag-common.test.js +73 -0
  356. package/dist/sync/next/test/history-dag-common.test.js.map +1 -0
  357. package/dist/sync/next/test/mod.js +1 -1
  358. package/dist/sync/sync-backend-kv.d.ts.map +1 -1
  359. package/dist/sync/sync-backend-kv.js +5 -3
  360. package/dist/sync/sync-backend-kv.js.map +1 -1
  361. package/dist/sync/sync-backend.d.ts +15 -15
  362. package/dist/sync/sync-backend.d.ts.map +1 -1
  363. package/dist/sync/sync-backend.js +10 -6
  364. package/dist/sync/sync-backend.js.map +1 -1
  365. package/dist/sync/sync.d.ts +1 -1
  366. package/dist/sync/sync.d.ts.map +1 -1
  367. package/dist/sync/sync.js +2 -2
  368. package/dist/sync/syncstate.d.ts +100 -176
  369. package/dist/sync/syncstate.d.ts.map +1 -1
  370. package/dist/sync/syncstate.js +36 -39
  371. package/dist/sync/syncstate.js.map +1 -1
  372. package/dist/sync/syncstate.test.js +103 -64
  373. package/dist/sync/syncstate.test.js.map +1 -1
  374. package/dist/sync/transport-chunking.d.ts +15 -16
  375. package/dist/sync/transport-chunking.d.ts.map +1 -1
  376. package/dist/sync/transport-chunking.js +23 -32
  377. package/dist/sync/transport-chunking.js.map +1 -1
  378. package/dist/sync/validate-push-payload.d.ts.map +1 -1
  379. package/dist/sync/validate-push-payload.js +2 -2
  380. package/dist/testing/event-factory.d.ts.map +1 -1
  381. package/dist/testing/event-factory.js +2 -2
  382. package/dist/testing/event-factory.js.map +1 -1
  383. package/dist/testing/mod.js +1 -1
  384. package/dist/util.d.ts +11 -4
  385. package/dist/util.d.ts.map +1 -1
  386. package/dist/util.js +20 -2
  387. package/dist/util.js.map +1 -1
  388. package/dist/version.d.ts.map +1 -1
  389. package/dist/version.js.map +1 -1
  390. package/package.json +40 -57
  391. package/src/ClientSessionLeaderThreadProxy.ts +1 -1
  392. package/src/MaterializationJournal.ts +184 -0
  393. package/src/StateHead.ts +80 -0
  394. package/src/WorkerTransportError.ts +4 -4
  395. package/src/__tests__/fixture.ts +3 -3
  396. package/src/adapter-types.ts +28 -61
  397. package/src/debug-info.ts +53 -70
  398. package/src/defs.ts +2 -2
  399. package/src/devtools/devtools-compatibility.test.ts +1 -0
  400. package/src/devtools/devtools-messages-client-session.ts +56 -65
  401. package/src/devtools/devtools-messages-common.ts +12 -11
  402. package/src/devtools/devtools-messages-leader.ts +71 -69
  403. package/src/devtools/devtools-sessioninfo.ts +13 -11
  404. package/src/devtools/mod.ts +4 -5
  405. package/src/errors.ts +46 -34
  406. package/src/index.ts +8 -1
  407. package/src/leader-thread/LeaderSyncProcessor.ts +777 -650
  408. package/src/leader-thread/RejectedPushError.ts +40 -27
  409. package/src/leader-thread/connection.ts +12 -8
  410. package/src/leader-thread/eventlog.ts +20 -12
  411. package/src/leader-thread/leader-worker-devtools.ts +38 -20
  412. package/src/leader-thread/make-leader-thread-layer.test.ts +7 -7
  413. package/src/leader-thread/make-leader-thread-layer.ts +100 -71
  414. package/src/leader-thread/materialize-event.ts +13 -8
  415. package/src/leader-thread/recreate-db.ts +41 -75
  416. package/src/leader-thread/shutdown-channel.ts +3 -14
  417. package/src/leader-thread/stream-events.ts +102 -101
  418. package/src/leader-thread/types.ts +29 -62
  419. package/src/logging.ts +5 -52
  420. package/src/make-client-session.ts +6 -6
  421. package/src/materializer-helper.ts +7 -36
  422. package/src/otel.ts +5 -14
  423. package/src/rematerialize-from-eventlog.ts +116 -98
  424. package/src/schema/EventDef/define.test.ts +28 -0
  425. package/src/schema/EventDef/define.ts +20 -19
  426. package/src/schema/EventDef/deprecated.test.ts +1 -8
  427. package/src/schema/EventDef/deprecated.ts +17 -20
  428. package/src/schema/EventDef/event-def.ts +2 -4
  429. package/src/schema/EventSequenceNumber/client.ts +20 -24
  430. package/src/schema/EventSequenceNumber/global.ts +1 -1
  431. package/src/schema/EventSequenceNumber.test.ts +5 -5
  432. package/src/schema/LiveStoreEvent/client.test.ts +17 -4
  433. package/src/schema/LiveStoreEvent/client.ts +36 -35
  434. package/src/schema/LiveStoreEvent/for-event-def.ts +7 -7
  435. package/src/schema/LiveStoreEvent/global.ts +1 -1
  436. package/src/schema/LiveStoreEvent/input.ts +6 -6
  437. package/src/schema/mod.ts +1 -0
  438. package/src/schema/schema.ts +4 -3
  439. package/src/schema/state/sqlite/client-document-def.test.ts +55 -20
  440. package/src/schema/state/sqlite/client-document-def.ts +95 -80
  441. package/src/schema/state/sqlite/column-annotations.test.ts +26 -45
  442. package/src/schema/state/sqlite/column-annotations.ts +26 -30
  443. package/src/schema/state/sqlite/column-def.test.ts +213 -77
  444. package/src/schema/state/sqlite/column-def.ts +87 -37
  445. package/src/schema/state/sqlite/column-spec.test.ts +2 -2
  446. package/src/schema/state/sqlite/column-spec.ts +3 -2
  447. package/src/schema/state/sqlite/db-schema/ast/fingerprint-digest.ts +6 -0
  448. package/src/schema/state/sqlite/db-schema/ast/fingerprint.test.ts +209 -0
  449. package/src/schema/state/sqlite/db-schema/ast/fingerprint.ts +225 -0
  450. package/src/schema/state/sqlite/db-schema/ast/sqlite.ts +2 -81
  451. package/src/schema/state/sqlite/db-schema/dsl/__snapshots__/field-defs.test.ts.snap +123 -63
  452. package/src/schema/state/sqlite/db-schema/dsl/field-defs.test.ts +35 -16
  453. package/src/schema/state/sqlite/db-schema/dsl/field-defs.ts +26 -31
  454. package/src/schema/state/sqlite/db-schema/dsl/mod.ts +35 -21
  455. package/src/schema/state/sqlite/db-schema/has-json-string-encoding.ts +9 -0
  456. package/src/schema/state/sqlite/mod.ts +4 -5
  457. package/src/schema/state/sqlite/persistence.ts +11 -0
  458. package/src/schema/state/sqlite/query-builder/api.ts +9 -9
  459. package/src/schema/state/sqlite/query-builder/astToSql.ts +24 -26
  460. package/src/schema/state/sqlite/query-builder/impl.test.ts +433 -669
  461. package/src/schema/state/sqlite/query-builder/impl.ts +19 -15
  462. package/src/schema/state/sqlite/schema-helpers.ts +1 -1
  463. package/src/schema/state/sqlite/system-tables/eventlog-tables.ts +2 -2
  464. package/src/schema/state/sqlite/system-tables/state-tables.ts +54 -3
  465. package/src/schema/state/sqlite/table-def.test.ts +270 -66
  466. package/src/schema/state/sqlite/table-def.ts +112 -45
  467. package/src/schema/unknown-events.ts +3 -2
  468. package/src/schema-management/__tests__/migrations-autoincrement-quoting.test.ts +35 -4
  469. package/src/schema-management/migrations.ts +7 -6
  470. package/src/session-id-symbol.ts +59 -0
  471. package/src/sql-queries/sql-queries.ts +9 -13
  472. package/src/sql-queries/types.ts +6 -7
  473. package/src/sqlite-db-helper.ts +64 -2
  474. package/src/sqlite-types.ts +5 -8
  475. package/src/sync/ClientSessionSyncProcessor.ts +303 -119
  476. package/src/sync/errors.ts +14 -12
  477. package/src/sync/mock-sync-backend.test.ts +78 -0
  478. package/src/sync/mock-sync-backend.ts +93 -47
  479. package/src/sync/next/history-dag-common.ts +60 -34
  480. package/src/sync/next/history-dag.ts +4 -1
  481. package/src/sync/next/test/compact-events.calculator.test.ts +2 -2
  482. package/src/sync/next/test/event-fixtures.ts +1 -1
  483. package/src/sync/next/test/history-dag-common.test.ts +87 -0
  484. package/src/sync/sync-backend-kv.ts +4 -2
  485. package/src/sync/sync-backend.ts +15 -15
  486. package/src/sync/sync.ts +1 -1
  487. package/src/sync/syncstate.test.ts +191 -140
  488. package/src/sync/syncstate.ts +63 -53
  489. package/src/sync/transport-chunking.ts +34 -39
  490. package/src/util.ts +19 -9
  491. package/src/version.ts +1 -2
  492. package/dist/schema/state/sqlite/db-schema/hash.d.ts +0 -2
  493. package/dist/schema/state/sqlite/db-schema/hash.d.ts.map +0 -1
  494. package/dist/schema/state/sqlite/db-schema/hash.js +0 -15
  495. package/dist/schema/state/sqlite/db-schema/hash.js.map +0 -1
  496. package/dist/sql-queries/misc.d.ts +0 -2
  497. package/dist/sql-queries/misc.d.ts.map +0 -1
  498. package/dist/sql-queries/misc.js +0 -2
  499. package/dist/sql-queries/misc.js.map +0 -1
  500. package/src/schema/state/sqlite/db-schema/hash.ts +0 -13
  501. package/src/sql-queries/misc.ts +0 -2
package/dist/errors.d.ts CHANGED
@@ -1,91 +1,67 @@
1
- import { Effect, Layer, Schema, Stream } from '@livestore/utils/effect';
2
- declare const UnknownError_base: Schema.TaggedErrorClass<UnknownError, "UnknownError", {
3
- readonly _tag: Schema.tag<"UnknownError">;
4
- } & {
5
- cause: typeof Schema.Defect;
6
- note: Schema.optional<typeof Schema.String>;
7
- payload: Schema.optional<typeof Schema.Any>;
8
- }>;
1
+ import { Cause, Effect, Layer, Schema, Stream } from '@livestore/utils/effect';
2
+ declare const UnknownError_base: Schema.Class<UnknownError, Schema.TaggedStruct<"UnknownError", {
3
+ readonly cause: Schema.Defect;
4
+ readonly note: Schema.optional<Schema.String>;
5
+ readonly payload: Schema.optional<Schema.Any>;
6
+ }>, Cause.YieldableError>;
9
7
  export declare class UnknownError extends UnknownError_base {
10
8
  static mapToUnknownError: <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, UnknownError, R>;
11
9
  static mapToUnknownErrorLayer: <A, E, R>(layer: Layer.Layer<A, E, R>) => Layer.Layer<A, UnknownError, R>;
12
10
  static mapToUnknownErrorStream: <A, E, R>(stream: Stream.Stream<A, E, R>) => Stream.Stream<A, UnknownError, R>;
13
11
  }
14
- declare const MaterializerHashMismatchError_base: Schema.TaggedErrorClass<MaterializerHashMismatchError, "MaterializerHashMismatchError", {
15
- readonly _tag: Schema.tag<"MaterializerHashMismatchError">;
16
- } & {
17
- eventName: typeof Schema.String;
18
- note: Schema.optionalWith<typeof Schema.String, {
19
- default: () => string;
20
- }>;
21
- }>;
12
+ declare const MaterializerHashMismatchError_base: Schema.Class<MaterializerHashMismatchError, Schema.TaggedStruct<"MaterializerHashMismatchError", {
13
+ readonly eventName: Schema.String;
14
+ readonly note: Schema.withConstructorDefault<Schema.withDecodingDefaultType<Schema.String, never>>;
15
+ }>, Cause.YieldableError>;
22
16
  export declare class MaterializerHashMismatchError extends MaterializerHashMismatchError_base {
23
17
  }
24
- declare const IntentionalShutdownCause_base: Schema.TaggedErrorClass<IntentionalShutdownCause, "IntentionalShutdownCause", {
25
- readonly _tag: Schema.tag<"IntentionalShutdownCause">;
26
- } & {
27
- reason: Schema.Literal<["devtools-reset", "devtools-import", "adapter-reset", "manual", "backend-id-mismatch"]>;
28
- }>;
18
+ declare const IntentionalShutdownCause_base: Schema.Class<IntentionalShutdownCause, Schema.TaggedStruct<"IntentionalShutdownCause", {
19
+ readonly reason: Schema.Literals<readonly ["devtools-reset", "devtools-import", "adapter-reset", "manual", "backend-id-mismatch"]>;
20
+ }>, Cause.YieldableError>;
29
21
  export declare class IntentionalShutdownCause extends IntentionalShutdownCause_base {
30
22
  }
31
- declare const StoreInterrupted_base: Schema.TaggedErrorClass<StoreInterrupted, "StoreInterrupted", {
32
- readonly _tag: Schema.tag<"StoreInterrupted">;
33
- } & {
34
- reason: typeof Schema.String;
35
- }>;
23
+ declare const StoreInterrupted_base: Schema.Class<StoreInterrupted, Schema.TaggedStruct<"StoreInterrupted", {
24
+ readonly reason: Schema.String;
25
+ }>, Cause.YieldableError>;
36
26
  export declare class StoreInterrupted extends StoreInterrupted_base {
37
27
  }
38
- declare const SqliteError_base: Schema.TaggedErrorClass<SqliteError, "SqliteError", {
39
- readonly _tag: Schema.tag<"SqliteError">;
40
- } & {
41
- query: Schema.optional<Schema.Struct<{
42
- sql: typeof Schema.String;
43
- bindValues: Schema.Union<[Schema.Record$<typeof Schema.String, typeof Schema.Any>, Schema.Array$<typeof Schema.Any>]>;
28
+ declare const SqliteError_base: Schema.Class<SqliteError, Schema.TaggedStruct<"SqliteError", {
29
+ readonly query: Schema.optional<Schema.Struct<{
30
+ readonly sql: Schema.String;
31
+ readonly bindValues: Schema.Union<readonly [Schema.$Record<Schema.String, Schema.Any>, Schema.$Array<Schema.Any>]>;
44
32
  }>>;
45
33
  /** The SQLite result code */
46
- code: Schema.optional<Schema.Union<[typeof Schema.Number, typeof Schema.String]>>;
34
+ readonly code: Schema.optional<Schema.Union<readonly [Schema.Finite, Schema.String]>>;
47
35
  /** The original SQLite3 error */
48
- cause: typeof Schema.Defect;
49
- note: Schema.optional<typeof Schema.String>;
50
- }>;
36
+ readonly cause: Schema.Defect;
37
+ readonly note: Schema.optional<Schema.String>;
38
+ }>, Cause.YieldableError>;
51
39
  export declare class SqliteError extends SqliteError_base {
52
40
  }
53
- declare const UnknownEventError_base: Schema.TaggedErrorClass<UnknownEventError, "UnknownEventError", {
54
- readonly _tag: Schema.tag<"UnknownEventError">;
55
- } & {
56
- event: Schema.SchemaClass<{
57
- readonly clientId: string;
58
- readonly sessionId: string;
59
- readonly name: string;
60
- readonly seqNum: {
61
- readonly global: number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">;
62
- readonly client: number & import("effect/Brand").Brand<"ClientEventSequenceNumber">;
63
- readonly rebaseGeneration: number;
64
- };
65
- readonly args: any;
66
- }, {
67
- readonly clientId: string;
68
- readonly sessionId: string;
69
- readonly name: string;
70
- readonly seqNum: {
71
- readonly global: number;
72
- readonly client: number;
73
- readonly rebaseGeneration: number;
41
+ declare const UnknownEventError_base: Schema.Class<UnknownEventError, Schema.TaggedStruct<"UnknownEventError", {
42
+ readonly event: Schema.Struct<{
43
+ readonly name: Schema.String;
44
+ readonly args: Schema.Any;
45
+ readonly seqNum: Schema.Struct<{
46
+ readonly global: Schema.brand<Schema.Int, "GlobalEventSequenceNumber">;
47
+ readonly client: Schema.brand<Schema.Int, "ClientEventSequenceNumber">;
48
+ readonly rebaseGeneration: Schema.Int;
49
+ }> & {
50
+ make(seqNum: import("./schema/EventSequenceNumber/client.ts").CompositeInput): import("./schema/EventSequenceNumber/client.ts").Composite;
74
51
  };
75
- readonly args: any;
76
- }, never>;
77
- reason: Schema.Literal<["event-definition-missing", "materializer-missing"]>;
78
- operation: typeof Schema.String;
79
- note: Schema.optional<typeof Schema.String>;
80
- }>;
52
+ readonly clientId: Schema.String;
53
+ readonly sessionId: Schema.String;
54
+ }>;
55
+ readonly reason: Schema.Literals<readonly ["event-definition-missing", "materializer-missing"]>;
56
+ readonly operation: Schema.String;
57
+ readonly note: Schema.optional<Schema.String>;
58
+ }>, Cause.YieldableError>;
81
59
  export declare class UnknownEventError extends UnknownEventError_base {
82
60
  }
83
- declare const MaterializeError_base: Schema.TaggedErrorClass<MaterializeError, "MaterializeError", {
84
- readonly _tag: Schema.tag<"MaterializeError">;
85
- } & {
86
- cause: Schema.Union<[typeof MaterializerHashMismatchError, typeof SqliteError, typeof UnknownEventError]>;
87
- note: Schema.optional<typeof Schema.String>;
88
- }>;
61
+ declare const MaterializeError_base: Schema.Class<MaterializeError, Schema.TaggedStruct<"MaterializeError", {
62
+ readonly cause: Schema.Union<readonly [typeof MaterializerHashMismatchError, typeof SqliteError, typeof UnknownEventError]>;
63
+ readonly note: Schema.optional<Schema.String>;
64
+ }>, Cause.YieldableError>;
89
65
  export declare class MaterializeError extends MaterializeError_base {
90
66
  }
91
67
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;;;;;;;;AAI9E,qBAAa,YAAa,SAAQ,iBAIhC;IACA,MAAM,CAAC,iBAAiB,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,uCAIhE;IAEH,MAAM,CAAC,sBAAsB,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,qCAOlE;IAEH,MAAM,CAAC,uBAAuB,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,uCACiD;CAC3H;;;;;;;;;AAED,qBAAa,6BAA8B,SAAQ,kCAQlD;CAAG;;;;;;AAEJ,qBAAa,wBAAyB,SAAQ,6BAI5C;CAAG;;;;;;AAEL,qBAAa,gBAAiB,SAAQ,qBAIpC;CAAG;;;;;;;;IASH,6BAA6B;;IAI7B,iCAAiC;;;;AAXnC,qBAAa,WAAY,SAAQ,gBAc/B;CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEL,qBAAa,iBAAkB,SAAQ,sBAKrC;CAAG;;;;;;;AAEL,qBAAa,gBAAiB,SAAQ,qBAGpC;CAAG"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAU,MAAM,EAAE,MAAM,EAAU,MAAM,yBAAyB,CAAA;;;;;;AAI9F,qBAAa,YAAa,SAAQ,iBAIhC;IACA,MAAM,CAAC,iBAAiB,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,uCAIhE;IAEH,MAAM,CAAC,sBAAsB,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,qCAQlE;IAEH,MAAM,CAAC,uBAAuB,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,uCAGtE;CACJ;;;;;AAID,qBAAa,6BAA8B,SAAQ,kCAQjD;CAAG;;;;AAEL,qBAAa,wBAAyB,SAAQ,6BAI5C;CAAG;;;;AAEL,qBAAa,gBAAiB,SAAQ,qBAKrC;CAAG;;;;;;IASF,6BAA6B;;IAI7B,iCAAiC;;;;AAXnC,qBAAa,WAAY,SAAQ,gBAc/B;CAAG;;;;;;;;;;;;;;;;;;;AAEL,qBAAa,iBAAkB,SAAQ,sBAQtC;CAAG;;;;;AAEJ,qBAAa,gBAAiB,SAAQ,qBAMrC;CAAG"}
package/dist/errors.js CHANGED
@@ -1,25 +1,27 @@
1
- import { Cause, Effect, Layer, Schema, Stream } from '@livestore/utils/effect';
2
- import * as LiveStoreEvent from "./schema/LiveStoreEvent/mod.js";
1
+ import { Cause, Effect, Layer, Option, Schema, Stream, Struct } from '@livestore/utils/effect';
2
+ import * as LiveStoreEvent from './schema/LiveStoreEvent/mod.js';
3
3
  export class UnknownError extends Schema.TaggedError('~@livestore/common/UnknownError')('UnknownError', {
4
- cause: Schema.Defect,
4
+ cause: Schema.Defect(),
5
5
  note: Schema.optional(Schema.String),
6
6
  payload: Schema.optional(Schema.Any),
7
7
  }) {
8
- static mapToUnknownError = (effect) => effect.pipe(Effect.mapError((cause) => (Schema.is(UnknownError)(cause) === true ? cause : new UnknownError({ cause }))), Effect.catchAllDefect((cause) => new UnknownError({ cause })));
9
- static mapToUnknownErrorLayer = (layer) => layer.pipe(Layer.catchAllCause((cause) => Cause.isFailType(cause) === true && Schema.is(UnknownError)(cause.error) === true
10
- ? Layer.fail(cause.error)
11
- : Layer.fail(new UnknownError({ cause: cause }))));
8
+ static mapToUnknownError = (effect) => effect.pipe(Effect.mapError((cause) => (Schema.is(UnknownError)(cause) === true ? cause : new UnknownError({ cause }))), Effect.catchDefect((cause) => new UnknownError({ cause })));
9
+ static mapToUnknownErrorLayer = (layer) => layer.pipe(Layer.catchCause((cause) => {
10
+ const error = Cause.findErrorOption(cause);
11
+ return Option.isSome(error) === true && Schema.is(UnknownError)(error.value) === true
12
+ ? Layer.effectContext(Effect.fail(error.value))
13
+ : Layer.effectContext(Effect.fail(new UnknownError({ cause: cause })));
14
+ }));
12
15
  static mapToUnknownErrorStream = (stream) => stream.pipe(Stream.mapError((cause) => (Schema.is(UnknownError)(cause) === true ? cause : new UnknownError({ cause }))));
13
16
  }
17
+ const materializerHashMismatchNote = 'Please make sure your event materializer is a pure function without side effects.';
14
18
  export class MaterializerHashMismatchError extends Schema.TaggedError('~@livestore/common/MaterializerHashMismatchError')('MaterializerHashMismatchError', {
15
19
  eventName: Schema.String,
16
- note: Schema.optionalWith(Schema.String, {
17
- default: () => 'Please make sure your event materializer is a pure function without side effects.',
18
- }),
20
+ note: Schema.String.pipe(Schema.withDecodingDefaultType(Effect.succeed(materializerHashMismatchNote)), Schema.withConstructorDefault(Effect.succeed(materializerHashMismatchNote))),
19
21
  }) {
20
22
  }
21
23
  export class IntentionalShutdownCause extends Schema.TaggedError('~@livestore/common/IntentionalShutdownCause')('IntentionalShutdownCause', {
22
- reason: Schema.Literal('devtools-reset', 'devtools-import', 'adapter-reset', 'manual', 'backend-id-mismatch'),
24
+ reason: Schema.Literals(['devtools-reset', 'devtools-import', 'adapter-reset', 'manual', 'backend-id-mismatch']),
23
25
  }) {
24
26
  }
25
27
  export class StoreInterrupted extends Schema.TaggedError('~@livestore/common/StoreInterrupted')('StoreInterrupted', {
@@ -29,26 +31,26 @@ export class StoreInterrupted extends Schema.TaggedError('~@livestore/common/Sto
29
31
  export class SqliteError extends Schema.TaggedError('~@livestore/common/SqliteError')('SqliteError', {
30
32
  query: Schema.optional(Schema.Struct({
31
33
  sql: Schema.String,
32
- bindValues: Schema.Union(Schema.Record({ key: Schema.String, value: Schema.Any }), Schema.Array(Schema.Any)),
34
+ bindValues: Schema.Union([Schema.Record(Schema.String, Schema.Any), Schema.Array(Schema.Any)]),
33
35
  })),
34
36
  /** The SQLite result code */
35
37
  // code: Schema.optional(Schema.Number),
36
38
  // Added string support for Expo SQLite (we should refactor this to have a unified error type)
37
- code: Schema.optional(Schema.Union(Schema.Number, Schema.String)),
39
+ code: Schema.optional(Schema.Union([Schema.Finite, Schema.String])),
38
40
  /** The original SQLite3 error */
39
- cause: Schema.Defect,
41
+ cause: Schema.Defect(),
40
42
  note: Schema.optional(Schema.String),
41
43
  }) {
42
44
  }
43
45
  export class UnknownEventError extends Schema.TaggedError('~@livestore/common/UnknownEventError')('UnknownEventError', {
44
- event: LiveStoreEvent.Client.Encoded.pipe(Schema.pick('name', 'args', 'seqNum', 'clientId', 'sessionId')),
45
- reason: Schema.Literal('event-definition-missing', 'materializer-missing'),
46
+ event: LiveStoreEvent.Client.Encoded.mapFields(Struct.pick(['name', 'args', 'seqNum', 'clientId', 'sessionId'])),
47
+ reason: Schema.Literals(['event-definition-missing', 'materializer-missing']),
46
48
  operation: Schema.String,
47
49
  note: Schema.optional(Schema.String),
48
50
  }) {
49
51
  }
50
52
  export class MaterializeError extends Schema.TaggedError('~@livestore/common/MaterializeError')('MaterializeError', {
51
- cause: Schema.Union(MaterializerHashMismatchError, SqliteError, UnknownEventError),
53
+ cause: Schema.Union([MaterializerHashMismatchError, SqliteError, UnknownEventError]),
52
54
  note: Schema.optional(Schema.String),
53
55
  }) {
54
56
  }
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -2,16 +2,19 @@ export * from './adapter-types.ts';
2
2
  export * from './bounded-collections.ts';
3
3
  export * from './debug-info.ts';
4
4
  export * as Devtools from './devtools/mod.ts';
5
+ export * from './leader-thread/RejectedPushError.ts';
5
6
  export * as LogConfig from './logging.ts';
6
7
  export * from './make-client-session.ts';
8
+ export * as MaterializationJournal from './MaterializationJournal.ts';
7
9
  export * from './materializer-helper.ts';
8
10
  export * from './otel.ts';
9
11
  export * from './rematerialize-from-eventlog.ts';
10
12
  export * from './schema/state/sqlite/query-builder/mod.ts';
11
13
  export * from './schema/state/sqlite/system-tables/mod.ts';
12
14
  export * from './schema-management/migrations.ts';
15
+ export { resolveSessionIdSymbolInBindValues, SessionIdSymbol, type BindableWithSessionIdSymbol, } from './session-id-symbol.ts';
13
16
  export * as SqliteDbHelper from './sqlite-db-helper.ts';
14
- export * from './leader-thread/RejectedPushError.ts';
17
+ export * as StateHead from './StateHead.ts';
15
18
  export * from './sync/index.ts';
16
19
  export * as SyncState from './sync/syncstate.ts';
17
20
  export * from './util.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,0BAA0B,CAAA;AACxC,cAAc,iBAAiB,CAAA;AAC/B,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAA;AAC7C,OAAO,KAAK,SAAS,MAAM,cAAc,CAAA;AACzC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,WAAW,CAAA;AACzB,cAAc,kCAAkC,CAAA;AAChD,cAAc,4CAA4C,CAAA;AAC1D,cAAc,4CAA4C,CAAA;AAC1D,cAAc,mCAAmC,CAAA;AACjD,OAAO,KAAK,cAAc,MAAM,uBAAuB,CAAA;AACvD,cAAc,sCAAsC,CAAA;AACpD,cAAc,iBAAiB,CAAA;AAC/B,OAAO,KAAK,SAAS,MAAM,qBAAqB,CAAA;AAChD,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,2BAA2B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,0BAA0B,CAAA;AACxC,cAAc,iBAAiB,CAAA;AAC/B,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAA;AAC7C,cAAc,sCAAsC,CAAA;AACpD,OAAO,KAAK,SAAS,MAAM,cAAc,CAAA;AACzC,cAAc,0BAA0B,CAAA;AACxC,OAAO,KAAK,sBAAsB,MAAM,6BAA6B,CAAA;AACrE,cAAc,0BAA0B,CAAA;AACxC,cAAc,WAAW,CAAA;AACzB,cAAc,kCAAkC,CAAA;AAChD,cAAc,4CAA4C,CAAA;AAC1D,cAAc,4CAA4C,CAAA;AAC1D,cAAc,mCAAmC,CAAA;AACjD,OAAO,EACL,kCAAkC,EAClC,eAAe,EACf,KAAK,2BAA2B,GACjC,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,cAAc,MAAM,uBAAuB,CAAA;AACvD,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,cAAc,iBAAiB,CAAA;AAC/B,OAAO,KAAK,SAAS,MAAM,qBAAqB,CAAA;AAChD,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,2BAA2B,CAAA"}
package/dist/index.js CHANGED
@@ -1,20 +1,23 @@
1
- export * from "./adapter-types.js";
2
- export * from "./bounded-collections.js";
3
- export * from "./debug-info.js";
4
- export * as Devtools from "./devtools/mod.js";
5
- export * as LogConfig from "./logging.js";
6
- export * from "./make-client-session.js";
7
- export * from "./materializer-helper.js";
8
- export * from "./otel.js";
9
- export * from "./rematerialize-from-eventlog.js";
10
- export * from "./schema/state/sqlite/query-builder/mod.js";
11
- export * from "./schema/state/sqlite/system-tables/mod.js";
12
- export * from "./schema-management/migrations.js";
13
- export * as SqliteDbHelper from "./sqlite-db-helper.js";
14
- export * from "./leader-thread/RejectedPushError.js";
15
- export * from "./sync/index.js";
16
- export * as SyncState from "./sync/syncstate.js";
17
- export * from "./util.js";
18
- export * from "./version.js";
19
- export * from "./WorkerTransportError.js";
1
+ export * from './adapter-types.js';
2
+ export * from './bounded-collections.js';
3
+ export * from './debug-info.js';
4
+ export * as Devtools from './devtools/mod.js';
5
+ export * from './leader-thread/RejectedPushError.js';
6
+ export * as LogConfig from './logging.js';
7
+ export * from './make-client-session.js';
8
+ export * as MaterializationJournal from './MaterializationJournal.js';
9
+ export * from './materializer-helper.js';
10
+ export * from './otel.js';
11
+ export * from './rematerialize-from-eventlog.js';
12
+ export * from './schema/state/sqlite/query-builder/mod.js';
13
+ export * from './schema/state/sqlite/system-tables/mod.js';
14
+ export * from './schema-management/migrations.js';
15
+ export { resolveSessionIdSymbolInBindValues, SessionIdSymbol, } from './session-id-symbol.js';
16
+ export * as SqliteDbHelper from './sqlite-db-helper.js';
17
+ export * as StateHead from './StateHead.js';
18
+ export * from './sync/index.js';
19
+ export * as SyncState from './sync/syncstate.js';
20
+ export * from './util.js';
21
+ export * from './version.js';
22
+ export * from './WorkerTransportError.js';
20
23
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,0BAA0B,CAAA;AACxC,cAAc,iBAAiB,CAAA;AAC/B,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAA;AAC7C,OAAO,KAAK,SAAS,MAAM,cAAc,CAAA;AACzC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,WAAW,CAAA;AACzB,cAAc,kCAAkC,CAAA;AAChD,cAAc,4CAA4C,CAAA;AAC1D,cAAc,4CAA4C,CAAA;AAC1D,cAAc,mCAAmC,CAAA;AACjD,OAAO,KAAK,cAAc,MAAM,uBAAuB,CAAA;AACvD,cAAc,sCAAsC,CAAA;AACpD,cAAc,iBAAiB,CAAA;AAC/B,OAAO,KAAK,SAAS,MAAM,qBAAqB,CAAA;AAChD,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,2BAA2B,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,0BAA0B,CAAA;AACxC,cAAc,iBAAiB,CAAA;AAC/B,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAA;AAC7C,cAAc,sCAAsC,CAAA;AACpD,OAAO,KAAK,SAAS,MAAM,cAAc,CAAA;AACzC,cAAc,0BAA0B,CAAA;AACxC,OAAO,KAAK,sBAAsB,MAAM,6BAA6B,CAAA;AACrE,cAAc,0BAA0B,CAAA;AACxC,cAAc,WAAW,CAAA;AACzB,cAAc,kCAAkC,CAAA;AAChD,cAAc,4CAA4C,CAAA;AAC1D,cAAc,4CAA4C,CAAA;AAC1D,cAAc,mCAAmC,CAAA;AACjD,OAAO,EACL,kCAAkC,EAClC,eAAe,GAEhB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,cAAc,MAAM,uBAAuB,CAAA;AACvD,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,cAAc,iBAAiB,CAAA;AAC/B,OAAO,KAAK,SAAS,MAAM,qBAAqB,CAAA;AAChD,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,2BAA2B,CAAA"}
@@ -1,9 +1,17 @@
1
- import type { Scope } from '@livestore/utils/effect';
2
- import { Effect } from '@livestore/utils/effect';
1
+ import { type HttpClient, type Latch, type Scope, type Tracer, Context, Effect, Layer, Queue, Stream, Subscribable } from '@livestore/utils/effect';
3
2
  import { type SqliteDb } from '../adapter-types.ts';
3
+ import type { UnknownEventError } from '../errors.ts';
4
4
  import type { LiveStoreSchema } from '../schema/mod.ts';
5
+ import { EventSequenceNumber, LiveStoreEvent } from '../schema/mod.ts';
6
+ import * as StateHead from '../StateHead.ts';
7
+ import type { SyncBackend } from '../sync/sync.ts';
5
8
  import * as SyncState from '../sync/syncstate.ts';
6
- import type { InitialBlockingSyncContext, LeaderSyncProcessor } from './types.ts';
9
+ import { type RejectedPushError } from './RejectedPushError.ts';
10
+ import type { ShutdownChannel } from './shutdown-channel.ts';
11
+ import type { InitialBlockingSyncContext, MaterializeEvent } from './types.ts';
12
+ export declare const TypeId: '~@livestore/common/LeaderSyncProcessor';
13
+ export type TypeId = typeof TypeId;
14
+ declare const LeaderSyncProcessor_base: Context.ServiceClass<LeaderSyncProcessor, "@livestore/common/LeaderSyncProcessor", Service>;
7
15
  /**
8
16
  * The LeaderSyncProcessor manages synchronization of events between
9
17
  * the local state and the sync backend, ensuring efficient and orderly processing.
@@ -34,19 +42,55 @@ import type { InitialBlockingSyncContext, LeaderSyncProcessor } from './types.ts
34
42
  *
35
43
  * See ClientSessionSyncProcessor for how the leader and session sync processors are similar/different.
36
44
  */
37
- export declare const makeLeaderSyncProcessor: ({ schema, dbState, initialBlockingSyncContext, initialSyncState, onError, onBackendIdMismatch, livePull, params, testing, }: {
38
- schema: LiveStoreSchema;
39
- dbState: SqliteDb;
40
- initialBlockingSyncContext: InitialBlockingSyncContext;
45
+ export declare class LeaderSyncProcessor extends LeaderSyncProcessor_base {
46
+ }
47
+ export interface Service {
48
+ readonly [TypeId]: TypeId;
49
+ /** Used by client sessions to subscribe to upstream sync state changes */
50
+ readonly pull: (args: {
51
+ cursor: EventSequenceNumber.Client.Composite;
52
+ }) => Stream.Stream<{
53
+ payload: typeof SyncState.PayloadUpstream.Type;
54
+ }>;
55
+ /** The `pullQueue` API can be used instead of `pull` when more convenient */
56
+ readonly pullQueue: (args: {
57
+ cursor: EventSequenceNumber.Client.Composite;
58
+ }) => Effect.Effect<Queue.Queue<{
59
+ payload: typeof SyncState.PayloadUpstream.Type;
60
+ }>, never, Scope.Scope>;
61
+ /**
62
+ * Used by client sessions to push events to the leader thread.
63
+ * The effect only finishes when the local push has been processed (i.e. succeeded or was rejected).
64
+ * This doesn't mean the events have been pushed to the sync backend.
65
+ */
66
+ readonly push: (
67
+ /** `batch` needs to follow the same rules as `batch` in `SyncBackend.push` */
68
+ batch: ReadonlyArray<LiveStoreEvent.Client.EncodedWithMeta>) => Effect.Effect<void, RejectedPushError>;
69
+ /** Currently only used by devtools which don't provide their own event numbers */
70
+ readonly pushPartial: (args: {
71
+ event: LiveStoreEvent.Input.Encoded;
72
+ clientId: string;
73
+ sessionId: string;
74
+ }) => Effect.Effect<void, UnknownEventError>;
75
+ readonly boot: Effect.Effect<{
76
+ initialLeaderHead: EventSequenceNumber.Client.Composite;
77
+ }, never, Scope.Scope | HttpClient.HttpClient>;
78
+ readonly syncState: Subscribable.Subscribable<SyncState.SyncState>;
79
+ }
80
+ interface Options {
81
+ readonly schema: LiveStoreSchema;
82
+ /** Complete runtime capabilities supplied before the processor is constructed. */
83
+ readonly runtime: Runtime;
84
+ readonly initialBlockingSyncContext: InitialBlockingSyncContext;
41
85
  /** Initial sync state rehydrated from the persisted eventlog or initial sync state */
42
- initialSyncState: SyncState.SyncState;
86
+ readonly initialSyncState: SyncState.SyncState;
43
87
  /**
44
88
  * What to do when a failure (any cause) occurs (except `BackendIdMismatchError`).
45
89
  *
46
90
  * - `'shutdown'`: Send the error to the shutdown channel and terminate the sync processor.
47
91
  * - `'ignore'`: Continue running.
48
92
  */
49
- onError: "shutdown" | "ignore";
93
+ readonly onError: 'shutdown' | 'ignore';
50
94
  /**
51
95
  * What to do when the sync backend identity has changed (i.e. the backend was reset).
52
96
  *
@@ -54,8 +98,8 @@ export declare const makeLeaderSyncProcessor: ({ schema, dbState, initialBlockin
54
98
  * - `'shutdown'`: Send a shutdown signal without clearing local storage.
55
99
  * - `'ignore'`: Continue running with stale data.
56
100
  */
57
- onBackendIdMismatch: "reset" | "shutdown" | "ignore";
58
- params: {
101
+ readonly onBackendIdMismatch: 'reset' | 'shutdown' | 'ignore';
102
+ readonly params: {
59
103
  /**
60
104
  * Maximum number of local events to process per batch cycle.
61
105
  *
@@ -77,7 +121,7 @@ export declare const makeLeaderSyncProcessor: ({ schema, dbState, initialBlockin
77
121
  *
78
122
  * @default 10
79
123
  */
80
- localPushBatchSize?: number;
124
+ readonly localPushBatchSize?: number;
81
125
  /**
82
126
  * Maximum number of events to push to the sync backend per batch.
83
127
  *
@@ -96,17 +140,42 @@ export declare const makeLeaderSyncProcessor: ({ schema, dbState, initialBlockin
96
140
  *
97
141
  * @default 50
98
142
  */
99
- backendPushBatchSize?: number;
143
+ readonly backendPushBatchSize?: number;
100
144
  };
101
145
  /**
102
146
  * Whether the sync backend should reactively pull new events from the sync backend
103
147
  * When `false`, the sync processor will only do an initial pull
104
148
  */
105
- livePull: boolean;
106
- testing: {
107
- delays?: {
108
- localPushProcessing?: Effect.Effect<void>;
149
+ readonly livePull: boolean;
150
+ readonly testing: {
151
+ readonly delays?: {
152
+ readonly localPushProcessing?: Effect.Effect<void>;
153
+ readonly backendPullReconnect?: (fallbackMs: number) => number;
154
+ };
155
+ readonly hooks?: {
156
+ readonly localPushAdmitted?: (events: ReadonlyArray<LiveStoreEvent.Client.EncodedWithMeta>) => Effect.Effect<void>;
157
+ /** Observes connectivity after the offline wait has subscribed, allowing tests to synchronize without sleeps. */
158
+ readonly backendPullReconnectWait?: (state: {
159
+ isConnected: boolean;
160
+ fallbackMs: number;
161
+ }) => Effect.Effect<void>;
109
162
  };
110
163
  };
111
- }) => Effect.Effect<LeaderSyncProcessor, never, Scope.Scope>;
164
+ }
165
+ /**
166
+ * Runtime capabilities used by sync processing. Keeping these explicit prevents the processor from
167
+ * depending on the outward-facing leader aggregate that contains the processor itself.
168
+ */
169
+ interface Runtime {
170
+ readonly dbState: SqliteDb;
171
+ readonly dbEventlog: SqliteDb;
172
+ readonly materializeEvent: MaterializeEvent;
173
+ readonly syncBackend: SyncBackend.SyncBackend | undefined;
174
+ readonly shutdownChannel: ShutdownChannel;
175
+ readonly devtoolsLatch: Latch.Latch | undefined;
176
+ readonly span: Tracer.Span | undefined;
177
+ }
178
+ export declare const make: (args_0: Options) => Effect.Effect<Service, never, Scope.Scope | StateHead.StateHead>;
179
+ export declare const layer: (options: Options) => Layer.Layer<LeaderSyncProcessor, never, StateHead.StateHead>;
180
+ export {};
112
181
  //# sourceMappingURL=LeaderSyncProcessor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LeaderSyncProcessor.d.ts","sourceRoot":"","sources":["../../src/leader-thread/LeaderSyncProcessor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAuB,KAAK,EAAU,MAAM,yBAAyB,CAAA;AACjF,OAAO,EAKL,MAAM,EAYP,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAyB,KAAK,QAAQ,EAAgB,MAAM,qBAAqB,CAAA;AAGxF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAKvD,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAA;AAKjD,OAAO,KAAK,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAWjF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,uBAAuB,GAAI,6HAUrC;IACD,MAAM,EAAE,eAAe,CAAA;IACvB,OAAO,EAAE,QAAQ,CAAA;IACjB,0BAA0B,EAAE,0BAA0B,CAAA;IACtD,sFAAsF;IACtF,gBAAgB,EAAE,SAAS,CAAC,SAAS,CAAA;IACrC;;;;;OAKG;IACH,OAAO,EAAE,UAAU,GAAG,QAAQ,CAAA;IAC9B;;;;;;OAMG;IACH,mBAAmB,EAAE,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAA;IACpD,MAAM,EAAE;QACN;;;;;;;;;;;;;;;;;;;;WAoBG;QACH,kBAAkB,CAAC,EAAE,MAAM,CAAA;QAC3B;;;;;;;;;;;;;;;;;WAiBG;QACH,oBAAoB,CAAC,EAAE,MAAM,CAAA;KAC9B,CAAA;IACD;;;OAGG;IACH,QAAQ,EAAE,OAAO,CAAA;IACjB,OAAO,EAAE;QACP,MAAM,CAAC,EAAE;YACP,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;SAC1C,CAAA;KACF,CAAA;CACF,KAAG,MAAM,CAAC,MAAM,CAAC,mBAAmB,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CA2RrD,CAAA"}
1
+ {"version":3,"file":"LeaderSyncProcessor.d.ts","sourceRoot":"","sources":["../../src/leader-thread/LeaderSyncProcessor.ts"],"names":[],"mappings":"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"}