@rapidrest/service-core 2.0.0 → 2.1.1

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 (85) hide show
  1. package/dist/lib/BackgroundServiceManager.js +51 -9
  2. package/dist/lib/BackgroundServiceManager.js.map +1 -1
  3. package/dist/lib/EventListenerManager.js +35 -2
  4. package/dist/lib/EventListenerManager.js.map +1 -1
  5. package/dist/lib/NetUtils.js +215 -21
  6. package/dist/lib/NetUtils.js.map +1 -1
  7. package/dist/lib/ObjectFactory.js +7 -2
  8. package/dist/lib/ObjectFactory.js.map +1 -1
  9. package/dist/lib/RateLimiter.js.map +1 -1
  10. package/dist/lib/Server.js +121 -80
  11. package/dist/lib/Server.js.map +1 -1
  12. package/dist/lib/auth/AuthMiddleware.js +160 -100
  13. package/dist/lib/auth/AuthMiddleware.js.map +1 -1
  14. package/dist/lib/auth/JWTStrategy.js +6 -2
  15. package/dist/lib/auth/JWTStrategy.js.map +1 -1
  16. package/dist/lib/database/ConnectionManager.js +50 -2
  17. package/dist/lib/database/ConnectionManager.js.map +1 -1
  18. package/dist/lib/database/DatabaseErrors.js +88 -0
  19. package/dist/lib/database/DatabaseErrors.js.map +1 -0
  20. package/dist/lib/database/MongoRepository.js +31 -3
  21. package/dist/lib/database/MongoRepository.js.map +1 -1
  22. package/dist/lib/database/MongoSchemaSync.js +7 -1
  23. package/dist/lib/database/MongoSchemaSync.js.map +1 -1
  24. package/dist/lib/database/TypeOrmSupport.js +49 -15
  25. package/dist/lib/database/TypeOrmSupport.js.map +1 -1
  26. package/dist/lib/database/index.js +1 -0
  27. package/dist/lib/database/index.js.map +1 -1
  28. package/dist/lib/decorators/PersistenceDecorators.js +23 -0
  29. package/dist/lib/decorators/PersistenceDecorators.js.map +1 -1
  30. package/dist/lib/decorators/RouteDecorators.js +4 -2
  31. package/dist/lib/decorators/RouteDecorators.js.map +1 -1
  32. package/dist/lib/http/bun/BunRouter.js +119 -9
  33. package/dist/lib/http/bun/BunRouter.js.map +1 -1
  34. package/dist/lib/http/index.js +1 -0
  35. package/dist/lib/http/index.js.map +1 -1
  36. package/dist/lib/http/session/sessionMiddleware.js +62 -14
  37. package/dist/lib/http/session/sessionMiddleware.js.map +1 -1
  38. package/dist/lib/http/types.js +10 -1
  39. package/dist/lib/http/types.js.map +1 -1
  40. package/dist/lib/http/uWS/Adapters.js +31 -13
  41. package/dist/lib/http/uWS/Adapters.js.map +1 -1
  42. package/dist/lib/http/uWS/Router.js +80 -16
  43. package/dist/lib/http/uWS/Router.js.map +1 -1
  44. package/dist/lib/http/uWS/WebSocket.js +4 -2
  45. package/dist/lib/http/uWS/WebSocket.js.map +1 -1
  46. package/dist/lib/models/ModelUtils.js +255 -81
  47. package/dist/lib/models/ModelUtils.js.map +1 -1
  48. package/dist/lib/models/RepoUtils.js +863 -266
  49. package/dist/lib/models/RepoUtils.js.map +1 -1
  50. package/dist/lib/routes/BaseAdminRoute.js +5 -4
  51. package/dist/lib/routes/BaseAdminRoute.js.map +1 -1
  52. package/dist/lib/routes/BasePushRoute.js +104 -40
  53. package/dist/lib/routes/BasePushRoute.js.map +1 -1
  54. package/dist/lib/routes/CRUDRoute.js +31 -17
  55. package/dist/lib/routes/CRUDRoute.js.map +1 -1
  56. package/dist/lib/routes/RouteUtils.js +120 -29
  57. package/dist/lib/routes/RouteUtils.js.map +1 -1
  58. package/dist/lib/security/ACLUtils.js +170 -34
  59. package/dist/lib/security/ACLUtils.js.map +1 -1
  60. package/dist/types/BackgroundServiceManager.d.ts +6 -0
  61. package/dist/types/EventListenerManager.d.ts +4 -0
  62. package/dist/types/NetUtils.d.ts +65 -6
  63. package/dist/types/RateLimiter.d.ts +4 -3
  64. package/dist/types/Server.d.ts +33 -2
  65. package/dist/types/auth/AuthMiddleware.d.ts +35 -4
  66. package/dist/types/database/ConnectionManager.d.ts +18 -0
  67. package/dist/types/database/DatabaseErrors.d.ts +26 -0
  68. package/dist/types/database/MongoRepository.d.ts +21 -2
  69. package/dist/types/database/TypeOrmSupport.d.ts +11 -2
  70. package/dist/types/database/index.d.ts +1 -0
  71. package/dist/types/decorators/PersistenceDecorators.d.ts +31 -0
  72. package/dist/types/decorators/RouteDecorators.d.ts +4 -2
  73. package/dist/types/http/bun/BunRouter.d.ts +23 -2
  74. package/dist/types/http/index.d.ts +2 -1
  75. package/dist/types/http/session/sessionMiddleware.d.ts +14 -4
  76. package/dist/types/http/types.d.ts +40 -0
  77. package/dist/types/http/uWS/Adapters.d.ts +10 -1
  78. package/dist/types/http/uWS/Router.d.ts +15 -2
  79. package/dist/types/models/ModelUtils.d.ts +96 -1
  80. package/dist/types/models/RepoUtils.d.ts +240 -4
  81. package/dist/types/routes/BasePushRoute.d.ts +5 -0
  82. package/dist/types/routes/CRUDRoute.d.ts +10 -0
  83. package/dist/types/routes/RouteUtils.d.ts +37 -1
  84. package/dist/types/security/ACLUtils.d.ts +68 -7
  85. package/package.json +1 -1
