@livestore/common 0.3.0-dev.11 → 0.3.0-dev.2
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/adapter-types.d.ts +35 -47
- package/dist/adapter-types.d.ts.map +1 -1
- package/dist/adapter-types.js.map +1 -1
- package/dist/derived-mutations.d.ts +4 -4
- package/dist/derived-mutations.d.ts.map +1 -1
- package/dist/derived-mutations.test.js.map +1 -1
- package/dist/devtools/devtools-bridge.d.ts +1 -2
- package/dist/devtools/devtools-bridge.d.ts.map +1 -1
- package/dist/devtools/devtools-messages.d.ts +592 -3
- package/dist/devtools/devtools-messages.d.ts.map +1 -1
- package/dist/devtools/devtools-messages.js +171 -3
- package/dist/devtools/devtools-messages.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/init-singleton-tables.d.ts +2 -2
- package/dist/init-singleton-tables.d.ts.map +1 -1
- package/dist/init-singleton-tables.js.map +1 -1
- package/dist/leader-thread/apply-mutation.d.ts +2 -5
- package/dist/leader-thread/apply-mutation.d.ts.map +1 -1
- package/dist/leader-thread/apply-mutation.js +29 -41
- package/dist/leader-thread/apply-mutation.js.map +1 -1
- package/dist/leader-thread/connection.d.ts +4 -4
- package/dist/leader-thread/connection.d.ts.map +1 -1
- package/dist/leader-thread/connection.js +5 -5
- package/dist/leader-thread/connection.js.map +1 -1
- package/dist/leader-thread/leader-sync-processor.d.ts +2 -2
- package/dist/leader-thread/leader-sync-processor.d.ts.map +1 -1
- package/dist/leader-thread/leader-sync-processor.js +12 -20
- package/dist/leader-thread/leader-sync-processor.js.map +1 -1
- package/dist/leader-thread/leader-worker-devtools.d.ts +1 -1
- package/dist/leader-thread/leader-worker-devtools.d.ts.map +1 -1
- package/dist/leader-thread/leader-worker-devtools.js +81 -37
- package/dist/leader-thread/leader-worker-devtools.js.map +1 -1
- package/dist/leader-thread/make-leader-thread-layer.d.ts +11 -12
- package/dist/leader-thread/make-leader-thread-layer.d.ts.map +1 -1
- package/dist/leader-thread/make-leader-thread-layer.js +14 -33
- package/dist/leader-thread/make-leader-thread-layer.js.map +1 -1
- package/dist/leader-thread/mutationlog.d.ts +19 -6
- package/dist/leader-thread/mutationlog.d.ts.map +1 -1
- package/dist/leader-thread/mutationlog.js +6 -7
- package/dist/leader-thread/mutationlog.js.map +1 -1
- package/dist/leader-thread/pull-queue-set.d.ts.map +1 -1
- package/dist/leader-thread/recreate-db.d.ts.map +1 -1
- package/dist/leader-thread/recreate-db.js +18 -24
- package/dist/leader-thread/recreate-db.js.map +1 -1
- package/dist/leader-thread/types.d.ts +16 -36
- package/dist/leader-thread/types.d.ts.map +1 -1
- package/dist/leader-thread/types.js.map +1 -1
- package/dist/mutation.d.ts +2 -9
- package/dist/mutation.d.ts.map +1 -1
- package/dist/mutation.js +5 -5
- package/dist/mutation.js.map +1 -1
- package/dist/query-builder/impl.d.ts +1 -1
- package/dist/rehydrate-from-mutationlog.d.ts +5 -5
- package/dist/rehydrate-from-mutationlog.d.ts.map +1 -1
- package/dist/rehydrate-from-mutationlog.js +19 -13
- package/dist/rehydrate-from-mutationlog.js.map +1 -1
- package/dist/schema/EventId.d.ts +14 -16
- package/dist/schema/EventId.d.ts.map +1 -1
- package/dist/schema/EventId.js +7 -15
- package/dist/schema/EventId.js.map +1 -1
- package/dist/schema/MutationEvent.d.ts +80 -49
- package/dist/schema/MutationEvent.d.ts.map +1 -1
- package/dist/schema/MutationEvent.js +15 -32
- package/dist/schema/MutationEvent.js.map +1 -1
- package/dist/schema/system-tables.d.ts +26 -26
- package/dist/schema/system-tables.d.ts.map +1 -1
- package/dist/schema/system-tables.js +11 -19
- package/dist/schema/system-tables.js.map +1 -1
- package/dist/schema-management/common.d.ts +3 -3
- package/dist/schema-management/common.d.ts.map +1 -1
- package/dist/schema-management/common.js.map +1 -1
- package/dist/schema-management/migrations.d.ts +4 -4
- package/dist/schema-management/migrations.d.ts.map +1 -1
- package/dist/schema-management/migrations.js +6 -6
- package/dist/schema-management/migrations.js.map +1 -1
- package/dist/sync/client-session-sync-processor.d.ts +4 -4
- package/dist/sync/client-session-sync-processor.d.ts.map +1 -1
- package/dist/sync/index.d.ts +1 -1
- package/dist/sync/index.d.ts.map +1 -1
- package/dist/sync/index.js +1 -1
- package/dist/sync/index.js.map +1 -1
- package/dist/sync/next/history-dag-common.d.ts +4 -1
- package/dist/sync/next/history-dag-common.d.ts.map +1 -1
- package/dist/sync/next/history-dag-common.js +1 -1
- package/dist/sync/next/history-dag-common.js.map +1 -1
- package/dist/sync/next/rebase-events.d.ts +3 -3
- package/dist/sync/next/rebase-events.d.ts.map +1 -1
- package/dist/sync/next/rebase-events.js +2 -3
- package/dist/sync/next/rebase-events.js.map +1 -1
- package/dist/sync/next/test/mutation-fixtures.d.ts +7 -7
- package/dist/sync/next/test/mutation-fixtures.d.ts.map +1 -1
- package/dist/sync/next/test/mutation-fixtures.js +9 -3
- package/dist/sync/next/test/mutation-fixtures.js.map +1 -1
- package/dist/sync/sync.d.ts +11 -21
- package/dist/sync/sync.d.ts.map +1 -1
- package/dist/sync/sync.js.map +1 -1
- package/dist/sync/syncstate.d.ts +23 -45
- package/dist/sync/syncstate.d.ts.map +1 -1
- package/dist/sync/syncstate.js +12 -56
- package/dist/sync/syncstate.js.map +1 -1
- package/dist/sync/syncstate.test.js +69 -125
- package/dist/sync/syncstate.test.js.map +1 -1
- package/dist/sync/validate-push-payload.d.ts +2 -2
- package/dist/sync/validate-push-payload.d.ts.map +1 -1
- package/dist/sync/validate-push-payload.js +2 -2
- package/dist/sync/validate-push-payload.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/package.json +5 -6
- package/src/adapter-types.ts +40 -39
- package/src/derived-mutations.test.ts +1 -1
- package/src/derived-mutations.ts +5 -9
- package/src/devtools/devtools-bridge.ts +1 -2
- package/src/devtools/devtools-messages.ts +243 -3
- package/src/index.ts +6 -0
- package/src/init-singleton-tables.ts +2 -2
- package/src/leader-thread/apply-mutation.ts +35 -53
- package/src/leader-thread/connection.ts +7 -7
- package/src/leader-thread/{LeaderSyncProcessor.ts → leader-sync-processor.ts} +268 -306
- package/src/leader-thread/leader-worker-devtools.ts +124 -52
- package/src/leader-thread/make-leader-thread-layer.ts +30 -62
- package/src/leader-thread/mutationlog.ts +10 -14
- package/src/leader-thread/recreate-db.ts +20 -24
- package/src/leader-thread/types.ts +20 -41
- package/src/mutation.ts +7 -17
- package/src/rehydrate-from-mutationlog.ts +26 -18
- package/src/schema/EventId.ts +9 -23
- package/src/schema/MutationEvent.ts +24 -46
- package/src/schema/system-tables.ts +11 -19
- package/src/schema-management/common.ts +3 -3
- package/src/schema-management/migrations.ts +10 -10
- package/src/sync/{ClientSessionSyncProcessor.ts → client-session-sync-processor.ts} +19 -26
- package/src/sync/index.ts +1 -1
- package/src/sync/next/history-dag-common.ts +1 -1
- package/src/sync/next/rebase-events.ts +7 -7
- package/src/sync/next/test/mutation-fixtures.ts +10 -3
- package/src/sync/sync.ts +6 -19
- package/src/sync/syncstate.test.ts +67 -127
- package/src/sync/syncstate.ts +19 -21
- package/src/sync/validate-push-payload.ts +4 -7
- package/src/version.ts +1 -1
- package/dist/devtools/devtool-message-leader.d.ts +0 -2
- package/dist/devtools/devtool-message-leader.d.ts.map +0 -1
- package/dist/devtools/devtool-message-leader.js +0 -2
- package/dist/devtools/devtool-message-leader.js.map +0 -1
- package/dist/devtools/devtools-messages-client-session.d.ts +0 -297
- package/dist/devtools/devtools-messages-client-session.d.ts.map +0 -1
- package/dist/devtools/devtools-messages-client-session.js +0 -61
- package/dist/devtools/devtools-messages-client-session.js.map +0 -1
- package/dist/devtools/devtools-messages-common.d.ts +0 -65
- package/dist/devtools/devtools-messages-common.d.ts.map +0 -1
- package/dist/devtools/devtools-messages-common.js +0 -35
- package/dist/devtools/devtools-messages-common.js.map +0 -1
- package/dist/devtools/devtools-messages-leader.d.ts +0 -261
- package/dist/devtools/devtools-messages-leader.d.ts.map +0 -1
- package/dist/devtools/devtools-messages-leader.js +0 -85
- package/dist/devtools/devtools-messages-leader.js.map +0 -1
- package/dist/leader-thread/LeaderSyncProcessor.d.ts +0 -37
- package/dist/leader-thread/LeaderSyncProcessor.d.ts.map +0 -1
- package/dist/leader-thread/LeaderSyncProcessor.js +0 -432
- package/dist/leader-thread/LeaderSyncProcessor.js.map +0 -1
- package/dist/schema/EventId.test.d.ts +0 -2
- package/dist/schema/EventId.test.d.ts.map +0 -1
- package/dist/schema/EventId.test.js +0 -11
- package/dist/schema/EventId.test.js.map +0 -1
- package/dist/schema/MutationEvent.test.d.ts +0 -2
- package/dist/schema/MutationEvent.test.d.ts.map +0 -1
- package/dist/schema/MutationEvent.test.js +0 -2
- package/dist/schema/MutationEvent.test.js.map +0 -1
- package/dist/sync/ClientSessionSyncProcessor.d.ts +0 -43
- package/dist/sync/ClientSessionSyncProcessor.d.ts.map +0 -1
- package/dist/sync/ClientSessionSyncProcessor.js +0 -141
- package/dist/sync/ClientSessionSyncProcessor.js.map +0 -1
- package/src/devtools/devtools-messages-client-session.ts +0 -109
- package/src/devtools/devtools-messages-common.ts +0 -52
- package/src/devtools/devtools-messages-leader.ts +0 -115
- package/src/schema/EventId.test.ts +0 -12
@@ -1,141 +0,0 @@
|
|
1
|
-
import { LS_DEV, shouldNeverHappen, TRACE_VERBOSE } from '@livestore/utils';
|
2
|
-
import { Effect, Schema, Stream } from '@livestore/utils/effect';
|
3
|
-
import * as otel from '@opentelemetry/api';
|
4
|
-
import * as EventId from '../schema/EventId.js';
|
5
|
-
import * as MutationEvent from '../schema/MutationEvent.js';
|
6
|
-
import { SyncState, updateSyncState } from './syncstate.js';
|
7
|
-
/**
|
8
|
-
* Rebase behaviour:
|
9
|
-
* - We continously pull mutations from the leader and apply them to the local store.
|
10
|
-
* - If there was a race condition (i.e. the leader and client session have both advacned),
|
11
|
-
* we'll need to rebase the local pending mutations on top of the leader's head.
|
12
|
-
* - The goal is to never block the UI, so we'll interrupt rebasing if a new mutations is pushed by the client session.
|
13
|
-
* - We also want to avoid "backwards-jumping" in the UI, so we'll transactionally apply a read model changes during a rebase.
|
14
|
-
* - We might need to make the rebase behaviour configurable e.g. to let users manually trigger a rebase
|
15
|
-
*/
|
16
|
-
export const makeClientSessionSyncProcessor = ({ schema, clientSession, runtime, applyMutation, rollback, refreshTables, span, }) => {
|
17
|
-
const mutationEventSchema = MutationEvent.makeMutationEventSchemaMemo(schema);
|
18
|
-
const syncStateRef = {
|
19
|
-
current: new SyncState({
|
20
|
-
localHead: clientSession.leaderThread.mutations.initialMutationEventId,
|
21
|
-
upstreamHead: clientSession.leaderThread.mutations.initialMutationEventId,
|
22
|
-
pending: [],
|
23
|
-
// TODO init rollbackTail from leader to be ready for backend rebasing
|
24
|
-
rollbackTail: [],
|
25
|
-
}),
|
26
|
-
};
|
27
|
-
const isLocalEvent = (mutationEventEncoded) => {
|
28
|
-
const mutationDef = schema.mutations.get(mutationEventEncoded.mutation);
|
29
|
-
return mutationDef.options.localOnly;
|
30
|
-
};
|
31
|
-
const push = (batch, { otelContext }) => {
|
32
|
-
// TODO validate batch
|
33
|
-
let baseEventId = syncStateRef.current.localHead;
|
34
|
-
const encodedMutationEvents = batch.map((mutationEvent) => {
|
35
|
-
const mutationDef = schema.mutations.get(mutationEvent.mutation);
|
36
|
-
const nextIdPair = EventId.nextPair(baseEventId, mutationDef.options.localOnly);
|
37
|
-
baseEventId = nextIdPair.id;
|
38
|
-
return new MutationEvent.EncodedWithMeta(Schema.encodeUnknownSync(mutationEventSchema)({ ...mutationEvent, ...nextIdPair }));
|
39
|
-
});
|
40
|
-
const updateResult = updateSyncState({
|
41
|
-
syncState: syncStateRef.current,
|
42
|
-
payload: { _tag: 'local-push', newEvents: encodedMutationEvents },
|
43
|
-
isLocalEvent,
|
44
|
-
isEqualEvent: MutationEvent.isEqualEncoded,
|
45
|
-
});
|
46
|
-
span.addEvent('local-push', {
|
47
|
-
batchSize: encodedMutationEvents.length,
|
48
|
-
updateResult: TRACE_VERBOSE ? JSON.stringify(updateResult) : undefined,
|
49
|
-
});
|
50
|
-
if (updateResult._tag !== 'advance') {
|
51
|
-
return shouldNeverHappen(`Expected advance, got ${updateResult._tag}`);
|
52
|
-
}
|
53
|
-
syncStateRef.current = updateResult.newSyncState;
|
54
|
-
const writeTables = new Set();
|
55
|
-
for (const mutationEvent of updateResult.newEvents) {
|
56
|
-
// TODO avoid encoding and decoding here again
|
57
|
-
const decodedMutationEvent = Schema.decodeSync(mutationEventSchema)(mutationEvent);
|
58
|
-
const res = applyMutation(decodedMutationEvent, { otelContext, withChangeset: true });
|
59
|
-
for (const table of res.writeTables) {
|
60
|
-
writeTables.add(table);
|
61
|
-
}
|
62
|
-
mutationEvent.meta.sessionChangeset = res.sessionChangeset;
|
63
|
-
}
|
64
|
-
// console.debug('pushToLeader', encodedMutationEvents.length, ...encodedMutationEvents.map((_) => _.toJSON()))
|
65
|
-
clientSession.leaderThread.mutations
|
66
|
-
.push(encodedMutationEvents)
|
67
|
-
.pipe(Effect.tapCauseLogPretty, Effect.provide(runtime), Effect.runFork);
|
68
|
-
return { writeTables };
|
69
|
-
};
|
70
|
-
const otelContext = otel.trace.setSpan(otel.context.active(), span);
|
71
|
-
const boot = Effect.gen(function* () {
|
72
|
-
yield* clientSession.leaderThread.mutations.pull.pipe(Stream.tap(({ payload, remaining }) => Effect.gen(function* () {
|
73
|
-
// console.log('pulled payload from leader', { payload, remaining })
|
74
|
-
if (clientSession.devtools.enabled) {
|
75
|
-
yield* clientSession.devtools.pullLatch.await;
|
76
|
-
}
|
77
|
-
const updateResult = updateSyncState({
|
78
|
-
syncState: syncStateRef.current,
|
79
|
-
payload,
|
80
|
-
isLocalEvent,
|
81
|
-
isEqualEvent: MutationEvent.isEqualEncoded,
|
82
|
-
});
|
83
|
-
if (updateResult._tag === 'reject') {
|
84
|
-
debugger;
|
85
|
-
throw new Error('TODO: implement reject in client-session-sync-queue for pull');
|
86
|
-
}
|
87
|
-
syncStateRef.current = updateResult.newSyncState;
|
88
|
-
if (updateResult._tag === 'rebase') {
|
89
|
-
span.addEvent('pull:rebase', {
|
90
|
-
payloadTag: payload._tag,
|
91
|
-
payload: TRACE_VERBOSE ? JSON.stringify(payload) : undefined,
|
92
|
-
newEventsCount: updateResult.newEvents.length,
|
93
|
-
rollbackCount: updateResult.eventsToRollback.length,
|
94
|
-
res: TRACE_VERBOSE ? JSON.stringify(updateResult) : undefined,
|
95
|
-
remaining,
|
96
|
-
});
|
97
|
-
if (LS_DEV) {
|
98
|
-
console.debug('pull:rebase: rollback', updateResult.eventsToRollback.length, ...updateResult.eventsToRollback.map((_) => _.toJSON()));
|
99
|
-
}
|
100
|
-
for (let i = updateResult.eventsToRollback.length - 1; i >= 0; i--) {
|
101
|
-
const event = updateResult.eventsToRollback[i];
|
102
|
-
if (event.meta.sessionChangeset) {
|
103
|
-
rollback(event.meta.sessionChangeset);
|
104
|
-
event.meta.sessionChangeset = undefined;
|
105
|
-
}
|
106
|
-
}
|
107
|
-
clientSession.leaderThread.mutations
|
108
|
-
.push(updateResult.newSyncState.pending)
|
109
|
-
.pipe(Effect.tapCauseLogPretty, Effect.provide(runtime), Effect.runFork);
|
110
|
-
}
|
111
|
-
else {
|
112
|
-
span.addEvent('pull:advance', {
|
113
|
-
payloadTag: payload._tag,
|
114
|
-
payload: TRACE_VERBOSE ? JSON.stringify(payload) : undefined,
|
115
|
-
newEventsCount: updateResult.newEvents.length,
|
116
|
-
res: TRACE_VERBOSE ? JSON.stringify(updateResult) : undefined,
|
117
|
-
remaining,
|
118
|
-
});
|
119
|
-
}
|
120
|
-
if (updateResult.newEvents.length === 0)
|
121
|
-
return;
|
122
|
-
const writeTables = new Set();
|
123
|
-
for (const mutationEvent of updateResult.newEvents) {
|
124
|
-
const decodedMutationEvent = Schema.decodeSync(mutationEventSchema)(mutationEvent);
|
125
|
-
const res = applyMutation(decodedMutationEvent, { otelContext, withChangeset: true });
|
126
|
-
for (const table of res.writeTables) {
|
127
|
-
writeTables.add(table);
|
128
|
-
}
|
129
|
-
mutationEvent.meta.sessionChangeset = res.sessionChangeset;
|
130
|
-
}
|
131
|
-
refreshTables(writeTables);
|
132
|
-
})), Stream.runDrain, Effect.forever, // NOTE Whenever the leader changes, we need to re-start the stream
|
133
|
-
Effect.tapCauseLogPretty, Effect.forkScoped);
|
134
|
-
});
|
135
|
-
return {
|
136
|
-
push,
|
137
|
-
boot,
|
138
|
-
syncStateRef,
|
139
|
-
};
|
140
|
-
};
|
141
|
-
//# sourceMappingURL=ClientSessionSyncProcessor.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"ClientSessionSyncProcessor.js","sourceRoot":"","sources":["../../src/sync/ClientSessionSyncProcessor.ts"],"names":[],"mappings":"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"}
|
@@ -1,109 +0,0 @@
|
|
1
|
-
import { Schema } from '@livestore/utils/effect'
|
2
|
-
|
3
|
-
import { DebugInfo } from '../debug-info.js'
|
4
|
-
import { PreparedBindValues } from '../util.js'
|
5
|
-
import { Disconnect, LSDClientSessionReqResMessage } from './devtools-messages-common.js'
|
6
|
-
|
7
|
-
export class DebugInfoReq extends LSDClientSessionReqResMessage('LSD.ClientSession.DebugInfoReq', {}) {}
|
8
|
-
|
9
|
-
export class DebugInfoRes extends LSDClientSessionReqResMessage('LSD.ClientSession.DebugInfoRes', {
|
10
|
-
debugInfo: DebugInfo,
|
11
|
-
}) {}
|
12
|
-
|
13
|
-
export class DebugInfoHistorySubscribe extends LSDClientSessionReqResMessage(
|
14
|
-
'LSD.ClientSession.DebugInfoHistorySubscribe',
|
15
|
-
{},
|
16
|
-
) {}
|
17
|
-
|
18
|
-
export class DebugInfoHistoryRes extends LSDClientSessionReqResMessage('LSD.ClientSession.DebugInfoHistoryRes', {
|
19
|
-
debugInfoHistory: Schema.Array(DebugInfo),
|
20
|
-
}) {}
|
21
|
-
|
22
|
-
export class DebugInfoHistoryUnsubscribe extends LSDClientSessionReqResMessage(
|
23
|
-
'LSD.ClientSession.DebugInfoHistoryUnsubscribe',
|
24
|
-
{},
|
25
|
-
) {}
|
26
|
-
|
27
|
-
export class DebugInfoResetReq extends LSDClientSessionReqResMessage('LSD.ClientSession.DebugInfoResetReq', {}) {}
|
28
|
-
|
29
|
-
export class DebugInfoResetRes extends LSDClientSessionReqResMessage('LSD.ClientSession.DebugInfoResetRes', {}) {}
|
30
|
-
|
31
|
-
export class DebugInfoRerunQueryReq extends LSDClientSessionReqResMessage('LSD.ClientSession.DebugInfoRerunQueryReq', {
|
32
|
-
queryStr: Schema.String,
|
33
|
-
bindValues: Schema.UndefinedOr(PreparedBindValues),
|
34
|
-
queriedTables: Schema.ReadonlySet(Schema.String),
|
35
|
-
}) {}
|
36
|
-
|
37
|
-
export class DebugInfoRerunQueryRes extends LSDClientSessionReqResMessage(
|
38
|
-
'LSD.ClientSession.DebugInfoRerunQueryRes',
|
39
|
-
{},
|
40
|
-
) {}
|
41
|
-
|
42
|
-
export class ReactivityGraphSubscribe extends LSDClientSessionReqResMessage(
|
43
|
-
'LSD.ClientSession.ReactivityGraphSubscribe',
|
44
|
-
{
|
45
|
-
includeResults: Schema.Boolean,
|
46
|
-
},
|
47
|
-
) {}
|
48
|
-
|
49
|
-
export class ReactivityGraphUnsubscribe extends LSDClientSessionReqResMessage(
|
50
|
-
'LSD.ClientSession.ReactivityGraphUnsubscribe',
|
51
|
-
{},
|
52
|
-
) {}
|
53
|
-
|
54
|
-
export class ReactivityGraphRes extends LSDClientSessionReqResMessage('LSD.ClientSession.ReactivityGraphRes', {
|
55
|
-
reactivityGraph: Schema.Any,
|
56
|
-
}) {}
|
57
|
-
|
58
|
-
export class LiveQueriesSubscribe extends LSDClientSessionReqResMessage('LSD.ClientSession.LiveQueriesSubscribe', {}) {}
|
59
|
-
|
60
|
-
export class LiveQueriesUnsubscribe extends LSDClientSessionReqResMessage(
|
61
|
-
'LSD.ClientSession.LiveQueriesUnsubscribe',
|
62
|
-
{},
|
63
|
-
) {}
|
64
|
-
|
65
|
-
export class SerializedLiveQuery extends Schema.Struct({
|
66
|
-
_tag: Schema.Literal('computed', 'db', 'graphql'),
|
67
|
-
id: Schema.Number,
|
68
|
-
label: Schema.String,
|
69
|
-
runs: Schema.Number,
|
70
|
-
executionTimes: Schema.Array(Schema.Number),
|
71
|
-
lastestResult: Schema.Any,
|
72
|
-
activeSubscriptions: Schema.Array(
|
73
|
-
Schema.Struct({ frames: Schema.Array(Schema.Struct({ name: Schema.String, filePath: Schema.String })) }),
|
74
|
-
),
|
75
|
-
}) {}
|
76
|
-
|
77
|
-
export class LiveQueriesRes extends LSDClientSessionReqResMessage('LSD.ClientSession.LiveQueriesRes', {
|
78
|
-
liveQueries: Schema.Array(SerializedLiveQuery),
|
79
|
-
}) {}
|
80
|
-
|
81
|
-
export const MessageToAppClientSession = Schema.Union(
|
82
|
-
DebugInfoReq,
|
83
|
-
DebugInfoHistorySubscribe,
|
84
|
-
DebugInfoHistoryUnsubscribe,
|
85
|
-
DebugInfoResetReq,
|
86
|
-
DebugInfoRerunQueryReq,
|
87
|
-
ReactivityGraphSubscribe,
|
88
|
-
ReactivityGraphUnsubscribe,
|
89
|
-
LiveQueriesSubscribe,
|
90
|
-
LiveQueriesUnsubscribe,
|
91
|
-
Disconnect,
|
92
|
-
// TODO also introduce a ping/pong protocol for the client session <> devtools connection
|
93
|
-
// Ping,
|
94
|
-
).annotations({ identifier: 'LSD.MessageToAppClientSession' })
|
95
|
-
|
96
|
-
export type MessageToAppClientSession = typeof MessageToAppClientSession.Type
|
97
|
-
|
98
|
-
export const MessageFromAppClientSession = Schema.Union(
|
99
|
-
DebugInfoRes,
|
100
|
-
DebugInfoHistoryRes,
|
101
|
-
DebugInfoResetRes,
|
102
|
-
DebugInfoRerunQueryRes,
|
103
|
-
ReactivityGraphRes,
|
104
|
-
LiveQueriesRes,
|
105
|
-
Disconnect,
|
106
|
-
// Pong,
|
107
|
-
).annotations({ identifier: 'LSD.MessageFromAppClientSession' })
|
108
|
-
|
109
|
-
export type MessageFromAppClientSession = typeof MessageFromAppClientSession.Type
|
@@ -1,52 +0,0 @@
|
|
1
|
-
import { Schema } from '@livestore/utils/effect'
|
2
|
-
|
3
|
-
import { liveStoreVersion as pkgVersion } from '../version.js'
|
4
|
-
|
5
|
-
const requestId = Schema.String
|
6
|
-
const clientId = Schema.String
|
7
|
-
const sessionId = Schema.String
|
8
|
-
const liveStoreVersion = Schema.Literal(pkgVersion)
|
9
|
-
|
10
|
-
export const LSDMessage = <Tag extends string, Fields extends Schema.Struct.Fields>(tag: Tag, fields: Fields) =>
|
11
|
-
Schema.TaggedStruct(tag, {
|
12
|
-
liveStoreVersion,
|
13
|
-
...fields,
|
14
|
-
}).annotations({ identifier: tag })
|
15
|
-
|
16
|
-
export const LSDChannelMessage = <Tag extends string, Fields extends Schema.Struct.Fields>(tag: Tag, fields: Fields) =>
|
17
|
-
LSDMessage(tag, {
|
18
|
-
...fields,
|
19
|
-
})
|
20
|
-
|
21
|
-
export const LSDClientSessionChannelMessage = <Tag extends string, Fields extends Schema.Struct.Fields>(
|
22
|
-
tag: Tag,
|
23
|
-
fields: Fields,
|
24
|
-
) =>
|
25
|
-
LSDMessage(tag, {
|
26
|
-
clientId,
|
27
|
-
sessionId,
|
28
|
-
...fields,
|
29
|
-
})
|
30
|
-
|
31
|
-
export const LSDClientSessionReqResMessage = <Tag extends string, Fields extends Schema.Struct.Fields>(
|
32
|
-
tag: Tag,
|
33
|
-
fields: Fields,
|
34
|
-
) =>
|
35
|
-
LSDMessage(tag, {
|
36
|
-
clientId,
|
37
|
-
sessionId,
|
38
|
-
requestId,
|
39
|
-
...fields,
|
40
|
-
})
|
41
|
-
|
42
|
-
export const LSDReqResMessage = <Tag extends string, Fields extends Schema.Struct.Fields>(tag: Tag, fields: Fields) =>
|
43
|
-
LSDChannelMessage(tag, {
|
44
|
-
requestId,
|
45
|
-
...fields,
|
46
|
-
})
|
47
|
-
|
48
|
-
export class Disconnect extends LSDClientSessionChannelMessage('LSD.Disconnect', {}) {}
|
49
|
-
|
50
|
-
export class Ping extends LSDReqResMessage('LSD.Ping', {}) {}
|
51
|
-
|
52
|
-
export class Pong extends LSDReqResMessage('LSD.Pong', {}) {}
|
@@ -1,115 +0,0 @@
|
|
1
|
-
import { Schema, Transferable } from '@livestore/utils/effect'
|
2
|
-
|
3
|
-
import { NetworkStatus } from '../adapter-types.js'
|
4
|
-
import * as MutationEvent from '../schema/MutationEvent.js'
|
5
|
-
import { Disconnect, LSDMessage, LSDReqResMessage, Ping, Pong } from './devtools-messages-common.js'
|
6
|
-
|
7
|
-
export class ResetAllDataReq extends LSDReqResMessage('LSD.Leader.ResetAllDataReq', {
|
8
|
-
mode: Schema.Literal('all-data', 'only-app-db'),
|
9
|
-
}) {}
|
10
|
-
|
11
|
-
export class ResetAllDataRes extends LSDReqResMessage('LSD.Leader.ResetAllDataRes', {}) {}
|
12
|
-
|
13
|
-
export class DatabaseFileInfoReq extends LSDReqResMessage('LSD.Leader.DatabaseFileInfoReq', {}) {}
|
14
|
-
|
15
|
-
export class DatabaseFileInfo extends Schema.Struct({
|
16
|
-
fileSize: Schema.Number,
|
17
|
-
persistenceInfo: Schema.Struct({ fileName: Schema.String }, { key: Schema.String, value: Schema.Any }),
|
18
|
-
}) {}
|
19
|
-
|
20
|
-
export class DatabaseFileInfoRes extends LSDReqResMessage('LSD.Leader.DatabaseFileInfoRes', {
|
21
|
-
readModel: DatabaseFileInfo,
|
22
|
-
mutationLog: DatabaseFileInfo,
|
23
|
-
}) {}
|
24
|
-
|
25
|
-
export class NetworkStatusSubscribe extends LSDReqResMessage('LSD.Leader.NetworkStatusSubscribe', {}) {}
|
26
|
-
export class NetworkStatusUnsubscribe extends LSDReqResMessage('LSD.Leader.NetworkStatusUnsubscribe', {}) {}
|
27
|
-
|
28
|
-
export class NetworkStatusRes extends LSDReqResMessage('LSD.Leader.NetworkStatusRes', {
|
29
|
-
networkStatus: NetworkStatus,
|
30
|
-
}) {}
|
31
|
-
|
32
|
-
export class SyncingInfoReq extends LSDReqResMessage('LSD.Leader.SyncingInfoReq', {}) {}
|
33
|
-
|
34
|
-
export class SyncingInfo extends Schema.Struct({
|
35
|
-
enabled: Schema.Boolean,
|
36
|
-
metadata: Schema.Record({ key: Schema.String, value: Schema.Any }),
|
37
|
-
}) {}
|
38
|
-
|
39
|
-
export class SyncingInfoRes extends LSDReqResMessage('LSD.Leader.SyncingInfoRes', {
|
40
|
-
syncingInfo: SyncingInfo,
|
41
|
-
}) {}
|
42
|
-
|
43
|
-
export class SyncHistorySubscribe extends LSDReqResMessage('LSD.Leader.SyncHistorySubscribe', {}) {}
|
44
|
-
export class SyncHistoryUnsubscribe extends LSDReqResMessage('LSD.Leader.SyncHistoryUnsubscribe', {}) {}
|
45
|
-
export class SyncHistoryRes extends LSDReqResMessage('LSD.Leader.SyncHistoryRes', {
|
46
|
-
mutationEventEncoded: MutationEvent.AnyEncodedGlobal,
|
47
|
-
metadata: Schema.Option(Schema.JsonValue),
|
48
|
-
}) {}
|
49
|
-
|
50
|
-
export class SnapshotReq extends LSDReqResMessage('LSD.Leader.SnapshotReq', {}) {}
|
51
|
-
|
52
|
-
export class SnapshotRes extends LSDReqResMessage('LSD.Leader.SnapshotRes', {
|
53
|
-
snapshot: Transferable.Uint8Array,
|
54
|
-
}) {}
|
55
|
-
|
56
|
-
export class LoadDatabaseFileReq extends LSDReqResMessage('LSD.Leader.LoadDatabaseFileReq', {
|
57
|
-
data: Transferable.Uint8Array,
|
58
|
-
}) {}
|
59
|
-
|
60
|
-
export class LoadDatabaseFileRes extends LSDReqResMessage('LSD.Leader.LoadDatabaseFileRes', {
|
61
|
-
status: Schema.Literal('ok', 'unsupported-file', 'unsupported-database'),
|
62
|
-
}) {}
|
63
|
-
|
64
|
-
// TODO refactor this to use push/pull semantics
|
65
|
-
export class MutationBroadcast extends LSDMessage('LSD.Leader.MutationBroadcast', {
|
66
|
-
mutationEventEncoded: MutationEvent.AnyEncoded,
|
67
|
-
}) {}
|
68
|
-
|
69
|
-
// TODO refactor this to use push/pull semantics
|
70
|
-
export class RunMutationReq extends LSDReqResMessage('LSD.Leader.RunMutationReq', {
|
71
|
-
mutationEventEncoded: MutationEvent.AnyEncoded.pipe(Schema.omit('id', 'parentId')),
|
72
|
-
}) {}
|
73
|
-
|
74
|
-
export class RunMutationRes extends LSDReqResMessage('LSD.Leader.RunMutationRes', {}) {}
|
75
|
-
|
76
|
-
export class MutationLogReq extends LSDReqResMessage('LSD.Leader.MutationLogReq', {}) {}
|
77
|
-
|
78
|
-
export class MutationLogRes extends LSDReqResMessage('LSD.Leader.MutationLogRes', {
|
79
|
-
mutationLog: Transferable.Uint8Array,
|
80
|
-
}) {}
|
81
|
-
|
82
|
-
export const MessageToAppLeader = Schema.Union(
|
83
|
-
SnapshotReq,
|
84
|
-
LoadDatabaseFileReq,
|
85
|
-
MutationLogReq,
|
86
|
-
ResetAllDataReq,
|
87
|
-
NetworkStatusSubscribe,
|
88
|
-
NetworkStatusUnsubscribe,
|
89
|
-
Disconnect,
|
90
|
-
RunMutationReq,
|
91
|
-
Ping,
|
92
|
-
DatabaseFileInfoReq,
|
93
|
-
SyncHistorySubscribe,
|
94
|
-
SyncHistoryUnsubscribe,
|
95
|
-
SyncingInfoReq,
|
96
|
-
).annotations({ identifier: 'LSD.MessageToAppLeader' })
|
97
|
-
|
98
|
-
export type MessageToAppLeader = typeof MessageToAppLeader.Type
|
99
|
-
|
100
|
-
export const MessageFromAppLeader = Schema.Union(
|
101
|
-
SnapshotRes,
|
102
|
-
LoadDatabaseFileRes,
|
103
|
-
MutationLogRes,
|
104
|
-
ResetAllDataRes,
|
105
|
-
Disconnect,
|
106
|
-
MutationBroadcast,
|
107
|
-
NetworkStatusRes,
|
108
|
-
RunMutationRes,
|
109
|
-
Pong,
|
110
|
-
DatabaseFileInfoRes,
|
111
|
-
SyncHistoryRes,
|
112
|
-
SyncingInfoRes,
|
113
|
-
).annotations({ identifier: 'LSD.MessageFromAppLeader' })
|
114
|
-
|
115
|
-
export type MessageFromAppLeader = typeof MessageFromAppLeader.Type
|
@@ -1,12 +0,0 @@
|
|
1
|
-
import { Vitest } from '@livestore/utils/node-vitest'
|
2
|
-
import { expect } from 'vitest'
|
3
|
-
|
4
|
-
import { EventId } from './mod.js'
|
5
|
-
|
6
|
-
Vitest.describe('EventId', () => {
|
7
|
-
Vitest.test('nextPair', () => {
|
8
|
-
const e_0_0 = EventId.make({ global: 0, local: 0 })
|
9
|
-
expect(EventId.nextPair(e_0_0, false).id).toStrictEqual({ global: 1, local: 0 })
|
10
|
-
expect(EventId.nextPair(e_0_0, true).id).toStrictEqual({ global: 0, local: 1 })
|
11
|
-
})
|
12
|
-
})
|