@powersync/web 2.3.1 → 2.4.0
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/index.react_native_web.js.map +1 -1
- package/dist/worker/AccessHandlePoolVFS-BPUHfZME.js.map +1 -1
- package/dist/worker/FacadeVFS-d1ZDvud7.js.map +1 -1
- package/dist/worker/IDBBatchAtomicVFS-DbkDb777.js.map +1 -1
- package/dist/worker/MemoryVFS-DVJL5F8j.js.map +1 -1
- package/dist/worker/OPFSCoopSyncVFS-BgTiWPfa.js.map +1 -1
- package/dist/worker/OPFSWriteAheadVFS-D6_Zahcx.js +2 -0
- package/dist/worker/OPFSWriteAheadVFS-D6_Zahcx.js.map +1 -0
- package/dist/worker/mc-wa-sqlite-PubB6u8c.js.map +1 -1
- package/dist/worker/mc-wa-sqlite-async-DJG_ANKO.js.map +1 -1
- package/dist/worker/wa-sqlite-D1_4mGs8.js.map +1 -1
- package/dist/worker/wa-sqlite-async-BxkwNY-2.js.map +1 -1
- package/dist/worker/worker.js +1 -1
- package/dist/worker/worker.js.map +1 -1
- package/lib/worker/sync/SharedSyncImplementation.js +41 -25
- package/lib/worker/sync/SharedSyncImplementation.js.map +1 -1
- package/package.json +6 -6
- package/src/worker/sync/SharedSyncImplementation.ts +64 -33
- package/dist/worker/OPFSWriteAheadVFS-Rt5CGCZP.js +0 -2
- package/dist/worker/OPFSWriteAheadVFS-Rt5CGCZP.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BaseObserver, DBAdapter, LogLevels, SyncStreamConnectionMethod } from '@powersync/common';
|
|
2
|
-
import { AbortOperation, ConnectionManager, SqliteBucketStorage, Mutex } from '@powersync/shared-internals';
|
|
2
|
+
import { AbortOperation, ConnectionManager, SqliteBucketStorage, Mutex, SyncStatusSnapshot } from '@powersync/shared-internals';
|
|
3
3
|
import * as Comlink from 'comlink';
|
|
4
4
|
import { WebRemote } from '../../db/sync/WebRemote.js';
|
|
5
5
|
import { WebStreamingSyncImplementation } from '../../db/sync/WebStreamingSyncImplementation.js';
|
|
@@ -61,7 +61,7 @@ export class SharedSyncImplementation extends BaseObserver {
|
|
|
61
61
|
createSyncImplementation: async () => {
|
|
62
62
|
await this.waitForReady();
|
|
63
63
|
const sync = this.generateStreamingImplementation();
|
|
64
|
-
const
|
|
64
|
+
const removeStatusListener = sync.registerListener({
|
|
65
65
|
statusChanged: (snapshot) => {
|
|
66
66
|
this.syncStatus = snapshot;
|
|
67
67
|
const json = snapshot.toJSON();
|
|
@@ -70,7 +70,12 @@ export class SharedSyncImplementation extends BaseObserver {
|
|
|
70
70
|
});
|
|
71
71
|
return {
|
|
72
72
|
sync,
|
|
73
|
-
onDispose
|
|
73
|
+
onDispose: () => {
|
|
74
|
+
removeStatusListener();
|
|
75
|
+
// Clear transient state so new tabs don't inherit stale errors.
|
|
76
|
+
// Preserve core status, including hasSynced and lastSyncedAt.
|
|
77
|
+
this.syncStatus &&= new SyncStatusSnapshot(this.syncStatus.core, {});
|
|
78
|
+
}
|
|
74
79
|
};
|
|
75
80
|
},
|
|
76
81
|
logger: this.logger,
|
|
@@ -276,21 +281,21 @@ export class SharedSyncImplementation extends BaseObserver {
|
|
|
276
281
|
this.logger.log({ level: LogLevels.error, message: 'error invalidating credentials', error });
|
|
277
282
|
}
|
|
278
283
|
},
|
|
279
|
-
fetchCredentials: () => {
|
|
284
|
+
fetchCredentials: (signal) => {
|
|
280
285
|
return this.#useConnector((port) => {
|
|
281
286
|
this.logger.log({
|
|
282
287
|
level: LogLevels.info,
|
|
283
288
|
message: 'calling the last port client provider for credentials'
|
|
284
289
|
});
|
|
285
290
|
return port.clientProvider.fetchCredentials();
|
|
286
|
-
}, 'fetchCredentials');
|
|
291
|
+
}, 'fetchCredentials', signal);
|
|
287
292
|
}
|
|
288
293
|
}, this.logger),
|
|
289
|
-
uploadCrud: () => {
|
|
290
|
-
return this.#useConnector((port) => port.clientProvider.uploadCrud(), 'uploadCrud');
|
|
294
|
+
uploadCrud: (signal) => {
|
|
295
|
+
return this.#useConnector((port) => port.clientProvider.uploadCrud(), 'uploadCrud', signal);
|
|
291
296
|
},
|
|
292
|
-
postCheckpointRequest: (clientId, requestId) => {
|
|
293
|
-
return this.#useConnector((port) => port.clientProvider.postCheckpointRequest(clientId, requestId), 'postCheckpointRequest');
|
|
297
|
+
postCheckpointRequest: (clientId, requestId, signal) => {
|
|
298
|
+
return this.#useConnector((port) => port.clientProvider.postCheckpointRequest(clientId, requestId), 'postCheckpointRequest', signal);
|
|
294
299
|
},
|
|
295
300
|
...syncParams.streamOptions,
|
|
296
301
|
subscriptions: this.subscriptions,
|
|
@@ -298,22 +303,32 @@ export class SharedSyncImplementation extends BaseObserver {
|
|
|
298
303
|
logger: this.logger
|
|
299
304
|
});
|
|
300
305
|
}
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
306
|
+
/**
|
|
307
|
+
* Calls into a client tab, stopping the wait on disconnect when a signal is supplied.
|
|
308
|
+
*/
|
|
309
|
+
async #useConnector(inner, debugContext, signal) {
|
|
310
|
+
const action = async () => {
|
|
311
|
+
const lastPort = await this.getLastWrappedPort();
|
|
312
|
+
if (!lastPort) {
|
|
313
|
+
throw new Error(`No client port found for ${debugContext}`);
|
|
309
314
|
}
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
lastPort.closeListeners.
|
|
315
|
+
return await new Promise((resolve, reject) => {
|
|
316
|
+
const portClosed = () => {
|
|
317
|
+
reject(new Error(`Tab closed while handling ${debugContext}`));
|
|
318
|
+
};
|
|
319
|
+
lastPort.closeListeners.push(portClosed);
|
|
320
|
+
inner(lastPort)
|
|
321
|
+
.then(resolve, reject)
|
|
322
|
+
.finally(() => {
|
|
323
|
+
const index = lastPort.closeListeners.indexOf(portClosed);
|
|
324
|
+
if (index >= 0) {
|
|
325
|
+
lastPort.closeListeners.splice(index, 1);
|
|
326
|
+
}
|
|
327
|
+
});
|
|
315
328
|
});
|
|
316
|
-
}
|
|
329
|
+
};
|
|
330
|
+
// Include port lookup in the guard: port removal can hold portMutex.
|
|
331
|
+
return signal ? withAbort({ signal, action }) : action();
|
|
317
332
|
}
|
|
318
333
|
/**
|
|
319
334
|
* Requests a random client to share its database connection with us.
|
|
@@ -462,14 +477,15 @@ export class SharedSyncImplementation extends BaseObserver {
|
|
|
462
477
|
*/
|
|
463
478
|
function withAbort(options) {
|
|
464
479
|
const { action, signal, cleanupOnAbort } = options;
|
|
480
|
+
const abortError = () => signal.reason instanceof Error ? signal.reason : new AbortOperation('Operation aborted by abort controller');
|
|
465
481
|
return new Promise((resolve, reject) => {
|
|
466
482
|
if (signal.aborted) {
|
|
467
|
-
reject(
|
|
483
|
+
reject(abortError());
|
|
468
484
|
return;
|
|
469
485
|
}
|
|
470
486
|
function handleAbort() {
|
|
471
487
|
signal.removeEventListener('abort', handleAbort);
|
|
472
|
-
reject(
|
|
488
|
+
reject(abortError());
|
|
473
489
|
}
|
|
474
490
|
signal.addEventListener('abort', handleAbort, { once: true });
|
|
475
491
|
function completePromise(action) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SharedSyncImplementation.js","sourceRoot":"","sources":["../../../src/worker/sync/SharedSyncImplementation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SharedSyncImplementation.js","sourceRoot":"","sources":["../../../src/worker/sync/SharedSyncImplementation.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@powersync/web",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.4.0",
|
|
4
4
|
"description": "PowerSync Web SDK",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "lib/index.js",
|
|
@@ -54,15 +54,15 @@
|
|
|
54
54
|
"author": "PowerSync",
|
|
55
55
|
"license": "Apache-2.0",
|
|
56
56
|
"peerDependencies": {
|
|
57
|
-
"@powersync/common": "^2.
|
|
58
|
-
"@powersync/shared-internals": "^1.
|
|
57
|
+
"@powersync/common": "^2.3.0",
|
|
58
|
+
"@powersync/shared-internals": "^1.3.0"
|
|
59
59
|
},
|
|
60
60
|
"dependencies": {
|
|
61
|
-
"@journeyapps/wa-sqlite": "2.0.
|
|
61
|
+
"@journeyapps/wa-sqlite": "2.0.5",
|
|
62
62
|
"comlink": "^4.4.2",
|
|
63
63
|
"commander": "^12.1.0",
|
|
64
|
-
"@powersync/common": "2.
|
|
65
|
-
"@powersync/shared-internals": "1.
|
|
64
|
+
"@powersync/common": "2.3.0",
|
|
65
|
+
"@powersync/shared-internals": "1.3.0"
|
|
66
66
|
},
|
|
67
67
|
"devDependencies": {
|
|
68
68
|
"@types/uuid": "^9.0.6",
|
|
@@ -137,7 +137,7 @@ export class SharedSyncImplementation extends BaseObserver<SharedSyncImplementat
|
|
|
137
137
|
await this.waitForReady();
|
|
138
138
|
|
|
139
139
|
const sync = this.generateStreamingImplementation();
|
|
140
|
-
const
|
|
140
|
+
const removeStatusListener = sync.registerListener({
|
|
141
141
|
statusChanged: (snapshot) => {
|
|
142
142
|
this.syncStatus = snapshot;
|
|
143
143
|
const json = snapshot.toJSON();
|
|
@@ -147,7 +147,13 @@ export class SharedSyncImplementation extends BaseObserver<SharedSyncImplementat
|
|
|
147
147
|
|
|
148
148
|
return {
|
|
149
149
|
sync,
|
|
150
|
-
onDispose
|
|
150
|
+
onDispose: () => {
|
|
151
|
+
removeStatusListener();
|
|
152
|
+
|
|
153
|
+
// Clear transient state so new tabs don't inherit stale errors.
|
|
154
|
+
// Preserve core status, including hasSynced and lastSyncedAt.
|
|
155
|
+
this.syncStatus &&= new SyncStatusSnapshot(this.syncStatus.core, {});
|
|
156
|
+
}
|
|
151
157
|
};
|
|
152
158
|
},
|
|
153
159
|
logger: this.logger,
|
|
@@ -386,26 +392,33 @@ export class SharedSyncImplementation extends BaseObserver<SharedSyncImplementat
|
|
|
386
392
|
this.logger.log({ level: LogLevels.error, message: 'error invalidating credentials', error });
|
|
387
393
|
}
|
|
388
394
|
},
|
|
389
|
-
fetchCredentials: (
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
395
|
+
fetchCredentials: (
|
|
396
|
+
signal?: AbortSignal
|
|
397
|
+
) => {
|
|
398
|
+
return this.#useConnector(
|
|
399
|
+
(port) => {
|
|
400
|
+
this.logger.log({
|
|
401
|
+
level: LogLevels.info,
|
|
402
|
+
message: 'calling the last port client provider for credentials'
|
|
403
|
+
});
|
|
404
|
+
|
|
405
|
+
return port.clientProvider.fetchCredentials();
|
|
406
|
+
},
|
|
407
|
+
'fetchCredentials',
|
|
408
|
+
signal
|
|
409
|
+
);
|
|
398
410
|
}
|
|
399
411
|
},
|
|
400
412
|
this.logger
|
|
401
413
|
),
|
|
402
|
-
uploadCrud: () => {
|
|
403
|
-
return this.#useConnector((port) => port.clientProvider.uploadCrud(), 'uploadCrud');
|
|
414
|
+
uploadCrud: (signal) => {
|
|
415
|
+
return this.#useConnector((port) => port.clientProvider.uploadCrud(), 'uploadCrud', signal);
|
|
404
416
|
},
|
|
405
|
-
postCheckpointRequest: (clientId, requestId) => {
|
|
417
|
+
postCheckpointRequest: (clientId, requestId, signal) => {
|
|
406
418
|
return this.#useConnector(
|
|
407
419
|
(port) => port.clientProvider.postCheckpointRequest(clientId, requestId),
|
|
408
|
-
'postCheckpointRequest'
|
|
420
|
+
'postCheckpointRequest',
|
|
421
|
+
signal
|
|
409
422
|
);
|
|
410
423
|
},
|
|
411
424
|
...syncParams.streamOptions,
|
|
@@ -415,25 +428,40 @@ export class SharedSyncImplementation extends BaseObserver<SharedSyncImplementat
|
|
|
415
428
|
});
|
|
416
429
|
}
|
|
417
430
|
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
431
|
+
/**
|
|
432
|
+
* Calls into a client tab, stopping the wait on disconnect when a signal is supplied.
|
|
433
|
+
*/
|
|
434
|
+
async #useConnector<T>(
|
|
435
|
+
inner: (port: WrappedSyncPort) => Promise<T>,
|
|
436
|
+
debugContext: string,
|
|
437
|
+
signal?: AbortSignal
|
|
438
|
+
): Promise<T> {
|
|
439
|
+
const action = async () => {
|
|
440
|
+
const lastPort = await this.getLastWrappedPort();
|
|
441
|
+
if (!lastPort) {
|
|
442
|
+
throw new Error(`No client port found for ${debugContext}`);
|
|
427
443
|
}
|
|
428
444
|
|
|
429
|
-
|
|
445
|
+
return await new Promise<T>((resolve, reject) => {
|
|
446
|
+
const portClosed = () => {
|
|
447
|
+
reject(new Error(`Tab closed while handling ${debugContext}`));
|
|
448
|
+
};
|
|
430
449
|
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
450
|
+
lastPort.closeListeners.push(portClosed);
|
|
451
|
+
|
|
452
|
+
inner(lastPort)
|
|
453
|
+
.then(resolve, reject)
|
|
454
|
+
.finally(() => {
|
|
455
|
+
const index = lastPort.closeListeners.indexOf(portClosed);
|
|
456
|
+
if (index >= 0) {
|
|
457
|
+
lastPort.closeListeners.splice(index, 1);
|
|
458
|
+
}
|
|
459
|
+
});
|
|
460
|
+
});
|
|
461
|
+
};
|
|
462
|
+
|
|
463
|
+
// Include port lookup in the guard: port removal can hold portMutex.
|
|
464
|
+
return signal ? withAbort({ signal, action }) : action();
|
|
437
465
|
}
|
|
438
466
|
|
|
439
467
|
/**
|
|
@@ -619,15 +647,18 @@ function withAbort<T>(options: {
|
|
|
619
647
|
cleanupOnAbort?: (result: T) => void;
|
|
620
648
|
}): Promise<T> {
|
|
621
649
|
const { action, signal, cleanupOnAbort } = options;
|
|
650
|
+
const abortError = () =>
|
|
651
|
+
signal.reason instanceof Error ? signal.reason : new AbortOperation('Operation aborted by abort controller');
|
|
652
|
+
|
|
622
653
|
return new Promise((resolve, reject) => {
|
|
623
654
|
if (signal.aborted) {
|
|
624
|
-
reject(
|
|
655
|
+
reject(abortError());
|
|
625
656
|
return;
|
|
626
657
|
}
|
|
627
658
|
|
|
628
659
|
function handleAbort() {
|
|
629
660
|
signal.removeEventListener('abort', handleAbort);
|
|
630
|
-
reject(
|
|
661
|
+
reject(abortError());
|
|
631
662
|
}
|
|
632
663
|
|
|
633
664
|
signal.addEventListener('abort', handleAbort, { once: true });
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{F as e}from"./FacadeVFS-d1ZDvud7.js";import{r as t,f as s,e as a,I as i,H as r,j as n,S as o,k as l,l as c,m as h,n as d,o as u,p as g,q as w,t as p,u as f,v as m,w as y,i as k,g as b,a as x,b as I,J as T,A as v,x as H,y as L,z as F,B as S,D as P,d as z,F as A,E}from"./worker.js";class U{#e;#t=null;#s=Promise.resolve(null);#a=!1;constructor(e){this.#e=e}get name(){return this.#e}get mode(){return this.#t}close(){this.release()}async acquire(e,t=-1){if(this.#a)throw new Error("Lock is already being acquired");this.#a=!0;try{if(this.#t)throw new Error(`Lock ${this.#e} is already acquired`);return this.#s=new Promise((s,a)=>{const i={mode:e,ifAvailable:0===t};t>0&&(i.signal=AbortSignal.timeout(t)),navigator.locks.request(this.#e,i,t=>null===t?s(null):(this.#t=e,new Promise(e=>{s(e)}))).catch(e=>a(e))}),this.#s.then(e=>!!e)}finally{this.#a=!1}}release(){this.#s.then(e=>e?.(),()=>{}),this.#t=null}}class C extends U{#i;#r=!1;#n=!1;constructor(e){super(e),this.#i=new BroadcastChannel(e),this.#i.onmessage=e=>{this.#r?this.#n=!0:this.release()}}close(){super.close(),this.#i.onmessage=null,this.#i.close()}async acquire(e,t=-1){this.#r=!0;try{if(e===this.mode)return!0;if(this.mode)super.release();else if(await super.acquire(e,0))return!0;const s=super.acquire(e,t);return this.#i.postMessage({}),await s}catch(e){throw this.release(),e}}acquireIfHeld(e){return e===this.mode&&(this.#r=!0,!0)}release(){super.release(),this.#r=!1,this.#n=!1}releaseLazy(){this.#r=!1,this.#n&&this.release()}}const O=931071620,$=32,R=32;class _{log=null;options={autoCheckpoint:1,backstopInterval:3e4,journalSizeLimit:1e3};#o;#l;#c;#h;#d;#u;#g=0;#w=null;#p=0;#f;#m=null;#y=null;#k=new Map;#b=new Map;#x=new Map;#I=0;#T=[0,0];#v;#H;#L=0;#F=new AbortController;constructor(e,t,s,a={}){this.#o=e,this.#l=t,this.#c=s,this.options=Object.assign(this.options,a),this.#f=(async()=>{const{fileHeader:t}=await navigator.locks.request(`${this.#o}#ckpt`,async()=>{await this.#S(),this.#v=new BroadcastChannel(`${e}#wa`),this.#v.onmessage=e=>{this.#P(e)};return{fileHeader:this.#c.map(e=>this.#z(e)).filter(e=>e).sort((e,t)=>e.nextTxId-t.nextTxId)[0]??this.#A(Math.floor(4294967295*Math.random()))}});this.#d=t,this.#h=this.#c[1&t.salt1],this.#u=$,this.#g=t.nextTxId-1;for(const e of this.#E())this.#U(e);this.#S(),this.#L=performance.now(),this.#C()})()}ready(){return this.#f}close(){this.#F.abort(),this.#v.onmessage=null,clearTimeout(this.#H),this.#y?.release(),this.#v.close()}isolateForRead(){if(null!==this.#m)throw new Error("Already in isolated state");this.#m="read",clearTimeout(this.#H),this.#H=null}isolateForWrite(){if(null!==this.#m)throw new Error("Already in isolated state");this.#m="write",clearTimeout(this.#H),this.#H=null,this.#O({readToCurrent:!0})}rejoin(){"read"===this.#m&&this.#O({autoCheckpoint:!0}),this.#m=null,this.#C()}read(e){const t=this.#w?.pages.get(e)??this.#k.get(e);return t?t.pageData?(this.log?.(`%cread page at ${e} from WAL ${1&t.waSalt1}:${t.waOffset} (cached)`,"background-color: gold;"),t.pageData):(this.log?.(`%cread page at ${e} from WAL ${1&t.waSalt1}:${t.waOffset}`,"background-color: gold;"),this.#$(t)):null}write(e,t,s){if("write"!==this.#m)throw new Error("Not in write isolated state");if(this.#w||(this.#R(),s.dstPageSize!==t.byteLength&&(this.#w.newPageSize=s.dstPageSize)),this.#w.newPageSize){const s=R+this.#w.newPageSize;if(t.byteLength>this.#w.newPageSize)for(let s=0;s<t.byteLength;s+=this.#w.newPageSize){const a=t.slice(s,s+this.#w.newPageSize),i=this.#_(e+s,a);this.log?.(`%cwrite page at ${e+s} to WAL ${1&this.#d.salt1}:${i}`,"background-color: lightskyblue;")}else{const a=e%this.#w.newPageSize,i=this.#u+(e-a)/this.#w.newPageSize*s+R+a;this.#h.write(t.subarray(),{at:i}),this.log?.(`%cwrite page at ${e} to WAL ${1&this.#d.salt1}:${i}`,"background-color: lightskyblue;")}}else{const s=this.#_(e,t.slice());this.log?.(`%cwrite page at ${e} to WAL ${1&this.#d.salt1}:${s}`,"background-color: lightskyblue;")}}truncate(e){if(this.#w)for(const t of this.#w.pages.keys())t>=e&&this.#w.pages.delete(t)}getFileSize(){return this.#w?.dbFileSize??this.#p}commit(){const e=this.#w;if(e.newPageSize&&0===e.pages.size){let t=1;for(let s=0;s<t;s++){const a=new Uint8Array(e.newPageSize),i=this.#u+s*(R+e.newPageSize)+R;if(this.#h.read(a,{at:i}),0===s){t=new DataView(a.buffer).getUint32(28)}this.#_(s*e.newPageSize,a)}}const t=this.#w.pages.get(0)?.pageData;if(!t)return void this.rollback();{const e=new DataView(t.buffer,t.byteOffset,t.byteLength).getUint32(28);this.#w.dbFileSize=e*t.byteLength}this.#q(),this.#U(e),this.#S();const s={type:"tx",tx:e};if(this.#v.postMessage(s),this.#B()){const e=this.#T[0]+this.#T[1];e>=(this.options.journalSizeLimit>0?this.options.journalSizeLimit:1e3)&&(this.log?.(`%cchange WAL file at ${e} pages`,"background-color: lightskyblue;"),this.#j())}this.#D(),this.#L=performance.now()}rollback(){this.#M()}sync(e){"strict"===e.durability&&this.#N()}async checkpoint(e={isPassive:!0}){const t={ifAvailable:e.isPassive};await navigator.locks.request(`${this.#o}#ckpt`,t,async t=>{if(!t)return;if(this.#F.signal.aborted)return;let s=this.#W()-1;if(e.isPassive){if(!this.#b.has(s))return;if((await this.#V()).reduce((e,t)=>Math.min(e,t.maxTxId),this.#g)<s)return}else await this.#G(e=>e.maxTxId>=this.#g),s=this.#g;this.log?.(`%ccheckpoint through txId ${s}`,"background-color: lightgreen;"),this.#J(),e.isPassive||this.#N();const a=new Set;let i=this.#l.getSize();for(let e=this.#b.get(s);e;e=this.#b.get(e.id-1)){e.id===s&&i!==e.dbFileSize&&(i=e.dbFileSize,this.#l.truncate(i));for(const[t,s]of e.pages)if(t<i&&!a.has(t)){const i=s.pageData??this.#$(s);if(this.#l.write(i,{at:t})!==i.byteLength)throw new Error("Checkpoint write failed");a.add(t),this.log?.(`%ccheckpoint wrote txId ${e.id} page at ${t} to database`,"background-color: lightgreen;")}if(e.newPageSize)break}this.log?.("%ccheckpoint flush database file","background-color: lightgreen;"),this.#l.flush(),this.#v.postMessage({type:"ckpt",ckptId:s}),this.#K(s),this.log?.("%ccheckpoint waiting for connection updates","background-color: lightgreen;"),await this.#G(e=>e.minTxId>s),this.#Q(),this.log?.("%ccheckpoint complete","background-color: lightgreen;")})}getWriteAheadSize(){return this.#I}isTransactionPending(){return!!this.#w}setBackstopInterval(e){this.options.backstopInterval=e,e>0&&this.#m&&this.#C()}#U(e){this.#b.set(e.id,e);const t=1&e.pages.get(0).waSalt1;this.#T[t]+=e.pages.size,this.#T[1-t]=0,this.#I+=e.pages.size;for(const[t,s]of e.pages)this.#k.set(t,s);this.#p=e.dbFileSize}#O(e={}){let t=!1;for(;this.#x.size;){const e=this.#g+1;let s;this.#x.has(e)?(s=this.#x.get(e),this.#x.delete(s.id),this.#X(s)):s=this.#Y(),this.#U(s),t=!0}if(e.readToCurrent)for(const e of this.#E())this.#U(e),t=!0;t&&(this.#S(),e.autoCheckpoint&&this.#D()),(e.readToCurrent||t)&&(this.#L=performance.now())}#D(){this.options.autoCheckpoint>0&&this.checkpoint({isPassive:!0})}#K(e){this.log?.(`%capply checkpoint through txId ${e}`,"background-color: lightgreen;");for(let t=this.#b.get(e);t;t=this.#b.get(t.id-1)){for(const[e,s]of t.pages.entries()){this.#k.get(e)===s&&(this.log?.(`%cremove txId ${t.id} page at offset ${e}`,"background-color: lightgreen;"),this.#k.delete(e))}this.#b.delete(t.id),this.#I-=t.pages.size}this.#S()}#P(e){if("tx"===e.data.type){const t=e.data.tx;t.id>this.#g&&(this.#x.set(t.id,t),null===this.#m&&this.#O({autoCheckpoint:!0}))}else if("ckpt"===e.data.type){const t=e.data.ckptId;this.#K(t)}}#C(){if(this.options.backstopInterval<=0)return;if(this.#m)throw new Error("Backstop was invoked in an isolated state");if(performance.now()>=this.#L+this.options.backstopInterval){const e=this.#g;this.#O({readToCurrent:!0}),this.#g>e&&this.log?.(`%cbackstop txId ${e} -> ${this.#g}`,"background-color: lightyellow;"),this.#L=performance.now()}const e=this.#L+this.options.backstopInterval-performance.now();clearTimeout(this.#H),this.#H=self.setTimeout(()=>{this.#C()},e)}async#S(){const e=this.#y,t=this.#Z();if(e?.name!==t&&(this.#y=new U(t),await this.#y.acquire("shared").then(()=>{e?.release()}),this.log)){const{minTxId:e,maxTxId:s}=this.#ee(t);this.log?.(`%ctxId to ${e}:${s}`,"background-color: pink;")}}async#V(){const{held:e}=await navigator.locks.query();return e.map(e=>this.#ee(e.name)).filter(e=>null!==e)}#Z(){const e=this.#g,t=this.#b.keys().next().value??e+1;return`${this.#o}-txId<${t.toString(36)}:${e.toString(36)}>`}#ee(e){const t=e.match(/^(.*)-txId<([0-9a-z]+):([0-9a-z]+)>$/);return t?.[1]===this.#o?{name:t[1],minTxId:parseInt(t[2],36),maxTxId:parseInt(t[3],36),encoded:e}:null}async#G(e){let t=[];do{t.length>0&&await Promise.all(t.map(e=>navigator.locks.request(e,async()=>{}))),t=(await this.#V()).filter(t=>!e(t)).map(e=>e.encoded)}while(t.length>0)}#$(e){const t=this.#c[1&e.waSalt1],s=new Uint8Array(e.pageSize),a=t.read(s,{at:e.waOffset});if(a!==e.pageSize)throw new Error(`Short WAL read: expected ${e.pageSize} bytes, got ${a}`);return s}*#E(){for(;;){const e=this.#Y();if(!e)break;yield e}}#Y(){const e={id:0,pages:new Map,dbFileSize:0,waSalt1:0,waOffsetEnd:0};let t=this.#u;for(;;){const s=this.#te(t);if(!s)return null;if(0===s.frameType)e.pages.set(s.pageOffset,{pageSize:s.pageData.byteLength,waOffset:t+R,waSalt1:this.#d.salt1});else{if(1===s.frameType)return this.#g+=1,this.#u=t+s.byteLength,e.id=this.#g,e.dbFileSize=s.dbFileSize,e.waSalt1=this.#d.salt1,e.newPageSize=1&s.flags?e.pages.get(0).pageSize:null,e.waOffsetEnd=this.#u,e;if(2===s.frameType){this.#se(s.fileHeader),t=this.#u;continue}}t+=s.byteLength}}#X(e){if(e.waSalt1!==this.#d.salt1&&!this.#se(null))throw new Error("invalid WAL file");this.#g=e.id,this.#u=e.waOffsetEnd}#R(e={}){return this.#w={id:this.#g+1,pages:new Map,dbFileSize:this.#p,waSalt1:this.#d.salt1,waOffsetEnd:this.#u},this.#w}#_(e,t){const s=new DataView(new ArrayBuffer(R));s.setUint8(0,0),s.setUint16(2,65536===t.byteLength?1:t.byteLength),s.setBigUint64(8,BigInt(e)),s.setUint32(16,this.#d.salt1),s.setUint32(20,this.#d.salt2);const a=new q;a.update(new Uint8Array(s.buffer,0,24)),a.update(t),s.setUint32(24,a.s0),s.setUint32(28,a.s1);const i=this.#h.write(s,{at:this.#w.waOffsetEnd})+this.#h.write(t,{at:this.#w.waOffsetEnd+R});if(i!==s.byteLength+t.byteLength)throw new Error("write failed");const r={pageSize:t.byteLength,waOffset:this.#w.waOffsetEnd+R,waSalt1:this.#d.salt1,pageData:0===e?t:void 0};return this.#w.pages.set(e,r),this.#w.waOffsetEnd+=i,r.waOffset}#q(){const e=new DataView(new ArrayBuffer(R));e.setUint8(0,1),e.setUint8(1,this.#w.newPageSize?1:0),e.setBigUint64(8,BigInt(this.#w.dbFileSize)),e.setUint32(16,this.#d.salt1),e.setUint32(20,this.#d.salt2);const t=new q;t.update(new Uint8Array(e.buffer,0,24)),e.setUint32(24,t.s0),e.setUint32(28,t.s1);const s=this.#h.write(e,{at:this.#w.waOffsetEnd});if(s!==e.byteLength)throw new Error("write failed");this.#w.waOffsetEnd+=s;const a=this.#w;return this.#w=null,this.#u=a.waOffsetEnd,this.#g=a.id,a}#M(){this.#w=null,this.#h.truncate(this.#u)}#j(){const e=new DataView(new ArrayBuffer(R));e.setUint8(0,2),e.setUint32(16,this.#d.salt1),e.setUint32(20,this.#d.salt2);const t=new q;t.update(new Uint8Array(e.buffer,0,24)),e.setUint32(24,t.s0),e.setUint32(28,t.s1);if(this.#h.write(e,{at:this.#u})!==e.byteLength)throw new Error("write failed");this.#d=this.#A(),this.#h=this.#ae(),this.#u=$}#W(){return this.#d.nextTxId}#N(){this.#h.flush()}#J(){this.#ae().flush()}#B(){if(this.#b.has(this.#d.nextTxId-1))return!1;const e=this.#ae();return e.getSize()<$||null===this.#z(e)}#Q(){this.#ae().truncate(0)}#se(e){const t=this.#ae();return e||(e=this.#z(t),e?.salt1===this.#d.salt1+1>>>0)?(this.#h=t,this.#d=e,this.#u=$,e):null}#ae(){return this.#h!==this.#c[0]?this.#c[0]:this.#c[1]}#z(e){const t=new DataView(new ArrayBuffer($));if(e.read(t,{at:0})!==t.byteLength)return null;if(t.getUint32(0)!==O)return null;const s=new q;return s.update(new Uint8Array(t.buffer,0,24)),s.matches(t.getUint32(24),t.getUint32(28))?{nextTxId:Number(t.getBigUint64(8)),salt1:t.getUint32(16),salt2:t.getUint32(20)}:null}#te(e){const t=new DataView(new ArrayBuffer(R));if(this.#h.read(t,{at:e})!==t.byteLength)return null;const s=t.getUint32(16),a=t.getUint32(20);if(s!==this.#d.salt1||a!==this.#d.salt2)return null;const i=1===(r=t.getUint16(2))?65536:r;var r;let n;if(i){n=new Uint8Array(i);if(this.#h.read(n,{at:e+R})!==i)return null}const o=new q;if(o.update(new Uint8Array(t.buffer,0,24)),n&&o.update(n),!o.matches(t.getUint32(24),t.getUint32(28)))return null;const l=t.getUint8(0);if(0===l)return{frameType:l,byteLength:R+i,pageOffset:Number(t.getBigUint64(8)),pageData:n};if(1===l)return{frameType:l,byteLength:R,flags:t.getUint8(1),dbFileSize:Number(t.getBigUint64(8))};if(2===l){const e=this.#z(this.#ae());return e?.salt1!==this.#d.salt1+1>>>0?null:{frameType:l,byteLength:R,fileHeader:e}}throw new Error(`Invalid frame type: ${l}`)}#A(e=this.#d.salt1){const t=this.#g+1,s=e+1>>>0,a=Math.floor(4294967295*Math.random())>>>0,i=new DataView(new ArrayBuffer($));i.setUint32(0,O),i.setBigUint64(8,BigInt(t)),i.setUint32(16,s),i.setUint32(20,a);const r=new q;r.update(new Uint8Array(i.buffer,0,24)),i.setUint32(24,r.s0),i.setUint32(28,r.s1);if(this.#c[1&s].write(i,{at:0})!==i.byteLength)throw new Error("write failed");return{nextTxId:t,salt1:s,salt2:a}}}class q{s0=0;s1=0;update(e){if(e.byteLength%8!=0)throw new Error("Data must be a multiple of 8 bytes");const t=ArrayBuffer.isView(e)?new Uint32Array(e.buffer,e.byteOffset,e.byteLength/4):new Uint32Array(e);for(let e=0;e<t.length;e+=2)this.s0=this.s0+t[e]+this.s1>>>0,this.s1=this.s1+t[e+1]+this.s0>>>0}matches(e,t){return this.s0===e&&this.s1===t}}const B=new FinalizationRegistry(e=>e());class j extends e{lastError=null;log=null;mapIdToFile=new Map;mapPathToFile=new Map;boundTempFiles=new Map;unboundTempFiles=new Set;options={nTmpFiles:6};_ready;static async create(e,t,s){const a=new j(e,t);return Object.assign(a.options,s),await a.isReady(),a}constructor(e,t){super(e,t),this._ready=(async()=>{let e=await navigator.storage.getDirectory();e=await e.getDirectoryHandle(".wa-sqlite",{create:!0});for await(const t of e.keys())t.startsWith(".session-")&&await navigator.locks.request(t,{ifAvailable:!0},async s=>{if(s)try{await e.removeEntry(t,{recursive:!0})}catch(e){}});const t=`.session-${Math.random().toString(16).slice(2)}`;await new Promise(e=>{navigator.locks.request(t,()=>(e(),new Promise(e=>{B.register(this,e)})))}),e=await e.getDirectoryHandle(t,{create:!0});for(let t=0;t<this.options.nTmpFiles;t++){const s=await e.getFileHandle(t.toString(),{create:!0}),a=await s.createSyncAccessHandle();B.register(this,()=>a.close()),this.unboundTempFiles.add(a)}})()}isReady(){return Promise.all([super.isReady(),this._ready]).then(()=>!0)}jOpen(e,c,h,d){try{null===e&&(e=Math.random().toString(16).slice(2));const l=this.mapPathToFile.get(e)??{zName:e,flags:h,retryResult:null};if(this.mapPathToFile.set(e,l),h&t){if(null===l.retryResult)return this._module.retryOps.push(this.#ie(e,h,c,d)),s;if(l.retryResult instanceof Error){const e=l.retryResult;throw l.retryResult=null,e}l.accessHandle=l.retryResult.accessHandle,l.waHandles=l.retryResult.waHandles,l.writeAhead=l.retryResult.writeAhead,l.retryResult=null,l.lockState=a,l.lockingMode="normal",l.readLock=new C(`${e}#read`),l.writeLock=new C(`${e}#write`),l.useLazyLock="readwrite",l.timeout=-1,l.synchronous=1,l.writeHint=null,l.pageSize=null,l.overwrite=!1}else{if(h&(i|r))throw new Error("WAL and super-journal files are not supported");if(l.accessHandle);else{if(!(h&n))throw new Error("file not found");l.accessHandle=this.#re(e)}}return this.mapIdToFile.set(c,l),d.setInt32(0,h,!0),o}catch(t){return console.error(t.stack),this.lastError=t,this.mapPathToFile.delete(e),l}}jDelete(e,t){try{if(!this.boundTempFiles.has(e))throw new Error(`unexpected file deletion: ${e}`);{const t=this.mapPathToFile.get(e);this.#ne(t)}return o}catch(e){return console.error(e.stack),this.lastError=e,c}}jAccess(e,t,s){try{const t=this.mapPathToFile.get(e);return s.setInt32(0,t?1:0,!0),o}catch(e){return console.error(e.stack),this.lastError=e,h}}jClose(e){try{const s=this.mapIdToFile.get(e);return s?.flags&t?(s.writeAhead.close(),s.accessHandle.close(),s.waHandles.forEach(e=>e.close()),this.mapPathToFile.delete(s?.zName),s.readLock.close(),s.writeLock.close()):s?.flags&d&&this.#ne(s),this.mapIdToFile.delete(e),o}catch(e){return console.error(e.stack),this.lastError=e,u}}jRead(e,s,a){try{const i=this.mapIdToFile.get(e);let r=null;if(i.flags&t){const e=a<100?a:0,t=i.writeAhead.read(a-e);if(t){const a=t.subarray(e,e+s.byteLength);s.set(a),r=a.byteLength}}return null===r&&(r=i.accessHandle.read(s.subarray(),{at:a})),r<s.byteLength?(s.fill(0,r),g):o}catch(e){return console.error(e.stack),this.lastError=e,w}}jWrite(e,s,a){try{const i=this.mapIdToFile.get(e);if(i.flags&t){const e=i.overwrite&&i.pageSize!==s.byteLength;return i.writeAhead.write(a,s,{dstPageSize:e?i.pageSize:null}),o}return i.accessHandle.write(s.subarray(),{at:a}),o}catch(e){return console.error(e.stack),this.lastError=e,p}}jTruncate(e,s){try{const a=this.mapIdToFile.get(e);return a.flags&t?(a.writeAhead.truncate(s),o):(a.accessHandle.truncate(s),o)}catch(e){return console.error(e.stack),this.lastError=e,f}}jSync(e,s){try{const s=this.mapIdToFile.get(e);if(s.flags&t){const e=s.synchronous>1?"strict":"relaxed";s.writeAhead.sync({durability:e})}return o}catch(e){return console.error(e.stack),this.lastError=e,m}}jFileSize(e,s){try{const a=this.mapIdToFile.get(e);let i;return i=a.flags&t&&a.writeAhead.getFileSize()||a.accessHandle.getSize(),s.setBigInt64(0,BigInt(i),!0),o}catch(e){return console.error(e.stack),this.lastError=e,y}}jLock(e,t){try{const i=this.mapIdToFile.get(e);if(i.lockState===a&&t===k){if(null===i.retryResult){if("exclusive"===i.lockingMode)return i.retryResult={},this._module.retryOps.push(this.#oe(i)),s;if(i.writeHint){if(!i.writeLock.acquireIfHeld("exclusive"))return i.retryResult={},this._module.retryOps.push(this.#oe(i)),s;i.writeAhead.isolateForWrite()}else{if(!i.readLock.acquireIfHeld("shared"))return i.retryResult={},this._module.retryOps.push(this.#le(i)),s;i.writeAhead.isolateForRead()}}else if(i.retryResult instanceof Error){const e=i.retryResult;throw i.retryResult=null,e}i.retryResult=null}else if(t>=b&&!i.writeLock.mode)throw new Error("Write transaction cannot use BEGIN DEFERRED");return i.lockState=t,o}catch(e){return"TimeoutError"===e.name?s:(console.error(e.stack),this.lastError=e,x)}}jUnlock(e,t){try{const s=this.mapIdToFile.get(e);if(!s.retryResult&&t===a){switch(s.writeAhead.rejoin(),s.useLazyLock){case"none":s.writeLock.release(),s.readLock.release();break;case"read":s.writeLock.release(),s.readLock.releaseLazy();break;case"write":s.writeLock.releaseLazy(),s.readLock.release();break;case"readwrite":s.writeLock.releaseLazy(),s.readLock.releaseLazy()}s.writeHint=null}s.lockState=t}catch(e){return console.error(e.stack),this.lastError=e,I}}jCheckReservedLock(e,t){return console.assert(!1,"unexpected"),t.setInt32(0,0,!0),o}jFileControl(e,s,a){try{const i=this.mapIdToFile.get(e);switch(s){case S:const e=this._module.UTF8ToString(a.getUint32(4,!0)),s=a.getUint32(8,!0),r=s?this._module.UTF8ToString(s):null;switch(this.log?.(`PRAGMA ${e} ${r}`),e.toLowerCase()){case"experimental_pragma_20251114":switch(r){case"1":i.writeHint="reserved";break;case"2":i.writeHint="exclusive";break;default:throw new Error(`unexpected write hint value: ${r}`)}break;case"backstop_interval":if(null!==r){const e=parseInt(r);i.writeAhead.setBackstopInterval(e)}else{const e=i.writeAhead.options.backstopInterval.toString(),t=this._module._sqlite3_malloc64(e.length+1);this._module.stringToUTF8(e,t,e.length+1),a.setUint32(0,t,!0)}return o;case"busy_timeout":if(null!==r)i.timeout=parseInt(r);else{const e=i.timeout.toString(),t=this._module._sqlite3_malloc64(e.length+1);this._module.stringToUTF8(e,t,e.length+1),a.setUint32(0,t,!0)}return o;case"journal_size_limit":if(null!==r){const e=parseInt(r);i.writeAhead.options.journalSizeLimit=e}break;case"locking_mode":switch(r?.toLowerCase()){case"normal":i.lockingMode="normal";break;case"exclusive":i.lockingMode="exclusive"}break;case"page_size":if(null!==r){const e=parseInt(r);(1===e||e>=512&&e<=32768&&!(e&e-1))&&(i.pageSize=1===e?65536:e)}break;case"synchronous":if(null!==r)switch(r.toLowerCase()){case"off":case"0":i.synchronous=0;break;case"normal":case"1":i.synchronous=1;break;case"full":case"2":i.synchronous=2;break;case"extra":case"3":i.synchronous=3;break;default:throw new Error(`unexpected synchronous value: ${r}`)}break;case"vfs_trace":return null!==r&&(this.log=0!==parseInt(r)?console.debug:null,i.writeAhead.log=this.log),o;case"wal_autocheckpoint":null!==r&&(i.writeAhead.options.autoCheckpoint=parseInt(r));break;case"wal_checkpoint":const e=(r??"passive").toLowerCase();switch(e){case"passive":this._module.pendingOps.push(this.#ce(i,e));break;case"full":case"restart":case"truncate":if(i.writeAhead.isTransactionPending())throw new Error("invalid while a transaction is in progress");this._module.pendingOps.push(this.#ce(i,e));break;case"noop":break;default:throw new Error(`unexpected wal_checkpoint mode: ${r}`)}{const e=i.writeAhead.getWriteAheadSize().toString(),t=this._module._sqlite3_malloc64(e.length+1);this._module.stringToUTF8(e,t,e.length+1),a.setUint32(0,t,!0)}return o;case"lazy_lock":if(null!==r){const e=r.toLowerCase();switch(e){case"read":case"write":case"readwrite":case"none":i.useLazyLock=e;break;default:throw new Error(`unexpected value for lazy_lock: ${r}`)}}{const e=i.useLazyLock,t=this._module._sqlite3_malloc64(e.length+1);this._module.stringToUTF8(e,t,e.length+1),a.setUint32(0,t,!0)}return o}break;case F:case L:if(i.flags&t)return o;break;case H:if(i.flags&t)return i.writeAhead.rollback(),o;break;case v:i.flags&t&&i.writeAhead.commit();break;case T:i.overwrite=!0}}catch(e){return console.error(e.stack),this.lastError=e,P}return z}jDeviceCharacteristics(e){return A|E}jGetLastError(e){if(this.lastError){console.error(this.lastError);const t=e.subarray(0,e.byteLength-1),{written:s}=(new TextEncoder).encodeInto(this.lastError.message,t);e[s]=0}return o}#re(e){if(0===this.unboundTempFiles.size)throw new Error("no temporary files available");const t=this.unboundTempFiles.values().next().value;return this.unboundTempFiles.delete(t),this.boundTempFiles.set(e,t),t}#ne(e){e.accessHandle.truncate(0),this.mapPathToFile.delete(e.zName),this.unboundTempFiles.add(e.accessHandle),this.boundTempFiles.delete(e.zName)}#he(e,t){return`${e}-wa${t}`}async#ce(e,t){const i=[];try{"passive"!==t&&e.lockState===a&&(await e.writeLock.acquire("exclusive"),i.push(()=>e.writeLock.release()),e.writeAhead.isolateForWrite(),i.push(()=>e.writeAhead.rejoin())),await e.writeAhead.checkpoint({isPassive:"passive"===t})}catch(e){throw"AbortError"===e.name&&(e.code=s),e}finally{for(;i.length;)i.pop()()}}async#le(e){const t=[];try{await e.readLock.acquire("shared",e.timeout),t.push(()=>e.readLock.release()),e.writeAhead.isolateForRead(),e.retryResult={}}catch(s){for(;t.length;)t.pop()();e.retryResult=s}}async#oe(e){const t=[];try{"exclusive"===e.lockingMode&&(await e.readLock.acquire("exclusive",e.timeout),t.push(()=>e.readLock.release())),await e.writeLock.acquire("exclusive",e.timeout),t.push(()=>e.writeLock.release()),e.writeAhead.isolateForWrite(),e.retryResult={}}catch(s){for(;t.length;)t.pop()();e.retryResult=s}}async#ie(e,t,s,a){const i=[],r=this.mapPathToFile.get(e);try{const{accessHandle:s,waHandles:a}=await navigator.locks.request(`${e}#open`,async s=>{const a=e.split("/").filter(e=>e),r=a.pop();let o=await navigator.storage.getDirectory();const l=!!(t&n);for(const e of a)o=await o.getDirectoryHandle(e,{create:l});const c=l&&await async function(){try{return await o.getFileHandle(r),!1}catch(e){if("NotFoundError"===e.name)return!0;throw e}}();async function h(e,t){const s=await o.getFileHandle(e,t),a=await s.createSyncAccessHandle({mode:"readwrite-unsafe"});return i.push(()=>{a.close(),c&&o.removeEntry(e)}),a}return{accessHandle:await h(r,{create:l}),waHandles:await Promise.all([0,1].map(async e=>{const t=this.#he(r,e),s=await h(t,{create:!0});return c&&s.truncate(0),s}))}}),o=new _(e,s,a);await o.ready(),r.retryResult={accessHandle:s,waHandles:a,writeAhead:o}}catch(e){for(;i.length;)i.pop()();r.retryResult=e}}}export{j as OPFSWriteAheadVFS};
|
|
2
|
-
//# sourceMappingURL=OPFSWriteAheadVFS-Rt5CGCZP.js.map
|