@livestore/adapter-node 0.3.0-dev.33 → 0.3.0-dev.34

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.
Files changed (54) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/client-session/adapter.d.ts +44 -0
  3. package/dist/client-session/adapter.d.ts.map +1 -0
  4. package/dist/client-session/adapter.js +202 -0
  5. package/dist/client-session/adapter.js.map +1 -0
  6. package/dist/client-session/in-memory-adapter.d.ts +145 -10
  7. package/dist/client-session/in-memory-adapter.d.ts.map +1 -1
  8. package/dist/client-session/in-memory-adapter.js +6 -7
  9. package/dist/client-session/in-memory-adapter.js.map +1 -1
  10. package/dist/client-session/persisted-adapter.d.ts +26 -14
  11. package/dist/client-session/persisted-adapter.d.ts.map +1 -1
  12. package/dist/client-session/persisted-adapter.js +81 -24
  13. package/dist/client-session/persisted-adapter.js.map +1 -1
  14. package/dist/devtools/devtools-server.d.ts.map +1 -1
  15. package/dist/devtools/devtools-server.js +3 -1
  16. package/dist/devtools/devtools-server.js.map +1 -1
  17. package/dist/index.d.ts +1 -2
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +1 -2
  20. package/dist/index.js.map +1 -1
  21. package/dist/leader-shared.d.ts +29 -0
  22. package/dist/leader-shared.d.ts.map +1 -0
  23. package/dist/leader-shared.js +87 -0
  24. package/dist/leader-shared.js.map +1 -0
  25. package/dist/leader-thread-lazy.js +4 -0
  26. package/dist/leader-thread-lazy.js.map +1 -1
  27. package/dist/leader-thread-shared.d.ts +29 -0
  28. package/dist/leader-thread-shared.d.ts.map +1 -0
  29. package/dist/leader-thread-shared.js +88 -0
  30. package/dist/leader-thread-shared.js.map +1 -0
  31. package/dist/make-leader-worker.d.ts +5 -1
  32. package/dist/make-leader-worker.d.ts.map +1 -1
  33. package/dist/make-leader-worker.js +16 -83
  34. package/dist/make-leader-worker.js.map +1 -1
  35. package/dist/webchannel.d.ts.map +1 -1
  36. package/dist/webchannel.js +13 -3
  37. package/dist/webchannel.js.map +1 -1
  38. package/dist/worker-schema.d.ts +35 -19
  39. package/dist/worker-schema.d.ts.map +1 -1
  40. package/dist/worker-schema.js +14 -19
  41. package/dist/worker-schema.js.map +1 -1
  42. package/package.json +12 -11
  43. package/src/client-session/{persisted-adapter.ts → adapter.ts} +193 -57
  44. package/src/devtools/devtools-server.ts +3 -0
  45. package/src/index.ts +1 -2
  46. package/src/leader-thread-lazy.ts +5 -0
  47. package/src/leader-thread-shared.ts +167 -0
  48. package/src/make-leader-worker.ts +22 -138
  49. package/src/webchannel.ts +16 -3
  50. package/src/worker-schema.ts +23 -26
  51. package/rollup.config.mjs +0 -24
  52. package/src/client-session/in-memory-adapter.ts +0 -170
  53. package/tmp/pack.tgz +0 -0
  54. package/tsconfig.json +0 -17
