@superblocksteam/telemetry 2.0.83-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (227) hide show
  1. package/LICENSE.txt +87 -0
  2. package/README.md +155 -0
  3. package/dist/browser/index.d.ts +8 -0
  4. package/dist/browser/index.d.ts.map +1 -0
  5. package/dist/browser/index.js +19 -0
  6. package/dist/browser/index.js.map +1 -0
  7. package/dist/browser/init.d.ts +75 -0
  8. package/dist/browser/init.d.ts.map +1 -0
  9. package/dist/browser/init.js +169 -0
  10. package/dist/browser/init.js.map +1 -0
  11. package/dist/browser/resilient-exporter.d.ts +43 -0
  12. package/dist/browser/resilient-exporter.d.ts.map +1 -0
  13. package/dist/browser/resilient-exporter.js +88 -0
  14. package/dist/browser/resilient-exporter.js.map +1 -0
  15. package/dist/common/contracts/tier2-traces.d.ts +75 -0
  16. package/dist/common/contracts/tier2-traces.d.ts.map +1 -0
  17. package/dist/common/contracts/tier2-traces.js +186 -0
  18. package/dist/common/contracts/tier2-traces.js.map +1 -0
  19. package/dist/common/deployment-type.d.ts +18 -0
  20. package/dist/common/deployment-type.d.ts.map +1 -0
  21. package/dist/common/deployment-type.js +30 -0
  22. package/dist/common/deployment-type.js.map +1 -0
  23. package/dist/common/guardrails.d.ts +116 -0
  24. package/dist/common/guardrails.d.ts.map +1 -0
  25. package/dist/common/guardrails.js +189 -0
  26. package/dist/common/guardrails.js.map +1 -0
  27. package/dist/common/index.d.ts +16 -0
  28. package/dist/common/index.d.ts.map +1 -0
  29. package/dist/common/index.js +32 -0
  30. package/dist/common/index.js.map +1 -0
  31. package/dist/common/log-sanitizer.d.ts +78 -0
  32. package/dist/common/log-sanitizer.d.ts.map +1 -0
  33. package/dist/common/log-sanitizer.js +340 -0
  34. package/dist/common/log-sanitizer.js.map +1 -0
  35. package/dist/common/policy-evaluator.d.ts +103 -0
  36. package/dist/common/policy-evaluator.d.ts.map +1 -0
  37. package/dist/common/policy-evaluator.js +200 -0
  38. package/dist/common/policy-evaluator.js.map +1 -0
  39. package/dist/common/resource.d.ts +62 -0
  40. package/dist/common/resource.d.ts.map +1 -0
  41. package/dist/common/resource.js +106 -0
  42. package/dist/common/resource.js.map +1 -0
  43. package/dist/common/tier-hints.d.ts +182 -0
  44. package/dist/common/tier-hints.d.ts.map +1 -0
  45. package/dist/common/tier-hints.js +209 -0
  46. package/dist/common/tier-hints.js.map +1 -0
  47. package/dist/index.d.ts +43 -0
  48. package/dist/index.d.ts.map +1 -0
  49. package/dist/index.js +76 -0
  50. package/dist/index.js.map +1 -0
  51. package/dist/lint/forbidden-attributes.d.ts +149 -0
  52. package/dist/lint/forbidden-attributes.d.ts.map +1 -0
  53. package/dist/lint/forbidden-attributes.js +214 -0
  54. package/dist/lint/forbidden-attributes.js.map +1 -0
  55. package/dist/lint/index.d.ts +9 -0
  56. package/dist/lint/index.d.ts.map +1 -0
  57. package/dist/lint/index.js +16 -0
  58. package/dist/lint/index.js.map +1 -0
  59. package/dist/llmobs/index.d.ts +22 -0
  60. package/dist/llmobs/index.d.ts.map +1 -0
  61. package/dist/llmobs/index.js +29 -0
  62. package/dist/llmobs/index.js.map +1 -0
  63. package/dist/llmobs/tier1-exporter.d.ts +146 -0
  64. package/dist/llmobs/tier1-exporter.d.ts.map +1 -0
  65. package/dist/llmobs/tier1-exporter.js +196 -0
  66. package/dist/llmobs/tier1-exporter.js.map +1 -0
  67. package/dist/llmobs/tier2-summarizer.d.ts +268 -0
  68. package/dist/llmobs/tier2-summarizer.d.ts.map +1 -0
  69. package/dist/llmobs/tier2-summarizer.js +650 -0
  70. package/dist/llmobs/tier2-summarizer.js.map +1 -0
  71. package/dist/node/exporters/resilient-exporter.d.ts +77 -0
  72. package/dist/node/exporters/resilient-exporter.d.ts.map +1 -0
  73. package/dist/node/exporters/resilient-exporter.js +129 -0
  74. package/dist/node/exporters/resilient-exporter.js.map +1 -0
  75. package/dist/node/index.d.ts +11 -0
  76. package/dist/node/index.d.ts.map +1 -0
  77. package/dist/node/index.js +24 -0
  78. package/dist/node/index.js.map +1 -0
  79. package/dist/node/init.d.ts +75 -0
  80. package/dist/node/init.d.ts.map +1 -0
  81. package/dist/node/init.js +245 -0
  82. package/dist/node/init.js.map +1 -0
  83. package/dist/node/log-processor.d.ts +83 -0
  84. package/dist/node/log-processor.d.ts.map +1 -0
  85. package/dist/node/log-processor.js +266 -0
  86. package/dist/node/log-processor.js.map +1 -0
  87. package/dist/node/metrics-client.d.ts +66 -0
  88. package/dist/node/metrics-client.d.ts.map +1 -0
  89. package/dist/node/metrics-client.js +193 -0
  90. package/dist/node/metrics-client.js.map +1 -0
  91. package/dist/node/traced-socket.d.ts +76 -0
  92. package/dist/node/traced-socket.d.ts.map +1 -0
  93. package/dist/node/traced-socket.js +261 -0
  94. package/dist/node/traced-socket.js.map +1 -0
  95. package/dist/testing/in-memory-exporter.d.ts +179 -0
  96. package/dist/testing/in-memory-exporter.d.ts.map +1 -0
  97. package/dist/testing/in-memory-exporter.js +254 -0
  98. package/dist/testing/in-memory-exporter.js.map +1 -0
  99. package/dist/testing/index.d.ts +8 -0
  100. package/dist/testing/index.d.ts.map +1 -0
  101. package/dist/testing/index.js +19 -0
  102. package/dist/testing/index.js.map +1 -0
  103. package/dist/testing/test-init.d.ts +80 -0
  104. package/dist/testing/test-init.d.ts.map +1 -0
  105. package/dist/testing/test-init.js +144 -0
  106. package/dist/testing/test-init.js.map +1 -0
  107. package/dist/types/index.d.ts +40 -0
  108. package/dist/types/index.d.ts.map +1 -0
  109. package/dist/types/index.js +23 -0
  110. package/dist/types/index.js.map +1 -0
  111. package/dist/types/policy.d.ts +92 -0
  112. package/dist/types/policy.d.ts.map +1 -0
  113. package/dist/types/policy.js +125 -0
  114. package/dist/types/policy.js.map +1 -0
  115. package/dist-esm/browser/index.d.ts +8 -0
  116. package/dist-esm/browser/index.d.ts.map +1 -0
  117. package/dist-esm/browser/index.js +9 -0
  118. package/dist-esm/browser/index.js.map +1 -0
  119. package/dist-esm/browser/init.d.ts +75 -0
  120. package/dist-esm/browser/init.d.ts.map +1 -0
  121. package/dist-esm/browser/init.js +162 -0
  122. package/dist-esm/browser/init.js.map +1 -0
  123. package/dist-esm/browser/resilient-exporter.d.ts +43 -0
  124. package/dist-esm/browser/resilient-exporter.d.ts.map +1 -0
  125. package/dist-esm/browser/resilient-exporter.js +84 -0
  126. package/dist-esm/browser/resilient-exporter.js.map +1 -0
  127. package/dist-esm/common/contracts/tier2-traces.d.ts +75 -0
  128. package/dist-esm/common/contracts/tier2-traces.d.ts.map +1 -0
  129. package/dist-esm/common/contracts/tier2-traces.js +178 -0
  130. package/dist-esm/common/contracts/tier2-traces.js.map +1 -0
  131. package/dist-esm/common/deployment-type.d.ts +18 -0
  132. package/dist-esm/common/deployment-type.d.ts.map +1 -0
  133. package/dist-esm/common/deployment-type.js +27 -0
  134. package/dist-esm/common/deployment-type.js.map +1 -0
  135. package/dist-esm/common/guardrails.d.ts +116 -0
  136. package/dist-esm/common/guardrails.d.ts.map +1 -0
  137. package/dist-esm/common/guardrails.js +179 -0
  138. package/dist-esm/common/guardrails.js.map +1 -0
  139. package/dist-esm/common/index.d.ts +16 -0
  140. package/dist-esm/common/index.d.ts.map +1 -0
  141. package/dist-esm/common/index.js +16 -0
  142. package/dist-esm/common/index.js.map +1 -0
  143. package/dist-esm/common/log-sanitizer.d.ts +78 -0
  144. package/dist-esm/common/log-sanitizer.d.ts.map +1 -0
  145. package/dist-esm/common/log-sanitizer.js +331 -0
  146. package/dist-esm/common/log-sanitizer.js.map +1 -0
  147. package/dist-esm/common/policy-evaluator.d.ts +103 -0
  148. package/dist-esm/common/policy-evaluator.d.ts.map +1 -0
  149. package/dist-esm/common/policy-evaluator.js +196 -0
  150. package/dist-esm/common/policy-evaluator.js.map +1 -0
  151. package/dist-esm/common/resource.d.ts +62 -0
  152. package/dist-esm/common/resource.d.ts.map +1 -0
  153. package/dist-esm/common/resource.js +100 -0
  154. package/dist-esm/common/resource.js.map +1 -0
  155. package/dist-esm/common/tier-hints.d.ts +182 -0
  156. package/dist-esm/common/tier-hints.d.ts.map +1 -0
  157. package/dist-esm/common/tier-hints.js +199 -0
  158. package/dist-esm/common/tier-hints.js.map +1 -0
  159. package/dist-esm/index.d.ts +43 -0
  160. package/dist-esm/index.d.ts.map +1 -0
  161. package/dist-esm/index.js +53 -0
  162. package/dist-esm/index.js.map +1 -0
  163. package/dist-esm/lint/forbidden-attributes.d.ts +149 -0
  164. package/dist-esm/lint/forbidden-attributes.d.ts.map +1 -0
  165. package/dist-esm/lint/forbidden-attributes.js +209 -0
  166. package/dist-esm/lint/forbidden-attributes.js.map +1 -0
  167. package/dist-esm/lint/index.d.ts +9 -0
  168. package/dist-esm/lint/index.d.ts.map +1 -0
  169. package/dist-esm/lint/index.js +9 -0
  170. package/dist-esm/lint/index.js.map +1 -0
  171. package/dist-esm/llmobs/index.d.ts +22 -0
  172. package/dist-esm/llmobs/index.d.ts.map +1 -0
  173. package/dist-esm/llmobs/index.js +22 -0
  174. package/dist-esm/llmobs/index.js.map +1 -0
  175. package/dist-esm/llmobs/tier1-exporter.d.ts +146 -0
  176. package/dist-esm/llmobs/tier1-exporter.d.ts.map +1 -0
  177. package/dist-esm/llmobs/tier1-exporter.js +190 -0
  178. package/dist-esm/llmobs/tier1-exporter.js.map +1 -0
  179. package/dist-esm/llmobs/tier2-summarizer.d.ts +268 -0
  180. package/dist-esm/llmobs/tier2-summarizer.d.ts.map +1 -0
  181. package/dist-esm/llmobs/tier2-summarizer.js +646 -0
  182. package/dist-esm/llmobs/tier2-summarizer.js.map +1 -0
  183. package/dist-esm/node/exporters/resilient-exporter.d.ts +77 -0
  184. package/dist-esm/node/exporters/resilient-exporter.d.ts.map +1 -0
  185. package/dist-esm/node/exporters/resilient-exporter.js +125 -0
  186. package/dist-esm/node/exporters/resilient-exporter.js.map +1 -0
  187. package/dist-esm/node/index.d.ts +11 -0
  188. package/dist-esm/node/index.d.ts.map +1 -0
  189. package/dist-esm/node/index.js +11 -0
  190. package/dist-esm/node/index.js.map +1 -0
  191. package/dist-esm/node/init.d.ts +75 -0
  192. package/dist-esm/node/init.d.ts.map +1 -0
  193. package/dist-esm/node/init.js +239 -0
  194. package/dist-esm/node/init.js.map +1 -0
  195. package/dist-esm/node/log-processor.d.ts +83 -0
  196. package/dist-esm/node/log-processor.d.ts.map +1 -0
  197. package/dist-esm/node/log-processor.js +261 -0
  198. package/dist-esm/node/log-processor.js.map +1 -0
  199. package/dist-esm/node/metrics-client.d.ts +66 -0
  200. package/dist-esm/node/metrics-client.d.ts.map +1 -0
  201. package/dist-esm/node/metrics-client.js +189 -0
  202. package/dist-esm/node/metrics-client.js.map +1 -0
  203. package/dist-esm/node/traced-socket.d.ts +76 -0
  204. package/dist-esm/node/traced-socket.d.ts.map +1 -0
  205. package/dist-esm/node/traced-socket.js +257 -0
  206. package/dist-esm/node/traced-socket.js.map +1 -0
  207. package/dist-esm/testing/in-memory-exporter.d.ts +179 -0
  208. package/dist-esm/testing/in-memory-exporter.d.ts.map +1 -0
  209. package/dist-esm/testing/in-memory-exporter.js +248 -0
  210. package/dist-esm/testing/in-memory-exporter.js.map +1 -0
  211. package/dist-esm/testing/index.d.ts +8 -0
  212. package/dist-esm/testing/index.d.ts.map +1 -0
  213. package/dist-esm/testing/index.js +8 -0
  214. package/dist-esm/testing/index.js.map +1 -0
  215. package/dist-esm/testing/test-init.d.ts +80 -0
  216. package/dist-esm/testing/test-init.d.ts.map +1 -0
  217. package/dist-esm/testing/test-init.js +137 -0
  218. package/dist-esm/testing/test-init.js.map +1 -0
  219. package/dist-esm/types/index.d.ts +40 -0
  220. package/dist-esm/types/index.d.ts.map +1 -0
  221. package/dist-esm/types/index.js +7 -0
  222. package/dist-esm/types/index.js.map +1 -0
  223. package/dist-esm/types/policy.d.ts +92 -0
  224. package/dist-esm/types/policy.d.ts.map +1 -0
  225. package/dist-esm/types/policy.js +122 -0
  226. package/dist-esm/types/policy.js.map +1 -0
  227. package/package.json +101 -0
