@alacard-project/shared 1.1.1 → 1.1.4

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 (193) hide show
  1. package/dist/constants/microservices.constants.d.ts +4 -0
  2. package/dist/constants/microservices.constants.js +4 -0
  3. package/dist/constants/microservices.constants.js.map +1 -1
  4. package/dist/contracts/card.contract.d.ts +98 -0
  5. package/dist/contracts/card.contract.js +3 -0
  6. package/dist/contracts/card.contract.js.map +1 -0
  7. package/dist/contracts/index.d.ts +3 -1
  8. package/dist/contracts/index.js +3 -0
  9. package/dist/contracts/index.js.map +1 -1
  10. package/dist/contracts/transaction.contract.d.ts +63 -0
  11. package/dist/contracts/transaction.contract.js +3 -0
  12. package/dist/contracts/transaction.contract.js.map +1 -0
  13. package/dist/dto/auth.dto.d.ts +3 -1
  14. package/dist/dto/auth.dto.js +11 -0
  15. package/dist/dto/auth.dto.js.map +1 -1
  16. package/dist/dto/index.d.ts +1 -0
  17. package/dist/dto/index.js +1 -0
  18. package/dist/dto/index.js.map +1 -1
  19. package/dist/dto/invoice.dto.d.ts +12 -0
  20. package/dist/dto/invoice.dto.js +62 -0
  21. package/dist/dto/invoice.dto.js.map +1 -0
  22. package/dist/enums/auth.enum.d.ts +2 -3
  23. package/dist/enums/auth.enum.js +2 -3
  24. package/dist/enums/auth.enum.js.map +1 -1
  25. package/dist/filters/global-exception.filter.d.ts +12 -0
  26. package/dist/filters/global-exception.filter.js +152 -0
  27. package/dist/filters/global-exception.filter.js.map +1 -0
  28. package/dist/filters/index.d.ts +1 -1
  29. package/dist/filters/index.js +1 -1
  30. package/dist/filters/index.js.map +1 -1
  31. package/dist/index.d.ts +14 -4
  32. package/dist/index.js +14 -4
  33. package/dist/index.js.map +1 -1
  34. package/dist/middleware/index.d.ts +2 -0
  35. package/dist/{interceptors → middleware}/index.js +2 -2
  36. package/dist/middleware/index.js.map +1 -0
  37. package/dist/middleware/prisma-logging.middleware.d.ts +3 -0
  38. package/dist/middleware/prisma-logging.middleware.js +52 -0
  39. package/dist/middleware/prisma-logging.middleware.js.map +1 -0
  40. package/dist/middleware/tracing.middleware.d.ts +8 -0
  41. package/dist/middleware/tracing.middleware.js +33 -0
  42. package/dist/middleware/tracing.middleware.js.map +1 -0
  43. package/dist/resilience/circuit-breaker.service.d.ts +2 -3
  44. package/dist/resilience/circuit-breaker.service.js +10 -16
  45. package/dist/resilience/circuit-breaker.service.js.map +1 -1
  46. package/dist/tsconfig.tsbuildinfo +1 -0
  47. package/dist/types/logger.interface.d.ts +6 -0
  48. package/dist/types/logger.interface.js +3 -0
  49. package/dist/types/logger.interface.js.map +1 -0
  50. package/dist/utils/app-logger.d.ts +11 -0
  51. package/dist/utils/app-logger.js +65 -0
  52. package/dist/utils/app-logger.js.map +1 -0
  53. package/dist/utils/app.utils.d.ts +4 -0
  54. package/dist/utils/app.utils.js +8 -1
  55. package/dist/utils/app.utils.js.map +1 -1
  56. package/dist/{filters/http-exception.filter.js → utils/filters.js} +3 -12
  57. package/dist/utils/filters.js.map +1 -0
  58. package/dist/utils/grpc-tracing-server.interceptor.d.ts +8 -0
  59. package/dist/utils/grpc-tracing-server.interceptor.js +48 -0
  60. package/dist/utils/grpc-tracing-server.interceptor.js.map +1 -0
  61. package/dist/utils/grpc-tracing.interceptor.d.ts +8 -0
  62. package/dist/utils/grpc-tracing.interceptor.js +35 -0
  63. package/dist/utils/grpc-tracing.interceptor.js.map +1 -0
  64. package/dist/utils/http-tracing.interceptor.d.ts +8 -0
  65. package/dist/utils/http-tracing.interceptor.js +35 -0
  66. package/dist/utils/http-tracing.interceptor.js.map +1 -0
  67. package/dist/{interceptors/transform.interceptor.d.ts → utils/interceptors.d.ts} +0 -1
  68. package/dist/{interceptors/transform.interceptor.js → utils/interceptors.js} +3 -3
  69. package/dist/utils/interceptors.js.map +1 -0
  70. package/dist/utils/proto-path.js +1 -1
  71. package/dist/utils/proto-path.js.map +1 -1
  72. package/dist/utils/tracing.module.d.ts +2 -0
  73. package/dist/{observability/metrics/metrics.module.js → utils/tracing.module.js} +10 -16
  74. package/dist/utils/tracing.module.js.map +1 -0
  75. package/dist/utils/tracing.service.d.ts +10 -0
  76. package/dist/utils/tracing.service.js +43 -0
  77. package/dist/utils/tracing.service.js.map +1 -0
  78. package/dist/utils/tracing.utils.js +7 -0
  79. package/dist/utils/tracing.utils.js.map +1 -0
  80. package/package.json +48 -46
  81. package/dist/config/base-config.service.d.ts +0 -25
  82. package/dist/config/base-config.service.js +0 -87
  83. package/dist/config/base-config.service.js.map +0 -1
  84. package/dist/constants/logging.constants.d.ts +0 -24
  85. package/dist/constants/logging.constants.js +0 -28
  86. package/dist/constants/logging.constants.js.map +0 -1
  87. package/dist/constants/monitoring.constants.d.ts +0 -51
  88. package/dist/constants/monitoring.constants.js +0 -55
  89. package/dist/constants/monitoring.constants.js.map +0 -1
  90. package/dist/constants/tokens.constants.d.ts +0 -6
  91. package/dist/constants/tokens.constants.js +0 -10
  92. package/dist/constants/tokens.constants.js.map +0 -1
  93. package/dist/filters/http-exception.filter.js.map +0 -1
  94. package/dist/interceptors/http-logging.interceptor.d.ts +0 -10
  95. package/dist/interceptors/http-logging.interceptor.js +0 -74
  96. package/dist/interceptors/http-logging.interceptor.js.map +0 -1
  97. package/dist/interceptors/index.d.ts +0 -2
  98. package/dist/interceptors/index.js.map +0 -1
  99. package/dist/interceptors/logging.interceptor.d.ts +0 -6
  100. package/dist/interceptors/logging.interceptor.js +0 -41
  101. package/dist/interceptors/logging.interceptor.js.map +0 -1
  102. package/dist/interceptors/transform.interceptor.js.map +0 -1
  103. package/dist/observability/index.d.ts +0 -2
  104. package/dist/observability/index.js +0 -19
  105. package/dist/observability/index.js.map +0 -1
  106. package/dist/observability/metrics/metrics.module.d.ts +0 -2
  107. package/dist/observability/metrics/metrics.module.js.map +0 -1
  108. package/dist/observability/tracing.js +0 -28
  109. package/dist/observability/tracing.js.map +0 -1
  110. package/dist/utils/logging-client.d.ts +0 -9
  111. package/dist/utils/logging-client.js +0 -58
  112. package/dist/utils/logging-client.js.map +0 -1
  113. package/dist/utils/prometheus.utils.d.ts +0 -9
  114. package/dist/utils/prometheus.utils.js +0 -66
  115. package/dist/utils/prometheus.utils.js.map +0 -1
  116. package/proto/auth.proto +0 -123
  117. package/proto/card.proto +0 -43
  118. package/proto/client.proto +0 -45
  119. package/proto/config.proto +0 -39
  120. package/proto/dbf.proto +0 -183
  121. package/proto/logging.proto +0 -143
  122. package/proto/partner.proto +0 -18
  123. package/proto/terminal.proto +0 -18
  124. package/proto/transaction.proto +0 -45
  125. package/proto/user.proto +0 -122
  126. package/src/constants/auth-config.constants.ts +0 -16
  127. package/src/constants/auth.constants.ts +0 -50
  128. package/src/constants/common.constants.ts +0 -16
  129. package/src/constants/env.constants.ts +0 -49
  130. package/src/constants/error-messages.ts +0 -10
  131. package/src/constants/grpc.constants.ts +0 -43
  132. package/src/constants/http.constants.ts +0 -11
  133. package/src/constants/index.ts +0 -11
  134. package/src/constants/logging-messages.constants.ts +0 -60
  135. package/src/constants/microservices.constants.ts +0 -62
  136. package/src/constants/queue.constants.ts +0 -8
  137. package/src/constants/routes.constants.ts +0 -21
  138. package/src/contracts/auth.contract.ts +0 -146
  139. package/src/contracts/config.contract.ts +0 -14
  140. package/src/contracts/index.ts +0 -14
  141. package/src/contracts/logging.contract.ts +0 -115
  142. package/src/contracts/token.contract.ts +0 -47
  143. package/src/decorators/index.ts +0 -3
  144. package/src/decorators/permissions.decorator.ts +0 -5
  145. package/src/decorators/roles.decorator.ts +0 -5
  146. package/src/decorators/scopes.decorator.ts +0 -4
  147. package/src/dto/account.dto.ts +0 -28
  148. package/src/dto/auth.dto.ts +0 -233
  149. package/src/dto/card.dto.ts +0 -64
  150. package/src/dto/client.dto.ts +0 -137
  151. package/src/dto/index.ts +0 -8
  152. package/src/dto/logging.dto.ts +0 -101
  153. package/src/dto/partner.dto.ts +0 -18
  154. package/src/dto/transaction.dto.ts +0 -52
  155. package/src/dto/user.dto.ts +0 -28
  156. package/src/enums/auth.enum.ts +0 -13
  157. package/src/enums/env.enum.ts +0 -7
  158. package/src/enums/error.enum.ts +0 -28
  159. package/src/enums/events.enum.ts +0 -22
  160. package/src/enums/health.enum.ts +0 -7
  161. package/src/enums/iam.enum.ts +0 -28
  162. package/src/enums/index.ts +0 -10
  163. package/src/enums/logging.enum.ts +0 -7
  164. package/src/enums/notification.enum.ts +0 -5
  165. package/src/enums/permission.enum.ts +0 -31
  166. package/src/enums/user.enum.ts +0 -27
  167. package/src/errors/app.error.ts +0 -33
  168. package/src/errors/error-map.ts +0 -105
  169. package/src/filters/http-exception.filter.ts +0 -49
  170. package/src/filters/index.ts +0 -2
  171. package/src/index.ts +0 -17
  172. package/src/interceptors/index.ts +0 -3
  173. package/src/interceptors/logging.interceptor.ts +0 -37
  174. package/src/interceptors/transform.interceptor.ts +0 -21
  175. package/src/observability/index.ts +0 -3
  176. package/src/observability/metrics/metrics.module.ts +0 -16
  177. package/src/observability/tracing.ts +0 -33
  178. package/src/resilience/circuit-breaker.service.ts +0 -46
  179. package/src/resilience/resilience.module.ts +0 -9
  180. package/src/types/auth.types.ts +0 -38
  181. package/src/types/common.types.ts +0 -18
  182. package/src/types/config.types.ts +0 -32
  183. package/src/types/iam.types.ts +0 -78
  184. package/src/types/index.ts +0 -6
  185. package/src/types/monitoring.types.ts +0 -77
  186. package/src/types/user.types.ts +0 -11
  187. package/src/utils/app.utils.ts +0 -52
  188. package/src/utils/health.utils.ts +0 -24
  189. package/src/utils/proto-path.ts +0 -21
  190. package/src/utils/user.utils.ts +0 -3
  191. package/tsconfig.json +0 -28
  192. /package/dist/{filters/http-exception.filter.d.ts → utils/filters.d.ts} +0 -0
  193. /package/dist/{observability/tracing.d.ts → utils/tracing.utils.d.ts} +0 -0
