@livestore/common 0.3.0-dev.5 → 0.3.0-dev.50

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 (491) 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 +120 -64
  7. package/dist/adapter-types.d.ts.map +1 -1
  8. package/dist/adapter-types.js +39 -8
  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 -580
  28. package/dist/devtools/devtools-messages.d.ts.map +1 -1
  29. package/dist/devtools/devtools-messages.js +3 -174
  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 +595 -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 +155 -80
  58. package/dist/leader-thread/leader-worker-devtools.js.map +1 -1
  59. package/dist/leader-thread/make-leader-thread-layer.d.ts +23 -11
  60. package/dist/leader-thread/make-leader-thread-layer.d.ts.map +1 -1
  61. package/dist/leader-thread/make-leader-thread-layer.js +72 -47
  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 +109 -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 +87 -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 +23 -0
  84. package/dist/make-client-session.d.ts.map +1 -0
  85. package/dist/make-client-session.js +57 -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 +86 -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 +43 -25
  104. package/dist/schema/EventId.d.ts.map +1 -1
  105. package/dist/schema/EventId.js +56 -18
  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/EventNumber.d.ts +57 -0
  112. package/dist/schema/EventNumber.d.ts.map +1 -0
  113. package/dist/schema/EventNumber.js +82 -0
  114. package/dist/schema/EventNumber.js.map +1 -0
  115. package/dist/schema/EventNumber.test.d.ts +2 -0
  116. package/dist/schema/EventNumber.test.d.ts.map +1 -0
  117. package/dist/schema/EventNumber.test.js +11 -0
  118. package/dist/schema/EventNumber.test.js.map +1 -0
  119. package/dist/schema/EventSequenceNumber.d.ts +57 -0
  120. package/dist/schema/EventSequenceNumber.d.ts.map +1 -0
  121. package/dist/schema/EventSequenceNumber.js +82 -0
  122. package/dist/schema/EventSequenceNumber.js.map +1 -0
  123. package/dist/schema/EventSequenceNumber.test.d.ts +2 -0
  124. package/dist/schema/EventSequenceNumber.test.d.ts.map +1 -0
  125. package/dist/schema/EventSequenceNumber.test.js +11 -0
  126. package/dist/schema/EventSequenceNumber.test.js.map +1 -0
  127. package/dist/schema/LiveStoreEvent.d.ts +257 -0
  128. package/dist/schema/LiveStoreEvent.d.ts.map +1 -0
  129. package/dist/schema/LiveStoreEvent.js +117 -0
  130. package/dist/schema/LiveStoreEvent.js.map +1 -0
  131. package/dist/schema/events.d.ts +2 -0
  132. package/dist/schema/events.d.ts.map +1 -0
  133. package/dist/schema/events.js +2 -0
  134. package/dist/schema/events.js.map +1 -0
  135. package/dist/schema/mod.d.ts +8 -6
  136. package/dist/schema/mod.d.ts.map +1 -1
  137. package/dist/schema/mod.js +8 -6
  138. package/dist/schema/mod.js.map +1 -1
  139. package/dist/schema/schema.d.ts +50 -32
  140. package/dist/schema/schema.d.ts.map +1 -1
  141. package/dist/schema/schema.js +36 -43
  142. package/dist/schema/schema.js.map +1 -1
  143. package/dist/schema/state/mod.d.ts +3 -0
  144. package/dist/schema/state/mod.d.ts.map +1 -0
  145. package/dist/schema/state/mod.js +3 -0
  146. package/dist/schema/state/mod.js.map +1 -0
  147. package/dist/schema/state/sqlite/client-document-def.d.ts +223 -0
  148. package/dist/schema/state/sqlite/client-document-def.d.ts.map +1 -0
  149. package/dist/schema/state/sqlite/client-document-def.js +170 -0
  150. package/dist/schema/state/sqlite/client-document-def.js.map +1 -0
  151. package/dist/schema/state/sqlite/client-document-def.test.d.ts +2 -0
  152. package/dist/schema/state/sqlite/client-document-def.test.d.ts.map +1 -0
  153. package/dist/schema/state/sqlite/client-document-def.test.js +201 -0
  154. package/dist/schema/state/sqlite/client-document-def.test.js.map +1 -0
  155. package/dist/schema/state/sqlite/db-schema/ast/sqlite.d.ts +69 -0
  156. package/dist/schema/state/sqlite/db-schema/ast/sqlite.d.ts.map +1 -0
  157. package/dist/schema/state/sqlite/db-schema/ast/sqlite.js +71 -0
  158. package/dist/schema/state/sqlite/db-schema/ast/sqlite.js.map +1 -0
  159. package/dist/schema/state/sqlite/db-schema/ast/validate.d.ts +3 -0
  160. package/dist/schema/state/sqlite/db-schema/ast/validate.d.ts.map +1 -0
  161. package/dist/schema/state/sqlite/db-schema/ast/validate.js +12 -0
  162. package/dist/schema/state/sqlite/db-schema/ast/validate.js.map +1 -0
  163. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.d.ts +90 -0
  164. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.d.ts.map +1 -0
  165. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.js +87 -0
  166. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.js.map +1 -0
  167. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.test.d.ts +2 -0
  168. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.test.d.ts.map +1 -0
  169. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.test.js +29 -0
  170. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.test.js.map +1 -0
  171. package/dist/schema/state/sqlite/db-schema/dsl/mod.d.ts +90 -0
  172. package/dist/schema/state/sqlite/db-schema/dsl/mod.d.ts.map +1 -0
  173. package/dist/schema/state/sqlite/db-schema/dsl/mod.js +41 -0
  174. package/dist/schema/state/sqlite/db-schema/dsl/mod.js.map +1 -0
  175. package/dist/schema/state/sqlite/db-schema/hash.d.ts +2 -0
  176. package/dist/schema/state/sqlite/db-schema/hash.d.ts.map +1 -0
  177. package/dist/schema/state/sqlite/db-schema/hash.js +14 -0
  178. package/dist/schema/state/sqlite/db-schema/hash.js.map +1 -0
  179. package/dist/schema/state/sqlite/db-schema/mod.d.ts +3 -0
  180. package/dist/schema/state/sqlite/db-schema/mod.d.ts.map +1 -0
  181. package/dist/schema/state/sqlite/db-schema/mod.js +3 -0
  182. package/dist/schema/state/sqlite/db-schema/mod.js.map +1 -0
  183. package/dist/schema/state/sqlite/mod.d.ts +17 -0
  184. package/dist/schema/state/sqlite/mod.d.ts.map +1 -0
  185. package/dist/schema/state/sqlite/mod.js +41 -0
  186. package/dist/schema/state/sqlite/mod.js.map +1 -0
  187. package/dist/schema/state/sqlite/query-builder/api.d.ts +294 -0
  188. package/dist/schema/state/sqlite/query-builder/api.d.ts.map +1 -0
  189. package/dist/schema/state/sqlite/query-builder/api.js +6 -0
  190. package/dist/schema/state/sqlite/query-builder/api.js.map +1 -0
  191. package/dist/schema/state/sqlite/query-builder/astToSql.d.ts +7 -0
  192. package/dist/schema/state/sqlite/query-builder/astToSql.d.ts.map +1 -0
  193. package/dist/schema/state/sqlite/query-builder/astToSql.js +190 -0
  194. package/dist/schema/state/sqlite/query-builder/astToSql.js.map +1 -0
  195. package/dist/schema/state/sqlite/query-builder/impl.d.ts +7 -0
  196. package/dist/schema/state/sqlite/query-builder/impl.d.ts.map +1 -0
  197. package/dist/schema/state/sqlite/query-builder/impl.js +286 -0
  198. package/dist/schema/state/sqlite/query-builder/impl.js.map +1 -0
  199. package/dist/schema/state/sqlite/query-builder/impl.test.d.ts +87 -0
  200. package/dist/schema/state/sqlite/query-builder/impl.test.d.ts.map +1 -0
  201. package/dist/schema/state/sqlite/query-builder/impl.test.js +563 -0
  202. package/dist/schema/state/sqlite/query-builder/impl.test.js.map +1 -0
  203. package/dist/{query-builder → schema/state/sqlite/query-builder}/mod.d.ts +7 -0
  204. package/dist/schema/state/sqlite/query-builder/mod.d.ts.map +1 -0
  205. package/dist/{query-builder → schema/state/sqlite/query-builder}/mod.js +7 -0
  206. package/dist/schema/state/sqlite/query-builder/mod.js.map +1 -0
  207. package/dist/schema/state/sqlite/schema-helpers.d.ts.map +1 -0
  208. package/dist/schema/{schema-helpers.js → state/sqlite/schema-helpers.js} +1 -1
  209. package/dist/schema/state/sqlite/schema-helpers.js.map +1 -0
  210. package/dist/schema/state/sqlite/system-tables.d.ts +574 -0
  211. package/dist/schema/state/sqlite/system-tables.d.ts.map +1 -0
  212. package/dist/schema/state/sqlite/system-tables.js +88 -0
  213. package/dist/schema/state/sqlite/system-tables.js.map +1 -0
  214. package/dist/schema/state/sqlite/table-def.d.ts +84 -0
  215. package/dist/schema/state/sqlite/table-def.d.ts.map +1 -0
  216. package/dist/schema/state/sqlite/table-def.js +36 -0
  217. package/dist/schema/state/sqlite/table-def.js.map +1 -0
  218. package/dist/schema-management/common.d.ts +7 -7
  219. package/dist/schema-management/common.d.ts.map +1 -1
  220. package/dist/schema-management/common.js.map +1 -1
  221. package/dist/schema-management/migrations.d.ts +6 -6
  222. package/dist/schema-management/migrations.d.ts.map +1 -1
  223. package/dist/schema-management/migrations.js +27 -18
  224. package/dist/schema-management/migrations.js.map +1 -1
  225. package/dist/schema-management/validate-schema.d.ts +8 -0
  226. package/dist/schema-management/validate-schema.d.ts.map +1 -0
  227. package/dist/schema-management/validate-schema.js +39 -0
  228. package/dist/schema-management/validate-schema.js.map +1 -0
  229. package/dist/sql-queries/misc.d.ts.map +1 -1
  230. package/dist/sql-queries/sql-queries.d.ts +1 -1
  231. package/dist/sql-queries/sql-queries.d.ts.map +1 -1
  232. package/dist/sql-queries/sql-queries.js.map +1 -1
  233. package/dist/sql-queries/sql-query-builder.d.ts +1 -1
  234. package/dist/sql-queries/sql-query-builder.d.ts.map +1 -1
  235. package/dist/sql-queries/sql-query-builder.js.map +1 -1
  236. package/dist/sql-queries/types.d.ts +2 -1
  237. package/dist/sql-queries/types.d.ts.map +1 -1
  238. package/dist/sql-queries/types.js.map +1 -1
  239. package/dist/sync/ClientSessionSyncProcessor.d.ts +66 -0
  240. package/dist/sync/ClientSessionSyncProcessor.d.ts.map +1 -0
  241. package/dist/sync/ClientSessionSyncProcessor.js +209 -0
  242. package/dist/sync/ClientSessionSyncProcessor.js.map +1 -0
  243. package/dist/sync/index.d.ts +1 -1
  244. package/dist/sync/index.d.ts.map +1 -1
  245. package/dist/sync/index.js +1 -1
  246. package/dist/sync/index.js.map +1 -1
  247. package/dist/sync/next/compact-events.d.ts.map +1 -1
  248. package/dist/sync/next/compact-events.js +38 -35
  249. package/dist/sync/next/compact-events.js.map +1 -1
  250. package/dist/sync/next/facts.d.ts +21 -21
  251. package/dist/sync/next/facts.d.ts.map +1 -1
  252. package/dist/sync/next/facts.js +11 -11
  253. package/dist/sync/next/facts.js.map +1 -1
  254. package/dist/sync/next/history-dag-common.d.ts +9 -7
  255. package/dist/sync/next/history-dag-common.d.ts.map +1 -1
  256. package/dist/sync/next/history-dag-common.js +10 -5
  257. package/dist/sync/next/history-dag-common.js.map +1 -1
  258. package/dist/sync/next/history-dag.d.ts +0 -2
  259. package/dist/sync/next/history-dag.d.ts.map +1 -1
  260. package/dist/sync/next/history-dag.js +16 -14
  261. package/dist/sync/next/history-dag.js.map +1 -1
  262. package/dist/sync/next/rebase-events.d.ts +10 -8
  263. package/dist/sync/next/rebase-events.d.ts.map +1 -1
  264. package/dist/sync/next/rebase-events.js +18 -10
  265. package/dist/sync/next/rebase-events.js.map +1 -1
  266. package/dist/sync/next/test/compact-events.calculator.test.js +39 -34
  267. package/dist/sync/next/test/compact-events.calculator.test.js.map +1 -1
  268. package/dist/sync/next/test/compact-events.test.js +77 -77
  269. package/dist/sync/next/test/compact-events.test.js.map +1 -1
  270. package/dist/sync/next/test/{mutation-fixtures.d.ts → event-fixtures.d.ts} +38 -28
  271. package/dist/sync/next/test/event-fixtures.d.ts.map +1 -0
  272. package/dist/sync/next/test/{mutation-fixtures.js → event-fixtures.js} +81 -38
  273. package/dist/sync/next/test/event-fixtures.js.map +1 -0
  274. package/dist/sync/next/test/mod.d.ts +1 -1
  275. package/dist/sync/next/test/mod.d.ts.map +1 -1
  276. package/dist/sync/next/test/mod.js +1 -1
  277. package/dist/sync/next/test/mod.js.map +1 -1
  278. package/dist/sync/sync.d.ts +60 -25
  279. package/dist/sync/sync.d.ts.map +1 -1
  280. package/dist/sync/sync.js +10 -6
  281. package/dist/sync/sync.js.map +1 -1
  282. package/dist/sync/syncstate.d.ts +213 -82
  283. package/dist/sync/syncstate.d.ts.map +1 -1
  284. package/dist/sync/syncstate.js +337 -139
  285. package/dist/sync/syncstate.js.map +1 -1
  286. package/dist/sync/syncstate.test.js +310 -286
  287. package/dist/sync/syncstate.test.js.map +1 -1
  288. package/dist/sync/validate-push-payload.d.ts +2 -2
  289. package/dist/sync/validate-push-payload.d.ts.map +1 -1
  290. package/dist/sync/validate-push-payload.js +4 -4
  291. package/dist/sync/validate-push-payload.js.map +1 -1
  292. package/dist/util.d.ts +2 -2
  293. package/dist/util.d.ts.map +1 -1
  294. package/dist/version.d.ts +2 -2
  295. package/dist/version.d.ts.map +1 -1
  296. package/dist/version.js +2 -2
  297. package/dist/version.js.map +1 -1
  298. package/package.json +13 -6
  299. package/src/__tests__/fixture.ts +36 -15
  300. package/src/adapter-types.ts +107 -68
  301. package/src/debug-info.ts +1 -0
  302. package/src/devtools/devtools-messages-client-session.ts +142 -0
  303. package/src/devtools/devtools-messages-common.ts +115 -0
  304. package/src/devtools/devtools-messages-leader.ts +191 -0
  305. package/src/devtools/devtools-messages.ts +3 -246
  306. package/src/devtools/devtools-sessioninfo.ts +101 -0
  307. package/src/devtools/mod.ts +59 -0
  308. package/src/index.ts +7 -15
  309. package/src/leader-thread/LeaderSyncProcessor.ts +940 -0
  310. package/src/leader-thread/connection.ts +54 -9
  311. package/src/leader-thread/eventlog.ts +199 -0
  312. package/src/leader-thread/leader-worker-devtools.ts +227 -104
  313. package/src/leader-thread/make-leader-thread-layer.ts +128 -78
  314. package/src/leader-thread/materialize-event.ts +173 -0
  315. package/src/leader-thread/mod.ts +1 -1
  316. package/src/leader-thread/recreate-db.ts +38 -39
  317. package/src/leader-thread/shutdown-channel.ts +2 -4
  318. package/src/leader-thread/types.ts +96 -50
  319. package/src/make-client-session.ts +136 -0
  320. package/src/materializer-helper.ts +138 -0
  321. package/src/otel.ts +8 -0
  322. package/src/rematerialize-from-eventlog.ts +117 -0
  323. package/src/schema/EventDef.ts +227 -0
  324. package/src/schema/EventSequenceNumber.test.ts +12 -0
  325. package/src/schema/EventSequenceNumber.ts +121 -0
  326. package/src/schema/LiveStoreEvent.ts +240 -0
  327. package/src/schema/events.ts +1 -0
  328. package/src/schema/mod.ts +8 -6
  329. package/src/schema/schema.ts +88 -84
  330. package/src/schema/state/mod.ts +2 -0
  331. package/src/schema/state/sqlite/client-document-def.test.ts +238 -0
  332. package/src/schema/state/sqlite/client-document-def.ts +444 -0
  333. package/src/schema/state/sqlite/db-schema/ast/sqlite.ts +142 -0
  334. package/src/schema/state/sqlite/db-schema/ast/validate.ts +13 -0
  335. package/src/schema/state/sqlite/db-schema/dsl/__snapshots__/field-defs.test.ts.snap +206 -0
  336. package/src/schema/state/sqlite/db-schema/dsl/field-defs.test.ts +35 -0
  337. package/src/schema/state/sqlite/db-schema/dsl/field-defs.ts +242 -0
  338. package/src/schema/state/sqlite/db-schema/dsl/mod.ts +222 -0
  339. package/src/schema/state/sqlite/db-schema/hash.ts +14 -0
  340. package/src/schema/state/sqlite/db-schema/mod.ts +2 -0
  341. package/src/schema/state/sqlite/mod.ts +73 -0
  342. package/src/schema/state/sqlite/query-builder/api.ts +440 -0
  343. package/src/schema/state/sqlite/query-builder/astToSql.ts +232 -0
  344. package/src/schema/state/sqlite/query-builder/impl.test.ts +617 -0
  345. package/src/schema/state/sqlite/query-builder/impl.ts +351 -0
  346. package/src/{query-builder → schema/state/sqlite/query-builder}/mod.ts +7 -0
  347. package/src/schema/{schema-helpers.ts → state/sqlite/schema-helpers.ts} +1 -1
  348. package/src/schema/state/sqlite/system-tables.ts +117 -0
  349. package/src/schema/state/sqlite/table-def.ts +197 -0
  350. package/src/schema-management/common.ts +7 -7
  351. package/src/schema-management/migrations.ts +37 -31
  352. package/src/schema-management/validate-schema.ts +61 -0
  353. package/src/sql-queries/sql-queries.ts +1 -1
  354. package/src/sql-queries/sql-query-builder.ts +1 -2
  355. package/src/sql-queries/types.ts +3 -1
  356. package/src/sync/ClientSessionSyncProcessor.ts +332 -0
  357. package/src/sync/index.ts +1 -1
  358. package/src/sync/next/compact-events.ts +38 -35
  359. package/src/sync/next/facts.ts +43 -41
  360. package/src/sync/next/history-dag-common.ts +17 -10
  361. package/src/sync/next/history-dag.ts +16 -17
  362. package/src/sync/next/rebase-events.ts +29 -17
  363. package/src/sync/next/test/compact-events.calculator.test.ts +46 -46
  364. package/src/sync/next/test/compact-events.test.ts +79 -79
  365. package/src/sync/next/test/event-fixtures.ts +226 -0
  366. package/src/sync/next/test/mod.ts +1 -1
  367. package/src/sync/sync.ts +60 -24
  368. package/src/sync/syncstate.test.ts +347 -320
  369. package/src/sync/syncstate.ts +422 -230
  370. package/src/sync/validate-push-payload.ts +6 -6
  371. package/src/version.ts +2 -2
  372. package/dist/derived-mutations.d.ts +0 -109
  373. package/dist/derived-mutations.d.ts.map +0 -1
  374. package/dist/derived-mutations.js +0 -54
  375. package/dist/derived-mutations.js.map +0 -1
  376. package/dist/derived-mutations.test.d.ts +0 -2
  377. package/dist/derived-mutations.test.d.ts.map +0 -1
  378. package/dist/derived-mutations.test.js +0 -93
  379. package/dist/derived-mutations.test.js.map +0 -1
  380. package/dist/devtools/devtools-bridge.d.ts +0 -13
  381. package/dist/devtools/devtools-bridge.d.ts.map +0 -1
  382. package/dist/devtools/devtools-bridge.js +0 -2
  383. package/dist/devtools/devtools-bridge.js.map +0 -1
  384. package/dist/devtools/devtools-window-message.d.ts +0 -29
  385. package/dist/devtools/devtools-window-message.d.ts.map +0 -1
  386. package/dist/devtools/devtools-window-message.js +0 -33
  387. package/dist/devtools/devtools-window-message.js.map +0 -1
  388. package/dist/devtools/index.d.ts +0 -42
  389. package/dist/devtools/index.d.ts.map +0 -1
  390. package/dist/devtools/index.js +0 -48
  391. package/dist/devtools/index.js.map +0 -1
  392. package/dist/init-singleton-tables.d.ts +0 -4
  393. package/dist/init-singleton-tables.d.ts.map +0 -1
  394. package/dist/init-singleton-tables.js +0 -16
  395. package/dist/init-singleton-tables.js.map +0 -1
  396. package/dist/leader-thread/apply-mutation.d.ts +0 -8
  397. package/dist/leader-thread/apply-mutation.d.ts.map +0 -1
  398. package/dist/leader-thread/apply-mutation.js +0 -95
  399. package/dist/leader-thread/apply-mutation.js.map +0 -1
  400. package/dist/leader-thread/leader-sync-processor.d.ts +0 -47
  401. package/dist/leader-thread/leader-sync-processor.d.ts.map +0 -1
  402. package/dist/leader-thread/leader-sync-processor.js +0 -425
  403. package/dist/leader-thread/leader-sync-processor.js.map +0 -1
  404. package/dist/leader-thread/mutationlog.d.ts +0 -10
  405. package/dist/leader-thread/mutationlog.d.ts.map +0 -1
  406. package/dist/leader-thread/mutationlog.js +0 -28
  407. package/dist/leader-thread/mutationlog.js.map +0 -1
  408. package/dist/leader-thread/pull-queue-set.d.ts +0 -7
  409. package/dist/leader-thread/pull-queue-set.d.ts.map +0 -1
  410. package/dist/leader-thread/pull-queue-set.js +0 -39
  411. package/dist/leader-thread/pull-queue-set.js.map +0 -1
  412. package/dist/mutation.d.ts +0 -13
  413. package/dist/mutation.d.ts.map +0 -1
  414. package/dist/mutation.js +0 -57
  415. package/dist/mutation.js.map +0 -1
  416. package/dist/query-builder/api.d.ts +0 -190
  417. package/dist/query-builder/api.d.ts.map +0 -1
  418. package/dist/query-builder/api.js +0 -8
  419. package/dist/query-builder/api.js.map +0 -1
  420. package/dist/query-builder/impl.d.ts +0 -12
  421. package/dist/query-builder/impl.d.ts.map +0 -1
  422. package/dist/query-builder/impl.js +0 -244
  423. package/dist/query-builder/impl.js.map +0 -1
  424. package/dist/query-builder/impl.test.d.ts +0 -2
  425. package/dist/query-builder/impl.test.d.ts.map +0 -1
  426. package/dist/query-builder/impl.test.js +0 -212
  427. package/dist/query-builder/impl.test.js.map +0 -1
  428. package/dist/query-builder/mod.d.ts.map +0 -1
  429. package/dist/query-builder/mod.js.map +0 -1
  430. package/dist/query-info.d.ts +0 -38
  431. package/dist/query-info.d.ts.map +0 -1
  432. package/dist/query-info.js +0 -7
  433. package/dist/query-info.js.map +0 -1
  434. package/dist/rehydrate-from-mutationlog.d.ts +0 -14
  435. package/dist/rehydrate-from-mutationlog.d.ts.map +0 -1
  436. package/dist/rehydrate-from-mutationlog.js +0 -72
  437. package/dist/rehydrate-from-mutationlog.js.map +0 -1
  438. package/dist/schema/MutationEvent.d.ts +0 -166
  439. package/dist/schema/MutationEvent.d.ts.map +0 -1
  440. package/dist/schema/MutationEvent.js +0 -72
  441. package/dist/schema/MutationEvent.js.map +0 -1
  442. package/dist/schema/mutations.d.ts +0 -107
  443. package/dist/schema/mutations.d.ts.map +0 -1
  444. package/dist/schema/mutations.js +0 -42
  445. package/dist/schema/mutations.js.map +0 -1
  446. package/dist/schema/schema-helpers.d.ts.map +0 -1
  447. package/dist/schema/schema-helpers.js.map +0 -1
  448. package/dist/schema/system-tables.d.ts +0 -399
  449. package/dist/schema/system-tables.d.ts.map +0 -1
  450. package/dist/schema/system-tables.js +0 -58
  451. package/dist/schema/system-tables.js.map +0 -1
  452. package/dist/schema/table-def.d.ts +0 -156
  453. package/dist/schema/table-def.d.ts.map +0 -1
  454. package/dist/schema/table-def.js +0 -79
  455. package/dist/schema/table-def.js.map +0 -1
  456. package/dist/schema-management/validate-mutation-defs.d.ts +0 -8
  457. package/dist/schema-management/validate-mutation-defs.d.ts.map +0 -1
  458. package/dist/schema-management/validate-mutation-defs.js +0 -39
  459. package/dist/schema-management/validate-mutation-defs.js.map +0 -1
  460. package/dist/sync/client-session-sync-processor.d.ts +0 -45
  461. package/dist/sync/client-session-sync-processor.d.ts.map +0 -1
  462. package/dist/sync/client-session-sync-processor.js +0 -131
  463. package/dist/sync/client-session-sync-processor.js.map +0 -1
  464. package/dist/sync/next/test/mutation-fixtures.d.ts.map +0 -1
  465. package/dist/sync/next/test/mutation-fixtures.js.map +0 -1
  466. package/src/derived-mutations.test.ts +0 -101
  467. package/src/derived-mutations.ts +0 -166
  468. package/src/devtools/devtools-bridge.ts +0 -14
  469. package/src/devtools/devtools-window-message.ts +0 -27
  470. package/src/devtools/index.ts +0 -48
  471. package/src/init-singleton-tables.ts +0 -24
  472. package/src/leader-thread/apply-mutation.ts +0 -143
  473. package/src/leader-thread/leader-sync-processor.ts +0 -670
  474. package/src/leader-thread/mutationlog.ts +0 -46
  475. package/src/leader-thread/pull-queue-set.ts +0 -58
  476. package/src/mutation.ts +0 -81
  477. package/src/query-builder/api.ts +0 -289
  478. package/src/query-builder/impl.test.ts +0 -239
  479. package/src/query-builder/impl.ts +0 -285
  480. package/src/query-info.ts +0 -78
  481. package/src/rehydrate-from-mutationlog.ts +0 -127
  482. package/src/schema/EventId.ts +0 -60
  483. package/src/schema/MutationEvent.ts +0 -180
  484. package/src/schema/mutations.ts +0 -192
  485. package/src/schema/system-tables.ts +0 -104
  486. package/src/schema/table-def.ts +0 -343
  487. package/src/schema-management/validate-mutation-defs.ts +0 -63
  488. package/src/sync/client-session-sync-processor.ts +0 -207
  489. package/src/sync/next/test/mutation-fixtures.ts +0 -224
  490. package/tsconfig.json +0 -11
  491. /package/dist/schema/{schema-helpers.d.ts → state/sqlite/schema-helpers.d.ts} +0 -0
