@welshman/store 0.14.1 → 0.14.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (24) hide show
  1. package/dist/store/src/repository/adapters/sqlite/engine.d.ts +18 -4
  2. package/dist/store/src/repository/adapters/sqlite/engine.d.ts.map +1 -1
  3. package/dist/store/src/repository/adapters/sqlite/engine.js +36 -22
  4. package/dist/store/src/repository/adapters/sqlite/engine.js.map +1 -1
  5. package/dist/store/src/repository/adapters/sqlite/leader.d.ts.map +1 -1
  6. package/dist/store/src/repository/adapters/sqlite/leader.js +45 -34
  7. package/dist/store/src/repository/adapters/sqlite/leader.js.map +1 -1
  8. package/dist/store/src/repository/adapters/sqlite/protocol.d.ts +2 -9
  9. package/dist/store/src/repository/adapters/sqlite/protocol.d.ts.map +1 -1
  10. package/dist/store/src/repository/adapters/sqlite/protocol.js +6 -18
  11. package/dist/store/src/repository/adapters/sqlite/protocol.js.map +1 -1
  12. package/dist/store/src/repository/adapters/sqlite/repository.d.ts +1 -1
  13. package/dist/store/src/repository/adapters/sqlite/repository.d.ts.map +1 -1
  14. package/dist/store/src/repository/adapters/sqlite/repository.js +11 -11
  15. package/dist/store/src/repository/adapters/sqlite/repository.js.map +1 -1
  16. package/dist/store/src/repository/adapters/sqlite/serve.d.ts.map +1 -1
  17. package/dist/store/src/repository/adapters/sqlite/serve.js +20 -15
  18. package/dist/store/src/repository/adapters/sqlite/serve.js.map +1 -1
  19. package/dist/store/src/repository/adapters/sqlite/wasm.d.ts +7 -0
  20. package/dist/store/src/repository/adapters/sqlite/wasm.d.ts.map +1 -1
  21. package/dist/store/src/repository/adapters/sqlite/wasm.js +77 -8
  22. package/dist/store/src/repository/adapters/sqlite/wasm.js.map +1 -1
  23. package/dist/tsconfig.build.tsbuildinfo +1 -1
  24. package/package.json +5 -5
@@ -9,6 +9,8 @@ export interface SqliteDatabase {
9
9
  /** Define a deterministic SQL function of one argument on this connection. */
10
10
  define(name: string, f: (value: SqlValue) => SqlValue): void;
11
11
  }
12
+ /** Run `f` in a transaction, rolling back if it throws. */
13
+ export declare const transaction: (db: SqliteDatabase, f: () => void) => void;
12
14
  /** One step of a write batch. A publish carries whether its signature was checked. */
13
15
  export type WriteOp = ["publish", TrustedEvent, boolean] | ["remove", string] | ["track", string, string] | ["untrack", string, string];
14
16
  /** An event as stored, and whether its signature was checked before it was. */
@@ -31,6 +33,16 @@ export type QueryResult = {
31
33
  events: StoredEvent[];
32
34
  relays: [string, string[]][];
33
35
  };
36
+ /** What a write changed, with the ops that made it, which every connection applies in this order. */
37
+ export type WriteChange = {
38
+ type: "write";
39
+ ops: WriteOp[];
40
+ result: WriteResult;
41
+ };
42
+ /** A change to the database, which other connections hear about in the order committed. */
43
+ export type SqliteChange = WriteChange | {
44
+ type: "clear";
45
+ };
34
46
  /** The repository's semantics in SQL, answering every query as `MemoryRepository` does. */
