@livestore/adapter-web 0.0.0-snapshot-04bc235dd721238cb10c060705672376b6e06dd3 → 0.0.0-snapshot-f695fd72a038f4deb7b452e82cb37999b5cc30b9

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.
@@ -1,4 +1,46 @@
1
- import type { Adapter } from '@livestore/common';
2
- /** NOTE: This adapter is currently only used for testing */
3
- export declare const makeInMemoryAdapter: (initialData?: Uint8Array) => Adapter;
1
+ import type { Adapter, SyncOptions } from '@livestore/common';
2
+ import { UnexpectedError } from '@livestore/common';
3
+ import type { LiveStoreSchema } from '@livestore/common/schema';
4
+ import type * as WebmeshWorker from '@livestore/devtools-web-common/worker';
5
+ import type { MakeWebSqliteDb } from '@livestore/sqlite-wasm/browser';
6
+ import type { Schema } from '@livestore/utils/effect';
7
+ import { Fiber, Worker } from '@livestore/utils/effect';
8
+ export interface InMemoryAdapterOptions {
9
+ importSnapshot?: Uint8Array;
10
+ sync?: SyncOptions;
11
+ /**
12
+ * The client ID to use for the adapter.
13
+ *
14
+ * @default a random nanoid
15
+ */
16
+ clientId?: string;
17
+ /**
18
+ * The session ID to use for the adapter.
19
+ *
20
+ * @default a random nanoid
21
+ */
22
+ sessionId?: string;
23
+ /** In order to use the devtools with the in-memory adapter, you need to provide the shared worker. */
24
+ devtools?: {
25
+ sharedWorker: ((options: {
26
+ name: string;
27
+ }) => globalThis.SharedWorker) | (new (options: {
28
+ name: string;
29
+ }) => globalThis.SharedWorker);
30
+ };
31
+ }
32
+ export declare const makeInMemoryAdapter: (options?: InMemoryAdapterOptions) => Adapter;
33
+ export interface MakeLeaderThreadArgs {
34
+ schema: LiveStoreSchema;
35
+ storeId: string;
36
+ clientId: string;
37
+ makeSqliteDb: MakeWebSqliteDb;
38
+ syncOptions: SyncOptions | undefined;
39
+ syncPayload: Schema.JsonValue | undefined;
40
+ importSnapshot: Uint8Array | undefined;
41
+ devtoolsEnabled: boolean;
42
+ sharedWorkerFiber: SharedWorkerFiber | undefined;
43
+ }
44
+ type SharedWorkerFiber = Fiber.Fiber<Worker.SerializedWorkerPool<typeof WebmeshWorker.Schema.Request.Type>, UnexpectedError>;
45
+ export {};
4
46
  //# sourceMappingURL=in-memory-adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"in-memory-adapter.d.ts","sourceRoot":"","sources":["../../src/in-memory/in-memory-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAA+C,MAAM,mBAAmB,CAAA;AAc7F,4DAA4D;AAC5D,eAAO,MAAM,mBAAmB,GAC7B,cAAc,UAAU,KAAG,OA4CmB,CAAA"}
