@livestore/common 0.3.0-dev.11 → 0.3.0-dev.13
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.
- package/dist/.tsbuildinfo +1 -1
- package/dist/__tests__/fixture.d.ts +21 -21
- package/dist/adapter-types.d.ts +41 -18
- package/dist/adapter-types.d.ts.map +1 -1
- package/dist/adapter-types.js +12 -0
- package/dist/adapter-types.js.map +1 -1
- package/dist/db-schema/ast/sqlite.d.ts +69 -0
- package/dist/db-schema/ast/sqlite.d.ts.map +1 -0
- package/dist/db-schema/ast/sqlite.js +71 -0
- package/dist/db-schema/ast/sqlite.js.map +1 -0
- package/dist/db-schema/ast/validate.d.ts +3 -0
- package/dist/db-schema/ast/validate.d.ts.map +1 -0
- package/dist/db-schema/ast/validate.js +12 -0
- package/dist/db-schema/ast/validate.js.map +1 -0
- package/dist/db-schema/dsl/field-defs.d.ts +90 -0
- package/dist/db-schema/dsl/field-defs.d.ts.map +1 -0
- package/dist/db-schema/dsl/field-defs.js +87 -0
- package/dist/db-schema/dsl/field-defs.js.map +1 -0
- package/dist/db-schema/dsl/field-defs.test.d.ts +2 -0
- package/dist/db-schema/dsl/field-defs.test.d.ts.map +1 -0
- package/dist/db-schema/dsl/field-defs.test.js +29 -0
- package/dist/db-schema/dsl/field-defs.test.js.map +1 -0
- package/dist/db-schema/dsl/index.d.ts +88 -0
- package/dist/db-schema/dsl/index.d.ts.map +1 -0
- package/dist/db-schema/dsl/index.js +35 -0
- package/dist/db-schema/dsl/index.js.map +1 -0
- package/dist/db-schema/dsl/mod.d.ts +90 -0
- package/dist/db-schema/dsl/mod.d.ts.map +1 -0
- package/dist/db-schema/dsl/mod.js +35 -0
- package/dist/db-schema/dsl/mod.js.map +1 -0
- package/dist/db-schema/dsl/sqlite/field-defs.d.ts +90 -0
- package/dist/db-schema/dsl/sqlite/field-defs.d.ts.map +1 -0
- package/dist/db-schema/dsl/sqlite/field-defs.js +86 -0
- package/dist/db-schema/dsl/sqlite/field-defs.js.map +1 -0
- package/dist/db-schema/dsl/sqlite/field-defs.test.d.ts +2 -0
- package/dist/db-schema/dsl/sqlite/field-defs.test.d.ts.map +1 -0
- package/dist/db-schema/dsl/sqlite/field-defs.test.js +29 -0
- package/dist/db-schema/dsl/sqlite/field-defs.test.js.map +1 -0
- package/dist/db-schema/dsl/sqlite/index.d.ts +88 -0
- package/dist/db-schema/dsl/sqlite/index.d.ts.map +1 -0
- package/dist/db-schema/dsl/sqlite/index.js +35 -0
- package/dist/db-schema/dsl/sqlite/index.js.map +1 -0
- package/dist/db-schema/hash.d.ts +2 -0
- package/dist/db-schema/hash.d.ts.map +1 -0
- package/dist/db-schema/hash.js +14 -0
- package/dist/db-schema/hash.js.map +1 -0
- package/dist/db-schema/index.d.ts +4 -0
- package/dist/db-schema/index.d.ts.map +1 -0
- package/dist/db-schema/index.js +6 -0
- package/dist/db-schema/index.js.map +1 -0
- package/dist/db-schema/mod.d.ts +3 -0
- package/dist/db-schema/mod.d.ts.map +1 -0
- package/dist/db-schema/mod.js +3 -0
- package/dist/db-schema/mod.js.map +1 -0
- package/dist/derived-mutations.d.ts +1 -1
- package/dist/derived-mutations.d.ts.map +1 -1
- package/dist/derived-mutations.js +3 -3
- package/dist/derived-mutations.js.map +1 -1
- package/dist/devtools/devtools-bridge.d.ts +10 -7
- package/dist/devtools/devtools-bridge.d.ts.map +1 -1
- package/dist/devtools/devtools-messages-client-session.d.ts +101 -28
- package/dist/devtools/devtools-messages-client-session.d.ts.map +1 -1
- package/dist/devtools/devtools-messages-client-session.js +19 -3
- package/dist/devtools/devtools-messages-client-session.js.map +1 -1
- package/dist/devtools/devtools-messages-common.d.ts +24 -32
- package/dist/devtools/devtools-messages-common.d.ts.map +1 -1
- package/dist/devtools/devtools-messages-common.js +19 -10
- package/dist/devtools/devtools-messages-common.js.map +1 -1
- package/dist/devtools/devtools-messages-leader.d.ts +220 -56
- package/dist/devtools/devtools-messages-leader.d.ts.map +1 -1
- package/dist/devtools/devtools-messages-leader.js +57 -9
- package/dist/devtools/devtools-messages-leader.js.map +1 -1
- package/dist/devtools/devtools-messages.d.ts +2 -2
- package/dist/devtools/devtools-messages.d.ts.map +1 -1
- package/dist/devtools/devtools-messages.js +2 -2
- package/dist/devtools/devtools-messages.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/leader-thread/LeaderSyncProcessor.d.ts.map +1 -1
- package/dist/leader-thread/LeaderSyncProcessor.js +50 -35
- package/dist/leader-thread/LeaderSyncProcessor.js.map +1 -1
- package/dist/leader-thread/apply-mutation.d.ts.map +1 -1
- package/dist/leader-thread/apply-mutation.js +8 -6
- package/dist/leader-thread/apply-mutation.js.map +1 -1
- package/dist/leader-thread/connection.d.ts +31 -3
- package/dist/leader-thread/connection.d.ts.map +1 -1
- package/dist/leader-thread/connection.js +18 -3
- package/dist/leader-thread/connection.js.map +1 -1
- package/dist/leader-thread/leader-worker-devtools.d.ts.map +1 -1
- package/dist/leader-thread/leader-worker-devtools.js +56 -31
- package/dist/leader-thread/leader-worker-devtools.js.map +1 -1
- package/dist/leader-thread/make-leader-thread-layer.d.ts.map +1 -1
- package/dist/leader-thread/make-leader-thread-layer.js +23 -6
- package/dist/leader-thread/make-leader-thread-layer.js.map +1 -1
- package/dist/leader-thread/mutationlog.d.ts +1 -1
- package/dist/leader-thread/mutationlog.d.ts.map +1 -1
- package/dist/leader-thread/mutationlog.js +7 -5
- package/dist/leader-thread/mutationlog.js.map +1 -1
- package/dist/leader-thread/pull-queue-set.d.ts.map +1 -1
- package/dist/leader-thread/recreate-db.d.ts +4 -2
- package/dist/leader-thread/recreate-db.d.ts.map +1 -1
- package/dist/leader-thread/recreate-db.js +13 -8
- package/dist/leader-thread/recreate-db.js.map +1 -1
- package/dist/leader-thread/types.d.ts +22 -15
- package/dist/leader-thread/types.d.ts.map +1 -1
- package/dist/leader-thread/types.js +1 -3
- package/dist/leader-thread/types.js.map +1 -1
- package/dist/query-builder/api.d.ts +3 -3
- package/dist/query-builder/api.d.ts.map +1 -1
- package/dist/query-builder/impl.js.map +1 -1
- package/dist/query-builder/impl.test.js +16 -1
- package/dist/query-builder/impl.test.js.map +1 -1
- package/dist/query-info.d.ts +3 -3
- package/dist/query-info.d.ts.map +1 -1
- package/dist/rehydrate-from-mutationlog.d.ts.map +1 -1
- package/dist/rehydrate-from-mutationlog.js +8 -6
- package/dist/rehydrate-from-mutationlog.js.map +1 -1
- package/dist/schema/EventId.d.ts +10 -9
- package/dist/schema/EventId.d.ts.map +1 -1
- package/dist/schema/EventId.js +14 -11
- package/dist/schema/EventId.js.map +1 -1
- package/dist/schema/EventId.test.js +3 -3
- package/dist/schema/EventId.test.js.map +1 -1
- package/dist/schema/MutationEvent.d.ts +37 -12
- package/dist/schema/MutationEvent.d.ts.map +1 -1
- package/dist/schema/MutationEvent.js +20 -4
- package/dist/schema/MutationEvent.js.map +1 -1
- package/dist/schema/db-schema/ast/sqlite.d.ts +69 -0
- package/dist/schema/db-schema/ast/sqlite.d.ts.map +1 -0
- package/dist/schema/db-schema/ast/sqlite.js +71 -0
- package/dist/schema/db-schema/ast/sqlite.js.map +1 -0
- package/dist/schema/db-schema/ast/validate.d.ts +3 -0
- package/dist/schema/db-schema/ast/validate.d.ts.map +1 -0
- package/dist/schema/db-schema/ast/validate.js +12 -0
- package/dist/schema/db-schema/ast/validate.js.map +1 -0
- package/dist/schema/db-schema/dsl/field-defs.d.ts +90 -0
- package/dist/schema/db-schema/dsl/field-defs.d.ts.map +1 -0
- package/dist/schema/db-schema/dsl/field-defs.js +87 -0
- package/dist/schema/db-schema/dsl/field-defs.js.map +1 -0
- package/dist/schema/db-schema/dsl/field-defs.test.d.ts +2 -0
- package/dist/schema/db-schema/dsl/field-defs.test.d.ts.map +1 -0
- package/dist/schema/db-schema/dsl/field-defs.test.js +29 -0
- package/dist/schema/db-schema/dsl/field-defs.test.js.map +1 -0
- package/dist/schema/db-schema/dsl/mod.d.ts +88 -0
- package/dist/schema/db-schema/dsl/mod.d.ts.map +1 -0
- package/dist/schema/db-schema/dsl/mod.js +35 -0
- package/dist/schema/db-schema/dsl/mod.js.map +1 -0
- package/dist/schema/db-schema/hash.d.ts +2 -0
- package/dist/schema/db-schema/hash.d.ts.map +1 -0
- package/dist/schema/db-schema/hash.js +14 -0
- package/dist/schema/db-schema/hash.js.map +1 -0
- package/dist/schema/db-schema/mod.d.ts +3 -0
- package/dist/schema/db-schema/mod.d.ts.map +1 -0
- package/dist/schema/db-schema/mod.js +3 -0
- package/dist/schema/db-schema/mod.js.map +1 -0
- package/dist/schema/mod.d.ts +1 -0
- package/dist/schema/mod.d.ts.map +1 -1
- package/dist/schema/mod.js +1 -0
- package/dist/schema/mod.js.map +1 -1
- package/dist/schema/mutations.d.ts +4 -8
- package/dist/schema/mutations.d.ts.map +1 -1
- package/dist/schema/mutations.js +2 -2
- package/dist/schema/mutations.js.map +1 -1
- package/dist/schema/schema-helpers.js +1 -1
- package/dist/schema/schema-helpers.js.map +1 -1
- package/dist/schema/schema.d.ts +1 -1
- package/dist/schema/schema.d.ts.map +1 -1
- package/dist/schema/schema.js +1 -1
- package/dist/schema/schema.js.map +1 -1
- package/dist/schema/system-tables.d.ts +47 -29
- package/dist/schema/system-tables.d.ts.map +1 -1
- package/dist/schema/system-tables.js +10 -7
- package/dist/schema/system-tables.js.map +1 -1
- package/dist/schema/table-def.d.ts +18 -14
- package/dist/schema/table-def.d.ts.map +1 -1
- package/dist/schema/table-def.js +3 -4
- package/dist/schema/table-def.js.map +1 -1
- package/dist/schema-management/migrations.d.ts +3 -3
- package/dist/schema-management/migrations.d.ts.map +1 -1
- package/dist/schema-management/migrations.js +7 -2
- package/dist/schema-management/migrations.js.map +1 -1
- package/dist/sql-queries/sql-queries.d.ts +1 -1
- package/dist/sql-queries/sql-queries.d.ts.map +1 -1
- package/dist/sql-queries/sql-queries.js.map +1 -1
- package/dist/sql-queries/sql-query-builder.d.ts +1 -1
- package/dist/sql-queries/sql-query-builder.d.ts.map +1 -1
- package/dist/sql-queries/sql-query-builder.js.map +1 -1
- package/dist/sql-queries/types.d.ts +2 -1
- package/dist/sql-queries/types.d.ts.map +1 -1
- package/dist/sql-queries/types.js.map +1 -1
- package/dist/sync/ClientSessionSyncProcessor.d.ts +3 -5
- package/dist/sync/ClientSessionSyncProcessor.d.ts.map +1 -1
- package/dist/sync/ClientSessionSyncProcessor.js +38 -12
- package/dist/sync/ClientSessionSyncProcessor.js.map +1 -1
- package/dist/sync/next/facts.js +1 -1
- package/dist/sync/next/facts.js.map +1 -1
- package/dist/sync/next/history-dag-common.d.ts +2 -0
- package/dist/sync/next/history-dag-common.d.ts.map +1 -1
- package/dist/sync/next/history-dag-common.js +3 -1
- package/dist/sync/next/history-dag-common.js.map +1 -1
- package/dist/sync/next/history-dag.d.ts.map +1 -1
- package/dist/sync/next/history-dag.js +1 -1
- package/dist/sync/next/history-dag.js.map +1 -1
- package/dist/sync/next/rebase-events.d.ts +3 -1
- package/dist/sync/next/rebase-events.d.ts.map +1 -1
- package/dist/sync/next/rebase-events.js +5 -3
- package/dist/sync/next/rebase-events.js.map +1 -1
- package/dist/sync/next/test/compact-events.calculator.test.js +12 -12
- package/dist/sync/next/test/compact-events.calculator.test.js.map +1 -1
- package/dist/sync/next/test/compact-events.test.js +43 -43
- package/dist/sync/next/test/compact-events.test.js.map +1 -1
- package/dist/sync/next/test/mutation-fixtures.d.ts +11 -11
- package/dist/sync/next/test/mutation-fixtures.d.ts.map +1 -1
- package/dist/sync/next/test/mutation-fixtures.js +12 -10
- package/dist/sync/next/test/mutation-fixtures.js.map +1 -1
- package/dist/sync/sync.d.ts +2 -2
- package/dist/sync/syncstate.d.ts +9 -9
- package/dist/sync/syncstate.js +6 -6
- package/dist/sync/syncstate.js.map +1 -1
- package/dist/sync/syncstate.test.js +18 -16
- package/dist/sync/syncstate.test.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +2 -3
- package/src/adapter-types.ts +35 -17
- package/src/derived-mutations.ts +4 -4
- package/src/devtools/devtools-bridge.ts +10 -7
- package/src/devtools/devtools-messages-client-session.ts +26 -10
- package/src/devtools/devtools-messages-common.ts +37 -8
- package/src/devtools/devtools-messages-leader.ts +78 -16
- package/src/devtools/devtools-messages.ts +2 -2
- package/src/index.ts +1 -1
- package/src/leader-thread/LeaderSyncProcessor.ts +59 -38
- package/src/leader-thread/apply-mutation.ts +15 -5
- package/src/leader-thread/connection.ts +48 -3
- package/src/leader-thread/leader-worker-devtools.ts +85 -35
- package/src/leader-thread/make-leader-thread-layer.ts +29 -9
- package/src/leader-thread/mutationlog.ts +8 -6
- package/src/leader-thread/recreate-db.ts +19 -10
- package/src/leader-thread/types.ts +22 -15
- package/src/query-builder/api.ts +4 -4
- package/src/query-builder/impl.test.ts +22 -1
- package/src/query-builder/impl.ts +2 -2
- package/src/query-info.ts +3 -3
- package/src/rehydrate-from-mutationlog.ts +8 -6
- package/src/schema/EventId.test.ts +3 -3
- package/src/schema/EventId.ts +20 -16
- package/src/schema/MutationEvent.ts +31 -6
- package/src/schema/db-schema/ast/sqlite.ts +142 -0
- package/src/schema/db-schema/ast/validate.ts +13 -0
- package/src/schema/db-schema/dsl/__snapshots__/field-defs.test.ts.snap +206 -0
- package/src/schema/db-schema/dsl/field-defs.test.ts +35 -0
- package/src/schema/db-schema/dsl/field-defs.ts +242 -0
- package/src/schema/db-schema/dsl/mod.ts +195 -0
- package/src/schema/db-schema/hash.ts +14 -0
- package/src/schema/db-schema/mod.ts +2 -0
- package/src/schema/mod.ts +1 -0
- package/src/schema/mutations.ts +6 -19
- package/src/schema/schema-helpers.ts +1 -1
- package/src/schema/schema.ts +2 -2
- package/src/schema/system-tables.ts +10 -7
- package/src/schema/table-def.ts +17 -16
- package/src/schema-management/migrations.ts +10 -6
- package/src/sql-queries/sql-queries.ts +1 -1
- package/src/sql-queries/sql-query-builder.ts +1 -2
- package/src/sql-queries/types.ts +3 -1
- package/src/sync/ClientSessionSyncProcessor.ts +44 -14
- package/src/sync/next/facts.ts +1 -1
- package/src/sync/next/history-dag-common.ts +5 -1
- package/src/sync/next/history-dag.ts +1 -1
- package/src/sync/next/rebase-events.ts +8 -2
- package/src/sync/next/test/compact-events.calculator.test.ts +12 -12
- package/src/sync/next/test/compact-events.test.ts +43 -43
- package/src/sync/next/test/mutation-fixtures.ts +16 -12
- package/src/sync/syncstate.test.ts +19 -17
- package/src/sync/syncstate.ts +6 -6
- package/src/version.ts +1 -1
- package/tsconfig.json +1 -1
@@ -25,14 +25,14 @@ export declare const todos: DbSchema.TableDef<{
|
|
25
25
|
primaryKey: false;
|
26
26
|
};
|
27
27
|
};
|
28
|
-
indexes?: ReadonlyArray<
|
29
|
-
ast: import("
|
28
|
+
indexes?: ReadonlyArray<import("../schema/db-schema/dsl/mod.js").Index>;
|
29
|
+
ast: import("../schema/db-schema/ast/sqlite.js").Table;
|
30
30
|
}, {
|
31
31
|
isSingleton: false;
|
32
32
|
disableAutomaticIdColumn: false;
|
33
33
|
deriveMutations: {
|
34
34
|
enabled: true;
|
35
|
-
|
35
|
+
clientOnly: boolean;
|
36
36
|
};
|
37
37
|
isSingleColumn: false;
|
38
38
|
requiredInsertColumnNames: "id";
|
@@ -58,16 +58,16 @@ export declare const appConfig: DbSchema.TableDef<{
|
|
58
58
|
nullable: true;
|
59
59
|
primaryKey: false;
|
60
60
|
};
|
61
|
-
id:
|
61
|
+
id: import("../schema/db-schema/dsl/field-defs.js").ColumnDefinition<"singleton", "singleton">;
|
62
62
|
};
|
63
|
-
indexes?: ReadonlyArray<
|
64
|
-
ast: import("
|
63
|
+
indexes?: ReadonlyArray<import("../schema/db-schema/dsl/mod.js").Index>;
|
64
|
+
ast: import("../schema/db-schema/ast/sqlite.js").Table;
|
65
65
|
}, {
|
66
66
|
isSingleton: true;
|
67
67
|
disableAutomaticIdColumn: false;
|
68
68
|
deriveMutations: {
|
69
69
|
enabled: true;
|
70
|
-
|
70
|
+
clientOnly: boolean;
|
71
71
|
};
|
72
72
|
isSingleColumn: true;
|
73
73
|
requiredInsertColumnNames: never;
|
@@ -106,14 +106,14 @@ export declare const tables: (DbSchema.TableDef<{
|
|
106
106
|
primaryKey: false;
|
107
107
|
};
|
108
108
|
};
|
109
|
-
indexes?: ReadonlyArray<
|
110
|
-
ast: import("
|
109
|
+
indexes?: ReadonlyArray<import("../schema/db-schema/dsl/mod.js").Index>;
|
110
|
+
ast: import("../schema/db-schema/ast/sqlite.js").Table;
|
111
111
|
}, {
|
112
112
|
isSingleton: false;
|
113
113
|
disableAutomaticIdColumn: false;
|
114
114
|
deriveMutations: {
|
115
115
|
enabled: true;
|
116
|
-
|
116
|
+
clientOnly: boolean;
|
117
117
|
};
|
118
118
|
isSingleColumn: false;
|
119
119
|
requiredInsertColumnNames: "id";
|
@@ -138,16 +138,16 @@ export declare const tables: (DbSchema.TableDef<{
|
|
138
138
|
nullable: true;
|
139
139
|
primaryKey: false;
|
140
140
|
};
|
141
|
-
id:
|
141
|
+
id: import("../schema/db-schema/dsl/field-defs.js").ColumnDefinition<"singleton", "singleton">;
|
142
142
|
};
|
143
|
-
indexes?: ReadonlyArray<
|
144
|
-
ast: import("
|
143
|
+
indexes?: ReadonlyArray<import("../schema/db-schema/dsl/mod.js").Index>;
|
144
|
+
ast: import("../schema/db-schema/ast/sqlite.js").Table;
|
145
145
|
}, {
|
146
146
|
isSingleton: true;
|
147
147
|
disableAutomaticIdColumn: false;
|
148
148
|
deriveMutations: {
|
149
149
|
enabled: true;
|
150
|
-
|
150
|
+
clientOnly: boolean;
|
151
151
|
};
|
152
152
|
isSingleColumn: true;
|
153
153
|
requiredInsertColumnNames: never;
|
@@ -187,14 +187,14 @@ export declare const schema: import("../schema/schema.js").FromInputSchema.Deriv
|
|
187
187
|
primaryKey: false;
|
188
188
|
};
|
189
189
|
};
|
190
|
-
indexes?: ReadonlyArray<
|
191
|
-
ast: import("
|
190
|
+
indexes?: ReadonlyArray<import("../schema/db-schema/dsl/mod.js").Index>;
|
191
|
+
ast: import("../schema/db-schema/ast/sqlite.js").Table;
|
192
192
|
}, {
|
193
193
|
isSingleton: false;
|
194
194
|
disableAutomaticIdColumn: false;
|
195
195
|
deriveMutations: {
|
196
196
|
enabled: true;
|
197
|
-
|
197
|
+
clientOnly: boolean;
|
198
198
|
};
|
199
199
|
isSingleColumn: false;
|
200
200
|
requiredInsertColumnNames: "id";
|
@@ -219,16 +219,16 @@ export declare const schema: import("../schema/schema.js").FromInputSchema.Deriv
|
|
219
219
|
nullable: true;
|
220
220
|
primaryKey: false;
|
221
221
|
};
|
222
|
-
id:
|
222
|
+
id: import("../schema/db-schema/dsl/field-defs.js").ColumnDefinition<"singleton", "singleton">;
|
223
223
|
};
|
224
|
-
indexes?: ReadonlyArray<
|
225
|
-
ast: import("
|
224
|
+
indexes?: ReadonlyArray<import("../schema/db-schema/dsl/mod.js").Index>;
|
225
|
+
ast: import("../schema/db-schema/ast/sqlite.js").Table;
|
226
226
|
}, {
|
227
227
|
isSingleton: true;
|
228
228
|
disableAutomaticIdColumn: false;
|
229
229
|
deriveMutations: {
|
230
230
|
enabled: true;
|
231
|
-
|
231
|
+
clientOnly: boolean;
|
232
232
|
};
|
233
233
|
isSingleColumn: true;
|
234
234
|
requiredInsertColumnNames: never;
|
package/dist/adapter-types.d.ts
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
import type { Cause, Queue, Scope, SubscriptionRef, WebChannel } from '@livestore/utils/effect';
|
2
2
|
import { Effect, Schema, Stream } from '@livestore/utils/effect';
|
3
3
|
import type * as Devtools from './devtools/index.js';
|
4
|
-
import type { EventId } from './schema/
|
5
|
-
import type { LiveStoreSchema, MutationEvent } from './schema/mod.js';
|
4
|
+
import type { EventId, LiveStoreSchema, MutationEvent } from './schema/mod.js';
|
6
5
|
import type { InvalidPushError } from './sync/sync.js';
|
7
6
|
import type { PayloadUpstream, SyncState } from './sync/syncstate.js';
|
8
7
|
import type { PreparedBindValues } from './util.js';
|
@@ -22,7 +21,7 @@ export type SqliteDbChangeset = {
|
|
22
21
|
invert: () => SqliteDbChangeset;
|
23
22
|
apply: () => void;
|
24
23
|
};
|
25
|
-
export
|
24
|
+
export interface ClientSession {
|
26
25
|
/** SQLite database with synchronous API running in the same thread (usually in-memory) */
|
27
26
|
sqliteDb: SqliteDb;
|
28
27
|
devtools: {
|
@@ -39,29 +38,35 @@ export type ClientSession = {
|
|
39
38
|
shutdown: (cause: Cause.Cause<UnexpectedError | IntentionalShutdownCause>) => Effect.Effect<void>;
|
40
39
|
/** A proxy API to communicate with the leader thread */
|
41
40
|
leaderThread: ClientSessionLeaderThreadProxy;
|
42
|
-
}
|
43
|
-
export
|
41
|
+
}
|
42
|
+
export interface ClientSessionLeaderThreadProxy {
|
44
43
|
mutations: {
|
45
44
|
pull: Stream.Stream<{
|
46
45
|
payload: PayloadUpstream;
|
47
46
|
remaining: number;
|
48
47
|
}, UnexpectedError>;
|
49
48
|
push(batch: ReadonlyArray<MutationEvent.AnyEncoded>): Effect.Effect<void, UnexpectedError | InvalidPushError>;
|
50
|
-
|
49
|
+
};
|
50
|
+
/** The initial state after the leader thread has booted */
|
51
|
+
readonly initialState: {
|
52
|
+
/** The latest mutation event id during boot. Used for the client session to resume syncing. */
|
53
|
+
readonly leaderHead: EventId.EventId;
|
54
|
+
/** The migrations report from the leader thread */
|
55
|
+
readonly migrationsReport: MigrationsReport;
|
51
56
|
};
|
52
57
|
export: Effect.Effect<Uint8Array, UnexpectedError>;
|
53
58
|
getMutationLogData: Effect.Effect<Uint8Array, UnexpectedError>;
|
54
59
|
getSyncState: Effect.Effect<SyncState, UnexpectedError>;
|
55
60
|
networkStatus: SubscriptionRef.SubscriptionRef<NetworkStatus>;
|
56
61
|
/** For debugging purposes it can be useful to manually trigger devtools messages (e.g. to reset the database) */
|
57
|
-
sendDevtoolsMessage: (message: Devtools.
|
58
|
-
}
|
62
|
+
sendDevtoolsMessage: (message: Devtools.Leader.MessageToApp) => Effect.Effect<void, UnexpectedError>;
|
63
|
+
}
|
59
64
|
/**
|
60
65
|
* Common interface for SQLite databases used by LiveStore to facilitate a consistent API across different platforms.
|
61
66
|
* Always assumes a synchronous SQLite build with the `bytecode` and `session` extensions enabled.
|
62
67
|
* Can be either in-memory or persisted to disk.
|
63
68
|
*/
|
64
|
-
export
|
69
|
+
export interface SqliteDb<TReq = any, TMetadata extends TReq = TReq> {
|
65
70
|
_tag: 'SqliteDb';
|
66
71
|
metadata: TMetadata;
|
67
72
|
prepare(queryStr: string): PreparedStatement;
|
@@ -75,7 +80,7 @@ export type SqliteDb<TReq = any, TMetadata extends TReq = TReq> = {
|
|
75
80
|
destroy(): void;
|
76
81
|
session(): SqliteDbSession;
|
77
82
|
makeChangeset: (data: Uint8Array) => SqliteDbChangeset;
|
78
|
-
}
|
83
|
+
}
|
79
84
|
export type MakeSqliteDb<TReq = {
|
80
85
|
dbPointer: number;
|
81
86
|
persistenceInfo: PersistenceInfo;
|
@@ -101,11 +106,10 @@ export type ResetMode = 'all-data' | 'only-app-db';
|
|
101
106
|
export declare const NetworkStatus: Schema.Struct<{
|
102
107
|
isConnected: typeof Schema.Boolean;
|
103
108
|
timestampMs: typeof Schema.Number;
|
109
|
+
/** Whether the network status devtools latch is closed. Used to simulate network disconnection. */
|
110
|
+
latchClosed: typeof Schema.Boolean;
|
104
111
|
}>;
|
105
|
-
export type NetworkStatus =
|
106
|
-
isConnected: boolean;
|
107
|
-
timestampMs: number;
|
108
|
-
};
|
112
|
+
export type NetworkStatus = typeof NetworkStatus.Type;
|
109
113
|
export declare const BootStateProgress: Schema.Struct<{
|
110
114
|
done: typeof Schema.Number;
|
111
115
|
total: typeof Schema.Number;
|
@@ -194,7 +198,7 @@ export type MigrationHooks = {
|
|
194
198
|
post: MigrationHook;
|
195
199
|
};
|
196
200
|
export type MigrationHook = (db: SqliteDb) => void | Promise<void> | Effect.Effect<void, unknown>;
|
197
|
-
export
|
201
|
+
export interface MigrationOptionsFromMutationLog<TSchema extends LiveStoreSchema = LiveStoreSchema> {
|
198
202
|
strategy: 'from-mutation-log';
|
199
203
|
/**
|
200
204
|
* Mutations to exclude in the mutation log
|
@@ -206,9 +210,10 @@ export type MigrationOptionsFromMutationLog<TSchema extends LiveStoreSchema = Li
|
|
206
210
|
logging?: {
|
207
211
|
excludeAffectedRows?: (sqlStmt: string) => boolean;
|
208
212
|
};
|
209
|
-
}
|
210
|
-
export
|
211
|
-
|
213
|
+
}
|
214
|
+
export interface ClientSessionDevtoolsChannel extends WebChannel.WebChannel<Devtools.ClientSession.MessageToApp, Devtools.ClientSession.MessageFromApp> {
|
215
|
+
}
|
216
|
+
export type ConnectDevtoolsToStore = (storeDevtoolsChannel: ClientSessionDevtoolsChannel) => Effect.Effect<void, UnexpectedError, Scope.Scope>;
|
212
217
|
export type Adapter = (opts: {
|
213
218
|
schema: LiveStoreSchema;
|
214
219
|
storeId: string;
|
@@ -218,5 +223,23 @@ export type Adapter = (opts: {
|
|
218
223
|
shutdown: (cause: Cause.Cause<any>) => Effect.Effect<void>;
|
219
224
|
connectDevtoolsToStore: ConnectDevtoolsToStore;
|
220
225
|
}) => Effect.Effect<ClientSession, UnexpectedError, Scope.Scope>;
|
226
|
+
export declare const MigrationsReportEntry: Schema.Struct<{
|
227
|
+
tableName: typeof Schema.String;
|
228
|
+
hashes: Schema.Struct<{
|
229
|
+
expected: typeof Schema.Number;
|
230
|
+
actual: Schema.optional<typeof Schema.Number>;
|
231
|
+
}>;
|
232
|
+
}>;
|
233
|
+
export declare const MigrationsReport: Schema.Struct<{
|
234
|
+
migrations: Schema.Array$<Schema.Struct<{
|
235
|
+
tableName: typeof Schema.String;
|
236
|
+
hashes: Schema.Struct<{
|
237
|
+
expected: typeof Schema.Number;
|
238
|
+
actual: Schema.optional<typeof Schema.Number>;
|
239
|
+
}>;
|
240
|
+
}>>;
|
241
|
+
}>;
|
242
|
+
export type MigrationsReport = typeof MigrationsReport.Type;
|
243
|
+
export type MigrationsReportEntry = typeof MigrationsReportEntry.Type;
|
221
244
|
export {};
|
222
245
|
//# sourceMappingURL=adapter-types.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"adapter-types.d.ts","sourceRoot":"","sources":["../src/adapter-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAC/F,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhE,OAAO,KAAK,KAAK,QAAQ,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"adapter-types.d.ts","sourceRoot":"","sources":["../src/adapter-types.ts"],"names":[],"mappings":"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"}
|
package/dist/adapter-types.js
CHANGED
@@ -5,6 +5,8 @@ export const PersistenceInfo = Schema.Struct({
|
|
5
5
|
export const NetworkStatus = Schema.Struct({
|
6
6
|
isConnected: Schema.Boolean,
|
7
7
|
timestampMs: Schema.Number,
|
8
|
+
/** Whether the network status devtools latch is closed. Used to simulate network disconnection. */
|
9
|
+
latchClosed: Schema.Boolean,
|
8
10
|
});
|
9
11
|
export const BootStateProgress = Schema.Struct({
|
10
12
|
done: Schema.Number,
|
@@ -44,4 +46,14 @@ export class SqliteError extends Schema.TaggedError()('LiveStore.SqliteError', {
|
|
44
46
|
cause: Schema.Defect,
|
45
47
|
}) {
|
46
48
|
}
|
49
|
+
export const MigrationsReportEntry = Schema.Struct({
|
50
|
+
tableName: Schema.String,
|
51
|
+
hashes: Schema.Struct({
|
52
|
+
expected: Schema.Number,
|
53
|
+
actual: Schema.optional(Schema.Number),
|
54
|
+
}),
|
55
|
+
});
|
56
|
+
export const MigrationsReport = Schema.Struct({
|
57
|
+
migrations: Schema.Array(MigrationsReportEntry),
|
58
|
+
});
|
47
59
|
//# sourceMappingURL=adapter-types.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"adapter-types.js","sourceRoot":"","sources":["../src/adapter-types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;
|
1
|
+
{"version":3,"file":"adapter-types.js","sourceRoot":"","sources":["../src/adapter-types.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,69 @@
|
|
1
|
+
import { type Option, Schema } from '@livestore/utils/effect';
|
2
|
+
export declare namespace ColumnType {
|
3
|
+
type ColumnType = Text | Null | Real | Integer | Blob;
|
4
|
+
type Text = {
|
5
|
+
_tag: 'text';
|
6
|
+
};
|
7
|
+
type Null = {
|
8
|
+
_tag: 'null';
|
9
|
+
};
|
10
|
+
type Real = {
|
11
|
+
_tag: 'real';
|
12
|
+
};
|
13
|
+
type Integer = {
|
14
|
+
_tag: 'integer';
|
15
|
+
};
|
16
|
+
type Blob = {
|
17
|
+
_tag: 'blob';
|
18
|
+
};
|
19
|
+
}
|
20
|
+
export type Column = {
|
21
|
+
_tag: 'column';
|
22
|
+
name: string;
|
23
|
+
type: ColumnType.ColumnType;
|
24
|
+
primaryKey: boolean;
|
25
|
+
nullable: boolean;
|
26
|
+
default: Option.Option<any>;
|
27
|
+
schema: Schema.Schema<any>;
|
28
|
+
};
|
29
|
+
export declare const column: (props: Omit<Column, "_tag">) => Column;
|
30
|
+
export type Index = {
|
31
|
+
_tag: 'index';
|
32
|
+
columns: ReadonlyArray<string>;
|
33
|
+
name?: string;
|
34
|
+
unique?: boolean;
|
35
|
+
primaryKey?: boolean;
|
36
|
+
};
|
37
|
+
export declare const index: (columns: ReadonlyArray<string>, name?: string, unique?: boolean, primaryKey?: boolean) => Index;
|
38
|
+
export type ForeignKey = {
|
39
|
+
_tag: 'foreignKey';
|
40
|
+
references: {
|
41
|
+
table: string;
|
42
|
+
columns: ReadonlyArray<string>;
|
43
|
+
};
|
44
|
+
key: {
|
45
|
+
table: string;
|
46
|
+
columns: ReadonlyArray<string>;
|
47
|
+
};
|
48
|
+
columns: ReadonlyArray<string>;
|
49
|
+
};
|
50
|
+
export type Table = {
|
51
|
+
_tag: 'table';
|
52
|
+
name: string;
|
53
|
+
columns: ReadonlyArray<Column>;
|
54
|
+
indexes: ReadonlyArray<Index>;
|
55
|
+
};
|
56
|
+
export declare const table: (name: string, columns: ReadonlyArray<Column>, indexes: ReadonlyArray<Index>) => Table;
|
57
|
+
export type DbSchema = {
|
58
|
+
_tag: 'dbSchema';
|
59
|
+
tables: Table[];
|
60
|
+
};
|
61
|
+
export declare const dbSchema: (tables: Table[]) => DbSchema;
|
62
|
+
/**
|
63
|
+
* NOTE we're only including SQLite-relevant information in the hash (which excludes the schema mapping)
|
64
|
+
*/
|
65
|
+
export declare const hash: (obj: Table | Column | Index | ForeignKey | DbSchema) => number;
|
66
|
+
export declare const structSchemaForTable: (tableDef: Table) => Schema.Struct<{
|
67
|
+
[k: string]: Schema.Schema<any, any, never>;
|
68
|
+
}>;
|
69
|
+
//# sourceMappingURL=sqlite.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../../src/db-schema/ast/sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAI7D,yBAAiB,UAAU,CAAC;IAC1B,KAAY,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,OAAO,GAAG,IAAI,CAAA;IAE5D,KAAY,IAAI,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;IAEnC,KAAY,IAAI,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;IAEnC,KAAY,IAAI,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;IAEnC,KAAY,OAAO,GAAG;QAAE,IAAI,EAAE,SAAS,CAAA;KAAE,CAAA;IAEzC,KAAY,IAAI,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CACpC;AAED,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,EAAE,QAAQ,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,UAAU,CAAC,UAAU,CAAA;IAC3B,UAAU,EAAE,OAAO,CAAA;IACnB,QAAQ,EAAE,OAAO,CAAA;IACjB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;CAC3B,CAAA;AAED,eAAO,MAAM,MAAM,UAAW,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,KAAG,MAAwC,CAAA;AAE7F,MAAM,MAAM,KAAK,GAAG;IAClB,IAAI,EAAE,OAAO,CAAA;IACb,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,KAAK,YACP,aAAa,CAAC,MAAM,CAAC,SACvB,MAAM,WACJ,OAAO,eACH,OAAO,KACnB,KAMD,CAAA;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,YAAY,CAAA;IAClB,UAAU,EAAE;QACV,KAAK,EAAE,MAAM,CAAA;QACb,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;KAC/B,CAAA;IACD,GAAG,EAAE;QACH,KAAK,EAAE,MAAM,CAAA;QACb,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;KAC/B,CAAA;IACD,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CAC/B,CAAA;AAED,MAAM,MAAM,KAAK,GAAG;IAClB,IAAI,EAAE,OAAO,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAC9B,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,CAAA;CAC9B,CAAA;AAED,eAAO,MAAM,KAAK,SAAU,MAAM,WAAW,aAAa,CAAC,MAAM,CAAC,WAAW,aAAa,CAAC,KAAK,CAAC,KAAG,KAKlG,CAAA;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,UAAU,CAAA;IAChB,MAAM,EAAE,KAAK,EAAE,CAAA;CAChB,CAAA;AAED,eAAO,MAAM,QAAQ,WAAY,KAAK,EAAE,KAAG,QAA0C,CAAA;AAErF;;GAEG;AACH,eAAO,MAAM,IAAI,QAAS,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,UAAU,GAAG,QAAQ,KAAG,MACzB,CAAA;AAmDlD,eAAO,MAAM,oBAAoB,aAAc,KAAK;;EAC+C,CAAA"}
|
@@ -0,0 +1,71 @@
|
|
1
|
+
import { Schema } from '@livestore/utils/effect';
|
2
|
+
import { hashCode } from '../hash.js';
|
3
|
+
export const column = (props) => ({ _tag: 'column', ...props });
|
4
|
+
export const index = (columns, name, unique, primaryKey) => ({
|
5
|
+
_tag: 'index',
|
6
|
+
columns,
|
7
|
+
name,
|
8
|
+
unique,
|
9
|
+
primaryKey,
|
10
|
+
});
|
11
|
+
export const table = (name, columns, indexes) => ({
|
12
|
+
_tag: 'table',
|
13
|
+
name,
|
14
|
+
columns,
|
15
|
+
indexes,
|
16
|
+
});
|
17
|
+
export const dbSchema = (tables) => ({ _tag: 'dbSchema', tables });
|
18
|
+
/**
|
19
|
+
* NOTE we're only including SQLite-relevant information in the hash (which excludes the schema mapping)
|
20
|
+
*/
|
21
|
+
export const hash = (obj) => hashCode(JSON.stringify(trimInfoForHasing(obj)));
|
22
|
+
const trimInfoForHasing = (obj) => {
|
23
|
+
switch (obj._tag) {
|
24
|
+
case 'table': {
|
25
|
+
return {
|
26
|
+
_tag: 'table',
|
27
|
+
name: obj.name,
|
28
|
+
columns: obj.columns.map((column) => trimInfoForHasing(column)),
|
29
|
+
indexes: obj.indexes.map((index) => trimInfoForHasing(index)),
|
30
|
+
};
|
31
|
+
}
|
32
|
+
case 'column': {
|
33
|
+
return {
|
34
|
+
_tag: 'column',
|
35
|
+
name: obj.name,
|
36
|
+
type: obj.type._tag,
|
37
|
+
primaryKey: obj.primaryKey,
|
38
|
+
nullable: obj.nullable,
|
39
|
+
default: obj.default,
|
40
|
+
};
|
41
|
+
}
|
42
|
+
case 'index': {
|
43
|
+
return {
|
44
|
+
_tag: 'index',
|
45
|
+
columns: obj.columns,
|
46
|
+
name: obj.name,
|
47
|
+
unique: obj.unique,
|
48
|
+
primaryKey: obj.primaryKey,
|
49
|
+
};
|
50
|
+
}
|
51
|
+
case 'foreignKey': {
|
52
|
+
return {
|
53
|
+
_tag: 'foreignKey',
|
54
|
+
references: obj.references,
|
55
|
+
key: obj.key,
|
56
|
+
columns: obj.columns,
|
57
|
+
};
|
58
|
+
}
|
59
|
+
case 'dbSchema': {
|
60
|
+
return {
|
61
|
+
_tag: 'dbSchema',
|
62
|
+
tables: obj.tables.map(trimInfoForHasing),
|
63
|
+
};
|
64
|
+
}
|
65
|
+
default: {
|
66
|
+
throw new Error(`Unreachable: ${obj}`);
|
67
|
+
}
|
68
|
+
}
|
69
|
+
};
|
70
|
+
export const structSchemaForTable = (tableDef) => Schema.Struct(Object.fromEntries(tableDef.columns.map((column) => [column.name, column.schema])));
|
71
|
+
//# sourceMappingURL=sqlite.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../../src/db-schema/ast/sqlite.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/db-schema/ast/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAG3C,eAAO,MAAM,QAAQ,cAAe,QAAQ,SAS3C,CAAA"}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
// TODO
|
2
|
+
export const validate = (_dbSchema) => {
|
3
|
+
/*
|
4
|
+
TODO:
|
5
|
+
|
6
|
+
- ensure no duplicate table names
|
7
|
+
- ensure no duplicate column names within a table
|
8
|
+
- ensure no duplicate index names globally
|
9
|
+
- ...
|
10
|
+
*/
|
11
|
+
};
|
12
|
+
//# sourceMappingURL=validate.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/db-schema/ast/validate.ts"],"names":[],"mappings":"AAEA,OAAO;AACP,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,SAAmB,EAAE,EAAE;IAC9C;;;;;;;QAOC;AACH,CAAC,CAAA"}
|
@@ -0,0 +1,90 @@
|
|
1
|
+
import { Option, Schema } from '@livestore/utils/effect';
|
2
|
+
export type ColumnDefinition<TEncoded, TDecoded> = {
|
3
|
+
readonly columnType: FieldColumnType;
|
4
|
+
readonly schema: Schema.Schema<TDecoded, TEncoded>;
|
5
|
+
readonly default: Option.Option<TEncoded>;
|
6
|
+
/** @default false */
|
7
|
+
readonly nullable: boolean;
|
8
|
+
/** @default false */
|
9
|
+
readonly primaryKey: boolean;
|
10
|
+
};
|
11
|
+
export declare const isColumnDefinition: (value: unknown) => value is ColumnDefinition<any, any>;
|
12
|
+
export type ColumnDefinitionInput = {
|
13
|
+
readonly schema?: Schema.Schema<unknown>;
|
14
|
+
readonly default?: unknown | NoDefault;
|
15
|
+
readonly nullable?: boolean;
|
16
|
+
readonly primaryKey?: boolean;
|
17
|
+
};
|
18
|
+
export declare const NoDefault: unique symbol;
|
19
|
+
export type NoDefault = typeof NoDefault;
|
20
|
+
export type SqlDefaultValue = {
|
21
|
+
readonly sql: string;
|
22
|
+
};
|
23
|
+
export declare const isSqlDefaultValue: (value: unknown) => value is SqlDefaultValue;
|
24
|
+
export type ColDefFn<TColumnType extends FieldColumnType> = {
|
25
|
+
(): {
|
26
|
+
columnType: TColumnType;
|
27
|
+
schema: Schema.Schema<DefaultEncodedForColumnType<TColumnType>>;
|
28
|
+
default: Option.None<never>;
|
29
|
+
nullable: false;
|
30
|
+
primaryKey: false;
|
31
|
+
};
|
32
|
+
<TEncoded extends DefaultEncodedForColumnType<TColumnType>, TDecoded = DefaultEncodedForColumnType<TColumnType>, const TNullable extends boolean = false, const TDefault extends TDecoded | SqlDefaultValue | NoDefault | (TNullable extends true ? null : never) = NoDefault, const TPrimaryKey extends boolean = false>(args: {
|
33
|
+
schema?: Schema.Schema<TDecoded, TEncoded>;
|
34
|
+
default?: TDefault;
|
35
|
+
nullable?: TNullable;
|
36
|
+
primaryKey?: TPrimaryKey;
|
37
|
+
}): {
|
38
|
+
columnType: TColumnType;
|
39
|
+
schema: TNullable extends true ? Schema.Schema<NoInfer<TDecoded> | null, NoInfer<TEncoded> | null> : Schema.Schema<NoInfer<TDecoded>, NoInfer<TEncoded>>;
|
40
|
+
default: TDefault extends NoDefault ? Option.None<never> : Option.Some<NoInfer<TDefault>>;
|
41
|
+
nullable: NoInfer<TNullable>;
|
42
|
+
primaryKey: NoInfer<TPrimaryKey>;
|
43
|
+
};
|
44
|
+
};
|
45
|
+
export declare const column: <TColumnType extends FieldColumnType>(columnType: TColumnType) => ColDefFn<TColumnType>;
|
46
|
+
export declare const text: ColDefFn<'text'>;
|
47
|
+
export declare const integer: ColDefFn<'integer'>;
|
48
|
+
export declare const real: ColDefFn<'real'>;
|
49
|
+
export declare const blob: ColDefFn<'blob'>;
|
50
|
+
/**
|
51
|
+
* `NoInfer` is needed for some generics to work properly in certain cases.
|
52
|
+
* See full explanation here: https://gist.github.com/schickling/a15e96819826530492b41a10d79d3c04?permalink_comment_id=4805120#gistcomment-4805120
|
53
|
+
*
|
54
|
+
* Big thanks to @andarist for their help with this!
|
55
|
+
*/
|
56
|
+
type NoInfer<T> = [T][T extends any ? 0 : never];
|
57
|
+
export type SpecializedColDefFn<TColumnType extends FieldColumnType, TAllowsCustomSchema extends boolean, TBaseDecoded> = {
|
58
|
+
(): {
|
59
|
+
columnType: TColumnType;
|
60
|
+
schema: Schema.Schema<TBaseDecoded, DefaultEncodedForColumnType<TColumnType>>;
|
61
|
+
default: Option.None<never>;
|
62
|
+
nullable: false;
|
63
|
+
primaryKey: false;
|
64
|
+
};
|
65
|
+
<TDecoded = TBaseDecoded, const TNullable extends boolean = false, const TDefault extends TDecoded | NoDefault | (TNullable extends true ? null : never) = NoDefault, const TPrimaryKey extends boolean = false>(args: TAllowsCustomSchema extends true ? {
|
66
|
+
schema?: Schema.Schema<TDecoded, any>;
|
67
|
+
default?: TDefault;
|
68
|
+
nullable?: TNullable;
|
69
|
+
primaryKey?: TPrimaryKey;
|
70
|
+
} : {
|
71
|
+
default?: TDefault;
|
72
|
+
nullable?: TNullable;
|
73
|
+
primaryKey?: TPrimaryKey;
|
74
|
+
}): {
|
75
|
+
columnType: TColumnType;
|
76
|
+
schema: TNullable extends true ? Schema.Schema<NoInfer<TDecoded> | null, DefaultEncodedForColumnType<TColumnType> | null> : Schema.Schema<NoInfer<TDecoded>, DefaultEncodedForColumnType<TColumnType>>;
|
77
|
+
default: TDefault extends NoDefault ? Option.None<never> : Option.Some<TDefault>;
|
78
|
+
nullable: NoInfer<TNullable>;
|
79
|
+
primaryKey: NoInfer<TPrimaryKey>;
|
80
|
+
};
|
81
|
+
};
|
82
|
+
export declare const json: SpecializedColDefFn<'text', true, unknown>;
|
83
|
+
export declare const datetime: SpecializedColDefFn<'text', false, Date>;
|
84
|
+
export declare const datetimeInteger: SpecializedColDefFn<'integer', false, Date>;
|
85
|
+
export declare const boolean: SpecializedColDefFn<'integer', false, boolean>;
|
86
|
+
export type FieldColumnType = 'text' | 'integer' | 'real' | 'blob';
|
87
|
+
export type DefaultEncodedForColumnType<TColumnType extends FieldColumnType> = TColumnType extends 'text' ? string : TColumnType extends 'integer' ? number : TColumnType extends 'real' ? number : TColumnType extends 'blob' ? Uint8Array : never;
|
88
|
+
export declare const defaultSchemaForColumnType: <TColumnType extends FieldColumnType>(columnType: TColumnType) => Schema.Schema<DefaultEncodedForColumnType<TColumnType>>;
|
89
|
+
export {};
|
90
|
+
//# sourceMappingURL=field-defs.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"field-defs.d.ts","sourceRoot":"","sources":["../../../src/db-schema/dsl/field-defs.ts"],"names":[],"mappings":"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"}
|