@livestore/common 0.4.0-dev.2 → 0.4.0-dev.20

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 (449) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/ClientSessionLeaderThreadProxy.d.ts +17 -12
  3. package/dist/ClientSessionLeaderThreadProxy.d.ts.map +1 -1
  4. package/dist/ClientSessionLeaderThreadProxy.js.map +1 -1
  5. package/dist/adapter-types.d.ts +14 -6
  6. package/dist/adapter-types.d.ts.map +1 -1
  7. package/dist/adapter-types.js.map +1 -1
  8. package/dist/debug-info.d.ts.map +1 -1
  9. package/dist/debug-info.js +33 -6
  10. package/dist/debug-info.js.map +1 -1
  11. package/dist/devtools/devtools-messages-client-session.d.ts +28 -23
  12. package/dist/devtools/devtools-messages-client-session.d.ts.map +1 -1
  13. package/dist/devtools/devtools-messages-client-session.js +2 -2
  14. package/dist/devtools/devtools-messages-client-session.js.map +1 -1
  15. package/dist/devtools/devtools-messages-common.d.ts +7 -14
  16. package/dist/devtools/devtools-messages-common.d.ts.map +1 -1
  17. package/dist/devtools/devtools-messages-common.js +1 -6
  18. package/dist/devtools/devtools-messages-common.js.map +1 -1
  19. package/dist/devtools/devtools-messages-leader.d.ts +36 -29
  20. package/dist/devtools/devtools-messages-leader.d.ts.map +1 -1
  21. package/dist/devtools/devtools-messages-leader.js +8 -8
  22. package/dist/devtools/devtools-messages-leader.js.map +1 -1
  23. package/dist/devtools/devtools-sessioninfo.d.ts +14 -2
  24. package/dist/devtools/devtools-sessioninfo.d.ts.map +1 -1
  25. package/dist/devtools/devtools-sessioninfo.js +7 -4
  26. package/dist/devtools/devtools-sessioninfo.js.map +1 -1
  27. package/dist/devtools/mod.d.ts +13 -2
  28. package/dist/devtools/mod.d.ts.map +1 -1
  29. package/dist/devtools/mod.js +10 -3
  30. package/dist/devtools/mod.js.map +1 -1
  31. package/dist/errors.d.ts +52 -10
  32. package/dist/errors.d.ts.map +1 -1
  33. package/dist/errors.js +25 -6
  34. package/dist/errors.js.map +1 -1
  35. package/dist/index.d.ts +2 -1
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +2 -1
  38. package/dist/index.js.map +1 -1
  39. package/dist/leader-thread/LeaderSyncProcessor.d.ts +8 -4
  40. package/dist/leader-thread/LeaderSyncProcessor.d.ts.map +1 -1
  41. package/dist/leader-thread/LeaderSyncProcessor.js +156 -73
  42. package/dist/leader-thread/LeaderSyncProcessor.js.map +1 -1
  43. package/dist/leader-thread/eventlog.d.ts +15 -21
  44. package/dist/leader-thread/eventlog.d.ts.map +1 -1
  45. package/dist/leader-thread/eventlog.js +18 -18
  46. package/dist/leader-thread/eventlog.js.map +1 -1
  47. package/dist/leader-thread/leader-worker-devtools.d.ts +2 -2
  48. package/dist/leader-thread/leader-worker-devtools.d.ts.map +1 -1
  49. package/dist/leader-thread/leader-worker-devtools.js +30 -42
  50. package/dist/leader-thread/leader-worker-devtools.js.map +1 -1
  51. package/dist/leader-thread/make-leader-thread-layer.d.ts +6 -6
  52. package/dist/leader-thread/make-leader-thread-layer.d.ts.map +1 -1
  53. package/dist/leader-thread/make-leader-thread-layer.js +79 -27
  54. package/dist/leader-thread/make-leader-thread-layer.js.map +1 -1
  55. package/dist/leader-thread/make-leader-thread-layer.test.d.ts +2 -0
  56. package/dist/leader-thread/make-leader-thread-layer.test.d.ts.map +1 -0
  57. package/dist/leader-thread/make-leader-thread-layer.test.js +32 -0
  58. package/dist/leader-thread/make-leader-thread-layer.test.js.map +1 -0
  59. package/dist/leader-thread/materialize-event.d.ts +3 -3
  60. package/dist/leader-thread/materialize-event.d.ts.map +1 -1
  61. package/dist/leader-thread/materialize-event.js +25 -11
  62. package/dist/leader-thread/materialize-event.js.map +1 -1
  63. package/dist/leader-thread/recreate-db.d.ts +2 -3
  64. package/dist/leader-thread/recreate-db.d.ts.map +1 -1
  65. package/dist/leader-thread/recreate-db.js +5 -5
  66. package/dist/leader-thread/recreate-db.js.map +1 -1
  67. package/dist/leader-thread/shutdown-channel.d.ts +2 -2
  68. package/dist/leader-thread/shutdown-channel.d.ts.map +1 -1
  69. package/dist/leader-thread/shutdown-channel.js +2 -2
  70. package/dist/leader-thread/shutdown-channel.js.map +1 -1
  71. package/dist/leader-thread/types.d.ts +21 -19
  72. package/dist/leader-thread/types.d.ts.map +1 -1
  73. package/dist/leader-thread/types.js.map +1 -1
  74. package/dist/logging.d.ts +40 -0
  75. package/dist/logging.d.ts.map +1 -0
  76. package/dist/logging.js +33 -0
  77. package/dist/logging.js.map +1 -0
  78. package/dist/make-client-session.d.ts +5 -3
  79. package/dist/make-client-session.d.ts.map +1 -1
  80. package/dist/make-client-session.js +5 -2
  81. package/dist/make-client-session.js.map +1 -1
  82. package/dist/materializer-helper.d.ts +6 -6
  83. package/dist/materializer-helper.d.ts.map +1 -1
  84. package/dist/materializer-helper.js +20 -4
  85. package/dist/materializer-helper.js.map +1 -1
  86. package/dist/rematerialize-from-eventlog.d.ts +2 -2
  87. package/dist/rematerialize-from-eventlog.d.ts.map +1 -1
  88. package/dist/rematerialize-from-eventlog.js +29 -20
  89. package/dist/rematerialize-from-eventlog.js.map +1 -1
  90. package/dist/schema/EventDef/define.d.ts +147 -0
  91. package/dist/schema/EventDef/define.d.ts.map +1 -0
  92. package/dist/schema/EventDef/define.js +139 -0
  93. package/dist/schema/EventDef/define.js.map +1 -0
  94. package/dist/schema/EventDef/event-def.d.ts +106 -0
  95. package/dist/schema/EventDef/event-def.d.ts.map +1 -0
  96. package/dist/schema/EventDef/event-def.js +2 -0
  97. package/dist/schema/EventDef/event-def.js.map +1 -0
  98. package/dist/schema/EventDef/facts.d.ts +118 -0
  99. package/dist/schema/EventDef/facts.d.ts.map +1 -0
  100. package/dist/schema/EventDef/facts.js +53 -0
  101. package/dist/schema/EventDef/facts.js.map +1 -0
  102. package/dist/schema/EventDef/materializer.d.ts +155 -0
  103. package/dist/schema/EventDef/materializer.d.ts.map +1 -0
  104. package/dist/schema/EventDef/materializer.js +83 -0
  105. package/dist/schema/EventDef/materializer.js.map +1 -0
  106. package/dist/schema/EventDef/mod.d.ts +5 -0
  107. package/dist/schema/EventDef/mod.d.ts.map +1 -0
  108. package/dist/schema/EventDef/mod.js +5 -0
  109. package/dist/schema/EventDef/mod.js.map +1 -0
  110. package/dist/schema/EventSequenceNumber/client.d.ts +136 -0
  111. package/dist/schema/EventSequenceNumber/client.d.ts.map +1 -0
  112. package/dist/schema/EventSequenceNumber/client.js +193 -0
  113. package/dist/schema/EventSequenceNumber/client.js.map +1 -0
  114. package/dist/schema/EventSequenceNumber/global.d.ts +15 -0
  115. package/dist/schema/EventSequenceNumber/global.d.ts.map +1 -0
  116. package/dist/schema/EventSequenceNumber/global.js +14 -0
  117. package/dist/schema/EventSequenceNumber/global.js.map +1 -0
  118. package/dist/schema/EventSequenceNumber/mod.d.ts +37 -0
  119. package/dist/schema/EventSequenceNumber/mod.d.ts.map +1 -0
  120. package/dist/schema/EventSequenceNumber/mod.js +37 -0
  121. package/dist/schema/EventSequenceNumber/mod.js.map +1 -0
  122. package/dist/schema/EventSequenceNumber.test.js +43 -43
  123. package/dist/schema/EventSequenceNumber.test.js.map +1 -1
  124. package/dist/schema/{LiveStoreEvent.d.ts → LiveStoreEvent/client.d.ts} +89 -106
  125. package/dist/schema/LiveStoreEvent/client.d.ts.map +1 -0
  126. package/dist/schema/{LiveStoreEvent.js → LiveStoreEvent/client.js} +74 -58
  127. package/dist/schema/LiveStoreEvent/client.js.map +1 -0
  128. package/dist/schema/LiveStoreEvent/for-event-def.d.ts +52 -0
  129. package/dist/schema/LiveStoreEvent/for-event-def.d.ts.map +1 -0
  130. package/dist/schema/LiveStoreEvent/for-event-def.js +2 -0
  131. package/dist/schema/LiveStoreEvent/for-event-def.js.map +1 -0
  132. package/dist/schema/LiveStoreEvent/global.d.ts +36 -0
  133. package/dist/schema/LiveStoreEvent/global.d.ts.map +1 -0
  134. package/dist/schema/LiveStoreEvent/global.js +31 -0
  135. package/dist/schema/LiveStoreEvent/global.js.map +1 -0
  136. package/dist/schema/LiveStoreEvent/input.d.ts +46 -0
  137. package/dist/schema/LiveStoreEvent/input.d.ts.map +1 -0
  138. package/dist/schema/LiveStoreEvent/input.js +26 -0
  139. package/dist/schema/LiveStoreEvent/input.js.map +1 -0
  140. package/dist/schema/LiveStoreEvent/mod.d.ts +5 -0
  141. package/dist/schema/LiveStoreEvent/mod.d.ts.map +1 -0
  142. package/dist/schema/LiveStoreEvent/mod.js +5 -0
  143. package/dist/schema/LiveStoreEvent/mod.js.map +1 -0
  144. package/dist/schema/events.d.ts +1 -1
  145. package/dist/schema/events.d.ts.map +1 -1
  146. package/dist/schema/events.js +1 -1
  147. package/dist/schema/events.js.map +1 -1
  148. package/dist/schema/mod.d.ts +6 -4
  149. package/dist/schema/mod.d.ts.map +1 -1
  150. package/dist/schema/mod.js +5 -4
  151. package/dist/schema/mod.js.map +1 -1
  152. package/dist/schema/schema.d.ts +16 -1
  153. package/dist/schema/schema.d.ts.map +1 -1
  154. package/dist/schema/schema.js +27 -2
  155. package/dist/schema/schema.js.map +1 -1
  156. package/dist/schema/state/sqlite/client-document-def.d.ts +36 -6
  157. package/dist/schema/state/sqlite/client-document-def.d.ts.map +1 -1
  158. package/dist/schema/state/sqlite/client-document-def.js +97 -6
  159. package/dist/schema/state/sqlite/client-document-def.js.map +1 -1
  160. package/dist/schema/state/sqlite/client-document-def.test.js +16 -0
  161. package/dist/schema/state/sqlite/client-document-def.test.js.map +1 -1
  162. package/dist/schema/state/sqlite/column-annotations.d.ts.map +1 -1
  163. package/dist/schema/state/sqlite/column-annotations.js +14 -6
  164. package/dist/schema/state/sqlite/column-annotations.js.map +1 -1
  165. package/dist/schema/state/sqlite/column-annotations.test.js +1 -1
  166. package/dist/schema/state/sqlite/column-annotations.test.js.map +1 -1
  167. package/dist/schema/state/sqlite/column-def.js +69 -22
  168. package/dist/schema/state/sqlite/column-def.js.map +1 -1
  169. package/dist/schema/state/sqlite/column-def.test.js +46 -7
  170. package/dist/schema/state/sqlite/column-def.test.js.map +1 -1
  171. package/dist/schema/state/sqlite/column-spec.d.ts.map +1 -1
  172. package/dist/schema/state/sqlite/column-spec.js +30 -12
  173. package/dist/schema/state/sqlite/column-spec.js.map +1 -1
  174. package/dist/schema/state/sqlite/column-spec.test.js +23 -14
  175. package/dist/schema/state/sqlite/column-spec.test.js.map +1 -1
  176. package/dist/schema/state/sqlite/db-schema/ast/sqlite.d.ts +2 -1
  177. package/dist/schema/state/sqlite/db-schema/ast/sqlite.d.ts.map +1 -1
  178. package/dist/schema/state/sqlite/db-schema/ast/sqlite.js +23 -6
  179. package/dist/schema/state/sqlite/db-schema/ast/sqlite.js.map +1 -1
  180. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.d.ts +14 -8
  181. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.d.ts.map +1 -1
  182. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.js +5 -3
  183. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.js.map +1 -1
  184. package/dist/schema/state/sqlite/db-schema/dsl/mod.d.ts.map +1 -1
  185. package/dist/schema/state/sqlite/db-schema/dsl/mod.js +2 -1
  186. package/dist/schema/state/sqlite/db-schema/dsl/mod.js.map +1 -1
  187. package/dist/schema/state/sqlite/mod.d.ts +3 -3
  188. package/dist/schema/state/sqlite/mod.d.ts.map +1 -1
  189. package/dist/schema/state/sqlite/mod.js +3 -3
  190. package/dist/schema/state/sqlite/mod.js.map +1 -1
  191. package/dist/schema/state/sqlite/query-builder/api.d.ts +17 -10
  192. package/dist/schema/state/sqlite/query-builder/api.d.ts.map +1 -1
  193. package/dist/schema/state/sqlite/query-builder/astToSql.d.ts.map +1 -1
  194. package/dist/schema/state/sqlite/query-builder/astToSql.js +22 -15
  195. package/dist/schema/state/sqlite/query-builder/astToSql.js.map +1 -1
  196. package/dist/schema/state/sqlite/query-builder/impl.d.ts.map +1 -1
  197. package/dist/schema/state/sqlite/query-builder/impl.js +6 -3
  198. package/dist/schema/state/sqlite/query-builder/impl.js.map +1 -1
  199. package/dist/schema/state/sqlite/query-builder/impl.test.js +252 -88
  200. package/dist/schema/state/sqlite/query-builder/impl.test.js.map +1 -1
  201. package/dist/schema/state/sqlite/schema-helpers.d.ts +2 -2
  202. package/dist/schema/state/sqlite/schema-helpers.d.ts.map +1 -1
  203. package/dist/schema/state/sqlite/schema-helpers.js +22 -12
  204. package/dist/schema/state/sqlite/schema-helpers.js.map +1 -1
  205. package/dist/schema/state/sqlite/schema-helpers.test.d.ts +2 -0
  206. package/dist/schema/state/sqlite/schema-helpers.test.d.ts.map +1 -0
  207. package/dist/schema/state/sqlite/schema-helpers.test.js +36 -0
  208. package/dist/schema/state/sqlite/schema-helpers.test.js.map +1 -0
  209. package/dist/schema/state/sqlite/{system-tables.d.ts → system-tables/eventlog-tables.d.ts} +63 -456
  210. package/dist/schema/state/sqlite/system-tables/eventlog-tables.d.ts.map +1 -0
  211. package/dist/schema/state/sqlite/system-tables/eventlog-tables.js +54 -0
  212. package/dist/schema/state/sqlite/system-tables/eventlog-tables.js.map +1 -0
  213. package/dist/schema/state/sqlite/system-tables/mod.d.ts +3 -0
  214. package/dist/schema/state/sqlite/system-tables/mod.d.ts.map +1 -0
  215. package/dist/schema/state/sqlite/system-tables/mod.js +3 -0
  216. package/dist/schema/state/sqlite/system-tables/mod.js.map +1 -0
  217. package/dist/schema/state/sqlite/system-tables/state-tables.d.ts +456 -0
  218. package/dist/schema/state/sqlite/system-tables/state-tables.d.ts.map +1 -0
  219. package/dist/schema/state/sqlite/system-tables/state-tables.js +55 -0
  220. package/dist/schema/state/sqlite/system-tables/state-tables.js.map +1 -0
  221. package/dist/schema/state/sqlite/table-def.d.ts +4 -4
  222. package/dist/schema/state/sqlite/table-def.d.ts.map +1 -1
  223. package/dist/schema/state/sqlite/table-def.js +2 -2
  224. package/dist/schema/state/sqlite/table-def.js.map +1 -1
  225. package/dist/schema/state/sqlite/table-def.test.js +80 -0
  226. package/dist/schema/state/sqlite/table-def.test.js.map +1 -1
  227. package/dist/schema/unknown-events.d.ts +47 -0
  228. package/dist/schema/unknown-events.d.ts.map +1 -0
  229. package/dist/schema/unknown-events.js +69 -0
  230. package/dist/schema/unknown-events.js.map +1 -0
  231. package/dist/schema-management/__tests__/migrations-autoincrement-quoting.test.d.ts +2 -0
  232. package/dist/schema-management/__tests__/migrations-autoincrement-quoting.test.d.ts.map +1 -0
  233. package/dist/schema-management/__tests__/migrations-autoincrement-quoting.test.js +73 -0
  234. package/dist/schema-management/__tests__/migrations-autoincrement-quoting.test.js.map +1 -0
  235. package/dist/schema-management/migrations.d.ts +32 -2
  236. package/dist/schema-management/migrations.d.ts.map +1 -1
  237. package/dist/schema-management/migrations.js +37 -5
  238. package/dist/schema-management/migrations.js.map +1 -1
  239. package/dist/schema-management/validate-schema.d.ts +3 -3
  240. package/dist/schema-management/validate-schema.d.ts.map +1 -1
  241. package/dist/schema-management/validate-schema.js +2 -2
  242. package/dist/schema-management/validate-schema.js.map +1 -1
  243. package/dist/sql-queries/sql-queries.d.ts.map +1 -1
  244. package/dist/sql-queries/sql-queries.js +11 -1
  245. package/dist/sql-queries/sql-queries.js.map +1 -1
  246. package/dist/sql-queries/sql-query-builder.d.ts.map +1 -1
  247. package/dist/sql-queries/sql-query-builder.js +2 -1
  248. package/dist/sql-queries/sql-query-builder.js.map +1 -1
  249. package/dist/sqlite-types.d.ts +3 -3
  250. package/dist/sqlite-types.d.ts.map +1 -1
  251. package/dist/sync/ClientSessionSyncProcessor.d.ts +11 -13
  252. package/dist/sync/ClientSessionSyncProcessor.d.ts.map +1 -1
  253. package/dist/sync/ClientSessionSyncProcessor.js +45 -42
  254. package/dist/sync/ClientSessionSyncProcessor.js.map +1 -1
  255. package/dist/sync/errors.d.ts +66 -0
  256. package/dist/sync/errors.d.ts.map +1 -0
  257. package/dist/sync/errors.js +36 -0
  258. package/dist/sync/errors.js.map +1 -0
  259. package/dist/sync/index.d.ts +3 -0
  260. package/dist/sync/index.d.ts.map +1 -1
  261. package/dist/sync/index.js +3 -0
  262. package/dist/sync/index.js.map +1 -1
  263. package/dist/sync/mock-sync-backend.d.ts +23 -0
  264. package/dist/sync/mock-sync-backend.d.ts.map +1 -0
  265. package/dist/sync/mock-sync-backend.js +114 -0
  266. package/dist/sync/mock-sync-backend.js.map +1 -0
  267. package/dist/sync/next/compact-events.d.ts.map +1 -1
  268. package/dist/sync/next/compact-events.js +6 -7
  269. package/dist/sync/next/compact-events.js.map +1 -1
  270. package/dist/sync/next/facts.d.ts +5 -5
  271. package/dist/sync/next/facts.d.ts.map +1 -1
  272. package/dist/sync/next/facts.js +1 -2
  273. package/dist/sync/next/facts.js.map +1 -1
  274. package/dist/sync/next/history-dag-common.d.ts +54 -15
  275. package/dist/sync/next/history-dag-common.d.ts.map +1 -1
  276. package/dist/sync/next/history-dag-common.js +198 -9
  277. package/dist/sync/next/history-dag-common.js.map +1 -1
  278. package/dist/sync/next/history-dag.d.ts.map +1 -1
  279. package/dist/sync/next/history-dag.js +10 -8
  280. package/dist/sync/next/history-dag.js.map +1 -1
  281. package/dist/sync/next/rebase-events.d.ts +5 -5
  282. package/dist/sync/next/rebase-events.d.ts.map +1 -1
  283. package/dist/sync/next/rebase-events.js +5 -5
  284. package/dist/sync/next/rebase-events.js.map +1 -1
  285. package/dist/sync/next/test/event-fixtures.d.ts +2 -2
  286. package/dist/sync/next/test/event-fixtures.d.ts.map +1 -1
  287. package/dist/sync/next/test/event-fixtures.js +9 -9
  288. package/dist/sync/next/test/event-fixtures.js.map +1 -1
  289. package/dist/sync/sync-backend-kv.d.ts +7 -0
  290. package/dist/sync/sync-backend-kv.d.ts.map +1 -0
  291. package/dist/sync/sync-backend-kv.js +18 -0
  292. package/dist/sync/sync-backend-kv.js.map +1 -0
  293. package/dist/sync/sync-backend.d.ts +105 -0
  294. package/dist/sync/sync-backend.d.ts.map +1 -0
  295. package/dist/sync/sync-backend.js +61 -0
  296. package/dist/sync/sync-backend.js.map +1 -0
  297. package/dist/sync/sync.d.ts +9 -86
  298. package/dist/sync/sync.d.ts.map +1 -1
  299. package/dist/sync/sync.js +2 -27
  300. package/dist/sync/sync.js.map +1 -1
  301. package/dist/sync/syncstate.d.ts +57 -44
  302. package/dist/sync/syncstate.d.ts.map +1 -1
  303. package/dist/sync/syncstate.js +50 -45
  304. package/dist/sync/syncstate.js.map +1 -1
  305. package/dist/sync/syncstate.test.js +83 -46
  306. package/dist/sync/syncstate.test.js.map +1 -1
  307. package/dist/sync/transport-chunking.d.ts +36 -0
  308. package/dist/sync/transport-chunking.d.ts.map +1 -0
  309. package/dist/sync/transport-chunking.js +56 -0
  310. package/dist/sync/transport-chunking.js.map +1 -0
  311. package/dist/sync/validate-push-payload.d.ts +2 -2
  312. package/dist/sync/validate-push-payload.d.ts.map +1 -1
  313. package/dist/sync/validate-push-payload.js +6 -6
  314. package/dist/sync/validate-push-payload.js.map +1 -1
  315. package/dist/testing/event-factory.d.ts +68 -0
  316. package/dist/testing/event-factory.d.ts.map +1 -0
  317. package/dist/testing/event-factory.js +78 -0
  318. package/dist/testing/event-factory.js.map +1 -0
  319. package/dist/testing/mod.d.ts +2 -0
  320. package/dist/testing/mod.d.ts.map +1 -0
  321. package/dist/testing/mod.js +2 -0
  322. package/dist/testing/mod.js.map +1 -0
  323. package/dist/version.d.ts +16 -6
  324. package/dist/version.d.ts.map +1 -1
  325. package/dist/version.js +16 -6
  326. package/dist/version.js.map +1 -1
  327. package/package.json +7 -8
  328. package/src/ClientSessionLeaderThreadProxy.ts +17 -12
  329. package/src/adapter-types.ts +18 -6
  330. package/src/debug-info.ts +37 -6
  331. package/src/devtools/devtools-messages-client-session.ts +2 -2
  332. package/src/devtools/devtools-messages-common.ts +1 -8
  333. package/src/devtools/devtools-messages-leader.ts +8 -8
  334. package/src/devtools/devtools-sessioninfo.ts +8 -5
  335. package/src/devtools/mod.ts +11 -2
  336. package/src/errors.ts +38 -11
  337. package/src/index.ts +2 -1
  338. package/src/leader-thread/LeaderSyncProcessor.ts +242 -103
  339. package/src/leader-thread/eventlog.ts +33 -34
  340. package/src/leader-thread/leader-worker-devtools.ts +50 -54
  341. package/src/leader-thread/make-leader-thread-layer.test.ts +44 -0
  342. package/src/leader-thread/make-leader-thread-layer.ts +156 -37
  343. package/src/leader-thread/materialize-event.ts +37 -12
  344. package/src/leader-thread/recreate-db.ts +15 -7
  345. package/src/leader-thread/shutdown-channel.ts +16 -2
  346. package/src/leader-thread/types.ts +21 -19
  347. package/src/logging.ts +62 -0
  348. package/src/make-client-session.ts +9 -3
  349. package/src/materializer-helper.ts +27 -10
  350. package/src/rematerialize-from-eventlog.ts +37 -27
  351. package/src/schema/EventDef/define.ts +201 -0
  352. package/src/schema/EventDef/event-def.ts +120 -0
  353. package/src/schema/EventDef/facts.ts +135 -0
  354. package/src/schema/EventDef/materializer.ts +172 -0
  355. package/src/schema/EventDef/mod.ts +4 -0
  356. package/src/schema/EventSequenceNumber/client.ts +257 -0
  357. package/src/schema/EventSequenceNumber/global.ts +19 -0
  358. package/src/schema/EventSequenceNumber/mod.ts +37 -0
  359. package/src/schema/EventSequenceNumber.test.ts +70 -52
  360. package/src/schema/LiveStoreEvent/client.ts +221 -0
  361. package/src/schema/LiveStoreEvent/for-event-def.ts +60 -0
  362. package/src/schema/LiveStoreEvent/global.ts +45 -0
  363. package/src/schema/LiveStoreEvent/input.ts +63 -0
  364. package/src/schema/LiveStoreEvent/mod.ts +4 -0
  365. package/src/schema/events.ts +1 -1
  366. package/src/schema/mod.ts +6 -4
  367. package/src/schema/schema.ts +39 -3
  368. package/src/schema/state/sqlite/client-document-def.test.ts +19 -2
  369. package/src/schema/state/sqlite/client-document-def.ts +120 -8
  370. package/src/schema/state/sqlite/column-annotations.test.ts +1 -1
  371. package/src/schema/state/sqlite/column-annotations.ts +16 -6
  372. package/src/schema/state/sqlite/column-def.test.ts +60 -7
  373. package/src/schema/state/sqlite/column-def.ts +88 -21
  374. package/src/schema/state/sqlite/column-spec.test.ts +29 -16
  375. package/src/schema/state/sqlite/column-spec.ts +36 -11
  376. package/src/schema/state/sqlite/db-schema/ast/sqlite.ts +26 -6
  377. package/src/schema/state/sqlite/db-schema/dsl/field-defs.ts +29 -12
  378. package/src/schema/state/sqlite/db-schema/dsl/mod.ts +2 -1
  379. package/src/schema/state/sqlite/mod.ts +4 -3
  380. package/src/schema/state/sqlite/query-builder/api.ts +19 -10
  381. package/src/schema/state/sqlite/query-builder/astToSql.ts +23 -14
  382. package/src/schema/state/sqlite/query-builder/impl.test.ts +305 -92
  383. package/src/schema/state/sqlite/query-builder/impl.ts +8 -3
  384. package/src/schema/state/sqlite/schema-helpers.test.ts +44 -0
  385. package/src/schema/state/sqlite/schema-helpers.ts +28 -20
  386. package/src/schema/state/sqlite/system-tables/eventlog-tables.ts +64 -0
  387. package/src/schema/state/sqlite/system-tables/mod.ts +2 -0
  388. package/src/schema/state/sqlite/system-tables/state-tables.ts +69 -0
  389. package/src/schema/state/sqlite/table-def.test.ts +101 -0
  390. package/src/schema/state/sqlite/table-def.ts +9 -8
  391. package/src/schema/unknown-events.ts +131 -0
  392. package/src/schema-management/__tests__/migrations-autoincrement-quoting.test.ts +86 -0
  393. package/src/schema-management/migrations.ts +41 -8
  394. package/src/schema-management/validate-schema.ts +3 -3
  395. package/src/sql-queries/sql-queries.ts +9 -1
  396. package/src/sql-queries/sql-query-builder.ts +2 -1
  397. package/src/sqlite-types.ts +3 -3
  398. package/src/sync/ClientSessionSyncProcessor.ts +69 -62
  399. package/src/sync/errors.ts +38 -0
  400. package/src/sync/index.ts +3 -0
  401. package/src/sync/mock-sync-backend.ts +184 -0
  402. package/src/sync/next/compact-events.ts +6 -7
  403. package/src/sync/next/facts.ts +7 -9
  404. package/src/sync/next/history-dag-common.ts +277 -26
  405. package/src/sync/next/history-dag.ts +16 -10
  406. package/src/sync/next/rebase-events.ts +11 -11
  407. package/src/sync/next/test/event-fixtures.ts +11 -11
  408. package/src/sync/sync-backend-kv.ts +22 -0
  409. package/src/sync/sync-backend.ts +185 -0
  410. package/src/sync/sync.ts +9 -91
  411. package/src/sync/syncstate.test.ts +96 -52
  412. package/src/sync/syncstate.ts +69 -58
  413. package/src/sync/transport-chunking.ts +90 -0
  414. package/src/sync/validate-push-payload.ts +8 -9
  415. package/src/testing/event-factory.ts +131 -0
  416. package/src/testing/mod.ts +1 -0
  417. package/src/version.ts +16 -6
  418. package/dist/schema/EventDef.d.ts +0 -123
  419. package/dist/schema/EventDef.d.ts.map +0 -1
  420. package/dist/schema/EventDef.js +0 -46
  421. package/dist/schema/EventDef.js.map +0 -1
  422. package/dist/schema/EventSequenceNumber.d.ts +0 -80
  423. package/dist/schema/EventSequenceNumber.d.ts.map +0 -1
  424. package/dist/schema/EventSequenceNumber.js +0 -139
  425. package/dist/schema/EventSequenceNumber.js.map +0 -1
  426. package/dist/schema/LiveStoreEvent.d.ts.map +0 -1
  427. package/dist/schema/LiveStoreEvent.js.map +0 -1
  428. package/dist/schema/state/sqlite/system-tables.d.ts.map +0 -1
  429. package/dist/schema/state/sqlite/system-tables.js +0 -79
  430. package/dist/schema/state/sqlite/system-tables.js.map +0 -1
  431. package/dist/schema-management/migrations.test.d.ts +0 -2
  432. package/dist/schema-management/migrations.test.d.ts.map +0 -1
  433. package/dist/schema-management/migrations.test.js +0 -52
  434. package/dist/schema-management/migrations.test.js.map +0 -1
  435. package/dist/sync/next/graphology.d.ts +0 -8
  436. package/dist/sync/next/graphology.d.ts.map +0 -1
  437. package/dist/sync/next/graphology.js +0 -30
  438. package/dist/sync/next/graphology.js.map +0 -1
  439. package/dist/sync/next/graphology_.d.ts +0 -3
  440. package/dist/sync/next/graphology_.d.ts.map +0 -1
  441. package/dist/sync/next/graphology_.js +0 -3
  442. package/dist/sync/next/graphology_.js.map +0 -1
  443. package/src/schema/EventDef.ts +0 -219
  444. package/src/schema/EventSequenceNumber.ts +0 -199
  445. package/src/schema/LiveStoreEvent.ts +0 -287
  446. package/src/schema/state/sqlite/system-tables.ts +0 -104
  447. package/src/sync/next/ambient.d.ts +0 -3
  448. package/src/sync/next/graphology.ts +0 -41
  449. package/src/sync/next/graphology_.ts +0 -2
