@prosopo/database 4.0.27 → 4.0.29

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 -8
  2. package/.turbo/turbo-build$colon$tsc.log +16 -16
  3. package/.turbo/turbo-build.log +9 -9
  4. package/CHANGELOG.md +70 -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/databases/provider.cjs +2 -1
  13. package/dist/cjs/index.cjs +3 -3
  14. package/dist/cjs/mongooseOptions.cjs +20 -3
  15. package/dist/databases/captcha.d.ts +2 -2
  16. package/dist/databases/captcha.d.ts.map +1 -1
  17. package/dist/databases/captcha.js +2 -2
  18. package/dist/databases/captcha.js.map +1 -1
  19. package/dist/databases/centralDbStreamer.d.ts +2 -0
  20. package/dist/databases/centralDbStreamer.d.ts.map +1 -1
  21. package/dist/databases/centralDbStreamer.js +10 -1
  22. package/dist/databases/centralDbStreamer.js.map +1 -1
  23. package/dist/databases/provider.d.ts.map +1 -1
  24. package/dist/databases/provider.js +2 -1
  25. package/dist/databases/provider.js.map +1 -1
  26. package/dist/index.js +4 -4
  27. package/dist/index.js.map +1 -1
  28. package/dist/mongooseOptions.d.ts +4 -0
  29. package/dist/mongooseOptions.d.ts.map +1 -1
  30. package/dist/mongooseOptions.js +19 -4
  31. package/dist/mongooseOptions.js.map +1 -1
  32. package/dist/tests/integration/commitmentRecordProjection.integration.test.js +3 -0
  33. package/dist/tests/integration/commitmentRecordProjection.integration.test.js.map +1 -1
  34. package/dist/tests/mongooseOptions.unit.test.js +19 -1
  35. package/dist/tests/mongooseOptions.unit.test.js.map +1 -1
  36. package/dist/tests/unit/base/mongo.unit.test.d.ts +2 -0
  37. package/dist/tests/unit/base/mongo.unit.test.d.ts.map +1 -0
  38. package/dist/tests/unit/base/mongo.unit.test.js +58 -0
  39. package/dist/tests/unit/base/mongo.unit.test.js.map +1 -0
  40. package/package.json +11 -11
@@ -1,5 +1,5 @@
1
1
 
2
- > @prosopo/database@4.0.27 build:cjs
2
+ > @prosopo/database@4.0.29 build:cjs
3
3
  > NODE_ENV=${NODE_ENV:-development}; vite build --config vite.cjs.config.ts --mode $NODE_ENV
4
4
 
5
5
  ViteCommonJSConfig: .
@@ -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
- dist/cjs/databases/provider.cjs 59.03 kB │ gzip: 11.78 kB
54
+ dist/cjs/databases/provider.cjs 59.05 kB │ gzip: 11.79 kB
55
55
 
56
- ✓ built in 107ms
56
+ ✓ built in 76ms
@@ -1,8 +1,8 @@
1
1
 
2
- > @prosopo/database@4.0.27 build:tsc
2
+ > @prosopo/database@4.0.29 build:tsc
3
3
  > tsc --build --verbose
4
4
 
5
- 10:39:45 PM - Projects in this build:
5
+ 8:02:09 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
+ 8:02:09 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'
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
+ 8:02:09 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
+ 8:02:09 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
+ 8:02:09 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
+ 8:02:09 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
+ 8:02:09 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
+ 8:02:09 PM - Project '../common/tsconfig.json' is up to date because newest input '../common/src/index.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
+ 8:02:09 PM - Project '../api-route/tsconfig.json' is up to date because newest input '../api-route/src/tests/apiRoute.unit.test.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
+ 8:02:09 PM - Project '../redis-client/tsconfig.json' is up to date because newest input '../redis-client/src/tests/testRedisConnection.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
+ 8:02:09 PM - Project '../api/tsconfig.json' is up to date because newest input '../api/src/index.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
+ 8:02:09 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
+ 8:02:09 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
+ 8:02:09 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
+ 8:02:09 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.29 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.29 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
- dist/databases/provider.js 57.73 kB │ gzip: 11.80 kB
58
+ dist/databases/provider.js 57.75 kB │ gzip: 11.81 kB
59
59
 
60
- ✓ built in 103ms
60
+ ✓ built in 53ms
package/CHANGELOG.md CHANGED
@@ -1,5 +1,75 @@
1
1
  # @prosopo/database
2
2
 