@@ -0,0 +1,44 @@
1
+ import type { Adapter, SyncOptions } from '@livestore/common';
2
+ import type { TestingOverrides } from '../leader-thread-shared.js';
3
+ import * as WorkerSchema from '../worker-schema.js';
4
+ export interface NodeAdapterOptions {
5
+ storage: WorkerSchema.StorageType;
6
+ /** The default is the hostname of the current machine */
7
+ clientId?: string;
8
+ /**
9
+ * Warning: This adapter doesn't currently support multiple client sessions for the same client (i.e. same storeId + clientId)
10
+ * @default 'static'
11
+ */
12
+ sessionId?: string;
13
+ devtools?: {
14
+ schemaPath: string;
15
+ /**
16
+ * Where to run the devtools server (via Vite)
17
+ *
18
+ * @default 4242
19
+ */
20
+ port?: number;
21
+ /**
22
+ * @default 'localhost'
23
+ */
24
+ host?: string;
25
+ };
26
+ /** Only used internally for testing */
27
+ testing?: {
28
+ overrides?: TestingOverrides;
29
+ };
30
+ }
31
+ /** Runs everything in the same thread. Use `makeWorkerAdapter` for multi-threaded implementation. */
32
+ export declare const makeAdapter: ({ sync, ...options }: NodeAdapterOptions & {
33
+ sync?: SyncOptions;
34
+ }) => Adapter;
35
+ /**
36
+ * Runs persistence and syncing in a worker thread.
37
+ */
38
+ export declare const makeWorkerAdapter: ({ workerUrl, ...options }: NodeAdapterOptions & {
39
+ /**
40
+ * Example: `new URL('./livestore.worker.js', import.meta.url)`
41
+ */
42
+ workerUrl: URL;
43
+ }) => Adapter;
44
+ //# sourceMappingURL=adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/client-session/adapter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,OAAO,EAOP,WAAW,EACZ,MAAM,mBAAmB,CAAA;AAwB1B,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,QAAQ,CAAC,EAAE;QACT,UAAU,EAAE,MAAM,CAAA;QAClB;;;;WAIG;QACH,IAAI,CAAC,EAAE,MAAM,CAAA;QACb;;WAEG;QACH,IAAI,CAAC,EAAE,MAAM,CAAA;KACd,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,2BAG/B,kBAAkB,GAAG;IACtB;;OAEG;IACH,SAAS,EAAE,GAAG,CAAA;CACf,KAAG,OAA+F,CAAA"}
@@ -0,0 +1,202 @@
1
+ import { hostname } from 'node:os';
2
+ import * as WT from 'node:worker_threads';
3
+ import { Devtools, UnexpectedError } from '@livestore/common';
4
+ import { Eventlog, LeaderThreadCtx } from '@livestore/common/leader-thread';
5
+ import { LiveStoreEvent } from '@livestore/common/schema';
6
+ import * as DevtoolsNode from '@livestore/devtools-node-common/web-channel';
7
+ import { loadSqlite3Wasm } from '@livestore/sqlite-wasm/load-wasm';
8
+ import { sqliteDbFactory } from '@livestore/sqlite-wasm/node';
9
+ import { Cause, Effect, FetchHttpClient, Fiber, Layer, ParseResult, Queue, Schema, Stream, SubscriptionRef, Worker, WorkerError, } from '@livestore/utils/effect';
10
+ import { PlatformNode } from '@livestore/utils/node';
11
+ import { makeLeaderThread } from '../leader-thread-shared.js';
12
+ import { makeShutdownChannel } from '../shutdown-channel.js';
13
+ import * as WorkerSchema from '../worker-schema.js';
14
+ /** Runs everything in the same thread. Use `makeWorkerAdapter` for multi-threaded implementation. */
15
+ export const makeAdapter = ({ sync, ...options }) => makeAdapterImpl({ ...options, leaderThread: { _tag: 'single-threaded', sync } });
16
+ /**
17
+ * Runs persistence and syncing in a worker thread.
18
+ */
19
+ export const makeWorkerAdapter = ({ workerUrl, ...options }) => makeAdapterImpl({ ...options, leaderThread: { _tag: 'multi-threaded', workerUrl } });
20
+ const makeAdapterImpl = ({ storage, devtools: devtoolsOptionsInput, clientId = hostname(),
21
+ // TODO make this dynamic and actually support multiple sessions
22
+ sessionId = 'static', testing, leaderThread: leaderThreadInput, }) => (({ storeId, devtoolsEnabled, shutdown, connectDevtoolsToStore, bootStatusQueue, syncPayload, schema }) => Effect.gen(function* () {
23
+ yield* Queue.offer(bootStatusQueue, { stage: 'loading' });
24
+ const sqlite3 = yield* Effect.promise(() => loadSqlite3Wasm());
25
+ const makeSqliteDb = yield* sqliteDbFactory({ sqlite3 });
26
+ // TODO consider bringing back happy-path initialisation boost
27
+ // const fileData = yield* fs.readFile(dbFilePath).pipe(Effect.either)
28
+ // if (fileData._tag === 'Right') {
29
+ // syncInMemoryDb.import(fileData.right)
30
+ // } else {
31
+ // yield* Effect.logWarning('Failed to load database file', fileData.left)
32
+ // }
33
+ if (leaderThreadInput._tag === 'multi-threaded') {
34
+ // TODO make static import again once BroadcastChannel is stable in Deno
35
+ //
36
+ // const { makeShutdownChannel } = yield* Effect.promise(() => import('../shutdown-channel.js'))
37
+ const shutdownChannel = yield* makeShutdownChannel(storeId);
38
+ yield* shutdownChannel.listen.pipe(Stream.flatten(), Stream.tap((error) => Effect.sync(() => shutdown(Cause.fail(error)))), Stream.runDrain, Effect.interruptible, Effect.tapCauseLogPretty, Effect.forkScoped);
39
+ }
40
+ const syncInMemoryDb = yield* makeSqliteDb({ _tag: 'in-memory' }).pipe(Effect.orDie);
41
+ // TODO actually implement this multi-session support
42
+ const lockStatus = yield* SubscriptionRef.make('has-lock');
43
+ const devtoolsOptions = devtoolsEnabled && devtoolsOptionsInput !== undefined
44
+ ? {
45
+ enabled: true,
46
+ schemaPath: devtoolsOptionsInput.schemaPath,
47
+ port: devtoolsOptionsInput.port ?? 4242,
48
+ host: devtoolsOptionsInput.host ?? 'localhost',
49
+ }
50
+ : { enabled: false };
51
+ const { leaderThread, initialSnapshot } = leaderThreadInput._tag === 'single-threaded'
52
+ ? yield* makeLocalLeaderThread({
53
+ storeId,
54
+ clientId,
55
+ schema,
56
+ makeSqliteDb,
57
+ syncOptions: leaderThreadInput.sync,
58
+ syncPayload,
59
+ devtools: devtoolsOptions,
60
+ storage,
61
+ testing,
62
+ }).pipe(UnexpectedError.mapToUnexpectedError)
63
+ : yield* makeWorkerLeaderThread({
64
+ shutdown,
65
+ storeId,
66
+ clientId,
67
+ sessionId,
68
+ workerUrl: leaderThreadInput.workerUrl,
69
+ storage,
70
+ devtools: devtoolsOptions,
71
+ bootStatusQueue,
72
+ syncPayload,
73
+ });
74
+ syncInMemoryDb.import(initialSnapshot);
75
+ if (devtoolsOptions.enabled) {
76
+ yield* Effect.gen(function* () {
77
+ const webmeshNode = yield* DevtoolsNode.makeNodeDevtoolsConnectedMeshNode({
78
+ url: `ws://${devtoolsOptions.host}:${devtoolsOptions.port}`,
79
+ nodeName: `client-session-${storeId}-${clientId}-${sessionId}`,
80
+ });
81
+ const sessionsChannel = yield* webmeshNode.makeBroadcastChannel({
82
+ channelName: 'session-info',
83
+ schema: Devtools.SessionInfo.Message,
84
+ });
85
+ yield* Devtools.SessionInfo.provideSessionInfo({
86
+ webChannel: sessionsChannel,
87
+ sessionInfo: Devtools.SessionInfo.SessionInfo.make({ storeId, clientId, sessionId }),
88
+ }).pipe(Effect.tapCauseLogPretty, Effect.forkScoped);
89
+ const storeDevtoolsChannel = yield* DevtoolsNode.makeChannelForConnectedMeshNode({
90
+ node: webmeshNode,
91
+ target: `devtools-${storeId}-${clientId}-${sessionId}`,
92
+ schema: { listen: Devtools.ClientSession.MessageToApp, send: Devtools.ClientSession.MessageFromApp },
93
+ });
94
+ yield* connectDevtoolsToStore(storeDevtoolsChannel);
95
+ }).pipe(Effect.tapCauseLogPretty, Effect.withSpan('@livestore/adapter-node:client-session:devtools'), Effect.forkScoped);
96
+ }
97
+ const devtools = devtoolsEnabled
98
+ ? { enabled: true, pullLatch: yield* Effect.makeLatch(true), pushLatch: yield* Effect.makeLatch(true) }
99
+ : { enabled: false };
100
+ const clientSession = {
101
+ sqliteDb: syncInMemoryDb,
102
+ leaderThread,
103
+ devtools,
104
+ lockStatus,
105
+ clientId,
106
+ sessionId,
107
+ shutdown,
108
+ };
109
+ return clientSession;
110
+ }).pipe(Effect.withSpan('@livestore/adapter-node:adapter'), Effect.parallelFinalizers, Effect.provide(PlatformNode.NodeFileSystem.layer), Effect.provide(FetchHttpClient.layer)));
111
+ const makeLocalLeaderThread = ({ storeId, clientId, schema, makeSqliteDb, syncOptions, syncPayload, storage, devtools, testing, }) => Effect.gen(function* () {
112
+ const layer = yield* Layer.build(makeLeaderThread({
113
+ storeId,
114
+ clientId,
115
+ schema,
116
+ syncOptions,
117
+ storage,
118
+ syncPayload,
119
+ devtools,
120
+ makeSqliteDb,
121
+ testing: testing?.overrides,
122
+ }).pipe(Layer.unwrapScoped));
123
+ return yield* Effect.gen(function* () {
124
+ const { dbState, dbEventlog, syncProcessor, extraIncomingMessagesQueue, initialState } = yield* LeaderThreadCtx;
125
+ const initialLeaderHead = Eventlog.getClientHeadFromDb(dbEventlog);
126
+ const leaderThread = {
127
+ events: {
128
+ pull: testing?.overrides?.clientSession?.leaderThreadProxy?.events?.pull ??
129
+ (({ cursor }) => syncProcessor.pull({ cursor })),
130
+ push: (batch) => syncProcessor.push(batch.map((item) => new LiveStoreEvent.EncodedWithMeta(item)), { waitForProcessing: true }),
131
+ },
132
+ initialState: { leaderHead: initialLeaderHead, migrationsReport: initialState.migrationsReport },
133
+ export: Effect.sync(() => dbState.export()),
134
+ getEventlogData: Effect.sync(() => dbEventlog.export()),
135
+ getSyncState: syncProcessor.syncState,
136
+ sendDevtoolsMessage: (message) => extraIncomingMessagesQueue.offer(message),
137
+ };
138
+ const initialSnapshot = dbState.export();
139
+ return { leaderThread, initialSnapshot };
140
+ }).pipe(Effect.provide(layer));
141
+ });
142
+ const makeWorkerLeaderThread = ({ shutdown, storeId, clientId, sessionId, workerUrl, storage, devtools, bootStatusQueue, syncPayload, testing, }) => Effect.gen(function* () {
143
+ const nodeWorker = new WT.Worker(workerUrl, {
144
+ execArgv: process.env.DEBUG_WORKER ? ['--inspect --enable-source-maps'] : ['--enable-source-maps'],
145
+ argv: [Schema.encodeSync(WorkerSchema.WorkerArgv)({ storeId, clientId, sessionId })],
146
+ });
147
+ const nodeWorkerLayer = yield* Layer.build(PlatformNode.NodeWorker.layer(() => nodeWorker));
148
+ const worker = yield* Worker.makePoolSerialized({
149
+ size: 1,
150
+ concurrency: 100,
151
+ initialMessage: () => new WorkerSchema.LeaderWorkerInner.InitialMessage({
152
+ storeId,
153
+ clientId,
154
+ storage,
155
+ devtools,
156
+ syncPayload,
157
+ }),
158
+ }).pipe(Effect.provide(nodeWorkerLayer), UnexpectedError.mapToUnexpectedError, Effect.tapErrorCause((cause) => Effect.sync(() => shutdown(cause))), Effect.withSpan('@livestore/adapter-node:adapter:setupLeaderThread'));
159
+ yield* Effect.addFinalizer(() => Effect.gen(function* () {
160
+ // We first try to gracefully shutdown the leader worker and then forcefully terminate it
161
+ yield* Effect.raceFirst(runInWorker(new WorkerSchema.LeaderWorkerInner.Shutdown()).pipe(Effect.andThen(() => nodeWorker.terminate())), Effect.sync(() => {
162
+ console.warn('[@livestore/adapter-node:adapter] Worker did not gracefully shutdown in time, terminating it');
163
+ nodeWorker.terminate();
164
+ }).pipe(Effect.delay(1000))).pipe(Effect.exit); // The disconnect is to prevent the interrupt to bubble out
165
+ }).pipe(Effect.withSpan('@livestore/adapter-node:adapter:shutdown'), Effect.tapCauseLogPretty, Effect.orDie));
166
+ const runInWorker = (req) => worker.executeEffect(req).pipe(Effect.logWarnIfTakesLongerThan({
167
+ label: `@livestore/adapter-node:client-session:runInWorker:${req._tag}`,
168
+ duration: 2000,
169
+ }), Effect.withSpan(`@livestore/adapter-node:client-session:runInWorker:${req._tag}`), Effect.mapError((cause) => Schema.is(UnexpectedError)(cause)
170
+ ? cause
171
+ : ParseResult.isParseError(cause) || Schema.is(WorkerError.WorkerError)(cause)
172
+ ? new UnexpectedError({ cause })
173
+ : cause), Effect.catchAllDefect((cause) => new UnexpectedError({ cause })));
174
+ const runInWorkerStream = (req) => worker.execute(req).pipe(Stream.mapError((cause) => Schema.is(UnexpectedError)(cause)
175
+ ? cause
176
+ : ParseResult.isParseError(cause) || Schema.is(WorkerError.WorkerError)(cause)
177
+ ? new UnexpectedError({ cause })
178
+ : cause), Stream.withSpan(`@livestore/adapter-node:client-session:runInWorkerStream:${req._tag}`));
179
+ const bootStatusFiber = yield* runInWorkerStream(new WorkerSchema.LeaderWorkerInner.BootStatusStream()).pipe(Stream.tap((bootStatus) => Queue.offer(bootStatusQueue, bootStatus)), Stream.runDrain, Effect.tapErrorCause((cause) => Cause.isInterruptedOnly(cause) ? Effect.void : Effect.sync(() => shutdown(cause))), Effect.interruptible, Effect.tapCauseLogPretty, Effect.forkScoped);
180
+ yield* Queue.awaitShutdown(bootStatusQueue).pipe(Effect.andThen(Fiber.interrupt(bootStatusFiber)), Effect.tapCauseLogPretty, Effect.forkScoped);
181
+ const initialLeaderHead = yield* runInWorker(new WorkerSchema.LeaderWorkerInner.GetLeaderHead());
182
+ const bootResult = yield* runInWorker(new WorkerSchema.LeaderWorkerInner.GetRecreateSnapshot()).pipe(Effect.timeout(10_000), UnexpectedError.mapToUnexpectedError, Effect.withSpan('@livestore/adapter-node:client-session:export'));
183
+ const leaderThread = {
184
+ events: {
185
+ pull: testing?.overrides?.clientSession?.leaderThreadProxy?.events?.pull ??
186
+ (({ cursor }) => runInWorkerStream(new WorkerSchema.LeaderWorkerInner.PullStream({ cursor })).pipe(Stream.orDie)),
187
+ push: (batch) => runInWorker(new WorkerSchema.LeaderWorkerInner.PushToLeader({ batch })).pipe(Effect.withSpan('@livestore/adapter-node:client-session:pushToLeader', {
188
+ attributes: { batchSize: batch.length },
189
+ })),
190
+ },
191
+ initialState: {
192
+ leaderHead: initialLeaderHead,
193
+ migrationsReport: bootResult.migrationsReport,
194
+ },
195
+ export: runInWorker(new WorkerSchema.LeaderWorkerInner.Export()).pipe(Effect.timeout(10_000), UnexpectedError.mapToUnexpectedError, Effect.withSpan('@livestore/adapter-node:client-session:export')),
196
+ getEventlogData: Effect.dieMessage('Not implemented'),
197
+ getSyncState: runInWorker(new WorkerSchema.LeaderWorkerInner.GetLeaderSyncState()).pipe(UnexpectedError.mapToUnexpectedError, Effect.withSpan('@livestore/adapter-node:client-session:getLeaderSyncState')),
198
+ sendDevtoolsMessage: (message) => runInWorker(new WorkerSchema.LeaderWorkerInner.ExtraDevtoolsMessage({ message })).pipe(UnexpectedError.mapToUnexpectedError, Effect.withSpan('@livestore/adapter-node:client-session:devtoolsMessageForLeader')),
199
+ };
200
+ return { leaderThread, initialSnapshot: bootResult.snapshot };
201
+ });
202
+ //# sourceMappingURL=adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/client-session/adapter.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,10 @@
1
- import type { Adapter, ClientSessionLeaderThreadProxy, MakeSqliteDb, SqliteDb, SyncOptions } from '@livestore/common';
1
+ import type { Adapter, MakeSqliteDb, SyncOptions } from '@livestore/common';
2
2
  import { UnexpectedError } from '@livestore/common';