package/dist/index.js CHANGED
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ require("reflect-metadata");
17
18
  __exportStar(require("./enums"), exports);
18
19
  __exportStar(require("./constants"), exports);
19
20
  __exportStar(require("./types"), exports);
@@ -26,9 +27,18 @@ __exportStar(require("./utils/proto-path"), exports);
26
27
  __exportStar(require("./utils/user.utils"), exports);
27
28
  __exportStar(require("./utils/app.utils"), exports);
28
29
  __exportStar(require("./utils/health.utils"), exports);
29
- __exportStar(require("./filters"), exports);
30
- __exportStar(require("./interceptors"), exports);
31
- __exportStar(require("./observability"), exports);
32
- __exportStar(require("./resilience/resilience.module"), exports);
30
+ __exportStar(require("./utils/tracing.utils"), exports);
31
+ __exportStar(require("./utils/tracing.service"), exports);
32
+ __exportStar(require("./utils/tracing.module"), exports);
33
+ __exportStar(require("./utils/grpc-tracing.interceptor"), exports);
34
+ __exportStar(require("./utils/http-tracing.interceptor"), exports);
35
+ __exportStar(require("./utils/grpc-tracing-server.interceptor"), exports);
33
36
  __exportStar(require("./resilience/circuit-breaker.service"), exports);
