@interncom/diplomatic 0.0.16 → 0.0.18
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/client.d.ts +1 -0
- package/dist/index.mjs +33 -44
- package/dist/types.d.ts +1 -0
- package/package.json +1 -1
package/dist/client.d.ts
CHANGED
|
@@ -18,6 +18,7 @@ export default class DiplomaticClient {
|
|
|
18
18
|
hostKeyPair?: KeyPair;
|
|
19
19
|
lastFetchedAt?: string;
|
|
20
20
|
constructor(params: IDiplomaticClientParams);
|
|
21
|
+
wipe(): Promise<void>;
|
|
21
22
|
websocket?: WebSocket;
|
|
22
23
|
connect: (hostURL: URL) => Promise<void>;
|
|
23
24
|
init(params: IDiplomaticClientParams): Promise<void>;
|
package/dist/index.mjs
CHANGED
|
@@ -316,27 +316,16 @@ function openDB(name, version, { blocked, upgrade, blocking, terminated } = {})
|
|
|
316
316
|
event
|
|
317
317
|
));
|
|
318
318
|
}
|
|
319
|
-
openPromise.then((
|
|
319
|
+
openPromise.then((db2) => {
|
|
320
320
|
if (terminated)
|
|
321
|
-
|
|
321
|
+
db2.addEventListener("close", () => terminated());
|
|
322
322
|
if (blocking) {
|
|
323
|
-
|
|
323
|
+
db2.addEventListener("versionchange", (event) => blocking(event.oldVersion, event.newVersion, event));
|
|
324
324
|
}
|
|
325
325
|
}).catch(() => {
|
|
326
326
|
});
|
|
327
327
|
return openPromise;
|
|
328
328
|
}
|
|
329
|
-
function deleteDB(name, { blocked } = {}) {
|
|
330
|
-
const request = indexedDB.deleteDatabase(name);
|
|
331
|
-
if (blocked) {
|
|
332
|
-
request.addEventListener("blocked", (event) => blocked(
|
|
333
|
-
// Casting due to https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/1405
|
|
334
|
-
event.oldVersion,
|
|
335
|
-
event
|
|
336
|
-
));
|
|
337
|
-
}
|
|
338
|
-
return wrap(request).then(() => void 0);
|
|
339
|
-
}
|
|
340
329
|
var readMethods = ["get", "getKey", "getAll", "getAllKeys", "count"];
|
|
341
330
|
var writeMethods = ["put", "add", "delete", "clear"];
|
|
342
331
|
var cachedMethods = /* @__PURE__ */ new Map();
|
|
@@ -423,13 +412,13 @@ replaceTraps((oldTraps) => ({
|
|
|
423
412
|
}));
|
|
424
413
|
|
|
425
414
|
// src/idbStore.ts
|
|
426
|
-
var
|
|
427
|
-
upgrade(
|
|
428
|
-
|
|
429
|
-
|
|
415
|
+
var db = await openDB("client-store-db", 2, {
|
|
416
|
+
upgrade(db2) {
|
|
417
|
+
db2.createObjectStore("metaKV");
|
|
418
|
+
db2.createObjectStore("uploadQueue", {
|
|
430
419
|
keyPath: "sha256"
|
|
431
420
|
});
|
|
432
|
-
|
|
421
|
+
db2.createObjectStore("downloadQueue", {
|
|
433
422
|
keyPath: "path"
|
|
434
423
|
});
|
|
435
424
|
}
|
|
@@ -439,10 +428,11 @@ var IDBStore = class {
|
|
|
439
428
|
hostURL;
|
|
440
429
|
hostID;
|
|
441
430
|
async wipe() {
|
|
442
|
-
await
|
|
431
|
+
await db.clear("metaKV");
|
|
432
|
+
await db.clear("uploadQueue");
|
|
433
|
+
await db.clear("downloadQueue");
|
|
443
434
|
}
|
|
444
435
|
async getSeed() {
|
|
445
|
-
const db = await dbPromise;
|
|
446
436
|
const hex = await db.get("metaKV", "seed");
|
|
447
437
|
if (!hex) {
|
|
448
438
|
return;
|
|
@@ -452,68 +442,56 @@ var IDBStore = class {
|
|
|
452
442
|
}
|
|
453
443
|
async setSeed(seed) {
|
|
454
444
|
const hex = btoh(seed);
|
|
455
|
-
const db = await dbPromise;
|
|
456
445
|
await db.put("metaKV", hex, "seed");
|
|
457
446
|
this.seed = seed;
|
|
458
447
|
}
|
|
459
448
|
async getHostURL() {
|
|
460
|
-
const db = await dbPromise;
|
|
461
449
|
const url = await db.get("metaKV", "hostURL");
|
|
462
450
|
return url;
|
|
463
451
|
}
|
|
464
452
|
async setHostURL(url) {
|
|
465
|
-
const db = await dbPromise;
|
|
466
453
|
db.put("metaKV", url, "hostURL");
|
|
467
454
|
}
|
|
468
455
|
async getHostID() {
|
|
469
|
-
const db = await dbPromise;
|
|
470
456
|
const id = await db.get("metaKV", "hostID");
|
|
471
457
|
return id;
|
|
472
458
|
}
|
|
473
459
|
async setHostID(id) {
|
|
474
|
-
const db = await dbPromise;
|
|
475
460
|
await db.put("metaKV", id, "hostID");
|
|
476
461
|
}
|
|
477
462
|
uploadQueue = /* @__PURE__ */ new Map();
|
|
478
463
|
enqueueUpload = async (sha256, cipherOp) => {
|
|
479
|
-
const db = await dbPromise;
|
|
480
464
|
await db.put("uploadQueue", { sha256, cipherOp });
|
|
481
465
|
};
|
|
482
466
|
dequeueUpload = async (sha256) => {
|
|
483
|
-
const db = await dbPromise;
|
|
484
467
|
await db.delete("uploadQueue", sha256);
|
|
485
468
|
};
|
|
486
469
|
peekUpload = async (sha256) => {
|
|
487
|
-
const db = await dbPromise;
|
|
488
470
|
const row = await db.get("uploadQueue", sha256);
|
|
489
471
|
return row?.cipherOp;
|
|
490
472
|
};
|
|
491
473
|
listUploads = async () => {
|
|
492
|
-
const db = await dbPromise;
|
|
493
474
|
const sha256s = await db.getAllKeys("uploadQueue");
|
|
494
475
|
return sha256s;
|
|
495
476
|
};
|
|
496
477
|
numUploads = async () => {
|
|
497
|
-
const
|
|
498
|
-
return
|
|
478
|
+
const num = await db.count("uploadQueue");
|
|
479
|
+
return num;
|
|
499
480
|
};
|
|
500
481
|
downloadQueue = /* @__PURE__ */ new Set();
|
|
501
482
|
enqueueDownload = async (path) => {
|
|
502
|
-
const db = await dbPromise;
|
|
503
483
|
await db.put("downloadQueue", { path });
|
|
504
484
|
};
|
|
505
485
|
dequeueDownload = async (path) => {
|
|
506
|
-
const db = await dbPromise;
|
|
507
486
|
await db.delete("downloadQueue", path);
|
|
508
487
|
};
|
|
509
488
|
listDownloads = async () => {
|
|
510
|
-
const db = await dbPromise;
|
|
511
489
|
const paths = await db.getAllKeys("downloadQueue");
|
|
512
490
|
return paths;
|
|
513
491
|
};
|
|
514
492
|
numDownloads = async () => {
|
|
515
|
-
const
|
|
516
|
-
return
|
|
493
|
+
const num = await db.count("downloadQueue");
|
|
494
|
+
return num;
|
|
517
495
|
};
|
|
518
496
|
};
|
|
519
497
|
var idbStore = new IDBStore();
|
|
@@ -8810,6 +8788,17 @@ var DiplomaticClient = class {
|
|
|
8810
8788
|
this.applier = params.stateManager.apply;
|
|
8811
8789
|
this.init(params);
|
|
8812
8790
|
}
|
|
8791
|
+
async wipe() {
|
|
8792
|
+
this.seed = void 0;
|
|
8793
|
+
this.encKey = void 0;
|
|
8794
|
+
this.hostURL = void 0;
|
|
8795
|
+
this.hostKeyPair = void 0;
|
|
8796
|
+
this.lastFetchedAt = void 0;
|
|
8797
|
+
this.websocket?.close();
|
|
8798
|
+
this.websocket = void 0;
|
|
8799
|
+
await this.store.wipe();
|
|
8800
|
+
this.emitUpdate();
|
|
8801
|
+
}
|
|
8813
8802
|
websocket;
|
|
8814
8803
|
connect = async (hostURL) => {
|
|
8815
8804
|
if (!this.hostKeyPair) {
|
|
@@ -8842,6 +8831,7 @@ var DiplomaticClient = class {
|
|
|
8842
8831
|
};
|
|
8843
8832
|
};
|
|
8844
8833
|
async init(params) {
|
|
8834
|
+
await this.store.init?.();
|
|
8845
8835
|
if (params.seed) {
|
|
8846
8836
|
const bytes = typeof params.seed === "string" ? htob(params.seed) : params.seed;
|
|
8847
8837
|
await this.store.setSeed(bytes);
|
|
@@ -8904,13 +8894,12 @@ var DiplomaticClient = class {
|
|
|
8904
8894
|
this.listener?.(state);
|
|
8905
8895
|
}
|
|
8906
8896
|
async getState() {
|
|
8907
|
-
|
|
8908
|
-
|
|
8909
|
-
|
|
8910
|
-
|
|
8911
|
-
|
|
8912
|
-
|
|
8913
|
-
};
|
|
8897
|
+
const hasSeed = this.seed !== void 0 && this.encKey !== void 0;
|
|
8898
|
+
const hasHost = this.hostURL !== void 0 && this.hostKeyPair !== void 0;
|
|
8899
|
+
const connected = this.websocket === void 0 ? false : this.websocket.readyState === this.websocket.OPEN;
|
|
8900
|
+
const numUploads = await this.store.numUploads();
|
|
8901
|
+
const numDownloads = await this.store.numDownloads();
|
|
8902
|
+
return { hasSeed, hasHost, connected, numDownloads, numUploads };
|
|
8914
8903
|
}
|
|
8915
8904
|
async processOps() {
|
|
8916
8905
|
await this.pullOpPaths();
|
package/dist/types.d.ts
CHANGED