3
- import { Effect } from '@livestore/utils/effect';
3
+ import type { LiveStoreSchema } from '@livestore/common/schema';
4
+ import { LiveStoreEvent } from '@livestore/common/schema';
5
+ import type { Schema } from '@livestore/utils/effect';
6
+ import { Effect, Stream } from '@livestore/utils/effect';
7
+ import type { TestingOverrides } from '../leader-shared.js';
4
8
  export interface InMemoryAdapterOptions {
5
9
  sync?: SyncOptions;
6
10
  /**
@@ -16,14 +20,145 @@ export interface InMemoryAdapterOptions {
16
20
  overrides?: TestingOverrides;
17
21
  };
18
22
  }
19
- export type TestingOverrides = {
20
- clientSession?: {
21
- leaderThreadProxy?: Partial<ClientSessionLeaderThreadProxy>;
23
+ export declare const makeInMemoryAdapter: ({ sync: syncOptions, clientId, sessionId, testing }: InMemoryAdapterOptions) => Adapter;
24
+ export declare const makeInMemoryLeaderThread: ({ storeId, clientId, schema, makeSqliteDb, syncOptions, syncPayload, testing, }: {
25
+ storeId: string;
26
+ clientId: string;
27
+ schema: LiveStoreSchema;
28
+ makeSqliteDb: MakeSqliteDb;
29
+ syncOptions: SyncOptions | undefined;
30
+ syncPayload: Schema.JsonValue | undefined;
31
+ testing?: {
32
+ overrides?: TestingOverrides;
22
33
  };
23
- makeLeaderThread?: {
24
- dbEventlog?: (makeSqliteDb: MakeSqliteDb) => Effect.Effect<SqliteDb, UnexpectedError>;
34
+ }) => Effect.Effect<{
35
+ leaderThread: {
36
+ events: {
37
+ pull: (args: {
38
+ cursor: import("@livestore/common").LeaderPullCursor;
39
+ }) => Stream.Stream<{
40
+ payload: {
41
+ readonly _tag: "upstream-rebase";
42
+ readonly rollbackEvents: readonly LiveStoreEvent.EncodedWithMeta[];
43
+ readonly newEvents: readonly LiveStoreEvent.EncodedWithMeta[];
44
+ } | {
45
+ readonly _tag: "upstream-advance";
46
+ readonly newEvents: readonly LiveStoreEvent.EncodedWithMeta[];
47
+ };
48
+ mergeCounter: number;
49
+ }, UnexpectedError>;
50
+ push: (batch: readonly LiveStoreEvent.AnyEncoded[]) => Effect.Effect<void, import("@livestore/common").LeaderAheadError, never>;
51
+ };
52
+ initialState: {
53
+ leaderHead: import("@livestore/common/dist/schema/EventId.js").EventId;
54
+ migrationsReport: {
55
+ readonly migrations: readonly {
56
+ readonly tableName: string;
57
+ readonly hashes: {
58
+ readonly expected: number;
59
+ readonly actual?: number | undefined;
60
+ };
61
+ }[];
62
+ };
63
+ };
64
+ export: Effect.Effect<Uint8Array<ArrayBufferLike>, never, never>;
65
+ getEventlogData: Effect.Effect<Uint8Array<ArrayBufferLike>, never, never>;
66
+ getSyncState: import("@livestore/utils/dist/effect/Subscribable.js").Subscribable<import("@livestore/common/dist/sync/syncstate.js").SyncState, never, never>;
67
+ sendDevtoolsMessage: (message: {
68
+ readonly clientId: string;
69
+ readonly _tag: "LSD.Leader.SnapshotReq";
70
+ readonly liveStoreVersion: "0.3.0-dev.33";
71
+ readonly requestId: string;
72
+ } | {
73
+ readonly clientId: string;
74
+ readonly _tag: "LSD.Leader.EventlogReq";
75
+ readonly liveStoreVersion: "0.3.0-dev.33";
76
+ readonly requestId: string;
77
+ } | {
78
+ readonly clientId: string;
79
+ readonly _tag: "LSD.Leader.NetworkStatusSubscribe";
80
+ readonly liveStoreVersion: "0.3.0-dev.33";
81
+ readonly requestId: string;
82
+ readonly subscriptionId: string;
83
+ } | {
84
+ readonly clientId: string;
85
+ readonly _tag: "LSD.Leader.NetworkStatusUnsubscribe";
86
+ readonly liveStoreVersion: "0.3.0-dev.33";
87
+ readonly requestId: string;
88
+ readonly subscriptionId: string;
89
+ } | {
90
+ readonly clientId: string;
91
+ readonly _tag: "LSD.Leader.Disconnect";
92
+ readonly liveStoreVersion: "0.3.0-dev.33";
93
+ readonly requestId: string;
94
+ } | {
95
+ readonly clientId: string;
96
+ readonly _tag: "LSD.Leader.CommitEventReq";
97
+ readonly liveStoreVersion: "0.3.0-dev.33";
98
+ readonly requestId: string;
99
+ readonly eventEncoded: {
100
+ readonly name: string;
101
+ readonly args: any;
102
+ };
103
+ } | {
104
+ readonly clientId: string;
105
+ readonly _tag: "LSD.Leader.Ping";
106
+ readonly liveStoreVersion: "0.3.0-dev.33";
107
+ readonly requestId: string;
108
+ } | {
109
+ readonly clientId: string;
110
+ readonly _tag: "LSD.Leader.DatabaseFileInfoReq";
111
+ readonly liveStoreVersion: "0.3.0-dev.33";
112
+ readonly requestId: string;
113
+ } | {
114
+ readonly clientId: string;
115
+ readonly _tag: "LSD.Leader.SyncHistorySubscribe";
116
+ readonly liveStoreVersion: "0.3.0-dev.33";
117
+ readonly requestId: string;
118
+ readonly subscriptionId: string;
119
+ } | {
120
+ readonly clientId: string;
121
+ readonly _tag: "LSD.Leader.SyncHistoryUnsubscribe";
122
+ readonly liveStoreVersion: "0.3.0-dev.33";
123
+ readonly requestId: string;
124
+ readonly subscriptionId: string;
125
+ } | {
126
+ readonly clientId: string;
127
+ readonly _tag: "LSD.Leader.SyncingInfoReq";
128
+ readonly liveStoreVersion: "0.3.0-dev.33";
129
+ readonly requestId: string;
130
+ } | {
131
+ readonly clientId: string;
132
+ readonly _tag: "LSD.Leader.SyncHeadSubscribe";
133
+ readonly liveStoreVersion: "0.3.0-dev.33";
134
+ readonly requestId: string;
135
+ readonly subscriptionId: string;
136
+ } | {
137
+ readonly clientId: string;
138
+ readonly _tag: "LSD.Leader.SyncHeadUnsubscribe";
139
+ readonly liveStoreVersion: "0.3.0-dev.33";
140
+ readonly requestId: string;
141
+ readonly subscriptionId: string;
142
+ } | {
143
+ readonly clientId: string;
144
+ readonly _tag: "LSD.Leader.LoadDatabaseFile.Request";
145
+ readonly liveStoreVersion: "0.3.0-dev.33";
146
+ readonly requestId: string;
147
+ readonly data: Uint8Array<ArrayBufferLike>;
148
+ } | {
149
+ readonly clientId: string;
150
+ readonly _tag: "LSD.Leader.ResetAllData.Request";
151
+ readonly mode: "all-data" | "only-app-db";
152
+ readonly liveStoreVersion: "0.3.0-dev.33";
153
+ readonly requestId: string;
154
+ } | {
155
+ readonly clientId: string;
156
+ readonly _tag: "LSD.Leader.SetSyncLatch.Request";
157
+ readonly liveStoreVersion: "0.3.0-dev.33";
158
+ readonly requestId: string;
159
+ readonly closeLatch: boolean;
160
+ }) => Effect.Effect<boolean, never, never>;
25
161
  };
26
- };
27
- /** NOTE: This adapter is currently only used for testing */
28
- export declare const makeInMemoryAdapter: ({ sync: syncOptions, clientId, sessionId, testing }: InMemoryAdapterOptions) => Adapter;
162
+ initialSnapshot: Uint8Array<ArrayBufferLike>;
163
+ }, UnexpectedError | import("@livestore/common").SqliteError, import("effect/Scope").Scope>;
29
164
  //# sourceMappingURL=in-memory-adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"in-memory-adapter.d.ts","sourceRoot":"","sources":["../../src/client-session/in-memory-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EAEP,8BAA8B,EAE9B,YAAY,EACZ,QAAQ,EACR,WAAW,EACZ,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAOnD,OAAO,EAAS,MAAM,EAAmD,MAAM,yBAAyB,CAAA;AAOxG,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;IAElB,uCAAuC;IACvC,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,gBAAgB,CAAA;KAC7B,CAAA;CACF;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,aAAa,CAAC,EAAE;QACd,iBAAiB,CAAC,EAAE,OAAO,CAAC,8BAA8B,CAAC,CAAA;KAC5D,CAAA;IACD,gBAAgB,CAAC,EAAE;QACjB,UAAU,CAAC,EAAE,CAAC,YAAY,EAAE,YAAY,KAAK,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAA;KACtF,CAAA;CACF,CAAA;AAED,4DAA4D;AAC5D,eAAO,MAAM,mBAAmB,GAC7B,qDAA+E,sBAAsB,KAAG,OAkD1D,CAAA"}
