@prosopo/database 3.15.0 → 3.15.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.
Files changed (40) hide show
  1. package/.turbo/turbo-build$colon$cjs.log +8 -7
  2. package/.turbo/turbo-build$colon$tsc.log +16 -16
  3. package/.turbo/turbo-build.log +9 -8
  4. package/CHANGELOG.md +33 -0
  5. package/dist/base/mongo.d.ts.map +1 -1
  6. package/dist/base/mongo.js +14 -8
  7. package/dist/base/mongo.js.map +1 -1
  8. package/dist/cjs/base/mongo.cjs +14 -8
  9. package/dist/cjs/databases/captcha.cjs +3 -4
  10. package/dist/cjs/index.cjs +3 -0
  11. package/dist/cjs/mongooseOptions.cjs +67 -0
  12. package/dist/cjs/redisCache.cjs +88 -0
  13. package/dist/databases/captcha.js +1 -1
  14. package/dist/databases/captcha.js.map +1 -1
  15. package/dist/index.d.ts +1 -0
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +4 -1
  18. package/dist/index.js.map +1 -1
  19. package/dist/mongooseOptions.d.ts +11 -0
  20. package/dist/mongooseOptions.d.ts.map +1 -0
  21. package/dist/mongooseOptions.js +67 -0
  22. package/dist/mongooseOptions.js.map +1 -0
  23. package/dist/redisCache.d.ts +3 -0
  24. package/dist/redisCache.d.ts.map +1 -1
  25. package/dist/redisCache.js +88 -0
  26. package/dist/redisCache.js.map +1 -1
  27. package/dist/tests/mongoGlobalSetup.d.ts +2 -0
  28. package/dist/tests/mongoGlobalSetup.d.ts.map +1 -0
  29. package/dist/tests/mongoGlobalSetup.js +5 -0
  30. package/dist/tests/mongoGlobalSetup.js.map +1 -0
  31. package/dist/tests/mongooseOptions.unit.test.d.ts +2 -0
  32. package/dist/tests/mongooseOptions.unit.test.d.ts.map +1 -0
  33. package/dist/tests/mongooseOptions.unit.test.js +157 -0
  34. package/dist/tests/mongooseOptions.unit.test.js.map +1 -0
  35. package/dist/tests/unit/redisCacheEscalation.unit.test.d.ts +2 -0
  36. package/dist/tests/unit/redisCacheEscalation.unit.test.d.ts.map +1 -0
  37. package/dist/tests/unit/redisCacheEscalation.unit.test.js +128 -0
  38. package/dist/tests/unit/redisCacheEscalation.unit.test.js.map +1 -0
  39. package/package.json +9 -9
  40. package/vite.test.config.ts +12 -1
