@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.
- package/dist/.tsbuildinfo +1 -1
- package/dist/__tests__/fixture.d.ts +46 -34
- package/dist/__tests__/fixture.d.ts.map +1 -1
- package/dist/adapter-types.d.ts +1 -1
- package/dist/adapter-types.js +1 -1
- package/dist/derived-mutations.d.ts +4 -4
- package/dist/derived-mutations.d.ts.map +1 -1
- package/dist/derived-mutations.js.map +1 -1
- package/dist/devtools/devtools-messages.d.ts +53 -53
- package/dist/devtools/devtools-messages.js +1 -1
- package/dist/devtools/devtools-messages.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/mutation.d.ts +1 -1
- package/dist/mutation.d.ts.map +1 -1
- package/dist/mutation.js +6 -1
- package/dist/mutation.js.map +1 -1
- package/dist/query-builder/api.d.ts +190 -0
- package/dist/query-builder/api.d.ts.map +1 -0
- package/dist/query-builder/api.js +8 -0
- package/dist/query-builder/api.js.map +1 -0
- package/dist/query-builder/impl.d.ts +12 -0
- package/dist/query-builder/impl.d.ts.map +1 -0
- package/dist/query-builder/impl.js +226 -0
- package/dist/query-builder/impl.js.map +1 -0
- package/dist/query-builder/impl.test.d.ts +2 -0
- package/dist/query-builder/impl.test.d.ts.map +1 -0
- package/dist/query-builder/impl.test.js +183 -0
- package/dist/query-builder/impl.test.js.map +1 -0
- package/dist/query-builder/mod.d.ts +10 -0
- package/dist/query-builder/mod.d.ts.map +1 -0
- package/dist/query-builder/mod.js +10 -0
- package/dist/query-builder/mod.js.map +1 -0
- package/dist/query-info.d.ts +29 -39
- package/dist/query-info.d.ts.map +1 -1
- package/dist/query-info.js +4 -35
- package/dist/query-info.js.map +1 -1
- package/dist/schema/index.d.ts +2 -2
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/index.js +1 -0
- package/dist/schema/index.js.map +1 -1
- package/dist/schema/mutations.d.ts +8 -8
- package/dist/schema/schema-helpers.d.ts +2 -2
- package/dist/schema/schema-helpers.d.ts.map +1 -1
- package/dist/schema/system-tables.d.ts +246 -204
- package/dist/schema/system-tables.d.ts.map +1 -1
- package/dist/schema/table-def.d.ts +45 -24
- package/dist/schema/table-def.d.ts.map +1 -1
- package/dist/schema/table-def.js +10 -1
- package/dist/schema/table-def.js.map +1 -1
- package/dist/sql-queries/sql-queries.d.ts +1 -0
- package/dist/sql-queries/sql-queries.d.ts.map +1 -1
- package/dist/sql-queries/sql-queries.js +8 -5
- package/dist/sql-queries/sql-queries.js.map +1 -1
- package/dist/sync/next/test/mutation-fixtures.d.ts +7 -7
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/package.json +3 -3
- package/src/adapter-types.ts +1 -1
- package/src/derived-mutations.ts +4 -8
- package/src/devtools/devtools-messages.ts +1 -1
- package/src/index.ts +1 -0
- package/src/mutation.ts +9 -2
- package/src/query-builder/api.ts +288 -0
- package/src/query-builder/impl.test.ts +205 -0
- package/src/query-builder/impl.ts +268 -0
- package/src/query-builder/mod.ts +10 -0
- package/src/query-info.ts +66 -93
- package/src/schema/index.ts +4 -2
- package/src/schema/schema-helpers.ts +2 -2
- package/src/schema/table-def.ts +99 -68
- package/src/sql-queries/sql-queries.ts +9 -6
- 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"}
|
package/dist/query-info.d.ts
CHANGED
@@ -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
|
11
|
-
export
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
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
|
package/dist/query-info.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"query-info.d.ts","sourceRoot":"","sources":["../src/query-info.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
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"}
|
package/dist/query-info.js
CHANGED
@@ -1,38 +1,7 @@
|
|
1
1
|
export {};
|
2
|
-
//
|
3
|
-
//
|
4
|
-
//
|
5
|
-
//
|
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
|
package/dist/query-info.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"query-info.js","sourceRoot":"","sources":["../src/query-info.ts"],"names":[],"mappings":";
|
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"}
|
package/dist/schema/index.d.ts
CHANGED
@@ -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 {
|
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,
|
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,
|
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,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAG5D,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,YAAY,CAAC,GAAG,aAAa,CAAC,YAAY,CAAC,CAAA;IAC3E,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,CA4D3C,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"}
|
package/dist/schema/index.js
CHANGED
package/dist/schema/index.js.map
CHANGED
@@ -1 +1 @@
|
|
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;
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"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"}
|
@@ -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
|
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;
|
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"}
|