@interopio/otel 0.0.12 → 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 (177) hide show
  1. package/README.md +9 -1
  2. package/dist/builder.d.ts +6 -2
  3. package/dist/builder.js +40 -9
  4. package/dist/builder.js.map +1 -1
  5. package/dist/container.js +1 -0
  6. package/dist/container.js.map +1 -1
  7. package/dist/index.d.ts +4 -2
  8. package/dist/index.js +5 -1
  9. package/dist/index.js.map +1 -1
  10. package/dist/logger/log4jsWrapper.d.ts +13 -0
  11. package/dist/logger/log4jsWrapper.js +54 -0
  12. package/dist/logger/log4jsWrapper.js.map +1 -0
  13. package/dist/logger/types.d.ts +1 -1
  14. package/dist/metrics/factory/builder.js +17 -17
  15. package/dist/metrics/factory/builder.js.map +1 -1
  16. package/dist/metrics/factory/factory.d.ts +1 -1
  17. package/dist/metrics/factory/factory.js +1 -1
  18. package/dist/metrics/factory/factory.js.map +1 -1
  19. package/dist/metrics/factory/types.d.ts +1 -1
  20. package/dist/metrics/manager.d.ts +1 -1
  21. package/dist/metrics/manager.js +15 -15
  22. package/dist/metrics/manager.js.map +1 -1
  23. package/dist/metrics/{application → metrics/application}/count.d.ts +2 -2
  24. package/dist/metrics/{application → metrics/application}/count.js +1 -1
  25. package/dist/metrics/metrics/application/count.js.map +1 -0
  26. package/dist/metrics/{application → metrics/application}/cpu.d.ts +2 -2
  27. package/dist/metrics/{application → metrics/application}/cpu.js +2 -2
  28. package/dist/metrics/metrics/application/cpu.js.map +1 -0
  29. package/dist/metrics/{application → metrics/application}/crash.d.ts +2 -2
  30. package/dist/metrics/{application → metrics/application}/crash.js +1 -1
  31. package/dist/metrics/metrics/application/crash.js.map +1 -0
  32. package/dist/metrics/metrics/application/duration.js.map +1 -0
  33. package/dist/metrics/{application → metrics/application}/durationBase.d.ts +2 -2
  34. package/dist/metrics/{application → metrics/application}/durationBase.js +2 -2
  35. package/dist/metrics/metrics/application/durationBase.js.map +1 -0
  36. package/dist/metrics/{application → metrics/application}/error.d.ts +2 -2
  37. package/dist/metrics/{application → metrics/application}/error.js +1 -1
  38. package/dist/metrics/metrics/application/error.js.map +1 -0
  39. package/dist/metrics/{application → metrics/application}/memory.d.ts +3 -2
  40. package/dist/metrics/{application → metrics/application}/memory.js +5 -5
  41. package/dist/metrics/metrics/application/memory.js.map +1 -0
  42. package/dist/metrics/{application → metrics/application}/started.d.ts +2 -2
  43. package/dist/metrics/{application → metrics/application}/started.js +1 -1
  44. package/dist/metrics/metrics/application/started.js.map +1 -0
  45. package/dist/metrics/{application → metrics/application}/startup.d.ts +2 -2
  46. package/dist/metrics/{application → metrics/application}/startup.js +1 -1
  47. package/dist/metrics/metrics/application/startup.js.map +1 -0
  48. package/dist/metrics/{application → metrics/application}/stopped.d.ts +2 -2
  49. package/dist/metrics/{application → metrics/application}/stopped.js +1 -1
  50. package/dist/metrics/metrics/application/stopped.js.map +1 -0
  51. package/dist/metrics/{base → metrics/base}/base.d.ts +2 -2
  52. package/dist/metrics/{base → metrics/base}/base.js +1 -1
  53. package/dist/metrics/metrics/base/base.js.map +1 -0
  54. package/dist/metrics/{base → metrics/base}/gauge.d.ts +2 -2
  55. package/dist/metrics/{base → metrics/base}/gauge.js +1 -1
  56. package/dist/metrics/metrics/base/gauge.js.map +1 -0
  57. package/dist/metrics/{base → metrics/base}/null.d.ts +1 -1
  58. package/dist/metrics/metrics/base/null.js.map +1 -0
  59. package/dist/metrics/{base → metrics/base}/observable.d.ts +2 -2
  60. package/dist/metrics/{base → metrics/base}/observable.js +1 -1
  61. package/dist/metrics/metrics/base/observable.js.map +1 -0
  62. package/dist/metrics/metrics/base/types.js.map +1 -0
  63. package/dist/metrics/{layout → metrics/layout}/startup.d.ts +2 -2
  64. package/dist/metrics/{layout → metrics/layout}/startup.js +1 -1
  65. package/dist/metrics/metrics/layout/startup.js.map +1 -0
  66. package/dist/metrics/{platform → metrics/platform}/error.d.ts +2 -2
  67. package/dist/metrics/{platform → metrics/platform}/error.js +1 -1
  68. package/dist/metrics/metrics/platform/error.js.map +1 -0
  69. package/dist/metrics/{platform → metrics/platform}/startup.d.ts +2 -2
  70. package/dist/metrics/{platform → metrics/platform}/startup.js +2 -2
  71. package/dist/metrics/metrics/platform/startup.js.map +1 -0
  72. package/dist/metrics/{system → metrics/system}/cpu.d.ts +3 -2
  73. package/dist/metrics/{system → metrics/system}/cpu.js +5 -5
  74. package/dist/metrics/metrics/system/cpu.js.map +1 -0
  75. package/dist/metrics/{system → metrics/system}/memory.d.ts +3 -2
  76. package/dist/metrics/{system → metrics/system}/memory.js +5 -5
  77. package/dist/metrics/metrics/system/memory.js.map +1 -0
  78. package/dist/metrics/{workspace → metrics/workspace}/count.d.ts +2 -2
  79. package/dist/metrics/{workspace → metrics/workspace}/count.js +1 -1
  80. package/dist/metrics/metrics/workspace/count.js.map +1 -0
  81. package/dist/metrics/{workspace → metrics/workspace}/startup.d.ts +2 -2
  82. package/dist/metrics/metrics/workspace/startup.js.map +1 -0
  83. package/dist/metrics/{workspace → metrics/workspace}/stopped.d.ts +2 -2
  84. package/dist/metrics/{workspace → metrics/workspace}/stopped.js +1 -1
  85. package/dist/metrics/metrics/workspace/stopped.js.map +1 -0
  86. package/dist/metrics/settings/builder.d.ts +1 -1
  87. package/dist/metrics/settings/default.d.ts +2 -2
  88. package/dist/metrics/settings/default.js +3 -3
  89. package/dist/metrics/settings/default.js.map +1 -1
  90. package/dist/metrics/settings/types.d.ts +1 -1
  91. package/dist/metrics/types.d.ts +1 -1
  92. package/dist/metrics/utils/nullMetricsManager.d.ts +1 -1
  93. package/dist/traces/builder.d.ts +15 -0
  94. package/dist/traces/builder.js +39 -0
  95. package/dist/traces/builder.js.map +1 -0
  96. package/dist/traces/ioInsightsSampler.d.ts +16 -0
  97. package/dist/traces/ioInsightsSampler.js +123 -0
  98. package/dist/traces/ioInsightsSampler.js.map +1 -0
  99. package/dist/traces/manager.d.ts +19 -0
  100. package/dist/traces/manager.js +151 -0
  101. package/dist/traces/manager.js.map +1 -0
  102. package/dist/traces/nullTracesManager.d.ts +6 -0
  103. package/dist/traces/nullTracesManager.js +23 -0
  104. package/dist/traces/nullTracesManager.js.map +1 -0
  105. package/dist/traces/tracingState.d.ts +28 -0
  106. package/dist/traces/tracingState.js +103 -0
  107. package/dist/traces/tracingState.js.map +1 -0
  108. package/dist/traces/types.d.ts +90 -0
  109. package/dist/traces/types.js +11 -0
  110. package/dist/traces/types.js.map +1 -1
  111. package/dist/traces/utils/index.d.ts +13 -0
  112. package/dist/traces/utils/index.js +119 -0
  113. package/dist/traces/utils/index.js.map +1 -0
  114. package/dist/validation/builder.js +0 -1
  115. package/dist/validation/builder.js.map +1 -1
  116. package/dist/validation/metrics/application/count.d.ts +1 -1
  117. package/dist/validation/metrics/application/duration.d.ts +1 -1
  118. package/dist/validation/metrics/application/error.d.ts +1 -1
  119. package/dist/validation/metrics/application/started.d.ts +1 -1
  120. package/dist/validation/metrics/application/startupHistogram.d.ts +1 -1
  121. package/dist/validation/metrics/application/stopped.d.ts +1 -1
  122. package/dist/validation/metrics/base/base.d.ts +1 -1
  123. package/dist/validation/metrics/base/gauge.d.ts +2 -2
  124. package/dist/validation/metrics/layout/startupHistogram.d.ts +1 -1
  125. package/dist/validation/metrics/platform/crash.d.ts +1 -1
  126. package/dist/validation/metrics/platform/error.d.ts +1 -1
  127. package/dist/validation/metrics/platform/startup.d.ts +1 -1
  128. package/dist/validation/metrics/workspace/count.d.ts +1 -1
  129. package/dist/validation/metrics/workspace/stopped.d.ts +1 -1
  130. package/dist/validation/traces/attributeData.d.ts +3 -0
  131. package/dist/validation/traces/attributeData.js +18 -0
  132. package/dist/validation/traces/attributeData.js.map +1 -0
  133. package/dist/validation/traces/filter.d.ts +4 -0
  134. package/dist/validation/traces/filter.js +12 -0
  135. package/dist/validation/traces/filter.js.map +1 -0
  136. package/dist/validation/traces/manager.d.ts +4 -0
  137. package/dist/validation/traces/manager.js +12 -0
  138. package/dist/validation/traces/manager.js.map +1 -0
  139. package/dist/validation/traces/withSpan.d.ts +4 -0
  140. package/dist/validation/traces/withSpan.js +18 -0
  141. package/dist/validation/traces/withSpan.js.map +1 -0
  142. package/package.json +12 -4
  143. package/dist/containerBuilder.d.ts +0 -14
  144. package/dist/containerBuilder.js +0 -34
  145. package/dist/containerBuilder.js.map +0 -1
  146. package/dist/metrics/application/count.js.map +0 -1
  147. package/dist/metrics/application/cpu.js.map +0 -1
  148. package/dist/metrics/application/crash.js.map +0 -1
  149. package/dist/metrics/application/duration.js.map +0 -1
  150. package/dist/metrics/application/durationBase.js.map +0 -1
  151. package/dist/metrics/application/error.js.map +0 -1
  152. package/dist/metrics/application/memory.js.map +0 -1
  153. package/dist/metrics/application/started.js.map +0 -1
  154. package/dist/metrics/application/startup.js.map +0 -1
  155. package/dist/metrics/application/stopped.js.map +0 -1
  156. package/dist/metrics/base/base.js.map +0 -1
  157. package/dist/metrics/base/gauge.js.map +0 -1
  158. package/dist/metrics/base/null.js.map +0 -1
  159. package/dist/metrics/base/observable.js.map +0 -1
  160. package/dist/metrics/base/types.js.map +0 -1
  161. package/dist/metrics/layout/startup.js.map +0 -1
  162. package/dist/metrics/platform/error.js.map +0 -1
  163. package/dist/metrics/platform/startup.js.map +0 -1
  164. package/dist/metrics/system/cpu.js.map +0 -1
  165. package/dist/metrics/system/memory.js.map +0 -1
  166. package/dist/metrics/workspace/count.js.map +0 -1
  167. package/dist/metrics/workspace/startup.js.map +0 -1
  168. package/dist/metrics/workspace/stopped.js.map +0 -1
  169. package/dist/validation/containerBuilder.d.ts +0 -4
  170. package/dist/validation/containerBuilder.js +0 -14
  171. package/dist/validation/containerBuilder.js.map +0 -1
  172. /package/dist/metrics/{application → metrics/application}/duration.d.ts +0 -0
  173. /package/dist/metrics/{application → metrics/application}/duration.js +0 -0
  174. /package/dist/metrics/{base → metrics/base}/null.js +0 -0
  175. /package/dist/metrics/{base → metrics/base}/types.d.ts +0 -0
  176. /package/dist/metrics/{base → metrics/base}/types.js +0 -0
  177. /package/dist/metrics/{workspace → metrics/workspace}/startup.js +0 -0
