@livestore/common 0.0.0-snapshot-909cdd1ac2fd591945c2be2b0f53e14d87f3c9d4

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 (220) hide show
  1. package/dist/.tsbuildinfo +1 -0
  2. package/dist/__tests__/fixture.d.ts +72 -0
  3. package/dist/__tests__/fixture.d.ts.map +1 -0
  4. package/dist/__tests__/fixture.js +16 -0
  5. package/dist/__tests__/fixture.js.map +1 -0
  6. package/dist/adapter-types.d.ts +202 -0
  7. package/dist/adapter-types.d.ts.map +1 -0
  8. package/dist/adapter-types.js +49 -0
  9. package/dist/adapter-types.js.map +1 -0
  10. package/dist/bounded-collections.d.ts +36 -0
  11. package/dist/bounded-collections.d.ts.map +1 -0
  12. package/dist/bounded-collections.js +98 -0
  13. package/dist/bounded-collections.js.map +1 -0
  14. package/dist/debug-info.d.ts +122 -0
  15. package/dist/debug-info.d.ts.map +1 -0
  16. package/dist/debug-info.js +47 -0
  17. package/dist/debug-info.js.map +1 -0
  18. package/dist/derived-mutations.d.ts +109 -0
  19. package/dist/derived-mutations.d.ts.map +1 -0
  20. package/dist/derived-mutations.js +54 -0
  21. package/dist/derived-mutations.js.map +1 -0
  22. package/dist/derived-mutations.test.d.ts +2 -0
  23. package/dist/derived-mutations.test.d.ts.map +1 -0
  24. package/dist/derived-mutations.test.js +93 -0
  25. package/dist/derived-mutations.test.js.map +1 -0
  26. package/dist/devtools/devtools-bridge.d.ts +12 -0
  27. package/dist/devtools/devtools-bridge.d.ts.map +1 -0
  28. package/dist/devtools/devtools-bridge.js +2 -0
  29. package/dist/devtools/devtools-bridge.js.map +1 -0
  30. package/dist/devtools/devtools-messages.d.ts +705 -0
  31. package/dist/devtools/devtools-messages.d.ts.map +1 -0
  32. package/dist/devtools/devtools-messages.js +178 -0
  33. package/dist/devtools/devtools-messages.js.map +1 -0
  34. package/dist/devtools/devtools-window-message.d.ts +29 -0
  35. package/dist/devtools/devtools-window-message.d.ts.map +1 -0
  36. package/dist/devtools/devtools-window-message.js +33 -0
  37. package/dist/devtools/devtools-window-message.js.map +1 -0
  38. package/dist/devtools/index.d.ts +42 -0
  39. package/dist/devtools/index.d.ts.map +1 -0
  40. package/dist/devtools/index.js +49 -0
  41. package/dist/devtools/index.js.map +1 -0
  42. package/dist/index.d.ts +19 -0
  43. package/dist/index.d.ts.map +1 -0
  44. package/dist/index.js +15 -0
  45. package/dist/index.js.map +1 -0
  46. package/dist/init-singleton-tables.d.ts +4 -0
  47. package/dist/init-singleton-tables.d.ts.map +1 -0
  48. package/dist/init-singleton-tables.js +16 -0
  49. package/dist/init-singleton-tables.js.map +1 -0
  50. package/dist/mutation.d.ts +13 -0
  51. package/dist/mutation.d.ts.map +1 -0
  52. package/dist/mutation.js +43 -0
  53. package/dist/mutation.js.map +1 -0
  54. package/dist/query-info.d.ts +47 -0
  55. package/dist/query-info.d.ts.map +1 -0
  56. package/dist/query-info.js +38 -0
  57. package/dist/query-info.js.map +1 -0
  58. package/dist/rehydrate-from-mutationlog.d.ts +14 -0
  59. package/dist/rehydrate-from-mutationlog.d.ts.map +1 -0
  60. package/dist/rehydrate-from-mutationlog.js +72 -0
  61. package/dist/rehydrate-from-mutationlog.js.map +1 -0
  62. package/dist/schema/index.d.ts +60 -0
  63. package/dist/schema/index.d.ts.map +1 -0
  64. package/dist/schema/index.js +66 -0
  65. package/dist/schema/index.js.map +1 -0
  66. package/dist/schema/mutations.d.ts +227 -0
  67. package/dist/schema/mutations.d.ts.map +1 -0
  68. package/dist/schema/mutations.js +68 -0
  69. package/dist/schema/mutations.js.map +1 -0
  70. package/dist/schema/schema-helpers.d.ts +4 -0
  71. package/dist/schema/schema-helpers.d.ts.map +1 -0
  72. package/dist/schema/schema-helpers.js +30 -0
  73. package/dist/schema/schema-helpers.js.map +1 -0
  74. package/dist/schema/system-tables.d.ts +331 -0
  75. package/dist/schema/system-tables.d.ts.map +1 -0
  76. package/dist/schema/system-tables.js +46 -0
  77. package/dist/schema/system-tables.js.map +1 -0
  78. package/dist/schema/table-def.d.ts +135 -0
  79. package/dist/schema/table-def.d.ts.map +1 -0
  80. package/dist/schema/table-def.js +70 -0
  81. package/dist/schema/table-def.js.map +1 -0
  82. package/dist/schema-management/common.d.ts +13 -0
  83. package/dist/schema-management/common.d.ts.map +1 -0
  84. package/dist/schema-management/common.js +25 -0
  85. package/dist/schema-management/common.js.map +1 -0
  86. package/dist/schema-management/migrations.d.ts +23 -0
  87. package/dist/schema-management/migrations.d.ts.map +1 -0
  88. package/dist/schema-management/migrations.js +116 -0
  89. package/dist/schema-management/migrations.js.map +1 -0
  90. package/dist/schema-management/validate-mutation-defs.d.ts +8 -0
  91. package/dist/schema-management/validate-mutation-defs.d.ts.map +1 -0
  92. package/dist/schema-management/validate-mutation-defs.js +39 -0
  93. package/dist/schema-management/validate-mutation-defs.js.map +1 -0
  94. package/dist/sql-queries/index.d.ts +4 -0
  95. package/dist/sql-queries/index.d.ts.map +1 -0
  96. package/dist/sql-queries/index.js +4 -0
  97. package/dist/sql-queries/index.js.map +1 -0
  98. package/dist/sql-queries/misc.d.ts +2 -0
  99. package/dist/sql-queries/misc.d.ts.map +1 -0
  100. package/dist/sql-queries/misc.js +2 -0
  101. package/dist/sql-queries/misc.js.map +1 -0
  102. package/dist/sql-queries/sql-queries.d.ts +72 -0
  103. package/dist/sql-queries/sql-queries.d.ts.map +1 -0
  104. package/dist/sql-queries/sql-queries.js +191 -0
  105. package/dist/sql-queries/sql-queries.js.map +1 -0
  106. package/dist/sql-queries/sql-query-builder.d.ts +47 -0
  107. package/dist/sql-queries/sql-query-builder.d.ts.map +1 -0
  108. package/dist/sql-queries/sql-query-builder.js +60 -0
  109. package/dist/sql-queries/sql-query-builder.js.map +1 -0
  110. package/dist/sql-queries/types.d.ts +50 -0
  111. package/dist/sql-queries/types.d.ts.map +1 -0
  112. package/dist/sql-queries/types.js +5 -0
  113. package/dist/sql-queries/types.js.map +1 -0
  114. package/dist/sync/index.d.ts +2 -0
  115. package/dist/sync/index.d.ts.map +1 -0
  116. package/dist/sync/index.js +2 -0
  117. package/dist/sync/index.js.map +1 -0
  118. package/dist/sync/next/compact-events.d.ts +15 -0
  119. package/dist/sync/next/compact-events.d.ts.map +1 -0
  120. package/dist/sync/next/compact-events.js +176 -0
  121. package/dist/sync/next/compact-events.js.map +1 -0
  122. package/dist/sync/next/facts.d.ts +37 -0
  123. package/dist/sync/next/facts.d.ts.map +1 -0
  124. package/dist/sync/next/facts.js +156 -0
  125. package/dist/sync/next/facts.js.map +1 -0
  126. package/dist/sync/next/graphology.d.ts +8 -0
  127. package/dist/sync/next/graphology.d.ts.map +1 -0
  128. package/dist/sync/next/graphology.js +36 -0
  129. package/dist/sync/next/graphology.js.map +1 -0
  130. package/dist/sync/next/graphology_.d.ts +3 -0
  131. package/dist/sync/next/graphology_.d.ts.map +1 -0
  132. package/dist/sync/next/graphology_.js +3 -0
  133. package/dist/sync/next/graphology_.js.map +1 -0
  134. package/dist/sync/next/history-dag.d.ts +30 -0
  135. package/dist/sync/next/history-dag.d.ts.map +1 -0
  136. package/dist/sync/next/history-dag.js +69 -0
  137. package/dist/sync/next/history-dag.js.map +1 -0
  138. package/dist/sync/next/mod.d.ts +5 -0
  139. package/dist/sync/next/mod.d.ts.map +1 -0
  140. package/dist/sync/next/mod.js +5 -0
  141. package/dist/sync/next/mod.js.map +1 -0
  142. package/dist/sync/next/rebase-events.d.ts +27 -0
  143. package/dist/sync/next/rebase-events.d.ts.map +1 -0
  144. package/dist/sync/next/rebase-events.js +41 -0
  145. package/dist/sync/next/rebase-events.js.map +1 -0
  146. package/dist/sync/next/test/compact-events.calculator.test.d.ts +2 -0
  147. package/dist/sync/next/test/compact-events.calculator.test.d.ts.map +1 -0
  148. package/dist/sync/next/test/compact-events.calculator.test.js +101 -0
  149. package/dist/sync/next/test/compact-events.calculator.test.js.map +1 -0
  150. package/dist/sync/next/test/compact-events.test.d.ts +2 -0
  151. package/dist/sync/next/test/compact-events.test.d.ts.map +1 -0
  152. package/dist/sync/next/test/compact-events.test.js +201 -0
  153. package/dist/sync/next/test/compact-events.test.js.map +1 -0
  154. package/dist/sync/next/test/mod.d.ts +2 -0
  155. package/dist/sync/next/test/mod.d.ts.map +1 -0
  156. package/dist/sync/next/test/mod.js +2 -0
  157. package/dist/sync/next/test/mod.js.map +1 -0
  158. package/dist/sync/next/test/mutation-fixtures.d.ts +73 -0
  159. package/dist/sync/next/test/mutation-fixtures.d.ts.map +1 -0
  160. package/dist/sync/next/test/mutation-fixtures.js +161 -0
  161. package/dist/sync/next/test/mutation-fixtures.js.map +1 -0
  162. package/dist/sync/sync.d.ts +45 -0
  163. package/dist/sync/sync.d.ts.map +1 -0
  164. package/dist/sync/sync.js +12 -0
  165. package/dist/sync/sync.js.map +1 -0
  166. package/dist/util.d.ts +25 -0
  167. package/dist/util.d.ts.map +1 -0
  168. package/dist/util.js +38 -0
  169. package/dist/util.js.map +1 -0
  170. package/dist/version.d.ts +10 -0
  171. package/dist/version.d.ts.map +1 -0
  172. package/dist/version.js +12 -0
  173. package/dist/version.js.map +1 -0
  174. package/package.json +61 -0
  175. package/src/__tests__/fixture.ts +23 -0
  176. package/src/adapter-types.ts +216 -0
  177. package/src/ambient.d.ts +3 -0
  178. package/src/bounded-collections.ts +121 -0
  179. package/src/debug-info.ts +76 -0
  180. package/src/derived-mutations.test.ts +101 -0
  181. package/src/derived-mutations.ts +170 -0
  182. package/src/devtools/devtools-bridge.ts +13 -0
  183. package/src/devtools/devtools-messages.ts +247 -0
  184. package/src/devtools/devtools-window-message.ts +27 -0
  185. package/src/devtools/index.ts +49 -0
  186. package/src/index.ts +20 -0
  187. package/src/init-singleton-tables.ts +24 -0
  188. package/src/mutation.ts +69 -0
  189. package/src/query-info.ts +104 -0
  190. package/src/rehydrate-from-mutationlog.ts +131 -0
  191. package/src/schema/index.ts +144 -0
  192. package/src/schema/mutations.ts +313 -0
  193. package/src/schema/schema-helpers.ts +49 -0
  194. package/src/schema/system-tables.ts +84 -0
  195. package/src/schema/table-def.ts +312 -0
  196. package/src/schema-management/common.ts +44 -0
  197. package/src/schema-management/migrations.ts +188 -0
  198. package/src/schema-management/validate-mutation-defs.ts +63 -0
  199. package/src/sql-queries/index.ts +3 -0
  200. package/src/sql-queries/misc.ts +2 -0
  201. package/src/sql-queries/sql-queries.ts +359 -0
  202. package/src/sql-queries/sql-query-builder.ts +135 -0
  203. package/src/sql-queries/types.ts +97 -0
  204. package/src/sync/index.ts +1 -0
  205. package/src/sync/next/ambient.d.ts +3 -0
  206. package/src/sync/next/compact-events.ts +218 -0
  207. package/src/sync/next/facts.ts +229 -0
  208. package/src/sync/next/graphology.ts +49 -0
  209. package/src/sync/next/graphology_.ts +2 -0
  210. package/src/sync/next/history-dag.ts +109 -0
  211. package/src/sync/next/mod.ts +4 -0
  212. package/src/sync/next/rebase-events.ts +97 -0
  213. package/src/sync/next/test/compact-events.calculator.test.ts +121 -0
  214. package/src/sync/next/test/compact-events.test.ts +232 -0
  215. package/src/sync/next/test/mod.ts +1 -0
  216. package/src/sync/next/test/mutation-fixtures.ts +230 -0
  217. package/src/sync/sync.ts +46 -0
  218. package/src/util.ts +56 -0
  219. package/src/version.ts +13 -0
  220. package/tsconfig.json +11 -0
