@livestore/common 0.0.0-snapshot-7438d57f493eb9f78c301e784856d60182aeb884 → 0.0.0-snapshot-669b49b56c8abe87f4e11263af7cbf506deab38e

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 (70) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/__tests__/fixture.d.ts +34 -46
  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 +0 -1
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +0 -1
  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 +1 -6
  19. package/dist/mutation.js.map +1 -1
  20. package/dist/query-info.d.ts +39 -29
  21. package/dist/query-info.d.ts.map +1 -1
  22. package/dist/query-info.js +35 -4
  23. package/dist/query-info.js.map +1 -1
  24. package/dist/schema/index.d.ts +2 -2
  25. package/dist/schema/index.d.ts.map +1 -1
  26. package/dist/schema/index.js +0 -1
  27. package/dist/schema/index.js.map +1 -1
  28. package/dist/schema/schema-helpers.d.ts +2 -2
  29. package/dist/schema/schema-helpers.d.ts.map +1 -1
  30. package/dist/schema/system-tables.d.ts +204 -246
  31. package/dist/schema/system-tables.d.ts.map +1 -1
  32. package/dist/schema/table-def.d.ts +24 -45
  33. package/dist/schema/table-def.d.ts.map +1 -1
  34. package/dist/schema/table-def.js +1 -10
  35. package/dist/schema/table-def.js.map +1 -1
  36. package/dist/version.d.ts +1 -1
  37. package/dist/version.d.ts.map +1 -1
  38. package/dist/version.js +1 -1
  39. package/dist/version.js.map +1 -1
  40. package/package.json +3 -3
  41. package/src/adapter-types.ts +1 -1
  42. package/src/derived-mutations.ts +8 -4
  43. package/src/devtools/devtools-messages.ts +1 -1
  44. package/src/index.ts +0 -1
  45. package/src/mutation.ts +2 -9
  46. package/src/query-info.ts +93 -66
  47. package/src/schema/index.ts +2 -4
  48. package/src/schema/schema-helpers.ts +2 -2
  49. package/src/schema/table-def.ts +68 -99
  50. package/src/version.ts +1 -1
  51. package/dist/query-builder/api.d.ts +0 -190
  52. package/dist/query-builder/api.d.ts.map +0 -1
  53. package/dist/query-builder/api.js +0 -8
  54. package/dist/query-builder/api.js.map +0 -1
  55. package/dist/query-builder/impl.d.ts +0 -12
  56. package/dist/query-builder/impl.d.ts.map +0 -1
  57. package/dist/query-builder/impl.js +0 -227
  58. package/dist/query-builder/impl.js.map +0 -1
  59. package/dist/query-builder/impl.test.d.ts +0 -2
  60. package/dist/query-builder/impl.test.d.ts.map +0 -1
  61. package/dist/query-builder/impl.test.js +0 -189
  62. package/dist/query-builder/impl.test.js.map +0 -1
  63. package/dist/query-builder/mod.d.ts +0 -10
  64. package/dist/query-builder/mod.d.ts.map +0 -1
  65. package/dist/query-builder/mod.js +0 -10
  66. package/dist/query-builder/mod.js.map +0 -1
  67. package/src/query-builder/api.ts +0 -288
  68. package/src/query-builder/impl.test.ts +0 -212
  69. package/src/query-builder/impl.ts +0 -269
  70. package/src/query-builder/mod.ts +0 -10
