@mondart/nestjs-common-module-core 3.2.7 → 3.2.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -23,6 +23,14 @@ app.useGlobalPipes(new I18nValidationPipe(validationOptions));
23
23
  app.useGlobalFilters(new GlobalExceptionFilter(true)); // true = report to Sentry
24
24
  ```
25
25
 
26
+ By default, Sentry reporting ignores HTTP status codes `400`, `401`, `403`,
27
+ `404`, and `422`. Pass a second argument to replace that list (including an
28
+ empty array to report every non-validation exception):
29
+
30
+ ```ts
31
+ app.useGlobalFilters(new GlobalExceptionFilter(true, [400, 404]));
32
+ ```
33
+
26
34
  `GlobalExceptionFilter` catches everything — Nest's built-in exceptions,
27
35
  package-local exceptions (e.g. `TooManyRequestsException`), plain errors, and
28
36
  `I18nValidationException` — and always responds with the same `ErrorResponse`
@@ -231,6 +239,9 @@ On `SIGTERM` or `SIGINT`, the helper rejects new requests with `503` and a
231
239
  Kafka, queue, and database shutdown hooks run. Configure the container stop
232
240
  grace period above that deadline (the Swarm deployment uses two minutes).
233
241
  Do not register Nest's default shutdown signal handlers alongside this helper.
242
+ During `app.close()`, the helper suppresses only ioredis's known
243
+ `Connection is closed.` rejection caused by an already-closing Bull connection;
244
+ any other unhandled shutdown rejection is logged and produces a failed exit.
234
245
 
235
246
  ## Kafka-related exports
236
247
 
@@ -3,4 +3,5 @@ export * from './is-id.decorator';
3
3
  export * from './is-not-empty-string.decorator';
4
4
  export * from './is-one-of-property.decorator';
5
5
  export * from './depend-on-property.decorator';
6
+ export * from './sanitize-html.decorator';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/decorators/validations/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/decorators/validations/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC"}
@@ -19,4 +19,5 @@ __exportStar(require("./is-id.decorator"), exports);
19
19
  __exportStar(require("./is-not-empty-string.decorator"), exports);
20
20
  __exportStar(require("./is-one-of-property.decorator"), exports);
21
21
  __exportStar(require("./depend-on-property.decorator"), exports);
22
+ __exportStar(require("./sanitize-html.decorator"), exports);
22
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/decorators/validations/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,oDAAkC;AAClC,kEAAgD;AAChD,iEAA+C;AAC/C,iEAA+C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/decorators/validations/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,oDAAkC;AAClC,kEAAgD;AAChD,iEAA+C;AAC/C,iEAA+C;AAC/C,4DAA0C"}
@@ -0,0 +1,3 @@
1
+ import type { IOptions } from 'sanitize-html';
2
+ export declare function SanitizeHtml(options?: IOptions): PropertyDecorator;
3
+ //# sourceMappingURL=sanitize-html.decorator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sanitize-html.decorator.d.ts","sourceRoot":"","sources":["../../../src/decorators/validations/sanitize-html.decorator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAG9C,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,QAAQ,GAAG,iBAAiB,CAIlE"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SanitizeHtml = SanitizeHtml;
4
+ const class_transformer_1 = require("class-transformer");
5
+ const helpers_1 = require("../../helpers");
6
+ function SanitizeHtml(options) {
7
+ return (0, class_transformer_1.Transform)(({ value }) => (0, helpers_1.sanitizeHtml)(value, options), {
8
+ toClassOnly: true,
9
+ });
10
+ }
11
+ //# sourceMappingURL=sanitize-html.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sanitize-html.decorator.js","sourceRoot":"","sources":["../../../src/decorators/validations/sanitize-html.decorator.ts"],"names":[],"mappings":";;AAIA,oCAIC;AARD,yDAA8C;AAE9C,2CAA6C;AAE7C,SAAgB,YAAY,CAAC,OAAkB;IAC7C,OAAO,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,IAAA,sBAAY,EAAC,KAAK,EAAE,OAAO,CAAC,EAAE;QAC5D,WAAW,EAAE,IAAI;KAClB,CAAC,CAAC;AACL,CAAC"}
@@ -3,10 +3,12 @@ import { Response } from 'express';
3
3
  export declare class GlobalExceptionFilter implements ExceptionFilter {
4
4
  private readonly logger;
5
5
  private readonly sentryEnable;
6
- constructor(sentryEnable?: boolean);
6
+ private readonly sentryIgnoredExceptionCodes;
7
+ constructor(sentryEnable?: boolean, sentryIgnoredExceptionCodes?: readonly number[]);
7
8
  catch(exception: any, host: ArgumentsHost): import("rxjs").Observable<never> | Response<any, Record<string, any>>;
8
9
  private isObject;
9
10
  private isArray;
11
+ private isExpectedHealthCheckFailure;
10
12
  private handleI18nValidationException;
11
13
  private flattenValidationErrors;
12
14
  private translateValidationConstraints;
@@ -1 +1 @@
1
- {"version":3,"file":"global-exception.filter.d.ts","sourceRoot":"","sources":["../../src/filters/global-exception.filter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAEb,eAAe,EAKhB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AA2BnC,qBACa,qBAAsB,YAAW,eAAe;IAC3D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAEpB;IACH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;gBAG3B,YAAY,GAAE,OAAe;IAIzC,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa;IA8HzC,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,OAAO;IAKf,OAAO,CAAC,6BAA6B;IA4BrC,OAAO,CAAC,uBAAuB;IAU/B,OAAO,CAAC,8BAA8B;IAatC,OAAO,CAAC,mBAAmB;IAwB3B,OAAO,CAAC,kBAAkB;CAiC3B"}
1
+ {"version":3,"file":"global-exception.filter.d.ts","sourceRoot":"","sources":["../../src/filters/global-exception.filter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAEb,eAAe,EAKhB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAmCnC,qBACa,qBAAsB,YAAW,eAAe;IAC3D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAEpB;IACH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IACvC,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAsB;gBAOhE,YAAY,GAAE,OAAe,EAC7B,2BAA2B,GAAE,SAAS,MAAM,EACX;IAMnC,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa;IAyIzC,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,OAAO;IAKf,OAAO,CAAC,4BAA4B;IAoBpC,OAAO,CAAC,6BAA6B;IA4BrC,OAAO,CAAC,uBAAuB;IAU/B,OAAO,CAAC,8BAA8B;IAatC,OAAO,CAAC,mBAAmB;IAwB3B,OAAO,CAAC,kBAAkB;CAiC3B"}
@@ -52,20 +52,32 @@ const exceptions = __importStar(require("@nestjs/common/exceptions"));
52
52
  const customExceptions = __importStar(require("../exceptions"));
53
53
  const Sentry = __importStar(require("@sentry/nestjs"));
54
54
  const nestjs_i18n_1 = require("nestjs-i18n");
55
+ const DEFAULT_IGNORED_EXCEPTION_CODES = [
56
+ common_1.HttpStatus.BAD_REQUEST,
57
+ common_1.HttpStatus.UNAUTHORIZED,
58
+ common_1.HttpStatus.FORBIDDEN,
59
+ common_1.HttpStatus.NOT_FOUND,
60
+ common_1.HttpStatus.UNPROCESSABLE_ENTITY,
61
+ ];
55
62
  let GlobalExceptionFilter = class GlobalExceptionFilter {
56
- constructor(sentryEnable = false) {
63
+ constructor(sentryEnable = false, sentryIgnoredExceptionCodes = DEFAULT_IGNORED_EXCEPTION_CODES) {
57
64
  this.logger = new common_1.Logger('GlobalExceptionFilter', {
58
65
  timestamp: true,
59
66
  });
60
67
  this.sentryEnable = sentryEnable;
68
+ this.sentryIgnoredExceptionCodes = new Set(sentryIgnoredExceptionCodes);
61
69
  }
62
70
  catch(exception, host) {
63
71
  const type = host?.getType();
64
72
  const isI18nValidationException = exception instanceof nestjs_i18n_1.I18nValidationException;
73
+ const isExpectedHealthCheckFailure = this.isExpectedHealthCheckFailure(exception, host);
65
74
  const messageKey = isI18nValidationException
66
75
  ? undefined
67
76
  : this.translateException(exception, host);
68
- if (this.sentryEnable && !isI18nValidationException)
77
+ if (this.sentryEnable &&
78
+ !isI18nValidationException &&
79
+ !isExpectedHealthCheckFailure &&
80
+ !this.sentryIgnoredExceptionCodes.has(exception?.getStatus?.()))
69
81
  Sentry.captureException(exception, exception?.response);
70
82
  const context = host.switchToHttp();
71
83
  const message = typeof exception?.message === 'string'
@@ -78,8 +90,10 @@ let GlobalExceptionFilter = class GlobalExceptionFilter {
78
90
  exception?.message?.length !== 0)
79
91
  ? JSON.stringify(exception?.message)
80
92
  : 'Unknown exception occurred.';
81
- this.logger.error(`exceptionName: ${exception?.name} - ${message}`);
82
- this.logger.debug(exception?.stack);
93
+ if (!isExpectedHealthCheckFailure) {
94
+ this.logger.error(`exceptionName: ${exception?.name} - ${message}`);
95
+ this.logger.debug(exception?.stack);
96
+ }
83
97
  const nestExceptionsArray = Object.values(exceptions);
84
98
  const customExceptionsArray = Object.values(customExceptions);
85
99
  const exceptionsName = [
@@ -161,6 +175,14 @@ let GlobalExceptionFilter = class GlobalExceptionFilter {
161
175
  isArray(value) {
162
176
  return value !== null && typeof value === 'object' && Array.isArray(value);
163
177
  }
178
+ isExpectedHealthCheckFailure(exception, host) {
179
+ if (host?.getType() !== 'http' || exception?.getStatus?.() !== 503) {
180
+ return false;
181
+ }
182
+ const request = host.switchToHttp().getRequest();
183
+ const path = request?.originalUrl ?? request?.url ?? '';
184
+ return /\/health-check\/(?:live|ready|database|http|redis|bull|kafka)(?:[/?#]|$)/.test(path);
185
+ }
164
186
  handleI18nValidationException(exception, host, response) {
165
187
  const i18n = nestjs_i18n_1.I18nContext.current(host) ?? nestjs_i18n_1.I18nContext.current();
166
188
  const status = exception.getStatus?.() ?? common_1.HttpStatus.BAD_REQUEST;
@@ -226,6 +248,6 @@ let GlobalExceptionFilter = class GlobalExceptionFilter {
226
248
  exports.GlobalExceptionFilter = GlobalExceptionFilter;
227
249
  exports.GlobalExceptionFilter = GlobalExceptionFilter = __decorate([
228
250
  (0, common_1.Catch)(),
229
- __metadata("design:paramtypes", [Boolean])
251
+ __metadata("design:paramtypes", [Boolean, Array])
230
252
  ], GlobalExceptionFilter);
231
253
  //# sourceMappingURL=global-exception.filter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"global-exception.filter.js","sourceRoot":"","sources":["../../src/filters/global-exception.filter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAQwB;AAExB,+BAAkC;AAClC,gCAAuC;AACvC,oCAAgE;AAChE,wCAIoB;AACpB,sEAAwD;AACxD,gEAAkD;AAClD,uDAAyC;AACzC,6CAIqB;AAYd,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAOhC,YAAY,eAAwB,KAAK;QANxB,WAAM,GAAG,IAAI,eAAM,CAAC,uBAAuB,EAAE;YAC5D,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAKD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,SAAc,EAAE,IAAmB;QACvC,MAAM,IAAI,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC;QAC7B,MAAM,yBAAyB,GAC7B,SAAS,YAAY,qCAAuB,CAAC;QAC/C,MAAM,UAAU,GAAG,yBAAyB;YAC1C,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAG7C,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,yBAAyB;YACjD,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QAE1D,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpC,MAAM,OAAO,GACX,OAAO,SAAS,EAAE,OAAO,KAAK,QAAQ;YACpC,CAAC,CAAC,SAAS,EAAE,OAAO,KAAK,EAAE;gBACzB,CAAC,CAAC,SAAS,EAAE,OAAO;gBACpB,CAAC,CAAC,6BAA6B;YACjC,CAAC,CAAC,CAAC,OAAO,SAAS,EAAE,OAAO,KAAK,QAAQ;gBACnC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,CAAC,CAAC;gBAChD,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC;oBAChC,SAAS,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC,CAAC;gBACrC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC;gBACpC,CAAC,CAAC,6BAA6B,CAAC;QAEtC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,SAAS,EAAE,IAAI,MAAM,OAAO,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAEpC,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACtD,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAE9D,MAAM,cAAc,GAAG;YACrB,GAAG,mBAAmB;YACtB,GAAG,qBAAqB;SACzB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAErC,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YACnB,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YAEhD,IAAI,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5C,OAAO,IAAA,iBAAU,EAAC,SAAgB,CAAC,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACN,MAAM,4BAA4B,GAChC,IAAI,qCAA4B,CAAC,SAAS,EAAE;oBAC1C,KAAK,EAAE,SAAS,EAAE,KAAK;iBACxB,CAAC,CAAC;gBACL,IAAI,CAAC,mBAAmB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;gBACnE,OAAO,IAAA,iBAAU,EAAC,4BAA4B,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAED,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAY,CAAC;YACjD,IAAI,CAAC;gBACH,IAAI,yBAAyB,EAAE,CAAC;oBAC9B,OAAO,IAAI,CAAC,6BAA6B,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;gBACvE,CAAC;gBAED,IAAI,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC5C,MAAM,MAAM,GAAG,SAAS,EAAE,SAAS,EAAE,CAAC;oBACtC,MAAM,MAAM,GAA0B,SAAS,CAAC,WAAW,EAAE,CAAC;oBAE9D,MAAM,OAAO,GACX,OAAO,MAAM,EAAE,OAAO,KAAK,QAAQ;wBACjC,CAAC,CAAC,MAAM,EAAE,OAAO;wBACjB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC;4BAC7B,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;4BAC5B,CAAC,CAAC,0BAAgB,CAAC,OAAO,CAAC,sBAAc,CAAC,gBAAgB,CAAC,CAAC;oBAElE,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;wBAC5C,CAAC,CAAC;4BACE,KAAK,EAAE,MAAM,EAAE,OAAO;4BACtB,WAAW,EAAE,MAAM,EAAE,KAAK,IAAI,IAAI;4BAClC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;yBACtC;wBACH,CAAC,CAAC;4BACE,KAAK,EAAE,SAAS,EAAE,KAAK,IAAI,IAAI;4BAC/B,WAAW,EAAE,MAAM,EAAE,KAAK,IAAI,IAAI;4BAClC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;yBACtC,CAAC;oBACN,OAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CACjC,IAAI,mBAAa,CAAC;wBAChB,IAAI,EAAE,iCAAuB,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC;wBAC1D,OAAO;wBACP,MAAM;wBACN,OAAO;qBACR,CAAC,CACH,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,OAAO,QAAQ,CAAC,MAAM,CAAC,mBAAU,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAC3D,IAAI,mBAAa,CAAC;wBAChB,IAAI,EAAE,SAAS,EAAE,IAAI;4BACnB,CAAC,CAAC,SAAS,CAAC,IAAI;4BAChB,CAAC,CAAC,iCAAuB,CAAC,WAAW,CACjC,qCAA4B,EAAE,IAAI,CACnC;wBACL,OAAO,EAAE,0BAAgB,CAAC,OAAO,CAC/B,sBAAc,CAAC,qBAAqB,CACrC;wBACD,MAAM,EAAE,mBAAU,CAAC,qBAAqB;wBACxC,OAAO,EAAE;4BACP,KAAK,EAAE,SAAS,EAAE,KAAK,IAAI,IAAI;4BAC/B,WAAW,EAAE,SAAS,EAAE,OAAO,IAAI,IAAI;4BACvC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;yBACtC;qBACF,CAAC,CACH,CAAC;gBACJ,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,QAAQ,CAAC,MAAM,CAAC,mBAAU,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAC3D,IAAI,mBAAa,CAAC;oBAChB,IAAI,EAAE,iCAAuB,CAAC,WAAW,CACvC,qCAA4B,EAAE,IAAI,CACnC;oBACD,OAAO,EAAE,0BAAgB,CAAC,OAAO,CAC/B,sBAAc,CAAC,qBAAqB,EACpC,GAAG,CACJ;oBACD,MAAM,EAAE,mBAAU,CAAC,qBAAqB;iBACzC,CAAC,CACH,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAEO,QAAQ,CAAC,KAAU;QACzB,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9E,CAAC;IAEO,OAAO,CAAC,KAAU;QACxB,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7E,CAAC;IAGO,6BAA6B,CACnC,SAAkC,EAClC,IAAmB,EACnB,QAAkB;QAElB,MAAM,IAAI,GAAG,yBAAW,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,yBAAW,CAAC,OAAO,EAAE,CAAC;QAChE,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,EAAE,EAAE,IAAI,mBAAU,CAAC,WAAW,CAAC;QACjE,MAAM,KAAK,GAAG,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;QAEzE,OAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CACjC,IAAI,mBAAa,CAAC;YAChB,IAAI,EAAE,iCAAuB,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC;YACzD,OAAO,EAAE,2BAAiB,CAAC,SAAS,CAClC,4BAAoB,CAAC,iBAAiB,EACtC,IAAI,CACL;YACD,MAAM;YACN,OAAO,EAAE;gBACP,KAAK;gBACL,WAAW,EAAE,2BAAiB,CAAC,SAAS,CACtC,4BAAoB,CAAC,6BAA6B,EAClD,IAAI,CACL;aACF;SACF,CAAC,CACH,CAAC;IACJ,CAAC;IAEO,uBAAuB,CAC7B,MAA6B,EAC7B,IAAiB;QAEjB,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;YAC/B,GAAG,IAAI,CAAC,8BAA8B,CAAC,KAAK,EAAE,IAAI,CAAC;YACnD,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,EAAE,IAAI,CAAC;SAC5D,CAAC,CAAC;IACL,CAAC;IAEO,8BAA8B,CACpC,KAAsB,EACtB,IAAiB;QAEjB,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAC5D,2BAAiB,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE;YACzC,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB,CAAC,CACH,CAAC;IACJ,CAAC;IAGO,mBAAmB,CACzB,SAAc,EACd,UAAyC;QAEzC,IAAI,CAAC,UAAU;YAAE,OAAO;QAExB,SAAS,CAAC,UAAU,GAAG,UAAU,CAAC;QAElC,MAAM,QAAQ,GAAG,SAAS,EAAE,WAAW,EAAE,EAAE,CAAC;QAC5C,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC7C,QAAQ,CAAC,UAAU,GAAG,UAAU,CAAC;QACnC,CAAC;aAAM,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACxC,SAAS,CAAC,QAAQ,GAAG;gBACnB,OAAO,EAAE,QAAQ;gBACjB,UAAU;aACX,CAAC;QACJ,CAAC;IACH,CAAC;IAOO,kBAAkB,CACxB,SAAc,EACd,IAAmB;QAEnB,MAAM,IAAI,GAAG,yBAAW,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,yBAAW,CAAC,OAAO,EAAE,CAAC;QAEhE,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QAE5B,MAAM,QAAQ,GAAG,SAAS,EAAE,WAAW,EAAE,EAAE,CAAC;QAC5C,MAAM,eAAe,GACnB,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC;QAC9D,MAAM,UAAU,GACd,2BAAiB,CAAC,WAAW,CAAC,eAAe,CAAC;YAC9C,2BAAiB,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAEpD,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,SAAS,CAAC,QAAQ,GAAG,2BAAiB,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACnE,CAAC;aAAM,IACL,OAAO,QAAQ,EAAE,OAAO,KAAK,QAAQ;YACrC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,EAChC,CAAC;YACD,QAAQ,CAAC,OAAO,GAAG,2BAAiB,CAAC,aAAa,CAChD,QAAQ,CAAC,OAAO,EAChB,IAAI,CACL,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,SAAS,EAAE,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC3C,SAAS,CAAC,OAAO,GAAG,2BAAiB,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC3E,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;CACF,CAAA;AA9PY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,cAAK,GAAE;;GACK,qBAAqB,CA8PjC"}
1
+ {"version":3,"file":"global-exception.filter.js","sourceRoot":"","sources":["../../src/filters/global-exception.filter.ts"],"names":[],"mappings":"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"}
@@ -3,13 +3,28 @@ export interface GracefulShutdownOptions {
3
3
  timeoutMs?: number;
4
4
  signals?: NodeJS.Signals[];
5
5
  logger?: Pick<Logger, 'log' | 'warn' | 'error'>;
6
+ autoDiscoverParticipants?: boolean;
7
+ participants?: GracefulShutdownParticipant[];
8
+ }
9
+ export interface GracefulShutdownParticipant {
10
+ readonly name: string;
11
+ stopAccepting(): void | Promise<void>;
12
+ waitForIdle?(): void | Promise<void>;
6
13
  }
7
14
  export interface GracefulShutdownController {
8
15
  readonly isDraining: () => boolean;
9
16
  readonly activeRequests: () => number;
17
+ readonly activeHandlers: () => number;
10
18
  shutdown(signal?: NodeJS.Signals): Promise<void>;
11
19
  }
12
20
  export declare class GracefulShutdownHelper {
21
+ private static isExpectedRedisShutdownError;
13
22
  static enable(app: INestApplication, options?: GracefulShutdownOptions): GracefulShutdownController;
23
+ private static discoverParticipants;
24
+ private static getProviderInstances;
25
+ private static isClosable;
26
+ private static isSchedulerRegistry;
27
+ private static uniqueParticipants;
28
+ private static waitUntil;
14
29
  }
15
30
  //# sourceMappingURL=graceful-shutdown.helper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"graceful-shutdown.helper.d.ts","sourceRoot":"","sources":["../../src/helpers/graceful-shutdown.helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAU1D,MAAM,WAAW,uBAAuB;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;IAC3B,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;CACjD;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,UAAU,EAAE,MAAM,OAAO,CAAC;IACnC,QAAQ,CAAC,cAAc,EAAE,MAAM,MAAM,CAAC;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClD;AAWD,qBAAa,sBAAsB;IACjC,MAAM,CAAC,MAAM,CACX,GAAG,EAAE,gBAAgB,EACrB,OAAO,GAAE,uBAA4B,GACpC,0BAA0B;CAwG9B"}
1
+ {"version":3,"file":"graceful-shutdown.helper.d.ts","sourceRoot":"","sources":["../../src/helpers/graceful-shutdown.helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,gBAAgB,EAChB,MAAM,EAGP,MAAM,gBAAgB,CAAC;AAYxB,MAAM,WAAW,uBAAuB;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;IAC3B,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;IAChD,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,YAAY,CAAC,EAAE,2BAA2B,EAAE,CAAC;CAC9C;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,aAAa,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,WAAW,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,UAAU,EAAE,MAAM,OAAO,CAAC;IACnC,QAAQ,CAAC,cAAc,EAAE,MAAM,MAAM,CAAC;IACtC,QAAQ,CAAC,cAAc,EAAE,MAAM,MAAM,CAAC;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClD;AAgED,qBAAa,sBAAsB;IACjC,OAAO,CAAC,MAAM,CAAC,4BAA4B;IAS3C,MAAM,CAAC,MAAM,CACX,GAAG,EAAE,gBAAgB,EACrB,OAAO,GAAE,uBAA4B,GACpC,0BAA0B;IA8J7B,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAkFnC,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAenC,OAAO,CAAC,MAAM,CAAC,UAAU;IAQzB,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAclC,OAAO,CAAC,MAAM,CAAC,kBAAkB;mBAWZ,SAAS;CAO/B"}
@@ -2,8 +2,37 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.GracefulShutdownHelper = void 0;
4
4
  const common_1 = require("@nestjs/common");
5
+ const core_1 = require("@nestjs/core");
6
+ const rxjs_1 = require("rxjs");
5
7
  const DEFAULT_TIMEOUT_MS = 110_000;
8
+ const PARTICIPANT_POLL_INTERVAL_MS = 50;
9
+ class TransportActivityInterceptor {
10
+ constructor(isDraining) {
11
+ this.isDraining = isDraining;
12
+ this.active = 0;
13
+ }
14
+ intercept(context, next) {
15
+ if (context.getType() === 'http')
16
+ return next.handle();
17
+ if (this.isDraining()) {
18
+ return (0, rxjs_1.throwError)(() => new common_1.ServiceUnavailableException('Service is shutting down'));
19
+ }
20
+ this.active += 1;
21
+ return next.handle().pipe((0, rxjs_1.finalize)(() => {
22
+ this.active = Math.max(0, this.active - 1);
23
+ }));
24
+ }
25
+ count() {
26
+ return this.active;
27
+ }
28
+ }
6
29
  class GracefulShutdownHelper {
30
+ static isExpectedRedisShutdownError(reason) {
31
+ if (!(reason instanceof Error))
32
+ return false;
33
+ return (reason.message === 'Connection is closed.' &&
34
+ (reason.stack?.includes('/ioredis/') ?? false));
35
+ }
7
36
  static enable(app, options = {}) {
8
37
  const server = app.getHttpServer();
9
38
  const timeoutMs = options.timeoutMs ?? DEFAULT_TIMEOUT_MS;
@@ -12,6 +41,8 @@ class GracefulShutdownHelper {
12
41
  let draining = false;
13
42
  let activeRequests = 0;
14
43
  let shutdownPromise;
44
+ const transportActivity = new TransportActivityInterceptor(() => draining);
45
+ app.useGlobalInterceptors(transportActivity);
15
46
  app.use((_request, response, next) => {
16
47
  if (draining) {
17
48
  response.statusCode = 503;
@@ -41,6 +72,13 @@ class GracefulShutdownHelper {
41
72
  shutdownPromise = (async () => {
42
73
  draining = true;
43
74
  logger.log(`${signal ?? 'Shutdown'} received; draining ${activeRequests} active request(s)`);
75
+ const participants = [
76
+ ...(options.autoDiscoverParticipants === false
77
+ ? []
78
+ : GracefulShutdownHelper.discoverParticipants(app, logger)),
79
+ ...(options.participants ?? []),
80
+ ];
81
+ const uniqueParticipants = GracefulShutdownHelper.uniqueParticipants(participants);
44
82
  let closeServer = () => undefined;
45
83
  const serverClosed = new Promise((resolve, reject) => {
46
84
  closeServer = (error) => {
@@ -54,18 +92,46 @@ class GracefulShutdownHelper {
54
92
  server.closeIdleConnections?.();
55
93
  let timeout;
56
94
  try {
95
+ const participantsDrained = Promise.all(uniqueParticipants.map(async (participant) => {
96
+ logger.log(`Stopping ${participant.name} intake`);
97
+ await participant.stopAccepting();
98
+ await participant.waitForIdle?.();
99
+ })).then(() => undefined);
57
100
  await Promise.race([
58
- serverClosed,
101
+ Promise.all([
102
+ serverClosed,
103
+ GracefulShutdownHelper.waitUntil(() => transportActivity.count() === 0),
104
+ participantsDrained,
105
+ ]).then(() => undefined),
59
106
  new Promise((resolve) => {
60
107
  timeout = setTimeout(() => {
61
- logger.warn(`Graceful shutdown timed out with ${activeRequests} active request(s)`);
108
+ logger.warn(`Graceful shutdown timed out with ${activeRequests} active HTTP request(s) and ${transportActivity.count()} active transport handler(s)`);
62
109
  server.closeAllConnections?.();
63
110
  resolve();
64
111
  }, timeoutMs);
65
112
  timeout.unref();
66
113
  }),
67
114
  ]);
68
- await app.close();
115
+ let unexpectedShutdownRejection = false;
116
+ const handleShutdownRejection = (reason) => {
117
+ if (GracefulShutdownHelper.isExpectedRedisShutdownError(reason)) {
118
+ logger.warn('Ignored an expected ioredis connection-closed rejection during shutdown');
119
+ return;
120
+ }
121
+ unexpectedShutdownRejection = true;
122
+ process.exitCode = 1;
123
+ logger.error('Unhandled rejection occurred during graceful shutdown', reason instanceof Error ? reason.stack : String(reason));
124
+ };
125
+ process.on('unhandledRejection', handleShutdownRejection);
126
+ try {
127
+ await app.close();
128
+ }
129
+ finally {
130
+ process.off('unhandledRejection', handleShutdownRejection);
131
+ }
132
+ if (unexpectedShutdownRejection) {
133
+ throw new Error('Graceful shutdown encountered an unexpected asynchronous error');
134
+ }
69
135
  logger.log('Graceful shutdown completed');
70
136
  }
71
137
  catch (error) {
@@ -88,9 +154,105 @@ class GracefulShutdownHelper {
88
154
  return {
89
155
  isDraining: () => draining,
90
156
  activeRequests: () => activeRequests,
157
+ activeHandlers: () => transportActivity.count(),
91
158
  shutdown,
92
159
  };
93
160
  }
161
+ static discoverParticipants(app, logger) {
162
+ const providers = GracefulShutdownHelper.getProviderInstances(app);
163
+ const participants = [];
164
+ const microserviceServers = app
165
+ .getMicroservices()
166
+ .map((microservice) => microservice.serverInstance)
167
+ .filter((server) => GracefulShutdownHelper.isClosable(server));
168
+ if (microserviceServers.length > 0) {
169
+ participants.push({
170
+ name: 'Kafka/microservice',
171
+ stopAccepting: () => Promise.all(microserviceServers.map((server) => server.close())).then(() => undefined),
172
+ });
173
+ }
174
+ const queueResources = new Set();
175
+ for (const [token, instance] of providers) {
176
+ if (typeof token === 'string' &&
177
+ token.startsWith('BullQueue_') &&
178
+ GracefulShutdownHelper.isClosable(instance)) {
179
+ queueResources.add(instance);
180
+ }
181
+ const worker = instance?.worker;
182
+ if (GracefulShutdownHelper.isClosable(worker))
183
+ queueResources.add(worker);
184
+ }
185
+ if (queueResources.size > 0) {
186
+ participants.push({
187
+ name: 'Bull/BullMQ',
188
+ stopAccepting: () => Promise.all([...queueResources].map((resource) => resource.close(false))).then(() => undefined),
189
+ });
190
+ }
191
+ const scheduler = providers
192
+ .map(([, instance]) => instance)
193
+ .find(GracefulShutdownHelper.isSchedulerRegistry);
194
+ if (scheduler) {
195
+ const cronJobs = [...scheduler.getCronJobs().values()];
196
+ participants.push({
197
+ name: 'scheduler',
198
+ stopAccepting: () => {
199
+ for (const cronJob of cronJobs)
200
+ cronJob.stop();
201
+ for (const interval of scheduler.getIntervals()) {
202
+ scheduler.deleteInterval(interval);
203
+ }
204
+ for (const timeoutName of scheduler.getTimeouts()) {
205
+ scheduler.deleteTimeout(timeoutName);
206
+ }
207
+ },
208
+ waitForIdle: () => GracefulShutdownHelper.waitUntil(() => cronJobs.every((cronJob) => !cronJob.isCallbackRunning)),
209
+ });
210
+ }
211
+ logger.log(participants.length === 0
212
+ ? 'No background shutdown participants discovered'
213
+ : `Discovered shutdown participants: ${participants
214
+ .map((participant) => participant.name)
215
+ .join(', ')}`);
216
+ return participants;
217
+ }
218
+ static getProviderInstances(app) {
219
+ try {
220
+ const modules = app.get(core_1.ModulesContainer, { strict: false });
221
+ return [...modules.values()].flatMap((moduleRef) => [...moduleRef.providers.entries()].map(([token, wrapper]) => [token, wrapper.instance]));
222
+ }
223
+ catch {
224
+ return [];
225
+ }
226
+ }
227
+ static isClosable(value) {
228
+ return (typeof value === 'object' &&
229
+ value !== null &&
230
+ typeof value.close === 'function');
231
+ }
232
+ static isSchedulerRegistry(value) {
233
+ if (typeof value !== 'object' || value === null)
234
+ return false;
235
+ const registry = value;
236
+ return (typeof registry.getCronJobs === 'function' &&
237
+ typeof registry.getIntervals === 'function' &&
238
+ typeof registry.getTimeouts === 'function' &&
239
+ typeof registry.deleteInterval === 'function' &&
240
+ typeof registry.deleteTimeout === 'function');
241
+ }
242
+ static uniqueParticipants(participants) {
243
+ const names = new Set();
244
+ return participants.filter((participant) => {
245
+ if (names.has(participant.name))
246
+ return false;
247
+ names.add(participant.name);
248
+ return true;
249
+ });
250
+ }
251
+ static async waitUntil(predicate) {
252
+ while (!predicate()) {
253
+ await new Promise((resolve) => setTimeout(resolve, PARTICIPANT_POLL_INTERVAL_MS));
254
+ }
255
+ }
94
256
  }
95
257
  exports.GracefulShutdownHelper = GracefulShutdownHelper;
96
258
  //# sourceMappingURL=graceful-shutdown.helper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"graceful-shutdown.helper.js","sourceRoot":"","sources":["../../src/helpers/graceful-shutdown.helper.ts"],"names":[],"mappings":";;;AAAA,2CAA0D;AAsB1D,MAAM,kBAAkB,GAAG,OAAO,CAAC;AASnC,MAAa,sBAAsB;IACjC,MAAM,CAAC,MAAM,CACX,GAAqB,EACrB,UAAmC,EAAE;QAErC,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,EAAY,CAAC;QAC7C,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,kBAAkB,CAAC;QAC1D,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,eAAM,CAAC,kBAAkB,CAAC,CAAC;QAChE,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,IAAI,eAA0C,CAAC;QAE/C,GAAG,CAAC,GAAG,CACL,CACE,QAAiB,EACjB,QAA0B,EAC1B,IAAgB,EACV,EAAE;YACR,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,CAAC,UAAU,GAAG,GAAG,CAAC;gBAC1B,QAAQ,CAAC,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;gBAC1C,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;gBACvD,QAAQ,CAAC,GAAG,CACV,IAAI,CAAC,SAAS,CAAC;oBACb,UAAU,EAAE,GAAG;oBACf,OAAO,EAAE,0BAA0B;iBACpC,CAAC,CACH,CAAC;gBACF,OAAO;YACT,CAAC;YAED,cAAc,IAAI,CAAC,CAAC;YACpB,IAAI,SAAS,GAAG,KAAK,CAAC;YACtB,MAAM,QAAQ,GAAG,GAAS,EAAE;gBAC1B,IAAI,SAAS;oBAAE,OAAO;gBACtB,SAAS,GAAG,IAAI,CAAC;gBACjB,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,GAAG,CAAC,CAAC,CAAC;YACnD,CAAC,CAAC;YACF,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAClC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACjC,IAAI,EAAE,CAAC;QACT,CAAC,CACF,CAAC;QAEF,MAAM,QAAQ,GAAG,KAAK,EAAE,MAAuB,EAAiB,EAAE;YAChE,IAAI,eAAe;gBAAE,OAAO,eAAe,CAAC;YAE5C,eAAe,GAAG,CAAC,KAAK,IAAmB,EAAE;gBAC3C,QAAQ,GAAG,IAAI,CAAC;gBAChB,MAAM,CAAC,GAAG,CACR,GAAG,MAAM,IAAI,UAAU,uBAAuB,cAAc,oBAAoB,CACjF,CAAC;gBAEF,IAAI,WAAW,GAA4B,GAAG,EAAE,CAAC,SAAS,CAAC;gBAC3D,MAAM,YAAY,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;oBACzD,WAAW,GAAG,CAAC,KAAa,EAAQ,EAAE;wBACpC,IAAI,KAAK;4BAAE,MAAM,CAAC,KAAK,CAAC,CAAC;;4BACpB,OAAO,EAAE,CAAC;oBACjB,CAAC,CAAC;gBACJ,CAAC,CAAC,CAAC;gBACH,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBAC1B,MAAM,CAAC,oBAAoB,EAAE,EAAE,CAAC;gBAEhC,IAAI,OAAmC,CAAC;gBACxC,IAAI,CAAC;oBACH,MAAM,OAAO,CAAC,IAAI,CAAC;wBACjB,YAAY;wBACZ,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;4BAC5B,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gCACxB,MAAM,CAAC,IAAI,CACT,oCAAoC,cAAc,oBAAoB,CACvE,CAAC;gCACF,MAAM,CAAC,mBAAmB,EAAE,EAAE,CAAC;gCAC/B,OAAO,EAAE,CAAC;4BACZ,CAAC,EAAE,SAAS,CAAC,CAAC;4BACd,OAAO,CAAC,KAAK,EAAE,CAAC;wBAClB,CAAC,CAAC;qBACH,CAAC,CAAC;oBACH,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;oBAClB,MAAM,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;gBAC5C,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;oBACrB,MAAM,CAAC,KAAK,CACV,0BAA0B,EAC1B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACrD,CAAC;oBACF,MAAM,KAAK,CAAC;gBACd,CAAC;wBAAS,CAAC;oBACT,IAAI,OAAO;wBAAE,YAAY,CAAC,OAAO,CAAC,CAAC;gBACrC,CAAC;YACH,CAAC,CAAC,EAAE,CAAC;YAEL,OAAO,eAAe,CAAC;QACzB,CAAC,CAAC;QAEF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE;gBACxB,KAAK,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,UAAU,EAAE,GAAG,EAAE,CAAC,QAAQ;YAC1B,cAAc,EAAE,GAAG,EAAE,CAAC,cAAc;YACpC,QAAQ;SACT,CAAC;IACJ,CAAC;CACF;AA5GD,wDA4GC"}
1
+ {"version":3,"file":"graceful-shutdown.helper.js","sourceRoot":"","sources":["../../src/helpers/graceful-shutdown.helper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import sanitizeHtmlLib from 'sanitize-html';
2
+ export declare function sanitizeHtml(value: unknown, options?: sanitizeHtmlLib.IOptions): unknown;
3
+ //# sourceMappingURL=html-sanitizer.helper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html-sanitizer.helper.d.ts","sourceRoot":"","sources":["../../src/helpers/html-sanitizer.helper.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,eAAe,CAAC;AAE5C,wBAAgB,YAAY,CAC1B,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,eAAe,CAAC,QAAQ,GACjC,OAAO,CAsBT"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.sanitizeHtml = sanitizeHtml;
7
+ const sanitize_html_1 = __importDefault(require("sanitize-html"));
8
+ function sanitizeHtml(value, options) {
9
+ if (typeof value !== 'string')
10
+ return value;
11
+ return (0, sanitize_html_1.default)(value, {
12
+ allowedTags: ['p', 'br', 'strong', 'em', 'u', 's', 'ul', 'ol', 'li', 'a'],
13
+ allowedAttributes: {
14
+ a: ['href', 'title', 'target', 'rel'],
15
+ },
16
+ allowedSchemes: ['http', 'https', 'mailto'],
17
+ allowProtocolRelative: false,
18
+ enforceHtmlBoundary: true,
19
+ transformTags: {
20
+ a: (_tagName, attribs) => ({
21
+ tagName: 'a',
22
+ attribs: {
23
+ ...attribs,
24
+ rel: 'noopener noreferrer nofollow',
25
+ },
26
+ }),
27
+ },
28
+ ...options,
29
+ }).trim();
30
+ }
31
+ //# sourceMappingURL=html-sanitizer.helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html-sanitizer.helper.js","sourceRoot":"","sources":["../../src/helpers/html-sanitizer.helper.ts"],"names":[],"mappings":";;;;;AAEA,oCAyBC;AA3BD,kEAA4C;AAE5C,SAAgB,YAAY,CAC1B,KAAc,EACd,OAAkC;IAElC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAE5C,OAAO,IAAA,uBAAe,EAAC,KAAK,EAAE;QAC5B,WAAW,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC;QACzE,iBAAiB,EAAE;YACjB,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC;SACtC;QACD,cAAc,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC;QAC3C,qBAAqB,EAAE,KAAK;QAC5B,mBAAmB,EAAE,IAAI;QACzB,aAAa,EAAE;YACb,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;gBACzB,OAAO,EAAE,GAAG;gBACZ,OAAO,EAAE;oBACP,GAAG,OAAO;oBACV,GAAG,EAAE,8BAA8B;iBACpC;aACF,CAAC;SACH;QACD,GAAG,OAAO;KACX,CAAC,CAAC,IAAI,EAAE,CAAC;AACZ,CAAC"}
@@ -15,4 +15,5 @@ export * from './rxjs-catch-error.helper';
15
15
  export * from './rxjs-timeout-custom-callback.helper';
16
16
  export * from './success-response-translation.helper';
17
17
  export * from './yup.helper';
18
+ export * from './html-sanitizer.helper';
18
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/helpers/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC;AAChC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uCAAuC,CAAC;AACtD,cAAc,uCAAuC,CAAC;AACtD,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/helpers/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC;AAChC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uCAAuC,CAAC;AACtD,cAAc,uCAAuC,CAAC;AACtD,cAAc,cAAc,CAAC;AAC7B,cAAc,yBAAyB,CAAC"}
@@ -31,4 +31,5 @@ __exportStar(require("./rxjs-catch-error.helper"), exports);
31
31
  __exportStar(require("./rxjs-timeout-custom-callback.helper"), exports);
32
32
  __exportStar(require("./success-response-translation.helper"), exports);
33
33
  __exportStar(require("./yup.helper"), exports);
34
+ __exportStar(require("./html-sanitizer.helper"), exports);
34
35
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/helpers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,uDAAqC;AACrC,+DAA6C;AAC7C,yDAAuC;AACvC,mDAAiC;AACjC,6DAA2C;AAC3C,gDAA8B;AAC9B,wDAAsC;AACtC,6DAA2C;AAC3C,kDAAgC;AAChC,6DAA2C;AAC3C,iDAA+B;AAC/B,qDAAmC;AACnC,4DAA0C;AAC1C,wEAAsD;AACtD,wEAAsD;AACtD,+CAA6B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/helpers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,uDAAqC;AACrC,+DAA6C;AAC7C,yDAAuC;AACvC,mDAAiC;AACjC,6DAA2C;AAC3C,gDAA8B;AAC9B,wDAAsC;AACtC,6DAA2C;AAC3C,kDAAgC;AAChC,6DAA2C;AAC3C,iDAA+B;AAC/B,qDAAmC;AACnC,4DAA0C;AAC1C,wEAAsD;AACtD,wEAAsD;AACtD,+CAA6B;AAC7B,0DAAwC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mondart/nestjs-common-module-core",
3
- "version": "3.2.7",
3
+ "version": "3.2.9",
4
4
  "description": "Core utilities, DTOs, decorators, entities, filters, validators and helpers for NestJS.",
5
5
  "author": {
6
6
  "name": "Mondart"
@@ -17,25 +17,29 @@
17
17
  "build": "tsc -p tsconfig.json"
18
18
  },
19
19
  "dependencies": {
20
- "@nestjs/microservices": "^11.1.10",
21
- "@nestjs/throttler": "^6.5.0",
22
- "@sentry/nestjs": "^10.32.1",
23
- "moment-timezone": "^0.6.0",
24
20
  "@nestjs/common": "^11.1.10",
25
21
  "@nestjs/core": "^11.1.10",
22
+ "@nestjs/microservices": "^11.1.10",
26
23
  "@nestjs/swagger": "^11.0.3",
24
+ "@nestjs/throttler": "^6.5.0",
27
25
  "@nestjs/typeorm": "^11.0.0",
26
+ "@sentry/nestjs": "^10.32.1",
28
27
  "class-transformer": "^0.5.1",
29
28
  "class-validator": "^0.14.3",
29
+ "inquirer": "^13.2.2",
30
+ "moment-timezone": "^0.6.0",
30
31
  "nestjs-i18n": "10.6.1",
31
32
  "nestjs-paginate": "^12.8.3",
32
33
  "reflect-metadata": "^0.2.0",
33
- "inquirer": "^13.2.2",
34
- "yup": "^1.7.1",
35
34
  "rxjs": "^7.8.2",
36
- "typeorm": "^0.3.28"
35
+ "sanitize-html": "2.17.4",
36
+ "typeorm": "^0.3.28",
37
+ "yup": "^1.7.1"
37
38
  },
38
39
  "publishConfig": {
39
40
  "access": "public"
41
+ },
42
+ "devDependencies": {
43
+ "@types/sanitize-html": "^2.16.1"
40
44
  }
41
45
  }