@@ -0,0 +1,11 @@
1
+ import { Vitest } from '@livestore/utils-dev/node-vitest';
2
+ import { expect } from 'vitest';
3
+ import { EventSequenceNumber } from './mod.js';
4
+ Vitest.describe('EventSequenceNumber', () => {
5
+ Vitest.test('nextPair', () => {
6
+ const e_0_0 = EventSequenceNumber.make({ global: 0, client: 0 });
7
+ expect(EventSequenceNumber.nextPair(e_0_0, false).seqNum).toStrictEqual({ global: 1, client: 0 });
8
+ expect(EventSequenceNumber.nextPair(e_0_0, true).seqNum).toStrictEqual({ global: 0, client: 1 });
9
+ });
10
+ });
11
+ //# sourceMappingURL=EventNumber.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventNumber.test.js","sourceRoot":"","sources":["../../src/schema/EventNumber.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAA;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAE9C,MAAM,CAAC,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IAC1C,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE;QAC3B,MAAM,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAA;QAChE,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAA;QACjG,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAA;IAClG,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -0,0 +1,57 @@
1
+ import { Brand, Schema } from '@livestore/utils/effect';
2
+ export type ClientEventSequenceNumber = Brand.Branded<number, 'ClientEventSequenceNumber'>;
3
+ export declare const localEventSequenceNumber: Brand.Brand.Constructor<ClientEventSequenceNumber>;
4
+ export declare const ClientEventSequenceNumber: Schema.BrandSchema<number & Brand.Brand<"ClientEventSequenceNumber">, number, never>;
5
+ export type GlobalEventSequenceNumber = Brand.Branded<number, 'GlobalEventSequenceNumber'>;
6
+ export declare const globalEventSequenceNumber: Brand.Brand.Constructor<GlobalEventSequenceNumber>;
7
+ export declare const GlobalEventSequenceNumber: Schema.BrandSchema<number & Brand.Brand<"GlobalEventSequenceNumber">, number, never>;
8
+ export declare const clientDefault: ClientEventSequenceNumber;
9
+ /**
10
+ * LiveStore event sequence number value consisting of a globally unique event sequence number
11
+ * and a client sequence number.
12
+ *
13
+ * The client sequence number is only used for clientOnly events and starts from 0 for each global sequence number.
14
+ */
15
+ export type EventSequenceNumber = {
16
+ global: GlobalEventSequenceNumber;
17
+ client: ClientEventSequenceNumber;
18
+ };
19
+ /**
20
+ * NOTE: Client mutation events with a non-0 client id, won't be synced to the sync backend.
21
+ */
22
+ export declare const EventSequenceNumber: Schema.Struct<{
23
+ global: Schema.BrandSchema<number & Brand.Brand<"GlobalEventSequenceNumber">, number, never>;
24
+ /** Only increments for clientOnly events */
25
+ client: Schema.BrandSchema<number & Brand.Brand<"ClientEventSequenceNumber">, number, never>;
26
+ }>;
27
+ /**
28
+ * Compare two event sequence numbers i.e. checks if the first event sequence number is less than the second.
29
+ */
30
+ export declare const compare: (a: EventSequenceNumber, b: EventSequenceNumber) => number;
31
+ /**
32
+ * Convert an event sequence number to a string representation.
33
+ */
34
+ export declare const toString: (seqNum: EventSequenceNumber) => string;
35
+ /**
36
+ * Convert a string representation of an event sequence number to an event sequence number.
37
+ */
38
+ export declare const fromString: (str: string) => EventSequenceNumber;
39
+ export declare const isEqual: (a: EventSequenceNumber, b: EventSequenceNumber) => boolean;
40
+ export type EventSequenceNumberPair = {
41
+ seqNum: EventSequenceNumber;
42
+ parentSeqNum: EventSequenceNumber;
43
+ };
44
+ export declare const ROOT: {
45
+ global: GlobalEventSequenceNumber;
46
+ client: ClientEventSequenceNumber;
47
+ };
48
+ export declare const isGreaterThan: (a: EventSequenceNumber, b: EventSequenceNumber) => boolean;
49
+ export declare const isGreaterThanOrEqual: (a: EventSequenceNumber, b: EventSequenceNumber) => boolean;
50
+ export declare const max: (a: EventSequenceNumber, b: EventSequenceNumber) => EventSequenceNumber;
51
+ export declare const diff: (a: EventSequenceNumber, b: EventSequenceNumber) => {
52
+ global: number;
53
+ client: number;
54
+ };
55
+ export declare const make: (seqNum: EventSequenceNumber | typeof EventSequenceNumber.Encoded) => EventSequenceNumber;
56
+ export declare const nextPair: (seqNum: EventSequenceNumber, isLocal: boolean) => EventSequenceNumberPair;
57
+ //# sourceMappingURL=EventSequenceNumber.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventSequenceNumber.d.ts","sourceRoot":"","sources":["../../src/schema/EventSequenceNumber.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEvD,MAAM,MAAM,yBAAyB,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAA;AAC1F,eAAO,MAAM,wBAAwB,oDAA6C,CAAA;AAClF,eAAO,MAAM,yBAAyB,sFAAyD,CAAA;AAE/F,MAAM,MAAM,yBAAyB,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAA;AAC1F,eAAO,MAAM,yBAAyB,oDAA6C,CAAA;AACnF,eAAO,MAAM,yBAAyB,sFAA0D,CAAA;AAEhG,eAAO,MAAM,aAAa,EAAe,yBAAyB,CAAA;AAElE;;;;;GAKG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,yBAAyB,CAAA;IACjC,MAAM,EAAE,yBAAyB,CAAA;CAKlC,CAAA;AAOD;;GAEG;AACH,eAAO,MAAM,mBAAmB;;IAE9B,4CAA4C;;EAQY,CAAA;AAE1D;;GAEG;AACH,eAAO,MAAM,OAAO,GAAI,GAAG,mBAAmB,EAAE,GAAG,mBAAmB,WAKrE,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ,GAAI,QAAQ,mBAAmB,WAC8B,CAAA;AAElF;;GAEG;AACH,eAAO,MAAM,UAAU,GAAI,KAAK,MAAM,KAAG,mBAMxC,CAAA;AAED,eAAO,MAAM,OAAO,GAAI,GAAG,mBAAmB,EAAE,GAAG,mBAAmB,YACtB,CAAA;AAEhD,MAAM,MAAM,uBAAuB,GAAG;IAAE,MAAM,EAAE,mBAAmB,CAAC;IAAC,YAAY,EAAE,mBAAmB,CAAA;CAAE,CAAA;AAExG,eAAO,MAAM,IAAI;YACK,yBAAyB;;CAEhB,CAAA;AAE/B,eAAO,MAAM,aAAa,GAAI,GAAG,mBAAmB,EAAE,GAAG,mBAAmB,YAE3E,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,GAAG,mBAAmB,EAAE,GAAG,mBAAmB,YAElF,CAAA;AAED,eAAO,MAAM,GAAG,GAAI,GAAG,mBAAmB,EAAE,GAAG,mBAAmB,wBAEjE,CAAA;AAED,eAAO,MAAM,IAAI,GAAI,GAAG,mBAAmB,EAAE,GAAG,mBAAmB;;;CAKlE,CAAA;AAED,eAAO,MAAM,IAAI,GAAI,QAAQ,mBAAmB,GAAG,OAAO,mBAAmB,CAAC,OAAO,KAAG,mBAEvF,CAAA;AAED,eAAO,MAAM,QAAQ,GAAI,QAAQ,mBAAmB,EAAE,SAAS,OAAO,KAAG,uBAaxE,CAAA"}
@@ -0,0 +1,82 @@
1
+ import { Brand, Schema } from '@livestore/utils/effect';
2
+ export const localEventSequenceNumber = Brand.nominal();
3
+ export const ClientEventSequenceNumber = Schema.fromBrand(localEventSequenceNumber)(Schema.Int);
4
+ export const globalEventSequenceNumber = Brand.nominal();
5
+ export const GlobalEventSequenceNumber = Schema.fromBrand(globalEventSequenceNumber)(Schema.Int);
6
+ export const clientDefault = 0;
7
+ // export const EventSequenceNumber = Schema.Struct({})
8
+ // export const EventSequenceNumber = Schema.Struct({})
9
+ // export const ClientEventSequenceNumber = Schema.Struct({})
10
+ // export const GlobalEventSequenceNumber = Schema.Struct({})
11
+ /**
12
+ * NOTE: Client mutation events with a non-0 client id, won't be synced to the sync backend.
13
+ */
14
+ export const EventSequenceNumber = Schema.Struct({
15
+ global: GlobalEventSequenceNumber,
16
+ /** Only increments for clientOnly events */
17
+ client: ClientEventSequenceNumber,
18
+ // TODO also provide a way to see "confirmation level" of event (e.g. confirmed by leader/sync backend)
19
+ // TODO: actually add this field
20
+ // Client only
21
+ // generation: Schema.Number.pipe(Schema.optional),
22
+ }).annotations({ title: 'LiveStore.EventSequenceNumber' });
23
+ /**
24
+ * Compare two event sequence numbers i.e. checks if the first event sequence number is less than the second.
25
+ */
26
+ export const compare = (a, b) => {
27
+ if (a.global !== b.global) {
28
+ return a.global - b.global;
29
+ }
30
+ return a.client - b.client;
31
+ };
32
+ /**
33
+ * Convert an event sequence number to a string representation.
34
+ */
35
+ export const toString = (seqNum) => seqNum.client === 0 ? `e${seqNum.global}` : `e${seqNum.global}+${seqNum.client}`;
36
+ /**
37
+ * Convert a string representation of an event sequence number to an event sequence number.
38
+ */
39
+ export const fromString = (str) => {
40
+ const [global, client] = str.slice(1, -1).split(',').map(Number);
41
+ if (global === undefined || client === undefined) {
42
+ throw new Error('Invalid event sequence number string');
43
+ }
44
+ return { global, client };
45
+ };
46
+ export const isEqual = (a, b) => a.global === b.global && a.client === b.client;
47
+ export const ROOT = {
48
+ global: 0,
49
+ client: clientDefault,
50
+ };
51
+ export const isGreaterThan = (a, b) => {
52
+ return a.global > b.global || (a.global === b.global && a.client > b.client);
53
+ };
54
+ export const isGreaterThanOrEqual = (a, b) => {
55
+ return a.global > b.global || (a.global === b.global && a.client >= b.client);
56
+ };
57
+ export const max = (a, b) => {
58
+ return a.global > b.global || (a.global === b.global && a.client > b.client) ? a : b;
59
+ };
60
+ export const diff = (a, b) => {
61
+ return {
62
+ global: a.global - b.global,
63
+ client: a.client - b.client,
64
+ };
65
+ };
66
+ export const make = (seqNum) => {
67
+ return Schema.is(EventSequenceNumber)(seqNum) ? seqNum : Schema.decodeSync(EventSequenceNumber)(seqNum);
68
+ };
69
+ export const nextPair = (seqNum, isLocal) => {
70
+ if (isLocal) {
71
+ return {
72
+ seqNum: { global: seqNum.global, client: (seqNum.client + 1) },
73
+ parentSeqNum: seqNum,
74
+ };
75
+ }
76
+ return {
77
+ seqNum: { global: (seqNum.global + 1), client: clientDefault },
78
+ // NOTE we always point to `client: 0` for non-clientOnly events
79
+ parentSeqNum: { global: seqNum.global, client: clientDefault },
80
+ };
81
+ };
82
+ //# sourceMappingURL=EventSequenceNumber.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventSequenceNumber.js","sourceRoot":"","sources":["../../src/schema/EventSequenceNumber.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=EventSequenceNumber.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventSequenceNumber.test.d.ts","sourceRoot":"","sources":["../../src/schema/EventSequenceNumber.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ import { Vitest } from '@livestore/utils-dev/node-vitest';
2
+ import { expect } from 'vitest';
3
+ import { EventSequenceNumber } from './mod.js';
4
+ Vitest.describe('EventSequenceNumber', () => {
5
+ Vitest.test('nextPair', () => {
6
+ const e_0_0 = EventSequenceNumber.make({ global: 0, client: 0 });
7
+ expect(EventSequenceNumber.nextPair(e_0_0, false).seqNum).toStrictEqual({ global: 1, client: 0 });
8
+ expect(EventSequenceNumber.nextPair(e_0_0, true).seqNum).toStrictEqual({ global: 0, client: 1 });
9
+ });
10
+ });
11
+ //# sourceMappingURL=EventSequenceNumber.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventSequenceNumber.test.js","sourceRoot":"","sources":["../../src/schema/EventSequenceNumber.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAA;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAE9C,MAAM,CAAC,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IAC1C,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE;QAC3B,MAAM,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAA;QAChE,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAA;QACjG,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAA;IAClG,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -0,0 +1,257 @@
1
+ import { Option, Schema } from '@livestore/utils/effect';
2
+ import type { EventDef, EventDefRecord } from './EventDef.js';
3
+ import * as EventSequenceNumber from './EventSequenceNumber.js';
4
+ import type { LiveStoreSchema } from './schema.js';
5
+ export declare namespace ForEventDef {
6
+ type PartialDecoded<TEventDef extends EventDef.Any> = {
7
+ name: TEventDef['name'];
8
+ args: Schema.Schema.Type<TEventDef['schema']>;
9
+ };
10
+ type PartialEncoded<TEventDef extends EventDef.Any> = {
11
+ name: TEventDef['name'];
12
+ args: Schema.Schema.Encoded<TEventDef['schema']>;
13
+ };
14
+ type Decoded<TEventDef extends EventDef.Any> = {
15
+ name: TEventDef['name'];
16
+ args: Schema.Schema.Type<TEventDef['schema']>;
17
+ seqNum: EventSequenceNumber.EventSequenceNumber;
18
+ parentSeqNum: EventSequenceNumber.EventSequenceNumber;
19
+ clientId: string;
20
+ sessionId: string;
21
+ };
22
+ type Encoded<TEventDef extends EventDef.Any> = {
23
+ name: TEventDef['name'];
24
+ args: Schema.Schema.Encoded<TEventDef['schema']>;
25
+ seqNum: EventSequenceNumber.EventSequenceNumber;
26
+ parentSeqNum: EventSequenceNumber.EventSequenceNumber;
27
+ clientId: string;
28
+ sessionId: string;
29
+ };
30
+ }
31
+ export type AnyDecoded = ForEventDef.Decoded<EventDef.Any>;
32
+ export declare const AnyDecoded: Schema.Struct<{
33
+ name: typeof Schema.String;
34
+ args: typeof Schema.Any;
35
+ seqNum: Schema.Struct<{
36
+ global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
37
+ client: Schema.BrandSchema<number & import("effect/Brand").Brand<"ClientEventSequenceNumber">, number, never>;
38
+ }>;
39
+ parentSeqNum: Schema.Struct<{
40
+ global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
41
+ client: Schema.BrandSchema<number & import("effect/Brand").Brand<"ClientEventSequenceNumber">, number, never>;
42
+ }>;
43
+ clientId: typeof Schema.String;
44
+ sessionId: typeof Schema.String;
45
+ }>;
46
+ export type AnyEncoded = ForEventDef.Encoded<EventDef.Any>;
47
+ export declare const AnyEncoded: Schema.Struct<{
48
+ name: typeof Schema.String;
49
+ args: typeof Schema.Any;
50
+ seqNum: Schema.Struct<{
51
+ global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
52
+ client: Schema.BrandSchema<number & import("effect/Brand").Brand<"ClientEventSequenceNumber">, number, never>;
53
+ }>;
54
+ parentSeqNum: Schema.Struct<{
55
+ global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
56
+ client: Schema.BrandSchema<number & import("effect/Brand").Brand<"ClientEventSequenceNumber">, number, never>;
57
+ }>;
58
+ clientId: typeof Schema.String;
59
+ sessionId: typeof Schema.String;
60
+ }>;
61
+ export declare const AnyEncodedGlobal: Schema.Struct<{
62
+ name: typeof Schema.String;
63
+ args: typeof Schema.Any;
64
+ seqNum: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
65
+ parentSeqNum: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
66
+ clientId: typeof Schema.String;
67
+ sessionId: typeof Schema.String;
68
+ }>;
69
+ export type AnyEncodedGlobal = typeof AnyEncodedGlobal.Type;
70
+ export type PartialAnyDecoded = ForEventDef.PartialDecoded<EventDef.Any>;
71
+ export type PartialAnyEncoded = ForEventDef.PartialEncoded<EventDef.Any>;
72
+ export declare const PartialAnyEncoded: Schema.Struct<{
73
+ name: typeof Schema.String;
74
+ args: typeof Schema.Any;
75
+ }>;
76
+ export type PartialForSchema<TSchema extends LiveStoreSchema> = {
77
+ [K in keyof TSchema['_EventDefMapType']]: ForEventDef.PartialDecoded<TSchema['_EventDefMapType'][K]>;
78
+ }[keyof TSchema['_EventDefMapType']];
79
+ export type ForSchema<TSchema extends LiveStoreSchema> = {
80
+ [K in keyof TSchema['_EventDefMapType']]: ForEventDef.Decoded<TSchema['_EventDefMapType'][K]>;
81
+ }[keyof TSchema['_EventDefMapType']];
82
+ export declare const isPartialEventDef: (event: AnyDecoded | PartialAnyDecoded) => event is PartialAnyDecoded;
83
+ export type ForEventDefRecord<TEventDefRecord extends EventDefRecord> = Schema.Schema<{
84
+ [K in keyof TEventDefRecord]: {
85
+ name: K;
86
+ args: Schema.Schema.Type<TEventDefRecord[K]['schema']>;
87
+ seqNum: EventSequenceNumber.EventSequenceNumber;
88
+ parentSeqNum: EventSequenceNumber.EventSequenceNumber;
89
+ clientId: string;
90
+ sessionId: string;
91
+ };
92
+ }[keyof TEventDefRecord], {
93
+ [K in keyof TEventDefRecord]: {
94
+ name: K;
95
+ args: Schema.Schema.Encoded<TEventDefRecord[K]['schema']>;
96
+ seqNum: EventSequenceNumber.EventSequenceNumber;
97
+ parentSeqNum: EventSequenceNumber.EventSequenceNumber;
98
+ clientId: string;
99
+ sessionId: string;
100
+ };
101
+ }[keyof TEventDefRecord]>;
102
+ export type EventDefPartialSchema<TEventDefRecord extends EventDefRecord> = Schema.Schema<{
103
+ [K in keyof TEventDefRecord]: {
104
+ name: K;
105
+ args: Schema.Schema.Type<TEventDefRecord[K]['schema']>;
106
+ };
107
+ }[keyof TEventDefRecord], {
108
+ [K in keyof TEventDefRecord]: {
109
+ name: K;
110
+ args: Schema.Schema.Encoded<TEventDefRecord[K]['schema']>;
111
+ };
112
+ }[keyof TEventDefRecord]>;
113
+ export declare const makeEventDefSchema: <TSchema extends LiveStoreSchema>(schema: TSchema) => ForEventDefRecord<TSchema["_EventDefMapType"]>;
114
+ export declare const makeEventDefPartialSchema: <TSchema extends LiveStoreSchema>(schema: TSchema) => EventDefPartialSchema<TSchema["_EventDefMapType"]>;
115
+ export declare const makeEventDefSchemaMemo: <TSchema extends LiveStoreSchema>(schema: TSchema) => ForEventDefRecord<TSchema["_EventDefMapType"]>;
116
+ declare const EncodedWithMeta_base: Schema.Class<EncodedWithMeta, {
117
+ name: typeof Schema.String;
118
+ args: typeof Schema.Any;
119
+ seqNum: Schema.Struct<{
120
+ global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
121
+ client: Schema.BrandSchema<number & import("effect/Brand").Brand<"ClientEventSequenceNumber">, number, never>;
122
+ }>;
123
+ parentSeqNum: Schema.Struct<{
124
+ global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
125
+ client: Schema.BrandSchema<number & import("effect/Brand").Brand<"ClientEventSequenceNumber">, number, never>;
126
+ }>;
127
+ clientId: typeof Schema.String;
128
+ sessionId: typeof Schema.String;
129
+ meta: Schema.PropertySignature<":", {
130
+ sessionChangeset: {
131
+ readonly _tag: "sessionChangeset";
132
+ readonly debug?: any;
133
+ readonly data: Uint8Array<ArrayBufferLike>;
134
+ } | {
135
+ readonly _tag: "no-op";
136
+ } | {
137
+ readonly _tag: "unset";
138
+ };
139
+ syncMetadata: Option.Option<Schema.JsonValue>;
140
+ }, never, "?:", {
141
+ sessionChangeset: {
142
+ readonly _tag: "sessionChangeset";
143
+ readonly data: readonly number[];
144
+ readonly debug?: any;
145
+ } | {
146
+ readonly _tag: "no-op";
147
+ } | {
148
+ readonly _tag: "unset";
149
+ };
150
+ syncMetadata: {
151
+ readonly _tag: "None";
152
+ } | {
153
+ readonly _tag: "Some";
154
+ readonly value: Schema.JsonValue;
155
+ };
156
+ } | undefined, true, never>;
157
+ }, Schema.Struct.Encoded<{
158
+ name: typeof Schema.String;
159
+ args: typeof Schema.Any;
160
+ seqNum: Schema.Struct<{
161
+ global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
162
+ client: Schema.BrandSchema<number & import("effect/Brand").Brand<"ClientEventSequenceNumber">, number, never>;
163
+ }>;
164
+ parentSeqNum: Schema.Struct<{
165
+ global: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
166
+ client: Schema.BrandSchema<number & import("effect/Brand").Brand<"ClientEventSequenceNumber">, number, never>;
167
+ }>;
168
+ clientId: typeof Schema.String;
169
+ sessionId: typeof Schema.String;
170
+ meta: Schema.PropertySignature<":", {
171
+ sessionChangeset: {
172
+ readonly _tag: "sessionChangeset";
173
+ readonly debug?: any;
174
+ readonly data: Uint8Array<ArrayBufferLike>;
175
+ } | {
176
+ readonly _tag: "no-op";
177
+ } | {
178
+ readonly _tag: "unset";
179
+ };
180
+ syncMetadata: Option.Option<Schema.JsonValue>;
181
+ }, never, "?:", {
182
+ sessionChangeset: {
183
+ readonly _tag: "sessionChangeset";
184
+ readonly data: readonly number[];
185
+ readonly debug?: any;
186
+ } | {
187
+ readonly _tag: "no-op";
188
+ } | {
189
+ readonly _tag: "unset";
190
+ };
191
+ syncMetadata: {
192
+ readonly _tag: "None";
193
+ } | {
194
+ readonly _tag: "Some";
195
+ readonly value: Schema.JsonValue;
196
+ };
197
+ } | undefined, true, never>;
198
+ }>, never, {
199
+ readonly clientId: string;
200
+ } & {
201
+ readonly sessionId: string;
202
+ } & {
203
+ readonly name: string;
204
+ } & {
205
+ readonly args: any;
206
+ } & {
207
+ readonly seqNum: {
208
+ readonly global: number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">;
209
+ readonly client: number & import("effect/Brand").Brand<"ClientEventSequenceNumber">;
210
+ };
211
+ } & {
212
+ readonly parentSeqNum: {
213
+ readonly global: number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">;
214
+ readonly client: number & import("effect/Brand").Brand<"ClientEventSequenceNumber">;
215
+ };
216
+ } & {
217
+ readonly meta?: {
218
+ sessionChangeset: {
219
+ readonly _tag: "sessionChangeset";
220
+ readonly debug?: any;
221
+ readonly data: Uint8Array<ArrayBufferLike>;
222
+ } | {
223
+ readonly _tag: "no-op";
224
+ } | {
225
+ readonly _tag: "unset";
226
+ };
227
+ syncMetadata: Option.Option<Schema.JsonValue>;
228
+ } | undefined;
229
+ }, {}, {}>;
230
+ /** Equivalent to AnyEncoded but with a meta field and some convenience methods */
231
+ export declare class EncodedWithMeta extends EncodedWithMeta_base {
232
+ toJSON: () => any;
233
+ /**
234
+ * Example: (global event)
235
+ * For event e2 → e1 which should be rebased on event e3 → e2
236
+ * the resulting event num will be e4 → e3
237
+ *
238
+ * Example: (client event)
239
+ * For event e2+1 → e2 which should be rebased on event e3 → e2
240
+ * the resulting event num will be e3+1 → e3
241
+ *
242
+ * Syntax: e2+2 → e2+1
243
+ * ^ ^ ^ ^
244
+ * | | | +- client parent number
245
+ * | | +--- global parent number
246
+ * | +-- client number
247
+ * +---- global number
248
+ * Client num is ommitted for global events
249
+ */
250
+ rebase: (parentSeqNum: EventSequenceNumber.EventSequenceNumber, isClient: boolean) => EncodedWithMeta;
251
+ static fromGlobal: (event: AnyEncodedGlobal, syncMetadata: Option.Option<Schema.JsonValue>) => EncodedWithMeta;
252
+ toGlobal: () => AnyEncodedGlobal;
253
+ }
254
+ /** NOTE `meta` is not considered for equality */
255
+ export declare const isEqualEncoded: (a: AnyEncoded, b: AnyEncoded) => boolean;
256
+ export {};
257
+ //# sourceMappingURL=LiveStoreEvent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LiveStoreEvent.d.ts","sourceRoot":"","sources":["../../src/schema/LiveStoreEvent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,117 @@
1
+ import { memoizeByRef } from '@livestore/utils';
2
+ import { Option, Schema } from '@livestore/utils/effect';
3
+ import * as EventSequenceNumber from './EventSequenceNumber.js';
4
+ export const AnyDecoded = Schema.Struct({
5
+ name: Schema.String,
6
+ args: Schema.Any,
7
+ seqNum: EventSequenceNumber.EventSequenceNumber,
8
+ parentSeqNum: EventSequenceNumber.EventSequenceNumber,
9
+ clientId: Schema.String,
10
+ sessionId: Schema.String,
11
+ }).annotations({ title: 'LiveStoreEvent.AnyDecoded' });
12
+ export const AnyEncoded = Schema.Struct({
13
+ name: Schema.String,
14
+ args: Schema.Any,
15
+ seqNum: EventSequenceNumber.EventSequenceNumber,
16
+ parentSeqNum: EventSequenceNumber.EventSequenceNumber,
17
+ clientId: Schema.String,
18
+ sessionId: Schema.String,
19
+ }).annotations({ title: 'LiveStoreEvent.AnyEncoded' });
20
+ export const AnyEncodedGlobal = Schema.Struct({
21
+ name: Schema.String,
22
+ args: Schema.Any,
23
+ seqNum: EventSequenceNumber.GlobalEventSequenceNumber,
24
+ parentSeqNum: EventSequenceNumber.GlobalEventSequenceNumber,
25
+ clientId: Schema.String,
26
+ sessionId: Schema.String,
27
+ }).annotations({ title: 'LiveStoreEvent.AnyEncodedGlobal' });
28
+ export const PartialAnyEncoded = Schema.Struct({
29
+ name: Schema.String,
30
+ args: Schema.Any,
31
+ });
32
+ export const isPartialEventDef = (event) => 'num' in event === false && 'parentSeqNum' in event === false;
33
+ export const makeEventDefSchema = (schema) => Schema.Union(...[...schema.eventsDefsMap.values()].map((def) => Schema.Struct({
34
+ name: Schema.Literal(def.name),
35
+ args: def.schema,
36
+ seqNum: EventSequenceNumber.EventSequenceNumber,
37
+ parentSeqNum: EventSequenceNumber.EventSequenceNumber,
38
+ clientId: Schema.String,
39
+ sessionId: Schema.String,
40
+ }))).annotations({ title: 'EventDef' });
41
+ export const makeEventDefPartialSchema = (schema) => Schema.Union(...[...schema.eventsDefsMap.values()].map((def) => Schema.Struct({
42
+ name: Schema.Literal(def.name),
43
+ args: def.schema,
44
+ }))).annotations({ title: 'EventDefPartial' });
45
+ export const makeEventDefSchemaMemo = memoizeByRef(makeEventDefSchema);
46
+ /** Equivalent to AnyEncoded but with a meta field and some convenience methods */
47
+ export class EncodedWithMeta extends Schema.Class('LiveStoreEvent.EncodedWithMeta')({
48
+ name: Schema.String,
49
+ args: Schema.Any,
50
+ seqNum: EventSequenceNumber.EventSequenceNumber,
51
+ parentSeqNum: EventSequenceNumber.EventSequenceNumber,
52
+ clientId: Schema.String,
53
+ sessionId: Schema.String,
54
+ // TODO get rid of `meta` again by cleaning up the usage implementations
55
+ meta: Schema.Struct({
56
+ sessionChangeset: Schema.Union(Schema.TaggedStruct('sessionChangeset', {
57
+ data: Schema.Uint8Array,
58
+ debug: Schema.Any.pipe(Schema.optional),
59
+ }), Schema.TaggedStruct('no-op', {}), Schema.TaggedStruct('unset', {})),
60
+ syncMetadata: Schema.Option(Schema.JsonValue),
61
+ }).pipe(Schema.mutable, Schema.optional, Schema.withDefaults({
62
+ constructor: () => ({ sessionChangeset: { _tag: 'unset' }, syncMetadata: Option.none() }),
63
+ decoding: () => ({ sessionChangeset: { _tag: 'unset' }, syncMetadata: Option.none() }),
64
+ })),
65
+ }) {
66
+ toJSON = () => {
67
+ // Only used for logging/debugging
68
+ // - More readable way to print the seqNum + parentSeqNum
69
+ // - not including `meta`, `clientId`, `sessionId`
70
+ return {
71
+ seqNum: `${EventSequenceNumber.toString(this.seqNum)} → ${EventSequenceNumber.toString(this.parentSeqNum)} (${this.clientId}, ${this.sessionId})`,
72
+ name: this.name,
73
+ args: this.args,
74
+ };
75
+ };
76
+ /**
77
+ * Example: (global event)
78
+ * For event e2 → e1 which should be rebased on event e3 → e2
79
+ * the resulting event num will be e4 → e3
80
+ *
81
+ * Example: (client event)
82
+ * For event e2+1 → e2 which should be rebased on event e3 → e2
83
+ * the resulting event num will be e3+1 → e3
84
+ *
85
+ * Syntax: e2+2 → e2+1
86
+ * ^ ^ ^ ^
87
+ * | | | +- client parent number
88
+ * | | +--- global parent number
89
+ * | +-- client number
90
+ * +---- global number
91
+ * Client num is ommitted for global events
92
+ */
93
+ rebase = (parentSeqNum, isClient) => new EncodedWithMeta({
94
+ ...this,
95
+ ...EventSequenceNumber.nextPair(parentSeqNum, isClient),
96
+ });
97
+ static fromGlobal = (event, syncMetadata) => new EncodedWithMeta({
98
+ ...event,
99
+ seqNum: { global: event.seqNum, client: EventSequenceNumber.clientDefault },
100
+ parentSeqNum: { global: event.parentSeqNum, client: EventSequenceNumber.clientDefault },
101
+ meta: { sessionChangeset: { _tag: 'unset' }, syncMetadata },
102
+ });
103
+ toGlobal = () => ({
104
+ ...this,
105
+ seqNum: this.seqNum.global,
106
+ parentSeqNum: this.parentSeqNum.global,
107
+ });
108
+ }
109
+ /** NOTE `meta` is not considered for equality */
110
+ export const isEqualEncoded = (a, b) => a.seqNum.global === b.seqNum.global &&
111
+ a.seqNum.client === b.seqNum.client &&
112
+ a.name === b.name &&
113
+ a.clientId === b.clientId &&
114
+ a.sessionId === b.sessionId &&
115
+ // TODO use schema equality here
116
+ JSON.stringify(a.args) === JSON.stringify(b.args);
117
+ //# sourceMappingURL=LiveStoreEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LiveStoreEvent.js","sourceRoot":"","sources":["../../src/schema/LiveStoreEvent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { defineEvent, synced, clientOnly } from './EventDef.js';
2
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/schema/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA"}
@@ -0,0 +1,2 @@
1
+ export { defineEvent, synced, clientOnly } from './EventDef.js';
2
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/schema/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA"}
@@ -1,8 +1,10 @@
1
- export * from './system-tables.js';
2
- export * as DbSchema from './table-def.js';
3
- export * from './mutations.js';
4
- export * from './schema-helpers.js';
1
+ export * as SystemTables from './state/sqlite/system-tables.js';
2
+ export { SqliteAst, SqliteDsl } from './state/sqlite/db-schema/mod.js';
3
+ export * from './EventDef.js';
4
+ export * from './state/sqlite/schema-helpers.js';
5
5
  export * from './schema.js';
6
- export * as MutationEvent from './MutationEvent.js';
7
- export * as EventId from './EventId.js';
6
+ export * as State from './state/mod.js';
7
+ export * as LiveStoreEvent from './LiveStoreEvent.js';
8
+ export * as EventSequenceNumber from './EventSequenceNumber.js';
9
+ export * as Events from './events.js';
8
10
  //# sourceMappingURL=mod.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/schema/mod.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAA;AAC1C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,qBAAqB,CAAA;AACnC,cAAc,aAAa,CAAA;AAC3B,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA"}
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/schema/mod.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,iCAAiC,CAAA;AAC/D,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAA;AACtE,cAAc,eAAe,CAAA;AAC7B,cAAc,kCAAkC,CAAA;AAChD,cAAc,aAAa,CAAA;AAC3B,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAA;AACvC,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,mBAAmB,MAAM,0BAA0B,CAAA;AAC/D,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA"}