@livestore/common 0.1.0-dev.9 → 0.2.0-dev.0

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 (77) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/__tests__/fixture.d.ts +46 -34
  3. package/dist/__tests__/fixture.d.ts.map +1 -1
  4. package/dist/adapter-types.d.ts +1 -1
  5. package/dist/adapter-types.js +1 -1
  6. package/dist/derived-mutations.d.ts +4 -4
  7. package/dist/derived-mutations.d.ts.map +1 -1
  8. package/dist/derived-mutations.js.map +1 -1
  9. package/dist/devtools/devtools-messages.d.ts +53 -53
  10. package/dist/devtools/devtools-messages.js +1 -1
  11. package/dist/devtools/devtools-messages.js.map +1 -1
  12. package/dist/index.d.ts +1 -0
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +1 -0
  15. package/dist/index.js.map +1 -1
  16. package/dist/mutation.d.ts +1 -1
  17. package/dist/mutation.d.ts.map +1 -1
  18. package/dist/mutation.js +6 -1
  19. package/dist/mutation.js.map +1 -1
  20. package/dist/query-builder/api.d.ts +190 -0
  21. package/dist/query-builder/api.d.ts.map +1 -0
  22. package/dist/query-builder/api.js +8 -0
  23. package/dist/query-builder/api.js.map +1 -0
  24. package/dist/query-builder/impl.d.ts +12 -0
  25. package/dist/query-builder/impl.d.ts.map +1 -0
  26. package/dist/query-builder/impl.js +226 -0
  27. package/dist/query-builder/impl.js.map +1 -0
  28. package/dist/query-builder/impl.test.d.ts +2 -0
  29. package/dist/query-builder/impl.test.d.ts.map +1 -0
  30. package/dist/query-builder/impl.test.js +183 -0
  31. package/dist/query-builder/impl.test.js.map +1 -0
  32. package/dist/query-builder/mod.d.ts +10 -0
  33. package/dist/query-builder/mod.d.ts.map +1 -0
  34. package/dist/query-builder/mod.js +10 -0
  35. package/dist/query-builder/mod.js.map +1 -0
  36. package/dist/query-info.d.ts +29 -39
  37. package/dist/query-info.d.ts.map +1 -1
  38. package/dist/query-info.js +4 -35
  39. package/dist/query-info.js.map +1 -1
  40. package/dist/schema/index.d.ts +2 -2
  41. package/dist/schema/index.d.ts.map +1 -1
  42. package/dist/schema/index.js +1 -0
  43. package/dist/schema/index.js.map +1 -1
  44. package/dist/schema/mutations.d.ts +8 -8
  45. package/dist/schema/schema-helpers.d.ts +2 -2
  46. package/dist/schema/schema-helpers.d.ts.map +1 -1
  47. package/dist/schema/system-tables.d.ts +246 -204
  48. package/dist/schema/system-tables.d.ts.map +1 -1
  49. package/dist/schema/table-def.d.ts +45 -24
  50. package/dist/schema/table-def.d.ts.map +1 -1
  51. package/dist/schema/table-def.js +10 -1
  52. package/dist/schema/table-def.js.map +1 -1
  53. package/dist/sql-queries/sql-queries.d.ts +1 -0
  54. package/dist/sql-queries/sql-queries.d.ts.map +1 -1
  55. package/dist/sql-queries/sql-queries.js +8 -5
  56. package/dist/sql-queries/sql-queries.js.map +1 -1
  57. package/dist/sync/next/test/mutation-fixtures.d.ts +7 -7
  58. package/dist/version.d.ts +1 -1
  59. package/dist/version.d.ts.map +1 -1
  60. package/dist/version.js +1 -1
  61. package/dist/version.js.map +1 -1
  62. package/package.json +3 -3
  63. package/src/adapter-types.ts +1 -1
  64. package/src/derived-mutations.ts +4 -8
  65. package/src/devtools/devtools-messages.ts +1 -1
  66. package/src/index.ts +1 -0
  67. package/src/mutation.ts +9 -2
  68. package/src/query-builder/api.ts +288 -0
  69. package/src/query-builder/impl.test.ts +205 -0
  70. package/src/query-builder/impl.ts +268 -0
  71. package/src/query-builder/mod.ts +10 -0
  72. package/src/query-info.ts +66 -93
  73. package/src/schema/index.ts +4 -2
  74. package/src/schema/schema-helpers.ts +2 -2
  75. package/src/schema/table-def.ts +99 -68
  76. package/src/sql-queries/sql-queries.ts +9 -6
  77. package/src/version.ts +1 -1