37
+ __exportStar(require("./resilience/resilience.module"), exports);
38
+ __exportStar(require("./utils/filters"), exports);
39
+ __exportStar(require("./utils/interceptors"), exports);
40
+ __exportStar(require("./utils/app-logger"), exports);
41
+ __exportStar(require("./filters"), exports);
42
+ __exportStar(require("./middleware"), exports);
43
+ __exportStar(require("./types/logger.interface"), exports);
34
44
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,8CAA4B;AAC5B,0CAAwB;AACxB,8CAA4B;AAC5B,wCAAsB;AACtB,qDAAmC;AACnC,qDAAmC;AACnC,+CAA6B;AAC7B,qDAAmC;AACnC,qDAAmC;AACnC,oDAAkC;AAClC,uDAAqC;AACrC,4CAA0B;AAC1B,iDAA+B;AAC/B,kDAAgC;AAChC,iEAA+C;AAC/C,uEAAqD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4BAA0B;AAC1B,0CAAwB;AACxB,8CAA4B;AAC5B,0CAAwB;AACxB,8CAA4B;AAC5B,wCAAsB;AACtB,qDAAmC;AACnC,qDAAmC;AACnC,+CAA6B;AAC7B,qDAAmC;AACnC,qDAAmC;AACnC,oDAAkC;AAClC,uDAAqC;AACrC,wDAAsC;AACtC,0DAAwC;AACxC,yDAAuC;AACvC,mEAAiD;AACjD,mEAAiD;AACjD,0EAAwD;AACxD,uEAAqD;AACrD,iEAA+C;AAC/C,kDAAgC;AAChC,uDAAqC;AAErC,qDAAmC;AACnC,4CAA0B;AAC1B,+CAA6B;AAC7B,2DAAyC"}
@@ -0,0 +1,2 @@
1
+ export * from './prisma-logging.middleware';
2
+ export * from './tracing.middleware';
@@ -14,6 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./logging.interceptor"), exports);
18
- __exportStar(require("./transform.interceptor"), exports);
17
+ __exportStar(require("./prisma-logging.middleware"), exports);
18
+ __exportStar(require("./tracing.middleware"), exports);
19
19
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8DAA4C;AAC5C,uDAAqC"}
@@ -0,0 +1,3 @@
1
+ import { Logger } from '@nestjs/common';
2
+ import { IRemoteLogger } from '../types/logger.interface';
3
+ export declare function createPrismaLoggingMiddleware(logger: Logger, remoteLogger?: IRemoteLogger): (params: any, next: (params: any) => Promise<any>) => Promise<any>;
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createPrismaLoggingMiddleware = createPrismaLoggingMiddleware;
4
+ function createPrismaLoggingMiddleware(logger, remoteLogger) {
5
+ const SLOW_QUERY_THRESHOLD_MS = 100;
6
+ return async (params, next) => {
7
+ const before = Date.now();
8
+ let result;
9
+ let error;
10
+ try {
11
+ result = await next(params);
12
+ }
13
+ catch (e) {
14
+ error = e;
15
+ throw e;
16
+ }
17
+ finally {
18
+ const after = Date.now();
19
+ const duration = after - before;
20
+ const model = params.model;
21
+ const action = params.action;
22
+ const queryName = `${model}.${action}`;
23
+ const logMetadata = {
24
+ model,
25
+ action,
26
+ duration,
27
+ args: params.args,
28
+ };
29
+ if (error) {
30
+ const errorMessage = error instanceof Error ? error.message : String(error);
31
+ logger.error(`[Prisma Failure] ${queryName} - ${duration}ms | Error: ${errorMessage}`);
32
+ if (remoteLogger) {
33
+ remoteLogger.error(`Prisma Query Failed: ${queryName}`, 'PrismaClient', {
34
+ ...logMetadata,
35
+ error: errorMessage,
36
+ });
37
+ }
38
+ }
39
+ else if (duration >= SLOW_QUERY_THRESHOLD_MS) {
40
+ logger.warn(`[Slow Query] ${queryName} took ${duration}ms`);
41
+ if (remoteLogger) {
42
+ remoteLogger.warn(`Slow Database Query: ${queryName}`, 'PrismaClient', logMetadata);
43
+ }
44
+ }
45
+ else {
46
+ logger.debug(`[Query] ${queryName} took ${duration}ms`);
47
+ }
48
+ }
49
+ return result;
50
+ };
51
+ }
52
+ //# sourceMappingURL=prisma-logging.middleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prisma-logging.middleware.js","sourceRoot":"","sources":["../../src/middleware/prisma-logging.middleware.ts"],"names":[],"mappings":";;AAQA,sEAmDC;AAnDD,SAAgB,6BAA6B,CACzC,MAAc,EACd,YAA4B;IAE5B,MAAM,uBAAuB,GAAG,GAAG,CAAC;IAEpC,OAAO,KAAK,EAAE,MAAW,EAAE,IAAmC,EAAE,EAAE;QAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC1B,IAAI,MAAW,CAAC;QAChB,IAAI,KAAU,CAAC;QAEf,IAAI,CAAC;YACD,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,KAAK,GAAG,CAAC,CAAC;YACV,MAAM,CAAC,CAAC;QACZ,CAAC;gBAAS,CAAC;YACP,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;YAChC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YAC3B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAC7B,MAAM,SAAS,GAAG,GAAG,KAAK,IAAI,MAAM,EAAE,CAAC;YAEvC,MAAM,WAAW,GAAG;gBAChB,KAAK;gBACL,MAAM;gBACN,QAAQ;gBACR,IAAI,EAAE,MAAM,CAAC,IAAI;aACpB,CAAC;YAEF,IAAI,KAAK,EAAE,CAAC;gBACR,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC5E,MAAM,CAAC,KAAK,CAAC,oBAAoB,SAAS,MAAM,QAAQ,eAAe,YAAY,EAAE,CAAC,CAAC;gBACvF,IAAI,YAAY,EAAE,CAAC;oBACf,YAAY,CAAC,KAAK,CAAC,wBAAwB,SAAS,EAAE,EAAE,cAAc,EAAE;wBACpE,GAAG,WAAW;wBACd,KAAK,EAAE,YAAY;qBACtB,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;iBAAM,IAAI,QAAQ,IAAI,uBAAuB,EAAE,CAAC;gBAC7C,MAAM,CAAC,IAAI,CAAC,gBAAgB,SAAS,SAAS,QAAQ,IAAI,CAAC,CAAC;gBAC5D,IAAI,YAAY,EAAE,CAAC;oBACf,YAAY,CAAC,IAAI,CAAC,wBAAwB,SAAS,EAAE,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;gBACxF,CAAC;YACL,CAAC;iBAAM,CAAC;gBAEJ,MAAM,CAAC,KAAK,CAAC,WAAW,SAAS,SAAS,QAAQ,IAAI,CAAC,CAAC;YAC5D,CAAC;QACL,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC;AACN,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { NestMiddleware } from '@nestjs/common';
2
+ import { Request, Response, NextFunction } from 'express';
3
+ import { TracingService } from '../utils/tracing.service';
4
+ export declare class TracingMiddleware implements NestMiddleware {
5
+ private readonly tracingService;
6
+ constructor(tracingService: TracingService);
7
+ use(req: Request, res: Response, next: NextFunction): void;
8
+ }
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.TracingMiddleware = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const tracing_service_1 = require("../utils/tracing.service");
15
+ let TracingMiddleware = class TracingMiddleware {
16
+ constructor(tracingService) {
17
+ this.tracingService = tracingService;
18
+ }
19
+ use(req, res, next) {
20
+ const traceId = req.headers['x-request-id'] || this.tracingService.generateTraceId();
21
+ res.setHeader('x-request-id', traceId);
22
+ tracing_service_1.TracingService.getStorage().run(new Map(), () => {
23
+ this.tracingService.setTraceId(traceId);
24
+ next();
25
+ });
26
+ }
27
+ };
28
+ exports.TracingMiddleware = TracingMiddleware;
29
+ exports.TracingMiddleware = TracingMiddleware = __decorate([
30
+ (0, common_1.Injectable)(),
31
+ __metadata("design:paramtypes", [tracing_service_1.TracingService])
32
+ ], TracingMiddleware);
33
+ //# sourceMappingURL=tracing.middleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracing.middleware.js","sourceRoot":"","sources":["../../src/middleware/tracing.middleware.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4D;AAE5D,8DAA0D;AAGnD,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAC1B,YAA6B,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;IAAG,CAAC;IAE/D,GAAG,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB;QAC/C,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,CAAW,IAAI,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,CAAC;QAG/F,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAGvC,gCAAc,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,GAAG,EAAE;YAC5C,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YACxC,IAAI,EAAE,CAAC;QACX,CAAC,CAAC,CAAC;IACP,CAAC;CACJ,CAAA;AAfY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;qCAEoC,gCAAc;GADlD,iBAAiB,CAe7B"}
@@ -1,7 +1,6 @@
1
- import CircuitBreaker = require('opossum');
1
+ import CircuitBreaker from 'opossum';
2
2
  export declare class CircuitBreakerService {
3
3
  private readonly logger;
4
4
  private readonly breakers;
5
- execute<T>(key: string, action: () => Promise<T>, options?: CircuitBreaker.Options): Promise<T>;
6
- private bindEvents;
5
+ execute<T>(key: string, fn: () => Promise<T>, options?: CircuitBreaker.Options): Promise<T>;
7
6
  }
