@livestore/livestore 0.0.13 → 0.0.14
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/README.md +18 -21
- package/dist/.tsbuildinfo +1 -1
- package/dist/QueryCache.d.ts +1 -1
- package/dist/QueryCache.d.ts.map +1 -1
- package/dist/QueryCache.js.map +1 -1
- package/dist/__tests__/react/fixture.d.ts +5 -4
- package/dist/__tests__/react/fixture.d.ts.map +1 -1
- package/dist/__tests__/react/fixture.js +13 -14
- package/dist/__tests__/react/fixture.js.map +1 -1
- package/dist/__tests__/react/useComponentState.test.d.ts +2 -0
- package/dist/__tests__/react/useComponentState.test.d.ts.map +1 -0
- package/dist/__tests__/react/useComponentState.test.js +68 -0
- package/dist/__tests__/react/useComponentState.test.js.map +1 -0
- package/dist/__tests__/react/useLQuery.test.d.ts +2 -0
- package/dist/__tests__/react/useLQuery.test.d.ts.map +1 -0
- package/dist/__tests__/react/useLQuery.test.js +38 -0
- package/dist/__tests__/react/useLQuery.test.js.map +1 -0
- package/dist/__tests__/react/useLiveStoreComponent.test.js +4 -9
- package/dist/__tests__/react/useLiveStoreComponent.test.js.map +1 -1
- package/dist/__tests__/react/useQuery.test.d.ts +2 -0
- package/dist/__tests__/react/useQuery.test.d.ts.map +1 -0
- package/dist/__tests__/react/useQuery.test.js +33 -0
- package/dist/__tests__/react/useQuery.test.js.map +1 -0
- package/dist/__tests__/react/utils/extractStackInfoFromStackTrace.test.d.ts +2 -0
- package/dist/__tests__/react/utils/extractStackInfoFromStackTrace.test.d.ts.map +1 -0
- package/dist/__tests__/react/utils/extractStackInfoFromStackTrace.test.js +38 -0
- package/dist/__tests__/react/utils/extractStackInfoFromStackTrace.test.js.map +1 -0
- package/dist/__tests__/reactive.test.js +168 -95
- package/dist/__tests__/reactive.test.js.map +1 -1
- package/dist/__tests__/reactiveQueries/sql.test.d.ts +2 -0
- package/dist/__tests__/reactiveQueries/sql.test.d.ts.map +1 -0
- package/dist/__tests__/reactiveQueries/sql.test.js +337 -0
- package/dist/__tests__/reactiveQueries/sql.test.js.map +1 -0
- package/dist/effect/LiveStore.d.ts +3 -9
- package/dist/effect/LiveStore.d.ts.map +1 -1
- package/dist/effect/LiveStore.js +11 -7
- package/dist/effect/LiveStore.js.map +1 -1
- package/dist/inMemoryDatabase.d.ts +17 -21
- package/dist/inMemoryDatabase.d.ts.map +1 -1
- package/dist/inMemoryDatabase.js +2 -9
- package/dist/inMemoryDatabase.js.map +1 -1
- package/dist/index.d.ts +9 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -3
- package/dist/index.js.map +1 -1
- package/dist/migrations.d.ts +7 -0
- package/dist/migrations.d.ts.map +1 -1
- package/dist/migrations.js +18 -13
- package/dist/migrations.js.map +1 -1
- package/dist/react/LiveStoreProvider.d.ts +1 -3
- package/dist/react/LiveStoreProvider.d.ts.map +1 -1
- package/dist/react/LiveStoreProvider.js +13 -10
- package/dist/react/LiveStoreProvider.js.map +1 -1
- package/dist/react/index.d.ts +4 -4
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +3 -3
- package/dist/react/index.js.map +1 -1
- package/dist/react/useComponentState.d.ts +50 -0
- package/dist/react/useComponentState.d.ts.map +1 -0
- package/dist/react/useComponentState.js +248 -0
- package/dist/react/useComponentState.js.map +1 -0
- package/dist/react/useGlobalQuery.d.ts +2 -2
- package/dist/react/useGlobalQuery.d.ts.map +1 -1
- package/dist/react/useGlobalQuery.js +5 -2
- package/dist/react/useGlobalQuery.js.map +1 -1
- package/dist/react/useGraphQL.d.ts +5 -3
- package/dist/react/useGraphQL.d.ts.map +1 -1
- package/dist/react/useGraphQL.js +27 -7
- package/dist/react/useGraphQL.js.map +1 -1
- package/dist/react/useLiveStoreComponent.d.ts +14 -14
- package/dist/react/useLiveStoreComponent.d.ts.map +1 -1
- package/dist/react/useLiveStoreComponent.js +151 -91
- package/dist/react/useLiveStoreComponent.js.map +1 -1
- package/dist/react/useQuery.d.ts +3 -0
- package/dist/react/useQuery.d.ts.map +1 -0
- package/dist/react/useQuery.js +42 -0
- package/dist/react/useQuery.js.map +1 -0
- package/dist/react/useTemporaryQuery.d.ts +8 -0
- package/dist/react/useTemporaryQuery.d.ts.map +1 -0
- package/dist/react/useTemporaryQuery.js +17 -0
- package/dist/react/useTemporaryQuery.js.map +1 -0
- package/dist/react/utils/extractNamesFromStackTrace.d.ts +3 -0
- package/dist/react/utils/extractNamesFromStackTrace.d.ts.map +1 -0
- package/dist/react/utils/extractNamesFromStackTrace.js +40 -0
- package/dist/react/utils/extractNamesFromStackTrace.js.map +1 -0
- package/dist/react/utils/extractStackInfoFromStackTrace.d.ts +7 -0
- package/dist/react/utils/extractStackInfoFromStackTrace.d.ts.map +1 -0
- package/dist/react/utils/extractStackInfoFromStackTrace.js +40 -0
- package/dist/react/utils/extractStackInfoFromStackTrace.js.map +1 -0
- package/dist/reactive.d.ts +42 -48
- package/dist/reactive.d.ts.map +1 -1
- package/dist/reactive.js +293 -186
- package/dist/reactive.js.map +1 -1
- package/dist/reactiveQueries/base-class.d.ts +28 -20
- package/dist/reactiveQueries/base-class.d.ts.map +1 -1
- package/dist/reactiveQueries/base-class.js +25 -17
- package/dist/reactiveQueries/base-class.js.map +1 -1
- package/dist/reactiveQueries/graph.d.ts +10 -0
- package/dist/reactiveQueries/graph.d.ts.map +1 -0
- package/dist/reactiveQueries/graph.js +6 -0
- package/dist/reactiveQueries/graph.js.map +1 -0
- package/dist/reactiveQueries/graphql.d.ts +35 -18
- package/dist/reactiveQueries/graphql.d.ts.map +1 -1
- package/dist/reactiveQueries/graphql.js +91 -10
- package/dist/reactiveQueries/graphql.js.map +1 -1
- package/dist/reactiveQueries/js.d.ts +17 -13
- package/dist/reactiveQueries/js.d.ts.map +1 -1
- package/dist/reactiveQueries/js.js +31 -8
- package/dist/reactiveQueries/js.js.map +1 -1
- package/dist/reactiveQueries/sql.d.ts +22 -18
- package/dist/reactiveQueries/sql.d.ts.map +1 -1
- package/dist/reactiveQueries/sql.js +81 -16
- package/dist/reactiveQueries/sql.js.map +1 -1
- package/dist/schema.d.ts +0 -2
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +3 -6
- package/dist/schema.js.map +1 -1
- package/dist/storage/in-memory/index.d.ts +2 -2
- package/dist/storage/in-memory/index.d.ts.map +1 -1
- package/dist/storage/in-memory/index.js.map +1 -1
- package/dist/storage/index.d.ts +2 -2
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/tauri/index.d.ts +2 -2
- package/dist/storage/tauri/index.d.ts.map +1 -1
- package/dist/storage/tauri/index.js.map +1 -1
- package/dist/storage/web-worker/index.d.ts +4 -4
- package/dist/storage/web-worker/index.d.ts.map +1 -1
- package/dist/storage/web-worker/index.js +3 -5
- package/dist/storage/web-worker/index.js.map +1 -1
- package/dist/storage/web-worker/worker.js +2 -2
- package/dist/storage/web-worker/worker.js.map +1 -1
- package/dist/store.d.ts +19 -52
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +323 -266
- package/dist/store.js.map +1 -1
- package/dist/util.d.ts +3 -1
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +2 -0
- package/dist/util.js.map +1 -1
- package/package.json +2 -1
- package/src/QueryCache.ts +1 -1
- package/src/__tests__/react/fixture.tsx +21 -16
- package/src/__tests__/react/{useLiveStoreComponent.test.tsx → useComponentState.test.tsx} +9 -20
- package/src/__tests__/react/useQuery.test.tsx +48 -0
- package/src/__tests__/react/utils/extractStackInfoFromStackTrace.test.ts +40 -0
- package/src/__tests__/reactive.test.ts +194 -142
- package/src/__tests__/reactiveQueries/sql.test.ts +372 -0
- package/src/effect/LiveStore.ts +14 -18
- package/src/inMemoryDatabase.ts +22 -30
- package/src/index.ts +8 -6
- package/src/migrations.ts +39 -21
- package/src/react/LiveStoreProvider.tsx +13 -16
- package/src/react/index.ts +4 -8
- package/src/react/{useLiveStoreComponent.ts → useComponentState.ts} +98 -230
- package/src/react/useQuery.ts +58 -0
- package/src/react/useTemporaryQuery.ts +21 -0
- package/src/react/utils/extractStackInfoFromStackTrace.ts +47 -0
- package/src/reactive.ts +386 -267
- package/src/reactiveQueries/base-class.ts +61 -39
- package/src/reactiveQueries/graph.ts +15 -0
- package/src/reactiveQueries/graphql.ts +147 -31
- package/src/reactiveQueries/js.ts +54 -21
- package/src/reactiveQueries/sql.ts +128 -37
- package/src/schema.ts +2 -5
- package/src/storage/in-memory/index.ts +2 -2
- package/src/storage/index.ts +2 -2
- package/src/storage/tauri/index.ts +2 -2
- package/src/storage/web-worker/index.ts +6 -8
- package/src/storage/web-worker/worker.ts +2 -2
- package/src/store.ts +394 -418
- package/src/util.ts +8 -2
- package/dist/backends/base.d.ts +0 -13
- package/dist/backends/base.d.ts.map +0 -1
- package/dist/backends/base.js +0 -53
- package/dist/backends/base.js.map +0 -1
- package/dist/backends/in-memory/index.d.ts +0 -22
- package/dist/backends/in-memory/index.d.ts.map +0 -1
- package/dist/backends/in-memory/index.js +0 -45
- package/dist/backends/in-memory/index.js.map +0 -1
- package/dist/backends/index.d.ts +0 -41
- package/dist/backends/index.d.ts.map +0 -1
- package/dist/backends/index.js +0 -16
- package/dist/backends/index.js.map +0 -1
- package/dist/backends/tauri/index.d.ts +0 -21
- package/dist/backends/tauri/index.d.ts.map +0 -1
- package/dist/backends/tauri/index.js +0 -48
- package/dist/backends/tauri/index.js.map +0 -1
- package/dist/backends/utils/idb.d.ts +0 -10
- package/dist/backends/utils/idb.d.ts.map +0 -1
- package/dist/backends/utils/idb.js +0 -58
- package/dist/backends/utils/idb.js.map +0 -1
- package/dist/backends/web-worker/index.d.ts +0 -26
- package/dist/backends/web-worker/index.d.ts.map +0 -1
- package/dist/backends/web-worker/index.js +0 -63
- package/dist/backends/web-worker/index.js.map +0 -1
- package/dist/backends/web-worker/worker.d.ts +0 -17
- package/dist/backends/web-worker/worker.d.ts.map +0 -1
- package/dist/backends/web-worker/worker.js +0 -139
- package/dist/backends/web-worker/worker.js.map +0 -1
- package/dist/storage/base.d.ts +0 -10
- package/dist/storage/base.d.ts.map +0 -1
- package/dist/storage/base.js +0 -14
- package/dist/storage/base.js.map +0 -1
- package/src/react/useGlobalQuery.ts +0 -37
- package/src/react/useGraphQL.ts +0 -112
|
@@ -1,31 +1,96 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { shouldNeverHappen } from '@livestore/utils';
|
|
2
|
+
import * as otel from '@opentelemetry/api';
|
|
3
|
+
import { prepareBindValues } from '../util.js';
|
|
4
|
+
import { LiveStoreQueryBase, makeGetAtomResult } from './base-class.js';
|
|
5
|
+
import { dbGraph } from './graph.js';
|
|
6
|
+
import { LiveStoreJSQuery } from './js.js';
|
|
7
|
+
export const querySQL = (query, options) => new LiveStoreSQLQuery({
|
|
8
|
+
label: options.label,
|
|
9
|
+
genQueryString: query,
|
|
10
|
+
queriedTables: options.queriedTables,
|
|
11
|
+
bindValues: options.bindValues,
|
|
12
|
+
});
|
|
2
13
|
/* An object encapsulating a reactive SQL query */
|
|
3
14
|
export class LiveStoreSQLQuery extends LiveStoreQueryBase {
|
|
4
|
-
constructor({
|
|
5
|
-
super(
|
|
15
|
+
constructor({ genQueryString, queriedTables, bindValues, label, }) {
|
|
16
|
+
super();
|
|
6
17
|
this._tag = 'sql';
|
|
7
18
|
/**
|
|
8
19
|
* Returns a new reactive query that contains the result of
|
|
9
20
|
* running an arbitrary JS computation on the results of this SQL query.
|
|
10
21
|
*/
|
|
11
|
-
this.pipe = (
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
22
|
+
this.pipe = (fn) => new LiveStoreJSQuery({
|
|
23
|
+
fn: (get) => {
|
|
24
|
+
const results = get(this.results$);
|
|
25
|
+
return fn(results, get);
|
|
26
|
+
},
|
|
16
27
|
label: `${this.label}:js`,
|
|
17
|
-
|
|
28
|
+
onDestroy: () => this.destroy(),
|
|
18
29
|
});
|
|
19
30
|
/** Returns a reactive query */
|
|
20
|
-
this.getFirstRow = (args) =>
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
31
|
+
this.getFirstRow = (args) => new LiveStoreJSQuery({
|
|
32
|
+
fn: (get) => {
|
|
33
|
+
const results = get(this.results$);
|
|
34
|
+
if (results.length === 0 && args?.defaultValue === undefined) {
|
|
35
|
+
// const queryLabel = this._tag === 'sql' ? this.queryString$!.computeResult(otelContext) : this.label
|
|
36
|
+
const queryLabel = this.label;
|
|
37
|
+
throw new Error(`Expected query ${queryLabel} to return at least one result`);
|
|
38
|
+
}
|
|
39
|
+
return results[0] ?? args.defaultValue;
|
|
40
|
+
},
|
|
41
|
+
label: `${this.label}:first`,
|
|
42
|
+
onDestroy: () => this.destroy(),
|
|
43
|
+
});
|
|
44
|
+
this.destroy = () => {
|
|
45
|
+
dbGraph.destroy(this.queryString$);
|
|
46
|
+
dbGraph.destroy(this.results$);
|
|
47
|
+
};
|
|
48
|
+
// TODO don't even create a thunk if query string is static
|
|
49
|
+
const queryString$ = dbGraph.makeThunk((get, addDebugInfo, { rootOtelContext }, otelContext) => {
|
|
50
|
+
if (typeof genQueryString === 'function') {
|
|
51
|
+
const queryString = genQueryString(makeGetAtomResult(get, otelContext ?? rootOtelContext));
|
|
52
|
+
addDebugInfo({ _tag: 'js', label: `${label}:queryString`, query: queryString });
|
|
53
|
+
return queryString;
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
return genQueryString;
|
|
25
57
|
}
|
|
26
|
-
|
|
27
|
-
}, { componentKey: this.componentKey, label: `${this.label}:first`, otelContext: this.otelContext });
|
|
58
|
+
}, { label: `${label}:queryString`, meta: { liveStoreThunkType: 'sqlQueryString' } });
|
|
28
59
|
this.queryString$ = queryString$;
|
|
60
|
+
// TODO come up with different way to handle labels
|
|
61
|
+
// label = label ?? `sql(${queryString$.computeResult()})`
|
|
62
|
+
this.label = label ?? `sql(${genQueryString.toString()})`;
|
|
63
|
+
// span.updateName(`querySQL:${label}`)
|
|
64
|
+
const queryLabel = `${label}:results`;
|
|
65
|
+
// const queryLabel = `${label}:results` + (this.temporaryQueries ? ':temp' : '')
|
|
66
|
+
const results$ = dbGraph.makeThunk((get, addDebugInfo, { store, otelTracer, rootOtelContext }, otelContext) => otelTracer.startActiveSpan('sql:', // NOTE span name will be overridden further down
|
|
67
|
+
{}, otelContext ?? rootOtelContext, (span) => {
|
|
68
|
+
try {
|
|
69
|
+
const otelContext = otel.trace.setSpan(otel.context.active(), span);
|
|
70
|
+
// Establish a reactive dependency on the tables used in the query
|
|
71
|
+
for (const tableName of queriedTables) {
|
|
72
|
+
const tableRef = store.tableRefs[tableName] ?? shouldNeverHappen(`No table ref found for ${tableName}`);
|
|
73
|
+
get(tableRef, otelContext);
|
|
74
|
+
}
|
|
75
|
+
const sqlString = get(queryString$, otelContext);
|
|
76
|
+
span.setAttribute('sql.query', sqlString);
|
|
77
|
+
span.updateName(`sql:${sqlString.slice(0, 50)}`);
|
|
78
|
+
const results = store.inMemoryDB.select(sqlString, {
|
|
79
|
+
queriedTables,
|
|
80
|
+
bindValues: bindValues ? prepareBindValues(bindValues, sqlString) : undefined,
|
|
81
|
+
otelContext,
|
|
82
|
+
});
|
|
83
|
+
span.setAttribute('sql.rowsCount', results.length);
|
|
84
|
+
addDebugInfo({ _tag: 'sql', label: label ?? '', query: sqlString });
|
|
85
|
+
return results;
|
|
86
|
+
}
|
|
87
|
+
finally {
|
|
88
|
+
span.end();
|
|
89
|
+
}
|
|
90
|
+
}), { label: queryLabel });
|
|
91
|
+
// this.queryString$ = queryString$
|
|
92
|
+
// this.results$ = results$
|
|
93
|
+
// this.payload = payload
|
|
29
94
|
this.results$ = results$;
|
|
30
95
|
}
|
|
31
96
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql.js","sourceRoot":"","sources":["../../src/reactiveQueries/sql.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sql.js","sourceRoot":"","sources":["../../src/reactiveQueries/sql.ts"],"names":[],"mappings":"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"}
|
package/dist/schema.d.ts
CHANGED
|
@@ -49,7 +49,6 @@ export type MaterializedViewDefinitions = {
|
|
|
49
49
|
export type ActionDefinitions<TArgsMap extends Record<string, any>> = {
|
|
50
50
|
[key in keyof TArgsMap]: ActionDefinition<TArgsMap[key]>;
|
|
51
51
|
};
|
|
52
|
-
export declare const EVENT_CURSOR_TABLE = "__livestore_event_cursor";
|
|
53
52
|
export declare const SCHEMA_META_TABLE = "__livestore_schema";
|
|
54
53
|
declare const schemaMetaTable: SqliteDsl.TableDefinition<"__livestore_schema", {
|
|
55
54
|
tableName: SqliteDsl.ColumnDefinition<SqliteDsl.FieldType.FieldTypeText<string, string>, false>;
|
|
@@ -59,7 +58,6 @@ declare const schemaMetaTable: SqliteDsl.TableDefinition<"__livestore_schema", {
|
|
|
59
58
|
}>;
|
|
60
59
|
export type SchemaMetaRow = SqliteDsl.FromTable.RowDecoded<typeof schemaMetaTable>;
|
|
61
60
|
export declare const systemTables: {
|
|
62
|
-
__livestore_event_cursor: SqliteAst.Table;
|
|
63
61
|
__livestore_schema: SqliteAst.Table;
|
|
64
62
|
};
|
|
65
63
|
export declare const defineTables: <T extends TableDefinitions>(tables: T) => T;
|
package/dist/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAEpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAI5C,MAAM,MAAM,KAAK,GAAG;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAGD,eAAO,MAAM,oBAAoB,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC,KAAK,CAAA;CAAO,CAAA;AAE1E,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE;QACN,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;KACzD,CAAA;IACD,iBAAiB,CAAC,EAAE,2BAA2B,CAAA;IAC/C,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,CAAA;CAChC,CAAA;AAED,eAAO,MAAM,UAAU,oDAAmD,MAKrD,CAAA;AAErB,MAAM,MAAM,oBAAoB,GAAG,SAAS,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG;IAEvE,QAAQ,EAAE,MAAM,IAAI,CAAA;CACrB,CAAA;AAGD,eAAO,MAAM,0BAA0B;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
|
package/dist/schema.js
CHANGED
|
@@ -9,7 +9,9 @@ export const makeSchema = (schema) => ({
|
|
|
9
9
|
actions: schema.actions,
|
|
10
10
|
});
|
|
11
11
|
// TODO get rid of "side effect" in this function (via explicit register fn)
|
|
12
|
-
export const defineComponentStateSchema = (
|
|
12
|
+
export const defineComponentStateSchema = (
|
|
13
|
+
// TODO get rid of the `name` param here and use the `componentKey` name instead
|
|
14
|
+
name, columns) => {
|
|
13
15
|
const tablePath = `components__${name}`;
|
|
14
16
|
if (Object.keys(componentStateTables).includes(tablePath)) {
|
|
15
17
|
// throw new Error(`Can't register duplicate component: ${name}`)
|
|
@@ -22,7 +24,6 @@ export const defineComponentStateSchema = (name, columns) => {
|
|
|
22
24
|
componentStateTables[tablePath] = tableDef.ast;
|
|
23
25
|
return tableDef;
|
|
24
26
|
};
|
|
25
|
-
export const EVENT_CURSOR_TABLE = '__livestore_event_cursor';
|
|
26
27
|
export const SCHEMA_META_TABLE = '__livestore_schema';
|
|
27
28
|
const schemaMetaTable = SqliteDsl.table(SCHEMA_META_TABLE, {
|
|
28
29
|
tableName: SqliteDsl.text({ primaryKey: true }),
|
|
@@ -36,10 +37,6 @@ export const systemTables = {
|
|
|
36
37
|
// type: SqliteDsl.text({ nullable: false }),
|
|
37
38
|
// args: SqliteDsl.text({ nullable: false }),
|
|
38
39
|
// }).ast,
|
|
39
|
-
[EVENT_CURSOR_TABLE]: SqliteDsl.table(EVENT_CURSOR_TABLE, {
|
|
40
|
-
id: SqliteDsl.text({ primaryKey: true }),
|
|
41
|
-
cursor: SqliteDsl.text({ nullable: false }),
|
|
42
|
-
}).ast,
|
|
43
40
|
[SCHEMA_META_TABLE]: schemaMetaTable.ast,
|
|
44
41
|
};
|
|
45
42
|
export const defineTables = (tables) => tables;
|
package/dist/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAGlD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAE5C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AASrC,yFAAyF;AACzF,MAAM,CAAC,MAAM,oBAAoB,GAAuC,EAAE,CAAA;AAU1E,MAAM,CAAC,MAAM,UAAU,GAAG,CAA8B,MAAe,EAAU,EAAE,CACjF,CAAC;IACC,MAAM,EAAE,EAAE,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,YAAY,EAAE;IAChG,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,IAAI,EAAE;IACjD,OAAO,EAAE,MAAM,CAAC,OAAO;CACxB,CAAkB,CAAA;AAOrB,4EAA4E;AAC5E,MAAM,CAAC,MAAM,0BAA0B,GAAG,
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAGlD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAE5C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AASrC,yFAAyF;AACzF,MAAM,CAAC,MAAM,oBAAoB,GAAuC,EAAE,CAAA;AAU1E,MAAM,CAAC,MAAM,UAAU,GAAG,CAA8B,MAAe,EAAU,EAAE,CACjF,CAAC;IACC,MAAM,EAAE,EAAE,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,YAAY,EAAE;IAChG,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,IAAI,EAAE;IACjD,OAAO,EAAE,MAAM,CAAC,OAAO;CACxB,CAAkB,CAAA;AAOrB,4EAA4E;AAC5E,MAAM,CAAC,MAAM,0BAA0B,GAAG;AACxC,gFAAgF;AAChF,IAAW,EACX,OAAiB,EAIjB,EAAE;IACF,MAAM,SAAS,GAAG,eAAe,IAAI,EAAW,CAAA;IAChD,IAAI,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;QACzD,iEAAiE;QACjE,OAAO,CAAC,KAAK,CAAC,uCAAuC,SAAS,EAAE,CAAC,CAAA;KAClE;IAED,MAAM,YAAY,GAAG,OAIpB,CAAA;IAED,YAAY,CAAC,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAA;IAErD,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE,YAAY,EAAE,EAAE,CAAC,CAAA;IAE7D,6BAA6B;IAC7B,oBAAoB,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAA;IAE9C,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AA4BD,MAAM,CAAC,MAAM,iBAAiB,GAAG,oBAAoB,CAAA;AAErD,MAAM,eAAe,GAAG,SAAS,CAAC,KAAK,CAAC,iBAAiB,EAAE;IACzD,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAC/C,UAAU,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAClD,sBAAsB;IACtB,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;CAC/C,CAAC,CAAA;AAIF,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,4DAA4D;IAC5D,8CAA8C;IAC9C,+CAA+C;IAC/C,+CAA+C;IAC/C,UAAU;IACV,CAAC,iBAAiB,CAAC,EAAE,eAAe,CAAC,GAAG;CACd,CAAA;AAE5B,MAAM,CAAC,MAAM,YAAY,GAAG,CAA6B,MAAS,EAAE,EAAE,CAAC,MAAM,CAAA;AAE7E,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAwC,iBAAoB,EAAE,EAAE,CACrG,iBAAiB,CAAA;AAEnB,MAAM,CAAC,MAAM,aAAa,GAAG,CAAmC,OAAU,EAAE,EAAE,CAAC,OAAO,CAAA;AACtF,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,MAA+B,EACN,EAAE,CAAC,MAAM,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type * as otel from '@opentelemetry/api';
|
|
2
|
-
import type {
|
|
2
|
+
import type { PreparedBindValues } from '../../util.js';
|
|
3
3
|
import type { Storage, StorageOtelProps } from '../index.js';
|
|
4
4
|
export type StorageOptionsWebInMemory = {
|
|
5
5
|
type: 'web-in-memory';
|
|
@@ -9,7 +9,7 @@ export declare class InMemoryStorage implements Storage {
|
|
|
9
9
|
readonly otelTracer: otel.Tracer;
|
|
10
10
|
constructor(otelTracer: otel.Tracer);
|
|
11
11
|
static load: (_options?: StorageOptionsWebInMemory) => Promise<({ otelTracer }: StorageOtelProps) => InMemoryStorage>;
|
|
12
|
-
execute: (_query: string, _bindValues?:
|
|
12
|
+
execute: (_query: string, _bindValues?: PreparedBindValues) => void;
|
|
13
13
|
getPersistedData: () => Promise<Uint8Array>;
|
|
14
14
|
}
|
|
15
15
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/storage/in-memory/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAE/C,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/storage/in-memory/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAE/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAE5D,MAAM,MAAM,yBAAyB,GAAG;IACtC,IAAI,EAAE,eAAe,CAAA;CACtB,CAAA;AAED,4DAA4D;AAC5D,qBAAa,eAAgB,YAAW,OAAO;IACjC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM;gBAAvB,UAAU,EAAE,IAAI,CAAC,MAAM;IAE5C,MAAM,CAAC,IAAI,cAAqB,yBAAyB,8BAC/B,gBAAgB,sBACzC;IAED,OAAO,WAAY,MAAM,gBAAgB,kBAAkB,KAAG,IAAI,CAAM;IAExE,gBAAgB,QAAa,QAAQ,UAAU,CAAC,CAAoB;CACrE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/storage/in-memory/index.ts"],"names":[],"mappings":";AASA,4DAA4D;AAC5D,MAAM,OAAO,eAAe;IAC1B,YAAqB,UAAuB;QAAvB,eAAU,GAAV,UAAU,CAAa;QAM5C,YAAO,GAAG,CAAC,MAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/storage/in-memory/index.ts"],"names":[],"mappings":";AASA,4DAA4D;AAC5D,MAAM,OAAO,eAAe;IAC1B,YAAqB,UAAuB;QAAvB,eAAU,GAAV,UAAU,CAAa;QAM5C,YAAO,GAAG,CAAC,MAAc,EAAE,WAAgC,EAAQ,EAAE,GAAE,CAAC,CAAA;QAExE,qBAAgB,GAAG,KAAK,IAAyB,EAAE,CAAC,IAAI,UAAU,EAAE,CAAA;IARrB,CAAC;;;AAEzC,oBAAI,GAAG,KAAK,EAAE,QAAoC,EAAE,EAAE;IAC3D,OAAO,CAAC,EAAE,UAAU,EAAoB,EAAE,EAAE,CAAC,IAAI,EAAe,CAAC,UAAU,CAAC,CAAA;AAC9E,CAAC,AAFU,CAEV"}
|
package/dist/storage/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type * as otel from '@opentelemetry/api';
|
|
2
|
-
import type {
|
|
2
|
+
import type { PreparedBindValues } from '../util.js';
|
|
3
3
|
export type StorageInit = (otelProps: StorageOtelProps) => Promise<Storage> | Storage;
|
|
4
4
|
export interface Storage {
|
|
5
|
-
execute(query: string, bindValues?:
|
|
5
|
+
execute(query: string, bindValues?: PreparedBindValues, parentSpan?: otel.Span): void;
|
|
6
6
|
/** Return a snapshot of persisted data from the storage */
|
|
7
7
|
getPersistedData(parentSpan?: otel.Span): Promise<Uint8Array>;
|
|
8
8
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAE/C,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAE/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAEpD,MAAM,MAAM,WAAW,GAAG,CAAC,SAAS,EAAE,gBAAgB,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAA;AAErF,MAAM,WAAW,OAAO;IACtB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,kBAAkB,EAAE,UAAU,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAErF,2DAA2D;IAC3D,gBAAgB,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;CAC9D;AAED,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,KAAK,GAAG,eAAe,CAAA;AAE3D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,UAAU,EAAE,IAAI,CAAC,MAAM,CAAA;IACvB,UAAU,EAAE,IAAI,CAAC,IAAI,CAAA;CACtB,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type * as otel from '@opentelemetry/api';
|
|
2
|
-
import type {
|
|
2
|
+
import type { PreparedBindValues } from '../../util.js';
|
|
3
3
|
import type { Storage, StorageOtelProps } from '../index.js';
|
|
4
4
|
export type StorageOptionsTauri = {
|
|
5
5
|
dbDirPath: string;
|
|
@@ -12,7 +12,7 @@ export declare class TauriStorage implements Storage {
|
|
|
12
12
|
readonly parentSpan: otel.Span;
|
|
13
13
|
constructor(dbFilePath: string, dbDirPath: string, otelTracer: otel.Tracer, parentSpan: otel.Span);
|
|
14
14
|
static load: ({ dbDirPath, appDbFileName }: StorageOptionsTauri) => ({ otelTracer, parentSpan }: StorageOtelProps) => Promise<TauriStorage>;
|
|
15
|
-
execute: (query: string, bindValues?:
|
|
15
|
+
execute: (query: string, bindValues?: PreparedBindValues, parentSpan?: otel.Span) => void;
|
|
16
16
|
getPersistedData: (parentSpan?: otel.Span) => Promise<Uint8Array>;
|
|
17
17
|
private getOtelData;
|
|
18
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/storage/tauri/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAG/C,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/storage/tauri/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAG/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAEvD,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAE5D,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,qBAAa,YAAa,YAAW,OAAO;IAExC,QAAQ,CAAC,UAAU,EAAE,MAAM;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM;IAC1B,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM;IAChC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI;gBAHrB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,IAAI,CAAC,MAAM,EACvB,UAAU,EAAE,IAAI,CAAC,IAAI;IAGhC,MAAM,CAAC,IAAI,iCACsB,mBAAmB,kCACf,gBAAgB,2BAKlD;IAEH,OAAO,UAAW,MAAM,eAAe,kBAAkB,eAAe,KAAK,IAAI,KAAG,IAAI,CAQvF;IAED,gBAAgB,gBAAuB,KAAK,IAAI,KAAG,QAAQ,UAAU,CAAC,CAOrE;IAED,OAAO,CAAC,WAAW,CAA2E;CAC/F"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/storage/tauri/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAEvD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAGxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAQjD,MAAM,OAAO,YAAY;IACvB,YACW,UAAkB,EAClB,SAAiB,EACjB,UAAuB,EACvB,UAAqB;QAHrB,eAAU,GAAV,UAAU,CAAQ;QAClB,cAAS,GAAT,SAAS,CAAQ;QACjB,eAAU,GAAV,UAAU,CAAa;QACvB,eAAU,GAAV,UAAU,CAAW;QAYhC,YAAO,GAAG,CAAC,KAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/storage/tauri/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAEvD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAGxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAQjD,MAAM,OAAO,YAAY;IACvB,YACW,UAAkB,EAClB,SAAiB,EACjB,UAAuB,EACvB,UAAqB;QAHrB,eAAU,GAAV,UAAU,CAAQ;QAClB,cAAS,GAAT,SAAS,CAAQ;QACjB,eAAU,GAAV,UAAU,CAAa;QACvB,eAAU,GAAV,UAAU,CAAW;QAYhC,YAAO,GAAG,CAAC,KAAa,EAAE,UAA+B,EAAE,UAAsB,EAAQ,EAAE;YACzF,2FAA2F;YAC3F,KAAK,MAAM,CAAC,SAAS,EAAE;gBACrB,MAAM,EAAE,IAAI,CAAC,UAAU;gBACvB,KAAK;gBACL,MAAM,EAAE,iBAAiB,CAAC,UAAU,IAAI,EAAE,EAAE,KAAK,CAAC;gBAClD,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;aACvC,CAAC,CAAA;QACJ,CAAC,CAAA;QAED,qBAAgB,GAAG,KAAK,EAAE,UAAsB,EAAuB,EAAE;YACvE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;YAC7B,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,oBAAoB,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAA;YAE/E,OAAO,KAAK,CAAC,uDAAuD,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,CACtG,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,CAC9E,CAAA;QACH,CAAC,CAAA;QAEO,gBAAW,GAAG,CAAC,UAAsB,EAAE,EAAE,CAAC,YAAY,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAE,CAAA;IA9B3F,CAAC;;;AAEG,iBAAI,GACT,CAAC,EAAE,SAAS,EAAE,aAAa,EAAuB,EAAE,EAAE,CACtD,KAAK,EAAE,EAAE,UAAU,EAAE,UAAU,EAAoB,EAAE,EAAE;IACrD,MAAM,UAAU,GAAG,GAAG,SAAS,IAAI,aAAa,EAAE,CAAA;IAClD,MAAM,MAAM,CAAC,uBAAuB,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;IAEjG,OAAO,IAAI,EAAY,CAAC,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAA;AACxE,CAAC,AAPQ,CAOR;AAwBL,MAAM,YAAY,GAAG,CAAC,UAAiC,EAAE,EAAE;IACzD,MAAM,WAAW,GAAG,UAAU,EAAE,WAAW,EAAE,CAAA;IAC7C,OAAO,WAAW,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;AACjG,CAAC,CAAA"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import type * as otel from '@opentelemetry/api';
|
|
2
2
|
import * as Comlink from 'comlink';
|
|
3
|
-
import type {
|
|
3
|
+
import type { PreparedBindValues } from '../../util.js';
|
|
4
4
|
import type { Storage, StorageOtelProps } from '../index.js';
|
|
5
5
|
import type { WrappedWorker } from './worker.js';
|
|
6
6
|
export type StorageType = 'opfs' | 'indexeddb';
|
|
7
7
|
export type StorageOptionsWeb = {
|
|
8
8
|
/** Specifies where to persist data for this storage */
|
|
9
9
|
type: StorageType;
|
|
10
|
-
|
|
10
|
+
fileName: string;
|
|
11
11
|
};
|
|
12
12
|
export declare class WebWorkerStorage implements Storage {
|
|
13
13
|
worker: Comlink.Remote<WrappedWorker>;
|
|
@@ -15,12 +15,12 @@ export declare class WebWorkerStorage implements Storage {
|
|
|
15
15
|
otelTracer: otel.Tracer;
|
|
16
16
|
executionBacklog: {
|
|
17
17
|
query: string;
|
|
18
|
-
bindValues?:
|
|
18
|
+
bindValues?: PreparedBindValues;
|
|
19
19
|
}[];
|
|
20
20
|
executionPromise: Promise<void> | undefined;
|
|
21
21
|
private constructor();
|
|
22
22
|
static load: (options: StorageOptionsWeb) => ({ otelTracer }: StorageOtelProps) => WebWorkerStorage;
|
|
23
|
-
execute: (query: string,
|
|
23
|
+
execute: (query: string, bindValues?: PreparedBindValues) => void;
|
|
24
24
|
private executeBacklog;
|
|
25
25
|
getPersistedData: (_parentSpan?: otel.Span) => Promise<Uint8Array>;
|
|
26
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/storage/web-worker/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAC/C,OAAO,KAAK,OAAO,MAAM,SAAS,CAAA;AAElC,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/storage/web-worker/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAC/C,OAAO,KAAK,OAAO,MAAM,SAAS,CAAA;AAElC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAE5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEhD,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,WAAW,CAAA;AAE9C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,uDAAuD;IACvD,IAAI,EAAE,WAAW,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,qBAAa,gBAAiB,YAAW,OAAO;IAC9C,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;IACrC,OAAO,EAAE,iBAAiB,CAAA;IAC1B,UAAU,EAAE,IAAI,CAAC,MAAM,CAAA;IAEvB,gBAAgB,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,kBAAkB,CAAA;KAAE,EAAE,CAAK;IAC3E,gBAAgB,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAA;IAE3C,OAAO;IAmBP,MAAM,CAAC,IAAI,YAAa,iBAAiB,sBASf,gBAAgB,sBAOzC;IAED,OAAO,UAAW,MAAM,eAAe,kBAAkB,UAaxD;IAED,OAAO,CAAC,cAAc,CAIrB;IAED,gBAAgB,iBAAwB,KAAK,IAAI,KAAG,QAAQ,UAAU,CAAC,CAAkC;CAC1G"}
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import { casesHandled } from '@livestore/utils';
|
|
2
2
|
import * as Comlink from 'comlink';
|
|
3
|
-
import { prepareBindValues } from '../../util.js';
|
|
4
3
|
import { IDB } from '../utils/idb.js';
|
|
5
4
|
export class WebWorkerStorage {
|
|
6
5
|
constructor({ worker, options, otelTracer, executionPromise, }) {
|
|
7
6
|
this.executionBacklog = [];
|
|
8
|
-
this.execute = (query,
|
|
9
|
-
const bindValues = prepareBindValues(bindValues_ ?? {}, query);
|
|
7
|
+
this.execute = (query, bindValues) => {
|
|
10
8
|
this.executionBacklog.push({ query, bindValues });
|
|
11
9
|
// Instead of sending the queries to the worker immediately, we wait a bit and batch them up (which reduces the number of messages sent to the worker)
|
|
12
10
|
if (this.executionPromise === undefined) {
|
|
@@ -51,7 +49,7 @@ const getPersistedData = async (options) => {
|
|
|
51
49
|
case 'opfs': {
|
|
52
50
|
try {
|
|
53
51
|
const rootHandle = await navigator.storage.getDirectory();
|
|
54
|
-
const fileHandle = await rootHandle.getFileHandle(options.
|
|
52
|
+
const fileHandle = await rootHandle.getFileHandle(options.fileName + '.db');
|
|
55
53
|
const file = await fileHandle.getFile();
|
|
56
54
|
const buffer = await file.arrayBuffer();
|
|
57
55
|
const data = new Uint8Array(buffer);
|
|
@@ -65,7 +63,7 @@ const getPersistedData = async (options) => {
|
|
|
65
63
|
}
|
|
66
64
|
}
|
|
67
65
|
case 'indexeddb': {
|
|
68
|
-
const idb = new IDB(options.
|
|
66
|
+
const idb = new IDB(options.fileName);
|
|
69
67
|
return (await idb.get('db')) ?? new Uint8Array();
|
|
70
68
|
}
|
|
71
69
|
default: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/storage/web-worker/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAE/C,OAAO,KAAK,OAAO,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/storage/web-worker/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,7 +30,7 @@ const initialize = async (options) => {
|
|
|
30
30
|
switch (options.type) {
|
|
31
31
|
case 'opfs': {
|
|
32
32
|
try {
|
|
33
|
-
db = new sqlite3.oo1.OpfsDb(fullyQualifiedFilename(options.
|
|
33
|
+
db = new sqlite3.oo1.OpfsDb(fullyQualifiedFilename(options.fileName)); // , 'c'
|
|
34
34
|
}
|
|
35
35
|
catch (e) {
|
|
36
36
|
debugger;
|
|
@@ -40,7 +40,7 @@ const initialize = async (options) => {
|
|
|
40
40
|
case 'indexeddb': {
|
|
41
41
|
try {
|
|
42
42
|
db = new sqlite3.oo1.DB({ filename: ':memory:', flags: 'c' });
|
|
43
|
-
idb = new IDB(options.
|
|
43
|
+
idb = new IDB(options.fileName);
|
|
44
44
|
const bytes = await idb.get('db');
|
|
45
45
|
if (bytes !== undefined) {
|
|
46
46
|
// Based on https://sqlite.org/forum/forumpost/2119230da8ac5357a13b731f462dc76e08621a4a29724f7906d5f35bb8508465
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../src/storage/web-worker/worker.ts"],"names":[],"mappings":"AAAA,sDAAsD;AAEtD,4EAA4E;AAC5E,+CAA+C;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,KAAK,OAAO,MAAM,SAAS,CAAA;AAElC,OAAO,iBAAiB,MAAM,YAAY,CAAA;AAI1C,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AACjD,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAGrC,qDAAqD;AACrD,8BAA8B;AAC9B,IAAI,EAA0B,CAAA;AAE9B,IAAI,OAAiC,CAAA;AAErC,kEAAkE;AAClE,IAAI,GAAoB,CAAA;AAExB,iEAAiE;AACjE,IAAI,QAA2B,CAAA;AAE/B,MAAM,mBAAmB,GAAG,GAAG,EAAE,CAC/B,EAAE,CAAC,IAAI,CAAC,GAAG,CAAA;;;;GAIV,CAAC,CAAA;AAEJ,4CAA4C;AAC5C,MAAM,sBAAsB,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,GAAG,IAAI,KAAK,CAAA;AAE7D,MAAM,UAAU,GAAG,KAAK,EAAE,OAA0B,EAAE,EAAE;IACtD,QAAQ,GAAG,OAAO,CAAA;IAElB,OAAO,GAAG,MAAM,iBAAiB,CAAC;QAChC,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,OAAO,EAAE,CAAC;QAC1D,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,OAAO,EAAE,CAAC;KAChE,CAAC,CAAA;IAEF,QAAQ,OAAO,CAAC,IAAI,EAAE;QACpB,KAAK,MAAM,CAAC,CAAC;YACX,IAAI;gBACF,EAAE,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,sBAAsB,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../src/storage/web-worker/worker.ts"],"names":[],"mappings":"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"}
|
package/dist/store.d.ts
CHANGED
|
@@ -1,31 +1,34 @@
|
|
|
1
|
-
import type { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core';
|
|
2
1
|
import * as otel from '@opentelemetry/api';
|
|
3
2
|
import type { GraphQLSchema } from 'graphql';
|
|
3
|
+
import type * as Sqlite from 'sqlite-esm';
|
|
4
4
|
import type { ComponentKey } from './componentKey.js';
|
|
5
5
|
import type { LiveStoreEvent } from './events.js';
|
|
6
6
|
import { InMemoryDatabase } from './inMemoryDatabase.js';
|
|
7
|
-
import type {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
7
|
+
import type { ReactiveGraph, Ref } from './reactive.js';
|
|
8
|
+
import type { ILiveStoreQuery } from './reactiveQueries/base-class.js';
|
|
9
|
+
import { type DbContext } from './reactiveQueries/graph.js';
|
|
10
|
+
import type { LiveStoreGraphQLQuery } from './reactiveQueries/graphql.js';
|
|
11
|
+
import type { LiveStoreJSQuery } from './reactiveQueries/js.js';
|
|
12
|
+
import type { LiveStoreSQLQuery } from './reactiveQueries/sql.js';
|
|
12
13
|
import type { GetActionArgs, Schema } from './schema.js';
|
|
13
14
|
import type { Storage, StorageInit } from './storage/index.js';
|
|
14
|
-
import type {
|
|
15
|
+
import type { ParamsObject } from './util.js';
|
|
15
16
|
export type LiveStoreQuery<TResult extends Record<string, any> = any> = LiveStoreSQLQuery<TResult> | LiveStoreJSQuery<TResult> | LiveStoreGraphQLQuery<TResult, any, any>;
|
|
16
17
|
export type BaseGraphQLContext = {
|
|
17
18
|
queriedTables: Set<string>;
|
|
18
19
|
/** Needed by Pothos Otel plugin for resolver tracing to work */
|
|
19
20
|
otelContext?: otel.Context;
|
|
20
21
|
};
|
|
21
|
-
export declare const RESET_DB_LOCAL_STORAGE_KEY = "livestore-reset";
|
|
22
22
|
export type QueryResult<TQuery> = TQuery extends LiveStoreSQLQuery<infer R> ? ReadonlyArray<Readonly<R>> : TQuery extends LiveStoreJSQuery<infer S> ? Readonly<S> : TQuery extends LiveStoreGraphQLQuery<infer Result, any, any> ? Readonly<Result> : never;
|
|
23
|
+
export declare const globalComponentKey: ComponentKey;
|
|
23
24
|
export type GraphQLOptions<TContext> = {
|
|
24
25
|
schema: GraphQLSchema;
|
|
25
26
|
makeContext: (db: InMemoryDatabase, tracer: otel.Tracer) => TContext;
|
|
26
27
|
};
|
|
27
28
|
export type StoreOptions<TGraphQLContext extends BaseGraphQLContext> = {
|
|
28
29
|
db: InMemoryDatabase;
|
|
30
|
+
/** A `Proxy`d version of `db` except that it also mirrors `execute` calls to the storage */
|
|
31
|
+
dbProxy: InMemoryDatabase;
|
|
29
32
|
schema: Schema;
|
|
30
33
|
storage?: Storage;
|
|
31
34
|
graphQLOptions?: GraphQLOptions<TGraphQLContext>;
|
|
@@ -64,9 +67,10 @@ export type StoreOtel = {
|
|
|
64
67
|
applyEventsSpanContext: otel.Context;
|
|
65
68
|
queriesSpanContext: otel.Context;
|
|
66
69
|
};
|
|
67
|
-
export declare class Store<TGraphQLContext extends BaseGraphQLContext> {
|
|
68
|
-
graph: ReactiveGraph<RefreshReason, QueryDebugInfo>;
|
|
70
|
+
export declare class Store<TGraphQLContext extends BaseGraphQLContext = BaseGraphQLContext> {
|
|
71
|
+
graph: ReactiveGraph<RefreshReason, QueryDebugInfo, DbContext>;
|
|
69
72
|
inMemoryDB: InMemoryDatabase;
|
|
73
|
+
_proxyDb: InMemoryDatabase;
|
|
70
74
|
schema: Schema;
|
|
71
75
|
graphQLSchema?: GraphQLSchema;
|
|
72
76
|
graphQLContext?: TGraphQLContext;
|
|
@@ -88,58 +92,20 @@ export declare class Store<TGraphQLContext extends BaseGraphQLContext> {
|
|
|
88
92
|
*
|
|
89
93
|
* NOTE The query is actually running (even if no one has subscribed to it yet) and will be kept up to date.
|
|
90
94
|
*/
|
|
91
|
-
querySQL: <TResult>(genQueryString: (get: GetAtom) => string, { queriedTables, bindValues, componentKey, label, otelContext, }: {
|
|
92
|
-
/**
|
|
93
|
-
* List of tables that are queried in this query;
|
|
94
|
-
* used to determine reactive dependencies.
|
|
95
|
-
*
|
|
96
|
-
* NOTE In the future we want to auto-generate this via parsing the query
|
|
97
|
-
*/
|
|
98
|
-
queriedTables: string[];
|
|
99
|
-
bindValues?: Bindable | undefined;
|
|
100
|
-
componentKey?: ComponentKey | undefined;
|
|
101
|
-
label?: string | undefined;
|
|
102
|
-
otelContext?: otel.Context | undefined;
|
|
103
|
-
}) => LiveStoreSQLQuery<TResult>;
|
|
104
|
-
queryJS: <TResult>(genResults: (get: GetAtom) => TResult, { componentKey, label, otelContext, }: {
|
|
105
|
-
componentKey?: ComponentKey | undefined;
|
|
106
|
-
label?: string | undefined;
|
|
107
|
-
otelContext?: otel.Context | undefined;
|
|
108
|
-
}) => LiveStoreJSQuery<TResult>;
|
|
109
|
-
queryGraphQL: <TResult extends Record<string, any>, TVariableValues extends Record<string, any>>(document: DocumentNode<TResult, TVariableValues>, genVariableValues: (get: GetAtom) => TVariableValues, { componentKey, label, otelContext, }: {
|
|
110
|
-
componentKey: ComponentKey;
|
|
111
|
-
label?: string | undefined;
|
|
112
|
-
otelContext?: otel.Context | undefined;
|
|
113
|
-
}) => LiveStoreGraphQLQuery<TResult, TVariableValues, TGraphQLContext>;
|
|
114
|
-
queryGraphQLOnce: <TResult extends Record<string, any>, TVariableValues extends Record<string, any>>(document: DocumentNode<TResult, TVariableValues>, variableValues: TVariableValues, otelContext?: otel.Context) => {
|
|
115
|
-
result: TResult;
|
|
116
|
-
queriedTables: string[];
|
|
117
|
-
};
|
|
118
95
|
/**
|
|
119
96
|
* Subscribe to the results of a query
|
|
120
97
|
* Returns a function to cancel the subscription.
|
|
121
98
|
*/
|
|
122
|
-
subscribe: <
|
|
99
|
+
subscribe: <TResult>(query: ILiveStoreQuery<TResult>, onNewValue: (value: TResult) => void, onSubsubscribe?: () => void, options?: {
|
|
123
100
|
label?: string;
|
|
101
|
+
otelContext?: otel.Context;
|
|
124
102
|
} | undefined) => (() => void);
|
|
125
|
-
/**
|
|
126
|
-
* Any queries created in the callback will be destroyed when the callback is complete.
|
|
127
|
-
* Useful for temporarily creating reactive queries, which is an idempotent operation
|
|
128
|
-
* that can be safely called inside a React useMemo hook.
|
|
129
|
-
*/
|
|
130
|
-
inTempQueryContext: <TResult>(callback: () => TResult) => TResult;
|
|
131
103
|
/**
|
|
132
104
|
* Destroys the entire store, including all queries and subscriptions.
|
|
133
105
|
*
|
|
134
106
|
* Currently only used when shutting down the app for debugging purposes (e.g. to close Otel spans).
|
|
135
107
|
*/
|
|
136
108
|
destroy: () => void;
|
|
137
|
-
private destroyQuery;
|
|
138
|
-
/**
|
|
139
|
-
* Clean up queries and downstream subscriptions associated with a component.
|
|
140
|
-
* This is critical to avoid memory leaks.
|
|
141
|
-
*/
|
|
142
|
-
unmountComponent: (componentKey: ComponentKey) => void;
|
|
143
109
|
applyEvent: <TEventType extends string>(eventType: TEventType, args?: any, options?: {
|
|
144
110
|
skipRefresh?: boolean;
|
|
145
111
|
}) => {
|
|
@@ -178,15 +144,16 @@ export declare class Store<TGraphQLContext extends BaseGraphQLContext> {
|
|
|
178
144
|
* This should only be used for framework-internal purposes;
|
|
179
145
|
* all app writes should go through applyEvent.
|
|
180
146
|
*/
|
|
181
|
-
execute: (query: string, params?: ParamsObject, writeTables?: string[]) =>
|
|
147
|
+
execute: (query: string, params?: ParamsObject, writeTables?: string[]) => void;
|
|
182
148
|
}
|
|
183
149
|
/** Create a new LiveStore Store */
|
|
184
|
-
export declare const createStore: <TGraphQLContext extends BaseGraphQLContext>({ schema, loadStorage, graphQLOptions, otelTracer, otelRootSpanContext, boot, }: {
|
|
150
|
+
export declare const createStore: <TGraphQLContext extends BaseGraphQLContext>({ schema, loadStorage, graphQLOptions, otelTracer, otelRootSpanContext, boot, sqlite3, }: {
|
|
185
151
|
schema: Schema;
|
|
186
152
|
loadStorage: () => StorageInit | Promise<StorageInit>;
|
|
187
153
|
graphQLOptions?: GraphQLOptions<TGraphQLContext> | undefined;
|
|
188
154
|
otelTracer?: otel.Tracer | undefined;
|
|
189
155
|
otelRootSpanContext?: otel.Context | undefined;
|
|
190
156
|
boot?: ((db: InMemoryDatabase, parentSpan: otel.Span) => unknown | Promise<unknown>) | undefined;
|
|
157
|
+
sqlite3: Sqlite.Sqlite3Static;
|
|
191
158
|
}) => Promise<Store<TGraphQLContext>>;
|
|
192
159
|
//# sourceMappingURL=store.d.ts.map
|
package/dist/store.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
|