@prosopo/database 4.0.27 → 4.0.28

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 (34) hide show
  1. package/.turbo/turbo-build$colon$cjs.log +8 -8
  2. package/.turbo/turbo-build$colon$tsc.log +16 -16
  3. package/.turbo/turbo-build.log +8 -8
  4. package/CHANGELOG.md +48 -0
  5. package/dist/base/mongo.d.ts +7 -1
  6. package/dist/base/mongo.d.ts.map +1 -1
  7. package/dist/base/mongo.js +14 -2
  8. package/dist/base/mongo.js.map +1 -1
  9. package/dist/cjs/base/mongo.cjs +14 -2
  10. package/dist/cjs/databases/captcha.cjs +2 -2
  11. package/dist/cjs/databases/centralDbStreamer.cjs +10 -1
  12. package/dist/cjs/index.cjs +3 -3
  13. package/dist/cjs/mongooseOptions.cjs +20 -3
  14. package/dist/databases/captcha.d.ts +2 -2
  15. package/dist/databases/captcha.d.ts.map +1 -1
  16. package/dist/databases/captcha.js +2 -2
  17. package/dist/databases/captcha.js.map +1 -1
  18. package/dist/databases/centralDbStreamer.d.ts +2 -0
  19. package/dist/databases/centralDbStreamer.d.ts.map +1 -1
  20. package/dist/databases/centralDbStreamer.js +10 -1
  21. package/dist/databases/centralDbStreamer.js.map +1 -1
  22. package/dist/index.js +4 -4
  23. package/dist/index.js.map +1 -1
  24. package/dist/mongooseOptions.d.ts +4 -0
  25. package/dist/mongooseOptions.d.ts.map +1 -1
  26. package/dist/mongooseOptions.js +19 -4
  27. package/dist/mongooseOptions.js.map +1 -1
  28. package/dist/tests/mongooseOptions.unit.test.js +19 -1
  29. package/dist/tests/mongooseOptions.unit.test.js.map +1 -1
  30. package/dist/tests/unit/base/mongo.unit.test.d.ts +2 -0
  31. package/dist/tests/unit/base/mongo.unit.test.d.ts.map +1 -0
  32. package/dist/tests/unit/base/mongo.unit.test.js +58 -0
  33. package/dist/tests/unit/base/mongo.unit.test.js.map +1 -0
  34. package/package.json +11 -11
@@ -1,5 +1,5 @@
1
1
 
2
- > @prosopo/database@4.0.27 build:cjs
2
+ > @prosopo/database@4.0.28 build:cjs
3
3
  > NODE_ENV=${NODE_ENV:-development}; vite build --config vite.cjs.config.ts --mode $NODE_ENV
4
4
 
5
5
  ViteCommonJSConfig: .
@@ -25,6 +25,7 @@ ViteCommonJSConfig: .
25
25
  '@prosopo/logger',
26
26
  '@prosopo/util',
27
27
  '@prosopo/types',
28
+ The plugin "vite-tsconfig-paths" is detected. Vite now supports tsconfig paths resolution natively via the resolve.tsconfigPaths option. You can remove the plugin and set resolve.tsconfigPaths: true in your Vite config instead.
28
29
  '@prosopo/util-crypto',
29
30
  '@prosopo/types-database',
30
31
  '@prosopo/user-access-policy',
@@ -33,7 +34,6 @@ ViteCommonJSConfig: .
33
34
  '@prosopo/api'
34
35
  ]
35
36
  }
36
- The plugin "vite-tsconfig-paths" is detected. Vite now supports tsconfig paths resolution natively via the resolve.tsconfigPaths option. You can remove the plugin and set resolve.tsconfigPaths: true in your Vite config instead.
37
37
  vite v8.1.5 building ssr environment for production...
38
38
  Bundle build started
39
39
  
@@ -45,12 +45,12 @@ dist/cjs/base/mongoMemory.cjs 0.66 kB │ gzip: 0.32 kB
45
45
  dist/cjs/_virtual/_rolldown/runtime.cjs 1.00 kB │ gzip: 0.50 kB
46
46
  dist/cjs/databases/index.cjs 1.14 kB │ gzip: 0.32 kB
47
47
  dist/cjs/databases/client.cjs 1.57 kB │ gzip: 0.69 kB
48
- dist/cjs/index.cjs 1.57 kB │ gzip: 0.48 kB
49
- dist/cjs/mongooseOptions.cjs 2.65 kB │ gzip: 1.15 kB
50
- dist/cjs/base/mongo.cjs 3.77 kB │ gzip: 1.29 kB
51
- dist/cjs/databases/centralDbStreamer.cjs 5.29 kB │ gzip: 1.30 kB
52
- dist/cjs/databases/captcha.cjs 7.36 kB │ gzip: 2.17 kB
48
+ dist/cjs/index.cjs 1.66 kB │ gzip: 0.49 kB
49
+ dist/cjs/mongooseOptions.cjs 3.74 kB │ gzip: 1.56 kB
50
+ dist/cjs/base/mongo.cjs 4.27 kB │ gzip: 1.41 kB
51
+ dist/cjs/databases/centralDbStreamer.cjs 5.53 kB │ gzip: 1.37 kB
52
+ dist/cjs/databases/captcha.cjs 7.38 kB │ gzip: 2.18 kB
53
53
  dist/cjs/redisCache.cjs 15.77 kB │ gzip: 4.54 kB
54
54
  dist/cjs/databases/provider.cjs 59.03 kB │ gzip: 11.78 kB
55
55
 
56
- ✓ built in 107ms
56
+ ✓ built in 124ms
@@ -1,8 +1,8 @@
1
1
 
2
- > @prosopo/database@4.0.27 build:tsc
2
+ > @prosopo/database@4.0.28 build:tsc
3
3
  > tsc --build --verbose
4
4
 
5
- 10:39:45 PM - Projects in this build:
5
+ 1:15:41 PM - Projects in this build:
6
6
  * ../../dev/config/tsconfig.json
7
7
  * ../locale/tsconfig.json
8
8
  * ../util/tsconfig.json
@@ -17,31 +17,31 @@
17
17
  * ../types-database/tsconfig.json
18
18
  * tsconfig.json
19
19
 
20
- 10:39:45 PM - Project '../../dev/config/tsconfig.json' is up to date because newest input '../../dev/config/src/vite/NodejsPolarsNativeFilePlugin.ts' is older than output '../../dev/config/tsconfig.tsbuildinfo'
20
+ 1:15:41 PM - Project '../../dev/config/tsconfig.json' is up to date because newest input '../../dev/config/src/webpack/webpack.config.ts' is older than output '../../dev/config/tsconfig.tsbuildinfo'
21
21
 
22
- 10:39:45 PM - Project '../locale/tsconfig.json' is up to date because newest input '../locale/src/translationKey.ts' is older than output '../locale/tsconfig.tsbuildinfo'
22
+ 1:15:41 PM - Project '../locale/tsconfig.json' is up to date because newest input '../locale/src/translationKey.ts' is older than output '../locale/tsconfig.tsbuildinfo'
23
23
 