@@ -0,0 +1,254 @@
1
+ "use strict";
2
+ /**
3
+ * In-Memory Exporters for Testing
4
+ *
5
+ * These exporters capture telemetry data in memory for assertion in tests.
6
+ * No external connections are made.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.InMemoryLogExporter = exports.InMemoryMetricExporter = exports.InMemorySpanExporter = void 0;
10
+ const core_1 = require("@opentelemetry/core");
11
+ /**
12
+ * In-memory span exporter for testing.
13
+ * Captures all exported spans for assertion.
14
+ */
15
+ class InMemorySpanExporter {
16
+ spans = [];
17
+ stopped = false;
18
+ /**
19
+ * Export spans to in-memory storage.
20
+ */
21
+ export(spans, resultCallback) {
22
+ if (this.stopped) {
23
+ resultCallback({ code: core_1.ExportResultCode.FAILED });
24
+ return;
25
+ }
26
+ this.spans.push(...spans);
27
+ resultCallback({ code: core_1.ExportResultCode.SUCCESS });
28
+ }
29
+ /**
30
+ * Shutdown the exporter.
31
+ */
32
+ shutdown() {
33
+ this.stopped = true;
34
+ return Promise.resolve();
35
+ }
36
+ /**
37
+ * Force flush (no-op for in-memory).
38
+ */
39
+ forceFlush() {
40
+ return Promise.resolve();
41
+ }
42
+ /**
43
+ * Get all captured spans.
44
+ */
45
+ getSpans() {
46
+ return [...this.spans];
47
+ }
48
+ /**
49
+ * Get the number of captured spans.
50
+ */
51
+ getSpanCount() {
52
+ return this.spans.length;
53
+ }
54
+ /**
55
+ * Clear captured spans.
56
+ */
57
+ reset() {
58
+ this.spans = [];
59
+ }
60
+ /**
61
+ * Find spans by name.
62
+ *
63
+ * @param name - Span name to search for
64
+ * @returns Matching spans
65
+ */
66
+ findSpansByName(name) {
67
+ return this.spans.filter((s) => s.name === name);
68
+ }
69
+ /**
70
+ * Find spans by name pattern (regex).
71
+ *
72
+ * @param pattern - Regex pattern to match span names
73
+ * @returns Matching spans
74
+ */
75
+ findSpansByPattern(pattern) {
76
+ return this.spans.filter((s) => pattern.test(s.name));
77
+ }
78
+ /**
79
+ * Find spans with a specific attribute value.
80
+ *
81
+ * @param key - Attribute key
82
+ * @param value - Attribute value (or regex for pattern matching)
83
+ * @returns Matching spans
84
+ */
85
+ findSpansByAttribute(key, value) {
86
+ return this.spans.filter((s) => {
87
+ const attr = s.attributes[key];
88
+ if (attr === undefined)
89
+ return false;
90
+ if (value instanceof RegExp) {
91
+ return value.test(String(attr));
92
+ }
93
+ return attr === value;
94
+ });
95
+ }
96
+ /**
97
+ * Assert no spans have a specific attribute value.
98
+ * Useful for ensuring Tier 1 data doesn't leak.
99
+ *
100
+ * @param key - Attribute key
101
+ * @param value - Forbidden attribute value (or regex pattern)
102
+ * @throws Error if forbidden attribute is found
103
+ */
104
+ assertNoAttribute(key, value) {
105
+ for (const span of this.spans) {
106
+ const attr = span.attributes[key];
107
+ if (attr === undefined)
108
+ continue;
109
+ const matches = value instanceof RegExp ? value.test(String(attr)) : attr === value;
110
+ if (matches) {
111
+ throw new Error(`Found forbidden attribute ${key}=${String(attr)} on span "${span.name}"`);
112
+ }
113
+ }
114
+ }
115
+ /**
116
+ * Assert all spans have a required attribute.
117
+ *
118
+ * @param key - Attribute key
119
+ * @throws Error if any span is missing the attribute
120
+ */
121
+ assertAllHaveAttribute(key) {
122
+ for (const span of this.spans) {
123
+ if (span.attributes[key] === undefined) {
124
+ throw new Error(`Span "${span.name}" is missing required attribute "${key}"`);
125
+ }
126
+ }
127
+ }
128
+ /**
129
+ * Get span names for debugging.
130
+ */
131
+ getSpanNames() {
132
+ return this.spans.map((s) => s.name);
133
+ }
134
+ }
135
+ exports.InMemorySpanExporter = InMemorySpanExporter;
136
+ /**
137
+ * In-memory metric exporter for testing.
138
+ */
139
+ class InMemoryMetricExporter {
140
+ metrics = [];
141
+ /**
142
+ * Export metrics to in-memory storage.
143
+ */
144
+ export(metrics) {
145
+ this.metrics.push(...metrics);
146
+ }
147
+ /**
148
+ * Get all captured metrics.
149
+ */
150
+ getMetrics() {
151
+ return [...this.metrics];
152
+ }
153
+ /**
154
+ * Find metrics by name.
155
+ *
156
+ * @param name - Metric name
157
+ * @returns Matching metrics
158
+ */
159
+ findMetricsByName(name) {
160
+ return this.metrics.filter((m) => m.name === name);
161
+ }
162
+ /**
163
+ * Clear captured metrics.
164
+ */
165
+ reset() {
166
+ this.metrics = [];
167
+ }
168
+ /**
169
+ * Assert no metrics have a specific label value.
170
+ *
171
+ * @param labelKey - Label key
172
+ * @param value - Forbidden value
173
+ * @throws Error if forbidden label is found
174
+ */
175
+ assertNoLabel(labelKey, value) {
176
+ for (const metric of this.metrics) {
177
+ for (const dp of metric.dataPoints) {
178
+ const label = dp.attributes[labelKey];
179
+ if (label === undefined)
180
+ continue;
181
+ const matches = value instanceof RegExp ? value.test(String(label)) : label === value;
182
+ if (matches) {
183
+ throw new Error(`Found forbidden label ${labelKey}=${String(label)} on metric "${metric.name}"`);
184
+ }
185
+ }
186
+ }
187
+ }
188
+ }
189
+ exports.InMemoryMetricExporter = InMemoryMetricExporter;
190
+ /**
191
+ * In-memory log exporter for testing.
192
+ */
193
+ class InMemoryLogExporter {
194
+ logs = [];
195
+ /**
196
+ * Export logs to in-memory storage.
197
+ */
198
+ export(logs) {
199
+ this.logs.push(...logs);
200
+ }
201
+ /**
202
+ * Get all captured logs.
203
+ */
204
+ getLogs() {
205
+ return [...this.logs];
206
+ }
207
+ /**
208
+ * Find logs by severity.
209
+ *
210
+ * @param severityNumber - Severity level (e.g., 9 for INFO, 13 for WARN, 17 for ERROR)
211
+ * @returns Matching logs
212
+ */
213
+ findLogsBySeverity(severityNumber) {
214
+ return this.logs.filter((l) => l.severityNumber === severityNumber);
215
+ }
216
+ /**
217
+ * Find logs containing text.
218
+ *
219
+ * @param text - Text to search for in log body
220
+ * @returns Matching logs
221
+ */
222
+ findLogsContaining(text) {
223
+ return this.logs.filter((l) => {
224
+ if (l.body === undefined)
225
+ return false;
226
+ const bodyStr = String(l.body);
227
+ return text instanceof RegExp ? text.test(bodyStr) : bodyStr.includes(text);
228
+ });
229
+ }
230
+ /**
231
+ * Clear captured logs.
232
+ */
233
+ reset() {
234
+ this.logs = [];
235
+ }
236
+ /**
237
+ * Assert no logs contain sensitive data.
238
+ *
239
+ * @param pattern - Pattern to check for (forbidden content)
240
+ * @throws Error if forbidden content is found
241
+ */
242
+ assertNoLogContains(pattern) {
243
+ for (const log of this.logs) {
244
+ if (log.body === undefined)
245
+ continue;
246
+ const bodyStr = String(log.body);
247
+ if (pattern.test(bodyStr)) {
248
+ throw new Error(`Found forbidden content in log: ${bodyStr.slice(0, 100)}...`);
249
+ }
250
+ }
251
+ }
252
+ }
253
+ exports.InMemoryLogExporter = InMemoryLogExporter;
254
+ //# sourceMappingURL=in-memory-exporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"in-memory-exporter.js","sourceRoot":"","sources":["../../src/testing/in-memory-exporter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Testing Utilities
3
+ *
4
+ * In-memory exporters and test helpers for telemetry assertions.
5
+ */
6
+ export { InMemorySpanExporter, InMemoryMetricExporter, InMemoryLogExporter, type CapturedMetric, type CapturedLogRecord, } from './in-memory-exporter.js';
7
+ export { initTestTelemetry, getTestTelemetryInstance, resetTestTelemetry, getTestTracer, withTestSpan, type TestTelemetryInstance, } from './test-init.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,KAAK,cAAc,EACnB,KAAK,iBAAiB,GACvB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,KAAK,qBAAqB,GAC3B,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ /**
3
+ * Testing Utilities
4
+ *
5
+ * In-memory exporters and test helpers for telemetry assertions.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.withTestSpan = exports.getTestTracer = exports.resetTestTelemetry = exports.getTestTelemetryInstance = exports.initTestTelemetry = exports.InMemoryLogExporter = exports.InMemoryMetricExporter = exports.InMemorySpanExporter = void 0;
9
+ var in_memory_exporter_js_1 = require("./in-memory-exporter.js");
10
+ Object.defineProperty(exports, "InMemorySpanExporter", { enumerable: true, get: function () { return in_memory_exporter_js_1.InMemorySpanExporter; } });
11
+ Object.defineProperty(exports, "InMemoryMetricExporter", { enumerable: true, get: function () { return in_memory_exporter_js_1.InMemoryMetricExporter; } });
12
+ Object.defineProperty(exports, "InMemoryLogExporter", { enumerable: true, get: function () { return in_memory_exporter_js_1.InMemoryLogExporter; } });
13
+ var test_init_js_1 = require("./test-init.js");
14
+ Object.defineProperty(exports, "initTestTelemetry", { enumerable: true, get: function () { return test_init_js_1.initTestTelemetry; } });
15
+ Object.defineProperty(exports, "getTestTelemetryInstance", { enumerable: true, get: function () { return test_init_js_1.getTestTelemetryInstance; } });
16
+ Object.defineProperty(exports, "resetTestTelemetry", { enumerable: true, get: function () { return test_init_js_1.resetTestTelemetry; } });
17
+ Object.defineProperty(exports, "getTestTracer", { enumerable: true, get: function () { return test_init_js_1.getTestTracer; } });
18
+ Object.defineProperty(exports, "withTestSpan", { enumerable: true, get: function () { return test_init_js_1.withTestSpan; } });
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,iEAMiC;AAL/B,6HAAA,oBAAoB,OAAA;AACpB,+HAAA,sBAAsB,OAAA;AACtB,4HAAA,mBAAmB,OAAA;AAKrB,+CAOwB;AANtB,iHAAA,iBAAiB,OAAA;AACjB,wHAAA,wBAAwB,OAAA;AACxB,kHAAA,kBAAkB,OAAA;AAClB,6GAAA,aAAa,OAAA;AACb,4GAAA,YAAY,OAAA"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Test Telemetry Initialization
3
+ *
4
+ * Initialize telemetry for testing with in-memory exporters.
5
+ * No external connections are made.
6
+ */
7
+ import { trace } from "@opentelemetry/api";
8
+ import { InMemorySpanExporter, InMemoryMetricExporter, InMemoryLogExporter } from "./in-memory-exporter.js";
9
+ import { TelemetryPolicyEvaluator } from "../common/policy-evaluator.js";
10
+ import type { BaseTelemetryConfig } from "../types/index.js";
11
+ /**
12
+ * Test telemetry instance with in-memory exporters.
13
+ */
14
+ export interface TestTelemetryInstance {
15
+ /** In-memory span exporter */
16
+ spanExporter: InMemorySpanExporter;
17
+ /** In-memory metric exporter */
18
+ metricExporter: InMemoryMetricExporter;
19
+ /** In-memory log exporter */
20
+ logExporter: InMemoryLogExporter;
21
+ /** Policy evaluator */
22
+ policyEvaluator: TelemetryPolicyEvaluator;
23
+ /** Reset all exporters (call in beforeEach) */
24
+ reset: () => void;
25
+ /** Shutdown (call in afterAll) */
26
+ shutdown: () => Promise<void>;
27
+ }
28
+ /**
29
+ * Initialize telemetry for testing.
30
+ *
31
+ * Uses in-memory exporters, no external connections.
32
+ * Call once per test file, use reset() in beforeEach.
33
+ *
34
+ * @param config - Optional test configuration
35
+ * @returns Test telemetry instance
36
+ *
37
+ * @example
38
+ * ```typescript
39
+ * import { initTestTelemetry } from '@superblocksteam/telemetry/testing';
40
+ *
41
+ * describe('MyService', () => {
42
+ * const { spanExporter, reset } = initTestTelemetry();
43
+ *
44
+ * beforeEach(() => reset());
45
+ *
46
+ * it('creates expected spans', async () => {
47
+ * // ... test code ...
48
+ * expect(spanExporter.getSpans()).toHaveLength(1);
49
+ * });
50
+ * });
51
+ * ```
52
+ */
53
+ export declare function initTestTelemetry(config?: Partial<BaseTelemetryConfig>): TestTelemetryInstance;
54
+ /**
55
+ * Get the test telemetry instance.
56
+ *
57
+ * @throws Error if not initialized
58
+ */
59
+ export declare function getTestTelemetryInstance(): TestTelemetryInstance;
60
+ /**
61
+ * Reset the test telemetry (for cleanup between test files).
62
+ */
63
+ export declare function resetTestTelemetry(): Promise<void>;
64
+ /**
65
+ * Get a tracer for tests.
66
+ *
67
+ * @param name - Tracer name
68
+ * @returns Tracer instance
69
+ */
70
+ export declare function getTestTracer(name?: string): ReturnType<typeof trace.getTracer>;
71
+ /**
72
+ * Run a function within a test span.
73
+ * Useful for testing span creation.
74
+ *
75
+ * @param name - Span name
76
+ * @param fn - Function to run
77
+ * @returns Function result
78
+ */
79
+ export declare function withTestSpan<T>(name: string, fn: () => Promise<T> | T): Promise<T>;
80
+ //# sourceMappingURL=test-init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-init.d.ts","sourceRoot":"","sources":["../../src/testing/test-init.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAM3C,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,8BAA8B;IAC9B,YAAY,EAAE,oBAAoB,CAAC;IACnC,gCAAgC;IAChC,cAAc,EAAE,sBAAsB,CAAC;IACvC,6BAA6B;IAC7B,WAAW,EAAE,mBAAmB,CAAC;IACjC,uBAAuB;IACvB,eAAe,EAAE,wBAAwB,CAAC;IAC1C,+CAA+C;IAC/C,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,kCAAkC;IAClC,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B;AAeD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,GACpC,qBAAqB,CA2CvB;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,IAAI,qBAAqB,CAOhE;AAED;;GAEG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAIxD;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,IAAI,SAAS,GACZ,UAAU,CAAC,OAAO,KAAK,CAAC,SAAS,CAAC,CAEpC;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAAC,CAAC,EAClC,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GACvB,OAAO,CAAC,CAAC,CAAC,CASZ"}
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+ /**
3
+ * Test Telemetry Initialization
4
+ *
5
+ * Initialize telemetry for testing with in-memory exporters.
6
+ * No external connections are made.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.initTestTelemetry = initTestTelemetry;
10
+ exports.getTestTelemetryInstance = getTestTelemetryInstance;
11
+ exports.resetTestTelemetry = resetTestTelemetry;
12
+ exports.getTestTracer = getTestTracer;
13
+ exports.withTestSpan = withTestSpan;
14
+ const api_1 = require("@opentelemetry/api");
15
+ const sdk_trace_node_1 = require("@opentelemetry/sdk-trace-node");
16
+ const sdk_trace_base_1 = require("@opentelemetry/sdk-trace-base");
17
+ const context_async_hooks_1 = require("@opentelemetry/context-async-hooks");
18
+ const core_1 = require("@opentelemetry/core");
19
+ const in_memory_exporter_js_1 = require("./in-memory-exporter.js");
20
+ const resource_js_1 = require("../common/resource.js");
21
+ const policy_evaluator_js_1 = require("../common/policy-evaluator.js");
22
+ const policy_js_1 = require("../types/policy.js");
23
+ // Singleton for tests
24
+ let testInstance;
25
+ let tracerProvider;
26
+ /**
27
+ * Default test configuration.
28
+ */
29
+ const DEFAULT_TEST_CONFIG = {
30
+ serviceName: "test-service",
31
+ serviceVersion: "0.0.0-test",
32
+ environment: "test",
33
+ };
34
+ /**
35
+ * Initialize telemetry for testing.
36
+ *
37
+ * Uses in-memory exporters, no external connections.
38
+ * Call once per test file, use reset() in beforeEach.
39
+ *
40
+ * @param config - Optional test configuration
41
+ * @returns Test telemetry instance
42
+ *
43
+ * @example
44
+ * ```typescript
45
+ * import { initTestTelemetry } from '@superblocksteam/telemetry/testing';
46
+ *
47
+ * describe('MyService', () => {
48
+ * const { spanExporter, reset } = initTestTelemetry();
49
+ *
50
+ * beforeEach(() => reset());
51
+ *
52
+ * it('creates expected spans', async () => {
53
+ * // ... test code ...
54
+ * expect(spanExporter.getSpans()).toHaveLength(1);
55
+ * });
56
+ * });
57
+ * ```
58
+ */
59
+ function initTestTelemetry(config) {
60
+ if (testInstance) {
61
+ return testInstance;
62
+ }
63
+ const mergedConfig = { ...DEFAULT_TEST_CONFIG, ...config };
64
+ const resource = (0, resource_js_1.buildResource)(mergedConfig);
65
+ const spanExporter = new in_memory_exporter_js_1.InMemorySpanExporter();
66
+ const metricExporter = new in_memory_exporter_js_1.InMemoryMetricExporter();
67
+ const logExporter = new in_memory_exporter_js_1.InMemoryLogExporter();
68
+ const policyEvaluator = new policy_evaluator_js_1.TelemetryPolicyEvaluator(policy_js_1.CLOUD_DEFAULT_POLICY);
69
+ // Create provider with span processors in constructor (OTEL v2.x API)
70
+ tracerProvider = new sdk_trace_node_1.NodeTracerProvider({
71
+ resource,
72
+ spanProcessors: [new sdk_trace_base_1.SimpleSpanProcessor(spanExporter)],
73
+ });
74
+ // Register the provider
75
+ tracerProvider.register({
76
+ propagator: new core_1.W3CTraceContextPropagator(),
77
+ contextManager: new context_async_hooks_1.AsyncLocalStorageContextManager(),
78
+ });
79
+ testInstance = {
80
+ spanExporter,
81
+ metricExporter,
82
+ logExporter,
83
+ policyEvaluator,
84
+ reset: () => {
85
+ spanExporter.reset();
86
+ metricExporter.reset();
87
+ logExporter.reset();
88
+ },
89
+ shutdown: async () => {
90
+ await tracerProvider?.shutdown();
91
+ testInstance = undefined;
92
+ tracerProvider = undefined;
93
+ },
94
+ };
95
+ return testInstance;
96
+ }
97
+ /**
98
+ * Get the test telemetry instance.
99
+ *
100
+ * @throws Error if not initialized
101
+ */
102
+ function getTestTelemetryInstance() {
103
+ if (!testInstance) {
104
+ throw new Error("[TestTelemetry] Not initialized. Call initTestTelemetry() first.");
105
+ }
106
+ return testInstance;
107
+ }
108
+ /**
109
+ * Reset the test telemetry (for cleanup between test files).
110
+ */
111
+ async function resetTestTelemetry() {
112
+ if (testInstance) {
113
+ await testInstance.shutdown();
114
+ }
115
+ }
116
+ /**
117
+ * Get a tracer for tests.
118
+ *
119
+ * @param name - Tracer name
120
+ * @returns Tracer instance
121
+ */
122
+ function getTestTracer(name = "test") {
123
+ return api_1.trace.getTracer(name);
124
+ }
125
+ /**
126
+ * Run a function within a test span.
127
+ * Useful for testing span creation.
128
+ *
129
+ * @param name - Span name
130
+ * @param fn - Function to run
131
+ * @returns Function result
132
+ */
133
+ async function withTestSpan(name, fn) {
134
+ const tracer = getTestTracer();
135
+ return tracer.startActiveSpan(name, async (span) => {
136
+ try {
137
+ return await fn();
138
+ }
139
+ finally {
140
+ span.end();
141
+ }
142
+ });
143
+ }
144
+ //# sourceMappingURL=test-init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-init.js","sourceRoot":"","sources":["../../src/testing/test-init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Telemetry Types
3
+ *
4
+ * Re-exports policy types and config interfaces.
5
+ */
6
+ export * from './policy.js';
7
+ /**
8
+ * Base configuration for telemetry initialization.
9
+ */
10
+ export interface BaseTelemetryConfig {
11
+ /** Service name (e.g., 'superblocks-server') */
12
+ serviceName: string;
13
+ /** Service version (e.g., '1.0.0') */
14
+ serviceVersion: string;
15
+ /** Deployment environment (e.g., 'production', 'staging', 'development') */
16
+ environment: string;
17
+ /** Additional resource attributes */
18
+ resourceAttributes?: Record<string, string>;
19
+ }
20
+ /**
21
+ * Node.js specific telemetry configuration.
22
+ */
23
+ export interface NodeTelemetryConfig extends BaseTelemetryConfig {
24
+ /** OTLP collector URL (e.g., http://localhost:4318) */
25
+ otlpUrl?: string;
26
+ /** OpenTelemetry instrumentations to enable */
27
+ instrumentations?: unknown[];
28
+ /** Whether to enable metrics collection */
29
+ metricsEnabled?: boolean;
30
+ /** Whether to enable log collection */
31
+ logsEnabled?: boolean;
32
+ }
33
+ /**
34
+ * Browser specific telemetry configuration.
35
+ */
36
+ export interface BrowserTelemetryConfig extends BaseTelemetryConfig {
37
+ /** OTLP traces endpoint URL */
38
+ otlpUrl: string;
39
+ }
40
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,aAAa,CAAC;AAE5B;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,gDAAgD;IAChD,WAAW,EAAE,MAAM,CAAC;IAEpB,sCAAsC;IACtC,cAAc,EAAE,MAAM,CAAC;IAEvB,4EAA4E;IAC5E,WAAW,EAAE,MAAM,CAAC;IAEpB,qCAAqC;IACrC,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7C;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,mBAAmB;IAC9D,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,+CAA+C;IAC/C,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC;IAE7B,2CAA2C;IAC3C,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,uCAAuC;IACvC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,mBAAmB;IACjE,+BAA+B;IAC/B,OAAO,EAAE,MAAM,CAAC;CACjB"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ /**
3
+ * Telemetry Types
4
+ *
5
+ * Re-exports policy types and config interfaces.
6
+ */
7
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = { enumerable: true, get: function() { return m[k]; } };
12
+ }
13
+ Object.defineProperty(o, k2, desc);
14
+ }) : (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ o[k2] = m[k];
17
+ }));
18
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
19
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ __exportStar(require("./policy.js"), exports);
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;AAEH,8CAA4B"}