@procedures/store 0.17.2 → 0.17.4

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 (39) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/README.md +92 -4
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/browser.d.ts +6 -2
  5. package/dist/browser.d.ts.map +1 -1
  6. package/dist/browser.js +5 -2
  7. package/dist/browser.js.map +1 -1
  8. package/dist/indexeddb/document-storage.d.ts +186 -0
  9. package/dist/indexeddb/document-storage.d.ts.map +1 -0
  10. package/dist/indexeddb/document-storage.js +598 -0
  11. package/dist/indexeddb/document-storage.js.map +1 -0
  12. package/dist/indexeddb/idb.d.ts +82 -9
  13. package/dist/indexeddb/idb.d.ts.map +1 -1
  14. package/dist/indexeddb/idb.js +100 -22
  15. package/dist/indexeddb/idb.js.map +1 -1
  16. package/dist/indexeddb.d.ts +8 -3
  17. package/dist/indexeddb.d.ts.map +1 -1
  18. package/dist/indexeddb.js +8 -3
  19. package/dist/indexeddb.js.map +1 -1
  20. package/dist/storage/hybrid.d.ts +9 -0
  21. package/dist/storage/hybrid.d.ts.map +1 -1
  22. package/dist/storage/hybrid.js +14 -0
  23. package/dist/storage/hybrid.js.map +1 -1
  24. package/dist/storage/index.d.ts +2 -0
  25. package/dist/storage/index.d.ts.map +1 -1
  26. package/dist/storage/index.js +2 -0
  27. package/dist/storage/index.js.map +1 -1
  28. package/dist/storage/tab-coordinator.d.ts +284 -0
  29. package/dist/storage/tab-coordinator.d.ts.map +1 -0
  30. package/dist/storage/tab-coordinator.js +584 -0
  31. package/dist/storage/tab-coordinator.js.map +1 -0
  32. package/package.json +5 -5
  33. package/src/browser.ts +13 -2
  34. package/src/indexeddb/document-storage.ts +689 -0
  35. package/src/indexeddb/idb.ts +136 -21
  36. package/src/indexeddb.ts +8 -3
  37. package/src/storage/hybrid.ts +14 -0
  38. package/src/storage/index.ts +10 -0
  39. package/src/storage/tab-coordinator.ts +692 -0
@@ -28,8 +28,8 @@ export interface IdbDatabaseLike {
28
28
  createObjectStore(name: string, options?: {
29
29
  keyPath?: string;
30
30
  autoIncrement?: boolean;
31
- }): unknown;
32
- transaction(names: string, mode?: "readonly" | "readwrite"): IdbTransactionLike;
31
+ }): IdbObjectStoreLike;
32
+ transaction(names: string | string[], mode?: "readonly" | "readwrite"): IdbTransactionLike;
33
33
  close(): void;
34
34
  onversionchange: ((event: any) => void) | null;
35
35
  }
@@ -51,6 +51,30 @@ export interface IdbObjectStoreLike {
51
51
  add(value: unknown, key?: string): IdbRequestLike<unknown>;
52
52
  delete(key: string): IdbRequestLike<unknown>;
53
53
  clear(): IdbRequestLike<unknown>;
54
+ index(name: string): IdbIndexLike;
55
+ createIndex(name: string, keyPath: string, options?: {
56
+ unique?: boolean;
57
+ }): unknown;
58
+ }
59
+ /**
60
+ * An index of an object store. The results follow the order of the keys of the index. A record
61
+ * without the key path of the index is not in the index.
62
+ */
63
+ export interface IdbIndexLike {
64
+ /** The records, the first `count` of them when `count` is given. */
65
+ getAll(query?: null, count?: number): IdbRequestLike<unknown[]>;
66
+ /** The primary keys of the records, without their values. */
67
+ getAllKeys(query?: null, count?: number): IdbRequestLike<unknown[]>;
68
+ count(): IdbRequestLike<number>;
69
+ /** A cursor over the records. `"prev"` starts at the highest key of the index. */
70
+ openCursor(query?: null, direction?: "next" | "prev"): IdbRequestLike<IdbCursorLike | null>;
71
+ }
72
+ /** A cursor of an index, with the value of its record. */
73
+ export interface IdbCursorLike {
74
+ /** The key of the index. */
75
+ readonly key: unknown;
76
+ readonly value: unknown;
77
+ continue(): void;
54
78
  }
55
79
  /** The options of the IndexedDB stores. */