@@ -9,33 +9,27 @@ var CircuitBreakerService_1;
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.CircuitBreakerService = void 0;
11
11
  const common_1 = require("@nestjs/common");
12
- const CircuitBreaker = require("opossum");
12
+ const opossum_1 = require("opossum");
13
13
  let CircuitBreakerService = CircuitBreakerService_1 = class CircuitBreakerService {
14
14
  constructor() {
15
15
  this.logger = new common_1.Logger(CircuitBreakerService_1.name);
16
16
  this.breakers = new Map();
17
17
  }
18
- async execute(key, action, options) {
18
+ async execute(key, fn, options = {}) {
19
19
  let breaker = this.breakers.get(key);
20
20
  if (!breaker) {
21
- const defaultOptions = {
22
- timeout: 5000,
21
+ breaker = new opossum_1.default(fn, {
22
+ timeout: 10000,
23
23
  errorThresholdPercentage: 50,
24
- resetTimeout: 10000,
24
+ resetTimeout: 30000,
25
25
  ...options,
26
- };
27
- const passThrough = async (promiseFactory) => promiseFactory();
28
- breaker = new CircuitBreaker(passThrough, defaultOptions);
29
- this.bindEvents(breaker, key);
26
+ });
27
+ breaker.on('open', () => this.logger.warn(`Circuit breaker [${key}] is OPEN`));
28
+ breaker.on('halfOpen', () => this.logger.log(`Circuit breaker [${key}] is HALF_OPEN`));
29
+ breaker.on('close', () => this.logger.log(`Circuit breaker [${key}] is CLOSED`));
30
30
  this.breakers.set(key, breaker);
31
31
  }
32
- return breaker.fire(action);
33
- }
34
- bindEvents(breaker, key) {
35
- breaker.on('open', () => this.logger.warn(`Circuit Breaker OPEN for ${key}`));
36
- breaker.on('halfOpen', () => this.logger.log(`Circuit Breaker HALF-OPEN for ${key}`));
37
- breaker.on('close', () => this.logger.log(`Circuit Breaker CLOSED for ${key}`));
38
- breaker.on('fallback', () => this.logger.warn(`Circuit Breaker FALLBACK for ${key}`));
32
+ return breaker.fire();
39
33
  }
40
34
  };
41
35
  exports.CircuitBreakerService = CircuitBreakerService;
@@ -1 +1 @@
1
- {"version":3,"file":"circuit-breaker.service.js","sourceRoot":"","sources":["../../src/resilience/circuit-breaker.service.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAoD;AACpD,0CAA2C;AAGpC,IAAM,qBAAqB,6BAA3B,MAAM,qBAAqB;IAA3B;QACc,WAAM,GAAG,IAAI,eAAM,CAAC,uBAAqB,CAAC,IAAI,CAAC,CAAC;QAChD,aAAQ,GAAG,IAAI,GAAG,EAA0B,CAAC;IAuClE,CAAC;IA/BG,KAAK,CAAC,OAAO,CACT,GAAW,EACX,MAAwB,EACxB,OAAgC;QAEhC,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAErC,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,MAAM,cAAc,GAA2B;gBAC3C,OAAO,EAAE,IAAI;gBACb,wBAAwB,EAAE,EAAE;gBAC5B,YAAY,EAAE,KAAK;gBACnB,GAAG,OAAO;aACb,CAAC;YAGF,MAAM,WAAW,GAAG,KAAK,EAAE,cAAgC,EAAE,EAAE,CAAC,cAAc,EAAE,CAAC;YACjF,OAAO,GAAG,IAAI,cAAc,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;YAC1D,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAC9B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACpC,CAAC;QAED,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAe,CAAC;IAC9C,CAAC;IAEO,UAAU,CAAC,OAAuB,EAAE,GAAW;QACnD,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,GAAG,EAAE,CAAC,CAAC,CAAC;QAC9E,OAAO,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iCAAiC,GAAG,EAAE,CAAC,CAAC,CAAC;QACtF,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,8BAA8B,GAAG,EAAE,CAAC,CAAC,CAAC;QAChF,OAAO,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gCAAgC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC1F,CAAC;CACJ,CAAA;AAzCY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,mBAAU,GAAE;GACA,qBAAqB,CAyCjC"}
1
+ {"version":3,"file":"circuit-breaker.service.js","sourceRoot":"","sources":["../../src/resilience/circuit-breaker.service.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAoD;AACpD,qCAAqC;AAG9B,IAAM,qBAAqB,6BAA3B,MAAM,qBAAqB;IAA3B;QACc,WAAM,GAAG,IAAI,eAAM,CAAC,uBAAqB,CAAC,IAAI,CAAC,CAAC;QAChD,aAAQ,GAAG,IAAI,GAAG,EAA0B,CAAC;IAsBlE,CAAC;IApBG,KAAK,CAAC,OAAO,CAAI,GAAW,EAAE,EAAoB,EAAE,UAAkC,EAAE;QACpF,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAErC,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO,GAAG,IAAI,iBAAc,CAAC,EAAE,EAAE;gBAC7B,OAAO,EAAE,KAAK;gBACd,wBAAwB,EAAE,EAAE;gBAC5B,YAAY,EAAE,KAAK;gBACnB,GAAG,OAAO;aACb,CAAC,CAAC;YAEH,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,GAAG,WAAW,CAAC,CAAC,CAAC;YAC/E,OAAO,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,oBAAoB,GAAG,gBAAgB,CAAC,CAAC,CAAC;YACvF,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,oBAAoB,GAAG,aAAa,CAAC,CAAC,CAAC;YAEjF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACpC,CAAC;QAED,OAAO,OAAO,CAAC,IAAI,EAAgB,CAAC;IACxC,CAAC;CACJ,CAAA;AAxBY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,mBAAU,GAAE;GACA,qBAAqB,CAwBjC"}