cojson-storage-indexeddb 0.19.18 → 0.19.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
1
 
2
- > cojson-storage-indexeddb@0.19.18 build /home/runner/_work/jazz/jazz/packages/cojson-storage-indexeddb
2
+ > cojson-storage-indexeddb@0.19.20 build /home/runner/_work/jazz/jazz/packages/cojson-storage-indexeddb
3
3
  > rm -rf ./dist && tsc --sourceMap --outDir dist
4
4
 
package/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # cojson-storage-indexeddb
2
2
 
3
+ ## 0.19.19
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [83f84ca]
8
+ - cojson@0.19.19
9
+
3
10
  ## 0.19.18
4
11
 
5
12
  ### Patch Changes
@@ -1,6 +1,12 @@
1
- export type StoreName = "coValues" | "sessions" | "transactions" | "signatureAfter";
1
+ export type StoreName = "coValues" | "sessions" | "transactions" | "signatureAfter" | "unsyncedCoValues";
2
+ /**
3
+ * An access unit for the IndexedDB Jazz database.
4
+ * It's a wrapper around the IDBTransaction object that helps on batching multiple operations
5
+ * in a single transaction.
6
+ */
2
7
  export declare class CoJsonIDBTransaction {
3
8
  db: IDBDatabase;
9
+ private storeNames;
4
10
  tx: IDBTransaction;
5
11
  pendingRequests: ((txEntry: this) => void)[];
6
12
  rejectHandlers: (() => void)[];
@@ -8,11 +14,9 @@ export declare class CoJsonIDBTransaction {
8
14
  running: boolean;
9
15
  failed: boolean;
10
16
  done: boolean;
11
- constructor(db: IDBDatabase);
17
+ constructor(db: IDBDatabase, storeNames?: StoreName[]);
12
18
  refresh(): void;
13
19
  rollback(): void;
14
- startedAt: number;
15
- isReusable(): boolean;
16
20
  getObjectStore(name: StoreName): IDBObjectStore;
17
21
  private pushRequest;
18
22
  handleRequest<T>(handler: (txEntry: this) => IDBRequest<T>): Promise<T>;
@@ -1 +1 @@
1
- {"version":3,"file":"CoJsonIDBTransaction.d.ts","sourceRoot":"","sources":["../src/CoJsonIDBTransaction.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GACjB,UAAU,GACV,UAAU,GACV,cAAc,GACd,gBAAgB,CAAC;AAKrB,qBAAa,oBAAoB;IAC/B,EAAE,EAAE,WAAW,CAAC;IACR,EAAE,EAAE,cAAc,CAAC;IAE3B,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,KAAK,IAAI,CAAC,EAAE,CAAM;IAClD,cAAc,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,CAAM;IAEpC,EAAE,SAAiB;IAEnB,OAAO,UAAS;IAChB,MAAM,UAAS;IACf,IAAI,UAAS;gBAED,EAAE,EAAE,WAAW;IAM3B,OAAO;IAcP,QAAQ;IAIR,SAAS,SAAqB;IAC9B,UAAU;IAKV,cAAc,CAAC,IAAI,EAAE,SAAS;IAS9B,OAAO,CAAC,WAAW;IAgCnB,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC;IAyB1D,MAAM;CAKP;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EACnC,EAAE,EAAE,WAAW,EACf,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,UAAU,CAAC,CAAC,CAAC,cAenD;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,CAAC,SAAS,WAAW,EACxD,EAAE,EAAE,WAAW,EACf,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,CAAC,cAeT"}
1
+ {"version":3,"file":"CoJsonIDBTransaction.d.ts","sourceRoot":"","sources":["../src/CoJsonIDBTransaction.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GACjB,UAAU,GACV,UAAU,GACV,cAAc,GACd,gBAAgB,GAChB,kBAAkB,CAAC;AASvB;;;;GAIG;AACH,qBAAa,oBAAoB;IAatB,EAAE,EAAE,WAAW;IAEtB,OAAO,CAAC,UAAU;IAdZ,EAAE,EAAE,cAAc,CAAC;IAE3B,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,KAAK,IAAI,CAAC,EAAE,CAAM;IAClD,cAAc,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,CAAM;IAEpC,EAAE,SAAiB;IAEnB,OAAO,UAAS;IAChB,MAAM,UAAS;IACf,IAAI,UAAS;gBAGJ,EAAE,EAAE,WAAW,EAEd,UAAU,GAAE,SAAS,EAAsB;IAKrD,OAAO;IAWP,QAAQ;IAIR,cAAc,CAAC,IAAI,EAAE,SAAS;IAS9B,OAAO,CAAC,WAAW;IAgCnB,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC;IAyB1D,MAAM;CAKP;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EACnC,EAAE,EAAE,WAAW,EACf,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,UAAU,CAAC,CAAC,CAAC,cAenD;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,CAAC,SAAS,WAAW,EACxD,EAAE,EAAE,WAAW,EACf,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,CAAC,cAeT"}
@@ -1,20 +1,30 @@
1
- // A access unit for the IndexedDB Jazz database
2
- // It's a wrapper around the IDBTransaction object that helps on batching multiple operations
3
- // in a single transaction.
1
+ const DEFAULT_TX_STORES = [
2
+ "coValues",
3
+ "sessions",
4
+ "transactions",
5
+ "signatureAfter",
6
+ ];
7
+ /**
8
+ * An access unit for the IndexedDB Jazz database.
9
+ * It's a wrapper around the IDBTransaction object that helps on batching multiple operations
10
+ * in a single transaction.
11
+ */
4
12
  export class CoJsonIDBTransaction {
5
- constructor(db) {
13
+ constructor(db,
14
+ // The object stores this transaction will operate on
15
+ storeNames = DEFAULT_TX_STORES) {
16
+ this.db = db;
17
+ this.storeNames = storeNames;
6
18
  this.pendingRequests = [];
7
19
  this.rejectHandlers = [];
8
20
  this.id = Math.random();
9
21
  this.running = false;
10
22
  this.failed = false;
11
23
  this.done = false;
12
- this.startedAt = performance.now();
13
- this.db = db;
14
24
  this.refresh();
15
25
  }
16
26
  refresh() {
17
- this.tx = this.db.transaction(["coValues", "sessions", "transactions", "signatureAfter"], "readwrite");
27
+ this.tx = this.db.transaction(this.storeNames, "readwrite");
18
28
  this.tx.oncomplete = () => {
19
29
  this.done = true;
20
30
  };
@@ -25,10 +35,6 @@ export class CoJsonIDBTransaction {
25
35
  rollback() {
26
36
  this.tx.abort();
27
37
  }
28
- isReusable() {
29
- const delta = performance.now() - this.startedAt;
30
- return !this.done && !this.failed && delta <= 100;
31
- }
32
38
  getObjectStore(name) {
33
39
  try {
34
40
  return this.tx.objectStore(name);
@@ -1 +1 @@
1
- {"version":3,"file":"CoJsonIDBTransaction.js","sourceRoot":"","sources":["../src/CoJsonIDBTransaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CoJsonIDBTransaction.js","sourceRoot":"","sources":["../src/CoJsonIDBTransaction.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import type { CojsonInternalTypes, RawCoID, SessionID, DBTransactionInterfaceAsync } from "cojson";
2
2
  import type { DBClientInterfaceAsync, SessionRow, SignatureAfterRow, StoredCoValueRow, StoredSessionRow, TransactionRow } from "cojson";
3
- import { CoJsonIDBTransaction } from "./CoJsonIDBTransaction.js";
3
+ import { CoJsonIDBTransaction, StoreName } from "./CoJsonIDBTransaction.js";
4
4
  export declare class IDBTransaction implements DBTransactionInterfaceAsync {
5
5
  private tx;
6
6
  constructor(tx: CoJsonIDBTransaction);
7
- run<T>(handler: (txEntry: CoJsonIDBTransaction) => IDBRequest<T>): Promise<T>;
7
+ private run;
8
8
  getSingleCoValueSession(coValueRowId: number, sessionID: SessionID): Promise<StoredSessionRow | undefined>;
9
9
  addSessionUpdate({ sessionUpdate, sessionRow, }: {
10
10
  sessionUpdate: SessionRow;
@@ -16,6 +16,34 @@ export declare class IDBTransaction implements DBTransactionInterfaceAsync {
16
16
  idx: number;
17
17
  signature: CojsonInternalTypes.Signature;
18
18
  }): Promise<IDBValidKey>;
19
+ /**
20
+ * Get an unsynced CoValue record by coValueId and peerId.
21
+ */
22
+ getUnsyncedCoValueRecord(coValueId: RawCoID, peerId: string): Promise<{
23
+ rowID: number;
24
+ coValueId: RawCoID;
25
+ peerId: string;
26
+ } | undefined>;
27
+ /**
28
+ * Get all unsynced CoValue records for a given coValueId.
29
+ */
30
+ getAllUnsyncedCoValueRecords(coValueId: RawCoID): Promise<{
31
+ rowID: number;
32
+ coValueId: RawCoID;
33
+ peerId: string;
34
+ }[]>;
35
+ /**
36
+ * Delete an unsynced CoValue record by rowID.
37
+ */
38
+ deleteUnsyncedCoValueRecord(rowID: number): Promise<void>;
39
+ /**
40
+ * Insert or update an unsynced CoValue record.
41
+ */
42
+ putUnsyncedCoValueRecord(record: {
43
+ rowID?: number;
44
+ coValueId: RawCoID;
45
+ peerId: string;
46
+ }): Promise<void>;
19
47
  }
20
48
  export declare class IDBClient implements DBClientInterfaceAsync {
21
49
  private db;
@@ -28,6 +56,13 @@ export declare class IDBClient implements DBClientInterfaceAsync {
28
56
  getNewTransactionInSession(sessionRowId: number, fromIdx: number, toIdx: number): Promise<TransactionRow[]>;
29
57
  getSignatures(sessionRowId: number, firstNewTxIdx: number): Promise<SignatureAfterRow[]>;
30
58
  upsertCoValue(id: RawCoID, header?: CojsonInternalTypes.CoValueHeader): Promise<number | undefined>;
31
- transaction(operationsCallback: (tx: DBTransactionInterfaceAsync) => Promise<unknown>): Promise<void>;
59
+ transaction(operationsCallback: (tx: DBTransactionInterfaceAsync) => Promise<unknown>, storeNames?: StoreName[]): Promise<void>;
60
+ trackCoValuesSyncState(updates: {
61
+ id: RawCoID;
62
+ peerId: string;
63
+ synced: boolean;
64
+ }[]): Promise<void>;
65
+ getUnsyncedCoValueIDs(): Promise<RawCoID[]>;
66
+ stopTrackingSyncState(id: RawCoID): Promise<void>;
32
67
  }
33
68
  //# sourceMappingURL=idbClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"idbClient.d.ts","sourceRoot":"","sources":["../src/idbClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,OAAO,EACP,SAAS,EACT,2BAA2B,EAC5B,MAAM,QAAQ,CAAC;AAChB,OAAO,KAAK,EAEV,sBAAsB,EACtB,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACf,MAAM,QAAQ,CAAC;AAChB,OAAO,EACL,oBAAoB,EAGrB,MAAM,2BAA2B,CAAC;AAEnC,qBAAa,cAAe,YAAW,2BAA2B;IACpD,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,oBAAoB;IAE5C,GAAG,CAAC,CAAC,EACH,OAAO,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,UAAU,CAAC,CAAC,CAAC,GACxD,OAAO,CAAC,CAAC,CAAC;IAIP,uBAAuB,CAC3B,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IASlC,gBAAgB,CAAC,EACrB,aAAa,EACb,UAAU,GACX,EAAE;QACD,aAAa,EAAE,UAAU,CAAC;QAC1B,UAAU,CAAC,EAAE,gBAAgB,CAAC;KAC/B,GAAG,OAAO,CAAC,MAAM,CAAC;IAcb,cAAc,CAClB,YAAY,EAAE,MAAM,EACpB,GAAG,EAAE,MAAM,EACX,cAAc,EAAE,mBAAmB,CAAC,WAAW;IAW3C,iBAAiB,CAAC,EACtB,YAAY,EACZ,GAAG,EACH,SAAS,GACV,EAAE;QACD,YAAY,EAAE,MAAM,CAAC;QACrB,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,EAAE,mBAAmB,CAAC,SAAS,CAAC;KAC1C;CASF;AAED,qBAAa,SAAU,YAAW,sBAAsB;IACtD,OAAO,CAAC,EAAE,CAAC;IAEX,iBAAiB,EAAE,oBAAoB,GAAG,SAAS,CAAC;IACpD,uBAAuB,EAAE,oBAAoB,GAAG,SAAS,CAAC;gBAE9C,EAAE,EAAE,WAAW;IAIrB,UAAU,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAMrE,eAAe,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAIhE,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAMrE,0BAA0B,CAC9B,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,cAAc,EAAE,CAAC;IAQtB,aAAa,CACjB,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAWzB,aAAa,CACjB,EAAE,EAAE,OAAO,EACX,MAAM,CAAC,EAAE,mBAAmB,CAAC,aAAa,GACzC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAWxB,WAAW,CACf,kBAAkB,EAAE,CAAC,EAAE,EAAE,2BAA2B,KAAK,OAAO,CAAC,OAAO,CAAC;CAW5E"}
1
+ {"version":3,"file":"idbClient.d.ts","sourceRoot":"","sources":["../src/idbClient.ts"],"names":[],"mappings":"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"}
package/dist/idbClient.js CHANGED
@@ -3,7 +3,7 @@ export class IDBTransaction {
3
3
  constructor(tx) {
4
4
  this.tx = tx;
5
5
  }
6
- run(handler) {
6
+ async run(handler) {
7
7
  return this.tx.handleRequest(handler);
8
8
  }
9
9
  async getSingleCoValueSession(coValueRowId, sessionID) {
@@ -34,6 +34,36 @@ export class IDBTransaction {
34
34
  signature,
35
35
  }));
36
36
  }
37
+ /**
38
+ * Get an unsynced CoValue record by coValueId and peerId.
39
+ */
40
+ async getUnsyncedCoValueRecord(coValueId, peerId) {
41
+ return this.run((tx) => tx
42
+ .getObjectStore("unsyncedCoValues")
43
+ .index("uniqueUnsyncedCoValues")
44
+ .get([coValueId, peerId]));
45
+ }
46
+ /**
47
+ * Get all unsynced CoValue records for a given coValueId.
48
+ */
49
+ async getAllUnsyncedCoValueRecords(coValueId) {
50
+ return this.run((tx) => tx
51
+ .getObjectStore("unsyncedCoValues")
52
+ .index("byCoValueId")
53
+ .getAll(coValueId));
54
+ }
55
+ /**
56
+ * Delete an unsynced CoValue record by rowID.
57
+ */
58
+ async deleteUnsyncedCoValueRecord(rowID) {
59
+ await this.run((tx) => tx.getObjectStore("unsyncedCoValues").delete(rowID));
60
+ }
61
+ /**
62
+ * Insert or update an unsynced CoValue record.
63
+ */
64
+ async putUnsyncedCoValueRecord(record) {
65
+ await this.run((tx) => tx.getObjectStore("unsyncedCoValues").put(record));
66
+ }
37
67
  }
38
68
  export class IDBClient {
39
69
  constructor(db) {
@@ -63,8 +93,8 @@ export class IDBClient {
63
93
  header,
64
94
  }).catch(() => this.getCoValueRowID(id));
65
95
  }
66
- async transaction(operationsCallback) {
67
- const tx = new CoJsonIDBTransaction(this.db);
96
+ async transaction(operationsCallback, storeNames) {
97
+ const tx = new CoJsonIDBTransaction(this.db, storeNames);
68
98
  try {
69
99
  await operationsCallback(new IDBTransaction(tx));
70
100
  tx.commit(); // Tells the browser to not wait for another possible request and commit the transaction immediately
@@ -73,5 +103,50 @@ export class IDBClient {
73
103
  tx.rollback();
74
104
  }
75
105
  }
106
+ async trackCoValuesSyncState(updates) {
107
+ if (updates.length === 0) {
108
+ return;
109
+ }
110
+ await this.transaction(async (tx) => {
111
+ const idbTx = tx;
112
+ await Promise.all(updates.map(async (update) => {
113
+ const record = await idbTx.getUnsyncedCoValueRecord(update.id, update.peerId);
114
+ if (update.synced) {
115
+ // Delete
116
+ if (record) {
117
+ await idbTx.deleteUnsyncedCoValueRecord(record.rowID);
118
+ }
119
+ }
120
+ else {
121
+ // Insert or update
122
+ await idbTx.putUnsyncedCoValueRecord(record
123
+ ? {
124
+ rowID: record.rowID,
125
+ coValueId: update.id,
126
+ peerId: update.peerId,
127
+ }
128
+ : {
129
+ coValueId: update.id,
130
+ peerId: update.peerId,
131
+ });
132
+ }
133
+ }));
134
+ }, ["unsyncedCoValues"]);
135
+ }
136
+ async getUnsyncedCoValueIDs() {
137
+ const records = await queryIndexedDbStore(this.db, "unsyncedCoValues", (store) => store.getAll());
138
+ const uniqueIds = new Set();
139
+ for (const record of records) {
140
+ uniqueIds.add(record.coValueId);
141
+ }
142
+ return Array.from(uniqueIds);
143
+ }
144
+ async stopTrackingSyncState(id) {
145
+ await this.transaction(async (tx) => {
146
+ const idbTx = tx;
147
+ const records = await idbTx.getAllUnsyncedCoValueRecords(id);
148
+ await Promise.all(records.map((record) => idbTx.deleteUnsyncedCoValueRecord(record.rowID)));
149
+ }, ["unsyncedCoValues"]);
150
+ }
76
151
  }
77
152
  //# sourceMappingURL=idbClient.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"idbClient.js","sourceRoot":"","sources":["../src/idbClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"idbClient.js","sourceRoot":"","sources":["../src/idbClient.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"idbNode.d.ts","sourceRoot":"","sources":["../src/idbNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAKzC,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,QAEpD;AAED,wBAAsB,mBAAmB,CAAC,IAAI,SAAgB,4BA8C7D"}
1
+ {"version":3,"file":"idbNode.d.ts","sourceRoot":"","sources":["../src/idbNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAKzC,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,QAEpD;AAED,wBAAsB,mBAAmB,CAAC,IAAI,SAAgB,4BA4D7D"}
package/dist/idbNode.js CHANGED
@@ -6,7 +6,7 @@ export function internal_setDatabaseName(name) {
6
6
  }
7
7
  export async function getIndexedDBStorage(name = DATABASE_NAME) {
8
8
  const dbPromise = new Promise((resolve, reject) => {
9
- const request = indexedDB.open(name, 4);
9
+ const request = indexedDB.open(name, 5);
10
10
  request.onerror = () => {
11
11
  reject(request.error);
12
12
  };
@@ -40,6 +40,16 @@ export async function getIndexedDBStorage(name = DATABASE_NAME) {
40
40
  keyPath: ["ses", "idx"],
41
41
  });
42
42
  }
43
+ if (ev.oldVersion <= 4) {
44
+ const unsyncedCoValues = db.createObjectStore("unsyncedCoValues", {
45
+ autoIncrement: true,
46
+ keyPath: "rowID",
47
+ });
48
+ unsyncedCoValues.createIndex("byCoValueId", "coValueId");
49
+ unsyncedCoValues.createIndex("uniqueUnsyncedCoValues", ["coValueId", "peerId"], {
50
+ unique: true,
51
+ });
52
+ }
43
53
  };
44
54
  });
45
55
  const db = await dbPromise;
@@ -1 +1 @@
1
- {"version":3,"file":"idbNode.js","sourceRoot":"","sources":["../src/idbNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,IAAI,aAAa,GAAG,cAAc,CAAC;AAEnC,MAAM,UAAU,wBAAwB,CAAC,IAAY;IACnD,aAAa,GAAG,IAAI,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAAI,GAAG,aAAa;IAC5D,MAAM,SAAS,GAAG,IAAI,OAAO,CAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC7D,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACxC,OAAO,CAAC,OAAO,GAAG,GAAG,EAAE;YACrB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC,CAAC;QACF,OAAO,CAAC,SAAS,GAAG,GAAG,EAAE;YACvB,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC,CAAC;QACF,OAAO,CAAC,eAAe,GAAG,KAAK,EAAE,EAAE,EAAE,EAAE;YACrC,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;YAC1B,IAAI,EAAE,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;gBACxB,MAAM,QAAQ,GAAG,EAAE,CAAC,iBAAiB,CAAC,UAAU,EAAE;oBAChD,aAAa,EAAE,IAAI;oBACnB,OAAO,EAAE,OAAO;iBACjB,CAAC,CAAC;gBAEH,QAAQ,CAAC,WAAW,CAAC,cAAc,EAAE,IAAI,EAAE;oBACzC,MAAM,EAAE,IAAI;iBACb,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,EAAE,CAAC,iBAAiB,CAAC,UAAU,EAAE;oBAChD,aAAa,EAAE,IAAI;oBACnB,OAAO,EAAE,OAAO;iBACjB,CAAC,CAAC;gBAEH,QAAQ,CAAC,WAAW,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC;gBACrD,QAAQ,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE;oBAC/D,MAAM,EAAE,IAAI;iBACb,CAAC,CAAC;gBAEH,EAAE,CAAC,iBAAiB,CAAC,cAAc,EAAE;oBACnC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;iBACxB,CAAC,CAAC;YACL,CAAC;YACD,IAAI,EAAE,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC;gBACvB,EAAE,CAAC,iBAAiB,CAAC,gBAAgB,EAAE;oBACrC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;iBACxB,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC;IAE3B,OAAO,IAAI,eAAe,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"idbNode.js","sourceRoot":"","sources":["../src/idbNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,IAAI,aAAa,GAAG,cAAc,CAAC;AAEnC,MAAM,UAAU,wBAAwB,CAAC,IAAY;IACnD,aAAa,GAAG,IAAI,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAAI,GAAG,aAAa;IAC5D,MAAM,SAAS,GAAG,IAAI,OAAO,CAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC7D,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACxC,OAAO,CAAC,OAAO,GAAG,GAAG,EAAE;YACrB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC,CAAC;QACF,OAAO,CAAC,SAAS,GAAG,GAAG,EAAE;YACvB,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC,CAAC;QACF,OAAO,CAAC,eAAe,GAAG,KAAK,EAAE,EAAE,EAAE,EAAE;YACrC,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;YAC1B,IAAI,EAAE,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;gBACxB,MAAM,QAAQ,GAAG,EAAE,CAAC,iBAAiB,CAAC,UAAU,EAAE;oBAChD,aAAa,EAAE,IAAI;oBACnB,OAAO,EAAE,OAAO;iBACjB,CAAC,CAAC;gBAEH,QAAQ,CAAC,WAAW,CAAC,cAAc,EAAE,IAAI,EAAE;oBACzC,MAAM,EAAE,IAAI;iBACb,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,EAAE,CAAC,iBAAiB,CAAC,UAAU,EAAE;oBAChD,aAAa,EAAE,IAAI;oBACnB,OAAO,EAAE,OAAO;iBACjB,CAAC,CAAC;gBAEH,QAAQ,CAAC,WAAW,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC;gBACrD,QAAQ,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE;oBAC/D,MAAM,EAAE,IAAI;iBACb,CAAC,CAAC;gBAEH,EAAE,CAAC,iBAAiB,CAAC,cAAc,EAAE;oBACnC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;iBACxB,CAAC,CAAC;YACL,CAAC;YACD,IAAI,EAAE,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC;gBACvB,EAAE,CAAC,iBAAiB,CAAC,gBAAgB,EAAE;oBACrC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;iBACxB,CAAC,CAAC;YACL,CAAC;YACD,IAAI,EAAE,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC;gBACvB,MAAM,gBAAgB,GAAG,EAAE,CAAC,iBAAiB,CAAC,kBAAkB,EAAE;oBAChE,aAAa,EAAE,IAAI;oBACnB,OAAO,EAAE,OAAO;iBACjB,CAAC,CAAC;gBACH,gBAAgB,CAAC,WAAW,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;gBACzD,gBAAgB,CAAC,WAAW,CAC1B,wBAAwB,EACxB,CAAC,WAAW,EAAE,QAAQ,CAAC,EACvB;oBACE,MAAM,EAAE,IAAI;iBACb,CACF,CAAC;YACJ,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC;IAE3B,OAAO,IAAI,eAAe,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;AAChD,CAAC"}
@@ -18,6 +18,13 @@ describe("CoJsonIDBTransaction", () => {
18
18
  });
19
19
  db.createObjectStore("transactions", { keyPath: "id" });
20
20
  db.createObjectStore("signatureAfter", { keyPath: "id" });
21
+ const unsyncedCoValues = db.createObjectStore("unsyncedCoValues", {
22
+ keyPath: "rowID",
23
+ });
24
+ unsyncedCoValues.createIndex("byCoValueId", "coValueId");
25
+ unsyncedCoValues.createIndex("uniqueUnsyncedCoValues", ["coValueId", "peerId"], {
26
+ unique: true,
27
+ });
21
28
  };
22
29
  request.onsuccess = () => {
23
30
  db = request.result;
@@ -121,5 +128,47 @@ describe("CoJsonIDBTransaction", () => {
121
128
  }))).rejects.toThrow();
122
129
  expect(badTx.failed).toBe(true);
123
130
  });
131
+ test("transaction with custom stores only includes specified stores", async () => {
132
+ const tx = new CoJsonIDBTransaction(db, ["coValues", "sessions"]);
133
+ // Should work with included stores
134
+ await tx.handleRequest((tx) => tx.getObjectStore("coValues").put({
135
+ id: "test1",
136
+ value: "hello",
137
+ }));
138
+ await tx.handleRequest((tx) => tx.getObjectStore("sessions").put({
139
+ id: "session1",
140
+ data: "session data",
141
+ }));
142
+ // Should fail when trying to access a store not included in transaction
143
+ await expect(tx.handleRequest((tx) => tx.getObjectStore("transactions").put({
144
+ id: "tx1",
145
+ data: "tx data",
146
+ }))).rejects.toThrow("Failed to execute 'objectStore' on 'IDBTransaction': The specified object store was not found.");
147
+ });
148
+ test("if no custom stores are provided, transaction uses default stores", async () => {
149
+ const tx = new CoJsonIDBTransaction(db);
150
+ await tx.handleRequest((tx) => tx.getObjectStore("coValues").put({
151
+ id: "test1",
152
+ value: "hello",
153
+ }));
154
+ await tx.handleRequest((tx) => tx.getObjectStore("sessions").put({
155
+ id: "session1",
156
+ data: "session data",
157
+ }));
158
+ await tx.handleRequest((tx) => tx.getObjectStore("transactions").put({
159
+ id: "tx1",
160
+ data: "tx data",
161
+ }));
162
+ await tx.handleRequest((tx) => tx.getObjectStore("signatureAfter").put({
163
+ id: "sig1",
164
+ data: "sig data",
165
+ }));
166
+ // Should fail when trying to access unsyncedCoValues (not in default)
167
+ await expect(tx.handleRequest((tx) => tx.getObjectStore("unsyncedCoValues").put({
168
+ rowID: 1,
169
+ coValueId: "coValue1",
170
+ peerId: "peer1",
171
+ }))).rejects.toThrow("Failed to execute 'objectStore' on 'IDBTransaction': The specified object store was not found.");
172
+ });
124
173
  });
125
174
  //# sourceMappingURL=CoJsonIDBTransaction.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CoJsonIDBTransaction.test.js","sourceRoot":"","sources":["../../src/tests/CoJsonIDBTransaction.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CoJsonIDBTransaction.test.js","sourceRoot":"","sources":["../../src/tests/CoJsonIDBTransaction.test.ts"],"names":[],"mappings":"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"}