@livestore/livestore 0.3.0-dev.10 → 0.3.0-dev.11
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/SqliteDbWrapper.d.ts +54 -0
- package/dist/SqliteDbWrapper.d.ts.map +1 -0
- package/dist/SqliteDbWrapper.js +212 -0
- package/dist/SqliteDbWrapper.js.map +1 -0
- package/dist/SynchronousDatabaseWrapper.d.ts +14 -5
- package/dist/SynchronousDatabaseWrapper.d.ts.map +1 -1
- package/dist/SynchronousDatabaseWrapper.js +24 -4
- package/dist/SynchronousDatabaseWrapper.js.map +1 -1
- package/dist/effect/LiveStore.d.ts +12 -8
- package/dist/effect/LiveStore.d.ts.map +1 -1
- package/dist/effect/LiveStore.js +9 -2
- package/dist/effect/LiveStore.js.map +1 -1
- package/dist/index.d.ts +6 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/live-queries/base-class.d.ts +64 -21
- package/dist/live-queries/base-class.d.ts.map +1 -1
- package/dist/live-queries/base-class.js +56 -13
- package/dist/live-queries/base-class.js.map +1 -1
- package/dist/live-queries/computed.d.ts +7 -7
- package/dist/live-queries/computed.d.ts.map +1 -1
- package/dist/live-queries/computed.js +35 -11
- package/dist/live-queries/computed.js.map +1 -1
- package/dist/live-queries/db-query.d.ts +67 -0
- package/dist/live-queries/db-query.d.ts.map +1 -0
- package/dist/live-queries/db-query.js +244 -0
- package/dist/live-queries/db-query.js.map +1 -0
- package/dist/live-queries/db-query.test.d.ts +2 -0
- package/dist/live-queries/db-query.test.d.ts.map +1 -0
- package/dist/live-queries/db-query.test.js +123 -0
- package/dist/live-queries/db-query.test.js.map +1 -0
- package/dist/live-queries/db.d.ts +12 -15
- package/dist/live-queries/db.d.ts.map +1 -1
- package/dist/live-queries/db.js +44 -25
- package/dist/live-queries/db.js.map +1 -1
- package/dist/live-queries/db.test.js +16 -14
- package/dist/live-queries/db.test.js.map +1 -1
- package/dist/live-queries/graphql.d.ts +8 -8
- package/dist/live-queries/graphql.d.ts.map +1 -1
- package/dist/live-queries/graphql.js +35 -9
- package/dist/live-queries/graphql.js.map +1 -1
- package/dist/live-queries/make-ref.d.ts +20 -0
- package/dist/live-queries/make-ref.d.ts.map +1 -0
- package/dist/live-queries/make-ref.js +33 -0
- package/dist/live-queries/make-ref.js.map +1 -0
- package/dist/reactive.d.ts +15 -13
- package/dist/reactive.d.ts.map +1 -1
- package/dist/reactive.js +15 -9
- package/dist/reactive.js.map +1 -1
- package/dist/row-query-utils.d.ts +4 -4
- package/dist/row-query-utils.d.ts.map +1 -1
- package/dist/row-query-utils.js +14 -10
- package/dist/row-query-utils.js.map +1 -1
- package/dist/store/create-store.d.ts +3 -4
- package/dist/store/create-store.d.ts.map +1 -1
- package/dist/store/create-store.js +7 -7
- package/dist/store/create-store.js.map +1 -1
- package/dist/store/devtools.d.ts +2 -2
- package/dist/store/devtools.d.ts.map +1 -1
- package/dist/store/devtools.js +15 -15
- package/dist/store/devtools.js.map +1 -1
- package/dist/store/store-types.d.ts +9 -4
- package/dist/store/store-types.d.ts.map +1 -1
- package/dist/store/store-types.js.map +1 -1
- package/dist/store/store.d.ts +34 -16
- package/dist/store/store.d.ts.map +1 -1
- package/dist/store/store.js +125 -75
- package/dist/store/store.js.map +1 -1
- package/dist/utils/expo.d.ts +2 -0
- package/dist/utils/expo.d.ts.map +1 -0
- package/dist/utils/expo.js +8 -0
- package/dist/utils/expo.js.map +1 -0
- package/dist/utils/function-string.d.ts +7 -0
- package/dist/utils/function-string.d.ts.map +1 -0
- package/dist/utils/function-string.js +9 -0
- package/dist/utils/function-string.js.map +1 -0
- package/dist/utils/stack-info.d.ts.map +1 -1
- package/dist/utils/stack-info.js +6 -1
- package/dist/utils/stack-info.js.map +1 -1
- package/dist/utils/stack-info.test.js +54 -1
- package/dist/utils/stack-info.test.js.map +1 -1
- package/dist/utils/tests/fixture.d.ts +2 -6
- package/dist/utils/tests/fixture.d.ts.map +1 -1
- package/dist/utils/tests/fixture.js +3 -5
- package/dist/utils/tests/fixture.js.map +1 -1
- package/dist/utils/tests/mod.d.ts +1 -0
- package/dist/utils/tests/mod.d.ts.map +1 -1
- package/dist/utils/tests/mod.js +1 -0
- package/dist/utils/tests/mod.js.map +1 -1
- package/package.json +5 -5
- package/src/{SynchronousDatabaseWrapper.ts → SqliteDbWrapper.ts} +41 -11
- package/src/effect/LiveStore.ts +22 -14
- package/src/index.ts +14 -7
- package/src/live-queries/__snapshots__/{db.test.ts.snap → db-query.test.ts.snap} +196 -42
- package/src/live-queries/base-class.ts +160 -40
- package/src/live-queries/computed.ts +45 -19
- package/src/live-queries/{db.test.ts → db-query.test.ts} +21 -11
- package/src/live-queries/{db.ts → db-query.ts} +97 -39
- package/src/live-queries/graphql.ts +47 -21
- package/src/live-queries/make-ref.ts +47 -0
- package/src/reactive.ts +52 -27
- package/src/row-query-utils.ts +29 -18
- package/src/store/create-store.ts +20 -23
- package/src/store/devtools.ts +17 -17
- package/src/store/store-types.ts +6 -4
- package/src/store/store.ts +227 -120
- package/src/utils/function-string.ts +12 -0
- package/src/utils/stack-info.test.ts +58 -1
- package/src/utils/stack-info.ts +6 -1
- package/src/utils/tests/fixture.ts +2 -7
- package/src/utils/tests/mod.ts +1 -0
- package/src/global-state.ts +0 -20
package/dist/utils/stack-info.js
CHANGED
|
@@ -24,14 +24,19 @@ export const extractStackInfoFromStackTrace = (stackTrace) => {
|
|
|
24
24
|
let hasReachedStart = false;
|
|
25
25
|
while ((match = namePattern.exec(stackTrace)) !== null) {
|
|
26
26
|
const [, name, filePath] = match;
|
|
27
|
+
// console.debug(name, filePath)
|
|
27
28
|
// NOTE No idea where this `Module.` comes from - possibly a Vite thing?
|
|
28
29
|
if ((name.startsWith('use') || name.startsWith('Module.use')) && name.endsWith('QueryRef') === false) {
|
|
29
30
|
hasReachedStart = true;
|
|
31
|
+
// console.debug('hasReachedStart. adding one more frame.')
|
|
30
32
|
frames.unshift({ name: name.replace(/^Module\./, ''), filePath });
|
|
31
33
|
}
|
|
32
34
|
else if (hasReachedStart) {
|
|
33
35
|
// We've reached the end of the `use*` functions, so we're adding the component name and stop
|
|
34
|
-
|
|
36
|
+
// Unless it's `react-stack-bottom-frame`, which we skip
|
|
37
|
+
if (name !== 'Object.react-stack-bottom-frame') {
|
|
38
|
+
frames.unshift({ name, filePath });
|
|
39
|
+
}
|
|
35
40
|
break;
|
|
36
41
|
}
|
|
37
42
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stack-info.js","sourceRoot":"","sources":["../../src/utils/stack-info.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,UAAkB,EAAa,EAAE;IAC9E,MAAM,WAAW,GAAG,oBAAoB,CAAA;IACxC,IAAI,KAA6B,CAAA;IACjC,MAAM,MAAM,GAAiB,EAAE,CAAA;IAC/B,IAAI,eAAe,GAAG,KAAK,CAAA;IAE3B,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACvD,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,KAAwC,CAAA;
|
|
1
|
+
{"version":3,"file":"stack-info.js","sourceRoot":"","sources":["../../src/utils/stack-info.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,UAAkB,EAAa,EAAE;IAC9E,MAAM,WAAW,GAAG,oBAAoB,CAAA;IACxC,IAAI,KAA6B,CAAA;IACjC,MAAM,MAAM,GAAiB,EAAE,CAAA;IAC/B,IAAI,eAAe,GAAG,KAAK,CAAA;IAE3B,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACvD,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,KAAwC,CAAA;QACnE,gCAAgC;QAEhC,wEAAwE;QACxE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,KAAK,EAAE,CAAC;YACrG,eAAe,GAAG,IAAI,CAAA;YACtB,2DAA2D;YAE3D,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAA;QACnE,CAAC;aAAM,IAAI,eAAe,EAAE,CAAC;YAC3B,6FAA6F;YAC7F,wDAAwD;YACxD,IAAI,IAAI,KAAK,iCAAiC,EAAE,CAAC;gBAC/C,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;YACpC,CAAC;YACD,MAAK;QACP,CAAC;IACH,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,CAAA;AACnB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,SAAoB,EAAU,EAAE,CAChE,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA"}
|
|
@@ -42,7 +42,7 @@ Error
|
|
|
42
42
|
});
|
|
43
43
|
it('Tracklist_ stacktrace', async () => {
|
|
44
44
|
const stackTrace = `\
|
|
45
|
-
|
|
45
|
+
Error
|
|
46
46
|
at https://localhost:8081/@fs/Users/schickling/Code/overtone/submodules/livestore/packages/@livestore/livestore/dist/react/useQuery.js?t=1701368568351:19:23
|
|
47
47
|
at mountMemo (https://localhost:8081/node_modules/.vite-web/deps/chunk-YKTDXTVC.js?v=86daed82:12817:27)
|
|
48
48
|
at Object.useMemo (https://localhost:8081/node_modules/.vite-web/deps/chunk-YKTDXTVC.js?v=86daed82:13141:24)
|
|
@@ -72,4 +72,57 @@ stack Error
|
|
|
72
72
|
}
|
|
73
73
|
`);
|
|
74
74
|
});
|
|
75
|
+
it('React 19', async () => {
|
|
76
|
+
const stackTrace = `\
|
|
77
|
+
Error:
|
|
78
|
+
at /Users/schickling/Code/overtone/submodules/livestore/packages/@livestore/react/src/useQuery.ts:57:19
|
|
79
|
+
at mountMemo (/Users/schickling/Code/overtone/node_modules/.pnpm/react-dom@19.0.0_react@19.0.0/node_modules/react-dom/cjs/react-dom-client.development.js:6816:23)
|
|
80
|
+
at Object.useMemo (/Users/schickling/Code/overtone/node_modules/.pnpm/react-dom@19.0.0_react@19.0.0/node_modules/react-dom/cjs/react-dom-client.development.js:22757:18)
|
|
81
|
+
at Object.process.env.NODE_ENV.exports.useMemo (/Users/schickling/Code/overtone/node_modules/.pnpm/react@19.0.0/node_modules/react/cjs/react.development.js:1488:34)
|
|
82
|
+
at Module.useQueryRef (/Users/schickling/Code/overtone/submodules/livestore/packages/@livestore/react/src/useQuery.ts:54:27)
|
|
83
|
+
at Module.useRow (/Users/schickling/Code/overtone/submodules/livestore/packages/@livestore/react/src/useRow.ts:111:20)
|
|
84
|
+
at TestComponent (/Users/schickling/Code/overtone/node_modules/.pnpm/@testing-library+react@16.1.0_@testing-library+dom@10.4.0_@types+react-dom@19.0.3_@types+reac_2jaiibiag2sxou3wtzbuqx3r5a/node_modules/@testing-library/react/dist/pure.js:309:27)
|
|
85
|
+
at Object.react-stack-bottom-frame (/Users/schickling/Code/overtone/node_modules/.pnpm/react-dom@19.0.0_react@19.0.0/node_modules/react-dom/cjs/react-dom-client.development.js:22428:20)
|
|
86
|
+
at renderWithHooks (/Users/schickling/Code/overtone/node_modules/.pnpm/react-dom@19.0.0_react@19.0.0/node_modules/react-dom/cjs/react-dom-client.development.js:5757:22)
|
|
87
|
+
`;
|
|
88
|
+
const stackInfo = extractStackInfoFromStackTrace(stackTrace);
|
|
89
|
+
expect(stackInfo).toMatchInlineSnapshot(`
|
|
90
|
+
{
|
|
91
|
+
"frames": [
|
|
92
|
+
{
|
|
93
|
+
"filePath": "/Users/schickling/Code/overtone/node_modules/.pnpm/@testing-library+react@16.1.0_@testing-library+dom@10.4.0_@types+react-dom@19.0.3_@types+reac_2jaiibiag2sxou3wtzbuqx3r5a/node_modules/@testing-library/react/dist/pure.js:309:27",
|
|
94
|
+
"name": "TestComponent",
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"filePath": "/Users/schickling/Code/overtone/submodules/livestore/packages/@livestore/react/src/useRow.ts:111:20",
|
|
98
|
+
"name": "useRow",
|
|
99
|
+
},
|
|
100
|
+
],
|
|
101
|
+
}
|
|
102
|
+
`);
|
|
103
|
+
});
|
|
104
|
+
it('React 19 - skip react-stack-bottom-frame', async () => {
|
|
105
|
+
const stackTrace = `\
|
|
106
|
+
Error:
|
|
107
|
+
at /Users/schickling/Code/overtone/submodules/livestore/packages/@livestore/react/src/useQuery.ts:57:19
|
|
108
|
+
at mountMemo (/Users/schickling/Code/overtone/node_modules/.pnpm/react-dom@19.0.0_react@19.0.0/node_modules/react-dom/cjs/react-dom-client.development.js:6816:23)
|
|
109
|
+
at Object.useMemo (/Users/schickling/Code/overtone/node_modules/.pnpm/react-dom@19.0.0_react@19.0.0/node_modules/react-dom/cjs/react-dom-client.development.js:22757:18)
|
|
110
|
+
at Object.process.env.NODE_ENV.exports.useMemo (/Users/schickling/Code/overtone/node_modules/.pnpm/react@19.0.0/node_modules/react/cjs/react.development.js:1488:34)
|
|
111
|
+
at Module.useQueryRef (/Users/schickling/Code/overtone/submodules/livestore/packages/@livestore/react/src/useQuery.ts:54:27)
|
|
112
|
+
at Module.useRow (/Users/schickling/Code/overtone/submodules/livestore/packages/@livestore/react/src/useRow.ts:111:20)
|
|
113
|
+
at Object.react-stack-bottom-frame (/Users/schickling/Code/overtone/node_modules/.pnpm/react-dom@19.0.0_react@19.0.0/node_modules/react-dom/cjs/react-dom-client.development.js:22428:20)
|
|
114
|
+
at renderWithHooks (/Users/schickling/Code/overtone/node_modules/.pnpm/react-dom@19.0.0_react@19.0.0/node_modules/react-dom/cjs/react-dom-client.development.js:5757:22)
|
|
115
|
+
`;
|
|
116
|
+
const stackInfo = extractStackInfoFromStackTrace(stackTrace);
|
|
117
|
+
expect(stackInfo).toMatchInlineSnapshot(`
|
|
118
|
+
{
|
|
119
|
+
"frames": [
|
|
120
|
+
{
|
|
121
|
+
"filePath": "/Users/schickling/Code/overtone/submodules/livestore/packages/@livestore/react/src/useRow.ts:111:20",
|
|
122
|
+
"name": "useRow",
|
|
123
|
+
},
|
|
124
|
+
],
|
|
125
|
+
}
|
|
126
|
+
`);
|
|
127
|
+
});
|
|
75
128
|
//# sourceMappingURL=stack-info.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stack-info.test.js","sourceRoot":"","sources":["../../src/utils/stack-info.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAEnC,OAAO,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAA;AAEhE,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;IACpC,MAAM,UAAU,GAAG;;;;;;;;;;;;CAYpB,CAAA;IAEC,MAAM,SAAS,GAAG,8BAA8B,CAAC,UAAU,CAAC,CAAA;IAC5D,mEAAmE;IACnE,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,2BAA2B,CAAC,CAAC,CAAA;IAC3E,MAAM,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;GAqBvC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,EAAE,CAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE;IACrC,MAAM,UAAU,GAAG;;;;;;;;;;;;CAYpB,CAAA;IAEC,MAAM,SAAS,GAAG,8BAA8B,CAAC,UAAU,CAAC,CAAA;IAC5D,mEAAmE;IACnE,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,2BAA2B,CAAC,CAAC,CAAA;IAC3E,MAAM,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;GAavC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"stack-info.test.js","sourceRoot":"","sources":["../../src/utils/stack-info.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAEnC,OAAO,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAA;AAEhE,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;IACpC,MAAM,UAAU,GAAG;;;;;;;;;;;;CAYpB,CAAA;IAEC,MAAM,SAAS,GAAG,8BAA8B,CAAC,UAAU,CAAC,CAAA;IAC5D,mEAAmE;IACnE,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,2BAA2B,CAAC,CAAC,CAAA;IAC3E,MAAM,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;GAqBvC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,EAAE,CAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE;IACrC,MAAM,UAAU,GAAG;;;;;;;;;;;;CAYpB,CAAA;IAEC,MAAM,SAAS,GAAG,8BAA8B,CAAC,UAAU,CAAC,CAAA;IAC5D,mEAAmE;IACnE,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,2BAA2B,CAAC,CAAC,CAAA;IAC3E,MAAM,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;GAavC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,EAAE,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;IACxB,MAAM,UAAU,GAAG;;;;;;;;;;;GAWlB,CAAA;IAED,MAAM,SAAS,GAAG,8BAA8B,CAAC,UAAU,CAAC,CAAA;IAC5D,MAAM,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;GAavC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;IACxD,MAAM,UAAU,GAAG;;;;;;;;;;GAUlB,CAAA;IAED,MAAM,SAAS,GAAG,8BAA8B,CAAC,UAAU,CAAC,CAAA;IAC5D,MAAM,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;GASvC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -284,12 +284,8 @@ export interface FixtureSchema extends FromInputSchema.DeriveSchema<{
|
|
|
284
284
|
tables: typeof tables;
|
|
285
285
|
}> {
|
|
286
286
|
}
|
|
287
|
-
export declare const makeTodoMvc: ({ otelTracer, otelContext,
|
|
287
|
+
export declare const makeTodoMvc: ({ otelTracer, otelContext, }?: {
|
|
288
288
|
otelTracer?: otel.Tracer;
|
|
289
289
|
otelContext?: otel.Context;
|
|
290
|
-
|
|
291
|
-
}) => Effect.Effect<{
|
|
292
|
-
store: Store<any, FixtureSchema>;
|
|
293
|
-
reactivityGraph: import("@livestore/livestore").ReactivityGraph;
|
|
294
|
-
}, import("@livestore/common").UnexpectedError, import("effect/Scope").Scope>;
|
|
290
|
+
}) => Effect.Effect<Store<any, FixtureSchema>, import("@livestore/common").UnexpectedError, import("effect/Scope").Scope>;
|
|
295
291
|
//# sourceMappingURL=fixture.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixture.d.ts","sourceRoot":"","sources":["../../../src/utils/tests/fixture.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAe,QAAQ,
|
|
1
|
+
{"version":3,"file":"fixture.d.ts","sourceRoot":"","sources":["../../../src/utils/tests/fixture.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAe,QAAQ,EAAc,MAAM,sBAAsB,CAAA;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD,OAAO,KAAK,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAE/C,MAAM,MAAM,IAAI,GAAG;IACjB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,OAAO,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,WAAW,CAAA;AAEnD,MAAM,MAAM,QAAQ,GAAG;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAQjB,CAAA;AAED,eAAO,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAQf,CAAA;AAED,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAiB,CAAA;AACpC,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAyB,CAAA;AAE5C,MAAM,WAAW,aAAc,SAAQ,eAAe,CAAC,YAAY,CAAC;IAAE,MAAM,EAAE,OAAO,MAAM,CAAA;CAAE,CAAC;CAAG;AAEjG,eAAO,MAAM,WAAW,kCAGrB;IACD,UAAU,CAAC,EAAE,IAAI,CAAC,MAAM,CAAA;IACxB,WAAW,CAAC,EAAE,IAAI,CAAC,OAAO,CAAA;CAC3B,wHAUiF,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { provideOtel } from '@livestore/common';
|
|
2
|
-
import { createStore, DbSchema,
|
|
2
|
+
import { createStore, DbSchema, makeSchema } from '@livestore/livestore';
|
|
3
3
|
import { Effect } from '@livestore/utils/effect';
|
|
4
4
|
import { makeInMemoryAdapter } from '@livestore/web';
|
|
5
5
|
export const todos = DbSchema.table('todos', {
|
|
@@ -14,15 +14,13 @@ export const app = DbSchema.table('app', {
|
|
|
14
14
|
}, { isSingleton: true });
|
|
15
15
|
export const tables = { todos, app };
|
|
16
16
|
export const schema = makeSchema({ tables });
|
|
17
|
-
export const makeTodoMvc = ({ otelTracer, otelContext,
|
|
18
|
-
const reactivityGraph = useGlobalReactivityGraph ? globalReactivityGraph : makeReactivityGraph();
|
|
17
|
+
export const makeTodoMvc = ({ otelTracer, otelContext, } = {}) => Effect.gen(function* () {
|
|
19
18
|
const store = yield* createStore({
|
|
20
19
|
schema,
|
|
21
20
|
storeId: 'default',
|
|
22
21
|
adapter: makeInMemoryAdapter(),
|
|
23
|
-
reactivityGraph,
|
|
24
22
|
debug: { instanceId: 'test' },
|
|
25
23
|
});
|
|
26
|
-
return
|
|
24
|
+
return store;
|
|
27
25
|
}).pipe(provideOtel({ parentSpanContext: otelContext, otelTracer: otelTracer }));
|
|
28
26
|
//# sourceMappingURL=fixture.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixture.js","sourceRoot":"","sources":["../../../src/utils/tests/fixture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAG/C,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"fixture.js","sourceRoot":"","sources":["../../../src/utils/tests/fixture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAG/C,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAgBpD,MAAM,CAAC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CACjC,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;CACjE,EACD,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAC9C,CAAA;AAED,MAAM,CAAC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAC/B,KAAK,EACL;IACE,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;IAC1D,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC3D,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;CAC3D,EACD,EAAE,WAAW,EAAE,IAAI,EAAE,CACtB,CAAA;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAA;AACpC,MAAM,CAAC,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;AAI5C,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAC1B,UAAU,EACV,WAAW,MAIT,EAAE,EAAE,EAAE,CACR,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,KAAK,GAA8B,KAAK,CAAC,CAAC,WAAW,CAAC;QAC1D,MAAM;QACN,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,mBAAmB,EAAE;QAC9B,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE;KAC9B,CAAC,CAAA;IAEF,OAAO,KAAK,CAAA;AACd,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../src/utils/tests/mod.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA"}
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../src/utils/tests/mod.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,OAAO,KAAK,EAAE,MAAM,mBAAmB,CAAA"}
|
package/dist/utils/tests/mod.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.js","sourceRoot":"","sources":["../../../src/utils/tests/mod.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA"}
|
|
1
|
+
{"version":3,"file":"mod.js","sourceRoot":"","sources":["../../../src/utils/tests/mod.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,OAAO,KAAK,EAAE,MAAM,mBAAmB,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@livestore/livestore",
|
|
3
|
-
"version": "0.3.0-dev.
|
|
3
|
+
"version": "0.3.0-dev.11",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"exports": {
|
|
@@ -31,9 +31,9 @@
|
|
|
31
31
|
"dependencies": {
|
|
32
32
|
"@graphql-typed-document-node/core": "3.2.0",
|
|
33
33
|
"@opentelemetry/api": "1.9.0",
|
|
34
|
-
"@livestore/common": "0.3.0-dev.
|
|
35
|
-
"@livestore/
|
|
36
|
-
"@livestore/
|
|
34
|
+
"@livestore/common": "0.3.0-dev.11",
|
|
35
|
+
"@livestore/db-schema": "0.3.0-dev.11",
|
|
36
|
+
"@livestore/utils": "0.3.0-dev.11"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"@opentelemetry/sdk-trace-base": "^1.30.1",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"typescript": "^5.7.2",
|
|
42
42
|
"vite": "^6.0.11",
|
|
43
43
|
"vitest": "^2.1.4",
|
|
44
|
-
"@livestore/web": "0.3.0-dev.
|
|
44
|
+
"@livestore/web": "0.3.0-dev.11"
|
|
45
45
|
},
|
|
46
46
|
"peerDependencies": {
|
|
47
47
|
"graphql": "~16.0"
|
|
@@ -5,7 +5,9 @@ import type {
|
|
|
5
5
|
MutableDebugInfo,
|
|
6
6
|
PreparedBindValues,
|
|
7
7
|
PreparedStatement,
|
|
8
|
-
|
|
8
|
+
SqliteDb,
|
|
9
|
+
SqliteDbChangeset,
|
|
10
|
+
SqliteDbSession,
|
|
9
11
|
} from '@livestore/common'
|
|
10
12
|
import { BoundArray, BoundMap, sql } from '@livestore/common'
|
|
11
13
|
import { isDevEnv } from '@livestore/utils'
|
|
@@ -21,12 +23,17 @@ export const emptyDebugInfo = (): DebugInfo => ({
|
|
|
21
23
|
events: new BoundArray(1000),
|
|
22
24
|
})
|
|
23
25
|
|
|
24
|
-
|
|
26
|
+
/**
|
|
27
|
+
* This class is mostly adding result caching around a SqliteDb which is used to speed up
|
|
28
|
+
* SQLite queries when used through the reactivity graph.
|
|
29
|
+
*/
|
|
30
|
+
export class SqliteDbWrapper implements SqliteDb {
|
|
31
|
+
_tag = 'SqliteDb' as const
|
|
25
32
|
// TODO: how many unique active statements are expected?
|
|
26
33
|
private cachedStmts = new BoundMap<string, PreparedStatement>(200)
|
|
27
34
|
private tablesUsedCache = new BoundMap<string, Set<string>>(200)
|
|
28
35
|
private resultCache = new QueryCache()
|
|
29
|
-
private db:
|
|
36
|
+
private db: SqliteDb
|
|
30
37
|
private otelTracer: otel.Tracer
|
|
31
38
|
private otelRootSpanContext: otel.Context
|
|
32
39
|
private tablesUsedStmt
|
|
@@ -36,7 +43,7 @@ export class SynchronousDatabaseWrapper {
|
|
|
36
43
|
db,
|
|
37
44
|
otel,
|
|
38
45
|
}: {
|
|
39
|
-
db:
|
|
46
|
+
db: SqliteDb
|
|
40
47
|
otel: {
|
|
41
48
|
tracer: otel.Tracer
|
|
42
49
|
rootSpanContext: otel.Context
|
|
@@ -54,6 +61,25 @@ export class SynchronousDatabaseWrapper {
|
|
|
54
61
|
|
|
55
62
|
configureSQLite(this)
|
|
56
63
|
}
|
|
64
|
+
metadata: any
|
|
65
|
+
prepare(queryStr: string): PreparedStatement {
|
|
66
|
+
return this.db.prepare(queryStr)
|
|
67
|
+
}
|
|
68
|
+
import(data: Uint8Array<ArrayBufferLike> | SqliteDb<any, any>) {
|
|
69
|
+
return this.db.import(data)
|
|
70
|
+
}
|
|
71
|
+
close(): void {
|
|
72
|
+
return this.db.close()
|
|
73
|
+
}
|
|
74
|
+
destroy(): void {
|
|
75
|
+
return this.db.destroy()
|
|
76
|
+
}
|
|
77
|
+
session(): SqliteDbSession {
|
|
78
|
+
return this.db.session()
|
|
79
|
+
}
|
|
80
|
+
makeChangeset(data: Uint8Array): SqliteDbChangeset {
|
|
81
|
+
return this.db.makeChangeset(data)
|
|
82
|
+
}
|
|
57
83
|
|
|
58
84
|
txn<TRes>(callback: () => TRes): TRes {
|
|
59
85
|
this.execute(sql`begin transaction;`)
|
|
@@ -121,9 +147,13 @@ export class SynchronousDatabaseWrapper {
|
|
|
121
147
|
|
|
122
148
|
execute(
|
|
123
149
|
queryStr: string,
|
|
124
|
-
bindValues?: PreparedBindValues,
|
|
125
|
-
|
|
126
|
-
|
|
150
|
+
bindValues?: PreparedBindValues | undefined,
|
|
151
|
+
options?: {
|
|
152
|
+
hasNoEffects?: boolean
|
|
153
|
+
otelContext?: otel.Context
|
|
154
|
+
writeTables?: ReadonlySet<string>
|
|
155
|
+
onRowsChanged?: (rowsChanged: number) => void
|
|
156
|
+
},
|
|
127
157
|
): { durationMs: number } {
|
|
128
158
|
// console.debug('in-memory-db:execute', query, bindValues)
|
|
129
159
|
|
|
@@ -144,7 +174,7 @@ export class SynchronousDatabaseWrapper {
|
|
|
144
174
|
if (options?.hasNoEffects !== true && !this.resultCache.ignoreQuery(queryStr)) {
|
|
145
175
|
// TODO use write tables instead
|
|
146
176
|
// check what queries actually end up here.
|
|
147
|
-
this.resultCache.invalidate(writeTables ?? this.getTablesUsed(queryStr))
|
|
177
|
+
this.resultCache.invalidate(options?.writeTables ?? this.getTablesUsed(queryStr))
|
|
148
178
|
}
|
|
149
179
|
|
|
150
180
|
span.end()
|
|
@@ -172,14 +202,14 @@ export class SynchronousDatabaseWrapper {
|
|
|
172
202
|
|
|
173
203
|
select<T = any>(
|
|
174
204
|
queryStr: string,
|
|
205
|
+
bindValues?: PreparedBindValues | undefined,
|
|
175
206
|
options?: {
|
|
176
207
|
queriedTables?: ReadonlySet<string>
|
|
177
|
-
bindValues?: PreparedBindValues
|
|
178
208
|
skipCache?: boolean
|
|
179
209
|
otelContext?: otel.Context
|
|
180
210
|
},
|
|
181
211
|
): ReadonlyArray<T> {
|
|
182
|
-
const { queriedTables,
|
|
212
|
+
const { queriedTables, skipCache = false, otelContext } = options ?? {}
|
|
183
213
|
|
|
184
214
|
// console.debug('in-memory-db:select', query, bindValues)
|
|
185
215
|
|
|
@@ -252,7 +282,7 @@ export class SynchronousDatabaseWrapper {
|
|
|
252
282
|
}
|
|
253
283
|
|
|
254
284
|
/** Set up SQLite performance; hasn't been super carefully optimized yet. */
|
|
255
|
-
const configureSQLite = (db:
|
|
285
|
+
const configureSQLite = (db: SqliteDbWrapper) => {
|
|
256
286
|
db.execute(
|
|
257
287
|
// TODO: revisit these tuning parameters for max performance
|
|
258
288
|
sql`
|
package/src/effect/LiveStore.ts
CHANGED
|
@@ -5,20 +5,26 @@ import { Context, Deferred, Duration, Effect, Layer, pipe } from '@livestore/uti
|
|
|
5
5
|
import type * as otel from '@opentelemetry/api'
|
|
6
6
|
import type { GraphQLSchema } from 'graphql'
|
|
7
7
|
|
|
8
|
+
import type { SqliteDbWrapper } from '../SqliteDbWrapper.js'
|
|
8
9
|
import { createStore } from '../store/create-store.js'
|
|
9
10
|
import type { Store } from '../store/store.js'
|
|
10
11
|
import type { BaseGraphQLContext, LiveStoreContextRunning as LiveStoreContextRunning_ } from '../store/store-types.js'
|
|
11
|
-
import type { SynchronousDatabaseWrapper } from '../SynchronousDatabaseWrapper.js'
|
|
12
12
|
|
|
13
|
-
export
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
)
|
|
13
|
+
export class LiveStoreContextRunning extends Context.Tag('@livestore/livestore/effect/LiveStoreContextRunning')<
|
|
14
|
+
LiveStoreContextRunning,
|
|
15
|
+
LiveStoreContextRunning_
|
|
16
|
+
>() {
|
|
17
|
+
static fromDeferred = Effect.gen(function* () {
|
|
18
|
+
const deferred = yield* DeferredStoreContext
|
|
19
|
+
const ctx = yield* deferred
|
|
20
|
+
return Layer.succeed(LiveStoreContextRunning, ctx)
|
|
21
|
+
}).pipe(Layer.unwrapScoped)
|
|
22
|
+
}
|
|
17
23
|
|
|
18
|
-
export
|
|
19
|
-
|
|
20
|
-
'
|
|
21
|
-
)
|
|
24
|
+
export class DeferredStoreContext extends Context.Tag('@livestore/livestore/effect/DeferredStoreContext')<
|
|
25
|
+
DeferredStoreContext,
|
|
26
|
+
Deferred.Deferred<LiveStoreContextRunning['Type'], UnexpectedError>
|
|
27
|
+
>() {}
|
|
22
28
|
|
|
23
29
|
export type LiveStoreContextProps<GraphQLContext extends BaseGraphQLContext> = {
|
|
24
30
|
schema: LiveStoreSchema
|
|
@@ -33,9 +39,11 @@ export type LiveStoreContextProps<GraphQLContext extends BaseGraphQLContext> = {
|
|
|
33
39
|
storeId?: string
|
|
34
40
|
graphQLOptions?: {
|
|
35
41
|
schema: Effect.Effect<GraphQLSchema, never, OtelTracer.OtelTracer>
|
|
36
|
-
makeContext: (db:
|
|
42
|
+
makeContext: (db: SqliteDbWrapper, tracer: otel.Tracer, sessionId: string) => GraphQLContext
|
|
37
43
|
}
|
|
38
|
-
boot?: (
|
|
44
|
+
boot?: (
|
|
45
|
+
store: Store<GraphQLContext, LiveStoreSchema>,
|
|
46
|
+
) => Effect.Effect<void, unknown, OtelTracer.OtelTracer | LiveStoreContextRunning>
|
|
39
47
|
adapter: Adapter
|
|
40
48
|
disableDevtools?: boolean
|
|
41
49
|
onBootStatus?: (status: BootStatus) => void
|
|
@@ -52,7 +60,7 @@ export const LiveStoreContextLayer = <GraphQLContext extends BaseGraphQLContext>
|
|
|
52
60
|
|
|
53
61
|
export const LiveStoreContextDeferred = Layer.effect(
|
|
54
62
|
DeferredStoreContext,
|
|
55
|
-
Deferred.make<LiveStoreContextRunning, UnexpectedError>(),
|
|
63
|
+
Deferred.make<LiveStoreContextRunning['Type'], UnexpectedError>(),
|
|
56
64
|
)
|
|
57
65
|
|
|
58
66
|
export const makeLiveStoreContext = <GraphQLContext extends BaseGraphQLContext>({
|
|
@@ -65,7 +73,7 @@ export const makeLiveStoreContext = <GraphQLContext extends BaseGraphQLContext>(
|
|
|
65
73
|
onBootStatus,
|
|
66
74
|
batchUpdates,
|
|
67
75
|
}: LiveStoreContextProps<GraphQLContext>): Effect.Effect<
|
|
68
|
-
LiveStoreContextRunning,
|
|
76
|
+
LiveStoreContextRunning['Type'],
|
|
69
77
|
UnexpectedError | Cause.TimeoutException,
|
|
70
78
|
DeferredStoreContext | Scope.Scope | OtelTracer.OtelTracer
|
|
71
79
|
> =>
|
|
@@ -92,7 +100,7 @@ export const makeLiveStoreContext = <GraphQLContext extends BaseGraphQLContext>(
|
|
|
92
100
|
}
|
|
93
101
|
globalThis.__debugLiveStore[storeId] = store
|
|
94
102
|
|
|
95
|
-
return { stage: 'running', store } satisfies LiveStoreContextRunning
|
|
103
|
+
return { stage: 'running', store } satisfies LiveStoreContextRunning['Type']
|
|
96
104
|
}),
|
|
97
105
|
Effect.tapErrorCause((cause) => Effect.flatMap(DeferredStoreContext, (def) => Deferred.failCause(def, cause))),
|
|
98
106
|
Effect.tap((storeCtx) => Effect.flatMap(DeferredStoreContext, (def) => Deferred.succeed(def, storeCtx))),
|
package/src/index.ts
CHANGED
|
@@ -8,10 +8,15 @@ export type {
|
|
|
8
8
|
OtelOptions,
|
|
9
9
|
} from './store/store-types.js'
|
|
10
10
|
|
|
11
|
-
export
|
|
12
|
-
|
|
11
|
+
export {
|
|
12
|
+
StoreAbort,
|
|
13
|
+
StoreInterrupted,
|
|
14
|
+
type LiveStoreContext,
|
|
15
|
+
type ShutdownDeferred,
|
|
16
|
+
type LiveStoreContextRunning,
|
|
17
|
+
} from './store/store-types.js'
|
|
13
18
|
|
|
14
|
-
export {
|
|
19
|
+
export { SqliteDbWrapper, emptyDebugInfo } from './SqliteDbWrapper.js'
|
|
15
20
|
|
|
16
21
|
export type {
|
|
17
22
|
GetAtom,
|
|
@@ -26,8 +31,9 @@ export type {
|
|
|
26
31
|
Effect,
|
|
27
32
|
} from './reactive.js'
|
|
28
33
|
export { LiveStoreComputedQuery, computed } from './live-queries/computed.js'
|
|
29
|
-
export { LiveStoreDbQuery, queryDb } from './live-queries/db.js'
|
|
34
|
+
export { LiveStoreDbQuery, queryDb } from './live-queries/db-query.js'
|
|
30
35
|
export { LiveStoreGraphQLQuery, queryGraphQL } from './live-queries/graphql.js'
|
|
36
|
+
export { makeRef, type LiveQueryRef } from './live-queries/make-ref.js'
|
|
31
37
|
export {
|
|
32
38
|
type GetAtomResult,
|
|
33
39
|
type ReactivityGraph,
|
|
@@ -35,10 +41,11 @@ export {
|
|
|
35
41
|
type LiveQuery,
|
|
36
42
|
type GetResult,
|
|
37
43
|
type LiveQueryAny,
|
|
44
|
+
type LiveQueryDef,
|
|
45
|
+
type LiveQueryDefAny,
|
|
46
|
+
type RcRef,
|
|
38
47
|
} from './live-queries/base-class.js'
|
|
39
48
|
|
|
40
|
-
export { globalReactivityGraph } from './global-state.js'
|
|
41
|
-
|
|
42
49
|
export { deriveColQuery } from './row-query-utils.js'
|
|
43
50
|
|
|
44
51
|
export * from '@livestore/common/schema'
|
|
@@ -46,7 +53,7 @@ export {
|
|
|
46
53
|
sql,
|
|
47
54
|
SessionIdSymbol,
|
|
48
55
|
type BootStatus,
|
|
49
|
-
type
|
|
56
|
+
type SqliteDb,
|
|
50
57
|
type DebugInfo,
|
|
51
58
|
type MutableDebugInfo,
|
|
52
59
|
prepareBindValues,
|