@livestore/livestore 0.3.0-dev.4 → 0.3.0-dev.40
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/QueryCache.d.ts.map +1 -1
- package/dist/SqliteDbWrapper.d.ts +60 -0
- package/dist/SqliteDbWrapper.d.ts.map +1 -0
- package/dist/{SynchronousDatabaseWrapper.js → SqliteDbWrapper.js} +69 -34
- package/dist/SqliteDbWrapper.js.map +1 -0
- package/dist/effect/LiveStore.d.ts +6 -34
- package/dist/effect/LiveStore.d.ts.map +1 -1
- package/dist/effect/LiveStore.js +10 -12
- package/dist/effect/LiveStore.js.map +1 -1
- package/dist/effect/mod.d.ts +3 -0
- package/dist/effect/mod.d.ts.map +1 -0
- package/dist/effect/mod.js +3 -0
- package/dist/effect/mod.js.map +1 -0
- package/dist/internal/mod.d.ts +3 -0
- package/dist/internal/mod.d.ts.map +1 -0
- package/dist/internal/mod.js +3 -0
- package/dist/internal/mod.js.map +1 -0
- package/dist/live-queries/base-class.d.ts +65 -27
- package/dist/live-queries/base-class.d.ts.map +1 -1
- package/dist/live-queries/base-class.js +54 -13
- package/dist/live-queries/base-class.js.map +1 -1
- package/dist/live-queries/client-document-get-query.d.ts +12 -0
- package/dist/live-queries/client-document-get-query.d.ts.map +1 -0
- package/dist/live-queries/client-document-get-query.js +18 -0
- package/dist/live-queries/client-document-get-query.js.map +1 -0
- package/dist/live-queries/computed.d.ts +12 -14
- package/dist/live-queries/computed.d.ts.map +1 -1
- package/dist/live-queries/computed.js +37 -15
- package/dist/live-queries/computed.js.map +1 -1
- package/dist/live-queries/db-query.d.ts +64 -0
- package/dist/live-queries/db-query.d.ts.map +1 -0
- package/dist/live-queries/{db.js → db-query.js} +83 -41
- 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 +133 -0
- package/dist/live-queries/db-query.test.js.map +1 -0
- package/dist/live-queries/mod.d.ts +5 -0
- package/dist/live-queries/mod.d.ts.map +1 -0
- package/dist/live-queries/mod.js +5 -0
- package/dist/live-queries/mod.js.map +1 -0
- package/dist/live-queries/signal.d.ts +20 -0
- package/dist/live-queries/signal.d.ts.map +1 -0
- package/dist/live-queries/signal.js +33 -0
- package/dist/live-queries/signal.js.map +1 -0
- package/dist/live-queries/signal.test.d.ts +2 -0
- package/dist/live-queries/signal.test.d.ts.map +1 -0
- package/dist/live-queries/signal.test.js +17 -0
- package/dist/live-queries/signal.test.js.map +1 -0
- package/dist/mod.d.ts +14 -0
- package/dist/mod.d.ts.map +1 -0
- package/dist/mod.js +13 -0
- package/dist/mod.js.map +1 -0
- package/dist/reactive.d.ts +23 -17
- package/dist/reactive.d.ts.map +1 -1
- package/dist/reactive.js +23 -19
- package/dist/reactive.js.map +1 -1
- package/dist/reactive.test.js +1 -1
- package/dist/reactive.test.js.map +1 -1
- package/dist/store/create-store.d.ts +70 -12
- package/dist/store/create-store.d.ts.map +1 -1
- package/dist/store/create-store.js +69 -19
- package/dist/store/create-store.js.map +1 -1
- package/dist/store/devtools.d.ts +5 -4
- package/dist/store/devtools.d.ts.map +1 -1
- package/dist/store/devtools.js +103 -47
- package/dist/store/devtools.js.map +1 -1
- package/dist/store/store-types.d.ts +32 -42
- package/dist/store/store-types.d.ts.map +1 -1
- package/dist/store/store-types.js +2 -5
- package/dist/store/store-types.js.map +1 -1
- package/dist/store/store.d.ts +104 -39
- package/dist/store/store.d.ts.map +1 -1
- package/dist/store/store.js +261 -214
- package/dist/store/store.js.map +1 -1
- package/dist/utils/data-structures.d.ts.map +1 -1
- package/dist/utils/dev.d.ts.map +1 -1
- package/dist/utils/dev.js +6 -1
- package/dist/utils/dev.js.map +1 -1
- 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 +59 -216
- package/dist/utils/tests/fixture.d.ts.map +1 -1
- package/dist/utils/tests/fixture.js +23 -18
- 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/dist/utils/tests/otel.d.ts.map +1 -1
- package/dist/utils/tests/otel.js +8 -3
- package/dist/utils/tests/otel.js.map +1 -1
- package/package.json +29 -26
- package/src/{SynchronousDatabaseWrapper.ts → SqliteDbWrapper.ts} +92 -42
- package/src/effect/LiveStore.ts +27 -64
- package/src/effect/{index.ts → mod.ts} +2 -3
- package/src/internal/mod.ts +2 -0
- package/src/live-queries/__snapshots__/{db.test.ts.snap → db-query.test.ts.snap} +220 -45
- package/src/live-queries/base-class.ts +152 -50
- package/src/live-queries/client-document-get-query.ts +52 -0
- package/src/live-queries/computed.ts +51 -33
- package/src/live-queries/db-query.test.ts +192 -0
- package/src/live-queries/{db.ts → db-query.ts} +140 -82
- package/src/live-queries/mod.ts +4 -0
- package/src/live-queries/signal.test.ts +25 -0
- package/src/live-queries/signal.ts +47 -0
- package/src/mod.ts +42 -0
- package/src/reactive.test.ts +1 -1
- package/src/reactive.ts +66 -43
- package/src/store/create-store.ts +187 -59
- package/src/store/devtools.ts +136 -54
- package/src/store/store-types.ts +31 -43
- package/src/store/store.ts +385 -309
- package/src/utils/dev.ts +6 -1
- 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 +22 -31
- package/src/utils/tests/mod.ts +1 -0
- package/src/utils/tests/otel.ts +10 -3
- package/dist/SynchronousDatabaseWrapper.d.ts +0 -41
- package/dist/SynchronousDatabaseWrapper.d.ts.map +0 -1
- package/dist/SynchronousDatabaseWrapper.js.map +0 -1
- package/dist/effect/index.d.ts +0 -2
- package/dist/effect/index.d.ts.map +0 -1
- package/dist/effect/index.js +0 -2
- package/dist/effect/index.js.map +0 -1
- package/dist/global-state.d.ts +0 -14
- package/dist/global-state.d.ts.map +0 -1
- package/dist/global-state.js +0 -16
- package/dist/global-state.js.map +0 -1
- package/dist/index.d.ts +0 -20
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -16
- package/dist/index.js.map +0 -1
- package/dist/live-queries/db.d.ts +0 -66
- package/dist/live-queries/db.d.ts.map +0 -1
- package/dist/live-queries/db.js.map +0 -1
- package/dist/live-queries/db.test.d.ts +0 -2
- package/dist/live-queries/db.test.d.ts.map +0 -1
- package/dist/live-queries/db.test.js +0 -118
- package/dist/live-queries/db.test.js.map +0 -1
- package/dist/live-queries/graphql.d.ts +0 -49
- package/dist/live-queries/graphql.d.ts.map +0 -1
- package/dist/live-queries/graphql.js +0 -122
- package/dist/live-queries/graphql.js.map +0 -1
- package/dist/row-query-utils.d.ts +0 -17
- package/dist/row-query-utils.d.ts.map +0 -1
- package/dist/row-query-utils.js +0 -31
- package/dist/row-query-utils.js.map +0 -1
- package/dist/utils/otel.d.ts +0 -4
- package/dist/utils/otel.d.ts.map +0 -1
- package/dist/utils/otel.js +0 -6
- package/dist/utils/otel.js.map +0 -1
- package/src/global-state.ts +0 -20
- package/src/index.ts +0 -66
- package/src/live-queries/db.test.ts +0 -154
- package/src/live-queries/graphql.ts +0 -219
- package/src/row-query-utils.ts +0 -66
- package/src/utils/otel.ts +0 -9
- package/tsconfig.json +0 -18
- package/vitest.config.js +0 -9
package/dist/store/devtools.js
CHANGED
@@ -1,82 +1,101 @@
|
|
1
1
|
import { Devtools, liveStoreVersion, UnexpectedError } from '@livestore/common';
|
2
2
|
import { throttle } from '@livestore/utils';
|
3
3
|
import { Effect, Stream } from '@livestore/utils/effect';
|
4
|
+
import { nanoid } from '@livestore/utils/nanoid';
|
4
5
|
import { NOT_REFRESHED_YET } from '../reactive.js';
|
5
|
-
import { emptyDebugInfo as makeEmptyDebugInfo } from '../
|
6
|
+
import { emptyDebugInfo as makeEmptyDebugInfo } from '../SqliteDbWrapper.js';
|
6
7
|
// When running this code in Node.js, we need to use `setTimeout` instead of `requestAnimationFrame`
|
7
8
|
const requestNextTick = globalThis.requestAnimationFrame === undefined
|
8
9
|
? (cb) => setTimeout(cb, 1000)
|
9
10
|
: globalThis.requestAnimationFrame;
|
10
11
|
const cancelTick = globalThis.cancelAnimationFrame === undefined ? (id) => clearTimeout(id) : globalThis.cancelAnimationFrame;
|
11
12
|
export const connectDevtoolsToStore = ({ storeDevtoolsChannel, store, }) => Effect.gen(function* () {
|
12
|
-
const appHostId = store.clientSession.coordinator.devtools.appHostId;
|
13
13
|
const reactivityGraphSubcriptions = new Map();
|
14
14
|
const liveQueriesSubscriptions = new Map();
|
15
15
|
const debugInfoHistorySubscriptions = new Map();
|
16
|
+
const syncHeadClientSessionSubscriptions = new Map();
|
17
|
+
const { clientId, sessionId } = store.clientSession;
|
16
18
|
yield* Effect.addFinalizer(() => Effect.sync(() => {
|
17
19
|
reactivityGraphSubcriptions.forEach((unsub) => unsub());
|
18
20
|
liveQueriesSubscriptions.forEach((unsub) => unsub());
|
19
21
|
debugInfoHistorySubscriptions.forEach((unsub) => unsub());
|
22
|
+
syncHeadClientSessionSubscriptions.forEach((unsub) => unsub());
|
20
23
|
}));
|
24
|
+
const handledRequestIds = new Set();
|
21
25
|
const sendToDevtools = (message) => storeDevtoolsChannel.send(message).pipe(Effect.tapCauseLogPretty, Effect.runFork);
|
22
26
|
const onMessage = (decodedMessage) => {
|
23
27
|
// console.debug('@livestore/livestore:store:devtools:onMessage', decodedMessage)
|
24
|
-
if (decodedMessage.
|
28
|
+
if (decodedMessage.clientId !== clientId || decodedMessage.sessionId !== sessionId) {
|
25
29
|
// console.log(`Unknown message`, event)
|
26
30
|
return;
|
27
31
|
}
|
28
|
-
if (decodedMessage._tag === 'LSD.Disconnect') {
|
29
|
-
console.error('TODO handle disconnect properly in store')
|
32
|
+
if (decodedMessage._tag === 'LSD.ClientSession.Disconnect') {
|
33
|
+
// console.error('TODO handle disconnect properly in store')
|
30
34
|
return;
|
31
35
|
}
|
32
36
|
const requestId = decodedMessage.requestId;
|
37
|
+
// TODO we should try to move the duplicate message handling on the webmesh layer
|
38
|
+
// So far I could only observe this problem with webmesh proxy channels (e.g. for Expo)
|
39
|
+
// Proof: https://share.cleanshot.com/V9G87B0B
|
40
|
+
// Also see `leader-worker-devtools.ts` for same problem
|
41
|
+
if (handledRequestIds.has(requestId)) {
|
42
|
+
return;
|
43
|
+
}
|
44
|
+
handledRequestIds.add(requestId);
|
33
45
|
const requestIdleCallback = globalThis.requestIdleCallback ?? ((cb) => cb());
|
34
46
|
switch (decodedMessage._tag) {
|
35
|
-
case 'LSD.ReactivityGraphSubscribe': {
|
47
|
+
case 'LSD.ClientSession.ReactivityGraphSubscribe': {
|
36
48
|
const includeResults = decodedMessage.includeResults;
|
49
|
+
const { subscriptionId } = decodedMessage;
|
37
50
|
const send = () =>
|
38
51
|
// In order to not add more work to the current tick, we use requestIdleCallback
|
39
52
|
// to send the reactivity graph updates to the devtools
|
40
|
-
requestIdleCallback(() => sendToDevtools(Devtools.ReactivityGraphRes.make({
|
53
|
+
requestIdleCallback(() => sendToDevtools(Devtools.ClientSession.ReactivityGraphRes.make({
|
41
54
|
reactivityGraph: store.reactivityGraph.getSnapshot({ includeResults }),
|
42
|
-
requestId,
|
43
|
-
|
55
|
+
requestId: nanoid(10),
|
56
|
+
clientId,
|
57
|
+
sessionId,
|
44
58
|
liveStoreVersion,
|
59
|
+
subscriptionId,
|
45
60
|
})), { timeout: 500 });
|
46
61
|
send();
|
47
62
|
// In some cases, there can be A LOT of reactivity graph updates in a short period of time
|
48
63
|
// so we throttle the updates to avoid sending too much data
|
49
64
|
// This might need to be tweaked further and possibly be exposed to the user in some way.
|
50
65
|
const throttledSend = throttle(send, 20);
|
51
|
-
reactivityGraphSubcriptions.set(
|
66
|
+
reactivityGraphSubcriptions.set(subscriptionId, store.reactivityGraph.subscribeToRefresh(throttledSend));
|
52
67
|
break;
|
53
68
|
}
|
54
|
-
case 'LSD.DebugInfoReq': {
|
55
|
-
sendToDevtools(Devtools.DebugInfoRes.make({
|
56
|
-
debugInfo: store.
|
69
|
+
case 'LSD.ClientSession.DebugInfoReq': {
|
70
|
+
sendToDevtools(Devtools.ClientSession.DebugInfoRes.make({
|
71
|
+
debugInfo: store.sqliteDbWrapper.debugInfo,
|
57
72
|
requestId,
|
58
|
-
|
73
|
+
clientId,
|
74
|
+
sessionId,
|
59
75
|
liveStoreVersion,
|
60
76
|
}));
|
61
77
|
break;
|
62
78
|
}
|
63
|
-
case 'LSD.DebugInfoHistorySubscribe': {
|
79
|
+
case 'LSD.ClientSession.DebugInfoHistorySubscribe': {
|
80
|
+
const { subscriptionId } = decodedMessage;
|
64
81
|
const buffer = [];
|
65
82
|
let hasStopped = false;
|
66
83
|
let tickHandle;
|
67
84
|
const tick = () => {
|
68
|
-
buffer.push(store.
|
85
|
+
buffer.push(store.sqliteDbWrapper.debugInfo);
|
69
86
|
// NOTE this resets the debug info, so all other "readers" e.g. in other `requestAnimationFrame` loops,
|
70
87
|
// will get the empty debug info
|
71
88
|
// TODO We need to come up with a more graceful way to do store. Probably via a single global
|
72
89
|
// `requestAnimationFrame` loop that is passed in somehow.
|
73
|
-
store.
|
90
|
+
store.sqliteDbWrapper.debugInfo = makeEmptyDebugInfo();
|
74
91
|
if (buffer.length > 10) {
|
75
|
-
sendToDevtools(Devtools.DebugInfoHistoryRes.make({
|
92
|
+
sendToDevtools(Devtools.ClientSession.DebugInfoHistoryRes.make({
|
76
93
|
debugInfoHistory: buffer,
|
77
|
-
requestId,
|
78
|
-
|
94
|
+
requestId: nanoid(10),
|
95
|
+
clientId,
|
96
|
+
sessionId,
|
79
97
|
liveStoreVersion,
|
98
|
+
subscriptionId,
|
80
99
|
}));
|
81
100
|
buffer.length = 0;
|
82
101
|
}
|
@@ -92,39 +111,44 @@ export const connectDevtoolsToStore = ({ storeDevtoolsChannel, store, }) => Effe
|
|
92
111
|
tickHandle = undefined;
|
93
112
|
}
|
94
113
|
};
|
95
|
-
debugInfoHistorySubscriptions.set(
|
114
|
+
debugInfoHistorySubscriptions.set(subscriptionId, unsub);
|
96
115
|
break;
|
97
116
|
}
|
98
|
-
case 'LSD.DebugInfoHistoryUnsubscribe': {
|
99
|
-
|
100
|
-
//
|
101
|
-
|
102
|
-
debugInfoHistorySubscriptions.
|
117
|
+
case 'LSD.ClientSession.DebugInfoHistoryUnsubscribe': {
|
118
|
+
const { subscriptionId } = decodedMessage;
|
119
|
+
// NOTE given Webmesh channels have persistent retry behaviour, it can happen that a previous
|
120
|
+
// Webmesh channel will send a unsubscribe message for an old requestId. Thus the `?.()` handling.
|
121
|
+
debugInfoHistorySubscriptions.get(subscriptionId)?.();
|
122
|
+
debugInfoHistorySubscriptions.delete(subscriptionId);
|
103
123
|
break;
|
104
124
|
}
|
105
|
-
case 'LSD.DebugInfoResetReq': {
|
106
|
-
store.
|
107
|
-
sendToDevtools(Devtools.DebugInfoResetRes.make({ requestId,
|
125
|
+
case 'LSD.ClientSession.DebugInfoResetReq': {
|
126
|
+
store.sqliteDbWrapper.debugInfo.slowQueries.clear();
|
127
|
+
sendToDevtools(Devtools.ClientSession.DebugInfoResetRes.make({ requestId, clientId, sessionId, liveStoreVersion }));
|
108
128
|
break;
|
109
129
|
}
|
110
|
-
case 'LSD.DebugInfoRerunQueryReq': {
|
130
|
+
case 'LSD.ClientSession.DebugInfoRerunQueryReq': {
|
111
131
|
const { queryStr, bindValues, queriedTables } = decodedMessage;
|
112
|
-
store.
|
113
|
-
sendToDevtools(Devtools.DebugInfoRerunQueryRes.make({ requestId,
|
132
|
+
store.sqliteDbWrapper.select(queryStr, bindValues, { queriedTables, skipCache: true });
|
133
|
+
sendToDevtools(Devtools.ClientSession.DebugInfoRerunQueryRes.make({ requestId, clientId, sessionId, liveStoreVersion }));
|
114
134
|
break;
|
115
135
|
}
|
116
|
-
case 'LSD.ReactivityGraphUnsubscribe': {
|
117
|
-
|
118
|
-
//
|
119
|
-
|
136
|
+
case 'LSD.ClientSession.ReactivityGraphUnsubscribe': {
|
137
|
+
const { subscriptionId } = decodedMessage;
|
138
|
+
// NOTE given Webmesh channels have persistent retry behaviour, it can happen that a previous
|
139
|
+
// Webmesh channel will send a unsubscribe message for an old requestId. Thus the `?.()` handling.
|
140
|
+
reactivityGraphSubcriptions.get(subscriptionId)?.();
|
141
|
+
reactivityGraphSubcriptions.delete(subscriptionId);
|
120
142
|
break;
|
121
143
|
}
|
122
|
-
case 'LSD.LiveQueriesSubscribe': {
|
123
|
-
const
|
144
|
+
case 'LSD.ClientSession.LiveQueriesSubscribe': {
|
145
|
+
const { subscriptionId } = decodedMessage;
|
146
|
+
const send = () => requestIdleCallback(() => sendToDevtools(Devtools.ClientSession.LiveQueriesRes.make({
|
124
147
|
liveQueries: [...store.activeQueries].map((q) => ({
|
125
148
|
_tag: q._tag,
|
126
149
|
id: q.id,
|
127
150
|
label: q.label,
|
151
|
+
hash: q.def.hash,
|
128
152
|
runs: q.runs,
|
129
153
|
executionTimes: q.executionTimes.map((_) => Number(_.toString().slice(0, 5))),
|
130
154
|
lastestResult: q.results$.previousResult === NOT_REFRESHED_YET
|
@@ -132,24 +156,56 @@ export const connectDevtoolsToStore = ({ storeDevtoolsChannel, store, }) => Effe
|
|
132
156
|
: q.results$.previousResult,
|
133
157
|
activeSubscriptions: Array.from(q.activeSubscriptions),
|
134
158
|
})),
|
135
|
-
requestId,
|
159
|
+
requestId: nanoid(10),
|
136
160
|
liveStoreVersion,
|
137
|
-
|
161
|
+
clientId,
|
162
|
+
sessionId,
|
163
|
+
subscriptionId,
|
138
164
|
})), { timeout: 500 });
|
139
165
|
send();
|
140
166
|
// Same as in the reactivity graph subscription case above, we need to throttle the updates
|
141
167
|
const throttledSend = throttle(send, 20);
|
142
|
-
liveQueriesSubscriptions.set(
|
168
|
+
liveQueriesSubscriptions.set(subscriptionId, store.reactivityGraph.subscribeToRefresh(throttledSend));
|
143
169
|
break;
|
144
170
|
}
|
145
|
-
case 'LSD.LiveQueriesUnsubscribe': {
|
146
|
-
|
147
|
-
//
|
148
|
-
|
149
|
-
liveQueriesSubscriptions.
|
171
|
+
case 'LSD.ClientSession.LiveQueriesUnsubscribe': {
|
172
|
+
const { subscriptionId } = decodedMessage;
|
173
|
+
// NOTE given Webmesh channels have persistent retry behaviour, it can happen that a previous
|
174
|
+
// Webmesh channel will send a unsubscribe message for an old requestId. Thus the `?.()` handling.
|
175
|
+
liveQueriesSubscriptions.get(subscriptionId)?.();
|
176
|
+
liveQueriesSubscriptions.delete(subscriptionId);
|
150
177
|
break;
|
151
178
|
}
|
152
|
-
|
179
|
+
case 'LSD.ClientSession.SyncHeadSubscribe': {
|
180
|
+
const { subscriptionId } = decodedMessage;
|
181
|
+
const send = (syncState) => sendToDevtools(Devtools.ClientSession.SyncHeadRes.make({
|
182
|
+
local: syncState.localHead,
|
183
|
+
upstream: syncState.upstreamHead,
|
184
|
+
requestId: nanoid(10),
|
185
|
+
clientId,
|
186
|
+
sessionId,
|
187
|
+
liveStoreVersion,
|
188
|
+
subscriptionId,
|
189
|
+
}));
|
190
|
+
send(store.syncProcessor.syncState.pipe(Effect.runSync));
|
191
|
+
syncHeadClientSessionSubscriptions.set(subscriptionId, store.syncProcessor.syncState.changes.pipe(Stream.tap((syncState) => send(syncState)), Stream.runDrain, Effect.interruptible, Effect.tapCauseLogPretty, Effect.runCallback));
|
192
|
+
break;
|
193
|
+
}
|
194
|
+
case 'LSD.ClientSession.SyncHeadUnsubscribe': {
|
195
|
+
const { subscriptionId } = decodedMessage;
|
196
|
+
// NOTE given Webmesh channels have persistent retry behaviour, it can happen that a previous
|
197
|
+
// Webmesh channel will send a unsubscribe message for an old requestId. Thus the `?.()` handling.
|
198
|
+
syncHeadClientSessionSubscriptions.get(subscriptionId)?.();
|
199
|
+
syncHeadClientSessionSubscriptions.delete(subscriptionId);
|
200
|
+
break;
|
201
|
+
}
|
202
|
+
case 'LSD.ClientSession.Ping': {
|
203
|
+
sendToDevtools(Devtools.ClientSession.Pong.make({ requestId, clientId, sessionId, liveStoreVersion }));
|
204
|
+
break;
|
205
|
+
}
|
206
|
+
default: {
|
207
|
+
console.warn(`[LSD.ClientSession] Unknown message`, decodedMessage);
|
208
|
+
}
|
153
209
|
}
|
154
210
|
};
|
155
211
|
yield* storeDevtoolsChannel.listen.pipe(
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"devtools.js","sourceRoot":"","sources":["../../src/store/devtools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAC/E,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAE3C,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;
|
1
|
+
{"version":3,"file":"devtools.js","sourceRoot":"","sources":["../../src/store/devtools.ts"],"names":[],"mappings":"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"}
|
@@ -1,12 +1,9 @@
|
|
1
|
-
import type { ClientSession, IntentionalShutdownCause, UnexpectedError } from '@livestore/common';
|
2
|
-
import type {
|
3
|
-
import type {
|
4
|
-
import {
|
1
|
+
import type { ClientSession, IntentionalShutdownCause, StoreInterrupted, UnexpectedError } from '@livestore/common';
|
2
|
+
import type { LiveStoreEvent, LiveStoreSchema } from '@livestore/common/schema';
|
3
|
+
import type { Effect, Runtime, Scope } from '@livestore/utils/effect';
|
4
|
+
import { Deferred } from '@livestore/utils/effect';
|
5
5
|
import type * as otel from '@opentelemetry/api';
|
6
|
-
import type { GraphQLSchema } from 'graphql';
|
7
|
-
import type { ReactivityGraph } from '../live-queries/base-class.js';
|
8
6
|
import type { DebugRefreshReasonBase } from '../reactive.js';
|
9
|
-
import type { SynchronousDatabaseWrapper } from '../SynchronousDatabaseWrapper.js';
|
10
7
|
import type { StackInfo } from '../utils/stack-info.js';
|
11
8
|
import type { Store } from './store.js';
|
12
9
|
export type LiveStoreContext = LiveStoreContextRunning | {
|
@@ -14,53 +11,39 @@ export type LiveStoreContext = LiveStoreContextRunning | {
|
|
14
11
|
error: UnexpectedError | unknown;
|
15
12
|
} | {
|
16
13
|
stage: 'shutdown';
|
17
|
-
cause: IntentionalShutdownCause |
|
14
|
+
cause: IntentionalShutdownCause | StoreInterrupted;
|
18
15
|
};
|
19
|
-
|
20
|
-
|
21
|
-
}>;
|
22
|
-
export declare class StoreAbort extends StoreAbort_base {
|
23
|
-
}
|
24
|
-
declare const StoreInterrupted_base: Schema.TaggedErrorClass<StoreInterrupted, "LiveStore.StoreInterrupted", {
|
25
|
-
readonly _tag: Schema.tag<"LiveStore.StoreInterrupted">;
|
26
|
-
}>;
|
27
|
-
export declare class StoreInterrupted extends StoreInterrupted_base {
|
28
|
-
}
|
29
|
-
export type ShutdownDeferred = Deferred.Deferred<void, UnexpectedError | IntentionalShutdownCause | StoreInterrupted | StoreAbort>;
|
16
|
+
export type ShutdownDeferred = Deferred.Deferred<void, UnexpectedError | IntentionalShutdownCause | StoreInterrupted>;
|
17
|
+
export declare const makeShutdownDeferred: Effect.Effect<ShutdownDeferred>;
|
30
18
|
export type LiveStoreContextRunning = {
|
31
19
|
stage: 'running';
|
32
20
|
store: Store;
|
33
21
|
};
|
34
|
-
export type BaseGraphQLContext = {
|
35
|
-
queriedTables: Set<string>;
|
36
|
-
/** Needed by Pothos Otel plugin for resolver tracing to work */
|
37
|
-
otelContext?: otel.Context;
|
38
|
-
};
|
39
|
-
export type GraphQLOptions<TContext> = {
|
40
|
-
schema: GraphQLSchema;
|
41
|
-
makeContext: (db: SynchronousDatabaseWrapper, tracer: otel.Tracer, sessionId: string) => TContext;
|
42
|
-
};
|
43
22
|
export type OtelOptions = {
|
44
23
|
tracer: otel.Tracer;
|
45
24
|
rootSpanContext: otel.Context;
|
46
25
|
};
|
47
|
-
export type StoreOptions<
|
26
|
+
export type StoreOptions<TSchema extends LiveStoreSchema = LiveStoreSchema, TContext = {}> = {
|
48
27
|
clientSession: ClientSession;
|
49
28
|
schema: TSchema;
|
50
29
|
storeId: string;
|
51
|
-
|
30
|
+
context: TContext;
|
52
31
|
otelOptions: OtelOptions;
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
32
|
+
effectContext: {
|
33
|
+
runtime: Runtime.Runtime<Scope.Scope>;
|
34
|
+
lifetimeScope: Scope.Scope;
|
35
|
+
};
|
36
|
+
confirmUnsavedChanges: boolean;
|
57
37
|
batchUpdates: (runUpdates: () => void) => void;
|
58
|
-
|
38
|
+
params: {
|
39
|
+
leaderPushBatchSize: number;
|
40
|
+
};
|
41
|
+
__runningInDevtools: boolean;
|
59
42
|
};
|
60
43
|
export type RefreshReason = DebugRefreshReasonBase | {
|
61
|
-
_tag: '
|
62
|
-
/** The
|
63
|
-
|
44
|
+
_tag: 'commit';
|
45
|
+
/** The events that were applied */
|
46
|
+
events: ReadonlyArray<LiveStoreEvent.AnyDecoded | LiveStoreEvent.PartialAnyDecoded>;
|
64
47
|
/** The tables that were written to by the event */
|
65
48
|
writeTables: ReadonlyArray<string>;
|
66
49
|
} | {
|
@@ -68,26 +51,33 @@ export type RefreshReason = DebugRefreshReasonBase | {
|
|
68
51
|
api: string;
|
69
52
|
label?: string;
|
70
53
|
stackInfo?: StackInfo;
|
54
|
+
} | {
|
55
|
+
_tag: 'subscribe.initial';
|
56
|
+
label?: string;
|
57
|
+
} | {
|
58
|
+
_tag: 'subscribe.update';
|
59
|
+
label?: string;
|
71
60
|
} | {
|
72
61
|
_tag: 'manual';
|
73
62
|
label?: string;
|
74
63
|
};
|
75
64
|
export type QueryDebugInfo = {
|
76
|
-
_tag:
|
65
|
+
_tag: string;
|
77
66
|
label: string;
|
78
67
|
query: string;
|
79
68
|
durationMs: number;
|
80
69
|
};
|
81
70
|
export type StoreOtel = {
|
82
71
|
tracer: otel.Tracer;
|
83
|
-
|
72
|
+
rootSpanContext: otel.Context;
|
73
|
+
commitsSpanContext: otel.Context;
|
84
74
|
queriesSpanContext: otel.Context;
|
85
75
|
};
|
86
|
-
export type
|
76
|
+
export type StoreCommitOptions = {
|
87
77
|
label?: string;
|
88
78
|
skipRefresh?: boolean;
|
89
79
|
spanLinks?: otel.Link[];
|
90
80
|
otelContext?: otel.Context;
|
91
81
|
};
|
92
|
-
export
|
82
|
+
export type Unsubscribe = () => void;
|
93
83
|
//# sourceMappingURL=store-types.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"store-types.d.ts","sourceRoot":"","sources":["../../src/store/store-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;
|
1
|
+
{"version":3,"file":"store-types.d.ts","sourceRoot":"","sources":["../../src/store/store-types.ts"],"names":[],"mappings":"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"}
|
@@ -1,6 +1,3 @@
|
|
1
|
-
import {
|
2
|
-
export
|
3
|
-
}
|
4
|
-
export class StoreInterrupted extends Schema.TaggedError()('LiveStore.StoreInterrupted', {}) {
|
5
|
-
}
|
1
|
+
import { Deferred } from '@livestore/utils/effect';
|
2
|
+
export const makeShutdownDeferred = Deferred.make();
|
6
3
|
//# sourceMappingURL=store-types.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"store-types.js","sourceRoot":"","sources":["../../src/store/store-types.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"store-types.js","sourceRoot":"","sources":["../../src/store/store-types.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAmBlD,MAAM,CAAC,MAAM,oBAAoB,GAAoC,QAAQ,CAAC,IAAI,EAG/E,CAAA"}
|