24
- 10:39:45 PM - Project '../util/tsconfig.json' is up to date because newest input '../util/src/url.ts' is older than output '../util/tsconfig.tsbuildinfo'
24
+ 1:15:41 PM - Project '../util/tsconfig.json' is up to date because newest input '../util/src/url.ts' is older than output '../util/tsconfig.tsbuildinfo'
25
25
 
26
- 10:39:45 PM - Project '../logger/tsconfig.json' is up to date because newest input '../logger/src/logger.ts' is older than output '../logger/tsconfig.tsbuildinfo'
26
+ 1:15:41 PM - Project '../logger/tsconfig.json' is up to date because newest input '../logger/src/index.ts' is older than output '../logger/tsconfig.tsbuildinfo'
27
27
 
28
- 10:39:45 PM - Project '../util-crypto/tsconfig.json' is up to date because newest input '../util-crypto/src/types.ts' is older than output '../util-crypto/tsconfig.tsbuildinfo'
28
+ 1:15:41 PM - Project '../util-crypto/tsconfig.json' is up to date because newest input '../util-crypto/src/types.ts' is older than output '../util-crypto/tsconfig.tsbuildinfo'
29
29
 
30
- 10:39:46 PM - Project '../types/tsconfig.json' is up to date because newest input '../types/src/types.test-d.ts' is older than output '../types/tsconfig.tsbuildinfo'
30
+ 1:15:41 PM - Project '../types/tsconfig.json' is up to date because newest input '../types/src/types.test-d.ts' is older than output '../types/tsconfig.tsbuildinfo'
31
31
 
32
- 10:39:46 PM - Project '../common/tsconfig.json' is up to date because newest input '../common/src/tests/utils/batches.unit.test.ts' is older than output '../common/tsconfig.tsbuildinfo'
32
+ 1:15:41 PM - Project '../common/tsconfig.json' is up to date because newest input '../common/src/utils/batches.ts' is older than output '../common/tsconfig.tsbuildinfo'
33
33
 
34
- 10:39:46 PM - Project '../api-route/tsconfig.json' is up to date because newest input '../api-route/src/index.ts' is older than output '../api-route/tsconfig.tsbuildinfo'
34
+ 1:15:41 PM - Project '../api-route/tsconfig.json' is up to date because newest input '../api-route/src/apiRoutes.ts' is older than output '../api-route/tsconfig.tsbuildinfo'
35
35
 
36
- 10:39:46 PM - Project '../redis-client/tsconfig.json' is up to date because newest input '../redis-client/src/index.ts' is older than output '../redis-client/tsconfig.tsbuildinfo'
36
+ 1:15:41 PM - Project '../redis-client/tsconfig.json' is up to date because newest input '../redis-client/src/index.ts' is older than output '../redis-client/tsconfig.tsbuildinfo'
37
37
 
38
- 10:39:46 PM - Project '../api/tsconfig.json' is up to date because newest input '../api/src/tests/apiHarness.ts' is older than output '../api/tsconfig.tsbuildinfo'
38
+ 1:15:41 PM - Project '../api/tsconfig.json' is up to date because newest input '../api/src/tests/apiHarness.ts' is older than output '../api/tsconfig.tsbuildinfo'
39
39
 
40
- 10:39:46 PM - Project '../user-access-policy/tsconfig.json' is up to date because newest input '../user-access-policy/src/ruleRecord.ts' is older than output '../user-access-policy/tsconfig.tsbuildinfo'
40
+ 1:15:41 PM - Project '../user-access-policy/tsconfig.json' is up to date because newest input '../user-access-policy/src/transformRule.ts' is older than output '../user-access-policy/tsconfig.tsbuildinfo'
41
41
 
42
- 10:39:46 PM - Project '../types-database/tsconfig.json' is up to date because newest input '../types-database/src/types/captcha.ts' is older than output '../types-database/tsconfig.tsbuildinfo'
42
+ 1:15:41 PM - Project '../types-database/tsconfig.json' is up to date because newest input '../types-database/src/types.test-d.ts' is older than output '../types-database/tsconfig.tsbuildinfo'
43
43
 
44
- 10:39:46 PM - Project 'tsconfig.json' is out of date because output file 'tsconfig.tsbuildinfo' does not exist
44
+ 1:15:41 PM - Project 'tsconfig.json' is out of date because output file 'tsconfig.tsbuildinfo' does not exist
45
45
 
46
- 10:39:46 PM - Building project '/home/runner/work/captcha/captcha/packages/database/tsconfig.json'...
46
+ 1:15:41 PM - Building project '/home/runner/work/captcha/captcha/packages/database/tsconfig.json'...
47
47
 
@@ -1,9 +1,9 @@
1
1
 
2
- > @prosopo/database@4.0.27 build
2
+ > @prosopo/database@4.0.28 build
3
3
  > npm run build:cross-env -- --mode ${NODE_ENV:-development}
4
4
 
5
5
 
6
- > @prosopo/database@4.0.27 build:cross-env
6
+ > @prosopo/database@4.0.28 build:cross-env
7
7
  > vite build --config vite.esm.config.ts --mode production
8
8
 
9
9
  ViteEsmConfig: .
@@ -48,13 +48,13 @@ dist/_virtual/_rolldown/runtime.js 0.04 kB │ gzip: 0.06 kB
48
48
  dist/base/index.js 0.14 kB │ gzip: 0.08 kB
49
49
  dist/base/mongoMemory.js 0.60 kB │ gzip: 0.30 kB
50
50
  dist/databases/index.js 0.77 kB │ gzip: 0.27 kB
51
- dist/index.js 0.92 kB │ gzip: 0.34 kB
51
+ dist/index.js 1.07 kB │ gzip: 0.38 kB
52
52
  dist/databases/client.js 1.47 kB │ gzip: 0.68 kB
53
- dist/mongooseOptions.js 2.56 kB │ gzip: 1.12 kB
54
- dist/base/mongo.js 3.52 kB │ gzip: 1.20 kB
55
- dist/databases/centralDbStreamer.js 5.23 kB │ gzip: 1.28 kB
56
- dist/databases/captcha.js 7.28 kB │ gzip: 2.16 kB
53
+ dist/mongooseOptions.js 3.58 kB │ gzip: 1.53 kB
54
+ dist/base/mongo.js 4.01 kB │ gzip: 1.32 kB
55
+ dist/databases/centralDbStreamer.js 5.47 kB │ gzip: 1.35 kB
56
+ dist/databases/captcha.js 7.30 kB │ gzip: 2.17 kB
57
57
  dist/redisCache.js 15.71 kB │ gzip: 4.53 kB
58
58
  dist/databases/provider.js 57.73 kB │ gzip: 11.80 kB
59
59
 
60
- ✓ built in 103ms
60
+ ✓ built in 82ms
package/CHANGELOG.md CHANGED
@@ -1,5 +1,53 @@
1
1
  # @prosopo/database
2
2
 