@@ -0,0 +1,183 @@
1
+ import { Schema } from '@livestore/utils/effect';
2
+ import { describe, expect, it } from 'vitest';
3
+ import { DbSchema } from '../schema/index.js';
4
+ const todos = DbSchema.table('todos', {
5
+ id: DbSchema.text({ primaryKey: true }),
6
+ text: DbSchema.text({ default: '', nullable: false }),
7
+ completed: DbSchema.boolean({ default: false, nullable: false }),
8
+ status: DbSchema.text({ schema: Schema.Literal('active', 'completed') }),
9
+ deletedAt: DbSchema.datetime({ nullable: true }),
10
+ // TODO consider leaning more into Effect schema
11
+ // other: Schema.Number.pipe(DbSchema.asInteger),
12
+ }, { deriveMutations: true });
13
+ const comments = DbSchema.table('comments', {
14
+ id: DbSchema.text({ primaryKey: true }),
15
+ text: DbSchema.text({ default: '', nullable: false }),
16
+ todoId: DbSchema.text({}),
17
+ });
18
+ const db = { todos: todos.query, comments: comments.query };
19
+ describe('query builder', () => {
20
+ describe('basic queries', () => {
21
+ it('should handle simple SELECT queries', () => {
22
+ expect(db.todos.asSql()).toMatchInlineSnapshot(`
23
+ {
24
+ "bindValues": [],
25
+ "query": "SELECT * FROM 'todos'",
26
+ }
27
+ `);
28
+ expect(db.todos.select('id', 'text').asSql()).toMatchInlineSnapshot(`
29
+ {
30
+ "bindValues": [],
31
+ "query": "SELECT id, text FROM 'todos'",
32
+ }
33
+ `);
34
+ });
35
+ it('should handle WHERE clauses', () => {
36
+ expect(db.todos.select('id', 'text').where('completed', true).asSql()).toMatchInlineSnapshot(`
37
+ {
38
+ "bindValues": [
39
+ 1,
40
+ ],
41
+ "query": "SELECT id, text FROM 'todos' WHERE completed = ?",
42
+ }
43
+ `);
44
+ expect(db.todos.select('id', 'text').where('completed', '!=', true).asSql()).toMatchInlineSnapshot(`
45
+ {
46
+ "bindValues": [
47
+ 1,
48
+ ],
49
+ "query": "SELECT id, text FROM 'todos' WHERE completed != ?",
50
+ }
51
+ `);
52
+ expect(db.todos.select('id', 'text').where({ completed: true }).asSql()).toMatchInlineSnapshot(`
53
+ {
54
+ "bindValues": [
55
+ 1,
56
+ ],
57
+ "query": "SELECT id, text FROM 'todos' WHERE completed = ?",
58
+ }
59
+ `);
60
+ expect(db.todos.select('id', 'text').where({ completed: undefined }).asSql()).toMatchInlineSnapshot(`
61
+ {
62
+ "bindValues": [],
63
+ "query": "SELECT id, text FROM 'todos'",
64
+ }
65
+ `);
66
+ expect(db.todos
67
+ .select('id', 'text')
68
+ .where({ deletedAt: { op: '<=', value: new Date('2024-01-01') } })
69
+ .asSql()).toMatchInlineSnapshot(`
70
+ {
71
+ "bindValues": [
72
+ "2024-01-01T00:00:00.000Z",
73
+ ],
74
+ "query": "SELECT id, text FROM 'todos' WHERE deletedAt <= ?",
75
+ }
76
+ `);
77
+ });
78
+ it('should handle OFFSET and LIMIT clauses', () => {
79
+ expect(db.todos.select('id', 'text').where('completed', true).offset(10).limit(10).asSql())
80
+ .toMatchInlineSnapshot(`
81
+ {
82
+ "bindValues": [
83
+ 1,
84
+ 10,
85
+ 10,
86
+ ],
87
+ "query": "SELECT id, text FROM 'todos' WHERE completed = ? OFFSET ? LIMIT ?",
88
+ }
89
+ `);
90
+ });
91
+ it('should handle COUNT queries', () => {
92
+ expect(db.todos.count().asSql()).toMatchInlineSnapshot(`
93
+ {
94
+ "bindValues": [],
95
+ "query": "SELECT COUNT(*) as count FROM 'todos'",
96
+ }
97
+ `);
98
+ expect(db.todos.count().where('completed', true).asSql()).toMatchInlineSnapshot(`
99
+ {
100
+ "bindValues": [
101
+ 1,
102
+ ],
103
+ "query": "SELECT COUNT(*) as count FROM 'todos' WHERE completed = ?",
104
+ }
105
+ `);
106
+ });
107
+ it('should handle NULL comparisons', () => {
108
+ expect(db.todos.select('id', 'text').where('deletedAt', '=', null).asSql()).toMatchInlineSnapshot(`
109
+ {
110
+ "bindValues": [],
111
+ "query": "SELECT id, text FROM 'todos' WHERE deletedAt IS NULL",
112
+ }
113
+ `);
114
+ expect(db.todos.select('id', 'text').where('deletedAt', '!=', null).asSql()).toMatchInlineSnapshot(`
115
+ {
116
+ "bindValues": [],
117
+ "query": "SELECT id, text FROM 'todos' WHERE deletedAt IS NOT NULL",
118
+ }
119
+ `);
120
+ });
121
+ it('should handle orderBy', () => {
122
+ expect(db.todos.orderBy('completed', 'desc').asSql()).toMatchInlineSnapshot(`
123
+ {
124
+ "bindValues": [],
125
+ "query": "SELECT * FROM 'todos' ORDER BY completed desc",
126
+ }
127
+ `);
128
+ expect(db.todos.orderBy([{ col: 'completed', direction: 'desc' }]).asSql()).toMatchInlineSnapshot(`
129
+ {
130
+ "bindValues": [],
131
+ "query": "SELECT * FROM 'todos' ORDER BY completed desc",
132
+ }
133
+ `);
134
+ expect(db.todos.orderBy([]).asSql()).toMatchInlineSnapshot(`
135
+ {
136
+ "bindValues": [],
137
+ "query": "SELECT * FROM 'todos'",
138
+ }
139
+ `);
140
+ });
141
+ });
142
+ describe('row queries', () => {
143
+ it('should handle row queries', () => {
144
+ expect(db.todos.row('123', { insertValues: { status: 'completed' } }).asSql()).toMatchInlineSnapshot(`
145
+ {
146
+ "bindValues": [
147
+ "123",
148
+ ],
149
+ "query": "SELECT * FROM 'todos' WHERE id = ?",
150
+ }
151
+ `);
152
+ });
153
+ });
154
+ });
155
+ // TODO nested queries
156
+ // const rawSql = <A, I>(sql: string, params: { [key: string]: any }, schema: Schema.Schema<A, I>) =>
157
+ // ({
158
+ // sql,
159
+ // params,
160
+ // schema,
161
+ // }) as any as QueryBuilder<A, any>
162
+ // Translates to
163
+ // SELECT todos.*, (SELECT COUNT(*) FROM comments WHERE comments.todoId = todos.id) AS commentsCount
164
+ // FROM todos WHERE todos.completed = true
165
+ // const q4CommentsCountSchema = Schema.Struct({ count: Schema.Number }).pipe(
166
+ // Schema.pluck('count'),
167
+ // Schema.Array,
168
+ // Schema.headOrElse(),
169
+ // )
170
+ // const _q4$ = db.todos
171
+ // .select({
172
+ // commentsCount: (ref) =>
173
+ // rawSql(
174
+ // sql`SELECT COUNT(*) as count FROM comments WHERE comments.todoId = $todoId`,
175
+ // { todoId: ref },
176
+ // q4CommentsCountSchema,
177
+ // ),
178
+ // })
179
+ // .where({ completed: true })
180
+ // const _q5$ = db.todos
181
+ // .select({ commentsCount: (todoId: TODO) => comments.query.where({ todoId }).count() })
182
+ // .where({ completed: true })
183
+ //# sourceMappingURL=impl.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"impl.test.js","sourceRoot":"","sources":["../../src/query-builder/impl.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export * from './api.js';
2
+ export * from './impl.js';
3
+ /**
4
+ * Design decisions:
5
+ *
6
+ * - Close abstraction to SQLite to provide a simple & convenient API with predictable behaviour
7
+ * - Use table schema definitions to parse, map & validate query results
8
+ * - Implementation detail: Separate type-level & AST-based runtime implementation
9
+ */
10
+ //# sourceMappingURL=mod.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/query-builder/mod.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AAEzB;;;;;;GAMG"}
@@ -0,0 +1,10 @@
1
+ export * from './api.js';
2
+ export * from './impl.js';
3
+ /**
4
+ * Design decisions:
5
+ *
6
+ * - Close abstraction to SQLite to provide a simple & convenient API with predictable behaviour
7
+ * - Use table schema definitions to parse, map & validate query results
8
+ * - Implementation detail: Separate type-level & AST-based runtime implementation
9
+ */
10
+ //# sourceMappingURL=mod.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mod.js","sourceRoot":"","sources":["../../src/query-builder/mod.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AAEzB;;;;;;GAMG"}
@@ -1,4 +1,3 @@
1
- import type { Schema } from '@livestore/utils/effect';
2
1
  import type { SessionIdSymbol } from './adapter-types.js';