@@ -1,227 +0,0 @@
1
- import { Option, Predicate, Schema } from '@livestore/utils/effect';
2
- import { QueryBuilderAstSymbol, TypeId } from './api.js';
3
- export const makeQueryBuilder = (tableDef, ast = emptyAst(tableDef)) => {
4
- const api = {
5
- // eslint-disable-next-line prefer-arrow/prefer-arrow-functions
6
- select() {
7
- assertQueryBuilderAst(ast);
8
- // eslint-disable-next-line prefer-rest-params
9
- const params = [...arguments];
10
- if (params.length === 2 && typeof params[0] === 'string' && typeof params[1] === 'object') {
11
- const [col, options] = params;
12
- return makeQueryBuilder(tableDef, {
13
- ...ast,
14
- resultSchemaSingle: options.pluck ? ast.resultSchemaSingle.pipe(Schema.pluck(col)) : ast.resultSchemaSingle,
15
- select: { columns: [col] },
16
- });
17
- }
18
- const columns = params;
19
- return makeQueryBuilder(tableDef, {
20
- ...ast,
21
- resultSchemaSingle: columns.length === 0 ? ast.resultSchemaSingle : ast.resultSchemaSingle.pipe(Schema.pick(...columns)),
22
- select: { columns },
23
- });
24
- },
25
- // eslint-disable-next-line prefer-arrow/prefer-arrow-functions
26
- where() {
27
- if (isRowQuery(ast))
28
- return invalidQueryBuilder();
29
- if (arguments.length === 1) {
30
- // eslint-disable-next-line prefer-rest-params
31
- const params = arguments[0];
32
- const newOps = Object.entries(params)
33
- .filter(([, value]) => value !== undefined)
34
- .map(([col, value]) => Predicate.hasProperty(value, 'op') && Predicate.hasProperty(value, 'value')
35
- ? { col, op: value.op, value: value.value }
36
- : { col, op: '=', value });
37
- return makeQueryBuilder(tableDef, {
38
- ...ast,
39
- where: [...ast.where, ...newOps],
40
- });
41
- }
42
- // eslint-disable-next-line prefer-rest-params
43
- const [col, opOrValue, valueOrUndefined] = arguments;
44
- const op = valueOrUndefined === undefined ? '=' : opOrValue;
45
- const value = valueOrUndefined === undefined ? opOrValue : valueOrUndefined;
46
- return makeQueryBuilder(tableDef, {
47
- ...ast,
48
- where: [...ast.where, { col, op, value }],
49
- });
50
- },
51
- // eslint-disable-next-line prefer-arrow/prefer-arrow-functions
52
- orderBy() {
53
- assertQueryBuilderAst(ast);
54
- if (arguments.length === 0 || arguments.length > 2)
55
- return invalidQueryBuilder();
56
- if (arguments.length === 1) {
57
- // eslint-disable-next-line prefer-rest-params
58
- const params = arguments[0];
59
- return makeQueryBuilder(tableDef, {
60
- ...ast,
61
- orderBy: [...ast.orderBy, ...params],
62
- });
63
- }
64
- // eslint-disable-next-line prefer-rest-params
65
- const [col, direction] = arguments;
66
- return makeQueryBuilder(tableDef, {
67
- ...ast,
68
- orderBy: [...ast.orderBy, { col, direction }],
69
- });
70
- },
71
- limit: (limit) => {
72
- assertQueryBuilderAst(ast);
73
- return makeQueryBuilder(tableDef, { ...ast, limit: Option.some(limit) });
74
- },
75
- offset: (offset) => {
76
- assertQueryBuilderAst(ast);
77
- return makeQueryBuilder(tableDef, { ...ast, offset: Option.some(offset) });
78
- },
79
- count: () => {
80
- if (isRowQuery(ast))
81
- return invalidQueryBuilder();
82
- return makeQueryBuilder(tableDef, {
83
- ...ast,
84
- resultSchema: Schema.Struct({ count: Schema.Number }).pipe(Schema.pluck('count'), Schema.Array, Schema.headOrElse()),
85
- _tag: 'CountQuery',
86
- });
87
- },
88
- first: (options) => {
89
- assertQueryBuilderAst(ast);
90
- if (ast.limit._tag === 'Some')
91
- return invalidQueryBuilder(`.first() can't be called after .limit()`);
92
- return makeQueryBuilder(tableDef, {
93
- ...ast,
94
- limit: Option.some(1),
95
- // TODO improve
96
- pickFirst: options?.fallback ? { fallback: options.fallback } : { fallback: () => undefined },
97
- });
98
- },
99
- // eslint-disable-next-line prefer-arrow/prefer-arrow-functions
100
- row() {
101
- // eslint-disable-next-line prefer-rest-params
102
- const params = [...arguments];
103
- let id;
104
- if (tableDef.options.isSingleton) {
105
- id = tableDef.sqliteDef.columns.id.default.pipe(Option.getOrThrow);
106
- }
107
- else {
108
- id = params[0];
109
- if (id === undefined) {
110
- invalidQueryBuilder(`Id missing for row query on non-singleton table ${tableDef.sqliteDef.name}`);
111
- }
112
- }
113
- // TODO validate all required columns are present and values are matching the schema
114
- const insertValues = params[1]?.insertValues ?? {};
115
- return makeQueryBuilder(tableDef, {
116
- _tag: 'RowQuery',
117
- id,
118
- tableDef,
119
- insertValues,
120
- });
121
- },
122
- };
123
- return {
124
- [TypeId]: TypeId,
125
- [QueryBuilderAstSymbol]: ast,
126
- asSql: () => astToSql(ast),
127
- toString: () => astToSql(ast).query,
128
- ...api,
129
- };
130
- };
131
- const emptyAst = (tableDef) => ({
132
- _tag: 'SelectQuery',
133
- columns: [],
134
- pickFirst: false,
135
- select: { columns: [] },
136
- orderBy: [],
137
- offset: Option.none(),
138
- limit: Option.none(),
139
- tableDef,
140
- where: [],
141
- resultSchemaSingle: tableDef.schema,
142
- });
143
- const astToSql = (ast) => {
144
- if (isRowQuery(ast)) {
145
- // TODO
146
- return { query: `SELECT * FROM '${ast.tableDef.sqliteDef.name}' WHERE id = ?`, bindValues: [ast.id] };
147
- }
148
- const bindValues = [];
149
- // TODO bind values
150
- const whereStmt = ast.where.length > 0
151
- ? `WHERE ${ast.where
152
- .map(({ col, op, value }) => {
153
- if (value === null) {
154
- if (op !== '=' && op !== '!=') {
155
- throw new Error(`Unsupported operator for NULL value: ${op}`);
156
- }
157
- const opStmt = op === '=' ? 'IS' : 'IS NOT';
158
- return `${col} ${opStmt} NULL`;
159
- }
160
- else {
161
- const colDef = ast.tableDef.sqliteDef.columns[col];
162
- if (colDef === undefined) {
163
- throw new Error(`Column ${col} not found`);
164
- }
165
- const encodedValue = Schema.encodeSync(colDef.schema)(value);
166
- bindValues.push(encodedValue);
167
- return `${col} ${op} ?`;
168
- }
169
- })
170
- .join(' AND ')}`
171
- : '';
172
- if (ast._tag === 'CountQuery') {
173
- const selectFromStmt = `SELECT COUNT(*) as count FROM '${ast.tableDef.sqliteDef.name}'`;
174
- const query = [selectFromStmt, whereStmt].filter((_) => _.length > 0).join(' ');
175
- return { query, bindValues };
176
- }
177
- const columnsStmt = ast.select.columns.length === 0 ? '*' : ast.select.columns.join(', ');
178
- const selectStmt = `SELECT ${columnsStmt}`;
179
- const fromStmt = `FROM '${ast.tableDef.sqliteDef.name}'`;
180
- const orderByStmt = ast.orderBy.length > 0
181
- ? `ORDER BY ${ast.orderBy.map(({ col, direction }) => `${col} ${direction}`).join(', ')}`
182
- : '';
183
- const limitStmt = ast.limit._tag === 'Some' ? `LIMIT ?` : '';
184
- if (ast.limit._tag === 'Some')
185
- bindValues.push(ast.limit.value);
186
- const offsetStmt = ast.offset._tag === 'Some' ? `OFFSET ?` : '';
187
- if (ast.offset._tag === 'Some')
188
- bindValues.push(ast.offset.value);
189
- const query = [selectStmt, fromStmt, whereStmt, orderByStmt, offsetStmt, limitStmt]
190
- .map((_) => _.trim())
191
- .filter((_) => _.length > 0)
192
- .join(' ');
193
- // TODO bind values
194
- return { query, bindValues };
195
- };
196
- // eslint-disable-next-line prefer-arrow/prefer-arrow-functions
197
- function assertQueryBuilderAst(ast) {
198
- if (ast._tag !== 'SelectQuery') {
199
- throw new Error('Expected SelectQuery but got ' + ast._tag);
200
- }
201
- }
202
- const isRowQuery = (ast) => ast._tag === 'RowQuery';
203
- export const invalidQueryBuilder = (msg) => {
204
- throw new Error('Invalid query builder' + (msg ? `: ${msg}` : ''));
205
- };
206
- export const getResultSchema = (qb) => {
207
- const queryAst = qb[QueryBuilderAstSymbol];
208
- if (queryAst._tag === 'SelectQuery') {
209
- const arraySchema = Schema.Array(queryAst.resultSchemaSingle);
210
- if (queryAst.pickFirst !== false) {
211
- return arraySchema.pipe(Schema.headOrElse(queryAst.pickFirst.fallback));
212
- }
213
- return arraySchema;
214
- }
215
- else if (queryAst._tag === 'CountQuery') {
216
- return Schema.Struct({ count: Schema.Number }).pipe(Schema.pluck('count'), Schema.Array, Schema.headOrElse());
217
- }
218
- else {
219
- if (queryAst.tableDef.options.isSingleColumn) {
220
- return queryAst.tableDef.schema.pipe(Schema.pluck('value'), Schema.Array, Schema.headOrElse());
221
- }
222
- else {
223
- return queryAst.tableDef.schema.pipe(Schema.Array, Schema.headOrElse());
224
- }
225
- }
226
- };
227
- //# sourceMappingURL=impl.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"impl.js","sourceRoot":"","sources":["../../src/query-builder/impl.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=impl.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"impl.test.d.ts","sourceRoot":"","sources":["../../src/query-builder/impl.test.ts"],"names":[],"mappings":""}
@@ -1,189 +0,0 @@
1
- import { Schema } from '@livestore/utils/effect';
2
- import { describe, expect, it } from 'vitest';
3
- import { DbSchema } from '../schema/index.js';
4
- import { getResultSchema } from './impl.js';
5
- const todos = DbSchema.table('todos', {
6
- id: DbSchema.text({ primaryKey: true }),
7
- text: DbSchema.text({ default: '', nullable: false }),
8
- completed: DbSchema.boolean({ default: false, nullable: false }),
9
- status: DbSchema.text({ schema: Schema.Literal('active', 'completed') }),
10
- deletedAt: DbSchema.datetime({ nullable: true }),
11
- // TODO consider leaning more into Effect schema
12
- // other: Schema.Number.pipe(DbSchema.asInteger),
13
- }, { deriveMutations: true });
14
- const comments = DbSchema.table('comments', {
15
- id: DbSchema.text({ primaryKey: true }),
16
- text: DbSchema.text({ default: '', nullable: false }),
17
- todoId: DbSchema.text({}),
18
- });
19
- const db = { todos: todos.query, comments: comments.query };
20
- describe('query builder', () => {
21
- describe('result schema', () => {
22
- it('should print the schema', () => {
23
- expect(String(getResultSchema(db.todos))).toMatchInlineSnapshot(`"ReadonlyArray<todos>"`);
24
- });
25
- });
26
- describe('basic queries', () => {
27
- it('should handle simple SELECT queries', () => {
28
- expect(db.todos.asSql()).toMatchInlineSnapshot(`
29
- {
30
- "bindValues": [],
31
- "query": "SELECT * FROM 'todos'",
32
- }
33
- `);
34
- expect(db.todos.select('id', 'text').asSql()).toMatchInlineSnapshot(`
35
- {
36
- "bindValues": [],
37
- "query": "SELECT id, text FROM 'todos'",
38
- }
39
- `);
40
- });
41
- it('should handle WHERE clauses', () => {
42
- expect(db.todos.select('id', 'text').where('completed', true).asSql()).toMatchInlineSnapshot(`
43
- {
44
- "bindValues": [
45
- 1,
46
- ],
47
- "query": "SELECT id, text FROM 'todos' WHERE completed = ?",
48
- }
49
- `);
50
- expect(db.todos.select('id', 'text').where('completed', '!=', true).asSql()).toMatchInlineSnapshot(`
51
- {
52
- "bindValues": [
53
- 1,
54
- ],
55
- "query": "SELECT id, text FROM 'todos' WHERE completed != ?",
56
- }
57
- `);
58
- expect(db.todos.select('id', 'text').where({ completed: true }).asSql()).toMatchInlineSnapshot(`
59
- {
60
- "bindValues": [
61
- 1,
62
- ],
63
- "query": "SELECT id, text FROM 'todos' WHERE completed = ?",
64
- }
65
- `);
66
- expect(db.todos.select('id', 'text').where({ completed: undefined }).asSql()).toMatchInlineSnapshot(`
67
- {
68
- "bindValues": [],
69
- "query": "SELECT id, text FROM 'todos'",
70
- }
71
- `);
72
- expect(db.todos
73
- .select('id', 'text')
74
- .where({ deletedAt: { op: '<=', value: new Date('2024-01-01') } })
75
- .asSql()).toMatchInlineSnapshot(`
76
- {
77
- "bindValues": [
78
- "2024-01-01T00:00:00.000Z",
79
- ],
80
- "query": "SELECT id, text FROM 'todos' WHERE deletedAt <= ?",
81
- }
82
- `);
83
- });
84
- it('should handle OFFSET and LIMIT clauses', () => {
85
- expect(db.todos.select('id', 'text').where('completed', true).offset(10).limit(10).asSql())
86
- .toMatchInlineSnapshot(`
87
- {
88
- "bindValues": [
89
- 1,
90
- 10,
91
- 10,
92
- ],
93
- "query": "SELECT id, text FROM 'todos' WHERE completed = ? OFFSET ? LIMIT ?",
94
- }
95
- `);
96
- });
97
- it('should handle COUNT queries', () => {
98
- expect(db.todos.count().asSql()).toMatchInlineSnapshot(`
99
- {
100
- "bindValues": [],
101
- "query": "SELECT COUNT(*) as count FROM 'todos'",
102
- }
103
- `);
104
- expect(db.todos.count().where('completed', true).asSql()).toMatchInlineSnapshot(`
105
- {
106
- "bindValues": [
107
- 1,
108
- ],
109
- "query": "SELECT COUNT(*) as count FROM 'todos' WHERE completed = ?",
110
- }
111
- `);
112
- });
113
- it('should handle NULL comparisons', () => {
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 NULL",
118
- }
119
- `);
120
- expect(db.todos.select('id', 'text').where('deletedAt', '!=', null).asSql()).toMatchInlineSnapshot(`
121
- {
122
- "bindValues": [],
123
- "query": "SELECT id, text FROM 'todos' WHERE deletedAt IS NOT NULL",
124
- }
125
- `);
126
- });
127
- it('should handle orderBy', () => {
128
- expect(db.todos.orderBy('completed', 'desc').asSql()).toMatchInlineSnapshot(`
129
- {
130
- "bindValues": [],
131
- "query": "SELECT * FROM 'todos' ORDER BY completed desc",
132
- }
133
- `);
134
- expect(db.todos.orderBy([{ col: 'completed', direction: 'desc' }]).asSql()).toMatchInlineSnapshot(`
135
- {
136
- "bindValues": [],
137
- "query": "SELECT * FROM 'todos' ORDER BY completed desc",
138
- }
139
- `);
140
- expect(db.todos.orderBy([]).asSql()).toMatchInlineSnapshot(`
141
- {
142
- "bindValues": [],
143
- "query": "SELECT * FROM 'todos'",
144
- }
145
- `);
146
- });
147
- });
148
- describe('row queries', () => {
149
- it('should handle row queries', () => {
150
- expect(db.todos.row('123', { insertValues: { status: 'completed' } }).asSql()).toMatchInlineSnapshot(`
151
- {
152
- "bindValues": [
153
- "123",
154
- ],
155
- "query": "SELECT * FROM 'todos' WHERE id = ?",
156
- }
157
- `);
158
- });
159
- });
160
- });
161
- // TODO nested queries
162
- // const rawSql = <A, I>(sql: string, params: { [key: string]: any }, schema: Schema.Schema<A, I>) =>
163
- // ({
164
- // sql,
165
- // params,
166
- // schema,
167
- // }) as any as QueryBuilder<A, any>
168
- // Translates to
169
- // SELECT todos.*, (SELECT COUNT(*) FROM comments WHERE comments.todoId = todos.id) AS commentsCount
170
- // FROM todos WHERE todos.completed = true
171
- // const q4CommentsCountSchema = Schema.Struct({ count: Schema.Number }).pipe(
172
- // Schema.pluck('count'),
173
- // Schema.Array,
174
- // Schema.headOrElse(),
175
- // )
176
- // const _q4$ = db.todos
177
- // .select({
178
- // commentsCount: (ref) =>
179
- // rawSql(
180
- // sql`SELECT COUNT(*) as count FROM comments WHERE comments.todoId = $todoId`,
181
- // { todoId: ref },
182
- // q4CommentsCountSchema,
183
- // ),
184
- // })
185
- // .where({ completed: true })
186
- // const _q5$ = db.todos
187
- // .select({ commentsCount: (todoId: TODO) => comments.query.where({ todoId }).count() })
188
- // .where({ completed: true })
189
- //# sourceMappingURL=impl.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"impl.test.js","sourceRoot":"","sources":["../../src/query-builder/impl.test.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,10 +0,0 @@
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
@@ -1 +0,0 @@
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"}