@tracepanel/js 0.4.1 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/README.md +224 -12
  2. package/dist/agent.d.ts +5 -1
  3. package/dist/agent.js +12 -3
  4. package/dist/agent.js.map +1 -1
  5. package/dist/aws.d.ts +27 -0
  6. package/dist/aws.js +368 -0
  7. package/dist/aws.js.map +1 -0
  8. package/dist/bun.js +6 -82
  9. package/dist/bun.js.map +1 -1
  10. package/dist/calls.d.ts +5 -0
  11. package/dist/calls.js +7 -0
  12. package/dist/calls.js.map +1 -1
  13. package/dist/config.d.ts +7 -0
  14. package/dist/config.js +2 -0
  15. package/dist/config.js.map +1 -1
  16. package/dist/explain.d.ts +5 -0
  17. package/dist/explain.js +56 -7
  18. package/dist/explain.js.map +1 -1
  19. package/dist/fastify.d.ts +2 -0
  20. package/dist/fastify.js +100 -0
  21. package/dist/fastify.js.map +1 -0
  22. package/dist/frameworks.js +3 -0
  23. package/dist/frameworks.js.map +1 -1
  24. package/dist/hono.d.ts +2 -0
  25. package/dist/hono.js +63 -0
  26. package/dist/hono.js.map +1 -0
  27. package/dist/koa.d.ts +2 -0
  28. package/dist/koa.js +119 -0
  29. package/dist/koa.js.map +1 -0
  30. package/dist/llm.d.ts +20 -0
  31. package/dist/llm.js +632 -0
  32. package/dist/llm.js.map +1 -0
  33. package/dist/memory.d.ts +69 -0
  34. package/dist/memory.js +203 -0
  35. package/dist/memory.js.map +1 -0
  36. package/dist/model.d.ts +22 -1
  37. package/dist/model.js.map +1 -1
  38. package/dist/next.js +4 -4
  39. package/dist/next.js.map +1 -1
  40. package/dist/processor.d.ts +40 -4
  41. package/dist/processor.js +156 -29
  42. package/dist/processor.js.map +1 -1
  43. package/dist/profile.d.ts +34 -8
  44. package/dist/profile.js +98 -13
  45. package/dist/profile.js.map +1 -1
  46. package/dist/queries.d.ts +20 -0
  47. package/dist/queries.js +75 -0
  48. package/dist/queries.js.map +1 -0
  49. package/dist/respond.d.ts +12 -0
  50. package/dist/respond.js +85 -0
  51. package/dist/respond.js.map +1 -0
  52. package/dist/setup.js +22 -5
  53. package/dist/setup.js.map +1 -1
  54. package/dist/sql.d.ts +1 -0
  55. package/dist/sql.js +11 -2
  56. package/dist/sql.js.map +1 -1
  57. package/dist/sqlite.d.ts +13 -0
  58. package/dist/sqlite.js +291 -0
  59. package/dist/sqlite.js.map +1 -0
  60. package/dist/stack.d.ts +3 -1
  61. package/dist/stack.js +30 -6
  62. package/dist/stack.js.map +1 -1
  63. package/dist/testing.d.ts +128 -0
  64. package/dist/testing.js +362 -0
  65. package/dist/testing.js.map +1 -0
  66. package/dist/transactions.d.ts +11 -1
  67. package/dist/transactions.js +70 -34
  68. package/dist/transactions.js.map +1 -1
  69. package/dist/view.d.ts +17 -0
  70. package/dist/view.js +71 -0
  71. package/dist/view.js.map +1 -0
  72. package/dist/vitest-setup.d.ts +1 -0
  73. package/dist/vitest-setup.js +63 -0
  74. package/dist/vitest-setup.js.map +1 -0
  75. package/dist/vitest.d.ts +57 -0
  76. package/dist/vitest.js +130 -0
  77. package/dist/vitest.js.map +1 -0
  78. package/dist/widget.d.ts +16 -0
  79. package/dist/widget.js +33 -1
  80. package/dist/widget.js.map +1 -1
  81. package/package.json +69 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm.js","sourceRoot":"","sources":["../src/llm.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ import v8 from "node:v8";