1
+ {"version":3,"file":"in-memory-adapter.d.ts","sourceRoot":"","sources":["../../src/in-memory/in-memory-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAA8C,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACzG,OAAO,EAA+B,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAGhF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAG/D,OAAO,KAAK,KAAK,aAAa,MAAM,uCAAuC,CAAA;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAIrE,OAAO,KAAK,EAAE,MAAM,EAAS,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAA0C,KAAK,EAA0B,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAUvH,MAAM,WAAW,sBAAsB;IACrC,cAAc,CAAC,EAAE,UAAU,CAAA;IAC3B,IAAI,CAAC,EAAE,WAAW,CAAA;IAClB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB,sGAAsG;IACtG,QAAQ,CAAC,EAAE;QACT,YAAY,EACR,CAAC,CAAC,OAAO,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,KAAK,UAAU,CAAC,YAAY,CAAC,GACxD,CAAC,KAAK,OAAO,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,KAAK,UAAU,CAAC,YAAY,CAAC,CAAA;KACjE,CAAA;CACF;AAED,eAAO,MAAM,mBAAmB,GAC7B,UAAS,sBAA2B,KAAG,OA4E8C,CAAA;AAExF,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,eAAe,CAAA;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,eAAe,CAAA;IAC7B,WAAW,EAAE,WAAW,GAAG,SAAS,CAAA;IACpC,WAAW,EAAE,MAAM,CAAC,SAAS,GAAG,SAAS,CAAA;IACzC,cAAc,EAAE,UAAU,GAAG,SAAS,CAAA;IACtC,eAAe,EAAE,OAAO,CAAA;IACxB,iBAAiB,EAAE,iBAAiB,GAAG,SAAS,CAAA;CACjD;AAoFD,KAAK,iBAAiB,GAAG,KAAK,CAAC,KAAK,CAClC,MAAM,CAAC,oBAAoB,CAAC,OAAO,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EACrE,eAAe,CAChB,CAAA"}
@@ -1,48 +1,151 @@
1
- import { migrateDb, UnexpectedError } from '@livestore/common';
2
- import { configureConnection } from '@livestore/common/leader-thread';
3
- import { EventId } from '@livestore/common/schema';
1
+ import { Devtools, makeClientSession, UnexpectedError } from '@livestore/common';
2
+ import { configureConnection, Eventlog, LeaderThreadCtx, makeLeaderThreadLayer } from '@livestore/common/leader-thread';
3
+ import { LiveStoreEvent } from '@livestore/common/schema';
4
+ import * as DevtoolsWeb from '@livestore/devtools-web-common/web-channel';
4
5
  import { sqliteDbFactory } from '@livestore/sqlite-wasm/browser';
5
6
  import { loadSqlite3Wasm } from '@livestore/sqlite-wasm/load-wasm';
6
- import { Effect, Stream, SubscriptionRef } from '@livestore/utils/effect';
7
+ import { tryAsFunctionAndNew } from '@livestore/utils';
8
+ import { BrowserWorker, Effect, FetchHttpClient, Fiber, Layer, SubscriptionRef, Worker } from '@livestore/utils/effect';
7
9
  import { nanoid } from '@livestore/utils/nanoid';
8
- // TODO unify in-memory adapter with other in-memory adapter implementations
10
+ import * as Webmesh from '@livestore/webmesh';
11
+ import { connectWebmeshNodeClientSession } from '../web-worker/client-session/client-session-devtools.js';
12
+ import { makeShutdownChannel } from '../web-worker/common/shutdown-channel.js';
9
13
  // NOTE we're starting to initialize the sqlite wasm binary here to speed things up
10
14
  const sqlite3Promise = loadSqlite3Wasm();
11
- /** NOTE: This adapter is currently only used for testing */
12
- export const makeInMemoryAdapter = (initialData) => ({ schema,
13
- // devtoolsEnabled, bootStatusQueue, shutdown, connectDevtoolsToStore
14
- }) => Effect.gen(function* () {
15
+ export const makeInMemoryAdapter = (options = {}) => (adapterArgs) => Effect.gen(function* () {
16
+ const { schema, shutdown, syncPayload, storeId, devtoolsEnabled } = adapterArgs;
15
17
  const sqlite3 = yield* Effect.promise(() => sqlite3Promise);
16
18
  const sqliteDb = yield* sqliteDbFactory({ sqlite3 })({ _tag: 'in-memory' });
17
- let migrationsReport = { migrations: [] };
18
- if (initialData === undefined) {
19
- yield* configureConnection(sqliteDb, { foreignKeys: true });
20
- migrationsReport = yield* migrateDb({ db: sqliteDb, schema });
21
- }
22
- else {
23
- sqliteDb.import(initialData);
24
- yield* configureConnection(sqliteDb, { foreignKeys: true });
25
- }
26
- const lockStatus = SubscriptionRef.make('has-lock').pipe(Effect.runSync);
27
- const clientSession = {
19
+ const clientId = options.clientId ?? nanoid(6);
20
+ const sessionId = options.sessionId ?? nanoid(6);
21
+ const sharedWebWorker = options.devtools?.sharedWorker
22
+ ? tryAsFunctionAndNew(options.devtools.sharedWorker, {
23
+ name: `livestore-shared-worker-${storeId}`,
24
+ })
25
+ : undefined;
26
+ const sharedWorkerFiber = sharedWebWorker
27
+ ? yield* Worker.makePoolSerialized({
28
+ size: 1,
29
+ concurrency: 100,
30
+ }).pipe(Effect.provide(BrowserWorker.layer(() => sharedWebWorker)), Effect.tapCauseLogPretty, UnexpectedError.mapToUnexpectedError, Effect.forkScoped)
31
+ : undefined;
32
+ const { leaderThread, initialSnapshot } = yield* makeLeaderThread({
33
+ schema,
34
+ storeId,
35
+ clientId,
36
+ makeSqliteDb: sqliteDbFactory({ sqlite3 }),
37
+ syncOptions: options.sync,
38
+ syncPayload,
39
+ importSnapshot: options.importSnapshot,
40
+ devtoolsEnabled,
41
+ sharedWorkerFiber,
42
+ });
43
+ sqliteDb.import(initialSnapshot);
44
+ const lockStatus = yield* SubscriptionRef.make('has-lock');
45
+ const clientSession = yield* makeClientSession({
46
+ ...adapterArgs,
28
47
  sqliteDb,
29
- devtools: { enabled: false },
30
- clientId: 'in-memory',
31
- sessionId: nanoid(6),
32
- leaderThread: {
48
+ clientId,
49
+ sessionId,
50
+ isLeader: true,
51
+ leaderThread,
52
+ lockStatus,
53
+ shutdown,
54
+ webmeshMode: 'direct',
55
+ connectWebmeshNode: ({ sessionInfo, webmeshNode }) => Effect.gen(function* () {
56
+ if (sharedWorkerFiber === undefined || devtoolsEnabled === false) {
57
+ return;
58
+ }
59
+ const sharedWorker = yield* sharedWorkerFiber.pipe(Fiber.join);
60
+ yield* connectWebmeshNodeClientSession({ webmeshNode, sessionInfo, sharedWorker, devtoolsEnabled, schema });
61
+ }),
62
+ registerBeforeUnload: (onBeforeUnload) => {
63
+ if (typeof window !== 'undefined' && typeof window.addEventListener === 'function') {
64
+ window.addEventListener('beforeunload', onBeforeUnload);
65
+ return () => window.removeEventListener('beforeunload', onBeforeUnload);
66
+ }
67
+ return () => { };
68
+ },
69
+ });
70
+ return clientSession;
71
+ }).pipe(UnexpectedError.mapToUnexpectedError, Effect.provide(FetchHttpClient.layer));
72
+ const makeLeaderThread = ({ schema, storeId, clientId, makeSqliteDb, syncOptions, syncPayload, importSnapshot, devtoolsEnabled, sharedWorkerFiber, }) => Effect.gen(function* () {
73
+ const runtime = yield* Effect.runtime();
74
+ const makeDb = (_kind) => {
75
+ return makeSqliteDb({
76
+ _tag: 'in-memory',
77
+ configureDb: (db) => configureConnection(db, { foreignKeys: true }).pipe(Effect.provide(runtime), Effect.runSync),
78
+ });
79
+ };
80
+ const shutdownChannel = yield* makeShutdownChannel(storeId);
81
+ // Might involve some async work, so we're running them concurrently
82
+ const [dbState, dbEventlog] = yield* Effect.all([makeDb('state'), makeDb('eventlog')], { concurrency: 2 });
83
+ if (importSnapshot) {
84
+ dbState.import(importSnapshot);
85
+ }
86
+ const devtoolsOptions = yield* makeDevtoolsOptions({
87
+ devtoolsEnabled,
88
+ sharedWorkerFiber,
89
+ dbState,
90
+ dbEventlog,
91
+ storeId,
92
+ clientId,
93
+ });
94
+ const layer = yield* Layer.build(makeLeaderThreadLayer({
95
+ schema,
96
+ storeId,
97
+ clientId,
98
+ makeSqliteDb,
99
+ syncOptions,
100
+ dbState,
101
+ dbEventlog,
102
+ devtoolsOptions,
103
+ shutdownChannel,
104
+ syncPayload,
105
+ }));
106
+ return yield* Effect.gen(function* () {
107
+ const { dbState, dbEventlog, syncProcessor, extraIncomingMessagesQueue, initialState } = yield* LeaderThreadCtx;
108
+ const initialLeaderHead = Eventlog.getClientHeadFromDb(dbEventlog);
109
+ const leaderThread = {
33
110
  events: {
34
- pull: () => Stream.never,
35
- push: () => Effect.void,
111
+ pull: ({ cursor }) => syncProcessor.pull({ cursor }),
112
+ push: (batch) => syncProcessor.push(batch.map((item) => new LiveStoreEvent.EncodedWithMeta(item)), { waitForProcessing: true }),
36
113
  },
37
- initialState: { leaderHead: EventId.ROOT, migrationsReport },
38
- export: Effect.sync(() => sqliteDb.export()),
39
- getEventlogData: Effect.succeed(new Uint8Array()),
40
- getSyncState: Effect.dieMessage('Not implemented'),
41
- sendDevtoolsMessage: () => Effect.dieMessage('Not implemented'),
42
- },
43
- lockStatus,
44
- shutdown: () => Effect.dieMessage('TODO implement shutdown'),
114
+ initialState: { leaderHead: initialLeaderHead, migrationsReport: initialState.migrationsReport },
115
+ export: Effect.sync(() => dbState.export()),
116
+ getEventlogData: Effect.sync(() => dbEventlog.export()),
117
+ getSyncState: syncProcessor.syncState,
118
+ sendDevtoolsMessage: (message) => extraIncomingMessagesQueue.offer(message),
119
+ };
120
+ const initialSnapshot = dbState.export();
121
+ return { leaderThread, initialSnapshot };
122
+ }).pipe(Effect.provide(layer));
123
+ });
124
+ const makeDevtoolsOptions = ({ devtoolsEnabled, sharedWorkerFiber, dbState, dbEventlog, storeId, clientId, }) => Effect.gen(function* () {
125
+ if (devtoolsEnabled === false || sharedWorkerFiber === undefined) {
126
+ return { enabled: false };
127
+ }
128
+ return {
129
+ enabled: true,
130
+ boot: Effect.gen(function* () {
131
+ const persistenceInfo = {
132
+ state: dbState.metadata.persistenceInfo,
133
+ eventlog: dbEventlog.metadata.persistenceInfo,
134
+ };
135
+ const node = yield* Webmesh.makeMeshNode(Devtools.makeNodeName.client.leader({ storeId, clientId }));
136
+ // @ts-expect-error TODO type this
137
+ globalThis.__debugWebmeshNodeLeader = node;
138
+ const sharedWorker = yield* sharedWorkerFiber.pipe(Fiber.join);
139
+ // TODO also make this work with the browser extension
140
+ // basic idea: instead of also connecting to the shared worker,
141
+ // connect to the client session node above which will already connect to the shared worker + browser extension
142
+ yield* DevtoolsWeb.connectViaWorker({
143
+ node,
144
+ worker: sharedWorker,
145
+ target: DevtoolsWeb.makeNodeName.sharedWorker({ storeId }),
146
+ }).pipe(Effect.tapCauseLogPretty, Effect.forkScoped);
147
+ return { node, persistenceInfo, mode: 'direct' };
148
+ }),
45
149
  };
46
- return clientSession;
47
- }).pipe(UnexpectedError.mapToUnexpectedError);
150
+ });
48
151
  //# sourceMappingURL=in-memory-adapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"in-memory-adapter.js","sourceRoot":"","sources":["../../src/in-memory/in-memory-adapter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAA;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAA;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzE,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD,4EAA4E;AAE5E,mFAAmF;AACnF,MAAM,cAAc,GAAG,eAAe,EAAE,CAAA;AAExC,4DAA4D;AAC5D,MAAM,CAAC,MAAM,mBAAmB,GAC9B,CAAC,WAAwB,EAAW,EAAE,CACtC,CAAC,EACC,MAAM;AACN,qEAAqE;EACtE,EAAE,EAAE,CACH,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,CAAA;IAE3D,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAA;IAC3E,IAAI,gBAAgB,GAAqB,EAAE,UAAU,EAAE,EAAE,EAAE,CAAA;IAE3D,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,KAAK,CAAC,CAAC,mBAAmB,CAAC,QAAQ,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;QAE3D,gBAAgB,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;IAC/D,CAAC;SAAM,CAAC;QACN,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;QAE5B,KAAK,CAAC,CAAC,mBAAmB,CAAC,QAAQ,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;IAC7D,CAAC;IAED,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAa,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAEpF,MAAM,aAAa,GAAG;QACpB,QAAQ;QACR,QAAQ,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;QAC5B,QAAQ,EAAE,WAAW;QACrB,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;QACpB,YAAY,EAAE;YACZ,MAAM,EAAE;gBACN,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK;gBACxB,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI;aACxB;YACD,YAAY,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,IAAI,EAAE,gBAAgB,EAAE;YAC5D,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC5C,eAAe,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,UAAU,EAAE,CAAC;YACjD,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC;YAClD,mBAAmB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC;SAChE;QACD,UAAU;QACV,QAAQ,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,yBAAyB,CAAC;KACrC,CAAA;IAEzB,OAAO,aAAa,CAAA;AACtB,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAA"}
1
+ {"version":3,"file":"in-memory-adapter.js","sourceRoot":"","sources":["../../src/in-memory/in-memory-adapter.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,20 @@
1
+ import { Devtools } from '@livestore/common';
1
2
  import type { LiveStoreSchema } from '@livestore/common/schema';
3
+ import * as DevtoolsWeb from '@livestore/devtools-web-common/web-channel';
4
+ import type { Worker } from '@livestore/utils/effect';
2
5
  import { Effect } from '@livestore/utils/effect';
6
+ import * as Webmesh from '@livestore/webmesh';
3
7
  export declare const logDevtoolsUrl: ({ schema, storeId, clientId, sessionId, }: {
4
8
  schema: LiveStoreSchema;
5
9
  storeId: string;
6
10
  clientId: string;
7
11
  sessionId: string;
8
12
  }) => Effect.Effect<void, never, never>;
13
+ export declare const connectWebmeshNodeClientSession: (args_0: {
14
+ webmeshNode: Webmesh.MeshNode;
15
+ sessionInfo: Devtools.SessionInfo.SessionInfo;
16
+ sharedWorker: Worker.SerializedWorkerPool<typeof DevtoolsWeb.WorkerSchema.Request.Type>;
17
+ devtoolsEnabled: boolean;
18
+ schema: LiveStoreSchema;
19
+ }) => Effect.Effect<void, import("@livestore/common").UnexpectedError, import("effect/Scope").Scope>;
9
20
  //# sourceMappingURL=client-session-devtools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client-session-devtools.d.ts","sourceRoot":"","sources":["../../../src/web-worker/client-session/client-session-devtools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAE/D,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD,eAAO,MAAM,cAAc,GAAI,2CAK5B;IACD,MAAM,EAAE,eAAe,CAAA;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;CAClB,sCAgB0F,CAAA"}
1
+ {"version":3,"file":"client-session-devtools.d.ts","sourceRoot":"","sources":["../../../src/web-worker/client-session/client-session-devtools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,KAAK,WAAW,MAAM,4CAA4C,CAAA;AAEzE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,MAAM,EAAsB,MAAM,yBAAyB,CAAA;AACpE,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAE7C,eAAO,MAAM,cAAc,GAAI,2CAK5B;IACD,MAAM,EAAE,eAAe,CAAA;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;CAClB,sCAgB0F,CAAA;AAE3F,eAAO,MAAM,+BAA+B;iBAO7B,OAAO,CAAC,QAAQ;iBAChB,QAAQ,CAAC,WAAW,CAAC,WAAW;kBAC/B,MAAM,CAAC,oBAAoB,CAAC,OAAO,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC;qBACtE,OAAO;YAChB,eAAe;oGA4CvB,CAAA"}
@@ -1,5 +1,8 @@
1
+ import { Devtools } from '@livestore/common';
2
+ import * as DevtoolsWeb from '@livestore/devtools-web-common/web-channel';
1
3
  import { isDevEnv } from '@livestore/utils';
2
- import { Effect } from '@livestore/utils/effect';
4
+ import { Effect, Stream, WebChannel } from '@livestore/utils/effect';
5
+ import * as Webmesh from '@livestore/webmesh';
3
6
  export const logDevtoolsUrl = ({ schema, storeId, clientId, sessionId, }) => Effect.gen(function* () {
4
7
  if (isDevEnv()) {
5
8
  const devtoolsPath = globalThis.LIVESTORE_DEVTOOLS_PATH ?? `/_livestore`;
@@ -15,4 +18,34 @@ export const logDevtoolsUrl = ({ schema, storeId, clientId, sessionId, }) => Eff
15
18
  }
16
19
  }
17
20
  }).pipe(Effect.withSpan('@livestore/adapter-web:client-session:devtools:logDevtoolsUrl'));
21
+ export const connectWebmeshNodeClientSession = Effect.fn(function* ({ webmeshNode, sessionInfo, sharedWorker, devtoolsEnabled, schema, }) {
22
+ if (devtoolsEnabled) {
23
+ const { clientId, sessionId, storeId } = sessionInfo;
24
+ yield* logDevtoolsUrl({ clientId, sessionId, schema, storeId });
25
+ // This additional sessioninfo broadcast channel is needed since we can't use the shared worker
26
+ // as it's currently storeId-specific
27
+ yield* Devtools.SessionInfo.provideSessionInfo({
28
+ webChannel: yield* DevtoolsWeb.makeSessionInfoBroadcastChannel,
29
+ sessionInfo,
30
+ }).pipe(Effect.tapCauseLogPretty, Effect.forkScoped);
31
+ yield* Effect.gen(function* () {
32
+ const clientSessionStaticChannel = yield* DevtoolsWeb.makeStaticClientSessionChannel.clientSession;
33
+ yield* clientSessionStaticChannel.send(DevtoolsWeb.ClientSessionContentscriptMainReq.make({ clientId, sessionId, storeId }));
34
+ const { tabId } = yield* clientSessionStaticChannel.listen.pipe(Stream.flatten(), Stream.runHead, Effect.flatten);
35
+ const contentscriptMainNodeName = DevtoolsWeb.makeNodeName.browserExtension.contentscriptMain(tabId);
36
+ const contentscriptMainChannel = yield* WebChannel.windowChannel({
37
+ listenWindow: window,
38
+ sendWindow: window,
39
+ schema: Webmesh.WebmeshSchema.Packet,
40
+ ids: { own: webmeshNode.nodeName, other: contentscriptMainNodeName },
41
+ });
42
+ yield* webmeshNode.addEdge({ target: contentscriptMainNodeName, edgeChannel: contentscriptMainChannel });
43
+ }).pipe(Effect.withSpan('@livestore/adapter-web:client-session:devtools:browser-extension'), Effect.tapCauseLogPretty, Effect.forkScoped);
44
+ yield* DevtoolsWeb.connectViaWorker({
45
+ node: webmeshNode,
46
+ target: DevtoolsWeb.makeNodeName.sharedWorker({ storeId }),
47
+ worker: sharedWorker,
48
+ });
49
+ }
50
+ });
18
51
  //# sourceMappingURL=client-session-devtools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client-session-devtools.js","sourceRoot":"","sources":["../../../src/web-worker/client-session/client-session-devtools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAC7B,MAAM,EACN,OAAO,EACP,QAAQ,EACR,SAAS,GAMV,EAAE,EAAE,CACH,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,IAAI,QAAQ,EAAE,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,UAAU,CAAC,uBAAuB,IAAI,aAAa,CAAA;QACxE,MAAM,eAAe,GAAG,GAAG,QAAQ,CAAC,MAAM,GAAG,YAAY,EAAE,CAAA;QAE3D,4DAA4D;QAC5D,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAA;QACpE,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;YAChB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;YACzD,IAAI,IAAI,CAAC,QAAQ,CAAC,mDAAmD,CAAC,EAAE,CAAC;gBACvE,MAAM,GAAG,GAAG,GAAG,eAAe,QAAQ,OAAO,IAAI,QAAQ,IAAI,SAAS,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAA;gBACjG,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,8CAA8C,GAAG,EAAE,CAAC,CAAA;YACxE,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,+DAA+D,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"client-session-devtools.js","sourceRoot":"","sources":["../../../src/web-worker/client-session/client-session-devtools.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"persisted-adapter.d.ts","sourceRoot":"","sources":["../../../src/web-worker/client-session/persisted-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAA6B,MAAM,mBAAmB,CAAA;AAwC3E,OAAO,KAAK,YAAY,MAAM,4BAA4B,CAAA;AAc1D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,UAAU,CAAC,MAAM,CAAC,CAAA;IACnH;;;;;;;;;;;;;OAaG;IACH,YAAY,EACR,CAAC,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,UAAU,CAAC,YAAY,CAAC,GACxD,CAAC,KAAK,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,UAAU,CAAC,YAAY,CAAC,CAAA;IAChE;;OAEG;IACH,OAAO,EAAE,YAAY,CAAC,kBAAkB,CAAA;IACxC;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE;QACb;;;;;WAKG;QACH,eAAe,CAAC,EAAE,OAAO,CAAA;KAC1B,CAAA;CACF,CAAA;AAED,eAAO,MAAM,oBAAoB,GAC9B,SAAS,iBAAiB,KAAG,OA4XiB,CAAA"}
1
+ {"version":3,"file":"persisted-adapter.d.ts","sourceRoot":"","sources":["../../../src/web-worker/client-session/persisted-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAA6B,MAAM,mBAAmB,CAAA;AAqC3E,OAAO,KAAK,YAAY,MAAM,4BAA4B,CAAA;AAc1D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,UAAU,CAAC,MAAM,CAAC,CAAA;IACnH;;;;;;;;;;;;;OAaG;IACH,YAAY,EACR,CAAC,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,UAAU,CAAC,YAAY,CAAC,GACxD,CAAC,KAAK,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,UAAU,CAAC,YAAY,CAAC,CAAA;IAChE;;OAEG;IACH,OAAO,EAAE,YAAY,CAAC,kBAAkB,CAAA;IACxC;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE;QACb;;;;;WAKG;QACH,eAAe,CAAC,EAAE,OAAO,CAAA;KAC1B,CAAA;CACF,CAAA;AAED,eAAO,MAAM,oBAAoB,GAC9B,SAAS,iBAAiB,KAAG,OA0ViB,CAAA"}
@@ -1,21 +1,19 @@
1
- import { Devtools, IntentionalShutdownCause, makeClientSession, StoreInterrupted, UnexpectedError, } from '@livestore/common';
1
+ import { IntentionalShutdownCause, liveStoreVersion, makeClientSession, StoreInterrupted, UnexpectedError, } from '@livestore/common';
2
2
  // TODO bring back - this currently doesn't work due to https://github.com/vitejs/vite/issues/8427
3
3
  // NOTE We're using a non-relative import here for Vite to properly resolve the import during app builds
4
4
  // import LiveStoreSharedWorker from '@livestore/adapter-web/internal-shared-worker?sharedworker'
5
- import { EventId, SystemTables } from '@livestore/common/schema';
6
- import * as DevtoolsWeb from '@livestore/devtools-web-common/web-channel';
5
+ import { EventSequenceNumber, SystemTables } from '@livestore/common/schema';
7
6
  import { sqliteDbFactory } from '@livestore/sqlite-wasm/browser';
8
7
  import { loadSqlite3Wasm } from '@livestore/sqlite-wasm/load-wasm';
9
8
  import { isDevEnv, shouldNeverHappen, tryAsFunctionAndNew } from '@livestore/utils';
10
- import { BrowserWorker, Cause, Deferred, Effect, Exit, Fiber, ParseResult, Queue, Schema, Stream, SubscriptionRef, WebChannel, WebLock, Worker, WorkerError, } from '@livestore/utils/effect';
9
+ import { BrowserWorker, Cause, Deferred, Effect, Exit, Fiber, ParseResult, Queue, Schema, Stream, SubscriptionRef, WebLock, Worker, WorkerError, } from '@livestore/utils/effect';
11
10
  import { nanoid } from '@livestore/utils/nanoid';
12
- import * as Webmesh from '@livestore/webmesh';
13
11
  import * as OpfsUtils from '../../opfs-utils.js';
14
12
  import { readPersistedAppDbFromClientSession, resetPersistedDataFromClientSession } from '../common/persisted-sqlite.js';
15
13
  import { makeShutdownChannel } from '../common/shutdown-channel.js';
16
14
  import { DedicatedWorkerDisconnectBroadcast, makeWorkerDisconnectChannel } from '../common/worker-disconnect-channel.js';
17
15
  import * as WorkerSchema from '../common/worker-schema.js';
18
- import { logDevtoolsUrl } from './client-session-devtools.js';
16
+ import { connectWebmeshNodeClientSession } from './client-session-devtools.js';
19
17
  // NOTE we're starting to initialize the sqlite wasm binary here to speed things up
20
18
  const sqlite3Promise = loadSqlite3Wasm();
21
19
  if (isDevEnv()) {
@@ -51,12 +49,13 @@ export const makePersistedAdapter = (options) => (adapterArgs) => Effect.gen(fun
51
49
  // Unique per client session (i.e. tab, window)
52
50
  const sessionId = options.sessionId ?? getPersistedId(`sessionId:${storeId}`, 'session');
53
51
  const workerDisconnectChannel = yield* makeWorkerDisconnectChannel(storeId);
54
- yield* shutdownChannel.listen.pipe(Stream.flatten(), Stream.tap((error) => Effect.sync(() => shutdown(Cause.fail(error)))), Stream.runDrain, Effect.interruptible, Effect.tapCauseLogPretty, Effect.forkScoped);
52
+ yield* shutdownChannel.listen.pipe(Stream.flatten(), Stream.tap((error) => shutdown(Cause.fail(error))), Stream.runDrain, Effect.interruptible, Effect.tapCauseLogPretty, Effect.forkScoped);
55
53
  const sharedWebWorker = tryAsFunctionAndNew(options.sharedWorker, { name: `livestore-shared-worker-${storeId}` });
56
54
  const sharedWorkerFiber = yield* Worker.makePoolSerialized({
57
55
  size: 1,
58
56
  concurrency: 100,
59
57
  initialMessage: () => new WorkerSchema.SharedWorker.InitialMessage({
58
+ liveStoreVersion,
60
59
  payload: {
61
60
  _tag: 'FromClientSession',
62
61
  initialMessage: new WorkerSchema.LeaderWorkerInner.InitialMessage({
@@ -69,7 +68,7 @@ export const makePersistedAdapter = (options) => (adapterArgs) => Effect.gen(fun
69
68
  }),
70
69
  },
71
70
  }),
72
- }).pipe(Effect.provide(BrowserWorker.layer(() => sharedWebWorker)), Effect.tapCauseLogPretty, UnexpectedError.mapToUnexpectedError, Effect.tapErrorCause((cause) => Effect.sync(() => shutdown(cause))), Effect.withSpan('@livestore/adapter-web:client-session:setupSharedWorker'), Effect.forkScoped);
71
+ }).pipe(Effect.provide(BrowserWorker.layer(() => sharedWebWorker)), Effect.tapCauseLogPretty, UnexpectedError.mapToUnexpectedError, Effect.tapErrorCause(shutdown), Effect.withSpan('@livestore/adapter-web:client-session:setupSharedWorker'), Effect.forkScoped);
73
72
  const lockDeferred = yield* Deferred.make();
74
73
  // It's important that we resolve the leader election in a blocking way, so there's always a leader.
75
74
  // Otherwise events could end up being dropped.
@@ -93,10 +92,12 @@ export const makePersistedAdapter = (options) => (adapterArgs) => Effect.gen(fun
93
92
  const worker = tryAsFunctionAndNew(options.worker, { name: `livestore-worker-${storeId}-${sessionId}` });
94
93
  yield* Worker.makeSerialized({
95
94
  initialMessage: () => new WorkerSchema.LeaderWorkerOuter.InitialMessage({ port: mc.port1, storeId, clientId }),
96
- }).pipe(Effect.provide(BrowserWorker.layer(() => worker)), UnexpectedError.mapToUnexpectedError, Effect.tapErrorCause((cause) => Effect.sync(() => shutdown(cause))), Effect.withSpan('@livestore/adapter-web:client-session:setupDedicatedWorker'), Effect.tapCauseLogPretty, Effect.forkScoped);
95
+ }).pipe(Effect.provide(BrowserWorker.layer(() => worker)), UnexpectedError.mapToUnexpectedError, Effect.tapErrorCause(shutdown), Effect.withSpan('@livestore/adapter-web:client-session:setupDedicatedWorker'), Effect.tapCauseLogPretty, Effect.forkScoped);
97
96
  yield* workerDisconnectChannel.send(DedicatedWorkerDisconnectBroadcast.make({}));
98
97
  const sharedWorker = yield* Fiber.join(sharedWorkerFiber);
99
- yield* sharedWorker.executeEffect(new WorkerSchema.SharedWorker.UpdateMessagePort({ port: mc.port2 })).pipe(UnexpectedError.mapToUnexpectedError, Effect.tapErrorCause((cause) => Effect.sync(() => shutdown(cause))));
98
+ yield* sharedWorker
99
+ .executeEffect(new WorkerSchema.SharedWorker.UpdateMessagePort({ port: mc.port2 }))
100
+ .pipe(UnexpectedError.mapToUnexpectedError, Effect.tapErrorCause(shutdown));
100
101
  yield* Deferred.succeed(waitForSharedWorkerInitialized, undefined);
101
102
  yield* Effect.never;
102
103
  }).pipe(Effect.withSpan('@livestore/adapter-web:client-session:lock'));
@@ -134,7 +135,7 @@ export const makePersistedAdapter = (options) => (adapterArgs) => Effect.gen(fun
134
135
  ? new UnexpectedError({ cause })
135
136
  : cause), Stream.withSpan(`@livestore/adapter-web:client-session:runInWorkerStream:${req._tag}`));
136
137
  }).pipe(Stream.unwrap);
