@rsdk/core 1.0.12 → 2.0.0

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 (248) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/dist/app/platform.app.d.ts +1 -1
  3. package/dist/app/platform.app.js +3 -25
  4. package/dist/app/platform.app.js.map +1 -1
  5. package/dist/app-metadata/app-metadata.module.js.map +1 -1
  6. package/dist/app-metadata/exceptions/app-name-validation.exception.js.map +1 -1
  7. package/dist/config/additional-source/additional-source.initializer.d.ts +6 -2
  8. package/dist/config/additional-source/additional-source.initializer.js +24 -18
  9. package/dist/config/additional-source/additional-source.initializer.js.map +1 -1
  10. package/dist/config/additional-source/additional-source.module.d.ts +1 -1
  11. package/dist/config/additional-source/additional-source.module.js +3 -1
  12. package/dist/config/additional-source/additional-source.module.js.map +1 -1
  13. package/dist/config/config-reload.indicator.d.ts +3 -2
  14. package/dist/config/config-reload.indicator.js +4 -3
  15. package/dist/config/config-reload.indicator.js.map +1 -1
  16. package/dist/config/config.abstract.d.ts +3 -2
  17. package/dist/config/config.abstract.js +3 -3
  18. package/dist/config/config.abstract.js.map +1 -1
  19. package/dist/config/config.module.d.ts +0 -81
  20. package/dist/config/config.module.js +26 -203
  21. package/dist/config/config.module.js.map +1 -1
  22. package/dist/config/context/config.context.d.ts +75 -0
  23. package/dist/config/context/config.context.js +159 -0
  24. package/dist/config/context/config.context.js.map +1 -0
  25. package/dist/config/context/module.d.ts +5 -0
  26. package/dist/config/context/module.js +26 -0
  27. package/dist/config/context/module.js.map +1 -0
  28. package/dist/config/exceptions/config-not-bootstrapped.exception.js.map +1 -1
  29. package/dist/config/exceptions/property.exception.d.ts +9 -2
  30. package/dist/config/exceptions/property.exception.js +4 -6
  31. package/dist/config/exceptions/property.exception.js.map +1 -1
  32. package/dist/config/index.d.ts +1 -0
  33. package/dist/config/index.js +3 -1
  34. package/dist/config/index.js.map +1 -1
  35. package/dist/config/metadata/config-metadata.provider.d.ts +21 -0
  36. package/dist/config/metadata/config-metadata.provider.js +37 -0
  37. package/dist/config/metadata/config-metadata.provider.js.map +1 -0
  38. package/dist/config/metadata/config-metadata.registry.d.ts +1 -9
  39. package/dist/config/metadata/config-metadata.registry.js +9 -28
  40. package/dist/config/metadata/config-metadata.registry.js.map +1 -1
  41. package/dist/config/metadata/constants.d.ts +3 -0
  42. package/dist/config/metadata/constants.js +7 -0
  43. package/dist/config/metadata/constants.js.map +1 -0
  44. package/dist/config/metadata/decorators/declare-property.decorator.js +2 -2
  45. package/dist/config/metadata/decorators/declare-property.decorator.js.map +1 -1
  46. package/dist/config/metadata/decorators/inject-property.decorator.d.ts +1 -1
  47. package/dist/config/metadata/decorators/inject-property.decorator.js +1 -1
  48. package/dist/config/metadata/exceptions/duplicate-property.exception.js.map +1 -1
  49. package/dist/config/metadata/exceptions/duplicate-section.exception.js.map +1 -1
  50. package/dist/config/metadata/exceptions/duplicate-source.exception.js.map +1 -1
  51. package/dist/config/metadata/types.d.ts +16 -0
  52. package/dist/config/metadata/types.js +3 -0
  53. package/dist/config/metadata/types.js.map +1 -0
  54. package/dist/config/reload/config-reload.events.d.ts +0 -2
  55. package/dist/config/reload/config-reload.events.js +0 -8
  56. package/dist/config/reload/config-reload.events.js.map +1 -1
  57. package/dist/config/sources/base/reloadable-config-source.abstract.d.ts +3 -2
  58. package/dist/config/sources/base/reloadable-config-source.abstract.js +3 -3
  59. package/dist/config/sources/base/reloadable-config-source.abstract.js.map +1 -1
  60. package/dist/config/sources/exceptions/config-source-di.exception.js.map +1 -1
  61. package/dist/config/sources/implementations/json-file.source.js.map +1 -1
  62. package/dist/config/sources/implementations/relodable-json-file.source.d.ts +3 -1
  63. package/dist/config/sources/implementations/relodable-json-file.source.js +6 -3
  64. package/dist/config/sources/implementations/relodable-json-file.source.js.map +1 -1
  65. package/dist/config/vars.class.d.ts +1 -1
  66. package/dist/config/vars.class.js +6 -6
  67. package/dist/config/vars.class.js.map +1 -1
  68. package/dist/context.aggregator.d.ts +21 -0
  69. package/dist/context.aggregator.js +53 -0
  70. package/dist/context.aggregator.js.map +1 -0
  71. package/dist/exceptions/base/platform-exception.absract.d.ts +2 -2
  72. package/dist/exceptions/base/platform-exception.absract.js +4 -1
  73. package/dist/exceptions/base/platform-exception.absract.js.map +1 -1
  74. package/dist/exceptions/implementations/bootstrap/double-init.exception.js.map +1 -1
  75. package/dist/exceptions/implementations/bootstrap/duplicate-protocol.exception.js.map +1 -1
  76. package/dist/exceptions/implementations/bootstrap/no-http.exception.js.map +1 -1
  77. package/dist/exceptions/implementations/bootstrap/no-init.exception.js.map +1 -1
  78. package/dist/exceptions/implementations/bootstrap/no-matching-transport.exception.js.map +1 -1
  79. package/dist/exceptions/implementations/bootstrap/sequence.exception.js.map +1 -1
  80. package/dist/exceptions/implementations/bootstrap/symbol-key-decoration.exception.js.map +1 -1
  81. package/dist/exceptions/implementations/bootstrap/unknown-bootstrap.exception.js.map +1 -1
  82. package/dist/exceptions/implementations/pipeline/authentication.exception.js.map +1 -1
  83. package/dist/exceptions/implementations/pipeline/conflict.exception.js.map +1 -1
  84. package/dist/exceptions/implementations/pipeline/duplicate-entity.exception.js.map +1 -1
  85. package/dist/exceptions/implementations/pipeline/input.exception.js.map +1 -1
  86. package/dist/exceptions/implementations/pipeline/internal.exception.js.map +1 -1
  87. package/dist/exceptions/implementations/pipeline/not-allowed.exception.js.map +1 -1
  88. package/dist/exceptions/implementations/pipeline/not-found.exception.js.map +1 -1
  89. package/dist/exceptions/implementations/pipeline/timeout.exception.js.map +1 -1
  90. package/dist/exceptions.handling/global-exceptions.config.js.map +1 -1
  91. package/dist/exceptions.handling/global-exceptions.filter.js.map +1 -1
  92. package/dist/exceptions.handling/global-exceptions.module.js.map +1 -1
  93. package/dist/health/autodoc/heath.autodoc-resolver.d.ts +5 -15
  94. package/dist/health/autodoc/heath.autodoc-resolver.js +11 -13
  95. package/dist/health/autodoc/heath.autodoc-resolver.js.map +1 -1
  96. package/dist/health/exceptions/health-check.exception.js.map +1 -1
  97. package/dist/health/health.const.d.ts +1 -0
  98. package/dist/health/health.const.js +2 -1
  99. package/dist/health/health.const.js.map +1 -1
  100. package/dist/health/health.module.js.map +1 -1
  101. package/dist/health/health.service.d.ts +6 -2
  102. package/dist/health/health.service.js +19 -6
  103. package/dist/health/health.service.js.map +1 -1
  104. package/dist/health/metadata/constants.d.ts +1 -0
  105. package/dist/health/metadata/constants.js +5 -0
  106. package/dist/health/metadata/constants.js.map +1 -0
  107. package/dist/health/metadata/indicator.decorator.js +2 -12
  108. package/dist/health/metadata/indicator.decorator.js.map +1 -1
  109. package/dist/health/metadata/indicators.registry.d.ts +0 -7
  110. package/dist/health/metadata/indicators.registry.js +6 -14
  111. package/dist/health/metadata/indicators.registry.js.map +1 -1
  112. package/dist/health/metadata/types.d.ts +7 -0
  113. package/dist/health/metadata/types.js +3 -0
  114. package/dist/health/metadata/types.js.map +1 -0
  115. package/dist/index.d.ts +8 -1
  116. package/dist/index.js +13 -7
  117. package/dist/index.js.map +1 -1
  118. package/dist/logging/decorators/inject-logger.decorator.js +5 -3
  119. package/dist/logging/decorators/inject-logger.decorator.js.map +1 -1
  120. package/dist/logging/global-logger-provider.generator.d.ts +7 -0
  121. package/dist/logging/global-logger-provider.generator.js +22 -0
  122. package/dist/logging/global-logger-provider.generator.js.map +1 -0
  123. package/dist/logging/index.d.ts +2 -0
  124. package/dist/logging/index.js +3 -0
  125. package/dist/logging/index.js.map +1 -1
  126. package/dist/logging/logging.config.js +1 -1
  127. package/dist/logging/logging.config.js.map +1 -1
  128. package/dist/logging/logging.module.d.ts +5 -3
  129. package/dist/logging/logging.module.js +25 -13
  130. package/dist/logging/logging.module.js.map +1 -1
  131. package/dist/logging/metadata/constants.d.ts +1 -0
  132. package/dist/logging/metadata/constants.js +5 -0
  133. package/dist/logging/metadata/constants.js.map +1 -0
  134. package/dist/logging/types.d.ts +6 -2
  135. package/dist/metrics/index.d.ts +1 -1
  136. package/dist/metrics/index.js +3 -3
  137. package/dist/metrics/index.js.map +1 -1
  138. package/dist/metrics/metadata/autodoc/metrics.autodoc-resolver.d.ts +6 -7
  139. package/dist/metrics/metadata/autodoc/metrics.autodoc-resolver.js +8 -11
  140. package/dist/metrics/metadata/autodoc/metrics.autodoc-resolver.js.map +1 -1
  141. package/dist/metrics/metadata/constants.d.ts +1 -0
  142. package/dist/metrics/metadata/constants.js +5 -0
  143. package/dist/metrics/metadata/constants.js.map +1 -0
  144. package/dist/metrics/metadata/index.d.ts +0 -1
  145. package/dist/metrics/metadata/index.js +0 -3
  146. package/dist/metrics/metadata/index.js.map +1 -1
  147. package/dist/metrics/metadata/metrics.registry.d.ts +0 -3
  148. package/dist/metrics/metadata/metrics.registry.js +9 -16
  149. package/dist/metrics/metadata/metrics.registry.js.map +1 -1
  150. package/dist/metrics/metadata/types.d.ts +2 -4
  151. package/dist/metrics/metric.storage.d.ts +8 -0
  152. package/dist/metrics/metric.storage.js +11 -0
  153. package/dist/metrics/metric.storage.js.map +1 -0
  154. package/dist/metrics/metrics.config.js.map +1 -1
  155. package/dist/metrics/metrics.module.d.ts +1 -1
  156. package/dist/metrics/metrics.module.js +27 -21
  157. package/dist/metrics/metrics.module.js.map +1 -1
  158. package/dist/platform.context.d.ts +5 -3
  159. package/dist/platform.context.js +20 -19
  160. package/dist/platform.context.js.map +1 -1
  161. package/dist/platform.module.d.ts +5 -4
  162. package/dist/platform.module.js +24 -13
  163. package/dist/platform.module.js.map +1 -1
  164. package/dist/rsdk-metadata/constants.d.ts +3 -0
  165. package/dist/rsdk-metadata/constants.js +5 -0
  166. package/dist/rsdk-metadata/constants.js.map +1 -0
  167. package/dist/rsdk-metadata/rsdk-metadata.global-module.d.ts +6 -0
  168. package/dist/rsdk-metadata/rsdk-metadata.global-module.js +31 -0
  169. package/dist/rsdk-metadata/rsdk-metadata.global-module.js.map +1 -0
  170. package/dist/tracing/services/instrumentation.service.js.map +1 -1
  171. package/dist/tracing/services/metadata.scanner.js.map +1 -1
  172. package/dist/tracing/tracing.config.js.map +1 -1
  173. package/dist/tracing/tracing.module.js.map +1 -1
  174. package/dist/transport/transport.module.d.ts +1 -0
  175. package/dist/transport/transport.module.js +8 -2
  176. package/dist/transport/transport.module.js.map +1 -1
  177. package/dist/types/context-aggregated.d.ts +8 -0
  178. package/dist/types/context-aggregated.js +3 -0
  179. package/dist/types/context-aggregated.js.map +1 -0
  180. package/dist/types/options.d.ts +6 -6
  181. package/dist/types/transports.d.ts +10 -3
  182. package/dist/types/transports.js.map +1 -1
  183. package/dist/unhandled-rejection.handler.d.ts +1 -0
  184. package/dist/unhandled-rejection.handler.js +24 -0
  185. package/dist/unhandled-rejection.handler.js.map +1 -0
  186. package/package.json +8 -7
  187. package/src/app/platform.app.ts +6 -32
  188. package/src/config/additional-source/additional-source.initializer.ts +34 -25
  189. package/src/config/additional-source/additional-source.module.ts +5 -2
  190. package/src/config/config-reload.indicator.ts +3 -3
  191. package/src/config/config.abstract.ts +2 -3
  192. package/src/config/config.module.ts +23 -225
  193. package/src/config/context/config.context.ts +209 -0
  194. package/src/config/context/module.ts +25 -0
  195. package/src/config/exceptions/property.exception.ts +11 -6
  196. package/src/config/index.ts +1 -0
  197. package/src/config/metadata/config-metadata.provider.ts +79 -0
  198. package/src/config/metadata/config-metadata.registry.ts +36 -41
  199. package/src/config/metadata/constants.ts +6 -0
  200. package/src/config/metadata/decorators/declare-property.decorator.ts +2 -2
  201. package/src/config/metadata/decorators/inject-property.decorator.ts +1 -1
  202. package/src/config/metadata/types.ts +22 -0
  203. package/src/config/reload/config-reload.events.ts +1 -13
  204. package/src/config/sources/base/reloadable-config-source.abstract.ts +2 -3
  205. package/src/config/sources/implementations/relodable-json-file.source.ts +6 -2
  206. package/src/config/vars.class.ts +9 -7
  207. package/src/context.aggregator.ts +62 -0
  208. package/src/exceptions/base/platform-exception.absract.ts +8 -3
  209. package/src/health/autodoc/heath.autodoc-resolver.ts +15 -18
  210. package/src/health/health.const.ts +2 -0
  211. package/src/health/health.service.ts +23 -4
  212. package/src/health/metadata/constants.ts +1 -0
  213. package/src/health/metadata/indicator.decorator.ts +2 -18
  214. package/src/health/metadata/indicators.registry.ts +16 -23
  215. package/src/health/metadata/types.ts +9 -0
  216. package/src/index.ts +29 -12
  217. package/src/logging/decorators/inject-logger.decorator.ts +5 -4
  218. package/src/logging/global-logger-provider.generator.ts +28 -0
  219. package/src/logging/index.ts +2 -0
  220. package/src/logging/logging.config.ts +2 -1
  221. package/src/logging/logging.module.ts +42 -16
  222. package/src/logging/metadata/constants.ts +1 -0
  223. package/src/logging/types.ts +6 -2
  224. package/src/metrics/index.ts +1 -1
  225. package/src/metrics/metadata/autodoc/metrics.autodoc-resolver.ts +13 -9
  226. package/src/metrics/metadata/constants.ts +1 -0
  227. package/src/metrics/metadata/index.ts +0 -1
  228. package/src/metrics/metadata/metrics.registry.ts +19 -23
  229. package/src/metrics/metadata/types.ts +2 -5
  230. package/src/metrics/metric.storage.ts +10 -0
  231. package/src/metrics/metrics.module.ts +32 -31
  232. package/src/platform.context.ts +32 -20
  233. package/src/platform.module.ts +18 -20
  234. package/src/rsdk-metadata/constants.ts +5 -0
  235. package/src/rsdk-metadata/rsdk-metadata.global-module.ts +34 -0
  236. package/src/transport/transport.module.ts +13 -1
  237. package/src/types/context-aggregated.ts +10 -0
  238. package/src/types/options.ts +6 -5
  239. package/src/types/transports.ts +15 -3
  240. package/src/unhandled-rejection.handler.ts +29 -0
  241. package/dist/health/index.d.ts +0 -7
  242. package/dist/health/index.js +0 -26
  243. package/dist/health/index.js.map +0 -1
  244. package/dist/health/metadata/index.d.ts +0 -2
  245. package/dist/health/metadata/index.js +0 -19
  246. package/dist/health/metadata/index.js.map +0 -1
  247. package/src/health/index.ts +0 -7
  248. package/src/health/metadata/index.ts +0 -2