35
47
  export declare class SqliteEngine {
36
48
  readonly db: SqliteDatabase;
@@ -41,17 +53,19 @@ export declare class SqliteEngine {
41
53
  countTags: (name: string) => [string, number][];
42
54
  getEvent: (idOrAddress: string) => QueryResult;
43
55
  getDeletes: () => [string, DeleteRecord][];
44
- write: (ops: WriteOp[]) => WriteResult;
56
+ write: (ops: WriteOp[]) => WriteChange;
45
57
  /** Drop every event matching `filters` outright, with nothing restored in its place. */
46
- evict: (filters: Filter[]) => WriteResult;
58
+ evict: (filters: Filter[]) => WriteChange;
47
59
  /** Drop what has expired and provenance left without an event, which only grow otherwise. */
48
- prune: () => WriteResult;
49
- clear: () => void;
60
+ prune: () => WriteChange;
61
+ clear: () => SqliteChange;
50
62
  private transaction;
63
+ private change;
51
64
  private batch;
52
65
  private selectFilter;
53
66
  private getRelays;
54
67
  private getRow;
68
+ private exists;
55
69
  private isVisible;
56
70
  private isDeleted;
57
71
  private addDelete;
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../../../../src/repository/adapters/sqlite/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../../../../src/repository/adapters/sqlite/engine.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,17 @@
1
1
  import { equals, now, pushToMapKey } from "@welshman/lib";
2
2
  import { DELETE, compareEventsDesc, getAddress, getExpiration, isReplaceable } from "@welshman/util";
3
+ /** Run `f` in a transaction, rolling back if it throws. */
4
+ export const transaction = (db, f) => {
5
+ db.exec("BEGIN");
6
+ try {
7
+ f();
8
+ db.exec("COMMIT");
9
+ }
10
+ catch (e) {
11
+ db.exec("ROLLBACK");
12
+ throw e;
13
+ }
14
+ };
3
15
  const SCHEMA = `
4
16
  CREATE TABLE IF NOT EXISTS events (
5
17
  id TEXT PRIMARY KEY,
@@ -120,7 +132,7 @@ export class SqliteEngine {
120
132
  .all("SELECT key, id, pubkey, created_at FROM deletes")
121
133
  .map(({ key, ...record }) => [key, record]);
122
134
  // Writes
123
- write = (ops) => this.batch(changes => {
135
+ write = (ops) => this.change(ops, changes => {
124
136
  for (const op of ops) {
125
137
  switch (op[0]) {
126
138
  case "publish":
@@ -142,7 +154,7 @@ export class SqliteEngine {
142
154
  }
143
155
  });
144
156
  /** Drop every event matching `filters` outright, with nothing restored in its place. */
145
- evict = (filters) => this.batch(changes => {
157
+ evict = (filters) => this.change([], changes => {
146
158
  const options = { includeDeleted: true, includeExpired: true };
147
159
  for (const filter of filters) {
148
160
  for (const { id } of this.selectFilter(filter, options, "e.id", true)) {
@@ -151,30 +163,29 @@ export class SqliteEngine {
151
163
  }
152
164
  });
153
165
  /** Drop what has expired and provenance left without an event, which only grow otherwise. */
154
- prune = () => this.batch(changes => {
166
+ prune = () => this.change([], changes => {
155
167
  const expired = this.db.all("SELECT id FROM events WHERE expires_at IS NOT NULL AND expires_at < ?", [now()]);
156
168
  for (const { id } of expired) {
157
169
  this.evictEvent(id, changes);
158
170
  }
159
171
  this.db.run("DELETE FROM relays WHERE event_id NOT IN (SELECT id FROM events)");
160
172
  });
161
- clear = () => this.transaction(() => {
162
- for (const table of ["events", "tags", "deletes", "relays"]) {
163
- this.db.run(`DELETE FROM ${table}`);
164
- }
165
- });
166
- // Utilities
167
- transaction = (f) => {
168
- this.db.exec("BEGIN");
169
- try {
170
- f();
171
- this.db.exec("COMMIT");
172
- }
173
- catch (e) {
174
- this.db.exec("ROLLBACK");
175
- throw e;
176
- }
173
+ clear = () => {
174
+ this.transaction(() => {
175
+ for (const table of ["events", "tags", "deletes", "relays"]) {
176
+ this.db.run(`DELETE FROM ${table}`);
177
+ }
178
+ });
179
+ return { type: "clear" };
177
180
  };
181
+ // Utilities
182
+ transaction = (f) => transaction(this.db, f);
183
+ // A batch's result, tagged with the ops that made it, which other connections mirror in this order
184
+ change = (ops, f) => ({
185
+ type: "write",
186
+ ops,
187
+ result: this.batch(f),
188
+ });
178
189
  // Run `f` in a transaction, reporting anything added but hidden by the end of it as removed
179
190
  batch = (f) => {
180
191
  const changes = new BatchChanges();
@@ -280,8 +291,9 @@ export class SqliteEngine {
280
291
  : this.db.all("SELECT * FROM events WHERE id = ?", [idOrAddress]);
281
292
  return row;
282
293
  };
283
- isVisible = (id) => this.db.all(`SELECT 1 FROM events e WHERE e.id = ? AND ${VISIBLE}`, [id, now()]).length > 0;
284
- isDeleted = (id) => this.db.all(`SELECT 1 FROM events e WHERE e.id = ? AND NOT (${NOT_DELETED})`, [id]).length > 0;
294
+ exists = (sql, params) => this.db.all(sql, params).length > 0;
295
+ isVisible = (id) => this.exists(`SELECT 1 FROM events e WHERE e.id = ? AND ${VISIBLE}`, [id, now()]);
296
+ isDeleted = (id) => this.exists(`SELECT 1 FROM events e WHERE e.id = ? AND NOT (${NOT_DELETED})`, [id]);
285
297
  addDelete = (event, key, changes) => {
286
298
  const record = { id: event.id, pubkey: event.pubkey, created_at: event.created_at };
287
299
  this.db.run("INSERT INTO deletes (key, id, pubkey, created_at) VALUES (?, ?, ?, ?)", [
@@ -340,7 +352,9 @@ export class SqliteEngine {
340
352
  return;
341
353
  }
342
354
  const eventJson = JSON.stringify(event);
343
- const [existing] = this.db.all("SELECT json, verified FROM events WHERE id = ?", [event.id]);
355
+ const [existing] = this.db.all("SELECT json, verified FROM events WHERE id = ?", [
356
+ event.id,
357
+ ]);
344
358
  // An event we hold can come back changed, most often an unsigned one carrying its signature
345
359
  if (existing) {
346
360
  if (!isSameJson(existing.json, eventJson)) {
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../../../../src/repository/adapters/sqlite/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../../../../src/repository/adapters/sqlite/engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAE,GAAG,EAAE,YAAY,EAAC,MAAM,eAAe,CAAA;AAEvD,OAAO,EAAC,MAAM,EAAE,iBAAiB,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAC,MAAM,gBAAgB,CAAA;AAelG,2DAA2D;AAC3D,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAkB,EAAE,CAAa,EAAE,EAAE;IAC/D,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAEhB,IAAI,CAAC;QACH,CAAC,EAAE,CAAA;QACH,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACnB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACnB,MAAM,CAAC,CAAA;IACT,CAAC;AACH,CAAC,CAAA;AAyDD,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwCd,CAAA;AAED,6FAA6F;AAC7F,MAAM,IAAI,GAAG,CAAC,MAAiB,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;AAE1D,MAAM,EAAE,GAAG,kCAAkC,CAAA;AAE7C,MAAM,WAAW,GAAG;;;;IAIhB,CAAA;AAEJ,MAAM,WAAW,GAAG,6CAA6C,CAAA;AAEjE,MAAM,OAAO,GAAG,qBAAqB,WAAW,QAAQ,WAAW,EAAE,CAAA;AAErE,yEAAyE;AACzE,MAAM,UAAU,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AAE5F,MAAM,QAAQ,GAAG,CAAC,GAAc,EAAe,EAAE,CAAC,CAAC;IACjD,IAAI,EAAE,GAAG,CAAC,IAAI;IACd,QAAQ,EAAE,GAAG,CAAC,QAAQ,KAAK,CAAC;CAC7B,CAAC,CAAA;AAEF,kGAAkG;AAClG,MAAM,YAAY;IAChB,gFAAgF;IAChF,KAAK,GAAG,IAAI,GAAG,EAA8B,CAAA;IAC7C,OAAO,GAAG,IAAI,GAAG,EAAU,CAAA;IAC3B,OAAO,GAAmB,EAAE,CAAA;IAE5B,GAAG,GAAG,CAAC,EAAU,EAAE,QAAsB,EAAE,EAAE;QAC3C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;QAC5B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IACzB,CAAC,CAAA;IAED,MAAM,GAAG,CAAC,EAAU,EAAE,EAAE;QACtB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACpB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IACvB,CAAC,CAAA;CACF;AAED,2FAA2F;AAC3F,MAAM,OAAO,YAAY;IACF;IAArB,YAAqB,EAAkB;QAAlB,OAAE,GAAF,EAAE,CAAgB;QACrC,uFAAuF;QACvF,EAAE,CAAC,MAAM,CAAC,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;IAChG,CAAC;IAED,OAAO,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAEpC,QAAQ;IAER,KAAK,GAAG,CAAC,OAAiB,EAAE,UAAwB,EAAE,EAAe,EAAE;QACrE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAwB,CAAA;QAE5C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,YAAY,CACjC,MAAM,EACN,OAAO,EACP,wCAAwC,CACzC,EAAE,CAAC;gBACF,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;YACvB,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;QAEhE,OAAO;YACL,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAC5B,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;SAClD,CAAA;IACH,CAAC,CAAA;IAED,KAAK,GAAG,CAAC,OAAiB,EAAE,UAAwB,EAAE,EAAE,EAAE;QACxD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAA;QAE7B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,YAAY,CAAe,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC;gBAC3E,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACjB,CAAC;QACH,CAAC;QAED,OAAO,GAAG,CAAC,IAAI,CAAA;IACjB,CAAC,CAAA;IAED,SAAS,GAAG,CAAC,IAAY,EAAsB,EAAE,CAC/C,IAAI,CAAC,EAAE;SACJ,GAAG,CACF;;gCAEwB,OAAO;0BACb,EAClB,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CACd;SACA,GAAG,CAAC,CAAC,EAAC,KAAK,EAAE,KAAK,EAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;IAE5C,QAAQ,GAAG,CAAC,WAAmB,EAAe,EAAE;QAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;QAEpC,OAAO,GAAG;YACR,CAAC,CAAC,EAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAC;YAC7D,CAAC,CAAC,EAAC,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAC,CAAA;IAC9B,CAAC,CAAA;IAED,UAAU,GAAG,GAAG,EAAE,CAChB,IAAI,CAAC,EAAE;SACJ,GAAG,CAA+B,iDAAiD,CAAC;SACpF,GAAG,CAAC,CAAC,EAAC,GAAG,EAAE,GAAG,MAAM,EAAC,EAA0B,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAA;IAErE,SAAS;IAET,KAAK,GAAG,CAAC,GAAc,EAAe,EAAE,CACtC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE;QACzB,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACrB,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACd,KAAK,SAAS;oBACZ,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;oBACnC,MAAK;gBACP,KAAK,QAAQ;oBACX,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;oBAC3B,MAAK;gBACP,KAAK,OAAO;oBACV,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,4DAA4D,EAAE;wBACxE,EAAE,CAAC,CAAC,CAAC;wBACL,EAAE,CAAC,CAAC,CAAC;qBACN,CAAC,CAAA;oBACF,MAAK;gBACP,KAAK,SAAS;oBACZ,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,mDAAmD,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;oBAChF,MAAK;YACT,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAA;IAEJ,wFAAwF;IACxF,KAAK,GAAG,CAAC,OAAiB,EAAe,EAAE,CACzC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE;QACxB,MAAM,OAAO,GAAG,EAAC,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAC,CAAA;QAE5D,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,KAAK,MAAM,EAAC,EAAE,EAAC,IAAI,IAAI,CAAC,YAAY,CAAe,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;gBAClF,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;YAC9B,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAA;IAEJ,6FAA6F;IAC7F,KAAK,GAAG,GAAgB,EAAE,CACxB,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CACzB,uEAAuE,EACvE,CAAC,GAAG,EAAE,CAAC,CACR,CAAA;QAED,KAAK,MAAM,EAAC,EAAE,EAAC,IAAI,OAAO,EAAE,CAAC;YAC3B,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;QAC9B,CAAC;QAED,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAA;IACjF,CAAC,CAAC,CAAA;IAEJ,KAAK,GAAG,GAAiB,EAAE;QACzB,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;YACpB,KAAK,MAAM,KAAK,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC;gBAC5D,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,eAAe,KAAK,EAAE,CAAC,CAAA;YACrC,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,OAAO,EAAC,IAAI,EAAE,OAAO,EAAC,CAAA;IACxB,CAAC,CAAA;IAED,YAAY;IAEJ,WAAW,GAAG,CAAC,CAAa,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;IAEhE,mGAAmG;IAC3F,MAAM,GAAG,CAAC,GAAc,EAAE,CAAkC,EAAe,EAAE,CAAC,CAAC;QACrF,IAAI,EAAE,OAAO;QACb,GAAG;QACH,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;KACtB,CAAC,CAAA;IAEF,4FAA4F;IACpF,KAAK,GAAG,CAAC,CAAkC,EAAe,EAAE;QAClE,MAAM,OAAO,GAAG,IAAI,YAAY,EAAE,CAAA;QAElC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;YACpB,CAAC,CAAC,OAAO,CAAC,CAAA;YAEV,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;gBAClD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;oBACxB,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;gBACpB,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,MAAM,MAAM,GAAgB;YAC1B,KAAK,EAAE,EAAE;YACT,QAAQ,EAAE,EAAE;YACZ,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YACxD,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;YACpC,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAA;QAED,KAAK,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAC3C,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YAChC,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YACvB,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC,CAAA;IAEO,YAAY,GAAG,CACrB,MAAc,EACd,EAAC,cAAc,EAAE,cAAc,EAAE,KAAK,EAAe,EACrD,OAAe;IACf,4DAA4D;IAC5D,QAAQ,GAAG,KAAK,EAChB,EAAE;QACF,MAAM,KAAK,GAAa,EAAE,CAAA;QAC1B,MAAM,MAAM,GAAe,EAAE,CAAA;QAE7B,iFAAiF;QACjF,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;YAC3B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;QAC/B,CAAC;aAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QAC7B,CAAC;QAED,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,KAAK,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC,CAAA;YAC/B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAA;QACnC,CAAC;QAED,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,CAAA;YAC7B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QACjC,CAAC;QAED,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;YAC/B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC3B,CAAC;QAED,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;YAC/B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC3B,CAAC;QAED,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACnD,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACrE,KAAK,CAAC,IAAI,CAAC,kEAAkE,EAAE,GAAG,CAAC,CAAA;gBACnF,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;YACnC,CAAC;QACH,CAAC;QAED,gDAAgD;QAChD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,KAAK,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAA;YAC5E,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC3D,CAAC;QAED,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACzB,CAAC;QAED,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;YACvB,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;QACpB,CAAC;QAED,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,IAAI,CAAC,uEAAuE,CAAC,CAAA;YACnF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACpB,CAAC;QAED,IAAI,GAAG,GAAG,UAAU,OAAO,wBAAwB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,EAAE,CAAA;QAE/E,GAAG,IAAI,wCAAwC,CAAA;QAE/C,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC5C,GAAG,IAAI,UAAU,CAAA;YACjB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC3B,CAAC;QAED,OAAO,IAAI,CAAC,EAAE,CAAC,GAAG,CAAI,GAAG,EAAE,MAAM,CAAC,CAAA;IACpC,CAAC,CAAA;IAEO,SAAS,GAAG,CAAC,GAAa,EAAwB,EAAE;QAC1D,MAAM,UAAU,GAAG,IAAI,GAAG,EAAoB,CAAA;QAE9C,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CACtB,sDAAsD,EAAE,EAAE,EAC1D,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CACZ,CAAA;YAED,KAAK,MAAM,EAAC,QAAQ,EAAE,GAAG,EAAC,IAAI,IAAI,EAAE,CAAC;gBACnC,YAAY,CAAC,UAAU,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA;YACzC,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAA;IACzC,CAAC,CAAA;IAEO,MAAM,GAAG,CAAC,WAAmB,EAAmB,EAAE;QACxD,MAAM,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC;YACrC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAW,wDAAwD,EAAE;gBAC9E,WAAW;aACZ,CAAC;YACJ,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAW,mCAAmC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAA;QAE7E,OAAO,GAAG,CAAA;IACZ,CAAC,CAAA;IAEO,MAAM,GAAG,CAAC,GAAW,EAAE,MAAkB,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;IAEjF,SAAS,GAAG,CAAC,EAAU,EAAE,EAAE,CACjC,IAAI,CAAC,MAAM,CAAC,6CAA6C,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;IAE1E,SAAS,GAAG,CAAC,EAAU,EAAE,EAAE,CACjC,IAAI,CAAC,MAAM,CAAC,kDAAkD,WAAW,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAE7E,SAAS,GAAG,CAAC,KAAmB,EAAE,GAAW,EAAE,OAAqB,EAAE,EAAE;QAC9E,MAAM,MAAM,GAAG,EAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAC,CAAA;QAEjF,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,uEAAuE,EAAE;YACnF,GAAG;YACH,MAAM,CAAC,EAAE;YACT,MAAM,CAAC,MAAM;YACb,MAAM,CAAC,UAAU;SAClB,CAAC,CAAA;QAEF,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAA;IAC5C,CAAC,CAAA;IAEO,IAAI,GAAG,CAAC,EAAU,EAAE,OAAqB,EAAE,EAAE;QACnD,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,iCAAiC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QACpD,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,qCAAqC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QACxD,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,uCAAuC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QAC1D,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,kCAAkC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QACrD,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAA;IACxC,CAAC,CAAA;IAED,wFAAwF;IAChF,UAAU,GAAG,CAAC,EAAU,EAAE,OAAqB,EAAE,EAAE;QACzD,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QAE3B,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YAEpC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;YAE1B,uDAAuD;YACvD,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;gBAChB,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;gBAEtB,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;oBACjB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;gBAClC,CAAC;YACH,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QAC/B,CAAC;IACH,CAAC,CAAA;IAED,iFAAiF;IACzE,QAAQ,GAAG,CAAC,EAAU,EAAE,EAAE;QAChC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAoB,CAAA;QAE1C,KAAK,MAAM,EAAC,GAAG,EAAC,IAAI,IAAI,CAAC,EAAE,CAAC,GAAG,CAAgB,sCAAsC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YAC7F,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YAE/B,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;gBACzC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;YAC/B,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC,CAAA;IAEO,OAAO,GAAG,CAAC,MAA6B,EAAE,OAAqB,EAAE,EAAE;QACzE,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACrC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC9B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;YAC1C,CAAC;QACH,CAAC;IACH,CAAC,CAAA;IAEO,OAAO,GAAG,CAAC,KAAmB,EAAE,QAAiB,EAAE,OAAqB,EAAE,EAAE;QAClF,sEAAsE;QACtE,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,kDAAkD,EAAE,KAAK,CAAC,CAAA;YAEvE,OAAM;QACR,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;QACvC,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAY,gDAAgD,EAAE;YAC1F,KAAK,CAAC,EAAE;SACT,CAAC,CAAA;QAEF,4FAA4F;QAC5F,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC;gBAC1C,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,uDAAuD,EAAE;oBACnE,SAAS;oBACT,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAChB,KAAK,CAAC,EAAE;iBACT,CAAC,CAAA;gBACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YACvB,CAAC;iBAAM,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBAC1C,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,6CAA6C,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;YACxE,CAAC;YAED,OAAM;QACR,CAAC;QAED,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QACpE,MAAM,CAAC,SAAS,CAAC,GAAG,OAAO;YACzB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAW,wDAAwD,EAAE,CAAC,OAAO,CAAC,CAAC;YAC5F,CAAC,CAAC,EAAE,CAAA;QAEN,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,KAAK,CAAC,UAAU,GAAG,SAAS,CAAC,UAAU,EAAE,CAAC;gBAC5C,OAAM;YACR,CAAC;YAED,kFAAkF;YAClF,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;gBACvB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;YACxC,CAAC;YAED,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;YAC5C,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,4CAA4C,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAA;YACzE,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;QAC9B,CAAC;QAED,IAAI,CAAC,EAAE,CAAC,GAAG,CACT;6CACuC,EACvC;YACE,KAAK,CAAC,EAAE;YACR,KAAK,CAAC,MAAM;YACZ,KAAK,CAAC,IAAI;YACV,KAAK,CAAC,UAAU;YAChB,OAAO,IAAI,IAAI;YACf,SAAS,EAAE,EAAE,IAAI,IAAI;YACrB,aAAa,CAAC,KAAK,CAAC,IAAI,IAAI;YAC5B,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAChB,SAAS;SACV,CACF,CAAA;QAED,qFAAqF;QACrF,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACvC,IAAI,IAAI,EAAE,MAAM,KAAK,CAAC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC9C,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,0EAA0E,EAAE;oBACtF,KAAK,CAAC,EAAE;oBACR,IAAI;oBACJ,KAAK;oBACL,KAAK,CAAC,UAAU;iBACjB,CAAC,CAAA;gBAEF,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC;oBAChE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;oBAErC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;oBAEjC,IAAI,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;wBACxC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;oBAC3B,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IACvB,CAAC,CAAA;IAEO,MAAM,GAAG,CAAC,WAAmB,EAAE,OAAqB,EAAE,EAAE;QAC9D,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;QAEpC,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YAEpC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;YAC1B,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YAEtB,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBAChC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,4CAA4C,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA;YAC3E,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QAC/B,CAAC;IACH,CAAC,CAAA;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"leader.d.ts","sourceRoot":"","sources":["../../../../../../src/repository/adapters/sqlite/leader.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,gBAAgB,EAChB,eAAe,EAMhB,MAAM,eAAe,CAAA;AAEtB,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,MAAM,CAAA;IAEZ,YAAY,EAAE,MAAM,MAAM,CAAA;CAC3B,CAAA;AAwBD,iGAAiG;AACjG,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,eAAe,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,yBAG7E,oBAAoB,KAAG,gBAAgB,CAAC,CAAC,CAwP3C,CAAA"}
1
+ {"version":3,"file":"leader.d.ts","sourceRoot":"","sources":["../../../../../../src/repository/adapters/sqlite/leader.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,gBAAgB,EAChB,eAAe,EAMhB,MAAM,eAAe,CAAA;AAEtB,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,MAAM,CAAA;IAEZ,YAAY,EAAE,MAAM,MAAM,CAAA;CAC3B,CAAA;AA+BD,iGAAiG;AACjG,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,eAAe,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,yBAG7E,oBAAoB,KAAG,gBAAgB,CAAC,CAAC,CAwQ3C,CAAA"}
@@ -11,18 +11,17 @@ export const connectSqlite = ({ name, createWorker, }) => {
11
11
  const shared = openChannel(name);
12
12
  const inbox = openChannel(`${name}:${tab}`);
13
13
  const outboxes = new Map();
14
- let leading = false;
14
+ // The answers in commit order, and the responses to this tab's calls among them
15
+ const answers = [];
16
+ const responses = new Map();
17
+ // Which tab asked each call the leader's worker is running
18
+ const askers = new Map();
19
+ let role = { type: "waiting" };
15
20
  let worker;
21
+ // A worker that failed answers nothing, so its calls get this instead
16
22
  let failure;
17
- let leader;
18
23
  let release;
19
- let closed = false;
20
24
  let counter = 0;
21
- // Which tab asked each call the leader's worker is running
22
- const askers = new Map();
23
- // The answers in commit order, and the responses to this tab's calls among them
24
- const answers = [];
25
- const responses = new Map();
26
25
  const outbox = (to) => {
27
26
  let channel = outboxes.get(to);
28
27
  if (!channel) {
@@ -55,19 +54,24 @@ export const connectSqlite = ({ name, createWorker, }) => {
55
54
  const drain = () => {
56
55
  let waiting = false;
57
56
  while (!waiting && answers.length > 0) {
58
- const { to, id, change } = answers[0];
59
- const response = responses.get(id);
57
+ const answer = answers[0];
58
+ const { to, id, change } = answer;
60
59
  if (to !== tab || !calls.has(id)) {
61
60
  answers.shift();
62
- if (to !== tab && change)
61
+ if (to !== tab && change) {
63
62
  notify(change);
64
- }
65
- else if (response) {
66
- answers.shift();
67
- settle(response);
63
+ }
68
64
  }
69
65
  else {
70
- waiting = true;
66
+ // A write is answered by the change it committed, and a read by its response
67
+ const response = change ? { id, result: change } : responses.get(id);
68
+ if (response) {
69
+ answers.shift();
70
+ settle(response);
71
+ }
72
+ else {
73
+ waiting = true;
74
+ }
71
75
  }
72
76
  }
73
77
  };
@@ -83,13 +87,16 @@ export const connectSqlite = ({ name, createWorker, }) => {
83
87
  drain();
84
88
  }
85
89
  else if (to) {
86
- outbox(to)?.postMessage({ type: "response", response });
90
+ // A change answers the call too, and sending the response as well would say it twice
91
+ if (!change) {
92
+ outbox(to)?.postMessage({ type: "response", response });
93
+ }
87
94
  shared?.postMessage({ type: "answered", to, id: response.id, change });
88
- if (change)
95
+ if (change) {
89
96
  notify(change);
97
+ }
90
98
  }
91
99
  };
92
- // A worker that failed answers nothing, so its calls and any after get the failure instead
93
100
  const fail = (error) => {
94
101
  failure = error;
95
102
  for (const id of Array.from(askers.keys())) {
@@ -107,24 +114,28 @@ export const connectSqlite = ({ name, createWorker, }) => {
107
114
  };
108
115
  // Until a leader is known, a call waits in `calls` for one to announce itself
109
116
  const send = (request) => {
110
- if (leading) {
117
+ if (role.type === "leading") {
111
118
  run(request, tab);
112
119
  }
113
- else if (leader) {
114
- outbox(leader)?.postMessage({ type: "request", from: tab, request });
120
+ else if (role.type === "following") {
121
+ outbox(role.tab)?.postMessage({ type: "request", from: tab, request });
122
+ }
123
+ };
124
+ // Calls made before a leader was known, or sent to one that has gone, go to it in order
125
+ const sendWaiting = () => {
126
+ for (const call of calls.values()) {
127
+ send(call.request);
115
128
  }
116
129
  };
117
- // Calls made before this leader was known, or sent to one that has gone, go to it in order
130
+ // A tab that leads holds the lock, so another tab's announcement changes nothing here
118
131
  const follow = (tabThatLeads) => {
119
- if (leader !== tabThatLeads) {
120
- leader = tabThatLeads;
121
- for (const call of calls.values()) {
122
- send(call.request);
123
- }
132
+ if (role.type === "waiting" || (role.type === "following" && role.tab !== tabThatLeads)) {
133
+ role = { type: "following", tab: tabThatLeads };
134
+ sendWaiting();
124
135
  }
125
136
  };
126
137
  const lead = () => {
127
- leading = true;
138
+ role = { type: "leading" };
128
139
  try {
129
140
  worker = createWorker();
130
141
  worker.onmessage = ({ data }) => answer(data);
@@ -134,7 +145,7 @@ export const connectSqlite = ({ name, createWorker, }) => {
134
145
  catch (e) {
135
146
  fail(String(e));
136
147
  }
137
- follow(tab);
148
+ sendWaiting();
138
149
  shared?.postMessage({ type: "leader", tab });
139
150
  };
140
151
  if (shared && inbox) {
@@ -144,7 +155,7 @@ export const connectSqlite = ({ name, createWorker, }) => {
144
155
  follow(data.tab);
145
156
  break;
146
157
  case "ask":
147
- if (leading) {
158
+ if (role.type === "leading") {
148
159
  shared.postMessage({ type: "leader", tab });
149
160
  }
150
161
  break;
@@ -157,7 +168,7 @@ export const connectSqlite = ({ name, createWorker, }) => {
157
168
  inbox.onmessage = ({ data }) => {
158
169
  switch (data.type) {
159
170
  case "request":
160
- if (leading) {
171
+ if (role.type === "leading") {
161
172
  run(data.request, data.from);
162
173
  }
163
174
  break;
@@ -186,7 +197,7 @@ export const connectSqlite = ({ name, createWorker, }) => {
186
197
  lead();
187
198
  }
188
199
  const call = ((method, ...args) => new Promise((resolve, reject) => {
189
- if (closed) {
200
+ if (role.type === "closed") {
190
201
  reject(new Error("The sqlite connection is closed"));
191
202
  }
192
203
  else {
@@ -202,7 +213,7 @@ export const connectSqlite = ({ name, createWorker, }) => {
202
213
  };
203
214
  };
204
215
  const close = () => {
205
- closed = true;
216
+ role = { type: "closed" };
206
217
  lock.abort();
207
218
  release?.();
208
219
  worker?.terminate();
@@ -1 +1 @@
1
- {"version":3,"file":"leader.js","sourceRoot":"","sources":["../../../../../../src/repository/adapters/sqlite/leader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"leader.js","sourceRoot":"","sources":["../../../../../../src/repository/adapters/sqlite/leader.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { Unsubscriber } from "../../../svelte.js";
2
- import type { SqliteDatabase, SqliteEngine, WriteOp, WriteResult } from "./engine.js";
2
+ import type { SqliteChange, SqliteDatabase, SqliteEngine } from "./engine.js";
3
+ export type { SqliteChange } from "./engine.js";
3
4
  /** The engine methods a worker serves, by name, so nothing else on the engine can be called. */
4
5
  export declare const SQLITE_ENGINE_METHODS: readonly ["query", "count", "countTags", "getEvent", "getDeletes", "write", "evict", "prune", "clear"];
5
6
  export type SqliteMethods = Pick<SqliteEngine, (typeof SQLITE_ENGINE_METHODS)[number]>;
@@ -16,14 +17,6 @@ export type SqliteWorkerMethods = {
16
17
  export type SqliteServed<M extends SqliteExtension> = SqliteWorkerMethods & SqliteMethods & Omit<M, keyof SqliteMethods | keyof SqliteWorkerMethods>;
17
18
  /** Calls a method wherever the database lives, in the order calls are made. */
18
19
  export type SqliteRpc<M extends SqliteExtension = Record<never, never>> = <K extends keyof SqliteServed<M> & string>(method: K, ...args: Parameters<SqliteServed<M>[K]>) => Promise<ReturnType<SqliteServed<M>[K]>>;
19
- /** A change a call committed to the database's events, which other connections hear about. */
20
- export type SqliteChange = {
21
- type: "write";
22
- ops: WriteOp[];
23
- result: WriteResult;
24
- } | {
25
- type: "clear";
26
- };
27
20
  /** Calls the database in order, and hears other connections' changes in the order committed. */
28
21
  export type SqliteConnection<M extends SqliteExtension = Record<never, never>> = {
29
22
  call: SqliteRpc<M>;
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../../../../src/repository/adapters/sqlite/protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../../../../src/repository/adapters/sqlite/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAA;AACpD,OAAO,KAAK,EAAC,YAAY,EAAE,cAAc,EAAE,YAAY,EAAC,MAAM,aAAa,CAAA;AAE3E,YAAY,EAAC,YAAY,EAAC,MAAM,aAAa,CAAA;AAE7C,gGAAgG;AAChG,eAAO,MAAM,qBAAqB,wGAUxB,CAAA;AAEV,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;AAEtF,4FAA4F;AAC5F,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,CAAA;AAEzE,kGAAkG;AAClG,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,eAAe,IAAI,CACpD,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,YAAY,KACjB,CAAC,CAAA;AAEN,+EAA+E;AAC/E,MAAM,MAAM,mBAAmB,GAAG;IAChC,oEAAoE;IACpE,IAAI,EAAE,MAAM,IAAI,CAAA;CACjB,CAAA;AAED,wEAAwE;AACxE,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,eAAe,IAAI,mBAAmB,GACvE,aAAa,GACb,IAAI,CAAC,CAAC,EAAE,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAAC,CAAA;AAE1D,+EAA+E;AAC/E,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,eAAe,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CACxE,CAAC,SAAS,MAAM,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM,EAExC,MAAM,EAAE,CAAC,EACT,GAAG,IAAI,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KACpC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAE5C,gGAAgG;AAChG,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,eAAe,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI;IAC/E,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;IAClB,SAAS,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,KAAK,YAAY,CAAA;IACrE,KAAK,EAAE,MAAM,IAAI,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,OAAO,EAAE,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAC,GAAG;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAC,CAAA;AAExF,4EAA4E;AAC5E,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,EAAE,cAAc,CAAA;IACxB,MAAM,CAAC,EAAE,YAAY,CAAA;CACtB,CAAA;AAED,6DAA6D;AAC7D,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AASD,wEAAwE;AACxE,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,aAAa,KAAK,WAAW,CAAA;AAErE,sFAAsF;AACtF,eAAO,MAAM,mBAAmB,GAAI,CAAC,SAAS,eAAe,EAC3D,QAAQ,YAAY,EACpB,SAAS,YAAY,CAAC,CAAC,CAAC,KACvB,eA2BF,CAAA"}
@@ -10,23 +10,11 @@ export const SQLITE_ENGINE_METHODS = [
10
10
  "prune",
11
11
  "clear",
12
12
  ];
13
- // The change an engine method commits, if it's one that changes the events
14
- const getChange = (method, args, result) => {
15
- let change;
16
- switch (method) {
17
- case "write":
18
- change = { type: "write", ops: args[0], result: result };
19
- break;
20
- case "evict":
21
- case "prune":
22
- change = { type: "write", ops: [], result: result };
23
- break;
24
- case "clear":
25
- change = { type: "clear" };
26
- break;
27
- }
28
- return change;
29
- };
13
+ // A write answers with the change it committed, which every connection applies in the same order
14
+ const isChange = (result) => typeof result === "object" &&
15
+ result !== null &&
16
+ "type" in result &&
17
+ (result.type === "write" || result.type === "clear");
30
18
  /** Migrates the engine, then answers requests for its methods and the extension's. */
31
19
  export const createSqliteHandler = (engine, extend) => {
32
20
  engine.migrate();
@@ -41,7 +29,7 @@ export const createSqliteHandler = (engine, extend) => {
41
29
  if (!f)
42
30
  throw new Error(`Unknown sqlite method ${method}`);
43
31
  const result = f(...args);
44
- reply = { response: { id, result }, change: getChange(method, args, result) };
32
+ reply = { response: { id, result }, change: isChange(result) ? result : undefined };
45
33
  }
46
34
  catch (e) {
47
35
  reply = { response: { id, error: String(e) } };
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../../../../src/repository/adapters/sqlite/protocol.ts"],"names":[],"mappings":"AAIA,gGAAgG;AAChG,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,OAAO;IACP,OAAO;IACP,WAAW;IACX,UAAU;IACV,YAAY;IACZ,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;CACC,CAAA;AA8DV,2EAA2E;AAC3E,MAAM,SAAS,GAAG,CAAC,MAAc,EAAE,IAAe,EAAE,MAAe,EAAE,EAAE;IACrE,IAAI,MAA2B,CAAA;IAE/B,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,OAAO;YACV,MAAM,GAAG,EAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAc,EAAE,MAAM,EAAE,MAAqB,EAAC,CAAA;YAClF,MAAK;QACP,KAAK,OAAO,CAAC;QACb,KAAK,OAAO;YACV,MAAM,GAAG,EAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,MAAqB,EAAC,CAAA;YAChE,MAAK;QACP,KAAK,OAAO;YACV,MAAM,GAAG,EAAC,IAAI,EAAE,OAAO,EAAC,CAAA;YACxB,MAAK;IACT,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAKD,sFAAsF;AACtF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,MAAoB,EACpB,MAAwB,EACP,EAAE;IACnB,MAAM,CAAC,OAAO,EAAE,CAAA;IAEhB,MAAM,OAAO,GAAG,IAAI,GAAG,CACrB,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAClD,CAAA;IAED,KAAK,MAAM,MAAM,IAAI,qBAAqB,EAAE,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAoC,CAAC,CAAA;IACxE,CAAC;IAED,OAAO,CAAC,EAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAgB,EAAe,EAAE;QACxD,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAC7B,IAAI,KAAkB,CAAA;QAEtB,IAAI,CAAC;YACH,IAAI,CAAC,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,MAAM,EAAE,CAAC,CAAA;YAE1D,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;YAEzB,KAAK,GAAG,EAAC,QAAQ,EAAE,EAAC,EAAE,EAAE,MAAM,EAAC,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,EAAC,CAAA;QAC3E,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,KAAK,GAAG,EAAC,QAAQ,EAAE,EAAC,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAC,EAAC,CAAA;QAC5C,CAAC;QAED,OAAO,KAAK,CAAA;IACd,CAAC,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../../../../src/repository/adapters/sqlite/protocol.ts"],"names":[],"mappings":"AAKA,gGAAgG;AAChG,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,OAAO;IACP,OAAO;IACP,WAAW;IACX,UAAU;IACV,YAAY;IACZ,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;CACC,CAAA;AA2DV,iGAAiG;AACjG,MAAM,QAAQ,GAAG,CAAC,MAAe,EAA0B,EAAE,CAC3D,OAAO,MAAM,KAAK,QAAQ;IAC1B,MAAM,KAAK,IAAI;IACf,MAAM,IAAI,MAAM;IAChB,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,CAAA;AAKtD,sFAAsF;AACtF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,MAAoB,EACpB,MAAwB,EACP,EAAE;IACnB,MAAM,CAAC,OAAO,EAAE,CAAA;IAEhB,MAAM,OAAO,GAAG,IAAI,GAAG,CACrB,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAClD,CAAA;IAED,KAAK,MAAM,MAAM,IAAI,qBAAqB,EAAE,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAoC,CAAC,CAAA;IACxE,CAAC;IAED,OAAO,CAAC,EAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAgB,EAAe,EAAE;QACxD,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAC7B,IAAI,KAAkB,CAAA;QAEtB,IAAI,CAAC;YACH,IAAI,CAAC,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,MAAM,EAAE,CAAC,CAAA;YAE1D,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;YAEzB,KAAK,GAAG,EAAC,QAAQ,EAAE,EAAC,EAAE,EAAE,MAAM,EAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAC,CAAA;QACjF,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,KAAK,GAAG,EAAC,QAAQ,EAAE,EAAC,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAC,EAAC,CAAA;QAC5C,CAAC;QAED,OAAO,KAAK,CAAA;IACd,CAAC,CAAA;AACH,CAAC,CAAA"}
@@ -17,7 +17,7 @@ export declare class SqliteRepository<M extends SqliteExtension = Record<never,
17
17
  deletes: DeleteIndex;
18
18
  /** Open a repository once it holds the deletes that `isDeleted` answers from. */
19
19
  static open: <M_1 extends SqliteExtension = Record<never, never>>(options: SqliteRepositoryOptions<M_1>) => Promise<SqliteRepository<M_1>>;
20
- private rpc;
20
+ private send;
21
21
  private writes;
22
22
  private timeout;
23
23
  private sending;
@@ -1 +1 @@
1
- {"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../../../../../src/repository/adapters/sqlite/repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAc,MAAM,eAAe,CAAA;AAClD,OAAO,KAAK,EAAC,QAAQ,EAAQ,MAAM,eAAe,CAAA;AAElD,OAAO,KAAK,EAAC,MAAM,EAAE,YAAY,EAAC,MAAM,gBAAgB,CAAA;AACxD,OAAO,EAAC,OAAO,EAAC,MAAM,qBAAqB,CAAA;AAC3C,OAAO,EAAC,WAAW,EAAoB,MAAM,eAAe,CAAA;AAC5D,OAAO,KAAK,EAAC,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,gBAAgB,EAAC,MAAM,eAAe,CAAA;AAC7F,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAA;AAEpD,OAAO,KAAK,EAAe,gBAAgB,EAAE,eAAe,EAAE,SAAS,EAAC,MAAM,eAAe,CAAA;AAE7F,MAAM,MAAM,uBAAuB,CAAC,CAAC,SAAS,eAAe,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI;IACtF,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAA;IAE/B,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAiCD,oGAAoG;AACpG,qBAAa,gBAAgB,CAAC,CAAC,SAAS,eAAe,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAC5E,SAAQ,OACR,YAAW,UAAU;IAkCD,QAAQ,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC,CAAC;IA/BhE,OAAO,UAAgB;IACvB,OAAO,cAAoB;IAE3B,iFAAiF;IACjF,MAAM,CAAC,IAAI,GAAU,GAAC,SAAS,eAAe,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EACnE,SAAS,uBAAuB,CAAC,GAAC,CAAC,oCAcpC;IAGD,OAAO,CAAC,GAAG,CAAW;IACtB,OAAO,CAAC,MAAM,CAAqC;IACnD,OAAO,CAAC,OAAO,CAAsC;IAErD,OAAO,CAAC,OAAO,CAA2B;IAE1C,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,WAAW,CAAc;IAEjC,OAAO;IAyBP,KAAK,GAAU,SAAS,MAAM,EAAE,EAAE,yBAAsB,YAAiB,6BAIxE;IAED,KAAK,GAAI,SAAS,MAAM,EAAE,EAAE,yBAAsB,YAAiB,qBACL;IAE9D,SAAS,GAAU,MAAM,MAAM,EAAE,aAAU,gBAAqB,kCAI/D;IAED,QAAQ,GAAU,aAAa,MAAM,2BAKpC;IAED,SAAS,GAAI,OAAO,YAAY,aAAkC;IAElE,OAAO,GAAI,SAAS,cAAc,kBAAqC;IAEvE,OAAO,GAAI,OAAO,YAAY,gCACoC;IAElE,WAAW,GAAU,aAAa,MAAM,mBAEvC;IAED,aAAa,uCAIZ;IAED,KAAK,sBAMJ;IAID,+EAA+E;IAC/E,KAAK,GAAU,SAAS,MAAM,EAAE,mBAM/B;IAED,iGAAiG;IACjG,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAIjB;IAED,oEAAoE;IACpE,KAAK,sBAOJ;IAID,OAAO,CAAC,KAAK,CAaZ;IAGD,OAAO,CAAC,IAAI,CASX;IAED,OAAO,CAAC,OAAO,CAOd;IAGD,OAAO,CAAC,KAAK,CA+BZ;IAGD,OAAO,CAAC,KAAK,CAsBZ;IAGD,OAAO,CAAC,MAAM,CAIb;IAED,OAAO,CAAC,OAAO,CAId;IAED,OAAO,CAAC,MAAM,CAQb;IAED,OAAO,CAAC,OAAO,CAId;IAGD,OAAO,CAAC,aAAa,CAoBpB;CACF"}
1
+ {"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../../../../../src/repository/adapters/sqlite/repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAc,MAAM,eAAe,CAAA;AAClD,OAAO,KAAK,EAAC,QAAQ,EAAQ,MAAM,eAAe,CAAA;AAElD,OAAO,KAAK,EAAC,MAAM,EAAE,YAAY,EAAC,MAAM,gBAAgB,CAAA;AACxD,OAAO,EAAC,OAAO,EAAC,MAAM,qBAAqB,CAAA;AAC3C,OAAO,EAAC,WAAW,EAAoB,MAAM,eAAe,CAAA;AAC5D,OAAO,KAAK,EAAC,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,gBAAgB,EAAC,MAAM,eAAe,CAAA;AAC7F,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAA;AAEpD,OAAO,KAAK,EAAe,gBAAgB,EAAE,eAAe,EAAE,SAAS,EAAC,MAAM,eAAe,CAAA;AAE7F,MAAM,MAAM,uBAAuB,CAAC,CAAC,SAAS,eAAe,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI;IACtF,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAA;IAE/B,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAiCD,oGAAoG;AACpG,qBAAa,gBAAgB,CAAC,CAAC,SAAS,eAAe,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAC5E,SAAQ,OACR,YAAW,UAAU;IAkCD,QAAQ,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC,CAAC;IA/BhE,OAAO,UAAgB;IACvB,OAAO,cAAoB;IAE3B,iFAAiF;IACjF,MAAM,CAAC,IAAI,GAAU,GAAC,SAAS,eAAe,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EACnE,SAAS,uBAAuB,CAAC,GAAC,CAAC,oCAcpC;IAGD,OAAO,CAAC,IAAI,CAAW;IACvB,OAAO,CAAC,MAAM,CAAqC;IACnD,OAAO,CAAC,OAAO,CAAsC;IAErD,OAAO,CAAC,OAAO,CAA2B;IAE1C,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,WAAW,CAAc;IAEjC,OAAO;IAyBP,KAAK,GAAU,SAAS,MAAM,EAAE,EAAE,yBAAsB,YAAiB,6BAIxE;IAED,KAAK,GAAI,SAAS,MAAM,EAAE,EAAE,yBAAsB,YAAiB,qBACJ;IAE/D,SAAS,GAAU,MAAM,MAAM,EAAE,aAAU,gBAAqB,kCAI/D;IAED,QAAQ,GAAU,aAAa,MAAM,2BAKpC;IAED,SAAS,GAAI,OAAO,YAAY,aAAkC;IAElE,OAAO,GAAI,SAAS,cAAc,kBAAqC;IAEvE,OAAO,GAAI,OAAO,YAAY,gCACoC;IAElE,WAAW,GAAU,aAAa,MAAM,mBAEvC;IAED,aAAa,uCAIZ;IAED,KAAK,sBAMJ;IAID,+EAA+E;IAC/E,KAAK,GAAU,SAAS,MAAM,EAAE,mBAM/B;IAED,iGAAiG;IACjG,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAIjB;IAED,oEAAoE;IACpE,KAAK,sBAOJ;IAID,OAAO,CAAC,KAAK,CAaZ;IAGD,OAAO,CAAC,IAAI,CASX;IAED,OAAO,CAAC,OAAO,CAOd;IAGD,OAAO,CAAC,KAAK,CA+BZ;IAGD,OAAO,CAAC,KAAK,CAsBZ;IAGD,OAAO,CAAC,MAAM,CAIb;IAED,OAAO,CAAC,OAAO,CAId;IAED,OAAO,CAAC,MAAM,CAQb;IAED,OAAO,CAAC,OAAO,CAId;IAGD,OAAO,CAAC,aAAa,CAoBpB;CACF"}
@@ -44,7 +44,7 @@ export class SqliteRepository extends Emitter {
44
44
  return repository;
45
45
  };
46
46
  // The engine's slice of the connection, which is all the repository itself calls
47
- rpc;
47
+ send;
48
48
  writes = [];
49
49
  timeout;
50
50
  // Writes sent and not yet reported
@@ -55,7 +55,7 @@ export class SqliteRepository extends Emitter {
55
55
  constructor(options) {
56
56
  super();
57
57
  this.options = options;
58
- this.rpc = options.connection.call;
58
+ this.send = options.connection.call;
59
59
  this.setMaxListeners(1000);
60
60
  // A failed write is logged when it fails, and nothing waits on provenance
61
61
  this.tracker.on("add", (id, url) => {
@@ -72,16 +72,16 @@ export class SqliteRepository extends Emitter {
72
72
  }
73
73
  // Repository
74
74
  query = async (filters, { signal, ...options } = {}) => {
75
- const result = await this.read(signal, () => this.rpc("query", filters, options));
75
+ const result = await this.read(signal, () => this.send("query", filters, options));
76
76
  return this.receive(result);
77
77
  };
78
- count = (filters, { signal, ...options } = {}) => this.read(signal, () => this.rpc("count", filters, options));
78
+ count = (filters, { signal, ...options } = {}) => this.read(signal, () => this.send("count", filters, options));
79
79
  countTags = async (name, { signal } = {}) => {
80
- const counts = await this.read(signal, () => this.rpc("countTags", name));
80
+ const counts = await this.read(signal, () => this.send("countTags", name));
81
81
  return new Map(counts);
82
82
  };
83
83
  getEvent = async (idOrAddress) => {
84
- const result = await this.read(undefined, () => this.rpc("getEvent", idOrAddress));
84
+ const result = await this.read(undefined, () => this.send("getEvent", idOrAddress));
85
85
  const [event] = this.receive(result);
86
86
  return event;
87
87
  };
@@ -97,14 +97,14 @@ export class SqliteRepository extends Emitter {
97
97
  };
98
98
  clear = async () => {
99
99
  this.flush();
100
- await this.rpc("clear");
100
+ await this.send("clear");
101
101
  this.forget();
102
102
  };
103
103
  // Beyond Repository
104
104
  /** Drop every event matching `filters`, with nothing restored in its place. */
105
105
  evict = async (filters) => {
106
106
  this.flush();
107
- const result = await this.rpc("evict", filters);
107
+ const { result } = await this.send("evict", filters);
108
108
  this.apply(result, new Map());
109
109
  };
110
110
  /** Call a method the worker serves, once the writes waiting to go have gone, so it sees them. */
@@ -121,9 +121,9 @@ export class SqliteRepository extends Emitter {
121
121
  };
122
122
  // Utilities
123
123
  start = async () => {
124
- const pruned = await this.rpc("prune");
124
+ const { result: pruned } = await this.send("prune");
125
125
  this.apply(pruned, new Map());
126
- const deletes = await this.rpc("getDeletes");
126
+ const deletes = await this.send("getDeletes");
127
127
  // Changes that reached the index before this answer are in it already
128
128
  this.deletes.clear();
129
129
  for (const [key, record] of deletes) {
@@ -154,7 +154,7 @@ export class SqliteRepository extends Emitter {
154
154
  const writes = this.writes.splice(0);
155
155
  const ops = writes.map(([op]) => op);
156
156
  const published = getPublished(ops);
157
- const sent = this.rpc("write", ops).then(result => {
157
+ const sent = this.send("write", ops).then(({ result }) => {
158
158
  const added = this.apply(result, published);
159
159
  for (const [op, deferred] of writes) {
160
160
  deferred.resolve(op[0] === "publish" && added.has(op[1].id));
@@ -1 +1 @@
1
- {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../../../../../src/repository/adapters/sqlite/repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../../../../../src/repository/adapters/sqlite/repository.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../../../../../src/repository/adapters/sqlite/serve.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,YAAY,EACZ,eAAe,EAIhB,MAAM,eAAe,CAAA;AAuBtB,iGAAiG;AACjG,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,eAAe,EAAE,SAAS,YAAY,CAAC,CAAC,CAAC,SAoC9E,CAAA"}
1
+ {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../../../../../src/repository/adapters/sqlite/serve.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,YAAY,EACZ,eAAe,EAIhB,MAAM,eAAe,CAAA;AAiBtB,iGAAiG;AACjG,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,eAAe,EAAE,SAAS,YAAY,CAAC,CAAC,CAAC,SAiD9E,CAAA"}
@@ -1,23 +1,16 @@
1
1
  import { sleep } from "@welshman/lib";
2
2
  import { SqliteEngine } from "./engine.js";
3
3
  import { createSqliteHandler } from "./protocol.js";
4
- import { openWasmDatabase } from "./wasm.js";
5
- // Without OPFS sync access handles, or barred from OPFS as in Firefox's private windows, no wait helps
6
- const canOpen = (error) => typeof FileSystemFileHandle !== "undefined" &&
7
- "createSyncAccessHandle" in FileSystemFileHandle.prototype &&
8
- !(error instanceof DOMException && error.name === "SecurityError");
9
- // The tab that led before may not have let go of the database yet
4
+ import { isCorrupt, isPoolFree, openWasmDatabase } from "./wasm.js";
5
+ // The worker that led before may not have let go of the database yet
10
6
  const open = async (name) => {
11
- for (let attempt = 0;; attempt++) {
12
- try {
13
- return await openWasmDatabase(name);
14
- }
15
- catch (e) {
16
- if (attempt >= 10 || !canOpen(e))
17
- throw e;
18
- await sleep(100 * 2 ** Math.min(attempt, 5));
7
+ for (let attempt = 0; attempt <= 10; attempt++) {
8
+ if (await isPoolFree(name)) {
9
+ return openWasmDatabase(name);
19
10
  }
11
+ await sleep(100 * 2 ** Math.min(attempt, 5));
20
12
  }
13
+ throw new Error(`The sqlite database ${name} is still open in another worker`);
21
14
  };
22
15
  /** Serves `connectSqlite` from a dedicated worker, with `extend`'s methods over the database. */
23
16
  export const serveSqlite = (extend) => {
@@ -25,11 +18,23 @@ export const serveSqlite = (extend) => {
25
18
  respond: createSqliteHandler(new SqliteEngine(db), extend),
26
19
  wipe,
27
20
  });
21
+ // quick_check skips some of the image, so damage can first show when the schema is built
22
+ const startHealed = async (connection) => {
23
+ try {
24
+ return start(connection);
25
+ }
26
+ catch (e) {
27
+ if (isCorrupt(e)) {
28
+ return start({ db: await connection.wipe(), wipe: connection.wipe });
29
+ }
30
+ throw e;
31
+ }
32
+ };
28
33
  // A wipe replaces the file, so the engine and the handler over it go with it
29
34
  let serving;
30
35
  self.onmessage = async ({ data }) => {
31
36
  if ("type" in data) {
32
- serving = open(data.name).then(start);
37
+ serving = open(data.name).then(startHealed);
33
38
  }
34
39
  else if (serving) {
35
40
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"serve.js","sourceRoot":"","sources":["../../../../../../src/repository/adapters/sqlite/serve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,eAAe,CAAA;AACnC,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAA;AACxC,OAAO,EAAC,mBAAmB,EAAC,MAAM,eAAe,CAAA;AAQjD,OAAO,EAAC,gBAAgB,EAAC,MAAM,WAAW,CAAA;AAG1C,uGAAuG;AACvG,MAAM,OAAO,GAAG,CAAC,KAAc,EAAE,EAAE,CACjC,OAAO,oBAAoB,KAAK,WAAW;IAC3C,wBAAwB,IAAI,oBAAoB,CAAC,SAAS;IAC1D,CAAC,CAAC,KAAK,YAAY,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,CAAC,CAAA;AAEpE,kEAAkE;AAClE,MAAM,IAAI,GAAG,KAAK,EAAE,IAAY,EAAE,EAAE;IAClC,KAAK,IAAI,OAAO,GAAG,CAAC,GAAI,OAAO,EAAE,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,OAAO,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAA;QACrC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,OAAO,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;gBAAE,MAAM,CAAC,CAAA;YAEzC,MAAM,KAAK,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAA;QAC9C,CAAC;IACH,CAAC;AACH,CAAC,CAAA;AAED,iGAAiG;AACjG,MAAM,CAAC,MAAM,WAAW,GAAG,CAA4B,MAAwB,EAAE,EAAE;IACjF,MAAM,KAAK,GAAG,CAAC,EAAC,EAAE,EAAE,IAAI,EAAiB,EAAE,EAAE,CAAC,CAAC;QAC7C,OAAO,EAAE,mBAAmB,CAAC,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;QAC1D,IAAI;KACL,CAAC,CAAA;IAEF,6EAA6E;IAC7E,IAAI,OAAsD,CAAA;IAE1D,IAAI,CAAC,SAAS,GAAG,KAAK,EAAE,EAAC,IAAI,EAA2C,EAAE,EAAE;QAC1E,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACnB,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACvC,CAAC;aAAM,IAAI,OAAO,EAAE,CAAC;YACnB,IAAI,CAAC;gBACH,MAAM,EAAC,OAAO,EAAE,IAAI,EAAC,GAAG,MAAM,OAAO,CAAA;gBAErC,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;oBAC3B,OAAO,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,EAAC,EAAE,EAAE,IAAI,EAAC,CAAC,CAAC,CAAA;oBAE9C,MAAM,OAAO,CAAA;oBAEb,2DAA2D;oBAC3D,MAAM,MAAM,GAAG,EAAC,IAAI,EAAE,OAAO,EAAU,CAAA;oBAEvC,IAAI,CAAC,WAAW,CAAC;wBACf,QAAQ,EAAE,EAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAC;wBAC1C,MAAM;qBACe,CAAC,CAAA;gBAC1B,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;gBACjC,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,WAAW,CAAC,EAAC,QAAQ,EAAE,EAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAC,EAAuB,CAAC,CAAA;YACrF,CAAC;QACH,CAAC;IACH,CAAC,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"serve.js","sourceRoot":"","sources":["../../../../../../src/repository/adapters/sqlite/serve.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,13 @@ export type WasmConnection = {
7
7
  /** Discard the file, and serve an empty one in its place. */
8
8
  wipe: () => Promise<SqliteDatabase>;
9
9
  };
10
+ /** Whether sqlite failed because the file is damaged, whichever extended code it gave. */
11
+ export declare const isCorrupt: (error: unknown) => boolean;
12
+ /**
13
+ * Whether no other worker holds a file of `name`'s pool. sqlite-wasm opens them all at once, and
14
+ * when one is held it leaks the rest and deletes the pool on its way out, so they're tried singly.
15
+ */
16
+ export declare const isPoolFree: (name: string) => Promise<boolean>;
10
17
  /** Open `name` in OPFS through its own SAH pool, so tabs can lead different databases at once. */
11
18
  export declare const openWasmDatabase: (name: string) => Promise<WasmConnection>;
12
19
  //# sourceMappingURL=wasm.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wasm.d.ts","sourceRoot":"","sources":["../../../../../../src/repository/adapters/sqlite/wasm.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,QAAQ,EAAoB,MAAM,yBAAyB,CAAA;AACxE,OAAO,KAAK,EAAW,cAAc,EAAC,MAAM,aAAa,CAAA;AAEzD,iFAAiF;AACjF,eAAO,MAAM,YAAY,GAAI,IAAI,QAAQ,KAAG,cAuD3C,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,cAAc,CAAA;IAClB,6DAA6D;IAC7D,IAAI,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,CAAA;CACpC,CAAA;AAWD,kGAAkG;AAClG,eAAO,MAAM,gBAAgB,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,cAAc,CAgC3E,CAAA"}
1
+ {"version":3,"file":"wasm.d.ts","sourceRoot":"","sources":["../../../../../../src/repository/adapters/sqlite/wasm.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,QAAQ,EAAoB,MAAM,yBAAyB,CAAA;AACxE,OAAO,KAAK,EAAW,cAAc,EAAC,MAAM,aAAa,CAAA;AAEzD,iFAAiF;AACjF,eAAO,MAAM,YAAY,GAAI,IAAI,QAAQ,KAAG,cAuD3C,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,cAAc,CAAA;IAClB,6DAA6D;IAC7D,IAAI,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,CAAA;CACpC,CAAA;AAKD,0FAA0F;AAC1F,eAAO,MAAM,SAAS,GAAI,OAAO,OAAO,YAI2B,CAAA;AAyCnE;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAU,MAAM,MAAM,qBAgB5C,CAAA;AAED,kGAAkG;AAClG,eAAO,MAAM,gBAAgB,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,cAAc,CAuD3E,CAAA"}
@@ -50,6 +50,13 @@ export const wasmDatabase = (db) => {
50
50
  },
51
51
  };
52
52
  };
53
+ const SQLITE_CORRUPT = 11;
54
+ const SQLITE_NOTADB = 26;
55
+ /** Whether sqlite failed because the file is damaged, whichever extended code it gave. */
56
+ export const isCorrupt = (error) => error instanceof Error &&
57
+ "resultCode" in error &&
58
+ typeof error.resultCode === "number" &&
59
+ [SQLITE_CORRUPT, SQLITE_NOTADB].includes(error.resultCode & 0xff);
53
60
  // A file sqlite refuses to even read is as unusable as a malformed one
54
61
  const isReadable = (db) => {
55
62
  try {
@@ -59,27 +66,89 @@ const isReadable = (db) => {
59
66
  return false;
60
67
  }
61
68
  };
69
+ const isBusy = (error) => error instanceof DOMException && error.name === "NoModificationAllowedError";
70
+ const isMissing = (error) => error instanceof DOMException && error.name === "NotFoundError";
71
+ const getPoolFiles = async (name) => {
72
+ const root = await navigator.storage.getDirectory();
73
+ try {
74
+ const pool = await root.getDirectoryHandle(`.welshman-${name}`);
75
+ const opaque = await pool.getDirectoryHandle(".opaque");
76
+ const files = [];
77
+ for await (const handle of opaque.values()) {
78
+ if (handle instanceof FileSystemFileHandle) {
79
+ files.push(handle);
80
+ }
81
+ }
82
+ return files;
83
+ }
84
+ catch (e) {
85
+ if (isMissing(e)) {
86
+ return [];
87
+ }
88
+ throw e;
89
+ }
90
+ };
91
+ /**
92
+ * Whether no other worker holds a file of `name`'s pool. sqlite-wasm opens them all at once, and
93
+ * when one is held it leaks the rest and deletes the pool on its way out, so they're tried singly.
94
+ */
95
+ export const isPoolFree = async (name) => {
96
+ for (const file of await getPoolFiles(name)) {
97
+ try {
98
+ const handle = await file.createSyncAccessHandle();
99
+ handle.close();
100
+ }
101
+ catch (e) {
102
+ if (isBusy(e)) {
103
+ return false;
104
+ }
105
+ throw e;
106
+ }
107
+ }
108
+ return true;
109
+ };
62
110
  /** Open `name` in OPFS through its own SAH pool, so tabs can lead different databases at once. */
63
111
  export const openWasmDatabase = async (name) => {
64
112
  const sqlite3 = await sqlite3InitModule();
65
113
  const pool = await sqlite3.installOpfsSAHPoolVfs({ name: `welshman-${name}` });
114
+ // A database left open would keep its file through the wipe
66
115
  const connect = () => {
67
116
  const db = new pool.OpfsSAHPoolDb(`/${name}.sqlite3`);
68
- db.exec("PRAGMA journal_mode = TRUNCATE; PRAGMA synchronous = NORMAL; PRAGMA temp_store = MEMORY");
117
+ try {
118
+ db.exec("PRAGMA journal_mode = TRUNCATE; PRAGMA synchronous = NORMAL; PRAGMA temp_store = MEMORY");
119
+ }
120
+ catch (e) {
121
+ db.close();
122
+ throw e;
123
+ }
69
124
  return db;
70
125
  };
71
- let db = connect();
126
+ const connectReadable = () => {
127
+ try {
128
+ const db = connect();
129
+ if (isReadable(db)) {
130
+ return db;
131
+ }
132
+ db.close();
133
+ }
134
+ catch (e) {
135
+ if (!isCorrupt(e)) {
136
+ throw e;
137
+ }
138
+ }
139
+ };
140
+ const reconnect = async () => {
141
+ await pool.wipeFiles();
142
+ return connect();
143
+ };
144
+ // A malformed image fails every read for as long as it's kept, and the cache rebuilds from relays
145
+ let db = connectReadable() ?? (await reconnect());
72
146
  const wipe = async () => {
73
147
  // Prepared statements belong to the file they were built against, so the wrapper goes too
74
148
  db.close();
75
- await pool.wipeFiles();
76
- db = connect();
149
+ db = await reconnect();
77
150
  return wasmDatabase(db);
78
151
  };
79
- // A malformed image fails every read for as long as it's kept, and the cache rebuilds from relays
80
- if (!isReadable(db)) {
81
- await wipe();
82
- }
83
152
  return { db: wasmDatabase(db), wipe };
84
153
  };
85
154
  //# sourceMappingURL=wasm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wasm.js","sourceRoot":"","sources":["../../../../../../src/repository/adapters/sqlite/wasm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wasm.js","sourceRoot":"","sources":["../../../../../../src/repository/adapters/sqlite/wasm.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"root":["../src/derive.ts","../src/index.ts","../src/misc.ts","../src/svelte.ts","../src/synced.ts","../src/throttle.ts","../src/tracker.ts","../src/repository/core.ts","../src/repository/adapters/memory.ts","../src/repository/adapters/sqlite/engine.ts","../src/repository/adapters/sqlite/leader.ts","../src/repository/adapters/sqlite/protocol.ts","../src/repository/adapters/sqlite/repository.ts","../src/repository/adapters/sqlite/serve.ts","../src/repository/adapters/sqlite/wasm.ts","../src/repository/adapters/sqlite/worker.ts"],"version":"5.8.3"}
1
+ {"root":["../src/derive.ts","../src/index.ts","../src/misc.ts","../src/svelte.ts","../src/synced.ts","../src/throttle.ts","../src/tracker.ts","../src/repository/core.ts","../src/repository/adapters/memory.ts","../src/repository/adapters/sqlite/engine.ts","../src/repository/adapters/sqlite/leader.ts","../src/repository/adapters/sqlite/opfs.d.ts","../src/repository/adapters/sqlite/protocol.ts","../src/repository/adapters/sqlite/repository.ts","../src/repository/adapters/sqlite/serve.ts","../src/repository/adapters/sqlite/wasm.ts","../src/repository/adapters/sqlite/worker.ts"],"version":"5.8.3"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@welshman/store",
3
- "version": "0.14.1",
3
+ "version": "0.14.3",
4
4
  "author": "hodlbod",
5
5
  "license": "MIT",
6
6
  "description": "Event storage and reactive stores for welshman",
@@ -32,8 +32,8 @@
32
32
  ],
33
33
  "peerDependencies": {
34
34
  "@sqlite.org/sqlite-wasm": "^3.53.4-build1",
35
- "@welshman/lib": "0.14.1",
36
- "@welshman/util": "0.14.1"
35
+ "@welshman/lib": "0.14.3",
36
+ "@welshman/util": "0.14.3"
37
37
  },
38
38
  "peerDependenciesMeta": {
39
39
  "@sqlite.org/sqlite-wasm": {
@@ -42,8 +42,8 @@
42
42
  },
43
43
  "devDependencies": {
44
44
  "@sqlite.org/sqlite-wasm": "3.53.4-build1",
45
- "@welshman/lib": "0.14.1",
46
- "@welshman/util": "0.14.1",
45
+ "@welshman/lib": "0.14.3",
46
+ "@welshman/util": "0.14.3",
47
47
  "rimraf": "~6.0.0",
48
48
  "typescript": "~5.8.0"
49
49
  },