3
2
  import type { DbSchema } from './schema/index.js';
4
3
  /**
@@ -6,43 +5,34 @@ import type { DbSchema } from './schema/index.js';
6
5
  * - a whole row
7
6
  * - a single column value
8
7
  * - a sub value in a JSON column
8
+ *
9
+ * This information is currently only used for derived mutations.
9
10
  */
10
- export type QueryInfo<TTableDef extends DbSchema.TableDef = DbSchema.TableDef> = QueryInfoNone | QueryInfoRow<TTableDef> | QueryInfoColJsonValue<TTableDef, GetJsonColumn<TTableDef>> | QueryInfoCol<TTableDef, keyof TTableDef['sqliteDef']['columns']>;
11
- export type QueryInfoNone = {
12
- _tag: 'None';
13
- };
14
- export type QueryInfoRow<TTableDef extends DbSchema.TableDef> = {
15
- _tag: 'Row';
16
- table: TTableDef;
17
- id: string | SessionIdSymbol;
18
- };
19
- export type QueryInfoCol<TTableDef extends DbSchema.TableDef, TColName extends keyof TTableDef['sqliteDef']['columns']> = {
20
- _tag: 'Col';
21
- table: TTableDef;
22
- id: string | SessionIdSymbol;
23
- column: TColName;
24
- };
25
- export type QueryInfoColJsonValue<TTableDef extends DbSchema.TableDef, TColName extends GetJsonColumn<TTableDef>> = {
26
- _tag: 'ColJsonValue';
27
- table: TTableDef;
28
- id: string | SessionIdSymbol;
29
- column: TColName;
30
- /**
31
- * example: `$.tabs[3].items[2]` (`$` referring to the column value)
32
- */
33
- jsonPath: string;
34
- };
35
- type GetJsonColumn<TTableDef extends DbSchema.TableDef> = keyof {
36
- [ColName in keyof TTableDef['sqliteDef']['columns'] as TTableDef['sqliteDef']['columns'][ColName]['columnType'] extends 'text' ? ColName : never]: {};
37
- };
38
- export type UpdateValueForPath<TQueryInfo extends QueryInfo> = TQueryInfo extends {
39
- _tag: 'Row';
40
- } ? Partial<DbSchema.FromTable.RowDecodedAll<TQueryInfo['table']>> : TQueryInfo extends {
41
- _tag: 'Col';
42
- } ? Schema.Schema.Type<TQueryInfo['table']['sqliteDef']['columns'][TQueryInfo['column']]['schema']> : TQueryInfo extends {
43
- _tag: 'ColJsonValue';
44
- } ? {
45
- TODO: true;
46
- } : never;
47
- export {};
11
+ export type QueryInfo = QueryInfo.None | QueryInfo.Row | QueryInfo.Col | QueryInfo.ColJsonValue;
12
+ export declare namespace QueryInfo {
13
+ type None = {
14
+ _tag: 'None';
15
+ };
16
+ type Row = {
17
+ _tag: 'Row';
18
+ table: DbSchema.TableDefBase;
19
+ id: string | SessionIdSymbol;
20
+ };
21
+ type Col = {
22
+ _tag: 'Col';
23
+ table: DbSchema.TableDefBase;
24
+ id: string | SessionIdSymbol;
25
+ column: string;
26
+ };
27
+ type ColJsonValue = {
28
+ _tag: 'ColJsonValue';
29
+ table: DbSchema.TableDefBase;
30
+ id: string | SessionIdSymbol;
31
+ column: string;
32
+ /**
33
+ * example: `$.tabs[3].items[2]` (`$` referring to the column value)
34
+ */
35
+ jsonPath: string;
36
+ };
37
+ }
48
38
  //# sourceMappingURL=query-info.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"query-info.d.ts","sourceRoot":"","sources":["../src/query-info.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAErD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAEjD;;;;;GAKG;AACH,MAAM,MAAM,SAAS,CAAC,SAAS,SAAS,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,IACzE,aAAa,GACb,YAAY,CAAC,SAAS,CAAC,GACvB,qBAAqB,CAAC,SAAS,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,GAC1D,YAAY,CAAC,SAAS,EAAE,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;AAEpE,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,YAAY,CAAC,SAAS,SAAS,QAAQ,CAAC,QAAQ,IAAI;IAC9D,IAAI,EAAE,KAAK,CAAA;IACX,KAAK,EAAE,SAAS,CAAA;IAChB,EAAE,EAAE,MAAM,GAAG,eAAe,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,YAAY,CACtB,SAAS,SAAS,QAAQ,CAAC,QAAQ,EACnC,QAAQ,SAAS,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,IACtD;IACF,IAAI,EAAE,KAAK,CAAA;IACX,KAAK,EAAE,SAAS,CAAA;IAChB,EAAE,EAAE,MAAM,GAAG,eAAe,CAAA;IAC5B,MAAM,EAAE,QAAQ,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,qBAAqB,CAAC,SAAS,SAAS,QAAQ,CAAC,QAAQ,EAAE,QAAQ,SAAS,aAAa,CAAC,SAAS,CAAC,IAAI;IAClH,IAAI,EAAE,cAAc,CAAA;IACpB,KAAK,EAAE,SAAS,CAAA;IAChB,EAAE,EAAE,MAAM,GAAG,eAAe,CAAA;IAC5B,MAAM,EAAE,QAAQ,CAAA;IAChB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,KAAK,aAAa,CAAC,SAAS,SAAS,QAAQ,CAAC,QAAQ,IAAI,MAAM;KAC7D,OAAO,IAAI,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,SAAS,MAAM,GAC1H,OAAO,GACP,KAAK,GAAG,EAAE;CACf,CAAA;AAED,MAAM,MAAM,kBAAkB,CAAC,UAAU,SAAS,SAAS,IAAI,UAAU,SAAS;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GAC7F,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,GAC9D,UAAU,SAAS;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GAChC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAC/F,UAAU,SAAS;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,GACd,KAAK,CAAA"}