@@ -1,6 +1,96 @@
1
+ /// <reference types="node" />
2
+ import { Span, TracerProvider } from "@opentelemetry/api";
3
+ import { Logger } from "../logger/types";
1
4
  import { Manager } from "../types";
2
5
  export interface TracesManager extends Manager<TracesSettings> {
6
+ extractTracingPropagationInfo(propagationInfoCarrier: PropagationInfo | PropagationInfoCarrier): PropagationInfo | undefined;
7
+ withSpan(source: string, callback: WithSpanCallback): Promise<ReturnType<WithSpanCallback>>;
8
+ withSpan(source: string, tracingContext: TracingContext, callback: WithSpanCallback): Promise<ReturnType<WithSpanCallback>>;
9
+ withSpan(source: string, tracingContext: TracingContext, propagationInfo: PropagationInfo | PropagationInfoCarrier, callback: WithSpanCallback): Promise<ReturnType<WithSpanCallback>>;
10
+ }
11
+ export type WithSpanCallback = (tracingState: TracingState) => any | Promise<any>;
12
+ export interface PropagationInfo {
13
+ traceparent?: string;
14
+ tracestate?: string;
15
+ }
16
+ export interface PropagationInfoCarrier {
17
+ __interopIOTracePropagationInfo?: PropagationInfo;
18
+ }
19
+ export interface TracingState {
20
+ enabled: boolean;
21
+ level: keyof typeof Verbosity;
22
+ addData(level: Verbosity | keyof typeof Verbosity, data: AttributeData): Promise<void>;
23
+ source: string;
24
+ id?: string;
25
+ timeoutId?: NodeJS.Timeout;
26
+ endSpan(): Promise<void>;
27
+ span: Span | null;
28
+ getPropagationInfo: () => PropagationInfo | null;
29
+ injectPropagationInfo: (carrier: PropagationInfoCarrier & object) => void;
30
+ setStatus?: Span["setStatus"];
31
+ addEvent?: Span["addEvent"];
32
+ recordException?: Span["recordException"];
33
+ isRecording?: Span["isRecording"];
34
+ updateName?: Span["updateName"];
35
+ spanContext?: Span["spanContext"];
36
+ }
37
+ export type AttributeArray = Array<null | undefined | string> | Array<null | undefined | number> | Array<null | undefined | boolean>;
38
+ export interface AttributeData {
39
+ [key: string]: string | number | boolean | undefined | AttributeArray | unknown[] | object;
40
+ }
41
+ export interface TracingContext {
42
+ app?: string;
43
+ user?: string;
44
+ serviceName?: string;
45
+ [key: string]: string | number | undefined;
46
+ }
47
+ export declare enum Verbosity {
48
+ OFF = 0,
49
+ LOWEST = 1,
50
+ DIAGNOSTIC = 2,
51
+ DEBUG = 3,
52
+ INFO = 4,
53
+ WARN = 5,
54
+ HIGHEST = 6
55
+ }
56
+ export interface Filter {
57
+ source: string;
58
+ level: keyof typeof Verbosity;
59
+ enable?: boolean;
60
+ context: {
61
+ [key: string]: string | number | boolean;
62
+ };
63
+ }
64
+ export interface TracesDefaultsSettings {
65
+ enabled?: boolean;
66
+ level?: keyof typeof Verbosity;
67
+ sample?: number | boolean;
3
68
  }
