@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
@@ -5,128 +5,119 @@ import { EventSequenceNumber } from '../schema/mod.ts'
5
5
  import { PreparedBindValues } from '../util.ts'
6
6
  import { LSDClientSessionChannelMessage, LSDClientSessionReqResMessage } from './devtools-messages-common.ts'
7
7
 
8
- export class DebugInfoReq extends LSDClientSessionReqResMessage('LSD.ClientSession.DebugInfoReq', {}) {}
8
+ export const DebugInfoReq = LSDClientSessionReqResMessage('LSD.ClientSession.DebugInfoReq', {})
9
9
 
10
- export class DebugInfoRes extends LSDClientSessionReqResMessage('LSD.ClientSession.DebugInfoRes', {
10
+ export const DebugInfoRes = LSDClientSessionReqResMessage('LSD.ClientSession.DebugInfoRes', {
11
11
  debugInfo: DebugInfo,
12
- }) {}
12
+ })
13
13
 
14
- export class DebugInfoHistorySubscribe extends LSDClientSessionReqResMessage(
15
- 'LSD.ClientSession.DebugInfoHistorySubscribe',
16
- {
17
- subscriptionId: Schema.String,
18
- },
19
- ) {}
14
+ export const DebugInfoHistorySubscribe = LSDClientSessionReqResMessage('LSD.ClientSession.DebugInfoHistorySubscribe', {
15
+ subscriptionId: Schema.String,
16
+ })
20
17
 
21
- export class DebugInfoHistoryRes extends LSDClientSessionReqResMessage('LSD.ClientSession.DebugInfoHistoryRes', {
18
+ export const DebugInfoHistoryRes = LSDClientSessionReqResMessage('LSD.ClientSession.DebugInfoHistoryRes', {
22
19
  debugInfoHistory: Schema.Array(DebugInfo),
23
20
  subscriptionId: Schema.String,
24
- }) {}
21
+ })
25
22
 
26
- export class DebugInfoHistoryUnsubscribe extends LSDClientSessionReqResMessage(
23
+ export const DebugInfoHistoryUnsubscribe = LSDClientSessionReqResMessage(
27
24
  'LSD.ClientSession.DebugInfoHistoryUnsubscribe',
28
25
  {
29
26
  subscriptionId: Schema.String,
30
27
  },
31
- ) {}
28
+ )
32
29
 
33
- export class DebugInfoResetReq extends LSDClientSessionReqResMessage('LSD.ClientSession.DebugInfoResetReq', {}) {}
30
+ export const DebugInfoResetReq = LSDClientSessionReqResMessage('LSD.ClientSession.DebugInfoResetReq', {})
34
31
 
35
- export class DebugInfoResetRes extends LSDClientSessionReqResMessage('LSD.ClientSession.DebugInfoResetRes', {}) {}
32
+ export const DebugInfoResetRes = LSDClientSessionReqResMessage('LSD.ClientSession.DebugInfoResetRes', {})
36
33
 
37
- export class DebugInfoRerunQueryReq extends LSDClientSessionReqResMessage('LSD.ClientSession.DebugInfoRerunQueryReq', {
34
+ export const DebugInfoRerunQueryReq = LSDClientSessionReqResMessage('LSD.ClientSession.DebugInfoRerunQueryReq', {
38
35
  queryStr: Schema.String,
39
36
  bindValues: Schema.UndefinedOr(PreparedBindValues),
40
37
  queriedTables: Schema.ReadonlySet(Schema.String),
41
- }) {}
38
+ })
42
39
 
43
- export class DebugInfoRerunQueryRes extends LSDClientSessionReqResMessage(
44
- 'LSD.ClientSession.DebugInfoRerunQueryRes',
45
- {},
46
- ) {}
40
+ export const DebugInfoRerunQueryRes = LSDClientSessionReqResMessage('LSD.ClientSession.DebugInfoRerunQueryRes', {})
47
41
 
