@nextscope/next 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/store.js ADDED
@@ -0,0 +1,479 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TraceStore = void 0;
4
+ exports.summarizeTrace = summarizeTrace;
5
+ exports.pickRequestRoot = pickRequestRoot;
6
+ exports.isNoiseOnlyTrace = isNoiseOnlyTrace;
7
+ exports.statusBucket = statusBucket;
8
+ exports.routeLabel = routeLabel;
9
+ class TraceStore {
10
+ maxTraces;
11
+ traces = new Map();
12
+ revision = 0;
13
+ lastIngestAt;
14
+ constructor(maxTraces = 200) {
15
+ this.maxTraces = maxTraces;
16
+ }
17
+ ingest(spans) {
18
+ if (spans.length === 0) {
19
+ return;
20
+ }
21
+ const touchedTraceIds = new Set();
22
+ const ingestedAt = Date.now();
23
+ for (const span of spans) {
24
+ let trace = this.traces.get(span.traceId);
25
+ if (!trace) {
26
+ trace = {
27
+ traceId: span.traceId,
28
+ spans: new Map(),
29
+ revision: ++this.revision,
30
+ updatedAt: ingestedAt,
31
+ };
32
+ this.traces.set(span.traceId, trace);
33
+ }
34
+ trace.spans.set(span.spanId, span);
35
+ trace.revision = ++this.revision;
36
+ trace.updatedAt = ingestedAt;
37
+ trace.summaryCache = undefined;
38
+ trace.detailCache = undefined;
39
+ touchedTraceIds.add(span.traceId);
40
+ }
41
+ this.lastIngestAt = ingestedAt;
42
+ for (const traceId of touchedTraceIds) {
43
+ const trace = this.traces.get(traceId);
44
+ if (trace && isNoiseOnlyTrace([...trace.spans.values()])) {
45
+ this.traces.delete(traceId);
46
+ }
47
+ }
48
+ this.enforceRetention();
49
+ }
50
+ listTraces() {
51
+ return this.listTraceSummaries({ lean: false });
52
+ }
53
+ listTraceSummaries(options = {}) {
54
+ return [...this.traces.values()]
55
+ .sort((a, b) => b.revision - a.revision)
56
+ .flatMap((trace) => cachedSummaries(trace, options.lean === true));
57
+ }
58
+ getTrace(traceId) {
59
+ const trace = this.traces.get(traceId);
60
+ if (!trace) {
61
+ return undefined;
62
+ }
63
+ const summary = cachedSummaries(trace, false)[0];
64
+ if (!summary) {
65
+ return undefined;
66
+ }
67
+ if (trace.detailCache?.revision === trace.revision) {
68
+ return trace.detailCache.detail;
69
+ }
70
+ const spans = [...trace.spans.values()].sort(compareByStartTime);
71
+ const start = spans[0]?.startTimeUnixNano ?? 0n;
72
+ const nodes = new Map();
73
+ for (const span of spans) {
74
+ nodes.set(span.spanId, {
75
+ spanId: span.spanId,
76
+ parentSpanId: span.parentSpanId,
77
+ name: span.name,
78
+ kind: span.kind,
79
+ startTimeUnixNano: span.startTimeUnixNano.toString(),
80
+ endTimeUnixNano: span.endTimeUnixNano.toString(),
81
+ durationMs: span.durationMs,
82
+ offsetMs: Number(span.startTimeUnixNano - start) / 1_000_000,
83
+ endOffsetMs: Number(span.endTimeUnixNano - start) / 1_000_000,
84
+ serviceName: serviceName(span),
85
+ statusCode: statusCode(span),
86
+ hasError: isErrorSpan(span),
87
+ attributes: span.attributes,
88
+ resourceAttributes: span.resourceAttributes,
89
+ spanType: stringAttr(span.attributes, 'next.span_type'),
90
+ status: span.status,
91
+ events: span.events
92
+ .slice()
93
+ .sort(compareEventsByTime)
94
+ .map((event) => ({
95
+ timeUnixNano: event.timeUnixNano.toString(),
96
+ offsetMs: Number(event.timeUnixNano - start) / 1_000_000,
97
+ name: event.name,
98
+ attributes: event.attributes,
99
+ })),
100
+ links: span.links,
101
+ childCount: 0,
102
+ errorChildCount: 0,
103
+ children: [],
104
+ });
105
+ }
106
+ const roots = [];
107
+ for (const node of nodes.values()) {
108
+ const parent = node.parentSpanId ? nodes.get(node.parentSpanId) : undefined;
109
+ if (parent) {
110
+ parent.children.push(node);
111
+ }
112
+ else {
113
+ roots.push(node);
114
+ }
115
+ }
116
+ for (const node of nodes.values()) {
117
+ node.children.sort(compareNodesByStartTime);
118
+ }
119
+ roots.sort(compareNodesByStartTime);
120
+ for (const root of roots) {
121
+ annotateChildCounts(root);
122
+ }
123
+ const detail = {
124
+ ...summary,
125
+ spans: roots,
126
+ };
127
+ trace.detailCache = {
128
+ revision: trace.revision,
129
+ detail,
130
+ };
131
+ return detail;
132
+ }
133
+ clear() {
134
+ this.traces.clear();
135
+ this.lastIngestAt = undefined;
136
+ }
137
+ getStats() {
138
+ return {
139
+ traceCount: this.traces.size,
140
+ lastIngestAt: this.lastIngestAt
141
+ ? new Date(this.lastIngestAt).toISOString()
142
+ : undefined,
143
+ };
144
+ }
145
+ enforceRetention() {
146
+ if (this.traces.size <= this.maxTraces) {
147
+ return;
148
+ }
149
+ const ordered = [...this.traces.values()].sort((a, b) => a.updatedAt - b.updatedAt);
150
+ for (const trace of ordered.slice(0, this.traces.size - this.maxTraces)) {
151
+ this.traces.delete(trace.traceId);
152
+ }
153
+ }
154
+ }
155
+ exports.TraceStore = TraceStore;
156
+ function summarizeTrace(trace) {
157
+ const spans = [...trace.spans.values()];
158
+ if (spans.length === 0) {
159
+ return [];
160
+ }
161
+ const start = minBigInt(spans.map((span) => span.startTimeUnixNano));
162
+ const end = maxBigInt(spans.map((span) => span.endTimeUnixNano));
163
+ const services = new Set(spans.map(serviceName).filter(isDefined));
164
+ const segments = requestSegments(spans, start);
165
+ return segments.map((segment) => ({
166
+ traceId: trace.traceId,
167
+ requestSegmentId: segment.requestSegmentId,
168
+ revision: trace.revision,
169
+ updatedAt: new Date(trace.updatedAt).toISOString(),
170
+ spanCount: segment.spanCount,
171
+ traceSpanCount: spans.length,
172
+ segmentCount: segments.length,
173
+ rootSpan: {
174
+ ...segment.rootSpan,
175
+ attributes: segment.rootSpan.attributes,
176
+ },
177
+ startTimeUnixNano: start.toString(),
178
+ timestamp: nanosToDate(start + BigInt(Math.round(segment.startOffsetMs * 1_000_000))).toISOString(),
179
+ durationMs: segment.durationMs,
180
+ durationRangeMs: {
181
+ start: segment.startOffsetMs,
182
+ end: segment.endOffsetMs,
183
+ },
184
+ statusBucket: segment.statusBucket,
185
+ requestKind: segment.requestKind,
186
+ hasRsc: segmentSpans(spans, segment.requestSegmentId).some((span) => span.attributes['next.rsc'] === true),
187
+ hasPrefetch: segmentSpans(spans, segment.requestSegmentId).some((span) => span.attributes['next.span_type'] === 'NextNodeServer.handleNextDataRequest' || span.attributes['next.rsc'] === true),
188
+ routeLabel: segment.routeLabel,
189
+ errorSpanCount: segment.errorSpanCount,
190
+ serviceNames: [...services].sort(),
191
+ requestSegments: segments,
192
+ topSlowSpans: segment.topSlowSpans,
193
+ firstError: segment.firstError,
194
+ exceptionSummary: segment.exceptionSummary,
195
+ criticalPath: segment.criticalPath,
196
+ }));
197
+ }
198
+ function cachedSummaries(trace, lean) {
199
+ if (trace.summaryCache?.revision !== trace.revision) {
200
+ const summaries = summarizeTrace(trace);
201
+ trace.summaryCache = {
202
+ revision: trace.revision,
203
+ summaries,
204
+ leanSummaries: summaries.map((summary) => ({
205
+ ...summary,
206
+ rootSpan: {
207
+ ...summary.rootSpan,
208
+ attributes: undefined,
209
+ },
210
+ requestSegments: summary.requestSegments.map((segment) => ({
211
+ ...segment,
212
+ rootSpan: {
213
+ ...segment.rootSpan,
214
+ attributes: undefined,
215
+ },
216
+ })),
217
+ })),
218
+ };
219
+ }
220
+ return lean
221
+ ? trace.summaryCache.leanSummaries
222
+ : trace.summaryCache.summaries;
223
+ }
224
+ function pickRequestRoot(spans) {
225
+ return (spans.find((span) => span.attributes['next.span_type'] === 'BaseServer.handleRequest') ??
226
+ spans.find((span) => !span.parentSpanId) ??
227
+ spans.sort(compareByStartTime)[0]);
228
+ }
229
+ function requestSegments(spans, traceStart) {
230
+ const requestRoots = spans
231
+ .filter((span) => span.attributes['next.span_type'] === 'BaseServer.handleRequest')
232
+ .sort(compareByStartTime);
233
+ const roots = requestRoots.length > 0 ? requestRoots : [pickRequestRoot(spans)];
234
+ return roots.map((root) => {
235
+ const spansInSegment = segmentSpans(spans, root.spanId).sort(compareByStartTime);
236
+ const segmentStart = minBigInt(spansInSegment.map((span) => span.startTimeUnixNano));
237
+ const segmentEnd = maxBigInt(spansInSegment.map((span) => span.endTimeUnixNano));
238
+ const rootSummary = requestSpanSummary(root, true);
239
+ const diagnostics = spanDiagnostics(spansInSegment, traceStart);
240
+ return {
241
+ requestSegmentId: root.spanId,
242
+ rootSpan: rootSummary,
243
+ routeLabel: routeLabel(rootSummary),
244
+ statusBucket: statusBucket(rootSummary.statusCode),
245
+ requestKind: requestKind(root),
246
+ startOffsetMs: Number(segmentStart - traceStart) / 1_000_000,
247
+ endOffsetMs: Number(segmentEnd - traceStart) / 1_000_000,
248
+ durationMs: Number(segmentEnd - segmentStart) / 1_000_000,
249
+ spanCount: spansInSegment.length,
250
+ errorSpanCount: spansInSegment.filter(isErrorSpan).length,
251
+ ...diagnostics,
252
+ };
253
+ });
254
+ }
255
+ function segmentSpans(spans, rootSpanId) {
256
+ const byParent = new Map();
257
+ const byId = new Map(spans.map((span) => [span.spanId, span]));
258
+ for (const span of spans) {
259
+ if (!span.parentSpanId)
260
+ continue;
261
+ const children = byParent.get(span.parentSpanId) ?? [];
262
+ children.push(span);
263
+ byParent.set(span.parentSpanId, children);
264
+ }
265
+ const root = byId.get(rootSpanId);
266
+ if (!root)
267
+ return [];
268
+ const result = [];
269
+ const stack = [root];
270
+ while (stack.length > 0) {
271
+ const span = stack.pop();
272
+ if (!span)
273
+ continue;
274
+ result.push(span);
275
+ for (const child of byParent.get(span.spanId) ?? []) {
276
+ stack.push(child);
277
+ }
278
+ }
279
+ return result;
280
+ }
281
+ function spanDiagnostics(spans, traceStart) {
282
+ const sorted = spans.slice().sort(compareByStartTime);
283
+ const topSlowSpans = sorted
284
+ .slice()
285
+ .sort((a, b) => b.durationMs - a.durationMs || compareByStartTime(a, b))
286
+ .slice(0, 5)
287
+ .map((span) => diagnosticSpan(span, traceStart));
288
+ const firstErrorSpan = sorted.find(isErrorSpan);
289
+ const exceptions = sorted.flatMap((span) => span.events
290
+ .filter((event) => event.name === 'exception')
291
+ .map((event) => ({ span, event }))).sort((a, b) => compareEventsByTime(a.event, b.event));
292
+ return {
293
+ topSlowSpans,
294
+ firstError: firstErrorSpan ? errorSummary(firstErrorSpan, traceStart) : undefined,
295
+ exceptionSummary: exceptions.length > 0 ? {
296
+ count: exceptions.length,
297
+ firstMessage: stringAttr(exceptions[0].event.attributes, 'exception.message'),
298
+ firstType: stringAttr(exceptions[0].event.attributes, 'exception.type'),
299
+ } : undefined,
300
+ criticalPath: longestChildChain(spans),
301
+ };
302
+ }
303
+ function diagnosticSpan(span, traceStart) {
304
+ return {
305
+ spanId: span.spanId,
306
+ name: span.name,
307
+ durationMs: span.durationMs,
308
+ offsetMs: Number(span.startTimeUnixNano - traceStart) / 1_000_000,
309
+ serviceName: serviceName(span),
310
+ hasError: isErrorSpan(span),
311
+ };
312
+ }
313
+ function errorSummary(span, traceStart) {
314
+ const exception = span.events.find((event) => event.name === 'exception');
315
+ return {
316
+ spanId: span.spanId,
317
+ name: span.name,
318
+ offsetMs: Number(span.startTimeUnixNano - traceStart) / 1_000_000,
319
+ statusCode: statusCode(span),
320
+ statusMessage: typeof span.status?.message === 'string' ? span.status.message : undefined,
321
+ exceptionType: exception ? stringAttr(exception.attributes, 'exception.type') : undefined,
322
+ exceptionMessage: exception ? stringAttr(exception.attributes, 'exception.message') : undefined,
323
+ };
324
+ }
325
+ function longestChildChain(spans) {
326
+ const byParent = new Map();
327
+ const byId = new Map(spans.map((span) => [span.spanId, span]));
328
+ for (const span of spans) {
329
+ if (!span.parentSpanId || !byId.has(span.parentSpanId))
330
+ continue;
331
+ const children = byParent.get(span.parentSpanId) ?? [];
332
+ children.push(span);
333
+ byParent.set(span.parentSpanId, children);
334
+ }
335
+ function walk(span) {
336
+ const childPaths = (byParent.get(span.spanId) ?? []).map(walk);
337
+ const bestChild = childPaths.sort((a, b) => b.durationMs - a.durationMs)[0];
338
+ return {
339
+ durationMs: span.durationMs + (bestChild?.durationMs ?? 0),
340
+ spanIds: [span.spanId, ...(bestChild?.spanIds ?? [])],
341
+ names: [span.name, ...(bestChild?.names ?? [])],
342
+ };
343
+ }
344
+ const roots = spans.filter((span) => !span.parentSpanId || !byId.has(span.parentSpanId));
345
+ return roots.map(walk).sort((a, b) => b.durationMs - a.durationMs)[0] ?? {
346
+ durationMs: 0,
347
+ spanIds: [],
348
+ names: [],
349
+ };
350
+ }
351
+ function isNoiseOnlyTrace(spans) {
352
+ return spans.length > 0 && spans.every(isLowLevelNetworkSpan);
353
+ }
354
+ function isLowLevelNetworkSpan(span) {
355
+ return LOW_LEVEL_NETWORK_SPAN_NAMES.has(span.name);
356
+ }
357
+ function requestSpanSummary(span, includeAttributes = false) {
358
+ return {
359
+ spanId: span.spanId,
360
+ name: span.name,
361
+ route: stringAttr(span.attributes, 'next.route', 'http.route'),
362
+ target: stringAttr(span.attributes, 'http.target', 'url.path'),
363
+ method: stringAttr(span.attributes, 'http.method', 'http.request.method'),
364
+ statusCode: numberAttr(span.attributes, 'http.status_code', 'http.response.status_code'),
365
+ spanType: stringAttr(span.attributes, 'next.span_type'),
366
+ startTimeUnixNano: span.startTimeUnixNano.toString(),
367
+ durationMs: span.durationMs,
368
+ attributes: includeAttributes ? span.attributes : undefined,
369
+ };
370
+ }
371
+ function statusBucket(statusCode) {
372
+ if (!statusCode)
373
+ return 'unknown';
374
+ if (statusCode >= 500)
375
+ return 'server-error';
376
+ if (statusCode >= 400)
377
+ return 'client-error';
378
+ if (statusCode >= 300)
379
+ return 'redirect';
380
+ return 'ok';
381
+ }
382
+ function routeLabel(summary) {
383
+ return summary.route ?? summary.target ?? summary.name;
384
+ }
385
+ function requestKind(span) {
386
+ const spanType = stringAttr(span.attributes, 'next.span_type');
387
+ if (spanType === 'BaseServer.handleRequest')
388
+ return 'page';
389
+ if (spanType === 'AppRouteRouteHandlers.runHandler')
390
+ return 'route-handler';
391
+ return spanType ?? 'span';
392
+ }
393
+ function compareByStartTime(a, b) {
394
+ if (a.startTimeUnixNano === b.startTimeUnixNano) {
395
+ return a.spanId.localeCompare(b.spanId);
396
+ }
397
+ return a.startTimeUnixNano < b.startTimeUnixNano ? -1 : 1;
398
+ }
399
+ function compareNodesByStartTime(a, b) {
400
+ if (a.startTimeUnixNano === b.startTimeUnixNano) {
401
+ return a.spanId.localeCompare(b.spanId);
402
+ }
403
+ return BigInt(a.startTimeUnixNano) < BigInt(b.startTimeUnixNano) ? -1 : 1;
404
+ }
405
+ function compareEventsByTime(a, b) {
406
+ if (a.timeUnixNano === b.timeUnixNano) {
407
+ return a.name.localeCompare(b.name);
408
+ }
409
+ return a.timeUnixNano < b.timeUnixNano ? -1 : 1;
410
+ }
411
+ function annotateChildCounts(node) {
412
+ let childCount = node.children.length;
413
+ let errorChildCount = 0;
414
+ for (const child of node.children) {
415
+ annotateChildCounts(child);
416
+ childCount += child.childCount;
417
+ errorChildCount += child.hasError ? 1 : 0;
418
+ errorChildCount += child.errorChildCount;
419
+ }
420
+ node.childCount = childCount;
421
+ node.errorChildCount = errorChildCount;
422
+ }
423
+ function serviceName(span) {
424
+ return stringAttr(span.resourceAttributes, 'service.name');
425
+ }
426
+ function statusCode(span) {
427
+ return numberAttr(span.attributes, 'http.status_code', 'http.response.status_code');
428
+ }
429
+ function isErrorSpan(span) {
430
+ const code = span.status?.code;
431
+ if (code === 'ERROR' || code === 2) {
432
+ return true;
433
+ }
434
+ const httpStatus = statusCode(span);
435
+ return typeof httpStatus === 'number' && httpStatus >= 500;
436
+ }
437
+ function minBigInt(values) {
438
+ return values.reduce((min, value) => (value < min ? value : min));
439
+ }
440
+ function maxBigInt(values) {
441
+ return values.reduce((max, value) => (value > max ? value : max));
442
+ }
443
+ function stringAttr(attributes, ...keys) {
444
+ for (const key of keys) {
445
+ const value = attributes[key];
446
+ if (typeof value === 'string' && value.length > 0) {
447
+ return value;
448
+ }
449
+ }
450
+ return undefined;
451
+ }
452
+ function numberAttr(attributes, ...keys) {
453
+ for (const key of keys) {
454
+ const value = attributes[key];
455
+ if (typeof value === 'number') {
456
+ return value;
457
+ }
458
+ if (typeof value === 'string') {
459
+ const parsed = Number(value);
460
+ if (!Number.isNaN(parsed)) {
461
+ return parsed;
462
+ }
463
+ }
464
+ }
465
+ return undefined;
466
+ }
467
+ function isDefined(value) {
468
+ return value !== undefined;
469
+ }
470
+ function nanosToDate(value) {
471
+ return new Date(Number(value / 1000000n));
472
+ }
473
+ const LOW_LEVEL_NETWORK_SPAN_NAMES = new Set([
474
+ 'dns.lookup',
475
+ 'socket.connect',
476
+ 'tcp.connect',
477
+ 'tls.connect',
478
+ ]);
479
+ //# sourceMappingURL=store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { NormalizedSpan, OtlpJsonBatch } from './otel';
2
+ export declare function filterIgnoredTraces(batch: OtlpJsonBatch, spans: NormalizedSpan[], route: string, sidecarUrl?: string): {
3
+ ignoredTraceIds: Set<string>;
4
+ spans: NormalizedSpan[];
5
+ batch: OtlpJsonBatch;
6
+ };
7
+ export declare function isNextScopeSpan(span: NormalizedSpan, route: string, sidecarUrl?: string): boolean;
8
+ export declare function matchesRoutePrefix(value: string, route: string): boolean;
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.filterIgnoredTraces = filterIgnoredTraces;
4
+ exports.isNextScopeSpan = isNextScopeSpan;
5
+ exports.matchesRoutePrefix = matchesRoutePrefix;
6
+ function filterIgnoredTraces(batch, spans, route, sidecarUrl) {
7
+ const ignoredTraceIds = new Set(spans
8
+ .filter((span) => isNextScopeSpan(span, route, sidecarUrl))
9
+ .map((span) => span.traceId));
10
+ if (ignoredTraceIds.size === 0) {
11
+ return {
12
+ ignoredTraceIds,
13
+ spans,
14
+ batch,
15
+ };
16
+ }
17
+ return {
18
+ ignoredTraceIds,
19
+ spans: spans.filter((span) => !ignoredTraceIds.has(span.traceId)),
20
+ batch: removeTraceIdsFromBatch(batch, ignoredTraceIds),
21
+ };
22
+ }
23
+ function isNextScopeSpan(span, route, sidecarUrl) {
24
+ return (candidatePaths(span).some((path) => matchesRoutePrefix(path, route)) ||
25
+ candidateUrls(span).some((url) => matchesSidecarUrl(url, sidecarUrl)));
26
+ }
27
+ function matchesRoutePrefix(value, route) {
28
+ const path = normalizePath(value);
29
+ const normalizedRoute = normalizePath(route);
30
+ return path === normalizedRoute || path.startsWith(`${normalizedRoute}/`);
31
+ }
32
+ function candidatePaths(span) {
33
+ const values = [
34
+ span.name,
35
+ stringAttr(span.attributes, 'next.route'),
36
+ stringAttr(span.attributes, 'http.route'),
37
+ stringAttr(span.attributes, 'http.target'),
38
+ stringAttr(span.attributes, 'url.path'),
39
+ stringAttr(span.attributes, 'http.url'),
40
+ stringAttr(span.attributes, 'url.full'),
41
+ ];
42
+ return values.flatMap((value) => pathsFromValue(value));
43
+ }
44
+ function candidateUrls(span) {
45
+ return [
46
+ span.name,
47
+ stringAttr(span.attributes, 'http.url'),
48
+ stringAttr(span.attributes, 'url.full'),
49
+ ].flatMap((value) => urlsFromValue(value));
50
+ }
51
+ function pathsFromValue(value) {
52
+ if (!value) {
53
+ return [];
54
+ }
55
+ const methodMatch = value.match(/^(GET|POST|PUT|PATCH|DELETE|HEAD|OPTIONS)\s+(\S+)/);
56
+ const rawValue = methodMatch?.[2] ?? value;
57
+ try {
58
+ const url = new URL(rawValue);
59
+ return [url.pathname];
60
+ }
61
+ catch {
62
+ return rawValue.startsWith('/') ? [rawValue.split('?')[0] ?? rawValue] : [];
63
+ }
64
+ }
65
+ function urlsFromValue(value) {
66
+ if (!value) {
67
+ return [];
68
+ }
69
+ const methodMatch = value.match(/^(GET|POST|PUT|PATCH|DELETE|HEAD|OPTIONS|http\s+\w+)\s+(\S+)/i);
70
+ const rawValue = methodMatch?.[2] ?? value;
71
+ try {
72
+ return [new URL(rawValue)];
73
+ }
74
+ catch {
75
+ return [];
76
+ }
77
+ }
78
+ function matchesSidecarUrl(url, sidecarUrl) {
79
+ if (!sidecarUrl) {
80
+ return false;
81
+ }
82
+ const sidecar = new URL(sidecarUrl);
83
+ return (url.origin === sidecar.origin &&
84
+ ['/', '/index.html', '/style.css', '/app.js', '/api/traces', '/api/status'].some((path) => url.pathname === path || url.pathname.startsWith(`${path}/`)));
85
+ }
86
+ function normalizePath(value) {
87
+ const path = value.startsWith('/') ? value : `/${value}`;
88
+ return path.length > 1 ? path.replace(/\/+$/, '') : path;
89
+ }
90
+ function stringAttr(attributes, key) {
91
+ const value = attributes[key];
92
+ return typeof value === 'string' ? value : undefined;
93
+ }
94
+ function removeTraceIdsFromBatch(batch, ignoredTraceIds) {
95
+ return {
96
+ ...batch,
97
+ resourceSpans: (batch.resourceSpans ?? [])
98
+ .map((resourceSpan) => ({
99
+ ...resourceSpan,
100
+ scopeSpans: resourceSpan.scopeSpans?.map((scopeSpan) => ({
101
+ ...scopeSpan,
102
+ spans: (scopeSpan.spans ?? []).filter((span) => !span.traceId || !ignoredTraceIds.has(span.traceId)),
103
+ })),
104
+ instrumentationLibrarySpans: resourceSpan.instrumentationLibrarySpans?.map((scopeSpan) => ({
105
+ ...scopeSpan,
106
+ spans: (scopeSpan.spans ?? []).filter((span) => !span.traceId || !ignoredTraceIds.has(span.traceId)),
107
+ })),
108
+ }))
109
+ .filter((resourceSpan) => [
110
+ ...(resourceSpan.scopeSpans ?? []),
111
+ ...(resourceSpan.instrumentationLibrarySpans ?? []),
112
+ ].some((scopeSpan) => (scopeSpan.spans ?? []).length > 0)),
113
+ };
114
+ }
115
+ //# sourceMappingURL=suppression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"suppression.js","sourceRoot":"","sources":["../src/suppression.ts"],"names":[],"mappings":"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"}
package/dist/ui.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ import { inspectorCss, inspectorJs } from './inspector-assets';
2
+ export { inspectorCss, inspectorJs };
3
+ export declare function renderInspectorHtml(route: string): string;