@livestore/common 0.1.0 → 0.2.0-dev.1

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 (73) 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 +45 -45
  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/schema-helpers.d.ts +2 -2
  45. package/dist/schema/schema-helpers.d.ts.map +1 -1
  46. package/dist/schema/system-tables.d.ts +246 -204
  47. package/dist/schema/system-tables.d.ts.map +1 -1
  48. package/dist/schema/table-def.d.ts +45 -24
  49. package/dist/schema/table-def.d.ts.map +1 -1
  50. package/dist/schema/table-def.js +10 -1
  51. package/dist/schema/table-def.js.map +1 -1
  52. package/dist/sql-queries/sql-queries.d.ts +1 -0
  53. package/dist/sql-queries/sql-queries.d.ts.map +1 -1
  54. package/dist/sql-queries/sql-queries.js +8 -5
  55. package/dist/sql-queries/sql-queries.js.map +1 -1
  56. package/dist/version.d.ts +1 -1
  57. package/dist/version.js +1 -1
  58. package/package.json +3 -3
  59. package/src/adapter-types.ts +1 -1
  60. package/src/derived-mutations.ts +4 -8
  61. package/src/devtools/devtools-messages.ts +1 -1
  62. package/src/index.ts +1 -0
  63. package/src/mutation.ts +9 -2
  64. package/src/query-builder/api.ts +288 -0
  65. package/src/query-builder/impl.test.ts +205 -0
  66. package/src/query-builder/impl.ts +268 -0
  67. package/src/query-builder/mod.ts +10 -0
  68. package/src/query-info.ts +66 -93
  69. package/src/schema/index.ts +4 -2
  70. package/src/schema/schema-helpers.ts +2 -2
  71. package/src/schema/table-def.ts +99 -68
  72. package/src/sql-queries/sql-queries.ts +9 -6
  73. 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":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAE7C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAC1B,OAAO,EACP;IACE,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IACvC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACrD,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAChE,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,CAAC;IACxE,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAChD,gDAAgD;IAChD,iDAAiD;CAClD,EACD,EAAE,eAAe,EAAE,IAAI,EAAE,CAC1B,CAAA;AAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE;IAC1C,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IACvC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACrD,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;CAC1B,CAAC,CAAA;AAEF,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAA;AAE3D,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC7C,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,qBAAqB,CAAC;;;;;OAK9C,CAAC,CAAA;YAEF,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,qBAAqB,CAAC;;;;;OAKnE,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;YACrC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,qBAAqB,CAAC;;;;;;;OAO5F,CAAC,CAAA;YACF,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,qBAAqB,CAAC;;;;;;;OAOlG,CAAC,CAAA;YACF,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,qBAAqB,CAAC;;;;;;;OAO9F,CAAC,CAAA;YACF,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,qBAAqB,CAAC;;;;;OAKnG,CAAC,CAAA;YACF,MAAM,CACJ,EAAE,CAAC,KAAK;iBACL,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC;iBACpB,KAAK,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;iBACjE,KAAK,EAAE,CACX,CAAC,qBAAqB,CAAC;;;;;;;OAOvB,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAChD,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;iBACxF,qBAAqB,CAAC;;;;;;;;;SAStB,CAAC,CAAA;QACN,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;YACrC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,qBAAqB,CAAC;;;;;OAKtD,CAAC,CAAA;YACF,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,qBAAqB,CAAC;;;;;;;OAO/E,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACxC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,qBAAqB,CAAC;;;;;OAKjG,CAAC,CAAA;YACF,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,qBAAqB,CAAC;;;;;OAKlG,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;YAC/B,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,qBAAqB,CAAC;;;;;OAK3E,CAAC,CAAA;YAEF,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,qBAAqB,CAAC;;;;;OAKjG,CAAC,CAAA;YAEF,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,qBAAqB,CAAC;;;;;OAK1D,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;YACnC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,qBAAqB,CAAC;;;;;;;OAOpG,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,sBAAsB;AACtB,qGAAqG;AACrG,OAAO;AACP,WAAW;AACX,cAAc;AACd,cAAc;AACd,sCAAsC;AAEtC,gBAAgB;AAChB,oGAAoG;AACpG,0CAA0C;AAC1C,8EAA8E;AAC9E,2BAA2B;AAC3B,kBAAkB;AAClB,yBAAyB;AACzB,IAAI;AACJ,wBAAwB;AACxB,cAAc;AACd,8BAA8B;AAC9B,gBAAgB;AAChB,uFAAuF;AACvF,2BAA2B;AAC3B,iCAAiC;AACjC,WAAW;AACX,OAAO;AACP,gCAAgC;AAEhC,wBAAwB;AACxB,2FAA2F;AAC3F,gCAAgC"}
@@ -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":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAIrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAE3D,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EAEpB,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EAAE,KAAK,QAAQ,EAA4B,MAAM,gBAAgB,CAAA;AAExE,cAAc,oBAAoB,CAAA;AAClC,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAA;AAC1C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,qBAAqB,CAAA;AAEnC,eAAO,MAAM,qBAAqB,eAA0C,CAAA;AAC5E,MAAM,MAAM,qBAAqB,GAAG,OAAO,qBAAqB,CAAA;AAEhE,MAAM,MAAM,eAAe,CACzB,SAAS,SAAS,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,EACzD,mBAAmB,SAAS,iBAAiB,GAAG,iBAAiB,IAC/D;IACF,QAAQ,CAAC,KAAK,EAAE,qBAAqB,CAAA;IACrC,8BAA8B;IAC9B,QAAQ,CAAC,aAAa,EAAE,SAAS,CAAA;IACjC,8BAA8B;IAC9B,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB,CAAA;IAEjD,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACtC,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAA;IAClC,0CAA0C;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IAErB,gBAAgB,EAAE,gBAAgB,CAAA;CACnC,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAA;IACnE,QAAQ,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,CAAA;IACrF;;OAEG;IAEH,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,YAAY,SAAS,WAAW,eAE5C,YAAY,GAAG;IAC1B,qDAAqD;IACrD,UAAU,CAAC,EAAE,gBAAgB,CAAC,eAAe,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAA;CAC1E,KACA,eAAe,CAAC,YAAY,CAAC,YAAY,CA2D3C,CAAA;AAED,yBAAiB,eAAe,CAAC;IAC/B,MAAM,MAAM,YAAY,CAAC,YAAY,SAAS,WAAW,IAAI,eAAe,CAC1E,6BAA6B,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,EACrD,yCAAyC,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CACrE,CAAA;IAED;;;;OAIG;IACH,KAAK,6BAA6B,CAAC,OAAO,SAAS,WAAW,CAAC,QAAQ,CAAC,IACtE,OAAO,SAAS,aAAa,CAAC,QAAQ,CAAC,GACnC;SAAG,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC;KAAE,GACpE,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GACtC;SAAG,CAAC,IAAI,MAAM,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;KAAE,GACpF,KAAK,CAAA;IAEb,KAAK,yCAAyC,CAAC,UAAU,SAAS,WAAW,CAAC,WAAW,CAAC,IACxF,UAAU,SAAS,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,GAC7C;SAAG,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;KAAE,GAAG;QAAE,kBAAkB,EAAE,cAAc,CAAA;KAAE,GACtF,UAAU,SAAS;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC,GAAG,CAAA;KAAE,GACpD;SAAG,CAAC,IAAI,MAAM,UAAU,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;KAAE,GAAG;QAAE,kBAAkB,EAAE,cAAc,CAAA;KAAE,GAC5G,KAAK,CAAA;;CACd"}
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":"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"}
@@ -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"}