4
69
  export interface TracesSettings {
5
70
  enabled: boolean;
71
+ url?: string;
72
+ console?: boolean;
73
+ filters?: Filter[];
74
+ sampling?: SamplingSettings;
75
+ default?: TracesDefaultsSettings;
76
+ spanTimeoutMs?: number;
77
+ serviceName?: string;
78
+ user?: string;
79
+ addContextToTrace?: boolean;
80
+ }
81
+ export interface SamplingSettings {
82
+ attributes?: {
83
+ [key: string]: string | number;
84
+ };
85
+ context?: {
86
+ [key: string]: string | number;
87
+ };
88
+ sample: number | boolean;
89
+ }
90
+ export interface TracesManagerBuilder {
91
+ build(): TracesManager;
92
+ withLogger(logger: Logger): this;
93
+ withSettings(settings: TracesSettings): this;
94
+ withTracingContextGetter(tracingContextGetter?: () => TracingContext): this;
95
+ withTracerProvider(tracerProvider: TracerProvider): this;
6
96
  }
@@ -1,3 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Verbosity = void 0;
4
+ var Verbosity;
5
+ (function (Verbosity) {
6
+ Verbosity[Verbosity["OFF"] = 0] = "OFF";
7
+ Verbosity[Verbosity["LOWEST"] = 1] = "LOWEST";
8
+ Verbosity[Verbosity["DIAGNOSTIC"] = 2] = "DIAGNOSTIC";
9
+ Verbosity[Verbosity["DEBUG"] = 3] = "DEBUG";
10
+ Verbosity[Verbosity["INFO"] = 4] = "INFO";
11
+ Verbosity[Verbosity["WARN"] = 5] = "WARN";
12
+ Verbosity[Verbosity["HIGHEST"] = 6] = "HIGHEST";
13
+ })(Verbosity = exports.Verbosity || (exports.Verbosity = {}));
3
14
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/traces/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/traces/types.ts"],"names":[],"mappings":";;;AAoEA,IAAY,SAQX;AARD,WAAY,SAAS;IACnB,uCAAG,CAAA;IACH,6CAAM,CAAA;IACN,qDAAU,CAAA;IACV,2CAAK,CAAA;IACL,yCAAI,CAAA;IACJ,yCAAI,CAAA;IACJ,+CAAO,CAAA;AACT,CAAC,EARW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAQpB"}
@@ -0,0 +1,13 @@
1
+ import { TracerProvider } from "@opentelemetry/api";
2
+ import { AttributeData, Filter, TracingContext } from "../types";
3
+ import { Span } from "@opentelemetry/api";
4
+ export declare const isSpanEnabled: (match: any, defaultMatch: any) => any;
5
+ export declare const isFilterMatch: (filter: Filter, context: TracingContext, source: string) => boolean;
6
+ export declare const setTracerProvider: (provider?: TracerProvider, settings?: {
7
+ serviceName: string;
8
+ url: string;
9
+ console?: boolean;
10
+ }) => void;
11
+ export declare const saveDataInAttribute: (data: AttributeData, otelSpan: Span) => void;
12
+ export declare const replacePlaceHolders: (settings: any, context: any) => any;
13
+ export declare const isFunctionType: (variable: unknown) => boolean;
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isFunctionType = exports.replacePlaceHolders = exports.saveDataInAttribute = exports.setTracerProvider = exports.isFilterMatch = exports.isSpanEnabled = void 0;
4
+ /* eslint-disable @typescript-eslint/no-explicit-any */
5
+ const exporter_trace_otlp_http_1 = require("@opentelemetry/exporter-trace-otlp-http");
6
+ const sdk_trace_base_1 = require("@opentelemetry/sdk-trace-base");
7
+ const resources_1 = require("@opentelemetry/resources");
8
+ const filter_1 = require("../../validation/traces/filter");
9
+ const attributeData_1 = require("../../validation/traces/attributeData");
10
+ const isSpanEnabled = (match, defaultMatch) => {
11
+ let enabled;
12
+ if (match) {
13
+ if (match.enabled === undefined) {
14
+ enabled = true;
15
+ }
16
+ else {
17
+ enabled = match.enabled;
18
+ }
19
+ }
20
+ else if (defaultMatch) {
21
+ enabled = defaultMatch.enabled;
22
+ }
23
+ else {
24
+ enabled = false;
25
+ }
26
+ return enabled;
27
+ };
28
+ exports.isSpanEnabled = isSpanEnabled;
29
+ const isFilterMatch = (filter, context, source) => {
30
+ let isMatch = true;
31
+ if (filter) {
32
+ const validator = new filter_1.TracesFilterValidator();
33
+ validator.validate(filter);
34
+ }
35
+ if (filter.source && !source.startsWith(filter.source + ".") && source !== filter.source) {
36
+ return false;
37
+ }
38
+ if (!filter.context) {
39
+ return true;
40
+ }
41
+ for (const key of Object.keys(filter.context)) {
42
+ if (context[key] !== filter.context[key]) {
43
+ isMatch = false;
44
+ break;
45
+ }
46
+ }
47
+ return isMatch;
48
+ };
49
+ exports.isFilterMatch = isFilterMatch;
50
+ const setTracerProvider = (provider, settings) => {
51
+ if (!provider && !settings) {
52
+ // TODO vnikolov throw
53
+ throw new Error();
54
+ }
55
+ if (!provider) {
56
+ const btProvider = (provider = new sdk_trace_base_1.BasicTracerProvider({
57
+ resource: new resources_1.Resource({
58
+ "service.name": `${settings === null || settings === void 0 ? void 0 : settings.serviceName}`,
59
+ }),
60
+ }));
61
+ // Configure span processor to send spans to the exporter
62
+ // vnikolov TODO: add options to configure span processors AND exporters
63
+ // or to prepopulate them
64
+ btProvider.addSpanProcessor(new sdk_trace_base_1.BatchSpanProcessor((settings === null || settings === void 0 ? void 0 : settings.console)
65
+ ? new sdk_trace_base_1.ConsoleSpanExporter()
66
+ : new exporter_trace_otlp_http_1.OTLPTraceExporter({
67
+ // url: "https://jaeger-otlp-http.interop.io/v1/traces",
68
+ // url: "http://localhost:4318/v1/traces",
69
+ url: settings === null || settings === void 0 ? void 0 : settings.url,
70
+ // optional - collection of custom headers to be sent with each request, empty by default
71
+ })));
72
+ }
73
+ if (provider.register) {
74
+ provider.register();
75
+ }
76
+ };
77
+ exports.setTracerProvider = setTracerProvider;
78
+ const isAttributeArray = (value) => {
79
+ if (!Array.isArray(value)) {
80
+ return false;
81
+ }
82
+ return value.every((item) => item === null ||
83
+ item === undefined ||
84
+ typeof item === "string" ||
85
+ typeof item === "number" ||
86
+ typeof item === "boolean");
87
+ };
88
+ const saveDataInAttribute = (data, otelSpan) => {
89
+ const validator = new attributeData_1.TracesAttributeDataValidator();
90
+ validator.validate(data);
91
+ for (const [key, value] of Object.entries(data)) {
92
+ const isObject = Boolean(value && typeof value === "object");
93
+ const isValidPrimitiveValue = typeof value === "number" || typeof value === "string" || typeof value === "boolean";
94
+ if (isAttributeArray(value) || isValidPrimitiveValue) {
95
+ otelSpan.setAttribute(key, value);
96
+ }
97
+ else if (isObject) {
98
+ otelSpan.setAttribute(key, JSON.stringify(value));
99
+ }
100
+ // vnikolov todo: what about symbol, bigint?
101
+ }
102
+ };
103
+ exports.saveDataInAttribute = saveDataInAttribute;
104
+ const replacePlaceHolders = (settings, context) => {
105
+ const regex = /([$][a-zA-Z0-9]+)/g;
106
+ const toParse = JSON.stringify(settings).replace(regex, (m) => {
107
+ const key = m.replace("$", "");
108
+ const dollarVar = context[key];
109
+ if (dollarVar !== undefined) {
110
+ return JSON.stringify(dollarVar).replace(/^"/, "").replace(/"$/, "");
111
+ }
112
+ return m;
113
+ });
114
+ return JSON.parse(toParse);
115
+ };
116
+ exports.replacePlaceHolders = replacePlaceHolders;
117
+ const isFunctionType = (variable) => typeof variable === "function";
118
+ exports.isFunctionType = isFunctionType;
119
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/traces/utils/index.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,6 @@ class BuilderValidator {
6
6
  validate(builder) {
7
7
  validator_1.Validator.throwIfNullOrUndefined(builder, "builder");
8
8
  validator_1.Validator.throwIfNullOrUndefined(builder.logger, "logger");
9
- validator_1.Validator.throwIfNullOrUndefined(builder.metricsBuilder, "metricsBuilder");
10
9
  }
11
10
  }
