@livestore/common 0.3.0-dev.4 → 0.3.0-dev.40

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 (470) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/__tests__/fixture.d.ts +83 -221
  3. package/dist/__tests__/fixture.d.ts.map +1 -1
  4. package/dist/__tests__/fixture.js +33 -11
  5. package/dist/__tests__/fixture.js.map +1 -1
  6. package/dist/adapter-types.d.ts +132 -75
  7. package/dist/adapter-types.d.ts.map +1 -1
  8. package/dist/adapter-types.js +36 -7
  9. package/dist/adapter-types.js.map +1 -1
  10. package/dist/bounded-collections.d.ts.map +1 -1
  11. package/dist/debug-info.d.ts +1 -1
  12. package/dist/debug-info.d.ts.map +1 -1
  13. package/dist/debug-info.js +1 -0
  14. package/dist/debug-info.js.map +1 -1
  15. package/dist/devtools/devtools-messages-client-session.d.ts +390 -0
  16. package/dist/devtools/devtools-messages-client-session.d.ts.map +1 -0
  17. package/dist/devtools/devtools-messages-client-session.js +97 -0
  18. package/dist/devtools/devtools-messages-client-session.js.map +1 -0
  19. package/dist/devtools/devtools-messages-common.d.ts +68 -0
  20. package/dist/devtools/devtools-messages-common.d.ts.map +1 -0
  21. package/dist/devtools/devtools-messages-common.js +60 -0
  22. package/dist/devtools/devtools-messages-common.js.map +1 -0
  23. package/dist/devtools/devtools-messages-leader.d.ts +394 -0
  24. package/dist/devtools/devtools-messages-leader.d.ts.map +1 -0
  25. package/dist/devtools/devtools-messages-leader.js +147 -0
  26. package/dist/devtools/devtools-messages-leader.js.map +1 -0
  27. package/dist/devtools/devtools-messages.d.ts +3 -592
  28. package/dist/devtools/devtools-messages.d.ts.map +1 -1
  29. package/dist/devtools/devtools-messages.js +3 -171
  30. package/dist/devtools/devtools-messages.js.map +1 -1
  31. package/dist/devtools/devtools-sessioninfo.d.ts +32 -0
  32. package/dist/devtools/devtools-sessioninfo.d.ts.map +1 -0
  33. package/dist/devtools/devtools-sessioninfo.js +36 -0
  34. package/dist/devtools/devtools-sessioninfo.js.map +1 -0
  35. package/dist/devtools/mod.d.ts +55 -0
  36. package/dist/devtools/mod.d.ts.map +1 -0
  37. package/dist/devtools/mod.js +33 -0
  38. package/dist/devtools/mod.js.map +1 -0
  39. package/dist/index.d.ts +7 -13
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +7 -9
  42. package/dist/index.js.map +1 -1
  43. package/dist/leader-thread/LeaderSyncProcessor.d.ts +62 -0
  44. package/dist/leader-thread/LeaderSyncProcessor.d.ts.map +1 -0
  45. package/dist/leader-thread/LeaderSyncProcessor.js +593 -0
  46. package/dist/leader-thread/LeaderSyncProcessor.js.map +1 -0
  47. package/dist/leader-thread/connection.d.ts +34 -6
  48. package/dist/leader-thread/connection.d.ts.map +1 -1
  49. package/dist/leader-thread/connection.js +22 -7
  50. package/dist/leader-thread/connection.js.map +1 -1
  51. package/dist/leader-thread/eventlog.d.ts +27 -0
  52. package/dist/leader-thread/eventlog.d.ts.map +1 -0
  53. package/dist/leader-thread/eventlog.js +119 -0
  54. package/dist/leader-thread/eventlog.js.map +1 -0
  55. package/dist/leader-thread/leader-worker-devtools.d.ts +1 -1
  56. package/dist/leader-thread/leader-worker-devtools.d.ts.map +1 -1
  57. package/dist/leader-thread/leader-worker-devtools.js +165 -134
  58. package/dist/leader-thread/leader-worker-devtools.js.map +1 -1
  59. package/dist/leader-thread/make-leader-thread-layer.d.ts +26 -12
  60. package/dist/leader-thread/make-leader-thread-layer.d.ts.map +1 -1
  61. package/dist/leader-thread/make-leader-thread-layer.js +76 -48
  62. package/dist/leader-thread/make-leader-thread-layer.js.map +1 -1
  63. package/dist/leader-thread/materialize-event.d.ts +16 -0
  64. package/dist/leader-thread/materialize-event.d.ts.map +1 -0
  65. package/dist/leader-thread/materialize-event.js +105 -0
  66. package/dist/leader-thread/materialize-event.js.map +1 -0
  67. package/dist/leader-thread/mod.d.ts +1 -1
  68. package/dist/leader-thread/mod.d.ts.map +1 -1
  69. package/dist/leader-thread/mod.js +1 -1
  70. package/dist/leader-thread/mod.js.map +1 -1
  71. package/dist/leader-thread/recreate-db.d.ts +4 -2
  72. package/dist/leader-thread/recreate-db.d.ts.map +1 -1
  73. package/dist/leader-thread/recreate-db.js +33 -31
  74. package/dist/leader-thread/recreate-db.js.map +1 -1
  75. package/dist/leader-thread/shutdown-channel.d.ts +2 -5
  76. package/dist/leader-thread/shutdown-channel.d.ts.map +1 -1
  77. package/dist/leader-thread/shutdown-channel.js +2 -4
  78. package/dist/leader-thread/shutdown-channel.js.map +1 -1
  79. package/dist/leader-thread/types.d.ts +89 -40
  80. package/dist/leader-thread/types.d.ts.map +1 -1
  81. package/dist/leader-thread/types.js +1 -3
  82. package/dist/leader-thread/types.js.map +1 -1
  83. package/dist/make-client-session.d.ts +21 -0
  84. package/dist/make-client-session.d.ts.map +1 -0
  85. package/dist/make-client-session.js +51 -0
  86. package/dist/make-client-session.js.map +1 -0
  87. package/dist/materializer-helper.d.ts +23 -0
  88. package/dist/materializer-helper.d.ts.map +1 -0
  89. package/dist/materializer-helper.js +84 -0
  90. package/dist/materializer-helper.js.map +1 -0
  91. package/dist/otel.d.ts +2 -0
  92. package/dist/otel.d.ts.map +1 -1
  93. package/dist/otel.js +5 -0
  94. package/dist/otel.js.map +1 -1
  95. package/dist/rematerialize-from-eventlog.d.ts +14 -0
  96. package/dist/rematerialize-from-eventlog.d.ts.map +1 -0
  97. package/dist/rematerialize-from-eventlog.js +64 -0
  98. package/dist/rematerialize-from-eventlog.js.map +1 -0
  99. package/dist/schema/EventDef.d.ts +146 -0
  100. package/dist/schema/EventDef.d.ts.map +1 -0
  101. package/dist/schema/EventDef.js +58 -0
  102. package/dist/schema/EventDef.js.map +1 -0
  103. package/dist/schema/EventId.d.ts +35 -15
  104. package/dist/schema/EventId.d.ts.map +1 -1
  105. package/dist/schema/EventId.js +57 -11
  106. package/dist/schema/EventId.js.map +1 -1
  107. package/dist/schema/EventId.test.d.ts +2 -0
  108. package/dist/schema/EventId.test.d.ts.map +1 -0
  109. package/dist/schema/EventId.test.js +11 -0
  110. package/dist/schema/EventId.test.js.map +1 -0
  111. package/dist/schema/LiveStoreEvent.d.ts +255 -0
  112. package/dist/schema/LiveStoreEvent.d.ts.map +1 -0
  113. package/dist/schema/LiveStoreEvent.js +118 -0
  114. package/dist/schema/LiveStoreEvent.js.map +1 -0
  115. package/dist/schema/events.d.ts +2 -0
  116. package/dist/schema/events.d.ts.map +1 -0
  117. package/dist/schema/events.js +2 -0
  118. package/dist/schema/events.js.map +1 -0
  119. package/dist/schema/mod.d.ts +7 -5
  120. package/dist/schema/mod.d.ts.map +1 -1
  121. package/dist/schema/mod.js +7 -5
  122. package/dist/schema/mod.js.map +1 -1
  123. package/dist/schema/schema.d.ts +48 -30
  124. package/dist/schema/schema.d.ts.map +1 -1
  125. package/dist/schema/schema.js +36 -43
  126. package/dist/schema/schema.js.map +1 -1
  127. package/dist/schema/state/mod.d.ts +3 -0
  128. package/dist/schema/state/mod.d.ts.map +1 -0
  129. package/dist/schema/state/mod.js +3 -0
  130. package/dist/schema/state/mod.js.map +1 -0
  131. package/dist/schema/state/sqlite/client-document-def.d.ts +223 -0
  132. package/dist/schema/state/sqlite/client-document-def.d.ts.map +1 -0
  133. package/dist/schema/state/sqlite/client-document-def.js +170 -0
  134. package/dist/schema/state/sqlite/client-document-def.js.map +1 -0
  135. package/dist/schema/state/sqlite/client-document-def.test.d.ts +2 -0
  136. package/dist/schema/state/sqlite/client-document-def.test.d.ts.map +1 -0
  137. package/dist/schema/state/sqlite/client-document-def.test.js +201 -0
  138. package/dist/schema/state/sqlite/client-document-def.test.js.map +1 -0
  139. package/dist/schema/state/sqlite/db-schema/ast/sqlite.d.ts +69 -0
  140. package/dist/schema/state/sqlite/db-schema/ast/sqlite.d.ts.map +1 -0
  141. package/dist/schema/state/sqlite/db-schema/ast/sqlite.js +71 -0
  142. package/dist/schema/state/sqlite/db-schema/ast/sqlite.js.map +1 -0
  143. package/dist/schema/state/sqlite/db-schema/ast/validate.d.ts +3 -0
  144. package/dist/schema/state/sqlite/db-schema/ast/validate.d.ts.map +1 -0
  145. package/dist/schema/state/sqlite/db-schema/ast/validate.js +12 -0
  146. package/dist/schema/state/sqlite/db-schema/ast/validate.js.map +1 -0
  147. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.d.ts +90 -0
  148. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.d.ts.map +1 -0
  149. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.js +87 -0
  150. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.js.map +1 -0
  151. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.test.d.ts +2 -0
  152. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.test.d.ts.map +1 -0
  153. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.test.js +29 -0
  154. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.test.js.map +1 -0
  155. package/dist/schema/state/sqlite/db-schema/dsl/mod.d.ts +90 -0
  156. package/dist/schema/state/sqlite/db-schema/dsl/mod.d.ts.map +1 -0
  157. package/dist/schema/state/sqlite/db-schema/dsl/mod.js +41 -0
  158. package/dist/schema/state/sqlite/db-schema/dsl/mod.js.map +1 -0
  159. package/dist/schema/state/sqlite/db-schema/hash.d.ts +2 -0
  160. package/dist/schema/state/sqlite/db-schema/hash.d.ts.map +1 -0
  161. package/dist/schema/state/sqlite/db-schema/hash.js +14 -0
  162. package/dist/schema/state/sqlite/db-schema/hash.js.map +1 -0
  163. package/dist/schema/state/sqlite/db-schema/mod.d.ts +3 -0
  164. package/dist/schema/state/sqlite/db-schema/mod.d.ts.map +1 -0
  165. package/dist/schema/state/sqlite/db-schema/mod.js +3 -0
  166. package/dist/schema/state/sqlite/db-schema/mod.js.map +1 -0
  167. package/dist/schema/state/sqlite/mod.d.ts +17 -0
  168. package/dist/schema/state/sqlite/mod.d.ts.map +1 -0
  169. package/dist/schema/state/sqlite/mod.js +41 -0
  170. package/dist/schema/state/sqlite/mod.js.map +1 -0
  171. package/dist/schema/state/sqlite/query-builder/api.d.ts +294 -0
  172. package/dist/schema/state/sqlite/query-builder/api.d.ts.map +1 -0
  173. package/dist/schema/state/sqlite/query-builder/api.js +6 -0
  174. package/dist/schema/state/sqlite/query-builder/api.js.map +1 -0
  175. package/dist/schema/state/sqlite/query-builder/astToSql.d.ts +7 -0
  176. package/dist/schema/state/sqlite/query-builder/astToSql.d.ts.map +1 -0
  177. package/dist/schema/state/sqlite/query-builder/astToSql.js +190 -0
  178. package/dist/schema/state/sqlite/query-builder/astToSql.js.map +1 -0
  179. package/dist/schema/state/sqlite/query-builder/impl.d.ts +7 -0
  180. package/dist/schema/state/sqlite/query-builder/impl.d.ts.map +1 -0
  181. package/dist/schema/state/sqlite/query-builder/impl.js +286 -0
  182. package/dist/schema/state/sqlite/query-builder/impl.js.map +1 -0
  183. package/dist/schema/state/sqlite/query-builder/impl.test.d.ts +87 -0
  184. package/dist/schema/state/sqlite/query-builder/impl.test.d.ts.map +1 -0
  185. package/dist/schema/state/sqlite/query-builder/impl.test.js +554 -0
  186. package/dist/schema/state/sqlite/query-builder/impl.test.js.map +1 -0
  187. package/dist/{query-builder → schema/state/sqlite/query-builder}/mod.d.ts +7 -0
  188. package/dist/schema/state/sqlite/query-builder/mod.d.ts.map +1 -0
  189. package/dist/{query-builder → schema/state/sqlite/query-builder}/mod.js +7 -0
  190. package/dist/schema/state/sqlite/query-builder/mod.js.map +1 -0
  191. package/dist/schema/state/sqlite/schema-helpers.d.ts.map +1 -0
  192. package/dist/schema/{schema-helpers.js → state/sqlite/schema-helpers.js} +1 -1
  193. package/dist/schema/state/sqlite/schema-helpers.js.map +1 -0
  194. package/dist/schema/state/sqlite/system-tables.d.ts +574 -0
  195. package/dist/schema/state/sqlite/system-tables.d.ts.map +1 -0
  196. package/dist/schema/state/sqlite/system-tables.js +87 -0
  197. package/dist/schema/state/sqlite/system-tables.js.map +1 -0
  198. package/dist/schema/state/sqlite/table-def.d.ts +84 -0
  199. package/dist/schema/state/sqlite/table-def.d.ts.map +1 -0
  200. package/dist/schema/state/sqlite/table-def.js +36 -0
  201. package/dist/schema/state/sqlite/table-def.js.map +1 -0
  202. package/dist/schema-management/common.d.ts +7 -7
  203. package/dist/schema-management/common.d.ts.map +1 -1
  204. package/dist/schema-management/common.js.map +1 -1
  205. package/dist/schema-management/migrations.d.ts +6 -6
  206. package/dist/schema-management/migrations.d.ts.map +1 -1
  207. package/dist/schema-management/migrations.js +33 -24
  208. package/dist/schema-management/migrations.js.map +1 -1
  209. package/dist/schema-management/validate-schema.d.ts +8 -0
  210. package/dist/schema-management/validate-schema.d.ts.map +1 -0
  211. package/dist/schema-management/validate-schema.js +39 -0
  212. package/dist/schema-management/validate-schema.js.map +1 -0
  213. package/dist/sql-queries/misc.d.ts.map +1 -1
  214. package/dist/sql-queries/sql-queries.d.ts +1 -1
  215. package/dist/sql-queries/sql-queries.d.ts.map +1 -1
  216. package/dist/sql-queries/sql-queries.js.map +1 -1
  217. package/dist/sql-queries/sql-query-builder.d.ts +1 -1
  218. package/dist/sql-queries/sql-query-builder.d.ts.map +1 -1
  219. package/dist/sql-queries/sql-query-builder.js.map +1 -1
  220. package/dist/sql-queries/types.d.ts +2 -1
  221. package/dist/sql-queries/types.d.ts.map +1 -1
  222. package/dist/sql-queries/types.js.map +1 -1
  223. package/dist/sync/ClientSessionSyncProcessor.d.ts +66 -0
  224. package/dist/sync/ClientSessionSyncProcessor.d.ts.map +1 -0
  225. package/dist/sync/ClientSessionSyncProcessor.js +209 -0
  226. package/dist/sync/ClientSessionSyncProcessor.js.map +1 -0
  227. package/dist/sync/index.d.ts +1 -1
  228. package/dist/sync/index.d.ts.map +1 -1
  229. package/dist/sync/index.js +1 -1
  230. package/dist/sync/index.js.map +1 -1
  231. package/dist/sync/next/compact-events.d.ts.map +1 -1
  232. package/dist/sync/next/facts.d.ts +19 -19
  233. package/dist/sync/next/facts.d.ts.map +1 -1
  234. package/dist/sync/next/facts.js +3 -3
  235. package/dist/sync/next/facts.js.map +1 -1
  236. package/dist/sync/next/history-dag-common.d.ts +6 -7
  237. package/dist/sync/next/history-dag-common.d.ts.map +1 -1
  238. package/dist/sync/next/history-dag-common.js +4 -2
  239. package/dist/sync/next/history-dag-common.js.map +1 -1
  240. package/dist/sync/next/history-dag.d.ts.map +1 -1
  241. package/dist/sync/next/history-dag.js +2 -2
  242. package/dist/sync/next/history-dag.js.map +1 -1
  243. package/dist/sync/next/rebase-events.d.ts +10 -8
  244. package/dist/sync/next/rebase-events.d.ts.map +1 -1
  245. package/dist/sync/next/rebase-events.js +11 -8
  246. package/dist/sync/next/rebase-events.js.map +1 -1
  247. package/dist/sync/next/test/compact-events.calculator.test.js +38 -33
  248. package/dist/sync/next/test/compact-events.calculator.test.js.map +1 -1
  249. package/dist/sync/next/test/compact-events.test.js +76 -76
  250. package/dist/sync/next/test/compact-events.test.js.map +1 -1
  251. package/dist/sync/next/test/{mutation-fixtures.d.ts → event-fixtures.d.ts} +25 -25
  252. package/dist/sync/next/test/event-fixtures.d.ts.map +1 -0
  253. package/dist/sync/next/test/{mutation-fixtures.js → event-fixtures.js} +67 -36
  254. package/dist/sync/next/test/event-fixtures.js.map +1 -0
  255. package/dist/sync/next/test/mod.d.ts +1 -1
  256. package/dist/sync/next/test/mod.d.ts.map +1 -1
  257. package/dist/sync/next/test/mod.js +1 -1
  258. package/dist/sync/next/test/mod.js.map +1 -1
  259. package/dist/sync/sync.d.ts +55 -20
  260. package/dist/sync/sync.d.ts.map +1 -1
  261. package/dist/sync/sync.js +7 -3
  262. package/dist/sync/sync.js.map +1 -1
  263. package/dist/sync/syncstate.d.ts +213 -82
  264. package/dist/sync/syncstate.d.ts.map +1 -1
  265. package/dist/sync/syncstate.js +319 -120
  266. package/dist/sync/syncstate.js.map +1 -1
  267. package/dist/sync/syncstate.test.js +295 -275
  268. package/dist/sync/syncstate.test.js.map +1 -1
  269. package/dist/sync/validate-push-payload.d.ts +2 -2
  270. package/dist/sync/validate-push-payload.d.ts.map +1 -1
  271. package/dist/sync/validate-push-payload.js +2 -2
  272. package/dist/sync/validate-push-payload.js.map +1 -1
  273. package/dist/util.d.ts +2 -2
  274. package/dist/util.d.ts.map +1 -1
  275. package/dist/version.d.ts +1 -1
  276. package/dist/version.d.ts.map +1 -1
  277. package/dist/version.js +1 -1
  278. package/dist/version.js.map +1 -1
  279. package/package.json +13 -6
  280. package/src/__tests__/fixture.ts +36 -15
  281. package/src/adapter-types.ts +116 -83
  282. package/src/debug-info.ts +1 -0
  283. package/src/devtools/devtools-messages-client-session.ts +142 -0
  284. package/src/devtools/devtools-messages-common.ts +115 -0
  285. package/src/devtools/devtools-messages-leader.ts +191 -0
  286. package/src/devtools/devtools-messages.ts +3 -243
  287. package/src/devtools/devtools-sessioninfo.ts +101 -0
  288. package/src/devtools/mod.ts +59 -0
  289. package/src/index.ts +7 -15
  290. package/src/leader-thread/LeaderSyncProcessor.ts +933 -0
  291. package/src/leader-thread/connection.ts +54 -9
  292. package/src/leader-thread/eventlog.ts +194 -0
  293. package/src/leader-thread/leader-worker-devtools.ts +235 -191
  294. package/src/leader-thread/make-leader-thread-layer.ts +138 -78
  295. package/src/leader-thread/materialize-event.ts +169 -0
  296. package/src/leader-thread/mod.ts +1 -1
  297. package/src/leader-thread/recreate-db.ts +38 -39
  298. package/src/leader-thread/shutdown-channel.ts +2 -4
  299. package/src/leader-thread/types.ts +98 -53
  300. package/src/make-client-session.ts +119 -0
  301. package/src/materializer-helper.ts +135 -0
  302. package/src/otel.ts +8 -0
  303. package/src/rematerialize-from-eventlog.ts +117 -0
  304. package/src/schema/EventDef.ts +227 -0
  305. package/src/schema/EventId.test.ts +12 -0
  306. package/src/schema/EventId.ts +75 -15
  307. package/src/schema/LiveStoreEvent.ts +239 -0
  308. package/src/schema/events.ts +1 -0
  309. package/src/schema/mod.ts +7 -5
  310. package/src/schema/schema.ts +85 -81
  311. package/src/schema/state/mod.ts +2 -0
  312. package/src/schema/state/sqlite/client-document-def.test.ts +238 -0
  313. package/src/schema/state/sqlite/client-document-def.ts +444 -0
  314. package/src/schema/state/sqlite/db-schema/ast/sqlite.ts +142 -0
  315. package/src/schema/state/sqlite/db-schema/ast/validate.ts +13 -0
  316. package/src/schema/state/sqlite/db-schema/dsl/__snapshots__/field-defs.test.ts.snap +206 -0
  317. package/src/schema/state/sqlite/db-schema/dsl/field-defs.test.ts +35 -0
  318. package/src/schema/state/sqlite/db-schema/dsl/field-defs.ts +242 -0
  319. package/src/schema/state/sqlite/db-schema/dsl/mod.ts +222 -0
  320. package/src/schema/state/sqlite/db-schema/hash.ts +14 -0
  321. package/src/schema/state/sqlite/db-schema/mod.ts +2 -0
  322. package/src/schema/state/sqlite/mod.ts +73 -0
  323. package/src/schema/state/sqlite/query-builder/api.ts +440 -0
  324. package/src/schema/state/sqlite/query-builder/astToSql.ts +232 -0
  325. package/src/schema/state/sqlite/query-builder/impl.test.ts +608 -0
  326. package/src/schema/state/sqlite/query-builder/impl.ts +350 -0
  327. package/src/{query-builder → schema/state/sqlite/query-builder}/mod.ts +7 -0
  328. package/src/schema/{schema-helpers.ts → state/sqlite/schema-helpers.ts} +1 -1
  329. package/src/schema/state/sqlite/system-tables.ts +116 -0
  330. package/src/schema/state/sqlite/table-def.ts +197 -0
  331. package/src/schema-management/common.ts +7 -7
  332. package/src/schema-management/migrations.ts +43 -37
  333. package/src/schema-management/validate-schema.ts +61 -0
  334. package/src/sql-queries/sql-queries.ts +1 -1
  335. package/src/sql-queries/sql-query-builder.ts +1 -2
  336. package/src/sql-queries/types.ts +3 -1
  337. package/src/sync/ClientSessionSyncProcessor.ts +332 -0
  338. package/src/sync/index.ts +1 -1
  339. package/src/sync/next/facts.ts +32 -33
  340. package/src/sync/next/history-dag-common.ts +9 -5
  341. package/src/sync/next/history-dag.ts +2 -2
  342. package/src/sync/next/rebase-events.ts +22 -16
  343. package/src/sync/next/test/compact-events.calculator.test.ts +45 -45
  344. package/src/sync/next/test/compact-events.test.ts +78 -78
  345. package/src/sync/next/test/event-fixtures.ts +219 -0
  346. package/src/sync/next/test/mod.ts +1 -1
  347. package/src/sync/sync.ts +51 -19
  348. package/src/sync/syncstate.test.ts +335 -308
  349. package/src/sync/syncstate.ts +394 -212
  350. package/src/sync/validate-push-payload.ts +7 -4
  351. package/src/version.ts +1 -1
  352. package/dist/derived-mutations.d.ts +0 -109
  353. package/dist/derived-mutations.d.ts.map +0 -1
  354. package/dist/derived-mutations.js +0 -54
  355. package/dist/derived-mutations.js.map +0 -1
  356. package/dist/derived-mutations.test.d.ts +0 -2
  357. package/dist/derived-mutations.test.d.ts.map +0 -1
  358. package/dist/derived-mutations.test.js +0 -93
  359. package/dist/derived-mutations.test.js.map +0 -1
  360. package/dist/devtools/devtools-bridge.d.ts +0 -12
  361. package/dist/devtools/devtools-bridge.d.ts.map +0 -1
  362. package/dist/devtools/devtools-bridge.js +0 -2
  363. package/dist/devtools/devtools-bridge.js.map +0 -1
  364. package/dist/devtools/devtools-window-message.d.ts +0 -29
  365. package/dist/devtools/devtools-window-message.d.ts.map +0 -1
  366. package/dist/devtools/devtools-window-message.js +0 -33
  367. package/dist/devtools/devtools-window-message.js.map +0 -1
  368. package/dist/devtools/index.d.ts +0 -42
  369. package/dist/devtools/index.d.ts.map +0 -1
  370. package/dist/devtools/index.js +0 -48
  371. package/dist/devtools/index.js.map +0 -1
  372. package/dist/init-singleton-tables.d.ts +0 -4
  373. package/dist/init-singleton-tables.d.ts.map +0 -1
  374. package/dist/init-singleton-tables.js +0 -16
  375. package/dist/init-singleton-tables.js.map +0 -1
  376. package/dist/leader-thread/apply-mutation.d.ts +0 -8
  377. package/dist/leader-thread/apply-mutation.d.ts.map +0 -1
  378. package/dist/leader-thread/apply-mutation.js +0 -95
  379. package/dist/leader-thread/apply-mutation.js.map +0 -1
  380. package/dist/leader-thread/leader-sync-processor.d.ts +0 -47
  381. package/dist/leader-thread/leader-sync-processor.d.ts.map +0 -1
  382. package/dist/leader-thread/leader-sync-processor.js +0 -422
  383. package/dist/leader-thread/leader-sync-processor.js.map +0 -1
  384. package/dist/leader-thread/mutationlog.d.ts +0 -23
  385. package/dist/leader-thread/mutationlog.d.ts.map +0 -1
  386. package/dist/leader-thread/mutationlog.js +0 -27
  387. package/dist/leader-thread/mutationlog.js.map +0 -1
  388. package/dist/leader-thread/pull-queue-set.d.ts +0 -7
  389. package/dist/leader-thread/pull-queue-set.d.ts.map +0 -1
  390. package/dist/leader-thread/pull-queue-set.js +0 -39
  391. package/dist/leader-thread/pull-queue-set.js.map +0 -1
  392. package/dist/mutation.d.ts +0 -13
  393. package/dist/mutation.d.ts.map +0 -1
  394. package/dist/mutation.js +0 -57
  395. package/dist/mutation.js.map +0 -1
  396. package/dist/query-builder/api.d.ts +0 -190
  397. package/dist/query-builder/api.d.ts.map +0 -1
  398. package/dist/query-builder/api.js +0 -8
  399. package/dist/query-builder/api.js.map +0 -1
  400. package/dist/query-builder/impl.d.ts +0 -12
  401. package/dist/query-builder/impl.d.ts.map +0 -1
  402. package/dist/query-builder/impl.js +0 -244
  403. package/dist/query-builder/impl.js.map +0 -1
  404. package/dist/query-builder/impl.test.d.ts +0 -2
  405. package/dist/query-builder/impl.test.d.ts.map +0 -1
  406. package/dist/query-builder/impl.test.js +0 -212
  407. package/dist/query-builder/impl.test.js.map +0 -1
  408. package/dist/query-builder/mod.d.ts.map +0 -1
  409. package/dist/query-builder/mod.js.map +0 -1
  410. package/dist/query-info.d.ts +0 -38
  411. package/dist/query-info.d.ts.map +0 -1
  412. package/dist/query-info.js +0 -7
  413. package/dist/query-info.js.map +0 -1
  414. package/dist/rehydrate-from-mutationlog.d.ts +0 -14
  415. package/dist/rehydrate-from-mutationlog.d.ts.map +0 -1
  416. package/dist/rehydrate-from-mutationlog.js +0 -72
  417. package/dist/rehydrate-from-mutationlog.js.map +0 -1
  418. package/dist/schema/MutationEvent.d.ts +0 -191
  419. package/dist/schema/MutationEvent.d.ts.map +0 -1
  420. package/dist/schema/MutationEvent.js +0 -56
  421. package/dist/schema/MutationEvent.js.map +0 -1
  422. package/dist/schema/mutations.d.ts +0 -107
  423. package/dist/schema/mutations.d.ts.map +0 -1
  424. package/dist/schema/mutations.js +0 -42
  425. package/dist/schema/mutations.js.map +0 -1
  426. package/dist/schema/schema-helpers.d.ts.map +0 -1
  427. package/dist/schema/schema-helpers.js.map +0 -1
  428. package/dist/schema/system-tables.d.ts +0 -399
  429. package/dist/schema/system-tables.d.ts.map +0 -1
  430. package/dist/schema/system-tables.js +0 -51
  431. package/dist/schema/system-tables.js.map +0 -1
  432. package/dist/schema/table-def.d.ts +0 -156
  433. package/dist/schema/table-def.d.ts.map +0 -1
  434. package/dist/schema/table-def.js +0 -79
  435. package/dist/schema/table-def.js.map +0 -1
  436. package/dist/schema-management/validate-mutation-defs.d.ts +0 -8
  437. package/dist/schema-management/validate-mutation-defs.d.ts.map +0 -1
  438. package/dist/schema-management/validate-mutation-defs.js +0 -39
  439. package/dist/schema-management/validate-mutation-defs.js.map +0 -1
  440. package/dist/sync/client-session-sync-processor.d.ts +0 -45
  441. package/dist/sync/client-session-sync-processor.d.ts.map +0 -1
  442. package/dist/sync/client-session-sync-processor.js +0 -131
  443. package/dist/sync/client-session-sync-processor.js.map +0 -1
  444. package/dist/sync/next/test/mutation-fixtures.d.ts.map +0 -1
  445. package/dist/sync/next/test/mutation-fixtures.js.map +0 -1
  446. package/src/derived-mutations.test.ts +0 -101
  447. package/src/derived-mutations.ts +0 -166
  448. package/src/devtools/devtools-bridge.ts +0 -13
  449. package/src/devtools/devtools-window-message.ts +0 -27
  450. package/src/devtools/index.ts +0 -48
  451. package/src/init-singleton-tables.ts +0 -24
  452. package/src/leader-thread/apply-mutation.ts +0 -143
  453. package/src/leader-thread/leader-sync-processor.ts +0 -666
  454. package/src/leader-thread/mutationlog.ts +0 -42
  455. package/src/leader-thread/pull-queue-set.ts +0 -58
  456. package/src/mutation.ts +0 -81
  457. package/src/query-builder/api.ts +0 -289
  458. package/src/query-builder/impl.test.ts +0 -239
  459. package/src/query-builder/impl.ts +0 -285
  460. package/src/query-info.ts +0 -78
  461. package/src/rehydrate-from-mutationlog.ts +0 -127
  462. package/src/schema/MutationEvent.ts +0 -161
  463. package/src/schema/mutations.ts +0 -192
  464. package/src/schema/system-tables.ts +0 -97
  465. package/src/schema/table-def.ts +0 -343
  466. package/src/schema-management/validate-mutation-defs.ts +0 -63
  467. package/src/sync/client-session-sync-processor.ts +0 -207
  468. package/src/sync/next/test/mutation-fixtures.ts +0 -231
  469. package/tsconfig.json +0 -11
  470. /package/dist/schema/{schema-helpers.d.ts → state/sqlite/schema-helpers.d.ts} +0 -0