3
+ ## 4.0.28
4
+ ### Patch Changes
5
+
6
+ - f8a41fe: Stop leaking a mongoose connection pool on every failed database connect.
7
+
8
+ `MongoDatabase.connect()` assigns `this.connection` only once the connection
9
+ opens, so a connection that fails to open is unreachable from the instance and
10
+ `close()` can never reach it — while mongoose keeps its topology monitor, its
11
+ `minPoolSize: 5` pool and its entry in `mongoose.connections` alive and
12
+ retrying forever. `onError` now destroys that connection. `destroy` rather than
13
+ `close` because only `destroy` drops the `mongoose.connections` entry, which
14
+ would otherwise retain the object on its own. The teardown is guarded so that a
15
+ runtime `error` on an already-open connection is not mistaken for a failed
16
+ connect and does not tear down a working pool; the `error` listener stays
17
+ registered after `open` because an `EventEmitter` `error` with no listener
18
+ would take the process down.
19
+
20
+ Observed on a provider whose connects to the central DB were timing out: 524
21
+ failed connects an hour accumulated 5,819 ESTABLISHED sockets to the central
22
+ DB and 5,859 TLS sockets, and the resulting flood of driver DNS lookups
23
+ saturated libuv's four-thread pool — 8,812 `getaddrinfo` calls queued — so
24
+ every unrelated outbound lookup in the process backed up behind them. That
25
+ provider burned 3.45x the CPU of a healthy peer while serving 2.5x less
26
+ traffic, with event-loop p99 at 240ms against the peer's 27ms.
27
+
28
+ `getMongoConnectionOptions` also gains `connectTimeoutMS` and
29
+ `serverSelectionTimeoutMS` overrides, and `CentralDbStreamer` passes 45s for
30
+ both. The 10s default is sized for a database that is local or on the same
31
+ continent; the central DB is long-haul for every provider and genuinely distant
32
+ for some, where the TLS handshake alone measures 2-30s. Under the old ceiling
33
+ those providers could never connect at all, so the streamer burned a connect
34
+ attempt every cooldown forever and streamed no records — which is what fed the
35
+ leak above.
36
+ - 6f57ee9: chore(deps): bump make-dir from 3.1.0 to 5.1.0
37
+ - 6f57ee9: chore(deps): bump the npm-minor-and-patch group across 1 directory with 3 updates
38
+ - Updated dependencies [6f57ee9]
39
+ - Updated dependencies [6f57ee9]
40
+ - Updated dependencies [e22d5fb]
41
+ - Updated dependencies [b6918c0]
42
+ - Updated dependencies [d288371]
43
+ - @prosopo/user-access-policy@3.13.0
44
+ - @prosopo/types@5.7.0
45
+ - @prosopo/util@3.3.9
46
+ - @prosopo/types-database@5.4.1
47
+ - @prosopo/common@3.1.54
48
+ - @prosopo/logger@2.0.9
49
+ - @prosopo/redis-client@1.0.35
50
+
3
51
  ## 4.0.27
4
52
  ### Patch Changes
5
53
 
@@ -1,6 +1,10 @@
1
1
  import { type Logger } from "@prosopo/logger";
2
2
  import type { IDatabase } from "@prosopo/types-database";
3
3
  import mongoose, { type Connection } from "mongoose";
