@interopio/otel 0.0.11 → 0.0.13

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 (251) hide show
  1. package/README.md +9 -1
  2. package/dist/builder.d.ts +19 -0
  3. package/dist/builder.js +75 -0
  4. package/dist/builder.js.map +1 -0
  5. package/dist/container.d.ts +14 -0
  6. package/dist/container.js +51 -0
  7. package/dist/container.js.map +1 -0
  8. package/dist/index.d.ts +13 -0
  9. package/dist/index.js +27 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/logger/log4jsWrapper.d.ts +13 -0
  12. package/dist/logger/log4jsWrapper.js +54 -0
  13. package/dist/logger/log4jsWrapper.js.map +1 -0
  14. package/dist/logger/null.d.ts +9 -0
  15. package/dist/logger/null.js +25 -0
  16. package/dist/logger/null.js.map +1 -0
  17. package/dist/logger/types.d.ts +17 -0
  18. package/dist/logger/types.js +3 -0
  19. package/dist/logger/types.js.map +1 -0
  20. package/dist/logs/types.d.ts +6 -0
  21. package/dist/logs/types.js +3 -0
  22. package/dist/logs/types.js.map +1 -0
  23. package/dist/metrics/builder.d.ts +20 -0
  24. package/dist/metrics/builder.js +63 -0
  25. package/dist/metrics/builder.js.map +1 -0
  26. package/dist/metrics/dependencies/builder.d.ts +29 -0
  27. package/dist/metrics/dependencies/builder.js +87 -0
  28. package/dist/metrics/dependencies/builder.js.map +1 -0
  29. package/dist/metrics/dependencies/types.d.ts +91 -0
  30. package/dist/metrics/dependencies/types.js +3 -0
  31. package/dist/metrics/dependencies/types.js.map +1 -0
  32. package/dist/metrics/factory/builder.d.ts +31 -0
  33. package/dist/metrics/factory/builder.js +198 -0
  34. package/dist/metrics/factory/builder.js.map +1 -0
  35. package/dist/metrics/factory/factory.d.ts +10 -0
  36. package/dist/metrics/factory/factory.js +33 -0
  37. package/dist/metrics/factory/factory.js.map +1 -0
  38. package/dist/metrics/factory/types.d.ts +5 -0
  39. package/dist/metrics/factory/types.js +3 -0
  40. package/dist/metrics/factory/types.js.map +1 -0
  41. package/dist/metrics/manager.d.ts +23 -0
  42. package/dist/metrics/manager.js +120 -0
  43. package/dist/metrics/manager.js.map +1 -0
  44. package/dist/metrics/meter/lazyProvider.d.ts +11 -0
  45. package/dist/metrics/meter/lazyProvider.js +23 -0
  46. package/dist/metrics/meter/lazyProvider.js.map +1 -0
  47. package/dist/metrics/meter/providerFactory.d.ts +6 -0
  48. package/dist/metrics/meter/providerFactory.js +34 -0
  49. package/dist/metrics/meter/providerFactory.js.map +1 -0
  50. package/dist/metrics/meter/types.d.ts +14 -0
  51. package/dist/metrics/meter/types.js +3 -0
  52. package/dist/metrics/meter/types.js.map +1 -0
  53. package/dist/metrics/metrics/application/count.d.ts +21 -0
  54. package/dist/metrics/metrics/application/count.js +62 -0
  55. package/dist/metrics/metrics/application/count.js.map +1 -0
  56. package/dist/metrics/metrics/application/cpu.d.ts +12 -0
  57. package/dist/metrics/metrics/application/cpu.js +40 -0
  58. package/dist/metrics/metrics/application/cpu.js.map +1 -0
  59. package/dist/metrics/metrics/application/crash.d.ts +18 -0
  60. package/dist/metrics/metrics/application/crash.js +46 -0
  61. package/dist/metrics/metrics/application/crash.js.map +1 -0
  62. package/dist/metrics/metrics/application/duration.d.ts +7 -0
  63. package/dist/metrics/metrics/application/duration.js +19 -0
  64. package/dist/metrics/metrics/application/duration.js.map +1 -0
  65. package/dist/metrics/metrics/application/durationBase.d.ts +22 -0
  66. package/dist/metrics/metrics/application/durationBase.js +97 -0
  67. package/dist/metrics/metrics/application/durationBase.js.map +1 -0
  68. package/dist/metrics/metrics/application/error.d.ts +18 -0
  69. package/dist/metrics/metrics/application/error.js +46 -0
  70. package/dist/metrics/metrics/application/error.js.map +1 -0
  71. package/dist/metrics/metrics/application/memory.d.ts +13 -0
  72. package/dist/metrics/metrics/application/memory.js +41 -0
  73. package/dist/metrics/metrics/application/memory.js.map +1 -0
  74. package/dist/metrics/metrics/application/started.d.ts +18 -0
  75. package/dist/metrics/metrics/application/started.js +46 -0
  76. package/dist/metrics/metrics/application/started.js.map +1 -0
  77. package/dist/metrics/metrics/application/startup.d.ts +18 -0
  78. package/dist/metrics/metrics/application/startup.js +46 -0
  79. package/dist/metrics/metrics/application/startup.js.map +1 -0
  80. package/dist/metrics/metrics/application/stopped.d.ts +18 -0
  81. package/dist/metrics/metrics/application/stopped.js +46 -0
  82. package/dist/metrics/metrics/application/stopped.js.map +1 -0
  83. package/dist/metrics/metrics/base/base.d.ts +17 -0
  84. package/dist/metrics/metrics/base/base.js +71 -0
  85. package/dist/metrics/metrics/base/base.js.map +1 -0
  86. package/dist/metrics/metrics/base/gauge.d.ts +18 -0
  87. package/dist/metrics/metrics/base/gauge.js +61 -0
  88. package/dist/metrics/metrics/base/gauge.js.map +1 -0
  89. package/dist/metrics/metrics/base/null.d.ts +10 -0
  90. package/dist/metrics/metrics/base/null.js +22 -0
  91. package/dist/metrics/metrics/base/null.js.map +1 -0
  92. package/dist/metrics/metrics/base/observable.d.ts +20 -0
  93. package/dist/metrics/metrics/base/observable.js +69 -0
  94. package/dist/metrics/metrics/base/observable.js.map +1 -0
  95. package/dist/metrics/metrics/base/types.d.ts +31 -0
  96. package/dist/metrics/metrics/base/types.js +3 -0
  97. package/dist/metrics/metrics/base/types.js.map +1 -0
  98. package/dist/metrics/metrics/layout/startup.d.ts +18 -0
  99. package/dist/metrics/metrics/layout/startup.js +46 -0
  100. package/dist/metrics/metrics/layout/startup.js.map +1 -0
  101. package/dist/metrics/metrics/platform/error.d.ts +18 -0
  102. package/dist/metrics/metrics/platform/error.js +46 -0
  103. package/dist/metrics/metrics/platform/error.js.map +1 -0
  104. package/dist/metrics/metrics/platform/startup.d.ts +18 -0
  105. package/dist/metrics/metrics/platform/startup.js +58 -0
  106. package/dist/metrics/metrics/platform/startup.js.map +1 -0
  107. package/dist/metrics/metrics/system/cpu.d.ts +14 -0
  108. package/dist/metrics/metrics/system/cpu.js +46 -0
  109. package/dist/metrics/metrics/system/cpu.js.map +1 -0
  110. package/dist/metrics/metrics/system/memory.d.ts +14 -0
  111. package/dist/metrics/metrics/system/memory.js +47 -0
  112. package/dist/metrics/metrics/system/memory.js.map +1 -0
  113. package/dist/metrics/metrics/workspace/count.d.ts +21 -0
  114. package/dist/metrics/metrics/workspace/count.js +62 -0
  115. package/dist/metrics/metrics/workspace/count.js.map +1 -0
  116. package/dist/metrics/metrics/workspace/startup.d.ts +9 -0
  117. package/dist/metrics/metrics/workspace/startup.js +12 -0
  118. package/dist/metrics/metrics/workspace/startup.js.map +1 -0
  119. package/dist/metrics/metrics/workspace/stopped.d.ts +18 -0
  120. package/dist/metrics/metrics/workspace/stopped.js +46 -0
  121. package/dist/metrics/metrics/workspace/stopped.js.map +1 -0
  122. package/dist/metrics/settings/builder.d.ts +24 -0
  123. package/dist/metrics/settings/builder.js +115 -0
  124. package/dist/metrics/settings/builder.js.map +1 -0
  125. package/dist/metrics/settings/default.d.ts +30 -0
  126. package/dist/metrics/settings/default.js +121 -0
  127. package/dist/metrics/settings/default.js.map +1 -0
  128. package/dist/metrics/settings/types.d.ts +14 -0
  129. package/dist/metrics/settings/types.js +3 -0
  130. package/dist/metrics/settings/types.js.map +1 -0
  131. package/dist/metrics/types.d.ts +16 -0
  132. package/dist/metrics/types.js +3 -0
  133. package/dist/metrics/types.js.map +1 -0
  134. package/dist/metrics/utils/nullMetricsManager.d.ts +6 -0
  135. package/dist/metrics/utils/nullMetricsManager.js +11 -0
  136. package/dist/metrics/utils/nullMetricsManager.js.map +1 -0
  137. package/dist/metrics/utils/nullPerfProvider.d.ts +7 -0
  138. package/dist/metrics/utils/nullPerfProvider.js +19 -0
  139. package/dist/metrics/utils/nullPerfProvider.js.map +1 -0
  140. package/dist/traces/builder.d.ts +15 -0
  141. package/dist/traces/builder.js +39 -0
  142. package/dist/traces/builder.js.map +1 -0
  143. package/dist/traces/ioInsightsSampler.d.ts +16 -0
  144. package/dist/traces/ioInsightsSampler.js +123 -0
  145. package/dist/traces/ioInsightsSampler.js.map +1 -0
  146. package/dist/traces/manager.d.ts +19 -0
  147. package/dist/traces/manager.js +151 -0
  148. package/dist/traces/manager.js.map +1 -0
  149. package/dist/traces/nullTracesManager.d.ts +6 -0
  150. package/dist/traces/nullTracesManager.js +23 -0
  151. package/dist/traces/nullTracesManager.js.map +1 -0
  152. package/dist/traces/tracingState.d.ts +28 -0
  153. package/dist/traces/tracingState.js +103 -0
  154. package/dist/traces/tracingState.js.map +1 -0
  155. package/dist/traces/types.d.ts +96 -0
  156. package/dist/traces/types.js +14 -0
  157. package/dist/traces/types.js.map +1 -0
  158. package/dist/traces/utils/index.d.ts +13 -0
  159. package/dist/traces/utils/index.js +119 -0
  160. package/dist/traces/utils/index.js.map +1 -0
  161. package/dist/types.d.ts +20 -0
  162. package/dist/types.js +3 -0
  163. package/dist/types.js.map +1 -0
  164. package/dist/utils/nullManager.d.ts +7 -0
  165. package/dist/utils/nullManager.js +21 -0
  166. package/dist/utils/nullManager.js.map +1 -0
  167. package/dist/validation/builder.d.ts +4 -0
  168. package/dist/validation/builder.js +12 -0
  169. package/dist/validation/builder.js.map +1 -0
  170. package/dist/validation/container.d.ts +4 -0
  171. package/dist/validation/container.js +14 -0
  172. package/dist/validation/container.js.map +1 -0
  173. package/dist/validation/metrics/application/count.d.ts +7 -0
  174. package/dist/validation/metrics/application/count.js +21 -0
  175. package/dist/validation/metrics/application/count.js.map +1 -0
  176. package/dist/validation/metrics/application/duration.d.ts +6 -0
  177. package/dist/validation/metrics/application/duration.js +17 -0
  178. package/dist/validation/metrics/application/duration.js.map +1 -0
  179. package/dist/validation/metrics/application/error.d.ts +6 -0
  180. package/dist/validation/metrics/application/error.js +16 -0
  181. package/dist/validation/metrics/application/error.js.map +1 -0
  182. package/dist/validation/metrics/application/started.d.ts +6 -0
  183. package/dist/validation/metrics/application/started.js +16 -0
  184. package/dist/validation/metrics/application/started.js.map +1 -0
  185. package/dist/validation/metrics/application/startupHistogram.d.ts +6 -0
  186. package/dist/validation/metrics/application/startupHistogram.js +18 -0
  187. package/dist/validation/metrics/application/startupHistogram.js.map +1 -0
  188. package/dist/validation/metrics/application/stopped.d.ts +6 -0
  189. package/dist/validation/metrics/application/stopped.js +16 -0
  190. package/dist/validation/metrics/application/stopped.js.map +1 -0
  191. package/dist/validation/metrics/base/base.d.ts +5 -0
  192. package/dist/validation/metrics/base/base.js +22 -0
  193. package/dist/validation/metrics/base/base.js.map +1 -0
  194. package/dist/validation/metrics/base/gauge.d.ts +6 -0
  195. package/dist/validation/metrics/base/gauge.js +12 -0
  196. package/dist/validation/metrics/base/gauge.js.map +1 -0
  197. package/dist/validation/metrics/builder.d.ts +4 -0
  198. package/dist/validation/metrics/builder.js +13 -0
  199. package/dist/validation/metrics/builder.js.map +1 -0
  200. package/dist/validation/metrics/factory.d.ts +4 -0
  201. package/dist/validation/metrics/factory.js +13 -0
  202. package/dist/validation/metrics/factory.js.map +1 -0
  203. package/dist/validation/metrics/factoryBuilder.d.ts +5 -0
  204. package/dist/validation/metrics/factoryBuilder.js +23 -0
  205. package/dist/validation/metrics/factoryBuilder.js.map +1 -0
  206. package/dist/validation/metrics/layout/startupHistogram.d.ts +6 -0
  207. package/dist/validation/metrics/layout/startupHistogram.js +18 -0
  208. package/dist/validation/metrics/layout/startupHistogram.js.map +1 -0
  209. package/dist/validation/metrics/manager.d.ts +4 -0
  210. package/dist/validation/metrics/manager.js +15 -0
  211. package/dist/validation/metrics/manager.js.map +1 -0
  212. package/dist/validation/metrics/meterFactory.d.ts +4 -0
  213. package/dist/validation/metrics/meterFactory.js +16 -0
  214. package/dist/validation/metrics/meterFactory.js.map +1 -0
  215. package/dist/validation/metrics/perf.d.ts +8 -0
  216. package/dist/validation/metrics/perf.js +41 -0
  217. package/dist/validation/metrics/perf.js.map +1 -0
  218. package/dist/validation/metrics/platform/crash.d.ts +6 -0
  219. package/dist/validation/metrics/platform/crash.js +16 -0
  220. package/dist/validation/metrics/platform/crash.js.map +1 -0
  221. package/dist/validation/metrics/platform/error.d.ts +6 -0
  222. package/dist/validation/metrics/platform/error.js +15 -0
  223. package/dist/validation/metrics/platform/error.js.map +1 -0
  224. package/dist/validation/metrics/platform/startup.d.ts +6 -0
  225. package/dist/validation/metrics/platform/startup.js +18 -0
  226. package/dist/validation/metrics/platform/startup.js.map +1 -0
  227. package/dist/validation/metrics/settingsBuilder.d.ts +4 -0
  228. package/dist/validation/metrics/settingsBuilder.js +22 -0
  229. package/dist/validation/metrics/settingsBuilder.js.map +1 -0
  230. package/dist/validation/metrics/workspace/count.d.ts +7 -0
  231. package/dist/validation/metrics/workspace/count.js +21 -0
  232. package/dist/validation/metrics/workspace/count.js.map +1 -0
  233. package/dist/validation/metrics/workspace/stopped.d.ts +6 -0
  234. package/dist/validation/metrics/workspace/stopped.js +16 -0
  235. package/dist/validation/metrics/workspace/stopped.js.map +1 -0
  236. package/dist/validation/traces/attributeData.d.ts +3 -0
  237. package/dist/validation/traces/attributeData.js +18 -0
  238. package/dist/validation/traces/attributeData.js.map +1 -0
  239. package/dist/validation/traces/filter.d.ts +4 -0
  240. package/dist/validation/traces/filter.js +12 -0
  241. package/dist/validation/traces/filter.js.map +1 -0
  242. package/dist/validation/traces/manager.d.ts +4 -0
  243. package/dist/validation/traces/manager.js +12 -0
  244. package/dist/validation/traces/manager.js.map +1 -0
  245. package/dist/validation/traces/withSpan.d.ts +4 -0
  246. package/dist/validation/traces/withSpan.js +18 -0
  247. package/dist/validation/traces/withSpan.js.map +1 -0
  248. package/dist/validation/validator.d.ts +4 -0
  249. package/dist/validation/validator.js +15 -0
  250. package/dist/validation/validator.js.map +1 -0
  251. package/package.json +12 -4
