@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 CHANGED
@@ -7,13 +7,12 @@
7
7
  [![Types](https://img.shields.io/npm/types/@vex-chat/libvex?style=flat-square&logo=typescript&color=3178c6)](./dist/index.d.ts)
8
8
  [![Type Coverage](https://img.shields.io/badge/dynamic/json?style=flat-square&label=type-coverage&prefix=%E2%89%A5&suffix=%25&query=$.typeCoverage.atLeast&url=https://raw.githubusercontent.com/vex-protocol/libvex-js/master/package.json&color=3178c6&logo=typescript)](https://github.com/plantain-00/type-coverage)
9
9
  [![Node](https://img.shields.io/node/v/@vex-chat/libvex?style=flat-square&color=339933&logo=nodedotjs)](./package.json)
10
- [![Bundle](https://deno.bundlejs.com/badge?q=@vex-chat/libvex&treeshake=[*])](https://bundlejs.com/?q=@vex-chat/libvex&treeshake=[*])
11
10
  [![OpenSSF Scorecard](https://img.shields.io/ossf-scorecard/github.com/vex-protocol/libvex-js?style=flat-square&label=Scorecard)](https://securityscorecards.dev/viewer/?uri=github.com/vex-protocol/libvex-js)
12
11
  [![Socket](https://socket.dev/api/badge/npm/package/@vex-chat/libvex)](https://socket.dev/npm/package/@vex-chat/libvex)
13
12
 
14
- Reference TypeScript client for the [Vex](https://vex.wtf) encrypted chat platform. Builds against the wire protocol defined in [@vex-chat/types](https://github.com/vex-protocol/types-js) and the cryptographic primitives in [@vex-chat/crypto](https://github.com/vex-protocol/crypto-js). Use it to build a chat client, a bot, or any application that needs to talk to a [spire](https://github.com/vex-protocol/spire) server.
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-chat.github.io/libvex-js/)
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), the OS keychain (`./keystore/node`), or wherever the embedding app keeps them.
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`, `winston`, and `zod` are required runtime dependencies and install automatically.
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 — store it in the OS keychain.
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(Client.randomUsername());
56
- await client.login();
53
+ await client.register("myUsername", "myPassword");
54
+ await client.login("myUsername", "myPassword");
57
55
 
58
- client.on("authed", async () => {
59
- const me = await client.users.me();
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 + OS keychain
74
- import {
75
- Client,
76
- makeStorage,
77
- BootstrapConfig,
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`) spins up a real spire server in a separate process point `VEX_API_URL` at a running spire if you want to test against a different host.
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
  /**
@@ -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.getUserDeviceList(this.getUser().userID);
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
- const res = await this.http.get(this.getHost() + "/user/" + userID + "/devices");
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
- await sleep(1000 * 60);
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
- throw new Error("Key ring not initialized.");
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
- let deviceList = await this.getUserDeviceList(userID);
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) {
@@ -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.0.0",
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.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.getUserDeviceList(this.getUser().userID);
1783
-
1784
- if (!devices) {
1785
- throw new Error("Couldn't get own devices.");
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
- const res = await this.http.get(
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
- await sleep(1000 * 60);
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
- throw new Error("Key ring not initialized.");
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
- let deviceList = await this.getUserDeviceList(userID);
2924
- if (!deviceList) {
2925
- let retries = 0;
2926
- while (!deviceList) {
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
+ }