2
+ import { type Session } from "./inspector.js";
3
+ /** About one allocation in this many bytes is sampled: V8's default. */
4
+ export declare const SAMPLING_BYTES: number;
5
+ /** The sites a profile keeps, largest first. */
6
+ export declare const MAX_SITES = 50;
7
+ export interface CallFrame {
8
+ functionName: string;
9
+ url: string;
10
+ lineNumber: number;
11
+ columnNumber: number;
12
+ }
13
+ /** One trace's memory while it runs: where the heap and the sampler stood at its start. */
14
+ export interface Heap {
15
+ /** The samples taken before it started have ordinals up to this one. */
16
+ ordinal: number;
17
+ used: number;
18
+ allocated: number | undefined;
19
+ /** The heap's level before each collection while it runs. */
20
+ collections: InstanceType<typeof v8.GCProfiler>;
21
+ }
22
+ /** A site as the sampler found it: its frames, outermost first, the bytes they stand for, and the samples. */
23
+ export interface Site {
24
+ frames: CallFrame[];
25
+ bytes: number;
26
+ count: number;
27
+ }
28
+ /** A trace's memory without its frames named: what the profile's `memory` says but its sites' frame indexes. */
29
+ export interface Measured {
30
+ peak: number;
31
+ net: number;
32
+ allocated?: number;
33
+ sites: Site[];
34
+ }
35
+ /** Whether this runtime can tell a trace's memory: V8's GC profiler (Node 18.15 and later), with the inspector. */
36
+ export declare function memoryAvailable(): boolean;
37
+ /** The sampling heap profiler of a session, running while traces whose memory is told do. */
38
+ export declare class HeapSampler {
39
+ private readonly session;
40
+ private sampling;
41
+ private readonly live;
42
+ constructor(session: Session);
43
+ /** A trace's memory from now; undefined when the sampler can't start. */
44
+ begin(): Heap | undefined;
45
+ /** The trace's memory at its end, its sites the largest first; undefined when the sampler stopped meanwhile. */
46
+ end(heap: Heap, own: (frame: CallFrame) => boolean): Measured | undefined;
47
+ /** The profile so far. V8 collects the whole heap first, so that it holds only what lives. */
48
+ private profile;
49
+ /** The sampler stops, with its profile (the whole heap collected first, as for profile()). */
50
+ private stop;
51
+ }
52
+ /** The collector's runs while a trace ran: how many, their pauses in all, and each one's (the profile's `gc`). */
53
+ export interface Gc {
54
+ collections: number;
55
+ pause_us: number;
56
+ /** [from the trace's start, how long, the generation: 0 young, 1 incremental marking, 2 the whole heap], in µs. */
57
+ pauses: [number, number, number][];
58
+ }
59
+ /** The garbage collector's runs, as Node's performance timeline tells them, while traces are profiled. */
60
+ export declare class Collections {
61
+ private observer;
62
+ /** When each ran and for how long (performance.now() ms), and its generation. */
63
+ private seen;
64
+ watch(): void;
65
+ private note;
66
+ rest(): void;
67
+ /** The runs that began between `from` and `to` (performance.now() ms), from `from` on. */
68
+ during(from: number, to: number): Gc;
69
+ }
package/dist/memory.js ADDED
@@ -0,0 +1,203 @@
1
+ // Where a profiled trace's memory goes: V8's sampling heap profiler, through Node's inspector (the profile's
2
+ // `memory`), and the heap's level from V8's own statistics. Only for a trace that asks for it (a request's "memory",
3
+ // or TRACEPANEL_PROFILE_MEMORY=1 for every profiled one).
4
+ //
5
+ // The sampler takes one allocation in about every SAMPLING_BYTES the code allocates, with its stack, and keeps it
6
+ // while the object lives; each sample stands for that many bytes. A trace's sites are the samples taken while it ran
7
+ // and still alive at its end, its frames' functions where they are defined: what it allocated and kept
8
+ // (`sites_at`: "end"). One sampler runs while any such trace does, and stops with the last one.
9
+ //
10
+ // Reading the sampler's profile collects the whole heap first (the inspector asks V8 to), so that it holds only
11
+ // what lives: each memory-profiled trace ends with a full garbage collection, after its root span ended, and one
12
+ // that starts while another runs begins with one too. That is most of what profiling memory costs.
13
+ //
14
+ // - `peak`: the heap's highest level during the trace, above its level at the start: before each collection during
15
+ // the trace (V8's GC profiler tells), and at the end. Garbage counts until it is collected.
16
+ // - `net`: the bytes the trace allocated that still live at its end, as the samples tell (an estimate).
17
+ // - `allocated`: what V8 allocated in all meanwhile, where it counts it (Node 26 has total_allocated_bytes).
18
+ // - `shared`: another trace ran in the process meanwhile; the heap is the process's, so its numbers are in there too.
19
+ import { constants, PerformanceObserver } from "node:perf_hooks";
20
+ import v8 from "node:v8";
21
+ import { call } from "./inspector.js";
22
+ /** About one allocation in this many bytes is sampled: V8's default. */
23
+ export const SAMPLING_BYTES = 32 * 1024;
24
+ /** The sites a profile keeps, largest first. */
25
+ export const MAX_SITES = 50;
26
+ /** Whether this runtime can tell a trace's memory: V8's GC profiler (Node 18.15 and later), with the inspector. */
27
+ export function memoryAvailable() {
28
+ return typeof v8.GCProfiler === "function";
29
+ }
30
+ function levels() {
31
+ const stats = v8.getHeapStatistics();
32
+ return {
33
+ used: stats.used_heap_size,
34
+ allocated: typeof stats.total_allocated_bytes === "number" ? stats.total_allocated_bytes : undefined,
35
+ };
36
+ }
37
+ /** The sampling heap profiler of a session, running while traces whose memory is told do. */
38
+ export class HeapSampler {
39
+ session;
40
+ sampling = false;
41
+ live = new Set();
42
+ constructor(session) {
43
+ this.session = session;
44
+ }
45
+ /** A trace's memory from now; undefined when the sampler can't start. */
46
+ begin() {
47
+ let ordinal = 0;
48
+ try {
49
+ if (this.sampling) {
50
+ // The samples so far are the traces' running already: this one's come after them.
51
+ ordinal = this.profile().samples.reduce((last, sample) => Math.max(last, sample.ordinal), 0);
52
+ }
53
+ else {
54
+ call(this.session, "HeapProfiler.enable");
55
+ call(this.session, "HeapProfiler.startSampling", { samplingInterval: SAMPLING_BYTES });
56
+ this.sampling = true;
57
+ }
58
+ }
59
+ catch {
60
+ return undefined;
61
+ }
62
+ const collections = new v8.GCProfiler();
63
+ collections.start();
64
+ const heap = { ordinal, ...levels(), collections };
65
+ this.live.add(heap);
66
+ return heap;
67
+ }
68
+ /** The trace's memory at its end, its sites the largest first; undefined when the sampler stopped meanwhile. */
69
+ end(heap, own) {
70
+ if (!this.live.delete(heap))
71
+ return undefined;
72
+ const before = heap.collections.stop()?.statistics ?? [];
73
+ // Before the profile is read: reading it collects the whole heap.
74
+ const now = levels();
75
+ let profile;
76
+ try {
77
+ // The last trace's stops the sampler: the next one starts it afresh, with no profile to read first.
78
+ profile = this.live.size === 0 ? this.stop() : this.profile();
79
+ }
80
+ catch {
81
+ // Stopped by someone else's session.
82
+ }
83
+ if (!profile)
84
+ return undefined;
85
+ const high = before.reduce((most, collection) => Math.max(most, collection.beforeGC.heapStatistics.usedHeapSize), now.used);
86
+ const { kept, net } = sites(profile, heap.ordinal, own);
87
+ return {
88
+ peak: Math.max(0, high - heap.used),
89
+ net,
90
+ ...(now.allocated !== undefined && heap.allocated !== undefined
91
+ ? { allocated: Math.max(0, now.allocated - heap.allocated) }
92
+ : {}),
93
+ sites: kept,
94
+ };
95
+ }
96
+ /** The profile so far. V8 collects the whole heap first, so that it holds only what lives. */
97
+ profile() {
98
+ return call(this.session, "HeapProfiler.getSamplingProfile").profile;
99
+ }
100
+ /** The sampler stops, with its profile (the whole heap collected first, as for profile()). */
101
+ stop() {
102
+ this.sampling = false;
103
+ return call(this.session, "HeapProfiler.stopSampling").profile;
104
+ }
105
+ }
106
+ /**
107
+ * The samples taken after `ordinal` by the stack that allocated them, the largest MAX_SITES, and the bytes they all
108
+ * stand for. One whose innermost frame of code (past the runtime's own, such as JSON.parse) is this package's is its
109
+ * own business, and left out.
110
+ */
111
+ function sites(profile, ordinal, own) {
112
+ const parents = new Map();
113
+ const nodes = new Map();
114
+ const pending = [[profile.head, undefined]];
115
+ while (pending.length > 0) {
116
+ const [node, parent] = pending.pop();
117
+ nodes.set(node.id, node);
118
+ parents.set(node.id, parent);
119
+ for (const child of node.children ?? [])
120
+ pending.push([child, node]);
121
+ }
122
+ const found = new Map();
123
+ for (const sample of profile.samples) {
124
+ if (sample.ordinal <= ordinal)
125
+ continue;
126
+ const site = found.get(sample.nodeId) ?? { bytes: 0, count: 0 };
127
+ site.bytes += sample.size;
128
+ site.count += 1;
129
+ found.set(sample.nodeId, site);
130
+ }
131
+ const kept = [];
132
+ let net = 0;
133
+ for (const [id, { bytes, count }] of [...found].sort((a, b) => b[1].bytes - a[1].bytes)) {
134
+ const frames = [];
135
+ for (let node = nodes.get(id); node && node !== profile.head; node = parents.get(node.id)) {
136
+ frames.push(node.callFrame);
137
+ }
138
+ const code = frames.find((frame) => frame.url !== "" && !frame.url.startsWith("node:"));
139
+ if (frames.length === 0 || (code && own(code)))
140
+ continue;
141
+ net += bytes;
142
+ if (kept.length < MAX_SITES)
143
+ kept.push({ frames: frames.reverse(), bytes: Math.round(bytes), count });
144
+ }
145
+ return { kept, net: Math.round(net) };
146
+ }
147
+ // How long a collection is kept after it ran: a trace's are read once its late spans are in.
148
+ const KEEP_MS = 10_000;
149
+ function generation(kind) {
150
+ if (kind === constants.NODE_PERFORMANCE_GC_MINOR)
151
+ return 0;
152
+ if (kind === constants.NODE_PERFORMANCE_GC_MAJOR)
153
+ return 2;
154
+ return 1;
155
+ }
156
+ /** The garbage collector's runs, as Node's performance timeline tells them, while traces are profiled. */
157
+ export class Collections {
158
+ observer;
159
+ /** When each ran and for how long (performance.now() ms), and its generation. */
160
+ seen = [];
161
+ watch() {
162
+ if (this.observer)
163
+ return;
164
+ try {
165
+ this.observer = new PerformanceObserver((list) => this.note(list.getEntries()));
166
+ this.observer.observe({ entryTypes: ["gc"] });
167
+ }
168
+ catch {
169
+ this.observer = undefined;
170
+ }
171
+ }
172
+ note(entries) {
173
+ const oldest = performance.now() - KEEP_MS;
174
+ this.seen = this.seen.filter(([start]) => start >= oldest);
175
+ for (const entry of entries) {
176
+ const detail = entry.detail;
177
+ this.seen.push([entry.startTime, entry.duration, generation(detail?.kind)]);
178
+ }
179
+ }
180
+ rest() {
181
+ // Those Node hasn't handed over yet.
182
+ if (this.observer)
183
+ this.note(this.observer.takeRecords());
184
+ this.observer?.disconnect();
185
+ this.observer = undefined;
186
+ }
187
+ /** The runs that began between `from` and `to` (performance.now() ms), from `from` on. */
188
+ during(from, to) {
189
+ const pauses = this.seen
190
+ .filter(([start]) => start >= from && start <= to)
191
+ .map(([start, length, generation]) => [
192
+ Math.round((start - from) * 1000),
193
+ Math.round(length * 1000),
194
+ generation,
195
+ ]);
196
+ return {
197
+ collections: pauses.length,
198
+ pause_us: pauses.reduce((sum, [, length]) => sum + length, 0),
199
+ pauses,
200
+ };
201
+ }
202
+ }
203
+ //# sourceMappingURL=memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"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"}
package/dist/model.d.ts CHANGED
@@ -40,7 +40,7 @@ export interface TraceError {
40
40
  }