@@ -0,0 +1,91 @@
1
+ export interface MetricsDependencyContainer {
2
+ performanceProvider: PerformanceProvider;
3
+ instanceStartedHandler: InstanceActionHandler;
4
+ instanceStoppedHandler: InstanceActionHandler;
5
+ instanceReadyHandler: InstanceReadyHandler;
6
+ instanceFocusedHandler: InstanceFocusedHandler;
7
+ instanceErrorHandler: InstanceErrorHandler;
8
+ instanceCrashHandler: InstanceCrashHandler;
9
+ layoutRestoredHandler: LayoutRestoredHandler;
10
+ workspaceRestoredHandler: WorkspaceRestoredHandler;
11
+ workspaceStoppedHandler: WorkspaceActionHandler;
12
+ platformStartedHandler: PlatformStartedHandler;
13
+ platformErrorHandler: PlatformErrorHandler;
14
+ }
15
+ export type Unsubscribe = () => void;
16
+ export interface InstanceActionHandlerArgs {
17
+ application: string;
18
+ }
19
+ export type InstanceActionHandler = (callback: (args: InstanceActionHandlerArgs) => void) => Unsubscribe;
20
+ export interface InstanceErrorHandlerArgs {
21
+ application: string;
22
+ }
23
+ export type InstanceErrorHandler = (callback: (args: InstanceErrorHandlerArgs) => void) => Unsubscribe;
24
+ export interface PlatformErrorHandlerArgs {
25
+ }
26
+ export type PlatformErrorHandler = (callback: (args: PlatformErrorHandlerArgs) => void) => Unsubscribe;
27
+ export interface InstanceCrashHandlerArgs {
28
+ application: string;
29
+ reason: string;
30
+ }
31
+ export type InstanceCrashHandler = (callback: (args: InstanceCrashHandlerArgs) => void) => Unsubscribe;
32
+ export interface InstanceFocusedHandlerArgs {
33
+ application: string;
34
+ focused: boolean;
35
+ }
36
+ export type InstanceFocusedHandler = (callback: (args: InstanceFocusedHandlerArgs) => void) => Unsubscribe;
37
+ export interface LayoutRestoredHandlerArgs {
38
+ layout: string;
39
+ startTime: Date;
40
+ endTime: Date;
41
+ }
42
+ export type LayoutRestoredHandler = (callback: (args: LayoutRestoredHandlerArgs) => void) => Unsubscribe;
43
+ export interface WorkspaceRestoredHandlerArgs {
44
+ layout: string;
45
+ startTime: Date;
46
+ endTime: Date;
47
+ }
48
+ export type WorkspaceRestoredHandler = (callback: (args: WorkspaceRestoredHandlerArgs) => void) => Unsubscribe;
49
+ export interface WorkspaceActionHandlerArgs {
50
+ layout: string;
51
+ }
52
+ export type WorkspaceActionHandler = (callback: (args: WorkspaceActionHandlerArgs) => void) => Unsubscribe;
53
+ export interface InstanceReadyHandlerArgs {
54
+ application: string;
55
+ startTime: Date;
56
+ endTime: Date;
57
+ api: string;
58
+ }
59
+ export type InstanceReadyHandler = (callback: (args: InstanceReadyHandlerArgs) => void) => Unsubscribe;
60
+ export interface PlatformStartedHandlerArgs {
61
+ startTime: Date;
62
+ endTime: Date;
63
+ api: string;
64
+ }
65
+ export type PlatformStartedHandler = (callback: (args: PlatformStartedHandlerArgs) => void) => Unsubscribe;
66
+ export interface PerformanceProvider {
67
+ getAppsCPU(): Promise<AppCPU[] | undefined>;
68
+ getAppsMemory(): Promise<AppMemory[] | undefined>;
69
+ getSystemCPU(): Promise<SystemCPU | undefined>;
70
+ getSystemMemory(): Promise<SystemMemory | undefined>;
71
+ }
72
+ export interface AppCPU {
73
+ app: string;
74
+ instance: string;
75
+ cpu: number;
76
+ }
77
+ export interface AppMemory {
78
+ app: string;
79
+ instance: string;
80
+ memory: number;
81
+ }
82
+ export interface SystemCPU {
83
+ current: number;
84
+ average: number;
85
+ platform: number;
86
+ }
87
+ export interface SystemMemory {
88
+ platformTotal: number;
89
+ systemTotal: number;
90
+ systemFree: number;
91
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/metrics/dependencies/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,31 @@
1
+ import { Logger } from "../../logger/types";
2
+ import { MetricsDependencyContainer } from "../dependencies/types";
3
+ import { MetricsFactory as IMetricsFactory } from "./types";
4
+ import { LazyMetricsMeterProvider } from "../meter/lazyProvider";
5
+ export declare class MetricsFactoryBuilder {
6
+ lazyMeterProvider: LazyMetricsMeterProvider;
7
+ dependencyContainer: MetricsDependencyContainer;
8
+ logger: Logger;
9
+ private metricsFactories;
10
+ constructor(lazyMeterProvider: LazyMetricsMeterProvider, dependencyContainer: MetricsDependencyContainer, logger: Logger);
11
+ private get meter();
12
+ build(): IMetricsFactory;
13
+ withDefaults(): this;
14
+ withAppStarted(): this;
15
+ withAppStopped(): this;
16
+ withAppStartupHistogram(): this;
17
+ withAppCount(): this;
18
+ withAppDurationHistogram(): this;
19
+ withAppMemory(): this;
20
+ withAppCPU(): this;
21
+ withAppError(): this;
22
+ withAppCrash(): this;
23
+ withSystemMemory(): this;
24
+ withSystemCPU(): this;
25
+ withLayoutStartupHistogram(): this;
26
+ withWorkspaceStartupHistogram(): this;
27
+ withWorkspaceStopped(): this;
28
+ withWorkspaceCount(): this;
29
+ withPlatformStartup(): this;
30
+ withPlatformError(): this;
31
+ }
@@ -0,0 +1,198 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MetricsFactoryBuilder = void 0;
4
+ const started_1 = require("../metrics/application/started");
5
+ const stopped_1 = require("../metrics/application/stopped");
6
+ const count_1 = require("../metrics/application/count");
7
+ const duration_1 = require("../metrics/application/duration");
8
+ const memory_1 = require("../metrics/application/memory");
9
+ const cpu_1 = require("../metrics/application/cpu");
10
+ const memory_2 = require("../metrics/system/memory");
11
+ const cpu_2 = require("../metrics/system/cpu");
12
+ const startup_1 = require("../metrics/platform/startup");
13
+ const factory_1 = require("./factory");
14
+ const factoryBuilder_1 = require("../../validation/metrics/factoryBuilder");
15
+ const startup_2 = require("../metrics/workspace/startup");
16
+ const stopped_2 = require("../metrics/workspace/stopped");
17
+ const startup_3 = require("../metrics/application/startup");
18
+ const startup_4 = require("../metrics/layout/startup");
19
+ const error_1 = require("../metrics/application/error");
20
+ const crash_1 = require("../metrics/application/crash");
21
+ const error_2 = require("../metrics/platform/error");
22
+ const count_2 = require("../metrics/workspace/count");
23
+ class MetricsFactoryBuilder {
24
+ constructor(lazyMeterProvider, dependencyContainer, logger) {
25
+ this.lazyMeterProvider = lazyMeterProvider;
26
+ this.dependencyContainer = dependencyContainer;
27
+ this.logger = logger;
28
+ this.metricsFactories = new Map();
29
+ this.metricsFactories = new Map();
30
+ }
31
+ get meter() {
32
+ const meter = this.lazyMeterProvider.getMeter();
33
+ return meter;
34
+ }
35
+ build() {
36
+ const validator = new factoryBuilder_1.MetricsFactoryBuilderValidator();
37
+ validator.validate(this);
38
+ const metricsFactory = new factory_1.MetricsFactory(this.logger, this.metricsFactories);
39
+ return metricsFactory;
40
+ }
41
+ withDefaults() {
42
+ return this.withAppStarted()
43
+ .withAppStopped()
44
+ .withAppStartupHistogram()
45
+ .withAppCount()
46
+ .withAppDurationHistogram()
47
+ .withAppMemory()
48
+ .withAppCPU()
49
+ .withSystemMemory()
50
+ .withSystemCPU()
51
+ .withAppError()
52
+ .withAppCrash()
53
+ .withLayoutStartupHistogram()
54
+ .withWorkspaceStartupHistogram()
55
+ .withWorkspaceStopped()
56
+ .withWorkspaceCount()
57
+ .withPlatformStartup()
58
+ .withPlatformError();
59
+ }
60
+ withAppStarted() {
61
+ const func = (settings) => {
62
+ const metric = new started_1.ApplicationStartedMetric(settings, this.meter, this.logger, this.dependencyContainer.instanceStartedHandler);
63
+ return metric;
64
+ };
65
+ this.metricsFactories.set("app_started", func.bind(this));
66
+ return this;
67
+ }
68
+ withAppStopped() {
69
+ const func = (settings) => {
70
+ const metric = new stopped_1.ApplicationStoppedMetric(settings, this.meter, this.logger, this.dependencyContainer.instanceStoppedHandler);
71
+ return metric;
72
+ };
73
+ this.metricsFactories.set("app_stopped", func.bind(this));
74
+ return this;
75
+ }
76
+ withAppStartupHistogram() {
77
+ const func = (settings) => {
78
+ const metric = new startup_3.ApplicationStartupMetric(settings, this.meter, this.logger, this.dependencyContainer.instanceReadyHandler);
79
+ return metric;
80
+ };
81
+ this.metricsFactories.set("app_startup", func.bind(this));
82
+ return this;
83
+ }
84
+ withAppCount() {
85
+ const func = (settings) => {
86
+ const metric = new count_1.ApplicationCountMetric(settings, this.meter, this.logger, this.dependencyContainer.instanceStartedHandler, this.dependencyContainer.instanceStoppedHandler);
87
+ return metric;
88
+ };
89
+ this.metricsFactories.set("app_count", func.bind(this));
90
+ return this;
91
+ }
92
+ withAppDurationHistogram() {
93
+ const func = (settings) => {
94
+ const metric = new duration_1.ApplicationDurationMetric(settings, this.meter, this.logger, this.dependencyContainer.instanceFocusedHandler);
95
+ return metric;
96
+ };
97
+ this.metricsFactories.set("app_duration", func.bind(this));
98
+ return this;
99
+ }
100
+ withAppMemory() {
101
+ const func = (settings) => {
102
+ const metric = new memory_1.ApplicationMemoryMetric(settings, this.meter, this.logger, this.dependencyContainer.performanceProvider);
103
+ return metric;
104
+ };
105
+ this.metricsFactories.set("app_memory", func.bind(this));
106
+ return this;
107
+ }
108
+ withAppCPU() {
109
+ const func = (settings) => {
110
+ const metric = new cpu_1.ApplicationCPUMetric(settings, this.meter, this.logger, this.dependencyContainer.performanceProvider);
111
+ return metric;
112
+ };
113
+ this.metricsFactories.set("app_cpu", func.bind(this));
114
+ return this;
115
+ }
116
+ withAppError() {
117
+ const func = (settings) => {
118
+ const metric = new error_1.ApplicationErrorMetric(settings, this.meter, this.logger, this.dependencyContainer.instanceErrorHandler);
119
+ return metric;
120
+ };
121
+ this.metricsFactories.set("app_error", func.bind(this));
122
+ return this;
123
+ }
124
+ withAppCrash() {
125
+ const func = (settings) => {
126
+ const metric = new crash_1.ApplicationCrashMetric(settings, this.meter, this.logger, this.dependencyContainer.instanceCrashHandler);
127
+ return metric;
128
+ };
129
+ this.metricsFactories.set("app_crash", func.bind(this));
130
+ return this;
131
+ }
132
+ withSystemMemory() {
133
+ const func = (settings) => {
134
+ const metric = new memory_2.SystemMemoryMetric(settings, this.meter, this.logger, this.dependencyContainer.performanceProvider);
135
+ return metric;
136
+ };
137
+ this.metricsFactories.set("system_memory", func.bind(this));
138
+ return this;
139
+ }
140
+ withSystemCPU() {
141
+ const func = (settings) => {
142
+ const metric = new cpu_2.SystemCPUMetric(settings, this.meter, this.logger, this.dependencyContainer.performanceProvider);
143
+ return metric;
144
+ };
145
+ this.metricsFactories.set("system_cpu", func.bind(this));
146
+ return this;
147
+ }
148
+ withLayoutStartupHistogram() {
149
+ const func = (settings) => {
150
+ const metric = new startup_4.LayoutStartupMetric(settings, this.meter, this.logger, this.dependencyContainer.layoutRestoredHandler);
151
+ return metric;
152
+ };
153
+ this.metricsFactories.set("layout_startup", func.bind(this));
154
+ return this;
155
+ }
156
+ withWorkspaceStartupHistogram() {
157
+ const func = (settings) => {
158
+ const metric = new startup_2.WorkspaceStartupHistogramMetric(settings, this.meter, this.logger, this.dependencyContainer.workspaceRestoredHandler);
159
+ return metric;
160
+ };
161
+ this.metricsFactories.set("workspace_startup", func.bind(this));
162
+ return this;
163
+ }
164
+ withWorkspaceStopped() {
165
+ const func = (settings) => {
166
+ const metric = new stopped_2.WorkspaceStoppedMetric(settings, this.meter, this.logger, this.dependencyContainer.workspaceStoppedHandler);
167
+ return metric;
168
+ };
169
+ this.metricsFactories.set("workspace_stopped", func.bind(this));
170
+ return this;
171
+ }
172
+ withWorkspaceCount() {
173
+ const func = (settings) => {
174
+ const metric = new count_2.WorkspaceCountMetric(settings, this.meter, this.logger, this.dependencyContainer.workspaceRestoredHandler, this.dependencyContainer.workspaceStoppedHandler);
175
+ return metric;
176
+ };
177
+ this.metricsFactories.set("workspace_count", func.bind(this));
178
+ return this;
179
+ }
180
+ withPlatformStartup() {
181
+ const func = (settings) => {
182
+ const metric = new startup_1.PlatformStartupMetric(settings, this.meter, this.logger, this.dependencyContainer.platformStartedHandler);
183
+ return metric;
184
+ };
185
+ this.metricsFactories.set("platform_startup", func.bind(this));
186
+ return this;
187
+ }
188
+ withPlatformError() {
189
+ const func = (settings) => {
190
+ const metric = new error_2.PlatformErrorMetric(settings, this.meter, this.logger, this.dependencyContainer.platformErrorHandler);
191
+ return metric;
192
+ };
193
+ this.metricsFactories.set("platform_error", func.bind(this));
194
+ return this;
195
+ }
196
+ }
197
+ exports.MetricsFactoryBuilder = MetricsFactoryBuilder;
198
+ //# sourceMappingURL=builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../src/metrics/factory/builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { Logger } from "../../logger/types";
2
+ import { Metric, InternalMetricSettings, MetricType } from "../metrics/base/types";
3
+ import { CreateMetricFunc, MetricsFactory as IMetricsFactory } from "./types";
4
+ export declare class MetricsFactory implements IMetricsFactory {
5
+ logger: Logger;
6
+ metricsFactories: Map<MetricType, CreateMetricFunc>;
7
+ constructor(logger: Logger, metricsFactories: Map<MetricType, CreateMetricFunc>);
8
+ create(metricSettings: InternalMetricSettings): Metric;
9
+ private createNullMetric;
10
+ }
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MetricsFactory = void 0;
4
+ const factory_1 = require("../../validation/metrics/factory");
5
+ const null_1 = require("../metrics/base/null");
6
+ class MetricsFactory {
7
+ constructor(logger, metricsFactories) {
8
+ this.logger = logger;
9
+ this.metricsFactories = metricsFactories;
10
+ const validator = new factory_1.MetricsFactoryValidator();
11
+ validator.validate(this);
12
+ }
13
+ create(metricSettings) {
14
+ const metricType = metricSettings.type;
15
+ const hasMetricFactory = this.metricsFactories.has(metricType);
16
+ if (hasMetricFactory) {
17
+ const metricFactory = this.metricsFactories.get(metricType);
18
+ const metric = metricFactory(metricSettings);
19
+ return metric;
20
+ }
21
+ else {
22
+ const nullMetric = this.createNullMetric(metricSettings, "not supported");
23
+ return nullMetric;
24
+ }
25
+ }
26
+ createNullMetric(settings, reason) {
27
+ this.logger.debug(`cannot create ${settings.name} metric, reason: ${reason}`);
28
+ const nullMetric = new null_1.NullMetric(settings, this.logger);
29
+ return nullMetric;
30
+ }
31
+ }
32
+ exports.MetricsFactory = MetricsFactory;
33
+ //# sourceMappingURL=factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../src/metrics/factory/factory.ts"],"names":[],"mappings":";;;AACA,8DAA2E;AAE3E,+CAAkD;AAGlD,MAAa,cAAc;IACvB,YACW,MAAc,EACd,gBAAmD;QADnD,WAAM,GAAN,MAAM,CAAQ;QACd,qBAAgB,GAAhB,gBAAgB,CAAmC;QAE1D,MAAM,SAAS,GAAG,IAAI,iCAAuB,EAAE,CAAC;QAChD,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAEM,MAAM,CAAC,cAAsC;QAChD,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC;QACvC,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAE/D,IAAI,gBAAgB,EAAE;YAClB,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC;YAC7D,MAAM,MAAM,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC;YAC7C,OAAO,MAAM,CAAC;SACjB;aAAM;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;YAC1E,OAAO,UAAU,CAAC;SACrB;IACL,CAAC;IAEO,gBAAgB,CAAC,QAAgC,EAAE,MAAc;QACrE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,QAAQ,CAAC,IAAI,oBAAoB,MAAM,EAAE,CAAC,CAAC;QAC9E,MAAM,UAAU,GAAG,IAAI,iBAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACzD,OAAO,UAAU,CAAC;IACtB,CAAC;CACJ;AA5BD,wCA4BC"}
@@ -0,0 +1,5 @@
1
+ import { Metric, InternalMetricSettings } from "../metrics/base/types";
2
+ export interface MetricsFactory {
3
+ create(settings: InternalMetricSettings): Metric;
4
+ }
5
+ export type CreateMetricFunc = (settings: InternalMetricSettings) => Metric;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/metrics/factory/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,23 @@
1
+ import { Logger } from "../logger/types";
2
+ import { Metric, MetricType } from "./metrics/base/types";
3
+ import { MetricsFactory } from "./factory/types";
4
+ import { LazyMetricsMeterProvider } from "./meter/lazyProvider";
5
+ import { InternalMetricsSettings } from "./settings/types";
6
+ import { MetricsManager as IMetricsManager } from "./types";
7
+ export declare class MetricsManager implements IMetricsManager {
8
+ settings: InternalMetricsSettings;
9
+ metricsFactory: MetricsFactory;
10
+ meterProvider: LazyMetricsMeterProvider;
11
+ logger: Logger;
12
+ private metrics;
13
+ started: boolean;
14
+ constructor(settings: InternalMetricsSettings, metricsFactory: MetricsFactory, meterProvider: LazyMetricsMeterProvider, logger: Logger);
15
+ get(type: MetricType): Metric | undefined;
16
+ start(): Promise<void>;
17
+ stop(): Promise<void>;
18
+ private createEnabledMetrics;
19
+ private getOrCreateMetric;
20
+ private createMetric;
21
+ private startMetric;
22
+ private stopMetric;
23
+ }
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.MetricsManager = void 0;
13
+ const manager_1 = require("../validation/metrics/manager");
14
+ class MetricsManager {
15
+ constructor(settings, metricsFactory, meterProvider, logger) {
16
+ this.settings = settings;
17
+ this.metricsFactory = metricsFactory;
18
+ this.meterProvider = meterProvider;
19
+ this.logger = logger;
20
+ this.metrics = new Map();
21
+ this.started = false;
22
+ const validator = new manager_1.MetricsManagerValidator();
23
+ validator.validate(this);
24
+ }
25
+ get(type) {
26
+ const metric = this.getOrCreateMetric(type);
27
+ return metric;
28
+ }
29
+ start() {
30
+ return __awaiter(this, void 0, void 0, function* () {
31
+ try {
32
+ this.createEnabledMetrics(this.settings.metrics);
33
+ for (const metricKvp of this.metrics) {
34
+ const metric = metricKvp[1];
35
+ yield this.startMetric(metric);
36
+ }
37
+ this.started = true;
38
+ this.logger.debug("metrics manager has been started");
39
+ }
40
+ catch (error) {
41
+ const message = "error while starting metrics manager";
42
+ this.logger.warn(message, error);
43
+ }
44
+ });
45
+ }
46
+ stop() {
47
+ return __awaiter(this, void 0, void 0, function* () {
48
+ try {
49
+ for (const metricKvp of this.metrics) {
50
+ const metric = metricKvp[1];
51
+ yield this.stopMetric(metric);
52
+ }
53
+ yield this.meterProvider.forceFlush();
54
+ this.started = false;
55
+ this.logger.debug("metrics manager has been stopped");
56
+ }
57
+ catch (error) {
58
+ const message = "error while stopping metrics manager";
59
+ this.logger.warn(message, error);
60
+ }
61
+ });
62
+ }
63
+ createEnabledMetrics(metrics) {
64
+ const notCreateYet = metrics.filter((m) => !this.metrics.has(m.type));
65
+ const enabled = notCreateYet.filter((m) => m.enabled);
66
+ enabled.forEach((metricSettings) => this.createMetric(metricSettings));
67
+ }
68
+ getOrCreateMetric(type) {
69
+ const hasMetric = this.metrics.has(type);
70
+ if (hasMetric) {
71
+ return this.metrics.get(type);
72
+ }
73
+ else {
74
+ let metric;
75
+ const metricSettings = this.settings.metrics.find((m) => m.type === type);
76
+ if (metricSettings) {
77
+ metric = this.createMetric(metricSettings);
78
+ }
79
+ return metric;
80
+ }
81
+ }
82
+ createMetric(settings) {
83
+ try {
84
+ const metric = this.metricsFactory.create(settings);
85
+ if (metric) {
86
+ this.metrics.set(metric.settings.type, metric);
87
+ }
88
+ return metric;
89
+ }
90
+ catch (error) {
91
+ const message = `error while creating metric from type: ${settings.type}`;
92
+ this.logger.warn(message, error);
93
+ return undefined;
94
+ }
95
+ }
96
+ startMetric(metric) {
97
+ return __awaiter(this, void 0, void 0, function* () {
98
+ try {
99
+ yield metric.start();
100
+ }
101
+ catch (error) {
102
+ const message = `error while starting metric from type: ${metric.settings.type}`;
103
+ this.logger.warn(message, error);
104
+ }
105
+ });
106
+ }
107
+ stopMetric(metric) {
108
+ return __awaiter(this, void 0, void 0, function* () {
109
+ try {
110
+ yield metric.stop();
111
+ }
112
+ catch (error) {
113
+ const message = `error while stopping metric from type: ${metric.settings.type}`;
114
+ this.logger.warn(message, error);
115
+ }
116
+ });
117
+ }
118
+ }
119
+ exports.MetricsManager = MetricsManager;
120
+ //# sourceMappingURL=manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/metrics/manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { Meter } from "@opentelemetry/api";
2
+ import { MetricsMeterProviderCreateFunc } from "./types";
3
+ export declare class LazyMetricsMeterProvider {
4
+ private meterProviderCreateFunc;
5
+ private serviceName;
6
+ private meterProvider;
7
+ constructor(meterProviderCreateFunc: MetricsMeterProviderCreateFunc, serviceName: string);
8
+ getMeter(): Meter;
9
+ forceFlush(): Promise<void>;
10
+ private getMeterProvider;
11
+ }
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LazyMetricsMeterProvider = void 0;
4
+ class LazyMetricsMeterProvider {
5
+ constructor(meterProviderCreateFunc, serviceName) {
6
+ this.meterProviderCreateFunc = meterProviderCreateFunc;
7
+ this.serviceName = serviceName;
8
+ }
9
+ getMeter() {
10
+ const provider = this.getMeterProvider();
11
+ return provider.getMeter(this.serviceName);
12
+ }
13
+ forceFlush() {
14
+ const provider = this.getMeterProvider();
15
+ return provider.forceFlush();
16
+ }
17
+ getMeterProvider() {
18
+ var _a;
19
+ return (_a = this.meterProvider) !== null && _a !== void 0 ? _a : (this.meterProvider = this.meterProviderCreateFunc());
20
+ }
21
+ }
22
+ exports.LazyMetricsMeterProvider = LazyMetricsMeterProvider;
23
+ //# sourceMappingURL=lazyProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lazyProvider.js","sourceRoot":"","sources":["../../../src/metrics/meter/lazyProvider.ts"],"names":[],"mappings":";;;AAGA,MAAa,wBAAwB;IAGjC,YACY,uBAAuD,EACvD,WAAmB;QADnB,4BAAuB,GAAvB,uBAAuB,CAAgC;QACvD,gBAAW,GAAX,WAAW,CAAQ;IAAI,CAAC;IAE7B,QAAQ;QACX,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACzC,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC/C,CAAC;IAEM,UAAU;QACb,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACzC,OAAO,QAAQ,CAAC,UAAU,EAAE,CAAC;IACjC,CAAC;IAEO,gBAAgB;;QACpB,OAAO,MAAA,IAAI,CAAC,aAAa,mCAAI,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;IACvF,CAAC;CACJ;AApBD,4DAoBC"}
@@ -0,0 +1,6 @@
1
+ import { MeterProvider } from "@opentelemetry/sdk-metrics";
2
+ import { InternalMetricsMeterSettings } from "./types";
3
+ export declare class MetricsMeterProviderFactory {
4
+ create(settings: InternalMetricsMeterSettings): MeterProvider;
5
+ private createMeterProvider;
6
+ }
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MetricsMeterProviderFactory = void 0;
4
+ const resources_1 = require("@opentelemetry/resources");
5
+ const exporter_metrics_otlp_http_1 = require("@opentelemetry/exporter-metrics-otlp-http");
6
+ const sdk_metrics_1 = require("@opentelemetry/sdk-metrics");
7
+ const meterFactory_1 = require("../../validation/metrics/meterFactory");
8
+ class MetricsMeterProviderFactory {
9
+ create(settings) {
10
+ const validator = new meterFactory_1.MetricsMeterFactoryValidator();
11
+ validator.validate(settings);
12
+ const metricExporter = new exporter_metrics_otlp_http_1.OTLPMetricExporter(Object.assign({}, settings));
13
+ const metricReader = new sdk_metrics_1.PeriodicExportingMetricReader({
14
+ exporter: metricExporter,
15
+ exportIntervalMillis: settings.publishInterval,
16
+ });
17
+ const meterProvider = this.createMeterProvider(settings, metricReader);
18
+ return meterProvider;
19
+ }
20
+ createMeterProvider(settings, metricReader) {
21
+ const meterProvider = new sdk_metrics_1.MeterProvider({
22
+ resource: new resources_1.Resource({
23
+ "service.name": `${settings.serviceName}`,
24
+ "service.instance.id": `${settings.serviceId}`,
25
+ "service.version": `${settings.serviceVersion}`,
26
+ "user.id": `${settings.userId}`
27
+ }),
28
+ readers: [metricReader]
29
+ });
30
+ return meterProvider;
31
+ }
32
+ }
33
+ exports.MetricsMeterProviderFactory = MetricsMeterProviderFactory;
34
+ //# sourceMappingURL=providerFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providerFactory.js","sourceRoot":"","sources":["../../../src/metrics/meter/providerFactory.ts"],"names":[],"mappings":";;;AAAA,wDAAoD;AACpD,0FAA+E;AAC/E,4DAAwG;AACxG,wEAAqF;AAGrF,MAAa,2BAA2B;IAC7B,MAAM,CAAC,QAAsC;QAChD,MAAM,SAAS,GAAG,IAAI,2CAA4B,EAAE,CAAC;QACrD,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAE7B,MAAM,cAAc,GAAG,IAAI,+CAAkB,mBAAM,QAAQ,EAAG,CAAC;QAE/D,MAAM,YAAY,GAAG,IAAI,2CAA6B,CAAC;YACnD,QAAQ,EAAE,cAAc;YACxB,oBAAoB,EAAE,QAAQ,CAAC,eAAe;SACjD,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAEvE,OAAO,aAAa,CAAC;IACzB,CAAC;IAEO,mBAAmB,CAAC,QAAsC,EAAE,YAA0B;QAC1F,MAAM,aAAa,GAAG,IAAI,2BAAa,CAAC;YACpC,QAAQ,EAAE,IAAI,oBAAQ,CAClB;gBACI,cAAc,EAAE,GAAG,QAAQ,CAAC,WAAW,EAAE;gBACzC,qBAAqB,EAAE,GAAG,QAAQ,CAAC,SAAS,EAAE;gBAC9C,iBAAiB,EAAE,GAAG,QAAQ,CAAC,cAAc,EAAE;gBAC/C,SAAS,EAAE,GAAG,QAAQ,CAAC,MAAM,EAAE;aAClC,CAAC;YACN,OAAO,EAAE,CAAC,YAAY,CAAC;SAC1B,CAAC,CAAC;QAEH,OAAO,aAAa,CAAC;IACzB,CAAC;CACJ;AA/BD,kEA+BC"}