@livestore/adapter-web 0.4.0-dev.1 → 0.4.0-dev.11
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/in-memory/in-memory-adapter.d.ts.map +1 -1
- package/dist/in-memory/in-memory-adapter.js +5 -6
- package/dist/in-memory/in-memory-adapter.js.map +1 -1
- package/dist/opfs-utils.d.ts +3 -1
- package/dist/opfs-utils.d.ts.map +1 -1
- package/dist/opfs-utils.js +4 -4
- package/dist/opfs-utils.js.map +1 -1
- package/dist/web-worker/client-session/persisted-adapter.d.ts +15 -0
- package/dist/web-worker/client-session/persisted-adapter.d.ts.map +1 -1
- package/dist/web-worker/client-session/persisted-adapter.js +19 -7
- package/dist/web-worker/client-session/persisted-adapter.js.map +1 -1
- package/dist/web-worker/client-session/sqlite-loader.d.ts +2 -0
- package/dist/web-worker/client-session/sqlite-loader.d.ts.map +1 -0
- package/dist/web-worker/client-session/sqlite-loader.js +16 -0
- package/dist/web-worker/client-session/sqlite-loader.js.map +1 -0
- package/dist/web-worker/common/persisted-sqlite.d.ts +34 -0
- package/dist/web-worker/common/persisted-sqlite.d.ts.map +1 -1
- package/dist/web-worker/common/persisted-sqlite.js +152 -0
- package/dist/web-worker/common/persisted-sqlite.js.map +1 -1
- package/dist/web-worker/common/shutdown-channel.d.ts +1 -1
- package/dist/web-worker/common/shutdown-channel.d.ts.map +1 -1
- package/dist/web-worker/common/worker-schema.d.ts +33 -6
- package/dist/web-worker/common/worker-schema.d.ts.map +1 -1
- package/dist/web-worker/common/worker-schema.js +21 -3
- package/dist/web-worker/common/worker-schema.js.map +1 -1
- package/dist/web-worker/leader-worker/make-leader-worker.js +24 -2
- package/dist/web-worker/leader-worker/make-leader-worker.js.map +1 -1
- package/dist/web-worker/shared-worker/make-shared-worker.d.ts.map +1 -1
- package/dist/web-worker/shared-worker/make-shared-worker.js +17 -4
- package/dist/web-worker/shared-worker/make-shared-worker.js.map +1 -1
- package/dist/web-worker/vite-dev-polyfill.js +1 -0
- package/dist/web-worker/vite-dev-polyfill.js.map +1 -1
- package/package.json +7 -7
- package/src/in-memory/in-memory-adapter.ts +6 -7
- package/src/opfs-utils.ts +4 -4
- package/src/web-worker/ambient.d.ts +7 -4
- package/src/web-worker/client-session/persisted-adapter.ts +39 -10
- package/src/web-worker/client-session/sqlite-loader.ts +19 -0
- package/src/web-worker/common/persisted-sqlite.ts +220 -1
- package/src/web-worker/common/worker-schema.ts +34 -0
- package/src/web-worker/leader-worker/make-leader-worker.ts +29 -4
- package/src/web-worker/shared-worker/make-shared-worker.ts +46 -15
- package/src/web-worker/vite-dev-polyfill.ts +1 -0
|
@@ -161,6 +161,33 @@ declare const LeaderWorkerInnerGetLeaderSyncState_base: Schema.TaggedRequestClas
|
|
|
161
161
|
}, typeof SyncState.SyncState, typeof UnexpectedError>;
|
|
162
162
|
export declare class LeaderWorkerInnerGetLeaderSyncState extends LeaderWorkerInnerGetLeaderSyncState_base {
|
|
163
163
|
}
|
|
164
|
+
declare const LeaderWorkerInnerSyncStateStream_base: Schema.TaggedRequestClass<LeaderWorkerInnerSyncStateStream, "SyncStateStream", {
|
|
165
|
+
readonly _tag: Schema.tag<"SyncStateStream">;
|
|
166
|
+
}, typeof SyncState.SyncState, typeof UnexpectedError>;
|
|
167
|
+
export declare class LeaderWorkerInnerSyncStateStream extends LeaderWorkerInnerSyncStateStream_base {
|
|
168
|
+
}
|
|
169
|
+
declare const LeaderWorkerInnerGetNetworkStatus_base: Schema.TaggedRequestClass<LeaderWorkerInnerGetNetworkStatus, "GetNetworkStatus", {
|
|
170
|
+
readonly _tag: Schema.tag<"GetNetworkStatus">;
|
|
171
|
+
}, Schema.Struct<{
|
|
172
|
+
isConnected: typeof Schema.Boolean;
|
|
173
|
+
timestampMs: typeof Schema.Number;
|
|
174
|
+
devtools: Schema.Struct<{
|
|
175
|
+
latchClosed: typeof Schema.Boolean;
|
|
176
|
+
}>;
|
|
177
|
+
}>, typeof UnexpectedError>;
|
|
178
|
+
export declare class LeaderWorkerInnerGetNetworkStatus extends LeaderWorkerInnerGetNetworkStatus_base {
|
|
179
|
+
}
|
|
180
|
+
declare const LeaderWorkerInnerNetworkStatusStream_base: Schema.TaggedRequestClass<LeaderWorkerInnerNetworkStatusStream, "NetworkStatusStream", {
|
|
181
|
+
readonly _tag: Schema.tag<"NetworkStatusStream">;
|
|
182
|
+
}, Schema.Struct<{
|
|
183
|
+
isConnected: typeof Schema.Boolean;
|
|
184
|
+
timestampMs: typeof Schema.Number;
|
|
185
|
+
devtools: Schema.Struct<{
|
|
186
|
+
latchClosed: typeof Schema.Boolean;
|
|
187
|
+
}>;
|
|
188
|
+
}>, typeof UnexpectedError>;
|
|
189
|
+
export declare class LeaderWorkerInnerNetworkStatusStream extends LeaderWorkerInnerNetworkStatusStream_base {
|
|
190
|
+
}
|
|
164
191
|
declare const LeaderWorkerInnerShutdown_base: Schema.TaggedRequestClass<LeaderWorkerInnerShutdown, "Shutdown", {
|
|
165
192
|
readonly _tag: Schema.tag<"Shutdown">;
|
|
166
193
|
}, typeof Schema.Void, typeof UnexpectedError>;
|
|
@@ -173,25 +200,25 @@ declare const LeaderWorkerInnerExtraDevtoolsMessage_base: Schema.TaggedRequestCl
|
|
|
173
200
|
data: Schema.Schema<Uint8Array<ArrayBuffer>>;
|
|
174
201
|
} & {
|
|
175
202
|
readonly requestId: typeof Schema.String;
|
|
176
|
-
readonly liveStoreVersion: Schema.Literal<["0.4.0-dev.
|
|
203
|
+
readonly liveStoreVersion: Schema.Literal<["0.4.0-dev.11"]>;
|
|
177
204
|
readonly clientId: typeof Schema.String;
|
|
178
205
|
}>, typeof Devtools.Leader.EventlogReq, Schema.TaggedStruct<"LSD.Leader.ResetAllData.Request", {
|
|
179
206
|
mode: Schema.Literal<["all-data", "only-app-db"]>;
|
|
180
207
|
} & {
|
|
181
208
|
readonly requestId: typeof Schema.String;
|
|
182
|
-
readonly liveStoreVersion: Schema.Literal<["0.4.0-dev.
|
|
209
|
+
readonly liveStoreVersion: Schema.Literal<["0.4.0-dev.11"]>;
|
|
183
210
|
readonly clientId: typeof Schema.String;
|
|
184
211
|
}>, typeof Devtools.Leader.NetworkStatusSubscribe, typeof Devtools.Leader.NetworkStatusUnsubscribe, typeof Devtools.Leader.Disconnect, typeof Devtools.Leader.CommitEventReq, 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", {
|
|
185
212
|
closeLatch: typeof Schema.Boolean;
|
|
186
213
|
} & {
|
|
187
214
|
readonly requestId: typeof Schema.String;
|
|
188
|
-
readonly liveStoreVersion: Schema.Literal<["0.4.0-dev.
|
|
215
|
+
readonly liveStoreVersion: Schema.Literal<["0.4.0-dev.11"]>;
|
|
189
216
|
readonly clientId: typeof Schema.String;
|
|
190
217
|
}>]>;
|
|
191
218
|
}, typeof Schema.Void, typeof UnexpectedError>;
|
|
192
219
|
export declare class LeaderWorkerInnerExtraDevtoolsMessage extends LeaderWorkerInnerExtraDevtoolsMessage_base {
|
|
193
220
|
}
|
|
194
|
-
export declare const LeaderWorkerInnerRequest: Schema.Union<[typeof LeaderWorkerInnerInitialMessage, typeof LeaderWorkerInnerBootStatusStream, typeof LeaderWorkerInnerPushToLeader, typeof LeaderWorkerInnerPullStream, typeof LeaderWorkerInnerExport, typeof LeaderWorkerInnerExportEventlog, typeof LeaderWorkerInnerGetRecreateSnapshot, typeof LeaderWorkerInnerGetLeaderHead, typeof LeaderWorkerInnerGetLeaderSyncState, typeof LeaderWorkerInnerShutdown, typeof LeaderWorkerInnerExtraDevtoolsMessage, typeof WebmeshWorker.Schema.CreateConnection]>;
|
|
221
|
+
export declare const LeaderWorkerInnerRequest: Schema.Union<[typeof LeaderWorkerInnerInitialMessage, typeof LeaderWorkerInnerBootStatusStream, typeof LeaderWorkerInnerPushToLeader, typeof LeaderWorkerInnerPullStream, typeof LeaderWorkerInnerExport, typeof LeaderWorkerInnerExportEventlog, typeof LeaderWorkerInnerGetRecreateSnapshot, typeof LeaderWorkerInnerGetLeaderHead, typeof LeaderWorkerInnerGetLeaderSyncState, typeof LeaderWorkerInnerSyncStateStream, typeof LeaderWorkerInnerGetNetworkStatus, typeof LeaderWorkerInnerNetworkStatusStream, typeof LeaderWorkerInnerShutdown, typeof LeaderWorkerInnerExtraDevtoolsMessage, typeof WebmeshWorker.Schema.CreateConnection]>;
|
|
195
222
|
export type LeaderWorkerInnerRequest = typeof LeaderWorkerInnerRequest.Type;
|
|
196
223
|
declare const SharedWorkerInitialMessagePayloadFromClientSession_base: Schema.TaggedStruct<"FromClientSession", {
|
|
197
224
|
initialMessage: typeof LeaderWorkerInnerInitialMessage;
|
|
@@ -202,7 +229,7 @@ declare const SharedWorkerInitialMessage_base: Schema.TaggedRequestClass<SharedW
|
|
|
202
229
|
readonly _tag: Schema.tag<"InitialMessage">;
|
|
203
230
|
} & {
|
|
204
231
|
payload: Schema.Union<[typeof SharedWorkerInitialMessagePayloadFromClientSession, Schema.TaggedStruct<"FromWebBridge", {}>]>;
|
|
205
|
-
liveStoreVersion: Schema.Literal<["0.4.0-dev.
|
|
232
|
+
liveStoreVersion: Schema.Literal<["0.4.0-dev.11"]>;
|
|
206
233
|
}, typeof Schema.Void, typeof UnexpectedError>;
|
|
207
234
|
export declare class SharedWorkerInitialMessage extends SharedWorkerInitialMessage_base {
|
|
208
235
|
}
|
|
@@ -213,7 +240,7 @@ declare const SharedWorkerUpdateMessagePort_base: Schema.TaggedRequestClass<Shar
|
|
|
213
240
|
}, typeof Schema.Void, typeof UnexpectedError>;
|
|
214
241
|
export declare class SharedWorkerUpdateMessagePort extends SharedWorkerUpdateMessagePort_base {
|
|
215
242
|
}
|
|
216
|
-
declare const SharedWorkerRequest_base: Schema.Union<[typeof SharedWorkerInitialMessage, typeof SharedWorkerUpdateMessagePort, typeof LeaderWorkerInnerBootStatusStream, typeof LeaderWorkerInnerPushToLeader, typeof LeaderWorkerInnerPullStream, typeof LeaderWorkerInnerExport, typeof LeaderWorkerInnerGetRecreateSnapshot, typeof LeaderWorkerInnerExportEventlog, typeof LeaderWorkerInnerGetLeaderHead, typeof LeaderWorkerInnerGetLeaderSyncState, typeof LeaderWorkerInnerShutdown, typeof LeaderWorkerInnerExtraDevtoolsMessage, typeof WebmeshWorker.Schema.CreateConnection]>;
|
|
243
|
+
declare const SharedWorkerRequest_base: Schema.Union<[typeof SharedWorkerInitialMessage, typeof SharedWorkerUpdateMessagePort, typeof LeaderWorkerInnerBootStatusStream, typeof LeaderWorkerInnerPushToLeader, typeof LeaderWorkerInnerPullStream, typeof LeaderWorkerInnerExport, typeof LeaderWorkerInnerGetRecreateSnapshot, typeof LeaderWorkerInnerExportEventlog, typeof LeaderWorkerInnerGetLeaderHead, typeof LeaderWorkerInnerGetLeaderSyncState, typeof LeaderWorkerInnerSyncStateStream, typeof LeaderWorkerInnerGetNetworkStatus, typeof LeaderWorkerInnerNetworkStatusStream, typeof LeaderWorkerInnerShutdown, typeof LeaderWorkerInnerExtraDevtoolsMessage, typeof WebmeshWorker.Schema.CreateConnection]>;
|
|
217
244
|
export declare class SharedWorkerRequest extends SharedWorkerRequest_base {
|
|
218
245
|
}
|
|
219
246
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-schema.d.ts","sourceRoot":"","sources":["../../../src/web-worker/common/worker-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EACR,gBAAgB,
|
|
1
|
+
{"version":3,"file":"worker-schema.d.ts","sourceRoot":"","sources":["../../../src/web-worker/common/worker-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EACR,gBAAgB,EAIhB,SAAS,EACT,eAAe,EAChB,MAAM,mBAAmB,CAAA;AAE1B,OAAO,KAAK,aAAa,MAAM,uCAAuC,CAAA;AACtE,OAAO,EAAE,MAAM,EAAgB,MAAM,yBAAyB,CAAA;AAE9D,eAAO,MAAM,eAAe;;IAE1B;;;;;OAKG;;EAEH,CAAA;AAEF,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAC,IAAI,CAAA;AAUzD,eAAO,MAAM,WAAW;;IAnBtB;;;;;OAKG;;EAiBJ,CAAA;AACD,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAC,IAAI,CAAA;AACjD,MAAM,MAAM,kBAAkB,GAAG,OAAO,WAAW,CAAC,OAAO,CAAA;AAG3D,eAAO,MAAM,kBAAkB,gGAAiE,CAAA;AAChG,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,CAAA;;;;;;;;AAEjE,qBAAa,+BAAgC,SAAQ,oCAOpD;CAAG;;AAEJ,qBAAa,wBAAyB,SAAQ,6BAA6C;CAAG;;;;;;QAvC5F;;;;;WAKG;;;;;;;;;AAqCL,qBAAa,+BAAgC,SAAQ,oCAcpD;CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEJ,qBAAa,iCAAkC,SAAQ,sCAOtD;CAAG;;;;;;;;;;;;;;;;;;;;;AAEJ,qBAAa,6BAA8B,SAAQ,kCASlD;CAAG;;;;;;;;;;;;AAEJ,qBAAa,2BAA4B,SAAQ,gCAQ/C;CAAG;;;;AAEL,qBAAa,uBAAwB,SAAQ,4BAI3C;CAAG;;;;AAEL,qBAAa,+BAAgC,SAAQ,oCAOpD;CAAG;;;;cAOuC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;;;;;;;;;;;AALjF,qBAAa,oCAAqC,SAAQ,yCAUzD;CAAG;;;;;;;;AAEJ,qBAAa,8BAA+B,SAAQ,mCAOnD;CAAG;;;;AAEJ,qBAAa,mCAAoC,SAAQ,wCAOxD;CAAG;;;;AAEJ,qBAAa,gCAAiC,SAAQ,qCAOrD;CAAG;;;;;;;;;;AAEJ,qBAAa,iCAAkC,SAAQ,sCAOtD;CAAG;;;;;;;;;;AAEJ,qBAAa,oCAAqC,SAAQ,yCAOzD;CAAG;;;;AAEJ,qBAAa,yBAA0B,SAAQ,8BAI7C;CAAG;;;;;;;;;;;;;;;;;;;;;;;;AAEL,qBAAa,qCAAsC,SAAQ,0CAS1D;CAAG;AAEJ,eAAO,MAAM,wBAAwB,knBAgBpC,CAAA;AACD,MAAM,MAAM,wBAAwB,GAAG,OAAO,wBAAwB,CAAC,IAAI,CAAA;;;;AAE3E,qBAAa,kDAAmD,SAAQ,uDAEtE;CAAG;;;;;;;AAEL,qBAAa,0BAA2B,SAAQ,+BAS9C;CAAG;;;;;;AAEL,qBAAa,6BAA8B,SAAQ,kCASlD;CAAG;;AAEJ,qBAAa,mBAAoB,SAAQ,wBAoBxC;CAAG"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BootStatus, Devtools, LeaderAheadError, liveStoreVersion, MigrationsReport, SyncState, UnexpectedError, } from '@livestore/common';
|
|
1
|
+
import { BootStatus, Devtools, LeaderAheadError, liveStoreVersion, MigrationsReport, SyncBackend, SyncState, UnexpectedError, } from '@livestore/common';
|
|
2
2
|
import { EventSequenceNumber, LiveStoreEvent } from '@livestore/common/schema';
|
|
3
3
|
import * as WebmeshWorker from '@livestore/devtools-web-common/worker';
|
|
4
4
|
import { Schema, Transferable } from '@livestore/utils/effect';
|
|
@@ -101,6 +101,24 @@ export class LeaderWorkerInnerGetLeaderSyncState extends Schema.TaggedRequest()(
|
|
|
101
101
|
failure: UnexpectedError,
|
|
102
102
|
}) {
|
|
103
103
|
}
|
|
104
|
+
export class LeaderWorkerInnerSyncStateStream extends Schema.TaggedRequest()('SyncStateStream', {
|
|
105
|
+
payload: {},
|
|
106
|
+
success: SyncState.SyncState,
|
|
107
|
+
failure: UnexpectedError,
|
|
108
|
+
}) {
|
|
109
|
+
}
|
|
110
|
+
export class LeaderWorkerInnerGetNetworkStatus extends Schema.TaggedRequest()('GetNetworkStatus', {
|
|
111
|
+
payload: {},
|
|
112
|
+
success: SyncBackend.NetworkStatus,
|
|
113
|
+
failure: UnexpectedError,
|
|
114
|
+
}) {
|
|
115
|
+
}
|
|
116
|
+
export class LeaderWorkerInnerNetworkStatusStream extends Schema.TaggedRequest()('NetworkStatusStream', {
|
|
117
|
+
payload: {},
|
|
118
|
+
success: SyncBackend.NetworkStatus,
|
|
119
|
+
failure: UnexpectedError,
|
|
120
|
+
}) {
|
|
121
|
+
}
|
|
104
122
|
export class LeaderWorkerInnerShutdown extends Schema.TaggedRequest()('Shutdown', {
|
|
105
123
|
payload: {},
|
|
106
124
|
success: Schema.Void,
|
|
@@ -115,7 +133,7 @@ export class LeaderWorkerInnerExtraDevtoolsMessage extends Schema.TaggedRequest(
|
|
|
115
133
|
failure: UnexpectedError,
|
|
116
134
|
}) {
|
|
117
135
|
}
|
|
118
|
-
export const LeaderWorkerInnerRequest = Schema.Union(LeaderWorkerInnerInitialMessage, LeaderWorkerInnerBootStatusStream, LeaderWorkerInnerPushToLeader, LeaderWorkerInnerPullStream, LeaderWorkerInnerExport, LeaderWorkerInnerExportEventlog, LeaderWorkerInnerGetRecreateSnapshot, LeaderWorkerInnerGetLeaderHead, LeaderWorkerInnerGetLeaderSyncState, LeaderWorkerInnerShutdown, LeaderWorkerInnerExtraDevtoolsMessage, WebmeshWorker.Schema.CreateConnection);
|
|
136
|
+
export const LeaderWorkerInnerRequest = Schema.Union(LeaderWorkerInnerInitialMessage, LeaderWorkerInnerBootStatusStream, LeaderWorkerInnerPushToLeader, LeaderWorkerInnerPullStream, LeaderWorkerInnerExport, LeaderWorkerInnerExportEventlog, LeaderWorkerInnerGetRecreateSnapshot, LeaderWorkerInnerGetLeaderHead, LeaderWorkerInnerGetLeaderSyncState, LeaderWorkerInnerSyncStateStream, LeaderWorkerInnerGetNetworkStatus, LeaderWorkerInnerNetworkStatusStream, LeaderWorkerInnerShutdown, LeaderWorkerInnerExtraDevtoolsMessage, WebmeshWorker.Schema.CreateConnection);
|
|
119
137
|
export class SharedWorkerInitialMessagePayloadFromClientSession extends Schema.TaggedStruct('FromClientSession', {
|
|
120
138
|
initialMessage: LeaderWorkerInnerInitialMessage,
|
|
121
139
|
}) {
|
|
@@ -141,6 +159,6 @@ export class SharedWorkerUpdateMessagePort extends Schema.TaggedRequest()('Updat
|
|
|
141
159
|
}
|
|
142
160
|
export class SharedWorkerRequest extends Schema.Union(SharedWorkerInitialMessage, SharedWorkerUpdateMessagePort,
|
|
143
161
|
// Proxied requests
|
|
144
|
-
LeaderWorkerInnerBootStatusStream, LeaderWorkerInnerPushToLeader, LeaderWorkerInnerPullStream, LeaderWorkerInnerExport, LeaderWorkerInnerGetRecreateSnapshot, LeaderWorkerInnerExportEventlog, LeaderWorkerInnerGetLeaderHead, LeaderWorkerInnerGetLeaderSyncState, LeaderWorkerInnerShutdown, LeaderWorkerInnerExtraDevtoolsMessage, WebmeshWorker.Schema.CreateConnection) {
|
|
162
|
+
LeaderWorkerInnerBootStatusStream, LeaderWorkerInnerPushToLeader, LeaderWorkerInnerPullStream, LeaderWorkerInnerExport, LeaderWorkerInnerGetRecreateSnapshot, LeaderWorkerInnerExportEventlog, LeaderWorkerInnerGetLeaderHead, LeaderWorkerInnerGetLeaderSyncState, LeaderWorkerInnerSyncStateStream, LeaderWorkerInnerGetNetworkStatus, LeaderWorkerInnerNetworkStatusStream, LeaderWorkerInnerShutdown, LeaderWorkerInnerExtraDevtoolsMessage, WebmeshWorker.Schema.CreateConnection) {
|
|
145
163
|
}
|
|
146
164
|
//# sourceMappingURL=worker-schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-schema.js","sourceRoot":"","sources":["../../../src/web-worker/common/worker-schema.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"worker-schema.js","sourceRoot":"","sources":["../../../src/web-worker/common/worker-schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ import { loadSqlite3Wasm } from '@livestore/sqlite-wasm/load-wasm';
|
|
|
7
7
|
import { isDevEnv, LS_DEV } from '@livestore/utils';
|
|
8
8
|
import { BrowserWorkerRunner, Effect, FetchHttpClient, identity, Layer, Logger, LogLevel, OtelTracer, Scheduler, Stream, TaskTracing, WorkerRunner, } from '@livestore/utils/effect';
|
|
9
9
|
import * as OpfsUtils from "../../opfs-utils.js";
|
|
10
|
-
import { getStateDbFileName, sanitizeOpfsDir } from "../common/persisted-sqlite.js";
|
|
10
|
+
import { cleanupOldStateDbFiles, getStateDbFileName, sanitizeOpfsDir } from "../common/persisted-sqlite.js";
|
|
11
11
|
import { makeShutdownChannel } from "../common/shutdown-channel.js";
|
|
12
12
|
import * as WorkerSchema from "../common/worker-schema.js";
|
|
13
13
|
if (isDevEnv()) {
|
|
@@ -25,7 +25,8 @@ export const makeWorkerEffect = (options) => {
|
|
|
25
25
|
const TracingLive = options.otelOptions?.tracer
|
|
26
26
|
? Layer.unwrapEffect(Effect.map(OtelTracer.make, Layer.setTracer)).pipe(Layer.provideMerge(Layer.succeed(OtelTracer.OtelTracer, options.otelOptions.tracer)))
|
|
27
27
|
: undefined;
|
|
28
|
-
|
|
28
|
+
const layer = Layer.mergeAll(Logger.prettyWithThread(self.name), FetchHttpClient.layer, TracingLive ?? Layer.empty);
|
|
29
|
+
return makeWorkerRunnerOuter(options).pipe(Layer.provide(BrowserWorkerRunner.layer), WorkerRunner.launch, Effect.scoped, Effect.tapCauseLogPretty, Effect.annotateLogs({ thread: self.name }), Effect.provide(layer), LS_DEV ? TaskTracing.withAsyncTaggingTracing((name) => console.createTask(name)) : identity,
|
|
29
30
|
// We're using this custom scheduler to improve op batching behaviour and reduce the overhead
|
|
30
31
|
// of the Effect fiber runtime given we have different tradeoffs on a worker thread.
|
|
31
32
|
// Despite the "message channel" name, is has nothing to do with the `incomingRequestsPort` above.
|
|
@@ -62,6 +63,15 @@ const makeWorkerRunnerInner = ({ schema, sync: syncOptions }) => WorkerRunner.la
|
|
|
62
63
|
const [dbState, dbEventlog] = yield* Effect.all([makeDb('state'), makeDb('eventlog')], {
|
|
63
64
|
concurrency: 2,
|
|
64
65
|
});
|
|
66
|
+
// Clean up old state database files after successful database creation
|
|
67
|
+
// This prevents OPFS file pool capacity exhaustion from accumulated state db files after schema changes/migrations
|
|
68
|
+
if (dbState.metadata._tag === 'opfs') {
|
|
69
|
+
yield* cleanupOldStateDbFiles({
|
|
70
|
+
vfs: dbState.metadata.vfs,
|
|
71
|
+
currentSchema: schema,
|
|
72
|
+
opfsDirectory: dbState.metadata.persistenceInfo.opfsDirectory,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
65
75
|
const devtoolsOptions = yield* makeDevtoolsOptions({ devtoolsEnabled, dbState, dbEventlog });
|
|
66
76
|
const shutdownChannel = yield* makeShutdownChannel(storeId);
|
|
67
77
|
return makeLeaderThreadLayer({
|
|
@@ -104,6 +114,18 @@ const makeWorkerRunnerInner = ({ schema, sync: syncOptions }) => WorkerRunner.la
|
|
|
104
114
|
const workerCtx = yield* LeaderThreadCtx;
|
|
105
115
|
return yield* workerCtx.syncProcessor.syncState;
|
|
106
116
|
}).pipe(UnexpectedError.mapToUnexpectedError, Effect.withSpan('@livestore/adapter-web:worker:GetLeaderSyncState')),
|
|
117
|
+
SyncStateStream: () => Effect.gen(function* () {
|
|
118
|
+
const workerCtx = yield* LeaderThreadCtx;
|
|
119
|
+
return workerCtx.syncProcessor.syncState.changes;
|
|
120
|
+
}).pipe(Stream.unwrapScoped),
|
|
121
|
+
GetNetworkStatus: () => Effect.gen(function* () {
|
|
122
|
+
const workerCtx = yield* LeaderThreadCtx;
|
|
123
|
+
return yield* workerCtx.networkStatus;
|
|
124
|
+
}).pipe(UnexpectedError.mapToUnexpectedError, Effect.withSpan('@livestore/adapter-web:worker:GetNetworkStatus')),
|
|
125
|
+
NetworkStatusStream: () => Effect.gen(function* () {
|
|
126
|
+
const workerCtx = yield* LeaderThreadCtx;
|
|
127
|
+
return workerCtx.networkStatus.changes;
|
|
128
|
+
}).pipe(Stream.unwrapScoped),
|
|
107
129
|
Shutdown: () => Effect.gen(function* () {
|
|
108
130
|
yield* Effect.logDebug('[@livestore/adapter-web:worker] Shutdown');
|
|
109
131
|
// Buy some time for Otel to flush
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"make-leader-worker.js","sourceRoot":"","sources":["../../../src/web-worker/leader-worker/make-leader-worker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAE7D,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AAEvH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,KAAK,aAAa,MAAM,uCAAuC,CAAA;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAA;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAEnD,OAAO,EACL,mBAAmB,EACnB,MAAM,EACN,eAAe,EACf,QAAQ,EACR,KAAK,EACL,MAAM,EACN,QAAQ,EACR,UAAU,EACV,SAAS,EACT,MAAM,EACN,WAAW,EACX,YAAY,GACb,MAAM,yBAAyB,CAAA;AAGhC,OAAO,KAAK,SAAS,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;
|
|
1
|
+
{"version":3,"file":"make-leader-worker.js","sourceRoot":"","sources":["../../../src/web-worker/leader-worker/make-leader-worker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"make-shared-worker.d.ts","sourceRoot":"","sources":["../../../src/web-worker/shared-worker/make-shared-worker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"make-shared-worker.d.ts","sourceRoot":"","sources":["../../../src/web-worker/shared-worker/make-shared-worker.ts"],"names":[],"mappings":"AAgRA,eAAO,MAAM,UAAU,YAqBtB,CAAA"}
|
|
@@ -5,6 +5,15 @@ import { isDevEnv, isNotUndefined, LS_DEV } from '@livestore/utils';
|
|
|
5
5
|
import { BrowserWorker, BrowserWorkerRunner, Deferred, Effect, Exit, FetchHttpClient, identity, Layer, Logger, LogLevel, ParseResult, Ref, Schema, Scope, Stream, SubscriptionRef, TaskTracing, Worker, WorkerError, WorkerRunner, } from '@livestore/utils/effect';
|
|
6
6
|
import { makeShutdownChannel } from "../common/shutdown-channel.js";
|
|
7
7
|
import * as WorkerSchema from "../common/worker-schema.js";
|
|
8
|
+
// Extract from `livestore-shared-worker-${storeId}`
|
|
9
|
+
const storeId = self.name.replace('livestore-shared-worker-', '');
|
|
10
|
+
// We acquire a lock that is held as long as this shared worker is alive.
|
|
11
|
+
// This way, when the shared worker is terminated (e.g. by the browser when the page is closed),
|
|
12
|
+
// the lock is released and any thread waiting for the lock can be notified.
|
|
13
|
+
const LIVESTORE_SHARED_WORKER_TERMINATION_LOCK = `livestore-shared-worker-termination-lock-${storeId}`;
|
|
14
|
+
navigator.locks.request(LIVESTORE_SHARED_WORKER_TERMINATION_LOCK, { steal: true },
|
|
15
|
+
// We use a never-resolving promise to hold the lock
|
|
16
|
+
async () => new Promise(() => { }));
|
|
8
17
|
if (isDevEnv()) {
|
|
9
18
|
globalThis.__debugLiveStoreUtils = {
|
|
10
19
|
blobUrl: (buffer) => URL.createObjectURL(new Blob([buffer], { type: 'application/octet-stream' })),
|
|
@@ -16,7 +25,9 @@ const makeWorkerRunner = Effect.gen(function* () {
|
|
|
16
25
|
const leaderWorkerContextSubRef = yield* SubscriptionRef.make(undefined);
|
|
17
26
|
const initialMessagePayloadDeferredRef = yield* Deferred.make().pipe(Effect.andThen(Ref.make));
|
|
18
27
|
const waitForWorker = SubscriptionRef.waitUntil(leaderWorkerContextSubRef, isNotUndefined).pipe(Effect.map((_) => _.worker));
|
|
19
|
-
const forwardRequest = (req) =>
|
|
28
|
+
const forwardRequest = (req) =>
|
|
29
|
+
// Forward the request to the active worker and normalize platform errors into UnexpectedError.
|
|
30
|
+
waitForWorker.pipe(
|
|
20
31
|
// Effect.logBefore(`forwardRequest: ${req._tag}`),
|
|
21
32
|
Effect.andThen((worker) => worker.executeEffect(req)),
|
|
22
33
|
// Effect.tap((_) => Effect.log(`forwardRequest: ${req._tag}`, _)),
|
|
@@ -126,7 +137,10 @@ const makeWorkerRunner = Effect.gen(function* () {
|
|
|
126
137
|
ExportEventlog: forwardRequest,
|
|
127
138
|
Setup: forwardRequest,
|
|
128
139
|
GetLeaderSyncState: forwardRequest,
|
|
140
|
+
SyncStateStream: forwardRequestStream,
|
|
129
141
|
GetLeaderHead: forwardRequest,
|
|
142
|
+
GetNetworkStatus: forwardRequest,
|
|
143
|
+
NetworkStatusStream: forwardRequestStream,
|
|
130
144
|
Shutdown: forwardRequest,
|
|
131
145
|
ExtraDevtoolsMessage: forwardRequest,
|
|
132
146
|
// Accept devtools connections (from leader and client sessions)
|
|
@@ -134,11 +148,10 @@ const makeWorkerRunner = Effect.gen(function* () {
|
|
|
134
148
|
});
|
|
135
149
|
}).pipe(Layer.unwrapScoped);
|
|
136
150
|
export const makeWorker = () => {
|
|
137
|
-
|
|
138
|
-
const storeId = self.name.replace('livestore-shared-worker-', '');
|
|
151
|
+
const layer = Layer.mergeAll(Logger.prettyWithThread(self.name), FetchHttpClient.layer, WebmeshWorker.CacheService.layer({ nodeName: DevtoolsWeb.makeNodeName.sharedWorker({ storeId }) }));
|
|
139
152
|
makeWorkerRunner.pipe(Layer.provide(BrowserWorkerRunner.layer),
|
|
140
153
|
// WorkerRunner.launch,
|
|
141
|
-
Layer.launch, Effect.scoped, Effect.tapCauseLogPretty, Effect.annotateLogs({ thread: self.name }), Effect.provide(
|
|
154
|
+
Layer.launch, Effect.scoped, Effect.tapCauseLogPretty, Effect.annotateLogs({ thread: self.name }), Effect.provide(layer), LS_DEV ? TaskTracing.withAsyncTaggingTracing((name) => console.createTask(name)) : identity,
|
|
142
155
|
// TODO remove type-cast (currently needed to silence a tsc bug)
|
|
143
156
|
(_) => _, Logger.withMinimumLogLevel(LogLevel.Debug), Effect.runFork);
|
|
144
157
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"make-shared-worker.js","sourceRoot":"","sources":["../../../src/web-worker/shared-worker/make-shared-worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,KAAK,WAAW,MAAM,4CAA4C,CAAA;AACzE,OAAO,KAAK,aAAa,MAAM,uCAAuC,CAAA;AACtE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACnE,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,QAAQ,EACR,MAAM,EACN,IAAI,EACJ,eAAe,EACf,QAAQ,EACR,KAAK,EACL,MAAM,EACN,QAAQ,EACR,WAAW,EACX,GAAG,EACH,MAAM,EACN,KAAK,EACL,MAAM,EACN,eAAe,EACf,WAAW,EACX,MAAM,EACN,WAAW,EACX,YAAY,GACb,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AACnE,OAAO,KAAK,YAAY,MAAM,4BAA4B,CAAA;AAE1D,IAAI,QAAQ,EAAE,EAAE,CAAC;IACf,UAAU,CAAC,qBAAqB,GAAG;QACjC,OAAO,EAAE,CAAC,MAA+B,EAAE,EAAE,CAC3C,GAAG,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC,CAAC;QAC/E,OAAO,EAAE,CAAC,MAAsC,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;QAC3E,OAAO,EAAE,CAAC,MAAsC,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;KAC5E,CAAA;AACH,CAAC;AAED,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAC3C,MAAM,yBAAyB,GAAG,KAAK,CAAC,CAAC,eAAe,CAAC,IAAI,CAM3D,SAAS,CAAC,CAAA;IAEZ,MAAM,gCAAgC,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,EAE1D,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;IAElC,MAAM,aAAa,GAAG,eAAe,CAAC,SAAS,CAAC,yBAAyB,EAAE,cAAc,CAAC,CAAC,IAAI,CAC7F,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAC5B,CAAA;IAED,MAAM,cAAc,GAAG,CACrB,GAAS,
|
|
1
|
+
{"version":3,"file":"make-shared-worker.js","sourceRoot":"","sources":["../../../src/web-worker/shared-worker/make-shared-worker.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
globalThis.$RefreshReg$ = () => { };
|
|
4
4
|
// @ts-expect-error TODO remove when Vite does proper treeshaking during dev
|
|
5
5
|
globalThis.$RefreshSig$ = () => (type) => type;
|
|
6
|
+
// biome-ignore lint/suspicious/noTsIgnore: sometimes @types/node is there, sometimes not.
|
|
6
7
|
// @ts-ignore
|
|
7
8
|
globalThis.process = globalThis.process ?? { env: {} };
|
|
8
9
|
globalThis.document = globalThis?.document ?? {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vite-dev-polyfill.js","sourceRoot":"","sources":["../../src/web-worker/vite-dev-polyfill.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAE3B,4EAA4E;AAC5E,UAAU,CAAC,YAAY,GAAG,GAAG,EAAE,GAAE,CAAC,CAAA;AAClC,4EAA4E;AAC5E,UAAU,CAAC,YAAY,GAAG,GAAG,EAAE,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAA;AAEnD,aAAa;AACb,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,CAAA;AAEtD,UAAU,CAAC,QAAQ,GAAI,UAAkB,EAAE,QAAQ,IAAI;IACrD,gBAAgB,EAAE,GAAG,EAAE,CAAC,EAAE;IAC1B,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI;IACzB,gBAAgB,EAAE,GAAG,EAAE,GAAE,CAAC;IAC1B,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC;QACpB,YAAY,EAAE,GAAG,EAAE,GAAE,CAAC;QACtB,QAAQ,EAAE,EAAE;QACZ,KAAK,EAAE,EAAE;KACV,CAAC;IACF,IAAI,EAAE;QACJ,gBAAgB,EAAE,GAAG,EAAE,GAAE,CAAC;KAC3B;IACD,IAAI,EAAE;QACJ,WAAW,EAAE,GAAG,EAAE,GAAE,CAAC;KACtB;CACF,CAAA;AAED,UAAU,CAAC,MAAM,GAAG,UAAU,EAAE,MAAM,IAAI;IACxC,cAAc,EAAE,MAAM,cAAc;KAAG;IACvC,eAAe,EAAE,MAAM,eAAe;KAAG;IACzC,gBAAgB,EAAE,GAAG,EAAE,GAAE,CAAC;IAC1B,QAAQ,EAAE;QACR,IAAI,EAAE,EAAE;QACR,QAAQ,EAAE,EAAE;KACb;IACD,QAAQ,EAAE,UAAU,CAAC,QAAQ;CAC9B,CAAA;AAED,UAAU,CAAC,WAAW,GAAG,UAAU,EAAE,WAAW,IAAI,MAAM,WAAW;CAAG,CAAA"}
|
|
1
|
+
{"version":3,"file":"vite-dev-polyfill.js","sourceRoot":"","sources":["../../src/web-worker/vite-dev-polyfill.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAE3B,4EAA4E;AAC5E,UAAU,CAAC,YAAY,GAAG,GAAG,EAAE,GAAE,CAAC,CAAA;AAClC,4EAA4E;AAC5E,UAAU,CAAC,YAAY,GAAG,GAAG,EAAE,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAA;AAEnD,0FAA0F;AAC1F,aAAa;AACb,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,CAAA;AAEtD,UAAU,CAAC,QAAQ,GAAI,UAAkB,EAAE,QAAQ,IAAI;IACrD,gBAAgB,EAAE,GAAG,EAAE,CAAC,EAAE;IAC1B,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI;IACzB,gBAAgB,EAAE,GAAG,EAAE,GAAE,CAAC;IAC1B,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC;QACpB,YAAY,EAAE,GAAG,EAAE,GAAE,CAAC;QACtB,QAAQ,EAAE,EAAE;QACZ,KAAK,EAAE,EAAE;KACV,CAAC;IACF,IAAI,EAAE;QACJ,gBAAgB,EAAE,GAAG,EAAE,GAAE,CAAC;KAC3B;IACD,IAAI,EAAE;QACJ,WAAW,EAAE,GAAG,EAAE,GAAE,CAAC;KACtB;CACF,CAAA;AAED,UAAU,CAAC,MAAM,GAAG,UAAU,EAAE,MAAM,IAAI;IACxC,cAAc,EAAE,MAAM,cAAc;KAAG;IACvC,eAAe,EAAE,MAAM,eAAe;KAAG;IACzC,gBAAgB,EAAE,GAAG,EAAE,GAAE,CAAC;IAC1B,QAAQ,EAAE;QACR,IAAI,EAAE,EAAE;QACR,QAAQ,EAAE,EAAE;KACb;IACD,QAAQ,EAAE,UAAU,CAAC,QAAQ;CAC9B,CAAA;AAED,UAAU,CAAC,WAAW,GAAG,UAAU,EAAE,WAAW,IAAI,MAAM,WAAW;CAAG,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@livestore/adapter-web",
|
|
3
|
-
"version": "0.4.0-dev.
|
|
3
|
+
"version": "0.4.0-dev.11",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"exports": {
|
|
@@ -13,14 +13,14 @@
|
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
15
|
"@opentelemetry/api": "1.9.0",
|
|
16
|
-
"@livestore/common": "0.4.0-dev.
|
|
17
|
-
"@livestore/devtools-web-common": "0.4.0-dev.
|
|
18
|
-
"@livestore/
|
|
19
|
-
"@livestore/
|
|
20
|
-
"@livestore/
|
|
16
|
+
"@livestore/common": "0.4.0-dev.11",
|
|
17
|
+
"@livestore/devtools-web-common": "0.4.0-dev.11",
|
|
18
|
+
"@livestore/utils": "0.4.0-dev.11",
|
|
19
|
+
"@livestore/sqlite-wasm": "0.4.0-dev.11",
|
|
20
|
+
"@livestore/webmesh": "0.4.0-dev.11"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
|
-
"@types/chrome": "
|
|
23
|
+
"@types/chrome": "0.1.4",
|
|
24
24
|
"@types/wicg-file-system-access": "^2023.10.6",
|
|
25
25
|
"vitest": "3.2.4"
|
|
26
26
|
},
|
|
@@ -16,7 +16,6 @@ import * as DevtoolsWeb from '@livestore/devtools-web-common/web-channel'
|
|
|
16
16
|
import type * as WebmeshWorker from '@livestore/devtools-web-common/worker'
|
|
17
17
|
import type { MakeWebSqliteDb } from '@livestore/sqlite-wasm/browser'
|
|
18
18
|
import { sqliteDbFactory } from '@livestore/sqlite-wasm/browser'
|
|
19
|
-
import { loadSqlite3Wasm } from '@livestore/sqlite-wasm/load-wasm'
|
|
20
19
|
import { tryAsFunctionAndNew } from '@livestore/utils'
|
|
21
20
|
import type { Schema, Scope } from '@livestore/utils/effect'
|
|
22
21
|
import { BrowserWorker, Effect, FetchHttpClient, Fiber, Layer, SubscriptionRef, Worker } from '@livestore/utils/effect'
|
|
@@ -24,11 +23,9 @@ import { nanoid } from '@livestore/utils/nanoid'
|
|
|
24
23
|
import * as Webmesh from '@livestore/webmesh'
|
|
25
24
|
|
|
26
25
|
import { connectWebmeshNodeClientSession } from '../web-worker/client-session/client-session-devtools.ts'
|
|
26
|
+
import { loadSqlite3 } from '../web-worker/client-session/sqlite-loader.ts'
|
|
27
27
|
import { makeShutdownChannel } from '../web-worker/common/shutdown-channel.ts'
|
|
28
28
|
|
|
29
|
-
// NOTE we're starting to initialize the sqlite wasm binary here to speed things up
|
|
30
|
-
const sqlite3Promise = loadSqlite3Wasm()
|
|
31
|
-
|
|
32
29
|
export interface InMemoryAdapterOptions {
|
|
33
30
|
importSnapshot?: Uint8Array<ArrayBuffer>
|
|
34
31
|
sync?: SyncOptions
|
|
@@ -60,7 +57,7 @@ export const makeInMemoryAdapter =
|
|
|
60
57
|
(adapterArgs) =>
|
|
61
58
|
Effect.gen(function* () {
|
|
62
59
|
const { schema, shutdown, syncPayload, storeId, devtoolsEnabled } = adapterArgs
|
|
63
|
-
const sqlite3 = yield* Effect.promise(() =>
|
|
60
|
+
const sqlite3 = yield* Effect.promise(() => loadSqlite3())
|
|
64
61
|
|
|
65
62
|
const sqliteDb = yield* sqliteDbFactory({ sqlite3 })({ _tag: 'in-memory' })
|
|
66
63
|
|
|
@@ -204,7 +201,8 @@ const makeLeaderThread = ({
|
|
|
204
201
|
)
|
|
205
202
|
|
|
206
203
|
return yield* Effect.gen(function* () {
|
|
207
|
-
const { dbState, dbEventlog, syncProcessor, extraIncomingMessagesQueue, initialState } =
|
|
204
|
+
const { dbState, dbEventlog, syncProcessor, extraIncomingMessagesQueue, initialState, networkStatus } =
|
|
205
|
+
yield* LeaderThreadCtx
|
|
208
206
|
|
|
209
207
|
const initialLeaderHead = Eventlog.getClientHeadFromDb(dbEventlog)
|
|
210
208
|
|
|
@@ -220,8 +218,9 @@ const makeLeaderThread = ({
|
|
|
220
218
|
initialState: { leaderHead: initialLeaderHead, migrationsReport: initialState.migrationsReport },
|
|
221
219
|
export: Effect.sync(() => dbState.export()),
|
|
222
220
|
getEventlogData: Effect.sync(() => dbEventlog.export()),
|
|
223
|
-
|
|
221
|
+
syncState: syncProcessor.syncState,
|
|
224
222
|
sendDevtoolsMessage: (message) => extraIncomingMessagesQueue.offer(message),
|
|
223
|
+
networkStatus,
|
|
225
224
|
})
|
|
226
225
|
|
|
227
226
|
const initialSnapshot = dbState.export()
|
package/src/opfs-utils.ts
CHANGED
|
@@ -17,14 +17,14 @@ export const rootHandlePromise =
|
|
|
17
17
|
) as never)
|
|
18
18
|
: navigator.storage.getDirectory()
|
|
19
19
|
|
|
20
|
-
export const getDirHandle = async (absDirPath: string | undefined) => {
|
|
20
|
+
export const getDirHandle = async (absDirPath: string | undefined, options: { create?: boolean } = {}) => {
|
|
21
21
|
const rootHandle = await rootHandlePromise
|
|
22
|
-
if (absDirPath === undefined) return rootHandle
|
|
22
|
+
if (absDirPath === undefined || absDirPath === '' || absDirPath === '/') return rootHandle
|
|
23
23
|
|
|
24
24
|
let dirHandle = rootHandle
|
|
25
|
-
const directoryStack = absDirPath
|
|
25
|
+
const directoryStack = absDirPath.split('/').filter(Boolean)
|
|
26
26
|
while (directoryStack.length > 0) {
|
|
27
|
-
dirHandle = await dirHandle.getDirectoryHandle(directoryStack.shift()
|
|
27
|
+
dirHandle = await dirHandle.getDirectoryHandle(directoryStack.shift()!, options)
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
return dirHandle
|
|
@@ -26,11 +26,14 @@ interface FileSystemFileHandle {
|
|
|
26
26
|
// export default sharedWorkerConstructor
|
|
27
27
|
// }
|
|
28
28
|
|
|
29
|
+
declare interface ImportMetaEnv {
|
|
30
|
+
readonly SSR?: string | boolean
|
|
31
|
+
readonly DEV: boolean | undefined
|
|
32
|
+
readonly VITE_LIVESTORE_EXPERIMENTAL_SYNC_NEXT: boolean | undefined
|
|
33
|
+
}
|
|
34
|
+
|
|
29
35
|
declare interface ImportMeta {
|
|
30
|
-
env:
|
|
31
|
-
DEV: boolean | undefined
|
|
32
|
-
VITE_LIVESTORE_EXPERIMENTAL_SYNC_NEXT: boolean | undefined
|
|
33
|
-
}
|
|
36
|
+
readonly env: ImportMetaEnv
|
|
34
37
|
}
|
|
35
38
|
|
|
36
39
|
declare var __debugLiveStoreUtils: any
|
|
@@ -12,7 +12,6 @@ import {
|
|
|
12
12
|
// import LiveStoreSharedWorker from '@livestore/adapter-web/internal-shared-worker?sharedworker'
|
|
13
13
|
import { EventSequenceNumber } from '@livestore/common/schema'
|
|
14
14
|
import { sqliteDbFactory } from '@livestore/sqlite-wasm/browser'
|
|
15
|
-
import { loadSqlite3Wasm } from '@livestore/sqlite-wasm/load-wasm'
|
|
16
15
|
import { isDevEnv, shouldNeverHappen, tryAsFunctionAndNew } from '@livestore/utils'
|
|
17
16
|
import {
|
|
18
17
|
BrowserWorker,
|
|
@@ -21,10 +20,12 @@ import {
|
|
|
21
20
|
Effect,
|
|
22
21
|
Exit,
|
|
23
22
|
Fiber,
|
|
23
|
+
Layer,
|
|
24
24
|
ParseResult,
|
|
25
25
|
Queue,
|
|
26
26
|
Schema,
|
|
27
27
|
Stream,
|
|
28
|
+
Subscribable,
|
|
28
29
|
SubscriptionRef,
|
|
29
30
|
WebLock,
|
|
30
31
|
Worker,
|
|
@@ -38,9 +39,7 @@ import { makeShutdownChannel } from '../common/shutdown-channel.ts'
|
|
|
38
39
|
import { DedicatedWorkerDisconnectBroadcast, makeWorkerDisconnectChannel } from '../common/worker-disconnect-channel.ts'
|
|
39
40
|
import * as WorkerSchema from '../common/worker-schema.ts'
|
|
40
41
|
import { connectWebmeshNodeClientSession } from './client-session-devtools.ts'
|
|
41
|
-
|
|
42
|
-
// NOTE we're starting to initialize the sqlite wasm binary here to speed things up
|
|
43
|
-
const sqlite3Promise = loadSqlite3Wasm()
|
|
42
|
+
import { loadSqlite3 } from './sqlite-loader.ts'
|
|
44
43
|
|
|
45
44
|
if (isDevEnv()) {
|
|
46
45
|
globalThis.__debugLiveStoreUtils = {
|
|
@@ -100,6 +99,21 @@ export type WebAdapterOptions = {
|
|
|
100
99
|
* @default false
|
|
101
100
|
*/
|
|
102
101
|
disableFastPath?: boolean
|
|
102
|
+
/**
|
|
103
|
+
* Controls whether to wait for the shared worker to be terminated when LiveStore gets shut down.
|
|
104
|
+
* This prevents a race condition where a new LiveStore instance connects to a shutting-down shared
|
|
105
|
+
* worker from a previous instance.
|
|
106
|
+
*
|
|
107
|
+
* @default false
|
|
108
|
+
*
|
|
109
|
+
* @remarks
|
|
110
|
+
*
|
|
111
|
+
* In multi-tab scenarios, we don't want to await shared worker termination because the shared worker
|
|
112
|
+
* won't actually shut down when one tab closes - it stays alive to serve other tabs. Awaiting
|
|
113
|
+
* termination would cause unnecessary blocking since the termination will never happen until all
|
|
114
|
+
* tabs are closed.
|
|
115
|
+
*/
|
|
116
|
+
awaitSharedWorkerTermination?: boolean
|
|
103
117
|
}
|
|
104
118
|
}
|
|
105
119
|
|
|
@@ -130,9 +144,10 @@ export const makePersistedAdapter =
|
|
|
130
144
|
|
|
131
145
|
yield* Queue.offer(bootStatusQueue, { stage: 'loading' })
|
|
132
146
|
|
|
133
|
-
const sqlite3 = yield* Effect.promise(() =>
|
|
147
|
+
const sqlite3 = yield* Effect.promise(() => loadSqlite3())
|
|
134
148
|
|
|
135
149
|
const LIVESTORE_TAB_LOCK = `livestore-tab-lock-${storeId}`
|
|
150
|
+
const LIVESTORE_SHARED_WORKER_TERMINATION_LOCK = `livestore-shared-worker-termination-lock-${storeId}`
|
|
136
151
|
|
|
137
152
|
const storageOptions = yield* Schema.decode(WorkerSchema.StorageType)(options.storage)
|
|
138
153
|
|
|
@@ -175,6 +190,13 @@ export const makePersistedAdapter =
|
|
|
175
190
|
|
|
176
191
|
const sharedWebWorker = tryAsFunctionAndNew(options.sharedWorker, { name: `livestore-shared-worker-${storeId}` })
|
|
177
192
|
|
|
193
|
+
if (options.experimental?.awaitSharedWorkerTermination) {
|
|
194
|
+
// Relying on the lock being available is currently the only mechanism we're aware of
|
|
195
|
+
// to know whether the shared worker has terminated.
|
|
196
|
+
yield* Effect.addFinalizer(() => WebLock.waitForLock(LIVESTORE_SHARED_WORKER_TERMINATION_LOCK))
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
const sharedWorkerContext = yield* Layer.build(BrowserWorker.layer(() => sharedWebWorker))
|
|
178
200
|
const sharedWorkerFiber = yield* Worker.makePoolSerialized<typeof WorkerSchema.SharedWorkerRequest.Type>({
|
|
179
201
|
size: 1,
|
|
180
202
|
concurrency: 100,
|
|
@@ -194,7 +216,7 @@ export const makePersistedAdapter =
|
|
|
194
216
|
},
|
|
195
217
|
}),
|
|
196
218
|
}).pipe(
|
|
197
|
-
Effect.provide(
|
|
219
|
+
Effect.provide(sharedWorkerContext),
|
|
198
220
|
Effect.tapCauseLogPretty,
|
|
199
221
|
UnexpectedError.mapToUnexpectedError,
|
|
200
222
|
Effect.tapErrorCause((cause) => shutdown(Exit.failCause(cause))),
|
|
@@ -438,16 +460,23 @@ export const makePersistedAdapter =
|
|
|
438
460
|
Effect.withSpan('@livestore/adapter-web:client-session:getEventlogData'),
|
|
439
461
|
),
|
|
440
462
|
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
463
|
+
syncState: Subscribable.make({
|
|
464
|
+
get: runInWorker(new WorkerSchema.LeaderWorkerInnerGetLeaderSyncState()).pipe(
|
|
465
|
+
UnexpectedError.mapToUnexpectedError,
|
|
466
|
+
Effect.withSpan('@livestore/adapter-web:client-session:getLeaderSyncState'),
|
|
467
|
+
),
|
|
468
|
+
changes: runInWorkerStream(new WorkerSchema.LeaderWorkerInnerSyncStateStream()).pipe(Stream.orDie),
|
|
469
|
+
}),
|
|
445
470
|
|
|
446
471
|
sendDevtoolsMessage: (message) =>
|
|
447
472
|
runInWorker(new WorkerSchema.LeaderWorkerInnerExtraDevtoolsMessage({ message })).pipe(
|
|
448
473
|
UnexpectedError.mapToUnexpectedError,
|
|
449
474
|
Effect.withSpan('@livestore/adapter-web:client-session:devtoolsMessageForLeader'),
|
|
450
475
|
),
|
|
476
|
+
networkStatus: Subscribable.make({
|
|
477
|
+
get: runInWorker(new WorkerSchema.LeaderWorkerInnerGetNetworkStatus()).pipe(Effect.orDie),
|
|
478
|
+
changes: runInWorkerStream(new WorkerSchema.LeaderWorkerInnerNetworkStatusStream()).pipe(Stream.orDie),
|
|
479
|
+
}),
|
|
451
480
|
}
|
|
452
481
|
|
|
453
482
|
const sharedWorker = yield* Fiber.join(sharedWorkerFiber)
|