1
+ {"version":3,"file":"in-memory-adapter.d.ts","sourceRoot":"","sources":["../../src/client-session/in-memory-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EAIP,YAAY,EAEZ,WAAW,EACZ,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAGzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAS,MAAM,EAA0B,MAAM,EAAmB,MAAM,yBAAyB,CAAA;AAGxG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAK3D,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;IAElB,uCAAuC;IACvC,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,gBAAgB,CAAA;KAC7B,CAAA;CACF;AAED,eAAO,MAAM,mBAAmB,GAC7B,qDAA+E,sBAAsB,KAAG,OAkD1D,CAAA;AAEjD,eAAO,MAAM,wBAAwB,GAAI,iFAQtC;IACD,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,eAAe,CAAA;IACvB,YAAY,EAAE,YAAY,CAAA;IAC1B,WAAW,EAAE,WAAW,GAAG,SAAS,CAAA;IACpC,WAAW,EAAE,MAAM,CAAC,SAAS,GAAG,SAAS,CAAA;IACzC,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,gBAAgB,CAAA;KAC7B,CAAA;CACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2FA+CG,CAAA"}
@@ -6,7 +6,6 @@ import { loadSqlite3Wasm } from '@livestore/sqlite-wasm/load-wasm';
6
6
  import { Cause, Effect, FetchHttpClient, Layer, Stream, SubscriptionRef } from '@livestore/utils/effect';
7
7
  import { nanoid } from '@livestore/utils/nanoid';
8
8
  import { makeShutdownChannel } from '../shutdown-channel.js';
9
- /** NOTE: This adapter is currently only used for testing */
10
9
  export const makeInMemoryAdapter = ({ sync: syncOptions, clientId = 'in-memory', sessionId = nanoid(6), testing }) => ({ schema, storeId, shutdown, syncPayload,
11
10
  // devtoolsEnabled, bootStatusQueue, shutdown, connectDevtoolsToStore
12
11
  }) => Effect.gen(function* () {
@@ -16,7 +15,7 @@ export const makeInMemoryAdapter = ({ sync: syncOptions, clientId = 'in-memory',
16
15
  const lockStatus = yield* SubscriptionRef.make('has-lock');
17
16
  const shutdownChannel = yield* makeShutdownChannel(storeId);
18
17
  yield* shutdownChannel.listen.pipe(Stream.flatten(), Stream.tap((error) => Effect.sync(() => shutdown(Cause.fail(error)))), Stream.runDrain, Effect.interruptible, Effect.tapCauseLogPretty, Effect.forkScoped);
19
- const { leaderThread, initialSnapshot } = yield* makeLeaderThread({
18
+ const { leaderThread, initialSnapshot } = yield* makeInMemoryLeaderThread({
20
19
  storeId,
21
20
  clientId,
22
21
  schema,
@@ -37,10 +36,10 @@ export const makeInMemoryAdapter = ({ sync: syncOptions, clientId = 'in-memory',
37
36
  };
38
37
  return clientSession;
39
38
  }).pipe(UnexpectedError.mapToUnexpectedError);
40
- const makeLeaderThread = ({ storeId, clientId, schema, makeSqliteDb, syncOptions, syncPayload, testing, }) => Effect.gen(function* () {
39
+ export const makeInMemoryLeaderThread = ({ storeId, clientId, schema, makeSqliteDb, syncOptions, syncPayload, testing, }) => Effect.gen(function* () {
41
40
  const layer = yield* Layer.memoize(makeLeaderThreadLayer({
42
41
  clientId,
43
- dbReadModel: yield* makeSqliteDb({ _tag: 'in-memory' }),
42
+ dbState: yield* makeSqliteDb({ _tag: 'in-memory' }),
44
43
  dbEventlog: testing?.overrides?.makeLeaderThread?.dbEventlog
45
44
  ? yield* testing.overrides.makeLeaderThread.dbEventlog(makeSqliteDb)
46
45
  : yield* makeSqliteDb({ _tag: 'in-memory' }),
@@ -54,7 +53,7 @@ const makeLeaderThread = ({ storeId, clientId, schema, makeSqliteDb, syncOptions
54
53
  syncPayload,
55
54
  }).pipe(Layer.provideMerge(FetchHttpClient.layer)));
56
55
  return yield* Effect.gen(function* () {
57
- const { dbReadModel, dbEventlog, syncProcessor, extraIncomingMessagesQueue, initialState } = yield* LeaderThreadCtx;
56
+ const { dbState, dbEventlog, syncProcessor, extraIncomingMessagesQueue, initialState } = yield* LeaderThreadCtx;
58
57
  const initialLeaderHead = Eventlog.getClientHeadFromDb(dbEventlog);
59
58
  const leaderThread = {
60
59
  events: {
@@ -63,12 +62,12 @@ const makeLeaderThread = ({ storeId, clientId, schema, makeSqliteDb, syncOptions
63
62
  push: (batch) => syncProcessor.push(batch.map((item) => new LiveStoreEvent.EncodedWithMeta(item)), { waitForProcessing: true }),
64
63
  },
65
64
  initialState: { leaderHead: initialLeaderHead, migrationsReport: initialState.migrationsReport },
66
- export: Effect.sync(() => dbReadModel.export()),
65
+ export: Effect.sync(() => dbState.export()),
67
66
  getEventlogData: Effect.sync(() => dbEventlog.export()),
68
67
  getSyncState: syncProcessor.syncState,
69
68
  sendDevtoolsMessage: (message) => extraIncomingMessagesQueue.offer(message),
70
69
  };
71
- const initialSnapshot = dbReadModel.export();
70
+ const initialSnapshot = dbState.export();
72
71
  return { leaderThread, initialSnapshot };
73
72
  }).pipe(Effect.provide(layer));
74
73
  });
@@ -1 +1 @@
1
- {"version":3,"file":"in-memory-adapter.js","sourceRoot":"","sources":["../../src/client-session/in-memory-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"in-memory-adapter.js","sourceRoot":"","sources":["../../src/client-session/in-memory-adapter.ts"],"names":[],"mappings":"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"}
@@ -1,32 +1,44 @@
1
- import type { Adapter } from '@livestore/common';
1
+ import type { Adapter, SyncOptions } from '@livestore/common';
2
+ import type { TestingOverrides } from '../leader-shared.js';
3
+ import * as WorkerSchema from '../worker-schema.js';
2
4
  export interface NodeAdapterOptions {
3
- /**
4
- * Example: `new URL('./livestore.worker.js', import.meta.url)`
5
- */
6
- workerUrl: URL;
7
- /** Needed for the worker and the devtools */
8
- schemaPath: string;
9
- /** Where to store the database files */
10
- baseDirectory?: string;
5
+ storage: WorkerSchema.StorageType;
11
6
  /** The default is the hostname of the current machine */
12
7
  clientId?: string;
13
- /** @default 'static' */
8
+ /**
9
+ * Warning: This adapter doesn't currently support multiple client sessions for the same client (i.e. same storeId + clientId)
10
+ * @default 'static'
11
+ */
14
12
  sessionId?: string;
15
13
  devtools?: {
14
+ schemaPath: string;
16
15
  /**
17
16
  * Where to run the devtools server (via Vite)
18
17
  *
19
18
  * @default 4242
20
19
  */
21
- port: number;
20
+ port?: number;
22
21
  /**
23
22
  * @default 'localhost'
24
23
  */
25
- host: string;
24
+ host?: string;
25
+ };
26
+ /** Only used internally for testing */
27
+ testing?: {
28
+ overrides?: TestingOverrides;
26
29
  };
27
30
  }
31
+ /** Runs everything in the same thread. Use `makeWorkerAdapter` for multi-threaded implementation. */
32
+ export declare const makeAdapter: ({ sync, ...options }: NodeAdapterOptions & {
33
+ sync?: SyncOptions;
34
+ }) => Adapter;
28
35
  /**
29
- * Warning: This adapter doesn't currently support multiple client sessions for the same client (i.e. same storeId + clientId)
36
+ * Runs persistence and syncing in a worker thread.
30
37
  */
31
- export declare const makePersistedAdapter: ({ workerUrl, schemaPath, baseDirectory, devtools: devtoolsOptions, clientId, sessionId, }: NodeAdapterOptions) => Adapter;
38
+ export declare const makeWorkerAdapter: ({ workerUrl, ...options }: NodeAdapterOptions & {
39
+ /**
40
+ * Example: `new URL('./livestore.worker.js', import.meta.url)`
41
+ */
42
+ workerUrl: URL;
43
+ }) => Adapter;
32
44
  //# sourceMappingURL=persisted-adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"persisted-adapter.d.ts","sourceRoot":"","sources":["../../src/client-session/persisted-adapter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,OAAO,EAMR,MAAM,mBAAmB,CAAA;AAwB1B,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;QACZ;;WAEG;QACH,IAAI,EAAE,MAAM,CAAA;KACb,CAAA;CACF;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAAI,2FAQlC,kBAAkB,KAAG,OA+FA,CAAA"}
1
+ {"version":3,"file":"persisted-adapter.d.ts","sourceRoot":"","sources":["../../src/client-session/persisted-adapter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,OAAO,EAOP,WAAW,EACZ,MAAM,mBAAmB,CAAA;AAwB1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAG3D,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,QAAQ,CAAC,EAAE;QACT,UAAU,EAAE,MAAM,CAAA;QAClB;;;;WAIG;QACH,IAAI,CAAC,EAAE,MAAM,CAAA;QACb;;WAEG;QACH,IAAI,CAAC,EAAE,MAAM,CAAA;KACd,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,2BAG/B,kBAAkB,GAAG;IACtB;;OAEG;IACH,SAAS,EAAE,GAAG,CAAA;CACf,KAAG,OAA+F,CAAA"}