@@ -1,287 +0,0 @@
1
- import { memoizeByRef } from '@livestore/utils'
2
- import { Option, Schema } from '@livestore/utils/effect'
3
-
4
- import type { EventDef, EventDefRecord } from './EventDef.ts'
5
- import * as EventSequenceNumber from './EventSequenceNumber.ts'
6
- import type { LiveStoreSchema } from './schema.ts'
7
-
8
- export namespace ForEventDef {
9
- export type PartialDecoded<TEventDef extends EventDef.Any> = {
10
- name: TEventDef['name']
11
- args: Schema.Schema.Type<TEventDef['schema']>
12
- }
13
-
14
- export type PartialEncoded<TEventDef extends EventDef.Any> = {
15
- name: TEventDef['name']
16
- args: Schema.Schema.Encoded<TEventDef['schema']>
17
- }
18
-
19
- export type Decoded<TEventDef extends EventDef.Any> = {
20
- name: TEventDef['name']
21
- args: Schema.Schema.Type<TEventDef['schema']>
22
- seqNum: EventSequenceNumber.EventSequenceNumber
23
- parentSeqNum: EventSequenceNumber.EventSequenceNumber
24
- clientId: string
25
- sessionId: string
26
- }
27
-
28
- export type Encoded<TEventDef extends EventDef.Any> = {
29
- name: TEventDef['name']
30
- args: Schema.Schema.Encoded<TEventDef['schema']>
31
- seqNum: EventSequenceNumber.EventSequenceNumber
32
- parentSeqNum: EventSequenceNumber.EventSequenceNumber
33
- clientId: string
34
- sessionId: string
35
- }
36
- }
37
-
38
- export type AnyDecoded = ForEventDef.Decoded<EventDef.Any>
39
- export const AnyDecoded = Schema.Struct({
40
- name: Schema.String,
41
- args: Schema.Any,
42
- seqNum: EventSequenceNumber.EventSequenceNumber,
43
- parentSeqNum: EventSequenceNumber.EventSequenceNumber,
44
- clientId: Schema.String,
45
- sessionId: Schema.String,
46
- }).annotations({ title: 'LiveStoreEvent.AnyDecoded' })
47
-
48
- export type AnyEncoded = ForEventDef.Encoded<EventDef.Any>
49
- export const AnyEncoded = Schema.Struct({
50
- name: Schema.String,
51
- args: Schema.Any,
52
- seqNum: EventSequenceNumber.EventSequenceNumber,
53
- parentSeqNum: EventSequenceNumber.EventSequenceNumber,
54
- clientId: Schema.String,
55
- sessionId: Schema.String,
56
- }).annotations({ title: 'LiveStoreEvent.AnyEncoded' })
57
-
58
- export const AnyEncodedGlobal = Schema.Struct({
59
- name: Schema.String,
60
- args: Schema.Any,
61
- seqNum: EventSequenceNumber.GlobalEventSequenceNumber,
62
- parentSeqNum: EventSequenceNumber.GlobalEventSequenceNumber,
63
- clientId: Schema.String,
64
- sessionId: Schema.String,
65
- }).annotations({ title: 'LiveStoreEvent.AnyEncodedGlobal' })
66
- export type AnyEncodedGlobal = typeof AnyEncodedGlobal.Type
67
-
68
- export type PartialAnyDecoded = ForEventDef.PartialDecoded<EventDef.Any>
69
- export type PartialAnyEncoded = ForEventDef.PartialEncoded<EventDef.Any>
70
-
71
- export const PartialAnyEncoded = Schema.Struct({
72
- name: Schema.String,
73
- args: Schema.Any,
74
- })
75
-
76
- export type PartialForSchema<TSchema extends LiveStoreSchema> = {
77
- [K in keyof TSchema['_EventDefMapType']]: ForEventDef.PartialDecoded<TSchema['_EventDefMapType'][K]>
78
- }[keyof TSchema['_EventDefMapType']]
79
-
80
- export type ForSchema<TSchema extends LiveStoreSchema> = {
81
- [K in keyof TSchema['_EventDefMapType']]: ForEventDef.Decoded<TSchema['_EventDefMapType'][K]>
82
- }[keyof TSchema['_EventDefMapType']]
83
-
84
- export const isPartialEventDef = (event: AnyDecoded | PartialAnyDecoded): event is PartialAnyDecoded =>
85
- 'num' in event === false && 'parentSeqNum' in event === false
86
-
87
- export type ForEventDefRecord<TEventDefRecord extends EventDefRecord> = Schema.Schema<
88
- {
89
- [K in keyof TEventDefRecord]: {
90
- name: K
91
- args: Schema.Schema.Type<TEventDefRecord[K]['schema']>
92
- seqNum: EventSequenceNumber.EventSequenceNumber
93
- parentSeqNum: EventSequenceNumber.EventSequenceNumber
94
- clientId: string
95
- sessionId: string
96
- }
97
- }[keyof TEventDefRecord],
98
- {
99
- [K in keyof TEventDefRecord]: {
100
- name: K
101
- args: Schema.Schema.Encoded<TEventDefRecord[K]['schema']>
102
- seqNum: EventSequenceNumber.EventSequenceNumber
103
- parentSeqNum: EventSequenceNumber.EventSequenceNumber
104
- clientId: string
105
- sessionId: string
106
- }
107
- }[keyof TEventDefRecord]
108
- >
109
-
110
- export type EventDefPartialSchema<TEventDefRecord extends EventDefRecord> = Schema.Schema<
111
- {
112
- [K in keyof TEventDefRecord]: {
113
- name: K
114
- args: Schema.Schema.Type<TEventDefRecord[K]['schema']>
115
- }
116
- }[keyof TEventDefRecord],
117
- {
118
- [K in keyof TEventDefRecord]: {
119
- name: K
120
- args: Schema.Schema.Encoded<TEventDefRecord[K]['schema']>
121
- }
122
- }[keyof TEventDefRecord]
123
- >
124
-
125
- export const makeEventDefSchema = <TSchema extends LiveStoreSchema>(
126
- schema: TSchema,
127
- ): ForEventDefRecord<TSchema['_EventDefMapType']> =>
128
- Schema.Union(
129
- ...[...schema.eventsDefsMap.values()].map((def) =>
130
- Schema.Struct({
131
- name: Schema.Literal(def.name),
132
- args: def.schema,
133
- seqNum: EventSequenceNumber.EventSequenceNumber,
134
- parentSeqNum: EventSequenceNumber.EventSequenceNumber,
135
- clientId: Schema.String,
136
- sessionId: Schema.String,
137
- }),
138
- ),
139
- ).annotations({ title: 'EventDef' }) as any
140
-
141
- export const makeEventDefPartialSchema = <TSchema extends LiveStoreSchema>(
142
- schema: TSchema,
143
- ): EventDefPartialSchema<TSchema['_EventDefMapType']> =>
144
- Schema.Union(
145
- ...[...schema.eventsDefsMap.values()].map((def) =>
146
- Schema.Struct({
147
- name: Schema.Literal(def.name),
148
- args: def.schema,
149
- }),
150
- ),
151
- ).annotations({ title: 'EventDefPartial' }) as any
152
-
153
- export const makeEventDefSchemaMemo = memoizeByRef(makeEventDefSchema)
154
-
155
- export const encodedFromGlobal = (event: AnyEncodedGlobal): AnyEncoded => ({
156
- ...event,
157
- seqNum: EventSequenceNumber.fromGlobal(event.seqNum),
158
- parentSeqNum: EventSequenceNumber.fromGlobal(event.parentSeqNum),
159
- })
160
-
161
- /** Equivalent to AnyEncoded but with a meta field and some convenience methods */
162
- export class EncodedWithMeta extends Schema.Class<EncodedWithMeta>('LiveStoreEvent.EncodedWithMeta')({
163
- name: Schema.String,
164
- args: Schema.Any,
165
- seqNum: EventSequenceNumber.EventSequenceNumber,
166
- parentSeqNum: EventSequenceNumber.EventSequenceNumber,
167
- clientId: Schema.String,
168
- sessionId: Schema.String,
169
- // TODO get rid of `meta` again by cleaning up the usage implementations
170
- meta: Schema.Struct({
171
- sessionChangeset: Schema.Union(
172
- Schema.TaggedStruct('sessionChangeset', {
173
- data: Schema.Uint8Array as any as Schema.Schema<Uint8Array<ArrayBuffer>>,
174
- debug: Schema.Any.pipe(Schema.optional),
175
- }),
176
- Schema.TaggedStruct('no-op', {}),
177
- Schema.TaggedStruct('unset', {}),
178
- ),
179
- syncMetadata: Schema.Option(Schema.JsonValue),
180
- /** Used to detect if the materializer is side effecting (during dev) */
181
- materializerHashLeader: Schema.Option(Schema.Number),
182
- materializerHashSession: Schema.Option(Schema.Number),
183
- }).pipe(
184
- Schema.mutable,
185
- Schema.optional,
186
- Schema.withDefaults({
187
- constructor: () => ({
188
- sessionChangeset: { _tag: 'unset' as const },
189
- syncMetadata: Option.none(),
190
- materializerHashLeader: Option.none(),
191
- materializerHashSession: Option.none(),
192
- }),
193
- decoding: () => ({
194
- sessionChangeset: { _tag: 'unset' as const },
195
- syncMetadata: Option.none(),
196
- materializerHashLeader: Option.none(),
197
- materializerHashSession: Option.none(),
198
- }),
199
- }),
200
- ),
201
- }) {
202
- toJSON = (): any => {
203
- // Only used for logging/debugging
204
- // - More readable way to print the seqNum + parentSeqNum
205
- // - not including `meta`, `clientId`, `sessionId`
206
- return {
207
- seqNum: `${EventSequenceNumber.toString(this.seqNum)} → ${EventSequenceNumber.toString(this.parentSeqNum)} (${this.clientId}, ${this.sessionId})`,
208
- name: this.name,
209
- args: this.args,
210
- }
211
- }
212
-
213
- /**
214
- * Example: (global event)
215
- * For event e2 → e1 which should be rebased on event e3 → e2
216
- * the resulting event num will be e4 → e3
217
- *
218
- * Example: (client event)
219
- * For event e2+1 → e2 which should be rebased on event e3 → e2
220
- * the resulting event num will be e3+1 → e3
221
- *
222
- * Syntax: e2+2 → e2+1
223
- * ^ ^ ^ ^
224
- * | | | +- client parent number
225
- * | | +--- global parent number
226
- * | +-- client number
227
- * +---- global number
228
- * Client num is ommitted for global events
229
- */
230
- rebase = ({
231
- parentSeqNum,
232
- isClient,
233
- rebaseGeneration,
234
- }: {
235
- parentSeqNum: EventSequenceNumber.EventSequenceNumber
236
- isClient: boolean
237
- rebaseGeneration: number
238
- }) =>
239
- new EncodedWithMeta({
240
- ...this,
241
- ...EventSequenceNumber.nextPair({ seqNum: parentSeqNum, isClient, rebaseGeneration }),
242
- })
243
-
244
- static fromGlobal = (
245
- event: AnyEncodedGlobal,
246
- meta: {
247
- syncMetadata: Option.Option<Schema.JsonValue>
248
- materializerHashLeader: Option.Option<number>
249
- materializerHashSession: Option.Option<number>
250
- },
251
- ) =>
252
- new EncodedWithMeta({
253
- ...event,
254
- seqNum: {
255
- global: event.seqNum,
256
- client: EventSequenceNumber.clientDefault,
257
- rebaseGeneration: EventSequenceNumber.rebaseGenerationDefault,
258
- },
259
- parentSeqNum: {
260
- global: event.parentSeqNum,
261
- client: EventSequenceNumber.clientDefault,
262
- rebaseGeneration: EventSequenceNumber.rebaseGenerationDefault,
263
- },
264
- meta: {
265
- sessionChangeset: { _tag: 'unset' as const },
266
- syncMetadata: meta.syncMetadata,
267
- materializerHashLeader: meta.materializerHashLeader,
268
- materializerHashSession: meta.materializerHashSession,
269
- },
270
- })
271
-
272
- toGlobal = (): AnyEncodedGlobal => ({
273
- ...this,
274
- seqNum: this.seqNum.global,
275
- parentSeqNum: this.parentSeqNum.global,
276
- })
277
- }
278
-
279
- /** NOTE `meta` is not considered for equality */
280
- export const isEqualEncoded = (a: AnyEncoded, b: AnyEncoded) =>
281
- a.seqNum.global === b.seqNum.global &&
282
- a.seqNum.client === b.seqNum.client &&
283
- a.name === b.name &&
284
- a.clientId === b.clientId &&
285
- a.sessionId === b.sessionId &&
286
- // TODO use schema equality here
287
- JSON.stringify(a.args) === JSON.stringify(b.args)
@@ -1,104 +0,0 @@
1
- import { Schema } from '@livestore/utils/effect'
2
-
3
- import * as EventSequenceNumber from '../../EventSequenceNumber.ts'
4
- import { SqliteDsl } from './db-schema/mod.ts'
5
- import { table } from './table-def.ts'
6
-
7
- /// State DB
8
-
9
- export const SCHEMA_META_TABLE = '__livestore_schema'
10
-
11
- export const schemaMetaTable = table({
12
- name: SCHEMA_META_TABLE,
13
- columns: {
14
- tableName: SqliteDsl.text({ primaryKey: true }),
15
- schemaHash: SqliteDsl.integer({ nullable: false }),
16
- /** ISO date format */
17
- updatedAt: SqliteDsl.text({ nullable: false }),
18
- },
19
- })
20
-
21
- export type SchemaMetaRow = typeof schemaMetaTable.Type
22
-
23
- export const SCHEMA_EVENT_DEFS_META_TABLE = '__livestore_schema_event_defs'
24
-
25
- export const schemaEventDefsMetaTable = table({
26
- name: SCHEMA_EVENT_DEFS_META_TABLE,
27
- columns: {
28
- eventName: SqliteDsl.text({ primaryKey: true }),
29
- schemaHash: SqliteDsl.integer({ nullable: false }),
30
- /** ISO date format */
31
- updatedAt: SqliteDsl.text({ nullable: false }),
32
- },
33
- })
34
-
35
- export type SchemaEventDefsMetaRow = typeof schemaEventDefsMetaTable.Type
36
-
37
- /**
38
- * Table which stores SQLite changeset blobs which is used for rolling back
39
- * read-model state during rebasing.
40
- */
41
- export const SESSION_CHANGESET_META_TABLE = '__livestore_session_changeset'
42
-
43
- export const sessionChangesetMetaTable = table({
44
- name: SESSION_CHANGESET_META_TABLE,
45
- columns: {
46
- // TODO bring back primary key
47
- seqNumGlobal: SqliteDsl.integer({ schema: EventSequenceNumber.GlobalEventSequenceNumber }),
48
- seqNumClient: SqliteDsl.integer({ schema: EventSequenceNumber.ClientEventSequenceNumber }),
49
- seqNumRebaseGeneration: SqliteDsl.integer({}),
50
- changeset: SqliteDsl.blob({ nullable: true }),
51
- debug: SqliteDsl.json({ nullable: true }),
52
- },
53
- indexes: [{ columns: ['seqNumGlobal', 'seqNumClient'], name: 'idx_session_changeset_id' }],
54
- })
55
-
56
- export type SessionChangesetMetaRow = typeof sessionChangesetMetaTable.Type
57
-
58
- export const stateSystemTables = [schemaMetaTable, schemaEventDefsMetaTable, sessionChangesetMetaTable] as const
59
-
60
- export const isStateSystemTable = (tableName: string) => stateSystemTables.some((_) => _.sqliteDef.name === tableName)
61
-
62
- /// Eventlog DB
63
-
64
- export const EVENTLOG_META_TABLE = 'eventlog'
65
-
66
- export const eventlogMetaTable = table({
67
- name: EVENTLOG_META_TABLE,
68
- columns: {
69
- // TODO Adjust modeling so a global event never needs a client id component
70
- seqNumGlobal: SqliteDsl.integer({ primaryKey: true, schema: EventSequenceNumber.GlobalEventSequenceNumber }),
71
- seqNumClient: SqliteDsl.integer({ primaryKey: true, schema: EventSequenceNumber.ClientEventSequenceNumber }),
72
- seqNumRebaseGeneration: SqliteDsl.integer({ primaryKey: true }),
73
- parentSeqNumGlobal: SqliteDsl.integer({ schema: EventSequenceNumber.GlobalEventSequenceNumber }),
74
- parentSeqNumClient: SqliteDsl.integer({ schema: EventSequenceNumber.ClientEventSequenceNumber }),
75
- parentSeqNumRebaseGeneration: SqliteDsl.integer({}),
76
- /** Event definition name */
77
- name: SqliteDsl.text({}),
78
- argsJson: SqliteDsl.text({ schema: Schema.parseJson(Schema.Any) }),
79
- clientId: SqliteDsl.text({}),
80
- sessionId: SqliteDsl.text({}),
81
- schemaHash: SqliteDsl.integer({}),
82
- syncMetadataJson: SqliteDsl.text({ schema: Schema.parseJson(Schema.Option(Schema.JsonValue)) }),
83
- },
84
- indexes: [
85
- { columns: ['seqNumGlobal'], name: 'idx_eventlog_seqNumGlobal' },
86
- { columns: ['seqNumGlobal', 'seqNumClient', 'seqNumRebaseGeneration'], name: 'idx_eventlog_seqNum' },
87
- ],
88
- })
89
-
90
- export type EventlogMetaRow = typeof eventlogMetaTable.Type
91
-
92
- export const SYNC_STATUS_TABLE = '__livestore_sync_status'
93
-
94
- // TODO support sync backend identity (to detect if sync backend changes)
95
- export const syncStatusTable = table({
96
- name: SYNC_STATUS_TABLE,
97
- columns: {
98
- head: SqliteDsl.integer({ primaryKey: true }),
99
- },
100
- })
101
-
102
- export type SyncStatusRow = typeof syncStatusTable.Type
103
-
104
- export const eventlogSystemTables = [eventlogMetaTable, syncStatusTable] as const
@@ -1,3 +0,0 @@
1
- declare module 'graphology' {
2
- export * from 'graphology-types'
3
- }
@@ -1,41 +0,0 @@
1
- // TODO re-enable when `graphology` supports ESM `exports` and `.js` import/export syntax
2
- // import {} from 'graphology'
3
- import * as graphology_ from 'graphology'
4
- import type * as graphologyTypes from 'graphology-types'
5
-
6
- export const graphology = graphology_ as any
7
-
8
- export declare class IGraph<
9
- NodeAttributes extends graphologyTypes.Attributes = graphologyTypes.Attributes,
10
- EdgeAttributes extends graphologyTypes.Attributes = graphologyTypes.Attributes,
11
- GraphAttributes extends graphologyTypes.Attributes = graphologyTypes.Attributes,
12
- > extends graphologyTypes.AbstractGraph<NodeAttributes, EdgeAttributes, GraphAttributes> {
13
- constructor(options?: graphologyTypes.GraphOptions)
14
- }
15
-
16
- export const DirectedGraph = class DirectedGraph extends graphology.DirectedGraph {} as typeof IGraph
17
-
18
- export const Graph = class Graph extends graphology.Graph {} as typeof IGraph
19
-
20
- // export const graphology = graphology_ as graphologyTypes
21
-
22
- /*
23
-
24
- Example usage:
25
-
26
- const dag = new graphology.DirectedGraph({ allowSelfLoops: false })
27
-
28
- nodes.forEach((node) => dag.addNode(node.id, { width: node.data.label.length * 100, height: 40 }))
29
- edges.forEach((edge) => {
30
- // TODO do this filtering earlier
31
- if (!nodeIds.has(edge.source) || !nodeIds.has(edge.target)) return
32
-
33
- dag.addEdge(edge.source, edge.target)
34
- })
35
-
36
- graphologyLayout.random.assign(dag) // needed for initial `x`, `y` values
37
- const sensibleSettings = forceAtlas2.inferSettings(dag)
38
- // forceAtlas2.assign(dag, { iterations: 100, settings: { adjustSizes: true, } })
39
- forceAtlas2.assign(dag, { iterations: 100, settings: sensibleSettings })
40
-
41
- */
@@ -1,2 +0,0 @@
1
- export { default as graphologyDag } from 'graphology-dag'
2
- export * as graphology from './graphology.ts'