@@ -0,0 +1,67 @@
1
+ import { ServerApiVersion } from "mongodb";
2
+ const DEFAULT_COMPRESSORS = [
3
+ "zstd",
4
+ "snappy",
5
+ "zlib",
6
+ "none"
7
+ ];
8
+ const getMongoCompressors = (url, compressors = DEFAULT_COMPRESSORS) => {
9
+ try {
10
+ const protocolIndex = url.indexOf("://");
11
+ const urlWithoutProtocol = protocolIndex !== -1 ? url.slice(protocolIndex + 3) : url;
12
+ if (urlWithoutProtocol.trim() === "") {
13
+ return [];
14
+ }
15
+ const parsedUrl = new URL(`mongodb://${urlWithoutProtocol}`);
16
+ const hostname = parsedUrl.hostname;
17
+ const isLocalhost = hostname === "localhost" || hostname === "127.0.0.1" || hostname === "[::1]" || hostname === "::1";
18
+ if (isLocalhost) {
19
+ return [];
20
+ }
21
+ return hostname.includes(".") || hostname.includes(":") ? [...compressors] : [];
22
+ } catch {
23
+ return [...compressors];
24
+ }
25
+ };
26
+ const getMongoConnectionOptions = (options) => {
27
+ const { url, appName, maxPoolSize = 10, minPoolSize = 0, dbName } = options;
28
+ if (!url || url.trim() === "") {
29
+ throw new Error(
30
+ "MongoDB connection URL is required and cannot be empty or whitespace-only"
31
+ );
32
+ }
33
+ const compressors = getMongoCompressors(url);
34
+ const connectionOptions = {
35
+ serverApi: {
36
+ version: ServerApiVersion.v1,
37
+ // strict mode rejects any command outside the Stable API; leave it
38
+ // off so non-stable operations (index/admin commands etc.) keep working.
39
+ strict: false,
40
+ deprecationErrors: false
41
+ },
42
+ maxPoolSize,
43
+ // allow up to N connections at any given time. >1 connection allows parallel db operations
44
+ minPoolSize,
45
+ // pool may close idle connections down to this amount (0 = close all idle past maxIdleTimeMS)
46
+ maxConnecting: 2,
47
+ // maximum number of concurrent connection attempts
48
+ connectTimeoutMS: 1e4,
49
+ // max time to connect to the database
50
+ socketTimeoutMS: 3e4,
51
+ // max time to wait for a response from the database when doing an operation
52
+ maxIdleTimeMS: 3e5,
53
+ // max time spent idle before closing the connection
54
+ appName,
55
+ serverSelectionTimeoutMS: 2e4,
56
+ // max time to wait for a response from the database
57
+ compressors
58
+ };
59
+ if (dbName) {
60
+ connectionOptions.dbName = dbName;
61
+ }
62
+ return connectionOptions;
63
+ };
64
+ export {
65
+ getMongoCompressors,
66
+ getMongoConnectionOptions
67
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mongooseOptions.js","sourceRoot":"","sources":["../src/mongooseOptions.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAK3C,MAAM,mBAAmB,GAAsB;IAC9C,MAAM;IACN,QAAQ;IACR,MAAM;IACN,MAAM;CACN,CAAC;AAaF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAClC,GAAW,EACX,cAAiC,mBAAmB,EAChC,EAAE;IACtB,IAAI,CAAC;QAEJ,MAAM,aAAa,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,kBAAkB,GACvB,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAI3D,IAAI,kBAAkB,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACtC,OAAO,EAAE,CAAC;QACX,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,aAAa,kBAAkB,EAAE,CAAC,CAAC;QAC7D,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;QAKpC,MAAM,WAAW,GAChB,QAAQ,KAAK,WAAW;YACxB,QAAQ,KAAK,WAAW;YACxB,QAAQ,KAAK,OAAO;YACpB,QAAQ,KAAK,KAAK,CAAC;QAEpB,IAAI,WAAW,EAAE,CAAC;YACjB,OAAO,EAAE,CAAC;QACX,CAAC;QAKD,OAAO,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;YACtD,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;YAClB,CAAC,CAAC,EAAE,CAAC;IACP,CAAC;IAAC,MAAM,CAAC;QAER,OAAO,CAAC,GAAG,WAAW,CAAC,CAAC;IACzB,CAAC;AACF,CAAC,CAAC;AAaF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,OAMzC,EAAkB,EAAE;IACpB,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,GAAG,EAAE,EAAE,WAAW,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAE5E,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CACd,2EAA2E,CAC3E,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAE7C,MAAM,iBAAiB,GAAmB;QACzC,SAAS,EAAE;YACV,OAAO,EAAE,gBAAgB,CAAC,EAAE;YAG5B,MAAM,EAAE,KAAK;YACb,iBAAiB,EAAE,KAAK;SACxB;QACD,WAAW;QACX,WAAW;QACX,aAAa,EAAE,CAAC;QAChB,gBAAgB,EAAE,KAAK;QACvB,eAAe,EAAE,KAAK;QACtB,aAAa,EAAE,MAAM;QACrB,OAAO;QACP,wBAAwB,EAAE,KAAK;QAC/B,WAAW;KACX,CAAC;IAEF,IAAI,MAAM,EAAE,CAAC;QACZ,iBAAiB,CAAC,MAAM,GAAG,MAAM,CAAC;IACnC,CAAC;IAED,OAAO,iBAAiB,CAAC;AAC1B,CAAC,CAAC"}
@@ -16,6 +16,9 @@ export declare class RedisWriteQueue {
16
16
  invalidateCachedSessionByHash(userSitekeyIpHash: string): Promise<void>;
17
17
  cacheSessionByHash(userSitekeyIpHash: string, sessionId: string, ttlSeconds?: number): Promise<boolean>;
18
18
  getCachedSessionByHash(userSitekeyIpHash: string): Promise<string | null>;
19
+ cacheSessionEscalation(originSessionId: string, escalationSessionId: string, ttlSeconds?: number): Promise<boolean>;
20
+ getCachedSessionEscalation(originSessionId: string): Promise<string | null>;
21
+ invalidateCachedSessionEscalation(originSessionId: string): Promise<void>;
19
22
  queueSessionRecord(sessionId: string, record: Record<string, unknown>, ttlSeconds?: number): Promise<boolean>;
20
23
  drainSessionRecords(limit?: number): Promise<Array<{
21
24
  sessionId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"redisCache.d.ts","sourceRoot":"","sources":["../src/redisCache.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAkC7D,qBAAa,eAAe;IAC3B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,UAAU,CAA+C;IACjE,OAAO,CAAC,aAAa,CACf;IACN,OAAO,CAAC,mBAAmB,CAAqB;gBAEpC,UAAU,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM;YAKzC,SAAS;IAgBjB,YAAY,CACjB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,UAAU,SAAQ,GAChB,OAAO,CAAC,OAAO,CAAC;IAyBb,gBAAgB,CACrB,SAAS,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IA8BpC,kBAAkB,CACvB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,UAAU,SAAQ,GAChB,OAAO,CAAC,OAAO,CAAC;IAiBb,+BAA+B,CACpC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,KAAK,EAAE,MAAM,EACb,UAAU,SAAQ,GAChB,OAAO,CAAC,OAAO,CAAC;IAmBb,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBzD,6BAA6B,CAClC,iBAAiB,EAAE,MAAM,GACvB,OAAO,CAAC,IAAI,CAAC;IAwBV,kBAAkB,CACvB,iBAAiB,EAAE,MAAM,EACzB,SAAS,EAAE,MAAM,EACjB,UAAU,SAAO,GACf,OAAO,CAAC,OAAO,CAAC;IAuBb,sBAAsB,CAC3B,iBAAiB,EAAE,MAAM,GACvB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAyBnB,kBAAkB,CACvB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,UAAU,SAAQ,GAChB,OAAO,CAAC,OAAO,CAAC;IAkCb,mBAAmB,CACxB,KAAK,SAAM,GACT,OAAO,CAAC,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CAAC;IA+CzE,kBAAkB,CACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,EACnD,UAAU,SAAQ,EAClB,mBAAmB,SAAK,GACtB,IAAI;IAmBP,OAAO,CAAC,yBAAyB;YAiBnB,eAAe;IAa7B,iBAAiB,IAAI,IAAI;IAuBnB,sBAAsB,CAAC,SAAS,SAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAqD7D,OAAO,IAAI,OAAO;CAGlB"}
1
+ {"version":3,"file":"redisCache.d.ts","sourceRoot":"","sources":["../src/redisCache.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAkC7D,qBAAa,eAAe;IAC3B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,UAAU,CAA+C;IACjE,OAAO,CAAC,aAAa,CACf;IACN,OAAO,CAAC,mBAAmB,CAAqB;gBAEpC,UAAU,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM;YAKzC,SAAS;IAgBjB,YAAY,CACjB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,UAAU,SAAQ,GAChB,OAAO,CAAC,OAAO,CAAC;IAyBb,gBAAgB,CACrB,SAAS,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IA8BpC,kBAAkB,CACvB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,UAAU,SAAQ,GAChB,OAAO,CAAC,OAAO,CAAC;IAiBb,+BAA+B,CACpC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,KAAK,EAAE,MAAM,EACb,UAAU,SAAQ,GAChB,OAAO,CAAC,OAAO,CAAC;IAmBb,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBzD,6BAA6B,CAClC,iBAAiB,EAAE,MAAM,GACvB,OAAO,CAAC,IAAI,CAAC;IAwBV,kBAAkB,CACvB,iBAAiB,EAAE,MAAM,EACzB,SAAS,EAAE,MAAM,EACjB,UAAU,SAAO,GACf,OAAO,CAAC,OAAO,CAAC;IAuBb,sBAAsB,CAC3B,iBAAiB,EAAE,MAAM,GACvB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA4CnB,sBAAsB,CAC3B,eAAe,EAAE,MAAM,EACvB,mBAAmB,EAAE,MAAM,EAC3B,UAAU,SAAM,GACd,OAAO,CAAC,OAAO,CAAC;IA0Bb,0BAA0B,CAC/B,eAAe,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAyBnB,iCAAiC,CACtC,eAAe,EAAE,MAAM,GACrB,OAAO,CAAC,IAAI,CAAC;IAwBV,kBAAkB,CACvB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,UAAU,SAAQ,GAChB,OAAO,CAAC,OAAO,CAAC;IAkCb,mBAAmB,CACxB,KAAK,SAAM,GACT,OAAO,CAAC,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CAAC;IA+CzE,kBAAkB,CACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,EACnD,UAAU,SAAQ,EAClB,mBAAmB,SAAK,GACtB,IAAI;IAmBP,OAAO,CAAC,yBAAyB;YAiBnB,eAAe;IAa7B,iBAAiB,IAAI,IAAI;IAuBnB,sBAAsB,CAAC,SAAS,SAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAqD7D,OAAO,IAAI,OAAO;CAGlB"}
@@ -192,6 +192,94 @@ class RedisWriteQueue {
192
192
  return null;
193
193
  }
194
194
  }
195
+ /**
196
+ * Cache an origin → escalation sessionId mapping for the post-PoW
197
+ * escalation flow.
198
+ *
199
+ * Background: when the routing machine returns image/puzzle from the
200
+ * postPow phase, `buildEscalation` (`api/captcha/submitPoWCaptchaSolution.ts`)
201
+ * mints a new session with a fresh `sessionId` and returns it on the
202
+ * `escalation` field. A widget that handles the escalation cleanly
203
+ * mounts the next captcha with the new sessionId. But there are
204
+ * several real-world paths where the widget keeps using the original
205
+ * sessionId for the follow-up `/captcha/{type}` request — bundled SDK
206
+ * versions that predate the escalation handler, dapps that hand-roll
207
+ * the wrapper, network-glitch retries, or browser-tab races. The
208
+ * original session has been consumed and soft-deleted by the
209
+ * preceding `/captcha/pow`, so the follow-up gets
210
+ * `CAPTCHA.NO_SESSION_FOUND` and the user sees an inline error → FAQ.
211
+ *
212
+ * This mapping lets `isValidRequest` resolve the original sessionId
213
+ * forward to the live escalation session and proceed normally.
214
+ *
215
+ * TTL is short on purpose: escalation handoffs complete in seconds
216
+ * (the user solves the follow-up immediately) and a stale mapping
217
+ * pointing at a long-gone session would just produce a different
218
+ * shape of NO_SESSION_FOUND.
219
+ */
220
+ async cacheSessionEscalation(originSessionId, escalationSessionId, ttlSeconds = 600) {
221
+ const client = await this.getClient();
222
+ if (!client) {
223
+ return false;
224
+ }
225
+ try {
226
+ const key = `cache:session:escalation:${originSessionId}`;
227
+ await client.set(key, escalationSessionId, { EX: ttlSeconds });
228
+ return true;
229
+ } catch (error) {
230
+ this.logger.warn(() => ({
231
+ msg: "Failed to cache session escalation mapping in Redis",
232
+ err: error,
233
+ originSessionId,
234
+ escalationSessionId
235
+ }));
236
+ return false;
237
+ }
238
+ }
239
+ /**
240
+ * Resolve an original sessionId to its escalation sessionId, if one was
241
+ * recorded. Returns null when there is no mapping (either no escalation
242
+ * happened, or the TTL has elapsed).
243
+ */
244
+ async getCachedSessionEscalation(originSessionId) {
245
+ const client = await this.getClient();
246
+ if (!client) {
247
+ return null;
248
+ }
249
+ try {
250
+ const key = `cache:session:escalation:${originSessionId}`;
251
+ return await client.get(key);
252
+ } catch (error) {
253
+ this.logger.warn(() => ({
254
+ msg: "Failed to get cached session escalation mapping from Redis",
255
+ err: error,
256
+ originSessionId
257
+ }));
258
+ return null;
259
+ }
260
+ }
261
+ /**
262
+ * Invalidate an escalation mapping. Called when the escalation session
263
+ * itself is consumed so subsequent retries on the origin sessionId fall
264
+ * through to the standard NO_SESSION_FOUND path rather than chasing a
265
+ * second-hand stale pointer.
266
+ */
267
+ async invalidateCachedSessionEscalation(originSessionId) {
268
+ const client = await this.getClient();
269
+ if (!client) {
270
+ return;
271
+ }
272
+ try {
273
+ const key = `cache:session:escalation:${originSessionId}`;
274
+ await client.del(key);
275
+ } catch (error) {
276
+ this.logger.warn(() => ({
277
+ msg: "Failed to invalidate cached session escalation mapping",
278
+ err: error,
279
+ originSessionId
280
+ }));
281
+ }
282
+ }
195
283
  // ── Session write queue ─────────────────────────────────────────────
196
284
  /**
197
285
  * Queue a session record for batched insertion into MongoDB.
@@ -1 +1 @@
1
- {"version":3,"file":"redisCache.js","sourceRoot":"","sources":["../src/redisCache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"redisCache.js","sourceRoot":"","sources":["../src/redisCache.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export default function setup(): Promise<void>;
2
+ //# sourceMappingURL=mongoGlobalSetup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mongoGlobalSetup.d.ts","sourceRoot":"","sources":["../../src/tests/mongoGlobalSetup.ts"],"names":[],"mappings":"AAsBA,wBAA8B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAEnD"}
@@ -0,0 +1,5 @@
1
+ import { MongoBinary } from "mongodb-memory-server";
2
+ export default async function setup() {
3
+ await MongoBinary.getPath();
4
+ }
5
+ //# sourceMappingURL=mongoGlobalSetup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mongoGlobalSetup.js","sourceRoot":"","sources":["../../src/tests/mongoGlobalSetup.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AASpD,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,KAAK;IAClC,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC;AAC7B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=mongooseOptions.unit.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mongooseOptions.unit.test.d.ts","sourceRoot":"","sources":["../../src/tests/mongooseOptions.unit.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,157 @@
1
+ import { ServerApiVersion } from "mongodb";
2
+ import { describe, expect, it } from "vitest";
3
+ import { getMongoCompressors, getMongoConnectionOptions, } from "../mongooseOptions.js";
4
+ const DEFAULT_COMPRESSORS = [
5
+ "zstd",
6
+ "snappy",
7
+ "zlib",
8
+ "none",
9
+ ];
10
+ describe("getMongoCompressors", () => {
11
+ it("returns default compressors for remote domains", () => {
12
+ const urls = [
13
+ "mongodb://user:pass@example.com:27017/db",
14
+ "mongodb://abc.com/db",
15
+ "mongodb://x.y.com:27017/db",
16
+ "mongodb://cluster.mongodb.net/db",
17
+ "mongodb://subdomain.example.com/db",
18
+ ];
19
+ for (const url of urls) {
20
+ expect(getMongoCompressors(url)).toEqual(DEFAULT_COMPRESSORS);
21
+ }
22
+ });
23
+ it("returns empty array for local hostnames without dots", () => {
24
+ const urls = [
25
+ "mongodb://database:27017/db",
26
+ "mongodb://db/db",
27
+ "mongodb://mongo:27017/db",
28
+ "mongodb://container-name/db",
29
+ ];
30
+ for (const url of urls) {
31
+ expect(getMongoCompressors(url)).toEqual([]);
32
+ }
33
+ });
34
+ it("returns empty array for localhost variants", () => {
35
+ const urls = [
36
+ "mongodb://localhost:27017/db",
37
+ "mongodb://127.0.0.1:27017/db",
38
+ "mongodb://[::1]:27017/db",
39
+ ];
40
+ for (const url of urls) {
41
+ expect(getMongoCompressors(url)).toEqual([]);
42
+ }
43
+ });
44
+ it("returns compressors for IP addresses (treated as remote)", () => {
45
+ const urls = [
46
+ "mongodb://192.168.1.1:27017/db",
47
+ "mongodb://10.0.0.1/db",
48
+ "mongodb://172.16.0.1:27017/db",
49
+ ];
50
+ for (const url of urls) {
51
+ expect(getMongoCompressors(url)).toEqual(DEFAULT_COMPRESSORS);
52
+ }
53
+ });
54
+ it("returns compressors for IPv6 addresses (treated as remote)", () => {
55
+ const urls = [
56
+ "mongodb://[2001:0db8::1]:27017/db",
57
+ "mongodb://[2001:0db8:85a3::8a2e:0370:7334]/db",
58
+ "mongodb://[::ffff:192.168.1.1]:27017/db",
59
+ ];
60
+ for (const url of urls) {
61
+ expect(getMongoCompressors(url)).toEqual(DEFAULT_COMPRESSORS);
62
+ }
63
+ });
64
+ it("uses custom compressors when provided", () => {
65
+ const customCompressors = ["zstd", "snappy"];
66
+ const url = "mongodb://example.com:27017/db";
67
+ expect(getMongoCompressors(url, customCompressors)).toEqual(customCompressors);
68
+ });
69
+ it("returns empty array for local connections even with custom compressors", () => {
70
+ const customCompressors = ["zstd", "snappy"];
71
+ const url = "mongodb://localhost:27017/db";
72
+ expect(getMongoCompressors(url, customCompressors)).toEqual([]);
73
+ });
74
+ it("handles mongodb+srv:// URLs", () => {
75
+ const url = "mongodb+srv://cluster.mongodb.net/db";
76
+ expect(getMongoCompressors(url)).toEqual(DEFAULT_COMPRESSORS);
77
+ });
78
+ it("returns default compressors when the host cannot be parsed", () => {
79
+ const unparseableUrls = ["mongodb://::1:27017/db", "mongodb://[bad"];
80
+ for (const url of unparseableUrls) {
81
+ expect(getMongoCompressors(url)).toEqual(DEFAULT_COMPRESSORS);
82
+ }
83
+ });
84
+ it("returns empty array for hostless URLs and bare single-label hosts", () => {
85
+ const urls = ["", "mongodb://", "not-a-url"];
86
+ for (const url of urls) {
87
+ expect(getMongoCompressors(url)).toEqual([]);
88
+ }
89
+ });
90
+ it("handles URLs with authentication", () => {
91
+ const url = "mongodb://user:password@example.com:27017/db";
92
+ expect(getMongoCompressors(url)).toEqual(DEFAULT_COMPRESSORS);
93
+ });
94
+ it("handles URLs with query parameters", () => {
95
+ const url = "mongodb://example.com:27017/db?authSource=admin&retryWrites=true";
96
+ expect(getMongoCompressors(url)).toEqual(DEFAULT_COMPRESSORS);
97
+ });
98
+ });
99
+ describe("getMongoConnectionOptions", () => {
100
+ const appName = "test-app";
101
+ it("throws on an empty or whitespace-only URL", () => {
102
+ expect(() => getMongoConnectionOptions({ url: "", appName })).toThrow(/cannot be empty/);
103
+ expect(() => getMongoConnectionOptions({ url: " ", appName })).toThrow(/cannot be empty/);
104
+ });
105
+ it("applies sensible defaults", () => {
106
+ const options = getMongoConnectionOptions({
107
+ url: "mongodb://example.com:27017/db",
108
+ appName,
109
+ });
110
+ expect(options.appName).toBe(appName);
111
+ expect(options.maxPoolSize).toBe(10);
112
+ expect(options.minPoolSize).toBe(0);
113
+ expect(options.serverApi).toEqual({
114
+ version: ServerApiVersion.v1,
115
+ strict: false,
116
+ deprecationErrors: false,
117
+ });
118
+ });
119
+ it("uses no compressors for localhost", () => {
120
+ const options = getMongoConnectionOptions({
121
+ url: "mongodb://localhost:27017/db",
122
+ appName,
123
+ });
124
+ expect(options.compressors).toEqual([]);
125
+ });
126
+ it("uses default compressors for a remote host", () => {
127
+ const options = getMongoConnectionOptions({
128
+ url: "mongodb://cluster.mongodb.net/db",
129
+ appName,
130
+ });
131
+ expect(options.compressors).toEqual(DEFAULT_COMPRESSORS);
132
+ });
133
+ it("applies pool size overrides", () => {
134
+ const options = getMongoConnectionOptions({
135
+ url: "mongodb://example.com:27017/db",
136
+ appName,
137
+ maxPoolSize: 50,
138
+ minPoolSize: 5,
139
+ });
140
+ expect(options.maxPoolSize).toBe(50);
141
+ expect(options.minPoolSize).toBe(5);
142
+ });
143
+ it("only sets dbName when provided", () => {
144
+ const withDbName = getMongoConnectionOptions({
145
+ url: "mongodb://example.com:27017/db",
146
+ appName,
147
+ dbName: "mydb",
148
+ });
149
+ expect(withDbName.dbName).toBe("mydb");
150
+ const withoutDbName = getMongoConnectionOptions({
151
+ url: "mongodb://example.com:27017/db",
152
+ appName,
153
+ });
154
+ expect(withoutDbName.dbName).toBeUndefined();
155
+ });
156
+ });
157
+ //# sourceMappingURL=mongooseOptions.unit.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mongooseOptions.unit.test.js","sourceRoot":"","sources":["../../src/tests/mongooseOptions.unit.test.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAEN,mBAAmB,EACnB,yBAAyB,GACzB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,mBAAmB,GAAsB;IAC9C,MAAM;IACN,QAAQ;IACR,MAAM;IACN,MAAM;CACN,CAAC;AAEF,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACzD,MAAM,IAAI,GAAG;YACZ,0CAA0C;YAC1C,sBAAsB;YACtB,4BAA4B;YAC5B,kCAAkC;YAClC,oCAAoC;SACpC,CAAC;QACF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACxB,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QAC/D,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC/D,MAAM,IAAI,GAAG;YACZ,6BAA6B;YAC7B,iBAAiB;YACjB,0BAA0B;YAC1B,6BAA6B;SAC7B,CAAC;QACF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACxB,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC9C,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACrD,MAAM,IAAI,GAAG;YACZ,8BAA8B;YAC9B,8BAA8B;YAC9B,0BAA0B;SAC1B,CAAC;QACF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACxB,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC9C,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;QACnE,MAAM,IAAI,GAAG;YACZ,gCAAgC;YAChC,uBAAuB;YACvB,+BAA+B;SAC/B,CAAC;QACF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACxB,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QAC/D,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACrE,MAAM,IAAI,GAAG;YACZ,mCAAmC;YACnC,+CAA+C;YAC/C,yCAAyC;SACzC,CAAC;QACF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACxB,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QAC/D,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAChD,MAAM,iBAAiB,GAAsB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAChE,MAAM,GAAG,GAAG,gCAAgC,CAAC;QAC7C,MAAM,CAAC,mBAAmB,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAC1D,iBAAiB,CACjB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wEAAwE,EAAE,GAAG,EAAE;QACjF,MAAM,iBAAiB,GAAsB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAChE,MAAM,GAAG,GAAG,8BAA8B,CAAC;QAC3C,MAAM,CAAC,mBAAmB,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACtC,MAAM,GAAG,GAAG,sCAAsC,CAAC;QACnD,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QAGrE,MAAM,eAAe,GAAG,CAAC,wBAAwB,EAAE,gBAAgB,CAAC,CAAC;QACrE,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;YACnC,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QAC/D,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;QAG5E,MAAM,IAAI,GAAG,CAAC,EAAE,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;QAC7C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACxB,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC9C,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC3C,MAAM,GAAG,GAAG,8CAA8C,CAAC;QAC3D,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC7C,MAAM,GAAG,GACR,kEAAkE,CAAC;QACpE,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IAC1C,MAAM,OAAO,GAAG,UAAU,CAAC;IAE3B,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACpD,MAAM,CAAC,GAAG,EAAE,CAAC,yBAAyB,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CACpE,iBAAiB,CACjB,CAAC;QACF,MAAM,CAAC,GAAG,EAAE,CAAC,yBAAyB,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CACvE,iBAAiB,CACjB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACpC,MAAM,OAAO,GAAG,yBAAyB,CAAC;YACzC,GAAG,EAAE,gCAAgC;YACrC,OAAO;SACP,CAAC,CAAC;QACH,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC;YACjC,OAAO,EAAE,gBAAgB,CAAC,EAAE;YAC5B,MAAM,EAAE,KAAK;YACb,iBAAiB,EAAE,KAAK;SACxB,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC5C,MAAM,OAAO,GAAG,yBAAyB,CAAC;YACzC,GAAG,EAAE,8BAA8B;YACnC,OAAO;SACP,CAAC,CAAC;QACH,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACrD,MAAM,OAAO,GAAG,yBAAyB,CAAC;YACzC,GAAG,EAAE,kCAAkC;YACvC,OAAO;SACP,CAAC,CAAC;QACH,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACtC,MAAM,OAAO,GAAG,yBAAyB,CAAC;YACzC,GAAG,EAAE,gCAAgC;YACrC,OAAO;YACP,WAAW,EAAE,EAAE;YACf,WAAW,EAAE,CAAC;SACd,CAAC,CAAC;QACH,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACzC,MAAM,UAAU,GAAG,yBAAyB,CAAC;YAC5C,GAAG,EAAE,gCAAgC;YACrC,OAAO;YACP,MAAM,EAAE,MAAM;SACd,CAAC,CAAC;QACH,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEvC,MAAM,aAAa,GAAG,yBAAyB,CAAC;YAC/C,GAAG,EAAE,gCAAgC;YACrC,OAAO;SACP,CAAC,CAAC;QACH,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;IAC9C,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=redisCacheEscalation.unit.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redisCacheEscalation.unit.test.d.ts","sourceRoot":"","sources":["../../../src/tests/unit/redisCacheEscalation.unit.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,128 @@
1
+ import { beforeEach, describe, expect, it, vi } from "vitest";
2
+ import { RedisWriteQueue } from "../../redisCache.js";
3
+ const makeFakeClient = () => {
4
+ const store = new Map();
5
+ return {
6
+ store,
7
+ set: vi.fn(async (key, value, opts) => {
8
+ store.set(key, {
9
+ value,
10
+ expiresAt: opts?.EX ? Date.now() + opts.EX * 1000 : null,
11
+ });
12
+ return "OK";
13
+ }),
14
+ get: vi.fn(async (key) => {
15
+ const entry = store.get(key);
16
+ if (!entry)
17
+ return null;
18
+ if (entry.expiresAt !== null && entry.expiresAt <= Date.now()) {
19
+ store.delete(key);
20
+ return null;
21
+ }
22
+ return entry.value;
23
+ }),
24
+ del: vi.fn(async (key) => {
25
+ const had = store.delete(key);
26
+ return had ? 1 : 0;
27
+ }),
28
+ };
29
+ };
30
+ const makeLogger = () => {
31
+ const warn = vi.fn();
32
+ return {
33
+ debug: vi.fn(),
34
+ info: vi.fn(),
35
+ log: vi.fn(),
36
+ trace: vi.fn(),
37
+ warn,
38
+ error: vi.fn(),
39
+ fatal: vi.fn(),
40
+ with: vi.fn(),
41
+ level: "info",
42
+ warnSpy: warn,
43
+ };
44
+ };
45
+ describe("RedisWriteQueue — session escalation mapping", () => {
46
+ let queue;
47
+ let fakeClient;
48
+ let logger;
49
+ beforeEach(() => {
50
+ fakeClient = makeFakeClient();
51
+ logger = makeLogger();
52
+ queue = new RedisWriteQueue({}, logger);
53
+ queue.getClient =
54
+ async () => fakeClient;
55
+ });
56
+ it("cacheSessionEscalation stores the mapping under the documented key", async () => {
57
+ const ok = await queue.cacheSessionEscalation("origin-A", "escalation-B");
58
+ expect(ok).toBe(true);
59
+ expect(fakeClient.set).toHaveBeenCalledWith("cache:session:escalation:origin-A", "escalation-B", { EX: 600 });
60
+ expect(fakeClient.store.get("cache:session:escalation:origin-A")?.value).toBe("escalation-B");
61
+ });
62
+ it("getCachedSessionEscalation returns the cached value when present", async () => {
63
+ await queue.cacheSessionEscalation("origin-A", "escalation-B");
64
+ const got = await queue.getCachedSessionEscalation("origin-A");
65
+ expect(got).toBe("escalation-B");
66
+ });
67
+ it("getCachedSessionEscalation returns null when no mapping was recorded", async () => {
68
+ const got = await queue.getCachedSessionEscalation("unknown-origin");
69
+ expect(got).toBeNull();
70
+ });
71
+ it("invalidateCachedSessionEscalation drops the mapping", async () => {
72
+ await queue.cacheSessionEscalation("origin-A", "escalation-B");
73
+ await queue.invalidateCachedSessionEscalation("origin-A");
74
+ expect(fakeClient.del).toHaveBeenCalledWith("cache:session:escalation:origin-A");
75
+ const got = await queue.getCachedSessionEscalation("origin-A");
76
+ expect(got).toBeNull();
77
+ });
78
+ it("invalidateCachedSessionEscalation is a no-op on missing keys (idempotent)", async () => {
79
+ await queue.invalidateCachedSessionEscalation("never-cached");
80
+ expect(logger.warnSpy).not.toHaveBeenCalled();
81
+ });
82
+ it("cacheSessionEscalation honours a custom TTL", async () => {
83
+ await queue.cacheSessionEscalation("origin-A", "escalation-B", 30);
84
+ expect(fakeClient.set).toHaveBeenCalledWith("cache:session:escalation:origin-A", "escalation-B", { EX: 30 });
85
+ });
86
+ it("cacheSessionEscalation returns false and logs when Redis is unavailable", async () => {
87
+ queue.getClient =
88
+ async () => null;
89
+ const ok = await queue.cacheSessionEscalation("origin-A", "escalation-B");
90
+ expect(ok).toBe(false);
91
+ });
92
+ it("getCachedSessionEscalation returns null when Redis is unavailable", async () => {
93
+ queue.getClient =
94
+ async () => null;
95
+ const got = await queue.getCachedSessionEscalation("origin-A");
96
+ expect(got).toBeNull();
97
+ });
98
+ it("set failure surfaces as false + a logged warning, not a thrown error", async () => {
99
+ fakeClient.set.mockRejectedValueOnce(new Error("REDIS_DOWN"));
100
+ const ok = await queue.cacheSessionEscalation("origin-A", "escalation-B");
101
+ expect(ok).toBe(false);
102
+ expect(logger.warnSpy).toHaveBeenCalled();
103
+ });
104
+ it("get failure surfaces as null + a logged warning, not a thrown error", async () => {
105
+ fakeClient.get.mockRejectedValueOnce(new Error("REDIS_DOWN"));
106
+ const got = await queue.getCachedSessionEscalation("origin-A");
107
+ expect(got).toBeNull();
108
+ expect(logger.warnSpy).toHaveBeenCalled();
109
+ });
110
+ it("del failure surfaces as a logged warning, not a thrown error", async () => {
111
+ fakeClient.del.mockRejectedValueOnce(new Error("REDIS_DOWN"));
112
+ await expect(queue.invalidateCachedSessionEscalation("origin-A")).resolves.toBeUndefined();
113
+ expect(logger.warnSpy).toHaveBeenCalled();
114
+ });
115
+ it("entries respect TTL expiry", async () => {
116
+ vi.useFakeTimers();
117
+ try {
118
+ await queue.cacheSessionEscalation("origin-A", "escalation-B", 1);
119
+ expect(await queue.getCachedSessionEscalation("origin-A")).toBe("escalation-B");
120
+ vi.advanceTimersByTime(2_000);
121
+ expect(await queue.getCachedSessionEscalation("origin-A")).toBeNull();
122
+ }
123
+ finally {
124
+ vi.useRealTimers();
125
+ }
126
+ });
127
+ });
128
+ //# sourceMappingURL=redisCacheEscalation.unit.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redisCacheEscalation.unit.test.js","sourceRoot":"","sources":["../../../src/tests/unit/redisCacheEscalation.unit.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prosopo/database",
3
- "version": "3.15.0",
3
+ "version": "3.15.2",
4
4
  "description": "Prosopo database plugins for provider",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -38,13 +38,13 @@
38
38
  "homepage": "https://github.com/prosopo/captcha#readme",
39
39
  "dependencies": {
40
40
  "@polkadot/util": "13.5.7",
41
- "@prosopo/common": "3.1.40",
42
- "@prosopo/logger": "1.0.4",
43
- "@prosopo/redis-client": "1.0.25",
44
- "@prosopo/types": "4.8.0",
45
- "@prosopo/types-database": "4.11.0",
46
- "@prosopo/user-access-policy": "3.10.8",
47
- "@prosopo/util": "3.3.1",
41
+ "@prosopo/common": "3.1.41",
42
+ "@prosopo/logger": "2.0.0",
43
+ "@prosopo/redis-client": "1.0.26",
44
+ "@prosopo/types": "4.9.0",
45
+ "@prosopo/types-database": "4.11.1",
46
+ "@prosopo/user-access-policy": "3.10.9",
47
+ "@prosopo/util": "3.3.2",
48
48
  "bson": "6.10.4",
49
49
  "make-dir": "3.1.0",
50
50
  "mongodb": "6.15.0",
@@ -52,7 +52,7 @@
52
52
  "mongoose": "8.13.0"
53
53
  },
54
54
  "devDependencies": {
55
- "@prosopo/config": "3.3.3",
55
+ "@prosopo/config": "3.3.4",
56
56
  "@types/node": "22.10.2",
57
57
  "@vitest/coverage-v8": "3.2.4",
58
58
  "concurrently": "9.0.1",
@@ -12,7 +12,18 @@
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
14
 
15
+ import { fileURLToPath } from "node:url";
15
16
  import { ViteTestConfig } from "@prosopo/config";
16
17
  process.env.NODE_ENV = "test";
17
18
 
18
- export default ViteTestConfig();
19
+ const config = ViteTestConfig();
20
+
21
+ // Pre-download the mongod binary once, in the parent process, before the test
22
+ // forks spawn. Avoids the flaky concurrent-download lockfile race in
23
+ // mongodb-memory-server. See ./src/tests/mongoGlobalSetup.ts.
24
+ config.test = config.test || {};
25
+ config.test.globalSetup = [
26
+ fileURLToPath(new URL("./src/tests/mongoGlobalSetup.ts", import.meta.url)),
27
+ ];
28
+
29
+ export default config;