@@ -1,399 +0,0 @@
1
- import { type SqliteAst as __SqliteAst, SqliteDsl } from '@livestore/db-schema';
2
- import { Schema } from '@livestore/utils/effect';
3
- import type { FromTable } from './table-def.js';
4
- export declare const SCHEMA_META_TABLE = "__livestore_schema";
5
- export declare const schemaMetaTable: import("./table-def.js").TableDef<{
6
- name: "__livestore_schema";
7
- columns: {
8
- tableName: {
9
- columnType: "text";
10
- schema: Schema.Schema<string, string, never>;
11
- default: import("effect/Option").None<never>;
12
- nullable: false;
13
- primaryKey: true;
14
- };
15
- schemaHash: {
16
- columnType: "integer";
17
- schema: Schema.Schema<number, number, never>;
18
- default: import("effect/Option").None<never>;
19
- nullable: false;
20
- primaryKey: false;
21
- };
22
- updatedAt: {
23
- columnType: "text";
24
- schema: Schema.Schema<string, string, never>;
25
- default: import("effect/Option").None<never>;
26
- nullable: false;
27
- primaryKey: false;
28
- };
29
- };
30
- indexes?: ReadonlyArray<SqliteDsl.Index>;
31
- ast: __SqliteAst.Table;
32
- }, {
33
- isSingleton: false;
34
- disableAutomaticIdColumn: true;
35
- deriveMutations: never;
36
- isSingleColumn: false;
37
- requiredInsertColumnNames: "tableName" | "schemaHash" | "updatedAt";
38
- }, Schema.Schema<{
39
- readonly tableName: string;
40
- readonly schemaHash: number;
41
- readonly updatedAt: string;
42
- }, {
43
- readonly tableName: string;
44
- readonly schemaHash: number;
45
- readonly updatedAt: string;
46
- }, never>>;
47
- export type SchemaMetaRow = FromTable.RowDecoded<typeof schemaMetaTable>;
48
- export declare const SCHEMA_MUTATIONS_META_TABLE = "__livestore_schema_mutations";
49
- export declare const schemaMutationsMetaTable: import("./table-def.js").TableDef<{
50
- name: "__livestore_schema_mutations";
51
- columns: {
52
- mutationName: {
53
- columnType: "text";
54
- schema: Schema.Schema<string, string, never>;
55
- default: import("effect/Option").None<never>;
56
- nullable: false;
57
- primaryKey: true;
58
- };
59
- schemaHash: {
60
- columnType: "integer";
61
- schema: Schema.Schema<number, number, never>;
62
- default: import("effect/Option").None<never>;
63
- nullable: false;
64
- primaryKey: false;
65
- };
66
- updatedAt: {
67
- columnType: "text";
68
- schema: Schema.Schema<string, string, never>;
69
- default: import("effect/Option").None<never>;
70
- nullable: false;
71
- primaryKey: false;
72
- };
73
- };
74
- indexes?: ReadonlyArray<SqliteDsl.Index>;
75
- ast: __SqliteAst.Table;
76
- }, {
77
- isSingleton: false;
78
- disableAutomaticIdColumn: true;
79
- deriveMutations: never;
80
- isSingleColumn: false;
81
- requiredInsertColumnNames: "schemaHash" | "updatedAt" | "mutationName";
82
- }, Schema.Schema<{
83
- readonly mutationName: string;
84
- readonly schemaHash: number;
85
- readonly updatedAt: string;
86
- }, {
87
- readonly mutationName: string;
88
- readonly schemaHash: number;
89
- readonly updatedAt: string;
90
- }, never>>;
91
- export type SchemaMutationsMetaRow = FromTable.RowDecoded<typeof schemaMutationsMetaTable>;
92
- /**
93
- * Table which stores SQLite changeset blobs which is used for rolling back
94
- * read-model state during rebasing.
95
- */
96
- export declare const SESSION_CHANGESET_META_TABLE = "__livestore_session_changeset";
97
- export declare const sessionChangesetMetaTable: import("./table-def.js").TableDef<{
98
- name: "__livestore_session_changeset";
99
- columns: {
100
- idGlobal: {
101
- columnType: "integer";
102
- schema: Schema.Schema<number, number, never>;
103
- default: import("effect/Option").None<never>;
104
- nullable: false;
105
- primaryKey: false;
106
- };
107
- idLocal: {
108
- columnType: "integer";
109
- schema: Schema.Schema<number, number, never>;
110
- default: import("effect/Option").None<never>;
111
- nullable: false;
112
- primaryKey: false;
113
- };
114
- changeset: {
115
- columnType: "blob";
116
- schema: Schema.Schema<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>, never>;
117
- default: import("effect/Option").None<never>;
118
- nullable: false;
119
- primaryKey: false;
120
- };
121
- debug: {
122
- columnType: "text";
123
- schema: Schema.Schema<unknown, string | null, never>;
124
- default: import("effect/Option").Some<any> | import("effect/Option").None<never>;
125
- nullable: true;
126
- primaryKey: false;
127
- };
128
- };
129
- indexes?: ReadonlyArray<SqliteDsl.Index>;
130
- ast: __SqliteAst.Table;
131
- }, {
132
- isSingleton: false;
133
- disableAutomaticIdColumn: true;
134
- deriveMutations: never;
135
- isSingleColumn: false;
136
- requiredInsertColumnNames: "idGlobal" | "idLocal" | "changeset";
137
- }, Schema.Schema<{
138
- readonly idGlobal: number;
139
- readonly idLocal: number;
140
- readonly changeset: Uint8Array<ArrayBufferLike>;
141
- readonly debug: unknown;
142
- }, {
143
- readonly idGlobal: number;
144
- readonly idLocal: number;
145
- readonly changeset: Uint8Array<ArrayBufferLike>;
146
- readonly debug: string | null;
147
- }, never>>;
148
- export type SessionChangesetMetaRow = FromTable.RowDecoded<typeof sessionChangesetMetaTable>;
149
- export declare const systemTables: (import("./table-def.js").TableDef<{
150
- name: "__livestore_schema";
151
- columns: {
152
- tableName: {
153
- columnType: "text";
154
- schema: Schema.Schema<string, string, never>;
155
- default: import("effect/Option").None<never>;
156
- nullable: false;
157
- primaryKey: true;
158
- };
159
- schemaHash: {
160
- columnType: "integer";
161
- schema: Schema.Schema<number, number, never>;
162
- default: import("effect/Option").None<never>;
163
- nullable: false;
164
- primaryKey: false;
165
- };
166
- updatedAt: {
167
- columnType: "text";
168
- schema: Schema.Schema<string, string, never>;
169
- default: import("effect/Option").None<never>;
170
- nullable: false;
171
- primaryKey: false;
172
- };
173
- };
174
- indexes?: ReadonlyArray<SqliteDsl.Index>;
175
- ast: __SqliteAst.Table;
176
- }, {
177
- isSingleton: false;
178
- disableAutomaticIdColumn: true;
179
- deriveMutations: never;
180
- isSingleColumn: false;
181
- requiredInsertColumnNames: "tableName" | "schemaHash" | "updatedAt";
182
- }, Schema.Schema<{
183
- readonly tableName: string;
184
- readonly schemaHash: number;
185
- readonly updatedAt: string;
186
- }, {
187
- readonly tableName: string;
188
- readonly schemaHash: number;
189
- readonly updatedAt: string;
190
- }, never>> | import("./table-def.js").TableDef<{
191
- name: "__livestore_schema_mutations";
192
- columns: {
193
- mutationName: {
194
- columnType: "text";
195
- schema: Schema.Schema<string, string, never>;
196
- default: import("effect/Option").None<never>;
197
- nullable: false;
198
- primaryKey: true;
199
- };
200
- schemaHash: {
201
- columnType: "integer";
202
- schema: Schema.Schema<number, number, never>;
203
- default: import("effect/Option").None<never>;
204
- nullable: false;
205
- primaryKey: false;
206
- };
207
- updatedAt: {
208
- columnType: "text";
209
- schema: Schema.Schema<string, string, never>;
210
- default: import("effect/Option").None<never>;
211
- nullable: false;
212
- primaryKey: false;
213
- };
214
- };
215
- indexes?: ReadonlyArray<SqliteDsl.Index>;
216
- ast: __SqliteAst.Table;
217
- }, {
218
- isSingleton: false;
219
- disableAutomaticIdColumn: true;
220
- deriveMutations: never;
221
- isSingleColumn: false;
222
- requiredInsertColumnNames: "schemaHash" | "updatedAt" | "mutationName";
223
- }, Schema.Schema<{
224
- readonly mutationName: string;
225
- readonly schemaHash: number;
226
- readonly updatedAt: string;
227
- }, {
228
- readonly mutationName: string;
229
- readonly schemaHash: number;
230
- readonly updatedAt: string;
231
- }, never>> | import("./table-def.js").TableDef<{
232
- name: "__livestore_session_changeset";
233
- columns: {
234
- idGlobal: {
235
- columnType: "integer";
236
- schema: Schema.Schema<number, number, never>;
237
- default: import("effect/Option").None<never>;
238
- nullable: false;
239
- primaryKey: false;
240
- };
241
- idLocal: {
242
- columnType: "integer";
243
- schema: Schema.Schema<number, number, never>;
244
- default: import("effect/Option").None<never>;
245
- nullable: false;
246
- primaryKey: false;
247
- };
248
- changeset: {
249
- columnType: "blob";
250
- schema: Schema.Schema<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>, never>;
251
- default: import("effect/Option").None<never>;
252
- nullable: false;
253
- primaryKey: false;
254
- };
255
- debug: {
256
- columnType: "text";
257
- schema: Schema.Schema<unknown, string | null, never>;
258
- default: import("effect/Option").Some<any> | import("effect/Option").None<never>;
259
- nullable: true;
260
- primaryKey: false;
261
- };
262
- };
263
- indexes?: ReadonlyArray<SqliteDsl.Index>;
264
- ast: __SqliteAst.Table;
265
- }, {
266
- isSingleton: false;
267
- disableAutomaticIdColumn: true;
268
- deriveMutations: never;
269
- isSingleColumn: false;
270
- requiredInsertColumnNames: "idGlobal" | "idLocal" | "changeset";
271
- }, Schema.Schema<{
272
- readonly idGlobal: number;
273
- readonly idLocal: number;
274
- readonly changeset: Uint8Array<ArrayBufferLike>;
275
- readonly debug: unknown;
276
- }, {
277
- readonly idGlobal: number;
278
- readonly idLocal: number;
279
- readonly changeset: Uint8Array<ArrayBufferLike>;
280
- readonly debug: string | null;
281
- }, never>>)[];
282
- export declare const SyncStatus: Schema.Literal<["synced", "pending", "error", "localOnly"]>;
283
- export type SyncStatus = typeof SyncStatus.Type;
284
- export declare const MUTATION_LOG_META_TABLE = "mutation_log";
285
- export declare const mutationLogMetaTable: import("./table-def.js").TableDef<{
286
- name: "mutation_log";
287
- columns: {
288
- idGlobal: {
289
- columnType: "integer";
290
- schema: Schema.Schema<number, number, never>;
291
- default: import("effect/Option").None<never>;
292
- nullable: false;
293
- primaryKey: true;
294
- };
295
- idLocal: {
296
- columnType: "integer";
297
- schema: Schema.Schema<number, number, never>;
298
- default: import("effect/Option").None<never>;
299
- nullable: false;
300
- primaryKey: true;
301
- };
302
- parentIdGlobal: {
303
- columnType: "integer";
304
- schema: Schema.Schema<number, number, never>;
305
- default: import("effect/Option").None<never>;
306
- nullable: false;
307
- primaryKey: false;
308
- };
309
- parentIdLocal: {
310
- columnType: "integer";
311
- schema: Schema.Schema<number, number, never>;
312
- default: import("effect/Option").None<never>;
313
- nullable: false;
314
- primaryKey: false;
315
- };
316
- mutation: {
317
- columnType: "text";
318
- schema: Schema.Schema<string, string, never>;
319
- default: import("effect/Option").None<never>;
320
- nullable: false;
321
- primaryKey: false;
322
- };
323
- argsJson: {
324
- columnType: "text";
325
- schema: Schema.Schema<any, string, never>;
326
- default: import("effect/Option").None<never>;
327
- nullable: false;
328
- primaryKey: false;
329
- };
330
- schemaHash: {
331
- columnType: "integer";
332
- schema: Schema.Schema<number, number, never>;
333
- default: import("effect/Option").None<never>;
334
- nullable: false;
335
- primaryKey: false;
336
- };
337
- syncMetadataJson: {
338
- columnType: "text";
339
- schema: Schema.Schema<import("effect/Option").Option<Schema.JsonValue>, string, never>;
340
- default: import("effect/Option").None<never>;
341
- nullable: false;
342
- primaryKey: false;
343
- };
344
- };
345
- indexes?: ReadonlyArray<SqliteDsl.Index>;
346
- ast: __SqliteAst.Table;
347
- }, {
348
- isSingleton: false;
349
- disableAutomaticIdColumn: true;
350
- deriveMutations: never;
351
- isSingleColumn: false;
352
- requiredInsertColumnNames: "schemaHash" | "idGlobal" | "idLocal" | "parentIdGlobal" | "parentIdLocal" | "mutation" | "argsJson" | "syncMetadataJson";
353
- }, Schema.Schema<{
354
- readonly idGlobal: number;
355
- readonly idLocal: number;
356
- readonly parentIdGlobal: number;
357
- readonly parentIdLocal: number;
358
- readonly mutation: string;
359
- readonly argsJson: any;
360
- readonly schemaHash: number;
361
- readonly syncMetadataJson: import("effect/Option").Option<Schema.JsonValue>;
362
- }, {
363
- readonly idGlobal: number;
364
- readonly idLocal: number;
365
- readonly parentIdGlobal: number;
366
- readonly parentIdLocal: number;
367
- readonly mutation: string;
368
- readonly argsJson: string;
369
- readonly schemaHash: number;
370
- readonly syncMetadataJson: string;
371
- }, never>>;
372
- export type MutationLogMetaRow = FromTable.RowDecoded<typeof mutationLogMetaTable>;
373
- export declare const SYNC_STATUS_TABLE = "__livestore_sync_status";
374
- export declare const syncStatusTable: import("./table-def.js").TableDef<{
375
- name: "__livestore_sync_status";
376
- columns: {
377
- head: {
378
- columnType: "integer";
379
- schema: Schema.Schema<number, number, never>;
380
- default: import("effect/Option").None<never>;
381
- nullable: false;
382
- primaryKey: true;
383
- };
384
- };
385
- indexes?: ReadonlyArray<SqliteDsl.Index>;
386
- ast: __SqliteAst.Table;
387
- }, {
388
- isSingleton: false;
389
- disableAutomaticIdColumn: true;
390
- deriveMutations: never;
391
- isSingleColumn: false;
392
- requiredInsertColumnNames: "head";
393
- }, Schema.Schema<{
394
- readonly head: number;
395
- }, {
396
- readonly head: number;
397
- }, never>>;
398
- export type SyncStatusRow = FromTable.RowDecoded<typeof syncStatusTable>;
399
- //# sourceMappingURL=system-tables.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"system-tables.d.ts","sourceRoot":"","sources":["../../src/schema/system-tables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,IAAI,WAAW,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAK/C,eAAO,MAAM,iBAAiB,uBAAuB,CAAA;AAErD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAS3B,CAAA;AAED,MAAM,MAAM,aAAa,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,eAAe,CAAC,CAAA;AAExE,eAAO,MAAM,2BAA2B,iCAAiC,CAAA;AAEzE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UASpC,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAE1F;;;GAGG;AACH,eAAO,MAAM,4BAA4B,kCAAkC,CAAA;AAE3E,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAYrC,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAE5F,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAAyE,CAAA;AAIlG,eAAO,MAAM,UAAU,6DAA4D,CAAA;AACnF,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,IAAI,CAAA;AAE/C,eAAO,MAAM,uBAAuB,iBAAiB,CAAA;AAErD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAahC,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAElF,eAAO,MAAM,iBAAiB,4BAA4B,CAAA;AAE1D,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;UAM3B,CAAA;AAED,MAAM,MAAM,aAAa,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,eAAe,CAAC,CAAA"}
@@ -1,51 +0,0 @@
1
- import { SqliteDsl } from '@livestore/db-schema';
2
- import { Schema } from '@livestore/utils/effect';
3
- import { table } from './table-def.js';
4
- /// App DB
5
- export const SCHEMA_META_TABLE = '__livestore_schema';
6
- export const schemaMetaTable = table(SCHEMA_META_TABLE, {
7
- tableName: SqliteDsl.text({ primaryKey: true }),
8
- schemaHash: SqliteDsl.integer({ nullable: false }),
9
- /** ISO date format */
10
- updatedAt: SqliteDsl.text({ nullable: false }),
11
- }, { disableAutomaticIdColumn: true });
12
- export const SCHEMA_MUTATIONS_META_TABLE = '__livestore_schema_mutations';
13
- export const schemaMutationsMetaTable = table(SCHEMA_MUTATIONS_META_TABLE, {
14
- mutationName: SqliteDsl.text({ primaryKey: true }),
15
- schemaHash: SqliteDsl.integer({ nullable: false }),
16
- /** ISO date format */
17
- updatedAt: SqliteDsl.text({ nullable: false }),
18
- }, { disableAutomaticIdColumn: true });
19
- /**
20
- * Table which stores SQLite changeset blobs which is used for rolling back
21
- * read-model state during rebasing.
22
- */
23
- export const SESSION_CHANGESET_META_TABLE = '__livestore_session_changeset';
24
- export const sessionChangesetMetaTable = table(SESSION_CHANGESET_META_TABLE, {
25
- // TODO bring back primary key
26
- idGlobal: SqliteDsl.integer({}),
27
- idLocal: SqliteDsl.integer({}),
28
- // idGlobal: SqliteDsl.integer({ primaryKey: true }),
29
- // idLocal: SqliteDsl.integer({ primaryKey: true }),
30
- changeset: SqliteDsl.blob({}),
31
- debug: SqliteDsl.json({ nullable: true }),
32
- }, { disableAutomaticIdColumn: true });
33
- export const systemTables = [schemaMetaTable, schemaMutationsMetaTable, sessionChangesetMetaTable];
34
- /// Mutation log DB
35
- export const SyncStatus = Schema.Literal('synced', 'pending', 'error', 'localOnly');
36
- export const MUTATION_LOG_META_TABLE = 'mutation_log';
37
- export const mutationLogMetaTable = table(MUTATION_LOG_META_TABLE, {
38
- idGlobal: SqliteDsl.integer({ primaryKey: true }),
39
- idLocal: SqliteDsl.integer({ primaryKey: true }),
40
- parentIdGlobal: SqliteDsl.integer({}),
41
- parentIdLocal: SqliteDsl.integer({}),
42
- mutation: SqliteDsl.text({}),
43
- argsJson: SqliteDsl.text({ schema: Schema.parseJson(Schema.Any) }),
44
- schemaHash: SqliteDsl.integer({}),
45
- syncMetadataJson: SqliteDsl.text({ schema: Schema.parseJson(Schema.Option(Schema.JsonValue)) }),
46
- }, { disableAutomaticIdColumn: true, indexes: [] });
47
- export const SYNC_STATUS_TABLE = '__livestore_sync_status';
48
- export const syncStatusTable = table(SYNC_STATUS_TABLE, {
49
- head: SqliteDsl.integer({ primaryKey: true }),
50
- }, { disableAutomaticIdColumn: true });
51
- //# sourceMappingURL=system-tables.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"system-tables.js","sourceRoot":"","sources":["../../src/schema/system-tables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAGhD,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAEtC,UAAU;AAEV,MAAM,CAAC,MAAM,iBAAiB,GAAG,oBAAoB,CAAA;AAErD,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAClC,iBAAiB,EACjB;IACE,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAC/C,UAAU,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAClD,sBAAsB;IACtB,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;CAC/C,EACD,EAAE,wBAAwB,EAAE,IAAI,EAAE,CACnC,CAAA;AAID,MAAM,CAAC,MAAM,2BAA2B,GAAG,8BAA8B,CAAA;AAEzE,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAC3C,2BAA2B,EAC3B;IACE,YAAY,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAClD,UAAU,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAClD,sBAAsB;IACtB,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;CAC/C,EACD,EAAE,wBAAwB,EAAE,IAAI,EAAE,CACnC,CAAA;AAID;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,+BAA+B,CAAA;AAE3E,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAK,CAC5C,4BAA4B,EAC5B;IACE,8BAA8B;IAC9B,QAAQ,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;IAC/B,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;IAC9B,qDAAqD;IACrD,oDAAoD;IACpD,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;IAC7B,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;CAC1C,EACD,EAAE,wBAAwB,EAAE,IAAI,EAAE,CACnC,CAAA;AAID,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,eAAe,EAAE,wBAAwB,EAAE,yBAAyB,CAAC,CAAA;AAElG,mBAAmB;AAEnB,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;AAGnF,MAAM,CAAC,MAAM,uBAAuB,GAAG,cAAc,CAAA;AAErD,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CACvC,uBAAuB,EACvB;IACE,QAAQ,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IACjD,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAChD,cAAc,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;IACrC,aAAa,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;IACpC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;IAC5B,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;IAClE,UAAU,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;IACjC,gBAAgB,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;CAChG,EACD,EAAE,wBAAwB,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAChD,CAAA;AAID,MAAM,CAAC,MAAM,iBAAiB,GAAG,yBAAyB,CAAA;AAE1D,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAClC,iBAAiB,EACjB;IACE,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;CAC9C,EACD,EAAE,wBAAwB,EAAE,IAAI,EAAE,CACnC,CAAA"}
@@ -1,156 +0,0 @@
1
- import type { Nullable, PrettifyFlat } from '@livestore/db-schema';
2
- import { SqliteDsl } from '@livestore/db-schema';
3
- import { Schema } from '@livestore/utils/effect';
4
- import type { DerivedMutationHelperFns } from '../derived-mutations.js';
5
- import type { QueryBuilder } from '../query-builder/mod.js';
6
- export declare const blob: SqliteDsl.ColDefFn<"blob">, boolean: SqliteDsl.SpecializedColDefFn<"integer", false, boolean>, column: <TColumnType extends SqliteDsl.FieldColumnType>(columnType: TColumnType) => SqliteDsl.ColDefFn<TColumnType>, datetime: SqliteDsl.SpecializedColDefFn<"text", false, Date>, integer: SqliteDsl.ColDefFn<"integer">, isColumnDefinition: (value: unknown) => value is SqliteDsl.ColumnDefinition<any, any>, json: SqliteDsl.SpecializedColDefFn<"text", true, unknown>, real: SqliteDsl.ColDefFn<"real">, text: SqliteDsl.ColDefFn<"text">;
7
- export { SqliteDsl } from '@livestore/db-schema';
8
- export type StateType = 'singleton' | 'dynamic';
9
- export type DefaultSqliteTableDef = SqliteDsl.TableDefinition<string, SqliteDsl.Columns>;
10
- export type DefaultSqliteTableDefConstrained = SqliteDsl.TableDefinition<string, SqliteDsl.ConstraintColumns>;
11
- export type TableDefBase<TSqliteDef extends DefaultSqliteTableDef = DefaultSqliteTableDefConstrained, TOptions extends TableOptions = TableOptions, TSchema = SqliteDsl.StructSchemaForColumns<TSqliteDef['columns']>> = {
12
- sqliteDef: TSqliteDef;
13
- options: TOptions;
14
- schema: TSchema;
15
- };
16
- export type TableDef<TSqliteDef extends DefaultSqliteTableDef = DefaultSqliteTableDefConstrained, TOptions extends TableOptions = TableOptions, TSchema = Schema.Schema<SqliteDsl.AnyIfConstained<TSqliteDef['columns'], {
17
- readonly [K in keyof TSqliteDef['columns']]: TSqliteDef['columns'][K]['schema']['Type'];
18
- }>, SqliteDsl.AnyIfConstained<TSqliteDef['columns'], {
19
- readonly [K in keyof TSqliteDef['columns']]: TSqliteDef['columns'][K]['schema']['Encoded'];
20
- }>>> = {
21
- sqliteDef: TSqliteDef;
22
- options: TOptions;
23
- schema: TSchema;
24
- query: QueryBuilder<ReadonlyArray<Schema.Schema.Type<TSchema>>, TableDef<TSqliteDef & {}, TOptions>>;
25
- } & (TOptions['deriveMutations']['enabled'] extends true ? DerivedMutationHelperFns<TSqliteDef['columns'], TOptions> : {});
26
- export type TableOptionsInput = Partial<{
27
- indexes: SqliteDsl.Index[];
28
- disableAutomaticIdColumn: boolean;
29
- isSingleton: boolean;
30
- deriveMutations: boolean | {
31
- enabled: true;
32
- localOnly?: boolean;
33
- };
34
- }>;
35
- type ToColumns<TColumns extends SqliteDsl.Columns | SqliteDsl.ColumnDefinition<any, any>> = TColumns extends SqliteDsl.Columns ? TColumns : TColumns extends SqliteDsl.ColumnDefinition<any, any> ? {
36
- value: TColumns;
37
- } : never;
38
- type ValidateTableOptionsInput<TColumns extends SqliteDsl.Columns | SqliteDsl.ColumnDefinition<any, any>, TOptionsInput extends TableOptionsInput, TPassthroughIfValid> = SqliteDsl.FromColumns.RequiresInsertValues<ToColumns<TColumns>> extends true ? TOptionsInput['isSingleton'] extends true ? 'Error: To use `isSingleton: true` with this table, each column must have a default value or be nullable' : TPassthroughIfValid : TPassthroughIfValid;
39
- export type TableOptions = {
40
- /**
41
- * Setting this to true will have the following consequences:
42
- * - An `id` column will be added with `primaryKey: true` and `"singleton"` as default value and only allowed value
43
- * - LiveStore will automatically create the singleton row when booting up
44
- * - LiveStore will fail if there is already a column defined with `primaryKey: true`
45
- *
46
- * @default false
47
- */
48
- readonly isSingleton: boolean;
49
- readonly disableAutomaticIdColumn: boolean;
50
- /**
51
- * Setting this to true will automatically derive insert, update and delete mutations for this table. Example:
52
- *
53
- * ```ts
54
- * const todos = table('todos', { ... }, { deriveMutations: true })
55
- * todos.insert({ id: '1', text: 'Hello' })
56
- * ```
57
- *
58
- * This is also a prerequisite for using the `useRow`, `useAtom` and `rowQuery` APIs.
59
- *
60
- * Important: When using this option, make sure you're following the "Rules of mutations" for the table schema.
61
- */
62
- readonly deriveMutations: {
63
- enabled: false;
64
- } | {
65
- enabled: true;
66
- /**
67
- * When set to true, the mutations won't be synced over the network
68
- */
69
- localOnly: boolean;
70
- };
71
- /** Derived based on whether the table definition has one or more columns (besides the `id` column) */
72
- readonly isSingleColumn: boolean;
73
- /**
74
- * Derived based on whether the table definition has one or more columns (besides the `id` column) that require
75
- * insert values (i.e. are not nullable and don't have a default value)
76
- *
77
- * `isSingleton` tables always imply `requiresInsertValues: false`
78
- */
79
- readonly requiredInsertColumnNames: string;
80
- };
81
- export declare const table: <TName extends string, TColumns extends SqliteDsl.Columns | SqliteDsl.ColumnDefinition<any, any>, TOptionsInput extends TableOptionsInput = Partial<{
82
- indexes: SqliteDsl.Index[];
83
- disableAutomaticIdColumn: boolean;
84
- isSingleton: boolean;
85
- deriveMutations: boolean | {
86
- enabled: true;
87
- localOnly?: boolean;
88
- };
89
- }>>(name: TName, columnOrColumns: TColumns, options?: TOptionsInput) => ValidateTableOptionsInput<TColumns, TOptionsInput, TableDef<SqliteTableDefForInput<TName, TColumns, WithDefaults<TOptionsInput, TColumns>>, WithDefaults<TOptionsInput, TColumns>>>;
90
- export declare const tableHasDerivedMutations: <TTableDef extends TableDefBase>(tableDef: TTableDef) => tableDef is TTableDef & {
91
- options: {
92
- deriveMutations: {
93
- enabled: true;
94
- localOnly: boolean;
95
- };
96
- };
97
- } & DerivedMutationHelperFns<TTableDef["sqliteDef"]["columns"], TTableDef["options"]>;
98
- export declare const tableIsSingleton: <TTableDef extends TableDefBase>(tableDef: TTableDef) => tableDef is TTableDef & {
99
- options: {
100
- isSingleton: true;
101
- };
102
- };
103
- type SqliteTableDefForInput<TName extends string, TColumns extends SqliteDsl.Columns | SqliteDsl.ColumnDefinition<any, any>, TOptions extends TableOptions> = SqliteDsl.TableDefinition<TName, PrettifyFlat<WithId<ToColumns<TColumns>, TOptions>>>;
104
- type WithId<TColumns extends SqliteDsl.Columns, TOptions extends TableOptions> = TColumns & ('id' extends keyof TColumns ? {} : TOptions['disableAutomaticIdColumn'] extends true ? {} : TOptions['isSingleton'] extends true ? {
105
- id: SqliteDsl.ColumnDefinition<'singleton', 'singleton'>;
106
- } : {
107
- id: SqliteDsl.ColumnDefinition<string, string>;
108
- });
109
- type WithDefaults<TOptionsInput extends TableOptionsInput, TColumns extends SqliteDsl.Columns | SqliteDsl.ColumnDefinition<any, any>> = {
110
- isSingleton: TOptionsInput['isSingleton'] extends true ? true : false;
111
- disableAutomaticIdColumn: TOptionsInput['disableAutomaticIdColumn'] extends true ? true : false;
112
- deriveMutations: TOptionsInput['deriveMutations'] extends true ? {
113
- enabled: true;
114
- localOnly: boolean;
115
- } : TOptionsInput['deriveMutations'] extends false ? {
116
- enabled: false;
117
- } : TOptionsInput['deriveMutations'] extends {
118
- enabled: true;
119
- localOnly?: boolean;
120
- } ? {
121
- enabled: true;
122
- localOnly: TOptionsInput['deriveMutations']['localOnly'] extends true ? true : false;
123
- } : never;
124
- isSingleColumn: SqliteDsl.IsSingleColumn<TColumns>;
125
- requiredInsertColumnNames: SqliteDsl.FromColumns.RequiredInsertColumnNames<ToColumns<TColumns>>;
126
- };
127
- export declare namespace FromTable {
128
- type RowDecoded<TTableDef extends TableDefBase> = PrettifyFlat<Nullable<Pick<RowDecodedAll<TTableDef>, NullableColumnNames<TTableDef>>> & Omit<RowDecodedAll<TTableDef>, NullableColumnNames<TTableDef>>>;
129
- type NullableColumnNames<TTableDef extends TableDefBase> = FromColumns.NullableColumnNames<TTableDef['sqliteDef']['columns']>;
130
- type Columns<TTableDef extends TableDefBase> = {
131
- [K in keyof TTableDef['sqliteDef']['columns']]: TTableDef['sqliteDef']['columns'][K]['columnType'];
132
- };
133
- type RowEncodeNonNullable<TTableDef extends TableDefBase> = {
134
- [K in keyof TTableDef['sqliteDef']['columns']]: Schema.Schema.Encoded<TTableDef['sqliteDef']['columns'][K]['schema']>;
135
- };
136
- type RowEncoded<TTableDef extends TableDefBase> = PrettifyFlat<Nullable<Pick<RowEncodeNonNullable<TTableDef>, NullableColumnNames<TTableDef>>> & Omit<RowEncodeNonNullable<TTableDef>, NullableColumnNames<TTableDef>>>;
137
- type RowDecodedAll<TTableDef extends TableDefBase> = {
138
- [K in keyof TTableDef['sqliteDef']['columns']]: Schema.Schema.Type<TTableDef['sqliteDef']['columns'][K]['schema']>;
139
- };
140
- }
141
- export declare namespace FromColumns {
142
- type RowDecoded<TColumns extends SqliteDsl.Columns> = PrettifyFlat<Nullable<Pick<RowDecodedAll<TColumns>, NullableColumnNames<TColumns>>> & Omit<RowDecodedAll<TColumns>, NullableColumnNames<TColumns>>>;
143
- type RowDecodedAll<TColumns extends SqliteDsl.Columns> = {
144
- [K in keyof TColumns]: Schema.Schema.Type<TColumns[K]['schema']>;
145
- };
146
- type RowEncoded<TColumns extends SqliteDsl.Columns> = PrettifyFlat<Nullable<Pick<RowEncodeNonNullable<TColumns>, NullableColumnNames<TColumns>>> & Omit<RowEncodeNonNullable<TColumns>, NullableColumnNames<TColumns>>>;
147
- type RowEncodeNonNullable<TColumns extends SqliteDsl.Columns> = {
148
- [K in keyof TColumns]: Schema.Schema.Encoded<TColumns[K]['schema']>;
149
- };
150
- type NullableColumnNames<TColumns extends SqliteDsl.Columns> = keyof {
151
- [K in keyof TColumns as TColumns[K]['default'] extends true ? K : never]: {};
152
- };
153
- type RequiredInsertColumnNames<TColumns extends SqliteDsl.Columns> = SqliteDsl.FromColumns.RequiredInsertColumnNames<TColumns>;
154
- type InsertRowDecoded<TColumns extends SqliteDsl.Columns> = SqliteDsl.FromColumns.InsertRowDecoded<TColumns>;
155
- }
156
- //# sourceMappingURL=table-def.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"table-def.d.ts","sourceRoot":"","sources":["../../src/schema/table-def.ts"],"names":[],"mappings":"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"}