137
- const bootStatusFiber = yield* runInWorkerStream(new WorkerSchema.LeaderWorkerInner.BootStatusStream()).pipe(Stream.tap((_) => Queue.offer(bootStatusQueue, _)), Stream.runDrain, Effect.tapErrorCause((cause) => Cause.isInterruptedOnly(cause) ? Effect.void : Effect.sync(() => shutdown(cause))), Effect.interruptible, Effect.tapCauseLogPretty, Effect.forkScoped);
138
+ const bootStatusFiber = yield* runInWorkerStream(new WorkerSchema.LeaderWorkerInner.BootStatusStream()).pipe(Stream.tap((_) => Queue.offer(bootStatusQueue, _)), Stream.runDrain, Effect.tapErrorCause((cause) => (Cause.isInterruptedOnly(cause) ? Effect.void : shutdown(cause))), Effect.interruptible, Effect.tapCauseLogPretty, Effect.forkScoped);
138
139
  yield* Queue.awaitShutdown(bootStatusQueue).pipe(Effect.andThen(Fiber.interrupt(bootStatusFiber)), Effect.tapCauseLogPretty, Effect.forkScoped);
139
140
  // TODO maybe bring back transfering the initially created in-memory db snapshot instead of
140
141
  // re-exporting the db
@@ -158,10 +159,13 @@ export const makePersistedAdapter = (options) => (adapterArgs) => Effect.gen(fun
158
159
  }