48
- export class SyncHeadSubscribe extends LSDClientSessionReqResMessage('LSD.ClientSession.SyncHeadSubscribe', {
42
+ export const SyncHeadSubscribe = LSDClientSessionReqResMessage('LSD.ClientSession.SyncHeadSubscribe', {
49
43
  subscriptionId: Schema.String,
50
- }) {}
51
- export class SyncHeadUnsubscribe extends LSDClientSessionReqResMessage('LSD.ClientSession.SyncHeadUnsubscribe', {
44
+ })
45
+ export const SyncHeadUnsubscribe = LSDClientSessionReqResMessage('LSD.ClientSession.SyncHeadUnsubscribe', {
52
46
  subscriptionId: Schema.String,
53
- }) {}
54
- export class SyncHeadRes extends LSDClientSessionReqResMessage('LSD.ClientSession.SyncHeadRes', {
47
+ })
48
+ export const SyncHeadRes = LSDClientSessionReqResMessage('LSD.ClientSession.SyncHeadRes', {
55
49
  local: EventSequenceNumber.Client.Composite,
56
50
  upstream: EventSequenceNumber.Client.Composite,
57
51
  subscriptionId: Schema.String,
58
- }) {}
52
+ })
59
53
 
60
- export class ReactivityGraphSubscribe extends LSDClientSessionReqResMessage(
61
- 'LSD.ClientSession.ReactivityGraphSubscribe',
62
- {
63
- includeResults: Schema.Boolean,
64
- subscriptionId: Schema.String,
65
- },
66
- ) {}
54
+ export const ReactivityGraphSubscribe = LSDClientSessionReqResMessage('LSD.ClientSession.ReactivityGraphSubscribe', {
55
+ includeResults: Schema.Boolean,
56
+ subscriptionId: Schema.String,
57
+ })
67
58
 
68
- export class ReactivityGraphUnsubscribe extends LSDClientSessionReqResMessage(
59
+ export const ReactivityGraphUnsubscribe = LSDClientSessionReqResMessage(
69
60
  'LSD.ClientSession.ReactivityGraphUnsubscribe',
70
61
  {
71
62
  subscriptionId: Schema.String,
72
63
  },
73
- ) {}
64
+ )
74
65
 
75
- export class ReactivityGraphRes extends LSDClientSessionReqResMessage('LSD.ClientSession.ReactivityGraphRes', {
66
+ export const ReactivityGraphRes = LSDClientSessionReqResMessage('LSD.ClientSession.ReactivityGraphRes', {
76
67
  reactivityGraph: Schema.Any,
77
68
  subscriptionId: Schema.String,
78
- }) {}
69
+ })
79
70
 
80
- export class LiveQueriesSubscribe extends LSDClientSessionReqResMessage('LSD.ClientSession.LiveQueriesSubscribe', {
71
+ export const LiveQueriesSubscribe = LSDClientSessionReqResMessage('LSD.ClientSession.LiveQueriesSubscribe', {
81
72
  subscriptionId: Schema.String,
82
- }) {}
73
+ })
83
74
 
84
- export class LiveQueriesUnsubscribe extends LSDClientSessionReqResMessage('LSD.ClientSession.LiveQueriesUnsubscribe', {
75
+ export const LiveQueriesUnsubscribe = LSDClientSessionReqResMessage('LSD.ClientSession.LiveQueriesUnsubscribe', {
85
76
  subscriptionId: Schema.String,
86
- }) {}
77
+ })
87
78
 
88
- export class SerializedLiveQuery extends Schema.Struct({
89
- _tag: Schema.Literal('computed', 'db', 'graphql', 'signal'),
90
- id: Schema.Number,
79
+ export const SerializedLiveQuery = Schema.Struct({
80
+ _tag: Schema.Literals(['computed', 'db', 'graphql', 'signal']),
81
+ id: Schema.Finite,
91
82
  label: Schema.String,
92
83
  hash: Schema.String,
93
- runs: Schema.Number,
94
- executionTimes: Schema.Array(Schema.Number),
84
+ runs: Schema.Finite,
85
+ executionTimes: Schema.Array(Schema.Finite),
95
86
  lastestResult: Schema.Any,
96
87
  activeSubscriptions: Schema.Array(
97
88
  Schema.Struct({ frames: Schema.Array(Schema.Struct({ name: Schema.String, filePath: Schema.String })) }),
98
89
  ),
99
- }) {}
90
+ })
100
91
 
