@omnitronix/game-engine-sdk 1.0.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 (177) hide show
  1. package/dist/bootstrap/index.d.ts +15 -0
  2. package/dist/bootstrap/index.d.ts.map +1 -0
  3. package/dist/bootstrap/index.js +156 -0
  4. package/dist/common/api-docs/setup-documentation.d.ts +3 -0
  5. package/dist/common/api-docs/setup-documentation.d.ts.map +1 -0
  6. package/dist/common/api-docs/setup-documentation.js +27 -0
  7. package/dist/common/application-bootstrap-options.interface.d.ts +4 -0
  8. package/dist/common/application-bootstrap-options.interface.d.ts.map +1 -0
  9. package/dist/common/application-bootstrap-options.interface.js +2 -0
  10. package/dist/common/error-handling/all-exceptions.filter.d.ts +22 -0
  11. package/dist/common/error-handling/all-exceptions.filter.d.ts.map +1 -0
  12. package/dist/common/error-handling/all-exceptions.filter.js +131 -0
  13. package/dist/common/error-handling/domain.exception.d.ts +8 -0
  14. package/dist/common/error-handling/domain.exception.d.ts.map +1 -0
  15. package/dist/common/error-handling/domain.exception.js +14 -0
  16. package/dist/common/error-handling/error-code-mapper.d.ts +6 -0
  17. package/dist/common/error-handling/error-code-mapper.d.ts.map +1 -0
  18. package/dist/common/error-handling/error-code-mapper.js +93 -0
  19. package/dist/common/error-handling/internal-error-code.d.ts +67 -0
  20. package/dist/common/error-handling/internal-error-code.d.ts.map +1 -0
  21. package/dist/common/error-handling/internal-error-code.js +80 -0
  22. package/dist/common/index.d.ts +21 -0
  23. package/dist/common/index.d.ts.map +1 -0
  24. package/dist/common/index.js +51 -0
  25. package/dist/common/logger/logger.d.ts +24 -0
  26. package/dist/common/logger/logger.d.ts.map +1 -0
  27. package/dist/common/logger/logger.js +137 -0
  28. package/dist/common/logger/logger.module.d.ts +3 -0
  29. package/dist/common/logger/logger.module.d.ts.map +1 -0
  30. package/dist/common/logger/logger.module.js +19 -0
  31. package/dist/common/logger/logging.middleware.d.ts +8 -0
  32. package/dist/common/logger/logging.middleware.d.ts.map +1 -0
  33. package/dist/common/logger/logging.middleware.js +44 -0
  34. package/dist/common/metrics/database-metrics.service.d.ts +8 -0
  35. package/dist/common/metrics/database-metrics.service.d.ts.map +1 -0
  36. package/dist/common/metrics/database-metrics.service.js +39 -0
  37. package/dist/common/metrics/helpers/metrics.helpers.d.ts +5 -0
  38. package/dist/common/metrics/helpers/metrics.helpers.d.ts.map +1 -0
  39. package/dist/common/metrics/helpers/metrics.helpers.js +38 -0
  40. package/dist/common/metrics/metrics.module.d.ts +3 -0
  41. package/dist/common/metrics/metrics.module.d.ts.map +1 -0
  42. package/dist/common/metrics/metrics.module.js +207 -0
  43. package/dist/common/metrics/metrics.port.d.ts +22 -0
  44. package/dist/common/metrics/metrics.port.d.ts.map +1 -0
  45. package/dist/common/metrics/metrics.port.js +4 -0
  46. package/dist/common/metrics/prometheus.service.d.ts +25 -0
  47. package/dist/common/metrics/prometheus.service.d.ts.map +1 -0
  48. package/dist/common/metrics/prometheus.service.js +105 -0
  49. package/dist/common/retry/retry-policies.d.ts +8 -0
  50. package/dist/common/retry/retry-policies.d.ts.map +1 -0
  51. package/dist/common/retry/retry-policies.js +43 -0
  52. package/dist/common/retry/retry-policy.d.ts +25 -0
  53. package/dist/common/retry/retry-policy.d.ts.map +1 -0
  54. package/dist/common/retry/retry-policy.js +65 -0
  55. package/dist/common/secrets-provider/secrets-provider.aws.d.ts +13 -0
  56. package/dist/common/secrets-provider/secrets-provider.aws.d.ts.map +1 -0
  57. package/dist/common/secrets-provider/secrets-provider.aws.js +72 -0
  58. package/dist/common/secrets-provider/secrets-provider.d.ts +5 -0
  59. package/dist/common/secrets-provider/secrets-provider.d.ts.map +1 -0
  60. package/dist/common/secrets-provider/secrets-provider.js +4 -0
  61. package/dist/common/secrets-provider/secrets-provider.local.d.ts +8 -0
  62. package/dist/common/secrets-provider/secrets-provider.local.d.ts.map +1 -0
  63. package/dist/common/secrets-provider/secrets-provider.local.js +75 -0
  64. package/dist/common/secrets-provider/secrets-provider.module.d.ts +5 -0
  65. package/dist/common/secrets-provider/secrets-provider.module.d.ts.map +1 -0
  66. package/dist/common/secrets-provider/secrets-provider.module.js +47 -0
  67. package/dist/esm/bootstrap/index.js +120 -0
  68. package/dist/esm/common/api-docs/setup-documentation.js +23 -0
  69. package/dist/esm/common/application-bootstrap-options.interface.js +1 -0
  70. package/dist/esm/common/error-handling/all-exceptions.filter.js +128 -0
  71. package/dist/esm/common/error-handling/domain.exception.js +10 -0
  72. package/dist/esm/common/error-handling/error-code-mapper.js +89 -0
  73. package/dist/esm/common/error-handling/internal-error-code.js +77 -0
  74. package/dist/esm/common/index.js +25 -0
  75. package/dist/esm/common/logger/logger.js +133 -0
  76. package/dist/esm/common/logger/logger.module.js +16 -0
  77. package/dist/esm/common/logger/logging.middleware.js +41 -0
  78. package/dist/esm/common/metrics/database-metrics.service.js +36 -0
  79. package/dist/esm/common/metrics/helpers/metrics.helpers.js +32 -0
  80. package/dist/esm/common/metrics/metrics.module.js +204 -0
  81. package/dist/esm/common/metrics/metrics.port.js +1 -0
  82. package/dist/esm/common/metrics/prometheus.service.js +102 -0
  83. package/dist/esm/common/retry/retry-policies.js +39 -0
  84. package/dist/esm/common/retry/retry-policy.js +61 -0
  85. package/dist/esm/common/secrets-provider/secrets-provider.aws.js +69 -0
  86. package/dist/esm/common/secrets-provider/secrets-provider.js +1 -0
  87. package/dist/esm/common/secrets-provider/secrets-provider.local.js +39 -0
  88. package/dist/esm/common/secrets-provider/secrets-provider.module.js +44 -0
  89. package/dist/esm/generated/game-engine-registry_pb.js +28 -0
  90. package/dist/esm/generated/game-engine_pb.js +57 -0
  91. package/dist/esm/grpc/connect-router.middleware.js +16 -0
  92. package/dist/esm/grpc/game-engine.grpc.in-adapter.js +109 -0
  93. package/dist/esm/grpc/index.js +2 -0
  94. package/dist/esm/health/application/ports/in/health-in.port.js +1 -0
  95. package/dist/esm/health/application/ports/out/database-health.out-port.js +1 -0
  96. package/dist/esm/health/application/ports/out/shutdown.out-port.js +1 -0
  97. package/dist/esm/health/application/ports/out/system-health.out-port.js +1 -0
  98. package/dist/esm/health/application/services/health.service.js +81 -0
  99. package/dist/esm/health/domain/health.js +7 -0
  100. package/dist/esm/health/health.module.js +65 -0
  101. package/dist/esm/health/index.js +15 -0
  102. package/dist/esm/health/infrastructure/adapters/in/health.http.in-adapter.js +96 -0
  103. package/dist/esm/health/infrastructure/adapters/out/shutdown/shutdown.out-adapter.js +45 -0
  104. package/dist/esm/health/infrastructure/adapters/out/system/system-health.out-adapter.js +43 -0
  105. package/dist/esm/index.js +15 -0
  106. package/dist/esm/registration/adapters/game-engine-registry.grpc.out-adapter.js +59 -0
  107. package/dist/esm/registration/index.js +3 -0
  108. package/dist/esm/registration/ports/game-engine-registry.out-port.js +1 -0
  109. package/dist/esm/registration/services/game-engine-auto-register.service.js +78 -0
  110. package/dist/esm/types.js +8 -0
  111. package/dist/generated/game-engine-registry_pb.d.ts +76 -0
  112. package/dist/generated/game-engine-registry_pb.d.ts.map +1 -0
  113. package/dist/generated/game-engine-registry_pb.js +31 -0
  114. package/dist/generated/game-engine_pb.d.ts +171 -0
  115. package/dist/generated/game-engine_pb.d.ts.map +1 -0
  116. package/dist/generated/game-engine_pb.js +60 -0
  117. package/dist/grpc/connect-router.middleware.d.ts +7 -0
  118. package/dist/grpc/connect-router.middleware.d.ts.map +1 -0
  119. package/dist/grpc/connect-router.middleware.js +19 -0
  120. package/dist/grpc/game-engine.grpc.in-adapter.d.ts +21 -0
  121. package/dist/grpc/game-engine.grpc.in-adapter.d.ts.map +1 -0
  122. package/dist/grpc/game-engine.grpc.in-adapter.js +112 -0
  123. package/dist/grpc/index.d.ts +3 -0
  124. package/dist/grpc/index.d.ts.map +1 -0
  125. package/dist/grpc/index.js +7 -0
  126. package/dist/health/application/ports/in/health-in.port.d.ts +7 -0
  127. package/dist/health/application/ports/in/health-in.port.d.ts.map +1 -0
  128. package/dist/health/application/ports/in/health-in.port.js +4 -0
  129. package/dist/health/application/ports/out/database-health.out-port.d.ts +6 -0
  130. package/dist/health/application/ports/out/database-health.out-port.d.ts.map +1 -0
  131. package/dist/health/application/ports/out/database-health.out-port.js +4 -0
  132. package/dist/health/application/ports/out/shutdown.out-port.d.ts +6 -0
  133. package/dist/health/application/ports/out/shutdown.out-port.d.ts.map +1 -0
  134. package/dist/health/application/ports/out/shutdown.out-port.js +4 -0
  135. package/dist/health/application/ports/out/system-health.out-port.d.ts +7 -0
  136. package/dist/health/application/ports/out/system-health.out-port.d.ts.map +1 -0
  137. package/dist/health/application/ports/out/system-health.out-port.js +4 -0
  138. package/dist/health/application/services/health.service.d.ts +13 -0
  139. package/dist/health/application/services/health.service.d.ts.map +1 -0
  140. package/dist/health/application/services/health.service.js +84 -0
  141. package/dist/health/domain/health.d.ts +15 -0
  142. package/dist/health/domain/health.d.ts.map +1 -0
  143. package/dist/health/domain/health.js +11 -0
  144. package/dist/health/health.module.d.ts +10 -0
  145. package/dist/health/health.module.d.ts.map +1 -0
  146. package/dist/health/health.module.js +68 -0
  147. package/dist/health/index.d.ts +11 -0
  148. package/dist/health/index.d.ts.map +1 -0
  149. package/dist/health/index.js +28 -0
  150. package/dist/health/infrastructure/adapters/in/health.http.in-adapter.d.ts +16 -0
  151. package/dist/health/infrastructure/adapters/in/health.http.in-adapter.d.ts.map +1 -0
  152. package/dist/health/infrastructure/adapters/in/health.http.in-adapter.js +99 -0
  153. package/dist/health/infrastructure/adapters/out/shutdown/shutdown.out-adapter.d.ts +13 -0
  154. package/dist/health/infrastructure/adapters/out/shutdown/shutdown.out-adapter.d.ts.map +1 -0
  155. package/dist/health/infrastructure/adapters/out/shutdown/shutdown.out-adapter.js +48 -0
  156. package/dist/health/infrastructure/adapters/out/system/system-health.out-adapter.d.ts +12 -0
  157. package/dist/health/infrastructure/adapters/out/system/system-health.out-adapter.d.ts.map +1 -0
  158. package/dist/health/infrastructure/adapters/out/system/system-health.out-adapter.js +46 -0
  159. package/dist/index.d.ts +9 -0
  160. package/dist/index.d.ts.map +1 -0
  161. package/dist/index.js +43 -0
  162. package/dist/registration/adapters/game-engine-registry.grpc.out-adapter.d.ts +12 -0
  163. package/dist/registration/adapters/game-engine-registry.grpc.out-adapter.d.ts.map +1 -0
  164. package/dist/registration/adapters/game-engine-registry.grpc.out-adapter.js +62 -0
  165. package/dist/registration/index.d.ts +4 -0
  166. package/dist/registration/index.d.ts.map +1 -0
  167. package/dist/registration/index.js +9 -0
  168. package/dist/registration/ports/game-engine-registry.out-port.d.ts +9 -0
  169. package/dist/registration/ports/game-engine-registry.out-port.d.ts.map +1 -0
  170. package/dist/registration/ports/game-engine-registry.out-port.js +4 -0
  171. package/dist/registration/services/game-engine-auto-register.service.d.ts +14 -0
  172. package/dist/registration/services/game-engine-auto-register.service.d.ts.map +1 -0
  173. package/dist/registration/services/game-engine-auto-register.service.js +81 -0
  174. package/dist/types.d.ts +53 -0
  175. package/dist/types.d.ts.map +1 -0
  176. package/dist/types.js +11 -0
  177. package/package.json +159 -0
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InternalErrorCode = void 0;
4
+ var InternalErrorCode;
5
+ (function (InternalErrorCode) {
6
+ InternalErrorCode["FORBIDDEN"] = "FORBIDDEN";
7
+ InternalErrorCode["INTERNAL_SERVER_ERROR"] = "INTERNAL_SERVER_ERROR";
8
+ InternalErrorCode["INSUFFICIENT_FUNDS"] = "INSUFFICIENT_FUNDS";
9
+ InternalErrorCode["INVALID_CURRENCY_CODE"] = "INVALID_CURRENCY_CODE";
10
+ // Game Catalog errors
11
+ InternalErrorCode["GAME_NOT_FOUND"] = "GAME_NOT_FOUND";
12
+ InternalErrorCode["GAME_CONFIG_NOT_FOUND"] = "GAME_CONFIG_NOT_FOUND";
13
+ InternalErrorCode["GAME_CONFIG_ALREADY_EXISTS_WITH_SAME_JURISDICTION_AND_RTP"] = "GAME_CONFIG_ALREADY_EXISTS_WITH_SAME_JURISDICTION_AND_RTP";
14
+ InternalErrorCode["OPERATOR_GAME_NOT_FOUND"] = "OPERATOR_GAME_NOT_FOUND";
15
+ InternalErrorCode["OPERATOR_GAME_ALREADY_ENABLED"] = "OPERATOR_GAME_ALREADY_ENABLED";
16
+ InternalErrorCode["INVALID_GAME_CONFIG_DATA"] = "INVALID_GAME_CONFIG_DATA";
17
+ InternalErrorCode["INVALID_GAME_UPDATE_DATA"] = "INVALID_GAME_UPDATE_DATA";
18
+ InternalErrorCode["GAME_CODE_ALREADY_EXISTS"] = "GAME_CODE_ALREADY_EXISTS";
19
+ InternalErrorCode["GAME_ENGINE_ERROR"] = "GAME_ENGINE_ERROR";
20
+ InternalErrorCode["GAME_OR_GAME_CONFIG_DISABLED"] = "GAME_OR_GAME_CONFIG_DISABLED";
21
+ InternalErrorCode["DEBUG_COMMANDS_DISABLED"] = "DEBUG_COMMANDS_DISABLED";
22
+ // Game Orchestrator errors
23
+ InternalErrorCode["INVALID_SESSION"] = "INVALID_SESSION";
24
+ InternalErrorCode["SESSION_NOT_FOUND"] = "SESSION_NOT_FOUND";
25
+ InternalErrorCode["SESSION_NOT_ACTIVE"] = "SESSION_NOT_ACTIVE";
26
+ InternalErrorCode["SESSION_MISMATCH"] = "SESSION_MISMATCH";
27
+ InternalErrorCode["INVALID_STATE_TRANSITION"] = "INVALID_STATE_TRANSITION";
28
+ InternalErrorCode["INVALID_BET_AMOUNT"] = "INVALID_BET_AMOUNT";
29
+ InternalErrorCode["REALITY_CHECK_IN_PROGRESS"] = "REALITY_CHECK_IN_PROGRESS";
30
+ InternalErrorCode["SESSION_TERMINATED"] = "SESSION_TERMINATED";
31
+ InternalErrorCode["SESSION_CANNOT_BE_TERMINATED"] = "SESSION_CANNOT_BE_TERMINATED";
32
+ InternalErrorCode["SESSION_AUTO_RESOLVE_FAILED"] = "SESSION_AUTO_RESOLVE_FAILED";
33
+ InternalErrorCode["SESSION_ALREADY_EXISTS"] = "SESSION_ALREADY_EXISTS";
34
+ InternalErrorCode["INCOMPATIBLE_GAMEPLAY_CONFIG"] = "INCOMPATIBLE_GAMEPLAY_CONFIG";
35
+ InternalErrorCode["UNKNOWN_COMMAND"] = "UNKNOWN_COMMAND";
36
+ // Operator errors
37
+ InternalErrorCode["MISSING_OPERATOR_CODE"] = "MISSING_OPERATOR_CODE";
38
+ InternalErrorCode["INVALID_OPERATOR_CODE"] = "INVALID_OPERATOR_CODE";
39
+ InternalErrorCode["OPERATOR_NOT_FOUND"] = "OPERATOR_NOT_FOUND";
40
+ InternalErrorCode["OPERATOR_INACTIVE"] = "OPERATOR_INACTIVE";
41
+ InternalErrorCode["COUNTRY_CODE_RESTRICTED"] = "COUNTRY_CODE_RESTRICTED";
42
+ InternalErrorCode["UNAUTHORIZED"] = "UNAUTHORIZED";
43
+ InternalErrorCode["AUTH_VALIDATION_FAILED"] = "AUTH_VALIDATION_FAILED";
44
+ InternalErrorCode["BALANCE_NOT_FOUND"] = "BALANCE_NOT_FOUND";
45
+ InternalErrorCode["DEBIT_FAILED"] = "DEBIT_FAILED";
46
+ InternalErrorCode["CREDIT_FAILED"] = "CREDIT_FAILED";
47
+ InternalErrorCode["INVALID_AUTH_DATA"] = "INVALID_AUTH_DATA";
48
+ InternalErrorCode["VALIDATION_ERROR"] = "VALIDATION_ERROR";
49
+ InternalErrorCode["JURISDICTION_CONFIG_ALREADY_EXISTS"] = "JURISDICTION_CONFIG_ALREADY_EXISTS";
50
+ InternalErrorCode["JURISDICTION_CONFIG_NOT_FOUND"] = "JURISDICTION_CONFIG_NOT_FOUND";
51
+ InternalErrorCode["OPERATOR_JURISDICTION_CONFIG_NOT_FOUND"] = "OPERATOR_JURISDICTION_CONFIG_NOT_FOUND";
52
+ // Game round log errors
53
+ InternalErrorCode["GAME_ROUND_LOG_NOT_FOUND"] = "GAME_ROUND_LOG_NOT_FOUND";
54
+ // Geo Validation errors
55
+ InternalErrorCode["COUNTRY_NOT_PERMITTED"] = "COUNTRY_NOT_PERMITTED";
56
+ InternalErrorCode["GEO_VALIDATION_SERVICE_UNAVAILABLE"] = "GEO_VALIDATION_SERVICE_UNAVAILABLE";
57
+ InternalErrorCode["RESOURCE_NOT_FOUND"] = "RESOURCE_NOT_FOUND";
58
+ // Financial transaction errors
59
+ InternalErrorCode["FINANCIAL_TRANSACTION_NOT_FOUND"] = "FINANCIAL_TRANSACTION_NOT_FOUND";
60
+ //Health check errors
61
+ InternalErrorCode["HEALTH_CHECK_FAILED"] = "HEALTH_CHECK_FAILED";
62
+ //Jackpot errors
63
+ InternalErrorCode["JACKPOT_TYPE_NOT_FOUND"] = "JACKPOT_TYPE_NOT_FOUND";
64
+ InternalErrorCode["JACKPOT_TIER_NOT_FOUND"] = "JACKPOT_TIER_NOT_FOUND";
65
+ InternalErrorCode["JACKPOT_CONFIGURATION_NOT_FOUND"] = "JACKPOT_CONFIGURATION_NOT_FOUND";
66
+ InternalErrorCode["JACKPOT_CONFIGURATION_IS_ACTIVE"] = "JACKPOT_CONFIGURATION_IS_ACTIVE";
67
+ InternalErrorCode["JACKPOT_POOL_CONTRIBUTION_ALREADY_PROCESSED"] = "JACKPOT_POOL_CONTRIBUTION_ALREADY_PROCESSED";
68
+ InternalErrorCode["JACKPOT_TYPE_DOES_NOT_SUPPORT_TIERS"] = "JACKPOT_TYPE_DOES_NOT_SUPPORT_TIERS";
69
+ // RNG and Replay errors
70
+ InternalErrorCode["RNG_SEED_NOT_FOUND"] = "RNG_SEED_NOT_FOUND";
71
+ InternalErrorCode["RNG_SEED_MISMATCH"] = "RNG_SEED_MISMATCH";
72
+ InternalErrorCode["MASTER_HASH_INVALID"] = "MASTER_HASH_INVALID";
73
+ InternalErrorCode["REPLAY_OUTCOME_MISMATCH"] = "REPLAY_OUTCOME_MISMATCH";
74
+ // Concurrency
75
+ InternalErrorCode["CONCURRENT_MODIFICATION"] = "CONCURRENT_MODIFICATION";
76
+ InternalErrorCode["ACCOUNT_LOCKED"] = "ACCOUNT_LOCKED";
77
+ InternalErrorCode["DAILY_LIMIT_EXCEEDED"] = "DAILY_LIMIT_EXCEEDED";
78
+ InternalErrorCode["INVALID_AMOUNT"] = "INVALID_AMOUNT";
79
+ InternalErrorCode["SERVICE_UNAVAILABLE"] = "SERVICE_UNAVAILABLE";
80
+ })(InternalErrorCode || (exports.InternalErrorCode = InternalErrorCode = {}));
@@ -0,0 +1,21 @@
1
+ export { Logger } from './logger/logger';
2
+ export { LoggerModule } from './logger/logger.module';
3
+ export { LoggingMiddleware } from './logger/logging.middleware';
4
+ export { DomainException } from './error-handling/domain.exception';
5
+ export { InternalErrorCode } from './error-handling/internal-error-code';
6
+ export { ErrorCodeMapper } from './error-handling/error-code-mapper';
7
+ export { ExceptionsFilter, ErrorResponse } from './error-handling/all-exceptions.filter';
8
+ export { SECRETS_PROVIDER, SecretsProvider } from './secrets-provider/secrets-provider';
9
+ export { SecretsModule } from './secrets-provider/secrets-provider.module';
10
+ export { LocalSecretsProvider } from './secrets-provider/secrets-provider.local';
11
+ export { AwsSecretsProvider } from './secrets-provider/secrets-provider.aws';
12
+ export { RetryPolicy, RetryOptions } from './retry/retry-policy';
13
+ export { RetryPolicies, HTTP_RETRYABLE_ERRORS } from './retry/retry-policies';
14
+ export { METRICS_PORT, MetricsPort, Counter, Gauge, Histogram } from './metrics/metrics.port';
15
+ export { PrometheusService } from './metrics/prometheus.service';
16
+ export { MetricsModule } from './metrics/metrics.module';
17
+ export { DatabaseMetricsService } from './metrics/database-metrics.service';
18
+ export { toMinorUnits, getEventCountBucket, getStreamVersionBucket, sanitizeRoute, } from './metrics/helpers/metrics.helpers';
19
+ export { setupDocumentation } from './api-docs/setup-documentation';
20
+ export { ApplicationBootstrapOptions } from './application-bootstrap-options.interface';
21
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAGhE,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAGzF,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACxF,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAG7E,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAG9E,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC9F,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,sBAAsB,EACtB,aAAa,GACd,MAAM,mCAAmC,CAAC;AAG3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAGpE,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setupDocumentation = exports.sanitizeRoute = exports.getStreamVersionBucket = exports.getEventCountBucket = exports.toMinorUnits = exports.DatabaseMetricsService = exports.MetricsModule = exports.PrometheusService = exports.METRICS_PORT = exports.HTTP_RETRYABLE_ERRORS = exports.RetryPolicies = exports.RetryPolicy = exports.AwsSecretsProvider = exports.LocalSecretsProvider = exports.SecretsModule = exports.SECRETS_PROVIDER = exports.ExceptionsFilter = exports.ErrorCodeMapper = exports.InternalErrorCode = exports.DomainException = exports.LoggingMiddleware = exports.LoggerModule = exports.Logger = void 0;
4
+ // Logger
5
+ var logger_1 = require("./logger/logger");
6
+ Object.defineProperty(exports, "Logger", { enumerable: true, get: function () { return logger_1.Logger; } });
7
+ var logger_module_1 = require("./logger/logger.module");
8
+ Object.defineProperty(exports, "LoggerModule", { enumerable: true, get: function () { return logger_module_1.LoggerModule; } });
9
+ var logging_middleware_1 = require("./logger/logging.middleware");
10
+ Object.defineProperty(exports, "LoggingMiddleware", { enumerable: true, get: function () { return logging_middleware_1.LoggingMiddleware; } });
11
+ // Error Handling
12
+ var domain_exception_1 = require("./error-handling/domain.exception");
13
+ Object.defineProperty(exports, "DomainException", { enumerable: true, get: function () { return domain_exception_1.DomainException; } });
14
+ var internal_error_code_1 = require("./error-handling/internal-error-code");
15
+ Object.defineProperty(exports, "InternalErrorCode", { enumerable: true, get: function () { return internal_error_code_1.InternalErrorCode; } });
16
+ var error_code_mapper_1 = require("./error-handling/error-code-mapper");
17
+ Object.defineProperty(exports, "ErrorCodeMapper", { enumerable: true, get: function () { return error_code_mapper_1.ErrorCodeMapper; } });
18
+ var all_exceptions_filter_1 = require("./error-handling/all-exceptions.filter");
19
+ Object.defineProperty(exports, "ExceptionsFilter", { enumerable: true, get: function () { return all_exceptions_filter_1.ExceptionsFilter; } });
20
+ // Secrets Provider
21
+ var secrets_provider_1 = require("./secrets-provider/secrets-provider");
22
+ Object.defineProperty(exports, "SECRETS_PROVIDER", { enumerable: true, get: function () { return secrets_provider_1.SECRETS_PROVIDER; } });
23
+ var secrets_provider_module_1 = require("./secrets-provider/secrets-provider.module");
24
+ Object.defineProperty(exports, "SecretsModule", { enumerable: true, get: function () { return secrets_provider_module_1.SecretsModule; } });
25
+ var secrets_provider_local_1 = require("./secrets-provider/secrets-provider.local");
26
+ Object.defineProperty(exports, "LocalSecretsProvider", { enumerable: true, get: function () { return secrets_provider_local_1.LocalSecretsProvider; } });
27
+ var secrets_provider_aws_1 = require("./secrets-provider/secrets-provider.aws");
28
+ Object.defineProperty(exports, "AwsSecretsProvider", { enumerable: true, get: function () { return secrets_provider_aws_1.AwsSecretsProvider; } });
29
+ // Retry
30
+ var retry_policy_1 = require("./retry/retry-policy");
31
+ Object.defineProperty(exports, "RetryPolicy", { enumerable: true, get: function () { return retry_policy_1.RetryPolicy; } });
32
+ var retry_policies_1 = require("./retry/retry-policies");
33
+ Object.defineProperty(exports, "RetryPolicies", { enumerable: true, get: function () { return retry_policies_1.RetryPolicies; } });
34
+ Object.defineProperty(exports, "HTTP_RETRYABLE_ERRORS", { enumerable: true, get: function () { return retry_policies_1.HTTP_RETRYABLE_ERRORS; } });
35
+ // Metrics
36
+ var metrics_port_1 = require("./metrics/metrics.port");
37
+ Object.defineProperty(exports, "METRICS_PORT", { enumerable: true, get: function () { return metrics_port_1.METRICS_PORT; } });
38
+ var prometheus_service_1 = require("./metrics/prometheus.service");
39
+ Object.defineProperty(exports, "PrometheusService", { enumerable: true, get: function () { return prometheus_service_1.PrometheusService; } });
40
+ var metrics_module_1 = require("./metrics/metrics.module");
41
+ Object.defineProperty(exports, "MetricsModule", { enumerable: true, get: function () { return metrics_module_1.MetricsModule; } });
42
+ var database_metrics_service_1 = require("./metrics/database-metrics.service");
43
+ Object.defineProperty(exports, "DatabaseMetricsService", { enumerable: true, get: function () { return database_metrics_service_1.DatabaseMetricsService; } });
44
+ var metrics_helpers_1 = require("./metrics/helpers/metrics.helpers");
45
+ Object.defineProperty(exports, "toMinorUnits", { enumerable: true, get: function () { return metrics_helpers_1.toMinorUnits; } });
46
+ Object.defineProperty(exports, "getEventCountBucket", { enumerable: true, get: function () { return metrics_helpers_1.getEventCountBucket; } });
47
+ Object.defineProperty(exports, "getStreamVersionBucket", { enumerable: true, get: function () { return metrics_helpers_1.getStreamVersionBucket; } });
48
+ Object.defineProperty(exports, "sanitizeRoute", { enumerable: true, get: function () { return metrics_helpers_1.sanitizeRoute; } });
49
+ // API Docs
50
+ var setup_documentation_1 = require("./api-docs/setup-documentation");
51
+ Object.defineProperty(exports, "setupDocumentation", { enumerable: true, get: function () { return setup_documentation_1.setupDocumentation; } });
@@ -0,0 +1,24 @@
1
+ import { LoggerService as NestLoggerService } from '@nestjs/common';
2
+ type LogFormat = 'json' | 'pretty';
3
+ export declare class Logger implements NestLoggerService {
4
+ private readonly logger;
5
+ private context;
6
+ constructor(context: string, logFormat?: LogFormat);
7
+ private detectLogFormat;
8
+ private createWinstonLogger;
9
+ private getLogFormat;
10
+ private selectFormat;
11
+ private getJsonFormat;
12
+ private getPrettyFormat;
13
+ private safeStringify;
14
+ private getTransports;
15
+ log(message: any, { level, ...rest }?: {
16
+ level?: string;
17
+ } & Record<string, any>): void;
18
+ error(message: any, ...optionalParams: any[]): void;
19
+ warn(message: any, ...optionalParams: any[]): void;
20
+ debug(message: any, ...optionalParams: any[]): void;
21
+ verbose(message: any, ...optionalParams: any[]): void;
22
+ }
23
+ export {};
24
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/common/logger/logger.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGpE,KAAK,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEnC,qBAAa,MAAO,YAAW,iBAAiB;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,SAAS;IAMlD,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,eAAe;IA+BvB,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,aAAa;IAIrB,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,KAAc,EAAE,GAAG,IAAI,EAAE,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM;IAoB5F,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,EAAE;IAsB5C,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,EAAE;IAI3C,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,EAAE;IAI5C,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,EAAE;CAG/C"}
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Logger = void 0;
4
+ const domain_exception_1 = require("../error-handling/domain.exception");
5
+ const winston_1 = require("winston");
6
+ class Logger {
7
+ constructor(context, logFormat) {
8
+ this.context = context;
9
+ const format = logFormat ?? this.detectLogFormat();
10
+ this.logger = this.createWinstonLogger(format);
11
+ }
12
+ detectLogFormat() {
13
+ const envFormat = process.env.LOG_FORMAT?.toLowerCase();
14
+ switch (envFormat) {
15
+ case 'pretty':
16
+ return 'pretty';
17
+ case 'json':
18
+ return 'json';
19
+ default:
20
+ return 'json';
21
+ }
22
+ }
23
+ createWinstonLogger(logFormat) {
24
+ const winstonFormat = this.getLogFormat(logFormat);
25
+ return (0, winston_1.createLogger)({
26
+ level: 'info',
27
+ format: winstonFormat,
28
+ transports: this.getTransports(),
29
+ });
30
+ }
31
+ getLogFormat(logFormat) {
32
+ return winston_1.format.combine(winston_1.format.timestamp(), this.selectFormat(logFormat));
33
+ }
34
+ selectFormat(logFormat) {
35
+ switch (logFormat) {
36
+ case 'pretty':
37
+ return this.getPrettyFormat();
38
+ case 'json':
39
+ return this.getJsonFormat();
40
+ default:
41
+ return this.getJsonFormat();
42
+ }
43
+ }
44
+ getJsonFormat() {
45
+ return winston_1.format.combine((0, winston_1.format)(info => {
46
+ if (this.context) {
47
+ info.message = `[${this.context}] ${info.message}`;
48
+ }
49
+ return info;
50
+ })(), winston_1.format.json());
51
+ }
52
+ getPrettyFormat() {
53
+ return winston_1.format.combine(winston_1.format.colorize(), winston_1.format.printf(({ timestamp, level, message, error, ...meta }) => {
54
+ const contextStr = this.context ? `[${this.context}] ` : '';
55
+ let output = `${timestamp} ${level}: ${contextStr}${message}`;
56
+ if (error && typeof error === 'object' && 'name' in error && 'message' in error) {
57
+ output += `\n Error: ${error.name}: ${error.message}`;
58
+ if (error.name === 'DomainException' && 'errorCode' in error) {
59
+ output += `\n Internal Code: ${error.errorCode}`;
60
+ }
61
+ if ('stack' in error && error.stack) {
62
+ output += `\n Stack: ${error.stack}`;
63
+ }
64
+ }
65
+ const metaKeys = Object.keys(meta).filter(key => key !== 'timestamp' && key !== 'level' && key !== 'message');
66
+ if (metaKeys.length > 0) {
67
+ output += `\n Meta: ${JSON.stringify(meta, null, 2)}`;
68
+ }
69
+ return output;
70
+ }));
71
+ }
72
+ safeStringify(obj) {
73
+ try {
74
+ return JSON.stringify(obj, (key, value) => {
75
+ if (typeof value === 'bigint') {
76
+ return value.toString();
77
+ }
78
+ return value;
79
+ });
80
+ }
81
+ catch (_error) {
82
+ return '[Object cannot be serialized]';
83
+ }
84
+ }
85
+ getTransports() {
86
+ return [new winston_1.transports.Console(), new winston_1.transports.File({ filename: 'logs/app.log' })];
87
+ }
88
+ log(message, { level = 'info', ...rest } = {}) {
89
+ switch (level) {
90
+ case 'error':
91
+ this.logger.error(message, rest);
92
+ break;
93
+ case 'warn':
94
+ this.logger.warn(message, rest);
95
+ break;
96
+ case 'debug':
97
+ this.logger.debug(message, rest);
98
+ break;
99
+ case 'verbose':
100
+ this.logger.verbose(message, rest);
101
+ break;
102
+ default:
103
+ this.logger.info(message, rest);
104
+ break;
105
+ }
106
+ }
107
+ error(message, ...optionalParams) {
108
+ if (optionalParams.length > 0 && optionalParams[0] instanceof Error) {
109
+ const error = optionalParams[0];
110
+ const errorData = {
111
+ name: error.name,
112
+ message: error.message,
113
+ stack: error.stack,
114
+ };
115
+ if (error instanceof domain_exception_1.DomainException) {
116
+ errorData.errorCode = error.errorCode;
117
+ }
118
+ this.logger.error(message, {
119
+ error: errorData,
120
+ ...optionalParams.slice(1),
121
+ });
122
+ }
123
+ else {
124
+ this.logger.error(message, ...optionalParams);
125
+ }
126
+ }
127
+ warn(message, ...optionalParams) {
128
+ this.logger.warn(message, ...optionalParams);
129
+ }
130
+ debug(message, ...optionalParams) {
131
+ this.logger.debug(message, ...optionalParams);
132
+ }
133
+ verbose(message, ...optionalParams) {
134
+ this.logger.verbose(message, ...optionalParams);
135
+ }
136
+ }
137
+ exports.Logger = Logger;
@@ -0,0 +1,3 @@
1
+ export declare class LoggerModule {
2
+ }
3
+ //# sourceMappingURL=logger.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.module.d.ts","sourceRoot":"","sources":["../../../src/common/logger/logger.module.ts"],"names":[],"mappings":"AAGA,qBAGa,YAAY;CAAG"}
@@ -0,0 +1,19 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.LoggerModule = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const config_1 = require("@nestjs/config");
12
+ let LoggerModule = class LoggerModule {
13
+ };
14
+ exports.LoggerModule = LoggerModule;
15
+ exports.LoggerModule = LoggerModule = __decorate([
16
+ (0, common_1.Module)({
17
+ imports: [config_1.ConfigModule],
18
+ })
19
+ ], LoggerModule);
@@ -0,0 +1,8 @@
1
+ import { NestMiddleware } from '@nestjs/common';
2
+ import { NextFunction, Request, Response } from 'express';
3
+ export declare class LoggingMiddleware implements NestMiddleware {
4
+ private readonly logger;
5
+ constructor();
6
+ use(req: Request, res: Response, next: NextFunction): void;
7
+ }
8
+ //# sourceMappingURL=logging.middleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging.middleware.d.ts","sourceRoot":"","sources":["../../../src/common/logger/logging.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAM1D,qBACa,iBAAkB,YAAW,cAAc;IACtD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;;IAMhC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY;CAwBpD"}
@@ -0,0 +1,44 @@
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
+ var LoggingMiddleware_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.LoggingMiddleware = void 0;
14
+ const common_1 = require("@nestjs/common");
15
+ const logger_1 = require("./logger");
16
+ const BLOCKED_ENDPOINTS = ['/api/races/active'];
17
+ let LoggingMiddleware = LoggingMiddleware_1 = class LoggingMiddleware {
18
+ constructor() {
19
+ this.logger = new logger_1.Logger(LoggingMiddleware_1.name);
20
+ }
21
+ use(req, res, next) {
22
+ const { method, originalUrl, body } = req;
23
+ const sanitizedBody = { ...body };
24
+ if (sanitizedBody.password) {
25
+ sanitizedBody.password = '***';
26
+ }
27
+ if (sanitizedBody.token) {
28
+ sanitizedBody.token = '***';
29
+ }
30
+ res.on('finish', () => {
31
+ const isBlockedEndpoint = BLOCKED_ENDPOINTS.some(endpoint => originalUrl.includes(endpoint));
32
+ const isSuccessfulRequest = res.statusCode < 400;
33
+ if (!(isBlockedEndpoint && isSuccessfulRequest)) {
34
+ this.logger.log(`Request: ${method} ${originalUrl} | Body: ${JSON.stringify(sanitizedBody)}`);
35
+ }
36
+ });
37
+ next();
38
+ }
39
+ };
40
+ exports.LoggingMiddleware = LoggingMiddleware;
41
+ exports.LoggingMiddleware = LoggingMiddleware = LoggingMiddleware_1 = __decorate([
42
+ (0, common_1.Injectable)(),
43
+ __metadata("design:paramtypes", [])
44
+ ], LoggingMiddleware);
@@ -0,0 +1,8 @@
1
+ import { MetricsPort } from './metrics.port';
2
+ export declare class DatabaseMetricsService {
3
+ private readonly metricsPort;
4
+ constructor(metricsPort: MetricsPort);
5
+ updateConnectionPoolSize(poolType: string, state: 'active' | 'idle' | 'waiting', size: number): void;
6
+ trackConnectionError(errorType: string): void;
7
+ }
8
+ //# sourceMappingURL=database-metrics.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-metrics.service.d.ts","sourceRoot":"","sources":["../../../src/common/metrics/database-metrics.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG3D,qBACa,sBAAsB;IAG/B,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAAX,WAAW,EAAE,WAAW;IAG3C,wBAAwB,CACtB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,EACpC,IAAI,EAAE,MAAM,GACX,IAAI;IAUP,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;CAK9C"}
@@ -0,0 +1,39 @@
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
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.DatabaseMetricsService = void 0;
16
+ const metrics_port_1 = require("./metrics.port");
17
+ const common_1 = require("@nestjs/common");
18
+ let DatabaseMetricsService = class DatabaseMetricsService {
19
+ constructor(metricsPort) {
20
+ this.metricsPort = metricsPort;
21
+ }
22
+ updateConnectionPoolSize(poolType, state, size) {
23
+ this.metricsPort.getGauge('rgs_db_connection_pool_size').set({
24
+ pool_type: poolType,
25
+ state,
26
+ }, size);
27
+ }
28
+ trackConnectionError(errorType) {
29
+ this.metricsPort.getCounter('rgs_db_connection_errors_total').inc({
30
+ error_type: errorType,
31
+ });
32
+ }
33
+ };
34
+ exports.DatabaseMetricsService = DatabaseMetricsService;
35
+ exports.DatabaseMetricsService = DatabaseMetricsService = __decorate([
36
+ (0, common_1.Injectable)(),
37
+ __param(0, (0, common_1.Inject)(metrics_port_1.METRICS_PORT)),
38
+ __metadata("design:paramtypes", [Object])
39
+ ], DatabaseMetricsService);
@@ -0,0 +1,5 @@
1
+ export declare function toMinorUnits(amount: number): number;
2
+ export declare function getEventCountBucket(count: number): string;
3
+ export declare function getStreamVersionBucket(version: number): string;
4
+ export declare function sanitizeRoute(route: string): string;
5
+ //# sourceMappingURL=metrics.helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.helpers.d.ts","sourceRoot":"","sources":["../../../../src/common/metrics/helpers/metrics.helpers.ts"],"names":[],"mappings":"AAAA,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOzD;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAM9D;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAInD"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toMinorUnits = toMinorUnits;
4
+ exports.getEventCountBucket = getEventCountBucket;
5
+ exports.getStreamVersionBucket = getStreamVersionBucket;
6
+ exports.sanitizeRoute = sanitizeRoute;
7
+ function toMinorUnits(amount) {
8
+ return Math.round(amount * 100);
9
+ }
10
+ function getEventCountBucket(count) {
11
+ if (count <= 5)
12
+ return '1-5';
13
+ if (count <= 10)
14
+ return '6-10';
15
+ if (count <= 25)
16
+ return '11-25';
17
+ if (count <= 50)
18
+ return '26-50';
19
+ if (count <= 100)
20
+ return '51-100';
21
+ return '100+';
22
+ }
23
+ function getStreamVersionBucket(version) {
24
+ if (version <= 10)
25
+ return '1-10';
26
+ if (version <= 50)
27
+ return '11-50';
28
+ if (version <= 100)
29
+ return '51-100';
30
+ if (version <= 500)
31
+ return '101-500';
32
+ return '500+';
33
+ }
34
+ function sanitizeRoute(route) {
35
+ return route
36
+ .replace(/\/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/gi, '/:id')
37
+ .replace(/\/\d+/g, '/:id');
38
+ }
@@ -0,0 +1,3 @@
1
+ export declare class MetricsModule {
2
+ }
3
+ //# sourceMappingURL=metrics.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.module.d.ts","sourceRoot":"","sources":["../../../src/common/metrics/metrics.module.ts"],"names":[],"mappings":"AAWA,qBAoMa,aAAa;CAAG"}