@livestore/adapter-node 0.0.0-snapshot-a39a3b63b870a2878f22f82ce2979a6989076053 → 0.0.0-snapshot-97ca7eac46b6a583b22d40189126d06a377ec1b0
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/index.d.ts +6 -1
- package/dist/client-session/index.d.ts.map +1 -1
- package/dist/client-session/index.js +36 -5
- package/dist/client-session/index.js.map +1 -1
- package/dist/devtools/devtools-server.d.ts.map +1 -1
- package/dist/devtools/vite-dev-server.d.ts.map +1 -1
- package/dist/in-memory/index.d.ts +5 -1
- package/dist/in-memory/index.d.ts.map +1 -1
- package/dist/in-memory/index.js +2 -3
- package/dist/in-memory/index.js.map +1 -1
- package/dist/make-leader-worker.d.ts +1 -1
- package/dist/make-leader-worker.d.ts.map +1 -1
- package/dist/shutdown-channel.d.ts.map +1 -1
- package/dist/webchannel.d.ts.map +1 -1
- package/dist/worker-schema.d.ts +14 -8
- package/dist/worker-schema.d.ts.map +1 -1
- package/package.json +12 -12
- package/src/client-session/index.ts +47 -3
- package/src/in-memory/index.ts +6 -4
|
@@ -10,6 +10,8 @@ export interface NodeAdapterOptions {
|
|
|
10
10
|
baseDirectory?: string;
|
|
11
11
|
/** The default is the hostname of the current machine */
|
|
12
12
|
clientId?: string;
|
|
13
|
+
/** @default 'static' */
|
|
14
|
+
sessionId?: string;
|
|
13
15
|
devtools?: {
|
|
14
16
|
/**
|
|
15
17
|
* Where to run the devtools server (via Vite)
|
|
@@ -19,5 +21,8 @@ export interface NodeAdapterOptions {
|
|
|
19
21
|
port: number;
|
|
20
22
|
};
|
|
21
23
|
}
|
|
22
|
-
|
|
24
|
+
/**
|
|
25
|
+
* Warning: This adapter doesn't currently support multiple client sessions for the same client (i.e. same storeId + clientId)
|
|
26
|
+
*/
|
|
27
|
+
export declare const makeNodeAdapter: ({ workerUrl, schemaPath, baseDirectory, devtools: devtoolsOptions, clientId, sessionId, }: NodeAdapterOptions) => Adapter;
|
|
23
28
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client-session/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client-session/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,OAAO,EAOR,MAAM,mBAAmB,CAAA;AAsB1B,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,SAAS,EAAE,GAAG,CAAA;IACd,6CAA6C;IAC7C,UAAU,EAAE,MAAM,CAAA;IAClB,wCAAwC;IACxC,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE;QACT;;;;WAIG;QACH,IAAI,EAAE,MAAM,CAAA;KACb,CAAA;CACF;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,GAAI,2FAQ7B,kBAAkB,KAAG,OAkFA,CAAA"}
|
|
@@ -4,13 +4,17 @@ import { Devtools, UnexpectedError } from '@livestore/common';
|
|
|
4
4
|
import { makeNodeDevtoolsChannel } from '@livestore/devtools-node-common/web-channel';
|
|
5
5
|
import { loadSqlite3Wasm } from '@livestore/sqlite-wasm/load-wasm';
|
|
6
6
|
import { sqliteDbFactory } from '@livestore/sqlite-wasm/node';
|
|
7
|
-
import { Cause, Effect, Fiber, ParseResult, Schema, Stream, SubscriptionRef, Worker, WorkerError, } from '@livestore/utils/effect';
|
|
7
|
+
import { Cause, Effect, Fiber, ParseResult, Queue, Schema, Stream, SubscriptionRef, Worker, WorkerError, } from '@livestore/utils/effect';
|
|
8
8
|
import { PlatformNode } from '@livestore/utils/node';
|
|
9
9
|
import { makeShutdownChannel } from '../shutdown-channel.js';
|
|
10
10
|
import * as WorkerSchema from '../worker-schema.js';
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
/**
|
|
12
|
+
* Warning: This adapter doesn't currently support multiple client sessions for the same client (i.e. same storeId + clientId)
|
|
13
|
+
*/
|
|
14
|
+
export const makeNodeAdapter = ({ workerUrl, schemaPath, baseDirectory, devtools: devtoolsOptions = { port: 4242 }, clientId = hostname(),
|
|
15
|
+
// TODO make this dynamic and actually support multiple sessions
|
|
16
|
+
sessionId = 'static', }) => (({ storeId, devtoolsEnabled, shutdown, connectDevtoolsToStore, bootStatusQueue }) => Effect.gen(function* () {
|
|
17
|
+
yield* Queue.offer(bootStatusQueue, { stage: 'loading' });
|
|
14
18
|
const sqlite3 = yield* Effect.promise(() => loadSqlite3Wasm());
|
|
15
19
|
const makeSqliteDb = yield* sqliteDbFactory({ sqlite3 });
|
|
16
20
|
// TODO consider bringing back happy-path initialisation boost
|
|
@@ -35,6 +39,7 @@ export const makeNodeAdapter = ({ workerUrl, schemaPath, baseDirectory, devtools
|
|
|
35
39
|
devtoolsEnabled,
|
|
36
40
|
devtoolsOptions,
|
|
37
41
|
schemaPath,
|
|
42
|
+
bootStatusQueue,
|
|
38
43
|
});
|
|
39
44
|
syncInMemoryDb.import(initialSnapshot);
|
|
40
45
|
if (devtoolsEnabled) {
|
|
@@ -65,7 +70,9 @@ export const makeNodeAdapter = ({ workerUrl, schemaPath, baseDirectory, devtools
|
|
|
65
70
|
};
|
|
66
71
|
return clientSession;
|
|
67
72
|
}).pipe(Effect.withSpan('@livestore/adapter-node:adapter'), Effect.parallelFinalizers, Effect.provide(PlatformNode.NodeFileSystem.layer)));
|
|
68
|
-
const makeLeaderThread = ({ shutdown, storeId, clientId, sessionId, workerUrl, baseDirectory, devtoolsEnabled, devtoolsOptions, schemaPath,
|
|
73
|
+
const makeLeaderThread = ({ shutdown, storeId, clientId, sessionId, workerUrl, baseDirectory, devtoolsEnabled, devtoolsOptions, schemaPath,
|
|
74
|
+
// bootStatusQueue,
|
|
75
|
+
}) => Effect.gen(function* () {
|
|
69
76
|
const nodeWorker = new WT.Worker(workerUrl, {
|
|
70
77
|
execArgv: process.env.DEBUG_WORKER ? ['--inspect --enable-source-maps'] : ['--enable-source-maps'],
|
|
71
78
|
argv: [Schema.encodeSync(WorkerSchema.WorkerArgv)({ storeId, clientId, sessionId })],
|
|
@@ -104,6 +111,30 @@ const makeLeaderThread = ({ shutdown, storeId, clientId, sessionId, workerUrl, b
|
|
|
104
111
|
? new UnexpectedError({ cause })
|
|
105
112
|
: cause), Stream.withSpan(`@livestore/adapter-node:client-session:runInWorkerStream:${req._tag}`));
|
|
106
113
|
}).pipe(Stream.unwrap);
|
|
114
|
+
const _bootStatusFiber = yield* runInWorkerStream(new WorkerSchema.LeaderWorkerInner.BootStatusStream()).pipe(
|
|
115
|
+
// TODO bring back when fixed https://github.com/Effect-TS/effect/issues/4576
|
|
116
|
+
// Stream.tap((bootStatus) => Queue.offer(bootStatusQueue, bootStatus)),
|
|
117
|
+
// TODO remove when fixed https://github.com/Effect-TS/effect/issues/4576
|
|
118
|
+
// Stream.tap(
|
|
119
|
+
// Effect.fn(function* (_) {
|
|
120
|
+
// if (yield* Queue.isShutdown(bootStatusQueue)) {
|
|
121
|
+
// return
|
|
122
|
+
// } else {
|
|
123
|
+
// console.log('offering boot status', _)
|
|
124
|
+
// // yield* Queue.offer(bootStatusQueue, _).pipe(
|
|
125
|
+
// // Effect.onInterrupt(() => Effect.log('boot status stream interrupted')),
|
|
126
|
+
// // // Effect.tapErrorCause((cause) => Effect.logError('error offering boot status', cause)),
|
|
127
|
+
// // )
|
|
128
|
+
// }
|
|
129
|
+
// }),
|
|
130
|
+
// ),
|
|
131
|
+
Stream.runDrain, Effect.tapErrorCause((cause) => Cause.isInterruptedOnly(cause) ? Effect.void : Effect.sync(() => shutdown(cause))), Effect.interruptible, Effect.tapCauseLogPretty, Effect.forkScoped);
|
|
132
|
+
// TODO bring back when fixed https://github.com/Effect-TS/effect/issues/4576
|
|
133
|
+
// yield* Queue.awaitShutdown(bootStatusQueue).pipe(
|
|
134
|
+
// Effect.andThen(Fiber.interrupt(bootStatusFiber)),
|
|
135
|
+
// Effect.tapCauseLogPretty,
|
|
136
|
+
// Effect.forkScoped,
|
|
137
|
+
// )
|
|
107
138
|
const initialLeaderHead = yield* runInWorker(new WorkerSchema.LeaderWorkerInner.GetLeaderHead());
|
|
108
139
|
const networkStatus = yield* SubscriptionRef.make({
|
|
109
140
|
isConnected: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client-session/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAClC,OAAO,KAAK,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client-session/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devtools-server.d.ts","sourceRoot":"","sources":["../../src/devtools/devtools-server.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAKhD;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,
|
|
1
|
+
{"version":3,"file":"devtools-server.d.ts","sourceRoot":"","sources":["../../src/devtools/devtools-server.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAKhD;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,qDAMjC;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;CACb,KAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,CAAC,KAAK,CAuE8B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vite-dev-server.d.ts","sourceRoot":"","sources":["../../src/devtools/vite-dev-server.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAChD,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,CAAA;IAClB;;;;OAIG;IACH,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,YAAY,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAC1E,CAAA;AAKD,eAAO,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"vite-dev-server.d.ts","sourceRoot":"","sources":["../../src/devtools/vite-dev-server.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAChD,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,CAAA;IAClB;;;;OAIG;IACH,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,YAAY,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAC1E,CAAA;AAKD,eAAO,MAAM,cAAc,GAAI,SAAS,mBAAmB,KAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,eAAe,CAwClC,CAAA;AAE7E,eAAO,MAAM,WAAW,+CAmBtB,CAAA"}
|
|
@@ -5,7 +5,11 @@ export interface InMemoryAdapterOptions {
|
|
|
5
5
|
* @default 'in-memory'
|
|
6
6
|
*/
|
|
7
7
|
clientId?: string;
|
|
8
|
+
/**
|
|
9
|
+
* @default nanoid(6)
|
|
10
|
+
*/
|
|
11
|
+
sessionId?: string;
|
|
8
12
|
}
|
|
9
13
|
/** NOTE: This adapter is currently only used for testing */
|
|
10
|
-
export declare const makeInMemoryAdapter: ({ sync: syncOptions, clientId }: InMemoryAdapterOptions) => Adapter;
|
|
14
|
+
export declare const makeInMemoryAdapter: ({ sync: syncOptions, clientId, sessionId }: InMemoryAdapterOptions) => Adapter;
|
|
11
15
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/in-memory/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EAKP,WAAW,EACZ,MAAM,mBAAmB,CAAA;AAc1B,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,WAAW,CAAA;IAClB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/in-memory/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EAKP,WAAW,EACZ,MAAM,mBAAmB,CAAA;AAc1B,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,WAAW,CAAA;IAClB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,4DAA4D;AAC5D,eAAO,MAAM,mBAAmB,GAC7B,4CAAsE,sBAAsB,KAAG,OA+CjD,CAAA"}
|
package/dist/in-memory/index.js
CHANGED
|
@@ -7,14 +7,13 @@ import { Cause, Effect, FetchHttpClient, Layer, Stream, SubscriptionRef } from '
|
|
|
7
7
|
import { nanoid } from '@livestore/utils/nanoid';
|
|
8
8
|
import { makeShutdownChannel } from '../shutdown-channel.js';
|
|
9
9
|
/** NOTE: This adapter is currently only used for testing */
|
|
10
|
-
export const makeInMemoryAdapter = ({ sync: syncOptions, clientId = 'in-memory' }) => ({ schema, storeId, shutdown,
|
|
10
|
+
export const makeInMemoryAdapter = ({ sync: syncOptions, clientId = 'in-memory', sessionId = nanoid(6) }) => ({ schema, storeId, shutdown,
|
|
11
11
|
// devtoolsEnabled, bootStatusQueue, shutdown, connectDevtoolsToStore
|
|
12
12
|
}) => Effect.gen(function* () {
|
|
13
13
|
const sqlite3 = yield* Effect.promise(() => loadSqlite3Wasm());
|
|
14
14
|
const makeSqliteDb = sqliteDbFactory({ sqlite3 });
|
|
15
15
|
const sqliteDb = yield* makeSqliteDb({ _tag: 'in-memory' });
|
|
16
|
-
const lockStatus = SubscriptionRef.make('has-lock')
|
|
17
|
-
const sessionId = nanoid(6);
|
|
16
|
+
const lockStatus = yield* SubscriptionRef.make('has-lock');
|
|
18
17
|
const shutdownChannel = yield* makeShutdownChannel(storeId);
|
|
19
18
|
yield* shutdownChannel.listen.pipe(Stream.flatten(), Stream.tap((error) => Effect.sync(() => shutdown(Cause.fail(error)))), Stream.runDrain, Effect.interruptible, Effect.tapCauseLogPretty, Effect.forkScoped);
|
|
20
19
|
const { leaderThread, initialSnapshot } = yield* makeLeaderThread({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/in-memory/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AAE7G,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAA;AAClE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACxG,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/in-memory/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,8 +12,8 @@ export type WorkerOptions = {
|
|
|
12
12
|
};
|
|
13
13
|
export declare const getWorkerArgs: () => {
|
|
14
14
|
readonly clientId: string;
|
|
15
|
-
readonly storeId: string;
|
|
16
15
|
readonly sessionId: string;
|
|
16
|
+
readonly storeId: string;
|
|
17
17
|
};
|
|
18
18
|
export declare const makeWorker: (options: WorkerOptions) => void;
|
|
19
19
|
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;AAU7B,OAAO,KAAK,EAAiB,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAenE,OAAO,EACL,MAAM,EAUP,MAAM,yBAAyB,CAAA;AAEhC,OAAO,KAAK,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAM/C,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,CAAC,EAAE,WAAW,CAAA;IAClB,WAAW,CAAC,EAAE;QACZ,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAA;QACpB,8CAA8C;QAC9C,WAAW,CAAC,EAAE,MAAM,CAAA;KACrB,CAAA;CACF,CAAA;AAED,eAAO,MAAM,aAAa;;;;CAAqE,CAAA;AAE/F,eAAO,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"make-leader-worker.d.ts","sourceRoot":"","sources":["../src/make-leader-worker.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAA;AAU7B,OAAO,KAAK,EAAiB,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAenE,OAAO,EACL,MAAM,EAUP,MAAM,yBAAyB,CAAA;AAEhC,OAAO,KAAK,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAM/C,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,CAAC,EAAE,WAAW,CAAA;IAClB,WAAW,CAAC,EAAE;QACZ,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAA;QACpB,8CAA8C;QAC9C,WAAW,CAAC,EAAE,MAAM,CAAA;KACrB,CAAA;CACF,CAAA;AAED,eAAO,MAAM,aAAa;;;;CAAqE,CAAA;AAE/F,eAAO,MAAM,UAAU,GAAI,SAAS,aAAa,SAEhD,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,SAAS,aAAa,mFA6GtD,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shutdown-channel.d.ts","sourceRoot":"","sources":["../src/shutdown-channel.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,mBAAmB,
|
|
1
|
+
{"version":3,"file":"shutdown-channel.d.ts","sourceRoot":"","sources":["../src/shutdown-channel.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,mBAAmB,GAAI,SAAS,MAAM,ubAI/C,CAAA"}
|
package/dist/webchannel.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webchannel.d.ts","sourceRoot":"","sources":["../src/webchannel.ts"],"names":[],"mappings":"AAGA,OAAO,EAAY,MAAM,EAAQ,MAAM,EAAE,KAAK,EAAU,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAEnG,eAAO,MAAM,oBAAoB,GAAI,GAAG,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"webchannel.d.ts","sourceRoot":"","sources":["../src/webchannel.ts"],"names":[],"mappings":"AAGA,OAAO,EAAY,MAAM,EAAQ,MAAM,EAAE,KAAK,EAAU,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAEnG,eAAO,MAAM,oBAAoB,GAAI,GAAG,EAAE,UAAU,EAAE,0BAGnD;IACD,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;CACvC,KAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CA6ClE,CAAA"}
|
package/dist/worker-schema.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Devtools, LeaderAheadError, SyncState, UnexpectedError } from '@livestore/common';
|
|
2
2
|
import { Schema } from '@livestore/utils/effect';
|
|
3
|
-
export declare const WorkerArgv: Schema.SchemaClass<{
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
3
|
+
export declare const WorkerArgv: Schema.transform<Schema.SchemaClass<unknown, string, never>, Schema.Struct<{
|
|
4
|
+
clientId: typeof Schema.String;
|
|
5
|
+
storeId: typeof Schema.String;
|
|
6
|
+
sessionId: typeof Schema.String;
|
|
7
|
+
}>>;
|
|
8
8
|
export declare const StorageTypeOpfs: Schema.Struct<{
|
|
9
9
|
type: Schema.Literal<["opfs"]>;
|
|
10
10
|
/**
|
|
@@ -173,17 +173,23 @@ export declare namespace LeaderWorkerInner {
|
|
|
173
173
|
const ExtraDevtoolsMessage_base: Schema.TaggedRequestClass<ExtraDevtoolsMessage, "ExtraDevtoolsMessage", {
|
|
174
174
|
readonly _tag: Schema.tag<"ExtraDevtoolsMessage">;
|
|
175
175
|
} & {
|
|
176
|
-
message: Schema.Union<[typeof Devtools.Leader.SnapshotReq,
|
|
176
|
+
message: Schema.Union<[typeof Devtools.Leader.SnapshotReq, Schema.TaggedStruct<"LSD.Leader.LoadDatabaseFile.Request", {
|
|
177
|
+
data: Schema.Schema<Uint8Array<ArrayBufferLike>, Uint8Array<ArrayBufferLike>, never>;
|
|
178
|
+
} & {
|
|
179
|
+
readonly requestId: typeof Schema.String;
|
|
180
|
+
readonly liveStoreVersion: typeof import("@livestore/common/dist/devtools/devtools-messages-common.js").liveStoreVersion;
|
|
181
|
+
readonly clientId: typeof Schema.String;
|
|
182
|
+
}>, typeof Devtools.Leader.MutationLogReq, Schema.TaggedStruct<"LSD.Leader.ResetAllData.Request", {
|
|
177
183
|
mode: Schema.Literal<["all-data", "only-app-db"]>;
|
|
178
184
|
} & {
|
|
179
185
|
readonly requestId: typeof Schema.String;
|
|
180
|
-
readonly liveStoreVersion: typeof
|
|
186
|
+
readonly liveStoreVersion: typeof import("@livestore/common/dist/devtools/devtools-messages-common.js").liveStoreVersion;
|
|
181
187
|
readonly clientId: typeof Schema.String;
|
|
182
188
|
}>, typeof Devtools.Leader.NetworkStatusSubscribe, typeof Devtools.Leader.NetworkStatusUnsubscribe, typeof Devtools.Leader.Disconnect, typeof Devtools.Leader.RunMutationReq, typeof Devtools.Leader.Ping, typeof Devtools.Leader.DatabaseFileInfoReq, typeof Devtools.Leader.SyncHistorySubscribe, typeof Devtools.Leader.SyncHistoryUnsubscribe, typeof Devtools.Leader.SyncingInfoReq, typeof Devtools.Leader.SyncHeadSubscribe, typeof Devtools.Leader.SyncHeadUnsubscribe, Schema.TaggedStruct<"LSD.Leader.SetSyncLatch.Request", {
|
|
183
189
|
closeLatch: typeof Schema.Boolean;
|
|
184
190
|
} & {
|
|
185
191
|
readonly requestId: typeof Schema.String;
|
|
186
|
-
readonly liveStoreVersion: typeof
|
|
192
|
+
readonly liveStoreVersion: typeof import("@livestore/common/dist/devtools/devtools-messages-common.js").liveStoreVersion;
|
|
187
193
|
readonly clientId: typeof Schema.String;
|
|
188
194
|
}>]>;
|
|
189
195
|
}, typeof Schema.Void, typeof UnexpectedError>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-schema.d.ts","sourceRoot":"","sources":["../src/worker-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,QAAQ,EAAE,gBAAgB,EAAoB,SAAS,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAExH,OAAO,EAAE,MAAM,EAAgB,MAAM,yBAAyB,CAAA;AAE9D,eAAO,MAAM,UAAU;;;;
|
|
1
|
+
{"version":3,"file":"worker-schema.d.ts","sourceRoot":"","sources":["../src/worker-schema.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@livestore/adapter-node",
|
|
3
|
-
"version": "0.0.0-snapshot-
|
|
3
|
+
"version": "0.0.0-snapshot-97ca7eac46b6a583b22d40189126d06a377ec1b0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"exports": {
|
|
@@ -26,24 +26,24 @@
|
|
|
26
26
|
}
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@livestore/devtools-vite": "0.3.0-dev.
|
|
29
|
+
"@livestore/devtools-vite": "0.3.0-dev.19",
|
|
30
30
|
"@opentelemetry/api": "1.9.0",
|
|
31
31
|
"@opentelemetry/otlp-exporter-base": "0.57.2",
|
|
32
|
-
"vite": "6.1
|
|
32
|
+
"vite": "6.2.1",
|
|
33
33
|
"ws": "8.18.0",
|
|
34
|
-
"@livestore/
|
|
35
|
-
"@livestore/
|
|
36
|
-
"@livestore/
|
|
37
|
-
"@livestore/
|
|
38
|
-
"@livestore/
|
|
39
|
-
"@livestore/
|
|
34
|
+
"@livestore/adapter-web": "0.0.0-snapshot-97ca7eac46b6a583b22d40189126d06a377ec1b0",
|
|
35
|
+
"@livestore/common": "0.0.0-snapshot-97ca7eac46b6a583b22d40189126d06a377ec1b0",
|
|
36
|
+
"@livestore/devtools-node-common": "0.0.0-snapshot-97ca7eac46b6a583b22d40189126d06a377ec1b0",
|
|
37
|
+
"@livestore/sqlite-wasm": "0.0.0-snapshot-97ca7eac46b6a583b22d40189126d06a377ec1b0",
|
|
38
|
+
"@livestore/utils": "0.0.0-snapshot-97ca7eac46b6a583b22d40189126d06a377ec1b0",
|
|
39
|
+
"@livestore/webmesh": "0.0.0-snapshot-97ca7eac46b6a583b22d40189126d06a377ec1b0"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
|
-
"@rollup/plugin-commonjs": "^28.0.
|
|
42
|
+
"@rollup/plugin-commonjs": "^28.0.3",
|
|
43
43
|
"@rollup/plugin-node-resolve": "^16.0.0",
|
|
44
44
|
"@rollup/plugin-terser": "^0.4.4",
|
|
45
|
-
"@types/ws": "^8.
|
|
46
|
-
"rollup": "^4.
|
|
45
|
+
"@types/ws": "^8.18.0",
|
|
46
|
+
"rollup": "^4.35.0"
|
|
47
47
|
},
|
|
48
48
|
"publishConfig": {
|
|
49
49
|
"access": "public"
|
|
@@ -3,6 +3,7 @@ import * as WT from 'node:worker_threads'
|
|
|
3
3
|
|
|
4
4
|
import type {
|
|
5
5
|
Adapter,
|
|
6
|
+
BootStatus,
|
|
6
7
|
ClientSession,
|
|
7
8
|
ClientSessionLeaderThreadProxy,
|
|
8
9
|
IntentionalShutdownCause,
|
|
@@ -18,6 +19,7 @@ import {
|
|
|
18
19
|
Effect,
|
|
19
20
|
Fiber,
|
|
20
21
|
ParseResult,
|
|
22
|
+
Queue,
|
|
21
23
|
Schema,
|
|
22
24
|
Stream,
|
|
23
25
|
SubscriptionRef,
|
|
@@ -40,6 +42,8 @@ export interface NodeAdapterOptions {
|
|
|
40
42
|
baseDirectory?: string
|
|
41
43
|
/** The default is the hostname of the current machine */
|
|
42
44
|
clientId?: string
|
|
45
|
+
/** @default 'static' */
|
|
46
|
+
sessionId?: string
|
|
43
47
|
devtools?: {
|
|
44
48
|
/**
|
|
45
49
|
* Where to run the devtools server (via Vite)
|
|
@@ -50,17 +54,21 @@ export interface NodeAdapterOptions {
|
|
|
50
54
|
}
|
|
51
55
|
}
|
|
52
56
|
|
|
57
|
+
/**
|
|
58
|
+
* Warning: This adapter doesn't currently support multiple client sessions for the same client (i.e. same storeId + clientId)
|
|
59
|
+
*/
|
|
53
60
|
export const makeNodeAdapter = ({
|
|
54
61
|
workerUrl,
|
|
55
62
|
schemaPath,
|
|
56
63
|
baseDirectory,
|
|
57
64
|
devtools: devtoolsOptions = { port: 4242 },
|
|
58
65
|
clientId = hostname(),
|
|
66
|
+
// TODO make this dynamic and actually support multiple sessions
|
|
67
|
+
sessionId = 'static',
|
|
59
68
|
}: NodeAdapterOptions): Adapter =>
|
|
60
|
-
(({ storeId, devtoolsEnabled, shutdown, connectDevtoolsToStore }) =>
|
|
69
|
+
(({ storeId, devtoolsEnabled, shutdown, connectDevtoolsToStore, bootStatusQueue }) =>
|
|
61
70
|
Effect.gen(function* () {
|
|
62
|
-
|
|
63
|
-
const sessionId = 'static'
|
|
71
|
+
yield* Queue.offer(bootStatusQueue, { stage: 'loading' })
|
|
64
72
|
|
|
65
73
|
const sqlite3 = yield* Effect.promise(() => loadSqlite3Wasm())
|
|
66
74
|
const makeSqliteDb = yield* sqliteDbFactory({ sqlite3 })
|
|
@@ -99,6 +107,7 @@ export const makeNodeAdapter = ({
|
|
|
99
107
|
devtoolsEnabled,
|
|
100
108
|
devtoolsOptions,
|
|
101
109
|
schemaPath,
|
|
110
|
+
bootStatusQueue,
|
|
102
111
|
})
|
|
103
112
|
|
|
104
113
|
syncInMemoryDb.import(initialSnapshot)
|
|
@@ -150,6 +159,7 @@ const makeLeaderThread = ({
|
|
|
150
159
|
devtoolsEnabled,
|
|
151
160
|
devtoolsOptions,
|
|
152
161
|
schemaPath,
|
|
162
|
+
// bootStatusQueue,
|
|
153
163
|
}: {
|
|
154
164
|
shutdown: (cause: Cause.Cause<UnexpectedError | IntentionalShutdownCause>) => void
|
|
155
165
|
storeId: string
|
|
@@ -160,6 +170,7 @@ const makeLeaderThread = ({
|
|
|
160
170
|
devtoolsEnabled: boolean
|
|
161
171
|
devtoolsOptions: { port: number }
|
|
162
172
|
schemaPath: string
|
|
173
|
+
bootStatusQueue: Queue.Queue<BootStatus>
|
|
163
174
|
}) =>
|
|
164
175
|
Effect.gen(function* () {
|
|
165
176
|
const nodeWorker = new WT.Worker(workerUrl, {
|
|
@@ -242,6 +253,39 @@ const makeLeaderThread = ({
|
|
|
242
253
|
)
|
|
243
254
|
}).pipe(Stream.unwrap) as any
|
|
244
255
|
|
|
256
|
+
const _bootStatusFiber = yield* runInWorkerStream(new WorkerSchema.LeaderWorkerInner.BootStatusStream()).pipe(
|
|
257
|
+
// TODO bring back when fixed https://github.com/Effect-TS/effect/issues/4576
|
|
258
|
+
// Stream.tap((bootStatus) => Queue.offer(bootStatusQueue, bootStatus)),
|
|
259
|
+
// TODO remove when fixed https://github.com/Effect-TS/effect/issues/4576
|
|
260
|
+
// Stream.tap(
|
|
261
|
+
// Effect.fn(function* (_) {
|
|
262
|
+
// if (yield* Queue.isShutdown(bootStatusQueue)) {
|
|
263
|
+
// return
|
|
264
|
+
// } else {
|
|
265
|
+
// console.log('offering boot status', _)
|
|
266
|
+
// // yield* Queue.offer(bootStatusQueue, _).pipe(
|
|
267
|
+
// // Effect.onInterrupt(() => Effect.log('boot status stream interrupted')),
|
|
268
|
+
// // // Effect.tapErrorCause((cause) => Effect.logError('error offering boot status', cause)),
|
|
269
|
+
// // )
|
|
270
|
+
// }
|
|
271
|
+
// }),
|
|
272
|
+
// ),
|
|
273
|
+
Stream.runDrain,
|
|
274
|
+
Effect.tapErrorCause((cause) =>
|
|
275
|
+
Cause.isInterruptedOnly(cause) ? Effect.void : Effect.sync(() => shutdown(cause)),
|
|
276
|
+
),
|
|
277
|
+
Effect.interruptible,
|
|
278
|
+
Effect.tapCauseLogPretty,
|
|
279
|
+
Effect.forkScoped,
|
|
280
|
+
)
|
|
281
|
+
|
|
282
|
+
// TODO bring back when fixed https://github.com/Effect-TS/effect/issues/4576
|
|
283
|
+
// yield* Queue.awaitShutdown(bootStatusQueue).pipe(
|
|
284
|
+
// Effect.andThen(Fiber.interrupt(bootStatusFiber)),
|
|
285
|
+
// Effect.tapCauseLogPretty,
|
|
286
|
+
// Effect.forkScoped,
|
|
287
|
+
// )
|
|
288
|
+
|
|
245
289
|
const initialLeaderHead = yield* runInWorker(new WorkerSchema.LeaderWorkerInner.GetLeaderHead())
|
|
246
290
|
|
|
247
291
|
const networkStatus = yield* SubscriptionRef.make<NetworkStatus>({
|
package/src/in-memory/index.ts
CHANGED
|
@@ -25,11 +25,15 @@ export interface InMemoryAdapterOptions {
|
|
|
25
25
|
* @default 'in-memory'
|
|
26
26
|
*/
|
|
27
27
|
clientId?: string
|
|
28
|
+
/**
|
|
29
|
+
* @default nanoid(6)
|
|
30
|
+
*/
|
|
31
|
+
sessionId?: string
|
|
28
32
|
}
|
|
29
33
|
|
|
30
34
|
/** NOTE: This adapter is currently only used for testing */
|
|
31
35
|
export const makeInMemoryAdapter =
|
|
32
|
-
({ sync: syncOptions, clientId = 'in-memory' }: InMemoryAdapterOptions): Adapter =>
|
|
36
|
+
({ sync: syncOptions, clientId = 'in-memory', sessionId = nanoid(6) }: InMemoryAdapterOptions): Adapter =>
|
|
33
37
|
({
|
|
34
38
|
schema,
|
|
35
39
|
storeId,
|
|
@@ -42,9 +46,7 @@ export const makeInMemoryAdapter =
|
|
|
42
46
|
const makeSqliteDb = sqliteDbFactory({ sqlite3 })
|
|
43
47
|
const sqliteDb = yield* makeSqliteDb({ _tag: 'in-memory' })
|
|
44
48
|
|
|
45
|
-
const lockStatus = SubscriptionRef.make<LockStatus>('has-lock')
|
|
46
|
-
|
|
47
|
-
const sessionId = nanoid(6)
|
|
49
|
+
const lockStatus = yield* SubscriptionRef.make<LockStatus>('has-lock')
|
|
48
50
|
|
|
49
51
|
const shutdownChannel = yield* makeShutdownChannel(storeId)
|
|
50
52
|
|