101
- export class LiveQueriesRes extends LSDClientSessionReqResMessage('LSD.ClientSession.LiveQueriesRes', {
92
+ export const LiveQueriesRes = LSDClientSessionReqResMessage('LSD.ClientSession.LiveQueriesRes', {
102
93
  liveQueries: Schema.Array(SerializedLiveQuery),
103
94
  subscriptionId: Schema.String,
104
- }) {}
95
+ })
105
96
 
106
- export class Ping extends LSDClientSessionReqResMessage('LSD.ClientSession.Ping', {
107
- devtoolsProtocolVersion: Schema.optional(Schema.Number),
108
- }) {}
97
+ export const Ping = LSDClientSessionReqResMessage('LSD.ClientSession.Ping', {
98
+ devtoolsProtocolVersion: Schema.optional(Schema.Finite),
99
+ })
109
100
 
110
- export class Pong extends LSDClientSessionReqResMessage('LSD.ClientSession.Pong', {
111
- devtoolsProtocolVersion: Schema.optional(Schema.Number),
112
- }) {}
101
+ export const Pong = LSDClientSessionReqResMessage('LSD.ClientSession.Pong', {
102
+ devtoolsProtocolVersion: Schema.optional(Schema.Finite),
103
+ })
113
104
 
114
105
  /**
115
106
  * Sent by the app when the DevTools protocol isn't compatible.
116
107
  * Contains package versions for display and protocol versions for the actual compatibility decision.
117
108
  */
118
- export class VersionMismatch extends LSDClientSessionReqResMessage('LSD.ClientSession.VersionMismatch', {
109
+ export const VersionMismatch = LSDClientSessionReqResMessage('LSD.ClientSession.VersionMismatch', {
119
110
  /** The version running in the app */
120
111
  appVersion: Schema.String,
121
112
  /** The version that was sent by DevTools (that caused the mismatch) */
122
113
  receivedVersion: Schema.String,
123
- appDevtoolsProtocolVersion: Schema.Number,
124
- receivedDevtoolsProtocolVersion: Schema.optional(Schema.Number),
125
- }) {}
114
+ appDevtoolsProtocolVersion: Schema.Finite,
115
+ receivedDevtoolsProtocolVersion: Schema.optional(Schema.Finite),
116
+ })
126
117
 
127
- export class Disconnect extends LSDClientSessionChannelMessage('LSD.ClientSession.Disconnect', {}) {}
118
+ export const Disconnect = LSDClientSessionChannelMessage('LSD.ClientSession.Disconnect', {})
128
119
 
129
- export const MessageToApp = Schema.Union(
120
+ export const MessageToApp = Schema.Union([
130
121
  DebugInfoReq,
131
122
  DebugInfoHistorySubscribe,
132
123
  DebugInfoHistoryUnsubscribe,
@@ -140,11 +131,11 @@ export const MessageToApp = Schema.Union(
140
131
  Ping,
141
132
  SyncHeadSubscribe,
142
133
  SyncHeadUnsubscribe,
143
- ).annotations({ identifier: 'LSD.ClientSession.MessageToApp' })
134
+ ]).annotate({ identifier: 'LSD.ClientSession.MessageToApp' })
144
135
 
145
136
  export type MessageToApp = typeof MessageToApp.Type
146
137
 
147
- export const MessageFromApp = Schema.Union(
138
+ export const MessageFromApp = Schema.Union([
148
139
  DebugInfoRes,
149
140
  DebugInfoHistoryRes,
150
141
  DebugInfoResetRes,
@@ -155,6 +146,6 @@ export const MessageFromApp = Schema.Union(
155
146
  Pong,
156
147
  VersionMismatch,
157
148
  SyncHeadRes,
158
- ).annotations({ identifier: 'LSD.ClientSession.MessageFromApp' })
149
+ ]).annotate({ identifier: 'LSD.ClientSession.MessageFromApp' })
159
150
 
160
151
  export type MessageFromApp = typeof MessageFromApp.Type
@@ -15,7 +15,7 @@ export const LSDMessage = <Tag extends string, Fields extends Schema.Struct.Fiel
15
15
  Schema.TaggedStruct(tag, {
16
16
  liveStoreVersion,
17
17
  ...fields,
18
- }).annotations({ identifier: tag })
18
+ }).annotate({ identifier: tag })
19
19
 
20
20
  export const LSDChannelMessage = <Tag extends string, Fields extends Schema.Struct.Fields>(tag: Tag, fields: Fields) =>
