@livestore/common 0.4.0 → 0.5.0-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (421) 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 +1 -1
  17. package/dist/__tests__/fixture.d.ts.map +1 -1
  18. package/dist/__tests__/fixture.js +3 -3
  19. package/dist/__tests__/fixture.js.map +1 -1
  20. package/dist/adapter-types.d.ts +29 -57
  21. package/dist/adapter-types.d.ts.map +1 -1
  22. package/dist/adapter-types.js +20 -37
  23. package/dist/adapter-types.js.map +1 -1
  24. package/dist/debug-info.d.ts +56 -56
  25. package/dist/debug-info.d.ts.map +1 -1
  26. package/dist/debug-info.js +28 -41
  27. package/dist/debug-info.js.map +1 -1
  28. package/dist/defs.d.ts +9 -9
  29. package/dist/defs.js +2 -2
  30. package/dist/devtools/devtools-compatibility.test.js +1 -0
  31. package/dist/devtools/devtools-compatibility.test.js.map +1 -1
  32. package/dist/devtools/devtools-messages-client-session.d.ts +520 -332
  33. package/dist/devtools/devtools-messages-client-session.d.ts.map +1 -1
  34. package/dist/devtools/devtools-messages-client-session.js +76 -74
  35. package/dist/devtools/devtools-messages-client-session.js.map +1 -1
  36. package/dist/devtools/devtools-messages-common.d.ts +27 -27
  37. package/dist/devtools/devtools-messages-common.d.ts.map +1 -1
  38. package/dist/devtools/devtools-messages-common.js +5 -5
  39. package/dist/devtools/devtools-messages-common.js.map +1 -1
  40. package/dist/devtools/devtools-messages-leader.d.ts +405 -343
  41. package/dist/devtools/devtools-messages-leader.d.ts.map +1 -1
  42. package/dist/devtools/devtools-messages-leader.js +101 -89
  43. package/dist/devtools/devtools-messages-leader.js.map +1 -1
  44. package/dist/devtools/devtools-sessioninfo.d.ts +18 -19
  45. package/dist/devtools/devtools-sessioninfo.d.ts.map +1 -1
  46. package/dist/devtools/devtools-sessioninfo.js +8 -5
  47. package/dist/devtools/devtools-sessioninfo.js.map +1 -1
  48. package/dist/devtools/mod.d.ts +4 -5
  49. package/dist/devtools/mod.d.ts.map +1 -1
  50. package/dist/devtools/mod.js +9 -5
  51. package/dist/devtools/mod.js.map +1 -1
  52. package/dist/errors.d.ts +45 -69
  53. package/dist/errors.d.ts.map +1 -1
  54. package/dist/errors.js +18 -16
  55. package/dist/errors.js.map +1 -1
  56. package/dist/index.d.ts +4 -1
  57. package/dist/index.d.ts.map +1 -1
  58. package/dist/index.js +4 -1
  59. package/dist/index.js.map +1 -1
  60. package/dist/leader-thread/LeaderSyncProcessor.d.ts +66 -18
  61. package/dist/leader-thread/LeaderSyncProcessor.d.ts.map +1 -1
  62. package/dist/leader-thread/LeaderSyncProcessor.js +519 -461
  63. package/dist/leader-thread/LeaderSyncProcessor.js.map +1 -1
  64. package/dist/leader-thread/RejectedPushError.d.ts +67 -36
  65. package/dist/leader-thread/RejectedPushError.d.ts.map +1 -1
  66. package/dist/leader-thread/RejectedPushError.js +24 -5
  67. package/dist/leader-thread/RejectedPushError.js.map +1 -1
  68. package/dist/leader-thread/connection.d.ts +1 -0
  69. package/dist/leader-thread/connection.d.ts.map +1 -1
  70. package/dist/leader-thread/connection.js +9 -8
  71. package/dist/leader-thread/connection.js.map +1 -1
  72. package/dist/leader-thread/eventlog.d.ts +4 -4
  73. package/dist/leader-thread/eventlog.d.ts.map +1 -1
  74. package/dist/leader-thread/eventlog.js +6 -6
  75. package/dist/leader-thread/eventlog.js.map +1 -1
  76. package/dist/leader-thread/leader-worker-devtools.d.ts +1 -1
  77. package/dist/leader-thread/leader-worker-devtools.d.ts.map +1 -1
  78. package/dist/leader-thread/leader-worker-devtools.js +33 -17
  79. package/dist/leader-thread/leader-worker-devtools.js.map +1 -1
  80. package/dist/leader-thread/make-leader-thread-layer.d.ts +9 -5
  81. package/dist/leader-thread/make-leader-thread-layer.d.ts.map +1 -1
  82. package/dist/leader-thread/make-leader-thread-layer.js +25 -35
  83. package/dist/leader-thread/make-leader-thread-layer.js.map +1 -1
  84. package/dist/leader-thread/make-leader-thread-layer.test.js +7 -7
  85. package/dist/leader-thread/make-leader-thread-layer.test.js.map +1 -1
  86. package/dist/leader-thread/materialize-event.d.ts +2 -1
  87. package/dist/leader-thread/materialize-event.d.ts.map +1 -1
  88. package/dist/leader-thread/materialize-event.js +4 -0
  89. package/dist/leader-thread/materialize-event.js.map +1 -1
  90. package/dist/leader-thread/recreate-db.d.ts.map +1 -1
  91. package/dist/leader-thread/recreate-db.js +18 -39
  92. package/dist/leader-thread/recreate-db.js.map +1 -1
  93. package/dist/leader-thread/shutdown-channel.d.ts +2 -6
  94. package/dist/leader-thread/shutdown-channel.d.ts.map +1 -1
  95. package/dist/leader-thread/shutdown-channel.js +2 -3
  96. package/dist/leader-thread/shutdown-channel.js.map +1 -1
  97. package/dist/leader-thread/stream-events.d.ts +4 -7
  98. package/dist/leader-thread/stream-events.d.ts.map +1 -1
  99. package/dist/leader-thread/stream-events.js +13 -16
  100. package/dist/leader-thread/stream-events.js.map +1 -1
  101. package/dist/leader-thread/types.d.ts +32 -69
  102. package/dist/leader-thread/types.d.ts.map +1 -1
  103. package/dist/leader-thread/types.js +5 -5
  104. package/dist/leader-thread/types.js.map +1 -1
  105. package/dist/logging.d.ts +5 -30
  106. package/dist/logging.d.ts.map +1 -1
  107. package/dist/logging.js +1 -32
  108. package/dist/logging.js.map +1 -1
  109. package/dist/make-client-session.d.ts +1 -2
  110. package/dist/make-client-session.d.ts.map +1 -1
  111. package/dist/make-client-session.js +3 -3
  112. package/dist/make-client-session.js.map +1 -1
  113. package/dist/materializer-helper.d.ts +0 -1
  114. package/dist/materializer-helper.d.ts.map +1 -1
  115. package/dist/materializer-helper.js +7 -35
  116. package/dist/materializer-helper.js.map +1 -1
  117. package/dist/otel.d.ts +2 -3
  118. package/dist/otel.d.ts.map +1 -1
  119. package/dist/otel.js +2 -7
  120. package/dist/otel.js.map +1 -1
  121. package/dist/rematerialize-from-eventlog.d.ts.map +1 -1
  122. package/dist/rematerialize-from-eventlog.js +28 -26
  123. package/dist/rematerialize-from-eventlog.js.map +1 -1
  124. package/dist/schema/EventDef/define.d.ts +4 -4
  125. package/dist/schema/EventDef/define.d.ts.map +1 -1
  126. package/dist/schema/EventDef/define.js +5 -5
  127. package/dist/schema/EventDef/define.js.map +1 -1
  128. package/dist/schema/EventDef/define.test.d.ts +2 -0
  129. package/dist/schema/EventDef/define.test.d.ts.map +1 -0
  130. package/dist/schema/EventDef/define.test.js +23 -0
  131. package/dist/schema/EventDef/define.test.js.map +1 -0
  132. package/dist/schema/EventDef/deprecated.d.ts +8 -13
  133. package/dist/schema/EventDef/deprecated.d.ts.map +1 -1
  134. package/dist/schema/EventDef/deprecated.js +12 -13
  135. package/dist/schema/EventDef/deprecated.js.map +1 -1
  136. package/dist/schema/EventDef/deprecated.test.js +1 -1
  137. package/dist/schema/EventDef/deprecated.test.js.map +1 -1
  138. package/dist/schema/EventDef/event-def.d.ts +1 -1
  139. package/dist/schema/EventDef/event-def.d.ts.map +1 -1
  140. package/dist/schema/EventSequenceNumber/client.d.ts +12 -12
  141. package/dist/schema/EventSequenceNumber/client.d.ts.map +1 -1
  142. package/dist/schema/EventSequenceNumber/client.js +8 -9
  143. package/dist/schema/EventSequenceNumber/client.js.map +1 -1
  144. package/dist/schema/EventSequenceNumber/global.d.ts +2 -2
  145. package/dist/schema/EventSequenceNumber/global.d.ts.map +1 -1
  146. package/dist/schema/EventSequenceNumber/global.js +1 -1
  147. package/dist/schema/EventSequenceNumber/global.js.map +1 -1
  148. package/dist/schema/EventSequenceNumber.test.js +5 -5
  149. package/dist/schema/EventSequenceNumber.test.js.map +1 -1
  150. package/dist/schema/LiveStoreEvent/client.d.ts +50 -179
  151. package/dist/schema/LiveStoreEvent/client.d.ts.map +1 -1
  152. package/dist/schema/LiveStoreEvent/client.js +32 -29
  153. package/dist/schema/LiveStoreEvent/client.js.map +1 -1
  154. package/dist/schema/LiveStoreEvent/client.test.js +11 -2
  155. package/dist/schema/LiveStoreEvent/client.test.js.map +1 -1
  156. package/dist/schema/LiveStoreEvent/for-event-def.d.ts +7 -7
  157. package/dist/schema/LiveStoreEvent/for-event-def.d.ts.map +1 -1
  158. package/dist/schema/LiveStoreEvent/global.d.ts +6 -6
  159. package/dist/schema/LiveStoreEvent/global.d.ts.map +1 -1
  160. package/dist/schema/LiveStoreEvent/global.js +1 -1
  161. package/dist/schema/LiveStoreEvent/global.js.map +1 -1
  162. package/dist/schema/LiveStoreEvent/input.d.ts +5 -5
  163. package/dist/schema/LiveStoreEvent/input.d.ts.map +1 -1
  164. package/dist/schema/LiveStoreEvent/input.js +3 -3
  165. package/dist/schema/LiveStoreEvent/input.js.map +1 -1
  166. package/dist/schema/mod.d.ts +1 -0
  167. package/dist/schema/mod.d.ts.map +1 -1
  168. package/dist/schema/mod.js +1 -0
  169. package/dist/schema/mod.js.map +1 -1
  170. package/dist/schema/schema.d.ts.map +1 -1
  171. package/dist/schema/schema.js +3 -2
  172. package/dist/schema/schema.js.map +1 -1
  173. package/dist/schema/state/sqlite/client-document-def.d.ts +12 -17
  174. package/dist/schema/state/sqlite/client-document-def.d.ts.map +1 -1
  175. package/dist/schema/state/sqlite/client-document-def.js +23 -20
  176. package/dist/schema/state/sqlite/client-document-def.js.map +1 -1
  177. package/dist/schema/state/sqlite/client-document-def.test.js +29 -8
  178. package/dist/schema/state/sqlite/client-document-def.test.js.map +1 -1
  179. package/dist/schema/state/sqlite/column-annotations.d.ts +13 -13
  180. package/dist/schema/state/sqlite/column-annotations.d.ts.map +1 -1
  181. package/dist/schema/state/sqlite/column-annotations.js +13 -15
  182. package/dist/schema/state/sqlite/column-annotations.js.map +1 -1
  183. package/dist/schema/state/sqlite/column-annotations.test.js +19 -43
  184. package/dist/schema/state/sqlite/column-annotations.test.js.map +1 -1
  185. package/dist/schema/state/sqlite/column-def.d.ts +1 -1
  186. package/dist/schema/state/sqlite/column-def.d.ts.map +1 -1
  187. package/dist/schema/state/sqlite/column-def.js +57 -31
  188. package/dist/schema/state/sqlite/column-def.js.map +1 -1
  189. package/dist/schema/state/sqlite/column-def.test.js +118 -72
  190. package/dist/schema/state/sqlite/column-def.test.js.map +1 -1
  191. package/dist/schema/state/sqlite/column-spec.js.map +1 -1
  192. package/dist/schema/state/sqlite/column-spec.test.js +2 -2
  193. package/dist/schema/state/sqlite/db-schema/ast/sqlite.d.ts +2 -2
  194. package/dist/schema/state/sqlite/db-schema/ast/sqlite.d.ts.map +1 -1
  195. package/dist/schema/state/sqlite/db-schema/ast/sqlite.js +13 -4
  196. package/dist/schema/state/sqlite/db-schema/ast/sqlite.js.map +1 -1
  197. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.d.ts +9 -9
  198. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.d.ts.map +1 -1
  199. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.js +8 -13
  200. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.js.map +1 -1
  201. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.test.js +27 -16
  202. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.test.js.map +1 -1
  203. package/dist/schema/state/sqlite/db-schema/dsl/mod.d.ts +13 -11
  204. package/dist/schema/state/sqlite/db-schema/dsl/mod.d.ts.map +1 -1
  205. package/dist/schema/state/sqlite/db-schema/dsl/mod.js +5 -3
  206. package/dist/schema/state/sqlite/db-schema/dsl/mod.js.map +1 -1
  207. package/dist/schema/state/sqlite/mod.d.ts +1 -3
  208. package/dist/schema/state/sqlite/mod.d.ts.map +1 -1
  209. package/dist/schema/state/sqlite/mod.js +1 -1
  210. package/dist/schema/state/sqlite/mod.js.map +1 -1
  211. package/dist/schema/state/sqlite/persistence.d.ts +11 -0
  212. package/dist/schema/state/sqlite/persistence.d.ts.map +1 -0
  213. package/dist/schema/state/sqlite/persistence.js +10 -0
  214. package/dist/schema/state/sqlite/persistence.js.map +1 -0
  215. package/dist/schema/state/sqlite/query-builder/api.d.ts +7 -7
  216. package/dist/schema/state/sqlite/query-builder/api.d.ts.map +1 -1
  217. package/dist/schema/state/sqlite/query-builder/astToSql.d.ts.map +1 -1
  218. package/dist/schema/state/sqlite/query-builder/astToSql.js +27 -23
  219. package/dist/schema/state/sqlite/query-builder/astToSql.js.map +1 -1
  220. package/dist/schema/state/sqlite/query-builder/impl.d.ts +3 -1
  221. package/dist/schema/state/sqlite/query-builder/impl.d.ts.map +1 -1
  222. package/dist/schema/state/sqlite/query-builder/impl.js +16 -14
  223. package/dist/schema/state/sqlite/query-builder/impl.js.map +1 -1
  224. package/dist/schema/state/sqlite/query-builder/impl.test.js +362 -596
  225. package/dist/schema/state/sqlite/query-builder/impl.test.js.map +1 -1
  226. package/dist/schema/state/sqlite/schema-helpers.js +1 -1
  227. package/dist/schema/state/sqlite/schema-helpers.js.map +1 -1
  228. package/dist/schema/state/sqlite/system-tables/eventlog-tables.d.ts +102 -134
  229. package/dist/schema/state/sqlite/system-tables/eventlog-tables.d.ts.map +1 -1
  230. package/dist/schema/state/sqlite/system-tables/eventlog-tables.js +2 -2
  231. package/dist/schema/state/sqlite/system-tables/eventlog-tables.js.map +1 -1
  232. package/dist/schema/state/sqlite/system-tables/state-tables.d.ts +328 -106
  233. package/dist/schema/state/sqlite/system-tables/state-tables.d.ts.map +1 -1
  234. package/dist/schema/state/sqlite/system-tables/state-tables.js +33 -1
  235. package/dist/schema/state/sqlite/system-tables/state-tables.js.map +1 -1
  236. package/dist/schema/state/sqlite/table-def.d.ts +16 -19
  237. package/dist/schema/state/sqlite/table-def.d.ts.map +1 -1
  238. package/dist/schema/state/sqlite/table-def.js +53 -3
  239. package/dist/schema/state/sqlite/table-def.js.map +1 -1
  240. package/dist/schema/state/sqlite/table-def.test.js +153 -36
  241. package/dist/schema/state/sqlite/table-def.test.js.map +1 -1
  242. package/dist/schema/unknown-events.d.ts.map +1 -1
  243. package/dist/schema/unknown-events.js +2 -1
  244. package/dist/schema/unknown-events.js.map +1 -1
  245. package/dist/schema-management/__tests__/migrations-autoincrement-quoting.test.js +2 -2
  246. package/dist/session-id-symbol.d.ts +29 -0
  247. package/dist/session-id-symbol.d.ts.map +1 -0
  248. package/dist/session-id-symbol.js +44 -0
  249. package/dist/session-id-symbol.js.map +1 -0
  250. package/dist/sql-queries/sql-queries.d.ts.map +1 -1
  251. package/dist/sql-queries/sql-queries.js +8 -10
  252. package/dist/sql-queries/sql-queries.js.map +1 -1
  253. package/dist/sql-queries/types.d.ts +6 -7
  254. package/dist/sql-queries/types.d.ts.map +1 -1
  255. package/dist/sql-queries/types.js.map +1 -1
  256. package/dist/sqlite-db-helper.d.ts +21 -1
  257. package/dist/sqlite-db-helper.d.ts.map +1 -1
  258. package/dist/sqlite-db-helper.js +37 -2
  259. package/dist/sqlite-db-helper.js.map +1 -1
  260. package/dist/sqlite-types.d.ts +3 -6
  261. package/dist/sqlite-types.d.ts.map +1 -1
  262. package/dist/sqlite-types.js +3 -3
  263. package/dist/sqlite-types.js.map +1 -1
  264. package/dist/sync/ClientSessionSyncProcessor.d.ts +38 -16
  265. package/dist/sync/ClientSessionSyncProcessor.d.ts.map +1 -1
  266. package/dist/sync/ClientSessionSyncProcessor.js +196 -66
  267. package/dist/sync/ClientSessionSyncProcessor.js.map +1 -1
  268. package/dist/sync/errors.d.ts +12 -18
  269. package/dist/sync/errors.d.ts.map +1 -1
  270. package/dist/sync/errors.js +2 -2
  271. package/dist/sync/errors.js.map +1 -1
  272. package/dist/sync/mock-sync-backend.d.ts +2 -3
  273. package/dist/sync/mock-sync-backend.d.ts.map +1 -1
  274. package/dist/sync/mock-sync-backend.js +54 -33
  275. package/dist/sync/mock-sync-backend.js.map +1 -1
  276. package/dist/sync/mock-sync-backend.test.d.ts +2 -0
  277. package/dist/sync/mock-sync-backend.test.d.ts.map +1 -0
  278. package/dist/sync/mock-sync-backend.test.js +49 -0
  279. package/dist/sync/mock-sync-backend.test.js.map +1 -0
  280. package/dist/sync/next/history-dag-common.d.ts +4 -0
  281. package/dist/sync/next/history-dag-common.d.ts.map +1 -1
  282. package/dist/sync/next/history-dag-common.js +52 -31
  283. package/dist/sync/next/history-dag-common.js.map +1 -1
  284. package/dist/sync/next/history-dag.d.ts.map +1 -1
  285. package/dist/sync/next/history-dag.js +2 -1
  286. package/dist/sync/next/history-dag.js.map +1 -1
  287. package/dist/sync/next/test/compact-events.calculator.test.js +2 -2
  288. package/dist/sync/next/test/event-fixtures.d.ts +7 -7
  289. package/dist/sync/next/test/event-fixtures.js +1 -1
  290. package/dist/sync/next/test/event-fixtures.js.map +1 -1
  291. package/dist/sync/next/test/history-dag-common.test.d.ts +2 -0
  292. package/dist/sync/next/test/history-dag-common.test.d.ts.map +1 -0
  293. package/dist/sync/next/test/history-dag-common.test.js +73 -0
  294. package/dist/sync/next/test/history-dag-common.test.js.map +1 -0
  295. package/dist/sync/sync-backend-kv.d.ts.map +1 -1
  296. package/dist/sync/sync-backend-kv.js +4 -2
  297. package/dist/sync/sync-backend-kv.js.map +1 -1
  298. package/dist/sync/sync-backend.d.ts +15 -15
  299. package/dist/sync/sync-backend.d.ts.map +1 -1
  300. package/dist/sync/sync-backend.js +9 -5
  301. package/dist/sync/sync-backend.js.map +1 -1
  302. package/dist/sync/sync.d.ts +1 -1
  303. package/dist/sync/sync.d.ts.map +1 -1
  304. package/dist/sync/syncstate.d.ts +97 -173
  305. package/dist/sync/syncstate.d.ts.map +1 -1
  306. package/dist/sync/syncstate.js +34 -37
  307. package/dist/sync/syncstate.js.map +1 -1
  308. package/dist/sync/syncstate.test.js +100 -61
  309. package/dist/sync/syncstate.test.js.map +1 -1
  310. package/dist/sync/transport-chunking.d.ts +15 -16
  311. package/dist/sync/transport-chunking.d.ts.map +1 -1
  312. package/dist/sync/transport-chunking.js +23 -32
  313. package/dist/sync/transport-chunking.js.map +1 -1
  314. package/dist/util.d.ts +11 -4
  315. package/dist/util.d.ts.map +1 -1
  316. package/dist/util.js +19 -2
  317. package/dist/util.js.map +1 -1
  318. package/dist/version.d.ts.map +1 -1
  319. package/dist/version.js.map +1 -1
  320. package/package.json +19 -37
  321. package/src/ClientSessionLeaderThreadProxy.ts +1 -1
  322. package/src/MaterializationJournal.ts +184 -0
  323. package/src/StateHead.ts +80 -0
  324. package/src/WorkerTransportError.ts +4 -4
  325. package/src/__tests__/fixture.ts +3 -3
  326. package/src/adapter-types.ts +24 -61
  327. package/src/debug-info.ts +50 -70
  328. package/src/defs.ts +2 -2
  329. package/src/devtools/devtools-compatibility.test.ts +1 -0
  330. package/src/devtools/devtools-messages-client-session.ts +56 -65
  331. package/src/devtools/devtools-messages-common.ts +12 -11
  332. package/src/devtools/devtools-messages-leader.ts +71 -69
  333. package/src/devtools/devtools-sessioninfo.ts +13 -11
  334. package/src/devtools/mod.ts +4 -5
  335. package/src/errors.ts +46 -34
  336. package/src/index.ts +8 -1
  337. package/src/leader-thread/LeaderSyncProcessor.ts +794 -691
  338. package/src/leader-thread/RejectedPushError.ts +40 -27
  339. package/src/leader-thread/connection.ts +12 -8
  340. package/src/leader-thread/eventlog.ts +7 -7
  341. package/src/leader-thread/leader-worker-devtools.ts +37 -19
  342. package/src/leader-thread/make-leader-thread-layer.test.ts +7 -7
  343. package/src/leader-thread/make-leader-thread-layer.ts +56 -53
  344. package/src/leader-thread/materialize-event.ts +13 -8
  345. package/src/leader-thread/recreate-db.ts +24 -59
  346. package/src/leader-thread/shutdown-channel.ts +3 -14
  347. package/src/leader-thread/stream-events.ts +104 -101
  348. package/src/leader-thread/types.ts +24 -62
  349. package/src/logging.ts +5 -52
  350. package/src/make-client-session.ts +6 -6
  351. package/src/materializer-helper.ts +8 -37
  352. package/src/otel.ts +5 -14
  353. package/src/rematerialize-from-eventlog.ts +97 -94
  354. package/src/schema/EventDef/define.test.ts +28 -0
  355. package/src/schema/EventDef/define.ts +20 -19
  356. package/src/schema/EventDef/deprecated.test.ts +1 -8
  357. package/src/schema/EventDef/deprecated.ts +17 -20
  358. package/src/schema/EventDef/event-def.ts +2 -4
  359. package/src/schema/EventSequenceNumber/client.ts +8 -9
  360. package/src/schema/EventSequenceNumber/global.ts +1 -1
  361. package/src/schema/EventSequenceNumber.test.ts +5 -5
  362. package/src/schema/LiveStoreEvent/client.test.ts +17 -4
  363. package/src/schema/LiveStoreEvent/client.ts +36 -35
  364. package/src/schema/LiveStoreEvent/for-event-def.ts +7 -7
  365. package/src/schema/LiveStoreEvent/global.ts +1 -1
  366. package/src/schema/LiveStoreEvent/input.ts +6 -6
  367. package/src/schema/mod.ts +1 -0
  368. package/src/schema/schema.ts +3 -2
  369. package/src/schema/state/sqlite/client-document-def.test.ts +32 -13
  370. package/src/schema/state/sqlite/client-document-def.ts +95 -80
  371. package/src/schema/state/sqlite/column-annotations.test.ts +26 -45
  372. package/src/schema/state/sqlite/column-annotations.ts +26 -30
  373. package/src/schema/state/sqlite/column-def.test.ts +132 -77
  374. package/src/schema/state/sqlite/column-def.ts +72 -37
  375. package/src/schema/state/sqlite/column-spec.test.ts +2 -2
  376. package/src/schema/state/sqlite/column-spec.ts +3 -2
  377. package/src/schema/state/sqlite/db-schema/ast/sqlite.ts +15 -5
  378. package/src/schema/state/sqlite/db-schema/dsl/__snapshots__/field-defs.test.ts.snap +123 -63
  379. package/src/schema/state/sqlite/db-schema/dsl/field-defs.test.ts +35 -16
  380. package/src/schema/state/sqlite/db-schema/dsl/field-defs.ts +25 -31
  381. package/src/schema/state/sqlite/db-schema/dsl/mod.ts +35 -21
  382. package/src/schema/state/sqlite/mod.ts +2 -4
  383. package/src/schema/state/sqlite/persistence.ts +11 -0
  384. package/src/schema/state/sqlite/query-builder/api.ts +9 -9
  385. package/src/schema/state/sqlite/query-builder/astToSql.ts +31 -26
  386. package/src/schema/state/sqlite/query-builder/impl.test.ts +433 -669
  387. package/src/schema/state/sqlite/query-builder/impl.ts +19 -15
  388. package/src/schema/state/sqlite/schema-helpers.ts +1 -1
  389. package/src/schema/state/sqlite/system-tables/eventlog-tables.ts +2 -2
  390. package/src/schema/state/sqlite/system-tables/state-tables.ts +41 -1
  391. package/src/schema/state/sqlite/table-def.test.ts +204 -66
  392. package/src/schema/state/sqlite/table-def.ts +96 -45
  393. package/src/schema/unknown-events.ts +3 -2
  394. package/src/schema-management/__tests__/migrations-autoincrement-quoting.test.ts +2 -2
  395. package/src/session-id-symbol.ts +59 -0
  396. package/src/sql-queries/sql-queries.ts +8 -12
  397. package/src/sql-queries/types.ts +6 -7
  398. package/src/sqlite-db-helper.ts +64 -2
  399. package/src/sqlite-types.ts +5 -8
  400. package/src/sync/ClientSessionSyncProcessor.ts +303 -119
  401. package/src/sync/errors.ts +14 -12
  402. package/src/sync/mock-sync-backend.test.ts +78 -0
  403. package/src/sync/mock-sync-backend.ts +93 -47
  404. package/src/sync/next/history-dag-common.ts +60 -34
  405. package/src/sync/next/history-dag.ts +4 -1
  406. package/src/sync/next/test/compact-events.calculator.test.ts +2 -2
  407. package/src/sync/next/test/event-fixtures.ts +1 -1
  408. package/src/sync/next/test/history-dag-common.test.ts +87 -0
  409. package/src/sync/sync-backend-kv.ts +4 -2
  410. package/src/sync/sync-backend.ts +15 -15
  411. package/src/sync/sync.ts +1 -1
  412. package/src/sync/syncstate.test.ts +191 -140
  413. package/src/sync/syncstate.ts +63 -53
  414. package/src/sync/transport-chunking.ts +34 -39
  415. package/src/util.ts +18 -9
  416. package/src/version.ts +1 -2
  417. package/dist/sql-queries/misc.d.ts +0 -2
  418. package/dist/sql-queries/misc.d.ts.map +0 -1
  419. package/dist/sql-queries/misc.js +0 -2
  420. package/dist/sql-queries/misc.js.map +0 -1
  421. package/src/sql-queries/misc.ts +0 -2