41
41
  export interface Trace {
42
42
  id: string;
43
- kind: "http" | "task" | "command";
43
+ kind: "http" | "task" | "command" | "test";
44
44
  name: string;
45
45
  start: number;
46
46
  duration: number;
@@ -63,6 +63,27 @@ export interface Profile {
63
63
  frames: number[];
64
64
  count: number;
65
65
  }[];
66
+ /** What its code allocated, when its memory was asked for (memory.ts). */
67
+ memory?: ProfileMemory;
68
+ /** The garbage collector's runs while it ran. */
69
+ gc?: {
70
+ collections: number;
71
+ pause_us: number;
72
+ pauses: [number, number, number][];
73
+ };
74
+ }
75
+ export interface ProfileMemory {
76
+ peak: number;
77
+ net: number;
78
+ allocated?: number;
79
+ /** Where the memory was at `sites_at`, largest first: each site's frames as indexes into the profile's. */
80
+ sites: {
81
+ frames: number[];
82
+ bytes: number;
83
+ count: number;
84
+ }[];
85
+ sites_at: "peak" | "end";
86
+ shared: boolean;
66
87
  }
67
88
  export interface ProfileFrame {
68
89
  function: string;
package/dist/model.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA,kHAAkH;AAElH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAiF1C,MAAM,SAAS,GAAG,kCAAkC,CAAC;AAErD,0FAA0F;AAC1F,MAAM,UAAU,KAAK,CAAC,GAAG,GAAW,IAAI,CAAC,GAAG,EAAE;IAC5C,IAAI,KAAK,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClF,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;QAC3C,KAAK,KAAK,EAAE,CAAC;IACf,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,MAAM,CAAC,EAAU;IAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED,sHAAsH;AACtH,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC;AAC9B,4FAA4F;AAC5F,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC;AAE7B,+DAA+D;AAC/D,MAAM,UAAU,YAAY,CAC1B,KAAY,EACZ,GAA0F,EAC1F,KAAK,GAAG,CAAC;IAET,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;AAC3D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,KAAY;IAClC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,IAAI,SAAS;QAAE,OAAO,KAAK,CAAC;IAClD,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK;SACvB,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;SACvC,IAAI,CACH,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAC/G,CAAC;IACJ,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3E,YAAY,CAAC,KAAK,EAAE,0BAA0B,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IAChF,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAChE,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA,kHAAkH;AAElH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AA+F1C,MAAM,SAAS,GAAG,kCAAkC,CAAC;AAErD,0FAA0F;AAC1F,MAAM,UAAU,KAAK,CAAC,GAAG,GAAW,IAAI,CAAC,GAAG,EAAE;IAC5C,IAAI,KAAK,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClF,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;QAC3C,KAAK,KAAK,EAAE,CAAC;IACf,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,MAAM,CAAC,EAAU;IAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED,sHAAsH;AACtH,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC;AAC9B,4FAA4F;AAC5F,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC;AAE7B,+DAA+D;AAC/D,MAAM,UAAU,YAAY,CAC1B,KAAY,EACZ,GAA0F,EAC1F,KAAK,GAAG,CAAC;IAET,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;AAC3D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,KAAY;IAClC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,IAAI,SAAS;QAAE,OAAO,KAAK,CAAC;IAClD,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK;SACvB,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;SACvC,IAAI,CACH,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAC/G,CAAC;IACJ,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3E,YAAY,CAAC,KAAK,EAAE,0BAA0B,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IAChF,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAChE,OAAO,KAAK,CAAC;AACf,CAAC"}
package/dist/next.js CHANGED
@@ -66,10 +66,10 @@ export function serveConsole(tracepanel) {
66
66
  answer(tracepanel, req, args[1]);
67
67
  return true;
68
68
  }
69
- // A request that asks to be profiled: Next.js starts its root span in this context.
70
- if (event === "request" && req && requested(req.headers)) {
71
- return context.with(context.active().setValue(PROFILE, true), () => emit.call(this, event, ...args));
72
- }
69
+ // A request that asks to be profiled: Next.js starts its root span in this context, which says what it asked.
70
+ const asked = event === "request" && req ? requested(req.headers) : undefined;
71
+ if (asked)
72
+ return context.with(context.active().setValue(PROFILE, asked), () => emit.call(this, event, ...args));
73
73
  return emit.call(this, event, ...args);
74
74
  };