1
+ {"version":3,"file":"query-info.d.ts","sourceRoot":"","sources":["../src/query-info.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAEjD;;;;;;;GAOG;AACH,MAAM,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,GAAG,SAAS,CAAC,YAAY,CAAA;AAO/F,yBAAiB,SAAS,CAAC;IACzB,KAAY,IAAI,GAAG;QACjB,IAAI,EAAE,MAAM,CAAA;KACb,CAAA;IAED,KAAY,GAAG,GAAG;QAChB,IAAI,EAAE,KAAK,CAAA;QACX,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAA;QAC5B,EAAE,EAAE,MAAM,GAAG,eAAe,CAAA;KAC7B,CAAA;IAED,KAAY,GAAG,GAAG;QAChB,IAAI,EAAE,KAAK,CAAA;QACX,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAA;QAC5B,EAAE,EAAE,MAAM,GAAG,eAAe,CAAA;QAC5B,MAAM,EAAE,MAAM,CAAA;KACf,CAAA;IAED,KAAY,YAAY,GAAG;QACzB,IAAI,EAAE,cAAc,CAAA;QACpB,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAA;QAC5B,EAAE,EAAE,MAAM,GAAG,eAAe,CAAA;QAC5B,MAAM,EAAE,MAAM,CAAA;QACd;;WAEG;QACH,QAAQ,EAAE,MAAM,CAAA;KACjB,CAAA;CA0BF"}
@@ -1,38 +1,7 @@
1
1
  export {};
2
- // export const mutationForQueryInfo = <const TQueryInfo extends QueryInfo>(
3
- // queryInfo: TQueryInfo,
4
- // value: UpdateValueForPath<TQueryInfo>,
5
- // ): RawSqlMutationEvent => {
6
- // if (queryInfo._tag === 'ColJsonValue' || queryInfo._tag === 'None') {
7
- // return notYetImplemented('TODO')
8
- // }
9
- // const sqliteTableDef = queryInfo.table.sqliteDef
10
- // const id = queryInfo.id
11
- // const { columnNames, bindValues } = (() => {
12
- // if (queryInfo._tag === 'Row') {
13
- // const columnNames = Object.keys(value)
14
- // const partialStructSchema = queryInfo.table.schema.pipe(Schema.pick(...columnNames))
15
- // // const columnNames = Object.keys(value)
16
- // const encodedBindValues = Schema.encodeEither(partialStructSchema)(value)
17
- // if (encodedBindValues._tag === 'Left') {
18
- // return shouldNeverHappen(encodedBindValues.left.toString())
19
- // } else {
20
- // return { columnNames, bindValues: encodedBindValues.right }
21
- // }
22
- // } else if (queryInfo._tag === 'Col') {
23
- // const columnName = queryInfo.column
24
- // const columnSchema =
25
- // sqliteTableDef.columns[columnName]?.schema ?? shouldNeverHappen(`Column ${columnName} not found`)
26
- // const bindValues = { [columnName]: Schema.encodeSync(columnSchema)(value) }
27
- // return { columnNames: [columnName], bindValues }
28
- // } else {
29
- // return shouldNeverHappen()
30
- // }
31
- // })()
32
- // const updateClause = columnNames.map((columnName) => `${columnName} = $${columnName}`).join(', ')
33
- // const whereClause = `where id = '${id}'`
34
- // const sql = `UPDATE ${sqliteTableDef.name} SET ${updateClause} ${whereClause}`
35
- // const writeTables = new Set<string>([queryInfo.table.sqliteDef.name])
36
- // return rawSqlMutation({ sql, bindValues, writeTables })
2
+ // type GetJsonColumn<TTableDef extends DbSchema.TableDefBase> = keyof {
3
+ // [ColName in keyof TTableDef['sqliteDef']['columns'] as TTableDef['sqliteDef']['columns'][ColName]['columnType'] extends 'text'
4
+ // ? ColName
5
+ // : never]: {}
37
6
  // }
38
7
  //# sourceMappingURL=query-info.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"query-info.js","sourceRoot":"","sources":["../src/query-info.ts"],"names":[],"mappings":";AA8DA,4EAA4E;AAC5E,2BAA2B;AAC3B,2CAA2C;AAC3C,8BAA8B;AAC9B,0EAA0E;AAC1E,uCAAuC;AACvC,MAAM;AAEN,qDAAqD;AACrD,4BAA4B;AAE5B,iDAAiD;AACjD,sCAAsC;AACtC,+CAA+C;AAE/C,6FAA6F;AAE7F,kDAAkD;AAClD,kFAAkF;AAClF,iDAAiD;AACjD,sEAAsE;AACtE,iBAAiB;AACjB,sEAAsE;AACtE,UAAU;AACV,6CAA6C;AAC7C,4CAA4C;AAC5C,6BAA6B;AAC7B,4GAA4G;AAC5G,oFAAoF;AACpF,yDAAyD;AACzD,eAAe;AACf,mCAAmC;AACnC,QAAQ;AACR,SAAS;AAET,sGAAsG;AAEtG,6CAA6C;AAC7C,mFAAmF;AACnF,0EAA0E;AAE1E,4DAA4D;AAC5D,IAAI"}
1
+ {"version":3,"file":"query-info.js","sourceRoot":"","sources":["../src/query-info.ts"],"names":[],"mappings":";AAyEA,wEAAwE;AACxE,mIAAmI;AACnI,gBAAgB;AAChB,mBAAmB;AACnB,IAAI"}
@@ -1,7 +1,7 @@
1
1
  import type { SqliteDsl } from '@livestore/db-schema';
2
2
  import type { MigrationOptions } from '../adapter-types.js';
3
3
  import { type MutationDef, type MutationDefMap, type MutationDefRecord, type RawSqlMutation } from './mutations.js';
4
- import { type TableDef } from './table-def.js';
4
+ import type { TableDef, TableDefBase } from './table-def.js';
5
5
  export * from './system-tables.js';
6
6
  export * as DbSchema from './table-def.js';
7
7
  export * from './mutations.js';
@@ -21,7 +21,7 @@ export type LiveStoreSchema<TDbSchema extends SqliteDsl.DbSchema = SqliteDsl.DbS
21
21
  migrationOptions: MigrationOptions;
22
22
  };