56
80
  export interface IndexedDbOptions {
@@ -66,21 +90,72 @@ export interface IndexedDbOptions {
66
90
  */
67
91
  export declare function hasIndexedDb(): boolean;
68
92
  /**
69
- * One object store in its own database, version 1. The connection opens at the first operation,
93
+ * This function calls `then` with the result of the request when the request succeeds. An error of
94
+ * `then` goes to `fail`, which aborts the transaction. Thus a check in a step of a transaction
95
+ * undoes each request of the transaction.
96
+ */
97
+ export declare function onResult<R>(request: IdbRequestLike<R>, fail: (error: unknown) => void, then: (result: R) => void): void;
98
+ /** An object store of a database, with its indexes. */
99
+ export interface IdbStoreSchema {
100
+ readonly name: string;
101
+ readonly options?: {
102
+ keyPath?: string;
103
+ autoIncrement?: boolean;
104
+ };
105
+ readonly indexes?: ReadonlyArray<{
106
+ readonly name: string;
107
+ readonly keyPath: string;
108
+ readonly unique?: boolean;
109
+ }>;
110
+ }
111
+ /**
112
+ * The work of one transaction. It makes the requests, and it gives a function that reads their
113
+ * results after the commit. `fail` aborts the transaction: the promise of the transaction then
114
+ * rejects with the error of `fail`, and each request is undone.
115
+ */
116
+ export type IdbWork<R> = (transaction: IdbTransactionLike, fail: (error: unknown) => void) => () => R;
117
+ /**
118
+ * One database, version 1, with its object stores. The connection opens at the first operation,
70
119
  * and a failed open tries again at the next operation.
71
120
  */
72
- export declare class IdbStoreConnection {
121
+ export declare class IdbConnection {
73
122
  /** The name of the database. */
74
123
  readonly database: string;
75
- /** The name of the object store. */
76
- readonly store: string;
77
- private readonly storeOptions;
124
+ /** The object stores of the database. */
125
+ private readonly stores;
78
126
  private readonly factory;
127
+ /** The function that writes the first records when the open makes the object stores. */
128
+ private readonly onCreate?;
79
129
  private connection;
80
130
  private closed;
81
131
  constructor(
82
132
  /** The name of the database. */
83
133
  database: string,
134
+ /** The object stores of the database. */
135
+ stores: readonly IdbStoreSchema[], factory: IdbFactoryLike | undefined,
136
+ /** The function that writes the first records when the open makes the object stores. */
137
+ onCreate?: ((store: (name: string) => IdbObjectStoreLike) => void) | undefined);
138
+ /**
139
+ * This method runs work in one transaction over the object stores of `names`. The promise resolves
140
+ * after the transaction commits, so a write is durable when the promise resolves. An error of a
141
+ * request, a throw of the work and a call of `fail` abort the transaction: each request is undone.
142
+ */
143
+ transaction<R>(mode: "readonly" | "readwrite", names: readonly string[], work: IdbWork<R>): Promise<R>;
144
+ /** This method closes the connection. A later operation throws. */
145
+ close(): Promise<void>;
146
+ private open;
147
+ private connect;
148
+ }
149
+ /** One object store in its own database, version 1. The stores of programs, queues and sync states use it. */
150
+ export declare class IdbStoreConnection {
151
+ /** The name of the database. */
152
+ readonly database: string;
153
+ /** The name of the object store. */
154
+ readonly store: string;
155
+ private readonly connection;
156
+ constructor(
157
+ /** The name of the database. */
158
+ database: string,
84
159
  /** The name of the object store. */
85
160
  store: string, storeOptions: {
86
161
  keyPath?: string;
@@ -94,7 +169,5 @@ export declare class IdbStoreConnection {
94
169
  run<R>(mode: "readonly" | "readwrite", work: (store: IdbObjectStoreLike) => () => R): Promise<R>;
95
170
  /** This method closes the connection. A later operation throws. */
96
171
  close(): Promise<void>;
97
- private open;
98
- private connect;
99
172
  }
100
173
  //# sourceMappingURL=idb.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"idb.d.ts","sourceRoot":"","sources":["../../src/indexeddb/idb.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"idb.d.ts","sourceRoot":"","sources":["../../src/indexeddb/idb.ts"],"names":[],"mappings":"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"}
@@ -21,45 +21,80 @@ function errorOf(cause, message) {
21
21
  return cause instanceof Error ? cause : new Error(message, { cause });
22
22
  }
23
23
  /**
24
- * One object store in its own database, version 1. The connection opens at the first operation,
24
+ * This function calls `then` with the result of the request when the request succeeds. An error of
25
+ * `then` goes to `fail`, which aborts the transaction. Thus a check in a step of a transaction
26
+ * undoes each request of the transaction.
27
+ */
28
+ export function onResult(request, fail, then) {
29
+ request.onsuccess = () => {
30
+ try {
31
+ then(request.result);
32
+ }
33
+ catch (error) {
34
+ fail(error);
35
+ }
36
+ };
37
+ }
38
+ /**
39
+ * One database, version 1, with its object stores. The connection opens at the first operation,
25
40
  * and a failed open tries again at the next operation.
26
41
  */
27
- export class IdbStoreConnection {
42
+ export class IdbConnection {
28
43
  database;
29
- store;
30
- storeOptions;
44
+ stores;
31
45
  factory;
46
+ onCreate;
32
47
  connection;
33
48
  closed = false;
34
49
  constructor(
35
50
  /** The name of the database. */
36
51
  database,
37
- /** The name of the object store. */
38
- store, storeOptions, factory) {
52
+ /** The object stores of the database. */
53
+ stores, factory,
54
+ /** The function that writes the first records when the open makes the object stores. */
55
+ onCreate) {
39
56
  this.database = database;
40
- this.store = store;
41
- this.storeOptions = storeOptions;
57
+ this.stores = stores;
42
58
  this.factory = factory;
59
+ this.onCreate = onCreate;
43
60
  }
44
61
  /**
45
- * This method runs work in one transaction. The work makes the requests, and it gives a function that reads
46
- * their results. The promise resolves after the transaction commits, so a write is durable when
47
- * the promise resolves. An error of a request aborts the transaction: each request is undone.
62
+ * This method runs work in one transaction over the object stores of `names`. The promise resolves
63
+ * after the transaction commits, so a write is durable when the promise resolves. An error of a
64
+ * request, a throw of the work and a call of `fail` abort the transaction: each request is undone.
48
65
  */
49
- async run(mode, work) {
66
+ async transaction(mode, names, work) {
50
67
  const db = await this.open();
51
68
  return new Promise((resolve, reject) => {
52
69
  let transaction;
70
+ let failure;
71
+ const abort = () => {
72
+ try {
73
+ transaction?.abort();
74
+ }
75
+ catch {
76
+ // The transaction ended already
77
+ }
78
+ };
79
+ const fail = (error) => {
80
+ if (failure)
81
+ return;
82
+ failure = { error };
83
+ abort();
84
+ reject(error);
85
+ };
53
86
  let read;
54
87
  try {
55
- transaction = db.transaction(this.store, mode);
56
- read = work(transaction.objectStore(this.store));
88
+ transaction = db.transaction(names.length === 1 ? names[0] : [...names], mode);
89
+ read = work(transaction, fail);
57
90
  }
58
91
  catch (error) {
59
- reject(error);
92
+ // A request that the work made before the throw does not commit
93
+ fail(error);
60
94
  return;
61
95
  }
62
- transaction.oncomplete = () => {
96
+ const current = transaction;
97
+ current.oncomplete = () => {
63
98
  try {
64
99
  resolve(read());
65
100
  }
@@ -67,8 +102,8 @@ export class IdbStoreConnection {
67
102
  reject(error);
68
103
  }
69
104
  };
70
- transaction.onerror = () => reject(errorOf(transaction.error, `The IndexedDB transaction on ${this.database} failed`));
71
- transaction.onabort = () => reject(errorOf(transaction.error, `The IndexedDB transaction on ${this.database} was aborted`));
105
+ current.onerror = (event) => reject(failure ? failure.error : errorOf(event?.target?.error ?? current.error, `The IndexedDB transaction on ${this.database} failed`));
106
+ current.onabort = () => reject(failure ? failure.error : errorOf(current.error, `The IndexedDB transaction on ${this.database} was aborted`));
72
107
  });
73
108
  }
74
109
  /** This method closes the connection. A later operation throws. */
@@ -113,14 +148,30 @@ export class IdbStoreConnection {
113
148
  }
114
149
  request.onupgradeneeded = () => {
115
150
  const db = request.result;
116
- if (!db.objectStoreNames.contains(this.store))
117
- db.createObjectStore(this.store, this.storeOptions);
151
+ const created = new Map();
152
+ for (const schema of this.stores) {
153
+ if (db.objectStoreNames.contains(schema.name))
154
+ continue;
155
+ const store = db.createObjectStore(schema.name, schema.options ?? {});
156
+ for (const index of schema.indexes ?? [])
157
+ store.createIndex(index.name, index.keyPath, { unique: index.unique ?? false });
158
+ created.set(schema.name, store);
159
+ }
160
+ if (this.onCreate && created.size > 0) {
161
+ this.onCreate((name) => {
162
+ const store = created.get(name);
163
+ if (!store)
164
+ throw new Error(`The object store ${name} of ${this.database} existed before the open`);
165
+ return store;
166
+ });
167
+ }
118
168
  };
119
169
  request.onsuccess = () => {
120
170
  const db = request.result;
121
- if (!db.objectStoreNames.contains(this.store)) {
171
+ const missing = this.stores.find((schema) => !db.objectStoreNames.contains(schema.name));
172
+ if (missing) {
122
173
  db.close();
123
- reject(new Error(`The IndexedDB database ${this.database} exists, and it has no object store ${this.store}`));
174
+ reject(new Error(`The IndexedDB database ${this.database} exists, and it has no object store ${missing.name}`));
124
175
  return;
125
176
  }
126
177
  // Another tab wants a new version: close this connection, so the upgrade can run
@@ -134,4 +185,31 @@ export class IdbStoreConnection {
134
185
  });
135
186
  }
136
187
  }
188
+ /** One object store in its own database, version 1. The stores of programs, queues and sync states use it. */
189
+ export class IdbStoreConnection {
190
+ database;
191
+ store;
192
+ connection;
193
+ constructor(
194
+ /** The name of the database. */
195
+ database,
196
+ /** The name of the object store. */
197
+ store, storeOptions, factory) {
198
+ this.database = database;
199
+ this.store = store;
200
+ this.connection = new IdbConnection(database, [{ name: store, options: storeOptions }], factory);
201
+ }
202
+ /**
203
+ * This method runs work in one transaction. The work makes the requests, and it gives a function that reads
204
+ * their results. The promise resolves after the transaction commits, so a write is durable when
205
+ * the promise resolves. An error of a request aborts the transaction: each request is undone.
206
+ */
207
+ run(mode, work) {
208
+ return this.connection.transaction(mode, [this.store], (transaction) => work(transaction.objectStore(this.store)));
209
+ }
210
+ /** This method closes the connection. A later operation throws. */
211
+ close() {
212
+ return this.connection.close();
213
+ }
214
+ }
137
215
  //# sourceMappingURL=idb.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"idb.js","sourceRoot":"","sources":["../../src/indexeddb/idb.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA8DH,sGAAsG;AACtG,SAAS,aAAa;IACpB,OAAQ,UAA6C,CAAC,SAAS,IAAI,SAAS,CAAC;AAC/E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,aAAa,EAAE,KAAK,SAAS,CAAC;AACvC,CAAC;AAED,8DAA8D;AAC9D,SAAS,OAAO,CAAC,KAAc,EAAE,OAAe;IAC9C,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;AACxE,CAAC;AAED;;;GAGG;AACH,MAAM,OAAO,kBAAkB;IAMlB,QAAQ;IAER,KAAK;IACG,YAAY;IACZ,OAAO;IATlB,UAAU,CAAuC;IACjD,MAAM,GAAG,KAAK,CAAC;IAEvB;IACE,gCAAgC;IACvB,QAAgB;IACzB,oCAAoC;IAC3B,KAAa,EACL,YAA2D,EAC3D,OAAmC;wBAJ3C,QAAQ;qBAER,KAAK;4BACG,YAAY;uBACZ,OAAO;IACvB,CAAC;IAEJ;;;;OAIG;IACH,KAAK,CAAC,GAAG,CAAI,IAA8B,EAAE,IAA4C;QACvF,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAC7B,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACxC,IAAI,WAA+B,CAAC;YACpC,IAAI,IAAa,CAAC;YAClB,IAAI,CAAC;gBACH,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBAC/C,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YACnD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,CAAC;gBACd,OAAO;YACT,CAAC;YACD,WAAW,CAAC,UAAU,GAAG,GAAG,EAAE;gBAC5B,IAAI,CAAC;oBACH,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;gBAClB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChB,CAAC;YACH,CAAC,CAAC;YACF,WAAW,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,gCAAgC,IAAI,CAAC,QAAQ,SAAS,CAAC,CAAC,CAAC;YACvH,WAAW,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,gCAAgC,IAAI,CAAC,QAAQ,cAAc,CAAC,CAAC,CAAC;QAC9H,CAAC,CAAC,CAAC;IACL,CAAC;IAED,mEAAmE;IACnE,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,UAAU;YAAE,OAAO;QACxB,IAAI,CAAC;YACH,CAAC,MAAM,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,6CAA6C;QAC/C,CAAC;IACH,CAAC;IAEO,IAAI;QACV,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,uBAAuB,IAAI,CAAC,QAAQ,YAAY,CAAC,CAAC,CAAC;QACpG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;YAC7B,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE;gBACpB,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU;oBAAE,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;YAClE,CAAC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAEO,OAAO;QACb,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,aAAa,EAAE,CAAC;QAChD,IAAI,CAAC,OAAO;YAAE,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC,CAAC;QACjG,OAAO,IAAI,OAAO,CAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACtD,IAAI,OAA2B,CAAC;YAChC,IAAI,CAAC;gBACH,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YAC3C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,CAAC;gBACd,OAAO;YACT,CAAC;YACD,OAAO,CAAC,eAAe,GAAG,GAAG,EAAE;gBAC7B,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;gBAC1B,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;oBAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YACrG,CAAC,CAAC;YACF,OAAO,CAAC,SAAS,GAAG,GAAG,EAAE;gBACvB,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;gBAC1B,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC9C,EAAE,CAAC,KAAK,EAAE,CAAC;oBACX,MAAM,CAAC,IAAI,KAAK,CAAC,0BAA0B,IAAI,CAAC,QAAQ,uCAAuC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;oBAC9G,OAAO;gBACT,CAAC;gBACD,iFAAiF;gBACjF,EAAE,CAAC,eAAe,GAAG,GAAG,EAAE;oBACxB,EAAE,CAAC,KAAK,EAAE,CAAC;oBACX,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;gBAC9B,CAAC,CAAC;gBACF,OAAO,CAAC,EAAE,CAAC,CAAC;YACd,CAAC,CAAC;YACF,OAAO,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,yCAAyC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACnH,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"idb.js","sourceRoot":"","sources":["../../src/indexeddb/idb.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,21 @@
1
1
  /**
2
2
  * The entry `@procedures/store/indexeddb`: the stores of a browser (roadmap R45).
3
3
  *
4
+ * - `IndexedDbStorage` is a collection storage in IndexedDB (roadmap CLI-22). It is the durable
5
+ * local copy of a `HybridStorage` in a browser app without SignalDB.
4
6
  * - `IndexedDbProgramStore` keeps programs in IndexedDB.
5
7
  * - `IndexedDbQueueStore` keeps the queue of a `HybridStorage` in IndexedDB.
6
8
  * - `IndexedDbSyncStateStore` keeps the sync state of a `HybridStorage` in IndexedDB: the cursor
7
9
  * and the base versions (roadmap CLI-21).
8
10
  * - `MemoryProgramStore`, `MemoryQueueStore` and `MemorySyncStateStore` are the fallbacks for a
9
- * browser without IndexedDB. `hasIndexedDb()` tells which one to use.
11
+ * browser without IndexedDB. `hasIndexedDb()` tells which one to use. `InMemoryStorage` of
12
+ * `@procedures/collections` is the fallback of `IndexedDbStorage`.
10
13
  *
11
- * The package root does not import this entry, and this entry does not import the client or zod:
12
- * a page that loads it gets only these stores.
14
+ * The package root does not import this entry. This entry does not import the root of the client or
15
+ * zod: a page that loads it gets only these stores. It imports `@procedures/client/query`, a module
16
+ * without imports, and `@procedures/collections` (the contract of the storages and its listeners).
13
17
  */
18
+ export { IndexedDbStorage, type IndexedDbStorageOptions } from "./indexeddb/document-storage.js";
14
19
  export { IndexedDbProgramStore, DEFAULT_PROGRAM_DATABASE } from "./indexeddb/program-store.js";
15
20
  export { IndexedDbQueueStore } from "./indexeddb/queue-store.js";
16
21
  export { IndexedDbSyncStateStore } from "./indexeddb/sync-state-store.js";
@@ -1 +1 @@
1
- {"version":3,"file":"indexeddb.d.ts","sourceRoot":"","sources":["../src/indexeddb.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAC/F,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,KAAK,cAAc,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC9F,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC1F,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC5E,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"indexeddb.d.ts","sourceRoot":"","sources":["../src/indexeddb.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,gBAAgB,EAAE,KAAK,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AACjG,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAC/F,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,KAAK,cAAc,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC9F,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC1F,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC5E,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC"}
package/dist/indexeddb.js CHANGED
@@ -1,16 +1,21 @@
1
1
  /**
2
2
  * The entry `@procedures/store/indexeddb`: the stores of a browser (roadmap R45).
3
3
  *
4
+ * - `IndexedDbStorage` is a collection storage in IndexedDB (roadmap CLI-22). It is the durable
5
+ * local copy of a `HybridStorage` in a browser app without SignalDB.
4
6
  * - `IndexedDbProgramStore` keeps programs in IndexedDB.
5
7
  * - `IndexedDbQueueStore` keeps the queue of a `HybridStorage` in IndexedDB.
6
8
  * - `IndexedDbSyncStateStore` keeps the sync state of a `HybridStorage` in IndexedDB: the cursor
7
9
  * and the base versions (roadmap CLI-21).
8
10
  * - `MemoryProgramStore`, `MemoryQueueStore` and `MemorySyncStateStore` are the fallbacks for a
9
- * browser without IndexedDB. `hasIndexedDb()` tells which one to use.
11
+ * browser without IndexedDB. `hasIndexedDb()` tells which one to use. `InMemoryStorage` of
12
+ * `@procedures/collections` is the fallback of `IndexedDbStorage`.
10
13
  *
11
- * The package root does not import this entry, and this entry does not import the client or zod:
12
- * a page that loads it gets only these stores.
14
+ * The package root does not import this entry. This entry does not import the root of the client or
15
+ * zod: a page that loads it gets only these stores. It imports `@procedures/client/query`, a module
16
+ * without imports, and `@procedures/collections` (the contract of the storages and its listeners).
13
17
  */
18
+ export { IndexedDbStorage } from "./indexeddb/document-storage.js";
14
19
  export { IndexedDbProgramStore, DEFAULT_PROGRAM_DATABASE } from "./indexeddb/program-store.js";
15
20
  export { IndexedDbQueueStore } from "./indexeddb/queue-store.js";
16
21
  export { IndexedDbSyncStateStore } from "./indexeddb/sync-state-store.js";
@@ -1 +1 @@
1
- {"version":3,"file":"indexeddb.js","sourceRoot":"","sources":["../src/indexeddb.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAC/F,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,YAAY,EAA8C,MAAM,oBAAoB,CAAC;AAC9F,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"indexeddb.js","sourceRoot":"","sources":["../src/indexeddb.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,gBAAgB,EAAgC,MAAM,iCAAiC,CAAC;AACjG,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAC/F,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,YAAY,EAA8C,MAAM,oBAAoB,CAAC;AAC9F,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -764,6 +764,15 @@ export declare class HybridStorage<T> implements CollectionStorage<T> {
764
764
  * `local-only` mode, it sends nothing: the queue waits for a remote mode.
765
765
  */
766
766
  flush(): Promise<void>;
767
+ /**
768
+ * This method resolves when the queue store holds the operations that the queue has at the call
769
+ * (roadmap CLI-25): the loaded queue, the captured changes and the queued writes. It sends
770
+ * nothing to the remote. A failed write of the store resolves it too, and the status keeps the
771
+ * failure. A `TabCoordinator` acknowledges the batches of another tab after it.
772
+ *
773
+ * @throws The error of the load, when the storage could not load its queue
774
+ */
775
+ whenQueued(): Promise<void>;
767
776
  /**
768
777
  * Force a full sync (both directions).
769
778
  */
@@ -1 +1 @@
1
- {"version":3,"file":"hybrid.d.ts","sourceRoot":"","sources":["../../src/storage/hybrid.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hybrid.d.ts","sourceRoot":"","sources":["../../src/storage/hybrid.ts"],"names":[],"mappings":"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"}
@@ -1669,6 +1669,20 @@ export class HybridStorage {
1669
1669
  flush() {
1670
1670
  return this.syncToRemote();
1671
1671
  }
1672
+ /**
1673
+ * This method resolves when the queue store holds the operations that the queue has at the call
1674
+ * (roadmap CLI-25): the loaded queue, the captured changes and the queued writes. It sends
1675
+ * nothing to the remote. A failed write of the store resolves it too, and the status keeps the
1676
+ * failure. A `TabCoordinator` acknowledges the batches of another tab after it.
1677
+ *
1678
+ * @throws The error of the load, when the storage could not load its queue
1679
+ */
1680
+ async whenQueued() {
1681
+ await this.loaded;
1682
+ if (this.loadError)
1683
+ throw this.loadError;
1684
+ await this.storeChain;
1685
+ }
1672
1686
  /**
1673
1687
  * Force a full sync (both directions).
1674
1688
  */