@livestore/common 0.4.0-dev.17 → 0.4.0-dev.19

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 (290) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/ClientSessionLeaderThreadProxy.d.ts +10 -10
  3. package/dist/ClientSessionLeaderThreadProxy.d.ts.map +1 -1
  4. package/dist/adapter-types.d.ts +5 -5
  5. package/dist/adapter-types.d.ts.map +1 -1
  6. package/dist/devtools/devtools-messages-client-session.d.ts +28 -23
  7. package/dist/devtools/devtools-messages-client-session.d.ts.map +1 -1
  8. package/dist/devtools/devtools-messages-client-session.js +2 -2
  9. package/dist/devtools/devtools-messages-client-session.js.map +1 -1
  10. package/dist/devtools/devtools-messages-common.d.ts +6 -6
  11. package/dist/devtools/devtools-messages-leader.d.ts +33 -28
  12. package/dist/devtools/devtools-messages-leader.d.ts.map +1 -1
  13. package/dist/devtools/devtools-messages-leader.js +8 -8
  14. package/dist/devtools/devtools-messages-leader.js.map +1 -1
  15. package/dist/errors.d.ts +6 -6
  16. package/dist/errors.d.ts.map +1 -1
  17. package/dist/errors.js +7 -7
  18. package/dist/errors.js.map +1 -1
  19. package/dist/leader-thread/LeaderSyncProcessor.d.ts +2 -2
  20. package/dist/leader-thread/LeaderSyncProcessor.d.ts.map +1 -1
  21. package/dist/leader-thread/LeaderSyncProcessor.js +28 -28
  22. package/dist/leader-thread/LeaderSyncProcessor.js.map +1 -1
  23. package/dist/leader-thread/eventlog.d.ts +13 -13
  24. package/dist/leader-thread/eventlog.d.ts.map +1 -1
  25. package/dist/leader-thread/eventlog.js +12 -11
  26. package/dist/leader-thread/eventlog.js.map +1 -1
  27. package/dist/leader-thread/leader-worker-devtools.d.ts +2 -2
  28. package/dist/leader-thread/leader-worker-devtools.d.ts.map +1 -1
  29. package/dist/leader-thread/leader-worker-devtools.js +3 -3
  30. package/dist/leader-thread/leader-worker-devtools.js.map +1 -1
  31. package/dist/leader-thread/make-leader-thread-layer.d.ts +2 -2
  32. package/dist/leader-thread/make-leader-thread-layer.d.ts.map +1 -1
  33. package/dist/leader-thread/make-leader-thread-layer.js +10 -8
  34. package/dist/leader-thread/make-leader-thread-layer.js.map +1 -1
  35. package/dist/leader-thread/materialize-event.d.ts +1 -1
  36. package/dist/leader-thread/materialize-event.d.ts.map +1 -1
  37. package/dist/leader-thread/materialize-event.js +2 -2
  38. package/dist/leader-thread/materialize-event.js.map +1 -1
  39. package/dist/leader-thread/recreate-db.d.ts +2 -2
  40. package/dist/leader-thread/recreate-db.d.ts.map +1 -1
  41. package/dist/leader-thread/recreate-db.js +5 -5
  42. package/dist/leader-thread/recreate-db.js.map +1 -1
  43. package/dist/leader-thread/shutdown-channel.d.ts +2 -2
  44. package/dist/leader-thread/shutdown-channel.d.ts.map +1 -1
  45. package/dist/leader-thread/shutdown-channel.js +2 -2
  46. package/dist/leader-thread/shutdown-channel.js.map +1 -1
  47. package/dist/leader-thread/types.d.ts +15 -15
  48. package/dist/leader-thread/types.d.ts.map +1 -1
  49. package/dist/make-client-session.d.ts +2 -2
  50. package/dist/make-client-session.d.ts.map +1 -1
  51. package/dist/materializer-helper.d.ts +5 -5
  52. package/dist/materializer-helper.d.ts.map +1 -1
  53. package/dist/materializer-helper.js.map +1 -1
  54. package/dist/rematerialize-from-eventlog.d.ts +2 -2
  55. package/dist/rematerialize-from-eventlog.d.ts.map +1 -1
  56. package/dist/rematerialize-from-eventlog.js +6 -6
  57. package/dist/rematerialize-from-eventlog.js.map +1 -1
  58. package/dist/schema/EventDef/define.d.ts +147 -0
  59. package/dist/schema/EventDef/define.d.ts.map +1 -0
  60. package/dist/schema/EventDef/define.js +139 -0
  61. package/dist/schema/EventDef/define.js.map +1 -0
  62. package/dist/schema/EventDef/event-def.d.ts +106 -0
  63. package/dist/schema/EventDef/event-def.d.ts.map +1 -0
  64. package/dist/schema/EventDef/event-def.js +2 -0
  65. package/dist/schema/EventDef/event-def.js.map +1 -0
  66. package/dist/schema/EventDef/facts.d.ts +118 -0
  67. package/dist/schema/EventDef/facts.d.ts.map +1 -0
  68. package/dist/schema/EventDef/facts.js +53 -0
  69. package/dist/schema/EventDef/facts.js.map +1 -0
  70. package/dist/schema/EventDef/materializer.d.ts +155 -0
  71. package/dist/schema/EventDef/materializer.d.ts.map +1 -0
  72. package/dist/schema/EventDef/materializer.js +83 -0
  73. package/dist/schema/EventDef/materializer.js.map +1 -0
  74. package/dist/schema/EventDef/mod.d.ts +5 -0
  75. package/dist/schema/EventDef/mod.d.ts.map +1 -0
  76. package/dist/schema/EventDef/mod.js +5 -0
  77. package/dist/schema/EventDef/mod.js.map +1 -0
  78. package/dist/schema/EventSequenceNumber/client.d.ts +136 -0
  79. package/dist/schema/EventSequenceNumber/client.d.ts.map +1 -0
  80. package/dist/schema/{EventSequenceNumber.js → EventSequenceNumber/client.js} +86 -39
  81. package/dist/schema/EventSequenceNumber/client.js.map +1 -0
  82. package/dist/schema/EventSequenceNumber/global.d.ts +15 -0
  83. package/dist/schema/EventSequenceNumber/global.d.ts.map +1 -0
  84. package/dist/schema/EventSequenceNumber/global.js +14 -0
  85. package/dist/schema/EventSequenceNumber/global.js.map +1 -0
  86. package/dist/schema/EventSequenceNumber/mod.d.ts +37 -0
  87. package/dist/schema/EventSequenceNumber/mod.d.ts.map +1 -0
  88. package/dist/schema/EventSequenceNumber/mod.js +37 -0
  89. package/dist/schema/EventSequenceNumber/mod.js.map +1 -0
  90. package/dist/schema/EventSequenceNumber.test.js +41 -41
  91. package/dist/schema/EventSequenceNumber.test.js.map +1 -1
  92. package/dist/schema/{LiveStoreEvent.d.ts → LiveStoreEvent/client.d.ts} +84 -101
  93. package/dist/schema/LiveStoreEvent/client.d.ts.map +1 -0
  94. package/dist/schema/{LiveStoreEvent.js → LiveStoreEvent/client.js} +69 -52
  95. package/dist/schema/LiveStoreEvent/client.js.map +1 -0
  96. package/dist/schema/LiveStoreEvent/for-event-def.d.ts +52 -0
  97. package/dist/schema/LiveStoreEvent/for-event-def.d.ts.map +1 -0
  98. package/dist/schema/LiveStoreEvent/for-event-def.js +2 -0
  99. package/dist/schema/LiveStoreEvent/for-event-def.js.map +1 -0
  100. package/dist/schema/LiveStoreEvent/global.d.ts +36 -0
  101. package/dist/schema/LiveStoreEvent/global.d.ts.map +1 -0
  102. package/dist/schema/LiveStoreEvent/global.js +31 -0
  103. package/dist/schema/LiveStoreEvent/global.js.map +1 -0
  104. package/dist/schema/LiveStoreEvent/input.d.ts +46 -0
  105. package/dist/schema/LiveStoreEvent/input.d.ts.map +1 -0
  106. package/dist/schema/LiveStoreEvent/input.js +26 -0
  107. package/dist/schema/LiveStoreEvent/input.js.map +1 -0
  108. package/dist/schema/LiveStoreEvent/mod.d.ts +5 -0
  109. package/dist/schema/LiveStoreEvent/mod.d.ts.map +1 -0
  110. package/dist/schema/LiveStoreEvent/mod.js +5 -0
  111. package/dist/schema/LiveStoreEvent/mod.js.map +1 -0
  112. package/dist/schema/events.d.ts +1 -1
  113. package/dist/schema/events.d.ts.map +1 -1
  114. package/dist/schema/events.js +1 -1
  115. package/dist/schema/events.js.map +1 -1
  116. package/dist/schema/mod.d.ts +3 -3
  117. package/dist/schema/mod.d.ts.map +1 -1
  118. package/dist/schema/mod.js +3 -3
  119. package/dist/schema/mod.js.map +1 -1
  120. package/dist/schema/schema.d.ts +1 -1
  121. package/dist/schema/schema.d.ts.map +1 -1
  122. package/dist/schema/state/sqlite/client-document-def.d.ts +1 -1
  123. package/dist/schema/state/sqlite/client-document-def.d.ts.map +1 -1
  124. package/dist/schema/state/sqlite/client-document-def.js +2 -2
  125. package/dist/schema/state/sqlite/client-document-def.js.map +1 -1
  126. package/dist/schema/state/sqlite/client-document-def.test.js.map +1 -1
  127. package/dist/schema/state/sqlite/column-def.js +60 -28
  128. package/dist/schema/state/sqlite/column-def.js.map +1 -1
  129. package/dist/schema/state/sqlite/column-def.test.js +12 -1
  130. package/dist/schema/state/sqlite/column-def.test.js.map +1 -1
  131. package/dist/schema/state/sqlite/mod.d.ts +2 -2
  132. package/dist/schema/state/sqlite/mod.d.ts.map +1 -1
  133. package/dist/schema/state/sqlite/mod.js +1 -1
  134. package/dist/schema/state/sqlite/mod.js.map +1 -1
  135. package/dist/schema/state/sqlite/query-builder/api.d.ts +12 -8
  136. package/dist/schema/state/sqlite/query-builder/api.d.ts.map +1 -1
  137. package/dist/schema/state/sqlite/query-builder/astToSql.d.ts.map +1 -1
  138. package/dist/schema/state/sqlite/query-builder/astToSql.js +18 -11
  139. package/dist/schema/state/sqlite/query-builder/astToSql.js.map +1 -1
  140. package/dist/schema/state/sqlite/query-builder/impl.d.ts.map +1 -1
  141. package/dist/schema/state/sqlite/query-builder/impl.js +0 -1
  142. package/dist/schema/state/sqlite/query-builder/impl.js.map +1 -1
  143. package/dist/schema/state/sqlite/query-builder/impl.test.js +119 -90
  144. package/dist/schema/state/sqlite/query-builder/impl.test.js.map +1 -1
  145. package/dist/schema/state/sqlite/system-tables/eventlog-tables.js +5 -5
  146. package/dist/schema/state/sqlite/system-tables/eventlog-tables.js.map +1 -1
  147. package/dist/schema/state/sqlite/system-tables/state-tables.js +3 -3
  148. package/dist/schema/state/sqlite/system-tables/state-tables.js.map +1 -1
  149. package/dist/schema/unknown-events.d.ts +3 -3
  150. package/dist/schema/unknown-events.d.ts.map +1 -1
  151. package/dist/schema-management/migrations.d.ts +2 -2
  152. package/dist/schema-management/migrations.d.ts.map +1 -1
  153. package/dist/schema-management/migrations.js.map +1 -1
  154. package/dist/schema-management/validate-schema.d.ts +3 -3
  155. package/dist/schema-management/validate-schema.d.ts.map +1 -1
  156. package/dist/schema-management/validate-schema.js +2 -2
  157. package/dist/schema-management/validate-schema.js.map +1 -1
  158. package/dist/sqlite-types.d.ts +3 -3
  159. package/dist/sqlite-types.d.ts.map +1 -1
  160. package/dist/sync/ClientSessionSyncProcessor.d.ts +5 -5
  161. package/dist/sync/ClientSessionSyncProcessor.d.ts.map +1 -1
  162. package/dist/sync/ClientSessionSyncProcessor.js +12 -12
  163. package/dist/sync/ClientSessionSyncProcessor.js.map +1 -1
  164. package/dist/sync/errors.d.ts +9 -4
  165. package/dist/sync/errors.d.ts.map +1 -1
  166. package/dist/sync/errors.js +6 -6
  167. package/dist/sync/errors.js.map +1 -1
  168. package/dist/sync/mock-sync-backend.d.ts +6 -6
  169. package/dist/sync/mock-sync-backend.d.ts.map +1 -1
  170. package/dist/sync/mock-sync-backend.js +4 -4
  171. package/dist/sync/mock-sync-backend.js.map +1 -1
  172. package/dist/sync/next/compact-events.js +2 -2
  173. package/dist/sync/next/compact-events.js.map +1 -1
  174. package/dist/sync/next/facts.d.ts +5 -5
  175. package/dist/sync/next/facts.d.ts.map +1 -1
  176. package/dist/sync/next/facts.js.map +1 -1
  177. package/dist/sync/next/history-dag-common.d.ts +5 -5
  178. package/dist/sync/next/history-dag-common.d.ts.map +1 -1
  179. package/dist/sync/next/history-dag-common.js +5 -5
  180. package/dist/sync/next/history-dag-common.js.map +1 -1
  181. package/dist/sync/next/history-dag.d.ts.map +1 -1
  182. package/dist/sync/next/history-dag.js +8 -8
  183. package/dist/sync/next/history-dag.js.map +1 -1
  184. package/dist/sync/next/rebase-events.d.ts +5 -5
  185. package/dist/sync/next/rebase-events.d.ts.map +1 -1
  186. package/dist/sync/next/rebase-events.js +5 -5
  187. package/dist/sync/next/rebase-events.js.map +1 -1
  188. package/dist/sync/next/test/event-fixtures.d.ts +2 -2
  189. package/dist/sync/next/test/event-fixtures.d.ts.map +1 -1
  190. package/dist/sync/next/test/event-fixtures.js +9 -9
  191. package/dist/sync/next/test/event-fixtures.js.map +1 -1
  192. package/dist/sync/sync-backend-kv.d.ts +3 -3
  193. package/dist/sync/sync-backend-kv.d.ts.map +1 -1
  194. package/dist/sync/sync-backend-kv.js +3 -3
  195. package/dist/sync/sync-backend-kv.js.map +1 -1
  196. package/dist/sync/sync-backend.d.ts +9 -9
  197. package/dist/sync/sync-backend.d.ts.map +1 -1
  198. package/dist/sync/syncstate.d.ts +55 -42
  199. package/dist/sync/syncstate.d.ts.map +1 -1
  200. package/dist/sync/syncstate.js +42 -42
  201. package/dist/sync/syncstate.js.map +1 -1
  202. package/dist/sync/syncstate.test.js +40 -40
  203. package/dist/sync/syncstate.test.js.map +1 -1
  204. package/dist/sync/validate-push-payload.d.ts +1 -1
  205. package/dist/sync/validate-push-payload.d.ts.map +1 -1
  206. package/dist/sync/validate-push-payload.js +2 -2
  207. package/dist/sync/validate-push-payload.js.map +1 -1
  208. package/dist/testing/event-factory.d.ts +3 -3
  209. package/dist/testing/event-factory.d.ts.map +1 -1
  210. package/dist/testing/event-factory.js +5 -7
  211. package/dist/testing/event-factory.js.map +1 -1
  212. package/dist/version.d.ts +1 -1
  213. package/dist/version.js +1 -1
  214. package/package.json +4 -4
  215. package/src/ClientSessionLeaderThreadProxy.ts +10 -10
  216. package/src/adapter-types.ts +5 -5
  217. package/src/devtools/devtools-messages-client-session.ts +2 -2
  218. package/src/devtools/devtools-messages-leader.ts +8 -8
  219. package/src/errors.ts +11 -13
  220. package/src/leader-thread/LeaderSyncProcessor.ts +54 -56
  221. package/src/leader-thread/eventlog.ts +21 -26
  222. package/src/leader-thread/leader-worker-devtools.ts +3 -3
  223. package/src/leader-thread/make-leader-thread-layer.ts +12 -10
  224. package/src/leader-thread/materialize-event.ts +3 -3
  225. package/src/leader-thread/recreate-db.ts +6 -6
  226. package/src/leader-thread/shutdown-channel.ts +2 -2
  227. package/src/leader-thread/types.ts +15 -15
  228. package/src/make-client-session.ts +2 -2
  229. package/src/materializer-helper.ts +5 -5
  230. package/src/rematerialize-from-eventlog.ts +6 -6
  231. package/src/schema/EventDef/define.ts +201 -0
  232. package/src/schema/EventDef/event-def.ts +120 -0
  233. package/src/schema/EventDef/facts.ts +135 -0
  234. package/src/schema/EventDef/materializer.ts +172 -0
  235. package/src/schema/EventDef/mod.ts +4 -0
  236. package/src/schema/EventSequenceNumber/client.ts +257 -0
  237. package/src/schema/EventSequenceNumber/global.ts +19 -0
  238. package/src/schema/EventSequenceNumber/mod.ts +37 -0
  239. package/src/schema/EventSequenceNumber.test.ts +68 -50
  240. package/src/schema/LiveStoreEvent/client.ts +221 -0
  241. package/src/schema/LiveStoreEvent/for-event-def.ts +60 -0
  242. package/src/schema/LiveStoreEvent/global.ts +45 -0
  243. package/src/schema/LiveStoreEvent/input.ts +63 -0
  244. package/src/schema/LiveStoreEvent/mod.ts +4 -0
  245. package/src/schema/events.ts +1 -1
  246. package/src/schema/mod.ts +3 -3
  247. package/src/schema/schema.ts +1 -1
  248. package/src/schema/state/sqlite/client-document-def.test.ts +2 -2
  249. package/src/schema/state/sqlite/client-document-def.ts +3 -3
  250. package/src/schema/state/sqlite/column-def.test.ts +18 -1
  251. package/src/schema/state/sqlite/column-def.ts +73 -30
  252. package/src/schema/state/sqlite/mod.ts +2 -2
  253. package/src/schema/state/sqlite/query-builder/api.ts +12 -8
  254. package/src/schema/state/sqlite/query-builder/astToSql.ts +20 -11
  255. package/src/schema/state/sqlite/query-builder/impl.test.ts +122 -90
  256. package/src/schema/state/sqlite/query-builder/impl.ts +0 -1
  257. package/src/schema/state/sqlite/system-tables/eventlog-tables.ts +5 -5
  258. package/src/schema/state/sqlite/system-tables/state-tables.ts +3 -3
  259. package/src/schema/unknown-events.ts +3 -3
  260. package/src/schema-management/migrations.ts +2 -2
  261. package/src/schema-management/validate-schema.ts +3 -3
  262. package/src/sqlite-types.ts +3 -3
  263. package/src/sync/ClientSessionSyncProcessor.ts +17 -17
  264. package/src/sync/errors.ts +6 -6
  265. package/src/sync/mock-sync-backend.ts +16 -16
  266. package/src/sync/next/compact-events.ts +2 -2
  267. package/src/sync/next/facts.ts +6 -6
  268. package/src/sync/next/history-dag-common.ts +8 -8
  269. package/src/sync/next/history-dag.ts +14 -10
  270. package/src/sync/next/rebase-events.ts +11 -11
  271. package/src/sync/next/test/event-fixtures.ts +11 -11
  272. package/src/sync/sync-backend-kv.ts +3 -3
  273. package/src/sync/sync-backend.ts +9 -9
  274. package/src/sync/syncstate.test.ts +46 -46
  275. package/src/sync/syncstate.ts +59 -55
  276. package/src/sync/validate-push-payload.ts +4 -4
  277. package/src/testing/event-factory.ts +10 -12
  278. package/src/version.ts +1 -1
  279. package/dist/schema/EventDef.d.ts +0 -126
  280. package/dist/schema/EventDef.d.ts.map +0 -1
  281. package/dist/schema/EventDef.js +0 -46
  282. package/dist/schema/EventDef.js.map +0 -1
  283. package/dist/schema/EventSequenceNumber.d.ts +0 -89
  284. package/dist/schema/EventSequenceNumber.d.ts.map +0 -1
  285. package/dist/schema/EventSequenceNumber.js.map +0 -1
  286. package/dist/schema/LiveStoreEvent.d.ts.map +0 -1
  287. package/dist/schema/LiveStoreEvent.js.map +0 -1
  288. package/src/schema/EventDef.ts +0 -222
  289. package/src/schema/EventSequenceNumber.ts +0 -208
  290. package/src/schema/LiveStoreEvent.ts +0 -286