@@ -11,7 +11,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  // Copyright (C) 2020-2026 Jean-Philippe Steinmetz
12
12
  // SPDX-License-Identifier: MPL-2.0
13
13
  ///////////////////////////////////////////////////////////////////////////////
14
- import { ApiError, JWTUtils, ObjectDecorators } from "@rapidrest/core";
14
+ import { ApiError, ObjectDecorators } from "@rapidrest/core";
15
15
  import { ApiErrors, ApiErrorMessages } from "../ApiErrors.js";
16
16
  import { JWTStrategy } from "./JWTStrategy.js";
17
17
  const { Config, Init } = ObjectDecorators;
@@ -39,35 +39,38 @@ export class AuthMiddleware {
39
39
  /**
40
40
  * Performs authentication of the given request using one of the provided strategies.
41
41
  *
42
+ * Each strategy is tried in order until one succeeds. A strategy that throws doesn't stop the others from
43
+ * being tried, since several strategies can claim the same credential (e.g. `jwt` and `oauth_bearer` both
44
+ * read an `Authorization: Bearer` header). If no strategy succeeds and at least one threw, the first error
45
+ * thrown is rethrown, whether or not `required` is set, so callers can still tell a bad credential from a
46
+ * missing one.
47
+ *
42
48
  * @param strategies The list of strategy names to attempt authentication with.
43
49
  * @param req The request containing data to perform authenticate with.
44
50
  * @param res The response to use when writing back directly to the client.
45
51
  * @param required Set to `true` to if authentication is required to pass, otherwise set to `false`.
46
52
  */
47
53
  async authenticate(strategies, req, res, required) {
54
+ const errors = [];
48
55
  for (const name of strategies) {
49
- // Attempt authentication with the strategy
50
- const strategy = this.strategies.get(name);
51
- if (strategy) {
56
+ const strategy = this.getStrategy(name);
57
+ try {
52
58
  const authResult = await strategy.authenticate(req, res);
53
- // Was it successful?
54
59
  if (authResult) {
55
60
  return authResult;
56
61
  }
57
62
  }
58
- else {
59
- throw new Error("No authentication strategy has been registered with name: " + name);
63
+ catch (err) {
64
+ errors.push(err);
60
65
  }
61
66
  }
62
- if (required) {
63
- throw new Error("Authentication failed.");
64
- }
65
- return undefined;
67
+ return this.authFailed(errors, required);
66
68
  }
67
69
  /**
68
70
  * Performs authentication of the given request using one of the provided strategies.
69
71
  *
70
- * This is the synchronous version of `authenticate` that performs blocking based authentication.
72
+ * This is the synchronous version of `authenticate` that performs blocking based authentication. It follows
73
+ * the same rules for strategies that throw.
71
74
  *
72
75
  * @param strategies The list of strategy names to attempt authentication with.
73
76
  * @param req The request containing data to perform authenticate with.
@@ -75,38 +78,79 @@ export class AuthMiddleware {
75
78
  * @param required Set to `true` to if authentication is required to pass, otherwise set to `false`.
76
79
  */
77
80
  authenticateSync(strategies, req, res, required) {
78
- let authResult = undefined;
81
+ const errors = [];
79
82
  for (const name of strategies) {
80
- // Attempt authentication with the strategy
81
- const strategy = this.strategies.get(name);
82
- if (strategy) {
83
- authResult = strategy.authenticateSync(req, res);
84
- }
85
- else {
86
- throw new Error("No authentication strategy has been registered with name: " + name);
83
+ const strategy = this.getStrategy(name);
84
+ try {
85
+ const authResult = strategy.authenticateSync(req, res);
86
+ if (authResult) {
87
+ return authResult;
88
+ }
87
89
  }
88
- // Was it successful?
89
- if (authResult) {
90
- break;
90
+ catch (err) {
91
+ errors.push(err);
91
92
  }
92
93
  }
93
- if (!authResult && required) {
94
+ return this.authFailed(errors, required);
95
+ }
96
+ /**
97
+ * Returns the registered strategy with the given name, throwing if there is none. A missing strategy is a
98
+ * configuration error, so it is never treated as an ordinary authentication failure.
99
+ */
100
+ getStrategy(name) {
101
+ const strategy = this.strategies.get(name);
102
+ if (!strategy) {
103
+ throw new Error("No authentication strategy has been registered with name: " + name);
104
+ }
105
+ return strategy;
106
+ }
107
+ /**
108
+ * Handles the case where no strategy authenticated the request: rethrows the first strategy error if there was
109
+ * one, throws if authentication is required, and otherwise returns `undefined`.
110
+ */
111
+ authFailed(errors, required) {
112
+ if (errors.length > 0) {
113
+ throw errors[0];
114
+ }
115
+ if (required) {
94
116
  throw new Error("Authentication failed.");
95
117
  }
96
- return authResult;
118
+ return undefined;
119
+ }
120
+ /**
121
+ * Builds a copy of `req` that carries only the given token, as an `Authorization: Bearer` header. Used to run
122
+ * a WebSocket `LOGIN` message's token through the route's strategies. Query parameters and cookies from the
123
+ * upgrade request are removed, so a strategy can't authenticate from a credential other than the one supplied.
124
+ */
125
+ createTokenRequest(req, token) {
126
+ const headers = { ...req.headers, authorization: `Bearer ${token}` };
127
+ return Object.create(req, {
128
+ cookies: { value: {}, enumerable: true, writable: true },
129
+ headers: { value: headers, enumerable: true, writable: true },
130
+ query: { value: {}, enumerable: true, writable: true },
131
+ signedCookies: { value: {}, enumerable: true, writable: true },
132
+ });
97
133
  }
98
134
  /**
99
135
  * Returns a request handler function that will perform authentication of a websocket connection. Authentication
100
136
  * can be handled in two ways:
101
137
  *
102
- * 1. Authorization header
138
+ * 1. Authorization header (or any other credential a strategy reads from the upgrade request)
103
139
  * 2. Negotiation via handshake
104
140
  *
105
- * This middleware function primarily provides the implementation for item 2 above.
141
+ * Pre-upgrade auth (see `RouteUtils.registerRoute()`) can only run strategies synchronously. When it didn't
142
+ * authenticate the connection, this handler first runs the strategies asynchronously against the upgrade
143
+ * request, which covers async-only strategies such as `oauth_bearer`. If that doesn't authenticate either, it
144
+ * waits for a `LOGIN` message whose `data` token is also verified through `strategies`, sent to them as an
145
+ * `Authorization: Bearer` header.
146
+ *
147
+ * When `required` is `false`, a failed or missing credential never closes the connection; the handler proceeds
148
+ * anonymously.
106
149
  *
107
150
  * @param required Set to `true` to indicate that auth is required, otherwise `false`.
151
+ * @param strategies The strategy names to authenticate with. Defaults to `["jwt"]`, matching `RouteUtils`.
108
152
  */
109
- authWebSocket(required) {
153
+ authWebSocket(required, strategies = ["jwt"]) {
110
154
  return (req, _res, next) => {
111
155
  const sock = req.websocket || req.socket;
112
156
  const user = req.user;
@@ -128,104 +172,120 @@ export class AuthMiddleware {
128
172
  sock.removeListener("close", onClose);
129
173
  fn();
130
174
  };
175
+ const accept = (result) => {
176
+ req.user = result.user;
177
+ // Set req.auth so @User decorator in wrapMiddleware resolves correctly
178
+ req.auth = result;
179
+ next();
180
+ };
181
+ const rejectAuth = (id) => {
182
+ const error = new ApiError(ApiErrors.AUTH_FAILED, 401, ApiErrorMessages.AUTH_FAILED);
183
+ if (id !== undefined) {
184
+ sock.send(JSON.stringify({ id, type: "LOGIN_RESPONSE", success: false, data: error.message }));
185
+ }
186
+ sock.close(1002, error.message);
187
+ next(error);
188
+ };
189
+ const rejectInvalid = () => {
190
+ if (required) {
191
+ const error = new ApiError(ApiErrors.INVALID_REQUEST, 400, ApiErrorMessages.INVALID_REQUEST);
192
+ sock.close(1002, error.code);
193
+ next(error);
194
+ }
195
+ else {
196
+ next();
197
+ }
198
+ };
131
199
  const onClose = () => {
132
200
  // Socket closed before auth completed — unblock runChain so the open handler can
133
201
  // finish. The readyState === 3 guard in the router's ws() open handler (uWS/Router.ts
134
202
  // and bun/BunRouter.ts both implement it) will skip the final ws.close().
135
203
  settle(() => next());
136
204
  };
137
- const onMessage = (data, isBinary) => {
138
- if (isBinary) {
205
+ const login = async (message) => {
206
+ let result = undefined;
207
+ try {
208
+ if (typeof message.data === "string" && message.data.length > 0) {
209
+ result = await this.authenticate(strategies, this.createTokenRequest(req, message.data));
210
+ }
211
+ }
212
+ catch {
213
+ // A malformed token makes a strategy throw. Keep the established response for that case:
214
+ // close with `INVALID_REQUEST` when auth is required, otherwise proceed anonymously.
215
+ settle(rejectInvalid);
216
+ return;
217
+ }
218
+ if (result?.user?.uid) {
219
+ const loginResult = result;
139
220
  settle(() => {
140
- if (required) {
141
- const error = new ApiError(ApiErrors.INVALID_REQUEST, 400, ApiErrorMessages.INVALID_REQUEST);
142
- sock.close(1002, error.code);
143
- next(error);
144
- }
145
- else {
146
- next();
147
- }
221
+ sock.send(JSON.stringify({ id: message.id, type: "LOGIN_RESPONSE", success: true }));
222
+ accept(loginResult);
148
223
  });
224
+ }
225
+ else if (required) {
226
+ settle(() => rejectAuth(message.id));
227
+ }
228
+ else {
229
+ settle(() => {
230
+ sock.send(JSON.stringify({
231
+ id: message.id,
232
+ type: "LOGIN_RESPONSE",
233
+ success: false,
234
+ data: "Invalid authentication token.",
235
+ }));
236
+ next();
237
+ });
238
+ }
239
+ };
240
+ const onMessage = (data, isBinary) => {
241
+ if (isBinary) {
242
+ settle(rejectInvalid);
149
243
  return;
150
244
  }
245
+ let message = undefined;
151
246
  try {
152
- const message = JSON.parse(data);
153
- if (message.type === "LOGIN") {
154
- const payload = JWTUtils.decodeTokenSync(this.authConfig, message.data);
155
- const loginUser = payload && payload.profile ? payload.profile : null;
156
- if (loginUser && loginUser.uid) {
157
- settle(() => {
158
- sock.send(JSON.stringify({ id: message.id, type: "LOGIN_RESPONSE", success: true }));
159
- req.user = loginUser;
160
- // Set req.auth so @User decorator in wrapMiddleware resolves correctly
161
- req.auth = { user: loginUser, method: "jwt", data: message.data, payload };
162
- next();
163
- });
164
- }
165
- else if (required) {
166
- settle(() => {
167
- const error = new ApiError(ApiErrors.AUTH_FAILED, 401, ApiErrorMessages.AUTH_FAILED);
168
- sock.send(JSON.stringify({
169
- id: message.id,
170
- type: "LOGIN_RESPONSE",
171
- success: false,
172
- data: error.message,
173
- }));
174
- sock.close(1002, error.message);
175
- next(error);
176
- });
177
- }
178
- else {
179
- settle(() => {
180
- sock.send(JSON.stringify({
181
- id: message.id,
182
- type: "LOGIN_RESPONSE",
183
- success: false,
184
- data: "Invalid authentication token.",
185
- }));
186
- next();
187
- });
188
- }
189
- }
190
- else if (required) {
191
- settle(() => {
192
- const error = new ApiError(ApiErrors.INVALID_REQUEST, 400, ApiErrorMessages.INVALID_REQUEST);
193
- sock.close(1002, error.code);
194
- next(error);
195
- });
196
- }
197
- else {
198
- settle(() => next());
199
- }
247
+ message = JSON.parse(data);
200
248
  }
201
249
  catch {
202
- settle(() => {
203
- if (required) {
204
- const error = new ApiError(ApiErrors.INVALID_REQUEST, 400, ApiErrorMessages.INVALID_REQUEST);
205
- sock.close(1002, error.code);
206
- next(error);
207
- }
208
- else {
209
- next();
210
- }
211
- });
250
+ settle(rejectInvalid);
251
+ return;
252
+ }
253
+ if (message?.type === "LOGIN") {
254
+ // Stop listening now. The login verification is async, and the timer or a close can still
255
+ // settle first while it runs.
256
+ sock.removeListener("message", onMessage);
257
+ void login(message);
258
+ }
259
+ else {
260
+ settle(rejectInvalid);
212
261
  }
213
262
  };
263
+ // Attach listeners before any await, so a LOGIN frame sent right after the upgrade isn't missed.
214
264
  sock.once("message", onMessage);
215
265
  sock.once("close", onClose);
216
266
  const timer = setTimeout(() => {
217
267
  settle(() => {
218
268
  if (required) {
219
- const error = new ApiError(ApiErrors.AUTH_FAILED, 401, ApiErrorMessages.AUTH_FAILED);
220
- error.status = 401;
221
- sock.close(1002, error.message);
222
- next(error);
269
+ rejectAuth();
223
270
  }
224
271
  else {
225
272
  next();
226
273
  }
227
274
  });
228
275
  }, this.authSocketTimeout);
276
+ // Try the strategies against the upgrade request itself. This covers credentials that the synchronous
277
+ // pre-upgrade auth couldn't verify, e.g. an `Authorization` header for an async-only strategy.
278
+ this.authenticate(strategies, req).then((result) => {
279
+ if (result?.user?.uid) {
280
+ settle(() => accept(result));
281
+ }
282
+ }, () => {
283
+ // A credential was sent but is invalid. Only reject when auth is required; otherwise keep
284
+ // waiting for a LOGIN message, the same as when no credential was sent.
285
+ if (required) {
286
+ settle(() => rejectAuth());
287
+ }
288
+ });
229
289
  };
230
290
  }
231
291
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"AuthMiddleware.js","sourceRoot":"","sources":["../../../src/auth/AuthMiddleware.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AuthMiddleware.js","sourceRoot":"","sources":["../../../src/auth/AuthMiddleware.ts"],"names":[],"mappings":"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"}
@@ -154,7 +154,9 @@ export class JWTStrategy {
154
154
  authPayload = payload;
155
155
  if (user) {
156
156
  // If sessions are enabled, update the stored information about the authenticated user
157
- if (req.session) {
157
+ // Only a session the client already holds: a cookie-less bearer client would otherwise get a new
158
+ // session persisted on every request (see sessionMiddleware's `sessionIsNew`).
159
+ if (req.session && !req.sessionIsNew) {
158
160
  const now = Date.now();
159
161
  req.session.ip = NetUtils.getIPAddress(req);
160
162
  req.session.lastAccess = now;
@@ -186,7 +188,9 @@ export class JWTStrategy {
186
188
  authPayload = payload;
187
189
  if (user) {
188
190
  // If sessions are enabled, update the stored information about the authenticated user
189
- if (req.session) {
191
+ // Only a session the client already holds: a cookie-less bearer client would otherwise get a new
192
+ // session persisted on every request (see sessionMiddleware's `sessionIsNew`).
193
+ if (req.session && !req.sessionIsNew) {
190
194
  const now = Date.now();
191
195
  req.session.ip = NetUtils.getIPAddress(req);
192
196
  req.session.lastAccess = now;
@@ -1 +1 @@
1
- {"version":3,"file":"JWTStrategy.js","sourceRoot":"","sources":["../../../src/auth/JWTStrategy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"JWTStrategy.js","sourceRoot":"","sources":["../../../src/auth/JWTStrategy.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,52 @@ import { importRedis, isSqlDataSource } from "./ConnectionKinds.js";
16
16
  import { MongoConnection } from "./MongoConnection.js";
17
17
  import { MongoSchemaSync } from "./MongoSchemaSync.js";
18
18
  const { Destroy, Logger } = ObjectDecorators;
19
+ /** Marks a redis client that already has the listeners from `attachRedisErrorHandler()`. */
20
+ const REDIS_ERROR_HANDLER = Symbol("rrst:redisErrorHandler");
21
+ /**
22
+ * Attaches `error`, `reconnecting` and `ready` listeners that log a redis client's connection problems.
23
+ *
24
+ * A node-redis client emits `error` whenever its socket fails (e.g. the server restarts or the network drops). An
25
+ * `EventEmitter` with no `error` listener throws on that event, which crashes the whole process. With a listener,
26
+ * the client's own reconnect strategy (exponential backoff, retried indefinitely by default) takes over and pending
27
+ * subscriptions are restored once it reconnects.
28
+ *
29
+ * To avoid flooding the log while a server is unreachable, the first error of an outage is logged as an error and
30
+ * the following ones as debug messages, until the client is `ready` again. Every client this library creates, and
31
+ * every `duplicate()` of one, must be passed through this function. Calling it again on the same client does nothing.
32
+ *
33
+ * @param client The redis client to attach the listeners to. Clients without an `on()` method are ignored.
34
+ * @param logger The logger to report errors to.
35
+ * @param name A name for the client, used in log messages.
36
+ * @returns The given client.
37
+ */
38
+ export function attachRedisErrorHandler(client, logger, name) {
39
+ const emitter = client;
40
+ if (!emitter || typeof emitter.on !== "function" || emitter[REDIS_ERROR_HANDLER]) {
41
+ return client;
42
+ }
43
+ Object.defineProperty(emitter, REDIS_ERROR_HANDLER, { value: true });
44
+ let failing = false;
45
+ emitter.on("error", (err) => {
46
+ if (!failing) {
47
+ failing = true;
48
+ logger?.error(`Redis connection '${name}' failed: ${err?.message ?? err}`);
49
+ }
50
+ else {
51
+ logger?.debug(`Redis connection '${name}' is still failing: ${err?.message ?? err}`);
52
+ }
53
+ });
54
+ emitter.on("reconnecting", () => {
55
+ logger?.debug(`Redis connection '${name}' is reconnecting...`);
56
+ });
57
+ emitter.on("ready", () => {
58
+ if (failing) {
59
+ failing = false;
60
+ logger?.info(`Redis connection '${name}' re-established.`);
61
+ }
62
+ });
63
+ return client;
64
+ }
19
65
  /**
20
66
  * Provides database connection management.
21
67
  *
@@ -142,7 +188,7 @@ export class ConnectionManager {
142
188
  // generic importOptionalDependency(pkg, ...) helper, whose variable specifier bundler/test
143
189
  // tooling (e.g. Vitest's module mocking) can't always statically analyze and intercept.
144
190
  const { createClient } = await importRedis();
145
- const redisConn = createClient({ url });
191
+ const redisConn = attachRedisErrorHandler(createClient({ url }), this.logger, name);
146
192
  await redisConn.connect();
147
193
  connection = redisConn;
148
194
  }
@@ -192,7 +238,7 @@ export class ConnectionManager {
192
238
  * Attempts to disconnect all active database connections.
193
239
  */
194
240
  async disconnect() {
195
- for (const conn of this.connections.values()) {
241
+ for (const [name, conn] of this.connections.entries()) {
196
242
  if (conn) {
197
243
  if (conn instanceof MongoConnection) {
198
244
  if (conn.isConnected) {
@@ -204,6 +250,8 @@ export class ConnectionManager {
204
250
  if (sqlConn.isInitialized) {
205
251
  await sqlConn.destroy();
206
252
  }
253
+ const orm = await import("./TypeOrmSupport.js");
254
+ orm.release(name, sqlConn);
207
255
  }
208
256
  else if (typeof conn.disconnect === "function") {
209
257
  // The only other connection kind this class ever creates is a redis client. Duck-typed
@@ -1 +1 @@
1
- {"version":3,"file":"ConnectionManager.js","sourceRoot":"","sources":["../../../src/database/ConnectionManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConnectionManager.js","sourceRoot":"","sources":["../../../src/database/ConnectionManager.ts"],"names":[],"mappings":"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"}