@livestore/common 0.3.0-dev.37 → 0.3.0-dev.38
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 +3 -2
- package/dist/adapter-types.d.ts.map +1 -1
- package/dist/adapter-types.js.map +1 -1
- package/dist/devtools/devtools-messages-client-session.d.ts +29 -29
- package/dist/devtools/devtools-messages-common.d.ts +6 -6
- package/dist/devtools/devtools-messages-leader.d.ts +24 -24
- package/dist/devtools/devtools-sessioninfo.d.ts +2 -0
- package/dist/devtools/devtools-sessioninfo.d.ts.map +1 -1
- package/dist/devtools/devtools-sessioninfo.js +1 -0
- package/dist/devtools/devtools-sessioninfo.js.map +1 -1
- package/dist/devtools/mod.d.ts +48 -32
- package/dist/devtools/mod.d.ts.map +1 -1
- package/dist/devtools/mod.js +27 -21
- package/dist/devtools/mod.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.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 +21 -13
- package/dist/leader-thread/leader-worker-devtools.js.map +1 -1
- package/dist/leader-thread/types.d.ts +6 -4
- package/dist/leader-thread/types.d.ts.map +1 -1
- package/dist/leader-thread/types.js.map +1 -1
- package/dist/make-client-session.d.ts +21 -0
- package/dist/make-client-session.d.ts.map +1 -0
- package/dist/make-client-session.js +51 -0
- package/dist/make-client-session.js.map +1 -0
- package/dist/materializer-helper.d.ts.map +1 -1
- package/dist/materializer-helper.js +1 -1
- package/dist/materializer-helper.js.map +1 -1
- package/dist/schema/EventDef.d.ts +2 -2
- package/dist/schema/LiveStoreEvent.d.ts +6 -6
- package/dist/schema/state/sqlite/system-tables.d.ts +2 -2
- package/dist/sync/next/test/event-fixtures.d.ts +7 -7
- package/dist/sync/syncstate.d.ts +2 -2
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +4 -3
- package/src/adapter-types.ts +4 -2
- package/src/devtools/devtools-sessioninfo.ts +1 -0
- package/src/devtools/mod.ts +44 -21
- package/src/index.ts +1 -0
- package/src/leader-thread/leader-worker-devtools.ts +40 -22
- package/src/leader-thread/types.ts +5 -4
- package/src/make-client-session.ts +119 -0
- package/src/materializer-helper.ts +2 -1
- package/src/version.ts +1 -1
- package/dist/derived-mutations.d.ts +0 -77
- package/dist/derived-mutations.d.ts.map +0 -1
- package/dist/derived-mutations.js +0 -54
- package/dist/derived-mutations.js.map +0 -1
- package/dist/derived-mutations.test.d.ts +0 -2
- package/dist/derived-mutations.test.d.ts.map +0 -1
- package/dist/derived-mutations.test.js +0 -93
- package/dist/derived-mutations.test.js.map +0 -1
- package/dist/devtools/devtools-bridge.d.ts +0 -12
- package/dist/devtools/devtools-bridge.d.ts.map +0 -1
- package/dist/devtools/devtools-bridge.js +0 -2
- package/dist/devtools/devtools-bridge.js.map +0 -1
- package/dist/devtools/devtools-window-message.d.ts +0 -29
- package/dist/devtools/devtools-window-message.d.ts.map +0 -1
- package/dist/devtools/devtools-window-message.js +0 -33
- package/dist/devtools/devtools-window-message.js.map +0 -1
- package/dist/devtools/index.d.ts +0 -42
- package/dist/devtools/index.d.ts.map +0 -1
- package/dist/devtools/index.js +0 -49
- package/dist/devtools/index.js.map +0 -1
- package/dist/init-singleton-tables.d.ts +0 -4
- package/dist/init-singleton-tables.d.ts.map +0 -1
- package/dist/init-singleton-tables.js +0 -16
- package/dist/init-singleton-tables.js.map +0 -1
- package/dist/leader-thread/apply-event.d.ts +0 -16
- package/dist/leader-thread/apply-event.d.ts.map +0 -1
- package/dist/leader-thread/apply-event.js +0 -103
- package/dist/leader-thread/apply-event.js.map +0 -1
- package/dist/mutation.d.ts +0 -14
- package/dist/mutation.d.ts.map +0 -1
- package/dist/mutation.js +0 -71
- package/dist/mutation.js.map +0 -1
- package/dist/query-builder/api.d.ts +0 -293
- package/dist/query-builder/api.d.ts.map +0 -1
- package/dist/query-builder/api.js +0 -6
- package/dist/query-builder/api.js.map +0 -1
- package/dist/query-builder/astToSql.d.ts +0 -7
- package/dist/query-builder/astToSql.d.ts.map +0 -1
- package/dist/query-builder/astToSql.js +0 -190
- package/dist/query-builder/astToSql.js.map +0 -1
- package/dist/query-builder/impl.d.ts +0 -7
- package/dist/query-builder/impl.d.ts.map +0 -1
- package/dist/query-builder/impl.js +0 -286
- package/dist/query-builder/impl.js.map +0 -1
- package/dist/query-builder/impl.test.d.ts +0 -87
- package/dist/query-builder/impl.test.d.ts.map +0 -1
- package/dist/query-builder/impl.test.js +0 -554
- package/dist/query-builder/impl.test.js.map +0 -1
- package/dist/query-builder/mod.d.ts +0 -17
- package/dist/query-builder/mod.d.ts.map +0 -1
- package/dist/query-builder/mod.js +0 -17
- package/dist/query-builder/mod.js.map +0 -1
- package/dist/query-info.d.ts +0 -38
- package/dist/query-info.d.ts.map +0 -1
- package/dist/query-info.js +0 -7
- package/dist/query-info.js.map +0 -1
- package/dist/rehydrate-from-eventlog.d.ts +0 -14
- package/dist/rehydrate-from-eventlog.d.ts.map +0 -1
- package/dist/rehydrate-from-eventlog.js +0 -64
- package/dist/rehydrate-from-eventlog.js.map +0 -1
- package/dist/rehydrate-from-mutationlog.d.ts +0 -14
- package/dist/rehydrate-from-mutationlog.d.ts.map +0 -1
- package/dist/rehydrate-from-mutationlog.js +0 -72
- package/dist/rehydrate-from-mutationlog.js.map +0 -1
- package/dist/schema/client-document-def.d.ts +0 -223
- package/dist/schema/client-document-def.d.ts.map +0 -1
- package/dist/schema/client-document-def.js +0 -170
- package/dist/schema/client-document-def.js.map +0 -1
- package/dist/schema/client-document-def.test.d.ts +0 -2
- package/dist/schema/client-document-def.test.d.ts.map +0 -1
- package/dist/schema/client-document-def.test.js +0 -201
- package/dist/schema/client-document-def.test.js.map +0 -1
- package/dist/schema/db-schema/ast/sqlite.d.ts +0 -69
- package/dist/schema/db-schema/ast/sqlite.d.ts.map +0 -1
- package/dist/schema/db-schema/ast/sqlite.js +0 -71
- package/dist/schema/db-schema/ast/sqlite.js.map +0 -1
- package/dist/schema/db-schema/ast/validate.d.ts +0 -3
- package/dist/schema/db-schema/ast/validate.d.ts.map +0 -1
- package/dist/schema/db-schema/ast/validate.js +0 -12
- package/dist/schema/db-schema/ast/validate.js.map +0 -1
- package/dist/schema/db-schema/dsl/field-defs.d.ts +0 -90
- package/dist/schema/db-schema/dsl/field-defs.d.ts.map +0 -1
- package/dist/schema/db-schema/dsl/field-defs.js +0 -87
- package/dist/schema/db-schema/dsl/field-defs.js.map +0 -1
- package/dist/schema/db-schema/dsl/field-defs.test.d.ts +0 -2
- package/dist/schema/db-schema/dsl/field-defs.test.d.ts.map +0 -1
- package/dist/schema/db-schema/dsl/field-defs.test.js +0 -29
- package/dist/schema/db-schema/dsl/field-defs.test.js.map +0 -1
- package/dist/schema/db-schema/dsl/mod.d.ts +0 -90
- package/dist/schema/db-schema/dsl/mod.d.ts.map +0 -1
- package/dist/schema/db-schema/dsl/mod.js +0 -41
- package/dist/schema/db-schema/dsl/mod.js.map +0 -1
- package/dist/schema/db-schema/hash.d.ts +0 -2
- package/dist/schema/db-schema/hash.d.ts.map +0 -1
- package/dist/schema/db-schema/hash.js +0 -14
- package/dist/schema/db-schema/hash.js.map +0 -1
- package/dist/schema/db-schema/mod.d.ts +0 -3
- package/dist/schema/db-schema/mod.d.ts.map +0 -1
- package/dist/schema/db-schema/mod.js +0 -3
- package/dist/schema/db-schema/mod.js.map +0 -1
- package/dist/schema/index.d.ts +0 -62
- package/dist/schema/index.d.ts.map +0 -1
- package/dist/schema/index.js +0 -67
- package/dist/schema/index.js.map +0 -1
- package/dist/schema/mutations.d.ts +0 -227
- package/dist/schema/mutations.d.ts.map +0 -1
- package/dist/schema/mutations.js +0 -68
- package/dist/schema/mutations.js.map +0 -1
- package/dist/schema/schema-helpers.d.ts +0 -4
- package/dist/schema/schema-helpers.d.ts.map +0 -1
- package/dist/schema/schema-helpers.js +0 -30
- package/dist/schema/schema-helpers.js.map +0 -1
- package/dist/schema/sqlite-state.d.ts +0 -12
- package/dist/schema/sqlite-state.d.ts.map +0 -1
- package/dist/schema/sqlite-state.js +0 -36
- package/dist/schema/sqlite-state.js.map +0 -1
- package/dist/schema/state/sqlite/sqlite-state.d.ts +0 -12
- package/dist/schema/state/sqlite/sqlite-state.d.ts.map +0 -1
- package/dist/schema/state/sqlite/sqlite-state.js +0 -36
- package/dist/schema/state/sqlite/sqlite-state.js.map +0 -1
- package/dist/schema/state/state.d.ts +0 -3
- package/dist/schema/state/state.d.ts.map +0 -1
- package/dist/schema/state/state.js +0 -3
- package/dist/schema/state/state.js.map +0 -1
- package/dist/schema/state.d.ts +0 -3
- package/dist/schema/state.d.ts.map +0 -1
- package/dist/schema/state.js +0 -3
- package/dist/schema/state.js.map +0 -1
- package/dist/schema/system-tables.d.ts +0 -27
- package/dist/schema/system-tables.d.ts.map +0 -1
- package/dist/schema/system-tables.js +0 -86
- package/dist/schema/system-tables.js.map +0 -1
- package/dist/schema/table-def.d.ts +0 -84
- package/dist/schema/table-def.d.ts.map +0 -1
- package/dist/schema/table-def.js +0 -36
- package/dist/schema/table-def.js.map +0 -1
- package/dist/schema/view.d.ts +0 -3
- package/dist/schema/view.d.ts.map +0 -1
- package/dist/schema/view.js +0 -3
- package/dist/schema/view.js.map +0 -1
- package/dist/schema-management/validate-mutation-defs.d.ts +0 -8
- package/dist/schema-management/validate-mutation-defs.d.ts.map +0 -1
- package/dist/schema-management/validate-mutation-defs.js +0 -39
- package/dist/schema-management/validate-mutation-defs.js.map +0 -1
- package/dist/sync/next/test/mutation-fixtures.d.ts +0 -73
- package/dist/sync/next/test/mutation-fixtures.d.ts.map +0 -1
- package/dist/sync/next/test/mutation-fixtures.js +0 -161
- package/dist/sync/next/test/mutation-fixtures.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/devtools/devtools-window-message.ts +0 -27
package/dist/sync/syncstate.d.ts
CHANGED
@@ -222,9 +222,9 @@ declare const MergeResultUnexpectedError_base: Schema.Class<MergeResultUnexpecte
|
|
222
222
|
_tag: Schema.Literal<["unexpected-error"]>;
|
223
223
|
cause: typeof UnexpectedError;
|
224
224
|
}>, never, {
|
225
|
-
readonly cause: UnexpectedError;
|
226
|
-
} & {
|
227
225
|
readonly _tag: "unexpected-error";
|
226
|
+
} & {
|
227
|
+
readonly cause: UnexpectedError;
|
228
228
|
}, {}, {}>;
|
229
229
|
export declare class MergeResultUnexpectedError extends MergeResultUnexpectedError_base {
|
230
230
|
}
|
package/dist/version.d.ts
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
export declare const liveStoreVersion: "0.3.0-dev.
|
1
|
+
export declare const liveStoreVersion: "0.3.0-dev.38";
|
2
2
|
/**
|
3
3
|
* This version number is incremented whenever the internal storage format changes in a breaking way.
|
4
4
|
* Whenever this version changes, LiveStore will start with fresh database files. Old database files are not deleted.
|
package/dist/version.js
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
// TODO bring back when Expo and Playwright supports `with` imports
|
2
2
|
// import packageJson from '../package.json' with { type: 'json' }
|
3
3
|
// export const liveStoreVersion = packageJson.version
|
4
|
-
export const liveStoreVersion = '0.3.0-dev.
|
4
|
+
export const liveStoreVersion = '0.3.0-dev.38';
|
5
5
|
/**
|
6
6
|
* This version number is incremented whenever the internal storage format changes in a breaking way.
|
7
7
|
* Whenever this version changes, LiveStore will start with fresh database files. Old database files are not deleted.
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@livestore/common",
|
3
|
-
"version": "0.3.0-dev.
|
3
|
+
"version": "0.3.0-dev.38",
|
4
4
|
"type": "module",
|
5
5
|
"sideEffects": false,
|
6
6
|
"exports": {
|
@@ -54,11 +54,12 @@
|
|
54
54
|
"graphology": "0.26.0-alpha1",
|
55
55
|
"graphology-dag": "0.4.1",
|
56
56
|
"graphology-types": "0.24.8",
|
57
|
-
"@livestore/utils": "0.3.0-dev.
|
57
|
+
"@livestore/utils": "0.3.0-dev.38",
|
58
|
+
"@livestore/webmesh": "0.3.0-dev.38"
|
58
59
|
},
|
59
60
|
"devDependencies": {
|
60
61
|
"vitest": "^3.1.1",
|
61
|
-
"@livestore/utils-dev": "0.3.0-dev.
|
62
|
+
"@livestore/utils-dev": "0.3.0-dev.38"
|
62
63
|
},
|
63
64
|
"files": [
|
64
65
|
"package.json",
|
package/src/adapter-types.ts
CHANGED
@@ -232,7 +232,9 @@ export type ConnectDevtoolsToStore = (
|
|
232
232
|
storeDevtoolsChannel: ClientSessionDevtoolsChannel,
|
233
233
|
) => Effect.Effect<void, UnexpectedError, Scope.Scope>
|
234
234
|
|
235
|
-
export type Adapter = (
|
235
|
+
export type Adapter = (args: AdapterArgs) => Effect.Effect<ClientSession, UnexpectedError, Scope.Scope>
|
236
|
+
|
237
|
+
export interface AdapterArgs {
|
236
238
|
schema: LiveStoreSchema
|
237
239
|
storeId: string
|
238
240
|
devtoolsEnabled: boolean
|
@@ -246,7 +248,7 @@ export type Adapter = (opts: {
|
|
246
248
|
* @default undefined
|
247
249
|
*/
|
248
250
|
syncPayload: Schema.JsonValue | undefined
|
249
|
-
}
|
251
|
+
}
|
250
252
|
|
251
253
|
export const MigrationsReportEntry = Schema.Struct({
|
252
254
|
tableName: Schema.String,
|
package/src/devtools/mod.ts
CHANGED
@@ -1,36 +1,59 @@
|
|
1
|
+
import type { Effect, Scope, WebChannel } from '@livestore/utils/effect'
|
1
2
|
import { Schema } from '@livestore/utils/effect'
|
3
|
+
import { nanoid } from '@livestore/utils/nanoid'
|
4
|
+
import type { MeshNode } from '@livestore/webmesh'
|
5
|
+
|
6
|
+
import * as SessionInfo from './devtools-sessioninfo.js'
|
2
7
|
|
3
8
|
export * from './devtools-messages.js'
|
4
|
-
export * from './devtools-window-message.js'
|
5
9
|
export * as SessionInfo from './devtools-sessioninfo.js'
|
6
|
-
export const ClientSessionInfo = Schema.Struct({
|
7
|
-
storeId: Schema.String,
|
8
|
-
clientId: Schema.String,
|
9
|
-
sessionId: Schema.String,
|
10
|
-
})
|
11
10
|
|
12
11
|
export const DevtoolsMode = Schema.Union(
|
13
|
-
Schema.TaggedStruct('expo', {
|
14
|
-
// TODO get rid of embedded `clientSessionInfo`
|
15
|
-
clientSessionInfo: Schema.optional(ClientSessionInfo),
|
16
|
-
}),
|
17
|
-
// TODO add storeId, clientId and sessionId for Node
|
18
12
|
Schema.TaggedStruct('node', {
|
19
|
-
|
20
|
-
clientSessionInfo: Schema.UndefinedOr(ClientSessionInfo),
|
13
|
+
/** WebSocket URL */
|
21
14
|
url: Schema.String,
|
22
15
|
}),
|
23
|
-
Schema.TaggedStruct('web', {
|
24
|
-
|
25
|
-
clientSessionInfo: Schema.UndefinedOr(ClientSessionInfo),
|
26
|
-
}),
|
27
|
-
Schema.TaggedStruct('browser-extension', {
|
28
|
-
// TODO get rid of embedded `clientSessionInfo`
|
29
|
-
clientSessionInfo: Schema.UndefinedOr(ClientSessionInfo),
|
30
|
-
}),
|
16
|
+
Schema.TaggedStruct('web', {}),
|
17
|
+
Schema.TaggedStruct('browser-extension', {}),
|
31
18
|
)
|
32
19
|
|
33
20
|
export type DevtoolsMode = typeof DevtoolsMode.Type
|
34
21
|
|
35
22
|
export const DevtoolsModeTag = DevtoolsMode.pipe(Schema.pluck('_tag'), Schema.typeSchema)
|
36
23
|
export type DevtoolsModeTag = typeof DevtoolsModeTag.Type
|
24
|
+
|
25
|
+
export const makeNodeName = {
|
26
|
+
devtools: {
|
27
|
+
random: () => `devtools-session-info-${nanoid()}`,
|
28
|
+
},
|
29
|
+
client: {
|
30
|
+
session: ({ storeId, clientId, sessionId }: { storeId: string; clientId: string; sessionId: string }) =>
|
31
|
+
`client-session-${storeId}-${clientId}-${sessionId}`,
|
32
|
+
leader: ({ storeId, clientId }: { storeId: string; clientId: string }) => `client-leader-${storeId}-${clientId}`,
|
33
|
+
},
|
34
|
+
}
|
35
|
+
|
36
|
+
export const makeChannelName = {
|
37
|
+
sessionInfo: () => `session-info`,
|
38
|
+
devtoolsClientSession: ({ storeId, clientId, sessionId }: { storeId: string; clientId: string; sessionId: string }) =>
|
39
|
+
`devtools-channel(client-session-${storeId}-${clientId}-${sessionId})`,
|
40
|
+
devtoolsClientLeader: ({ storeId, clientId, sessionId }: { storeId: string; clientId: string; sessionId: string }) =>
|
41
|
+
`devtools-channel(client-leader-${storeId}-${clientId}-${sessionId})`,
|
42
|
+
}
|
43
|
+
|
44
|
+
export const isChannelName = {
|
45
|
+
devtoolsClientSession: (
|
46
|
+
channelName: string,
|
47
|
+
{ storeId, clientId, sessionId }: { storeId: string; clientId: string; sessionId: string },
|
48
|
+
) => channelName === makeChannelName.devtoolsClientSession({ storeId, clientId, sessionId }),
|
49
|
+
devtoolsClientLeader: (channelName: string, { storeId, clientId }: { storeId: string; clientId: string }) =>
|
50
|
+
channelName.startsWith(`devtools-channel(client-leader-${storeId}-${clientId}`),
|
51
|
+
}
|
52
|
+
|
53
|
+
export const makeSessionInfoBroadcastChannel = (
|
54
|
+
webmeshNode: MeshNode,
|
55
|
+
): Effect.Effect<WebChannel.WebChannel<SessionInfo.Message, SessionInfo.Message>, never, Scope.Scope> =>
|
56
|
+
webmeshNode.makeBroadcastChannel({
|
57
|
+
channelName: makeChannelName.sessionInfo(),
|
58
|
+
schema: SessionInfo.Message,
|
59
|
+
})
|
package/src/index.ts
CHANGED
@@ -15,38 +15,56 @@ export const bootDevtools = (options: DevtoolsOptions) =>
|
|
15
15
|
return
|
16
16
|
}
|
17
17
|
|
18
|
-
const { syncProcessor, extraIncomingMessagesQueue } = yield* LeaderThreadCtx
|
18
|
+
const { syncProcessor, extraIncomingMessagesQueue, clientId, storeId } = yield* LeaderThreadCtx
|
19
19
|
|
20
20
|
yield* listenToDevtools({
|
21
21
|
incomingMessages: Stream.fromQueue(extraIncomingMessagesQueue),
|
22
22
|
sendMessage: () => Effect.void,
|
23
23
|
}).pipe(Effect.tapCauseLogPretty, Effect.forkScoped)
|
24
24
|
|
25
|
-
const { persistenceInfo,
|
25
|
+
const { node, persistenceInfo, mode } = yield* options.boot
|
26
26
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
27
|
+
yield* node.listenForChannel.pipe(
|
28
|
+
Stream.filter(
|
29
|
+
(res) =>
|
30
|
+
Devtools.isChannelName.devtoolsClientLeader(res.channelName, { storeId, clientId }) && res.mode === mode,
|
31
|
+
),
|
32
|
+
Stream.tap(({ channelName, source }) =>
|
33
|
+
Effect.gen(function* () {
|
34
|
+
const channel = yield* node.makeChannel({
|
35
|
+
target: source,
|
36
|
+
channelName,
|
37
|
+
schema: { listen: Devtools.Leader.MessageToApp, send: Devtools.Leader.MessageFromApp },
|
38
|
+
mode,
|
39
|
+
})
|
40
|
+
|
41
|
+
const sendMessage: SendMessageToDevtools = (message) =>
|
42
|
+
channel
|
43
|
+
.send(message)
|
44
|
+
.pipe(
|
45
|
+
Effect.withSpan('@livestore/common:leader-thread:devtools:sendToDevtools'),
|
46
|
+
Effect.interruptible,
|
47
|
+
Effect.ignoreLogged,
|
48
|
+
)
|
38
49
|
|
39
|
-
|
40
|
-
|
50
|
+
const syncState = yield* syncProcessor.syncState
|
51
|
+
const mergeCounter = syncProcessor.getMergeCounter()
|
52
|
+
|
53
|
+
yield* syncProcessor.pull({ cursor: { mergeCounter, eventId: syncState.localHead } }).pipe(
|
54
|
+
Stream.tap(({ payload }) => sendMessage(Devtools.Leader.SyncPull.make({ payload, liveStoreVersion }))),
|
55
|
+
Stream.runDrain,
|
56
|
+
Effect.forkScoped,
|
57
|
+
)
|
58
|
+
|
59
|
+
yield* listenToDevtools({
|
60
|
+
incomingMessages: channel.listen.pipe(Stream.flatten(), Stream.orDie),
|
61
|
+
sendMessage,
|
62
|
+
persistenceInfo,
|
63
|
+
})
|
64
|
+
}).pipe(Effect.tapCauseLogPretty, Effect.forkScoped),
|
65
|
+
),
|
41
66
|
Stream.runDrain,
|
42
|
-
Effect.forkScoped,
|
43
67
|
)
|
44
|
-
|
45
|
-
yield* listenToDevtools({
|
46
|
-
incomingMessages: devtoolsWebChannel.listen.pipe(Stream.flatten(), Stream.orDie),
|
47
|
-
sendMessage,
|
48
|
-
persistenceInfo,
|
49
|
-
}).pipe(Effect.tapCauseLogPretty, Effect.forkScoped)
|
50
68
|
}).pipe(Effect.withSpan('@livestore/common:leader-thread:devtools:boot'))
|
51
69
|
|
52
70
|
const listenToDevtools = ({
|
@@ -8,9 +8,9 @@ import type {
|
|
8
8
|
Stream,
|
9
9
|
Subscribable,
|
10
10
|
SubscriptionRef,
|
11
|
-
WebChannel,
|
12
11
|
} from '@livestore/utils/effect'
|
13
12
|
import { Context, Schema } from '@livestore/utils/effect'
|
13
|
+
import type { MeshNode } from '@livestore/webmesh'
|
14
14
|
|
15
15
|
import type { LeaderPullCursor, SqliteError } from '../adapter-types.js'
|
16
16
|
import type {
|
@@ -60,13 +60,14 @@ export type DevtoolsOptions =
|
|
60
60
|
}
|
61
61
|
| {
|
62
62
|
enabled: true
|
63
|
-
|
63
|
+
boot: Effect.Effect<
|
64
64
|
{
|
65
|
-
|
65
|
+
node: MeshNode
|
66
66
|
persistenceInfo: PersistenceInfoPair
|
67
|
+
mode: 'proxy' | 'direct'
|
67
68
|
},
|
68
69
|
UnexpectedError,
|
69
|
-
Scope.Scope
|
70
|
+
Scope.Scope | HttpClient.HttpClient | LeaderThreadCtx
|
70
71
|
>
|
71
72
|
}
|
72
73
|
|
@@ -0,0 +1,119 @@
|
|
1
|
+
import type { Scope, SubscriptionRef } from '@livestore/utils/effect'
|
2
|
+
import { Effect, Stream } from '@livestore/utils/effect'
|
3
|
+
import * as Webmesh from '@livestore/webmesh'
|
4
|
+
|
5
|
+
import type {
|
6
|
+
AdapterArgs,
|
7
|
+
ClientSession,
|
8
|
+
ClientSessionLeaderThreadProxy,
|
9
|
+
LockStatus,
|
10
|
+
SqliteDb,
|
11
|
+
UnexpectedError,
|
12
|
+
} from './adapter-types.js'
|
13
|
+
import * as Devtools from './devtools/mod.js'
|
14
|
+
|
15
|
+
declare global {
|
16
|
+
// eslint-disable-next-line no-var
|
17
|
+
var __debugWebmeshNode: any
|
18
|
+
}
|
19
|
+
|
20
|
+
export const makeClientSession = <R>({
|
21
|
+
storeId,
|
22
|
+
clientId,
|
23
|
+
sessionId,
|
24
|
+
devtoolsEnabled,
|
25
|
+
connectDevtoolsToStore,
|
26
|
+
lockStatus,
|
27
|
+
leaderThread,
|
28
|
+
schema,
|
29
|
+
sqliteDb,
|
30
|
+
shutdown,
|
31
|
+
connectWebmeshNode,
|
32
|
+
webmeshMode,
|
33
|
+
}: AdapterArgs & {
|
34
|
+
clientId: string
|
35
|
+
sessionId: string
|
36
|
+
lockStatus: SubscriptionRef.SubscriptionRef<LockStatus>
|
37
|
+
leaderThread: ClientSessionLeaderThreadProxy
|
38
|
+
sqliteDb: SqliteDb
|
39
|
+
connectWebmeshNode: (args: {
|
40
|
+
webmeshNode: Webmesh.MeshNode
|
41
|
+
sessionInfo: Devtools.SessionInfo.SessionInfo
|
42
|
+
}) => Effect.Effect<void, UnexpectedError, Scope.Scope | R>
|
43
|
+
webmeshMode: 'direct' | 'proxy'
|
44
|
+
}): Effect.Effect<ClientSession, never, Scope.Scope | R> =>
|
45
|
+
Effect.gen(function* () {
|
46
|
+
const devtools: ClientSession['devtools'] = devtoolsEnabled
|
47
|
+
? { enabled: true, pullLatch: yield* Effect.makeLatch(true), pushLatch: yield* Effect.makeLatch(true) }
|
48
|
+
: { enabled: false }
|
49
|
+
|
50
|
+
if (devtoolsEnabled) {
|
51
|
+
yield* Effect.gen(function* () {
|
52
|
+
const webmeshNode = yield* Webmesh.makeMeshNode(
|
53
|
+
Devtools.makeNodeName.client.session({ storeId, clientId, sessionId }),
|
54
|
+
)
|
55
|
+
|
56
|
+
globalThis.__debugWebmeshNode = webmeshNode
|
57
|
+
|
58
|
+
const schemaAlias = schema.devtools.alias
|
59
|
+
const sessionInfo = Devtools.SessionInfo.SessionInfo.make({
|
60
|
+
storeId,
|
61
|
+
clientId,
|
62
|
+
sessionId,
|
63
|
+
schemaAlias,
|
64
|
+
isLeader: true, // TODO actually check if we are leader
|
65
|
+
})
|
66
|
+
|
67
|
+
yield* connectWebmeshNode({ webmeshNode, sessionInfo })
|
68
|
+
|
69
|
+
const sessionInfoBroadcastChannel = yield* Devtools.makeSessionInfoBroadcastChannel(webmeshNode)
|
70
|
+
|
71
|
+
yield* Devtools.SessionInfo.provideSessionInfo({
|
72
|
+
webChannel: sessionInfoBroadcastChannel,
|
73
|
+
sessionInfo,
|
74
|
+
}).pipe(Effect.tapCauseLogPretty, Effect.forkScoped)
|
75
|
+
|
76
|
+
yield* webmeshNode.listenForChannel.pipe(
|
77
|
+
Stream.filter(
|
78
|
+
(res) =>
|
79
|
+
Devtools.isChannelName.devtoolsClientSession(res.channelName, { storeId, clientId, sessionId }) &&
|
80
|
+
res.mode === webmeshMode,
|
81
|
+
),
|
82
|
+
Stream.tap(
|
83
|
+
Effect.fnUntraced(
|
84
|
+
function* ({ channelName, source }) {
|
85
|
+
const clientSessionDevtoolsChannel = yield* webmeshNode.makeChannel({
|
86
|
+
target: source,
|
87
|
+
channelName,
|
88
|
+
schema: {
|
89
|
+
listen: Devtools.ClientSession.MessageToApp,
|
90
|
+
send: Devtools.ClientSession.MessageFromApp,
|
91
|
+
},
|
92
|
+
mode: webmeshMode,
|
93
|
+
})
|
94
|
+
|
95
|
+
yield* connectDevtoolsToStore(clientSessionDevtoolsChannel)
|
96
|
+
},
|
97
|
+
Effect.tapCauseLogPretty,
|
98
|
+
Effect.forkScoped,
|
99
|
+
),
|
100
|
+
),
|
101
|
+
Stream.runDrain,
|
102
|
+
)
|
103
|
+
}).pipe(
|
104
|
+
Effect.withSpan('@livestore/common:make-client-session:devtools'),
|
105
|
+
Effect.tapCauseLogPretty,
|
106
|
+
Effect.forkScoped,
|
107
|
+
)
|
108
|
+
}
|
109
|
+
|
110
|
+
return {
|
111
|
+
sqliteDb,
|
112
|
+
leaderThread,
|
113
|
+
devtools,
|
114
|
+
lockStatus,
|
115
|
+
clientId,
|
116
|
+
sessionId,
|
117
|
+
shutdown,
|
118
|
+
} satisfies ClientSession
|
119
|
+
})
|
@@ -36,7 +36,8 @@ export const getExecArgsFromEvent = ({
|
|
36
36
|
bindValues: PreparedBindValues
|
37
37
|
writeTables: ReadonlySet<string> | undefined
|
38
38
|
}> => {
|
39
|
-
const eventArgsDecoded =
|
39
|
+
const eventArgsDecoded =
|
40
|
+
event.decoded === undefined ? Schema.decodeUnknownSync(eventDef.schema)(event.encoded!.args) : event.decoded.args
|
40
41
|
|
41
42
|
const query: MaterializerContextQuery = (
|
42
43
|
rawQueryOrQueryBuilder:
|
package/src/version.ts
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
// import packageJson from '../package.json' with { type: 'json' }
|
3
3
|
// export const liveStoreVersion = packageJson.version
|
4
4
|
|
5
|
-
export const liveStoreVersion = '0.3.0-dev.
|
5
|
+
export const liveStoreVersion = '0.3.0-dev.38' as const
|
6
6
|
|
7
7
|
/**
|
8
8
|
* This version number is incremented whenever the internal storage format changes in a breaking way.
|
@@ -1,77 +0,0 @@
|
|
1
|
-
import type { SqliteDsl } from '@livestore/db-schema';
|
2
|
-
import type { GetValForKey } from '@livestore/utils';
|
3
|
-
import type { MutationEvent } from './schema/mutations.js';
|
4
|
-
import type * as DbSchema from './schema/table-def.js';
|
5
|
-
export declare const makeDerivedMutationDefsForTable: <TTableDef extends DbSchema.TableDefBase<DbSchema.DefaultSqliteTableDefConstrained, DbSchema.TableOptions & {
|
6
|
-
deriveMutations: {
|
7
|
-
enabled: true;
|
8
|
-
};
|
9
|
-
}>>(table: TTableDef) => {
|
10
|
-
insert: import("./schema/mutations.js").MutationDef<`_Derived_Create_${any}`, {
|
11
|
-
readonly [x: string]: any;
|
12
|
-
} & {
|
13
|
-
readonly [x: string]: any;
|
14
|
-
}, any>;
|
15
|
-
update: import("./schema/mutations.js").MutationDef<`_Derived_Update_${any}`, {
|
16
|
-
readonly values: {};
|
17
|
-
readonly where: {};
|
18
|
-
}, {
|
19
|
-
readonly values: {};
|
20
|
-
readonly where: {};
|
21
|
-
}>;
|
22
|
-
delete: import("./schema/mutations.js").MutationDef<`_Derived_Delete_${any}`, {
|
23
|
-
readonly where: {};
|
24
|
-
}, {
|
25
|
-
readonly where: {};
|
26
|
-
}>;
|
27
|
-
};
|
28
|
-
export declare const deriveCreateMutationDef: <TTableDef extends DbSchema.TableDefBase<DbSchema.DefaultSqliteTableDefConstrained, DbSchema.TableOptions & {
|
29
|
-
deriveMutations: {
|
30
|
-
enabled: true;
|
31
|
-
};
|
32
|
-
}>>(table: TTableDef) => import("./schema/mutations.js").MutationDef<`_Derived_Create_${any}`, {
|
33
|
-
readonly [x: string]: any;
|
34
|
-
} & {
|
35
|
-
readonly [x: string]: any;
|
36
|
-
}, any>;
|
37
|
-
export declare const deriveUpdateMutationDef: <TTableDef extends DbSchema.TableDefBase<DbSchema.DefaultSqliteTableDefConstrained, DbSchema.TableOptions & {
|
38
|
-
deriveMutations: {
|
39
|
-
enabled: true;
|
40
|
-
};
|
41
|
-
}>>(table: TTableDef) => import("./schema/mutations.js").MutationDef<`_Derived_Update_${any}`, {
|
42
|
-
readonly values: {};
|
43
|
-
readonly where: {};
|
44
|
-
}, {
|
45
|
-
readonly values: {};
|
46
|
-
readonly where: {};
|
47
|
-
}>;
|
48
|
-
export declare const deriveDeleteMutationDef: <TTableDef extends DbSchema.TableDefBase<DbSchema.DefaultSqliteTableDefConstrained, DbSchema.TableOptions & {
|
49
|
-
deriveMutations: {
|
50
|
-
enabled: true;
|
51
|
-
};
|
52
|
-
}>>(table: TTableDef) => import("./schema/mutations.js").MutationDef<`_Derived_Delete_${any}`, {
|
53
|
-
readonly where: {};
|
54
|
-
}, {
|
55
|
-
readonly where: {};
|
56
|
-
}>;
|
57
|
-
/**
|
58
|
-
* Convenience helper functions on top of the derived mutation definitions.
|
59
|
-
*/
|
60
|
-
export type DerivedMutationHelperFns<TColumns extends SqliteDsl.ConstraintColumns, TOptions extends DbSchema.TableOptions> = {
|
61
|
-
insert: DerivedMutationHelperFns.InsertMutationFn<TColumns, TOptions>;
|
62
|
-
update: DerivedMutationHelperFns.UpdateMutationFn<TColumns, TOptions>;
|
63
|
-
delete: DerivedMutationHelperFns.DeleteMutationFn<TColumns, TOptions>;
|
64
|
-
};
|
65
|
-
export declare namespace DerivedMutationHelperFns {
|
66
|
-
export type InsertMutationFn<TColumns extends SqliteDsl.ConstraintColumns, TOptions extends DbSchema.TableOptions> = SqliteDsl.AnyIfConstained<TColumns, UseShortcut<TOptions> extends true ? (values?: GetValForKey<SqliteDsl.FromColumns.InsertRowDecoded<TColumns>, 'value'>) => MutationEvent.PartialAny : (values: SqliteDsl.FromColumns.InsertRowDecoded<TColumns>) => MutationEvent.PartialAny>;
|
67
|
-
export type UpdateMutationFn<TColumns extends SqliteDsl.ConstraintColumns, TOptions extends DbSchema.TableOptions> = SqliteDsl.AnyIfConstained<TColumns, UseShortcut<TOptions> extends true ? (values: Partial<GetValForKey<SqliteDsl.FromColumns.RowDecoded<TColumns>, 'value'>>) => MutationEvent.PartialAny : (args: {
|
68
|
-
where: Partial<SqliteDsl.FromColumns.RowDecoded<TColumns>>;
|
69
|
-
values: Partial<SqliteDsl.FromColumns.RowDecoded<TColumns>>;
|
70
|
-
}) => MutationEvent.PartialAny>;
|
71
|
-
export type DeleteMutationFn<TColumns extends SqliteDsl.ConstraintColumns, _TOptions extends DbSchema.TableOptions> = (args: {
|
72
|
-
where: Partial<SqliteDsl.FromColumns.RowDecoded<TColumns>>;
|
73
|
-
}) => MutationEvent.PartialAny;
|
74
|
-
type UseShortcut<TOptions extends DbSchema.TableOptions> = TOptions['isSingleColumn'] extends true ? TOptions['isSingleton'] extends true ? true : false : false;
|
75
|
-
export {};
|
76
|
-
}
|
77
|
-
//# sourceMappingURL=derived-mutations.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"derived-mutations.d.ts","sourceRoot":"","sources":["../src/derived-mutations.ts"],"names":[],"mappings":"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"}
|
@@ -1,54 +0,0 @@
|
|
1
|
-
import { ReadonlyRecord, Schema } from '@livestore/utils/effect';
|
2
|
-
import { defineMutation } from './schema/mutations.js';
|
3
|
-
import { getDefaultValuesDecoded } from './schema/schema-helpers.js';
|
4
|
-
import { deleteRows, insertRow, updateRows } from './sql-queries/sql-queries.js';
|
5
|
-
export const makeDerivedMutationDefsForTable = (table) => ({
|
6
|
-
insert: deriveCreateMutationDef(table),
|
7
|
-
update: deriveUpdateMutationDef(table),
|
8
|
-
delete: deriveDeleteMutationDef(table),
|
9
|
-
});
|
10
|
-
export const deriveCreateMutationDef = (table) => {
|
11
|
-
const tableName = table.sqliteDef.name;
|
12
|
-
const [optionalFields, requiredColumns] = ReadonlyRecord.partition(table.sqliteDef.columns, (col) => col.nullable === false && col.default._tag === 'None');
|
13
|
-
const insertSchema = Schema.Struct(ReadonlyRecord.map(requiredColumns, (col) => col.schema))
|
14
|
-
.pipe(Schema.extend(Schema.partial(Schema.Struct(ReadonlyRecord.map(optionalFields, (col) => col.schema)))))
|
15
|
-
.annotations({ title: `${tableName}:Insert` });
|
16
|
-
return defineMutation(`_Derived_Create_${tableName}`, insertSchema, ({ id, ...explicitDefaultValues }) => {
|
17
|
-
const defaultValues = getDefaultValuesDecoded(table, explicitDefaultValues);
|
18
|
-
const [sql, bindValues] = insertRow({
|
19
|
-
tableName: table.sqliteDef.name,
|
20
|
-
columns: table.sqliteDef.columns,
|
21
|
-
values: { ...defaultValues, id },
|
22
|
-
});
|
23
|
-
return { sql, bindValues, writeTables: new Set([tableName]) };
|
24
|
-
}, { localOnly: table.options.deriveMutations.localOnly });
|
25
|
-
};
|
26
|
-
export const deriveUpdateMutationDef = (table) => {
|
27
|
-
const tableName = table.sqliteDef.name;
|
28
|
-
return defineMutation(`_Derived_Update_${tableName}`, Schema.Struct({
|
29
|
-
where: Schema.partial(table.schema),
|
30
|
-
values: Schema.partial(table.schema),
|
31
|
-
}).annotations({ title: `${tableName}:Update` }), ({ where, values }) => {
|
32
|
-
const [sql, bindValues] = updateRows({
|
33
|
-
tableName: table.sqliteDef.name,
|
34
|
-
columns: table.sqliteDef.columns,
|
35
|
-
where,
|
36
|
-
updateValues: values,
|
37
|
-
});
|
38
|
-
return { sql, bindValues, writeTables: new Set([tableName]) };
|
39
|
-
}, { localOnly: table.options.deriveMutations.localOnly });
|
40
|
-
};
|
41
|
-
export const deriveDeleteMutationDef = (table) => {
|
42
|
-
const tableName = table.sqliteDef.name;
|
43
|
-
return defineMutation(`_Derived_Delete_${tableName}`, Schema.Struct({
|
44
|
-
where: Schema.partial(table.schema),
|
45
|
-
}), ({ where }) => {
|
46
|
-
const [sql, bindValues] = deleteRows({
|
47
|
-
tableName: table.sqliteDef.name,
|
48
|
-
columns: table.sqliteDef.columns,
|
49
|
-
where,
|
50
|
-
});
|
51
|
-
return { sql, bindValues, writeTables: new Set([tableName]) };
|
52
|
-
}, { localOnly: table.options.deriveMutations.localOnly });
|
53
|
-
};
|
54
|
-
//# sourceMappingURL=derived-mutations.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"derived-mutations.js","sourceRoot":"","sources":["../src/derived-mutations.ts"],"names":[],"mappings":"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"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"derived-mutations.test.d.ts","sourceRoot":"","sources":["../src/derived-mutations.test.ts"],"names":[],"mappings":""}
|