3
+ ## 4.0.29
4
+ ### Patch Changes
5
+
6
+ - 8a63ea3: Include `clientMetaData` in the commitment projection.
7
+
8
+ `DAPP_USER_COMMITMENT_PROJECTION` enumerates the fields the verify path reads
9
+ off `solution`. `clientMetaData` arrived in 5.5.0 with the client-session
10
+ correlation but was never added, so both `getDappUserCommitmentById` and
11
+ `getDappUserCommitmentByAccount` returned it as `undefined` on every fetch —
12
+ whatever was stored on the record.
13
+
14
+ `isClientSessionMismatch(expected, undefined)` is therefore true whenever the
15
+ caller supplies a session id, so every image captcha verified through a caller
16
+ that correlates on a session was disapproved with `CLIENT_SESSION_MISMATCH`:
17
+ a token replay reported on solves earned in exactly the session they claimed.
18
+
19
+ PoW and puzzle were unaffected — they read their own challenge record rather
20
+ than this projection, which is why the failure was confined to image captchas.
21
+
22
+ The projection's own regression test now asserts the field round-trips; it was
23
+ written to catch this class of bug and did not cover this field.
24
+
25
+ ## 4.0.28
26
+ ### Patch Changes
27
+
28
+ - f8a41fe: Stop leaking a mongoose connection pool on every failed database connect.
29
+
30
+ `MongoDatabase.connect()` assigns `this.connection` only once the connection
31
+ opens, so a connection that fails to open is unreachable from the instance and
32
+ `close()` can never reach it — while mongoose keeps its topology monitor, its
33
+ `minPoolSize: 5` pool and its entry in `mongoose.connections` alive and
34
+ retrying forever. `onError` now destroys that connection. `destroy` rather than
35
+ `close` because only `destroy` drops the `mongoose.connections` entry, which
36
+ would otherwise retain the object on its own. The teardown is guarded so that a
37
+ runtime `error` on an already-open connection is not mistaken for a failed
38
+ connect and does not tear down a working pool; the `error` listener stays
39
+ registered after `open` because an `EventEmitter` `error` with no listener
40
+ would take the process down.
41
+
42
+ Observed on a provider whose connects to the central DB were timing out: 524
43
+ failed connects an hour accumulated 5,819 ESTABLISHED sockets to the central
44
+ DB and 5,859 TLS sockets, and the resulting flood of driver DNS lookups
45
+ saturated libuv's four-thread pool — 8,812 `getaddrinfo` calls queued — so
46
+ every unrelated outbound lookup in the process backed up behind them. That
47
+ provider burned 3.45x the CPU of a healthy peer while serving 2.5x less
48
+ traffic, with event-loop p99 at 240ms against the peer's 27ms.
49
+
50
+ `getMongoConnectionOptions` also gains `connectTimeoutMS` and
51
+ `serverSelectionTimeoutMS` overrides, and `CentralDbStreamer` passes 45s for
52
+ both. The 10s default is sized for a database that is local or on the same
53
+ continent; the central DB is long-haul for every provider and genuinely distant
54
+ for some, where the TLS handshake alone measures 2-30s. Under the old ceiling
55
+ those providers could never connect at all, so the streamer burned a connect
56
+ attempt every cooldown forever and streamed no records — which is what fed the
57
+ leak above.
58
+ - 6f57ee9: chore(deps): bump make-dir from 3.1.0 to 5.1.0
59
+ - 6f57ee9: chore(deps): bump the npm-minor-and-patch group across 1 directory with 3 updates
60
+ - Updated dependencies [6f57ee9]
61
+ - Updated dependencies [6f57ee9]
62
+ - Updated dependencies [e22d5fb]
63
+ - Updated dependencies [b6918c0]
64
+ - Updated dependencies [d288371]
65
+ - @prosopo/user-access-policy@3.13.0
66
+ - @prosopo/types@5.7.0
67
+ - @prosopo/util@3.3.9
68
+ - @prosopo/types-database@5.4.1
69
+ - @prosopo/common@3.1.54
70
+ - @prosopo/logger@2.0.9
71
+ - @prosopo/redis-client@1.0.35
72
+
3
73
  ## 4.0.27
4
74
  ### Patch Changes
5
75
 
@@ -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;
@@ -1428,7 +1428,8 @@ var ProviderDatabase = class ProviderDatabase extends require_mongo.MongoDatabas
1428
1428
  ipInfo: 1,
1429
1429
  behavioralDataPacked: 1,
1430
1430
  deviceCapability: 1,
1431
- coords: 1
1431
+ coords: 1,
1432
+ clientMetaData: 1
1432
1433
  };
1433
1434
  }
1434
1435
  /**
@@ -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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"}