@@ -1 +1 @@
1
- {"version":3,"file":"logging.config.js","sourceRoot":"","sources":["../../src/logging/logging.config.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAyC;AAEzC,sCAOmB;AACnB,yDAAmD;AAK5C,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,eAAM;IAM9B,KAAK,CAAY;IAMjB,MAAM,CAAY;CAC5B,CAAA;AAZC;IAAC,IAAA,iBAAQ,EAAC,WAAW,EAAE,IAAI,mBAAU,CAAC,kBAAQ,CAAC,EAAE;QAC/C,sEAAsE;QACtE,YAAY,EAAE,kBAAQ,CAAC,KAAK;QAC5B,WAAW,EAAE,WAAW;KACzB,CAAC;;4CACwB;AAE1B;IAAC,IAAA,iBAAQ,EAAC,YAAY,EAAE,IAAI,oBAAW,CAAC,IAAI,qBAAY,EAAE,CAAC,EAAE;QAC3D,YAAY,EAAE,EAAE;QAChB,WAAW,EAAE,WAAW;KACzB,CAAC;;6CACyB;AAZhB,aAAa;IAHzB,IAAA,sBAAa,EAAC;QACb,IAAI,EAAE,CAAC,wBAAS,CAAC,cAAc,EAAE,wBAAS,CAAC,OAAO,CAAC;KACpD,CAAC;GACW,aAAa,CAazB;AAbY,sCAAa"}
1
+ {"version":3,"file":"logging.config.js","sourceRoot":"","sources":["../../src/logging/logging.config.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAyC;AAEzC,sCAOmB;AACnB,yDAAmD;AAKnD,IAAa,aAAa,GAA1B,MAAa,aAAc,SAAQ,eAAM;IAM9B,KAAK,CAAY;IAOjB,MAAM,CAAY;CAC5B,CAAA;AARU;IALR,IAAA,iBAAQ,EAAC,WAAW,EAAE,IAAI,mBAAU,CAAC,kBAAQ,CAAC,EAAE;QAC/C,sEAAsE;QACtE,YAAY,EAAE,kBAAQ,CAAC,KAAK;QAC5B,WAAW,EAAE,WAAW;KACzB,CAAC;;4CACwB;AAOjB;IALR,IAAA,iBAAQ,EAAC,YAAY,EAAE,IAAI,oBAAW,CAAC,IAAI,qBAAY,EAAE,CAAC,EAAE;QAC3D,YAAY,EAAE,EAAE;QAChB,WAAW,EACT,gGAAgG;KACnG,CAAC;;6CACyB;AAbhB,aAAa;IAHzB,IAAA,sBAAa,EAAC;QACb,IAAI,EAAE,CAAC,wBAAS,CAAC,cAAc,EAAE,wBAAS,CAAC,OAAO,CAAC;KACpD,CAAC;GACW,aAAa,CAczB;AAdY,sCAAa"}
@@ -2,9 +2,11 @@ import type { DynamicModule } from '@nestjs/common';
2
2
  import type { Constructor } from '@rsdk/common';
3
3
  import { LoggingConfig } from './logging.config';
4
4
  export declare class LoggingModule {
5
- private static providers;
6
5
  private static logger;
7
6
  constructor(config: LoggingConfig);
8
- static register(context: string | Constructor, token: string): void;
9
- static forRoot(): DynamicModule;
7
+ /**
8
+ * Возвращает модуль которые нужны для логгирования в любом случае, например его конфиг
9
+ */
10
+ static pureRoot(): DynamicModule;
11
+ static register(target: object, context: string | Constructor, token: string): void;
10
12
  }
@@ -14,10 +14,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
14
14
  exports.LoggingModule = void 0;
15
15
  const common_1 = require("@nestjs/common");
16
16
  const logging_1 = require("@rsdk/logging");
17
+ const metadata_1 = require("@rsdk/metadata");
17
18
  const config_1 = require("../config");
19
+ const constants_1 = require("../rsdk-metadata/constants");
20
+ const constants_2 = require("./metadata/constants");
18
21
  const logging_config_1 = require("./logging.config");
19
22
  let LoggingModule = LoggingModule_1 = class LoggingModule {
20
- static providers = new Map();
21
23
  static logger = logging_1.LoggerFactory.create('LoggingModule');
22
24
  constructor(config) {
23
25
  const cfg = () => {
@@ -29,22 +31,32 @@ let LoggingModule = LoggingModule_1 = class LoggingModule {
29
31
  config.onUpdate(cfg);
30
32
  cfg();
31
33
  }
32
- static register(context, token) {
33
- this.providers.set(token, {
34
- provide: token,
35
- useValue: logging_1.LoggerFactory.create(context),
36
- });
37
- }
38
- static forRoot() {
39
- const providers = [...this.providers.values()];
34
+ /**
35
+ * Возвращает модуль которые нужны для логгирования в любом случае, например его конфиг
36
+ */
37
+ static pureRoot() {
40
38
  return {
41
- module: LoggingModule_1,
42
- imports: [config_1.PlatformConfigModule.forFeature(logging_config_1.LoggingConfig)],
43
- exports: providers,
44
- providers: providers,
45
39
  global: true,
40
+ imports: [config_1.PlatformConfigModule.forFeature(logging_config_1.LoggingConfig)],
41
+ module: LoggingModule_1,
42
+ exports: [config_1.PlatformConfigModule],
46
43
  };
47
44
  }
45
+ static register(target, context, token) {
46
+ metadata_1.RsdkMetadata.add(target, {
47
+ global: true,
48
+ imports: [config_1.PlatformConfigModule.forFeature(logging_config_1.LoggingConfig)],
49
+ module: LoggingModule_1,
50
+ providers: [
51
+ {
52
+ provide: token,
53
+ useValue: logging_1.LoggerFactory.create(context),
54
+ },
55
+ ],
56
+ exports: [token],
57
+ }, constants_1.PLATFORM_RAW_GLOBAL_METADATA_SCOPE);
58
+ metadata_1.RsdkMetadata.add(target, { context, token, target }, constants_2.LOGGING_RSDK_METADATA_SCOPE);
59
+ }
48
60
  };
49
61
  LoggingModule = LoggingModule_1 = __decorate([
50
62
  (0, common_1.Module)({}),
@@ -1 +1 @@
1
- {"version":3,"file":"logging.module.js","sourceRoot":"","sources":["../../src/logging/logging.module.ts"],"names":[],"mappings":";AAAA,8BAA8B;;;;;;;;;;;;;AAG9B,2CAAwC;AAExC,2CAA8C;AAE9C,sCAAiD;AAEjD,qDAAiD;AAG1C,IAAM,aAAa,qBAAnB,MAAM,aAAa;IAChB,MAAM,CAAC,SAAS,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC/C,MAAM,CAAC,MAAM,GAAG,uBAAa,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAE9D,YAAY,MAAqB;QAC/B,MAAM,GAAG,GAAG,GAAS,EAAE;YACrB,eAAa,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,MAAM,CAAC,KAAK,GAAG,EAAE;gBAChE,QAAQ,EAAE,MAAM,CAAC,KAAK;aACvB,CAAC,CAAC;YAEH,uBAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC,CAAC;QAEF,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACrB,GAAG,EAAE,CAAC;IACR,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,OAA6B,EAAE,KAAa;QAC1D,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE;YACxB,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,uBAAa,CAAC,MAAM,CAAC,OAAO,CAAC;SACxC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,OAAO;QACZ,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;QAE/C,OAAO;YACL,MAAM,EAAE,eAAa;YACrB,OAAO,EAAE,CAAC,6BAAoB,CAAC,UAAU,CAAC,8BAAa,CAAC,CAAC;YACzD,OAAO,EAAE,SAAS;YAClB,SAAS,EAAE,SAAS;YACpB,MAAM,EAAE,IAAI;SACb,CAAC;IACJ,CAAC;;AAlCU,aAAa;IADzB,IAAA,eAAM,EAAC,EAAE,CAAC;qCAKW,8BAAa;GAJtB,aAAa,CAmCzB;AAnCY,sCAAa"}
1
+ {"version":3,"file":"logging.module.js","sourceRoot":"","sources":["../../src/logging/logging.module.ts"],"names":[],"mappings":";AAAA,8BAA8B;;;;;;;;;;;;;AAG9B,2CAAwC;AAExC,2CAA8C;AAC9C,6CAA8C;AAE9C,sCAAiD;AAEjD,0DAAgF;AAEhF,oDAAmE;AACnE,qDAAiD;AAGjD,IACa,aAAa,qBAD1B,MACa,aAAa;IAChB,MAAM,CAAC,MAAM,GAAG,uBAAa,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAE9D,YAAY,MAAqB;QAC/B,MAAM,GAAG,GAAG,GAAS,EAAE;YACrB,eAAa,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,MAAM,CAAC,KAAK,GAAG,EAAE;gBAChE,QAAQ,EAAE,MAAM,CAAC,KAAK;aACvB,CAAC,CAAC;YAEH,uBAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC,CAAC;QAEF,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACrB,GAAG,EAAE,CAAC;IACR,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ;QACb,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,CAAC,6BAAoB,CAAC,UAAU,CAAC,8BAAa,CAAC,CAAC;YACzD,MAAM,EAAE,eAAa;YACrB,OAAO,EAAE,CAAC,6BAAoB,CAAC;SAChC,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,QAAQ,CACb,MAAc,EACd,OAA6B,EAC7B,KAAa;QAEb,uBAAY,CAAC,GAAG,CACd,MAAM,EACN;YACE,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,CAAC,6BAAoB,CAAC,UAAU,CAAC,8BAAa,CAAC,CAAC;YACzD,MAAM,EAAE,eAAa;YACrB,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,KAAK;oBACd,QAAQ,EAAE,uBAAa,CAAC,MAAM,CAAC,OAAO,CAAC;iBACxC;aACF;YACD,OAAO,EAAE,CAAC,KAAK,CAAC;SACjB,EACD,8CAAkC,CACnC,CAAC;QAEF,uBAAY,CAAC,GAAG,CACd,MAAM,EACN,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAC1B,uCAA2B,CAC5B,CAAC;IACJ,CAAC;;AAvDU,aAAa;IADzB,IAAA,eAAM,EAAC,EAAE,CAAC;qCAIW,8BAAa;GAHtB,aAAa,CAwDzB;AAxDY,sCAAa"}
@@ -0,0 +1 @@
1
+ export declare const LOGGING_RSDK_METADATA_SCOPE = "LOGGING_RSDK_METADATA_SCOPE";
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LOGGING_RSDK_METADATA_SCOPE = void 0;
4
+ exports.LOGGING_RSDK_METADATA_SCOPE = 'LOGGING_RSDK_METADATA_SCOPE';
5
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/logging/metadata/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,2BAA2B,GAAG,6BAA6B,CAAC"}
@@ -1,2 +1,6 @@
1
- import type { Provider } from '@nestjs/common';
2
- export type InstancesRegistry = Map<string, Provider>;
1
+ import type { Constructor } from '@rsdk/common';
2
+ export type LoggingRsdkMetadata = {
3
+ target: object;
4
+ context: string | Constructor;
5
+ token: string;
6
+ };
@@ -2,5 +2,5 @@ export { Counter, Gauge, Histogram, Summary, register } from 'prom-client';
2
2
  export * from './metrics.module';
3
3
  export * from './types';
4
4
  export * from './metadata';
5
- export { MetricAutodocResolver } from './metadata';
6
5
  export { MetricRsdkMetadata } from './metadata';
6
+ export { MetricStorage } from './metric.storage';
@@ -14,7 +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
- exports.MetricAutodocResolver = exports.register = exports.Summary = exports.Histogram = exports.Gauge = exports.Counter = void 0;
17
+ exports.MetricStorage = exports.register = exports.Summary = exports.Histogram = exports.Gauge = exports.Counter = void 0;
18
18
  var prom_client_1 = require("prom-client");
19
19
  Object.defineProperty(exports, "Counter", { enumerable: true, get: function () { return prom_client_1.Counter; } });
20
20
  Object.defineProperty(exports, "Gauge", { enumerable: true, get: function () { return prom_client_1.Gauge; } });
@@ -24,6 +24,6 @@ Object.defineProperty(exports, "register", { enumerable: true, get: function ()
24
24
  __exportStar(require("./metrics.module"), exports);
25
25
  __exportStar(require("./types"), exports);
26
26
  __exportStar(require("./metadata"), exports);
27
- var metadata_1 = require("./metadata");
28
- Object.defineProperty(exports, "MetricAutodocResolver", { enumerable: true, get: function () { return metadata_1.MetricAutodocResolver; } });
27
+ var metric_storage_1 = require("./metric.storage");
28
+ Object.defineProperty(exports, "MetricStorage", { enumerable: true, get: function () { return metric_storage_1.MetricStorage; } });
29
29
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/metrics/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,2CAA2E;AAAlE,sGAAA,OAAO,OAAA;AAAE,oGAAA,KAAK,OAAA;AAAE,wGAAA,SAAS,OAAA;AAAE,sGAAA,OAAO,OAAA;AAAE,uGAAA,QAAQ,OAAA;AACrD,mDAAiC;AACjC,0CAAwB;AACxB,6CAA2B;AAC3B,uCAAmD;AAA1C,iHAAA,qBAAqB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/metrics/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,2CAA2E;AAAlE,sGAAA,OAAO,OAAA;AAAE,oGAAA,KAAK,OAAA;AAAE,wGAAA,SAAS,OAAA;AAAE,sGAAA,OAAO,OAAA;AAAE,uGAAA,QAAQ,OAAA;AACrD,mDAAiC;AACjC,0CAAwB;AACxB,6CAA2B;AAE3B,mDAAiD;AAAxC,+GAAA,aAAa,OAAA"}
@@ -1,8 +1,7 @@
1
- import type { DocumentNode, DocumentResolver } from '@rsdk/autodoc-protocol';
2
- import type { RsdkMetadata } from '@rsdk/metadata';
3
- import type { MetricRsdkMetadata } from '../types';
4
- export declare class MetricAutodocResolver implements DocumentResolver {
5
- readonly rsdkMetadata: RsdkMetadata<MetricRsdkMetadata>;
6
- constructor(rsdkMetadata: RsdkMetadata<MetricRsdkMetadata>);
7
- getNode(): DocumentNode | null;
1
+ import type { DocumentNode, DocumentResolver } from '@rsdk/autodoc.protocol';
2
+ import type { RsdkMetadataProvider } from '@rsdk/metadata';
3
+ declare class MetricAutodocResolver implements DocumentResolver {
4
+ getNode(rsdkMetadataProvider: RsdkMetadataProvider): DocumentNode | null;
8
5
  }
6
+ export declare const metricsDocumentResolver: MetricAutodocResolver;
7
+ export {};
@@ -1,26 +1,23 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MetricAutodocResolver = void 0;
4
- const autodoc_protocol_1 = require("@rsdk/autodoc-protocol");
3
+ exports.metricsDocumentResolver = void 0;
4
+ const autodoc_protocol_1 = require("@rsdk/autodoc.protocol");
5
+ const constants_1 = require("../constants");
5
6
  class MetricAutodocResolver {
6
- rsdkMetadata;
7
- constructor(rsdkMetadata) {
8
- this.rsdkMetadata = rsdkMetadata;
9
- }
10
- getNode() {
11
- const resources = this.rsdkMetadata.get();
7
+ getNode(rsdkMetadataProvider) {
8
+ const resources = rsdkMetadataProvider.get(constants_1.METRIC_RSDK_METADATA_SCOPE);
12
9
  if (!resources) {
13
10
  return null;
14
11
  }
15
12
  return new autodoc_protocol_1.Composite(new autodoc_protocol_1.Table(resources.map(({ value }) => {
16
13
  return {
17
14
  name: value.metadata.name,
18
- description: value.metadata.description,
19
- type: value.type,
15
+ description: value.metadata.description ?? '-',
16
+ type: value.metadata.type,
20
17
  controllerName: value.metricController.name,
21
18
  };
22
19
  })), 'Metrics');
23
20
  }
24
21
  }
25
- exports.MetricAutodocResolver = MetricAutodocResolver;
22
+ exports.metricsDocumentResolver = new MetricAutodocResolver();
26
23
  //# sourceMappingURL=metrics.autodoc-resolver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.autodoc-resolver.js","sourceRoot":"","sources":["../../../../src/metrics/metadata/autodoc/metrics.autodoc-resolver.ts"],"names":[],"mappings":";;;AACA,6DAA0D;AAK1D,MAAa,qBAAqB;IACX;IAArB,YAAqB,YAA8C;QAA9C,iBAAY,GAAZ,YAAY,CAAkC;IAAG,CAAC;IAEvE,OAAO;QACL,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;QAC1C,IAAI,CAAC,SAAS,EAAE;YACd,OAAO,IAAI,CAAC;SACb;QAED,OAAO,IAAI,4BAAS,CAClB,IAAI,wBAAK,CACP,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;YAC1B,OAAO;gBACL,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI;gBACzB,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,WAAW;gBACvC,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,cAAc,EAAE,KAAK,CAAC,gBAAgB,CAAC,IAAI;aAC5C,CAAC;QACJ,CAAC,CAAC,CACH,EACD,SAAS,CACV,CAAC;IACJ,CAAC;CACF;AAvBD,sDAuBC"}
1
+ {"version":3,"file":"metrics.autodoc-resolver.js","sourceRoot":"","sources":["../../../../src/metrics/metadata/autodoc/metrics.autodoc-resolver.ts"],"names":[],"mappings":";;;AACA,6DAA0D;AAG1D,4CAA0D;AAG1D,MAAM,qBAAqB;IACzB,OAAO,CAAC,oBAA0C;QAChD,MAAM,SAAS,GAAG,oBAAoB,CAAC,GAAG,CACxC,sCAA0B,CAC3B,CAAC;QAEF,IAAI,CAAC,SAAS,EAAE;YACd,OAAO,IAAI,CAAC;SACb;QAED,OAAO,IAAI,4BAAS,CAClB,IAAI,wBAAK,CACP,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;YAC1B,OAAO;gBACL,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI;gBACzB,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,WAAW,IAAI,GAAG;gBAC9C,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI;gBACzB,cAAc,EAAE,KAAK,CAAC,gBAAgB,CAAC,IAAI;aAC5C,CAAC;QACJ,CAAC,CAAC,CACH,EACD,SAAS,CACV,CAAC;IACJ,CAAC;CACF;AAEY,QAAA,uBAAuB,GAAG,IAAI,qBAAqB,EAAE,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const METRIC_RSDK_METADATA_SCOPE = "METRIC_RSDK_METADATA_SCOPE";
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.METRIC_RSDK_METADATA_SCOPE = void 0;
4
+ exports.METRIC_RSDK_METADATA_SCOPE = 'METRIC_RSDK_METADATA_SCOPE';
5
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/metrics/metadata/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,0BAA0B,GAAG,4BAA4B,CAAC"}
@@ -1,4 +1,3 @@
1
1
  export * from './metrics.registry';
2
2
  export * from './decorators';
3
- export { MetricAutodocResolver } from './autodoc/metrics.autodoc-resolver';
4
3
  export { MetricRsdkMetadata } from './types';
@@ -14,9 +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
- exports.MetricAutodocResolver = void 0;
18
17
  __exportStar(require("./metrics.registry"), exports);
19
18
  __exportStar(require("./decorators"), exports);
20
- var metrics_autodoc_resolver_1 = require("./autodoc/metrics.autodoc-resolver");
21
- Object.defineProperty(exports, "MetricAutodocResolver", { enumerable: true, get: function () { return metrics_autodoc_resolver_1.MetricAutodocResolver; } });
22
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/metrics/metadata/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,+CAA6B;AAC7B,+EAA2E;AAAlE,iIAAA,qBAAqB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/metrics/metadata/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,+CAA6B"}
@@ -1,8 +1,5 @@
1
1
  import type { Constructor } from '@rsdk/common';
2
2
  import type { AnyMetric, MetricMetadata } from '../types';
3
3
  export declare class MetricsRegistry {
4
- private static metadata;
5
4
  static register(target: Constructor<AnyMetric>, metric: MetricMetadata): void;
6
- static getOne(ctor: Constructor<AnyMetric>): Readonly<MetricMetadata>;
7
- static getAll(): Readonly<Map<Constructor<AnyMetric>, MetricMetadata>>;
8
5
  }
@@ -1,25 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MetricsRegistry = void 0;
4
- const exceptions_1 = require("../../exceptions");
4
+ const autodoc_protocol_1 = require("@rsdk/autodoc.protocol");
5
+ const metadata_1 = require("@rsdk/metadata");
6
+ const metrics_autodoc_resolver_1 = require("./autodoc/metrics.autodoc-resolver");
7
+ const constants_1 = require("./constants");
5
8
  // separate class because we don't want to expose this
6
9
  class MetricsRegistry {
7
- static metadata = new Map();
8
10
  static register(target, metric) {
9
- if (this.metadata.has(target)) {
10
- throw new exceptions_1.DoubleInitException('Metric', target.name);
11
- }
12
- this.metadata.set(target, metric);
13
- }
14
- static getOne(ctor) {
15
- const metadata = this.metadata.get(ctor);
16
- if (!metadata) {
17
- throw new exceptions_1.NoInitException('Metric', ctor.name);
18
- }
19
- return metadata;
20
- }
21
- static getAll() {
22
- return this.metadata;
11
+ metadata_1.RsdkMetadata.add(target, {
12
+ metricController: target,
13
+ metadata: metric,
14
+ }, constants_1.METRIC_RSDK_METADATA_SCOPE);
15
+ autodoc_protocol_1.AutodocMetadata.defineResolver(target, constants_1.METRIC_RSDK_METADATA_SCOPE, metrics_autodoc_resolver_1.metricsDocumentResolver);
23
16
  }
24
17
  }
25
18
  exports.MetricsRegistry = MetricsRegistry;
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.registry.js","sourceRoot":"","sources":["../../../src/metrics/metadata/metrics.registry.ts"],"names":[],"mappings":";;;AAEA,iDAAwE;AAGxE,sDAAsD;AACtD,MAAa,eAAe;IAClB,MAAM,CAAC,QAAQ,GAAG,IAAI,GAAG,EAA0C,CAAC;IAE5E,MAAM,CAAC,QAAQ,CACb,MAA8B,EAC9B,MAAsB;QAEtB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YAC7B,MAAM,IAAI,gCAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;SACtD;QAED,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,IAA4B;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,QAAQ,EAAE;YACb,MAAM,IAAI,4BAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;SAChD;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,MAAM;QACX,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;;AAzBH,0CA4BC"}
1
+ {"version":3,"file":"metrics.registry.js","sourceRoot":"","sources":["../../../src/metrics/metadata/metrics.registry.ts"],"names":[],"mappings":";;;AAAA,6DAAyD;AAEzD,6CAA8C;AAI9C,iFAA6E;AAC7E,2CAAyD;AAGzD,sDAAsD;AACtD,MAAa,eAAe;IAC1B,MAAM,CAAC,QAAQ,CACb,MAA8B,EAC9B,MAAsB;QAEtB,uBAAY,CAAC,GAAG,CACd,MAAM,EACN;YACE,gBAAgB,EAAE,MAAM;YACxB,QAAQ,EAAE,MAAM;SACjB,EACD,sCAA0B,CAC3B,CAAC;QACF,kCAAe,CAAC,cAAc,CAC5B,MAAM,EACN,sCAA0B,EAC1B,kDAAuB,CACxB,CAAC;IACJ,CAAC;CACF;AAnBD,0CAmBC"}
@@ -1,8 +1,6 @@
1
1
  import type { Constructor } from '@rsdk/common';
2
- import type { AnyMetric, MetricMetadata, OmitType } from '../types';
3
- import type { MetricType } from './decorators';
2
+ import type { AnyMetric, MetricMetadata } from '../types';
4
3
  export type MetricRsdkMetadata = {
5
- type: MetricType;
6
- metadata: OmitType<MetricMetadata>;
4
+ metadata: MetricMetadata;
7
5
  metricController: Constructor<AnyMetric>;
8
6
  };
@@ -0,0 +1,8 @@
1
+ import type { Constructor } from '@rsdk/common';
2
+ import type { AnyMetric } from './types';
3
+ /**
4
+ * Класс для хранения уже проинициализрованных метрик
5
+ */
6
+ export declare class MetricStorage {
7
+ metrics: Map<Constructor<AnyMetric>, AnyMetric>;
8
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MetricStorage = void 0;
4
+ /**
5
+ * Класс для хранения уже проинициализрованных метрик
6
+ */
7
+ class MetricStorage {
8
+ metrics = new Map();
9
+ }
10
+ exports.MetricStorage = MetricStorage;
11
+ //# sourceMappingURL=metric.storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metric.storage.js","sourceRoot":"","sources":["../../src/metrics/metric.storage.ts"],"names":[],"mappings":";;;AAIA;;GAEG;AACH,MAAa,aAAa;IACxB,OAAO,GAAG,IAAI,GAAG,EAAqC,CAAC;CACxD;AAFD,sCAEC"}
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.config.js","sourceRoot":"","sources":["../../src/metrics/metrics.config.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sCAAwE;AACxE,yDAAmD;AAM5C,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,eAAM;IAK7C,SAAS,CAAW;IAMpB,cAAc,CAAW;CAC1B,CAAA;AAXC;IAAC,IAAA,iBAAQ,EAAC,iBAAiB,EAAE,IAAI,mBAAU,EAAE,EAAE;QAC7C,YAAY,EAAE,IAAI;QAClB,WAAW,EAAE,0CAA0C;KACxD,CAAC;;sDACkB;AAEpB;IAAC,IAAA,iBAAQ,EAAC,yBAAyB,EAAE,IAAI,mBAAU,EAAE,EAAE;QACrD,YAAY,EAAE,IAAI;QAClB,WAAW,EAAE,2DAA2D;KACzE,CAAC;;2DACuB;AAXd,mBAAmB;IAJ/B,IAAA,sBAAa,EAAC;QACb,IAAI,EAAE,uBAAuB;QAC7B,IAAI,EAAE,CAAC,wBAAS,CAAC,cAAc,EAAE,wBAAS,CAAC,MAAM,CAAC;KACnD,CAAC;GACW,mBAAmB,CAY/B;AAZY,kDAAmB"}
1
+ {"version":3,"file":"metrics.config.js","sourceRoot":"","sources":["../../src/metrics/metrics.config.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sCAAwE;AACxE,yDAAmD;AAMnD,IAAa,mBAAmB,GAAhC,MAAa,mBAAoB,SAAQ,eAAM;IAK7C,SAAS,CAAW;IAMpB,cAAc,CAAW;CAC1B,CAAA;AAPC;IAJC,IAAA,iBAAQ,EAAC,iBAAiB,EAAE,IAAI,mBAAU,EAAE,EAAE;QAC7C,YAAY,EAAE,IAAI;QAClB,WAAW,EAAE,0CAA0C;KACxD,CAAC;;sDACkB;AAMpB;IAJC,IAAA,iBAAQ,EAAC,yBAAyB,EAAE,IAAI,mBAAU,EAAE,EAAE;QACrD,YAAY,EAAE,IAAI;QAClB,WAAW,EAAE,2DAA2D;KACzE,CAAC;;2DACuB;AAXd,mBAAmB;IAJ/B,IAAA,sBAAa,EAAC;QACb,IAAI,EAAE,uBAAuB;QAC7B,IAAI,EAAE,CAAC,wBAAS,CAAC,cAAc,EAAE,wBAAS,CAAC,MAAM,CAAC;KACnD,CAAC;GACW,mBAAmB,CAY/B;AAZY,kDAAmB"}
@@ -13,7 +13,6 @@ import type { AnyMetric, MetricsModuleOptions } from './types';
13
13
  export declare class MetricsModule implements OnApplicationBootstrap {
14
14
  private readonly config;
15
15
  private static isBootstrapped;
16
- private static metrics;
17
16
  constructor(config: MetricsModuleConfig);
18
17
  /**
19
18
  * Adds metrics controller provided as options
@@ -24,6 +23,7 @@ export declare class MetricsModule implements OnApplicationBootstrap {
24
23
  /**
25
24
  * Use this to inject specified metric into target module
26
25
  *
26
+ * @param first metric classe
27
27
  * @param other Not empty List of metric classes
28
28
  * @returns dynamic module
29
29
  */
@@ -15,11 +15,11 @@ var MetricsModule_1;
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
16
  exports.MetricsModule = void 0;
17
17
  const common_1 = require("@nestjs/common");
18
- const autodoc_protocol_1 = require("@rsdk/autodoc-protocol");
19
18
  const metadata_1 = require("@rsdk/metadata");
20
19
  const prom_client_1 = __importDefault(require("prom-client"));
21
20
  const config_1 = require("../config");
22
- const metadata_2 = require("./metadata");
21
+ const constants_1 = require("./metadata/constants");
22
+ const metric_storage_1 = require("./metric.storage");
23
23
  const metrics_config_1 = require("./metrics.config");
24
24
  /**
25
25
  * Metrics module exposes metrics interface (depending on transport)
@@ -32,7 +32,13 @@ const metrics_config_1 = require("./metrics.config");
32
32
  let MetricsModule = MetricsModule_1 = class MetricsModule {
33
33
  config;
34
34
  static isBootstrapped = false;
35
- static metrics = new Map();
35
+ // TODO По идее от этого нужно избавиться, но тут нужно будет делать @InjectMetric(SomeMetric) там где сейчас используется someMetric: SomeMetric
36
+ // Но стоит понимать что смысла в этом нет от слова совсем
37
+ // Так как даже если там окажутся чужие метрики, но приложение не будет их использовать, то для приложения ничего не произойдёт
38
+ // Но даже если представить что существует коллизия с использованием одного и того же инстанса, то во-первых
39
+ // Это дыра в архитектуре потому что мы ссылаемся на один и тот же класс, то рассчитываем получить один и тот же инстанс, а так как это метрика то она должна быть общая на процесс, иначе не имеет смысла
40
+ // Во-вторых если запускаем n > 1 приложения в одном и том же процессе, то снимать метрики с этих приложений как минимум... странно?
41
+ // private static metrics = new Map<Constructor<AnyMetric>, Provider>();
36
42
  constructor(config) {
37
43
  this.config = config;
38
44
  }
@@ -43,39 +49,39 @@ let MetricsModule = MetricsModule_1 = class MetricsModule {
43
49
  */
44
50
  static forRoot(options) {
45
51
  return {
52
+ global: true,
46
53
  controllers: [...options.controllers],
47
54
  module: MetricsModule_1,
55
+ providers: [
56
+ {
57
+ provide: metric_storage_1.MetricStorage,
58
+ useValue: new metric_storage_1.MetricStorage(),
59
+ },
60
+ ],
61
+ exports: [metric_storage_1.MetricStorage],
48
62
  };
49
63
  }
50
64
  /**
51
65
  * Use this to inject specified metric into target module
52
66
  *
67
+ * @param first metric classe
53
68
  * @param other Not empty List of metric classes
54
69
  * @returns dynamic module
55
70
  */
56
71
  static forFeature(first, ...other) {
57
72
  const providers = [];
58
73
  for (const ctor of [first, ...other]) {
59
- const existing = this.metrics.get(ctor);
60
- if (existing) {
61
- providers.push(existing);
62
- continue;
63
- }
64
- const metadata = metadata_2.MetricsRegistry.getOne(ctor);
65
- const provider = {
74
+ const [resource] = metadata_1.RsdkMetadata.get(ctor, constants_1.METRIC_RSDK_METADATA_SCOPE) ?? [];
75
+ const metadata = resource.value.metadata;
76
+ providers.push({
77
+ inject: [metric_storage_1.MetricStorage],
66
78
  provide: ctor,
67
- useValue: new ctor(metadata),
68
- };
69
- const rsdkMetadata = new metadata_1.RsdkMetadata(provider, 'metrics');
70
- rsdkMetadata.add({
71
- type: metadata.type,
72
- metricController: ctor,
73
- metadata,
79
+ useFactory: (metricStorage) => {
80
+ const existing = metricStorage.metrics.get(ctor) ?? new ctor(metadata);
81
+ metricStorage.metrics.set(ctor, existing);
82
+ return existing;
83
+ },
74
84
  });
75
- const autodocMetadata = new autodoc_protocol_1.AutodocMetadata(rsdkMetadata);
76
- const metricsDocumentResolver = new metadata_2.MetricAutodocResolver(rsdkMetadata);
77
- autodocMetadata.defineResolver(metricsDocumentResolver);
78
- providers.push(provider);
79
85
  }
80
86
  return {
81
87
  module: MetricsModule_1,
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.module.js","sourceRoot":"","sources":["../../src/metrics/metrics.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAKA,2CAAwC;AACxC,6DAAyD;AAEzD,6CAA8C;AAC9C,8DAAiC;AAEjC,sCAAiD;AAGjD,yCAAoE;AACpE,qDAAuD;AAGvD;;;;;;;GAOG;AAII,IAAM,aAAa,qBAAnB,MAAM,aAAa;IAIK;IAHrB,MAAM,CAAC,cAAc,GAAG,KAAK,CAAC;IAC9B,MAAM,CAAC,OAAO,GAAG,IAAI,GAAG,EAAoC,CAAC;IAErE,YAA6B,MAA2B;QAA3B,WAAM,GAAN,MAAM,CAAqB;IAAG,CAAC;IAE5D;;;;OAIG;IACH,MAAM,CAAC,OAAO,CAAC,OAA6B;QAC1C,OAAO;YACL,WAAW,EAAE,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;YACrC,MAAM,EAAE,eAAa;SACtB,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,UAAU,CACf,KAA6B,EAC7B,GAAG,KAA+B;QAElC,MAAM,SAAS,GAAe,EAAE,CAAC;QAEjC,KAAK,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,EAAE;YACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAExC,IAAI,QAAQ,EAAE;gBACZ,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAEzB,SAAS;aACV;YAED,MAAM,QAAQ,GAAG,0BAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAE9C,MAAM,QAAQ,GAAG;gBACf,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC;aAC7B,CAAC;YAEF,MAAM,YAAY,GAAG,IAAI,uBAAY,CACnC,QAAQ,EACR,SAAS,CACV,CAAC;YAEF,YAAY,CAAC,GAAG,CAAC;gBACf,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,gBAAgB,EAAE,IAAI;gBACtB,QAAQ;aACT,CAAC,CAAC;YAEH,MAAM,eAAe,GAAG,IAAI,kCAAe,CAAC,YAAY,CAAC,CAAC;YAE1D,MAAM,uBAAuB,GAAG,IAAI,gCAAqB,CAAC,YAAY,CAAC,CAAC;YAExE,eAAe,CAAC,cAAc,CAAC,uBAAuB,CAAC,CAAC;YACxD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC1B;QAED,OAAO;YACL,MAAM,EAAE,eAAa;YAErB,OAAO,EAAE,SAAS;YAClB,SAAS;SACV,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,sBAAsB;QACpB;;;WAGG;QACH,IAAI,eAAa,CAAC,cAAc,EAAE;YAChC,OAAO;SACR;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE;YAC9B,qBAAM,CAAC,qBAAqB,EAAE,CAAC;SAChC;QAED,eAAa,CAAC,cAAc,GAAG,IAAI,CAAC;IACtC,CAAC;;AA1FU,aAAa;IAHzB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,6BAAoB,CAAC,UAAU,CAAC,oCAAmB,CAAC,CAAC;KAChE,CAAC;qCAKqC,oCAAmB;GAJ7C,aAAa,CA2FzB;AA3FY,sCAAa"}
1
+ {"version":3,"file":"metrics.module.js","sourceRoot":"","sources":["../../src/metrics/metrics.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAKA,2CAAwC;AAExC,6CAA8C;AAC9C,8DAAiC;AAEjC,sCAAiD;AAEjD,oDAAkE;AAElE,qDAAiD;AACjD,qDAAuD;AAGvD;;;;;;;GAOG;AACH,IAGa,aAAa,qBAH1B,MAGa,aAAa;IAUK;IATrB,MAAM,CAAC,cAAc,GAAG,KAAK,CAAC;IACtC,iJAAiJ;IACjJ,0DAA0D;IAC1D,+HAA+H;IAC/H,4GAA4G;IAC5G,0MAA0M;IAC1M,oIAAoI;IACpI,wEAAwE;IAExE,YAA6B,MAA2B;QAA3B,WAAM,GAAN,MAAM,CAAqB;IAAG,CAAC;IAE5D;;;;OAIG;IACH,MAAM,CAAC,OAAO,CAAC,OAA6B;QAC1C,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;YACrC,MAAM,EAAE,eAAa;YACrB,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,8BAAa;oBACtB,QAAQ,EAAE,IAAI,8BAAa,EAAE;iBAC9B;aACF;YACD,OAAO,EAAE,CAAC,8BAAa,CAAC;SACzB,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,UAAU,CACf,KAA6B,EAC7B,GAAG,KAA+B;QAElC,MAAM,SAAS,GAAe,EAAE,CAAC;QAEjC,KAAK,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,EAAE;YACpC,MAAM,CAAC,QAAQ,CAAC,GACd,uBAAY,CAAC,GAAG,CACd,IAAI,EACJ,sCAA0B,CAC3B,IAAI,EAAE,CAAC;YAEV,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;YAEzC,SAAS,CAAC,IAAI,CAAC;gBACb,MAAM,EAAE,CAAC,8BAAa,CAAC;gBACvB,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,CAAC,aAA4B,EAAE,EAAE;oBAC3C,MAAM,QAAQ,GACZ,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAExD,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;oBAC1C,OAAO,QAAQ,CAAC;gBAClB,CAAC;aACF,CAAC,CAAC;SACJ;QAED,OAAO;YACL,MAAM,EAAE,eAAa;YACrB,OAAO,EAAE,SAAS;YAClB,SAAS;SACV,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,sBAAsB;QACpB;;;WAGG;QACH,IAAI,eAAa,CAAC,cAAc,EAAE;YAChC,OAAO;SACR;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE;YAC9B,qBAAM,CAAC,qBAAqB,EAAE,CAAC;SAChC;QAED,eAAa,CAAC,cAAc,GAAG,IAAI,CAAC;IACtC,CAAC;;AA3FU,aAAa;IAHzB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,6BAAoB,CAAC,UAAU,CAAC,oCAAmB,CAAC,CAAC;KAChE,CAAC;qCAWqC,oCAAmB;GAV7C,aAAa,CA4FzB;AA5FY,sCAAa"}
@@ -2,6 +2,7 @@ import type { DynamicModule } from '@nestjs/common';
2
2
  import type { INestApplication } from '@nestjs/common/interfaces';
3
3
  import type { NestApplicationOptions } from '@nestjs/common/interfaces/nest-application-options.interface';
4
4
  import type { AbstractHttpAdapter } from '@nestjs/core';
5
+ import type { RsdkMetadataProvider } from '@rsdk/metadata';
5
6
  import type { PlatformAppMetadata, PlatformExtendedOptions, PlatformOptions } from './types';
6
7
  /**
7
8
  * Агрегат для хранения опций приложения, а также методы для конфигурации и запуска приложения
@@ -12,8 +13,8 @@ export declare class PlatformContext {
12
13
  private microservices;
13
14
  private readonly httpTransport;
14
15
  private readonly httpAdapter;
16
+ private aggregator;
15
17
  private _extendedOptions;
16
- private _root;
17
18
  /**
18
19
  * Создаёт контекст проводя базовые проверки
19
20
  * - все транспорты совместимы между собой
@@ -23,15 +24,16 @@ export declare class PlatformContext {
23
24
  * @param options
24
25
  */
25
26
  constructor(options: PlatformOptions);
26
- get root(): DynamicModule;
27
27
  get extendedOptions(): PlatformExtendedOptions;
28
28
  private static assertPluginCompatability;
29
29
  private static assertTransportCompatability;
30
+ getRsdkMetadataProvider(): Promise<RsdkMetadataProvider>;
31
+ getRoot(): Promise<DynamicModule>;
30
32
  /**
31
33
  * Get all important information about PlatformApp instance
32
34
  * @returns Readonly metadata
33
35
  */
34
- getMetadata(): Readonly<PlatformAppMetadata>;
36
+ getMetadata(): Promise<Readonly<PlatformAppMetadata>>;
35
37
  /**
36
38
  * Сделано прежде всего для совместимости с тестами.
37
39
  * Производит все необходимые проверки и инициализации транспортов, не запускает приложение
@@ -3,12 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PlatformContext = void 0;
4
4
  const logging_1 = require("@rsdk/logging");
5
5
  const lodash_1 = require("lodash");
6
+ const config_metadata_provider_1 = require("./config/metadata/config-metadata.provider");
6
7
  const manifest_1 = require("./manifest/manifest");
7
- const config_1 = require("./config");
8
+ const context_aggregator_1 = require("./context.aggregator");
8
9
  const exceptions_1 = require("./exceptions");
9
10
  const logging_2 = require("./logging");
10
11
  const noop_http_adapter_1 = require("./noop.http-adapter");
11
- const platform_module_1 = require("./platform.module");
12
12
  const types_1 = require("./types");
13
13
  /**
14
14
  * Агрегат для хранения опций приложения, а также методы для конфигурации и запуска приложения
@@ -19,8 +19,8 @@ class PlatformContext {
19
19
  microservices;
20
20
  httpTransport;
21
21
  httpAdapter;
22
+ aggregator;
22
23
  _extendedOptions;
23
- _root;
24
24
  /**
25
25
  * Создаёт контекст проводя базовые проверки
26
26
  * - все транспорты совместимы между собой
@@ -36,17 +36,7 @@ class PlatformContext {
36
36
  this.httpTransport = options.transports?.find?.(types_1.isHttpTransport);
37
37
  this.httpAdapter =
38
38
  this.httpTransport?.getAdapter() ?? new noop_http_adapter_1.NoopHttpAdapter();
39
- }
40
- get root() {
41
- if (this._root) {
42
- return this._root;
43
- }
44
- config_1.PlatformConfigModule.bootstrap({
45
- ...(this.extendedOptions.config ?? {}),
46
- appName: this.extendedOptions.name,
47
- });
48
- this._root = platform_module_1.PlatformModule.forRoot(this.extendedOptions);
49
- return this._root;
39
+ this.aggregator = new context_aggregator_1.ContextAggregator(this);
50
40
  }
51
41
  get extendedOptions() {
52
42
  if (this._extendedOptions) {
@@ -85,12 +75,21 @@ class PlatformContext {
85
75
  }
86
76
  }
87
77
  }
78
+ async getRsdkMetadataProvider() {
79
+ const aggregated = await this.aggregator.getAggregated();
80
+ return aggregated.rsdkMetadataProvider;
81
+ }
82
+ async getRoot() {
83
+ const { root } = await this.aggregator.getAggregated();
84
+ return root;
85
+ }
88
86
  /**
89
87
  * Get all important information about PlatformApp instance
90
88
  * @returns Readonly metadata
91
89
  */
92
- getMetadata() {
93
- const confMetadata = config_1.ConfigMetadataRegistry.getMetadata();
90
+ async getMetadata() {
91
+ const rsdkMetadataProvider = await this.getRsdkMetadataProvider();
92
+ const confMetadata = new config_metadata_provider_1.ConfigMetadataProvider(rsdkMetadataProvider).getMetadata();
94
93
  const options = this.extendedOptions;
95
94
  const protocols = (options?.transports ?? []).map((x) => x.getProtocol());
96
95
  return {
@@ -114,7 +113,8 @@ class PlatformContext {
114
113
  * Производит все необходимые проверки и инициализации транспортов, не запускает приложение
115
114
  */
116
115
  async configureApp(app) {
117
- const awaiter = this.httpTransport?.configure(app);
116
+ const configContext = await this.aggregator.getConfigContext();
117
+ const awaiter = this.httpTransport?.configure(app, configContext);
118
118
  if (awaiter instanceof Promise) {
119
119
  await awaiter;
120
120
  }
@@ -122,7 +122,7 @@ class PlatformContext {
122
122
  this.microservices = new Map();
123
123
  const transports = this.options.transports ?? [];
124
124
  for (const transport of transports.filter(types_1.isMicroserviceTransport)) {
125
- transport.init();
125
+ transport.init(configContext);
126
126
  const options = transport.createMicroserviceOptions();
127
127
  const microservice = app.connectMicroservice(options, {
128
128
  inheritAppConfig: true,
@@ -136,9 +136,10 @@ class PlatformContext {
136
136
  */
137
137
  async runConfiguredApplication(app) {
138
138
  try {
139
+ const configContext = await this.aggregator.getConfigContext();
139
140
  this.logger.info('Mapping controllers...');
140
141
  if (this.httpTransport) {
141
- const { host, port } = this.httpTransport.createHttpOptions();
142
+ const { host, port } = this.httpTransport.createHttpOptions(configContext);
142
143
  await app.listen(port, host, () => this.logger.info(`Http server started on ${host}:${port}`));
143
144
  }
144
145
  else {