4
+ export interface MongoConnectionTimeouts {
5
+ connectTimeoutMS?: number;
6
+ serverSelectionTimeoutMS?: number;
7
+ }
4
8
  export declare class MongoDatabase implements IDatabase {
5
9
  protected readonly _url: string;
6
10
  safeURL: string;
@@ -9,7 +13,9 @@ export declare class MongoDatabase implements IDatabase {
9
13
  logger: Logger;
10
14
  connected: boolean;
11
15
  private connecting?;
12
- constructor(url: string, dbname?: string, authSource?: string, logger?: Logger);
16
+ protected readonly connectTimeoutMS?: number;
17
+ protected readonly serverSelectionTimeoutMS?: number;
18
+ constructor(url: string, dbname?: string, authSource?: string, logger?: Logger, timeouts?: MongoConnectionTimeouts);
13
19
  get url(): string;
14
20
  getConnection(): mongoose.Connection;
15
21
  connect(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"mongo.d.ts","sourceRoot":"","sources":["../../src/base/mongo.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,MAAM,EAAa,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,QAAQ,EAAE,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAcrD,qBAAa,aAAc,YAAW,SAAS;IAC9C,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,UAAS;IAClB,OAAO,CAAC,UAAU,CAAC,CAAgB;gBAGlC,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,MAAM;IAkBhB,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,aAAa,IAAI,QAAQ,CAAC,UAAU;IAa9B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAoGxB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAM5B"}
1
+ {"version":3,"file":"mongo.d.ts","sourceRoot":"","sources":["../../src/base/mongo.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,MAAM,EAAa,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,QAAQ,EAAE,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAYrD,MAAM,WAAW,uBAAuB;IACvC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,wBAAwB,CAAC,EAAE,MAAM,CAAC;CAClC;AAQD,qBAAa,aAAc,YAAW,SAAS;IAC9C,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,UAAS;IAClB,OAAO,CAAC,UAAU,CAAC,CAAgB;IACnC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC7C,SAAS,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,MAAM,CAAC;gBAGpD,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,uBAAuB;IAoBnC,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,aAAa,IAAI,QAAQ,CAAC,UAAU;IAa9B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAyIxB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAM5B"}
@@ -13,8 +13,10 @@ var DEFAULT_ENDPOINT = "mongodb://127.0.0.1:27017";
13
13
  * @return {MongoDatabase} Database layer
14
14
  */
15
15
  var MongoDatabase = class {
16
- constructor(url, dbname, authSource, logger) {
16
+ constructor(url, dbname, authSource, logger, timeouts) {
17
17
  this.connected = false;
18
+ this.connectTimeoutMS = timeouts?.connectTimeoutMS;
19
+ this.serverSelectionTimeoutMS = timeouts?.serverSelectionTimeoutMS;
18
20
  const parsedUrl = new URL(url || DEFAULT_ENDPOINT);
19
21
  if (dbname) parsedUrl.pathname = dbname;
20
22
  if (authSource) parsedUrl.searchParams.set("authSource", authSource);
@@ -54,9 +56,13 @@ var MongoDatabase = class {
54
56
  appName,
55
57
  dbName: this.dbname,
56
58
  maxPoolSize: 50,
57
- minPoolSize: 5
59
+ minPoolSize: 5,
60
+ connectTimeoutMS: this.connectTimeoutMS,
61
+ serverSelectionTimeoutMS: this.serverSelectionTimeoutMS
58
62
  }));
63
+ let opened = false;
59
64
  const onConnected = () => {
65
+ opened = true;
60
66
  this.logger.debug(() => ({ msg: "Database connection opened" }));
61
67
  this.connected = true;
62
68
  this.connection = connection;
@@ -70,6 +76,12 @@ var MongoDatabase = class {
70
76
  }));
71
77
  this.connected = false;
72
78
  this.connecting = void 0;
79
+ if (!opened) connection.destroy(true).catch((destroyErr) => {
80
+ this.logger.error(() => ({
81
+ err: destroyErr,
82
+ msg: "Failed to destroy unconnected database connection"
83
+ }));
84
+ });
73
85
  reject(err);
74
86
  };
75
87
  connection.once("open", onConnected);
@@ -1 +1 @@
1
- {"version":3,"file":"mongo.js","sourceRoot":"","sources":["../../src/base/mongo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mongo.js","sourceRoot":"","sources":["../../src/base/mongo.ts"],"names":[],"mappings":"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"}
@@ -15,8 +15,10 @@ var DEFAULT_ENDPOINT = "mongodb://127.0.0.1:27017";
15
15
  * @return {MongoDatabase} Database layer
16
16
  */
17
17
  var MongoDatabase = class {
18
- constructor(url, dbname, authSource, logger) {
18
+ constructor(url, dbname, authSource, logger, timeouts) {
19
19
  this.connected = false;
20
+ this.connectTimeoutMS = timeouts?.connectTimeoutMS;
21
+ this.serverSelectionTimeoutMS = timeouts?.serverSelectionTimeoutMS;
20
22
  const parsedUrl = new URL(url || DEFAULT_ENDPOINT);
21
23
  if (dbname) parsedUrl.pathname = dbname;
22
24
  if (authSource) parsedUrl.searchParams.set("authSource", authSource);
@@ -56,9 +58,13 @@ var MongoDatabase = class {
56
58
  appName,
57
59
  dbName: this.dbname,
58
60
  maxPoolSize: 50,
59
- minPoolSize: 5
61
+ minPoolSize: 5,
62
+ connectTimeoutMS: this.connectTimeoutMS,
63
+ serverSelectionTimeoutMS: this.serverSelectionTimeoutMS
60
64
  }));
65
+ let opened = false;
61
66
  const onConnected = () => {
67
+ opened = true;
62
68
  this.logger.debug(() => ({ msg: "Database connection opened" }));
63
69
  this.connected = true;
64
70
  this.connection = connection;
@@ -72,6 +78,12 @@ var MongoDatabase = class {
72
78
  }));
73
79
  this.connected = false;
74
80
  this.connecting = void 0;
81
+ if (!opened) connection.destroy(true).catch((destroyErr) => {
82
+ this.logger.error(() => ({
83
+ err: destroyErr,
84
+ msg: "Failed to destroy unconnected database connection"
85
+ }));
86
+ });
75
87
  reject(err);
76
88
  };
77
89
  connection.once("open", onConnected);
@@ -29,8 +29,8 @@ var CAPTCHA_TABLES = [
29
29
  }
30
30
  ];
31
31
  var CaptchaDatabase = class CaptchaDatabase extends require_mongo.MongoDatabase {
32
- constructor(url, dbname, authSource, logger) {
33
- super(url, dbname, authSource, logger);
32
+ constructor(url, dbname, authSource, logger, timeouts) {
33
+ super(url, dbname, authSource, logger, timeouts);
34
34
  this.indexesEnsured = false;
35
35
  this.tables = {};
36
36
  }
@@ -17,10 +17,19 @@ var CentralDbStreamer = class CentralDbStreamer {
17
17
  static {
18
18
  this.RECONNECT_COOLDOWN_MS = 5e3;
19
19
  }
20
+ static {
21
+ this.CONNECT_TIMEOUT_MS = 45e3;
22
+ }
23
+ static {
24
+ this.SERVER_SELECTION_TIMEOUT_MS = 45e3;
25
+ }
20
26
  constructor(mongoCaptchaUri, logger) {
21
27
  this.lastFailureTime = 0;
22
28
  this.logger = logger || (0, _prosopo_logger.getLogger)("info", "CentralDbStreamer");
23
- this.db = new require_captcha.CaptchaDatabase(mongoCaptchaUri, void 0, void 0, this.logger);
29
+ this.db = new require_captcha.CaptchaDatabase(mongoCaptchaUri, void 0, void 0, this.logger, {
30
+ connectTimeoutMS: CentralDbStreamer.CONNECT_TIMEOUT_MS,
31
+ serverSelectionTimeoutMS: CentralDbStreamer.SERVER_SELECTION_TIMEOUT_MS
32
+ });
24
33
  }
25
34
  ensureConnected() {
26
35
  if (this.connectPromise && !this.db.connected) this.connectPromise = void 0;
@@ -1,5 +1,4 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_runtime = require("./_virtual/_rolldown/runtime.cjs");
3
2
  const require_mongooseOptions = require("./mongooseOptions.cjs");
4
3
  const require_mongo = require("./base/mongo.cjs");
5
4
  const require_mongoMemory = require("./base/mongoMemory.cjs");
@@ -10,13 +9,14 @@ const require_centralDbStreamer = require("./databases/centralDbStreamer.cjs");
10
9
  const require_index = require("./databases/index.cjs");
11
10
  const require_redisCache = require("./redisCache.cjs");
12
11
  let make_dir = require("make-dir");
13
- make_dir = require_runtime.__toESM(make_dir, 1);
14
12
  //#region src/index.ts
15
- console.debug(make_dir.default);
13
+ console.debug(make_dir.makeDirectory);
16
14
  //#endregion
17
15
  exports.CaptchaDatabase = require_captcha.CaptchaDatabase;
18
16
  exports.CentralDbStreamer = require_centralDbStreamer.CentralDbStreamer;
19
17
  exports.ClientDatabase = require_client.ClientDatabase;
18
+ exports.DEFAULT_CONNECT_TIMEOUT_MS = require_mongooseOptions.DEFAULT_CONNECT_TIMEOUT_MS;
19
+ exports.DEFAULT_SERVER_SELECTION_TIMEOUT_MS = require_mongooseOptions.DEFAULT_SERVER_SELECTION_TIMEOUT_MS;
20
20
  exports.DETECTOR_BUNDLE_TTL_SECONDS = require_redisCache.DETECTOR_BUNDLE_TTL_SECONDS;
21
21
  exports.Databases = require_index.Databases;
22
22
  exports.MongoDatabase = require_mongo.MongoDatabase;
@@ -25,6 +25,19 @@ var getMongoCompressors = (url, compressors = DEFAULT_COMPRESSORS) => {
25
25
  }
26
26
  };
27
27
  /**
28
+ * Default connect / server-selection timeouts.
29
+ *
30
+ * These are sized for a database that is local to the process or at least on
31
+ * the same continent, where a connect that has not completed in 10s is a real
32
+ * fault worth failing fast on. They are *not* safe as a universal ceiling: a
33
+ * connection to a remote database can need far longer for the TLS handshake
34
+ * alone — pronode17 measures 2-30s to mongo1 — and every connect that trips
35
+ * the ceiling is a wasted attempt that will simply be retried. Callers that
36
+ * own a known long-haul connection pass their own values instead.
37
+ */
38
+ var DEFAULT_CONNECT_TIMEOUT_MS = 1e4;
39
+ var DEFAULT_SERVER_SELECTION_TIMEOUT_MS = 2e4;
40
+ /**
28
41
  * Returns default mongoose connection options with the ability to override specific values.
29
42
  *
30
43
  * @param options - Configuration options
@@ -33,10 +46,12 @@ var getMongoCompressors = (url, compressors = DEFAULT_COMPRESSORS) => {
33
46
  * @param options.maxPoolSize - Maximum pool size (default: 10)
34
47
  * @param options.minPoolSize - Minimum pool size (default: 0)
35
48
  * @param options.dbName - Optional database name
49
+ * @param options.connectTimeoutMS - Max time to establish a connection (default: 10000)
50
+ * @param options.serverSelectionTimeoutMS - Max time to select a server (default: 20000)
36
51
  * @returns Mongoose connection options object
37
52
  */
38
53
  var getMongoConnectionOptions = (options) => {
39
- const { url, appName, maxPoolSize = 10, minPoolSize = 0, dbName } = options;
54
+ const { url, appName, maxPoolSize = 10, minPoolSize = 0, dbName, connectTimeoutMS = DEFAULT_CONNECT_TIMEOUT_MS, serverSelectionTimeoutMS = DEFAULT_SERVER_SELECTION_TIMEOUT_MS } = options;
40
55
  if (!url || url.trim() === "") throw new Error("MongoDB connection URL is required and cannot be empty or whitespace-only");
41
56
  const compressors = getMongoCompressors(url);
42
57
  const connectionOptions = {
@@ -48,16 +63,18 @@ var getMongoConnectionOptions = (options) => {
48
63
  maxPoolSize,
49
64
  minPoolSize,
50
65
  maxConnecting: 2,
51
- connectTimeoutMS: 1e4,
66
+ connectTimeoutMS,
52
67
  socketTimeoutMS: 3e4,
53
68
  maxIdleTimeMS: 3e5,
54
69
  appName,
55
- serverSelectionTimeoutMS: 2e4,
70
+ serverSelectionTimeoutMS,
56
71
  compressors
57
72
  };
58
73
  if (dbName) connectionOptions.dbName = dbName;
59
74
  return connectionOptions;
60
75
  };
61
76
  //#endregion
77
+ exports.DEFAULT_CONNECT_TIMEOUT_MS = DEFAULT_CONNECT_TIMEOUT_MS;
78
+ exports.DEFAULT_SERVER_SELECTION_TIMEOUT_MS = DEFAULT_SERVER_SELECTION_TIMEOUT_MS;
62
79
  exports.getMongoCompressors = getMongoCompressors;
63
80
  exports.getMongoConnectionOptions = getMongoConnectionOptions;
@@ -1,7 +1,7 @@
1
1
  import { type Logger } from "@prosopo/logger";
2
2
  import { type CaptchaProperties, type ICaptchaDatabase, type PoWCaptchaRecord, type PuzzleCaptchaRecord, type StoredSession, type Tables, type UserCommitmentRecord } from "@prosopo/types-database";
3
3
  import type { QueryFilter } from "mongoose";
4
- import { MongoDatabase } from "../base/index.js";
4
+ import { type MongoConnectionTimeouts, MongoDatabase } from "../base/index.js";
5
5
  declare enum TableNames {
6
6
  frictionlessToken = "frictionlessToken",
7
7
  session = "session",
@@ -12,7 +12,7 @@ declare enum TableNames {
12
12
  export declare class CaptchaDatabase extends MongoDatabase implements ICaptchaDatabase {
13
13
  tables: Tables<TableNames>;
14
14
  private indexesEnsured;
15
- constructor(url: string, dbname?: string, authSource?: string, logger?: Logger);
15
+ constructor(url: string, dbname?: string, authSource?: string, logger?: Logger, timeouts?: MongoConnectionTimeouts);
16
16
  connect(): Promise<void>;
17
17
  getTables(): Tables<TableNames>;
18
18
  ensureIndexes(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"captcha.d.ts","sourceRoot":"","sources":["../../src/databases/captcha.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,MAAM,EAAa,MAAM,iBAAiB,CAAC;AACzD,OAAO,EACN,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EAGxB,KAAK,aAAa,EAGlB,KAAK,MAAM,EACX,KAAK,oBAAoB,EACzB,MAAM,yBAAyB,CAAC;AAajC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAIjD,aAAK,UAAU;IACd,iBAAiB,sBAAsB;IACvC,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,UAAU,eAAe;IACzB,aAAa,kBAAkB;CAC/B;AAyBD,qBAAa,eAAgB,SAAQ,aAAc,YAAW,gBAAgB;IAC7E,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IAC3B,OAAO,CAAC,cAAc,CAAS;gBAG9B,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,MAAM;IAMD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAUvC,SAAS,IAAI,MAAM,CAAC,UAAU,CAAC;IAUzB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAqDpC,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAoBnC,OAAO,CAAC,MAAM,CAAC,wBAAwB;IAajC,YAAY,CACjB,aAAa,EAAE,aAAa,EAAE,EAC9B,kBAAkB,EAAE,oBAAoB,EAAE,EAC1C,gBAAgB,EAAE,gBAAgB,EAAE,EACpC,mBAAmB,GAAE,mBAAmB,EAAO;IAmI1C,WAAW,CAChB,MAAM,GAAE,WAAW,CAAC,iBAAiB,CAAM,EAC3C,KAAK,SAAM,GACT,OAAO,CAAC;QACV,qBAAqB,EAAE,oBAAoB,EAAE,CAAC;QAC9C,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;QACtC,oBAAoB,EAAE,mBAAmB,EAAE,CAAC;KAC5C,CAAC;CAsCF"}
1
+ {"version":3,"file":"captcha.d.ts","sourceRoot":"","sources":["../../src/databases/captcha.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,MAAM,EAAa,MAAM,iBAAiB,CAAC;AACzD,OAAO,EACN,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EAGxB,KAAK,aAAa,EAGlB,KAAK,MAAM,EACX,KAAK,oBAAoB,EACzB,MAAM,yBAAyB,CAAC;AAajC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,KAAK,uBAAuB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAI/E,aAAK,UAAU;IACd,iBAAiB,sBAAsB;IACvC,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,UAAU,eAAe;IACzB,aAAa,kBAAkB;CAC/B;AAyBD,qBAAa,eAAgB,SAAQ,aAAc,YAAW,gBAAgB;IAC7E,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IAC3B,OAAO,CAAC,cAAc,CAAS;gBAG9B,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,uBAAuB;IAMpB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAUvC,SAAS,IAAI,MAAM,CAAC,UAAU,CAAC;IAUzB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAqDpC,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAoBnC,OAAO,CAAC,MAAM,CAAC,wBAAwB;IAajC,YAAY,CACjB,aAAa,EAAE,aAAa,EAAE,EAC9B,kBAAkB,EAAE,oBAAoB,EAAE,EAC1C,gBAAgB,EAAE,gBAAgB,EAAE,EACpC,mBAAmB,GAAE,mBAAmB,EAAO;IAmI1C,WAAW,CAChB,MAAM,GAAE,WAAW,CAAC,iBAAiB,CAAM,EAC3C,KAAK,SAAM,GACT,OAAO,CAAC;QACV,qBAAqB,EAAE,oBAAoB,EAAE,CAAC;QAC9C,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;QACtC,oBAAoB,EAAE,mBAAmB,EAAE,CAAC;KAC5C,CAAC;CAsCF"}
@@ -29,8 +29,8 @@ var CAPTCHA_TABLES = [
29
29
  }
30
30
  ];
31
31
  var CaptchaDatabase = class CaptchaDatabase extends MongoDatabase {
32
- constructor(url, dbname, authSource, logger) {
33
- super(url, dbname, authSource, logger);
32
+ constructor(url, dbname, authSource, logger, timeouts) {
33
+ super(url, dbname, authSource, logger, timeouts);
34
34
  this.indexesEnsured = false;
35
35
  this.tables = {};
36
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"captcha.js","sourceRoot":"","sources":["../../src/databases/captcha.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"captcha.js","sourceRoot":"","sources":["../../src/databases/captcha.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,8 @@ export declare class CentralDbStreamer {
7
7
  private connectPromise;
8
8
  private lastFailureTime;
9
9
  private static readonly RECONNECT_COOLDOWN_MS;
10
+ private static readonly CONNECT_TIMEOUT_MS;
11
+ private static readonly SERVER_SELECTION_TIMEOUT_MS;
10
12
  constructor(mongoCaptchaUri: string, logger?: Logger);
11
13
  private ensureConnected;
12
14
  private getRecordTimestamp;
@@ -1 +1 @@
1
- {"version":3,"file":"centralDbStreamer.d.ts","sourceRoot":"","sources":["../../src/databases/centralDbStreamer.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,KAAK,MAAM,EAAa,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EACX,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,EACb,oBAAoB,EACpB,MAAM,yBAAyB,CAAC;AAUjC,MAAM,MAAM,kBAAkB,GAAG,CAAC,iBAAiB,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAc5E,qBAAa,iBAAiB;IAC7B,OAAO,CAAC,EAAE,CAAkB;IAC5B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAS;gBAE1C,eAAe,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAUpD,OAAO,CAAC,eAAe;IA8BvB,OAAO,CAAC,kBAAkB;IAiB1B,eAAe,CACd,MAAM,EAAE,gBAAgB,EACxB,UAAU,CAAC,EAAE,kBAAkB,GAC7B,IAAI;IAuBP,eAAe,CACd,aAAa,EAAE,MAAM,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,EACrD,UAAU,CAAC,EAAE,kBAAkB,GAC7B,IAAI;IAmBP,iBAAiB,CAChB,MAAM,EAAE,oBAAoB,EAC5B,UAAU,CAAC,EAAE,kBAAkB,GAC7B,IAAI;IAuBP,iBAAiB,CAChB,aAAa,EAAE,MAAM,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,EACzD,UAAU,CAAC,EAAE,kBAAkB,GAC7B,IAAI;IAmBP,kBAAkB,CACjB,MAAM,EAAE,mBAAmB,EAC3B,UAAU,CAAC,EAAE,kBAAkB,GAC7B,IAAI;IAuBP,kBAAkB,CACjB,aAAa,EAAE,MAAM,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,EACxD,UAAU,CAAC,EAAE,kBAAkB,GAC7B,IAAI;IAmBP,mBAAmB,CAClB,MAAM,EAAE,aAAa,EACrB,UAAU,CAAC,EAAE,kBAAkB,GAC7B,IAAI;CAmBP"}
1
+ {"version":3,"file":"centralDbStreamer.d.ts","sourceRoot":"","sources":["../../src/databases/centralDbStreamer.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,KAAK,MAAM,EAAa,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EACX,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,EACb,oBAAoB,EACpB,MAAM,yBAAyB,CAAC;AAUjC,MAAM,MAAM,kBAAkB,GAAG,CAAC,iBAAiB,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAc5E,qBAAa,iBAAiB;IAC7B,OAAO,CAAC,EAAE,CAAkB;IAC5B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAS;IAWtD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAU;IACpD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,2BAA2B,CAAU;gBAEjD,eAAe,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAcpD,OAAO,CAAC,eAAe;IA8BvB,OAAO,CAAC,kBAAkB;IAiB1B,eAAe,CACd,MAAM,EAAE,gBAAgB,EACxB,UAAU,CAAC,EAAE,kBAAkB,GAC7B,IAAI;IAuBP,eAAe,CACd,aAAa,EAAE,MAAM,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,EACrD,UAAU,CAAC,EAAE,kBAAkB,GAC7B,IAAI;IAmBP,iBAAiB,CAChB,MAAM,EAAE,oBAAoB,EAC5B,UAAU,CAAC,EAAE,kBAAkB,GAC7B,IAAI;IAuBP,iBAAiB,CAChB,aAAa,EAAE,MAAM,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,EACzD,UAAU,CAAC,EAAE,kBAAkB,GAC7B,IAAI;IAmBP,kBAAkB,CACjB,MAAM,EAAE,mBAAmB,EAC3B,UAAU,CAAC,EAAE,kBAAkB,GAC7B,IAAI;IAuBP,kBAAkB,CACjB,aAAa,EAAE,MAAM,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,EACxD,UAAU,CAAC,EAAE,kBAAkB,GAC7B,IAAI;IAmBP,mBAAmB,CAClB,MAAM,EAAE,aAAa,EACrB,UAAU,CAAC,EAAE,kBAAkB,GAC7B,IAAI;CAmBP"}
@@ -17,10 +17,19 @@ var CentralDbStreamer = class CentralDbStreamer {
17
17
  static {
18
18
  this.RECONNECT_COOLDOWN_MS = 5e3;
19
19
  }
20
+ static {
21
+ this.CONNECT_TIMEOUT_MS = 45e3;
22
+ }
23
+ static {
24
+ this.SERVER_SELECTION_TIMEOUT_MS = 45e3;
25
+ }
20
26
  constructor(mongoCaptchaUri, logger) {
21
27
  this.lastFailureTime = 0;
22
28
  this.logger = logger || getLogger("info", "CentralDbStreamer");
23
- this.db = new CaptchaDatabase(mongoCaptchaUri, void 0, void 0, this.logger);
29
+ this.db = new CaptchaDatabase(mongoCaptchaUri, void 0, void 0, this.logger, {
30
+ connectTimeoutMS: CentralDbStreamer.CONNECT_TIMEOUT_MS,
31
+ serverSelectionTimeoutMS: CentralDbStreamer.SERVER_SELECTION_TIMEOUT_MS
32
+ });
24
33
  }
25
34
  ensureConnected() {
26
35
  if (this.connectPromise && !this.db.connected) this.connectPromise = void 0;
@@ -1 +1 @@
1
- {"version":3,"file":"centralDbStreamer.js","sourceRoot":"","sources":["../../src/databases/centralDbStreamer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"centralDbStreamer.js","sourceRoot":"","sources":["../../src/databases/centralDbStreamer.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import "./_virtual/_rolldown/runtime.js";
2
- import { getMongoCompressors, getMongoConnectionOptions } from "./mongooseOptions.js";
2
+ import { DEFAULT_CONNECT_TIMEOUT_MS, DEFAULT_SERVER_SELECTION_TIMEOUT_MS, getMongoCompressors, getMongoConnectionOptions } from "./mongooseOptions.js";
3
3
  import { MongoDatabase } from "./base/mongo.js";
4
4
  import { MongoMemoryDatabase } from "./base/mongoMemory.js";
5
5
  import { CaptchaDatabase } from "./databases/captcha.js";
@@ -8,8 +8,8 @@ import { ProviderDatabase } from "./databases/provider.js";
8
8
  import { CentralDbStreamer } from "./databases/centralDbStreamer.js";
9
9
  import { Databases } from "./databases/index.js";
10
10
  import { DETECTOR_BUNDLE_TTL_SECONDS, RedisWriteQueue } from "./redisCache.js";
11
- import makeDir from "make-dir";
11
+ import { makeDirectory } from "make-dir";
12
12
  //#region src/index.ts
13
- console.debug(makeDir);
13
+ console.debug(makeDirectory);
14
14
  //#endregion
15
- export { CaptchaDatabase, CentralDbStreamer, ClientDatabase, DETECTOR_BUNDLE_TTL_SECONDS, Databases, MongoDatabase, MongoMemoryDatabase, ProviderDatabase, RedisWriteQueue, getMongoCompressors, getMongoConnectionOptions };
15
+ export { CaptchaDatabase, CentralDbStreamer, ClientDatabase, DEFAULT_CONNECT_TIMEOUT_MS, DEFAULT_SERVER_SELECTION_TIMEOUT_MS, DETECTOR_BUNDLE_TTL_SECONDS, Databases, MongoDatabase, MongoMemoryDatabase, ProviderDatabase, RedisWriteQueue, getMongoCompressors, getMongoConnectionOptions };
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,OAAO,OAAO,MAAM,UAAU,CAAC;AAE/B,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AACvB,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC"}
@@ -1,11 +1,15 @@
1
1
  import type { ConnectOptions } from "mongoose";
2
2
  export type MongoCompressor = "zstd" | "none" | "snappy" | "zlib";
3
3
  export declare const getMongoCompressors: (url: string, compressors?: MongoCompressor[]) => MongoCompressor[];
4
+ export declare const DEFAULT_CONNECT_TIMEOUT_MS = 10000;
5
+ export declare const DEFAULT_SERVER_SELECTION_TIMEOUT_MS = 20000;
4
6
  export declare const getMongoConnectionOptions: (options: {
5
7
  url: string;
6
8
  appName: string;
7
9
  maxPoolSize?: number;
8
10
  minPoolSize?: number;
9
11
  dbName?: string;
12
+ connectTimeoutMS?: number;
13
+ serverSelectionTimeoutMS?: number;
10
14
  }) => ConnectOptions;
11
15
  //# sourceMappingURL=mongooseOptions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mongooseOptions.d.ts","sourceRoot":"","sources":["../src/mongooseOptions.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;AAqBlE,eAAO,MAAM,mBAAmB,QAC1B,MAAM,gBACE,eAAe,EAAE,KAC5B,eAAe,EAuCjB,CAAC;AAaF,eAAO,MAAM,yBAAyB,YAAa;IAClD,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB,KAAG,cAmCH,CAAC"}
1
+ {"version":3,"file":"mongooseOptions.d.ts","sourceRoot":"","sources":["../src/mongooseOptions.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;AAqBlE,eAAO,MAAM,mBAAmB,QAC1B,MAAM,gBACE,eAAe,EAAE,KAC5B,eAAe,EAuCjB,CAAC;AAaF,eAAO,MAAM,0BAA0B,QAAQ,CAAC;AAChD,eAAO,MAAM,mCAAmC,QAAQ,CAAC;AAezD,eAAO,MAAM,yBAAyB,YAAa;IAClD,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,wBAAwB,CAAC,EAAE,MAAM,CAAC;CAClC,KAAG,cA2CH,CAAC"}
@@ -25,6 +25,19 @@ var getMongoCompressors = (url, compressors = DEFAULT_COMPRESSORS) => {
25
25
  }
26
26
  };
27
27
  /**
28
+ * Default connect / server-selection timeouts.
29
+ *
30
+ * These are sized for a database that is local to the process or at least on
31
+ * the same continent, where a connect that has not completed in 10s is a real
32
+ * fault worth failing fast on. They are *not* safe as a universal ceiling: a
33
+ * connection to a remote database can need far longer for the TLS handshake
34
+ * alone — pronode17 measures 2-30s to mongo1 — and every connect that trips
35
+ * the ceiling is a wasted attempt that will simply be retried. Callers that
36
+ * own a known long-haul connection pass their own values instead.
37
+ */
38
+ var DEFAULT_CONNECT_TIMEOUT_MS = 1e4;
39
+ var DEFAULT_SERVER_SELECTION_TIMEOUT_MS = 2e4;
40
+ /**
28
41
  * Returns default mongoose connection options with the ability to override specific values.
29
42
  *
30
43
  * @param options - Configuration options
@@ -33,10 +46,12 @@ var getMongoCompressors = (url, compressors = DEFAULT_COMPRESSORS) => {
33
46
  * @param options.maxPoolSize - Maximum pool size (default: 10)
34
47
  * @param options.minPoolSize - Minimum pool size (default: 0)
35
48
  * @param options.dbName - Optional database name
49
+ * @param options.connectTimeoutMS - Max time to establish a connection (default: 10000)
50
+ * @param options.serverSelectionTimeoutMS - Max time to select a server (default: 20000)
36
51
  * @returns Mongoose connection options object
37
52
  */
38
53
  var getMongoConnectionOptions = (options) => {
39
- const { url, appName, maxPoolSize = 10, minPoolSize = 0, dbName } = options;
54
+ const { url, appName, maxPoolSize = 10, minPoolSize = 0, dbName, connectTimeoutMS = DEFAULT_CONNECT_TIMEOUT_MS, serverSelectionTimeoutMS = DEFAULT_SERVER_SELECTION_TIMEOUT_MS } = options;
40
55
  if (!url || url.trim() === "") throw new Error("MongoDB connection URL is required and cannot be empty or whitespace-only");
41
56
  const compressors = getMongoCompressors(url);
42
57
  const connectionOptions = {
@@ -48,15 +63,15 @@ var getMongoConnectionOptions = (options) => {
48
63
  maxPoolSize,
49
64
  minPoolSize,
50
65
  maxConnecting: 2,
51
- connectTimeoutMS: 1e4,
66
+ connectTimeoutMS,
52
67
  socketTimeoutMS: 3e4,
53
68
  maxIdleTimeMS: 3e5,
54
69
  appName,
55
- serverSelectionTimeoutMS: 2e4,
70
+ serverSelectionTimeoutMS,
56
71
  compressors
57
72
  };
58
73
  if (dbName) connectionOptions.dbName = dbName;
59
74
  return connectionOptions;
60
75
  };
61
76
  //#endregion
62
- export { getMongoCompressors, getMongoConnectionOptions };
77
+ export { DEFAULT_CONNECT_TIMEOUT_MS, DEFAULT_SERVER_SELECTION_TIMEOUT_MS, getMongoCompressors, getMongoConnectionOptions };
@@ -1 +1 @@
1
- {"version":3,"file":"mongooseOptions.js","sourceRoot":"","sources":["../src/mongooseOptions.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAW3C,MAAM,mBAAmB,GAAsB,EAAE,CAAC;AAalD,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"}
1
+ {"version":3,"file":"mongooseOptions.js","sourceRoot":"","sources":["../src/mongooseOptions.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAW3C,MAAM,mBAAmB,GAAsB,EAAE,CAAC;AAalD,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,0BAA0B,GAAG,KAAK,CAAC;AAChD,MAAM,CAAC,MAAM,mCAAmC,GAAG,KAAK,CAAC;AAezD,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,OAQzC,EAAkB,EAAE;IACpB,MAAM,EACL,GAAG,EACH,OAAO,EACP,WAAW,GAAG,EAAE,EAChB,WAAW,GAAG,CAAC,EACf,MAAM,EACN,gBAAgB,GAAG,0BAA0B,EAC7C,wBAAwB,GAAG,mCAAmC,GAC9D,GAAG,OAAO,CAAC;IAEZ,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;QAChB,eAAe,EAAE,KAAK;QACtB,aAAa,EAAE,MAAM;QACrB,OAAO;QACP,wBAAwB;QACxB,WAAW;KACX,CAAC;IAEF,IAAI,MAAM,EAAE,CAAC;QACZ,iBAAiB,CAAC,MAAM,GAAG,MAAM,CAAC;IACnC,CAAC;IAED,OAAO,iBAAiB,CAAC;AAC1B,CAAC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { ServerApiVersion } from "mongodb";
2
2
  import { describe, expect, it } from "vitest";
3
- import { getMongoCompressors, getMongoConnectionOptions, } from "../mongooseOptions.js";
3
+ import { DEFAULT_CONNECT_TIMEOUT_MS, DEFAULT_SERVER_SELECTION_TIMEOUT_MS, getMongoCompressors, getMongoConnectionOptions, } from "../mongooseOptions.js";
4
4
  const DEFAULT_COMPRESSORS = [];
5
5
  const EXPLICIT_COMPRESSORS = [
6
6
  "zstd",
@@ -151,6 +151,24 @@ describe("getMongoConnectionOptions", () => {
151
151
  expect(options.maxPoolSize).toBe(50);
152
152
  expect(options.minPoolSize).toBe(5);
153
153
  });
154
+ it("defaults the connect and server selection timeouts", () => {
155
+ const options = getMongoConnectionOptions({
156
+ url: "mongodb://example.com:27017/db",
157
+ appName,
158
+ });
159
+ expect(options.connectTimeoutMS).toBe(DEFAULT_CONNECT_TIMEOUT_MS);
160
+ expect(options.serverSelectionTimeoutMS).toBe(DEFAULT_SERVER_SELECTION_TIMEOUT_MS);
161
+ });
162
+ it("applies connect and server selection timeout overrides", () => {
163
+ const options = getMongoConnectionOptions({
164
+ url: "mongodb://example.com:27017/db",
165
+ appName,
166
+ connectTimeoutMS: 45_000,
167
+ serverSelectionTimeoutMS: 45_000,
168
+ });
169
+ expect(options.connectTimeoutMS).toBe(45_000);
170
+ expect(options.serverSelectionTimeoutMS).toBe(45_000);
171
+ });
154
172
  it("only sets dbName when provided", () => {
155
173
  const withDbName = getMongoConnectionOptions({
156
174
  url: "mongodb://example.com:27017/db",
@@ -1 +1 @@
1
- {"version":3,"file":"mongooseOptions.unit.test.js","sourceRoot":"","sources":["../../src/tests/mongooseOptions.unit.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mongooseOptions.unit.test.js","sourceRoot":"","sources":["../../src/tests/mongooseOptions.unit.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=mongo.unit.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mongo.unit.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/unit/base/mongo.unit.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,58 @@
1
+ import { EventEmitter } from "node:events";
2
+ import mongoose from "mongoose";
3
+ import { afterEach, describe, expect, it, vi } from "vitest";
4
+ import { MongoDatabase } from "../../../base/mongo.js";
5
+ const createMockLogger = () => {
6
+ const logger = {
7
+ debug: vi.fn(),
8
+ info: vi.fn(),
9
+ warn: vi.fn(),
10
+ error: vi.fn(),
11
+ trace: vi.fn(),
12
+ fatal: vi.fn(),
13
+ log: vi.fn(),
14
+ with: vi.fn(() => logger),
15
+ };
16
+ return logger;
17
+ };
18
+ class FakeConnection extends EventEmitter {
19
+ constructor() {
20
+ super(...arguments);
21
+ this.destroy = vi.fn((_force) => Promise.resolve());
22
+ this.close = vi.fn((_force) => Promise.resolve());
23
+ }
24
+ }
25
+ const asConnection = (fake) => fake;
26
+ const flush = () => new Promise((resolve) => setTimeout(resolve, 10));
27
+ describe("MongoDatabase.connect", () => {
28
+ afterEach(() => {
29
+ vi.restoreAllMocks();
30
+ });
31
+ it("destroys a connection that failed to open", async () => {
32
+ const fake = new FakeConnection();
33
+ vi.spyOn(mongoose, "createConnection").mockReturnValue(asConnection(fake));
34
+ const db = new MongoDatabase("mongodb://user:pass@example.com:27017/db", "db", undefined, createMockLogger());
35
+ const connecting = db.connect();
36
+ await flush();
37
+ fake.emit("error", new Error("connect ETIMEDOUT"));
38
+ await expect(connecting).rejects.toThrow("connect ETIMEDOUT");
39
+ expect(fake.destroy).toHaveBeenCalledTimes(1);
40
+ expect(db.connected).toBe(false);
41
+ expect(db.connection).toBeUndefined();
42
+ });
43
+ it("does not destroy a connection that already opened", async () => {
44
+ const fake = new FakeConnection();
45
+ vi.spyOn(mongoose, "createConnection").mockReturnValue(asConnection(fake));
46
+ const db = new MongoDatabase("mongodb://user:pass@example.com:27017/db", "db", undefined, createMockLogger());
47
+ const connecting = db.connect();
48
+ await flush();
49
+ fake.emit("open");
50
+ await connecting;
51
+ expect(db.connected).toBe(true);
52
+ expect(db.connection).toBe(asConnection(fake));
53
+ fake.emit("error", new Error("transient topology error"));
54
+ await flush();
55
+ expect(fake.destroy).not.toHaveBeenCalled();
56
+ });
57
+ });
58
+ //# sourceMappingURL=mongo.unit.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mongo.unit.test.js","sourceRoot":"","sources":["../../../../src/tests/unit/base/mongo.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": "4.0.27",
3
+ "version": "4.0.28",
4
4
  "description": "Prosopo database plugins for provider",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -38,21 +38,21 @@
38
38
  "homepage": "https://github.com/prosopo/captcha#readme",
39
39
  "dependencies": {
40
40
  "@polkadot/util": "13.5.7",
41
- "@prosopo/common": "3.1.53",
42
- "@prosopo/logger": "2.0.8",
43
- "@prosopo/redis-client": "1.0.34",
44
- "@prosopo/types": "5.6.0",
45
- "@prosopo/types-database": "5.4.0",
46
- "@prosopo/user-access-policy": "3.12.33",
47
- "@prosopo/util": "3.3.8",
41
+ "@prosopo/common": "3.1.54",
42
+ "@prosopo/logger": "2.0.9",
43
+ "@prosopo/redis-client": "1.0.35",
44
+ "@prosopo/types": "5.7.0",
45
+ "@prosopo/types-database": "5.4.1",
46
+ "@prosopo/user-access-policy": "3.13.0",
47
+ "@prosopo/util": "3.3.9",
48
48
  "bson": "7.3.2",
49
- "make-dir": "3.1.0",
50
- "mongodb": "7.5.0",
49
+ "make-dir": "5.1.0",
50
+ "mongodb": "7.6.0",
51
51
  "mongodb-memory-server": "10.3.0",
52
52
  "mongoose": "9.9.4"
53
53
  },
54
54
  "devDependencies": {
55
- "@prosopo/config": "3.3.13",
55
+ "@prosopo/config": "3.3.14",
56
56
  "@types/node": "22.10.2",
57
57
  "@vitest/coverage-v8": "4.1.11",
58
58
  "concurrently": "9.0.1",