@@ -1,8 +1,9 @@
1
- import { Effect, Option, Schema, type Scope, Subscribable } from '@livestore/utils/effect';
1
+ import { Effect, Exit, Option, type Scope, Subscribable } from '@livestore/utils/effect';
2
2
  import type { ClientSession } from '../adapter-types.ts';
3
- import type { MaterializeError } from '../errors.ts';
3
+ import { MaterializeError } from '../errors.ts';
4
4
  import * as LiveStoreEvent from '../schema/LiveStoreEvent/mod.ts';
5
5
  import type { LiveStoreSchema } from '../schema/mod.ts';
6
+ import * as StateHead from '../StateHead.ts';
6
7
  import * as SyncState from './syncstate.ts';
7
8
  /**
8
9
  * Rebase behaviour:
@@ -23,7 +24,6 @@ export declare const makeClientSessionSyncProcessor: (args_0: {
23
24
  schema: LiveStoreSchema;
24
25
  clientSession: ClientSession;
25
26
  materializeEvent: (eventEncoded: LiveStoreEvent.Client.EncodedWithMeta, options: {
26
- withChangeset: boolean;
27
27
  materializerHashLeader: Option.Option<number>;
28
28
  }) => Effect.Effect<{
29
29
  writeTables: Set<string>;
@@ -42,16 +42,42 @@ export declare const makeClientSessionSyncProcessor: (args_0: {
42
42
  refreshTables: (tables: Set<string>) => void;
43
43
  params: {
44
44
  leaderPushBatchSize: number;
45
- simulation?: ClientSessionSyncProcessorSimulationParams;
45
+ /**
46
+ * Test-only deterministic barriers, awaited at fixed points of the rebase critical section.
47
+ * A test can park the pull fiber at a chosen point, inject a concurrent operation
48
+ * (a synchronous `push` or a `shutdown`), then release the barrier — without relying on
49
+ * virtual-time scheduling. Unset in production, where each lookup resolves to `Effect.void`.
50
+ */
51
+ rebaseBarriers?: Partial<Record<RebaseBarrierPoint, Effect.Effect<void>>>;
46
52
  };
