@vex-chat/spire 1.0.0 → 1.0.2
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 +38 -38
- package/dist/ClientManager.d.ts +1 -3
- package/dist/ClientManager.js +7 -50
- package/dist/ClientManager.js.map +1 -1
- package/dist/Database.d.ts +49 -6
- package/dist/Database.js +255 -80
- package/dist/Database.js.map +1 -1
- package/dist/Spire.d.ts +0 -3
- package/dist/Spire.js +116 -81
- package/dist/Spire.js.map +1 -1
- package/dist/db/schema.d.ts +1 -0
- package/dist/migrations/2026-04-14_argon2id-password-hashing.d.ts +3 -0
- package/dist/migrations/2026-04-14_argon2id-password-hashing.js +12 -0
- package/dist/migrations/2026-04-14_argon2id-password-hashing.js.map +1 -0
- package/dist/run.js +0 -1
- package/dist/run.js.map +1 -1
- package/dist/server/avatar.d.ts +1 -3
- package/dist/server/avatar.js +7 -11
- package/dist/server/avatar.js.map +1 -1
- package/dist/server/errors.d.ts +3 -6
- package/dist/server/errors.js +2 -28
- package/dist/server/errors.js.map +1 -1
- package/dist/server/file.d.ts +1 -2
- package/dist/server/file.js +5 -7
- package/dist/server/file.js.map +1 -1
- package/dist/server/index.d.ts +1 -2
- package/dist/server/index.js +35 -33
- package/dist/server/index.js.map +1 -1
- package/dist/server/invite.d.ts +1 -2
- package/dist/server/invite.js +1 -1
- package/dist/server/invite.js.map +1 -1
- package/dist/server/rateLimit.d.ts +13 -3
- package/dist/server/rateLimit.js +57 -6
- package/dist/server/rateLimit.js.map +1 -1
- package/dist/server/user.d.ts +1 -2
- package/dist/server/user.js +10 -8
- package/dist/server/user.js.map +1 -1
- package/dist/utils/jwtSecret.d.ts +3 -3
- package/dist/utils/jwtSecret.js +5 -6
- package/dist/utils/jwtSecret.js.map +1 -1
- package/dist/utils/loadEnv.js +1 -1
- package/dist/utils/loadEnv.js.map +1 -1
- package/package.json +17 -8
- package/src/ClientManager.ts +7 -60
- package/src/Database.ts +308 -89
- package/src/Spire.ts +122 -119
- package/src/__tests__/Database.spec.ts +0 -17
- package/src/db/schema.ts +1 -0
- package/src/migrations/2026-04-14_argon2id-password-hashing.ts +18 -0
- package/src/run.ts +0 -1
- package/src/server/avatar.ts +7 -14
- package/src/server/errors.ts +3 -32
- package/src/server/file.ts +5 -10
- package/src/server/index.ts +37 -37
- package/src/server/invite.ts +0 -2
- package/src/server/rateLimit.ts +43 -9
- package/src/server/user.ts +9 -9
- package/src/utils/jwtSecret.ts +5 -6
- package/src/utils/loadEnv.ts +1 -1
- package/dist/__tests__/Database.spec.d.ts +0 -1
- package/dist/__tests__/Database.spec.js +0 -136
- package/dist/__tests__/Database.spec.js.map +0 -1
- package/dist/utils/createLogger.d.ts +0 -5
- package/dist/utils/createLogger.js +0 -35
- package/dist/utils/createLogger.js.map +0 -1
- package/src/utils/createLogger.ts +0 -47
package/dist/Database.js
CHANGED
|
@@ -8,11 +8,13 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
|
|
|
8
8
|
};
|
|
9
9
|
import { EventEmitter } from "events";
|
|
10
10
|
import { pbkdf2Sync } from "node:crypto";
|
|
11
|
+
import { statSync } from "node:fs";
|
|
11
12
|
import * as fs from "node:fs/promises";
|
|
12
13
|
import path from "node:path";
|
|
13
14
|
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
14
|
-
import {
|
|
15
|
+
import { XUtils } from "@vex-chat/crypto";
|
|
15
16
|
import { MailType } from "@vex-chat/types";
|
|
17
|
+
import argon2 from "argon2";
|
|
16
18
|
/**
|
|
17
19
|
* Narrow a plain integer from the `mailType` SQL column to the
|
|
18
20
|
* `MailType` union (0 = initial, 1 = subsequent). Throws if the
|
|
@@ -30,7 +32,6 @@ function parseMailType(n) {
|
|
|
30
32
|
import BetterSqlite3 from "better-sqlite3";
|
|
31
33
|
import { Kysely, Migrator, sql, SqliteDialect } from "kysely";
|
|
32
34
|
import { stringify as uuidStringify, validate as uuidValidate } from "uuid";
|
|
33
|
-
import { createLogger } from "./utils/createLogger.js";
|
|
34
35
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
35
36
|
const migrationFolder = path.join(__dirname, "migrations");
|
|
36
37
|
/**
|
|
@@ -80,16 +81,30 @@ function isMigration(mod) {
|
|
|
80
81
|
typeof mod.up === "function");
|
|
81
82
|
}
|
|
82
83
|
const pubkeyRegex = /[0-9a-f]{64}/;
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
// SQLite stores booleans as integers and dates as strings, but the
|
|
86
|
-
// @vex-chat/types interfaces expect boolean / Date.
|
|
84
|
+
/** Legacy iteration count kept only for verifying old PBKDF2 hashes. */
|
|
85
|
+
const PBKDF2_ITERATIONS = 1000;
|
|
87
86
|
export class Database extends EventEmitter {
|
|
88
87
|
db;
|
|
89
|
-
|
|
88
|
+
/** Underlying better-sqlite3 handle (file or :memory:). */
|
|
89
|
+
rawSqlite;
|
|
90
|
+
/**
|
|
91
|
+
* In-process cache for {@link retrieveUserDeviceList} when queried for a
|
|
92
|
+
* single owner. Libvex calls GET /user/:id/devices on every outgoing
|
|
93
|
+
* `forward()`; stress runs otherwise hammer SQLite with identical reads.
|
|
94
|
+
* Cleared on device create/delete and when the DB is closed.
|
|
95
|
+
*/
|
|
96
|
+
userDeviceListCache = new Map();
|
|
97
|
+
/**
|
|
98
|
+
* Short TTL cache for {@link retrieveEmojiList} (key = server id, stored as
|
|
99
|
+
* `emojis.owner`). The noise harness fires `emoji.retrieveList` as a
|
|
100
|
+
* follow-up on ~1/25 successful ops, so this path can contend on SQLite
|
|
101
|
+
* before heavier surfaces. Invalidated on emoji create/delete.
|
|
102
|
+
*/
|
|
103
|
+
emojiListByServerCache = new Map();
|
|
104
|
+
static USER_DEVICE_LIST_CACHE_TTL_MS = 10_000;
|
|
105
|
+
static EMOJI_LIST_CACHE_TTL_MS = 10_000;
|
|
90
106
|
constructor(options) {
|
|
91
107
|
super();
|
|
92
|
-
this.log = createLogger("spire-db", options?.logLevel || "error");
|
|
93
108
|
const dbType = options?.dbType || "sqlite3";
|
|
94
109
|
let filename;
|
|
95
110
|
switch (dbType) {
|
|
@@ -104,20 +119,78 @@ export class Database extends EventEmitter {
|
|
|
104
119
|
filename = "spire.sqlite";
|
|
105
120
|
break;
|
|
106
121
|
}
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
122
|
+
this.rawSqlite = new BetterSqlite3(filename);
|
|
123
|
+
this.rawSqlite.pragma("journal_mode = WAL");
|
|
124
|
+
this.rawSqlite.pragma("synchronous = NORMAL");
|
|
125
|
+
this.rawSqlite.pragma("busy_timeout = 5000");
|
|
126
|
+
this.rawSqlite.pragma("cache_size = -64000");
|
|
127
|
+
this.rawSqlite.pragma("temp_store = memory");
|
|
128
|
+
this.rawSqlite.pragma("foreign_keys = ON");
|
|
114
129
|
this.db = new Kysely({
|
|
115
|
-
dialect: new SqliteDialect({ database:
|
|
130
|
+
dialect: new SqliteDialect({ database: this.rawSqlite }),
|
|
116
131
|
});
|
|
117
132
|
void this.init();
|
|
118
133
|
}
|
|
134
|
+
/**
|
|
135
|
+
* Dev-only snapshot of SQLite files + pragmas (same process as Spire).
|
|
136
|
+
* Not for production callers.
|
|
137
|
+
*/
|
|
138
|
+
getDevSqliteMonitor() {
|
|
139
|
+
const openedAs = this.rawSqlite.name;
|
|
140
|
+
const absPath = openedAs === ":memory:"
|
|
141
|
+
? ":memory:"
|
|
142
|
+
: path.isAbsolute(openedAs)
|
|
143
|
+
? openedAs
|
|
144
|
+
: path.resolve(process.cwd(), openedAs);
|
|
145
|
+
const journalMode = this.rawSqlite.pragma("journal_mode", {
|
|
146
|
+
simple: true,
|
|
147
|
+
});
|
|
148
|
+
const synchronous = this.rawSqlite.pragma("synchronous", {
|
|
149
|
+
simple: true,
|
|
150
|
+
});
|
|
151
|
+
const busyTimeout = this.rawSqlite.pragma("busy_timeout", {
|
|
152
|
+
simple: true,
|
|
153
|
+
});
|
|
154
|
+
const cacheSize = this.rawSqlite.pragma("cache_size", { simple: true });
|
|
155
|
+
const pageCount = this.rawSqlite.pragma("page_count", { simple: true });
|
|
156
|
+
const pageSize = this.rawSqlite.pragma("page_size", { simple: true });
|
|
157
|
+
const freelistCount = this.rawSqlite.pragma("freelist_count", {
|
|
158
|
+
simple: true,
|
|
159
|
+
});
|
|
160
|
+
const out = {
|
|
161
|
+
absPath,
|
|
162
|
+
busyTimeout,
|
|
163
|
+
cacheSize,
|
|
164
|
+
freelistCount,
|
|
165
|
+
journalMode,
|
|
166
|
+
openedAs,
|
|
167
|
+
pageCount,
|
|
168
|
+
pageSize,
|
|
169
|
+
synchronous,
|
|
170
|
+
};
|
|
171
|
+
if (openedAs !== ":memory:") {
|
|
172
|
+
const filePaths = {
|
|
173
|
+
main: absPath,
|
|
174
|
+
shm: `${absPath}-shm`,
|
|
175
|
+
wal: `${absPath}-wal`,
|
|
176
|
+
};
|
|
177
|
+
out["filePaths"] = filePaths;
|
|
178
|
+
const sizes = {};
|
|
179
|
+
for (const [label, fp] of Object.entries(filePaths)) {
|
|
180
|
+
try {
|
|
181
|
+
sizes[label] = statSync(fp).size;
|
|
182
|
+
}
|
|
183
|
+
catch {
|
|
184
|
+
sizes[label] = 0;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
out["fileBytes"] = sizes;
|
|
188
|
+
}
|
|
189
|
+
return out;
|
|
190
|
+
}
|
|
119
191
|
async close() {
|
|
120
|
-
this.
|
|
192
|
+
this.userDeviceListCache.clear();
|
|
193
|
+
this.emojiListByServerCache.clear();
|
|
121
194
|
await this.db.destroy();
|
|
122
195
|
}
|
|
123
196
|
async createChannel(name, serverID) {
|
|
@@ -139,6 +212,7 @@ export class Database extends EventEmitter {
|
|
|
139
212
|
signKey: payload.signKey,
|
|
140
213
|
};
|
|
141
214
|
await this.db.insertInto("devices").values(device).execute();
|
|
215
|
+
this.userDeviceListCache.delete(owner);
|
|
142
216
|
const medPreKeys = {
|
|
143
217
|
deviceID: device.deviceID,
|
|
144
218
|
index: payload.preKeyIndex,
|
|
@@ -152,6 +226,7 @@ export class Database extends EventEmitter {
|
|
|
152
226
|
}
|
|
153
227
|
async createEmoji(emoji) {
|
|
154
228
|
await this.db.insertInto("emojis").values(emoji).execute();
|
|
229
|
+
this.emojiListByServerCache.delete(emoji.owner);
|
|
155
230
|
}
|
|
156
231
|
async createFile(file) {
|
|
157
232
|
await this.db.insertInto("files").values(file).execute();
|
|
@@ -167,27 +242,29 @@ export class Database extends EventEmitter {
|
|
|
167
242
|
return invite;
|
|
168
243
|
}
|
|
169
244
|
async createPermission(userID, resourceType, resourceID, powerLevel) {
|
|
170
|
-
|
|
171
|
-
//
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
245
|
+
// Atomic check-then-insert inside a transaction so two concurrent
|
|
246
|
+
// callers cannot both find "no existing" and insert duplicates.
|
|
247
|
+
return this.db.transaction().execute(async (trx) => {
|
|
248
|
+
const checkPermission = await trx
|
|
249
|
+
.selectFrom("permissions")
|
|
250
|
+
.selectAll()
|
|
251
|
+
.where("userID", "=", userID)
|
|
252
|
+
.where("resourceID", "=", resourceID)
|
|
253
|
+
.execute();
|
|
254
|
+
const existing = checkPermission[0];
|
|
255
|
+
if (existing) {
|
|
256
|
+
return existing;
|
|
257
|
+
}
|
|
258
|
+
const permission = {
|
|
259
|
+
permissionID: crypto.randomUUID(),
|
|
260
|
+
powerLevel,
|
|
261
|
+
resourceID,
|
|
262
|
+
resourceType,
|
|
263
|
+
userID,
|
|
264
|
+
};
|
|
265
|
+
await trx.insertInto("permissions").values(permission).execute();
|
|
266
|
+
return permission;
|
|
267
|
+
});
|
|
191
268
|
}
|
|
192
269
|
async createServer(name, ownerID) {
|
|
193
270
|
// create the server
|
|
@@ -211,12 +288,11 @@ export class Database extends EventEmitter {
|
|
|
211
288
|
}
|
|
212
289
|
async createUser(regKey, regPayload) {
|
|
213
290
|
try {
|
|
214
|
-
const
|
|
215
|
-
const passwordHash = hashPassword(regPayload.password, salt);
|
|
291
|
+
const passwordHash = await hashPasswordArgon2(regPayload.password);
|
|
216
292
|
const user = {
|
|
217
293
|
lastSeen: new Date().toISOString(),
|
|
218
|
-
passwordHash
|
|
219
|
-
passwordSalt:
|
|
294
|
+
passwordHash,
|
|
295
|
+
passwordSalt: "",
|
|
220
296
|
userID: uuidStringify(regKey),
|
|
221
297
|
username: regPayload.username,
|
|
222
298
|
};
|
|
@@ -224,6 +300,7 @@ export class Database extends EventEmitter {
|
|
|
224
300
|
.insertInto("users")
|
|
225
301
|
.values({
|
|
226
302
|
...user,
|
|
303
|
+
hashAlgo: "argon2id",
|
|
227
304
|
lastSeen: user.lastSeen,
|
|
228
305
|
})
|
|
229
306
|
.execute();
|
|
@@ -246,6 +323,11 @@ export class Database extends EventEmitter {
|
|
|
246
323
|
.execute();
|
|
247
324
|
}
|
|
248
325
|
async deleteDevice(deviceID) {
|
|
326
|
+
const ownerRow = await this.db
|
|
327
|
+
.selectFrom("devices")
|
|
328
|
+
.select("owner")
|
|
329
|
+
.where("deviceID", "=", deviceID)
|
|
330
|
+
.executeTakeFirst();
|
|
249
331
|
await this.db
|
|
250
332
|
.deleteFrom("preKeys")
|
|
251
333
|
.where("deviceID", "=", deviceID)
|
|
@@ -259,12 +341,19 @@ export class Database extends EventEmitter {
|
|
|
259
341
|
.set({ deleted: 1 })
|
|
260
342
|
.where("deviceID", "=", deviceID)
|
|
261
343
|
.execute();
|
|
344
|
+
if (ownerRow?.owner) {
|
|
345
|
+
this.userDeviceListCache.delete(ownerRow.owner);
|
|
346
|
+
}
|
|
262
347
|
}
|
|
263
348
|
async deleteEmoji(emojiID) {
|
|
349
|
+
const existing = await this.retrieveEmoji(emojiID);
|
|
264
350
|
await this.db
|
|
265
351
|
.deleteFrom("emojis")
|
|
266
352
|
.where("emojiID", "=", emojiID)
|
|
267
353
|
.execute();
|
|
354
|
+
if (existing) {
|
|
355
|
+
this.emojiListByServerCache.delete(existing.owner);
|
|
356
|
+
}
|
|
268
357
|
}
|
|
269
358
|
async deleteInvite(inviteID) {
|
|
270
359
|
await this.db
|
|
@@ -320,30 +409,32 @@ export class Database extends EventEmitter {
|
|
|
320
409
|
return keyBundle;
|
|
321
410
|
}
|
|
322
411
|
async getOTK(deviceID) {
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
412
|
+
// Atomic select-then-delete inside a transaction so two concurrent
|
|
413
|
+
// callers cannot dispense the same one-time key.
|
|
414
|
+
return this.db.transaction().execute(async (trx) => {
|
|
415
|
+
const rows = await trx
|
|
416
|
+
.selectFrom("oneTimeKeys")
|
|
417
|
+
.selectAll()
|
|
418
|
+
.where("deviceID", "=", deviceID)
|
|
419
|
+
.orderBy("index")
|
|
420
|
+
.limit(1)
|
|
421
|
+
.execute();
|
|
422
|
+
const otkInfo = rows[0];
|
|
423
|
+
if (!otkInfo) {
|
|
424
|
+
return null;
|
|
425
|
+
}
|
|
426
|
+
await trx
|
|
427
|
+
.deleteFrom("oneTimeKeys")
|
|
428
|
+
.where("deviceID", "=", deviceID)
|
|
429
|
+
.where("index", "=", otkInfo.index)
|
|
430
|
+
.execute();
|
|
431
|
+
return {
|
|
432
|
+
deviceID: otkInfo.deviceID,
|
|
433
|
+
index: otkInfo.index,
|
|
434
|
+
publicKey: XUtils.decodeHex(otkInfo.publicKey),
|
|
435
|
+
signature: XUtils.decodeHex(otkInfo.signature),
|
|
436
|
+
};
|
|
437
|
+
});
|
|
347
438
|
}
|
|
348
439
|
async getOTKCount(deviceID) {
|
|
349
440
|
const result = await this.db
|
|
@@ -401,8 +492,8 @@ export class Database extends EventEmitter {
|
|
|
401
492
|
await sql `select 1 as ok`.execute(this.db);
|
|
402
493
|
return true;
|
|
403
494
|
}
|
|
404
|
-
catch (
|
|
405
|
-
|
|
495
|
+
catch (_err) {
|
|
496
|
+
// debugger: health check failed
|
|
406
497
|
return false;
|
|
407
498
|
}
|
|
408
499
|
}
|
|
@@ -420,6 +511,17 @@ export class Database extends EventEmitter {
|
|
|
420
511
|
.where("userID", "=", user.userID)
|
|
421
512
|
.execute();
|
|
422
513
|
}
|
|
514
|
+
async rehashPassword(userID, newHash) {
|
|
515
|
+
await this.db
|
|
516
|
+
.updateTable("users")
|
|
517
|
+
.set({
|
|
518
|
+
hashAlgo: "argon2id",
|
|
519
|
+
passwordHash: newHash,
|
|
520
|
+
passwordSalt: "",
|
|
521
|
+
})
|
|
522
|
+
.where("userID", "=", userID)
|
|
523
|
+
.execute();
|
|
524
|
+
}
|
|
423
525
|
/**
|
|
424
526
|
* Retrives a list of users that should be notified when a specific resourceID
|
|
425
527
|
* experiences changes.
|
|
@@ -485,12 +587,22 @@ export class Database extends EventEmitter {
|
|
|
485
587
|
.execute();
|
|
486
588
|
return rows[0] ?? null;
|
|
487
589
|
}
|
|
488
|
-
async retrieveEmojiList(
|
|
489
|
-
|
|
590
|
+
async retrieveEmojiList(serverID) {
|
|
591
|
+
const now = Date.now();
|
|
592
|
+
const hit = this.emojiListByServerCache.get(serverID);
|
|
593
|
+
if (hit && hit.until > now) {
|
|
594
|
+
return hit.rows.map((r) => ({ ...r }));
|
|
595
|
+
}
|
|
596
|
+
const rows = await this.db
|
|
490
597
|
.selectFrom("emojis")
|
|
491
598
|
.selectAll()
|
|
492
|
-
.where("owner", "=",
|
|
599
|
+
.where("owner", "=", serverID)
|
|
493
600
|
.execute();
|
|
601
|
+
this.emojiListByServerCache.set(serverID, {
|
|
602
|
+
rows: rows.map((r) => ({ ...r })),
|
|
603
|
+
until: now + Database.EMOJI_LIST_CACHE_TTL_MS,
|
|
604
|
+
});
|
|
605
|
+
return rows.map((r) => ({ ...r }));
|
|
494
606
|
}
|
|
495
607
|
async retrieveFile(fileID) {
|
|
496
608
|
const file = await this.db
|
|
@@ -602,14 +714,25 @@ export class Database extends EventEmitter {
|
|
|
602
714
|
.selectAll()
|
|
603
715
|
.where("serverID", "=", serverID)
|
|
604
716
|
.execute();
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
717
|
+
const nowMs = Date.now();
|
|
718
|
+
const expiredIds = [];
|
|
719
|
+
const valid = [];
|
|
720
|
+
for (const row of rows) {
|
|
721
|
+
const expMs = new Date(row.expiration).getTime();
|
|
722
|
+
if (!Number.isFinite(expMs) || expMs <= nowMs) {
|
|
723
|
+
expiredIds.push(row.inviteID);
|
|
724
|
+
continue;
|
|
610
725
|
}
|
|
611
|
-
|
|
612
|
-
}
|
|
726
|
+
valid.push(row);
|
|
727
|
+
}
|
|
728
|
+
if (expiredIds.length > 0) {
|
|
729
|
+
await this.db
|
|
730
|
+
.deleteFrom("invites")
|
|
731
|
+
.where("serverID", "=", serverID)
|
|
732
|
+
.where("inviteID", "in", expiredIds)
|
|
733
|
+
.execute();
|
|
734
|
+
}
|
|
735
|
+
return valid;
|
|
613
736
|
}
|
|
614
737
|
async retrieveServers(userID) {
|
|
615
738
|
const serverPerms = await this.retrievePermissions(userID, "server");
|
|
@@ -645,13 +768,33 @@ export class Database extends EventEmitter {
|
|
|
645
768
|
return row ? toUserRecord(row) : null;
|
|
646
769
|
}
|
|
647
770
|
async retrieveUserDeviceList(userIDs) {
|
|
771
|
+
const now = Date.now();
|
|
772
|
+
if (userIDs.length === 1) {
|
|
773
|
+
const owner = userIDs[0];
|
|
774
|
+
if (typeof owner === "string") {
|
|
775
|
+
const hit = this.userDeviceListCache.get(owner);
|
|
776
|
+
if (hit && hit.until > now) {
|
|
777
|
+
return hit.devices.map((d) => ({ ...d }));
|
|
778
|
+
}
|
|
779
|
+
}
|
|
780
|
+
}
|
|
648
781
|
const rows = await this.db
|
|
649
782
|
.selectFrom("devices")
|
|
650
783
|
.selectAll()
|
|
651
784
|
.where("owner", "in", userIDs)
|
|
652
785
|
.where("deleted", "=", 0)
|
|
653
786
|
.execute();
|
|
654
|
-
|
|
787
|
+
const devices = rows.map(toDevice);
|
|
788
|
+
if (userIDs.length === 1) {
|
|
789
|
+
const owner = userIDs[0];
|
|
790
|
+
if (typeof owner === "string") {
|
|
791
|
+
this.userDeviceListCache.set(owner, {
|
|
792
|
+
devices: devices.map((d) => ({ ...d })),
|
|
793
|
+
until: now + Database.USER_DEVICE_LIST_CACHE_TTL_MS,
|
|
794
|
+
});
|
|
795
|
+
}
|
|
796
|
+
}
|
|
797
|
+
return devices;
|
|
655
798
|
}
|
|
656
799
|
async retrieveUsers() {
|
|
657
800
|
const rows = await this.db.selectFrom("users").selectAll().execute();
|
|
@@ -708,6 +851,39 @@ export class Database extends EventEmitter {
|
|
|
708
851
|
this.emit("ready");
|
|
709
852
|
}
|
|
710
853
|
}
|
|
854
|
+
/**
|
|
855
|
+
* Hash a password with Argon2id (new default).
|
|
856
|
+
* Returns the encoded hash string which embeds salt, params, and digest.
|
|
857
|
+
*/
|
|
858
|
+
export async function hashPasswordArgon2(password) {
|
|
859
|
+
return argon2.hash(password, {
|
|
860
|
+
memoryCost: 65536,
|
|
861
|
+
parallelism: 4,
|
|
862
|
+
timeCost: 3,
|
|
863
|
+
type: argon2.argon2id,
|
|
864
|
+
});
|
|
865
|
+
}
|
|
866
|
+
/**
|
|
867
|
+
* Verify a password against either Argon2id or legacy PBKDF2 storage.
|
|
868
|
+
* Returns `{ valid, needsRehash }` — callers should rehash on success
|
|
869
|
+
* when `needsRehash` is true.
|
|
870
|
+
*/
|
|
871
|
+
export async function verifyPassword(password, stored) {
|
|
872
|
+
if (stored.hashAlgo === "argon2id") {
|
|
873
|
+
const valid = await argon2.verify(stored.passwordHash, password);
|
|
874
|
+
return { needsRehash: false, valid };
|
|
875
|
+
}
|
|
876
|
+
// Legacy PBKDF2 path
|
|
877
|
+
const salt = XUtils.decodeHex(stored.passwordSalt);
|
|
878
|
+
const computed = pbkdf2Sync(password, salt, PBKDF2_ITERATIONS, 32, "sha512");
|
|
879
|
+
const storedBuf = XUtils.decodeHex(stored.passwordHash);
|
|
880
|
+
if (computed.length !== storedBuf.length) {
|
|
881
|
+
return { needsRehash: false, valid: false };
|
|
882
|
+
}
|
|
883
|
+
const { timingSafeEqual } = await import("node:crypto");
|
|
884
|
+
const valid = timingSafeEqual(computed, storedBuf);
|
|
885
|
+
return { needsRehash: valid, valid };
|
|
886
|
+
}
|
|
711
887
|
function toDevice(row) {
|
|
712
888
|
return { ...row, deleted: Boolean(row.deleted) };
|
|
713
889
|
}
|
|
@@ -730,5 +906,4 @@ function toServer(row) {
|
|
|
730
906
|
function toUserRecord(row) {
|
|
731
907
|
return { ...row };
|
|
732
908
|
}
|
|
733
|
-
export const hashPassword = (password, salt) => pbkdf2Sync(password, salt, ITERATIONS, 32, "sha512");
|
|
734
909
|
//# sourceMappingURL=Database.js.map
|
package/dist/Database.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Database.js","sourceRoot":"","sources":["../src/Database.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Database.js","sourceRoot":"","sources":["../src/Database.ts"],"names":[],"mappings":"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"}
|
package/dist/Spire.d.ts
CHANGED
|
@@ -5,7 +5,6 @@ export declare const DEVICE_AUTH_JWT_EXPIRY = "1h";
|
|
|
5
5
|
export interface SpireOptions {
|
|
6
6
|
apiPort?: number;
|
|
7
7
|
dbType?: "mysql" | "sqlite3" | "sqlite3mem" | "sqlite";
|
|
8
|
-
logLevel?: "debug" | "error" | "http" | "info" | "silly" | "verbose" | "warn";
|
|
9
8
|
}
|
|
10
9
|
export declare class Spire extends EventEmitter {
|
|
11
10
|
private actionTokens;
|
|
@@ -15,8 +14,6 @@ export declare class Spire extends EventEmitter {
|
|
|
15
14
|
private db;
|
|
16
15
|
private dbReady;
|
|
17
16
|
private deviceChallenges;
|
|
18
|
-
private log;
|
|
19
|
-
private options;
|
|
20
17
|
private queuedRequestIncrements;
|
|
21
18
|
private requestsTotal;
|
|
22
19
|
private requestsTotalLoaded;
|