75
75
  }
package/dist/next.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"next.js","sourceRoot":"","sources":["../src/next.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"next.js","sourceRoot":"","sources":["../src/next.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,8 @@ interface Building {
18
18
  origins: Map<string, string | null>;
19
19
  /** OTel span id: the library code that asked for a call none of the app's code was on the stack of. */
20
20
  callers: Map<string, string>;
21
+ /** The ORM a span's call went through (db.client), by the span's id. */
22
+ orms: Map<string, string>;
21
23
  queries: number;
22
24
  dbTime: number;
23
25
  framework: string;
@@ -25,6 +27,8 @@ interface Building {
25
27
  startedMs: number;
26
28
  /** OTel span id of the request's root span here: its parent, if any, is in another process. */
27
29
  rootSpanId: string;
30
+ /** The W3C trace id the root span has: a test's, for the requests the test made of the app. */
31
+ traceId: string;
28
32
  /** The route pattern a framework named (Nitro's /api/books/:id), for a root span that has none. */
29
33
  route: string | null;
30
34
  /** The request as its root span started: method and target, to find it from a response sent outside its context. */
@@ -43,18 +47,28 @@ interface Building {
43
47
  transactions: Set<string>;
44
48
  /** OTel span id → the app's line behind a span that is left out, for the span it stands over (Next's fetch). */
45
49
  passedOrigins: Map<string, string | null>;
50
+ /** OTel span id of a span left out → its parent's, and whether it is an ORM's transaction (Prisma's $transaction). */
51
+ skippedParents: Map<string, {
52
+ parent: string;
53
+ ormTransaction: boolean;
54
+ }>;
55
+ /** OTel span id → the Tracepanel id of its parent, where it isn't its OTel parent's (a transaction an ORM began). */
56
+ fixedParents: Map<string, string | null>;
46
57
  /**
47
58
  * The app's line behind the latest span that had one. A driver often starts its query span later, from a callback
48
59
  * (pg's pool runs the query once it has a connection), where the stack holds none of the app's code; the
49
60
  * connection checkout before it started right in the app's call.
50
61
  */
51
62
  lastOrigin: string | null;
63
+ /** The ORM the app's last call went through, with lastOrigin. */
64
+ lastOrm: string | null;
52
65
  /** The trace's profile while it runs, when it is profiled. */
53
66
  recording?: Recording | undefined;
54
67
  }
55
68
  export declare class TracepanelProcessor implements SpanProcessor {
56
69
  private readonly config;
57
- private readonly sink;
70
+ /** Where the traces go: a test runner's integration puts its own in front of the agent's (testing.ts). */
71
+ sink: Sink;
58
72
  /** The traces being built, by their root span's OTel id. */
59
73
  private readonly open;
60
74
  /**
@@ -65,8 +79,16 @@ export declare class TracepanelProcessor implements SpanProcessor {
65
79
  private readonly profiler;
66
80
  /** What reads an error's local variables: made as the first trace starts; null where it can't be. */
67
81
  private locals;
68
- constructor(config: Config, sink: Sink);
82
+ constructor(config: Config,
83
+ /** Where the traces go: a test runner's integration puts its own in front of the agent's (testing.ts). */
84
+ sink: Sink);
69
85
  onStart(span: SdkSpan, parentContext: Context): void;
86
+ /**
87
+ * A transaction an ORM began from its own span (Prisma's interactive $transaction: BEGIN is sent from its engine,
88
+ * under its prisma:client:transaction span, while the app's callback runs in that span's context): what the callback
89
+ * does (its queries, HTTP calls, jobs) goes inside the transaction span, as it does when the app sends BEGIN itself.
90
+ */
91
+ private adopt;
70
92
  onEnd(span: ReadableSpan): void;
71
93
  /**
72
94
  * BEGIN, COMMIT and the like in a transaction span, which stands for them. Told as the span ends: the pg
@@ -82,6 +104,13 @@ export declare class TracepanelProcessor implements SpanProcessor {
82
104
  building: Building;
83
105
  spanId: string | null;
84
106
  } | undefined;
107
+ /** The trace being built from an OTel span, while it is: a test's, its spans so far. */
108
+ openTrace(spanId: string): Trace | undefined;
109
+ /**
110
+ * The traces of this W3C trace id still being built, or waiting for their late spans: the requests a test made of
111
+ * the app, their traces not yet sent. `except`: the OTel id of a root span left out (the test's own, running).
112
+ */
113
+ building(traceId: string, except?: string): Trace[];
85
114
  /** What the widget shows before the request's span ends: its id, its queries so far and their time. */
86
115
  timing(request?: {
87
116
  method: string;
@@ -100,7 +129,10 @@ export declare class TracepanelProcessor implements SpanProcessor {
100
129
  /** An error a framework caught and answered with a 500 itself, without recording it on a span (Nitro). */
101
130
  addError(error: unknown): void;
102
131
  addLog(log: Omit<Log, "span_id">): void;
103
- /** The framework the active request runs on, unless a more specific one (Nest on Express) already said so. */
132
+ /**
133
+ * The framework the active request runs on, unless a more specific one (Nest on Express) already said so. A server
134
+ * (Node's, Bun.serve) gives way to the framework on it (Hono).
135
+ */
104
136
  setFramework(name: string): void;
105
137
  /** The route pattern the framework matched, when the root span doesn't carry one (Nitro). */
106
138
  setRoute(route: string): void;
@@ -117,12 +149,16 @@ export declare class TracepanelProcessor implements SpanProcessor {
117
149
  private start;
118
150
  /** A span as Tracepanel draws it: the request, a route handler (view), a statement (sql), an outgoing call. */
119
151
  private convert;
152
+ /** A statement's attributes. `orm`: the ORM it went through, which db.client names instead of the driver. */
120
153
  private sqlAttrs;
121
154
  /** Exceptions the instrumentation recorded on a span: the request's errors, with their frames. */
122
155
  private collectErrors;
123
156
  /** The trace from its root span: name, timing, the request's attributes. */
124
157
  private finish;
125
- /** A command (trace()) or a task (a queue's job): named as it was started, its task.* attributes kept. */
158
+ /**
159
+ * A command (trace()), a task (a queue's job) or a test: named as it was started, its task.* attributes kept (a
160
+ * test's test.* and code.*: which test, where).
161
+ */
126
162
  private finishWork;
127
163
  }
128
164
  export interface Timing {