@vex-chat/libvex 5.0.0 → 5.1.0
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/README.md +20 -27
- package/dist/Client.d.ts +36 -0
- package/dist/Client.d.ts.map +1 -1
- package/dist/Client.js +142 -23
- package/dist/Client.js.map +1 -1
- package/dist/storage/node/http-agents.d.ts +15 -0
- package/dist/storage/node/http-agents.d.ts.map +1 -0
- package/dist/storage/node/http-agents.js +21 -0
- package/dist/storage/node/http-agents.js.map +1 -0
- package/package.json +2 -3
- package/src/Client.ts +179 -27
- package/src/storage/node/http-agents.ts +33 -0
package/README.md
CHANGED
|
@@ -7,13 +7,12 @@
|
|
|
7
7
|
[](./dist/index.d.ts)
|
|
8
8
|
[](https://github.com/plantain-00/type-coverage)
|
|
9
9
|
[](./package.json)
|
|
10
|
-
[](https://bundlejs.com/?q=@vex-chat/libvex&treeshake=[*])
|
|
11
10
|
[](https://securityscorecards.dev/viewer/?uri=github.com/vex-protocol/libvex-js)
|
|
12
11
|
[](https://socket.dev/npm/package/@vex-chat/libvex)
|
|
13
12
|
|
|
14
|
-
Reference TypeScript client for the [Vex](https://vex.wtf)
|
|
13
|
+
Reference TypeScript client for the [Vex](https://vex.wtf) protocol. Use it to build a chat client, a bot, or between two clients that need encrypted comms via [spire](https://github.com/vex-protocol/spire) server.
|
|
15
14
|
|
|
16
|
-
[Documentation](https://vex
|
|
15
|
+
[Documentation](https://lib.vex.wtf/)
|
|
17
16
|
|
|
18
17
|
## What's in the box
|
|
19
18
|
|
|
@@ -22,8 +21,7 @@ The client implements an X3DH-style handshake (X25519 DH + KDF), XSalsa20-Poly13
|
|
|
22
21
|
- **End-to-end encrypted messaging** with X3DH key agreement — sessions, prekeys, and one-time keys handled internally.
|
|
23
22
|
- **Tree-shakable subpath exports** for platform-specific code: `./preset/node`, `./preset/test`, `./storage/node`, `./storage/sqlite`, `./storage/schema`, `./keystore/node`, `./keystore/memory`. Browser bundles never pull in `better-sqlite3` or other native modules.
|
|
24
23
|
- **Pluggable storage backend** via Kysely so node consumers can use SQLite and browser/tauri/expo consumers can wire their own.
|
|
25
|
-
- **Pluggable key store** so secrets can live in memory (tests),
|
|
26
|
-
- **WebSocket transport** for live message delivery with automatic reconnection and HTTP fallback for the REST API.
|
|
24
|
+
- **Pluggable key store** so secrets can live in memory (tests), passphrase-encrypted files on disk (`./keystore/node`), or wherever the embedding app keeps them.
|
|
27
25
|
|
|
28
26
|
## Install
|
|
29
27
|
|
|
@@ -31,7 +29,7 @@ The client implements an X3DH-style handshake (X25519 DH + KDF), XSalsa20-Poly13
|
|
|
31
29
|
npm install @vex-chat/libvex
|
|
32
30
|
```
|
|
33
31
|
|
|
34
|
-
`@vex-chat/types`, `@vex-chat/crypto`, `axios`, `kysely`, `
|
|
32
|
+
`@vex-chat/types`, `@vex-chat/crypto`, `axios`, `eventemitter3`, `kysely`, `msgpackr`, `uuid`, and `zod` are required runtime dependencies and install automatically.
|
|
35
33
|
|
|
36
34
|
`better-sqlite3` is an **optional peer dependency** — install it explicitly only if you plan to use the SQLite storage backend on Node:
|
|
37
35
|
|
|
@@ -46,17 +44,20 @@ Browser, Tauri, and Expo consumers should leave `better-sqlite3` out and supply
|
|
|
46
44
|
```ts
|
|
47
45
|
import { Client } from "@vex-chat/libvex";
|
|
48
46
|
|
|
49
|
-
// Generate or load a long-lived secret key
|
|
47
|
+
// Generate or load a long-lived secret key.
|
|
50
48
|
const secretKey = Client.generateSecretKey();
|
|
51
49
|
|
|
52
50
|
const client = await Client.create(secretKey);
|
|
53
51
|
|
|
54
52
|
// First-time devices must register before logging in.
|
|
55
|
-
await client.register(
|
|
56
|
-
await client.login();
|
|
53
|
+
await client.register("myUsername", "myPassword");
|
|
54
|
+
await client.login("myUsername", "myPassword");
|
|
57
55
|
|
|
58
|
-
|
|
59
|
-
|
|
56
|
+
// connect() authenticates the WebSocket and fires "ready" when done.
|
|
57
|
+
await client.connect();
|
|
58
|
+
|
|
59
|
+
client.on("ready", async () => {
|
|
60
|
+
const me = client.me.user();
|
|
60
61
|
await client.messages.send(me.userID, "Hello world!");
|
|
61
62
|
});
|
|
62
63
|
|
|
@@ -70,27 +71,19 @@ client.on("message", (message) => {
|
|
|
70
71
|
libvex ships per-platform "presets" that wire together the appropriate storage and keystore:
|
|
71
72
|
|
|
72
73
|
```ts
|
|
73
|
-
// Node — sqlite storage +
|
|
74
|
-
import {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
} from "@vex-chat/libvex/preset/node";
|
|
79
|
-
|
|
80
|
-
// Tests / ephemeral — in-memory storage + memory keystore
|
|
81
|
-
import {
|
|
82
|
-
Client,
|
|
83
|
-
makeStorage,
|
|
84
|
-
BootstrapConfig,
|
|
85
|
-
} from "@vex-chat/libvex/preset/test";
|
|
74
|
+
// Node — sqlite storage + encrypted file keystore
|
|
75
|
+
import { nodePreset } from "@vex-chat/libvex/preset/node";
|
|
76
|
+
|
|
77
|
+
// Tests / ephemeral — in-memory storage, no persistence
|
|
78
|
+
import { testPreset } from "@vex-chat/libvex/preset/test";
|
|
86
79
|
```
|
|
87
80
|
|
|
88
|
-
For a custom platform (browser, tauri, expo), import `Client` from `@vex-chat/libvex` directly and supply your own `Storage` (implementing the schema in `@vex-chat/libvex/storage/schema`) and `KeyStore` to `Client.create`.
|
|
81
|
+
Presets return a `PlatformPreset` with a `createStorage()` factory and a `deviceName`. For a custom platform (browser, tauri, expo), import `Client` from `@vex-chat/libvex` directly and supply your own `Storage` (implementing the schema in `@vex-chat/libvex/storage/schema`) and `KeyStore` to `Client.create`.
|
|
89
82
|
|
|
90
83
|
## Development
|
|
91
84
|
|
|
92
85
|
```sh
|
|
93
|
-
npm run build # tsc -p tsconfig.build.json
|
|
86
|
+
npm run build # rimraf dist && tsc -p tsconfig.build.json
|
|
94
87
|
npm run lint # eslint
|
|
95
88
|
npm run lint:fix # eslint --fix
|
|
96
89
|
npm run format # prettier --write
|
|
@@ -105,7 +98,7 @@ npm run license:check # license allowlist gate
|
|
|
105
98
|
npm run docs # typedoc — writes ./docs
|
|
106
99
|
```
|
|
107
100
|
|
|
108
|
-
The unit suite (`npm test`) runs browser-safe and offline. The e2e suite (`npm run test:e2e`)
|
|
101
|
+
The unit suite (`npm test`) runs browser-safe and offline. The e2e suite (`npm run test:e2e`) requires a running spire server — set `VEX_API_URL` to point at it (defaults to `localhost`).
|
|
109
102
|
|
|
110
103
|
See [AGENTS.md](./AGENTS.md) for the release flow (changesets → publish) and the rules for writing changesets.
|
|
111
104
|
|
package/dist/Client.d.ts
CHANGED
|
@@ -55,6 +55,12 @@ export interface ClientOptions {
|
|
|
55
55
|
saveHistory?: boolean;
|
|
56
56
|
/** Use `http/ws` instead of `https/wss`. Intended for local/dev environments. */
|
|
57
57
|
unsafeHttp?: boolean;
|
|
58
|
+
/**
|
|
59
|
+
* When set (non-empty), sent as `x-dev-api-key` on every HTTP request.
|
|
60
|
+
* Spire omits in-process rate limits when this matches the server's `DEV_API_KEY`
|
|
61
|
+
* (local / load-testing only — never use in production).
|
|
62
|
+
*/
|
|
63
|
+
devApiKey?: string;
|
|
58
64
|
}
|
|
59
65
|
/**
|
|
60
66
|
* @ignore
|
|
@@ -506,6 +512,11 @@ export declare class Client {
|
|
|
506
512
|
private firstMailFetch;
|
|
507
513
|
private readonly forwarded;
|
|
508
514
|
private readonly host;
|
|
515
|
+
/**
|
|
516
|
+
* Node-only: per-client HTTP(S) agents (see `init()` + `storage/node/http-agents`).
|
|
517
|
+
* Dropped on `close()` so idle keep-alive sockets do not keep the process alive.
|
|
518
|
+
*/
|
|
519
|
+
private nodeHttpAgents?;
|
|
509
520
|
private readonly http;
|
|
510
521
|
private readonly idKeys;
|
|
511
522
|
private isAlive;
|
|
@@ -553,12 +564,24 @@ export declare class Client {
|
|
|
553
564
|
static randomUsername(): string;
|
|
554
565
|
private static deserializeExtra;
|
|
555
566
|
private static getMnemonic;
|
|
567
|
+
/**
|
|
568
|
+
* True when running under Node (has `process.versions`).
|
|
569
|
+
* Uses indirect lookup so the bare `process` global never appears in
|
|
570
|
+
* source that the platform-guard plugin scans.
|
|
571
|
+
*/
|
|
572
|
+
private static isNodeRuntime;
|
|
556
573
|
/**
|
|
557
574
|
* Browser-safe NODE_ENV accessor.
|
|
558
575
|
* Uses indirect lookup so the bare `process` global never appears in
|
|
559
576
|
* source that the platform-guard plugin scans.
|
|
560
577
|
*/
|
|
561
578
|
private static getNodeEnv;
|
|
579
|
+
/**
|
|
580
|
+
* Fresh read of the `manuallyClosing` flag for async loops — direct property checks
|
|
581
|
+
* after `await` are flagged as always-false by control-flow analysis even though
|
|
582
|
+
* `close()` can run concurrently.
|
|
583
|
+
*/
|
|
584
|
+
private isManualCloseInFlight;
|
|
562
585
|
/**
|
|
563
586
|
* Closes the client — disconnects the WebSocket, shuts down storage,
|
|
564
587
|
* and emits `closed` unless `muteEvent` is `true`.
|
|
@@ -700,7 +723,20 @@ export declare class Client {
|
|
|
700
723
|
private getSessionList;
|
|
701
724
|
private getToken;
|
|
702
725
|
private getUser;
|
|
726
|
+
private deviceListFailureDetail;
|
|
727
|
+
/**
|
|
728
|
+
* Single GET for `/user/:id/devices`. On failure returns `null` (swallows errors)
|
|
729
|
+
* — callers that need reliability should use `fetchUserDeviceListWithBackoff`.
|
|
730
|
+
* Similar “best effort null” patterns elsewhere: `getChannelByID`,
|
|
731
|
+
* `getDeviceByID` (HTTP leg), `getToken`, emoji upload fallbacks.
|
|
732
|
+
*/
|
|
703
733
|
private getUserDeviceList;
|
|
734
|
+
private fetchUserDeviceListOnce;
|
|
735
|
+
/**
|
|
736
|
+
* DM / forward paths need the peer’s (or self) device rows under load: bounded
|
|
737
|
+
* retries with exponential backoff (same shape as session pubkey hydration).
|
|
738
|
+
*/
|
|
739
|
+
private fetchUserDeviceListWithBackoff;
|
|
704
740
|
private getUserList;
|
|
705
741
|
private handleNotify;
|
|
706
742
|
/**
|
package/dist/Client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../src/Client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../src/Client.ts"],"names":[],"mappings":"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"}
|
package/dist/Client.js
CHANGED
|
@@ -307,6 +307,11 @@ export class Client {
|
|
|
307
307
|
firstMailFetch = true;
|
|
308
308
|
forwarded = new Set();
|
|
309
309
|
host;
|
|
310
|
+
/**
|
|
311
|
+
* Node-only: per-client HTTP(S) agents (see `init()` + `storage/node/http-agents`).
|
|
312
|
+
* Dropped on `close()` so idle keep-alive sockets do not keep the process alive.
|
|
313
|
+
*/
|
|
314
|
+
nodeHttpAgents;
|
|
310
315
|
http;
|
|
311
316
|
idKeys;
|
|
312
317
|
isAlive = true;
|
|
@@ -366,6 +371,10 @@ export class Client {
|
|
|
366
371
|
void this.close(true);
|
|
367
372
|
});
|
|
368
373
|
this.http = axios.create({ responseType: "arraybuffer" });
|
|
374
|
+
const devKey = options?.devApiKey?.trim();
|
|
375
|
+
if (devKey !== undefined && devKey.length > 0) {
|
|
376
|
+
this.http.defaults.headers.common["x-dev-api-key"] = devKey;
|
|
377
|
+
}
|
|
369
378
|
this.socket = new WebSocketAdapter(this.prefixes.WS + this.host);
|
|
370
379
|
this.socket.onerror = () => { };
|
|
371
380
|
}
|
|
@@ -440,6 +449,27 @@ export class Client {
|
|
|
440
449
|
static getMnemonic(session) {
|
|
441
450
|
return xMnemonic(xKDF(XUtils.decodeHex(session.fingerprint)));
|
|
442
451
|
}
|
|
452
|
+
/**
|
|
453
|
+
* True when running under Node (has `process.versions`).
|
|
454
|
+
* Uses indirect lookup so the bare `process` global never appears in
|
|
455
|
+
* source that the platform-guard plugin scans.
|
|
456
|
+
*/
|
|
457
|
+
static isNodeRuntime() {
|
|
458
|
+
try {
|
|
459
|
+
const g = Object.getOwnPropertyDescriptor(globalThis, "\u0070rocess");
|
|
460
|
+
if (!g)
|
|
461
|
+
return false;
|
|
462
|
+
const proc = typeof g.get === "function" ? g.get() : g.value;
|
|
463
|
+
if (typeof proc !== "object" || proc === null) {
|
|
464
|
+
return false;
|
|
465
|
+
}
|
|
466
|
+
return ("versions" in proc &&
|
|
467
|
+
typeof proc.versions === "object");
|
|
468
|
+
}
|
|
469
|
+
catch {
|
|
470
|
+
return false;
|
|
471
|
+
}
|
|
472
|
+
}
|
|
443
473
|
/**
|
|
444
474
|
* Browser-safe NODE_ENV accessor.
|
|
445
475
|
* Uses indirect lookup so the bare `process` global never appears in
|
|
@@ -476,6 +506,14 @@ export class Client {
|
|
|
476
506
|
return undefined;
|
|
477
507
|
}
|
|
478
508
|
}
|
|
509
|
+
/**
|
|
510
|
+
* Fresh read of the `manuallyClosing` flag for async loops — direct property checks
|
|
511
|
+
* after `await` are flagged as always-false by control-flow analysis even though
|
|
512
|
+
* `close()` can run concurrently.
|
|
513
|
+
*/
|
|
514
|
+
isManualCloseInFlight() {
|
|
515
|
+
return this.manuallyClosing;
|
|
516
|
+
}
|
|
479
517
|
/**
|
|
480
518
|
* Closes the client — disconnects the WebSocket, shuts down storage,
|
|
481
519
|
* and emits `closed` unless `muteEvent` is `true`.
|
|
@@ -486,6 +524,11 @@ export class Client {
|
|
|
486
524
|
this.manuallyClosing = true;
|
|
487
525
|
this.socket.close();
|
|
488
526
|
await this.database.close();
|
|
527
|
+
if (this.nodeHttpAgents) {
|
|
528
|
+
this.nodeHttpAgents.http.destroy();
|
|
529
|
+
this.nodeHttpAgents.https.destroy();
|
|
530
|
+
delete this.nodeHttpAgents;
|
|
531
|
+
}
|
|
489
532
|
if (this.pingInterval) {
|
|
490
533
|
clearInterval(this.pingInterval);
|
|
491
534
|
}
|
|
@@ -810,6 +853,9 @@ export class Client {
|
|
|
810
853
|
return;
|
|
811
854
|
}
|
|
812
855
|
if (!this.xKeyRing) {
|
|
856
|
+
if (this.manuallyClosing) {
|
|
857
|
+
return;
|
|
858
|
+
}
|
|
813
859
|
throw new Error("Key ring not initialized.");
|
|
814
860
|
}
|
|
815
861
|
// my keys
|
|
@@ -1000,10 +1046,7 @@ export class Client {
|
|
|
1000
1046
|
this.forwarded.delete(first);
|
|
1001
1047
|
}
|
|
1002
1048
|
const msgBytes = Uint8Array.from(msgpack.encode(copy));
|
|
1003
|
-
const devices = await this.
|
|
1004
|
-
if (!devices) {
|
|
1005
|
-
throw new Error("Couldn't get own devices.");
|
|
1006
|
-
}
|
|
1049
|
+
const devices = await this.fetchUserDeviceListWithBackoff(this.getUser().userID, "own");
|
|
1007
1050
|
const promises = [];
|
|
1008
1051
|
for (const device of devices) {
|
|
1009
1052
|
if (device.deviceID !== this.getDevice().deviceID) {
|
|
@@ -1074,6 +1117,9 @@ export class Client {
|
|
|
1074
1117
|
return messages;
|
|
1075
1118
|
}
|
|
1076
1119
|
async getMail() {
|
|
1120
|
+
if (this.manuallyClosing) {
|
|
1121
|
+
return;
|
|
1122
|
+
}
|
|
1077
1123
|
while (this.fetchingMail) {
|
|
1078
1124
|
await sleep(500);
|
|
1079
1125
|
}
|
|
@@ -1190,19 +1236,74 @@ export class Client {
|
|
|
1190
1236
|
}
|
|
1191
1237
|
return this.user;
|
|
1192
1238
|
}
|
|
1239
|
+
deviceListFailureDetail(err) {
|
|
1240
|
+
if (!isAxiosError(err)) {
|
|
1241
|
+
return "";
|
|
1242
|
+
}
|
|
1243
|
+
const st = err.response?.status;
|
|
1244
|
+
if (typeof st === "number") {
|
|
1245
|
+
return ` (HTTP ${String(st)})`;
|
|
1246
|
+
}
|
|
1247
|
+
if (err.code !== undefined) {
|
|
1248
|
+
return ` (${err.code})`;
|
|
1249
|
+
}
|
|
1250
|
+
return "";
|
|
1251
|
+
}
|
|
1252
|
+
/**
|
|
1253
|
+
* Single GET for `/user/:id/devices`. On failure returns `null` (swallows errors)
|
|
1254
|
+
* — callers that need reliability should use `fetchUserDeviceListWithBackoff`.
|
|
1255
|
+
* Similar “best effort null” patterns elsewhere: `getChannelByID`,
|
|
1256
|
+
* `getDeviceByID` (HTTP leg), `getToken`, emoji upload fallbacks.
|
|
1257
|
+
*/
|
|
1193
1258
|
async getUserDeviceList(userID) {
|
|
1194
1259
|
try {
|
|
1195
|
-
|
|
1196
|
-
const devices = decodeAxios(DeviceArrayCodec, res.data);
|
|
1197
|
-
for (const device of devices) {
|
|
1198
|
-
this.deviceRecords[device.deviceID] = device;
|
|
1199
|
-
}
|
|
1200
|
-
return devices;
|
|
1260
|
+
return await this.fetchUserDeviceListOnce(userID);
|
|
1201
1261
|
}
|
|
1202
1262
|
catch (_err) {
|
|
1203
1263
|
return null;
|
|
1204
1264
|
}
|
|
1205
1265
|
}
|
|
1266
|
+
async fetchUserDeviceListOnce(userID) {
|
|
1267
|
+
const res = await this.http.get(this.getHost() + "/user/" + userID + "/devices");
|
|
1268
|
+
const devices = decodeAxios(DeviceArrayCodec, res.data);
|
|
1269
|
+
for (const device of devices) {
|
|
1270
|
+
this.deviceRecords[device.deviceID] = device;
|
|
1271
|
+
}
|
|
1272
|
+
return devices;
|
|
1273
|
+
}
|
|
1274
|
+
/**
|
|
1275
|
+
* DM / forward paths need the peer’s (or self) device rows under load: bounded
|
|
1276
|
+
* retries with exponential backoff (same shape as session pubkey hydration).
|
|
1277
|
+
*/
|
|
1278
|
+
async fetchUserDeviceListWithBackoff(userID, label) {
|
|
1279
|
+
const base = label === "own"
|
|
1280
|
+
? "Couldn't get own devices"
|
|
1281
|
+
: "Couldn't get device list";
|
|
1282
|
+
let lastErr;
|
|
1283
|
+
for (let attempt = 0; attempt < 5; attempt++) {
|
|
1284
|
+
if (attempt > 0) {
|
|
1285
|
+
if (this.isManualCloseInFlight()) {
|
|
1286
|
+
throw new Error(`${base}${this.deviceListFailureDetail(lastErr)}`);
|
|
1287
|
+
}
|
|
1288
|
+
const delayMs = 100 * 2 ** (attempt - 1);
|
|
1289
|
+
// Chunk the delay to allow close() to interrupt
|
|
1290
|
+
const chunkMs = 10;
|
|
1291
|
+
for (let elapsed = 0; elapsed < delayMs; elapsed += chunkMs) {
|
|
1292
|
+
if (this.isManualCloseInFlight()) {
|
|
1293
|
+
throw new Error(`${base}${this.deviceListFailureDetail(lastErr)}`);
|
|
1294
|
+
}
|
|
1295
|
+
await sleep(Math.min(chunkMs, delayMs - elapsed));
|
|
1296
|
+
}
|
|
1297
|
+
}
|
|
1298
|
+
try {
|
|
1299
|
+
return await this.fetchUserDeviceListOnce(userID);
|
|
1300
|
+
}
|
|
1301
|
+
catch (err) {
|
|
1302
|
+
lastErr = err;
|
|
1303
|
+
}
|
|
1304
|
+
}
|
|
1305
|
+
throw new Error(`${base}${this.deviceListFailureDetail(lastErr)}`);
|
|
1306
|
+
}
|
|
1206
1307
|
async getUserList(channelID) {
|
|
1207
1308
|
const res = await this.http.post(this.getHost() + "/userList/" + channelID);
|
|
1208
1309
|
return decodeAxios(UserArrayCodec, res.data);
|
|
@@ -1231,6 +1332,12 @@ export class Client {
|
|
|
1231
1332
|
throw new Error("You should only call init() once.");
|
|
1232
1333
|
}
|
|
1233
1334
|
this.hasInit = true;
|
|
1335
|
+
if (Client.isNodeRuntime()) {
|
|
1336
|
+
const { attachNodeAgentsToAxios, createNodeHttpAgents } = await import("./storage/node/http-agents.js");
|
|
1337
|
+
const agents = createNodeHttpAgents();
|
|
1338
|
+
this.nodeHttpAgents = agents;
|
|
1339
|
+
attachNodeAgentsToAxios(this.http, agents);
|
|
1340
|
+
}
|
|
1234
1341
|
await this.populateKeyRing();
|
|
1235
1342
|
this.emitter.on("message", (message) => {
|
|
1236
1343
|
if (message.direction === "outgoing" && !message.forward) {
|
|
@@ -1344,6 +1451,9 @@ export class Client {
|
|
|
1344
1451
|
}
|
|
1345
1452
|
newEphemeralKeys() {
|
|
1346
1453
|
if (!this.xKeyRing) {
|
|
1454
|
+
if (this.manuallyClosing) {
|
|
1455
|
+
return;
|
|
1456
|
+
}
|
|
1347
1457
|
throw new Error("Key ring not initialized.");
|
|
1348
1458
|
}
|
|
1349
1459
|
this.xKeyRing.ephemeralKeys = xBoxKeyPair();
|
|
@@ -1387,6 +1497,9 @@ export class Client {
|
|
|
1387
1497
|
async postAuth() {
|
|
1388
1498
|
let count = 0;
|
|
1389
1499
|
for (;;) {
|
|
1500
|
+
if (this.isManualCloseInFlight()) {
|
|
1501
|
+
return;
|
|
1502
|
+
}
|
|
1390
1503
|
try {
|
|
1391
1504
|
await this.getMail();
|
|
1392
1505
|
count++;
|
|
@@ -1397,7 +1510,17 @@ export class Client {
|
|
|
1397
1510
|
}
|
|
1398
1511
|
}
|
|
1399
1512
|
catch { }
|
|
1400
|
-
|
|
1513
|
+
if (this.isManualCloseInFlight()) {
|
|
1514
|
+
return;
|
|
1515
|
+
}
|
|
1516
|
+
// Chunk the idle delay so `close()` can unwind instead of waiting
|
|
1517
|
+
// out one full 60s timer (which would keep the process alive).
|
|
1518
|
+
for (let i = 0; i < 60; i++) {
|
|
1519
|
+
if (this.isManualCloseInFlight()) {
|
|
1520
|
+
return;
|
|
1521
|
+
}
|
|
1522
|
+
await sleep(1000);
|
|
1523
|
+
}
|
|
1401
1524
|
}
|
|
1402
1525
|
}
|
|
1403
1526
|
async purgeHistory() {
|
|
@@ -1408,6 +1531,9 @@ export class Client {
|
|
|
1408
1531
|
return;
|
|
1409
1532
|
}
|
|
1410
1533
|
this.seenMailIDs.add(mail.mailID);
|
|
1534
|
+
if (this.manuallyClosing) {
|
|
1535
|
+
return;
|
|
1536
|
+
}
|
|
1411
1537
|
this.sendReceipt(new Uint8Array(mail.nonce));
|
|
1412
1538
|
let timeout = 1;
|
|
1413
1539
|
while (this.reading) {
|
|
@@ -1417,6 +1543,9 @@ export class Client {
|
|
|
1417
1543
|
this.reading = true;
|
|
1418
1544
|
try {
|
|
1419
1545
|
const healSession = async () => {
|
|
1546
|
+
if (this.manuallyClosing || !this.xKeyRing) {
|
|
1547
|
+
return;
|
|
1548
|
+
}
|
|
1420
1549
|
const deviceEntry = await this.getDeviceByID(mail.sender);
|
|
1421
1550
|
const [user, _err] = await this.fetchUser(mail.authorID);
|
|
1422
1551
|
if (deviceEntry && user) {
|
|
@@ -1447,7 +1576,7 @@ export class Client {
|
|
|
1447
1576
|
const IK_A = IK_A_raw;
|
|
1448
1577
|
const EK_A = ephKey;
|
|
1449
1578
|
if (!this.xKeyRing) {
|
|
1450
|
-
|
|
1579
|
+
return;
|
|
1451
1580
|
}
|
|
1452
1581
|
// my private keys
|
|
1453
1582
|
const IK_B = this.xKeyRing.identityKeys.secretKey;
|
|
@@ -1868,17 +1997,7 @@ export class Client {
|
|
|
1868
1997
|
if (!userEntry) {
|
|
1869
1998
|
throw new Error("Couldn't get user entry.");
|
|
1870
1999
|
}
|
|
1871
|
-
|
|
1872
|
-
if (!deviceList) {
|
|
1873
|
-
let retries = 0;
|
|
1874
|
-
while (!deviceList) {
|
|
1875
|
-
deviceList = await this.getUserDeviceList(userID);
|
|
1876
|
-
retries++;
|
|
1877
|
-
if (retries > 3) {
|
|
1878
|
-
throw new Error("Couldn't get device list.");
|
|
1879
|
-
}
|
|
1880
|
-
}
|
|
1881
|
-
}
|
|
2000
|
+
const deviceList = await this.fetchUserDeviceListWithBackoff(userID, "peer");
|
|
1882
2001
|
const mailID = uuid.v4();
|
|
1883
2002
|
const promises = [];
|
|
1884
2003
|
for (const device of deviceList) {
|
package/dist/Client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Client.js","sourceRoot":"","sources":["../src/Client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Client.js","sourceRoot":"","sources":["../src/Client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { AxiosInstance } from "axios";
|
|
2
|
+
/**
|
|
3
|
+
* Node-only HTTP(S) agents for libvex axios — lives under `storage/node/` so the
|
|
4
|
+
* platform-guard plugin allows `node:http` / `node:https` (see poison-node-imports).
|
|
5
|
+
*/
|
|
6
|
+
import * as nodeHttp from "node:http";
|
|
7
|
+
import * as nodeHttps from "node:https";
|
|
8
|
+
export interface NodeHttpAgentPair {
|
|
9
|
+
readonly http: nodeHttp.Agent;
|
|
10
|
+
readonly https: nodeHttps.Agent;
|
|
11
|
+
}
|
|
12
|
+
export declare function createNodeHttpAgents(): NodeHttpAgentPair;
|
|
13
|
+
export declare function attachNodeAgentsToAxios(instance: AxiosInstance, agents: NodeHttpAgentPair): void;
|
|
14
|
+
export declare function destroyNodeHttpAgents(agents: NodeHttpAgentPair): void;
|
|
15
|
+
//# sourceMappingURL=http-agents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-agents.d.ts","sourceRoot":"","sources":["../../../src/storage/node/http-agents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C;;;GAGG;AACH,OAAO,KAAK,QAAQ,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,SAAS,MAAM,YAAY,CAAC;AAExC,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC;CACnC;AAED,wBAAgB,oBAAoB,IAAI,iBAAiB,CAKxD;AAED,wBAAgB,uBAAuB,CACnC,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,iBAAiB,GAC1B,IAAI,CAGN;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAGrE"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Node-only HTTP(S) agents for libvex axios — lives under `storage/node/` so the
|
|
3
|
+
* platform-guard plugin allows `node:http` / `node:https` (see poison-node-imports).
|
|
4
|
+
*/
|
|
5
|
+
import * as nodeHttp from "node:http";
|
|
6
|
+
import * as nodeHttps from "node:https";
|
|
7
|
+
export function createNodeHttpAgents() {
|
|
8
|
+
return {
|
|
9
|
+
http: new nodeHttp.Agent({ keepAlive: true }),
|
|
10
|
+
https: new nodeHttps.Agent({ keepAlive: true }),
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export function attachNodeAgentsToAxios(instance, agents) {
|
|
14
|
+
instance.defaults.httpAgent = agents.http;
|
|
15
|
+
instance.defaults.httpsAgent = agents.https;
|
|
16
|
+
}
|
|
17
|
+
export function destroyNodeHttpAgents(agents) {
|
|
18
|
+
agents.http.destroy();
|
|
19
|
+
agents.https.destroy();
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=http-agents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-agents.js","sourceRoot":"","sources":["../../../src/storage/node/http-agents.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,OAAO,KAAK,QAAQ,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,SAAS,MAAM,YAAY,CAAC;AAOxC,MAAM,UAAU,oBAAoB;IAChC,OAAO;QACH,IAAI,EAAE,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QAC7C,KAAK,EAAE,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;KAClD,CAAC;AACN,CAAC;AAED,MAAM,UAAU,uBAAuB,CACnC,QAAuB,EACvB,MAAyB;IAEzB,QAAQ,CAAC,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC;IAC1C,QAAQ,CAAC,QAAQ,CAAC,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAyB;IAC3D,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IACtB,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;AAC3B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vex-chat/libvex",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.1.0",
|
|
4
4
|
"description": "Library for communicating with xchat server.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -85,7 +85,6 @@
|
|
|
85
85
|
"@types/better-sqlite3": "7.6.13",
|
|
86
86
|
"@types/ed2curve": "0.2.4",
|
|
87
87
|
"@types/node": "24.12.2",
|
|
88
|
-
"@types/uuid": "11.0.0",
|
|
89
88
|
"@vitest/eslint-plugin": "1.6.15",
|
|
90
89
|
"better-sqlite3": "11.10.0",
|
|
91
90
|
"eslint": "10.2.0",
|
|
@@ -104,7 +103,7 @@
|
|
|
104
103
|
"vitest": "3.2.4"
|
|
105
104
|
},
|
|
106
105
|
"dependencies": {
|
|
107
|
-
"@vex-chat/crypto": "2.0.
|
|
106
|
+
"@vex-chat/crypto": "2.0.1",
|
|
108
107
|
"@vex-chat/types": "2.0.0",
|
|
109
108
|
"axios": "1.15.0",
|
|
110
109
|
"eventemitter3": "5.0.4",
|
package/src/Client.ts
CHANGED
|
@@ -160,6 +160,12 @@ export interface ClientOptions {
|
|
|
160
160
|
saveHistory?: boolean;
|
|
161
161
|
/** Use `http/ws` instead of `https/wss`. Intended for local/dev environments. */
|
|
162
162
|
unsafeHttp?: boolean;
|
|
163
|
+
/**
|
|
164
|
+
* When set (non-empty), sent as `x-dev-api-key` on every HTTP request.
|
|
165
|
+
* Spire omits in-process rate limits when this matches the server's `DEV_API_KEY`
|
|
166
|
+
* (local / load-testing only — never use in production).
|
|
167
|
+
*/
|
|
168
|
+
devApiKey?: string;
|
|
163
169
|
}
|
|
164
170
|
|
|
165
171
|
/**
|
|
@@ -850,6 +856,14 @@ export class Client {
|
|
|
850
856
|
private readonly forwarded = new Set<string>();
|
|
851
857
|
|
|
852
858
|
private readonly host: string;
|
|
859
|
+
/**
|
|
860
|
+
* Node-only: per-client HTTP(S) agents (see `init()` + `storage/node/http-agents`).
|
|
861
|
+
* Dropped on `close()` so idle keep-alive sockets do not keep the process alive.
|
|
862
|
+
*/
|
|
863
|
+
private nodeHttpAgents?: {
|
|
864
|
+
http: { destroy(): void };
|
|
865
|
+
https: { destroy(): void };
|
|
866
|
+
};
|
|
853
867
|
private readonly http: AxiosInstance;
|
|
854
868
|
private readonly idKeys: KeyPair | null;
|
|
855
869
|
private isAlive: boolean = true;
|
|
@@ -933,6 +947,10 @@ export class Client {
|
|
|
933
947
|
});
|
|
934
948
|
|
|
935
949
|
this.http = axios.create({ responseType: "arraybuffer" });
|
|
950
|
+
const devKey = options?.devApiKey?.trim();
|
|
951
|
+
if (devKey !== undefined && devKey.length > 0) {
|
|
952
|
+
this.http.defaults.headers.common["x-dev-api-key"] = devKey;
|
|
953
|
+
}
|
|
936
954
|
|
|
937
955
|
this.socket = new WebSocketAdapter(this.prefixes.WS + this.host);
|
|
938
956
|
this.socket.onerror = () => {};
|
|
@@ -1023,6 +1041,32 @@ export class Client {
|
|
|
1023
1041
|
return xMnemonic(xKDF(XUtils.decodeHex(session.fingerprint)));
|
|
1024
1042
|
}
|
|
1025
1043
|
|
|
1044
|
+
/**
|
|
1045
|
+
* True when running under Node (has `process.versions`).
|
|
1046
|
+
* Uses indirect lookup so the bare `process` global never appears in
|
|
1047
|
+
* source that the platform-guard plugin scans.
|
|
1048
|
+
*/
|
|
1049
|
+
private static isNodeRuntime(): boolean {
|
|
1050
|
+
try {
|
|
1051
|
+
const g = Object.getOwnPropertyDescriptor(
|
|
1052
|
+
globalThis,
|
|
1053
|
+
"\u0070rocess",
|
|
1054
|
+
);
|
|
1055
|
+
if (!g) return false;
|
|
1056
|
+
const proc: unknown =
|
|
1057
|
+
typeof g.get === "function" ? g.get() : g.value;
|
|
1058
|
+
if (typeof proc !== "object" || proc === null) {
|
|
1059
|
+
return false;
|
|
1060
|
+
}
|
|
1061
|
+
return (
|
|
1062
|
+
"versions" in proc &&
|
|
1063
|
+
typeof (proc as { versions?: unknown }).versions === "object"
|
|
1064
|
+
);
|
|
1065
|
+
} catch {
|
|
1066
|
+
return false;
|
|
1067
|
+
}
|
|
1068
|
+
}
|
|
1069
|
+
|
|
1026
1070
|
/**
|
|
1027
1071
|
* Browser-safe NODE_ENV accessor.
|
|
1028
1072
|
* Uses indirect lookup so the bare `process` global never appears in
|
|
@@ -1062,6 +1106,15 @@ export class Client {
|
|
|
1062
1106
|
}
|
|
1063
1107
|
}
|
|
1064
1108
|
|
|
1109
|
+
/**
|
|
1110
|
+
* Fresh read of the `manuallyClosing` flag for async loops — direct property checks
|
|
1111
|
+
* after `await` are flagged as always-false by control-flow analysis even though
|
|
1112
|
+
* `close()` can run concurrently.
|
|
1113
|
+
*/
|
|
1114
|
+
private isManualCloseInFlight(): boolean {
|
|
1115
|
+
return this.manuallyClosing;
|
|
1116
|
+
}
|
|
1117
|
+
|
|
1065
1118
|
/**
|
|
1066
1119
|
* Closes the client — disconnects the WebSocket, shuts down storage,
|
|
1067
1120
|
* and emits `closed` unless `muteEvent` is `true`.
|
|
@@ -1073,6 +1126,12 @@ export class Client {
|
|
|
1073
1126
|
this.socket.close();
|
|
1074
1127
|
await this.database.close();
|
|
1075
1128
|
|
|
1129
|
+
if (this.nodeHttpAgents) {
|
|
1130
|
+
this.nodeHttpAgents.http.destroy();
|
|
1131
|
+
this.nodeHttpAgents.https.destroy();
|
|
1132
|
+
delete this.nodeHttpAgents;
|
|
1133
|
+
}
|
|
1134
|
+
|
|
1076
1135
|
if (this.pingInterval) {
|
|
1077
1136
|
clearInterval(this.pingInterval);
|
|
1078
1137
|
}
|
|
@@ -1539,6 +1598,9 @@ export class Client {
|
|
|
1539
1598
|
}
|
|
1540
1599
|
|
|
1541
1600
|
if (!this.xKeyRing) {
|
|
1601
|
+
if (this.manuallyClosing) {
|
|
1602
|
+
return;
|
|
1603
|
+
}
|
|
1542
1604
|
throw new Error("Key ring not initialized.");
|
|
1543
1605
|
}
|
|
1544
1606
|
|
|
@@ -1779,11 +1841,10 @@ export class Client {
|
|
|
1779
1841
|
|
|
1780
1842
|
const msgBytes = Uint8Array.from(msgpack.encode(copy));
|
|
1781
1843
|
|
|
1782
|
-
const devices = await this.
|
|
1783
|
-
|
|
1784
|
-
|
|
1785
|
-
|
|
1786
|
-
}
|
|
1844
|
+
const devices = await this.fetchUserDeviceListWithBackoff(
|
|
1845
|
+
this.getUser().userID,
|
|
1846
|
+
"own",
|
|
1847
|
+
);
|
|
1787
1848
|
const promises = [];
|
|
1788
1849
|
for (const device of devices) {
|
|
1789
1850
|
if (device.deviceID !== this.getDevice().deviceID) {
|
|
@@ -1881,6 +1942,9 @@ export class Client {
|
|
|
1881
1942
|
}
|
|
1882
1943
|
|
|
1883
1944
|
private async getMail(): Promise<void> {
|
|
1945
|
+
if (this.manuallyClosing) {
|
|
1946
|
+
return;
|
|
1947
|
+
}
|
|
1884
1948
|
while (this.fetchingMail) {
|
|
1885
1949
|
await sleep(500);
|
|
1886
1950
|
}
|
|
@@ -2034,22 +2098,86 @@ export class Client {
|
|
|
2034
2098
|
return this.user;
|
|
2035
2099
|
}
|
|
2036
2100
|
|
|
2101
|
+
private deviceListFailureDetail(err: unknown): string {
|
|
2102
|
+
if (!isAxiosError(err)) {
|
|
2103
|
+
return "";
|
|
2104
|
+
}
|
|
2105
|
+
const st = err.response?.status;
|
|
2106
|
+
if (typeof st === "number") {
|
|
2107
|
+
return ` (HTTP ${String(st)})`;
|
|
2108
|
+
}
|
|
2109
|
+
if (err.code !== undefined) {
|
|
2110
|
+
return ` (${err.code})`;
|
|
2111
|
+
}
|
|
2112
|
+
return "";
|
|
2113
|
+
}
|
|
2114
|
+
|
|
2115
|
+
/**
|
|
2116
|
+
* Single GET for `/user/:id/devices`. On failure returns `null` (swallows errors)
|
|
2117
|
+
* — callers that need reliability should use `fetchUserDeviceListWithBackoff`.
|
|
2118
|
+
* Similar “best effort null” patterns elsewhere: `getChannelByID`,
|
|
2119
|
+
* `getDeviceByID` (HTTP leg), `getToken`, emoji upload fallbacks.
|
|
2120
|
+
*/
|
|
2037
2121
|
private async getUserDeviceList(userID: string): Promise<Device[] | null> {
|
|
2038
2122
|
try {
|
|
2039
|
-
|
|
2040
|
-
this.getHost() + "/user/" + userID + "/devices",
|
|
2041
|
-
);
|
|
2042
|
-
const devices = decodeAxios(DeviceArrayCodec, res.data);
|
|
2043
|
-
for (const device of devices) {
|
|
2044
|
-
this.deviceRecords[device.deviceID] = device;
|
|
2045
|
-
}
|
|
2046
|
-
|
|
2047
|
-
return devices;
|
|
2123
|
+
return await this.fetchUserDeviceListOnce(userID);
|
|
2048
2124
|
} catch (_err: unknown) {
|
|
2049
2125
|
return null;
|
|
2050
2126
|
}
|
|
2051
2127
|
}
|
|
2052
2128
|
|
|
2129
|
+
private async fetchUserDeviceListOnce(userID: string): Promise<Device[]> {
|
|
2130
|
+
const res = await this.http.get(
|
|
2131
|
+
this.getHost() + "/user/" + userID + "/devices",
|
|
2132
|
+
);
|
|
2133
|
+
const devices = decodeAxios(DeviceArrayCodec, res.data);
|
|
2134
|
+
for (const device of devices) {
|
|
2135
|
+
this.deviceRecords[device.deviceID] = device;
|
|
2136
|
+
}
|
|
2137
|
+
return devices;
|
|
2138
|
+
}
|
|
2139
|
+
|
|
2140
|
+
/**
|
|
2141
|
+
* DM / forward paths need the peer’s (or self) device rows under load: bounded
|
|
2142
|
+
* retries with exponential backoff (same shape as session pubkey hydration).
|
|
2143
|
+
*/
|
|
2144
|
+
private async fetchUserDeviceListWithBackoff(
|
|
2145
|
+
userID: string,
|
|
2146
|
+
label: "peer" | "own",
|
|
2147
|
+
): Promise<Device[]> {
|
|
2148
|
+
const base =
|
|
2149
|
+
label === "own"
|
|
2150
|
+
? "Couldn't get own devices"
|
|
2151
|
+
: "Couldn't get device list";
|
|
2152
|
+
let lastErr: unknown;
|
|
2153
|
+
for (let attempt = 0; attempt < 5; attempt++) {
|
|
2154
|
+
if (attempt > 0) {
|
|
2155
|
+
if (this.isManualCloseInFlight()) {
|
|
2156
|
+
throw new Error(
|
|
2157
|
+
`${base}${this.deviceListFailureDetail(lastErr)}`,
|
|
2158
|
+
);
|
|
2159
|
+
}
|
|
2160
|
+
const delayMs = 100 * 2 ** (attempt - 1);
|
|
2161
|
+
// Chunk the delay to allow close() to interrupt
|
|
2162
|
+
const chunkMs = 10;
|
|
2163
|
+
for (let elapsed = 0; elapsed < delayMs; elapsed += chunkMs) {
|
|
2164
|
+
if (this.isManualCloseInFlight()) {
|
|
2165
|
+
throw new Error(
|
|
2166
|
+
`${base}${this.deviceListFailureDetail(lastErr)}`,
|
|
2167
|
+
);
|
|
2168
|
+
}
|
|
2169
|
+
await sleep(Math.min(chunkMs, delayMs - elapsed));
|
|
2170
|
+
}
|
|
2171
|
+
}
|
|
2172
|
+
try {
|
|
2173
|
+
return await this.fetchUserDeviceListOnce(userID);
|
|
2174
|
+
} catch (err: unknown) {
|
|
2175
|
+
lastErr = err;
|
|
2176
|
+
}
|
|
2177
|
+
}
|
|
2178
|
+
throw new Error(`${base}${this.deviceListFailureDetail(lastErr)}`);
|
|
2179
|
+
}
|
|
2180
|
+
|
|
2053
2181
|
private async getUserList(channelID: string): Promise<User[]> {
|
|
2054
2182
|
const res = await this.http.post(
|
|
2055
2183
|
this.getHost() + "/userList/" + channelID,
|
|
@@ -2086,6 +2214,14 @@ export class Client {
|
|
|
2086
2214
|
}
|
|
2087
2215
|
this.hasInit = true;
|
|
2088
2216
|
|
|
2217
|
+
if (Client.isNodeRuntime()) {
|
|
2218
|
+
const { attachNodeAgentsToAxios, createNodeHttpAgents } =
|
|
2219
|
+
await import("./storage/node/http-agents.js");
|
|
2220
|
+
const agents = createNodeHttpAgents();
|
|
2221
|
+
this.nodeHttpAgents = agents;
|
|
2222
|
+
attachNodeAgentsToAxios(this.http, agents);
|
|
2223
|
+
}
|
|
2224
|
+
|
|
2089
2225
|
await this.populateKeyRing();
|
|
2090
2226
|
this.emitter.on("message", (message) => {
|
|
2091
2227
|
if (message.direction === "outgoing" && !message.forward) {
|
|
@@ -2218,6 +2354,9 @@ export class Client {
|
|
|
2218
2354
|
|
|
2219
2355
|
private newEphemeralKeys() {
|
|
2220
2356
|
if (!this.xKeyRing) {
|
|
2357
|
+
if (this.manuallyClosing) {
|
|
2358
|
+
return;
|
|
2359
|
+
}
|
|
2221
2360
|
throw new Error("Key ring not initialized.");
|
|
2222
2361
|
}
|
|
2223
2362
|
this.xKeyRing.ephemeralKeys = xBoxKeyPair();
|
|
@@ -2275,6 +2414,9 @@ export class Client {
|
|
|
2275
2414
|
private async postAuth() {
|
|
2276
2415
|
let count = 0;
|
|
2277
2416
|
for (;;) {
|
|
2417
|
+
if (this.isManualCloseInFlight()) {
|
|
2418
|
+
return;
|
|
2419
|
+
}
|
|
2278
2420
|
try {
|
|
2279
2421
|
await this.getMail();
|
|
2280
2422
|
count++;
|
|
@@ -2285,7 +2427,17 @@ export class Client {
|
|
|
2285
2427
|
count = 0;
|
|
2286
2428
|
}
|
|
2287
2429
|
} catch {}
|
|
2288
|
-
|
|
2430
|
+
if (this.isManualCloseInFlight()) {
|
|
2431
|
+
return;
|
|
2432
|
+
}
|
|
2433
|
+
// Chunk the idle delay so `close()` can unwind instead of waiting
|
|
2434
|
+
// out one full 60s timer (which would keep the process alive).
|
|
2435
|
+
for (let i = 0; i < 60; i++) {
|
|
2436
|
+
if (this.isManualCloseInFlight()) {
|
|
2437
|
+
return;
|
|
2438
|
+
}
|
|
2439
|
+
await sleep(1000);
|
|
2440
|
+
}
|
|
2289
2441
|
}
|
|
2290
2442
|
}
|
|
2291
2443
|
|
|
@@ -2303,6 +2455,10 @@ export class Client {
|
|
|
2303
2455
|
}
|
|
2304
2456
|
this.seenMailIDs.add(mail.mailID);
|
|
2305
2457
|
|
|
2458
|
+
if (this.manuallyClosing) {
|
|
2459
|
+
return;
|
|
2460
|
+
}
|
|
2461
|
+
|
|
2306
2462
|
this.sendReceipt(new Uint8Array(mail.nonce));
|
|
2307
2463
|
let timeout = 1;
|
|
2308
2464
|
while (this.reading) {
|
|
@@ -2313,6 +2469,9 @@ export class Client {
|
|
|
2313
2469
|
|
|
2314
2470
|
try {
|
|
2315
2471
|
const healSession = async () => {
|
|
2472
|
+
if (this.manuallyClosing || !this.xKeyRing) {
|
|
2473
|
+
return;
|
|
2474
|
+
}
|
|
2316
2475
|
const deviceEntry = await this.getDeviceByID(mail.sender);
|
|
2317
2476
|
const [user, _err] = await this.fetchUser(mail.authorID);
|
|
2318
2477
|
if (deviceEntry && user) {
|
|
@@ -2362,7 +2521,7 @@ export class Client {
|
|
|
2362
2521
|
const EK_A = ephKey;
|
|
2363
2522
|
|
|
2364
2523
|
if (!this.xKeyRing) {
|
|
2365
|
-
|
|
2524
|
+
return;
|
|
2366
2525
|
}
|
|
2367
2526
|
// my private keys
|
|
2368
2527
|
const IK_B = this.xKeyRing.identityKeys.secretKey;
|
|
@@ -2920,17 +3079,10 @@ export class Client {
|
|
|
2920
3079
|
throw new Error("Couldn't get user entry.");
|
|
2921
3080
|
}
|
|
2922
3081
|
|
|
2923
|
-
|
|
2924
|
-
|
|
2925
|
-
|
|
2926
|
-
|
|
2927
|
-
deviceList = await this.getUserDeviceList(userID);
|
|
2928
|
-
retries++;
|
|
2929
|
-
if (retries > 3) {
|
|
2930
|
-
throw new Error("Couldn't get device list.");
|
|
2931
|
-
}
|
|
2932
|
-
}
|
|
2933
|
-
}
|
|
3082
|
+
const deviceList = await this.fetchUserDeviceListWithBackoff(
|
|
3083
|
+
userID,
|
|
3084
|
+
"peer",
|
|
3085
|
+
);
|
|
2934
3086
|
const mailID = uuid.v4();
|
|
2935
3087
|
const promises: Array<Promise<void>> = [];
|
|
2936
3088
|
for (const device of deviceList) {
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { AxiosInstance } from "axios";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Node-only HTTP(S) agents for libvex axios — lives under `storage/node/` so the
|
|
5
|
+
* platform-guard plugin allows `node:http` / `node:https` (see poison-node-imports).
|
|
6
|
+
*/
|
|
7
|
+
import * as nodeHttp from "node:http";
|
|
8
|
+
import * as nodeHttps from "node:https";
|
|
9
|
+
|
|
10
|
+
export interface NodeHttpAgentPair {
|
|
11
|
+
readonly http: nodeHttp.Agent;
|
|
12
|
+
readonly https: nodeHttps.Agent;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export function createNodeHttpAgents(): NodeHttpAgentPair {
|
|
16
|
+
return {
|
|
17
|
+
http: new nodeHttp.Agent({ keepAlive: true }),
|
|
18
|
+
https: new nodeHttps.Agent({ keepAlive: true }),
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export function attachNodeAgentsToAxios(
|
|
23
|
+
instance: AxiosInstance,
|
|
24
|
+
agents: NodeHttpAgentPair,
|
|
25
|
+
): void {
|
|
26
|
+
instance.defaults.httpAgent = agents.http;
|
|
27
|
+
instance.defaults.httpsAgent = agents.https;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export function destroyNodeHttpAgents(agents: NodeHttpAgentPair): void {
|
|
31
|
+
agents.http.destroy();
|
|
32
|
+
agents.https.destroy();
|
|
33
|
+
}
|