159
160
  // We're restoring the leader head from the SESSION_CHANGESET_META_TABLE, not from the eventlog db/table
160
161
  // in order to avoid exporting/transferring the eventlog db/table, which is important to speed up the fast path.
161
- const initialLeaderHeadRes = sqliteDb.select(`select idGlobal, idClient from ${SystemTables.SESSION_CHANGESET_META_TABLE} order by idGlobal desc, idClient desc limit 1`)[0];
162
+ const initialLeaderHeadRes = sqliteDb.select(`select seqNumGlobal, seqNumClient from ${SystemTables.SESSION_CHANGESET_META_TABLE} order by seqNumGlobal desc, seqNumClient desc limit 1`)[0];
162
163
  const initialLeaderHead = initialLeaderHeadRes
163
- ? EventId.make({ global: initialLeaderHeadRes.idGlobal, client: initialLeaderHeadRes.idClient })
164
- : EventId.ROOT;
164
+ ? EventSequenceNumber.make({
165
+ global: initialLeaderHeadRes.seqNumGlobal,
166
+ client: initialLeaderHeadRes.seqNumClient,
167
+ })
168
+ : EventSequenceNumber.ROOT;
165
169
  // console.debug('[@livestore/adapter-web:client-session] initialLeaderHead', initialLeaderHead)