23
23
  export type InputSchema = {
24
- readonly tables: Record<string, TableDef> | ReadonlyArray<TableDef>;
24
+ readonly tables: Record<string, TableDefBase> | ReadonlyArray<TableDefBase>;
25
25
  readonly mutations?: ReadonlyArray<MutationDef.Any> | Record<string, MutationDef.Any>;
26
26
  /**
27
27
  * Can be used to isolate multiple LiveStore apps running in the same origin
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,7 @@ inputSchema) => {
24
24
  tables.set(tableDef.sqliteDef.ast.name, tableDef);
25
25
  }
26
26
  for (const tableDef of systemTables) {
27
+ // @ts-expect-error TODO fix type level issue
27
28
  tables.set(tableDef.sqliteDef.name, tableDef);
28
29
  }
29
30
  const mutations = new Map();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAGrE,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAA;AACzE,OAAO,EAKL,cAAc,GACf,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;AAEzD,cAAc,oBAAoB,CAAA;AAClC,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAA;AAC1C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,qBAAqB,CAAA;AAEnC,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAA;AA+B5E,MAAM,CAAC,MAAM,UAAU,GAAG;AACxB,iIAAiI;AACjI,WAGC,EAC2C,EAAE;IAC9C,MAAM,WAAW,GAA4B,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC;QAC5E,CAAC,CAAC,WAAW,CAAC,MAAM;QACpB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;IAErC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAoB,CAAA;IAE1C,KAAK,MAAM,QAAQ,IAAI,WAAW,EAAE,CAAC;QACnC,qDAAqD;QACrD,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5C,iBAAiB,CAAC,yBAAyB,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,uCAAuC,CAAC,CAAA;QAChH,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IACnD,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE,CAAC;QACpC,6CAA6C;QAC7C,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IAC/C,CAAC;IAED,MAAM,SAAS,GAAmB,IAAI,GAAG,EAAE,CAAA;IAE3C,IAAI,eAAe,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3C,KAAK,MAAM,QAAQ,IAAI,WAAW,CAAC,SAAS,EAAE,CAAC;YAC7C,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;QACxC,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC;YAClE,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjC,iBAAiB,CAAC,4BAA4B,QAAQ,CAAC,IAAI,0CAA0C,CAAC,CAAA;YACxG,CAAC;YACD,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;QACxC,CAAC;IACH,CAAC;IAED,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;IAElD,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QACvC,IAAI,wBAAwB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvC,MAAM,mBAAmB,GAAG,+BAA+B,CAAC,QAAQ,CAAC,CAAA;YACrE,SAAS,CAAC,GAAG,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAA;YAC1E,SAAS,CAAC,GAAG,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAA;YAC1E,SAAS,CAAC,GAAG,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAA;QAC5E,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;QAC1B,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC;KACzD,CAAC,CAAA;IAEF,OAAO;QACL,KAAK,EAAE,qBAAqB;QAC5B,aAAa,EAAE,MAAM,CAAC,GAAG,CAAC,wBAAwB,CAAQ;QAC1D,mBAAmB,EAAE,MAAM,CAAC,GAAG,CAAC,8BAA8B,CAAQ;QACtE,MAAM;QACN,SAAS;QACT,gBAAgB,EAAE,WAAW,CAAC,UAAU,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE;QACtE,IAAI;KACqB,CAAA;AAC7B,CAAC,CAAA"}
@@ -179,46 +179,46 @@ export declare const mutationEventSchemaAny: Schema.Struct<{
179
179
  }>;
180
180
  }>;
181
181
  export declare const mutationEventSchemaDecodedAny: Schema.SchemaClass<{
182
+ readonly mutation: string;
183
+ readonly args: any;
182
184
  readonly id: {
183
185
  readonly global: number;
184
186
  readonly local: number;
185
187
  };
186
- readonly mutation: string;
187
- readonly args: any;
188
188
  readonly parentId: {
189
189
  readonly global: number;
190
190
  readonly local: number;
191
191
  };
192
192
  }, {
193
+ readonly mutation: string;
194
+ readonly args: any;
193
195
  readonly id: {
194
196
  readonly global: number;
195
197
  readonly local: number;
196
198
  };
197
- readonly mutation: string;
198
- readonly args: any;
199
199
  readonly parentId: {
200
200
  readonly global: number;
201
201
  readonly local: number;
202
202
  };
203
203
  }, never>;
204
204
  export declare const mutationEventSchemaEncodedAny: Schema.SchemaClass<{
205
+ readonly mutation: string;
206
+ readonly args: any;
205
207
  readonly id: {
206
208
  readonly global: number;
207
209
  readonly local: number;
208
210
  };
209
- readonly mutation: string;
210
- readonly args: any;
211
211
  readonly parentId: {
212
212
  readonly global: number;
213
213
  readonly local: number;
214
214
  };
215
215
  }, {
216
+ readonly mutation: string;
217
+ readonly args: any;
216
218
  readonly id: {
217
219
  readonly global: number;
218
220
  readonly local: number;
219
221
  };
220
- readonly mutation: string;
221
- readonly args: any;
222
222
  readonly parentId: {
223
223
  readonly global: number;
224
224
  readonly local: number;
@@ -1,4 +1,4 @@
1
- import type { TableDef } from './table-def.js';
1
+ import type { TableDef, TableDefBase } from './table-def.js';
2
2
  export declare const getDefaultValuesEncoded: <TTableDef extends TableDef>(tableDef: TTableDef, fallbackValues?: Record<string, any>) => Record<string, any>;
3
- export declare const getDefaultValuesDecoded: <TTableDef extends TableDef>(tableDef: TTableDef, fallbackValues?: Record<string, any>) => Record<string, any>;
3
+ export declare const getDefaultValuesDecoded: <TTableDef extends TableDefBase>(tableDef: TTableDef, fallbackValues?: Record<string, any>) => Record<string, any>;
4
4
  //# sourceMappingURL=schema-helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-helpers.d.ts","sourceRoot":"","sources":["../../src/schema/schema-helpers.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAE9C,eAAO,MAAM,uBAAuB,GAAI,SAAS,SAAS,QAAQ,YACtD,SAAS,mBACF,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,wBAkBnC,CAAA;AAEH,eAAO,MAAM,uBAAuB,GAAI,SAAS,SAAS,QAAQ,YACtD,SAAS,mBACF,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,wBAkBnC,CAAA"}
1
+ {"version":3,"file":"schema-helpers.d.ts","sourceRoot":"","sources":["../../src/schema/schema-helpers.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE5D,eAAO,MAAM,uBAAuB,GAAI,SAAS,SAAS,QAAQ,YACtD,SAAS,mBACF,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,wBAkBnC,CAAA;AAEH,eAAO,MAAM,uBAAuB,GAAI,SAAS,SAAS,YAAY,YAC1D,SAAS,mBACF,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,wBAkBnC,CAAA"}