@livestore/common 0.2.0 → 0.3.0-dev.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.tsbuildinfo +1 -1
- package/dist/__tests__/fixture.d.ts +163 -1
- package/dist/__tests__/fixture.d.ts.map +1 -1
- package/dist/__tests__/fixture.js +3 -1
- package/dist/__tests__/fixture.js.map +1 -1
- package/dist/adapter-types.d.ts +53 -38
- package/dist/adapter-types.d.ts.map +1 -1
- package/dist/adapter-types.js +5 -7
- package/dist/adapter-types.js.map +1 -1
- package/dist/bounded-collections.d.ts +2 -2
- package/dist/bounded-collections.d.ts.map +1 -1
- package/dist/debug-info.d.ts +13 -13
- package/dist/derived-mutations.d.ts +1 -1
- package/dist/derived-mutations.d.ts.map +1 -1
- package/dist/devtools/devtools-bridge.d.ts +2 -2
- package/dist/devtools/devtools-bridge.d.ts.map +1 -1
- package/dist/devtools/devtools-messages.d.ts +84 -196
- package/dist/devtools/devtools-messages.d.ts.map +1 -1
- package/dist/devtools/devtools-messages.js +55 -61
- package/dist/devtools/devtools-messages.js.map +1 -1
- package/dist/devtools/index.d.ts.map +1 -1
- package/dist/devtools/index.js +1 -2
- package/dist/devtools/index.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/init-singleton-tables.d.ts +1 -1
- package/dist/init-singleton-tables.d.ts.map +1 -1
- package/dist/leader-thread/apply-mutation.d.ts +8 -0
- package/dist/leader-thread/apply-mutation.d.ts.map +1 -0
- package/dist/leader-thread/apply-mutation.js +95 -0
- package/dist/leader-thread/apply-mutation.js.map +1 -0
- package/dist/leader-thread/connection.d.ts +11 -0
- package/dist/leader-thread/connection.d.ts.map +1 -0
- package/dist/leader-thread/connection.js +44 -0
- package/dist/leader-thread/connection.js.map +1 -0
- package/dist/leader-thread/leader-sync-processor.d.ts +47 -0
- package/dist/leader-thread/leader-sync-processor.d.ts.map +1 -0
- package/dist/leader-thread/leader-sync-processor.js +422 -0
- package/dist/leader-thread/leader-sync-processor.js.map +1 -0
- package/dist/leader-thread/leader-worker-devtools.d.ts +6 -0
- package/dist/leader-thread/leader-worker-devtools.d.ts.map +1 -0
- package/dist/leader-thread/leader-worker-devtools.js +216 -0
- package/dist/leader-thread/leader-worker-devtools.js.map +1 -0
- package/dist/leader-thread/make-leader-thread-layer.d.ts +20 -0
- package/dist/leader-thread/make-leader-thread-layer.d.ts.map +1 -0
- package/dist/leader-thread/make-leader-thread-layer.js +106 -0
- package/dist/leader-thread/make-leader-thread-layer.js.map +1 -0
- package/dist/leader-thread/mod.d.ts +7 -0
- package/dist/leader-thread/mod.d.ts.map +1 -0
- package/dist/leader-thread/mod.js +7 -0
- package/dist/leader-thread/mod.js.map +1 -0
- package/dist/leader-thread/mutationlog.d.ts +23 -0
- package/dist/leader-thread/mutationlog.d.ts.map +1 -0
- package/dist/leader-thread/mutationlog.js +27 -0
- package/dist/leader-thread/mutationlog.js.map +1 -0
- package/dist/leader-thread/pull-queue-set.d.ts +7 -0
- package/dist/leader-thread/pull-queue-set.d.ts.map +1 -0
- package/dist/leader-thread/pull-queue-set.js +39 -0
- package/dist/leader-thread/pull-queue-set.js.map +1 -0
- package/dist/leader-thread/recreate-db.d.ts +7 -0
- package/dist/leader-thread/recreate-db.d.ts.map +1 -0
- package/dist/leader-thread/recreate-db.js +69 -0
- package/dist/leader-thread/recreate-db.js.map +1 -0
- package/dist/leader-thread/shutdown-channel.d.ts +15 -0
- package/dist/leader-thread/shutdown-channel.d.ts.map +1 -0
- package/dist/leader-thread/shutdown-channel.js +7 -0
- package/dist/leader-thread/shutdown-channel.js.map +1 -0
- package/dist/leader-thread/types.d.ts +87 -0
- package/dist/leader-thread/types.d.ts.map +1 -0
- package/dist/leader-thread/types.js +11 -0
- package/dist/leader-thread/types.js.map +1 -0
- package/dist/mutation.d.ts +3 -4
- package/dist/mutation.d.ts.map +1 -1
- package/dist/mutation.js +0 -14
- package/dist/mutation.js.map +1 -1
- package/dist/otel.d.ts +7 -0
- package/dist/otel.d.ts.map +1 -0
- package/dist/otel.js +11 -0
- package/dist/otel.js.map +1 -0
- package/dist/query-builder/api.d.ts +2 -2
- package/dist/query-builder/api.d.ts.map +1 -1
- package/dist/query-builder/api.js.map +1 -1
- package/dist/query-builder/impl.d.ts +1 -1
- package/dist/query-builder/impl.d.ts.map +1 -1
- package/dist/query-builder/impl.js +21 -4
- package/dist/query-builder/impl.js.map +1 -1
- package/dist/query-builder/impl.test.js +24 -1
- package/dist/query-builder/impl.test.js.map +1 -1
- package/dist/query-info.d.ts +1 -1
- package/dist/query-info.d.ts.map +1 -1
- package/dist/rehydrate-from-mutationlog.d.ts +1 -1
- package/dist/rehydrate-from-mutationlog.d.ts.map +1 -1
- package/dist/rehydrate-from-mutationlog.js +6 -6
- package/dist/rehydrate-from-mutationlog.js.map +1 -1
- package/dist/schema/EventId.d.ts +37 -0
- package/dist/schema/EventId.d.ts.map +1 -0
- package/dist/schema/EventId.js +30 -0
- package/dist/schema/EventId.js.map +1 -0
- package/dist/schema/MutationEvent.d.ts +191 -0
- package/dist/schema/MutationEvent.d.ts.map +1 -0
- package/dist/schema/MutationEvent.js +56 -0
- package/dist/schema/MutationEvent.js.map +1 -0
- package/dist/schema/mod.d.ts +8 -0
- package/dist/schema/mod.d.ts.map +1 -0
- package/dist/schema/mod.js +8 -0
- package/dist/schema/mod.js.map +1 -0
- package/dist/schema/mutations.d.ts +3 -123
- package/dist/schema/mutations.d.ts.map +1 -1
- package/dist/schema/mutations.js +0 -26
- package/dist/schema/mutations.js.map +1 -1
- package/dist/schema/{index.d.ts → schema.d.ts} +1 -5
- package/dist/schema/schema.d.ts.map +1 -0
- package/dist/schema/{index.js → schema.js} +1 -5
- package/dist/schema/schema.js.map +1 -0
- package/dist/schema/system-tables.d.ts +55 -29
- package/dist/schema/system-tables.d.ts.map +1 -1
- package/dist/schema/system-tables.js +10 -5
- package/dist/schema/system-tables.js.map +1 -1
- package/dist/schema-management/migrations.d.ts +1 -1
- package/dist/schema-management/migrations.d.ts.map +1 -1
- package/dist/schema-management/migrations.js +6 -1
- package/dist/schema-management/migrations.js.map +1 -1
- package/dist/schema-management/validate-mutation-defs.d.ts +1 -1
- package/dist/schema-management/validate-mutation-defs.d.ts.map +1 -1
- package/dist/sync/client-session-sync-processor.d.ts +45 -0
- package/dist/sync/client-session-sync-processor.d.ts.map +1 -0
- package/dist/sync/client-session-sync-processor.js +131 -0
- package/dist/sync/client-session-sync-processor.js.map +1 -0
- package/dist/sync/index.d.ts +2 -0
- package/dist/sync/index.d.ts.map +1 -1
- package/dist/sync/index.js +2 -0
- package/dist/sync/index.js.map +1 -1
- package/dist/sync/next/compact-events.d.ts +1 -1
- package/dist/sync/next/compact-events.d.ts.map +1 -1
- package/dist/sync/next/compact-events.js +2 -1
- package/dist/sync/next/compact-events.js.map +1 -1
- package/dist/sync/next/facts.d.ts +5 -5
- package/dist/sync/next/facts.d.ts.map +1 -1
- package/dist/sync/next/facts.js +1 -1
- package/dist/sync/next/facts.js.map +1 -1
- package/dist/sync/next/history-dag-common.d.ts +30 -0
- package/dist/sync/next/history-dag-common.d.ts.map +1 -0
- package/dist/sync/next/history-dag-common.js +20 -0
- package/dist/sync/next/history-dag-common.js.map +1 -0
- package/dist/sync/next/history-dag.d.ts +4 -27
- package/dist/sync/next/history-dag.d.ts.map +1 -1
- package/dist/sync/next/history-dag.js +1 -19
- package/dist/sync/next/history-dag.js.map +1 -1
- package/dist/sync/next/mod.d.ts +1 -0
- package/dist/sync/next/mod.d.ts.map +1 -1
- package/dist/sync/next/mod.js +1 -0
- package/dist/sync/next/mod.js.map +1 -1
- package/dist/sync/next/rebase-events.d.ts +3 -2
- package/dist/sync/next/rebase-events.d.ts.map +1 -1
- package/dist/sync/next/rebase-events.js.map +1 -1
- package/dist/sync/next/test/compact-events.test.d.ts.map +1 -1
- package/dist/sync/next/test/compact-events.test.js +2 -1
- package/dist/sync/next/test/compact-events.test.js.map +1 -1
- package/dist/sync/next/test/mutation-fixtures.d.ts +1 -1
- package/dist/sync/next/test/mutation-fixtures.d.ts.map +1 -1
- package/dist/sync/next/test/mutation-fixtures.js +4 -3
- package/dist/sync/next/test/mutation-fixtures.js.map +1 -1
- package/dist/sync/sync.d.ts +33 -12
- package/dist/sync/sync.d.ts.map +1 -1
- package/dist/sync/sync.js +10 -1
- package/dist/sync/sync.js.map +1 -1
- package/dist/sync/syncstate.d.ts +123 -0
- package/dist/sync/syncstate.d.ts.map +1 -0
- package/dist/sync/syncstate.js +248 -0
- package/dist/sync/syncstate.js.map +1 -0
- package/dist/sync/syncstate.test.d.ts +2 -0
- package/dist/sync/syncstate.test.d.ts.map +1 -0
- package/dist/sync/syncstate.test.js +399 -0
- package/dist/sync/syncstate.test.js.map +1 -0
- package/dist/sync/validate-push-payload.d.ts +5 -0
- package/dist/sync/validate-push-payload.d.ts.map +1 -0
- package/dist/sync/validate-push-payload.js +15 -0
- package/dist/sync/validate-push-payload.js.map +1 -0
- package/dist/util.d.ts +2 -2
- package/dist/util.d.ts.map +1 -1
- package/dist/version.d.ts +2 -2
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +2 -2
- package/dist/version.js.map +1 -1
- package/package.json +13 -6
- package/src/__tests__/fixture.ts +5 -1
- package/src/adapter-types.ts +60 -34
- package/src/derived-mutations.test.ts +1 -1
- package/src/derived-mutations.ts +1 -1
- package/src/devtools/devtools-bridge.ts +2 -2
- package/src/devtools/devtools-messages.ts +70 -74
- package/src/devtools/index.ts +1 -2
- package/src/index.ts +2 -1
- package/src/init-singleton-tables.ts +1 -1
- package/src/leader-thread/apply-mutation.ts +143 -0
- package/src/leader-thread/connection.ts +67 -0
- package/src/leader-thread/leader-sync-processor.ts +666 -0
- package/src/leader-thread/leader-worker-devtools.ts +358 -0
- package/src/leader-thread/make-leader-thread-layer.ts +192 -0
- package/src/leader-thread/mod.ts +6 -0
- package/src/leader-thread/mutationlog.ts +42 -0
- package/src/leader-thread/pull-queue-set.ts +58 -0
- package/src/leader-thread/recreate-db.ts +109 -0
- package/src/leader-thread/shutdown-channel.ts +13 -0
- package/src/leader-thread/types.ts +129 -0
- package/src/mutation.ts +3 -21
- package/src/otel.ts +20 -0
- package/src/query-builder/api.ts +3 -2
- package/src/query-builder/impl.test.ts +28 -1
- package/src/query-builder/impl.ts +21 -5
- package/src/query-info.ts +1 -1
- package/src/rehydrate-from-mutationlog.ts +7 -11
- package/src/schema/EventId.ts +46 -0
- package/src/schema/MutationEvent.ts +161 -0
- package/src/schema/mod.ts +7 -0
- package/src/schema/mutations.ts +5 -126
- package/src/schema/{index.ts → schema.ts} +0 -5
- package/src/schema/system-tables.ts +18 -5
- package/src/schema-management/migrations.ts +9 -2
- package/src/schema-management/validate-mutation-defs.ts +1 -1
- package/src/sync/client-session-sync-processor.ts +207 -0
- package/src/sync/index.ts +2 -0
- package/src/sync/next/compact-events.ts +3 -2
- package/src/sync/next/facts.ts +11 -5
- package/src/sync/next/history-dag-common.ts +44 -0
- package/src/sync/next/history-dag.ts +3 -45
- package/src/sync/next/mod.ts +1 -0
- package/src/sync/next/rebase-events.ts +6 -5
- package/src/sync/next/test/compact-events.test.ts +3 -2
- package/src/sync/next/test/mutation-fixtures.ts +7 -6
- package/src/sync/sync.ts +32 -12
- package/src/sync/syncstate.test.ts +464 -0
- package/src/sync/syncstate.ts +385 -0
- package/src/sync/validate-push-payload.ts +18 -0
- package/src/version.ts +2 -2
- package/dist/schema/index.d.ts.map +0 -1
- package/dist/schema/index.js.map +0 -1
- package/dist/sync/next-mutation-event-id-pair.d.ts +0 -14
- package/dist/sync/next-mutation-event-id-pair.d.ts.map +0 -1
- package/dist/sync/next-mutation-event-id-pair.js +0 -13
- package/dist/sync/next-mutation-event-id-pair.js.map +0 -1
- package/src/sync/next-mutation-event-id-pair.ts +0 -20
@@ -1,7 +1,7 @@
|
|
1
1
|
import { Schema, Transferable } from '@livestore/utils/effect';
|
2
2
|
import { NetworkStatus } from '../adapter-types.js';
|
3
3
|
import { DebugInfo } from '../debug-info.js';
|
4
|
-
import
|
4
|
+
import * as MutationEvent from '../schema/MutationEvent.js';
|
5
5
|
import { PreparedBindValues } from '../util.js';
|
6
6
|
import { liveStoreVersion as pkgVersion } from '../version.js';
|
7
7
|
const requestId = Schema.String;
|
@@ -12,84 +12,92 @@ const LSDMessage = (tag, fields) => Schema.TaggedStruct(tag, {
|
|
12
12
|
...fields,
|
13
13
|
}).annotations({ identifier: tag });
|
14
14
|
const LSDChannelMessage = (tag, fields) => LSDMessage(tag, {
|
15
|
+
...fields,
|
16
|
+
});
|
17
|
+
const LSDStoreChannelMessage = (tag, fields) => LSDMessage(tag, {
|
15
18
|
appHostId,
|
16
19
|
...fields,
|
17
20
|
});
|
21
|
+
const LSDStoreReqResMessage = (tag, fields) => LSDMessage(tag, {
|
22
|
+
appHostId,
|
23
|
+
requestId,
|
24
|
+
...fields,
|
25
|
+
});
|
18
26
|
const LSDReqResMessage = (tag, fields) => LSDChannelMessage(tag, {
|
19
27
|
requestId,
|
20
28
|
...fields,
|
21
29
|
});
|
22
|
-
export class SnapshotReq extends LSDReqResMessage('LSD.SnapshotReq', {}) {
|
30
|
+
export class SnapshotReq extends LSDReqResMessage('LSD.Leader.SnapshotReq', {}) {
|
23
31
|
}
|
24
|
-
export class SnapshotRes extends LSDReqResMessage('LSD.SnapshotRes', {
|
32
|
+
export class SnapshotRes extends LSDReqResMessage('LSD.Leader.SnapshotRes', {
|
25
33
|
snapshot: Transferable.Uint8Array,
|
26
34
|
}) {
|
27
35
|
}
|
28
|
-
export class LoadDatabaseFileReq extends LSDReqResMessage('LSD.LoadDatabaseFileReq', {
|
36
|
+
export class LoadDatabaseFileReq extends LSDReqResMessage('LSD.Leader.LoadDatabaseFileReq', {
|
29
37
|
data: Transferable.Uint8Array,
|
30
38
|
}) {
|
31
39
|
}
|
32
|
-
export class LoadDatabaseFileRes extends LSDReqResMessage('LSD.LoadDatabaseFileRes', {
|
40
|
+
export class LoadDatabaseFileRes extends LSDReqResMessage('LSD.Leader.LoadDatabaseFileRes', {
|
33
41
|
status: Schema.Literal('ok', 'unsupported-file', 'unsupported-database'),
|
34
42
|
}) {
|
35
43
|
}
|
36
|
-
export class DebugInfoReq extends
|
44
|
+
export class DebugInfoReq extends LSDStoreReqResMessage('LSD.DebugInfoReq', {}) {
|
37
45
|
}
|
38
|
-
export class DebugInfoRes extends
|
46
|
+
export class DebugInfoRes extends LSDStoreReqResMessage('LSD.DebugInfoRes', {
|
39
47
|
debugInfo: DebugInfo,
|
40
48
|
}) {
|
41
49
|
}
|
42
|
-
export class DebugInfoHistorySubscribe extends
|
50
|
+
export class DebugInfoHistorySubscribe extends LSDStoreReqResMessage('LSD.DebugInfoHistorySubscribe', {}) {
|
43
51
|
}
|
44
|
-
export class DebugInfoHistoryRes extends
|
52
|
+
export class DebugInfoHistoryRes extends LSDStoreReqResMessage('LSD.DebugInfoHistoryRes', {
|
45
53
|
debugInfoHistory: Schema.Array(DebugInfo),
|
46
54
|
}) {
|
47
55
|
}
|
48
|
-
export class DebugInfoHistoryUnsubscribe extends
|
56
|
+
export class DebugInfoHistoryUnsubscribe extends LSDStoreReqResMessage('LSD.DebugInfoHistoryUnsubscribe', {}) {
|
49
57
|
}
|
50
|
-
export class DebugInfoResetReq extends
|
58
|
+
export class DebugInfoResetReq extends LSDStoreReqResMessage('LSD.DebugInfoResetReq', {}) {
|
51
59
|
}
|
52
|
-
export class DebugInfoResetRes extends
|
60
|
+
export class DebugInfoResetRes extends LSDStoreReqResMessage('LSD.DebugInfoResetRes', {}) {
|
53
61
|
}
|
54
|
-
export class DebugInfoRerunQueryReq extends
|
62
|
+
export class DebugInfoRerunQueryReq extends LSDStoreReqResMessage('LSD.DebugInfoRerunQueryReq', {
|
55
63
|
queryStr: Schema.String,
|
56
64
|
bindValues: Schema.UndefinedOr(PreparedBindValues),
|
57
65
|
queriedTables: Schema.ReadonlySet(Schema.String),
|
58
66
|
}) {
|
59
67
|
}
|
60
|
-
export class DebugInfoRerunQueryRes extends
|
68
|
+
export class DebugInfoRerunQueryRes extends LSDStoreReqResMessage('LSD.DebugInfoRerunQueryRes', {}) {
|
61
69
|
}
|
62
|
-
|
63
|
-
|
64
|
-
|
70
|
+
// TODO refactor this to use push/pull semantics
|
71
|
+
export class MutationBroadcast extends LSDMessage('LSD.Leader.MutationBroadcast', {
|
72
|
+
mutationEventEncoded: MutationEvent.EncodedAny,
|
65
73
|
}) {
|
66
74
|
}
|
67
|
-
|
68
|
-
|
69
|
-
|
75
|
+
// TODO refactor this to use push/pull semantics
|
76
|
+
export class RunMutationReq extends LSDReqResMessage('LSD.Leader.RunMutationReq', {
|
77
|
+
mutationEventEncoded: MutationEvent.EncodedAny.pipe(Schema.omit('id', 'parentId')),
|
70
78
|
}) {
|
71
79
|
}
|
72
|
-
export class RunMutationRes extends LSDReqResMessage('LSD.RunMutationRes', {}) {
|
80
|
+
export class RunMutationRes extends LSDReqResMessage('LSD.Leader.RunMutationRes', {}) {
|
73
81
|
}
|
74
|
-
export class MutationLogReq extends LSDReqResMessage('LSD.MutationLogReq', {}) {
|
82
|
+
export class MutationLogReq extends LSDReqResMessage('LSD.Leader.MutationLogReq', {}) {
|
75
83
|
}
|
76
|
-
export class MutationLogRes extends LSDReqResMessage('LSD.MutationLogRes', {
|
84
|
+
export class MutationLogRes extends LSDReqResMessage('LSD.Leader.MutationLogRes', {
|
77
85
|
mutationLog: Transferable.Uint8Array,
|
78
86
|
}) {
|
79
87
|
}
|
80
|
-
export class ReactivityGraphSubscribe extends
|
88
|
+
export class ReactivityGraphSubscribe extends LSDStoreReqResMessage('LSD.ReactivityGraphSubscribe', {
|
81
89
|
includeResults: Schema.Boolean,
|
82
90
|
}) {
|
83
91
|
}
|
84
|
-
export class ReactivityGraphUnsubscribe extends
|
92
|
+
export class ReactivityGraphUnsubscribe extends LSDStoreReqResMessage('LSD.ReactivityGraphUnsubscribe', {}) {
|
85
93
|
}
|
86
|
-
export class ReactivityGraphRes extends
|
94
|
+
export class ReactivityGraphRes extends LSDStoreReqResMessage('LSD.ReactivityGraphRes', {
|
87
95
|
reactivityGraph: Schema.Any,
|
88
96
|
}) {
|
89
97
|
}
|
90
|
-
export class LiveQueriesSubscribe extends
|
98
|
+
export class LiveQueriesSubscribe extends LSDStoreReqResMessage('LSD.LiveQueriesSubscribe', {}) {
|
91
99
|
}
|
92
|
-
export class LiveQueriesUnsubscribe extends
|
100
|
+
export class LiveQueriesUnsubscribe extends LSDStoreReqResMessage('LSD.LiveQueriesUnsubscribe', {}) {
|
93
101
|
}
|
94
102
|
export class SerializedLiveQuery extends Schema.Struct({
|
95
103
|
_tag: Schema.Literal('computed', 'db', 'graphql'),
|
@@ -101,78 +109,64 @@ export class SerializedLiveQuery extends Schema.Struct({
|
|
101
109
|
activeSubscriptions: Schema.Array(Schema.Struct({ frames: Schema.Array(Schema.Struct({ name: Schema.String, filePath: Schema.String })) })),
|
102
110
|
}) {
|
103
111
|
}
|
104
|
-
export class LiveQueriesRes extends
|
112
|
+
export class LiveQueriesRes extends LSDStoreReqResMessage('LSD.LiveQueriesRes', {
|
105
113
|
liveQueries: Schema.Array(SerializedLiveQuery),
|
106
114
|
}) {
|
107
115
|
}
|
108
|
-
export class ResetAllDataReq extends LSDReqResMessage('LSD.ResetAllDataReq', {
|
116
|
+
export class ResetAllDataReq extends LSDReqResMessage('LSD.Leader.ResetAllDataReq', {
|
109
117
|
mode: Schema.Literal('all-data', 'only-app-db'),
|
110
118
|
}) {
|
111
119
|
}
|
112
|
-
export class ResetAllDataRes extends LSDReqResMessage('LSD.ResetAllDataRes', {}) {
|
120
|
+
export class ResetAllDataRes extends LSDReqResMessage('LSD.Leader.ResetAllDataRes', {}) {
|
113
121
|
}
|
114
|
-
export class DatabaseFileInfoReq extends LSDReqResMessage('LSD.DatabaseFileInfoReq', {}) {
|
122
|
+
export class DatabaseFileInfoReq extends LSDReqResMessage('LSD.Leader.DatabaseFileInfoReq', {}) {
|
115
123
|
}
|
116
124
|
export class DatabaseFileInfo extends Schema.Struct({
|
117
125
|
fileSize: Schema.Number,
|
118
126
|
persistenceInfo: Schema.Struct({ fileName: Schema.String }, { key: Schema.String, value: Schema.Any }),
|
119
127
|
}) {
|
120
128
|
}
|
121
|
-
export class DatabaseFileInfoRes extends LSDReqResMessage('LSD.DatabaseFileInfoRes', {
|
129
|
+
export class DatabaseFileInfoRes extends LSDReqResMessage('LSD.Leader.DatabaseFileInfoRes', {
|
122
130
|
db: DatabaseFileInfo,
|
123
131
|
mutationLog: DatabaseFileInfo,
|
124
132
|
}) {
|
125
133
|
}
|
126
|
-
export class
|
134
|
+
export class NetworkStatusSubscribe extends LSDReqResMessage('LSD.Leader.NetworkStatusSubscribe', {}) {
|
127
135
|
}
|
128
|
-
export class
|
129
|
-
port: Transferable.MessagePort,
|
130
|
-
}) {
|
136
|
+
export class NetworkStatusUnsubscribe extends LSDReqResMessage('LSD.Leader.NetworkStatusUnsubscribe', {}) {
|
131
137
|
}
|
132
|
-
export class
|
133
|
-
}
|
134
|
-
export class NetworkStatusUnsubscribe extends LSDReqResMessage('LSD.NetworkStatusUnsubscribe', {}) {
|
135
|
-
}
|
136
|
-
export class NetworkStatusRes extends LSDReqResMessage('LSD.NetworkStatusRes', {
|
138
|
+
export class NetworkStatusRes extends LSDReqResMessage('LSD.Leader.NetworkStatusRes', {
|
137
139
|
networkStatus: NetworkStatus,
|
138
140
|
}) {
|
139
141
|
}
|
140
|
-
export class SyncingInfoReq extends LSDReqResMessage('LSD.SyncingInfoReq', {}) {
|
142
|
+
export class SyncingInfoReq extends LSDReqResMessage('LSD.Leader.SyncingInfoReq', {}) {
|
141
143
|
}
|
142
144
|
export class SyncingInfo extends Schema.Struct({
|
143
145
|
enabled: Schema.Boolean,
|
144
146
|
metadata: Schema.Record({ key: Schema.String, value: Schema.Any }),
|
145
147
|
}) {
|
146
148
|
}
|
147
|
-
export class SyncingInfoRes extends LSDReqResMessage('LSD.SyncingInfoRes', {
|
149
|
+
export class SyncingInfoRes extends LSDReqResMessage('LSD.Leader.SyncingInfoRes', {
|
148
150
|
syncingInfo: SyncingInfo,
|
149
151
|
}) {
|
150
152
|
}
|
151
|
-
export class SyncHistorySubscribe extends LSDReqResMessage('LSD.SyncHistorySubscribe', {}) {
|
153
|
+
export class SyncHistorySubscribe extends LSDReqResMessage('LSD.Leader.SyncHistorySubscribe', {}) {
|
152
154
|
}
|
153
|
-
export class SyncHistoryUnsubscribe extends LSDReqResMessage('LSD.SyncHistoryUnsubscribe', {}) {
|
155
|
+
export class SyncHistoryUnsubscribe extends LSDReqResMessage('LSD.Leader.SyncHistoryUnsubscribe', {}) {
|
154
156
|
}
|
155
|
-
export class SyncHistoryRes extends LSDReqResMessage('LSD.SyncHistoryRes', {
|
156
|
-
mutationEventEncoded:
|
157
|
+
export class SyncHistoryRes extends LSDReqResMessage('LSD.Leader.SyncHistoryRes', {
|
158
|
+
mutationEventEncoded: MutationEvent.EncodedAny,
|
157
159
|
metadata: Schema.Option(Schema.JsonValue),
|
158
160
|
}) {
|
159
161
|
}
|
160
|
-
export class
|
161
|
-
}
|
162
|
-
export class DevtoolsConnected extends LSDChannelMessage('LSD.DevtoolsConnected', {}) {
|
163
|
-
}
|
164
|
-
export class AppHostReady extends LSDChannelMessage('LSD.AppHostReady', {
|
165
|
-
isLeader: Schema.Boolean,
|
166
|
-
}) {
|
167
|
-
}
|
168
|
-
export class Disconnect extends LSDChannelMessage('LSD.Disconnect', {}) {
|
162
|
+
export class Disconnect extends LSDStoreChannelMessage('LSD.Disconnect', {}) {
|
169
163
|
}
|
170
164
|
export class Ping extends LSDReqResMessage('LSD.Ping', {}) {
|
171
165
|
}
|
172
166
|
export class Pong extends LSDReqResMessage('LSD.Pong', {}) {
|
173
167
|
}
|
174
|
-
export const
|
175
|
-
export const
|
176
|
-
export const
|
177
|
-
export const
|
168
|
+
export const MessageToAppLeader = Schema.Union(SnapshotReq, LoadDatabaseFileReq, MutationLogReq, ResetAllDataReq, NetworkStatusSubscribe, NetworkStatusUnsubscribe, Disconnect, RunMutationReq, Ping, DatabaseFileInfoReq, SyncHistorySubscribe, SyncHistoryUnsubscribe, SyncingInfoReq).annotations({ identifier: 'LSD.MessageToAppLeader' });
|
169
|
+
export const MessageToAppClientSession = Schema.Union(DebugInfoReq, DebugInfoHistorySubscribe, DebugInfoHistoryUnsubscribe, DebugInfoResetReq, DebugInfoRerunQueryReq, ReactivityGraphSubscribe, ReactivityGraphUnsubscribe, LiveQueriesSubscribe, LiveQueriesUnsubscribe, Disconnect).annotations({ identifier: 'LSD.MessageToAppClientSession' });
|
170
|
+
export const MessageFromAppLeader = Schema.Union(SnapshotRes, LoadDatabaseFileRes, MutationLogRes, ResetAllDataRes, Disconnect, MutationBroadcast, NetworkStatusRes, RunMutationRes, Pong, DatabaseFileInfoRes, SyncHistoryRes, SyncingInfoRes).annotations({ identifier: 'LSD.MessageFromAppLeader' });
|
171
|
+
export const MessageFromAppClientSession = Schema.Union(DebugInfoRes, DebugInfoHistoryRes, DebugInfoResetRes, DebugInfoRerunQueryRes, ReactivityGraphRes, LiveQueriesRes, Disconnect).annotations({ identifier: 'LSD.MessageFromAppClientSession' });
|
178
172
|
//# sourceMappingURL=devtools-messages.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"devtools-messages.js","sourceRoot":"","sources":["../../src/devtools/devtools-messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAE9D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,
|
1
|
+
{"version":3,"file":"devtools-messages.js","sourceRoot":"","sources":["../../src/devtools/devtools-messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAE9D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,KAAK,aAAa,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,gBAAgB,IAAI,UAAU,EAAE,MAAM,eAAe,CAAA;AAE9D,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAA;AAC/B,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAA;AAC/B,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;AAEnD,MAAM,UAAU,GAAG,CAA0D,GAAQ,EAAE,MAAc,EAAE,EAAE,CACvG,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE;IACvB,gBAAgB;IAChB,GAAG,MAAM;CACV,CAAC,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAA;AAErC,MAAM,iBAAiB,GAAG,CAA0D,GAAQ,EAAE,MAAc,EAAE,EAAE,CAC9G,UAAU,CAAC,GAAG,EAAE;IACd,GAAG,MAAM;CACV,CAAC,CAAA;AAEJ,MAAM,sBAAsB,GAAG,CAA0D,GAAQ,EAAE,MAAc,EAAE,EAAE,CACnH,UAAU,CAAC,GAAG,EAAE;IACd,SAAS;IACT,GAAG,MAAM;CACV,CAAC,CAAA;AAEJ,MAAM,qBAAqB,GAAG,CAA0D,GAAQ,EAAE,MAAc,EAAE,EAAE,CAClH,UAAU,CAAC,GAAG,EAAE;IACd,SAAS;IACT,SAAS;IACT,GAAG,MAAM;CACV,CAAC,CAAA;AAEJ,MAAM,gBAAgB,GAAG,CAA0D,GAAQ,EAAE,MAAc,EAAE,EAAE,CAC7G,iBAAiB,CAAC,GAAG,EAAE;IACrB,SAAS;IACT,GAAG,MAAM;CACV,CAAC,CAAA;AAEJ,MAAM,OAAO,WAAY,SAAQ,gBAAgB,CAAC,wBAAwB,EAAE,EAAE,CAAC;CAAG;AAElF,MAAM,OAAO,WAAY,SAAQ,gBAAgB,CAAC,wBAAwB,EAAE;IAC1E,QAAQ,EAAE,YAAY,CAAC,UAAU;CAClC,CAAC;CAAG;AAEL,MAAM,OAAO,mBAAoB,SAAQ,gBAAgB,CAAC,gCAAgC,EAAE;IAC1F,IAAI,EAAE,YAAY,CAAC,UAAU;CAC9B,CAAC;CAAG;AAEL,MAAM,OAAO,mBAAoB,SAAQ,gBAAgB,CAAC,gCAAgC,EAAE;IAC1F,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,kBAAkB,EAAE,sBAAsB,CAAC;CACzE,CAAC;CAAG;AAEL,MAAM,OAAO,YAAa,SAAQ,qBAAqB,CAAC,kBAAkB,EAAE,EAAE,CAAC;CAAG;AAElF,MAAM,OAAO,YAAa,SAAQ,qBAAqB,CAAC,kBAAkB,EAAE;IAC1E,SAAS,EAAE,SAAS;CACrB,CAAC;CAAG;AAEL,MAAM,OAAO,yBAA0B,SAAQ,qBAAqB,CAAC,+BAA+B,EAAE,EAAE,CAAC;CAAG;AAE5G,MAAM,OAAO,mBAAoB,SAAQ,qBAAqB,CAAC,yBAAyB,EAAE;IACxF,gBAAgB,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;CAC1C,CAAC;CAAG;AAEL,MAAM,OAAO,2BAA4B,SAAQ,qBAAqB,CAAC,iCAAiC,EAAE,EAAE,CAAC;CAAG;AAEhH,MAAM,OAAO,iBAAkB,SAAQ,qBAAqB,CAAC,uBAAuB,EAAE,EAAE,CAAC;CAAG;AAE5F,MAAM,OAAO,iBAAkB,SAAQ,qBAAqB,CAAC,uBAAuB,EAAE,EAAE,CAAC;CAAG;AAE5F,MAAM,OAAO,sBAAuB,SAAQ,qBAAqB,CAAC,4BAA4B,EAAE;IAC9F,QAAQ,EAAE,MAAM,CAAC,MAAM;IACvB,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,kBAAkB,CAAC;IAClD,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;CACjD,CAAC;CAAG;AAEL,MAAM,OAAO,sBAAuB,SAAQ,qBAAqB,CAAC,4BAA4B,EAAE,EAAE,CAAC;CAAG;AAEtG,gDAAgD;AAChD,MAAM,OAAO,iBAAkB,SAAQ,UAAU,CAAC,8BAA8B,EAAE;IAChF,oBAAoB,EAAE,aAAa,CAAC,UAAU;CAC/C,CAAC;CAAG;AAEL,gDAAgD;AAChD,MAAM,OAAO,cAAe,SAAQ,gBAAgB,CAAC,2BAA2B,EAAE;IAChF,oBAAoB,EAAE,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;CACnF,CAAC;CAAG;AAEL,MAAM,OAAO,cAAe,SAAQ,gBAAgB,CAAC,2BAA2B,EAAE,EAAE,CAAC;CAAG;AAExF,MAAM,OAAO,cAAe,SAAQ,gBAAgB,CAAC,2BAA2B,EAAE,EAAE,CAAC;CAAG;AAExF,MAAM,OAAO,cAAe,SAAQ,gBAAgB,CAAC,2BAA2B,EAAE;IAChF,WAAW,EAAE,YAAY,CAAC,UAAU;CACrC,CAAC;CAAG;AAEL,MAAM,OAAO,wBAAyB,SAAQ,qBAAqB,CAAC,8BAA8B,EAAE;IAClG,cAAc,EAAE,MAAM,CAAC,OAAO;CAC/B,CAAC;CAAG;AAEL,MAAM,OAAO,0BAA2B,SAAQ,qBAAqB,CAAC,gCAAgC,EAAE,EAAE,CAAC;CAAG;AAE9G,MAAM,OAAO,kBAAmB,SAAQ,qBAAqB,CAAC,wBAAwB,EAAE;IACtF,eAAe,EAAE,MAAM,CAAC,GAAG;CAC5B,CAAC;CAAG;AAEL,MAAM,OAAO,oBAAqB,SAAQ,qBAAqB,CAAC,0BAA0B,EAAE,EAAE,CAAC;CAAG;AAElG,MAAM,OAAO,sBAAuB,SAAQ,qBAAqB,CAAC,4BAA4B,EAAE,EAAE,CAAC;CAAG;AAEtG,MAAM,OAAO,mBAAoB,SAAQ,MAAM,CAAC,MAAM,CAAC;IACrD,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC;IACjD,EAAE,EAAE,MAAM,CAAC,MAAM;IACjB,KAAK,EAAE,MAAM,CAAC,MAAM;IACpB,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,cAAc,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;IAC3C,aAAa,EAAE,MAAM,CAAC,GAAG;IACzB,mBAAmB,EAAE,MAAM,CAAC,KAAK,CAC/B,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CACzG;CACF,CAAC;CAAG;AAEL,MAAM,OAAO,cAAe,SAAQ,qBAAqB,CAAC,oBAAoB,EAAE;IAC9E,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC;CAC/C,CAAC;CAAG;AAEL,MAAM,OAAO,eAAgB,SAAQ,gBAAgB,CAAC,4BAA4B,EAAE;IAClF,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,aAAa,CAAC;CAChD,CAAC;CAAG;AAEL,MAAM,OAAO,eAAgB,SAAQ,gBAAgB,CAAC,4BAA4B,EAAE,EAAE,CAAC;CAAG;AAE1F,MAAM,OAAO,mBAAoB,SAAQ,gBAAgB,CAAC,gCAAgC,EAAE,EAAE,CAAC;CAAG;AAElG,MAAM,OAAO,gBAAiB,SAAQ,MAAM,CAAC,MAAM,CAAC;IAClD,QAAQ,EAAE,MAAM,CAAC,MAAM;IACvB,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC;CACvG,CAAC;CAAG;AAEL,MAAM,OAAO,mBAAoB,SAAQ,gBAAgB,CAAC,gCAAgC,EAAE;IAC1F,EAAE,EAAE,gBAAgB;IACpB,WAAW,EAAE,gBAAgB;CAC9B,CAAC;CAAG;AAEL,MAAM,OAAO,sBAAuB,SAAQ,gBAAgB,CAAC,mCAAmC,EAAE,EAAE,CAAC;CAAG;AACxG,MAAM,OAAO,wBAAyB,SAAQ,gBAAgB,CAAC,qCAAqC,EAAE,EAAE,CAAC;CAAG;AAE5G,MAAM,OAAO,gBAAiB,SAAQ,gBAAgB,CAAC,6BAA6B,EAAE;IACpF,aAAa,EAAE,aAAa;CAC7B,CAAC;CAAG;AAEL,MAAM,OAAO,cAAe,SAAQ,gBAAgB,CAAC,2BAA2B,EAAE,EAAE,CAAC;CAAG;AAExF,MAAM,OAAO,WAAY,SAAQ,MAAM,CAAC,MAAM,CAAC;IAC7C,OAAO,EAAE,MAAM,CAAC,OAAO;IACvB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC;CACnE,CAAC;CAAG;AAEL,MAAM,OAAO,cAAe,SAAQ,gBAAgB,CAAC,2BAA2B,EAAE;IAChF,WAAW,EAAE,WAAW;CACzB,CAAC;CAAG;AAEL,MAAM,OAAO,oBAAqB,SAAQ,gBAAgB,CAAC,iCAAiC,EAAE,EAAE,CAAC;CAAG;AACpG,MAAM,OAAO,sBAAuB,SAAQ,gBAAgB,CAAC,mCAAmC,EAAE,EAAE,CAAC;CAAG;AACxG,MAAM,OAAO,cAAe,SAAQ,gBAAgB,CAAC,2BAA2B,EAAE;IAChF,oBAAoB,EAAE,aAAa,CAAC,UAAU;IAC9C,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;CAC1C,CAAC;CAAG;AAEL,MAAM,OAAO,UAAW,SAAQ,sBAAsB,CAAC,gBAAgB,EAAE,EAAE,CAAC;CAAG;AAE/E,MAAM,OAAO,IAAK,SAAQ,gBAAgB,CAAC,UAAU,EAAE,EAAE,CAAC;CAAG;AAE7D,MAAM,OAAO,IAAK,SAAQ,gBAAgB,CAAC,UAAU,EAAE,EAAE,CAAC;CAAG;AAE7D,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,KAAK,CAC5C,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,wBAAwB,EACxB,UAAU,EACV,cAAc,EACd,IAAI,EACJ,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,cAAc,CACf,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,wBAAwB,EAAE,CAAC,CAAA;AAIvD,MAAM,CAAC,MAAM,yBAAyB,GAAG,MAAM,CAAC,KAAK,CACnD,YAAY,EACZ,yBAAyB,EACzB,2BAA2B,EAC3B,iBAAiB,EACjB,sBAAsB,EACtB,wBAAwB,EACxB,0BAA0B,EAC1B,oBAAoB,EACpB,sBAAsB,EACtB,UAAU,CAGX,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,+BAA+B,EAAE,CAAC,CAAA;AAI9D,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,KAAK,CAC9C,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,IAAI,EACJ,mBAAmB,EACnB,cAAc,EACd,cAAc,CACf,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,0BAA0B,EAAE,CAAC,CAAA;AAIzD,MAAM,CAAC,MAAM,2BAA2B,GAAG,MAAM,CAAC,KAAK,CACrD,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,EACtB,kBAAkB,EAClB,cAAc,EACd,UAAU,CAEX,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,iCAAiC,EAAE,CAAC,CAAA"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/devtools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAE5D,cAAc,wBAAwB,CAAA;AACtC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,sBAAsB,CAAA;AAEpC,yBAAiB,SAAS,CAAC;;;;;IACzB,MAAM,OAAO,YAAa,SAAQ,iBAIhC;KAAG;;;;IAEL,MAAM,OAAO,aAAc,SAAQ,kBAEjC;KAAG;;;;QAKH;;;WAGG;;;;;IANL,MAAM,OAAO,iBAAkB,SAAQ,sBAUrC;KAAG;;;;IAEL,MAAM,OAAO,qBAAsB,SAAQ,0BAEzC;KAAG;;IAML,MAAM,OAAO,GAAI,SAAQ,QAAmF;KAAG;IAE/G,MAAM,CAAC,MAAM,oBAAoB,SACzB,MAAM,KACX,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,GAAG,CAAC,IAAI,EAAE,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/devtools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAE5D,cAAc,wBAAwB,CAAA;AACtC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,sBAAsB,CAAA;AAEpC,yBAAiB,SAAS,CAAC;;;;;IACzB,MAAM,OAAO,YAAa,SAAQ,iBAIhC;KAAG;;;;IAEL,MAAM,OAAO,aAAc,SAAQ,kBAEjC;KAAG;;;;QAKH;;;WAGG;;;;;IANL,MAAM,OAAO,iBAAkB,SAAQ,sBAUrC;KAAG;;;;IAEL,MAAM,OAAO,qBAAsB,SAAQ,0BAEzC;KAAG;;IAML,MAAM,OAAO,GAAI,SAAQ,QAAmF;KAAG;IAE/G,MAAM,CAAC,MAAM,oBAAoB,SACzB,MAAM,KACX,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,GAAG,CAAC,IAAI,EAAE,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAIxF,CAAA;;CACL"}
|
package/dist/devtools/index.js
CHANGED
@@ -42,8 +42,7 @@ export var WebBridge;
|
|
42
42
|
WebBridge.All = All;
|
43
43
|
WebBridge.makeBroadcastChannel = (key) => WebChannel.broadcastChannel({
|
44
44
|
channelName: `livestore-web-bridge-devtools${key ? `-${key}` : ''}`,
|
45
|
-
|
46
|
-
sendSchema: All,
|
45
|
+
schema: All,
|
47
46
|
});
|
48
47
|
})(WebBridge || (WebBridge = {}));
|
49
48
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/devtools/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAE5D,cAAc,wBAAwB,CAAA;AACtC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,sBAAsB,CAAA;AAEpC,MAAM,KAAW,SAAS,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/devtools/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAE5D,cAAc,wBAAwB,CAAA;AACtC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,sBAAsB,CAAA;AAEpC,MAAM,KAAW,SAAS,CAwCzB;AAxCD,WAAiB,SAAS;IACxB,MAAa,YAAa,SAAQ,MAAM,CAAC,YAAY,CAAC,4BAA4B,EAAE;QAClF,SAAS,EAAE,MAAM,CAAC,MAAM;QACxB,0BAA0B;QAC1B,QAAQ,EAAE,MAAM,CAAC,OAAO;KACzB,CAAC;KAAG;IAJQ,sBAAY,eAIpB,CAAA;IAEL,MAAa,aAAc,SAAQ,MAAM,CAAC,YAAY,CAAC,6BAA6B,EAAE;QACpF,UAAU,EAAE,MAAM,CAAC,MAAM;KAC1B,CAAC;KAAG;IAFQ,uBAAa,gBAErB,CAAA;IAEL,MAAa,iBAAkB,SAAQ,MAAM,CAAC,YAAY,CAAC,iCAAiC,EAAE;QAC5F,UAAU,EAAE,MAAM,CAAC,MAAM;QACzB,SAAS,EAAE,MAAM,CAAC,MAAM;QACxB;;;WAGG;QACH,WAAW,EAAE,MAAM,CAAC,MAAM;QAC1B,QAAQ,EAAE,MAAM,CAAC,OAAO;QACxB,OAAO,EAAE,MAAM,CAAC,MAAM;KACvB,CAAC;KAAG;IAVQ,2BAAiB,oBAUzB,CAAA;IAEL,MAAa,qBAAsB,SAAQ,MAAM,CAAC,YAAY,CAAC,qCAAqC,EAAE;QACpG,SAAS,EAAE,MAAM,CAAC,MAAM;KACzB,CAAC;KAAG;IAFQ,+BAAqB,wBAE7B,CAAA;IAEL,4GAA4G;IAC5G,8BAA8B;IAC9B,QAAQ;IAER,MAAa,GAAI,SAAQ,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,qBAAqB,CAAC;KAAG;IAAlG,aAAG,MAA+F,CAAA;IAElG,8BAAoB,GAAG,CAClC,GAAY,EACgF,EAAE,CAC9F,UAAU,CAAC,gBAAgB,CAAC;QAC1B,WAAW,EAAE,gCAAgC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;QACnE,MAAM,EAAE,GAAG;KACZ,CAAC,CAAA;AACN,CAAC,EAxCgB,SAAS,KAAT,SAAS,QAwCzB"}
|
package/dist/index.d.ts
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
export * from './schema/system-tables.js';
|
2
2
|
export * from './util.js';
|
3
3
|
export * from './adapter-types.js';
|
4
|
-
export * from './sync/next-mutation-event-id-pair.js';
|
5
4
|
export * from './schema-management/migrations.js';
|
6
5
|
export * from './mutation.js';
|
7
6
|
export * from './init-singleton-tables.js';
|
@@ -14,6 +13,8 @@ export * from './debug-info.js';
|
|
14
13
|
export * from './bounded-collections.js';
|
15
14
|
export * from './version.js';
|
16
15
|
export * from './query-builder/mod.js';
|
16
|
+
export * from './sync/syncstate.js';
|
17
|
+
export * from './otel.js';
|
17
18
|
declare global {
|
18
19
|
interface LiveStoreGlobal {
|
19
20
|
}
|
package/dist/index.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA;AACzC,cAAc,WAAW,CAAA;AACzB,cAAc,oBAAoB,CAAA;AAClC,cAAc,
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA;AACzC,cAAc,WAAW,CAAA;AACzB,cAAc,oBAAoB,CAAA;AAClC,cAAc,mCAAmC,CAAA;AACjD,cAAc,eAAe,CAAA;AAC7B,cAAc,4BAA4B,CAAA;AAC1C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,iBAAiB,CAAA;AAC/B,cAAc,wBAAwB,CAAA;AACtC,cAAc,iBAAiB,CAAA;AAC/B,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAA;AAC/C,cAAc,iBAAiB,CAAA;AAC/B,cAAc,0BAA0B,CAAA;AACxC,cAAc,cAAc,CAAA;AAC5B,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAA;AACnC,cAAc,WAAW,CAAA;AAEzB,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,eAAe;KAExB;CACF"}
|
package/dist/index.js
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
export * from './schema/system-tables.js';
|
2
2
|
export * from './util.js';
|
3
3
|
export * from './adapter-types.js';
|
4
|
-
export * from './sync/next-mutation-event-id-pair.js';
|
5
4
|
export * from './schema-management/migrations.js';
|
6
5
|
export * from './mutation.js';
|
7
6
|
export * from './init-singleton-tables.js';
|
@@ -14,4 +13,6 @@ export * from './debug-info.js';
|
|
14
13
|
export * from './bounded-collections.js';
|
15
14
|
export * from './version.js';
|
16
15
|
export * from './query-builder/mod.js';
|
16
|
+
export * from './sync/syncstate.js';
|
17
|
+
export * from './otel.js';
|
17
18
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA;AACzC,cAAc,WAAW,CAAA;AACzB,cAAc,oBAAoB,CAAA;AAClC,cAAc,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA;AACzC,cAAc,WAAW,CAAA;AACzB,cAAc,oBAAoB,CAAA;AAClC,cAAc,mCAAmC,CAAA;AACjD,cAAc,eAAe,CAAA;AAC7B,cAAc,4BAA4B,CAAA;AAC1C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,iBAAiB,CAAA;AAC/B,cAAc,wBAAwB,CAAA;AACtC,cAAc,iBAAiB,CAAA;AAC/B,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAA;AAC/C,cAAc,iBAAiB,CAAA;AAC/B,cAAc,0BAA0B,CAAA;AACxC,cAAc,cAAc,CAAA;AAC5B,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAA;AACnC,cAAc,WAAW,CAAA"}
|
@@ -1,4 +1,4 @@
|
|
1
1
|
import type { SynchronousDatabase } from './adapter-types.js';
|
2
|
-
import type { LiveStoreSchema } from './schema/
|
2
|
+
import type { LiveStoreSchema } from './schema/mod.js';
|
3
3
|
export declare const initializeSingletonTables: (schema: LiveStoreSchema, db: SynchronousDatabase) => void;
|
4
4
|
//# sourceMappingURL=init-singleton-tables.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"init-singleton-tables.d.ts","sourceRoot":"","sources":["../src/init-singleton-tables.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,
|
1
|
+
{"version":3,"file":"init-singleton-tables.d.ts","sourceRoot":"","sources":["../src/init-singleton-tables.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAItD,eAAO,MAAM,yBAAyB,WAAY,eAAe,MAAM,mBAAmB,SAkBzF,CAAA"}
|
@@ -0,0 +1,8 @@
|
|
1
|
+
import type { Scope } from '@livestore/utils/effect';
|
2
|
+
import { Effect } from '@livestore/utils/effect';
|
3
|
+
import type { SqliteError, UnexpectedError } from '../index.js';
|
4
|
+
import type { MutationEvent } from '../schema/mod.js';
|
5
|
+
import { LeaderThreadCtx } from './types.js';
|
6
|
+
export type ApplyMutation = (mutationEventEncoded: MutationEvent.AnyEncoded) => Effect.Effect<void, SqliteError | UnexpectedError>;
|
7
|
+
export declare const makeApplyMutation: Effect.Effect<ApplyMutation, never, Scope.Scope | LeaderThreadCtx>;
|
8
|
+
//# sourceMappingURL=apply-mutation.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"apply-mutation.d.ts","sourceRoot":"","sources":["../../src/leader-thread/apply-mutation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,MAAM,EAAkB,MAAM,yBAAyB,CAAA;AAEhE,OAAO,KAAK,EAAE,WAAW,EAAuB,eAAe,EAAE,MAAM,aAAa,CAAA;AAQpF,OAAO,KAAK,EAAmB,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAGtE,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAE5C,MAAM,MAAM,aAAa,GAAG,CAC1B,oBAAoB,EAAE,aAAa,CAAC,UAAU,KAC3C,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,GAAG,eAAe,CAAC,CAAA;AAEvD,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,eAAe,CAyEhG,CAAA"}
|
@@ -0,0 +1,95 @@
|
|
1
|
+
import { memoizeByRef, shouldNeverHappen } from '@livestore/utils';
|
2
|
+
import { Effect, Option, Schema } from '@livestore/utils/effect';
|
3
|
+
import { getExecArgsFromMutation, MUTATION_LOG_META_TABLE, mutationLogMetaTable, SESSION_CHANGESET_META_TABLE, sessionChangesetMetaTable, } from '../index.js';
|
4
|
+
import { insertRow } from '../sql-queries/index.js';
|
5
|
+
import { execSql, execSqlPrepared } from './connection.js';
|
6
|
+
import { LeaderThreadCtx } from './types.js';
|
7
|
+
export const makeApplyMutation = Effect.gen(function* () {
|
8
|
+
const leaderThreadCtx = yield* LeaderThreadCtx;
|
9
|
+
const shouldExcludeMutationFromLog = makeShouldExcludeMutationFromLog(leaderThreadCtx.schema);
|
10
|
+
const mutationDefSchemaHashMap = new Map(
|
11
|
+
// TODO Running `Schema.hash` can be a bottleneck for larger schemas. There is an opportunity to run this
|
12
|
+
// at build time and lookup the pre-computed hash at runtime.
|
13
|
+
// Also see https://github.com/Effect-TS/effect/issues/2719
|
14
|
+
[...leaderThreadCtx.schema.mutations.entries()].map(([k, v]) => [k, Schema.hash(v.schema)]));
|
15
|
+
return (mutationEventEncoded) => Effect.gen(function* () {
|
16
|
+
const { mutationEventSchema, schema, db, dbLog } = leaderThreadCtx;
|
17
|
+
const mutationEventDecoded = Schema.decodeUnknownSync(mutationEventSchema)(mutationEventEncoded);
|
18
|
+
const mutationName = mutationEventDecoded.mutation;
|
19
|
+
const mutationDef = schema.mutations.get(mutationName) ?? shouldNeverHappen(`Unknown mutation: ${mutationName}`);
|
20
|
+
const execArgsArr = getExecArgsFromMutation({ mutationDef, mutationEventDecoded });
|
21
|
+
// console.group('[@livestore/common:leader-thread:applyMutation]', { mutationName })
|
22
|
+
const session = db.session();
|
23
|
+
for (const { statementSql, bindValues } of execArgsArr) {
|
24
|
+
// console.debug(mutationName, statementSql, bindValues)
|
25
|
+
// TODO use cached prepared statements instead of exec
|
26
|
+
yield* execSqlPrepared(db, statementSql, bindValues);
|
27
|
+
}
|
28
|
+
const changeset = session.changeset();
|
29
|
+
session.finish();
|
30
|
+
// NOTE for no-op mutations (e.g. if the state didn't change) the changeset will be empty
|
31
|
+
// TODO possibly write a null value instead of omitting the row
|
32
|
+
if (changeset !== undefined && changeset.length > 0) {
|
33
|
+
// TODO use prepared statements
|
34
|
+
yield* execSql(db, ...insertRow({
|
35
|
+
tableName: SESSION_CHANGESET_META_TABLE,
|
36
|
+
columns: sessionChangesetMetaTable.sqliteDef.columns,
|
37
|
+
values: {
|
38
|
+
idGlobal: mutationEventEncoded.id.global,
|
39
|
+
idLocal: mutationEventEncoded.id.local,
|
40
|
+
changeset,
|
41
|
+
debug: execArgsArr,
|
42
|
+
},
|
43
|
+
}));
|
44
|
+
}
|
45
|
+
// console.groupEnd()
|
46
|
+
// write to mutation_log
|
47
|
+
const excludeFromMutationLog = shouldExcludeMutationFromLog(mutationName, mutationEventDecoded);
|
48
|
+
if (excludeFromMutationLog === false) {
|
49
|
+
yield* insertIntoMutationLog(mutationEventEncoded, dbLog, mutationDefSchemaHashMap);
|
50
|
+
}
|
51
|
+
else {
|
52
|
+
// console.debug('[@livestore/common:leader-thread] skipping mutation log write', mutation, statementSql, bindValues)
|
53
|
+
}
|
54
|
+
}).pipe(Effect.withSpan(`@livestore/common:leader-thread:applyMutation`, {
|
55
|
+
attributes: {
|
56
|
+
mutationName: mutationEventEncoded.mutation,
|
57
|
+
mutationId: mutationEventEncoded.id,
|
58
|
+
'span.label': mutationEventEncoded.mutation,
|
59
|
+
},
|
60
|
+
}));
|
61
|
+
});
|
62
|
+
const insertIntoMutationLog = (mutationEventEncoded, dbLog, mutationDefSchemaHashMap) => Effect.gen(function* () {
|
63
|
+
const mutationName = mutationEventEncoded.mutation;
|
64
|
+
const mutationDefSchemaHash = mutationDefSchemaHashMap.get(mutationName) ?? shouldNeverHappen(`Unknown mutation: ${mutationName}`);
|
65
|
+
// TODO use prepared statements
|
66
|
+
yield* execSql(dbLog, ...insertRow({
|
67
|
+
tableName: MUTATION_LOG_META_TABLE,
|
68
|
+
columns: mutationLogMetaTable.sqliteDef.columns,
|
69
|
+
values: {
|
70
|
+
idGlobal: mutationEventEncoded.id.global,
|
71
|
+
idLocal: mutationEventEncoded.id.local,
|
72
|
+
parentIdGlobal: mutationEventEncoded.parentId.global,
|
73
|
+
parentIdLocal: mutationEventEncoded.parentId.local,
|
74
|
+
mutation: mutationEventEncoded.mutation,
|
75
|
+
argsJson: mutationEventEncoded.args ?? {},
|
76
|
+
schemaHash: mutationDefSchemaHash,
|
77
|
+
syncMetadataJson: Option.none(),
|
78
|
+
},
|
79
|
+
}));
|
80
|
+
});
|
81
|
+
// TODO let's consider removing this "should exclude" mechanism in favour of log compaction etc
|
82
|
+
const makeShouldExcludeMutationFromLog = memoizeByRef((schema) => {
|
83
|
+
const migrationOptions = schema.migrationOptions;
|
84
|
+
const mutationLogExclude = migrationOptions.strategy === 'from-mutation-log'
|
85
|
+
? (migrationOptions.excludeMutations ?? new Set(['livestore.RawSql']))
|
86
|
+
: new Set(['livestore.RawSql']);
|
87
|
+
return (mutationName, mutationEventDecoded) => {
|
88
|
+
if (mutationLogExclude.has(mutationName))
|
89
|
+
return true;
|
90
|
+
const mutationDef = schema.mutations.get(mutationName) ?? shouldNeverHappen(`Unknown mutation: ${mutationName}`);
|
91
|
+
const execArgsArr = getExecArgsFromMutation({ mutationDef, mutationEventDecoded });
|
92
|
+
return execArgsArr.some((_) => _.statementSql.includes('__livestore'));
|
93
|
+
};
|
94
|
+
});
|
95
|
+
//# sourceMappingURL=apply-mutation.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"apply-mutation.js","sourceRoot":"","sources":["../../src/leader-thread/apply-mutation.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import { Effect } from '@livestore/utils/effect';
|
2
|
+
import type { SynchronousDatabase } from '../adapter-types.js';
|
3
|
+
import { SqliteError } from '../adapter-types.js';
|
4
|
+
import type { BindValues } from '../sql-queries/index.js';
|
5
|
+
import type { PreparedBindValues } from '../util.js';
|
6
|
+
export declare const configureConnection: (syncDb: SynchronousDatabase, { fkEnabled }: {
|
7
|
+
fkEnabled: boolean;
|
8
|
+
}) => Effect.Effect<void, SqliteError, never>;
|
9
|
+
export declare const execSql: (syncDb: SynchronousDatabase, sql: string, bind: BindValues) => Effect.Effect<void, SqliteError, never>;
|
10
|
+
export declare const execSqlPrepared: (syncDb: SynchronousDatabase, sql: string, bindValues: PreparedBindValues) => Effect.Effect<void, SqliteError, never>;
|
11
|
+
//# sourceMappingURL=connection.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/leader-thread/connection.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAQpD,eAAO,MAAM,mBAAmB,WAAY,mBAAmB,iBAAiB;IAAE,SAAS,EAAE,OAAO,CAAA;CAAE,4CASnG,CAAA;AAEH,eAAO,MAAM,OAAO,WAAY,mBAAmB,OAAO,MAAM,QAAQ,UAAU,4CAajF,CAAA;AAYD,eAAO,MAAM,eAAe,WAAY,mBAAmB,OAAO,MAAM,cAAc,kBAAkB,4CAgBvG,CAAA"}
|
@@ -0,0 +1,44 @@
|
|
1
|
+
// import type { WaSqlite } from '@livestore/sqlite-wasm'
|
2
|
+
import { Effect } from '@livestore/utils/effect';
|
3
|
+
import { SqliteError } from '../adapter-types.js';
|
4
|
+
import { prepareBindValues, sql } from '../util.js';
|
5
|
+
export const configureConnection = (syncDb, { fkEnabled }) => execSql(syncDb, sql `
|
6
|
+
PRAGMA page_size=8192;
|
7
|
+
PRAGMA journal_mode=MEMORY;
|
8
|
+
${fkEnabled ? sql `PRAGMA foreign_keys='ON';` : sql `PRAGMA foreign_keys='OFF';`}
|
9
|
+
`, {});
|
10
|
+
export const execSql = (syncDb, sql, bind) => {
|
11
|
+
const bindValues = prepareBindValues(bind, sql);
|
12
|
+
return Effect.try({
|
13
|
+
try: () => syncDb.execute(sql, bindValues),
|
14
|
+
catch: (cause) => new SqliteError({ cause, query: { bindValues, sql }, code: cause.code }),
|
15
|
+
}).pipe(Effect.asVoid,
|
16
|
+
// Effect.logDuration(`@livestore/common:execSql:${sql}`),
|
17
|
+
Effect.withSpan(`@livestore/common:execSql`, {
|
18
|
+
attributes: { 'span.label': sql, sql, bindValueKeys: Object.keys(bindValues) },
|
19
|
+
}));
|
20
|
+
};
|
21
|
+
// const selectSqlPrepared = <T>(stmt: PreparedStatement, bind: BindValues) => {
|
22
|
+
// const bindValues = prepareBindValues(bind, stmt.sql)
|
23
|
+
// return Effect.try({
|
24
|
+
// try: () => stmt.select<T>(bindValues),
|
25
|
+
// catch: (cause) =>
|
26
|
+
// new SqliteError({ cause, query: { bindValues, sql: stmt.sql }, code: (cause as WaSqlite.SQLiteError).code }),
|
27
|
+
// })
|
28
|
+
// }
|
29
|
+
// TODO actually use prepared statements
|
30
|
+
export const execSqlPrepared = (syncDb, sql, bindValues) => {
|
31
|
+
return Effect.try({
|
32
|
+
try: () => syncDb.execute(sql, bindValues),
|
33
|
+
catch: (cause) => new SqliteError({ cause, query: { bindValues, sql }, code: cause.code }),
|
34
|
+
}).pipe(Effect.asVoid,
|
35
|
+
// Effect.logDuration(`@livestore/common:execSqlPrepared:${sql}`),
|
36
|
+
Effect.withSpan(`@livestore/common:execSqlPrepared`, {
|
37
|
+
attributes: {
|
38
|
+
'span.label': sql,
|
39
|
+
sql,
|
40
|
+
bindValueKeys: Object.keys(bindValues),
|
41
|
+
},
|
42
|
+
}));
|
43
|
+
};
|
44
|
+
//# sourceMappingURL=connection.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/leader-thread/connection.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAGhD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAGjD,OAAO,EAAE,iBAAiB,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AAOnD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,MAA2B,EAAE,EAAE,SAAS,EAA0B,EAAE,EAAE,CACxG,OAAO,CACL,MAAM,EACN,GAAG,CAAA;;;MAGD,SAAS,CAAC,CAAC,CAAC,GAAG,CAAA,2BAA2B,CAAC,CAAC,CAAC,GAAG,CAAA,4BAA4B;GAC/E,EACC,EAAE,CACH,CAAA;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,MAA2B,EAAE,GAAW,EAAE,IAAgB,EAAE,EAAE;IACpF,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAC/C,OAAO,MAAM,CAAC,GAAG,CAAC;QAChB,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC;QAC1C,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,IAAI,EAAG,KAA8B,CAAC,IAAI,EAAE,CAAC;KACrG,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,MAAM;IACb,0DAA0D;IAC1D,MAAM,CAAC,QAAQ,CAAC,2BAA2B,EAAE;QAC3C,UAAU,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;KAC/E,CAAC,CACH,CAAA;AACH,CAAC,CAAA;AAED,gFAAgF;AAChF,yDAAyD;AACzD,wBAAwB;AACxB,6CAA6C;AAC7C,wBAAwB;AACxB,sHAAsH;AACtH,OAAO;AACP,IAAI;AAEJ,wCAAwC;AACxC,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,MAA2B,EAAE,GAAW,EAAE,UAA8B,EAAE,EAAE;IAC1G,OAAO,MAAM,CAAC,GAAG,CAAC;QAChB,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC;QAC1C,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,IAAI,EAAG,KAA8B,CAAC,IAAI,EAAE,CAAC;KACrG,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,MAAM;IACb,kEAAkE;IAClE,MAAM,CAAC,QAAQ,CAAC,mCAAmC,EAAE;QACnD,UAAU,EAAE;YACV,YAAY,EAAE,GAAG;YACjB,GAAG;YACH,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;SACvC;KACF,CAAC,CACH,CAAA;AACH,CAAC,CAAA"}
|
@@ -0,0 +1,47 @@
|
|
1
|
+
import type { Scope } from '@livestore/utils/effect';
|
2
|
+
import { Effect } from '@livestore/utils/effect';
|
3
|
+
import type { SynchronousDatabase } from '../adapter-types.js';
|
4
|
+
import { UnexpectedError } from '../adapter-types.js';
|
5
|
+
import type { LiveStoreSchema } from '../schema/mod.js';
|
6
|
+
import type { InitialBlockingSyncContext, SyncProcessor } from './types.js';
|
7
|
+
/**
|
8
|
+
* The general idea of the sync processor is to "follow the sync state"
|
9
|
+
* and apply/rollback mutations as needed to the read model and mutation log.
|
10
|
+
* The leader sync processor is also responsible for
|
11
|
+
* - broadcasting mutations to client sessions via the pull queues.
|
12
|
+
* - pushing mutations to the sync backend
|
13
|
+
*
|
14
|
+
* In the leader sync processor, pulling always has precedence over pushing.
|
15
|
+
*
|
16
|
+
* External events:
|
17
|
+
* - Mutation pushed from client session
|
18
|
+
* - Mutation pushed from devtools (via pushPartial)
|
19
|
+
* - Mutation pulled from sync backend
|
20
|
+
*
|
21
|
+
* The machine can be in the following states:
|
22
|
+
* - in-sync: fully synced with remote, now idling
|
23
|
+
* - applying-syncstate-advance (with pointer to current progress in case of rebase interrupt)
|
24
|
+
*
|
25
|
+
* Transitions:
|
26
|
+
* - in-sync -> applying-syncstate-advance
|
27
|
+
* - applying-syncstate-advance -> in-sync
|
28
|
+
* - applying-syncstate-advance -> applying-syncstate-advance (need to interrupt previous operation)
|
29
|
+
*
|
30
|
+
* Queuing vs interrupting behaviour:
|
31
|
+
* - Operations caused by pull can never be interrupted
|
32
|
+
* - Incoming pull can interrupt current push
|
33
|
+
* - Incoming pull needs to wait to previous pull to finish
|
34
|
+
* - Incoming push needs to wait to previous push to finish
|
35
|
+
*
|
36
|
+
* Backend pushing:
|
37
|
+
* - continously push to backend
|
38
|
+
* - only interrupted and restarted on rebase
|
39
|
+
*/
|
40
|
+
export declare const makeLeaderSyncProcessor: ({ schema, dbMissing, dbLog, initialBlockingSyncContext, }: {
|
41
|
+
schema: LiveStoreSchema;
|
42
|
+
/** Only used to know whether we can safely query dbLog during setup execution */
|
43
|
+
dbMissing: boolean;
|
44
|
+
dbLog: SynchronousDatabase;
|
45
|
+
initialBlockingSyncContext: InitialBlockingSyncContext;
|
46
|
+
}) => Effect.Effect<SyncProcessor, UnexpectedError, Scope.Scope>;
|
47
|
+
//# sourceMappingURL=leader-sync-processor.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"leader-sync-processor.d.ts","sourceRoot":"","sources":["../../src/leader-thread/leader-sync-processor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAc,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAChE,OAAO,EAGL,MAAM,EAUP,MAAM,yBAAyB,CAAA;AAGhC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,EAAE,eAAe,EAA2B,MAAM,kBAAkB,CAAA;AAehF,OAAO,KAAK,EAAE,0BAA0B,EAAmB,aAAa,EAAE,MAAM,YAAY,CAAA;AAuB5F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,eAAO,MAAM,uBAAuB,8DAKjC;IACD,MAAM,EAAE,eAAe,CAAA;IACvB,iFAAiF;IACjF,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE,mBAAmB,CAAA;IAC1B,0BAA0B,EAAE,0BAA0B,CAAA;CACvD,KAAG,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,eAAe,EAAE,KAAK,CAAC,KAAK,CAoOzD,CAAA"}
|