166
170
  yield* Effect.addFinalizer((ex) => Effect.gen(function* () {
167
171
  if (Exit.isFailure(ex) &&
@@ -190,44 +194,25 @@ export const makePersistedAdapter = (options) => (adapterArgs) => Effect.gen(fun
190
194
  getSyncState: runInWorker(new WorkerSchema.LeaderWorkerInner.GetLeaderSyncState()).pipe(UnexpectedError.mapToUnexpectedError, Effect.withSpan('@livestore/adapter-web:client-session:getLeaderSyncState')),
191
195
  sendDevtoolsMessage: (message) => runInWorker(new WorkerSchema.LeaderWorkerInner.ExtraDevtoolsMessage({ message })).pipe(UnexpectedError.mapToUnexpectedError, Effect.withSpan('@livestore/adapter-web:client-session:devtoolsMessageForLeader')),
192
196
  };
197
+ const sharedWorker = yield* Fiber.join(sharedWorkerFiber);
193
198
  const clientSession = yield* makeClientSession({
194
199
  ...adapterArgs,
195
200
  sqliteDb,
196
201
  lockStatus,
197
202
  clientId,
198
203
  sessionId,
204
+ // isLeader: gotLocky, // TODO update when leader is changing
205
+ isLeader: true,
199
206
  leaderThread,
200
207
  webmeshMode: 'direct',
201
- connectWebmeshNode: Effect.fn(function* ({ webmeshNode, sessionInfo }) {
202
- if (devtoolsEnabled) {
203
- yield* logDevtoolsUrl({ clientId, sessionId, schema, storeId });
204
- // This additional sessioninfo broadcast channel is needed since we can't use the shared worker
205
- // as it's currently storeId-specific
206
- yield* Devtools.SessionInfo.provideSessionInfo({
207
- webChannel: yield* DevtoolsWeb.makeSessionInfoBroadcastChannel,
208
- sessionInfo,
209
- }).pipe(Effect.tapCauseLogPretty, Effect.forkScoped);
210
- yield* Effect.gen(function* () {
211
- const clientSessionStaticChannel = yield* DevtoolsWeb.makeStaticClientSessionChannel.clientSession;
212
- yield* clientSessionStaticChannel.send(DevtoolsWeb.ClientSessionContentscriptMainReq.make({ clientId, sessionId, storeId }));
213
- const { tabId } = yield* clientSessionStaticChannel.listen.pipe(Stream.flatten(), Stream.runHead, Effect.flatten);
214
- const contentscriptMainNodeName = DevtoolsWeb.makeNodeName.browserExtension.contentscriptMain(tabId);
215
- const contentscriptMainChannel = yield* WebChannel.windowChannel({
216
- listenWindow: window,
217
- sendWindow: window,
218
- schema: Webmesh.WebmeshSchema.Packet,
219
- ids: { own: webmeshNode.nodeName, other: contentscriptMainNodeName },
220
- });
221
- yield* webmeshNode.addEdge({ target: contentscriptMainNodeName, edgeChannel: contentscriptMainChannel });
222
- }).pipe(Effect.withSpan('@livestore/adapter-web:client-session:devtools:browser-extension'), Effect.tapCauseLogPretty, Effect.forkScoped);
223
- const sharedWorker = yield* Fiber.join(sharedWorkerFiber);
224
- yield* DevtoolsWeb.connectViaWorker({
225
- node: webmeshNode,
226
- target: DevtoolsWeb.makeNodeName.sharedWorker({ storeId }),
227
- worker: sharedWorker,
228
- });
208
+ connectWebmeshNode: ({ sessionInfo, webmeshNode }) => connectWebmeshNodeClientSession({ webmeshNode, sessionInfo, sharedWorker, devtoolsEnabled, schema }),
209
+ registerBeforeUnload: (onBeforeUnload) => {
210
+ if (typeof window !== 'undefined' && typeof window.addEventListener === 'function') {
211
+ window.addEventListener('beforeunload', onBeforeUnload);
212
+ return () => window.removeEventListener('beforeunload', onBeforeUnload);
229
213
  }
230
- }),
214
+ return () => { };
215
+ },
231
216
  });
232
217
  return clientSession;
233
218
  }).pipe(UnexpectedError.mapToUnexpectedError);
@@ -1 +1 @@
1
- {"version":3,"file":"persisted-adapter.js","sourceRoot":"","sources":["../../../src/web-worker/client-session/persisted-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"persisted-adapter.js","sourceRoot":"","sources":["../../../src/web-worker/client-session/persisted-adapter.ts"],"names":[],"mappings":"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"}