21
21
  LSDMessage(tag, {
@@ -87,23 +87,24 @@ export const LeaderReqResMessage = <
87
87
  requestId,
88
88
  liveStoreVersion,
89
89
  ...fields.success,
90
- }).annotations({ identifier: `${tag}.Response.Success` })
90
+ }).annotate({ identifier: `${tag}.Response.Success` })
91
91
 
92
- const Error = fields.error !== undefined
93
- ? Schema.TaggedStruct(`${tag}.Response.Error`, {
94
- requestId,
95
- liveStoreVersion,
96
- ...fields.error,
97
- }).annotations({ identifier: `${tag}.Response.Error` })
98
- : Schema.Never
92
+ const Error =
93
+ fields.error !== undefined
94
+ ? Schema.TaggedStruct(`${tag}.Response.Error`, {
95
+ requestId,
96
+ liveStoreVersion,
97
+ ...fields.error,
98
+ }).annotate({ identifier: `${tag}.Response.Error` })
99
+ : Schema.Never
99
100
 
100
101
  return {
101
102
  Request: Schema.TaggedStruct(`${tag}.Request`, {
102
103
  requestId,
103
104
  liveStoreVersion,
104
105
  ...fields.payload,
105
- }).annotations({ identifier: `${tag}.Request` }),
106
- Response: Schema.Union(Success, Error),
106
+ }).annotate({ identifier: `${tag}.Request` }),
107
+ Response: Schema.Union([Success, Error]),
107
108
  Success,
108
109
  Error,
109
110
  } as any
@@ -5,130 +5,132 @@ import { EventSequenceNumber } from '../schema/mod.ts'
5
5
  import * as SyncState from '../sync/syncstate.ts'
6
6
  import { LeaderReqResMessage, LSDMessage, LSDReqResMessage, NetworkStatus } from './devtools-messages-common.ts'
7
7
 
8
- export class ResetAllDataReq extends LSDReqResMessage('LSD.Leader.ResetAllDataReq', {
9
- mode: Schema.Literal('all-data', 'only-app-db'),
10
- }) {}
8
+ export const ResetAllDataReq = LSDReqResMessage('LSD.Leader.ResetAllDataReq', {
9
+ mode: Schema.Literals(['all-data', 'only-app-db']),
10
+ })
11
11
 
12
- export class DatabaseFileInfoReq extends LSDReqResMessage('LSD.Leader.DatabaseFileInfoReq', {}) {}
12
+ export const DatabaseFileInfoReq = LSDReqResMessage('LSD.Leader.DatabaseFileInfoReq', {})
13
13
 
14
- export class DatabaseFileInfo extends Schema.Struct({
15
- fileSize: Schema.Number,
16
- persistenceInfo: Schema.Struct({ fileName: Schema.String }, { key: Schema.String, value: Schema.Any }),
17
- }) {}
14
+ export const DatabaseFileInfo = Schema.Struct({
15
+ fileSize: Schema.Finite,
16
+ persistenceInfo: Schema.StructWithRest(Schema.Struct({ fileName: Schema.String }), [
17
+ Schema.Record(Schema.String, Schema.Any),
18
+ ]),
19
+ })
18
20
 
19
- export class DatabaseFileInfoRes extends LSDReqResMessage('LSD.Leader.DatabaseFileInfoRes', {
21
+ export const DatabaseFileInfoRes = LSDReqResMessage('LSD.Leader.DatabaseFileInfoRes', {
20
22
  state: DatabaseFileInfo,
21
23
  eventlog: DatabaseFileInfo,
22
- }) {}
24
+ })
23
25
 
24
- export class NetworkStatusSubscribe extends LSDReqResMessage('LSD.Leader.NetworkStatusSubscribe', {
26
+ export const NetworkStatusSubscribe = LSDReqResMessage('LSD.Leader.NetworkStatusSubscribe', {
25
27
  subscriptionId: Schema.String,
26
- }) {}
27
- export class NetworkStatusUnsubscribe extends LSDReqResMessage('LSD.Leader.NetworkStatusUnsubscribe', {
28
+ })
29
+ export const NetworkStatusUnsubscribe = LSDReqResMessage('LSD.Leader.NetworkStatusUnsubscribe', {
28
30
  subscriptionId: Schema.String,
29
- }) {}
31
+ })
30
32
 