47
53
  /**
48
54
  * Currently only used in the web adapter:
49
55
  * If true, registers a beforeunload event listener to confirm unsaved changes.
50
56
  */
51
57
  confirmUnsavedChanges: boolean;
52
- }) => Effect.Effect<ClientSessionSyncProcessor, never, never>;
58
+ }) => Effect.Effect<{
59
+ boot: Effect.Effect<void, never, Scope.Scope>;
60
+ shutdown: (exit: Exit.Exit<unknown, unknown>) => Effect.Effect<void>;
61
+ encodeEvents: (events: ReadonlyArray<LiveStoreEvent.Input.Decoded>) => Effect.Effect<ReadonlyArray<LiveStoreEvent.Client.EncodedWithMeta>>;
62
+ materializeEvents: (events: ReadonlyArray<LiveStoreEvent.Client.EncodedWithMeta>) => Effect.Effect<{
63
+ writeTables: Set<string>;
64
+ }, MaterializeError>;
65
+ push: (events: ReadonlyArray<LiveStoreEvent.Client.EncodedWithMeta>) => Effect.Effect<void>;
66
+ syncState: Subscribable.Subscribable<SyncState.SyncState, never, never>;
67
+ debug: {
68
+ awaitDrainStarted: Effect.Effect<void, never, never>;
69
+ awaitRejection: Effect.Effect<void, never, never>;
70
+ print: () => void;
71
+ debugInfo: () => {
72
+ rebaseCount: number;
73
+ advanceCount: number;
74
+ rejectCount: number;
75
+ };
76
+ };
77
+ }, never, StateHead.StateHead>;
53
78
  export interface ClientSessionSyncProcessor {
54
79
  boot: Effect.Effect<void, never, Scope.Scope>;
80
+ shutdown: (exit: Exit.Exit<unknown, unknown>) => Effect.Effect<void>;
55
81
  encodeEvents: (events: ReadonlyArray<LiveStoreEvent.Input.Decoded>) => Effect.Effect<ReadonlyArray<LiveStoreEvent.Client.EncodedWithMeta>>;
56
82
  push: (events: ReadonlyArray<LiveStoreEvent.Client.EncodedWithMeta>) => Effect.Effect<void>;
57
83
  materializeEvents: (events: ReadonlyArray<LiveStoreEvent.Client.EncodedWithMeta>) => Effect.Effect<{
@@ -62,6 +88,8 @@ export interface ClientSessionSyncProcessor {
62
88
  */
63
89
  syncState: Subscribable.Subscribable<SyncState.SyncState>;
64
90
  debug: {
91
+ awaitDrainStarted: Effect.Effect<void>;
92
+ awaitRejection: Effect.Effect<void>;
65
93
  print: () => void;
66
94
  debugInfo: () => {
67
95
  rebaseCount: number;
@@ -69,15 +97,9 @@ export interface ClientSessionSyncProcessor {
69
97
  };
70
98
  };
71
99
  }
72
- export declare const ClientSessionSyncProcessorSimulationParams: Schema.Struct<{
73
- pull: Schema.Struct<{
74
- '1_before_leader_push_fiber_interrupt': Schema.filter<typeof Schema.Int>;
75
- '2_before_leader_push_queue_clear': Schema.filter<typeof Schema.Int>;
76
- '3_before_rebase_rollback': Schema.filter<typeof Schema.Int>;
77
- '4_before_leader_push_queue_offer': Schema.filter<typeof Schema.Int>;
78
- '5_before_leader_push_fiber_run': Schema.filter<typeof Schema.Int>;
79
- }>;
80
- }>;
81
- type ClientSessionSyncProcessorSimulationParams = typeof ClientSessionSyncProcessorSimulationParams.Type;
82
- export {};
100
+ /**
101
+ * Injection points inside the rebase critical section where a test-only barrier may be awaited.
102
+ * Named for the step they precede so the deterministic no-loss tests can target the exact window.
103
+ */
104
+ export type RebaseBarrierPoint = 'before_leader_push_fiber_interrupt' | 'before_queue_reconcile' | 'before_leader_push_fiber_run';
83
105
  //# sourceMappingURL=ClientSessionSyncProcessor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ClientSessionSyncProcessor.d.ts","sourceRoot":"","sources":["../../src/sync/ClientSessionSyncProcessor.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,MAAM,EAGN,MAAM,EAEN,MAAM,EACN,KAAK,KAAK,EAEV,YAAY,EACb,MAAM,yBAAyB,CAAA;AAEhC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAGpD,OAAO,KAAK,cAAc,MAAM,iCAAiC,CAAA;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAK3C;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,8BAA8B;YASjC,eAAe;mBACR,aAAa;sBACV,CAChB,YAAY,EAAE,cAAc,CAAC,MAAM,CAAC,eAAe,EACnD,OAAO,EAAE;QAAE,aAAa,EAAE,OAAO,CAAC;QAAC,sBAAsB,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;KAAE,KAC/E,MAAM,CAAC,MAAM,CAChB;QACE,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;QACxB,gBAAgB,EACZ;YAAE,IAAI,EAAE,kBAAkB,CAAC;YAAC,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;YAAC,KAAK,EAAE,GAAG,CAAA;SAAE,GACvE;YAAE,IAAI,EAAE,OAAO,CAAA;SAAE,GACjB;YAAE,IAAI,EAAE,OAAO,CAAA;SAAE,CAAA;QACrB,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;KACxC,EACD,gBAAgB,CACjB;cACS,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI;mBACvC,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI;YACpC;QACN,mBAAmB,EAAE,MAAM,CAAA;QAC3B,UAAU,CAAC,EAAE,0CAA0C,CAAA;KACxD;IACD;;;OAGG;2BACoB,OAAO;6DA0S9B,CAAA;AAEF,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;IAC7C,YAAY,EAAE,CACZ,MAAM,EAAE,aAAa,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,KAChD,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAA;IACxE,IAAI,EAAE,CACJ,MAAM,EAAE,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,eAAe,CAAC,KACzD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACxB,iBAAiB,EAAE,CACjB,MAAM,EAAE,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,eAAe,CAAC,KACzD,MAAM,CAAC,MAAM,CAAC;QAAE,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;KAAE,EAAE,gBAAgB,CAAC,CAAA;IAClE;;OAEG;IACH,SAAS,EAAE,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;IACzD,KAAK,EAAE;QACL,KAAK,EAAE,MAAM,IAAI,CAAA;QACjB,SAAS,EAAE,MAAM;YACf,WAAW,EAAE,MAAM,CAAA;YACnB,YAAY,EAAE,MAAM,CAAA;SACrB,CAAA;KACF,CAAA;CACF;AAMD,eAAO,MAAM,0CAA0C;;;;;;;;EAQrD,CAAA;AACF,KAAK,0CAA0C,GAAG,OAAO,0CAA0C,CAAC,IAAI,CAAA"}
1
+ {"version":3,"file":"ClientSessionSyncProcessor.d.ts","sourceRoot":"","sources":["../../src/sync/ClientSessionSyncProcessor.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,15 @@
1
1
  /// <reference lib="dom" />
2
2
  import { LS_DEV, TRACE_VERBOSE } from '@livestore/utils';
3
- import { BucketQueue, Effect, Exit, FiberHandle, Option, Queue, Schema, Stream, Subscribable, } from '@livestore/utils/effect';
3
+ import { Cause, Deferred, Effect, Exit, Filter, FiberHandle, Option, Queue, Schema, Semaphore, Stream, Subscribable, TxQueue, } from '@livestore/utils/effect';
4
+ import { MaterializeError } from "../errors.js";
4
5
  import { isRejectedPushError } from "../leader-thread/RejectedPushError.js";
5
6
  import * as EventSequenceNumber from "../schema/EventSequenceNumber/mod.js";
6
7
  import * as LiveStoreEvent from "../schema/LiveStoreEvent/mod.js";
8
+ import { resolveSessionIdSymbolInEventArgs } from "../session-id-symbol.js";
9
+ import * as StateHead from "../StateHead.js";
7
10
  import * as SyncState from "./syncstate.js";
8
11
  /** Serialize value to JSON string for trace attributes */
9
- const jsonStringify = Schema.encodeSync(Schema.parseJson());
12
+ const jsonStringify = Schema.encodeSync(Schema.fromJsonString(Schema.Unknown));
10
13
  /**
11
14
  * Rebase behaviour:
12
15
  * - We continously pull events from the leader and apply them to the local store.
@@ -23,8 +26,9 @@ const jsonStringify = Schema.encodeSync(Schema.parseJson());
23
26
  * - The session sync processor has no downstream nodes.
24
27
  */
25
28
  export const makeClientSessionSyncProcessor = Effect.fn('makeClientSessionSyncProcessor')(function* ({ schema, clientSession, materializeEvent, rollback, refreshTables, params, confirmUnsavedChanges, }) {
29
+ const stateHead = yield* StateHead.StateHead;
26
30
  const eventSchema = LiveStoreEvent.Client.makeSchemaMemo(schema);
27
- const simSleep = (key, key2) => Effect.sleep((params.simulation?.[key]?.[key2] ?? 0));
31
+ const rebaseBarrier = (point) => params.rebaseBarriers?.[point] ?? Effect.void;
28
32
  const syncStateRef = {
29
33
  // The initial state is identical to the leader's initial state
30
34
  current: new SyncState.SyncState({
@@ -36,10 +40,33 @@ export const makeClientSessionSyncProcessor = Effect.fn('makeClientSessionSyncPr
36
40
  };
37
41
  /** Only used for debugging / observability / testing, it's not relied upon for correctness of the sync processor. */
38
42
  const syncStateUpdateQueue = yield* Queue.unbounded();
39
- const isClientEvent = (eventEncoded) => schema.eventsDefsMap.get(eventEncoded.name)?.options.clientOnly ?? false;
43
+ const isClientOnlyEvent = (eventEncoded) => schema.eventsDefsMap.get(eventEncoded.name)?.options.clientOnly ?? false;
40
44
  /** We're queuing push requests to reduce the number of messages sent to the leader by batching them */
41
- const leaderPushQueue = yield* BucketQueue.make();
42
- const boot = Effect.fn('client-session-sync-processor:boot')(function* () {
45
+ const leaderPushQueue = yield* TxQueue.unbounded();
46
+ /**
47
+ * Prevents pull reconciliation, push-rejection handling, and shutdown from running concurrently.
48
+ * These transitions inspect or update the pending events, leader push queue, and rejection state,
49
+ * so each must observe the others either fully before or fully after—not midway through bookkeeping.
50
+ *
51
+ * Regular local commits do not acquire this mutex; they remain synchronous and are incorporated
52
+ * when `reconcileLeaderPushQueue` reads the current pending events transactionally.
53
+ */
54
+ const pullReconciliationMutex = yield* Semaphore.make(1);
55
+ const shutdownDone = yield* Deferred.make();
56
+ const drainStartedSignal = yield* Deferred.make();
57
+ const rejectionObserved = yield* Deferred.make();
58
+ let shutdownStarted = false;
59
+ let terminalPushCause;
60
+ let unresolvedRejection;
61
+ let leaderPushingFiberHandle;
62
+ let pullingFiberHandle;
63
+ /** Rebuild the leader push queue from the current pending events without racing synchronous commits. */
64
+ const reconcileLeaderPushQueue = Effect.tx(Effect.gen(function* () {
65
+ const livePending = syncStateRef.current.pending;
66
+ yield* TxQueue.clear(leaderPushQueue);
67
+ yield* TxQueue.offerAll(leaderPushQueue, livePending);
68
+ }));
69
+ const boot = Effect.gen(function* () {
43
70
  if (confirmUnsavedChanges === true &&
44
71
  typeof window !== 'undefined' &&
45
72
  typeof window.addEventListener === 'function') {
@@ -51,28 +78,65 @@ export const makeClientSessionSyncProcessor = Effect.fn('makeClientSessionSyncPr
51
78
  };
52
79
  yield* Effect.acquireRelease(Effect.sync(() => window.addEventListener('beforeunload', onBeforeUnload)), () => Effect.sync(() => window.removeEventListener('beforeunload', onBeforeUnload)));
53
80
  }
54
- const leaderPushingFiberHandle = yield* FiberHandle.make();
81
+ const leaderPushingHandle = yield* FiberHandle.make();
82
+ const pullingHandle = yield* FiberHandle.make();
83
+ leaderPushingFiberHandle = leaderPushingHandle;
84
+ pullingFiberHandle = pullingHandle;
55
85
  const backgroundLeaderPushing = Effect.gen(function* () {
56
- const batch = yield* BucketQueue.takeBetween(leaderPushQueue, 1, params.leaderPushBatchSize);
57
- yield* clientSession.leaderThread.events.push(batch).pipe(Effect.catchIf(isRejectedPushError, () => {
58
- debugInfo.rejectCount++;
59
- return BucketQueue.clear(leaderPushQueue);
60
- }));
61
- }).pipe(Effect.forever, Effect.interruptible, Effect.tapCauseLogPretty, Effect.catchAllCause((cause) => clientSession.shutdown(Exit.failCause(cause))));
62
- yield* FiberHandle.run(leaderPushingFiberHandle, backgroundLeaderPushing);
86
+ while (true) {
87
+ const batch = yield* TxQueue.takeBetween(leaderPushQueue, 1, params.leaderPushBatchSize).pipe(Effect.catchIf(Cause.isDone, () => Effect.void));
88
+ if (batch === undefined)
89
+ return;
90
+ yield* clientSession.leaderThread.events.push(batch).pipe(Effect.catchIf(isRejectedPushError, (error) =>
91
+ // A pull carrying the leader's corrective history can complete before or after this
92
+ // rejection response. Use the same mutex as pull reconciliation so this decision uses
93
+ // one stable view of pending events and cannot install a stale rejection fence after recovery.
94
+ pullReconciliationMutex
95
+ .withPermits(1)(Effect.gen(function* () {
96
+ debugInfo.rejectCount++;
97
+ if (shutdownStarted === true)
98
+ return yield* Effect.die(error);
99
+ // A concurrent pull may have already confirmed or rebased this batch while the
100
+ // push response was in flight. In that case, rebuild the queue from the reconciled
101
+ // pending events instead of creating a fence that no future pull could release.
102
+ if (isRejectedBatchRecovered(batch, syncStateRef.current.pending) === true) {
103
+ yield* reconcileLeaderPushQueue;
104
+ yield* Deferred.succeed(rejectionObserved, undefined);
105
+ return false;
106
+ }
107
+ unresolvedRejection = { error, events: batch };
108
+ yield* TxQueue.clear(leaderPushQueue);
109
+ yield* Deferred.succeed(rejectionObserved, undefined);
110
+ return true;
111
+ }))
112
+ .pipe(Effect.flatMap((shouldFence) =>
113
+ // Local commits remain synchronous and continue accumulating in pending/the FIFO,
114
+ // but this sole drain worker stays parked until pull reconciliation reseeds it.
115
+ shouldFence === true ? Effect.never : Effect.void))));
116
+ }
117
+ }).pipe(Effect.interruptible, Effect.tapCauseLogPretty, Effect.catchCause((cause) => {
118
+ if (Cause.hasInterruptsOnly(cause) === true)
119
+ return Effect.void;
120
+ terminalPushCause ??= cause;
121
+ return shutdownStarted === true
122
+ ? Effect.void
123
+ : clientSession.shutdown(Exit.failCause(cause)).pipe(Effect.forkDetach, Effect.asVoid);
124
+ }));
125
+ yield* FiberHandle.run(leaderPushingHandle, backgroundLeaderPushing);
63
126
  // NOTE We need to lazily call `.pull` as we want the cursor to be updated
64
- yield* Stream.suspend(() => clientSession.leaderThread.events.pull({ cursor: syncStateRef.current.upstreamHead })).pipe(Stream.tap(({ payload }) => Effect.gen(function* () {
127
+ const backgroundPulling = Stream.suspend(() => clientSession.leaderThread.events.pull({ cursor: syncStateRef.current.upstreamHead })).pipe(Stream.tap(() => clientSession.devtools.enabled === true ? clientSession.devtools.pullLatch.await : Effect.void), Stream.tap(({ payload }) => Effect.gen(function* () {
65
128
  // yield* Effect.logDebug('ClientSessionSyncProcessor:pull', payload)
66
- if (clientSession.devtools.enabled === true) {
67
- yield* clientSession.devtools.pullLatch.await;
68
- }
129
+ const rejectionAtPullStart = unresolvedRejection;
69
130
  const mergeResult = yield* SyncState.merge({
70
131
  syncState: syncStateRef.current,
71
132
  payload,
72
- isClientEvent,
133
+ isClientOnlyEvent,
73
134
  isEqualEvent: LiveStoreEvent.Client.isEqualEncoded,
74
- }).pipe(Effect.filterOrDieMessage((r) => r._tag !== 'reject', 'Unexpected reject in client-session-sync-processor'));
135
+ }).pipe(Effect.filterOrElse((r) => r._tag !== 'reject', () => Effect.die(new Error('Unexpected reject in client-session-sync-processor'))));
75
136
  syncStateRef.current = mergeResult.newSyncState;
137
+ const recoveredRejection = rejectionAtPullStart !== undefined &&
138
+ unresolvedRejection === rejectionAtPullStart &&
139
+ isRejectedBatchRecovered(rejectionAtPullStart.events, mergeResult.newSyncState.pending) === true;
76
140
  if (mergeResult._tag === 'rebase') {
77
141
  yield* Effect.spanEvent('merge:pull:rebase', {
78
142
  payloadTag: payload._tag,
@@ -82,18 +146,14 @@ export const makeClientSessionSyncProcessor = Effect.fn('makeClientSessionSyncPr
82
146
  ...(TRACE_VERBOSE === true ? { res: jsonStringify(mergeResult) } : {}),
83
147
  });
84
148
  debugInfo.rebaseCount++;
85
- if (SIMULATION_ENABLED === true)
86
- yield* simSleep('pull', '1_before_leader_push_fiber_interrupt');
87
- yield* FiberHandle.clear(leaderPushingFiberHandle);
88
- if (SIMULATION_ENABLED === true)
89
- yield* simSleep('pull', '2_before_leader_push_queue_clear');
90
- // Reset the leader push queue since we're rebasing and will push again
91
- yield* BucketQueue.clear(leaderPushQueue);
92
- if (SIMULATION_ENABLED === true)
93
- yield* simSleep('pull', '3_before_rebase_rollback');
149
+ // Barrier: before we interrupt the in-flight leader-push worker.
150
+ yield* rebaseBarrier('before_leader_push_fiber_interrupt');
151
+ yield* FiberHandle.clear(leaderPushingHandle);
94
152
  if (LS_DEV === true) {
95
153
  yield* Effect.logDebug('merge:pull:rebase: rollback', mergeResult.rollbackEvents.length, ...mergeResult.rollbackEvents.slice(0, 10).map((_) => _.toJSON()));
96
154
  }
155
+ // Roll back the optimistic session changesets for the events this rebase discards.
156
+ // (Independent of the push queue below; order relative to the queue reconcile is irrelevant.)
97
157
  for (let i = mergeResult.rollbackEvents.length - 1; i >= 0; i--) {
98
158
  const event = mergeResult.rollbackEvents[i];
99
159
  if (event.meta.sessionChangeset._tag !== 'no-op' && event.meta.sessionChangeset._tag !== 'unset') {
@@ -101,12 +161,34 @@ export const makeClientSessionSyncProcessor = Effect.fn('makeClientSessionSyncPr
101
161
  event.meta.sessionChangeset = { _tag: 'unset' };
102
162
  }
103
163
  }
104
- if (SIMULATION_ENABLED === true)
105
- yield* simSleep('pull', '4_before_leader_push_queue_offer');
106
- yield* BucketQueue.offerAll(leaderPushQueue, mergeResult.newSyncState.pending);
107
- if (SIMULATION_ENABLED === true)
108
- yield* simSleep('pull', '5_before_leader_push_fiber_run');
109
- yield* FiberHandle.run(leaderPushingFiberHandle, backgroundLeaderPushing);
164
+ if (mergeResult.rollbackEvents.length > 0) {
165
+ yield* stateHead
166
+ .set(mergeResult.rollbackEvents[0].parentSeqNum)
167
+ .pipe(Effect.mapError((cause) => MaterializeError.make({ cause })));
168
+ }
169
+ // Barrier: before the atomic queue reconciliation (the "discard + re-offer" step).
170
+ // A `push` admitted here appends its event to `syncStateRef.current.pending` AND to
171
+ // `leaderPushQueue`; the reconciliation below re-reads the current pending events, so
172
+ // that event is preserved rather than removed by the queue clear.
173
+ yield* rebaseBarrier('before_queue_reconcile');
174
+ // Atomic queue reconciliation. `push` runs via `Effect.runSyncWith` (a synchronous run,
175
+ // per the store's fully-synchronous commit contract), so it executes as an indivisible
176
+ // unit that can only interleave in THIS fiber's async gaps — never inside a synchronous
177
+ // stretch. By reading the current pending events, clearing, and re-offering with no async
178
+ // park between them, this block is atomic w.r.t. `push`. This replaces the blocking
179
+ // `pullReconciliationMutex` permit that previously forced `push` to wait: queue rebuilding
180
+ // and synchronous commits cannot interleave, without suspending the commit path.
181
+ //
182
+ // We re-read the current `syncStateRef.current.pending` instead of the stale
183
+ // `mergeResult.newSyncState.pending` snapshot captured at merge time, so any event a
184
+ // concurrent push appended during the async steps above (fiber interrupt / rollback /
185
+ // barriers) is included. `Effect.tx` commits the clear+offer as one transaction.
186
+ yield* reconcileLeaderPushQueue;
187
+ // Barrier: before restarting the leader-push worker.
188
+ yield* rebaseBarrier('before_leader_push_fiber_run');
189
+ if (recoveredRejection === true)
190
+ unresolvedRejection = undefined;
191
+ yield* FiberHandle.run(leaderPushingHandle, backgroundLeaderPushing);
110
192
  }
111
193
  else {
112
194
  yield* Effect.spanEvent('merge:pull:advance', {
@@ -116,16 +198,21 @@ export const makeClientSessionSyncProcessor = Effect.fn('makeClientSessionSyncPr
116
198
  ...(TRACE_VERBOSE === true ? { res: jsonStringify(mergeResult) } : {}),
117
199
  });
118
200
  debugInfo.advanceCount++;
201
+ if (recoveredRejection === true) {
202
+ yield* FiberHandle.clear(leaderPushingHandle);
203
+ yield* reconcileLeaderPushQueue;
204
+ unresolvedRejection = undefined;
205
+ yield* FiberHandle.run(leaderPushingHandle, backgroundLeaderPushing);
206
+ }
119
207
  }
120
208
  if (mergeResult.newEvents.length === 0) {
121
209
  // If there are no new events, we need to update the sync state as well
122
- yield* syncStateUpdateQueue.offer(mergeResult.newSyncState);
210
+ yield* Queue.offer(syncStateUpdateQueue, mergeResult.newSyncState);
123
211
  return;
124
212
  }
125
213
  const writeTables = new Set();
126
214
  for (const event of mergeResult.newEvents) {
127
215
  const { writeTables: newWriteTables, sessionChangeset, materializerHash, } = yield* materializeEvent(event, {
128
- withChangeset: true,
129
216
  materializerHashLeader: event.meta.materializerHashLeader,
130
217
  });
131
218
  for (const table of newWriteTables) {
@@ -136,34 +223,73 @@ export const makeClientSessionSyncProcessor = Effect.fn('makeClientSessionSyncPr
136
223
  }
137
224
  refreshTables(writeTables);
138
225
  // We're only triggering the sync state update after all events have been materialized
139
- yield* syncStateUpdateQueue.offer(mergeResult.newSyncState);
140
- }).pipe(Effect.tapCauseLogPretty, Effect.catchAllCause((cause) => clientSession.shutdown(Exit.failCause(cause))))), Stream.runDrain, Effect.forever, // NOTE Whenever the leader changes, we need to re-start the stream
141
- Effect.interruptible, Effect.withSpan('client-session-sync-processor:pull'), Effect.tapCauseLogPretty, Effect.forkScoped);
142
- })();
226
+ yield* Queue.offer(syncStateUpdateQueue, mergeResult.newSyncState);
227
+ }).pipe(pullReconciliationMutex.withPermits(1), Effect.tapCauseLogPretty, Effect.catchCause((cause) => clientSession.shutdown(Exit.failCause(cause))))), Stream.runDrain, Effect.forever, // NOTE Whenever the leader changes, we need to re-start the stream
228
+ Effect.interruptible, Effect.withSpan('client-session-sync-processor:pull'), Effect.tapCauseLogPretty);
229
+ yield* FiberHandle.run(pullingHandle, backgroundPulling);
230
+ }).pipe(Effect.withSpan('client-session-sync-processor:boot'));
231
+ const runShutdown = Effect.fn('client-session-sync-processor:shutdown')(function* (exit) {
232
+ if (Exit.isFailure(exit) === true) {
233
+ if (pullingFiberHandle !== undefined)
234
+ yield* FiberHandle.clear(pullingFiberHandle);
235
+ yield* pullReconciliationMutex.withPermits(1)(TxQueue.end(leaderPushQueue));
236
+ if (leaderPushingFiberHandle !== undefined)
237
+ yield* FiberHandle.clear(leaderPushingFiberHandle);
238
+ return;
239
+ }
240
+ yield* pullReconciliationMutex.withPermits(1)(Effect.gen(function* () {
241
+ if (pullingFiberHandle !== undefined)
242
+ yield* FiberHandle.clear(pullingFiberHandle);
243
+ yield* TxQueue.end(leaderPushQueue);
244
+ yield* Deferred.succeed(drainStartedSignal, undefined);
245
+ }));
246
+ if (leaderPushingFiberHandle !== undefined) {
247
+ if (unresolvedRejection === undefined) {
248
+ yield* FiberHandle.awaitEmpty(leaderPushingFiberHandle);
249
+ }
250
+ else {
251
+ yield* FiberHandle.clear(leaderPushingFiberHandle);
252
+ }
253
+ }
254
+ if (terminalPushCause !== undefined)
255
+ return yield* Effect.failCause(terminalPushCause);
256
+ if (unresolvedRejection !== undefined)
257
+ return yield* Effect.die(unresolvedRejection.error);
258
+ });
259
+ const shutdown = (exit) => Effect.suspend(() => {
260
+ if (shutdownStarted === true)
261
+ return Deferred.await(shutdownDone);
262
+ shutdownStarted = true;
263
+ return runShutdown(exit).pipe(Effect.exit, Effect.tap((shutdownExit) => Deferred.done(shutdownDone, shutdownExit)), Effect.forkDetach, Effect.andThen(Deferred.await(shutdownDone)));
264
+ });
143
265
  const encodeEvents = Effect.fn('client-session-sync-processor:encode-events')(function* (events) {
144
266
  let baseEventSequenceNumber = syncStateRef.current.localHead;
145
267
  return yield* Effect.forEach(events, ({ name, args }) => Effect.gen(function* () {
146
- const eventDef = yield* Effect.fromNullable(schema.eventsDefsMap.get(name)).pipe(Effect.orDieDebugger);
268
+ const eventDef = yield* Effect.fromNullishOr(schema.eventsDefsMap.get(name)).pipe(Effect.orDieDebugger);
147
269
  const nextNumPair = EventSequenceNumber.Client.nextPair({
148
270
  seqNum: baseEventSequenceNumber,
149
- isClient: eventDef.options.clientOnly,
271
+ isClientOnly: eventDef.options.clientOnly,
150
272
  rebaseGeneration: baseEventSequenceNumber.rebaseGeneration,
151
273
  });
152
274
  baseEventSequenceNumber = nextNumPair.seqNum;
153
- return new LiveStoreEvent.Client.EncodedWithMeta(Schema.encodeUnknownSync(eventSchema)({
275
+ // Encoding known-valid domain data: an encode failure is an invariant violation (a defect),
276
+ // so `Effect.orDie` is the correct modeling — it keeps the typed error channel narrow.
277
+ const encoded = yield* Schema.encodeUnknownEffect(eventSchema)({
154
278
  name,
155
- args,
279
+ // Client-document events expose SessionIdSymbol as an input placeholder, but encoded events are persisted
280
+ // and replayed by concrete id. Resolve during schema encoding so commit never mutates the caller's event.
281
+ args: resolveSessionIdSymbolInEventArgs(args, clientSession.sessionId),
156
282
  ...nextNumPair,
157
283
  clientId: clientSession.clientId,
158
284
  sessionId: clientSession.sessionId,
159
- }));
285
+ }).pipe(Effect.orDie);
286
+ return new LiveStoreEvent.Client.EncodedWithMeta(encoded);
160
287
  }));
161
288
  });
162
289
  const materializeEvents = Effect.fn('client-session-sync-processor:materialize-events')(function* (events) {
163
290
  const writeTables = new Set();
164
291
  for (const event of events) {
165
292
  const { writeTables: newWriteTables, sessionChangeset, materializerHash, } = yield* materializeEvent(event, {
166
- withChangeset: true,
167
293
  materializerHashLeader: Option.none(),
168
294
  });
169
295
  for (const table of newWriteTables) {
@@ -175,12 +301,15 @@ export const makeClientSessionSyncProcessor = Effect.fn('makeClientSessionSyncPr
175
301
  return { writeTables };
176
302
  });
177
303
  const push = Effect.fn('client-session-sync-processor:push')(function* (encodedEvents) {
304
+ if (shutdownStarted === true) {
305
+ return yield* Effect.die(new Error('Cannot push events after the client session sync processor starts shutting down'));
306
+ }
178
307
  const mergeResult = yield* SyncState.merge({
179
308
  syncState: syncStateRef.current,
180
309
  payload: { _tag: 'local-push', newEvents: encodedEvents },
181
- isClientEvent,
310
+ isClientOnlyEvent,
182
311
  isEqualEvent: LiveStoreEvent.Client.isEqualEncoded,
183
- }).pipe(Effect.filterOrDieMessage((r) => r._tag === 'advance', 'Expected advance from local-push merge'));
312
+ }).pipe(Effect.filterMapOrElse(Filter.tagged()('advance'), () => Effect.die(new Error('Expected advance from local-push merge'))));
184
313
  yield* Effect.annotateCurrentSpan({
185
314
  batchSize: encodedEvents.length,
186
315
  mergeResultTag: mergeResult._tag,
@@ -191,8 +320,11 @@ export const makeClientSessionSyncProcessor = Effect.fn('makeClientSessionSyncPr
191
320
  ...(TRACE_VERBOSE === true ? { mergeResult: jsonStringify(mergeResult) } : {}),
192
321
  });
193
322
  syncStateRef.current = mergeResult.newSyncState;
194
- yield* syncStateUpdateQueue.offer(mergeResult.newSyncState);
195
- yield* BucketQueue.offerAll(leaderPushQueue, mergeResult.newEvents);
323
+ yield* Queue.offer(syncStateUpdateQueue, mergeResult.newSyncState);
324
+ const rejectedEvents = yield* TxQueue.offerAll(leaderPushQueue, mergeResult.newEvents);
325
+ if (rejectedEvents.length > 0) {
326
+ return yield* Effect.die(new Error('Leader push queue closed while accepting events'));
327
+ }
196
328
  });
197
329
  const debugInfo = {
198
330
  rebaseCount: 0,
@@ -201,6 +333,7 @@ export const makeClientSessionSyncProcessor = Effect.fn('makeClientSessionSyncPr
201
333
  };
202
334
  return {
203
335
  boot,
336
+ shutdown,
204
337
  encodeEvents,
205
338
  materializeEvents,
206
339
  push,
@@ -209,28 +342,25 @@ export const makeClientSessionSyncProcessor = Effect.fn('makeClientSessionSyncPr
209
342
  changes: Stream.fromQueue(syncStateUpdateQueue),
210
343
  }),
211
344
  debug: {
345
+ awaitDrainStarted: Deferred.await(drainStartedSignal),
346
+ awaitRejection: Deferred.await(rejectionObserved),
212
347
  print: () => Effect.gen(function* () {
213
348
  console.log('debugInfo', debugInfo);
214
349
  console.log('syncState', syncStateRef.current);
215
- const pushQueueSize = yield* BucketQueue.size(leaderPushQueue);
216
- console.log('pushQueueSize', pushQueueSize);
217
- const pushQueueItems = yield* BucketQueue.peekAll(leaderPushQueue);
350
+ const pushQueueItems = yield* snapshotTxQueue(leaderPushQueue);
351
+ console.log('pushQueueSize', pushQueueItems.length);
218
352
  console.log('pushQueueItems', pushQueueItems.map((_) => _.toJSON()));
219
353
  }).pipe(Effect.runSync),
220
354
  debugInfo: () => debugInfo,
221
355
  },
222
356
  };
223
357
  });
224
- // TODO turn this into a build-time "macro" so all simulation snippets are removed for production builds
225
- const SIMULATION_ENABLED = true;
226
- // Warning: High values for the simulation params can lead to very long test runs since those get multiplied with the number of events
227
- export const ClientSessionSyncProcessorSimulationParams = Schema.Struct({
228
- pull: Schema.Struct({
229
- '1_before_leader_push_fiber_interrupt': Schema.Int.pipe(Schema.between(0, 15)),
230
- '2_before_leader_push_queue_clear': Schema.Int.pipe(Schema.between(0, 15)),
231
- '3_before_rebase_rollback': Schema.Int.pipe(Schema.between(0, 15)),
232
- '4_before_leader_push_queue_offer': Schema.Int.pipe(Schema.between(0, 15)),
233
- '5_before_leader_push_fiber_run': Schema.Int.pipe(Schema.between(0, 15)),
234
- }),
235
- });
358
+ const snapshotTxQueue = (queue) => Effect.tx(Effect.gen(function* () {
359
+ if ((yield* TxQueue.isOpen(queue)) === false)
360
+ return [];
361
+ const items = yield* TxQueue.clear(queue);
362
+ yield* TxQueue.offerAll(queue, items);
363
+ return items;
364
+ }));
365
+ const isRejectedBatchRecovered = (rejectedEvents, pendingEvents) => rejectedEvents.every((rejectedEvent) => pendingEvents.some((pendingEvent) => LiveStoreEvent.Client.isEqualEncoded(pendingEvent, rejectedEvent)) === false);
236
366
  //# sourceMappingURL=ClientSessionSyncProcessor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ClientSessionSyncProcessor.js","sourceRoot":"","sources":["../../src/sync/ClientSessionSyncProcessor.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AACxD,OAAO,EACL,WAAW,EACX,MAAM,EACN,IAAI,EACJ,WAAW,EACX,MAAM,EACN,KAAK,EACL,MAAM,EAEN,MAAM,EACN,YAAY,GACb,MAAM,yBAAyB,CAAA;AAIhC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAA;AAC3E,OAAO,KAAK,mBAAmB,MAAM,sCAAsC,CAAA;AAC3E,OAAO,KAAK,cAAc,MAAM,iCAAiC,CAAA;AAEjE,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C,0DAA0D;AAC1D,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAA;AAE3D;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,MAAM,CAAC,EAAE,CAAC,gCAAgC,CAAC,CAAC,QAAQ,CAAC,EAAE,EACnG,MAAM,EACN,aAAa,EACb,gBAAgB,EAChB,QAAQ,EACR,aAAa,EACb,MAAM,EACN,qBAAqB,GA6BtB;IACC,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;IAEhE,MAAM,QAAQ,GAAG,CACf,GAAS,EACT,IAA4D,EAC5D,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAW,CAAC,CAAA;IAEpE,MAAM,YAAY,GAAG;QACnB,+DAA+D;QAC/D,OAAO,EAAE,IAAI,SAAS,CAAC,SAAS,CAAC;YAC/B,SAAS,EAAE,aAAa,CAAC,YAAY,CAAC,YAAY,CAAC,UAAU;YAC7D,YAAY,EAAE,aAAa,CAAC,YAAY,CAAC,YAAY,CAAC,UAAU;YAChE,6FAA6F;YAC7F,OAAO,EAAE,EAAE;SACZ,CAAC;KACH,CAAA;IAED,qHAAqH;IACrH,MAAM,oBAAoB,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,SAAS,EAAuB,CAAA;IAC1E,MAAM,aAAa,GAAG,CAAC,YAAmD,EAAE,EAAE,CAC5E,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,UAAU,IAAI,KAAK,CAAA;IAE1E,uGAAuG;IACvG,MAAM,eAAe,GAAG,KAAK,CAAC,CAAC,WAAW,CAAC,IAAI,EAAyC,CAAA;IAExF,MAAM,IAAI,GAAuC,MAAM,CAAC,EAAE,CAAC,oCAAoC,CAAC,CAAC,QAAQ,CAAC;QACxG,IACE,qBAAqB,KAAK,IAAI;YAC9B,OAAO,MAAM,KAAK,WAAW;YAC7B,OAAO,MAAM,CAAC,gBAAgB,KAAK,UAAU,EAC7C,CAAC;YACD,MAAM,cAAc,GAAG,CAAC,KAAwB,EAAE,EAAE;gBAClD,IAAI,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC5C,qCAAqC;oBACrC,KAAK,CAAC,cAAc,EAAE,CAAA;gBACxB,CAAC;YACH,CAAC,CAAA;YAED,KAAK,CAAC,CAAC,MAAM,CAAC,cAAc,CAC1B,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,EAC1E,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,CACpF,CAAA;QACH,CAAC;QAED,MAAM,wBAAwB,GAAG,KAAK,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAA;QAE1D,MAAM,uBAAuB,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,EAAE,MAAM,CAAC,mBAAmB,CAAC,CAAA;YAC5F,KAAK,CAAC,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CACvD,MAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,GAAG,EAAE;gBACvC,SAAS,CAAC,WAAW,EAAE,CAAA;gBACvB,OAAO,WAAW,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;YAC3C,CAAC,CAAC,CACH,CAAA;QACH,CAAC,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,aAAa,EACpB,MAAM,CAAC,iBAAiB,EACxB,MAAM,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAC/E,CAAA;QAED,KAAK,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,wBAAwB,EAAE,uBAAuB,CAAC,CAAA;QAEzE,0EAA0E;QAC1E,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CACzB,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CACtF,CAAC,IAAI,CACJ,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CACzB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,qEAAqE;YAErE,IAAI,aAAa,CAAC,QAAQ,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;gBAC5C,KAAK,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAA;YAC/C,CAAC;YAED,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC;gBACzC,SAAS,EAAE,YAAY,CAAC,OAAO;gBAC/B,OAAO;gBACP,aAAa;gBACb,YAAY,EAAE,cAAc,CAAC,MAAM,CAAC,cAAc;aACnD,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,kBAAkB,CACvB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,EAC1B,oDAAoD,CACrD,CACF,CAAA;YAED,YAAY,CAAC,OAAO,GAAG,WAAW,CAAC,YAAY,CAAA;YAE/C,IAAI,WAAW,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAClC,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,mBAAmB,EAAE;oBAC3C,UAAU,EAAE,OAAO,CAAC,IAAI;oBACxB,GAAG,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACtE,cAAc,EAAE,WAAW,CAAC,SAAS,CAAC,MAAM;oBAC5C,aAAa,EAAE,WAAW,CAAC,cAAc,CAAC,MAAM;oBAChD,GAAG,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACvE,CAAC,CAAA;gBAEF,SAAS,CAAC,WAAW,EAAE,CAAA;gBAEvB,IAAI,kBAAkB,KAAK,IAAI;oBAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,sCAAsC,CAAC,CAAA;gBAEhG,KAAK,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;gBAElD,IAAI,kBAAkB,KAAK,IAAI;oBAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,kCAAkC,CAAC,CAAA;gBAE5F,uEAAuE;gBACvE,KAAK,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;gBAEzC,IAAI,kBAAkB,KAAK,IAAI;oBAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAA;gBAEpF,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBACpB,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CACpB,6BAA6B,EAC7B,WAAW,CAAC,cAAc,CAAC,MAAM,EACjC,GAAG,WAAW,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAClE,CAAA;gBACH,CAAC;gBAED,KAAK,IAAI,CAAC,GAAG,WAAW,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBAChE,MAAM,KAAK,GAAG,WAAW,CAAC,cAAc,CAAC,CAAC,CAAE,CAAA;oBAC5C,IAAI,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;wBACjG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;wBAC1C,KAAK,CAAC,IAAI,CAAC,gBAAgB,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;oBACjD,CAAC;gBACH,CAAC;gBAED,IAAI,kBAAkB,KAAK,IAAI;oBAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,kCAAkC,CAAC,CAAA;gBAE5F,KAAK,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;gBAE9E,IAAI,kBAAkB,KAAK,IAAI;oBAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,gCAAgC,CAAC,CAAA;gBAE1F,KAAK,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,wBAAwB,EAAE,uBAAuB,CAAC,CAAA;YAC3E,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,oBAAoB,EAAE;oBAC5C,UAAU,EAAE,OAAO,CAAC,IAAI;oBACxB,GAAG,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACtE,cAAc,EAAE,WAAW,CAAC,SAAS,CAAC,MAAM;oBAC5C,GAAG,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACvE,CAAC,CAAA;gBAEF,SAAS,CAAC,YAAY,EAAE,CAAA;YAC1B,CAAC;YAED,IAAI,WAAW,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvC,uEAAuE;gBACvE,KAAK,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC,CAAA;gBAC3D,OAAM;YACR,CAAC;YAED,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAA;YACrC,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,SAAS,EAAE,CAAC;gBAC1C,MAAM,EACJ,WAAW,EAAE,cAAc,EAC3B,gBAAgB,EAChB,gBAAgB,GACjB,GAAG,KAAK,CAAC,CAAC,gBAAgB,CAAC,KAAK,EAAE;oBACjC,aAAa,EAAE,IAAI;oBACnB,sBAAsB,EAAE,KAAK,CAAC,IAAI,CAAC,sBAAsB;iBAC1D,CAAC,CAAA;gBACF,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;oBACnC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;gBACxB,CAAC;gBAED,KAAK,CAAC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;gBAC9C,KAAK,CAAC,IAAI,CAAC,uBAAuB,GAAG,gBAAgB,CAAA;YACvD,CAAC;YAED,aAAa,CAAC,WAAW,CAAC,CAAA;YAE1B,sFAAsF;YACtF,KAAK,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC,CAAA;QAC7D,CAAC,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,iBAAiB,EACxB,MAAM,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAC/E,CACF,EACD,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,OAAO,EAAE,mEAAmE;QACnF,MAAM,CAAC,aAAa,EACpB,MAAM,CAAC,QAAQ,CAAC,oCAAoC,CAAC,EACrD,MAAM,CAAC,iBAAiB,EACxB,MAAM,CAAC,UAAU,CAClB,CAAA;IACH,CAAC,CAAC,EAAE,CAAA;IAEJ,MAAM,YAAY,GAA+C,MAAM,CAAC,EAAE,CAAC,6CAA6C,CAAC,CAAC,QAAQ,CAAC,EACjI,MAAM;QAEN,IAAI,uBAAuB,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,CAAA;QAC5D,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CACtD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;YACtG,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC;gBACtD,MAAM,EAAE,uBAAuB;gBAC/B,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,UAAU;gBACrC,gBAAgB,EAAE,uBAAuB,CAAC,gBAAgB;aAC3D,CAAC,CAAA;YACF,uBAAuB,GAAG,WAAW,CAAC,MAAM,CAAA;YAC5C,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,eAAe,CAC9C,MAAM,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;gBACpC,IAAI;gBACJ,IAAI;gBACJ,GAAG,WAAW;gBACd,QAAQ,EAAE,aAAa,CAAC,QAAQ;gBAChC,SAAS,EAAE,aAAa,CAAC,SAAS;aACnC,CAAC,CACH,CAAA;QACH,CAAC,CAAC,CACH,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,iBAAiB,GAAoD,MAAM,CAAC,EAAE,CAAC,kDAAkD,CAAC,CAAC,QAAQ,CAAC,EAChJ,MAAM;QAEN,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAA;QACrC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,EACJ,WAAW,EAAE,cAAc,EAC3B,gBAAgB,EAChB,gBAAgB,GACjB,GAAG,KAAK,CAAC,CAAC,gBAAgB,CAAC,KAAK,EAAE;gBACjC,aAAa,EAAE,IAAI;gBACnB,sBAAsB,EAAE,MAAM,CAAC,IAAI,EAAE;aACtC,CAAC,CAAA;YACF,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;gBACnC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACxB,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;YAC9C,KAAK,CAAC,IAAI,CAAC,uBAAuB,GAAG,gBAAgB,CAAA;QACvD,CAAC;QACD,OAAO,EAAE,WAAW,EAAE,CAAA;IACxB,CAAC,CAAC,CAAA;IAEF,MAAM,IAAI,GAAuC,MAAM,CAAC,EAAE,CAAC,oCAAoC,CAAC,CAAC,QAAQ,CAAC,EACxG,aAAa;QAEb,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC;YACzC,SAAS,EAAE,YAAY,CAAC,OAAO;YAC/B,OAAO,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE;YACzD,aAAa;YACb,YAAY,EAAE,cAAc,CAAC,MAAM,CAAC,cAAc;SACnD,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,kBAAkB,CACvB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,EAC3B,wCAAwC,CACzC,CACF,CAAA;QAED,KAAK,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC;YAChC,SAAS,EAAE,aAAa,CAAC,MAAM;YAC/B,cAAc,EAAE,WAAW,CAAC,IAAI;YAChC,WAAW,EAAE,aAAa,CAAC,MAAM,CAAyB,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;gBACvE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;gBAC5C,OAAO,GAAG,CAAA;YACZ,CAAC,EAAE,EAAE,CAAC;YACN,GAAG,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/E,CAAC,CAAA;QAEF,YAAY,CAAC,OAAO,GAAG,WAAW,CAAC,YAAY,CAAA;QAC/C,KAAK,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC,CAAA;QAC3D,KAAK,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,SAAS,CAAC,CAAA;IACrE,CAAC,CAAC,CAAA;IAEF,MAAM,SAAS,GAAG;QAChB,WAAW,EAAE,CAAC;QACd,YAAY,EAAE,CAAC;QACf,WAAW,EAAE,CAAC;KACf,CAAA;IAED,OAAO;QACL,IAAI;QACJ,YAAY;QACZ,iBAAiB;QACjB,IAAI;QACJ,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC;YAC3B,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC;YAC5C,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC;SAChD,CAAC;QACF,KAAK,EAAE;YACL,KAAK,EAAE,GAAG,EAAE,CACV,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAClB,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;gBACnC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC,OAAO,CAAC,CAAA;gBAC9C,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;gBAC9D,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,aAAa,CAAC,CAAA;gBAC3C,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,eAAe,CAAC,CAAA;gBAClE,OAAO,CAAC,GAAG,CACT,gBAAgB,EAChB,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CACtC,CAAA;YACH,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS;SAC3B;KACmC,CAAA;AACxC,CAAC,CAAC,CAAA;AA0BF,wGAAwG;AACxG,MAAM,kBAAkB,GAAG,IAAI,CAAA;AAE/B,sIAAsI;AACtI,MAAM,CAAC,MAAM,0CAA0C,GAAG,MAAM,CAAC,MAAM,CAAC;IACtE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC;QAClB,sCAAsC,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9E,kCAAkC,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1E,0BAA0B,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAClE,kCAAkC,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1E,gCAAgC,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;KACzE,CAAC;CACH,CAAC,CAAA"}
1
+ {"version":3,"file":"ClientSessionSyncProcessor.js","sourceRoot":"","sources":["../../src/sync/ClientSessionSyncProcessor.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AACxD,OAAO,EACL,KAAK,EACL,QAAQ,EACR,MAAM,EACN,IAAI,EACJ,MAAM,EACN,WAAW,EACX,MAAM,EACN,KAAK,EACL,MAAM,EACN,SAAS,EAET,MAAM,EACN,YAAY,EACZ,OAAO,GACR,MAAM,yBAAyB,CAAA;AAGhC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAA;AAC3E,OAAO,KAAK,mBAAmB,MAAM,sCAAsC,CAAA;AAC3E,OAAO,KAAK,cAAc,MAAM,iCAAiC,CAAA;AAEjE,OAAO,EAAE,iCAAiC,EAAE,MAAM,yBAAyB,CAAA;AAC3E,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAA;AAC5C,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C,0DAA0D;AAC1D,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAA;AAE9E;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,MAAM,CAAC,EAAE,CAAC,gCAAgC,CAAC,CAAC,QAAQ,CAAC,EAAE,EACnG,MAAM,EACN,aAAa,EACb,gBAAgB,EAChB,QAAQ,EACR,aAAa,EACb,MAAM,EACN,qBAAqB,GAmCtB;IACC,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,SAAS,CAAA;IAC5C,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;IAEhE,MAAM,aAAa,GAAG,CAAC,KAAyB,EAAuB,EAAE,CACvE,MAAM,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAA;IAE/C,MAAM,YAAY,GAAG;QACnB,+DAA+D;QAC/D,OAAO,EAAE,IAAI,SAAS,CAAC,SAAS,CAAC;YAC/B,SAAS,EAAE,aAAa,CAAC,YAAY,CAAC,YAAY,CAAC,UAAU;YAC7D,YAAY,EAAE,aAAa,CAAC,YAAY,CAAC,YAAY,CAAC,UAAU;YAChE,6FAA6F;YAC7F,OAAO,EAAE,EAAE;SACZ,CAAC;KACH,CAAA;IAED,qHAAqH;IACrH,MAAM,oBAAoB,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,SAAS,EAAuB,CAAA;IAC1E,MAAM,iBAAiB,GAAG,CAAC,YAAmD,EAAE,EAAE,CAChF,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,UAAU,IAAI,KAAK,CAAA;IAE1E,uGAAuG;IACvG,MAAM,eAAe,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,SAAS,EAAqD,CAAA;IACrG;;;;;;;OAOG;IACH,MAAM,uBAAuB,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACxD,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAQ,CAAA;IACjD,MAAM,kBAAkB,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAQ,CAAA;IACvD,MAAM,iBAAiB,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAQ,CAAA;IACtD,IAAI,eAAe,GAAG,KAAK,CAAA;IAC3B,IAAI,iBAAiD,CAAA;IACrD,IAAI,mBAKS,CAAA;IACb,IAAI,wBAA0E,CAAA;IAC9E,IAAI,kBAAoE,CAAA;IAExE,wGAAwG;IACxG,MAAM,wBAAwB,GAAG,MAAM,CAAC,EAAE,CACxC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAA;QAChD,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;QACrC,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,CAAA;IACvD,CAAC,CAAC,CACH,CAAA;IAED,MAAM,IAAI,GAAuC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACnE,IACE,qBAAqB,KAAK,IAAI;YAC9B,OAAO,MAAM,KAAK,WAAW;YAC7B,OAAO,MAAM,CAAC,gBAAgB,KAAK,UAAU,EAC7C,CAAC;YACD,MAAM,cAAc,GAAG,CAAC,KAAwB,EAAE,EAAE;gBAClD,IAAI,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC5C,qCAAqC;oBACrC,KAAK,CAAC,cAAc,EAAE,CAAA;gBACxB,CAAC;YACH,CAAC,CAAA;YAED,KAAK,CAAC,CAAC,MAAM,CAAC,cAAc,CAC1B,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,EAC1E,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,CACpF,CAAA;QACH,CAAC;QAED,MAAM,mBAAmB,GAAG,KAAK,CAAC,CAAC,WAAW,CAAC,IAAI,EAAe,CAAA;QAClE,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,WAAW,CAAC,IAAI,EAAe,CAAA;QAC5D,wBAAwB,GAAG,mBAAmB,CAAA;QAC9C,kBAAkB,GAAG,aAAa,CAAA;QAElC,MAAM,uBAAuB,GAAwB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YACvE,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,EAAE,MAAM,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAC3F,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAChD,CAAA;gBACD,IAAI,KAAK,KAAK,SAAS;oBAAE,OAAM;gBAE/B,KAAK,CAAC,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CACvD,MAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC5C,oFAAoF;gBACpF,sFAAsF;gBACtF,+FAA+F;gBAC/F,uBAAuB;qBACpB,WAAW,CAAC,CAAC,CAAC,CACb,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;oBAClB,SAAS,CAAC,WAAW,EAAE,CAAA;oBACvB,IAAI,eAAe,KAAK,IAAI;wBAAE,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;oBAE7D,+EAA+E;oBAC/E,mFAAmF;oBACnF,gFAAgF;oBAChF,IAAI,wBAAwB,CAAC,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;wBAC3E,KAAK,CAAC,CAAC,wBAAwB,CAAA;wBAC/B,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAA;wBACrD,OAAO,KAAK,CAAA;oBACd,CAAC;oBAED,mBAAmB,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;oBAC9C,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;oBACrC,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAA;oBACrD,OAAO,IAAI,CAAA;gBACb,CAAC,CAAC,CACH;qBACA,IAAI,CACH,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;gBAC7B,kFAAkF;gBAClF,gFAAgF;gBAChF,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAClD,CACF,CACJ,CACF,CAAA;YACH,CAAC;QACH,CAAC,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,aAAa,EACpB,MAAM,CAAC,iBAAiB,EACxB,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,EAAE;YAC1B,IAAI,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,IAAI;gBAAE,OAAO,MAAM,CAAC,IAAI,CAAA;YAE/D,iBAAiB,KAAK,KAAK,CAAA;YAC3B,OAAO,eAAe,KAAK,IAAI;gBAC7B,CAAC,CAAC,MAAM,CAAC,IAAI;gBACb,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;QAC1F,CAAC,CAAC,CACH,CAAA;QAED,KAAK,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,mBAAmB,EAAE,uBAAuB,CAAC,CAAA;QAEpE,0EAA0E;QAC1E,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAC5C,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CACtF,CAAC,IAAI,CACJ,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CACd,aAAa,CAAC,QAAQ,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAC/F,EACD,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CACzB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,qEAAqE;YAErE,MAAM,oBAAoB,GAAG,mBAAmB,CAAA;YAChD,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC;gBACzC,SAAS,EAAE,YAAY,CAAC,OAAO;gBAC/B,OAAO;gBACP,iBAAiB;gBACjB,YAAY,EAAE,cAAc,CAAC,MAAM,CAAC,cAAc;aACnD,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,YAAY,CACjB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,EAC1B,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC,CAClF,CACF,CAAA;YAED,YAAY,CAAC,OAAO,GAAG,WAAW,CAAC,YAAY,CAAA;YAE/C,MAAM,kBAAkB,GACtB,oBAAoB,KAAK,SAAS;gBAClC,mBAAmB,KAAK,oBAAoB;gBAC5C,wBAAwB,CAAC,oBAAoB,CAAC,MAAM,EAAE,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,IAAI,CAAA;YAElG,IAAI,WAAW,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAClC,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,mBAAmB,EAAE;oBAC3C,UAAU,EAAE,OAAO,CAAC,IAAI;oBACxB,GAAG,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACtE,cAAc,EAAE,WAAW,CAAC,SAAS,CAAC,MAAM;oBAC5C,aAAa,EAAE,WAAW,CAAC,cAAc,CAAC,MAAM;oBAChD,GAAG,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACvE,CAAC,CAAA;gBAEF,SAAS,CAAC,WAAW,EAAE,CAAA;gBAEvB,iEAAiE;gBACjE,KAAK,CAAC,CAAC,aAAa,CAAC,oCAAoC,CAAC,CAAA;gBAE1D,KAAK,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAA;gBAE7C,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBACpB,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CACpB,6BAA6B,EAC7B,WAAW,CAAC,cAAc,CAAC,MAAM,EACjC,GAAG,WAAW,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAClE,CAAA;gBACH,CAAC;gBAED,mFAAmF;gBACnF,8FAA8F;gBAC9F,KAAK,IAAI,CAAC,GAAG,WAAW,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBAChE,MAAM,KAAK,GAAG,WAAW,CAAC,cAAc,CAAC,CAAC,CAAE,CAAA;oBAC5C,IAAI,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;wBACjG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;wBAC1C,KAAK,CAAC,IAAI,CAAC,gBAAgB,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;oBACjD,CAAC;gBACH,CAAC;gBACD,IAAI,WAAW,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1C,KAAK,CAAC,CAAC,SAAS;yBACb,GAAG,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAE,CAAC,YAAY,CAAC;yBAChD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAA;gBACvE,CAAC;gBAED,mFAAmF;gBACnF,oFAAoF;gBACpF,sFAAsF;gBACtF,kEAAkE;gBAClE,KAAK,CAAC,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAA;gBAE9C,wFAAwF;gBACxF,uFAAuF;gBACvF,wFAAwF;gBACxF,0FAA0F;gBAC1F,oFAAoF;gBACpF,2FAA2F;gBAC3F,iFAAiF;gBACjF,EAAE;gBACF,6EAA6E;gBAC7E,qFAAqF;gBACrF,sFAAsF;gBACtF,iFAAiF;gBACjF,KAAK,CAAC,CAAC,wBAAwB,CAAA;gBAE/B,qDAAqD;gBACrD,KAAK,CAAC,CAAC,aAAa,CAAC,8BAA8B,CAAC,CAAA;gBAEpD,IAAI,kBAAkB,KAAK,IAAI;oBAAE,mBAAmB,GAAG,SAAS,CAAA;gBAChE,KAAK,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,mBAAmB,EAAE,uBAAuB,CAAC,CAAA;YACtE,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,oBAAoB,EAAE;oBAC5C,UAAU,EAAE,OAAO,CAAC,IAAI;oBACxB,GAAG,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACtE,cAAc,EAAE,WAAW,CAAC,SAAS,CAAC,MAAM;oBAC5C,GAAG,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACvE,CAAC,CAAA;gBAEF,SAAS,CAAC,YAAY,EAAE,CAAA;gBAExB,IAAI,kBAAkB,KAAK,IAAI,EAAE,CAAC;oBAChC,KAAK,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAA;oBAC7C,KAAK,CAAC,CAAC,wBAAwB,CAAA;oBAC/B,mBAAmB,GAAG,SAAS,CAAA;oBAC/B,KAAK,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,mBAAmB,EAAE,uBAAuB,CAAC,CAAA;gBACtE,CAAC;YACH,CAAC;YAED,IAAI,WAAW,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvC,uEAAuE;gBACvE,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,oBAAoB,EAAE,WAAW,CAAC,YAAY,CAAC,CAAA;gBAClE,OAAM;YACR,CAAC;YAED,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAA;YACrC,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,SAAS,EAAE,CAAC;gBAC1C,MAAM,EACJ,WAAW,EAAE,cAAc,EAC3B,gBAAgB,EAChB,gBAAgB,GACjB,GAAG,KAAK,CAAC,CAAC,gBAAgB,CAAC,KAAK,EAAE;oBACjC,sBAAsB,EAAE,KAAK,CAAC,IAAI,CAAC,sBAAsB;iBAC1D,CAAC,CAAA;gBACF,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;oBACnC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;gBACxB,CAAC;gBAED,KAAK,CAAC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;gBAC9C,KAAK,CAAC,IAAI,CAAC,uBAAuB,GAAG,gBAAgB,CAAA;YACvD,CAAC;YAED,aAAa,CAAC,WAAW,CAAC,CAAA;YAE1B,sFAAsF;YACtF,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,oBAAoB,EAAE,WAAW,CAAC,YAAY,CAAC,CAAA;QACpE,CAAC,CAAC,CAAC,IAAI,CACL,uBAAuB,CAAC,WAAW,CAAC,CAAC,CAAC,EACtC,MAAM,CAAC,iBAAiB,EACxB,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAC5E,CACF,EACD,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,OAAO,EAAE,mEAAmE;QACnF,MAAM,CAAC,aAAa,EACpB,MAAM,CAAC,QAAQ,CAAC,oCAAoC,CAAC,EACrD,MAAM,CAAC,iBAAiB,CACzB,CAAA;QACD,KAAK,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAA;IAC1D,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,oCAAoC,CAAC,CAAC,CAAA;IAE9D,MAAM,WAAW,GAAG,MAAM,CAAC,EAAE,CAAC,wCAAwC,CAAC,CAAC,QAAQ,CAAC,EAC/E,IAAiC;QAEjC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YAClC,IAAI,kBAAkB,KAAK,SAAS;gBAAE,KAAK,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAA;YAClF,KAAK,CAAC,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAA;YAC3E,IAAI,wBAAwB,KAAK,SAAS;gBAAE,KAAK,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;YAC9F,OAAM;QACR,CAAC;QAED,KAAK,CAAC,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC,CAAC,CAC3C,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,IAAI,kBAAkB,KAAK,SAAS;gBAAE,KAAK,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAA;YAClF,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;YACnC,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAA;QACxD,CAAC,CAAC,CACH,CAAA;QACD,IAAI,wBAAwB,KAAK,SAAS,EAAE,CAAC;YAC3C,IAAI,mBAAmB,KAAK,SAAS,EAAE,CAAC;gBACtC,KAAK,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAA;YACzD,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;YACpD,CAAC;QACH,CAAC;QACD,IAAI,iBAAiB,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAA;QACtF,IAAI,mBAAmB,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAA;IAC5F,CAAC,CAAC,CAAA;IAEF,MAAM,QAAQ,GAA2C,CAAC,IAAI,EAAE,EAAE,CAChE,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE;QAClB,IAAI,eAAe,KAAK,IAAI;YAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;QACjE,eAAe,GAAG,IAAI,CAAA;QACtB,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAC3B,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,EACvE,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAC7C,CAAA;IACH,CAAC,CAAC,CAAA;IAEJ,MAAM,YAAY,GAA+C,MAAM,CAAC,EAAE,CACxE,6CAA6C,CAC9C,CAAC,QAAQ,CAAC,EAAE,MAAM;QACjB,IAAI,uBAAuB,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,CAAA;QAC5D,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CACtD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;YACvG,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC;gBACtD,MAAM,EAAE,uBAAuB;gBAC/B,YAAY,EAAE,QAAQ,CAAC,OAAO,CAAC,UAAU;gBACzC,gBAAgB,EAAE,uBAAuB,CAAC,gBAAgB;aAC3D,CAAC,CAAA;YACF,uBAAuB,GAAG,WAAW,CAAC,MAAM,CAAA;YAC5C,4FAA4F;YAC5F,uFAAuF;YACvF,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;gBAC7D,IAAI;gBACJ,0GAA0G;gBAC1G,0GAA0G;gBAC1G,IAAI,EAAE,iCAAiC,CAAC,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC;gBACtE,GAAG,WAAW;gBACd,QAAQ,EAAE,aAAa,CAAC,QAAQ;gBAChC,SAAS,EAAE,aAAa,CAAC,SAAS;aACnC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACrB,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;QAC3D,CAAC,CAAC,CACH,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,iBAAiB,GAAoD,MAAM,CAAC,EAAE,CAClF,kDAAkD,CACnD,CAAC,QAAQ,CAAC,EAAE,MAAM;QACjB,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAA;QACrC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,EACJ,WAAW,EAAE,cAAc,EAC3B,gBAAgB,EAChB,gBAAgB,GACjB,GAAG,KAAK,CAAC,CAAC,gBAAgB,CAAC,KAAK,EAAE;gBACjC,sBAAsB,EAAE,MAAM,CAAC,IAAI,EAAE;aACtC,CAAC,CAAA;YACF,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;gBACnC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACxB,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;YAC9C,KAAK,CAAC,IAAI,CAAC,uBAAuB,GAAG,gBAAgB,CAAA;QACvD,CAAC;QACD,OAAO,EAAE,WAAW,EAAE,CAAA;IACxB,CAAC,CAAC,CAAA;IAEF,MAAM,IAAI,GAAuC,MAAM,CAAC,EAAE,CAAC,oCAAoC,CAAC,CAC9F,QAAQ,CAAC,EAAE,aAAa;QACtB,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;YAC7B,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CACtB,IAAI,KAAK,CAAC,iFAAiF,CAAC,CAC7F,CAAA;QACH,CAAC;QAED,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC;YACzC,SAAS,EAAE,YAAY,CAAC,OAAO;YAC/B,OAAO,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE;YACzD,iBAAiB;YACjB,YAAY,EAAE,cAAc,CAAC,MAAM,CAAC,cAAc;SACnD,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,EAAqC,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CACzF,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC,CAChE,CACF,CAAA;QAED,KAAK,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC;YAChC,SAAS,EAAE,aAAa,CAAC,MAAM;YAC/B,cAAc,EAAE,WAAW,CAAC,IAAI;YAChC,WAAW,EAAE,aAAa,CAAC,MAAM,CAAyB,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;gBACvE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;gBAC5C,OAAO,GAAG,CAAA;YACZ,CAAC,EAAE,EAAE,CAAC;YACN,GAAG,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/E,CAAC,CAAA;QAEF,YAAY,CAAC,OAAO,GAAG,WAAW,CAAC,YAAY,CAAA;QAC/C,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,oBAAoB,EAAE,WAAW,CAAC,YAAY,CAAC,CAAA;QAClE,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,SAAS,CAAC,CAAA;QACtF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC,CAAA;QACxF,CAAC;IACH,CAAC,CACF,CAAA;IAED,MAAM,SAAS,GAAG;QAChB,WAAW,EAAE,CAAC;QACd,YAAY,EAAE,CAAC;QACf,WAAW,EAAE,CAAC;KACf,CAAA;IAED,OAAO;QACL,IAAI;QACJ,QAAQ;QACR,YAAY;QACZ,iBAAiB;QACjB,IAAI;QACJ,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC;YAC3B,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC;YAC5C,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC;SAChD,CAAC;QACF,KAAK,EAAE;YACL,iBAAiB,EAAE,QAAQ,CAAC,KAAK,CAAC,kBAAkB,CAAC;YACrD,cAAc,EAAE,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC;YACjD,KAAK,EAAE,GAAG,EAAE,CACV,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAClB,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;gBACnC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC,OAAO,CAAC,CAAA;gBAC9C,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,eAAe,CAAC,eAAe,CAAC,CAAA;gBAC9D,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,cAAc,CAAC,MAAM,CAAC,CAAA;gBACnD,OAAO,CAAC,GAAG,CACT,gBAAgB,EAChB,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CACtC,CAAA;YACH,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS;SAC3B;KACmC,CAAA;AACxC,CAAC,CAAC,CAAA;AAEF,MAAM,eAAe,GAAG,CAAO,KAA4B,EAAsC,EAAE,CACjG,MAAM,CAAC,EAAE,CACP,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK;QAAE,OAAO,EAAE,CAAA;IAEvD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACzC,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IACrC,OAAO,KAAK,CAAA;AACd,CAAC,CAAC,CACH,CAAA;AAEH,MAAM,wBAAwB,GAAG,CAC/B,cAAoE,EACpE,aAAmE,EAC1D,EAAE,CACX,cAAc,CAAC,KAAK,CAClB,CAAC,aAAa,EAAE,EAAE,CAChB,aAAa,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,cAAc,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,KAAK,KAAK,CACpH,CAAA"}
@@ -1,27 +1,21 @@
1
1
  import { Schema } from '@livestore/utils/effect';
2
- declare const IsOfflineError_base: Schema.TaggedErrorClass<IsOfflineError, "IsOfflineError", {
3
- readonly _tag: Schema.tag<"IsOfflineError">;
4
- } & {
5
- cause: typeof Schema.Defect;
6
- }>;
2
+ declare const IsOfflineError_base: Schema.Class<IsOfflineError, Schema.TaggedStruct<"IsOfflineError", {
3
+ readonly cause: Schema.Defect;
4
+ }>, import("effect/Cause").YieldableError>;
7
5
  export declare class IsOfflineError extends IsOfflineError_base {
8
6
  }
9
7
  /** Unique ID generated by the backend when its created. Used to check whether the backend identity has changed. */
10
- export declare const BackendId: Schema.SchemaClass<string, string, never>;
11
- declare const BackendIdMismatchError_base: Schema.TaggedErrorClass<BackendIdMismatchError, "BackendIdMismatchError", {
12
- readonly _tag: Schema.tag<"BackendIdMismatchError">;
13
- } & {
14
- expected: Schema.SchemaClass<string, string, never>;
15
- received: Schema.SchemaClass<string, string, never>;
16
- }>;
8
+ export declare const BackendId: Schema.String;
9
+ declare const BackendIdMismatchError_base: Schema.Class<BackendIdMismatchError, Schema.TaggedStruct<"BackendIdMismatchError", {
10
+ readonly expected: Schema.String;
11
+ readonly received: Schema.String;
12
+ }>, import("effect/Cause").YieldableError>;
17
13
  export declare class BackendIdMismatchError extends BackendIdMismatchError_base {
18
14
  }
19
- declare const ServerAheadError_base: Schema.TaggedErrorClass<ServerAheadError, "ServerAheadError", {
20
- readonly _tag: Schema.tag<"ServerAheadError">;
21
- } & {
22
- minimumExpectedNum: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
23
- providedNum: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
24
- }>;
15
+ declare const ServerAheadError_base: Schema.Class<ServerAheadError, Schema.TaggedStruct<"ServerAheadError", {
16
+ readonly minimumExpectedNum: Schema.brand<Schema.Int, "GlobalEventSequenceNumber">;
17
+ readonly providedNum: Schema.brand<Schema.Int, "GlobalEventSequenceNumber">;
18
+ }>, import("effect/Cause").YieldableError>;
25
19
  export declare class ServerAheadError extends ServerAheadError_base {
26
20
  }
27
21
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/sync/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;;;;;;AAIhD,qBAAa,cAAe,SAAQ,mBAIlC;CAAG;AAEL,mHAAmH;AACnH,eAAO,MAAM,SAAS,2CAAuE,CAAA;;;;;;;AAE7F,qBAAa,sBAAuB,SAAQ,2BAK1C;CAAG;;;;;;;AAEL,qBAAa,gBAAiB,SAAQ,qBAKpC;CAAG"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/sync/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;;;;AAIhD,qBAAa,cAAe,SAAQ,mBAKnC;CAAG;AAEJ,mHAAmH;AACnH,eAAO,MAAM,SAAS,eAAoE,CAAA;;;;;AAE1F,qBAAa,sBAAuB,SAAQ,2BAK1C;CAAG;;;;;AAEL,qBAAa,gBAAiB,SAAQ,qBAMrC;CAAG"}