@@ -0,0 +1,331 @@
1
+ import { SqliteDsl } from '@livestore/db-schema';
2
+ import { Schema } from '@livestore/utils/effect';
3
+ import type { FromTable } from './table-def.js';
4
+ export declare const SCHEMA_META_TABLE = "__livestore_schema";
5
+ export declare const schemaMetaTable: import("./table-def.js").TableDef<SqliteDsl.TableDefinition<"__livestore_schema", {
6
+ tableName: {
7
+ columnType: "text";
8
+ schema: Schema.Schema<string, string, never>;
9
+ default: import("effect/Option").None<never>;
10
+ nullable: false;
11
+ primaryKey: true;
12
+ };
13
+ schemaHash: {
14
+ columnType: "integer";
15
+ schema: Schema.Schema<number, number, never>;
16
+ default: import("effect/Option").None<never>;
17
+ nullable: false;
18
+ primaryKey: false;
19
+ };
20
+ updatedAt: {
21
+ columnType: "text";
22
+ schema: Schema.Schema<string, string, never>;
23
+ default: import("effect/Option").None<never>;
24
+ nullable: false;
25
+ primaryKey: false;
26
+ };
27
+ }>, false, {
28
+ isSingleton: false;
29
+ disableAutomaticIdColumn: true;
30
+ deriveMutations: never;
31
+ isSingleColumn: false;
32
+ }, Schema.Schema<{
33
+ readonly tableName: string;
34
+ readonly schemaHash: number;
35
+ readonly updatedAt: string;
36
+ }, {
37
+ readonly tableName: string;
38
+ readonly schemaHash: number;
39
+ readonly updatedAt: string;
40
+ }, never>>;
41
+ export type SchemaMetaRow = FromTable.RowDecoded<typeof schemaMetaTable>;
42
+ export declare const SCHEMA_MUTATIONS_META_TABLE = "__livestore_schema_mutations";
43
+ export declare const schemaMutationsMetaTable: import("./table-def.js").TableDef<SqliteDsl.TableDefinition<"__livestore_schema_mutations", {
44
+ mutationName: {
45
+ columnType: "text";
46
+ schema: Schema.Schema<string, string, never>;
47
+ default: import("effect/Option").None<never>;
48
+ nullable: false;
49
+ primaryKey: true;
50
+ };
51
+ schemaHash: {
52
+ columnType: "integer";
53
+ schema: Schema.Schema<number, number, never>;
54
+ default: import("effect/Option").None<never>;
55
+ nullable: false;
56
+ primaryKey: false;
57
+ };
58
+ updatedAt: {
59
+ columnType: "text";
60
+ schema: Schema.Schema<string, string, never>;
61
+ default: import("effect/Option").None<never>;
62
+ nullable: false;
63
+ primaryKey: false;
64
+ };
65
+ }>, false, {
66
+ isSingleton: false;
67
+ disableAutomaticIdColumn: true;
68
+ deriveMutations: never;
69
+ isSingleColumn: false;
70
+ }, Schema.Schema<{
71
+ readonly mutationName: string;
72
+ readonly schemaHash: number;
73
+ readonly updatedAt: string;
74
+ }, {
75
+ readonly mutationName: string;
76
+ readonly schemaHash: number;
77
+ readonly updatedAt: string;
78
+ }, never>>;
79
+ export type SchemaMutationsMetaRow = FromTable.RowDecoded<typeof schemaMutationsMetaTable>;
80
+ /**
81
+ * Table which stores SQLite changeset blobs which is used for rolling back
82
+ * read-model state during rebasing.
83
+ */
84
+ export declare const SESSION_CHANGESET_META_TABLE = "__livestore_session_changeset";
85
+ export declare const sessionChangesetMetaTable: import("./table-def.js").TableDef<SqliteDsl.TableDefinition<"__livestore_session_changeset", {
86
+ idGlobal: {
87
+ columnType: "integer";
88
+ schema: Schema.Schema<number, number, never>;
89
+ default: import("effect/Option").None<never>;
90
+ nullable: false;
91
+ primaryKey: true;
92
+ };
93
+ idLocal: {
94
+ columnType: "integer";
95
+ schema: Schema.Schema<number, number, never>;
96
+ default: import("effect/Option").None<never>;
97
+ nullable: false;
98
+ primaryKey: true;
99
+ };
100
+ changeset: {
101
+ columnType: "blob";
102
+ schema: Schema.Schema<Uint8Array, Uint8Array, never>;
103
+ default: import("effect/Option").None<never>;
104
+ nullable: false;
105
+ primaryKey: false;
106
+ };
107
+ }>, false, {
108
+ isSingleton: false;
109
+ disableAutomaticIdColumn: true;
110
+ deriveMutations: never;
111
+ isSingleColumn: false;
112
+ }, Schema.Schema<{
113
+ readonly idGlobal: number;
114
+ readonly idLocal: number;
115
+ readonly changeset: Uint8Array;
116
+ }, {
117
+ readonly idGlobal: number;
118
+ readonly idLocal: number;
119
+ readonly changeset: Uint8Array;
120
+ }, never>>;
121
+ export type SessionChangesetMetaRow = FromTable.RowDecoded<typeof sessionChangesetMetaTable>;
122
+ export declare const systemTables: (import("./table-def.js").TableDef<SqliteDsl.TableDefinition<"__livestore_schema", {
123
+ tableName: {
124
+ columnType: "text";
125
+ schema: Schema.Schema<string, string, never>;
126
+ default: import("effect/Option").None<never>;
127
+ nullable: false;
128
+ primaryKey: true;
129
+ };
130
+ schemaHash: {
131
+ columnType: "integer";
132
+ schema: Schema.Schema<number, number, never>;
133
+ default: import("effect/Option").None<never>;
134
+ nullable: false;
135
+ primaryKey: false;
136
+ };
137
+ updatedAt: {
138
+ columnType: "text";
139
+ schema: Schema.Schema<string, string, never>;
140
+ default: import("effect/Option").None<never>;
141
+ nullable: false;
142
+ primaryKey: false;
143
+ };
144
+ }>, false, {
145
+ isSingleton: false;
146
+ disableAutomaticIdColumn: true;
147
+ deriveMutations: never;
148
+ isSingleColumn: false;
149
+ }, Schema.Schema<{
150
+ readonly tableName: string;
151
+ readonly schemaHash: number;
152
+ readonly updatedAt: string;
153
+ }, {
154
+ readonly tableName: string;
155
+ readonly schemaHash: number;
156
+ readonly updatedAt: string;
157
+ }, never>> | import("./table-def.js").TableDef<SqliteDsl.TableDefinition<"__livestore_schema_mutations", {
158
+ mutationName: {
159
+ columnType: "text";
160
+ schema: Schema.Schema<string, string, never>;
161
+ default: import("effect/Option").None<never>;
162
+ nullable: false;
163
+ primaryKey: true;
164
+ };
165
+ schemaHash: {
166
+ columnType: "integer";
167
+ schema: Schema.Schema<number, number, never>;
168
+ default: import("effect/Option").None<never>;
169
+ nullable: false;
170
+ primaryKey: false;
171
+ };
172
+ updatedAt: {
173
+ columnType: "text";
174
+ schema: Schema.Schema<string, string, never>;
175
+ default: import("effect/Option").None<never>;
176
+ nullable: false;
177
+ primaryKey: false;
178
+ };
179
+ }>, false, {
180
+ isSingleton: false;
181
+ disableAutomaticIdColumn: true;
182
+ deriveMutations: never;
183
+ isSingleColumn: false;
184
+ }, Schema.Schema<{
185
+ readonly mutationName: string;
186
+ readonly schemaHash: number;
187
+ readonly updatedAt: string;
188
+ }, {
189
+ readonly mutationName: string;
190
+ readonly schemaHash: number;
191
+ readonly updatedAt: string;
192
+ }, never>> | import("./table-def.js").TableDef<SqliteDsl.TableDefinition<"__livestore_session_changeset", {
193
+ idGlobal: {
194
+ columnType: "integer";
195
+ schema: Schema.Schema<number, number, never>;
196
+ default: import("effect/Option").None<never>;
197
+ nullable: false;
198
+ primaryKey: true;
199
+ };
200
+ idLocal: {
201
+ columnType: "integer";
202
+ schema: Schema.Schema<number, number, never>;
203
+ default: import("effect/Option").None<never>;
204
+ nullable: false;
205
+ primaryKey: true;
206
+ };
207
+ changeset: {
208
+ columnType: "blob";
209
+ schema: Schema.Schema<Uint8Array, Uint8Array, never>;
210
+ default: import("effect/Option").None<never>;
211
+ nullable: false;
212
+ primaryKey: false;
213
+ };
214
+ }>, false, {
215
+ isSingleton: false;
216
+ disableAutomaticIdColumn: true;
217
+ deriveMutations: never;
218
+ isSingleColumn: false;
219
+ }, Schema.Schema<{
220
+ readonly idGlobal: number;
221
+ readonly idLocal: number;
222
+ readonly changeset: Uint8Array;
223
+ }, {
224
+ readonly idGlobal: number;
225
+ readonly idLocal: number;
226
+ readonly changeset: Uint8Array;
227
+ }, never>>)[];
228
+ export declare const SyncStatus: Schema.Literal<["synced", "pending", "error", "localOnly"]>;
229
+ export type SyncStatus = typeof SyncStatus.Type;
230
+ export declare const MUTATION_LOG_META_TABLE = "mutation_log";
231
+ export declare const mutationLogMetaTable: import("./table-def.js").TableDef<SqliteDsl.TableDefinition<"mutation_log", {
232
+ idGlobal: {
233
+ columnType: "integer";
234
+ schema: Schema.Schema<number, number, never>;
235
+ default: import("effect/Option").None<never>;
236
+ nullable: false;
237
+ primaryKey: true;
238
+ };
239
+ idLocal: {
240
+ columnType: "integer";
241
+ schema: Schema.Schema<number, number, never>;
242
+ default: import("effect/Option").None<never>;
243
+ nullable: false;
244
+ primaryKey: true;
245
+ };
246
+ parentIdGlobal: {
247
+ columnType: "integer";
248
+ schema: Schema.Schema<number, number, never>;
249
+ default: import("effect/Option").None<never>;
250
+ nullable: false;
251
+ primaryKey: false;
252
+ };
253
+ parentIdLocal: {
254
+ columnType: "integer";
255
+ schema: Schema.Schema<number, number, never>;
256
+ default: import("effect/Option").None<never>;
257
+ nullable: false;
258
+ primaryKey: false;
259
+ };
260
+ mutation: {
261
+ columnType: "text";
262
+ schema: Schema.Schema<string, string, never>;
263
+ default: import("effect/Option").None<never>;
264
+ nullable: false;
265
+ primaryKey: false;
266
+ };
267
+ argsJson: {
268
+ columnType: "text";
269
+ schema: Schema.Schema<any, string, never>;
270
+ default: import("effect/Option").None<never>;
271
+ nullable: false;
272
+ primaryKey: false;
273
+ };
274
+ schemaHash: {
275
+ columnType: "integer";
276
+ schema: Schema.Schema<number, number, never>;
277
+ default: import("effect/Option").None<never>;
278
+ nullable: false;
279
+ primaryKey: false;
280
+ };
281
+ createdAt: {
282
+ columnType: "text";
283
+ schema: Schema.Schema<string, string, never>;
284
+ default: import("effect/Option").None<never>;
285
+ nullable: false;
286
+ primaryKey: false;
287
+ };
288
+ syncStatus: {
289
+ columnType: "text";
290
+ schema: Schema.Schema<"localOnly" | "synced" | "pending" | "error", "localOnly" | "synced" | "pending" | "error", never>;
291
+ default: import("effect/Option").None<never>;
292
+ nullable: false;
293
+ primaryKey: false;
294
+ };
295
+ syncMetadataJson: {
296
+ columnType: "text";
297
+ schema: Schema.Schema<import("effect/Option").Option<Schema.JsonValue>, string, never>;
298
+ default: import("effect/Option").None<never>;
299
+ nullable: false;
300
+ primaryKey: false;
301
+ };
302
+ }>, false, {
303
+ isSingleton: false;
304
+ disableAutomaticIdColumn: true;
305
+ deriveMutations: never;
306
+ isSingleColumn: false;
307
+ }, Schema.Schema<{
308
+ readonly idGlobal: number;
309
+ readonly idLocal: number;
310
+ readonly parentIdGlobal: number;
311
+ readonly parentIdLocal: number;
312
+ readonly mutation: string;
313
+ readonly argsJson: any;
314
+ readonly schemaHash: number;
315
+ readonly createdAt: string;
316
+ readonly syncStatus: "localOnly" | "synced" | "pending" | "error";
317
+ readonly syncMetadataJson: import("effect/Option").Option<Schema.JsonValue>;
318
+ }, {
319
+ readonly idGlobal: number;
320
+ readonly idLocal: number;
321
+ readonly parentIdGlobal: number;
322
+ readonly parentIdLocal: number;
323
+ readonly mutation: string;
324
+ readonly argsJson: string;
325
+ readonly schemaHash: number;
326
+ readonly createdAt: string;
327
+ readonly syncStatus: "localOnly" | "synced" | "pending" | "error";
328
+ readonly syncMetadataJson: string;
329
+ }, never>>;
330
+ export type MutationLogMetaRow = FromTable.RowDecoded<typeof mutationLogMetaTable>;
331
+ //# sourceMappingURL=system-tables.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system-tables.d.ts","sourceRoot":"","sources":["../../src/schema/system-tables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAK/C,eAAO,MAAM,iBAAiB,uBAAuB,CAAA;AAErD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAS3B,CAAA;AAED,MAAM,MAAM,aAAa,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,eAAe,CAAC,CAAA;AAExE,eAAO,MAAM,2BAA2B,iCAAiC,CAAA;AAEzE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UASpC,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAE1F;;;GAGG;AACH,eAAO,MAAM,4BAA4B,kCAAkC,CAAA;AAE3E,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAQrC,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAE5F,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAAyE,CAAA;AAIlG,eAAO,MAAM,UAAU,6DAA4D,CAAA;AACnF,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,IAAI,CAAA;AAE/C,eAAO,MAAM,uBAAuB,iBAAiB,CAAA;AAErD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAgBhC,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAA"}
@@ -0,0 +1,46 @@
1
+ import { SqliteDsl } from '@livestore/db-schema';
2
+ import { Schema } from '@livestore/utils/effect';
3
+ import { table } from './table-def.js';
4
+ /// App DB
5
+ export const SCHEMA_META_TABLE = '__livestore_schema';
6
+ export const schemaMetaTable = table(SCHEMA_META_TABLE, {
7
+ tableName: SqliteDsl.text({ primaryKey: true }),
8
+ schemaHash: SqliteDsl.integer({ nullable: false }),
9
+ /** ISO date format */
10
+ updatedAt: SqliteDsl.text({ nullable: false }),
11
+ }, { disableAutomaticIdColumn: true });
12
+ export const SCHEMA_MUTATIONS_META_TABLE = '__livestore_schema_mutations';
13
+ export const schemaMutationsMetaTable = table(SCHEMA_MUTATIONS_META_TABLE, {
14
+ mutationName: SqliteDsl.text({ primaryKey: true }),
15
+ schemaHash: SqliteDsl.integer({ nullable: false }),
16
+ /** ISO date format */
17
+ updatedAt: SqliteDsl.text({ nullable: false }),
18
+ }, { disableAutomaticIdColumn: true });
19
+ /**
20
+ * Table which stores SQLite changeset blobs which is used for rolling back
21
+ * read-model state during rebasing.
22
+ */
23
+ export const SESSION_CHANGESET_META_TABLE = '__livestore_session_changeset';
24
+ export const sessionChangesetMetaTable = table(SESSION_CHANGESET_META_TABLE, {
25
+ idGlobal: SqliteDsl.integer({ primaryKey: true }),
26
+ idLocal: SqliteDsl.integer({ primaryKey: true }),
27
+ changeset: SqliteDsl.blob({}),
28
+ }, { disableAutomaticIdColumn: true });
29
+ export const systemTables = [schemaMetaTable, schemaMutationsMetaTable, sessionChangesetMetaTable];
30
+ /// Mutation log DB
31
+ export const SyncStatus = Schema.Literal('synced', 'pending', 'error', 'localOnly');
32
+ export const MUTATION_LOG_META_TABLE = 'mutation_log';
33
+ export const mutationLogMetaTable = table(MUTATION_LOG_META_TABLE, {
34
+ idGlobal: SqliteDsl.integer({ primaryKey: true }),
35
+ idLocal: SqliteDsl.integer({ primaryKey: true }),
36
+ parentIdGlobal: SqliteDsl.integer({}),
37
+ parentIdLocal: SqliteDsl.integer({}),
38
+ mutation: SqliteDsl.text({}),
39
+ argsJson: SqliteDsl.text({ schema: Schema.parseJson(Schema.Any) }),
40
+ schemaHash: SqliteDsl.integer({}),
41
+ /** ISO date format */
42
+ createdAt: SqliteDsl.text({}),
43
+ syncStatus: SqliteDsl.text({ schema: SyncStatus }),
44
+ syncMetadataJson: SqliteDsl.text({ schema: Schema.parseJson(Schema.Option(Schema.JsonValue)) }),
45
+ }, { disableAutomaticIdColumn: true, indexes: [] });
46
+ //# sourceMappingURL=system-tables.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system-tables.js","sourceRoot":"","sources":["../../src/schema/system-tables.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,135 @@
1
+ import type { Nullable, PrettifyFlat } from '@livestore/db-schema';
2
+ import { SqliteDsl } from '@livestore/db-schema';
3
+ import { Schema } from '@livestore/utils/effect';
4
+ import type { DerivedMutationHelperFns } from '../derived-mutations.js';
5
+ export declare const blob: SqliteDsl.ColDefFn<"blob">, boolean: SqliteDsl.SpecializedColDefFn<"integer", false, boolean>, column: <TColumnType extends SqliteDsl.FieldColumnType>(columnType: TColumnType) => SqliteDsl.ColDefFn<TColumnType>, datetime: SqliteDsl.SpecializedColDefFn<"text", false, Date>, integer: SqliteDsl.ColDefFn<"integer">, isColumnDefinition: (value: unknown) => value is SqliteDsl.ColumnDefinition<any, any>, json: SqliteDsl.SpecializedColDefFn<"text", true, unknown>, real: SqliteDsl.ColDefFn<"real">, text: SqliteDsl.ColDefFn<"text">;
6
+ export { type SqliteDsl } from '@livestore/db-schema';
7
+ export type StateType = 'singleton' | 'dynamic';
8
+ export type DefaultSqliteTableDef = SqliteDsl.TableDefinition<string, SqliteDsl.Columns>;
9
+ export type DefaultSqliteTableDefConstrained = SqliteDsl.TableDefinition<string, SqliteDsl.ConstraintColumns>;
10
+ export type TableDef<TSqliteDef extends DefaultSqliteTableDef = DefaultSqliteTableDefConstrained, TIsSingleColumn extends boolean = boolean, TOptions extends TableOptions = TableOptions, TSchema = Schema.Schema<SqliteDsl.AnyIfConstained<TSqliteDef['columns'], {
11
+ readonly [K in keyof TSqliteDef['columns']]: Schema.Schema.Type<TSqliteDef['columns'][K]['schema']>;
12
+ }>, SqliteDsl.AnyIfConstained<TSqliteDef['columns'], {
13
+ readonly [K in keyof TSqliteDef['columns']]: Schema.Schema.Encoded<TSqliteDef['columns'][K]['schema']>;
14
+ }>>> = {
15
+ sqliteDef: TSqliteDef;
16
+ isSingleColumn: TIsSingleColumn;
17
+ options: TOptions;
18
+ schema: TSchema;
19
+ } & (TOptions['deriveMutations']['enabled'] extends true ? DerivedMutationHelperFns<TSqliteDef['columns'], TOptions> : {});
20
+ export type TableOptionsInput = Partial<Omit<TableOptions, 'isSingleColumn' | 'deriveMutations'> & {
21
+ indexes: SqliteDsl.Index[];
22
+ deriveMutations: boolean | {
23
+ enabled: true;
24
+ localOnly?: boolean;
25
+ };
26
+ }>;
27
+ export type TableOptions = {
28
+ /**
29
+ * Setting this to true will have the following consequences:
30
+ * - An `id` column will be added with `primaryKey: true` and `"singleton"` as default value and only allowed value
31
+ * - LiveStore will automatically create the singleton row when booting up
32
+ * - LiveStore will fail if there is already a column defined with `primaryKey: true`
33
+ *
34
+ * @default false
35
+ */
36
+ isSingleton: boolean;
37
+ disableAutomaticIdColumn: boolean;
38
+ /**
39
+ * Setting this to true will automatically derive insert, update and delete mutations for this table. Example:
40
+ *
41
+ * ```ts
42
+ * const todos = table('todos', { ... }, { deriveMutations: true })
43
+ * todos.insert({ id: '1', text: 'Hello' })
44
+ * ```
45
+ *
46
+ * This is also a prerequisite for using the `useRow`, `useAtom` and `rowQuery` APIs.
47
+ *
48
+ * Important: When using this option, make sure you're following the "Rules of mutations" for the table schema.
49
+ */
50
+ deriveMutations: {
51
+ enabled: false;
52
+ } | {
53
+ enabled: true;
54
+ /**
55
+ * When set to true, the mutations won't be synced over the network
56
+ */
57
+ localOnly: boolean;
58
+ };
59
+ /** Derived based on whether the table definition has one or more columns (besides the `id` column) */
60
+ isSingleColumn: boolean;
61
+ };
62
+ export declare const table: <TName extends string, TColumns extends SqliteDsl.Columns | SqliteDsl.ColumnDefinition<any, any>, const TOptionsInput extends TableOptionsInput = Partial<Omit<TableOptions, "deriveMutations" | "isSingleColumn"> & {
63
+ indexes: SqliteDsl.Index[];
64
+ deriveMutations: boolean | {
65
+ enabled: true;
66
+ localOnly?: boolean;
67
+ };
68
+ }>>(name: TName, columnOrColumns: TColumns, options?: TOptionsInput) => TableDef<SqliteDsl.TableDefinition<TName, PrettifyFlat<WithId<TColumns extends SqliteDsl.Columns ? TColumns : {
69
+ value: TColumns;
70
+ }, WithDefaults<TOptionsInput, SqliteDsl.IsSingleColumn<TColumns>>>>>, SqliteDsl.IsSingleColumn<TColumns>, WithDefaults<TOptionsInput, SqliteDsl.IsSingleColumn<TColumns>>>;
71
+ export declare const tableHasDerivedMutations: <TTableDef extends TableDef>(tableDef: TTableDef) => tableDef is TTableDef & {
72
+ options: {
73
+ deriveMutations: {
74
+ enabled: true;
75
+ localOnly: boolean;
76
+ };
77
+ };
78
+ } & DerivedMutationHelperFns<TTableDef["sqliteDef"]["columns"], TTableDef["options"]>;
79
+ export declare const tableIsSingleton: <TTableDef extends TableDef>(tableDef: TTableDef) => tableDef is TTableDef & {
80
+ options: {
81
+ isSingleton: true;
82
+ };
83
+ };
84
+ type WithId<TColumns extends SqliteDsl.Columns, TOptions extends TableOptions> = TColumns & ('id' extends keyof TColumns ? {} : TOptions['disableAutomaticIdColumn'] extends true ? {} : TOptions['isSingleton'] extends true ? {
85
+ id: SqliteDsl.ColumnDefinition<'singleton', 'singleton'>;
86
+ } : {
87
+ id: SqliteDsl.ColumnDefinition<string, string>;
88
+ });
89
+ type WithDefaults<TOptionsInput extends TableOptionsInput, TIsSingleColumn extends boolean> = {
90
+ isSingleton: TOptionsInput['isSingleton'] extends true ? true : false;
91
+ disableAutomaticIdColumn: TOptionsInput['disableAutomaticIdColumn'] extends true ? true : false;
92
+ deriveMutations: TOptionsInput['deriveMutations'] extends true ? {
93
+ enabled: true;
94
+ localOnly: boolean;
95
+ } : TOptionsInput['deriveMutations'] extends false ? {
96
+ enabled: false;
97
+ } : TOptionsInput['deriveMutations'] extends {
98
+ enabled: true;
99
+ localOnly?: boolean;
100
+ } ? {
101
+ enabled: true;
102
+ localOnly: TOptionsInput['deriveMutations']['localOnly'] extends true ? true : false;
103
+ } : never;
104
+ isSingleColumn: TIsSingleColumn;
105
+ };
106
+ export declare namespace FromTable {
107
+ type RowDecoded<TTableDef extends TableDef> = PrettifyFlat<Nullable<Pick<RowDecodedAll<TTableDef>, NullableColumnNames<TTableDef>>> & Omit<RowDecodedAll<TTableDef>, NullableColumnNames<TTableDef>>>;
108
+ type NullableColumnNames<TTableDef extends TableDef> = FromColumns.NullableColumnNames<TTableDef['sqliteDef']['columns']>;
109
+ type Columns<TTableDef extends TableDef> = {
110
+ [K in keyof TTableDef['sqliteDef']['columns']]: TTableDef['sqliteDef']['columns'][K]['columnType'];
111
+ };
112
+ type RowEncodeNonNullable<TTableDef extends TableDef> = {
113
+ [K in keyof TTableDef['sqliteDef']['columns']]: Schema.Schema.Encoded<TTableDef['sqliteDef']['columns'][K]['schema']>;
114
+ };
115
+ type RowEncoded<TTableDef extends TableDef> = PrettifyFlat<Nullable<Pick<RowEncodeNonNullable<TTableDef>, NullableColumnNames<TTableDef>>> & Omit<RowEncodeNonNullable<TTableDef>, NullableColumnNames<TTableDef>>>;
116
+ type RowDecodedAll<TTableDef extends TableDef> = {
117
+ [K in keyof TTableDef['sqliteDef']['columns']]: Schema.Schema.Type<TTableDef['sqliteDef']['columns'][K]['schema']>;
118
+ };
119
+ }
120
+ export declare namespace FromColumns {
121
+ type RowDecoded<TColumns extends SqliteDsl.Columns> = PrettifyFlat<Nullable<Pick<RowDecodedAll<TColumns>, NullableColumnNames<TColumns>>> & Omit<RowDecodedAll<TColumns>, NullableColumnNames<TColumns>>>;
122
+ type RowDecodedAll<TColumns extends SqliteDsl.Columns> = {
123
+ [K in keyof TColumns]: Schema.Schema.Type<TColumns[K]['schema']>;
124
+ };
125
+ type RowEncoded<TColumns extends SqliteDsl.Columns> = PrettifyFlat<Nullable<Pick<RowEncodeNonNullable<TColumns>, NullableColumnNames<TColumns>>> & Omit<RowEncodeNonNullable<TColumns>, NullableColumnNames<TColumns>>>;
126
+ type RowEncodeNonNullable<TColumns extends SqliteDsl.Columns> = {
127
+ [K in keyof TColumns]: Schema.Schema.Encoded<TColumns[K]['schema']>;
128
+ };
129
+ type NullableColumnNames<TColumns extends SqliteDsl.Columns> = keyof {
130
+ [K in keyof TColumns as TColumns[K]['default'] extends true ? K : never]: {};
131
+ };
132
+ type RequiredInsertColumnNames<TColumns extends SqliteDsl.Columns> = SqliteDsl.FromColumns.RequiredInsertColumnNames<TColumns>;
133
+ type InsertRowDecoded<TColumns extends SqliteDsl.Columns> = SqliteDsl.FromColumns.InsertRowDecoded<TColumns>;
134
+ }
135
+ //# sourceMappingURL=table-def.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-def.d.ts","sourceRoot":"","sources":["../../src/schema/table-def.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAEhD,OAAO,EAAkB,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AAGvE,eAAO,MAAQ,IAAI,8BAAE,OAAO,4DAAE,MAAM,+GAAE,QAAQ,sDAAE,OAAO,iCAAE,kBAAkB,qEAAE,IAAI,wDAAE,IAAI,8BAAE,IAAI,4BAAc,CAAA;AAE3G,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAErD,MAAM,MAAM,SAAS,GAAG,WAAW,GAAG,SAAS,CAAA;AAE/C,MAAM,MAAM,qBAAqB,GAAG,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,CAAA;AACxF,MAAM,MAAM,gCAAgC,GAAG,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,iBAAiB,CAAC,CAAA;AAyB7G,MAAM,MAAM,QAAQ,CAClB,UAAU,SAAS,qBAAqB,GAAG,gCAAgC,EAC3E,eAAe,SAAS,OAAO,GAAG,OAAO,EACzC,QAAQ,SAAS,YAAY,GAAG,YAAY,EAG5C,OAAO,GAAG,MAAM,CAAC,MAAM,CACrB,SAAS,CAAC,eAAe,CACvB,UAAU,CAAC,SAAS,CAAC,EACrB;IAAE,QAAQ,EAAE,CAAC,IAAI,MAAM,UAAU,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;CAAE,CACxG,EACD,SAAS,CAAC,eAAe,CACvB,UAAU,CAAC,SAAS,CAAC,EACrB;IAAE,QAAQ,EAAE,CAAC,IAAI,MAAM,UAAU,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;CAAE,CAC3G,CACF,IACC;IACF,SAAS,EAAE,UAAU,CAAA;IAErB,cAAc,EAAE,eAAe,CAAA;IAC/B,OAAO,EAAE,QAAQ,CAAA;IACjB,MAAM,EAAE,OAAO,CAAA;CAChB,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,SAAS,IAAI,GACpD,wBAAwB,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,GACzD,EAAE,CAAC,CAAA;AAEP,MAAM,MAAM,iBAAiB,GAAG,OAAO,CACrC,IAAI,CAAC,YAAY,EAAE,gBAAgB,GAAG,iBAAiB,CAAC,GAAG;IACzD,OAAO,EAAE,SAAS,CAAC,KAAK,EAAE,CAAA;IAC1B,eAAe,EACX,OAAO,GACP;QACE,OAAO,EAAE,IAAI,CAAA;QACb,SAAS,CAAC,EAAE,OAAO,CAAA;KACpB,CAAA;CACN,CACF,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB;;;;;;;OAOG;IACH,WAAW,EAAE,OAAO,CAAA;IACpB,wBAAwB,EAAE,OAAO,CAAA;IACjC;;;;;;;;;;;OAWG;IACH,eAAe,EACX;QAAE,OAAO,EAAE,KAAK,CAAA;KAAE,GAClB;QACE,OAAO,EAAE,IAAI,CAAA;QACb;;WAEG;QACH,SAAS,EAAE,OAAO,CAAA;KACnB,CAAA;IACL,sGAAsG;IACtG,cAAc,EAAE,OAAO,CAAA;CACxB,CAAA;AAED,eAAO,MAAM,KAAK,GAChB,KAAK,SAAS,MAAM,EACpB,QAAQ,SAAS,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,QACnE,aAAa,SAAS,iBAAiB;aAjDlC,SAAS,CAAC,KAAK,EAAE;qBAEtB,OAAO,GACP;QACE,OAAO,EAAE,IAAI,CAAA;QACb,SAAS,CAAC,EAAE,OAAO,CAAA;KACpB;UA6CD,KAAK,mBACM,QAAQ,YACf,aAAa,KACtB,QAAQ,CACT,SAAS,CAAC,eAAe,CACvB,KAAK,EACL,YAAY,CACV,MAAM,CACJ,QAAQ,SAAS,SAAS,CAAC,OAAO,GAAG,QAAQ,GAAG;IAAE,KAAK,EAAE,QAAQ,CAAA;CAAE,EACnE,YAAY,CAAC,aAAa,EAAE,SAAS,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAChE,CACF,CACF,EACD,SAAS,CAAC,cAAc,CAAC,QAAQ,CAAC,EAClC,YAAY,CAAC,aAAa,EAAE,SAAS,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CA6EhE,CAAA;AAED,eAAO,MAAM,wBAAwB,GAAI,SAAS,SAAS,QAAQ,YACvD,SAAS,KAClB,QAAQ,IAAI,SAAS,GAAG;IACzB,OAAO,EAAE;QAAE,eAAe,EAAE;YAAE,OAAO,EAAE,IAAI,CAAC;YAAC,SAAS,EAAE,OAAO,CAAA;SAAE,CAAA;KAAE,CAAA;CACpE,GAAG,wBAAwB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CACjC,CAAA;AAEnD,eAAO,MAAM,gBAAgB,GAAI,SAAS,SAAS,QAAQ,YAC/C,SAAS,KAClB,QAAQ,IAAI,SAAS,GAAG;IAAE,OAAO,EAAE;QAAE,WAAW,EAAE,IAAI,CAAA;KAAE,CAAA;CAA2C,CAAA;AAEtG,KAAK,MAAM,CAAC,QAAQ,SAAS,SAAS,CAAC,OAAO,EAAE,QAAQ,SAAS,YAAY,IAAI,QAAQ,GACvF,CAAC,IAAI,SAAS,MAAM,QAAQ,GACxB,EAAE,GACF,QAAQ,CAAC,0BAA0B,CAAC,SAAS,IAAI,GAC/C,EAAE,GACF,QAAQ,CAAC,aAAa,CAAC,SAAS,IAAI,GAClC;IACE,EAAE,EAAE,SAAS,CAAC,gBAAgB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;CACzD,GACD;IACE,EAAE,EAAE,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC/C,CAAC,CAAA;AAEZ,KAAK,YAAY,CAAC,aAAa,SAAS,iBAAiB,EAAE,eAAe,SAAS,OAAO,IAAI;IAC5F,WAAW,EAAE,aAAa,CAAC,aAAa,CAAC,SAAS,IAAI,GAAG,IAAI,GAAG,KAAK,CAAA;IACrE,wBAAwB,EAAE,aAAa,CAAC,0BAA0B,CAAC,SAAS,IAAI,GAAG,IAAI,GAAG,KAAK,CAAA;IAC/F,eAAe,EAAE,aAAa,CAAC,iBAAiB,CAAC,SAAS,IAAI,GAC1D;QAAE,OAAO,EAAE,IAAI,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,GACrC,aAAa,CAAC,iBAAiB,CAAC,SAAS,KAAK,GAC5C;QAAE,OAAO,EAAE,KAAK,CAAA;KAAE,GAClB,aAAa,CAAC,iBAAiB,CAAC,SAAS;QAAE,OAAO,EAAE,IAAI,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAC7E;QACE,OAAO,EAAE,IAAI,CAAA;QACb,SAAS,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC,WAAW,CAAC,SAAS,IAAI,GAAG,IAAI,GAAG,KAAK,CAAA;KACrF,GACD,KAAK,CAAA;IACb,cAAc,EAAE,eAAe,CAAA;CAChC,CAAA;AAED,yBAAiB,SAAS,CAAC;IAEzB,KAAY,UAAU,CAAC,SAAS,SAAS,QAAQ,IAAI,YAAY,CAC/D,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,GACtE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC,CACjE,CAAA;IAED,KAAY,mBAAmB,CAAC,SAAS,SAAS,QAAQ,IAAI,WAAW,CAAC,mBAAmB,CAC3F,SAAS,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAClC,CAAA;IAED,KAAY,OAAO,CAAC,SAAS,SAAS,QAAQ,IAAI;SAC/C,CAAC,IAAI,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;KACnG,CAAA;IAED,KAAY,oBAAoB,CAAC,SAAS,SAAS,QAAQ,IAAI;SAC5D,CAAC,IAAI,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CACnE,SAAS,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAC/C;KACF,CAAA;IAED,KAAY,UAAU,CAAC,SAAS,SAAS,QAAQ,IAAI,YAAY,CAC/D,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,GAC7E,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC,CACxE,CAAA;IAED,KAAY,aAAa,CAAC,SAAS,SAAS,QAAQ,IAAI;SACrD,CAAC,IAAI,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;KACnH,CAAA;CACF;AAED,yBAAiB,WAAW,CAAC;IAE3B,KAAY,UAAU,CAAC,QAAQ,SAAS,SAAS,CAAC,OAAO,IAAI,YAAY,CACvE,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,GACpE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAC/D,CAAA;IAED,KAAY,aAAa,CAAC,QAAQ,SAAS,SAAS,CAAC,OAAO,IAAI;SAC7D,CAAC,IAAI,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;KACjE,CAAA;IAED,KAAY,UAAU,CAAC,QAAQ,SAAS,SAAS,CAAC,OAAO,IAAI,YAAY,CACvE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,GAC3E,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CACtE,CAAA;IAED,KAAY,oBAAoB,CAAC,QAAQ,SAAS,SAAS,CAAC,OAAO,IAAI;SACpE,CAAC,IAAI,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;KACpE,CAAA;IAED,KAAY,mBAAmB,CAAC,QAAQ,SAAS,SAAS,CAAC,OAAO,IAAI,MAAM;SACzE,CAAC,IAAI,MAAM,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,IAAI,GAAG,CAAC,GAAG,KAAK,GAAG,EAAE;KAC7E,CAAA;IAED,KAAY,yBAAyB,CAAC,QAAQ,SAAS,SAAS,CAAC,OAAO,IACtE,SAAS,CAAC,WAAW,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAA;IAE3D,KAAY,gBAAgB,CAAC,QAAQ,SAAS,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,WAAW,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAA;CACpH"}
@@ -0,0 +1,70 @@
1
+ import { SqliteDsl } from '@livestore/db-schema';
2
+ import { shouldNeverHappen } from '@livestore/utils';
3
+ import { ReadonlyRecord, Schema } from '@livestore/utils/effect';
4
+ import { makeDerivedMutationDefsForTable } from '../derived-mutations.js';
5
+ export const { blob, boolean, column, datetime, integer, isColumnDefinition, json, real, text } = SqliteDsl;
6
+ export const table = (name, columnOrColumns, options) => {
7
+ const tablePath = name;
8
+ const options_ = {
9
+ isSingleton: options?.isSingleton ?? false,
10
+ disableAutomaticIdColumn: options?.disableAutomaticIdColumn ?? false,
11
+ deriveMutations: options?.deriveMutations === true
12
+ ? { enabled: true, localOnly: false }
13
+ : options?.deriveMutations === false
14
+ ? { enabled: false }
15
+ : options?.deriveMutations === undefined
16
+ ? { enabled: false }
17
+ : { enabled: true, localOnly: options.deriveMutations.localOnly ?? false },
18
+ isSingleColumn: SqliteDsl.isColumnDefinition(columnOrColumns) === true,
19
+ };
20
+ const columns = (SqliteDsl.isColumnDefinition(columnOrColumns) ? { value: columnOrColumns } : columnOrColumns);
21
+ if (options_.disableAutomaticIdColumn === true) {
22
+ if (columns.id === undefined && options_.isSingleton === true) {
23
+ shouldNeverHappen(`Cannot create table ${name} with "isSingleton: true" because there is no column with name "id" and "disableAutomaticIdColumn: true" is set`);
24
+ }
25
+ }
26
+ else if (columns.id === undefined && ReadonlyRecord.some(columns, (_) => _.primaryKey === true) === false) {
27
+ if (options_.isSingleton) {
28
+ columns.id = SqliteDsl.text({ schema: Schema.Literal('singleton'), primaryKey: true, default: 'singleton' });
29
+ }
30
+ else {
31
+ columns.id = SqliteDsl.text({ primaryKey: true });
32
+ }
33
+ }
34
+ const sqliteDef = SqliteDsl.table(tablePath, columns, options?.indexes ?? []);
35
+ // TODO also enforce this on the type level
36
+ if (options_.isSingleton) {
37
+ for (const column of sqliteDef.ast.columns) {
38
+ if (column.nullable === false && column.default._tag === 'None') {
39
+ shouldNeverHappen(`When creating a singleton table, each column must be either nullable or have a default value. Column '${column.name}' is neither.`);
40
+ }
41
+ }
42
+ }
43
+ const isSingleColumn = SqliteDsl.isColumnDefinition(columnOrColumns) === true;
44
+ const schema = SqliteDsl.structSchemaForTable(sqliteDef);
45
+ const tableDef = { sqliteDef, isSingleColumn, options: options_, schema };
46
+ if (tableHasDerivedMutations(tableDef)) {
47
+ const derivedMutationDefs = makeDerivedMutationDefsForTable(tableDef);
48
+ tableDef.insert = (valuesOrValue) => {
49
+ if (isSingleColumn && options_.isSingleton) {
50
+ return derivedMutationDefs.insert({ id: 'singleton', value: { value: valuesOrValue } });
51
+ }
52
+ else {
53
+ return derivedMutationDefs.insert(valuesOrValue);
54
+ }
55
+ };
56
+ tableDef.update = (argsOrValues) => {
57
+ if (isSingleColumn && options_.isSingleton) {
58
+ return derivedMutationDefs.update({ where: { id: 'singleton' }, values: { value: argsOrValues } });
59
+ }
60
+ else {
61
+ return derivedMutationDefs.update(argsOrValues);
62
+ }
63
+ };
64
+ tableDef.delete = (args) => derivedMutationDefs.delete(args);
65
+ }
66
+ return tableDef;
67
+ };
68
+ export const tableHasDerivedMutations = (tableDef) => tableDef.options.deriveMutations.enabled === true;
69
+ export const tableIsSingleton = (tableDef) => tableDef.options.isSingleton === true;
70
+ //# sourceMappingURL=table-def.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-def.js","sourceRoot":"","sources":["../../src/schema/table-def.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { SynchronousDatabase } from '../adapter-types.js';
2
+ import type { ParamsObject } from '../util.js';
3
+ export declare const dbExecute: (db: SynchronousDatabase, queryStr: string, bindValues?: ParamsObject) => void;
4
+ export declare const dbSelect: <T>(db: SynchronousDatabase, queryStr: string, bindValues?: ParamsObject) => readonly T[];
5
+ export interface SchemaManager {
6
+ getMutationDefInfos: () => ReadonlyArray<MutationDefInfo>;
7
+ setMutationDefInfo: (mutationDefInfo: MutationDefInfo) => void;
8
+ }
9
+ export type MutationDefInfo = {
10
+ mutationName: string;
11
+ schemaHash: number;
12
+ };
13
+ //# sourceMappingURL=common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/schema-management/common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAO9C,eAAO,MAAM,SAAS,OAAQ,mBAAmB,YAAY,MAAM,eAAe,YAAY,SAY7F,CAAA;AAED,eAAO,MAAM,QAAQ,GAAI,CAAC,MAAM,mBAAmB,YAAY,MAAM,eAAe,YAAY,iBAU/F,CAAA;AAED,MAAM,WAAW,aAAa;IAC5B,mBAAmB,EAAE,MAAM,aAAa,CAAC,eAAe,CAAC,CAAA;IAEzD,kBAAkB,EAAE,CAAC,eAAe,EAAE,eAAe,KAAK,IAAI,CAAA;CAC/D;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA"}