31
- export class NetworkStatusRes extends LSDReqResMessage('LSD.Leader.NetworkStatusRes', {
33
+ export const NetworkStatusRes = LSDReqResMessage('LSD.Leader.NetworkStatusRes', {
32
34
  networkStatus: NetworkStatus,
33
35
  subscriptionId: Schema.String,
34
- }) {}
36
+ })
35
37
 
36
- export class SyncingInfoReq extends LSDReqResMessage('LSD.Leader.SyncingInfoReq', {}) {}
38
+ export const SyncingInfoReq = LSDReqResMessage('LSD.Leader.SyncingInfoReq', {})
37
39
 
38
- export class SyncingInfo extends Schema.Struct({
40
+ export const SyncingInfo = Schema.Struct({
39
41
  enabled: Schema.Boolean,
40
- metadata: Schema.Record({ key: Schema.String, value: Schema.Any }),
41
- }) {}
42
+ metadata: Schema.Record(Schema.String, Schema.Any),
43
+ })
42
44
 
43
- export class SyncingInfoRes extends LSDReqResMessage('LSD.Leader.SyncingInfoRes', {
45
+ export const SyncingInfoRes = LSDReqResMessage('LSD.Leader.SyncingInfoRes', {
44
46
  syncingInfo: SyncingInfo,
45
- }) {}
47
+ })
46
48
 
47
- export class SyncHistorySubscribe extends LSDReqResMessage('LSD.Leader.SyncHistorySubscribe', {
49
+ export const SyncHistorySubscribe = LSDReqResMessage('LSD.Leader.SyncHistorySubscribe', {
48
50
  subscriptionId: Schema.String,
49
- }) {}
50
- export class SyncHistoryUnsubscribe extends LSDReqResMessage('LSD.Leader.SyncHistoryUnsubscribe', {
51
+ })
52
+ export const SyncHistoryUnsubscribe = LSDReqResMessage('LSD.Leader.SyncHistoryUnsubscribe', {
51
53
  subscriptionId: Schema.String,
52
- }) {}
53
- export class SyncHistoryRes extends LSDReqResMessage('LSD.Leader.SyncHistoryRes', {
54
+ })
55
+ export const SyncHistoryRes = LSDReqResMessage('LSD.Leader.SyncHistoryRes', {
54
56
  eventEncoded: LiveStoreEvent.Global.Encoded,
55
- metadata: Schema.Option(Schema.JsonValue),
57
+ metadata: Schema.Option(Schema.Json),
56
58
  subscriptionId: Schema.String,
57
- }) {}
59
+ })
58
60
 
59
- export class SyncHeadSubscribe extends LSDReqResMessage('LSD.Leader.SyncHeadSubscribe', {
61
+ export const SyncHeadSubscribe = LSDReqResMessage('LSD.Leader.SyncHeadSubscribe', {
60
62
  subscriptionId: Schema.String,
61
- }) {}
62
- export class SyncHeadUnsubscribe extends LSDReqResMessage('LSD.Leader.SyncHeadUnsubscribe', {
63
+ })
64
+ export const SyncHeadUnsubscribe = LSDReqResMessage('LSD.Leader.SyncHeadUnsubscribe', {
63
65
  subscriptionId: Schema.String,
64
- }) {}
65
- export class SyncHeadRes extends LSDReqResMessage('LSD.Leader.SyncHeadRes', {
66
+ })
67
+ export const SyncHeadRes = LSDReqResMessage('LSD.Leader.SyncHeadRes', {
66
68
  local: EventSequenceNumber.Client.Composite,
67
69
  upstream: EventSequenceNumber.Client.Composite,
68
70
  subscriptionId: Schema.String,
69
- }) {}
71
+ })
70
72
 
71
- export class SnapshotReq extends LSDReqResMessage('LSD.Leader.SnapshotReq', {}) {}
73
+ export const SnapshotReq = LSDReqResMessage('LSD.Leader.SnapshotReq', {})
72
74
 
