@interncom/diplomatic 0.0.12 → 0.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/idbStore.d.ts +1 -0
- package/dist/index.mjs +52 -14
- package/dist/localStorageStore.d.ts +1 -0
- package/dist/memoryStore.d.ts +1 -0
- package/dist/types.d.ts +1 -1
- package/package.json +1 -1
package/dist/idbStore.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ declare class IDBStore implements IClientStateStore {
|
|
|
3
3
|
seed?: Uint8Array;
|
|
4
4
|
hostURL?: string;
|
|
5
5
|
hostID?: string;
|
|
6
|
+
wipe(): Promise<void>;
|
|
6
7
|
getSeed(): Promise<Uint8Array | undefined>;
|
|
7
8
|
setSeed(seed: Uint8Array): Promise<void>;
|
|
8
9
|
getHostURL(): Promise<string | undefined>;
|
package/dist/index.mjs
CHANGED
|
@@ -101,6 +101,9 @@ var seedKey = "seedHex";
|
|
|
101
101
|
var hostURLKey = "hostURL";
|
|
102
102
|
var hostIDKey = "hostID";
|
|
103
103
|
var LocalStorageStore = class {
|
|
104
|
+
async wipe() {
|
|
105
|
+
localStorage.clear();
|
|
106
|
+
}
|
|
104
107
|
async getSeed() {
|
|
105
108
|
const storedSeed = localStorage.getItem(seedKey);
|
|
106
109
|
if (storedSeed) {
|
|
@@ -300,6 +303,17 @@ function openDB(name, version, { blocked, upgrade, blocking, terminated } = {})
|
|
|
300
303
|
});
|
|
301
304
|
return openPromise;
|
|
302
305
|
}
|
|
306
|
+
function deleteDB(name, { blocked } = {}) {
|
|
307
|
+
const request = indexedDB.deleteDatabase(name);
|
|
308
|
+
if (blocked) {
|
|
309
|
+
request.addEventListener("blocked", (event) => blocked(
|
|
310
|
+
// Casting due to https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/1405
|
|
311
|
+
event.oldVersion,
|
|
312
|
+
event
|
|
313
|
+
));
|
|
314
|
+
}
|
|
315
|
+
return wrap(request).then(() => void 0);
|
|
316
|
+
}
|
|
303
317
|
var readMethods = ["get", "getKey", "getAll", "getAllKeys", "count"];
|
|
304
318
|
var writeMethods = ["put", "add", "delete", "clear"];
|
|
305
319
|
var cachedMethods = /* @__PURE__ */ new Map();
|
|
@@ -389,14 +403,24 @@ replaceTraps((oldTraps) => ({
|
|
|
389
403
|
var dbPromise = openDB("client-store-db", 1, {
|
|
390
404
|
upgrade(db) {
|
|
391
405
|
db.createObjectStore("metaKV");
|
|
406
|
+
db.createObjectStore("uploadQueue", {
|
|
407
|
+
keyPath: "sha256"
|
|
408
|
+
});
|
|
409
|
+
db.createObjectStore("downloadQueue", {
|
|
410
|
+
keyPath: "path"
|
|
411
|
+
});
|
|
392
412
|
}
|
|
393
413
|
});
|
|
394
414
|
var IDBStore = class {
|
|
395
415
|
seed;
|
|
396
416
|
hostURL;
|
|
397
417
|
hostID;
|
|
418
|
+
async wipe() {
|
|
419
|
+
await deleteDB("client-store-db");
|
|
420
|
+
}
|
|
398
421
|
async getSeed() {
|
|
399
|
-
const
|
|
422
|
+
const db = await dbPromise;
|
|
423
|
+
const hex = await db.get("metaKV", "seed");
|
|
400
424
|
if (!hex) {
|
|
401
425
|
return;
|
|
402
426
|
}
|
|
@@ -405,45 +429,60 @@ var IDBStore = class {
|
|
|
405
429
|
}
|
|
406
430
|
async setSeed(seed) {
|
|
407
431
|
const hex = btoh(seed);
|
|
408
|
-
|
|
432
|
+
const db = await dbPromise;
|
|
433
|
+
await db.put("metaKV", hex, "seed");
|
|
409
434
|
this.seed = seed;
|
|
410
435
|
}
|
|
411
436
|
async getHostURL() {
|
|
412
|
-
const
|
|
437
|
+
const db = await dbPromise;
|
|
438
|
+
const url = await db.get("metaKV", "hostURL");
|
|
413
439
|
return url;
|
|
414
440
|
}
|
|
415
441
|
async setHostURL(url) {
|
|
416
|
-
|
|
442
|
+
const db = await dbPromise;
|
|
443
|
+
db.put("metaKV", url, "hostURL");
|
|
417
444
|
}
|
|
418
445
|
async getHostID() {
|
|
419
|
-
const
|
|
446
|
+
const db = await dbPromise;
|
|
447
|
+
const id = await db.get("metaKV", "hostID");
|
|
420
448
|
return id;
|
|
421
449
|
}
|
|
422
450
|
async setHostID(id) {
|
|
423
|
-
|
|
451
|
+
const db = await dbPromise;
|
|
452
|
+
await db.put("metaKV", id, "hostID");
|
|
424
453
|
}
|
|
425
454
|
uploadQueue = /* @__PURE__ */ new Map();
|
|
426
455
|
enqueueUpload = async (sha256, cipherOp) => {
|
|
427
|
-
|
|
456
|
+
const db = await dbPromise;
|
|
457
|
+
await db.put("uploadQueue", { sha256, cipherOp });
|
|
428
458
|
};
|
|
429
459
|
dequeueUpload = async (sha256) => {
|
|
430
|
-
|
|
460
|
+
const db = await dbPromise;
|
|
461
|
+
await db.delete("uploadQueue", sha256);
|
|
431
462
|
};
|
|
432
463
|
peekUpload = async (sha256) => {
|
|
433
|
-
|
|
464
|
+
const db = await dbPromise;
|
|
465
|
+
const row = await db.get("uploadQueue", sha256);
|
|
466
|
+
return row?.cipherOp;
|
|
434
467
|
};
|
|
435
468
|
listUploads = async () => {
|
|
436
|
-
|
|
469
|
+
const db = await dbPromise;
|
|
470
|
+
const sha256s = await db.getAllKeys("uploadQueue");
|
|
471
|
+
return sha256s;
|
|
437
472
|
};
|
|
438
473
|
downloadQueue = /* @__PURE__ */ new Set();
|
|
439
474
|
enqueueDownload = async (path) => {
|
|
440
|
-
|
|
475
|
+
const db = await dbPromise;
|
|
476
|
+
await db.put("downloadQueue", { path });
|
|
441
477
|
};
|
|
442
478
|
dequeueDownload = async (path) => {
|
|
443
|
-
|
|
479
|
+
const db = await dbPromise;
|
|
480
|
+
await db.delete("downloadQueue", path);
|
|
444
481
|
};
|
|
445
482
|
listDownloads = async () => {
|
|
446
|
-
|
|
483
|
+
const db = await dbPromise;
|
|
484
|
+
const paths = await db.getAllKeys("downloadQueue");
|
|
485
|
+
return paths;
|
|
447
486
|
};
|
|
448
487
|
};
|
|
449
488
|
var idbStore = new IDBStore();
|
|
@@ -8770,7 +8809,6 @@ var DiplomaticClient = class {
|
|
|
8770
8809
|
};
|
|
8771
8810
|
};
|
|
8772
8811
|
async init(params) {
|
|
8773
|
-
await this.store.init?.();
|
|
8774
8812
|
if (params.seed) {
|
|
8775
8813
|
const bytes = typeof params.seed === "string" ? htob(params.seed) : params.seed;
|
|
8776
8814
|
await this.store.setSeed(bytes);
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { IClientStateStore } from "./types";
|
|
2
2
|
declare class LocalStorageStore implements IClientStateStore {
|
|
3
|
+
wipe(): Promise<void>;
|
|
3
4
|
getSeed(): Promise<Uint8Array | undefined>;
|
|
4
5
|
setSeed(seed: Uint8Array): Promise<void>;
|
|
5
6
|
getHostURL(): Promise<string | undefined>;
|
package/dist/memoryStore.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ declare class MemoryStore implements IClientStateStore {
|
|
|
3
3
|
seed?: Uint8Array;
|
|
4
4
|
hostURL?: string;
|
|
5
5
|
hostID?: string;
|
|
6
|
+
wipe(): Promise<void>;
|
|
6
7
|
getSeed(): Promise<Uint8Array | undefined>;
|
|
7
8
|
setSeed(seed: Uint8Array): Promise<void>;
|
|
8
9
|
getHostURL(): Promise<string | undefined>;
|
package/dist/types.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import type { IOp } from "./shared/types";
|
|
2
2
|
export interface IClientStateStore {
|
|
3
|
-
init?: () => Promise<void>;
|
|
4
3
|
getSeed: () => Promise<Uint8Array | undefined>;
|
|
5
4
|
setSeed: (seed: Uint8Array) => Promise<void>;
|
|
6
5
|
getHostURL: () => Promise<string | undefined>;
|
|
7
6
|
setHostURL: (url: string) => Promise<void>;
|
|
8
7
|
getHostID: () => Promise<string | undefined>;
|
|
9
8
|
setHostID: (id: string) => Promise<void>;
|
|
9
|
+
wipe: () => Promise<void>;
|
|
10
10
|
enqueueUpload: (sha256: string, cipherOp: Uint8Array) => Promise<void>;
|
|
11
11
|
dequeueUpload: (sha256: string) => Promise<void>;
|
|
12
12
|
peekUpload: (sha256: string) => Promise<Uint8Array | undefined>;
|