@livestore/adapter-node 0.4.0-dev.2 → 0.4.0-dev.20
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/client-session/adapter.d.ts +13 -1
- package/dist/client-session/adapter.d.ts.map +1 -1
- package/dist/client-session/adapter.js +68 -32
- package/dist/client-session/adapter.js.map +1 -1
- package/dist/devtools/vite-dev-server.d.ts +2 -2
- package/dist/devtools/vite-dev-server.d.ts.map +1 -1
- package/dist/devtools/vite-dev-server.js +3 -3
- package/dist/devtools/vite-dev-server.js.map +1 -1
- package/dist/leader-thread-shared.d.ts +5 -4
- package/dist/leader-thread-shared.d.ts.map +1 -1
- package/dist/leader-thread-shared.js +6 -4
- package/dist/leader-thread-shared.js.map +1 -1
- package/dist/make-leader-worker.d.ts +5 -2
- package/dist/make-leader-worker.d.ts.map +1 -1
- package/dist/make-leader-worker.js +32 -14
- package/dist/make-leader-worker.js.map +1 -1
- package/dist/worker-schema.d.ts +94 -43
- package/dist/worker-schema.d.ts.map +1 -1
- package/dist/worker-schema.js +37 -18
- package/dist/worker-schema.js.map +1 -1
- package/package.json +8 -8
- package/src/client-session/adapter.ts +116 -40
- package/src/devtools/vite-dev-server.ts +4 -6
- package/src/leader-thread-shared.ts +13 -9
- package/src/make-leader-worker.ts +43 -36
- package/src/worker-schema.ts +57 -18
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type Adapter, type SyncOptions } from '@livestore/common';
|
|
2
|
+
import { Schema } from '@livestore/utils/effect';
|
|
2
3
|
import type { TestingOverrides } from '../leader-thread-shared.ts';
|
|
3
4
|
import * as WorkerSchema from '../worker-schema.ts';
|
|
4
5
|
export interface NodeAdapterOptions {
|
|
@@ -10,6 +11,12 @@ export interface NodeAdapterOptions {
|
|
|
10
11
|
* @default 'static'
|
|
11
12
|
*/
|
|
12
13
|
sessionId?: string;
|
|
14
|
+
/**
|
|
15
|
+
* Warning: This will reset both the app and eventlog database. This should only be used during development.
|
|
16
|
+
*
|
|
17
|
+
* @default false
|
|
18
|
+
*/
|
|
19
|
+
resetPersistence?: boolean;
|
|
13
20
|
devtools?: {
|
|
14
21
|
schemaPath: string | URL;
|
|
15
22
|
/**
|
|
@@ -41,10 +48,15 @@ export declare const makeAdapter: ({ sync, ...options }: NodeAdapterOptions & {
|
|
|
41
48
|
/**
|
|
42
49
|
* Runs persistence and syncing in a worker thread.
|
|
43
50
|
*/
|
|
44
|
-
export declare const makeWorkerAdapter: ({ workerUrl, ...options }: NodeAdapterOptions & {
|
|
51
|
+
export declare const makeWorkerAdapter: ({ workerUrl, workerExtraArgs, ...options }: NodeAdapterOptions & {
|
|
45
52
|
/**
|
|
46
53
|
* Example: `new URL('./livestore.worker.ts', import.meta.url)`
|
|
47
54
|
*/
|
|
48
55
|
workerUrl: URL;
|
|
56
|
+
/**
|
|
57
|
+
* Extra arguments to pass to the worker which can be accessed in the worker
|
|
58
|
+
* via `getWorkerArgs()`
|
|
59
|
+
*/
|
|
60
|
+
workerExtraArgs?: Schema.JsonValue;
|
|
49
61
|
}) => Adapter;
|
|
50
62
|
//# sourceMappingURL=adapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/client-session/adapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/client-session/adapter.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,OAAO,EAQZ,KAAK,WAAW,EAEjB,MAAM,mBAAmB,CAAA;AAO1B,OAAO,EAWL,MAAM,EAMP,MAAM,yBAAyB,CAAA;AAIhC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAGlE,OAAO,KAAK,YAAY,MAAM,qBAAqB,CAAA;AAEnD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,YAAY,CAAC,WAAW,CAAA;IACjC,yDAAyD;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAE1B,QAAQ,CAAC,EAAE;QACT,UAAU,EAAE,MAAM,GAAG,GAAG,CAAA;QACxB;;;;WAIG;QACH,IAAI,CAAC,EAAE,MAAM,CAAA;QACb;;WAEG;QACH,IAAI,CAAC,EAAE,MAAM,CAAA;QACb;;;;WAIG;QACH,yBAAyB,CAAC,EAAE,OAAO,CAAA;KACpC,CAAA;IAED,uCAAuC;IACvC,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,gBAAgB,CAAA;KAC7B,CAAA;CACF;AAED,qGAAqG;AACrG,eAAO,MAAM,WAAW,GAAI,sBAGzB,kBAAkB,GAAG;IACtB,IAAI,CAAC,EAAE,WAAW,CAAA;CACnB,KAAG,OAA2F,CAAA;AAE/F;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,4CAI/B,kBAAkB,GAAG;IACtB;;OAEG;IACH,SAAS,EAAE,GAAG,CAAA;IACd;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC,SAAS,CAAA;CACnC,KAAG,OAAgH,CAAA"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { hostname } from 'node:os';
|
|
2
|
+
import path from 'node:path';
|
|
2
3
|
import * as WT from 'node:worker_threads';
|
|
3
|
-
import { ClientSessionLeaderThreadProxy, makeClientSession,
|
|
4
|
+
import { ClientSessionLeaderThreadProxy, IntentionalShutdownCause, makeClientSession, UnknownError, } from '@livestore/common';
|
|
4
5
|
import { Eventlog, LeaderThreadCtx } from '@livestore/common/leader-thread';
|
|
5
6
|
import { LiveStoreEvent } from '@livestore/common/schema';
|
|
6
7
|
import { loadSqlite3Wasm } from '@livestore/sqlite-wasm/load-wasm';
|
|
7
8
|
import { sqliteDbFactory } from '@livestore/sqlite-wasm/node';
|
|
8
|
-
import {
|
|
9
|
+
import { omitUndefineds } from '@livestore/utils';
|
|
10
|
+
import { Cause, Effect, Exit, FetchHttpClient, Fiber, FileSystem, Layer, ParseResult, Queue, Schedule, Schema, Stream, Subscribable, SubscriptionRef, Worker, WorkerError, } from '@livestore/utils/effect';
|
|
9
11
|
import { PlatformNode } from '@livestore/utils/node';
|
|
10
12
|
import * as Webmesh from '@livestore/webmesh';
|
|
11
13
|
import { makeLeaderThread } from "../leader-thread-shared.js";
|
|
@@ -16,11 +18,11 @@ export const makeAdapter = ({ sync, ...options }) => makeAdapterImpl({ ...option
|
|
|
16
18
|
/**
|
|
17
19
|
* Runs persistence and syncing in a worker thread.
|
|
18
20
|
*/
|
|
19
|
-
export const makeWorkerAdapter = ({ workerUrl, ...options }) => makeAdapterImpl({ ...options, leaderThread: { _tag: 'multi-threaded', workerUrl } });
|
|
21
|
+
export const makeWorkerAdapter = ({ workerUrl, workerExtraArgs, ...options }) => makeAdapterImpl({ ...options, leaderThread: { _tag: 'multi-threaded', workerUrl, workerExtraArgs } });
|
|
20
22
|
const makeAdapterImpl = ({ storage, devtools: devtoolsOptionsInput, clientId = hostname(),
|
|
21
23
|
// TODO make this dynamic and actually support multiple sessions
|
|
22
|
-
sessionId = 'static', testing, leaderThread: leaderThreadInput, }) => ((adapterArgs) => Effect.gen(function* () {
|
|
23
|
-
const { storeId, devtoolsEnabled, shutdown, bootStatusQueue,
|
|
24
|
+
sessionId = 'static', testing, resetPersistence = false, leaderThread: leaderThreadInput, }) => ((adapterArgs) => Effect.gen(function* () {
|
|
25
|
+
const { storeId, devtoolsEnabled, shutdown, bootStatusQueue, syncPayloadEncoded, syncPayloadSchema, schema } = adapterArgs;
|
|
24
26
|
yield* Queue.offer(bootStatusQueue, { stage: 'loading' });
|
|
25
27
|
const sqlite3 = yield* Effect.promise(() => loadSqlite3Wasm());
|
|
26
28
|
const makeSqliteDb = yield* sqliteDbFactory({ sqlite3 });
|
|
@@ -32,6 +34,12 @@ sessionId = 'static', testing, leaderThread: leaderThreadInput, }) => ((adapterA
|
|
|
32
34
|
// yield* Effect.logWarning('Failed to load database file', fileData.left)
|
|
33
35
|
// }
|
|
34
36
|
const shutdownChannel = yield* makeShutdownChannel(storeId);
|
|
37
|
+
if (resetPersistence === true) {
|
|
38
|
+
yield* shutdownChannel
|
|
39
|
+
.send(IntentionalShutdownCause.make({ reason: 'adapter-reset' }))
|
|
40
|
+
.pipe(UnknownError.mapToUnknownError);
|
|
41
|
+
yield* resetNodePersistence({ storage, storeId });
|
|
42
|
+
}
|
|
35
43
|
yield* shutdownChannel.listen.pipe(Stream.flatten(), Stream.tap((cause) => shutdown(cause._tag === 'LiveStore.IntentionalShutdownCause' ? Exit.succeed(cause) : Exit.fail(cause))), Stream.runDrain, Effect.interruptible, Effect.tapCauseLogPretty, Effect.forkScoped);
|
|
36
44
|
const syncInMemoryDb = yield* makeSqliteDb({ _tag: 'in-memory' }).pipe(Effect.orDie);
|
|
37
45
|
// TODO actually implement this multi-session support
|
|
@@ -54,22 +62,26 @@ sessionId = 'static', testing, leaderThread: leaderThreadInput, }) => ((adapterA
|
|
|
54
62
|
clientId,
|
|
55
63
|
schema,
|
|
56
64
|
makeSqliteDb,
|
|
57
|
-
syncOptions: leaderThreadInput.sync,
|
|
58
|
-
syncPayload,
|
|
59
65
|
devtools: devtoolsOptions,
|
|
60
66
|
storage,
|
|
61
|
-
|
|
62
|
-
|
|
67
|
+
...omitUndefineds({
|
|
68
|
+
syncOptions: leaderThreadInput.sync,
|
|
69
|
+
syncPayloadEncoded,
|
|
70
|
+
syncPayloadSchema,
|
|
71
|
+
testing,
|
|
72
|
+
}),
|
|
73
|
+
}).pipe(UnknownError.mapToUnknownError)
|
|
63
74
|
: yield* makeWorkerLeaderThread({
|
|
64
75
|
shutdown,
|
|
65
76
|
storeId,
|
|
66
77
|
clientId,
|
|
67
78
|
sessionId,
|
|
68
79
|
workerUrl: leaderThreadInput.workerUrl,
|
|
80
|
+
workerExtraArgs: leaderThreadInput.workerExtraArgs,
|
|
69
81
|
storage,
|
|
70
82
|
devtools: devtoolsOptions,
|
|
71
83
|
bootStatusQueue,
|
|
72
|
-
|
|
84
|
+
syncPayloadEncoded,
|
|
73
85
|
});
|
|
74
86
|
syncInMemoryDb.import(initialSnapshot);
|
|
75
87
|
syncInMemoryDb.debug.head = leaderThread.initialState.leaderHead;
|
|
@@ -93,43 +105,60 @@ sessionId = 'static', testing, leaderThread: leaderThreadInput, }) => ((adapterA
|
|
|
93
105
|
isLeader: true,
|
|
94
106
|
// Not really applicable for node as there is no "reload the app" concept
|
|
95
107
|
registerBeforeUnload: (_onBeforeUnload) => () => { },
|
|
108
|
+
origin: undefined,
|
|
96
109
|
});
|
|
97
110
|
return clientSession;
|
|
98
|
-
}).pipe(Effect.withSpan('@livestore/adapter-node:adapter'), Effect.provide(PlatformNode.NodeFileSystem.layer
|
|
99
|
-
const
|
|
111
|
+
}).pipe(Effect.withSpan('@livestore/adapter-node:adapter'), Effect.provide(Layer.mergeAll(PlatformNode.NodeFileSystem.layer, FetchHttpClient.layer))));
|
|
112
|
+
const resetNodePersistence = ({ storage, storeId, }) => {
|
|
113
|
+
if (storage.type !== 'fs') {
|
|
114
|
+
return Effect.void;
|
|
115
|
+
}
|
|
116
|
+
const directory = path.join(storage.baseDirectory ?? '', storeId);
|
|
117
|
+
return Effect.gen(function* () {
|
|
118
|
+
const fs = yield* FileSystem.FileSystem;
|
|
119
|
+
const directoryExists = yield* fs.exists(directory).pipe(UnknownError.mapToUnknownError);
|
|
120
|
+
if (directoryExists === false) {
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
yield* fs.remove(directory, { recursive: true }).pipe(UnknownError.mapToUnknownError);
|
|
124
|
+
}).pipe(Effect.retry({ schedule: Schedule.exponentialBackoff10Sec }), Effect.withSpan('@livestore/adapter-node:resetPersistence', { attributes: { directory } }));
|
|
125
|
+
};
|
|
126
|
+
const makeLocalLeaderThread = ({ storeId, clientId, schema, makeSqliteDb, syncOptions, syncPayloadEncoded, syncPayloadSchema, storage, devtools, testing, }) => Effect.gen(function* () {
|
|
100
127
|
const layer = yield* Layer.build(makeLeaderThread({
|
|
101
128
|
storeId,
|
|
102
129
|
clientId,
|
|
103
130
|
schema,
|
|
104
131
|
syncOptions,
|
|
105
132
|
storage,
|
|
106
|
-
|
|
133
|
+
syncPayloadEncoded,
|
|
134
|
+
syncPayloadSchema,
|
|
107
135
|
devtools,
|
|
108
136
|
makeSqliteDb,
|
|
109
|
-
testing: testing?.overrides,
|
|
137
|
+
...omitUndefineds({ testing: testing?.overrides }),
|
|
110
138
|
}).pipe(Layer.unwrapScoped));
|
|
111
139
|
return yield* Effect.gen(function* () {
|
|
112
|
-
const { dbState, dbEventlog, syncProcessor, extraIncomingMessagesQueue, initialState } = yield* LeaderThreadCtx;
|
|
140
|
+
const { dbState, dbEventlog, syncProcessor, extraIncomingMessagesQueue, initialState, networkStatus } = yield* LeaderThreadCtx;
|
|
113
141
|
const initialLeaderHead = Eventlog.getClientHeadFromDb(dbEventlog);
|
|
114
142
|
const leaderThread = ClientSessionLeaderThreadProxy.of({
|
|
115
143
|
events: {
|
|
116
144
|
pull: ({ cursor }) => syncProcessor.pull({ cursor }),
|
|
117
|
-
push: (batch) => syncProcessor.push(batch.map((item) => new LiveStoreEvent.EncodedWithMeta(item)), { waitForProcessing: true }),
|
|
145
|
+
push: (batch) => syncProcessor.push(batch.map((item) => new LiveStoreEvent.Client.EncodedWithMeta(item)), { waitForProcessing: true }),
|
|
118
146
|
},
|
|
119
147
|
initialState: { leaderHead: initialLeaderHead, migrationsReport: initialState.migrationsReport },
|
|
120
148
|
export: Effect.sync(() => dbState.export()),
|
|
121
149
|
getEventlogData: Effect.sync(() => dbEventlog.export()),
|
|
122
|
-
|
|
150
|
+
syncState: syncProcessor.syncState,
|
|
123
151
|
sendDevtoolsMessage: (message) => extraIncomingMessagesQueue.offer(message),
|
|
124
|
-
|
|
152
|
+
networkStatus,
|
|
153
|
+
}, { ...omitUndefineds({ overrides: testing?.overrides?.clientSession?.leaderThreadProxy }) });
|
|
125
154
|
const initialSnapshot = dbState.export();
|
|
126
155
|
return { leaderThread, initialSnapshot };
|
|
127
156
|
}).pipe(Effect.provide(layer));
|
|
128
157
|
});
|
|
129
|
-
const makeWorkerLeaderThread = ({ shutdown, storeId, clientId, sessionId, workerUrl, storage, devtools, bootStatusQueue,
|
|
158
|
+
const makeWorkerLeaderThread = ({ shutdown, storeId, clientId, sessionId, workerUrl, workerExtraArgs, storage, devtools, bootStatusQueue, syncPayloadEncoded, testing, }) => Effect.gen(function* () {
|
|
130
159
|
const nodeWorker = new WT.Worker(workerUrl, {
|
|
131
160
|
execArgv: process.env.DEBUG_WORKER ? ['--inspect --enable-source-maps'] : ['--enable-source-maps'],
|
|
132
|
-
argv: [Schema.encodeSync(WorkerSchema.WorkerArgv)({ storeId, clientId, sessionId })],
|
|
161
|
+
argv: [Schema.encodeSync(WorkerSchema.WorkerArgv)({ storeId, clientId, sessionId, extraArgs: workerExtraArgs })],
|
|
133
162
|
});
|
|
134
163
|
const nodeWorkerLayer = yield* Layer.build(PlatformNode.NodeWorker.layer(() => nodeWorker));
|
|
135
164
|
const worker = yield* Worker.makePoolSerialized({
|
|
@@ -140,26 +169,26 @@ const makeWorkerLeaderThread = ({ shutdown, storeId, clientId, sessionId, worker
|
|
|
140
169
|
clientId,
|
|
141
170
|
storage,
|
|
142
171
|
devtools,
|
|
143
|
-
|
|
172
|
+
syncPayloadEncoded,
|
|
144
173
|
}),
|
|
145
|
-
}).pipe(Effect.provide(nodeWorkerLayer),
|
|
174
|
+
}).pipe(Effect.provide(nodeWorkerLayer), UnknownError.mapToUnknownError, Effect.tapErrorCause((cause) => shutdown(Exit.failCause(cause))), Effect.withSpan('@livestore/adapter-node:adapter:setupLeaderThread'));
|
|
146
175
|
const runInWorker = (req) => worker.executeEffect(req).pipe(Effect.logWarnIfTakesLongerThan({
|
|
147
176
|
label: `@livestore/adapter-node:client-session:runInWorker:${req._tag}`,
|
|
148
177
|
duration: 2000,
|
|
149
|
-
}), Effect.withSpan(`@livestore/adapter-node:client-session:runInWorker:${req._tag}`), Effect.mapError((cause) => Schema.is(
|
|
178
|
+
}), Effect.withSpan(`@livestore/adapter-node:client-session:runInWorker:${req._tag}`), Effect.mapError((cause) => Schema.is(UnknownError)(cause)
|
|
150
179
|
? cause
|
|
151
180
|
: ParseResult.isParseError(cause) || Schema.is(WorkerError.WorkerError)(cause)
|
|
152
|
-
? new
|
|
153
|
-
: cause), Effect.catchAllDefect((cause) => new
|
|
154
|
-
const runInWorkerStream = (req) => worker.execute(req).pipe(Stream.mapError((cause) => Schema.is(
|
|
181
|
+
? new UnknownError({ cause })
|
|
182
|
+
: cause), Effect.catchAllDefect((cause) => new UnknownError({ cause })));
|
|
183
|
+
const runInWorkerStream = (req) => worker.execute(req).pipe(Stream.mapError((cause) => Schema.is(UnknownError)(cause)
|
|
155
184
|
? cause
|
|
156
185
|
: ParseResult.isParseError(cause) || Schema.is(WorkerError.WorkerError)(cause)
|
|
157
|
-
? new
|
|
186
|
+
? new UnknownError({ cause })
|
|
158
187
|
: cause), Stream.withSpan(`@livestore/adapter-node:client-session:runInWorkerStream:${req._tag}`));
|
|
159
188
|
const bootStatusFiber = yield* runInWorkerStream(new WorkerSchema.LeaderWorkerInnerBootStatusStream()).pipe(Stream.tap((bootStatus) => Queue.offer(bootStatusQueue, bootStatus)), Stream.runDrain, Effect.tapErrorCause((cause) => (Cause.isInterruptedOnly(cause) ? Effect.void : shutdown(Exit.failCause(cause)))), Effect.interruptible, Effect.tapCauseLogPretty, Effect.forkScoped);
|
|
160
189
|
yield* Queue.awaitShutdown(bootStatusQueue).pipe(Effect.andThen(Fiber.interrupt(bootStatusFiber)), Effect.tapCauseLogPretty, Effect.forkScoped);
|
|
161
190
|
const initialLeaderHead = yield* runInWorker(new WorkerSchema.LeaderWorkerInnerGetLeaderHead());
|
|
162
|
-
const bootResult = yield* runInWorker(new WorkerSchema.LeaderWorkerInnerGetRecreateSnapshot()).pipe(Effect.timeout(10_000),
|
|
191
|
+
const bootResult = yield* runInWorker(new WorkerSchema.LeaderWorkerInnerGetRecreateSnapshot()).pipe(Effect.timeout(10_000), UnknownError.mapToUnknownError, Effect.withSpan('@livestore/adapter-node:client-session:export'));
|
|
163
192
|
const leaderThread = ClientSessionLeaderThreadProxy.of({
|
|
164
193
|
events: {
|
|
165
194
|
pull: ({ cursor }) => runInWorkerStream(new WorkerSchema.LeaderWorkerInnerPullStream({ cursor })).pipe(Stream.orDie),
|
|
@@ -171,12 +200,19 @@ const makeWorkerLeaderThread = ({ shutdown, storeId, clientId, sessionId, worker
|
|
|
171
200
|
leaderHead: initialLeaderHead,
|
|
172
201
|
migrationsReport: bootResult.migrationsReport,
|
|
173
202
|
},
|
|
174
|
-
export: runInWorker(new WorkerSchema.LeaderWorkerInnerExport()).pipe(Effect.timeout(10_000),
|
|
203
|
+
export: runInWorker(new WorkerSchema.LeaderWorkerInnerExport()).pipe(Effect.timeout(10_000), UnknownError.mapToUnknownError, Effect.withSpan('@livestore/adapter-node:client-session:export')),
|
|
175
204
|
getEventlogData: Effect.dieMessage('Not implemented'),
|
|
176
|
-
|
|
177
|
-
|
|
205
|
+
syncState: Subscribable.make({
|
|
206
|
+
get: runInWorker(new WorkerSchema.LeaderWorkerInnerGetLeaderSyncState()).pipe(UnknownError.mapToUnknownError, Effect.withSpan('@livestore/adapter-node:client-session:getLeaderSyncState')),
|
|
207
|
+
changes: runInWorkerStream(new WorkerSchema.LeaderWorkerInnerSyncStateStream()).pipe(Stream.orDie),
|
|
208
|
+
}),
|
|
209
|
+
sendDevtoolsMessage: (message) => runInWorker(new WorkerSchema.LeaderWorkerInnerExtraDevtoolsMessage({ message })).pipe(UnknownError.mapToUnknownError, Effect.withSpan('@livestore/adapter-node:client-session:devtoolsMessageForLeader')),
|
|
210
|
+
networkStatus: Subscribable.make({
|
|
211
|
+
get: runInWorker(new WorkerSchema.LeaderWorkerInnerGetNetworkStatus()).pipe(Effect.orDie),
|
|
212
|
+
changes: runInWorkerStream(new WorkerSchema.LeaderWorkerInnerNetworkStatusStream()).pipe(Stream.orDie),
|
|
213
|
+
}),
|
|
178
214
|
}, {
|
|
179
|
-
overrides: testing?.overrides?.clientSession?.leaderThreadProxy,
|
|
215
|
+
...omitUndefineds({ overrides: testing?.overrides?.clientSession?.leaderThreadProxy }),
|
|
180
216
|
});
|
|
181
217
|
return { leaderThread, initialSnapshot: bootResult.snapshot };
|
|
182
218
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/client-session/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAClC,OAAO,KAAK,EAAE,MAAM,qBAAqB,CAAA;AACzC,OAAO,EAGL,8BAA8B,EAI9B,iBAAiB,EAGjB,eAAe,GAChB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AAE3E,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAA;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,EACL,KAAK,EACL,MAAM,EACN,IAAI,EACJ,eAAe,EACf,KAAK,EACL,KAAK,EACL,WAAW,EACX,KAAK,EACL,MAAM,EACN,MAAM,EACN,eAAe,EACf,MAAM,EACN,WAAW,GACZ,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAG7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,KAAK,YAAY,MAAM,qBAAqB,CAAA;AAsCnD,qGAAqG;AACrG,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAC1B,IAAI,EACJ,GAAG,OAAO,EAGX,EAAW,EAAE,CAAC,eAAe,CAAC,EAAE,GAAG,OAAO,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;AAE/F;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAChC,SAAS,EACT,GAAG,OAAO,EAMX,EAAW,EAAE,CAAC,eAAe,CAAC,EAAE,GAAG,OAAO,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,EAAE,CAAC,CAAA;AAEnG,MAAM,eAAe,GAAG,CAAC,EACvB,OAAO,EACP,QAAQ,EAAE,oBAAoB,EAC9B,QAAQ,GAAG,QAAQ,EAAE;AACrB,gEAAgE;AAChE,SAAS,GAAG,QAAQ,EACpB,OAAO,EACP,YAAY,EAAE,iBAAiB,GAWhC,EAAW,EAAE,CACZ,CAAC,CAAC,WAAW,EAAE,EAAE,CACf,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,WAAW,CAAA;IAEhG,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;IAEzD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,eAAe,EAAE,CAAC,CAAA;IAC9D,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;IAExD,8DAA8D;IAC9D,sEAAsE;IACtE,mCAAmC;IACnC,0CAA0C;IAC1C,WAAW;IACX,4EAA4E;IAC5E,IAAI;IAEJ,MAAM,eAAe,GAAG,KAAK,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAA;IAE3D,KAAK,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAChC,MAAM,CAAC,OAAO,EAAE,EAChB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACnB,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,oCAAoC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CACvG,EACD,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,aAAa,EACpB,MAAM,CAAC,iBAAiB,EACxB,MAAM,CAAC,UAAU,CAClB,CAAA;IAED,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAEpF,qDAAqD;IACrD,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,eAAe,CAAC,IAAI,CAAa,UAAU,CAAC,CAAA;IAEtE,MAAM,eAAe,GACnB,eAAe,IAAI,oBAAoB,KAAK,SAAS;QACnD,CAAC,CAAC;YACE,OAAO,EAAE,IAAI;YACb,UAAU,EACR,OAAO,oBAAoB,CAAC,UAAU,KAAK,QAAQ;gBACjD,CAAC,CAAC,oBAAoB,CAAC,UAAU;gBACjC,CAAC,CAAC,oBAAoB,CAAC,UAAU,CAAC,QAAQ;YAC9C,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK;YAClC,IAAI,EAAE,oBAAoB,CAAC,IAAI,IAAI,IAAI;YACvC,IAAI,EAAE,oBAAoB,CAAC,IAAI,IAAI,WAAW;YAC9C,yBAAyB,EAAE,oBAAoB,CAAC,yBAAyB,IAAI,KAAK;SACnF;QACH,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;IAExB,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,GACrC,iBAAiB,CAAC,IAAI,KAAK,iBAAiB;QAC1C,CAAC,CAAC,KAAK,CAAC,CAAC,qBAAqB,CAAC;YAC3B,OAAO;YACP,QAAQ;YACR,MAAM;YACN,YAAY;YACZ,WAAW,EAAE,iBAAiB,CAAC,IAAI;YACnC,WAAW;YACX,QAAQ,EAAE,eAAe;YACzB,OAAO;YACP,OAAO;SACR,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,oBAAoB,CAAC;QAC/C,CAAC,CAAC,KAAK,CAAC,CAAC,sBAAsB,CAAC;YAC5B,QAAQ;YACR,OAAO;YACP,QAAQ;YACR,SAAS;YACT,SAAS,EAAE,iBAAiB,CAAC,SAAS;YACtC,OAAO;YACP,QAAQ,EAAE,eAAe;YACzB,eAAe;YACf,WAAW;SACZ,CAAC,CAAA;IAER,cAAc,CAAC,MAAM,CAAC,eAAe,CAAC,CAAA;IACtC,cAAc,CAAC,KAAK,CAAC,IAAI,GAAG,YAAY,CAAC,YAAY,CAAC,UAAU,CAAA;IAEhE,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,iBAAiB,CAAC;QAC7C,GAAG,WAAW;QACd,QAAQ,EAAE,cAAc;QACxB,WAAW,EAAE,OAAO;QACpB,kBAAkB,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAE,WAAW,EAAE;YAC9D,IAAI,eAAe,CAAC,OAAO,EAAE,CAAC;gBAC5B,KAAK,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC;oBACjC,IAAI,EAAE,WAAW;oBACjB,GAAG,EAAE,QAAQ,eAAe,CAAC,IAAI,IAAI,eAAe,CAAC,IAAI,EAAE;oBAC3D,WAAW,EAAE,GAAG;iBACjB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;YACtD,CAAC;QACH,CAAC,CAAC;QACF,YAAY;QACZ,UAAU;QACV,QAAQ;QACR,SAAS;QACT,QAAQ,EAAE,IAAI;QACd,yEAAyE;QACzE,oBAAoB,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,GAAG,EAAE,GAAE,CAAC;KACpD,CAAC,CAAA;IAEF,OAAO,aAAa,CAAA;AACtB,CAAC,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,QAAQ,CAAC,iCAAiC,CAAC,EAClD,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC,EACjD,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CACtC,CAAmB,CAAA;AAExB,MAAM,qBAAqB,GAAG,CAAC,EAC7B,OAAO,EACP,QAAQ,EACR,MAAM,EACN,YAAY,EACZ,WAAW,EACX,WAAW,EACX,OAAO,EACP,QAAQ,EACR,OAAO,GAaR,EAAE,EAAE,CACH,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAC9B,gBAAgB,CAAC;QACf,OAAO;QACP,QAAQ;QACR,MAAM;QACN,WAAW;QACX,OAAO;QACP,WAAW;QACX,QAAQ;QACR,YAAY;QACZ,OAAO,EAAE,OAAO,EAAE,SAAS;KAC5B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAC5B,CAAA;IAED,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAChC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,0BAA0B,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC,CAAC,eAAe,CAAA;QAE/G,MAAM,iBAAiB,GAAG,QAAQ,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAA;QAElE,MAAM,YAAY,GAAG,8BAA8B,CAAC,EAAE,CACpD;YACE,MAAM,EAAE;gBACN,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;gBACpD,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CACd,aAAa,CAAC,IAAI,CAChB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,EAC7D,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAC5B;aACJ;YACD,YAAY,EAAE,EAAE,UAAU,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,YAAY,CAAC,gBAAgB,EAAE;YAChG,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAC3C,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YACvD,YAAY,EAAE,aAAa,CAAC,SAAS;YACrC,mBAAmB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,0BAA0B,CAAC,KAAK,CAAC,OAAO,CAAC;SAC5E,EACD,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,iBAAiB,EAAE,CACpE,CAAA;QAED,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,EAAE,CAAA;QAExC,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,CAAA;IAC1C,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;AAChC,CAAC,CAAC,CAAA;AAEJ,MAAM,sBAAsB,GAAG,CAAC,EAC9B,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,SAAS,EACT,SAAS,EACT,OAAO,EACP,QAAQ,EACR,eAAe,EACf,WAAW,EACX,OAAO,GAcR,EAAE,EAAE,CACH,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,UAAU,GAAG,IAAI,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE;QAC1C,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC;QAClG,IAAI,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;KACrF,CAAC,CAAA;IACF,MAAM,eAAe,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAA;IAE3F,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAoD;QACjG,IAAI,EAAE,CAAC;QACP,WAAW,EAAE,GAAG;QAChB,cAAc,EAAE,GAAG,EAAE,CACnB,IAAI,YAAY,CAAC,+BAA+B,CAAC;YAC/C,OAAO;YACP,QAAQ;YACR,OAAO;YACP,QAAQ;YACR,WAAW;SACZ,CAAC;KACL,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,EAC/B,eAAe,CAAC,oBAAoB,EACpC,MAAM,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAChE,MAAM,CAAC,QAAQ,CAAC,mDAAmD,CAAC,CACrE,CAAA;IAED,MAAM,WAAW,GAAG,CAClB,GAAS,EAGD,EAAE,CACT,MAAM,CAAC,aAAa,CAAC,GAAG,CAAS,CAAC,IAAI,CACrC,MAAM,CAAC,wBAAwB,CAAC;QAC9B,KAAK,EAAE,sDAAsD,GAAG,CAAC,IAAI,EAAE;QACvE,QAAQ,EAAE,IAAI;KACf,CAAC,EACF,MAAM,CAAC,QAAQ,CAAC,sDAAsD,GAAG,CAAC,IAAI,EAAE,CAAC,EACjF,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,MAAM,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC;QAC/B,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC;YAC5E,CAAC,CAAC,IAAI,eAAe,CAAC,EAAE,KAAK,EAAE,CAAC;YAChC,CAAC,CAAC,KAAK,CACZ,EACD,MAAM,CAAC,cAAc,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,eAAe,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAC1D,CAAA;IAEV,MAAM,iBAAiB,GAAG,CACxB,GAAS,EAGD,EAAE,CACV,MAAM,CAAC,OAAO,CAAC,GAAU,CAAC,CAAC,IAAI,CAC7B,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,MAAM,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC;QAC/B,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC;YAC5E,CAAC,CAAC,IAAI,eAAe,CAAC,EAAE,KAAK,EAAE,CAAC;YAChC,CAAC,CAAC,KAAK,CACZ,EACD,MAAM,CAAC,QAAQ,CAAC,4DAA4D,GAAG,CAAC,IAAI,EAAE,CAAC,CACjF,CAAA;IAEV,MAAM,eAAe,GAAG,KAAK,CAAC,CAAC,iBAAiB,CAAC,IAAI,YAAY,CAAC,iCAAiC,EAAE,CAAC,CAAC,IAAI,CACzG,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC,EACpE,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EACjH,MAAM,CAAC,aAAa,EACpB,MAAM,CAAC,iBAAiB,EACxB,MAAM,CAAC,UAAU,CAClB,CAAA;IAED,KAAK,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,IAAI,CAC9C,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,EAChD,MAAM,CAAC,iBAAiB,EACxB,MAAM,CAAC,UAAU,CAClB,CAAA;IAED,MAAM,iBAAiB,GAAG,KAAK,CAAC,CAAC,WAAW,CAAC,IAAI,YAAY,CAAC,8BAA8B,EAAE,CAAC,CAAA;IAE/F,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,WAAW,CAAC,IAAI,YAAY,CAAC,oCAAoC,EAAE,CAAC,CAAC,IAAI,CACjG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EACtB,eAAe,CAAC,oBAAoB,EACpC,MAAM,CAAC,QAAQ,CAAC,+CAA+C,CAAC,CACjE,CAAA;IAED,MAAM,YAAY,GAAG,8BAA8B,CAAC,EAAE,CACpD;QACE,MAAM,EAAE;YACN,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CACnB,iBAAiB,CAAC,IAAI,YAAY,CAAC,2BAA2B,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YAChG,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CACd,WAAW,CAAC,IAAI,YAAY,CAAC,6BAA6B,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CACzE,MAAM,CAAC,QAAQ,CAAC,qDAAqD,EAAE;gBACrE,UAAU,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,MAAM,EAAE;aACxC,CAAC,CACH;SACJ;QACD,YAAY,EAAE;YACZ,UAAU,EAAE,iBAAiB;YAC7B,gBAAgB,EAAE,UAAU,CAAC,gBAAgB;SAC9C;QACD,MAAM,EAAE,WAAW,CAAC,IAAI,YAAY,CAAC,uBAAuB,EAAE,CAAC,CAAC,IAAI,CAClE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EACtB,eAAe,CAAC,oBAAoB,EACpC,MAAM,CAAC,QAAQ,CAAC,+CAA+C,CAAC,CACjE;QACD,eAAe,EAAE,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC;QACrD,YAAY,EAAE,WAAW,CAAC,IAAI,YAAY,CAAC,mCAAmC,EAAE,CAAC,CAAC,IAAI,CACpF,eAAe,CAAC,oBAAoB,EACpC,MAAM,CAAC,QAAQ,CAAC,2DAA2D,CAAC,CAC7E;QACD,mBAAmB,EAAE,CAAC,OAAO,EAAE,EAAE,CAC/B,WAAW,CAAC,IAAI,YAAY,CAAC,qCAAqC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CACnF,eAAe,CAAC,oBAAoB,EACpC,MAAM,CAAC,QAAQ,CAAC,iEAAiE,CAAC,CACnF;KACJ,EACD;QACE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,iBAAiB;KAChE,CACF,CAAA;IAED,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAA;AAC/D,CAAC,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/client-session/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Devtools } from '@livestore/common';
|
|
2
|
-
import {
|
|
2
|
+
import { UnknownError } from '@livestore/common';
|
|
3
3
|
import { Effect } from '@livestore/utils/effect';
|
|
4
4
|
import * as Vite from 'vite';
|
|
5
5
|
export type ViteDevtoolsOptions = {
|
|
@@ -20,5 +20,5 @@ export type ViteDevtoolsOptions = {
|
|
|
20
20
|
_tag: 'node';
|
|
21
21
|
}>;
|
|
22
22
|
};
|
|
23
|
-
export declare const makeViteMiddleware: (options: ViteDevtoolsOptions) => Effect.Effect<Vite.ViteDevServer,
|
|
23
|
+
export declare const makeViteMiddleware: (options: ViteDevtoolsOptions) => Effect.Effect<Vite.ViteDevServer, UnknownError>;
|
|
24
24
|
//# sourceMappingURL=vite-dev-server.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vite-dev-server.d.ts","sourceRoot":"","sources":["../../src/devtools/vite-dev-server.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"vite-dev-server.d.ts","sourceRoot":"","sources":["../../src/devtools/vite-dev-server.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGhD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAE5B,MAAM,MAAM,mBAAmB,GAAG;IAChC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,CAAA;IACzD;;;;;OAKG;IACH,UAAU,EAAE,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;IAC1C;;;;OAIG;IACH,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,YAAY,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACvD,CAAA;AAGD,eAAO,MAAM,kBAAkB,GAAI,SAAS,mBAAmB,KAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAmCnC,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
|
-
import {
|
|
2
|
+
import { UnknownError } from '@livestore/common';
|
|
3
3
|
import { livestoreDevtoolsPlugin } from '@livestore/devtools-vite';
|
|
4
4
|
import { isReadonlyArray } from '@livestore/utils';
|
|
5
5
|
import { Effect } from '@livestore/utils/effect';
|
|
@@ -8,7 +8,7 @@ import * as Vite from 'vite';
|
|
|
8
8
|
// NOTE this is currently also used in @livestore/devtools-expo
|
|
9
9
|
export const makeViteMiddleware = (options) => Effect.gen(function* () {
|
|
10
10
|
const cwd = process.cwd();
|
|
11
|
-
const hmrPort = yield* getFreePort.pipe(
|
|
11
|
+
const hmrPort = yield* getFreePort.pipe(UnknownError.mapToUnknownError);
|
|
12
12
|
const defaultViteConfig = Vite.defineConfig({
|
|
13
13
|
server: {
|
|
14
14
|
middlewareMode: true,
|
|
@@ -33,7 +33,7 @@ export const makeViteMiddleware = (options) => Effect.gen(function* () {
|
|
|
33
33
|
logLevel: 'silent',
|
|
34
34
|
});
|
|
35
35
|
const viteConfig = options.viteConfig?.(defaultViteConfig) ?? defaultViteConfig;
|
|
36
|
-
const viteServer = yield* Effect.promise(() => Vite.createServer(viteConfig)).pipe(
|
|
36
|
+
const viteServer = yield* Effect.promise(() => Vite.createServer(viteConfig)).pipe(UnknownError.mapToUnknownError);
|
|
37
37
|
return viteServer;
|
|
38
38
|
}).pipe(Effect.withSpan('@livestore/adapter-node:devtools:makeViteServer'));
|
|
39
39
|
//# sourceMappingURL=vite-dev-server.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vite-dev-server.js","sourceRoot":"","sources":["../../src/devtools/vite-dev-server.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAG5B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"vite-dev-server.js","sourceRoot":"","sources":["../../src/devtools/vite-dev-server.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAG5B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAA;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAmB5B,+DAA+D;AAC/D,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,OAA4B,EAAmD,EAAE,CAClH,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;IAEzB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAA;IAEvE,MAAM,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC;QAC1C,MAAM,EAAE;YACN,cAAc,EAAE,IAAI;YACpB,GAAG,EAAE;gBACH,IAAI,EAAE,OAAO;aACd;YACD,wCAAwC;YACxC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;SAClD;QACD,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE;YACP,uBAAuB,CAAC;gBACtB,UAAU,EAAE,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC;oBAC7C,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;oBACvE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,UAAU,CAAC;gBACzC,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,IAAI,EAAE,GAAG;aACV,CAAC;SACH;QACD,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE,QAAQ;KACnB,CAAC,CAAA;IAEF,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,iBAAiB,CAAC,IAAI,iBAAiB,CAAA;IAE/E,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAA;IAElH,OAAO,UAAU,CAAA;AACnB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,iDAAiD,CAAC,CAAC,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ClientSessionLeaderThreadProxy, MakeSqliteDb, SqliteDb, SyncOptions } from '@livestore/common';
|
|
2
|
-
import {
|
|
2
|
+
import { UnknownError } from '@livestore/common';
|
|
3
3
|
import type { LeaderThreadCtx } from '@livestore/common/leader-thread';
|
|
4
4
|
import type { LiveStoreSchema } from '@livestore/common/schema';
|
|
5
5
|
import type { MakeNodeSqliteDb } from '@livestore/sqlite-wasm/node';
|
|
@@ -13,7 +13,7 @@ export type TestingOverrides = {
|
|
|
13
13
|
makeLeaderThread?: (makeSqliteDb: MakeSqliteDb) => Effect.Effect<{
|
|
14
14
|
dbEventlog: SqliteDb;
|
|
15
15
|
dbState: SqliteDb;
|
|
16
|
-
},
|
|
16
|
+
}, UnknownError>;
|
|
17
17
|
};
|
|
18
18
|
export interface MakeLeaderThreadArgs {
|
|
19
19
|
storeId: string;
|
|
@@ -23,8 +23,9 @@ export interface MakeLeaderThreadArgs {
|
|
|
23
23
|
makeSqliteDb: MakeNodeSqliteDb;
|
|
24
24
|
devtools: WorkerSchema.LeaderWorkerInnerInitialMessage['devtools'];
|
|
25
25
|
schema: LiveStoreSchema;
|
|
26
|
-
|
|
26
|
+
syncPayloadEncoded: Schema.JsonValue | undefined;
|
|
27
|
+
syncPayloadSchema: Schema.Schema<any> | undefined;
|
|
27
28
|
testing: TestingOverrides | undefined;
|
|
28
29
|
}
|
|
29
|
-
export declare const makeLeaderThread: ({ storeId, clientId, syncOptions, makeSqliteDb, storage, devtools, schema,
|
|
30
|
+
export declare const makeLeaderThread: ({ storeId, clientId, syncOptions, makeSqliteDb, storage, devtools, schema, syncPayloadEncoded, syncPayloadSchema, testing, }: MakeLeaderThreadArgs) => Effect.Effect<Layer.Layer<LeaderThreadCtx, UnknownError, Scope.Scope | HttpClient.HttpClient | FileSystem.FileSystem>, UnknownError, Scope.Scope>;
|
|
30
31
|
//# sourceMappingURL=leader-thread-shared.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"leader-thread-shared.d.ts","sourceRoot":"","sources":["../src/leader-thread-shared.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,8BAA8B,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC5G,OAAO,EAAsD,
|
|
1
|
+
{"version":3,"file":"leader-thread-shared.d.ts","sourceRoot":"","sources":["../src/leader-thread-shared.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,8BAA8B,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC5G,OAAO,EAAsD,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACpG,OAAO,KAAK,EAAmC,eAAe,EAAE,MAAM,iCAAiC,CAAA;AAEvG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAC3F,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAIhD,OAAO,KAAK,KAAK,YAAY,MAAM,oBAAoB,CAAA;AAEvD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,aAAa,CAAC,EAAE;QACd,iBAAiB,CAAC,EAAE,CAClB,QAAQ,EAAE,8BAA8B,CAAC,8BAA8B,KACpE,OAAO,CAAC,8BAA8B,CAAC,8BAA8B,CAAC,CAAA;KAC5E,CAAA;IACD,gBAAgB,CAAC,EAAE,CAAC,YAAY,EAAE,YAAY,KAAK,MAAM,CAAC,MAAM,CAC9D;QACE,UAAU,EAAE,QAAQ,CAAA;QACpB,OAAO,EAAE,QAAQ,CAAA;KAClB,EACD,YAAY,CACb,CAAA;CACF,CAAA;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,WAAW,GAAG,SAAS,CAAA;IACpC,OAAO,EAAE,YAAY,CAAC,WAAW,CAAA;IACjC,YAAY,EAAE,gBAAgB,CAAA;IAC9B,QAAQ,EAAE,YAAY,CAAC,+BAA+B,CAAC,UAAU,CAAC,CAAA;IAClE,MAAM,EAAE,eAAe,CAAA;IACvB,kBAAkB,EAAE,MAAM,CAAC,SAAS,GAAG,SAAS,CAAA;IAChD,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAA;IACjD,OAAO,EAAE,gBAAgB,GAAG,SAAS,CAAA;CACtC;AAED,eAAO,MAAM,gBAAgB,GAAI,8HAW9B,oBAAoB,KAAG,MAAM,CAAC,MAAM,CACrC,KAAK,CAAC,KAAK,CAAC,eAAe,EAAE,YAAY,EAAE,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,EACvG,YAAY,EACZ,KAAK,CAAC,KAAK,CA+DV,CAAA"}
|
|
@@ -4,12 +4,12 @@ if (process.execArgv.includes('--inspect')) {
|
|
|
4
4
|
inspector.open();
|
|
5
5
|
inspector.waitForDebugger();
|
|
6
6
|
}
|
|
7
|
-
import { Devtools, liveStoreStorageFormatVersion, migrateDb,
|
|
7
|
+
import { Devtools, liveStoreStorageFormatVersion, migrateDb, UnknownError } from '@livestore/common';
|
|
8
8
|
import { configureConnection, makeLeaderThreadLayer } from '@livestore/common/leader-thread';
|
|
9
9
|
import { Effect } from '@livestore/utils/effect';
|
|
10
10
|
import * as Webmesh from '@livestore/webmesh';
|
|
11
11
|
import { makeShutdownChannel } from "./shutdown-channel.js";
|
|
12
|
-
export const makeLeaderThread = ({ storeId, clientId, syncOptions, makeSqliteDb, storage, devtools, schema,
|
|
12
|
+
export const makeLeaderThread = ({ storeId, clientId, syncOptions, makeSqliteDb, storage, devtools, schema, syncPayloadEncoded, syncPayloadSchema, testing, }) => Effect.gen(function* () {
|
|
13
13
|
const runtime = yield* Effect.runtime();
|
|
14
14
|
const schemaHashSuffix = schema.state.sqlite.migrations.strategy === 'manual' ? 'fixed' : schema.state.sqlite.hash.toString();
|
|
15
15
|
const makeDb = (kind) => {
|
|
@@ -49,9 +49,10 @@ export const makeLeaderThread = ({ storeId, clientId, syncOptions, makeSqliteDb,
|
|
|
49
49
|
dbEventlog,
|
|
50
50
|
devtoolsOptions,
|
|
51
51
|
shutdownChannel,
|
|
52
|
-
|
|
52
|
+
syncPayloadEncoded,
|
|
53
|
+
syncPayloadSchema,
|
|
53
54
|
});
|
|
54
|
-
}).pipe(Effect.tapCauseLogPretty,
|
|
55
|
+
}).pipe(Effect.tapCauseLogPretty, UnknownError.mapToUnknownError, Effect.withSpan('@livestore/adapter-node:makeLeaderThread', {
|
|
55
56
|
attributes: { storeId, clientId, storage, devtools, syncOptions },
|
|
56
57
|
}));
|
|
57
58
|
const getStateDbFileName = (suffix) => `state${suffix}@${liveStoreStorageFormatVersion}.db`;
|
|
@@ -76,6 +77,7 @@ const makeDevtoolsOptions = ({ dbState, dbEventlog, storeId, clientId, devtools,
|
|
|
76
77
|
sessionId: 'static', // TODO make this dynamic
|
|
77
78
|
schemaAlias: devtools.schemaAlias,
|
|
78
79
|
isLeader: true,
|
|
80
|
+
origin: undefined,
|
|
79
81
|
}),
|
|
80
82
|
port: devtools.port,
|
|
81
83
|
host: devtools.host,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"leader-thread-shared.js","sourceRoot":"","sources":["../src/leader-thread-shared.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAA;AACtC,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;IAC3C,SAAS,CAAC,IAAI,EAAE,CAAA;IAChB,SAAS,CAAC,eAAe,EAAE,CAAA;AAC7B,CAAC;AAGD,OAAO,EAAE,QAAQ,EAAE,6BAA6B,EAAE,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"leader-thread-shared.js","sourceRoot":"","sources":["../src/leader-thread-shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +1,26 @@
|
|
|
1
1
|
import './thread-polyfill.ts';
|
|
2
2
|
import type { SyncOptions } from '@livestore/common';
|
|
3
|
+
import { LogConfig } from '@livestore/common';
|
|
3
4
|
import type { LiveStoreSchema } from '@livestore/common/schema';
|
|
4
|
-
import { Effect } from '@livestore/utils/effect';
|
|
5
|
+
import { Effect, Schema } from '@livestore/utils/effect';
|
|
5
6
|
import type * as otel from '@opentelemetry/api';
|
|
6
7
|
import type { TestingOverrides } from './leader-thread-shared.ts';
|
|
7
8
|
export type WorkerOptions = {
|
|
8
9
|
schema: LiveStoreSchema;
|
|
9
10
|
sync?: SyncOptions;
|
|
11
|
+
syncPayloadSchema?: Schema.Schema<any>;
|
|
10
12
|
otelOptions?: {
|
|
11
13
|
tracer?: otel.Tracer;
|
|
12
14
|
/** @default 'livestore-node-leader-thread' */
|
|
13
15
|
serviceName?: string;
|
|
14
16
|
};
|
|
15
17
|
testing?: TestingOverrides;
|
|
16
|
-
};
|
|
18
|
+
} & LogConfig.WithLoggerOptions;
|
|
17
19
|
export declare const getWorkerArgs: () => {
|
|
18
20
|
readonly clientId: string;
|
|
19
21
|
readonly storeId: string;
|
|
20
22
|
readonly sessionId: string;
|
|
23
|
+
readonly extraArgs: Schema.JsonValue | undefined;
|
|
21
24
|
};
|
|
22
25
|
export declare const makeWorker: (options: WorkerOptions) => void;
|
|
23
26
|
export declare const makeWorkerEffect: (options: WorkerOptions) => Effect.Effect<void, import("@effect/platform/WorkerError").WorkerError, never>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"make-leader-worker.d.ts","sourceRoot":"","sources":["../src/make-leader-worker.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAA;AAS7B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"make-leader-worker.d.ts","sourceRoot":"","sources":["../src/make-leader-worker.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAA;AAS7B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAE,SAAS,EAAgB,MAAM,mBAAmB,CAAA;AAE3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAI/D,OAAO,EAAE,MAAM,EAAsC,MAAM,EAAwB,MAAM,yBAAyB,CAAA;AAElH,OAAO,KAAK,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAE/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAIjE,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,CAAC,EAAE,WAAW,CAAA;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IACtC,WAAW,CAAC,EAAE;QACZ,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAA;QACpB,8CAA8C;QAC9C,WAAW,CAAC,EAAE,MAAM,CAAA;KACrB,CAAA;IACD,OAAO,CAAC,EAAE,gBAAgB,CAAA;CAC3B,GAAG,SAAS,CAAC,iBAAiB,CAAA;AAE/B,eAAO,MAAM,aAAa;;;;;CAAqE,CAAA;AAE/F,eAAO,MAAM,UAAU,GAAI,SAAS,aAAa,SAEhD,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,SAAS,aAAa,mFAmItD,CAAA"}
|
|
@@ -4,23 +4,25 @@ if (process.execArgv.includes('--inspect')) {
|
|
|
4
4
|
inspector.open();
|
|
5
5
|
inspector.waitForDebugger();
|
|
6
6
|
}
|
|
7
|
-
import {
|
|
7
|
+
import { LogConfig, UnknownError } from '@livestore/common';
|
|
8
8
|
import { Eventlog, LeaderThreadCtx } from '@livestore/common/leader-thread';
|
|
9
9
|
import { LiveStoreEvent } from '@livestore/common/schema';
|
|
10
10
|
import { loadSqlite3Wasm } from '@livestore/sqlite-wasm/load-wasm';
|
|
11
11
|
import { sqliteDbFactory } from '@livestore/sqlite-wasm/node';
|
|
12
|
-
import { Effect, FetchHttpClient,
|
|
12
|
+
import { Effect, FetchHttpClient, Layer, OtelTracer, Schema, Stream, WorkerRunner } from '@livestore/utils/effect';
|
|
13
13
|
import { PlatformNode } from '@livestore/utils/node';
|
|
14
14
|
import { makeLeaderThread } from "./leader-thread-shared.js";
|
|
15
15
|
import * as WorkerSchema from "./worker-schema.js";
|
|
16
16
|
export const getWorkerArgs = () => Schema.decodeSync(WorkerSchema.WorkerArgv)(process.argv[2]);
|
|
17
17
|
export const makeWorker = (options) => {
|
|
18
|
-
makeWorkerEffect(options).pipe(
|
|
18
|
+
makeWorkerEffect(options).pipe(PlatformNode.NodeRuntime.runMain);
|
|
19
19
|
};
|
|
20
20
|
export const makeWorkerEffect = (options) => {
|
|
21
21
|
const TracingLive = options.otelOptions?.tracer
|
|
22
22
|
? Layer.unwrapEffect(Effect.map(OtelTracer.make, Layer.setTracer)).pipe(Layer.provideMerge(Layer.succeed(OtelTracer.OtelTracer, options.otelOptions.tracer)))
|
|
23
23
|
: undefined;
|
|
24
|
+
// Merge the runtime dependencies once so we can provide them together without chaining Effect.provide.
|
|
25
|
+
const runtimeLayer = Layer.mergeAll(FetchHttpClient.layer, PlatformNode.NodeFileSystem.layer, TracingLive ?? Layer.empty);
|
|
24
26
|
return WorkerRunner.layerSerialized(WorkerSchema.LeaderWorkerInnerRequest, {
|
|
25
27
|
InitialMessage: (args) => Effect.gen(function* () {
|
|
26
28
|
const sqlite3 = yield* Effect.promise(() => loadSqlite3Wasm()).pipe(Effect.withSpan('@livestore/adapter-node:leader-thread:loadSqlite3Wasm'));
|
|
@@ -31,9 +33,11 @@ export const makeWorkerEffect = (options) => {
|
|
|
31
33
|
schema: options.schema,
|
|
32
34
|
testing: options.testing,
|
|
33
35
|
makeSqliteDb,
|
|
36
|
+
syncPayloadEncoded: args.syncPayloadEncoded,
|
|
37
|
+
syncPayloadSchema: options.syncPayloadSchema,
|
|
34
38
|
});
|
|
35
39
|
}).pipe(Layer.unwrapScoped),
|
|
36
|
-
PushToLeader: ({ batch }) => Effect.andThen(LeaderThreadCtx, (_) => _.syncProcessor.push(batch.map((item) => new LiveStoreEvent.EncodedWithMeta(item)),
|
|
40
|
+
PushToLeader: ({ batch }) => Effect.andThen(LeaderThreadCtx, (_) => _.syncProcessor.push(batch.map((item) => new LiveStoreEvent.Client.EncodedWithMeta(item)),
|
|
37
41
|
// We'll wait in order to keep back pressure on the client session
|
|
38
42
|
{ waitForProcessing: true })).pipe(Effect.uninterruptible, Effect.withSpan('@livestore/adapter-node:worker:PushToLeader')),
|
|
39
43
|
BootStatusStream: () => Effect.andThen(LeaderThreadCtx, (_) => Stream.fromQueue(_.bootStatusQueue)).pipe(Stream.unwrap),
|
|
@@ -41,16 +45,28 @@ export const makeWorkerEffect = (options) => {
|
|
|
41
45
|
const { syncProcessor } = yield* LeaderThreadCtx;
|
|
42
46
|
return syncProcessor.pull({ cursor });
|
|
43
47
|
}).pipe(Stream.unwrapScoped),
|
|
44
|
-
Export: () => Effect.andThen(LeaderThreadCtx, (_) => _.dbState.export()).pipe(
|
|
45
|
-
ExportEventlog: () => Effect.andThen(LeaderThreadCtx, (_) => _.dbEventlog.export()).pipe(
|
|
48
|
+
Export: () => Effect.andThen(LeaderThreadCtx, (_) => _.dbState.export()).pipe(UnknownError.mapToUnknownError, Effect.withSpan('@livestore/adapter-node:worker:Export')),
|
|
49
|
+
ExportEventlog: () => Effect.andThen(LeaderThreadCtx, (_) => _.dbEventlog.export()).pipe(UnknownError.mapToUnknownError, Effect.withSpan('@livestore/adapter-node:worker:ExportEventlog')),
|
|
46
50
|
GetLeaderHead: () => Effect.gen(function* () {
|
|
47
51
|
const workerCtx = yield* LeaderThreadCtx;
|
|
48
52
|
return Eventlog.getClientHeadFromDb(workerCtx.dbEventlog);
|
|
49
|
-
}).pipe(
|
|
53
|
+
}).pipe(UnknownError.mapToUnknownError, Effect.withSpan('@livestore/adapter-node:worker:GetLeaderHead')),
|
|
50
54
|
GetLeaderSyncState: () => Effect.gen(function* () {
|
|
51
55
|
const workerCtx = yield* LeaderThreadCtx;
|
|
52
56
|
return yield* workerCtx.syncProcessor.syncState;
|
|
53
|
-
}).pipe(
|
|
57
|
+
}).pipe(UnknownError.mapToUnknownError, Effect.withSpan('@livestore/adapter-node:worker:GetLeaderSyncState')),
|
|
58
|
+
SyncStateStream: () => Effect.gen(function* () {
|
|
59
|
+
const workerCtx = yield* LeaderThreadCtx;
|
|
60
|
+
return workerCtx.syncProcessor.syncState.changes;
|
|
61
|
+
}).pipe(Stream.unwrapScoped),
|
|
62
|
+
GetNetworkStatus: () => Effect.gen(function* () {
|
|
63
|
+
const workerCtx = yield* LeaderThreadCtx;
|
|
64
|
+
return yield* workerCtx.networkStatus;
|
|
65
|
+
}).pipe(UnknownError.mapToUnknownError, Effect.withSpan('@livestore/adapter-node:worker:GetNetworkStatus')),
|
|
66
|
+
NetworkStatusStream: () => Effect.gen(function* () {
|
|
67
|
+
const workerCtx = yield* LeaderThreadCtx;
|
|
68
|
+
return workerCtx.networkStatus.changes;
|
|
69
|
+
}).pipe(Stream.unwrapScoped),
|
|
54
70
|
GetRecreateSnapshot: () => Effect.gen(function* () {
|
|
55
71
|
const workerCtx = yield* LeaderThreadCtx;
|
|
56
72
|
// const result = yield* Deferred.await(workerCtx.initialSetupDeferred)
|
|
@@ -60,8 +76,10 @@ export const makeWorkerEffect = (options) => {
|
|
|
60
76
|
// return cachedSnapshot ?? workerCtx.db.export()
|
|
61
77
|
const snapshot = workerCtx.dbState.export();
|
|
62
78
|
return { snapshot, migrationsReport: workerCtx.initialState.migrationsReport };
|
|
63
|
-
}).pipe(
|
|
64
|
-
Shutdown: () =>
|
|
79
|
+
}).pipe(UnknownError.mapToUnknownError, Effect.withSpan('@livestore/adapter-node:worker:GetRecreateSnapshot')),
|
|
80
|
+
Shutdown: () =>
|
|
81
|
+
// @effect-diagnostics-next-line unnecessaryEffectGen:off
|
|
82
|
+
Effect.gen(function* () {
|
|
65
83
|
// const { db, dbEventlog } = yield* LeaderThreadCtx
|
|
66
84
|
yield* Effect.logDebug('[@livestore/adapter-node:worker] Shutdown');
|
|
67
85
|
// if (devtools.enabled) {
|
|
@@ -72,15 +90,15 @@ export const makeWorkerEffect = (options) => {
|
|
|
72
90
|
// Buy some time for Otel to flush
|
|
73
91
|
// TODO find a cleaner way to do this
|
|
74
92
|
// yield* Effect.sleep(1000)
|
|
75
|
-
}).pipe(
|
|
76
|
-
ExtraDevtoolsMessage: ({ message }) => Effect.andThen(LeaderThreadCtx, (_) => _.extraIncomingMessagesQueue.offer(message)).pipe(
|
|
93
|
+
}).pipe(UnknownError.mapToUnknownError, Effect.withSpan('@livestore/adapter-node:worker:Shutdown')),
|
|
94
|
+
ExtraDevtoolsMessage: ({ message }) => Effect.andThen(LeaderThreadCtx, (_) => _.extraIncomingMessagesQueue.offer(message)).pipe(UnknownError.mapToUnknownError, Effect.withSpan('@livestore/adapter-node:worker:ExtraDevtoolsMessage')),
|
|
77
95
|
}).pipe(Layer.provide(PlatformNode.NodeWorkerRunner.layer), WorkerRunner.launch, Effect.scoped, Effect.tapCauseLogPretty, Effect.annotateLogs({
|
|
78
96
|
thread: options.otelOptions?.serviceName ?? 'livestore-node-leader-thread',
|
|
79
97
|
processId: process.pid,
|
|
80
|
-
}),
|
|
98
|
+
}), LogConfig.withLoggerConfig({ logger: options.logger, logLevel: options.logLevel }, { threadName: options.otelOptions?.serviceName ?? 'livestore-node-leader-thread' }),
|
|
81
99
|
// TODO bring back with Effect 4 once it's easier to work with replacing loggers.
|
|
82
100
|
// We basically only want to provide this logger if it's replacing the default logger, not if there's a custom logger already provided.
|
|
83
101
|
// Effect.provide(Logger.prettyWithThread(options.otelOptions?.serviceName ?? 'livestore-node-leader-thread')),
|
|
84
|
-
Effect.provide(
|
|
102
|
+
Effect.provide(runtimeLayer));
|
|
85
103
|
};
|
|
86
104
|
//# sourceMappingURL=make-leader-worker.js.map
|