73
- export class SnapshotRes extends LSDReqResMessage('LSD.Leader.SnapshotRes', {
74
- snapshot: Transferable.Uint8Array as Schema.Schema<Uint8Array<ArrayBuffer>>,
75
- }) {}
75
+ export const SnapshotRes = LSDReqResMessage('LSD.Leader.SnapshotRes', {
76
+ snapshot: Transferable.Uint8Array as Schema.Codec<Uint8Array<ArrayBuffer>>,
77
+ })
76
78
 
77
79
  export const LoadDatabaseFile = LeaderReqResMessage('LSD.Leader.LoadDatabaseFile', {
78
80
  payload: {
79
- data: Transferable.Uint8Array as Schema.Schema<Uint8Array<ArrayBuffer>>,
81
+ data: Transferable.Uint8Array as Schema.Codec<Uint8Array<ArrayBuffer>>,
80
82
  batchId: Schema.optional(Schema.String),
81
83
  },
82
84
  success: {},
83
85
  error: {
84
- cause: Schema.Union(
86
+ cause: Schema.Union([
85
87
  Schema.TaggedStruct('unsupported-file', {}),
86
88
  Schema.TaggedStruct('unsupported-database', {}),
87
- Schema.TaggedStruct('unknown-error', { cause: Schema.Defect }),
88
- ),
89
+ Schema.TaggedStruct('unknown-error', { cause: Schema.Defect() }),
90
+ ]),
89
91
  },
90
92
  })
91
93
 
92
94
  // TODO refactor this to use push/pull semantics
93
- export class SyncPull extends LSDMessage('LSD.Leader.SyncPull', {
95
+ export const SyncPull = LSDMessage('LSD.Leader.SyncPull', {
94
96
  payload: SyncState.PayloadUpstream,
95
- }) {}
97
+ })
96
98
 
97
99
  // TODO refactor this to use push/pull semantics
98
- export class CommitEventReq extends LSDReqResMessage('LSD.Leader.CommitEventReq', {
100
+ export const CommitEventReq = LSDReqResMessage('LSD.Leader.CommitEventReq', {
99
101
  eventEncoded: LiveStoreEvent.Input.Encoded,
100
- }) {}
102
+ })
101
103
 
102
- export class CommitEventRes extends LSDReqResMessage('LSD.Leader.CommitEventRes', {}) {}
104
+ export const CommitEventRes = LSDReqResMessage('LSD.Leader.CommitEventRes', {})
103
105
 
104
- export class EventlogReq extends LSDReqResMessage('LSD.Leader.EventlogReq', {}) {}
106
+ export const EventlogReq = LSDReqResMessage('LSD.Leader.EventlogReq', {})
105
107
 
106
- export class EventlogRes extends LSDReqResMessage('LSD.Leader.EventlogRes', {
107
- eventlog: Transferable.Uint8Array as Schema.Schema<Uint8Array<ArrayBuffer>>,
108
- }) {}
108
+ export const EventlogRes = LSDReqResMessage('LSD.Leader.EventlogRes', {
109
+ eventlog: Transferable.Uint8Array as Schema.Codec<Uint8Array<ArrayBuffer>>,
110
+ })
109
111
 
110
- export class Ping extends LSDReqResMessage('LSD.Leader.Ping', {
111
- devtoolsProtocolVersion: Schema.optional(Schema.Number),
112
- }) {}
112
+ export const Ping = LSDReqResMessage('LSD.Leader.Ping', {
113
+ devtoolsProtocolVersion: Schema.optional(Schema.Finite),
114
+ })
113
115
 
114
- export class Pong extends LSDReqResMessage('LSD.Leader.Pong', {
115
- devtoolsProtocolVersion: Schema.optional(Schema.Number),
116
- }) {}
116
+ export const Pong = LSDReqResMessage('LSD.Leader.Pong', {
117
+ devtoolsProtocolVersion: Schema.optional(Schema.Finite),
118
+ })
117
119
 
118
120
  /**
119
121
  * Sent by the app when the DevTools protocol isn't compatible.
120
122
  * Contains package versions for display and protocol versions for the actual compatibility decision.
121
123
  */