@@ -73,7 +73,15 @@ const issue = State.SQLite.table({
73
73
  ],
74
74
  })
75
75
 
76
- const db = { todos, todosWithIntId, comments, issue, UiState, UiStateWithDefaultId }
76
+ const selections = State.SQLite.table({
77
+ name: 'selections',
78
+ columns: {
79
+ id: State.SQLite.integer({ primaryKey: true }),
80
+ group: State.SQLite.text({}),
81
+ },
82
+ })
83
+
84
+ const db = { todos, todosWithIntId, comments, issue, selections, UiState, UiStateWithDefaultId }
77
85
 
78
86
  const dump = (qb: QueryBuilder<any, any, any>) => ({
79
87
  bindValues: qb.asSql().bindValues,
@@ -95,7 +103,7 @@ describe('query builder', () => {
95
103
  expect(dump(db.todos.select('id'))).toMatchInlineSnapshot(`
96
104
  {
97
105
  "bindValues": [],
98
- "query": "SELECT id FROM 'todos'",
106
+ "query": "SELECT "id" FROM 'todos'",
99
107
  "schema": "ReadonlyArray<({ readonly id: string } <-> string)>",
100
108
  }
101
109
  `)
@@ -103,7 +111,7 @@ describe('query builder', () => {
103
111
  expect(dump(db.todos.select('id', 'text'))).toMatchInlineSnapshot(`
104
112
  {
105
113
  "bindValues": [],
106
- "query": "SELECT id, text FROM 'todos'",
114
+ "query": "SELECT "id", "text" FROM 'todos'",
107
115
  "schema": "ReadonlyArray<{ readonly id: string; readonly text: string }>",
108
116
  }
109
117
  `)
@@ -115,7 +123,7 @@ describe('query builder', () => {
115
123
  "bindValues": [
116
124
  1,
117
125
  ],
118
- "query": "SELECT id, text FROM 'todos' LIMIT ?",
126
+ "query": "SELECT "id", "text" FROM 'todos' LIMIT ?",
119
127
  "schema": "(ReadonlyArray<{ readonly id: string; readonly text: string } | undefined> <-> { readonly id: string; readonly text: string } | undefined)",
120
128
  }
121
129
  `)
@@ -125,7 +133,7 @@ describe('query builder', () => {
125
133
  "bindValues": [
126
134
  1,
127
135
  ],
128
- "query": "SELECT id, text FROM 'todos' LIMIT ?",
136
+ "query": "SELECT "id", "text" FROM 'todos' LIMIT ?",
129
137
  "schema": "(ReadonlyArray<{ readonly id: string; readonly text: string }> <-> { readonly id: string; readonly text: string })",
130
138
  }
131
139
  `)
@@ -137,7 +145,7 @@ describe('query builder', () => {
137
145
  "bindValues": [
138
146
  1,
139
147
  ],
140
- "query": "SELECT id, text FROM 'todos' LIMIT ?",
148
+ "query": "SELECT "id", "text" FROM 'todos' LIMIT ?",
141
149
  "schema": "(ReadonlyArray<{ readonly id: string; readonly text: string }> | readonly [undefined] <-> { readonly id: string; readonly text: string } | undefined)",
142
150
  }
143
151
  `)
@@ -149,7 +157,7 @@ describe('query builder', () => {
149
157
  "bindValues": [
150
158
  1,
151
159
  ],
152
- "query": "SELECT id, text FROM 'todos' WHERE completed = ?",
160
+ "query": "SELECT "id", "text" FROM 'todos' WHERE "completed" = ?",
153
161
  "schema": "ReadonlyArray<{ readonly id: string; readonly text: string }>",
154
162
  }
155
163
  `)
@@ -158,7 +166,7 @@ describe('query builder', () => {
158
166
  "bindValues": [
159
167
  1,
160
168
  ],
161
- "query": "SELECT id, text FROM 'todos' WHERE completed != ?",
169
+ "query": "SELECT "id", "text" FROM 'todos' WHERE "completed" != ?",
162
170
  "schema": "ReadonlyArray<{ readonly id: string; readonly text: string }>",
163
171
  }
164
172
  `)
@@ -167,51 +175,51 @@ describe('query builder', () => {
167
175
  "bindValues": [
168
176
  1,
169
177
  ],
170
- "query": "SELECT id, text FROM 'todos' WHERE completed = ?",
178
+ "query": "SELECT "id", "text" FROM 'todos' WHERE "completed" = ?",
171
179
  "schema": "ReadonlyArray<{ readonly id: string; readonly text: string }>",
172
180
  }
173
181
  `)
174
182
  expect(dump(db.todos.select('id', 'text').where({ completed: undefined }))).toMatchInlineSnapshot(`
175
183
  {
176
184
  "bindValues": [],
177
- "query": "SELECT id, text FROM 'todos'",
185
+ "query": "SELECT "id", "text" FROM 'todos'",
178
186
  "schema": "ReadonlyArray<{ readonly id: string; readonly text: string }>",
179
187
  }
180
188
  `)
181
189
  expect(
182
190
  dump(db.todos.select('id', 'text').where({ deletedAt: { op: '<=', value: new Date('2024-01-01') } })),
183
191
  ).toMatchInlineSnapshot(`
184
- {
185
- "bindValues": [
186
- "2024-01-01T00:00:00.000Z",
187
- ],
188
- "query": "SELECT id, text FROM 'todos' WHERE deletedAt <= ?",
189
- "schema": "ReadonlyArray<{ readonly id: string; readonly text: string }>",
190
- }
191
- `)
192
+ {
193
+ "bindValues": [
194
+ "2024-01-01T00:00:00.000Z",
195
+ ],
196
+ "query": "SELECT "id", "text" FROM 'todos' WHERE "deletedAt" <= ?",
197
+ "schema": "ReadonlyArray<{ readonly id: string; readonly text: string }>",
198
+ }
199
+ `)
192
200
  expect(
193
201
  dump(db.todos.select('id', 'text').where({ status: { op: 'IN', value: ['active'] } })),
194
202
  ).toMatchInlineSnapshot(`
195
- {
196
- "bindValues": [
197
- "active",
198
- ],
199
- "query": "SELECT id, text FROM 'todos' WHERE status IN (?)",
200
- "schema": "ReadonlyArray<{ readonly id: string; readonly text: string }>",
201
- }
202
- `)
203
+ {
204
+ "bindValues": [
205
+ "active",
206
+ ],
207
+ "query": "SELECT "id", "text" FROM 'todos' WHERE "status" IN (?)",
208
+ "schema": "ReadonlyArray<{ readonly id: string; readonly text: string }>",
209
+ }
210
+ `)
203
211
  expect(
204
212
  dump(db.todos.select('id', 'text').where({ status: { op: 'NOT IN', value: ['active', 'completed'] } })),
205
213
  ).toMatchInlineSnapshot(`
206
- {
207
- "bindValues": [
208
- "active",
209
- "completed",
210
- ],
211
- "query": "SELECT id, text FROM 'todos' WHERE status NOT IN (?, ?)",
212
- "schema": "ReadonlyArray<{ readonly id: string; readonly text: string }>",
213
- }
214
- `)
214
+ {
215
+ "bindValues": [
216
+ "active",
217
+ "completed",
218
+ ],
219
+ "query": "SELECT "id", "text" FROM 'todos' WHERE "status" NOT IN (?, ?)",
220
+ "schema": "ReadonlyArray<{ readonly id: string; readonly text: string }>",
221
+ }
222
+ `)
215
223
 
216
224
  expect(
217
225
  dump(
@@ -222,15 +230,15 @@ describe('query builder', () => {
222
230
  .where({ deletedAt: undefined }),
223
231
  ),
224
232
  ).toMatchInlineSnapshot(`
225
- {
226
- "bindValues": [
227
- 0,
228
- "active",
229
- ],
230
- "query": "SELECT id, text FROM 'todos' WHERE completed = ? AND status IN (?)",
231
- "schema": "ReadonlyArray<{ readonly id: string; readonly text: string }>",
232
- }
233
- `)
233
+ {
234
+ "bindValues": [
235
+ 0,
236
+ "active",
237
+ ],
238
+ "query": "SELECT "id", "text" FROM 'todos' WHERE "completed" = ? AND "status" IN (?)",
239
+ "schema": "ReadonlyArray<{ readonly id: string; readonly text: string }>",
240
+ }
241
+ `)
234
242
  })
235
243
 
236
244
  it('should handle OFFSET and LIMIT clauses', () => {
@@ -241,7 +249,7 @@ describe('query builder', () => {
241
249
  10,
242
250
  10,
243
251
  ],
244
- "query": "SELECT id, text FROM 'todos' WHERE completed = ? OFFSET ? LIMIT ?",
252
+ "query": "SELECT "id", "text" FROM 'todos' WHERE "completed" = ? OFFSET ? LIMIT ?",
245
253
  "schema": "ReadonlyArray<{ readonly id: string; readonly text: string }>",
246
254
  }
247
255
  `)
@@ -256,7 +264,7 @@ describe('query builder', () => {
256
264
  5,
257
265
  10,
258
266
  ],
259
- "query": "SELECT id, text FROM 'todos' WHERE completed = ? OFFSET ? LIMIT ?",
267
+ "query": "SELECT "id", "text" FROM 'todos' WHERE "completed" = ? OFFSET ? LIMIT ?",
260
268
  "schema": "ReadonlyArray<{ readonly id: string; readonly text: string }>",
261
269
  }
262
270
  `)
@@ -268,7 +276,7 @@ describe('query builder', () => {
268
276
  1,
269
277
  5,
270
278
  ],
271
- "query": "SELECT id, text FROM 'todos' WHERE completed = ? OFFSET ?",
279
+ "query": "SELECT "id", "text" FROM 'todos' WHERE "completed" = ? OFFSET ?",
272
280
  "schema": "ReadonlyArray<{ readonly id: string; readonly text: string }>",
273
281
  }
274
282
  `)
@@ -280,7 +288,7 @@ describe('query builder', () => {
280
288
  1,
281
289
  10,
282
290
  ],
283
- "query": "SELECT id, text FROM 'todos' WHERE completed = ? LIMIT ?",
291
+ "query": "SELECT "id", "text" FROM 'todos' WHERE "completed" = ? LIMIT ?",
284
292
  "schema": "ReadonlyArray<{ readonly id: string; readonly text: string }>",
285
293
  }
286
294
  `)
@@ -299,7 +307,7 @@ describe('query builder', () => {
299
307
  "bindValues": [
300
308
  1,
301
309
  ],
302
- "query": "SELECT COUNT(*) as count FROM 'todos' WHERE completed = ?",
310
+ "query": "SELECT COUNT(*) as count FROM 'todos' WHERE "completed" = ?",
303
311
  "schema": "(ReadonlyArray<({ readonly count: number } <-> number)> <-> number)",
304
312
  }
305
313
  `)
@@ -308,7 +316,7 @@ describe('query builder', () => {
308
316
  "bindValues": [
309
317
  1,
310
318
  ],
311
- "query": "SELECT COUNT(*) as count FROM 'todos' WHERE completed = ?",
319
+ "query": "SELECT COUNT(*) as count FROM 'todos' WHERE "completed" = ?",
312
320
  "schema": "(ReadonlyArray<({ readonly count: number } <-> number)> <-> number)",
313
321
  }
314
322
  `)
@@ -318,14 +326,14 @@ describe('query builder', () => {
318
326
  expect(dump(db.todos.select('id', 'text').where('deletedAt', '=', null))).toMatchInlineSnapshot(`
319
327
  {
320
328
  "bindValues": [],
321
- "query": "SELECT id, text FROM 'todos' WHERE deletedAt IS NULL",
329
+ "query": "SELECT "id", "text" FROM 'todos' WHERE "deletedAt" IS NULL",
322
330
  "schema": "ReadonlyArray<{ readonly id: string; readonly text: string }>",
323
331
  }
324
332
  `)
325
333
  expect(dump(db.todos.select('id', 'text').where('deletedAt', '!=', null))).toMatchInlineSnapshot(`
326
334
  {
327
335
  "bindValues": [],
328
- "query": "SELECT id, text FROM 'todos' WHERE deletedAt IS NOT NULL",
336
+ "query": "SELECT "id", "text" FROM 'todos' WHERE "deletedAt" IS NOT NULL",
329
337
  "schema": "ReadonlyArray<{ readonly id: string; readonly text: string }>",
330
338
  }
331
339
  `)
@@ -335,7 +343,7 @@ describe('query builder', () => {
335
343
  expect(dump(db.todos.orderBy('completed', 'desc'))).toMatchInlineSnapshot(`
336
344
  {
337
345
  "bindValues": [],
338
- "query": "SELECT * FROM 'todos' ORDER BY completed desc",
346
+ "query": "SELECT * FROM 'todos' ORDER BY "completed" desc",
339
347
  "schema": "ReadonlyArray<todos>",
340
348
  }
341
349
  `)
@@ -343,7 +351,7 @@ describe('query builder', () => {
343
351
  expect(dump(db.todos.orderBy([{ col: 'completed', direction: 'desc' }]))).toMatchInlineSnapshot(`
344
352
  {
345
353
  "bindValues": [],
346
- "query": "SELECT * FROM 'todos' ORDER BY completed desc",
354
+ "query": "SELECT * FROM 'todos' ORDER BY "completed" desc",
347
355
  "schema": "ReadonlyArray<todos>",
348
356
  }
349
357
  `)
@@ -402,7 +410,7 @@ describe('query builder', () => {
402
410
  "Buy milk",
403
411
  "active",
404
412
  ],
405
- "query": "INSERT INTO 'todos' (id, text, status) VALUES (?, ?, ?)",
413
+ "query": "INSERT INTO 'todos' ("id", "text", "status") VALUES (?, ?, ?)",
406
414
  "schema": "number",
407
415
  }
408
416
  `)
@@ -416,7 +424,7 @@ describe('query builder', () => {
416
424
  "Buy milk",
417
425
  "active",
418
426
  ],
419
- "query": "INSERT INTO 'todos' (id, text, status) VALUES (?, ?, ?)",
427
+ "query": "INSERT INTO 'todos' ("id", "text", "status") VALUES (?, ?, ?)",
420
428
  "schema": "number",
421
429
  }
422
430
  `)
@@ -447,7 +455,7 @@ describe('query builder', () => {
447
455
  "a2",
448
456
  "John Doe",
449
457
  ],
450
- "query": "INSERT INTO 'issue' (id, title, priority, created, modified, kanbanorder, creator) VALUES (?, ?, ?, ?, ?, ?, ?)",
458
+ "query": "INSERT INTO 'issue' ("id", "title", "priority", "created", "modified", "kanbanorder", "creator") VALUES (?, ?, ?, ?, ?, ?, ?)",
451
459
  "schema": "number",
452
460
  }
453
461
  `)
@@ -460,7 +468,7 @@ describe('query builder', () => {
460
468
  "completed",
461
469
  "123",
462
470
  ],
463
- "query": "UPDATE 'todos' SET status = ? WHERE id = ?",
471
+ "query": "UPDATE 'todos' SET "status" = ? WHERE "id" = ?",
464
472
  "schema": "number",
465
473
  }
466
474
  `)
@@ -482,7 +490,7 @@ describe('query builder', () => {
482
490
  "some text",
483
491
  "123",
484
492
  ],
485
- "query": "UPDATE 'todos' SET text = ? WHERE id = ?",
493
+ "query": "UPDATE 'todos' SET "text" = ? WHERE "id" = ?",
486
494
  "schema": "number",
487
495
  }
488
496
  `)
@@ -496,7 +504,7 @@ describe('query builder', () => {
496
504
  "John Doe",
497
505
  1,
498
506
  ],
499
- "query": "UPDATE 'issue' SET priority = ?, creator = ? WHERE id = ?",
507
+ "query": "UPDATE 'issue' SET "priority" = ?, "creator" = ? WHERE "id" = ?",
500
508
  "schema": "number",
501
509
  }
502
510
  `)
@@ -508,7 +516,7 @@ describe('query builder', () => {
508
516
  "bindValues": [
509
517
  "completed",
510
518
  ],
511
- "query": "DELETE FROM 'todos' WHERE status = ?",
519
+ "query": "DELETE FROM 'todos' WHERE "status" = ?",
512
520
  "schema": "number",
513
521
  }
514
522
  `)
@@ -524,7 +532,7 @@ describe('query builder', () => {
524
532
  "Buy milk",
525
533
  "active",
526
534
  ],
527
- "query": "INSERT INTO 'todos' (id, text, status) VALUES (?, ?, ?) ON CONFLICT (id) DO NOTHING",
535
+ "query": "INSERT INTO 'todos' ("id", "text", "status") VALUES (?, ?, ?) ON CONFLICT ("id") DO NOTHING",
528
536
  "schema": "number",
529
537
  }
530
538
  `)
@@ -544,7 +552,7 @@ describe('query builder', () => {
544
552
  "Buy soy milk",
545
553
  "active",
546
554
  ],
547
- "query": "INSERT INTO 'todos' (id, text, status) VALUES (?, ?, ?) ON CONFLICT (id) DO UPDATE SET text = ?, status = ?",
555
+ "query": "INSERT INTO 'todos' ("id", "text", "status") VALUES (?, ?, ?) ON CONFLICT ("id") DO UPDATE SET "text" = ?, "status" = ?",
548
556
  "schema": "number",
549
557
  }
550
558
  `)
@@ -558,7 +566,31 @@ describe('query builder', () => {
558
566
  "Buy milk",
559
567
  "active",
560
568
  ],
561
- "query": "INSERT OR REPLACE INTO 'todos' (id, text, status) VALUES (?, ?, ?)",
569
+ "query": "INSERT OR REPLACE INTO 'todos' ("id", "text", "status") VALUES (?, ?, ?)",
570
+ "schema": "number",
571
+ }
572
+ `)
573
+ })
574
+
575
+ it('should quote reserved column names', () => {
576
+ expect(dump(db.selections.insert({ id: 1, group: 'alpha' }).onConflict('id', 'ignore'))).toMatchInlineSnapshot(`
577
+ {
578
+ "bindValues": [
579
+ 1,
580
+ "alpha",
581
+ ],
582
+ "query": "INSERT INTO 'selections' ("id", "group") VALUES (?, ?) ON CONFLICT ("id") DO NOTHING",
583
+ "schema": "number",
584
+ }
585
+ `)
586
+
587
+ expect(dump(db.selections.update({ group: 'beta' }).where({ id: 1 }))).toMatchInlineSnapshot(`
588
+ {
589
+ "bindValues": [
590
+ "beta",
591
+ 1,
592
+ ],
593
+ "query": "UPDATE 'selections' SET "group" = ? WHERE "id" = ?",
562
594
  "schema": "number",
563
595
  }
564
596
  `)
@@ -574,7 +606,7 @@ describe('query builder', () => {
574
606
  "Buy milk",
575
607
  "active",
576
608
  ],
577
- "query": "INSERT INTO 'todos' (id, text, status) VALUES (?, ?, ?) ON CONFLICT (id, status) DO NOTHING",
609
+ "query": "INSERT INTO 'todos' ("id", "text", "status") VALUES (?, ?, ?) ON CONFLICT ("id", "status") DO NOTHING",
578
610
  "schema": "number",
579
611
  }
580
612
  `)
@@ -584,36 +616,36 @@ describe('query builder', () => {
584
616
  expect(
585
617
  dump(db.todos.insert({ id: '123', text: 'Buy milk', status: 'active' }).returning('id')),
586
618
  ).toMatchInlineSnapshot(`
587
- {
588
- "bindValues": [
589
- "123",
590
- "Buy milk",
591
- "active",
592
- ],
593
- "query": "INSERT INTO 'todos' (id, text, status) VALUES (?, ?, ?) RETURNING id",
594
- "schema": "ReadonlyArray<{ readonly id: string }>",
595
- }
596
- `)
619
+ {
620
+ "bindValues": [
621
+ "123",
622
+ "Buy milk",
623
+ "active",
624
+ ],
625
+ "query": "INSERT INTO 'todos' ("id", "text", "status") VALUES (?, ?, ?) RETURNING "id"",
626
+ "schema": "ReadonlyArray<{ readonly id: string }>",
627
+ }
628
+ `)
597
629
 
598
630
  expect(
599
631
  dump(db.todos.update({ status: 'completed' }).where({ id: '123' }).returning('id')),
600
632
  ).toMatchInlineSnapshot(`
601
- {
602
- "bindValues": [
603
- "completed",
604
- "123",
605
- ],
606
- "query": "UPDATE 'todos' SET status = ? WHERE id = ? RETURNING id",
607
- "schema": "ReadonlyArray<{ readonly id: string }>",
608
- }
609
- `)
633
+ {
634
+ "bindValues": [
635
+ "completed",
636
+ "123",
637
+ ],
638
+ "query": "UPDATE 'todos' SET "status" = ? WHERE "id" = ? RETURNING "id"",
639
+ "schema": "ReadonlyArray<{ readonly id: string }>",
640
+ }
641
+ `)
610
642
 
611
643
  expect(dump(db.todos.delete().where({ status: 'completed' }).returning('id'))).toMatchInlineSnapshot(`
612
644
  {
613
645
  "bindValues": [
614
646
  "completed",
615
647
  ],
616
- "query": "DELETE FROM 'todos' WHERE status = ? RETURNING id",
648
+ "query": "DELETE FROM 'todos' WHERE "status" = ? RETURNING "id"",
617
649
  "schema": "ReadonlyArray<{ readonly id: string }>",
618
650
  }
619
651
  `)
@@ -625,7 +657,7 @@ describe('query builder', () => {
625
657
  "bindValues": [
626
658
  "completed",
627
659
  ],
628
- "query": "DELETE FROM 'todos' WHERE status = ?",
660
+ "query": "DELETE FROM 'todos' WHERE "status" = ?",
629
661
  "schema": "number",
630
662
  }
631
663
  `)
@@ -636,7 +668,7 @@ describe('query builder', () => {
636
668
  "bindValues": [
637
669
  "completed",
638
670
  ],
639
- "query": "DELETE FROM 'todos' WHERE status = ? AND deletedAt IS NULL",
671
+ "query": "DELETE FROM 'todos' WHERE "status" = ? AND "deletedAt" IS NULL",
640
672
  "schema": "number",
641
673
  }
642
674
  `)
@@ -649,7 +681,7 @@ describe('query builder', () => {
649
681
  "completed",
650
682
  "123",
651
683
  ],
652
- "query": "UPDATE 'todos' SET status = ? WHERE id = ?",
684
+ "query": "UPDATE 'todos' SET "status" = ? WHERE "id" = ?",
653
685
  "schema": "number",
654
686
  }
655
687
  `)
@@ -663,7 +695,7 @@ describe('query builder', () => {
663
695
  "completed",
664
696
  "123",
665
697
  ],
666
- "query": "UPDATE 'todos' SET status = ? WHERE id = ? AND deletedAt IS NULL",
698
+ "query": "UPDATE 'todos' SET "status" = ? WHERE "id" = ? AND "deletedAt" IS NULL",
667
699
  "schema": "number",
668
700
  }
669
701
  `)
@@ -776,7 +808,7 @@ describe('query builder', () => {
776
808
  "Lovelace",
777
809
  "ada@example.com",
778
810
  ],
779
- "query": "INSERT INTO 'contacts' (id, contactFirstName, contactLastName, contactEmail) VALUES (?, ?, ?, ?)",
811
+ "query": "INSERT INTO 'contacts' ("id", "contactFirstName", "contactLastName", "contactEmail") VALUES (?, ?, ?, ?)",
780
812
  "usedTables": Set {
781
813
  "contacts",
782
814
  },
@@ -35,7 +35,6 @@ export const makeQueryBuilder = <TResult, TTableDef extends TableDefBase>(
35
35
  select: { columns },
36
36
  }) as any
37
37
  },
38
- // biome-ignore lint/complexity/useArrowFunction: prefer function over arrow function for this case
39
38
  where: function () {
40
39
  if (ast._tag === 'InsertQuery') return invalidQueryBuilder('Cannot use where with insert')
41
40
  if (ast._tag === 'RowQuery') return invalidQueryBuilder('Cannot use where with row')
@@ -1,6 +1,6 @@
1
1
  import { Schema } from '@livestore/utils/effect'
2
2
 
3
- import * as EventSequenceNumber from '../../../EventSequenceNumber.ts'
3
+ import * as EventSequenceNumber from '../../../EventSequenceNumber/mod.ts'
4
4
  import { SqliteDsl } from '../db-schema/mod.ts'
5
5
  import { table } from '../table-def.ts'
6
6
 
@@ -22,11 +22,11 @@ export const eventlogMetaTable = table({
22
22
  name: EVENTLOG_META_TABLE,
23
23
  columns: {
24
24
  // TODO Adjust modeling so a global event never needs a client id component
25
- seqNumGlobal: SqliteDsl.integer({ primaryKey: true, schema: EventSequenceNumber.GlobalEventSequenceNumber }),
26
- seqNumClient: SqliteDsl.integer({ primaryKey: true, schema: EventSequenceNumber.ClientEventSequenceNumber }),
25
+ seqNumGlobal: SqliteDsl.integer({ primaryKey: true, schema: EventSequenceNumber.Global.Schema }),
26
+ seqNumClient: SqliteDsl.integer({ primaryKey: true, schema: EventSequenceNumber.Client.Schema }),
27
27
  seqNumRebaseGeneration: SqliteDsl.integer({ primaryKey: true }),
28
- parentSeqNumGlobal: SqliteDsl.integer({ schema: EventSequenceNumber.GlobalEventSequenceNumber }),
29
- parentSeqNumClient: SqliteDsl.integer({ schema: EventSequenceNumber.ClientEventSequenceNumber }),
28
+ parentSeqNumGlobal: SqliteDsl.integer({ schema: EventSequenceNumber.Global.Schema }),
29
+ parentSeqNumClient: SqliteDsl.integer({ schema: EventSequenceNumber.Client.Schema }),
30
30
  parentSeqNumRebaseGeneration: SqliteDsl.integer({}),
31
31
  /** Event definition name */
32
32
  name: SqliteDsl.text({}),
@@ -1,4 +1,4 @@
1
- import * as EventSequenceNumber from '../../../EventSequenceNumber.ts'
1
+ import * as EventSequenceNumber from '../../../EventSequenceNumber/mod.ts'
2
2
  import { SqliteDsl } from '../db-schema/mod.ts'
3
3
  import { table } from '../table-def.ts'
4
4
 
@@ -53,8 +53,8 @@ export const sessionChangesetMetaTable = table({
53
53
  name: SESSION_CHANGESET_META_TABLE,
54
54
  columns: {
55
55
  // TODO bring back primary key
56
- seqNumGlobal: SqliteDsl.integer({ schema: EventSequenceNumber.GlobalEventSequenceNumber }),
57
- seqNumClient: SqliteDsl.integer({ schema: EventSequenceNumber.ClientEventSequenceNumber }),
56
+ seqNumGlobal: SqliteDsl.integer({ schema: EventSequenceNumber.Global.Schema }),
57
+ seqNumClient: SqliteDsl.integer({ schema: EventSequenceNumber.Client.Schema }),
58
58
  seqNumRebaseGeneration: SqliteDsl.integer({}),
59
59
  changeset: SqliteDsl.blob({ nullable: true }),
60
60
  debug: SqliteDsl.json({ nullable: true }),
@@ -1,12 +1,12 @@
1
1
  import { Effect } from '@livestore/utils/effect'
2
2
 
3
3
  import { UnknownEventError } from '../errors.ts'
4
- import type { EventDef, Materializer } from './EventDef.ts'
5
- import type * as LiveStoreEvent from './LiveStoreEvent.ts'
4
+ import type { EventDef, Materializer } from './EventDef/mod.ts'
5
+ import type * as LiveStoreEvent from './LiveStoreEvent/mod.ts'
6
6
  import type { LiveStoreSchema } from './schema.ts'
7
7
 
8
8
  export type UnknownEventContext = {
9
- readonly event: Pick<LiveStoreEvent.AnyEncoded, 'name' | 'args' | 'seqNum' | 'clientId' | 'sessionId'>
9
+ readonly event: Pick<LiveStoreEvent.Client.Encoded, 'name' | 'args' | 'seqNum' | 'clientId' | 'sessionId'>
10
10
  readonly reason: 'event-definition-missing' | 'materializer-missing'
11
11
  readonly operation: string
12
12
  }
@@ -34,7 +34,7 @@ import { Effect } from '@livestore/utils/effect'
34
34
 
35
35
  import type { SqliteDb } from '../adapter-types.ts'
36
36
  import type { MigrationsReport, MigrationsReportEntry } from '../defs.ts'
37
- import type { UnexpectedError } from '../errors.ts'
37
+ import type { UnknownError } from '../errors.ts'
38
38
  import type { LiveStoreSchema } from '../schema/mod.ts'
39
39
  import { makeColumnSpec } from '../schema/state/sqlite/column-spec.ts'
40
40
  import { SqliteAst } from '../schema/state/sqlite/db-schema/mod.ts'
@@ -87,7 +87,7 @@ export const migrateDb = ({
87
87
  db: SqliteDb
88
88
  schema: LiveStoreSchema
89
89
  onProgress?: (opts: { done: number; total: number }) => Effect.Effect<void>
90
- }): Effect.Effect<MigrationsReport, UnexpectedError> =>
90
+ }): Effect.Effect<MigrationsReport, UnknownError> =>
91
91
  Effect.gen(function* () {
92
92
  for (const tableDef of stateSystemTables) {
93
93
  yield* migrateTable({
@@ -1,7 +1,7 @@
1
1
  import { Effect, Schema } from '@livestore/utils/effect'
2
2
 
3
- import { UnexpectedError } from '../adapter-types.ts'
4
- import type { EventDef } from '../schema/EventDef.ts'
3
+ import { UnknownError } from '../adapter-types.ts'
4
+ import type { EventDef } from '../schema/EventDef/mod.ts'
5
5
  import type { LiveStoreSchema } from '../schema/mod.ts'
6
6
  import type { EventDefInfo, SchemaManager } from './common.ts'
7
7
 
@@ -15,7 +15,7 @@ export const validateSchema = (schema: LiveStoreSchema, schemaManager: SchemaMan
15
15
  )
16
16
 
17
17
  if (missingEventDefs.length > 0) {
18
- return yield* new UnexpectedError({
18
+ return yield* new UnknownError({
19
19
  cause: `Missing mutation definitions: ${missingEventDefs.map((info) => info.eventName).join(', ')}`,
20
20
  })
21
21
  }
@@ -1,5 +1,5 @@
1
1
  import { type Effect, Schema } from '@livestore/utils/effect'
2
- import type { SqliteError, UnexpectedError } from './errors.ts'
2
+ import type { SqliteError, UnknownError } from './errors.ts'
3
3
  import type { EventSequenceNumber } from './schema/mod.ts'
4
4
  import type { QueryBuilder } from './schema/state/sqlite/query-builder/api.ts'
5
5
  import type { PreparedBindValues } from './util.ts'
@@ -33,7 +33,7 @@ export interface SqliteDb<TReq = any, TMetadata extends TReq = TReq> {
33
33
  makeChangeset: (data: Uint8Array<ArrayBuffer>) => SqliteDbChangeset
34
34
  }
35
35
 
36
- export type SqliteDebugInfo = { head: EventSequenceNumber.EventSequenceNumber }
36
+ export type SqliteDebugInfo = { head: EventSequenceNumber.Client.Composite }
37
37
 
38
38
  // TODO refactor this helper type. It's quite cumbersome to use and should be revisited.
39
39
  export type MakeSqliteDb<
@@ -46,7 +46,7 @@ export type MakeSqliteDb<
46
46
  TMetadata extends TMetadata_ & { _tag: TInput['_tag'] } = TMetadata_ & { _tag: TInput['_tag'] },
47
47
  >(
48
48
  input: TInput,
49
- ) => Effect.Effect<SqliteDb<TReq, Extract<TMetadata, { _tag: TInput['_tag'] }>>, SqliteError | UnexpectedError, R>
49
+ ) => Effect.Effect<SqliteDb<TReq, Extract<TMetadata, { _tag: TInput['_tag'] }>>, SqliteError | UnknownError, R>
50
50
 
51
51
  export interface PreparedStatement {
52
52
  execute(bindValues: PreparedBindValues | undefined, options?: { onRowsChanged?: (rowsChanged: number) => void }): void