@vex-chat/spire 1.0.1 → 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 +12 -11
- package/dist/ClientManager.js +1 -2
- package/dist/ClientManager.js.map +1 -1
- package/dist/Database.d.ts +24 -1
- package/dist/Database.js +201 -64
- package/dist/Database.js.map +1 -1
- package/dist/Spire.js +81 -8
- package/dist/Spire.js.map +1 -1
- package/dist/server/index.js +15 -2
- package/dist/server/index.js.map +1 -1
- package/dist/server/rateLimit.d.ts +10 -0
- package/dist/server/rateLimit.js +51 -0
- package/dist/server/rateLimit.js.map +1 -1
- package/dist/server/user.js +7 -3
- package/dist/server/user.js.map +1 -1
- package/package.json +12 -5
- package/src/ClientManager.ts +1 -2
- package/src/Database.ts +225 -68
- package/src/Spire.ts +85 -11
- package/src/server/index.ts +16 -2
- package/src/server/rateLimit.ts +37 -3
- package/src/server/user.ts +7 -3
- package/dist/__tests__/Database.spec.d.ts +0 -1
- package/dist/__tests__/Database.spec.js +0 -122
- package/dist/__tests__/Database.spec.js.map +0 -1
package/dist/Spire.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { EventEmitter } from "events";
|
|
2
2
|
import { execSync } from "node:child_process";
|
|
3
3
|
import * as fs from "node:fs";
|
|
4
|
+
import { freemem, loadavg, totalmem } from "node:os";
|
|
4
5
|
import path from "node:path";
|
|
5
6
|
import { fileURLToPath } from "node:url";
|
|
6
7
|
import express from "express";
|
|
@@ -14,7 +15,7 @@ import { z } from "zod/v4";
|
|
|
14
15
|
import { ClientManager } from "./ClientManager.js";
|
|
15
16
|
import { Database, hashPasswordArgon2, verifyPassword } from "./Database.js";
|
|
16
17
|
import { initApp, protect } from "./server/index.js";
|
|
17
|
-
import { authLimiter } from "./server/rateLimit.js";
|
|
18
|
+
import { authLimiter, devApiKeySkipsRateLimits } from "./server/rateLimit.js";
|
|
18
19
|
import { censorUser, getParam, getUser } from "./server/utils.js";
|
|
19
20
|
import { getJwtSecret } from "./utils/jwtSecret.js";
|
|
20
21
|
import { msgpack } from "./utils/msgpack.js";
|
|
@@ -139,13 +140,19 @@ export class Spire extends EventEmitter {
|
|
|
139
140
|
}
|
|
140
141
|
async bootstrapRequestCounter() {
|
|
141
142
|
const persistedTotal = await this.db.getRequestsTotal();
|
|
143
|
+
// Between the await above and this synchronous block, requests may
|
|
144
|
+
// have incremented both `requestsTotal` and `queuedRequestIncrements`.
|
|
145
|
+
// Capture the queue, mark loaded, then merge — never overwrite
|
|
146
|
+
// `requestsTotal` (which already includes in-flight increments).
|
|
142
147
|
const startupIncrements = this.queuedRequestIncrements;
|
|
143
148
|
this.queuedRequestIncrements = 0;
|
|
144
|
-
this.
|
|
149
|
+
this.requestsTotalLoaded = true;
|
|
150
|
+
// Add the persisted baseline on top of whatever the middleware
|
|
151
|
+
// already counted in-memory, instead of overwriting it.
|
|
152
|
+
this.requestsTotal += persistedTotal;
|
|
145
153
|
if (startupIncrements > 0) {
|
|
146
154
|
await this.db.incrementRequestsTotal(startupIncrements);
|
|
147
155
|
}
|
|
148
|
-
this.requestsTotalLoaded = true;
|
|
149
156
|
}
|
|
150
157
|
createActionToken(scope) {
|
|
151
158
|
const token = {
|
|
@@ -157,8 +164,9 @@ export class Spire extends EventEmitter {
|
|
|
157
164
|
return token;
|
|
158
165
|
}
|
|
159
166
|
deleteActionToken(key) {
|
|
160
|
-
|
|
161
|
-
|
|
167
|
+
const idx = this.actionTokens.indexOf(key);
|
|
168
|
+
if (idx !== -1) {
|
|
169
|
+
this.actionTokens.splice(idx, 1);
|
|
162
170
|
}
|
|
163
171
|
}
|
|
164
172
|
init(apiPort) {
|
|
@@ -206,8 +214,9 @@ export class Spire extends EventEmitter {
|
|
|
206
214
|
const userDetails = jwtResult.data.user;
|
|
207
215
|
const client = new ClientManager(ws, this.db, this.notify.bind(this), userDetails);
|
|
208
216
|
client.on("fail", () => {
|
|
209
|
-
|
|
210
|
-
|
|
217
|
+
const idx = this.clients.indexOf(client);
|
|
218
|
+
if (idx !== -1) {
|
|
219
|
+
this.clients.splice(idx, 1);
|
|
211
220
|
}
|
|
212
221
|
});
|
|
213
222
|
client.on("authed", () => {
|
|
@@ -341,6 +350,67 @@ export class Spire extends EventEmitter {
|
|
|
341
350
|
withinLatencyBudget: checkDurationMs <= STATUS_LATENCY_BUDGET_MS,
|
|
342
351
|
});
|
|
343
352
|
});
|
|
353
|
+
/**
|
|
354
|
+
* Dev-only process snapshot (same gate as rate-limit bypass: `DEV_API_KEY`
|
|
355
|
+
* env + `x-dev-api-key` header). Returns 404 when not enabled or key wrong
|
|
356
|
+
* so the route is not advertised to anonymous callers.
|
|
357
|
+
* Lets local stress / `sample <pid>` workflows see RSS, WS count, etc.
|
|
358
|
+
*/
|
|
359
|
+
this.api.get("/status/process", (req, res) => {
|
|
360
|
+
if (!devApiKeySkipsRateLimits(req)) {
|
|
361
|
+
res.sendStatus(404);
|
|
362
|
+
return;
|
|
363
|
+
}
|
|
364
|
+
const mu = process.memoryUsage();
|
|
365
|
+
const ru = process.resourceUsage();
|
|
366
|
+
res.json({
|
|
367
|
+
activeRequestsApprox: this.requestsTotal,
|
|
368
|
+
dbReady: this.dbReady,
|
|
369
|
+
hostOs: {
|
|
370
|
+
freemem: freemem(),
|
|
371
|
+
loadavg: loadavg(),
|
|
372
|
+
totalmem: totalmem(),
|
|
373
|
+
},
|
|
374
|
+
memory: {
|
|
375
|
+
arrayBuffers: mu.arrayBuffers,
|
|
376
|
+
external: mu.external,
|
|
377
|
+
heapTotal: mu.heapTotal,
|
|
378
|
+
heapUsed: mu.heapUsed,
|
|
379
|
+
rss: mu.rss,
|
|
380
|
+
},
|
|
381
|
+
pid: process.pid,
|
|
382
|
+
resourceUsage: {
|
|
383
|
+
fsRead: ru.fsRead,
|
|
384
|
+
fsWrite: ru.fsWrite,
|
|
385
|
+
maxRSS: ru.maxRSS,
|
|
386
|
+
systemMicros: ru.systemCPUTime,
|
|
387
|
+
userMicros: ru.userCPUTime,
|
|
388
|
+
},
|
|
389
|
+
uptimeSeconds: Math.floor(process.uptime()),
|
|
390
|
+
websocketClients: this.wss.clients.size,
|
|
391
|
+
});
|
|
392
|
+
});
|
|
393
|
+
/**
|
|
394
|
+
* Dev-only SQLite file + pragma snapshot (same gate as `/status/process`).
|
|
395
|
+
*/
|
|
396
|
+
this.api.get("/status/sqlite", (req, res) => {
|
|
397
|
+
if (!devApiKeySkipsRateLimits(req)) {
|
|
398
|
+
res.sendStatus(404);
|
|
399
|
+
return;
|
|
400
|
+
}
|
|
401
|
+
if (!this.dbReady) {
|
|
402
|
+
res.status(503).json({ dbReady: false, ok: false });
|
|
403
|
+
return;
|
|
404
|
+
}
|
|
405
|
+
try {
|
|
406
|
+
const sqlite = this.db.getDevSqliteMonitor();
|
|
407
|
+
res.json({ ok: true, sqlite });
|
|
408
|
+
}
|
|
409
|
+
catch (err) {
|
|
410
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
411
|
+
res.status(500).json({ error: msg, ok: false });
|
|
412
|
+
}
|
|
413
|
+
});
|
|
344
414
|
this.api.post("/goodbye", protect, (req, res) => {
|
|
345
415
|
jwt.sign({ user: req.user }, getJwtSecret(), { expiresIn: -1 });
|
|
346
416
|
res.sendStatus(200);
|
|
@@ -573,7 +643,10 @@ export class Spire extends EventEmitter {
|
|
|
573
643
|
});
|
|
574
644
|
}
|
|
575
645
|
notify(userID, event, transmissionID, data, deviceID) {
|
|
576
|
-
|
|
646
|
+
// Snapshot the array so that a synchronous `fail` → splice inside
|
|
647
|
+
// client.send() doesn't corrupt the iteration.
|
|
648
|
+
const snapshot = this.clients.slice();
|
|
649
|
+
for (const client of snapshot) {
|
|
577
650
|
if (deviceID) {
|
|
578
651
|
if (client.getDevice().deviceID === deviceID) {
|
|
579
652
|
const msg = {
|
package/dist/Spire.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Spire.js","sourceRoot":"","sources":["../src/Spire.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Spire.js","sourceRoot":"","sources":["../src/Spire.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAEH,YAAY,EACZ,sBAAsB,EACtB,SAAS,GACZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACH,YAAY,EACZ,yBAAyB,EACzB,WAAW,EACX,UAAU,GACb,MAAM,iBAAiB,CAAC;AAEzB,OAAO,GAAG,MAAM,cAAc,CAAC;AAC/B,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,MAAM,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;AACrC,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,2BAA2B;AAC3B,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;AAC3C,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC;AAC/B,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,CAAC;AAC3C,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,aAAa;AACxD,MAAM,wBAAwB,GAAG,GAAG,CAAC;AAErC,kBAAkB;AAClB,MAAM,aAAa,GAAG,cAAc,CAAC;AAErC,0EAA0E;AAC1E,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;IACvB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;CAC1B,CAAC,CAAC;AAEH,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IACxB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1B,IAAI,EAAE,UAAU;CACnB,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IACzB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC9B,CAAC,CAAC;AAEH,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC7B,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC5B,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7B,MAAM,EAAE,CAAC,CAAC,MAAM,CAAa,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,YAAY,UAAU,CAAC;IAChE,IAAI,EAAE,YAAY;CACrB,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AAClD,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;IAC5B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACtB,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC;AACL,CAAC;AAED,MAAM,aAAa,GAAG,GAAW,EAAE;IAC/B,IAAI,CAAC;QACD,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CACvB,IAAI,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAC3C;YACI,QAAQ,EAAE,MAAM;SACnB,CACJ,CAAC;QACF,MAAM,GAAG,GAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrC,IACI,OAAO,GAAG,KAAK,QAAQ;YACvB,GAAG,KAAK,IAAI;YACZ,SAAS,IAAI,GAAG;YAChB,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,EACjC,CAAC;YACC,OAAO,GAAG,CAAC,OAAO,CAAC;QACvB,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,SAAS,CAAC;IACrB,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,GAAW,EAAE;IAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/D,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAE/C,IAAI,CAAC;QACD,MAAM,GAAG,GAAG,QAAQ,CAAC,wCAAwC,EAAE;YAC3D,GAAG,EAAE,QAAQ;YACb,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;YACnC,OAAO,EAAE,IAAI;SAChB,CAAC,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,GAAG,IAAI,SAAS,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,SAAS,CAAC;IACrB,CAAC;AACL,CAAC,CAAC;AAOF,MAAM,OAAO,KAAM,SAAQ,YAAY;IAC3B,YAAY,GAAkB,EAAE,CAAC;IACjC,GAAG,GAAG,OAAO,EAAE,CAAC;IAChB,OAAO,GAAoB,EAAE,CAAC;IACrB,SAAS,GAAG,YAAY,EAAE,CAAC;IACpC,EAAE,CAAW;IACb,OAAO,GAAG,KAAK,CAAC;IAChB,gBAAgB,GAAG,IAAI,GAAG,EAG/B,CAAC;IACI,uBAAuB,GAAG,CAAC,CAAC;IAC5B,aAAa,GAAG,CAAC,CAAC;IAElB,mBAAmB,GAAG,KAAK,CAAC;IAE5B,MAAM,GAAkB,IAAI,CAAC;IAC7B,QAAQ,CAAU;IAET,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,OAAO,GAAG,aAAa,EAAE,CAAC;IACnC,GAAG,GAAoB,IAAI,eAAe,CAAC;QAC/C,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,IAAI;KACjB,CAAC,CAAC;IAEH,YAAY,EAAU,EAAE,OAAsB;QAC1C,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,QAAQ,GAAG,sBAAsB,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;QAE7D,iEAAiE;QACjE,mEAAmE;QACnE,kEAAkE;QAClE,iEAAiE;QACjE,+DAA+D;QAC/D,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;QAE/B,IAAI,CAAC,EAAE,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACrB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,uBAAuB,EAAE,CAAC,KAAK,CAAC,CAAC,IAAa,EAAE,EAAE;gBACnD,6CAA6C;YACjD,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,IAAI,KAAK,CAAC,CAAC;IACzC,CAAC;IAEM,KAAK,CAAC,KAAK;QACd,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;YAC5B,EAAE,CAAC,SAAS,EAAE,CAAC;QACnB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IAEO,KAAK,CAAC,uBAAuB;QACjC,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC;QAExD,mEAAmE;QACnE,uEAAuE;QACvE,+DAA+D;QAC/D,iEAAiE;QACjE,MAAM,iBAAiB,GAAG,IAAI,CAAC,uBAAuB,CAAC;QACvD,IAAI,CAAC,uBAAuB,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAEhC,+DAA+D;QAC/D,wDAAwD;QACxD,IAAI,CAAC,aAAa,IAAI,cAAc,CAAC;QAErC,IAAI,iBAAiB,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,CAAC,EAAE,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,CAAC;QAC5D,CAAC;IACL,CAAC;IAEO,iBAAiB,CAAC,KAAkB;QACxC,MAAM,KAAK,GAAgB;YACvB,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE;YACxB,KAAK;YACL,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACjC,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,OAAO,KAAK,CAAC;IACjB,CAAC;IAEO,iBAAiB,CAAC,GAAgB;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;YACb,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACrC,CAAC;IACL,CAAC;IAEO,IAAI,CAAC,OAAe;QACxB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;YAC9B,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC;YAExB,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC5B,IAAI,CAAC,uBAAuB,IAAI,CAAC,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAa,EAAE,EAAE;oBACtD,8CAA8C;gBAClD,CAAC,CAAC,CAAC;YACP,CAAC;YAED,IAAI,EAAE,CAAC;QACX,CAAC,CAAC,CAAC;QAEH,yEAAyE;QACzE,OAAO,CACH,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAC7B,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CACzB,CAAC;QAEF,iEAAiE;QACjE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE;YAC7B,MAAM,YAAY,GAAG,MAAM,CAAC;YAE5B,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC1B,EAAE,CAAC,KAAK,EAAE,CAAC;YACf,CAAC,EAAE,YAAY,CAAC,CAAC;YAEjB,MAAM,cAAc,GAAG,CAAC,IAAqC,EAAE,EAAE;gBAC7D,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;oBAC7B,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE;oBACjB,CAAC,CAAC,IAAI,YAAY,WAAW;wBAC3B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;wBAC9B,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACvC,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;gBAElC,IAAI,CAAC;oBACD,MAAM,SAAS,GAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAC3C,MAAM,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;oBAClD,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;wBACtB,MAAM,IAAI,KAAK,CACX,yCAAyC;4BACrC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAC9C,CAAC;oBACN,CAAC;oBACD,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CACrB,UAAU,CAAC,IAAI,CAAC,KAAK,EACrB,YAAY,EAAE,CACjB,CAAC;oBACF,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;oBAC/C,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;wBACrB,MAAM,IAAI,KAAK,CACX,uBAAuB;4BACnB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAC7C,CAAC;oBACN,CAAC;oBACD,MAAM,WAAW,GAAS,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;oBAE9C,MAAM,MAAM,GAAG,IAAI,aAAa,CAC5B,EAAE,EACF,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EACtB,WAAW,CACd,CAAC;oBAEF,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;wBACnB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;wBACzC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;4BACb,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;wBAChC,CAAC;oBACL,CAAC,CAAC,CAAC;oBAEH,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;wBACrB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC9B,CAAC,CAAC,CAAC;gBACP,CAAC;gBAAC,OAAO,IAAa,EAAE,CAAC;oBACrB,2BAA2B;oBAC3B,MAAM,MAAM,GAAY;wBACpB,cAAc,EAAE,MAAM,CAAC,UAAU,EAAE;wBACnC,IAAI,EAAE,cAAc;qBACvB,CAAC;oBACF,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;oBACpC,EAAE,CAAC,KAAK,EAAE,CAAC;gBACf,CAAC;YACL,CAAC,CAAC;YAEF,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;YACjC,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBAChB,YAAY,CAAC,KAAK,CAAC,CAAC;YACxB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,GAAG,CACR,mBAAmB,EACnB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YACf,IAAI,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC,KAAK,UAAU,EAAE,CAAC;gBAC5C,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YAC5B,CAAC;iBAAM,CAAC;gBACJ,IAAI,EAAE,CAAC;YACX,CAAC;QACL,CAAC,EACD,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACT,MAAM,aAAa,GAAG;gBAClB,MAAM;gBACN,UAAU;gBACV,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,OAAO;gBACP,SAAS;aACZ,CAAC;YAEF,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YAE7C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBACrC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBACpB,OAAO;YACX,CAAC;YAED,IAAI,KAAK,CAAC;YAEV,QAAQ,SAAS,EAAE,CAAC;gBAChB,KAAK,QAAQ;oBACT,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC;oBAC3B,MAAM;gBACV,KAAK,SAAS;oBACV,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC;oBAC5B,MAAM;gBACV,KAAK,QAAQ;oBACT,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC;oBAC3B,MAAM;gBACV,KAAK,OAAO;oBACR,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;oBAC1B,MAAM;gBACV,KAAK,MAAM;oBACP,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC;oBACzB,MAAM;gBACV,KAAK,QAAQ;oBACT,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC;oBAC3B,MAAM;gBACV,KAAK,UAAU;oBACX,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAC;oBAC7B,MAAM;gBACV;oBACI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;oBACpB,OAAO;YACf,CAAC;YAED,IAAI,CAAC;gBACD,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;gBAE5C,UAAU,CAAC,GAAG,EAAE;oBACZ,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;gBAClC,CAAC,EAAE,YAAY,CAAC,CAAC;gBAEjB,MAAM,YAAY,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;gBAC5D,MAAM,SAAS,GACX,YAAY,CAAC,QAAQ,CAAC,kBAAkB,CAAC;oBACzC,CAAC,YAAY,CAAC,QAAQ,CAAC,qBAAqB,CAAC;oBAC7C,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAElC,IAAI,SAAS,EAAE,CAAC;oBACZ,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC3B,CAAC;gBAED,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,qBAAqB,CAAC,CAAC;gBAC/C,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC3C,CAAC;YAAC,OAAO,IAAa,EAAE,CAAC;gBACrB,kCAAkC;gBAClC,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAC/B,CAAC;QACL,CAAC,CACJ,CAAC;QAEF,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAClC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;gBACZ,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBACpB,OAAO;YACX,CAAC;YAED,GAAG,CAAC,IAAI,CACJ,OAAO,CAAC,MAAM,CAAC;gBACX,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,IAAI,EAAE,GAAG,CAAC,IAAI;aACjB,CAAC,CACL,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;YACnC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAChB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;gBACpD,OAAO;YACX,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;YACxC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;YACnE,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;YAE7C,MAAM,EAAE,GAAG,SAAS,CAAC;YACrB,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC9D,GAAG,CAAC,IAAI,CAAC;gBACL,MAAM,EACF,SAAS,KAAK,GAAG;oBACjB,SAAS,KAAK,MAAM;oBACpB,SAAS,KAAK,KAAK;gBACvB,eAAe;gBACf,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,SAAS;gBACT,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,eAAe,EAAE,wBAAwB;gBACzC,OAAO,EAAE;oBACL,aAAa,EAAE,IAAI,CAAC,aAAa;iBACpC;gBACD,GAAG,EAAE,IAAI,IAAI,EAAE;gBACf,EAAE;gBACF,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;gBACvC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBAC3C,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,mBAAmB,EACf,eAAe,IAAI,wBAAwB;aAClD,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH;;;;;WAKG;QACH,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACzC,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,EAAE,CAAC;gBACjC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBACpB,OAAO;YACX,CAAC;YACD,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;YACjC,MAAM,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;YACnC,GAAG,CAAC,IAAI,CAAC;gBACL,oBAAoB,EAAE,IAAI,CAAC,aAAa;gBACxC,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,MAAM,EAAE;oBACJ,OAAO,EAAE,OAAO,EAAE;oBAClB,OAAO,EAAE,OAAO,EAAE;oBAClB,QAAQ,EAAE,QAAQ,EAAE;iBACvB;gBACD,MAAM,EAAE;oBACJ,YAAY,EAAE,EAAE,CAAC,YAAY;oBAC7B,QAAQ,EAAE,EAAE,CAAC,QAAQ;oBACrB,SAAS,EAAE,EAAE,CAAC,SAAS;oBACvB,QAAQ,EAAE,EAAE,CAAC,QAAQ;oBACrB,GAAG,EAAE,EAAE,CAAC,GAAG;iBACd;gBACD,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,aAAa,EAAE;oBACX,MAAM,EAAE,EAAE,CAAC,MAAM;oBACjB,OAAO,EAAE,EAAE,CAAC,OAAO;oBACnB,MAAM,EAAE,EAAE,CAAC,MAAM;oBACjB,YAAY,EAAE,EAAE,CAAC,aAAa;oBAC9B,UAAU,EAAE,EAAE,CAAC,WAAW;iBAC7B;gBACD,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBAC3C,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI;aAC1C,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH;;WAEG;QACH,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACxC,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,EAAE,CAAC;gBACjC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBACpB,OAAO;YACX,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAChB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;gBACpD,OAAO;YACX,CAAC;YACD,IAAI,CAAC;gBACD,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC;gBAC7C,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;YACnC,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACpB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7D,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACpD,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC5C,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YAChE,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;QAEH,gEAAgE;QAEhE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YAC1D,IAAI,CAAC;gBACD,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACrD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBAClB,OAAO,GAAG;yBACL,MAAM,CAAC,GAAG,CAAC;yBACX,IAAI,CAAC,EAAE,KAAK,EAAE,gCAAgC,EAAE,CAAC,CAAC;gBAC3D,CAAC;gBACD,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC;gBAE1C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;gBACtD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;oBACxC,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;gBAChE,CAAC;gBAED,sCAAsC;gBACtC,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;gBACjD,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;gBACxC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,WAAW,EAAE;oBACnC,QAAQ;oBACR,KAAK;oBACL,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;iBACnB,CAAC,CAAC;gBAEH,8BAA8B;gBAC9B,UAAU,CAAC,GAAG,EAAE;oBACZ,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBAC9C,CAAC,EAAE,uBAAuB,CAAC,CAAC;gBAE5B,OAAO,GAAG,CAAC,IAAI,CACX,OAAO,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CACpD,CAAC;YACN,CAAC;YAAC,OAAO,IAAa,EAAE,CAAC;gBACrB,mCAAmC;gBACnC,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAC/B,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YACjE,IAAI,CAAC;gBACD,MAAM,MAAM,GAAG,mBAAmB,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACvD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBAClB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;wBACxB,KAAK,EAAE,kCAAkC;qBAC5C,CAAC,CAAC;gBACP,CAAC;gBACD,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC;gBAE5C,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBACzD,IAAI,CAAC,SAAS,EAAE,CAAC;oBACb,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;wBACxB,KAAK,EAAE,iCAAiC;qBAC3C,CAAC,CAAC;gBACP,CAAC;gBAED,qCAAqC;gBACrC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBAE1C,eAAe;gBACf,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,IAAI,GAAG,uBAAuB,EAAE,CAAC;oBACxD,OAAO,GAAG;yBACL,MAAM,CAAC,GAAG,CAAC;yBACX,IAAI,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC,CAAC;gBAC/C,CAAC;gBAED,+CAA+C;gBAC/C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBAChE,IAAI,CAAC,MAAM,EAAE,CAAC;oBACV,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;gBAChE,CAAC;gBAED,+BAA+B;gBAC/B,MAAM,MAAM,GAAG,SAAS,CACpB,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EACxB,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CACnC,CAAC;gBACF,IAAI,CAAC,MAAM,EAAE,CAAC;oBACV,OAAO,GAAG;yBACL,MAAM,CAAC,GAAG,CAAC;yBACX,IAAI,CAAC,EAAE,KAAK,EAAE,gCAAgC,EAAE,CAAC,CAAC;gBAC3D,CAAC;gBAED,wDAAwD;gBACxD,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBAC7C,IAAI,WAAW,KAAK,SAAS,CAAC,KAAK,EAAE,CAAC;oBAClC,OAAO,GAAG;yBACL,MAAM,CAAC,GAAG,CAAC;yBACX,IAAI,CAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC,CAAC;gBAChD,CAAC;gBAED,uBAAuB;gBACvB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACtD,IAAI,CAAC,IAAI,EAAE,CAAC;oBACR,OAAO,GAAG;yBACL,MAAM,CAAC,GAAG,CAAC;yBACX,IAAI,CAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE,CAAC,CAAC;gBACpD,CAAC;gBAED,6CAA6C;gBAC7C,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAClB,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,EAC1B,YAAY,EAAE,EACd,EAAE,SAAS,EAAE,sBAAsB,EAAE,CACxC,CAAC;gBACF,OAAO,GAAG,CAAC,IAAI,CACX,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CACpD,CAAC;YACN,CAAC;YAAC,OAAO,IAAa,EAAE,CAAC;gBACrB,gCAAgC;gBAChC,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAC/B,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YAC/C,MAAM,mBAAmB,GAAG,GAAG,CAAC,MAAM,CAAC;YACvC,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACvB,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBACpB,OAAO;YACX,CAAC;YACD,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;YAEvC,MAAM,MAAM,GAAG,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACnD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAClB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBACjB,KAAK,EAAE,sBAAsB;oBAC7B,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;iBAC9B,CAAC,CAAC;gBACH,OAAO;YACX,CAAC;YACD,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC;YAErC,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CAClB,IAAI,EACJ,MAAM,EACN,mBAAmB,CAAC,QAAQ,EAC5B,iBAAiB,CAAC,MAAM,CAC3B,CAAC;YACF,MAAM,sBAAsB,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,cAAc,CACvD,IAAI,CAAC,SAAS,CACjB,CAAC;YACF,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAC1B,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBACpB,OAAO;YACX,CAAC;YAED,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACpB,IAAI,CAAC,MAAM,CACP,sBAAsB,CAAC,KAAK,EAC5B,MAAM,EACN,MAAM,CAAC,UAAU,EAAE,EACnB,IAAI,EACJ,IAAI,CAAC,SAAS,CACjB,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YACnD,MAAM,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC/C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAClB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBACjB,KAAK,EAAE,4BAA4B;iBACtC,CAAC,CAAC;gBACH,OAAO;YACX,CAAC;YACD,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC;YAE3C,IAAI,CAAC;gBACD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBACvD,IAAI,CAAC,SAAS,EAAE,CAAC;oBACb,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;oBACpB,OAAO;gBACX,CAAC;gBAED,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,MAAM,cAAc,CAC/C,QAAQ,EACR,SAAS,CACZ,CAAC;gBAEF,IAAI,CAAC,KAAK,EAAE,CAAC;oBACT,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;oBACpB,OAAO;gBACX,CAAC;gBAED,IAAI,WAAW,EAAE,CAAC;oBACd,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CAAC,CAAC;oBACnD,MAAM,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAC5D,CAAC;gBAED,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAClB,EAAE,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,EAC/B,YAAY,EAAE,EACd,EAAE,SAAS,EAAE,UAAU,EAAE,CAC5B,CAAC;gBAEF,oBAAoB;gBACpB,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;gBAElC,GAAG,CAAC,IAAI,CACJ,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CACzD,CAAC;YACN,CAAC;YAAC,OAAO,IAAa,EAAE,CAAC;gBACrB,uBAAuB;gBACvB,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACxB,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YACvD,IAAI,CAAC;gBACD,MAAM,SAAS,GAAG,yBAAyB,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAChE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;oBACrB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;wBACjB,KAAK,EAAE,8BAA8B;wBACrC,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,MAAM;qBACjC,CAAC,CAAC;oBACH,OAAO;gBACX,CAAC;gBACD,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC;gBAClC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC3C,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;wBACjB,KAAK,EAAE,8EAA8E;qBACxF,CAAC,CAAC;oBACH,OAAO;gBACX,CAAC;gBAED,MAAM,MAAM,GAAG,SAAS,CACpB,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,EACnC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CACvC,CAAC;gBAEF,IACI,MAAM;oBACN,IAAI,CAAC,aAAa,CACd,aAAa,CAAC,MAAM,CAAC,EACrB,WAAW,CAAC,QAAQ,CACvB,EACH,CAAC;oBACC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CACxC,MAAM,EACN,UAAU,CACb,CAAC;oBACF,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;wBACf,MAAM,OAAO,GACT,MAAM,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ;4BACzC,CAAC,CAAC,GAAG,CAAC,IAAI;4BACV,CAAC,CAAC,SAAS,CAAC;wBACpB,QAAQ,OAAO,EAAE,CAAC;4BACd,KAAK,cAAc;gCACf,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CACzC,uBAAuB,CAC1B,CAAC;gCACF,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CACxC,sBAAsB,CACzB,CAAC;gCAEF,IAAI,gBAAgB,EAAE,CAAC;oCACnB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;wCACjB,KAAK,EAAE,iCAAiC;qCAC3C,CAAC,CAAC;oCACH,OAAO;gCACX,CAAC;gCACD,IAAI,eAAe,EAAE,CAAC;oCAClB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;wCACjB,KAAK,EAAE,mCAAmC;qCAC7C,CAAC,CAAC;oCACH,OAAO;gCACX,CAAC;gCACD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oCACjB,KAAK,EAAE,gCAAgC;iCAC1C,CAAC,CAAC;gCACH,MAAM;4BACV;gCACI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gCACpB,MAAM;wBACd,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACJ,IAAI,CAAC,IAAI,EAAE,CAAC;4BACR,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;4BACpB,OAAO;wBACX,CAAC;wBACD,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAC/C,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACJ,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;wBACjB,KAAK,EAAE,+BAA+B;qBACzC,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;YAAC,OAAO,IAAa,EAAE,CAAC;gBACrB,+BAA+B;gBAC/B,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACxB,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEvC,yDAAyD;QACzD,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;YAC5C,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;gBAC7C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,MAAM,CACV,MAAc,EACd,KAAa,EACb,cAAsB,EACtB,IAAc,EACd,QAAiB;QAEjB,kEAAkE;QAClE,+CAA+C;QAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACtC,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC5B,IAAI,QAAQ,EAAE,CAAC;gBACX,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;oBAC3C,MAAM,GAAG,GAAc;wBACnB,IAAI;wBACJ,KAAK;wBACL,cAAc;wBACd,IAAI,EAAE,QAAQ;qBACjB,CAAC;oBACF,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACrB,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;oBACrC,MAAM,GAAG,GAAc;wBACnB,IAAI;wBACJ,KAAK;wBACL,cAAc;wBACd,IAAI,EAAE,QAAQ;qBACjB,CAAC;oBACF,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACrB,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAEO,aAAa,CAAC,GAAW,EAAE,KAAkB;QACjD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;gBACnB,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;oBACvB,SAAS;gBACb,CAAC;gBAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;gBACvD,IAAI,GAAG,GAAG,YAAY,EAAE,CAAC;oBACrB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;oBAC7B,OAAO,IAAI,CAAC;gBAChB,CAAC;YACL,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ"}
|
package/dist/server/index.js
CHANGED
|
@@ -155,10 +155,23 @@ export const initApp = (api, db, tokenValidator, signKeys, notify) => {
|
|
|
155
155
|
api.use(msgpackParser);
|
|
156
156
|
api.use(checkAuth);
|
|
157
157
|
api.use(checkDevice);
|
|
158
|
-
|
|
158
|
+
// Browser clients (web, Tauri, Capacitor, etc.) hit Spire from arbitrary
|
|
159
|
+
// origins when self-hosted or embedded in third-party apps. libvex uses
|
|
160
|
+
// `Authorization: Bearer` only (no cookies), so reflecting `Origin` is the
|
|
161
|
+
// usual bearer-API pattern. Set `CORS_ORIGINS` to a comma-separated allowlist
|
|
162
|
+
// when an operator wants to restrict which frontends may call the API.
|
|
163
|
+
const corsRaw = process.env["CORS_ORIGINS"];
|
|
164
|
+
const corsOrigins = corsRaw
|
|
165
|
+
? corsRaw
|
|
166
|
+
.split(",")
|
|
167
|
+
.map((o) => o.trim())
|
|
168
|
+
.filter((o) => o.length > 0)
|
|
169
|
+
: [];
|
|
159
170
|
api.use(cors({
|
|
160
171
|
credentials: true,
|
|
161
|
-
origin:
|
|
172
|
+
origin: corsOrigins.length > 0
|
|
173
|
+
? corsOrigins
|
|
174
|
+
: true /* reflect request Origin */,
|
|
162
175
|
}));
|
|
163
176
|
api.get("/server/:id", protect, async (req, res) => {
|
|
164
177
|
const server = await db.retrieveServer(getParam(req, "id"));
|
package/dist/server/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
import type { Request } from "express";
|
|
2
|
+
/** HTTP header carrying the dev API key (must match {@link process.env.DEV_API_KEY}). */
|
|
3
|
+
export declare const DEV_API_KEY_HEADER = "x-dev-api-key";
|
|
4
|
+
/**
|
|
5
|
+
* When `DEV_API_KEY` is set in the environment, any request whose
|
|
6
|
+
* `x-dev-api-key` header matches (constant-time) skips all in-process rate
|
|
7
|
+
* limiters. Dev / load-testing escape hatch only — never set in production.
|
|
8
|
+
* (Future: first-class API keys with scopes may reuse this header name.)
|
|
9
|
+
*/
|
|
10
|
+
export declare function devApiKeySkipsRateLimits(req: Request): boolean;
|
|
1
11
|
/**
|
|
2
12
|
* Global per-IP limiter. Applied app-wide via `api.use(globalLimiter)`.
|
|
3
13
|
*
|
package/dist/server/rateLimit.js
CHANGED
|
@@ -1,4 +1,52 @@
|
|
|
1
|
+
import { timingSafeEqual } from "node:crypto";
|
|
1
2
|
import rateLimit, { ipKeyGenerator } from "express-rate-limit";
|
|
3
|
+
/** HTTP header carrying the dev API key (must match {@link process.env.DEV_API_KEY}). */
|
|
4
|
+
export const DEV_API_KEY_HEADER = "x-dev-api-key";
|
|
5
|
+
/**
|
|
6
|
+
* When `DEV_API_KEY` is set in the environment, any request whose
|
|
7
|
+
* `x-dev-api-key` header matches (constant-time) skips all in-process rate
|
|
8
|
+
* limiters. Dev / load-testing escape hatch only — never set in production.
|
|
9
|
+
* (Future: first-class API keys with scopes may reuse this header name.)
|
|
10
|
+
*/
|
|
11
|
+
export function devApiKeySkipsRateLimits(req) {
|
|
12
|
+
const configured = process.env["DEV_API_KEY"]?.trim() ?? "";
|
|
13
|
+
if (configured.length === 0) {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
const presented = req.get(DEV_API_KEY_HEADER);
|
|
17
|
+
if (!presented || presented.length !== configured.length) {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
try {
|
|
21
|
+
return timingSafeEqual(Buffer.from(presented, "utf8"), Buffer.from(configured, "utf8"));
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Rate limiting middleware.
|
|
29
|
+
*
|
|
30
|
+
* Three tiers matching CWE-307 (brute-force auth), CWE-400 / CWE-770
|
|
31
|
+
* (unrestricted resource consumption), and OWASP API4:2023:
|
|
32
|
+
*
|
|
33
|
+
* - `globalLimiter` — baseline per-IP limit across every route. Wide
|
|
34
|
+
* enough to not bother normal clients, tight enough to shield the
|
|
35
|
+
* server from a single-host flood.
|
|
36
|
+
* - `authLimiter` — strict per-IP limit on auth endpoints (register,
|
|
37
|
+
* login, device challenge). `skipSuccessfulRequests` means only the
|
|
38
|
+
* failed attempts count, so a correct login doesn't eat the budget.
|
|
39
|
+
* - `uploadLimiter` — upload-specific limit applied before multer,
|
|
40
|
+
* so multer never even parses a request that's over quota.
|
|
41
|
+
*
|
|
42
|
+
* All three use `ipKeyGenerator` from `express-rate-limit@7.4+` to
|
|
43
|
+
* bucket IPv4 and IPv4-mapped IPv6 correctly (CVE-2026-30827 — older
|
|
44
|
+
* versions silently collapsed all IPv4-mapped IPv6 addresses into
|
|
45
|
+
* one bucket, which let attackers bypass the limiter).
|
|
46
|
+
*
|
|
47
|
+
* `trust proxy` must be set on the Express app (see Spire.ts) so
|
|
48
|
+
* `req.ip` returns the real client address, not the immediate proxy.
|
|
49
|
+
*/
|
|
2
50
|
/**
|
|
3
51
|
* Bucket requests by the real client IP, IPv6-safe.
|
|
4
52
|
*
|
|
@@ -19,6 +67,7 @@ export const globalLimiter = rateLimit({
|
|
|
19
67
|
keyGenerator: keyByIp,
|
|
20
68
|
legacyHeaders: false,
|
|
21
69
|
limit: 3000,
|
|
70
|
+
skip: devApiKeySkipsRateLimits,
|
|
22
71
|
standardHeaders: "draft-7",
|
|
23
72
|
windowMs: 15 * 60 * 1000,
|
|
24
73
|
});
|
|
@@ -35,6 +84,7 @@ export const authLimiter = rateLimit({
|
|
|
35
84
|
keyGenerator: keyByIp,
|
|
36
85
|
legacyHeaders: false,
|
|
37
86
|
limit: 50,
|
|
87
|
+
skip: devApiKeySkipsRateLimits,
|
|
38
88
|
skipSuccessfulRequests: true,
|
|
39
89
|
standardHeaders: "draft-7",
|
|
40
90
|
windowMs: 15 * 60 * 1000,
|
|
@@ -52,6 +102,7 @@ export const uploadLimiter = rateLimit({
|
|
|
52
102
|
keyGenerator: keyByIp,
|
|
53
103
|
legacyHeaders: false,
|
|
54
104
|
limit: 200,
|
|
105
|
+
skip: devApiKeySkipsRateLimits,
|
|
55
106
|
standardHeaders: "draft-7",
|
|
56
107
|
windowMs: 60 * 1000,
|
|
57
108
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rateLimit.js","sourceRoot":"","sources":["../../src/server/rateLimit.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rateLimit.js","sourceRoot":"","sources":["../../src/server/rateLimit.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,SAAS,EAAE,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE/D,yFAAyF;AACzF,MAAM,CAAC,MAAM,kBAAkB,GAAG,eAAe,CAAC;AAElD;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CAAC,GAAY;IACjD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC5D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAC9C,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;QACvD,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,IAAI,CAAC;QACD,OAAO,eAAe,CAClB,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,EAC9B,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAClC,CAAC;IACN,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH;;;;;;;GAOG;AACH,MAAM,OAAO,GAAG,CAAC,GAAY,EAAU,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AAEvE;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,CAAC;IACnC,YAAY,EAAE,OAAO;IACrB,aAAa,EAAE,KAAK;IACpB,KAAK,EAAE,IAAI;IACX,IAAI,EAAE,wBAAwB;IAC9B,eAAe,EAAE,SAAS;IAC1B,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;CAC3B,CAAC,CAAC;AAEH;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,CAAC;IACjC,YAAY,EAAE,OAAO;IACrB,aAAa,EAAE,KAAK;IACpB,KAAK,EAAE,EAAE;IACT,IAAI,EAAE,wBAAwB;IAC9B,sBAAsB,EAAE,IAAI;IAC5B,eAAe,EAAE,SAAS;IAC1B,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;CAC3B,CAAC,CAAC;AAEH;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,CAAC;IACnC,YAAY,EAAE,OAAO;IACrB,aAAa,EAAE,KAAK;IACpB,KAAK,EAAE,GAAG;IACV,IAAI,EAAE,wBAAwB;IAC9B,eAAe,EAAE,SAAS;IAC1B,QAAQ,EAAE,EAAE,GAAG,IAAI;CACtB,CAAC,CAAC"}
|
package/dist/server/user.js
CHANGED
|
@@ -18,9 +18,13 @@ export const getUserRouter = (db, tokenValidator) => {
|
|
|
18
18
|
}
|
|
19
19
|
});
|
|
20
20
|
router.get("/:id/devices", protect, async (req, res) => {
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
const id = getParam(req, "id");
|
|
22
|
+
const user = await db.retrieveUser(id);
|
|
23
|
+
if (!user) {
|
|
24
|
+
res.sendStatus(404);
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
const deviceList = await db.retrieveUserDeviceList([id]);
|
|
24
28
|
return res.send(msgpack.encode(deviceList));
|
|
25
29
|
});
|
|
26
30
|
router.get("/:id/permissions", protect, async (req, res) => {
|
package/dist/server/user.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/server/user.ts"],"names":[],"mappings":"AAEA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnE,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE3D,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,MAAM,CAAC,MAAM,aAAa,GAAG,CACzB,EAAY,EACZ,cAA4D,EAC9D,EAAE;IACA,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAEhC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAC3C,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;QAExD,IAAI,IAAI,EAAE,CAAC;YACP,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACJ,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACnD,MAAM,
|
|
1
|
+
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/server/user.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vex-chat/spire",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "Vex server implementation in NodeJS.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
@@ -23,13 +23,18 @@
|
|
|
23
23
|
"preinstall": "npx only-allow npm",
|
|
24
24
|
"start": "node --experimental-strip-types src/run.ts",
|
|
25
25
|
"restart": "pm2 restart spire && pm2 logs spire",
|
|
26
|
-
"build": "tsc",
|
|
26
|
+
"build": "tsc && node scripts/clean-dist-tests.mjs",
|
|
27
27
|
"format": "prettier --write .",
|
|
28
28
|
"format:check": "prettier --check .",
|
|
29
|
-
"lint": "eslint src/",
|
|
30
|
-
"lint:fix": "eslint src/ --fix",
|
|
29
|
+
"lint": "eslint src/ scripts/stress/",
|
|
30
|
+
"lint:fix": "eslint src/ scripts/stress/ --fix",
|
|
31
31
|
"prepare": "husky || true",
|
|
32
32
|
"test": "vitest run",
|
|
33
|
+
"stress:web": "node --experimental-strip-types scripts/stress/spire-stress.ts",
|
|
34
|
+
"stress:cli": "node --experimental-strip-types scripts/stress/stress-cli-sweep.ts",
|
|
35
|
+
"stress:repo-manifest": "node --experimental-strip-types scripts/stress/stress-repo-manifest.ts",
|
|
36
|
+
"stress:docs-pack": "node --experimental-strip-types scripts/stress/stress-docs-pack.ts",
|
|
37
|
+
"stress:llm-triage": "node --experimental-strip-types scripts/stress/stress-llm-triage.ts",
|
|
33
38
|
"gen-spk": "node scripts/gen-spk.js",
|
|
34
39
|
"docs": "node ./scripts/generate-docs.js",
|
|
35
40
|
"license:check": "node scripts/fix-license-checker.mjs && npx @onebeyond/license-checker scan --allowOnly MIT MIT-0 ISC BSD-2-Clause BSD-3-Clause Apache-2.0 0BSD MPL-2.0 CC0-1.0 CC-BY-3.0 CC-BY-4.0 Unlicense BlueOak-1.0.0 Python-2.0 Zlib PSF-2.0 Artistic-2.0 AGPL-3.0-or-later WTFPL \"(MIT AND CC-BY-3.0)\" --ignoreRootPackageLicense --disableReport",
|
|
@@ -50,7 +55,9 @@
|
|
|
50
55
|
"@types/node": "25.6.0",
|
|
51
56
|
"@types/uuid": "10.0.0",
|
|
52
57
|
"@types/ws": "8.18.1",
|
|
58
|
+
"@vex-chat/libvex": "5.1.0",
|
|
53
59
|
"@vitest/eslint-plugin": "1.6.15",
|
|
60
|
+
"axios": "1.15.0",
|
|
54
61
|
"eslint": "10.2.0",
|
|
55
62
|
"eslint-config-prettier": "10.1.8",
|
|
56
63
|
"eslint-plugin-n": "17.24.0",
|
|
@@ -86,7 +93,7 @@
|
|
|
86
93
|
"dependencies": {
|
|
87
94
|
"@asyncapi/web-component": "2.6.5",
|
|
88
95
|
"@scalar/express-api-reference": "0.9.7",
|
|
89
|
-
"@vex-chat/crypto": "2.0.
|
|
96
|
+
"@vex-chat/crypto": "2.0.1",
|
|
90
97
|
"@vex-chat/types": "2.0.0",
|
|
91
98
|
"argon2": "0.44.0",
|
|
92
99
|
"better-sqlite3": "11.10.0",
|
package/src/ClientManager.ts
CHANGED
|
@@ -271,8 +271,7 @@ export class ClientManager extends EventEmitter {
|
|
|
271
271
|
}
|
|
272
272
|
|
|
273
273
|
private async pingLoop() {
|
|
274
|
-
|
|
275
|
-
while (true) {
|
|
274
|
+
while (!this.failed) {
|
|
276
275
|
this.ping();
|
|
277
276
|
await sleep(5000);
|
|
278
277
|
}
|