122
- export class VersionMismatch extends LSDReqResMessage('LSD.Leader.VersionMismatch', {
124
+ export const VersionMismatch = LSDReqResMessage('LSD.Leader.VersionMismatch', {
123
125
  /** The version running in the app */
124
126
  appVersion: Schema.String,
125
127
  /** The version that was sent by DevTools (that caused the mismatch) */
126
128
  receivedVersion: Schema.String,
127
- appDevtoolsProtocolVersion: Schema.Number,
128
- receivedDevtoolsProtocolVersion: Schema.optional(Schema.Number),
129
- }) {}
129
+ appDevtoolsProtocolVersion: Schema.Finite,
130
+ receivedDevtoolsProtocolVersion: Schema.optional(Schema.Finite),
131
+ })
130
132
 
131
- export class Disconnect extends LSDReqResMessage('LSD.Leader.Disconnect', {}) {}
133
+ export const Disconnect = LSDReqResMessage('LSD.Leader.Disconnect', {})
132
134
 
133
135
  export const SetSyncLatch = LeaderReqResMessage('LSD.Leader.SetSyncLatch', {
134
136
  payload: {
@@ -139,7 +141,7 @@ export const SetSyncLatch = LeaderReqResMessage('LSD.Leader.SetSyncLatch', {
139
141
 
140
142
  export const ResetAllData = LeaderReqResMessage('LSD.Leader.ResetAllData', {
141
143
  payload: {
142
- mode: Schema.Literal('all-data', 'only-app-db'),
144
+ mode: Schema.Literals(['all-data', 'only-app-db']),
143
145
  },
144
146
  success: {},
145
147
  })
@@ -163,12 +165,12 @@ export const ResetAllData = LeaderReqResMessage('LSD.Leader.ResetAllData', {
163
165
  // failure: UnknownError,
164
166
  // }) {}
165
167
 
166
- // export const MessageToApp_ = Schema.Union(DatabaseFileInfo_, NetworkStatus_)
168
+ // export const MessageToApp_ = Schema.Union([DatabaseFileInfo_, NetworkStatus_])
167
169
 
168
170
  // export type MessageToApp_ = typeof MessageToApp_.Type
169
171
  //
170
172
 
171
- export const MessageToApp = Schema.Union(
173
+ export const MessageToApp = Schema.Union([
172
174
  SnapshotReq,
173
175
  LoadDatabaseFile.Request,
174
176
  EventlogReq,
@@ -185,11 +187,11 @@ export const MessageToApp = Schema.Union(
185
187
  SyncHeadSubscribe,
186
188
  SyncHeadUnsubscribe,
187
189
  SetSyncLatch.Request,
188
- ).annotations({ identifier: 'LSD.Leader.MessageToApp' })
190
+ ]).annotate({ identifier: 'LSD.Leader.MessageToApp' })
189
191
 
190
192
  export type MessageToApp = typeof MessageToApp.Type
191
193
 
192
- export const MessageFromApp = Schema.Union(
194
+ export const MessageFromApp = Schema.Union([
193
195
  SnapshotRes,
194
196
  LoadDatabaseFile.Response,
195
197
  EventlogRes,
@@ -205,6 +207,6 @@ export const MessageFromApp = Schema.Union(
205
207
  SyncHeadRes,
206
208
  ResetAllData.Success,
207
209
  SetSyncLatch.Success,
208
- ).annotations({ identifier: 'LSD.Leader.MessageFromApp' })
210
+ ]).annotate({ identifier: 'LSD.Leader.MessageFromApp' })
209
211
 
210
212
  export type MessageFromApp = typeof MessageFromApp.Type
@@ -1,6 +1,6 @@
1
- import type { ParseResult, Scope, WebChannel } from '@livestore/utils/effect'
2
1
  import {
3
- Data,
2
+ type Scope,
3
+ type WebChannel,
4
4
  Duration,
5
5
  Effect,
6
6
  FiberMap,
@@ -30,7 +30,7 @@ export const SessionInfo = Schema.TaggedStruct('SessionInfo', {
30
30
  })
31
31
  export type SessionInfo = typeof SessionInfo.Type
32
32
 
33
- export const Message = Schema.Union(RequestSessions, SessionInfo)
33
+ export const Message = Schema.Union([RequestSessions, SessionInfo])
34
34
  export type Message = typeof Message.Type
35
35
 
36
36
  /** Usually called in client session */
@@ -40,12 +40,12 @@ export const provideSessionInfo = ({
40
40
  }: {
41
41
  webChannel: WebChannel.WebChannel<Message, Message>
42
42
  sessionInfo: SessionInfo
43
- }): Effect.Effect<void, ParseResult.ParseError> =>
43
+ }): Effect.Effect<void, Schema.SchemaError> =>
44
44
  Effect.gen(function* () {
45
45
  yield* webChannel.send(sessionInfo)
46
46
 
47
47
  yield* webChannel.listen.pipe(
48
- Stream.flatten(),
48
+ Stream.mapEffect(Effect.fromResult),
49
49
  Stream.filter(Schema.is(RequestSessions)),
50
50
  Stream.tap(() => webChannel.send(sessionInfo)),
51
51
  Stream.runDrain,
@@ -59,9 +59,9 @@ export const requestSessionInfoSubscription = ({
59
59
  staleTimeout = Duration.seconds(5),
60
60
  }: {
61
61
  webChannel: WebChannel.WebChannel<Message, Message>
62
- pollInterval?: Duration.DurationInput
63
- staleTimeout?: Duration.DurationInput
64
- }): Effect.Effect<Subscribable.Subscribable<HashSet.HashSet<SessionInfo>>, ParseResult.ParseError, Scope.Scope> =>
62
+ pollInterval?: Duration.Input
63
+ staleTimeout?: Duration.Input
64
+ }): Effect.Effect<Subscribable.Subscribable<HashSet.HashSet<SessionInfo>>, Schema.SchemaError, Scope.Scope> =>
65
65
  Effect.gen(function* () {
66
66
  yield* webChannel
67
67
  .send(RequestSessions.make({}))
@@ -77,9 +77,8 @@ export const requestSessionInfoSubscription = ({
77
77
  const sessionInfoSubRef = yield* SubscriptionRef.make<HashSet.HashSet<SessionInfo>>(HashSet.empty())
78
78
 
79
79
  yield* webChannel.listen.pipe(
80
- Stream.flatten(),
80
+ Stream.mapEffect(Effect.fromResult),
81
81
  Stream.filter(Schema.is(SessionInfo)),
82
- Stream.map(Data.struct),
83
82
  Stream.tap(
84
83
  Effect.fn(function* (sessionInfo) {
85
84
  yield* SubscriptionRef.getAndUpdate(sessionInfoSubRef, HashSet.add(sessionInfo))
@@ -100,5 +99,8 @@ export const requestSessionInfoSubscription = ({
100
99
  Effect.forkScoped,
101
100
  )
102
101
 
103
- return Subscribable.make({ get: sessionInfoSubRef.get, changes: sessionInfoSubRef.changes })
102
+ return Subscribable.make({
103
+ get: SubscriptionRef.get(sessionInfoSubRef),
104
+ changes: SubscriptionRef.changes(sessionInfoSubRef),
105
+ })
104
106
  })
@@ -1,5 +1,4 @@
1
- import type { Effect, Scope, WebChannel } from '@livestore/utils/effect'
2
- import { Schema } from '@livestore/utils/effect'
1
+ import { type Effect, type Scope, type WebChannel, Schema } from '@livestore/utils/effect'
3
2
  import { nanoid } from '@livestore/utils/nanoid'
4
3
  import type { MeshNode } from '@livestore/webmesh'
5
4
 
@@ -8,18 +7,18 @@ import * as SessionInfo from './devtools-sessioninfo.ts'
8
7
  export * from './devtools-messages.ts'
9
8
  export * as SessionInfo from './devtools-sessioninfo.ts'
10
9
 
11
- export const DevtoolsMode = Schema.Union(
10
+ export const DevtoolsMode = Schema.Union([
12
11
  Schema.TaggedStruct('node', {
13
12
  /** WebSocket URL */
14
13
  url: Schema.String,
15
14
  }),
16
15
  Schema.TaggedStruct('web', {}),
17
16
  Schema.TaggedStruct('browser-extension', {}),
18
- )
17
+ ])
19
18
 
20
19
  export type DevtoolsMode = typeof DevtoolsMode.Type
21
20
 
22
- export const DevtoolsModeTag = DevtoolsMode.pipe(Schema.pluck('_tag'), Schema.typeSchema)
21
+ export const DevtoolsModeTag = Schema.Literals(['node', 'web', 'browser-extension'])
23
22
  export type DevtoolsModeTag = typeof DevtoolsModeTag.Type
24
23
 
25
24
  export const makeNodeName = {