12
11
  exports.BuilderValidator = BuilderValidator;
@@ -1 +1 @@
1
- {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/validation/builder.ts"],"names":[],"mappings":";;;AACA,2CAAwC;AAExC,MAAa,gBAAgB;IAClB,QAAQ,CAAC,OAAgB;QAC5B,qBAAS,CAAC,sBAAsB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACrD,qBAAS,CAAC,sBAAsB,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC3D,qBAAS,CAAC,sBAAsB,CAAC,OAAO,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;IAC/E,CAAC;CACJ;AAND,4CAMC"}
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/validation/builder.ts"],"names":[],"mappings":";;;AACA,2CAAwC;AAExC,MAAa,gBAAgB;IAClB,QAAQ,CAAC,OAAgB;QAC5B,qBAAS,CAAC,sBAAsB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACrD,qBAAS,CAAC,sBAAsB,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/D,CAAC;CACJ;AALD,4CAKC"}
@@ -1,4 +1,4 @@
1
- import { ApplicationCountMetric } from "../../../metrics/application/count";
1
+ import { ApplicationCountMetric } from "../../../metrics/metrics/application/count";
2
2
  import { InstanceActionHandlerArgs } from "../../../metrics/dependencies/types";
3
3
  export declare class ApplicationCountMetricValidator {
4
4
  validate(metric: ApplicationCountMetric): void;
@@ -1,4 +1,4 @@
1
- import { ApplicationDurationMetricBase } from "../../../metrics/application/durationBase";
1
+ import { ApplicationDurationMetricBase } from "../../../metrics/metrics/application/durationBase";
2
2
  import { InstanceFocusedHandlerArgs } from "../../../metrics/dependencies/types";
3
3
  export declare class ApplicationDurationMetricValidator {
4
4
  validate(metric: ApplicationDurationMetricBase): void;
@@ -1,4 +1,4 @@
1
- import { ApplicationErrorMetric } from "../../../metrics/application/error";
1
+ import { ApplicationErrorMetric } from "../../../metrics/metrics/application/error";
2
2
  import { InstanceErrorHandlerArgs } from "../../../metrics/dependencies/types";
3
3
  export declare class ApplicationErrorMetricValidator {
4
4
  validate(metric: ApplicationErrorMetric): void;
@@ -1,4 +1,4 @@
1
- import { ApplicationStartedMetric } from "../../../metrics/application/started";
1
+ import { ApplicationStartedMetric } from "../../../metrics/metrics/application/started";
2
2
  import { InstanceActionHandlerArgs } from "../../../metrics/dependencies/types";
3
3
  export declare class ApplicationStartedMetricValidator {
4
4
  validate(metric: ApplicationStartedMetric): void;
@@ -1,4 +1,4 @@
1
- import { ApplicationStartupMetric } from "../../../metrics/application/startup";
1
+ import { ApplicationStartupMetric } from "../../../metrics/metrics/application/startup";
2
2
  import { InstanceReadyHandlerArgs } from "../../../metrics/dependencies/types";
3
3
  export declare class ApplicationStartupHistogramMetricValidator {
4
4
  validate(metric: ApplicationStartupMetric): void;
@@ -1,4 +1,4 @@
1
- import { ApplicationStoppedMetric } from "../../../metrics/application/stopped";
1
+ import { ApplicationStoppedMetric } from "../../../metrics/metrics/application/stopped";
2
2
  import { InstanceActionHandlerArgs } from "../../../metrics/dependencies/types";
3
3
  export declare class ApplicationStoppedMetricValidator {
4
4
  validate(metric: ApplicationStoppedMetric): void;
@@ -1,4 +1,4 @@
1
- import { MetricBase } from "../../../metrics/base/base";
1
+ import { MetricBase } from "../../../metrics/metrics/base/base";
2
2
  export declare class MetricBaseValidator {
3
3
  validate(base: MetricBase): void;
4
4
  private validateSettings;
@@ -1,6 +1,6 @@
1
1
  import { Attributes } from "@opentelemetry/api";
2
- import { GaugeMetricBase } from "../../../metrics/base/gauge";
3
- import { ObservableMetricBase } from "../../../metrics/base/observable";
2
+ import { GaugeMetricBase } from "../../../metrics/metrics/base/gauge";
3
+ import { ObservableMetricBase } from "../../../metrics/metrics/base/observable";
4
4
  export declare class GaugeMetricBaseValidator {
5
5
  validate<TData extends Attributes>(base: GaugeMetricBase<TData> | ObservableMetricBase<TData>): void;
6
6
  }
@@ -1,5 +1,5 @@
1
1
  import { LayoutRestoredHandlerArgs } from "../../../metrics/dependencies/types";
2
- import { LayoutStartupMetric } from "../../../metrics/layout/startup";
2
+ import { LayoutStartupMetric } from "../../../metrics/metrics/layout/startup";
3
3
  export declare class LayoutStartupMetricHistogramValidator {
4
4
  validate(metric: LayoutStartupMetric): void;
5
5
  validateLayoutRestored(args: LayoutRestoredHandlerArgs): void;
@@ -1,4 +1,4 @@
1
- import { ApplicationCrashMetric } from "../../../metrics/application/crash";
1
+ import { ApplicationCrashMetric } from "../../../metrics/metrics/application/crash";
2
2
  import { InstanceCrashHandlerArgs } from "../../../metrics/dependencies/types";
3
3
  export declare class PlatformCrashMetricValidator {
4
4
  validate(metric: ApplicationCrashMetric): void;
@@ -1,5 +1,5 @@
1
1
  import { PlatformErrorHandlerArgs } from "../../../metrics/dependencies/types";
2
- import { PlatformErrorMetric } from "../../../metrics/platform/error";
2
+ import { PlatformErrorMetric } from "../../../metrics/metrics/platform/error";
3
3
  export declare class PlatformErrorMetricValidator {
4
4
  validate(metric: PlatformErrorMetric): void;
5
5
  validatePlatformError(args: PlatformErrorHandlerArgs): void;
@@ -1,5 +1,5 @@
1
1
  import { PlatformStartedHandlerArgs } from "../../../metrics/dependencies/types";
2
- import { PlatformStartupMetric } from "../../../metrics/platform/startup";
2
+ import { PlatformStartupMetric } from "../../../metrics/metrics/platform/startup";
3
3
  export declare class PlatformStartupMetricValidator {
4
4
  validate(metric: PlatformStartupMetric): void;
5
5
  validatePlatformStarted(args: PlatformStartedHandlerArgs): void;
@@ -1,5 +1,5 @@
1
1
  import { LayoutRestoredHandlerArgs, WorkspaceActionHandlerArgs } from "../../../metrics/dependencies/types";
2
- import { WorkspaceCountMetric } from "../../../metrics/workspace/count";
2
+ import { WorkspaceCountMetric } from "../../../metrics/metrics/workspace/count";
3
3
  export declare class WorkspaceCountMetricValidator {
4
4
  validate(metric: WorkspaceCountMetric): void;
5
5
  validateWorkspaceStarted(args: LayoutRestoredHandlerArgs): void;
@@ -1,5 +1,5 @@
1
1
  import { WorkspaceActionHandlerArgs } from "../../../metrics/dependencies/types";
2
- import { WorkspaceStoppedMetric } from "../../../metrics/workspace/stopped";
2
+ import { WorkspaceStoppedMetric } from "../../../metrics/metrics/workspace/stopped";
3
3
  export declare class WorkspaceStoppedMetricValidator {
4
4
  validate(metric: WorkspaceStoppedMetric): void;
5
5
  validateWorkspaceStopped(args: WorkspaceActionHandlerArgs): void;
@@ -0,0 +1,3 @@
1
+ export declare class TracesAttributeDataValidator {
2
+ validate(data: unknown): void;
3
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TracesAttributeDataValidator = void 0;
4
+ const validator_1 = require("../validator");
5
+ class TracesAttributeDataValidator {
6
+ validate(data) {
7
+ validator_1.Validator.throwIfNullOrUndefined(data, "data");
8
+ if (data instanceof Array || typeof data !== "object") {
9
+ throw new Error("'data' must be a non-array object");
10
+ }
11
+ if (data &&
12
+ Object.values(data).some((value) => typeof value === "symbol" || typeof value === "bigint")) {
13
+ throw new Error("Invalid data type: 'symbol' or 'bigint' values cannot be stored in OTEL spans.");
14
+ }
15
+ }
16
+ }
17
+ exports.TracesAttributeDataValidator = TracesAttributeDataValidator;
18
+ //# sourceMappingURL=attributeData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attributeData.js","sourceRoot":"","sources":["../../../src/validation/traces/attributeData.ts"],"names":[],"mappings":";;;AAAA,4CAAyC;AAEzC,MAAa,4BAA4B;IAChC,QAAQ,CAAC,IAAa;QAC3B,qBAAS,CAAC,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAE/C,IAAI,IAAI,YAAY,KAAK,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YACrD,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;SACtD;QACD,IACE,IAAI;YACJ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,EAC3F;YACA,MAAM,IAAI,KAAK,CACb,gFAAgF,CACjF,CAAC;SACH;IACH,CAAC;CACF;AAhBD,oEAgBC"}
@@ -0,0 +1,4 @@
1
+ import { Filter } from "../../traces/types";
2
+ export declare class TracesFilterValidator {
3
+ validate(filter: Filter): void;
4
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TracesFilterValidator = void 0;
4
+ const validator_1 = require("../validator");
5
+ class TracesFilterValidator {
6
+ validate(filter) {
7
+ validator_1.Validator.throwIfNullOrUndefined(filter.source, "source");
8
+ validator_1.Validator.throwIfNullOrUndefined(filter.level, "level");
9
+ }
10
+ }
11
+ exports.TracesFilterValidator = TracesFilterValidator;
12
+ //# sourceMappingURL=filter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter.js","sourceRoot":"","sources":["../../../src/validation/traces/filter.ts"],"names":[],"mappings":";;;AACA,4CAAyC;AAEzC,MAAa,qBAAqB;IACzB,QAAQ,CAAC,MAAc;QAC5B,qBAAS,CAAC,sBAAsB,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC1D,qBAAS,CAAC,sBAAsB,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;CACF;AALD,sDAKC"}
@@ -0,0 +1,4 @@
1
+ import { TracesManager } from "../../traces/types";
2
+ export declare class TracesManagerValidator {
3
+ validate(manager: TracesManager): void;
4
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TracesManagerValidator = void 0;
4
+ const validator_1 = require("../validator");
5
+ class TracesManagerValidator {
6
+ validate(manager) {
7
+ validator_1.Validator.throwIfNullOrUndefined(manager, "manager");
8
+ validator_1.Validator.throwIfNullOrUndefined(manager.settings, "settings");
9
+ }
10
+ }
11
+ exports.TracesManagerValidator = TracesManagerValidator;
12
+ //# sourceMappingURL=manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/validation/traces/manager.ts"],"names":[],"mappings":";;;AACA,4CAAyC;AAEzC,MAAa,sBAAsB;IAC1B,QAAQ,CAAC,OAAsB;QACpC,qBAAS,CAAC,sBAAsB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACrD,qBAAS,CAAC,sBAAsB,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACjE,CAAC;CACF;AALD,wDAKC"}
@@ -0,0 +1,4 @@
1
+ import { PropagationInfo, PropagationInfoCarrier, TracingContext, WithSpanCallback } from "../../traces/types";
2
+ export declare class TracesWithSpanValidator {
3
+ validate(source: string, tracingContextOrCallback: TracingContext | WithSpanCallback, propagationInfoOrCallback?: PropagationInfo | PropagationInfoCarrier | WithSpanCallback, callback?: WithSpanCallback): void;
4
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TracesWithSpanValidator = void 0;
4
+ const utils_1 = require("../../traces/utils");
5
+ class TracesWithSpanValidator {
6
+ validate(source, tracingContextOrCallback, propagationInfoOrCallback, callback) {
7
+ if (!source) {
8
+ throw new Error("Missing required argument 'source' in withSpan(). Expected a string.");
9
+ }
10
+ if (!callback &&
11
+ !(0, utils_1.isFunctionType)(tracingContextOrCallback) &&
12
+ !(0, utils_1.isFunctionType)(propagationInfoOrCallback)) {
13
+ throw new Error("Missing required argument 'callback' in withSpan(). Expected a function.");
14
+ }
15
+ }
16
+ }
17
+ exports.TracesWithSpanValidator = TracesWithSpanValidator;
18
+ //# sourceMappingURL=withSpan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withSpan.js","sourceRoot":"","sources":["../../../src/validation/traces/withSpan.ts"],"names":[],"mappings":";;;AAMA,8CAAoD;AAEpD,MAAa,uBAAuB;IAC3B,QAAQ,CACb,MAAc,EACd,wBAA2D,EAC3D,yBAAuF,EACvF,QAA2B;QAE3B,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;SACzF;QACD,IACE,CAAC,QAAQ;YACT,CAAC,IAAA,sBAAc,EAAC,wBAAwB,CAAC;YACzC,CAAC,IAAA,sBAAc,EAAC,yBAAyB,CAAC,EAC1C;YACA,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;SAC7F;IACH,CAAC;CACF;AAlBD,0DAkBC"}
package/package.json CHANGED
@@ -1,12 +1,14 @@
1
1
  {
2
2
  "name": "@interopio/otel",
3
- "version": "0.0.12",
3
+ "version": "0.0.13",
4
4
  "description": "otel library",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "scripts": {
8
8
  "build": "rimraf dist && tsc -p ./tsconfig.json",
9
- "test": "echo \"Error: no test specified\" && exit 1"
9
+ "build:tests": "tsc -p ./tests/tsconfig.json",
10
+ "preversion": "npm run build && npm run test && npm audit",
11
+ "test": "npm run build:tests && mocha tests/tests/dist/**/*.js --recursive --full-trace --exit"
10
12
  },
11
13
  "repository": {
12
14
  "type": "git",
@@ -25,14 +27,20 @@
25
27
  "dependencies": {
26
28
  "@opentelemetry/api": "^1.7.0",
27
29
  "@opentelemetry/exporter-metrics-otlp-http": "^0.48.0",
30
+ "@opentelemetry/exporter-trace-otlp-http": "^0.53.0",
28
31
  "@opentelemetry/sdk-metrics": "^1.21.0"
29
32
  },
30
33
  "devDependencies": {
34
+ "@types/chai": "^4.2.14",
35
+ "@types/mocha": "^10.0.6",
36
+ "@types/node": "^18.11.15",
31
37
  "@typescript-eslint/eslint-plugin": "^7.3.1",
32
38
  "@typescript-eslint/parser": "^7.3.1",
39
+ "chai": "^4.3.0",
33
40
  "eslint": "^8.57.0",
41
+ "mocha": "^10.2.0",
34
42
  "rimraf": "^5.0.5",
35
- "@types/node": "^18.11.15",
36
- "typescript": "^4.2.4"
43
+ "typescript": "^4.2.4",
44
+ "log4js": "^6.9.1"
37
45
  }
38
46
  }
@@ -1,14 +0,0 @@
1
- import { Container as IContainer } from "./types";
2
- import { MetricsManager } from "./metrics/types";
3
- import { TracesManager } from "./traces/types";
4
- import { LogsManager } from "./logs/types";
5
- export declare class ContainerBuilder {
6
- traces: TracesManager;
7
- metrics: MetricsManager;
8
- logs: LogsManager;
9
- constructor();
10
- withMetrics(manager: MetricsManager): this;
11
- withTraces(manager: TracesManager): this;
12
- withLogs(manager: LogsManager): this;
13
- build(): IContainer;
14
- }
@@ -1,34 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ContainerBuilder = void 0;
4
- const container_1 = require("./container");
5
- const nullMetricsManager_1 = require("./metrics/utils/nullMetricsManager");
6
- const containerBuilder_1 = require("./validation/containerBuilder");
7
- const nullManager_1 = require("./utils/nullManager");
8
- class ContainerBuilder {
9
- constructor() {
10
- this.traces = new nullManager_1.NullManager();
11
- this.metrics = new nullMetricsManager_1.NullMetricsManager();
12
- this.logs = new nullManager_1.NullManager();
13
- }
14
- withMetrics(manager) {
15
- this.metrics = manager;
16
- return this;
17
- }
18
- withTraces(manager) {
19
- this.traces = manager;
20
- return this;
21
- }
22
- withLogs(manager) {
23
- this.logs = manager;
24
- return this;
25
- }
26
- build() {
27
- const validator = new containerBuilder_1.ContainerBuilderValidator();
28
- validator.validate(this);
29
- const container = new container_1.Container(this.traces, this.metrics, this.logs);
30
- return container;
31
- }
32
- }
33
- exports.ContainerBuilder = ContainerBuilder;
34
- //# sourceMappingURL=containerBuilder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"containerBuilder.js","sourceRoot":"","sources":["../src/containerBuilder.ts"],"names":[],"mappings":";;;AACA,2CAAwC;AACxC,2EAAwE;AAIxE,oEAA0E;AAC1E,qDAAkD;AAElD,MAAa,gBAAgB;IAKzB;QACI,IAAI,CAAC,MAAM,GAAG,IAAI,yBAAW,EAAE,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,IAAI,uCAAkB,EAAE,CAAC;QACxC,IAAI,CAAC,IAAI,GAAG,IAAI,yBAAW,EAAE,CAAC;IAClC,CAAC;IAEM,WAAW,CAAC,OAAuB;QACtC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,UAAU,CAAC,OAAsB;QACpC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;QACtB,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,QAAQ,CAAC,OAAoB;QAChC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;QACpB,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,KAAK;QACR,MAAM,SAAS,GAAG,IAAI,4CAAyB,EAAE,CAAC;QAClD,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEzB,MAAM,SAAS,GAAG,IAAI,qBAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACtE,OAAO,SAAS,CAAC;IACrB,CAAC;CACJ;AAjCD,4CAiCC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"count.js","sourceRoot":"","sources":["../../../src/metrics/application/count.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"cpu.js","sourceRoot":"","sources":["../../../src/metrics/application/cpu.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,yCAAgD;AAChD,wDAA6E;AAC7E,0DAAuD;AAIvD,MAAa,oBAAqB,SAAQ,uBAAsC;IAC5E,YACI,QAAgC,EAChC,KAAY,EACZ,MAAc,EACP,YAAiC;QAExC,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAFxB,iBAAY,GAAZ,YAAY,CAAqB;IAG5C,CAAC;IAEkB,aAAa,KAAoB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAEtD,WAAW,CAAC,MAA+C;;YAChF,MAAM,oBAAoB,GAAG,IAAI,mCAA4B,EAAE,CAAC;YAChE,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAEjD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;YACrD,IAAI,CAAC,qBAAS,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE;gBACvC,oBAAoB,CAAC,eAAe,CAAC,OAAQ,CAAC,CAAC;gBAE/C,OAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBACtB,MAAM,IAAI,mBAAK,mBAAmB,EAAE,IAAI,CAAC,QAAQ,IAAK,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAE,CAAC;oBAC1F,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;oBAC/B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,aAAa,IAAI,CAAC,GAAG,YAAY,IAAI,CAAC,WAAW,iBAAiB,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;gBAChJ,CAAC,CAAC,CAAC;aACN;QACL,CAAC;KAAA;IAEkB,eAAe,KAAoB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;CACpF;AA7BD,oDA6BC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"crash.js","sourceRoot":"","sources":["../../../src/metrics/application/crash.ts"],"names":[],"mappings":";;;AACA,uCAA0C;AAE1C,mEAA0H;AAI1H,MAAa,sBAAuB,SAAQ,iBAAU;IAKlD,YACI,QAAgC,EACzB,KAAY,EACnB,MAAc,EACP,oBAA0C;QAEjD,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAJjB,UAAK,GAAL,KAAK,CAAO;QAEZ,yBAAoB,GAApB,oBAAoB,CAAsB;QAGjD,IAAI,CAAC,SAAS,GAAG,IAAI,oCAA+B,EAAE,CAAC;QACvD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAEkB,YAAY;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAChC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC9C,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QAE9E,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEkB,SAAS;QACxB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEzF,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEkB,aAAa;QAC5B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEkB,WAAW;QAC1B,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEO,mBAAmB,CAAC,IAA8B;QACtD,IAAI;YACA,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;YAE9C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,IAAI,CAAC,WAAW,eAAe,IAAI,CAAC,QAAQ,CAAC,IAAI,mBAAmB,CAAC,CAAC;YAEjH,MAAM,IAAI,mBAAK,MAAM,EAAE,IAAI,CAAC,MAAM,IAAK,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAE,CAAC;YACnF,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAEzC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,wBAAwB,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;SAC7F;QAAC,OAAO,KAAK,EAAE;YACZ,MAAM,OAAO,GAAG,sEAAsE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC3G,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;SACpC;IACL,CAAC;CACJ;AAtDD,wDAsDC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"duration.js","sourceRoot":"","sources":["../../../src/metrics/application/duration.ts"],"names":[],"mappings":";;;AAEA,iDAA+D;AAE/D,MAAa,yBAA0B,SAAQ,4CAA6B;IAGrD,gBAAgB;QAC/B,MAAM,MAAM,GAAG,EAAE,wBAAwB,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACnE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAEtJ,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEkB,UAAU,CAAC,cAAwB,EAAE,IAA2B;QAC/E,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YAC9B,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC5C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,IAAI,sBAAsB,MAAM,YAAY,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC9G,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAhBD,8DAgBC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"durationBase.js","sourceRoot":"","sources":["../../../src/metrics/application/durationBase.ts"],"names":[],"mappings":"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"}