ugly-app 0.1.820 → 0.1.822
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/cli/version.d.ts +1 -1
- package/dist/cli/version.js +1 -1
- package/dist/inspect/agent/perfAgent.d.ts +23 -0
- package/dist/inspect/agent/perfAgent.d.ts.map +1 -1
- package/dist/inspect/agent/perfAgent.js +165 -11
- package/dist/inspect/agent/perfAgent.js.map +1 -1
- package/dist/inspect/agent/profile.js +15 -1
- package/dist/inspect/agent/profile.js.map +1 -1
- package/dist/inspect/agent-bundle.js +4 -3
- package/dist/inspect/host-bundle.js +8 -8
- package/dist/inspect/protocol.d.ts +3 -1
- package/dist/inspect/protocol.d.ts.map +1 -1
- package/dist/inspect/protocol.js.map +1 -1
- package/dist/server/Logging.d.ts +1 -1
- package/dist/server/Logging.d.ts.map +1 -1
- package/dist/shared/FrameworkRequests.d.ts +1 -1
- package/dist/shared/FrameworkRequests.d.ts.map +1 -1
- package/dist/shared/FrameworkRequests.js +1 -0
- package/dist/shared/FrameworkRequests.js.map +1 -1
- package/package.json +2 -2
- package/src/cli/version.ts +1 -1
- package/src/inspect/agent/perfAgent.test.ts +24 -0
- package/src/inspect/agent/perfAgent.ts +167 -11
- package/src/inspect/agent/perfAgentThrottle.test.ts +148 -0
- package/src/inspect/agent/profile.ts +16 -1
- package/src/inspect/protocol.ts +3 -1
- package/src/server/App.ts +1 -1
- package/src/server/Logging.ts +1 -1
- package/src/server/adapter/workers/createWorkersApp.ts +1 -1
- package/src/shared/FrameworkRequests.ts +1 -0
package/dist/cli/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const CLI_VERSION = "0.1.
|
|
1
|
+
export declare const CLI_VERSION = "0.1.822";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/cli/version.js
CHANGED
|
@@ -8,12 +8,35 @@ export declare class PerfAgent {
|
|
|
8
8
|
private pendingAnomalies;
|
|
9
9
|
private snapshots;
|
|
10
10
|
private profiling;
|
|
11
|
+
private lastProfileAt;
|
|
12
|
+
private startupCaptured;
|
|
11
13
|
private lcpMs;
|
|
12
14
|
private fcpMs;
|
|
13
15
|
private _startup;
|
|
14
16
|
constructor(now: () => number, vitalsReader: () => import('../protocol.js').WebVitals);
|
|
15
17
|
/** Call once after the agent is created. Starts continuous monitoring. */
|
|
16
18
|
install(): void;
|
|
19
|
+
/**
|
|
20
|
+
* Fire once, ~STARTUP_SNAPSHOT_DELAY_MS after load: a `page-load` snapshot carrying
|
|
21
|
+
* the startup milestone breakdown + LCP/FCP. Bypasses the hidden-tab gate — startup
|
|
22
|
+
* timing is a one-time load metric, not ongoing pressure — but LCP/FCP may be null
|
|
23
|
+
* if the tab never painted (preloaded in the background).
|
|
24
|
+
*/
|
|
25
|
+
private captureStartupSnapshot;
|
|
26
|
+
/**
|
|
27
|
+
* Whether the long tasks seen *recently* warrant an anomaly.
|
|
28
|
+
*
|
|
29
|
+
* The old test also added `vitals.longTasks.length` — a cumulative buffer that is
|
|
30
|
+
* capped at 200 but never decays. Once a page had emitted 10 long tasks in its
|
|
31
|
+
* lifetime (trivial for any real app) the threshold was permanently satisfied, so
|
|
32
|
+
* EVERY subsequent long task captured an anomaly and ran a 1s self-profile. That
|
|
33
|
+
* is a runaway loop: profiling generates long tasks, which schedule more profiling.
|
|
34
|
+
*
|
|
35
|
+
* Only `this.longTasks` is consulted — it prunes to a trailing 10s window. `vitals`
|
|
36
|
+
* stays in the signature because its entries are stamped with a different clock
|
|
37
|
+
* (`deps.now()`), so they cannot be windowed against this one.
|
|
38
|
+
*/
|
|
39
|
+
private longTaskAnomalyDue;
|
|
17
40
|
/** Mark a startup milestone (call from outside). */
|
|
18
41
|
mark(label: string): void;
|
|
19
42
|
/** Read current lightweight vitals (for polling). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"perfAgent.d.ts","sourceRoot":"","sources":["../../../src/inspect/agent/perfAgent.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"perfAgent.d.ts","sourceRoot":"","sources":["../../../src/inspect/agent/perfAgent.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAmO/D,qBAAa,SAAS;IAkBlB,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,YAAY;IAlBtB,OAAO,CAAC,SAAS,CAA2B;IAC5C,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,gBAAgB,CAAiC;IACzD,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,QAAQ,CAId;gBAGQ,GAAG,EAAE,MAAM,MAAM,EACjB,YAAY,EAAE,MAAM,OAAO,gBAAgB,EAAE,SAAS;IAWhE,0EAA0E;IAC1E,OAAO,IAAI,IAAI;IA2Ef;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB;IAkC9B;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,kBAAkB;IAK1B,oDAAoD;IACpD,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAOzB,qDAAqD;IACrD,MAAM,IAAI,UAAU;IASpB,0EAA0E;IAC1E,YAAY,IAAI,YAAY,GAAG,IAAI;IAWnC,kEAAkE;IAC5D,cAAc,CAAC,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAmFrE,gEAAgE;IAChE,MAAM,IAAI,YAAY;IA2BtB,2BAA2B;IAC3B,OAAO,IAAI,IAAI;CAIhB"}
|
|
@@ -24,6 +24,29 @@ const LONG_TASK_WINDOW_COUNT = 5;
|
|
|
24
24
|
const DROPPED_FRAME_THRESHOLD = 3;
|
|
25
25
|
const MAX_PENDING_ANOMALIES = 10;
|
|
26
26
|
const PROFILE_DURATION_MS = 1000;
|
|
27
|
+
// The 1s self-profile costs ~250 stack captures. Anomalies can arrive back-to-back
|
|
28
|
+
// (every long task fires one), so profiling every anomaly makes the agent a
|
|
29
|
+
// meaningful share of the very load it is measuring. Snapshots are still captured
|
|
30
|
+
// each time; only the call tree is rate-limited.
|
|
31
|
+
const PROFILE_COOLDOWN_MS = 30_000;
|
|
32
|
+
// Above this, a heartbeat gap is a discontinuity (suspension / sleep / throttled tick
|
|
33
|
+
// racing `visibilitychange`), not event-loop lag. Comfortably above the largest block
|
|
34
|
+
// we still want to report as a spike.
|
|
35
|
+
const SUSPEND_GAP_MS = 10_000;
|
|
36
|
+
// Delay before the one-shot `page-load` snapshot. Long enough for LCP/FCP to settle
|
|
37
|
+
// and the page to become interactive; well inside the "if it's slower than this it
|
|
38
|
+
// doesn't matter" horizon. Startup data lands without needing tab-close or app-quit.
|
|
39
|
+
const STARTUP_SNAPSHOT_DELAY_MS = 8_000;
|
|
40
|
+
/**
|
|
41
|
+
* A hidden page's timers are throttled by the browser — Chromium clamps them to 1s
|
|
42
|
+
* and, after ~5 minutes, to once per MINUTE. The heartbeat measures `now - expected`,
|
|
43
|
+
* so an idle backgrounded tab reports tens of seconds of "event-loop lag" and a
|
|
44
|
+
* saturated cpuPressure. That is a property of not being on screen, not of the page.
|
|
45
|
+
* Observed in production: a backgrounded tab converging on exactly ~60000ms of lag.
|
|
46
|
+
*/
|
|
47
|
+
function isHidden() {
|
|
48
|
+
return typeof document !== 'undefined' && document.hidden === true;
|
|
49
|
+
}
|
|
27
50
|
// ─── Helpers ─────────────────────────────────────────────────────────────────
|
|
28
51
|
let raf;
|
|
29
52
|
let caf;
|
|
@@ -72,10 +95,36 @@ class HeartbeatDetector {
|
|
|
72
95
|
return 0;
|
|
73
96
|
return this.lagSamples.reduce((a, b) => a + b, 0) / this.lagSamples.length;
|
|
74
97
|
}
|
|
98
|
+
/**
|
|
99
|
+
* Drop the accumulated window and re-baseline. Called when the page is hidden (its
|
|
100
|
+
* timers are about to be throttled) and when it becomes visible again (the first
|
|
101
|
+
* tick after a throttled gap would otherwise register as a huge stall).
|
|
102
|
+
*/
|
|
103
|
+
reset(now) {
|
|
104
|
+
this.lastTick = now;
|
|
105
|
+
this.lagSamples.length = 0;
|
|
106
|
+
this.delayedSamples.length = 0;
|
|
107
|
+
this.blipCount = 0;
|
|
108
|
+
}
|
|
75
109
|
/** Returns true when a fresh anomaly is detected (pressure just crossed threshold). */
|
|
76
110
|
tick(now) {
|
|
111
|
+
// A throttled tick measures the browser's scheduling policy, not the page's
|
|
112
|
+
// event loop. Re-baseline and record nothing.
|
|
113
|
+
if (isHidden()) {
|
|
114
|
+
this.reset(now);
|
|
115
|
+
return false;
|
|
116
|
+
}
|
|
77
117
|
const expected = this.lastTick + HEARTBEAT_INTERVAL_MS;
|
|
78
118
|
const lag = Math.max(0, now - expected);
|
|
119
|
+
// A gap this large is a discontinuity — process suspension, machine sleep, or a
|
|
120
|
+
// throttled tick that beat `visibilitychange` back to the queue. It is not a
|
|
121
|
+
// stall we could act on, and recording it poisons the trailing average for the
|
|
122
|
+
// next ~10s. Re-baseline instead. (A genuine multi-second block below this
|
|
123
|
+
// threshold is still reported as a spike.)
|
|
124
|
+
if (lag > SUSPEND_GAP_MS) {
|
|
125
|
+
this.reset(now);
|
|
126
|
+
return false;
|
|
127
|
+
}
|
|
79
128
|
this.lagSamples.push(lag);
|
|
80
129
|
if (this.lagSamples.length > HEARTBEAT_WINDOW_SAMPLES)
|
|
81
130
|
this.lagSamples.shift();
|
|
@@ -120,7 +169,18 @@ class FrameBudgetMonitor {
|
|
|
120
169
|
dropCount = 0;
|
|
121
170
|
rafId = 0;
|
|
122
171
|
onJank = null;
|
|
172
|
+
/** Forget the last frame time so a hidden→visible gap isn't counted as jank. */
|
|
173
|
+
reset() {
|
|
174
|
+
this.lastFrame = 0;
|
|
175
|
+
this.dropCount = 0;
|
|
176
|
+
}
|
|
123
177
|
tick = (now) => {
|
|
178
|
+
// rAF is suspended while hidden; the first frame back carries the whole gap.
|
|
179
|
+
if (isHidden()) {
|
|
180
|
+
this.reset();
|
|
181
|
+
this.rafId = raf(this.tick);
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
124
184
|
const delta = now - this.lastFrame;
|
|
125
185
|
if (this.lastFrame > 0 && delta > 32) {
|
|
126
186
|
this.dropCount++;
|
|
@@ -167,6 +227,8 @@ export class PerfAgent {
|
|
|
167
227
|
pendingAnomalies = [];
|
|
168
228
|
snapshots = [];
|
|
169
229
|
profiling = false;
|
|
230
|
+
lastProfileAt = 0;
|
|
231
|
+
startupCaptured = false;
|
|
170
232
|
lcpMs;
|
|
171
233
|
fcpMs;
|
|
172
234
|
_startup;
|
|
@@ -213,9 +275,7 @@ export class PerfAgent {
|
|
|
213
275
|
this.lcpMs = e.startTime;
|
|
214
276
|
}
|
|
215
277
|
}
|
|
216
|
-
|
|
217
|
-
const ltCount = vitals.longTasks?.length ?? 0;
|
|
218
|
-
if (ltCount + this.longTasks.count >= LONG_TASK_WINDOW_COUNT * 2) {
|
|
278
|
+
if (this.longTaskAnomalyDue(vitals)) {
|
|
219
279
|
void this.captureAnomaly('long-task');
|
|
220
280
|
}
|
|
221
281
|
});
|
|
@@ -236,8 +296,85 @@ export class PerfAgent {
|
|
|
236
296
|
}
|
|
237
297
|
}
|
|
238
298
|
catch { /* unsupported */ }
|
|
299
|
+
// Re-baseline across visibility changes. Going hidden, the next tick may be a
|
|
300
|
+
// minute late; coming back, that gap must not be charged to the page.
|
|
301
|
+
try {
|
|
302
|
+
if (typeof document !== 'undefined' && typeof document.addEventListener === 'function') {
|
|
303
|
+
document.addEventListener('visibilitychange', () => {
|
|
304
|
+
this.heartbeat.reset(Date.now());
|
|
305
|
+
this.frameBudget.reset();
|
|
306
|
+
});
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
catch { /* no document (worker/test) */ }
|
|
239
310
|
// Track startup milestones
|
|
240
311
|
this._startup.milestones.push({ label: 'agent:install', deltaMs: Math.round(this.now() - this._startup.t0) });
|
|
312
|
+
// One-shot startup snapshot so initial-load data (startup timings + LCP/FCP)
|
|
313
|
+
// lands reliably a few seconds after load — not only on anomaly or unload.
|
|
314
|
+
try {
|
|
315
|
+
const t = setTimeout(() => this.captureStartupSnapshot(), STARTUP_SNAPSHOT_DELAY_MS);
|
|
316
|
+
if (t && typeof t.unref === 'function')
|
|
317
|
+
t.unref();
|
|
318
|
+
}
|
|
319
|
+
catch { /* no timers (test) */ }
|
|
320
|
+
}
|
|
321
|
+
/**
|
|
322
|
+
* Fire once, ~STARTUP_SNAPSHOT_DELAY_MS after load: a `page-load` snapshot carrying
|
|
323
|
+
* the startup milestone breakdown + LCP/FCP. Bypasses the hidden-tab gate — startup
|
|
324
|
+
* timing is a one-time load metric, not ongoing pressure — but LCP/FCP may be null
|
|
325
|
+
* if the tab never painted (preloaded in the background).
|
|
326
|
+
*/
|
|
327
|
+
captureStartupSnapshot() {
|
|
328
|
+
if (this.startupCaptured)
|
|
329
|
+
return;
|
|
330
|
+
this.startupCaptured = true;
|
|
331
|
+
const heap = heapMb();
|
|
332
|
+
const vitals = this.vitalsReader();
|
|
333
|
+
const totalMs = this._startup.milestones.length > 0
|
|
334
|
+
? this._startup.milestones[this._startup.milestones.length - 1].deltaMs
|
|
335
|
+
: 0;
|
|
336
|
+
const snapshot = {
|
|
337
|
+
trigger: 'page-load',
|
|
338
|
+
cpuPressure: this.heartbeat.pressure,
|
|
339
|
+
eventLoopLagMs: Math.round(this.heartbeat.avgLagMs),
|
|
340
|
+
heapUsedMb: Math.round(heap.used * 10) / 10,
|
|
341
|
+
heapTotalMb: Math.round(heap.total * 10) / 10,
|
|
342
|
+
longTaskCount: this.longTasks.count,
|
|
343
|
+
domNodeCount: domCount(),
|
|
344
|
+
...(this.lcpMs != null ? { lcpMs: this.lcpMs } : {}),
|
|
345
|
+
...(this.fcpMs != null ? { fcpMs: this.fcpMs } : {}),
|
|
346
|
+
...(vitals.cls != null ? { cls: vitals.cls } : {}),
|
|
347
|
+
callTree: null,
|
|
348
|
+
startup: {
|
|
349
|
+
milestones: this._startup.milestones.slice(),
|
|
350
|
+
totalMs,
|
|
351
|
+
longTaskCount: this._startup.longTasks,
|
|
352
|
+
},
|
|
353
|
+
};
|
|
354
|
+
if (this.snapshots.length >= MAX_PENDING_ANOMALIES) {
|
|
355
|
+
this.snapshots.shift();
|
|
356
|
+
this.pendingAnomalies.shift();
|
|
357
|
+
}
|
|
358
|
+
this.pendingAnomalies.push('page-load');
|
|
359
|
+
this.snapshots.push(snapshot);
|
|
360
|
+
}
|
|
361
|
+
/**
|
|
362
|
+
* Whether the long tasks seen *recently* warrant an anomaly.
|
|
363
|
+
*
|
|
364
|
+
* The old test also added `vitals.longTasks.length` — a cumulative buffer that is
|
|
365
|
+
* capped at 200 but never decays. Once a page had emitted 10 long tasks in its
|
|
366
|
+
* lifetime (trivial for any real app) the threshold was permanently satisfied, so
|
|
367
|
+
* EVERY subsequent long task captured an anomaly and ran a 1s self-profile. That
|
|
368
|
+
* is a runaway loop: profiling generates long tasks, which schedule more profiling.
|
|
369
|
+
*
|
|
370
|
+
* Only `this.longTasks` is consulted — it prunes to a trailing 10s window. `vitals`
|
|
371
|
+
* stays in the signature because its entries are stamped with a different clock
|
|
372
|
+
* (`deps.now()`), so they cannot be windowed against this one.
|
|
373
|
+
*/
|
|
374
|
+
longTaskAnomalyDue(_vitals) {
|
|
375
|
+
if (isHidden())
|
|
376
|
+
return false;
|
|
377
|
+
return this.longTasks.count >= LONG_TASK_WINDOW_COUNT;
|
|
241
378
|
}
|
|
242
379
|
/** Mark a startup milestone (call from outside). */
|
|
243
380
|
mark(label) {
|
|
@@ -273,11 +410,21 @@ export class PerfAgent {
|
|
|
273
410
|
return;
|
|
274
411
|
if (this.profiling && trigger !== 'page-unload')
|
|
275
412
|
return;
|
|
413
|
+
// A hidden page's detectors measure browser throttling, not the page. `page-unload`
|
|
414
|
+
// is exempt: a tab is often hidden at the moment it is torn down.
|
|
415
|
+
if (trigger !== 'page-unload' && isHidden())
|
|
416
|
+
return;
|
|
276
417
|
this.profiling = true;
|
|
277
418
|
const heap = heapMb();
|
|
278
419
|
const vitals = this.vitalsReader();
|
|
420
|
+
// The profile is the expensive part (~250 stack captures over 1s). Snapshot every
|
|
421
|
+
// anomaly, but sample at most once per cooldown so the agent can't become the
|
|
422
|
+
// dominant cost on a page that is emitting anomalies continuously.
|
|
423
|
+
const nowMs = Date.now();
|
|
424
|
+
const mayProfile = trigger !== 'page-unload' && nowMs - this.lastProfileAt >= PROFILE_COOLDOWN_MS;
|
|
279
425
|
let callTree = null;
|
|
280
|
-
if (
|
|
426
|
+
if (mayProfile) {
|
|
427
|
+
this.lastProfileAt = nowMs;
|
|
281
428
|
try {
|
|
282
429
|
const profile = await selfProfile(PROFILE_DURATION_MS, this.now);
|
|
283
430
|
// Flatten the top 10 self-time frames
|
|
@@ -298,13 +445,20 @@ export class PerfAgent {
|
|
|
298
445
|
walk(profile.root);
|
|
299
446
|
frames.sort((a, b) => b.selfMs - a.selfMs);
|
|
300
447
|
const totalSelf = frames.reduce((s, f) => s + f.selfMs, 0);
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
448
|
+
// No page frames sampled. This is the common case for a single synchronous
|
|
449
|
+
// block: the sampler runs on a timer, and timers do not run *during* the
|
|
450
|
+
// block, so by the time it profiles, the page is idle again. Report `null`
|
|
451
|
+
// rather than an empty tree — an empty array reads as "profiled, nothing hot",
|
|
452
|
+
// which is a different (and misleading) claim.
|
|
453
|
+
callTree = frames.length === 0
|
|
454
|
+
? null
|
|
455
|
+
: frames.slice(0, 10).map((f) => ({
|
|
456
|
+
functionName: f.fn,
|
|
457
|
+
url: f.url,
|
|
458
|
+
line: f.line,
|
|
459
|
+
col: f.col,
|
|
460
|
+
selfPercent: totalSelf > 0 ? Math.round((f.selfMs / totalSelf) * 100) : 0,
|
|
461
|
+
}));
|
|
308
462
|
}
|
|
309
463
|
catch {
|
|
310
464
|
callTree = null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"perfAgent.js","sourceRoot":"","sources":["../../../src/inspect/agent/perfAgent.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"perfAgent.js","sourceRoot":"","sources":["../../../src/inspect/agent/perfAgent.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,11 +33,25 @@ function schedule(fn) {
|
|
|
33
33
|
else
|
|
34
34
|
fn();
|
|
35
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* Frames belonging to the inspect agent itself. The `profile.(js|ts)` test only ever
|
|
38
|
+
* matched an unbundled dev build: in the shipped IIFE every module collapses into one
|
|
39
|
+
* file, so the sampler's own frames survived the filter and it profiled ITSELF —
|
|
40
|
+
* production call trees were a single minified frame with 100% self time, useless for
|
|
41
|
+
* finding the real hot path. The bundle now carries a `sourceURL` footer so its frames
|
|
42
|
+
* are attributable.
|
|
43
|
+
*
|
|
44
|
+
* Bare `<anonymous>` is deliberately NOT filtered: page code run through `eval` /
|
|
45
|
+
* `executeJavaScript` reports that way and is exactly what we want to surface.
|
|
46
|
+
*/
|
|
47
|
+
function isAgentFrame(url) {
|
|
48
|
+
return /profile\.(js|ts)/.test(url) || /ugly-inspect-agent/.test(url);
|
|
49
|
+
}
|
|
36
50
|
function captureFrames() {
|
|
37
51
|
// Frames are leaf→root; reverse to root→leaf and drop our own profiler frames.
|
|
38
52
|
const frames = parseStack(new Error().stack, 1);
|
|
39
53
|
return frames
|
|
40
|
-
.filter((f) =>
|
|
54
|
+
.filter((f) => !isAgentFrame(f.url))
|
|
41
55
|
.map((f) => ({ url: f.url, line: f.line, col: f.col, functionName: f.functionName }))
|
|
42
56
|
.reverse();
|
|
43
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../../../src/inspect/agent/profile.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,gFAAgF;AAChF,+EAA+E;AAC/E,yCAAyC;AAGzC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAE7B,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,UAAkB,EAAE,GAAiB;IACrE,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC;IACpB,MAAM,MAAM,GAAkB,EAAE,CAAC;IAEjC,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QAClC,MAAM,IAAI,GAAG,GAAS,EAAE;YACtB,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;YAC7B,IAAI,GAAG,EAAE,GAAG,KAAK,IAAI,UAAU;gBAAE,OAAO,EAAE,CAAC;;gBACtC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC,CAAC;QACF,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC;IAClB,OAAO;QACL,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE,GAAG;QACZ,UAAU,EAAE,GAAG,GAAG,KAAK;QACvB,WAAW,EAAE,MAAM,CAAC,MAAM;QAC1B,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC;KAC1B,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,EAAc;IAC9B,IAAI,OAAO,UAAU,KAAK,WAAW;QAAE,UAAU,CAAC,EAAE,EAAE,kBAAkB,CAAC,CAAC;;QACrE,EAAE,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,aAAa;IACpB,+EAA+E;IAC/E,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAChD,OAAO,MAAM;SACV,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../../../src/inspect/agent/profile.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
"use strict";(()=>{var
|
|
2
|
-
`);for(let o of r){let i=o.trim(),s=/^at\s+(.*?)\s+\((.*?):(\d+):(\d+)\)$/.exec(i)||/^at\s+(.*?):(\d+):(\d+)$/.exec(i);if(s){s.length===5?n.push({functionName:s[1],url:s[2],line:+s[3],col:+s[4]}):n.push({functionName:"(anonymous)",url:s[1],line:+s[2],col:+s[3]});continue}s=/^(.*?)@(.*?):(\d+):(\d+)$/.exec(i),s&&n.push({functionName:s[1]||"(anonymous)",url:s[2],line:+s[3],col:+s[4]})}return n.slice(t)}function
|
|
3
|
-
`)){let r=n.indexOf(":");r>0&&(t[n.slice(0,r).trim().toLowerCase()]=n.slice(r+1).trim())}return t}function ee(e){if(e!=null)return typeof e=="string"?e.slice(0,v):typeof URLSearchParams<"u"&&e instanceof URLSearchParams?e.toString().slice(0,v):"(binary)"}async function Ue(e,t){let n=e.headers.get("content-type")||"";if(!/json|text|javascript|xml|html|csv/i.test(n)){t.responseBody={kind:"omitted"};return}try{let r=await e.clone().text();t.sizeBytes=r.length;let o=/json/i.test(n)?"json":"text";t.responseBody={kind:o,data:r.slice(0,v)}}catch{t.responseBody={kind:"omitted"}}}function Ge(e){try{if(e.responseType===""||e.responseType==="text"){let t=e.responseText||"",n=e.getResponseHeader("content-type")||"";return{kind:/json/i.test(n)?"json":"text",data:t.slice(0,v)}}}catch{}return{kind:"omitted"}}var M=class{seq=0;byId=new Map;idOf=new WeakMap;idFor(t){let n=this.idOf.get(t);if(n)return this.byId.set(n,t),n;let r=`n${++this.seq}`;return this.idOf.set(t,r),this.byId.set(r,t),r}get(t){return this.byId.get(t)}clear(){this.byId.clear()}};var se=4;async function R(e,t){let n=t(),r=[];await new Promise(i=>{let s=()=>{r.push(Je()),t()-n>=e?i():re(s)};re(s)});let o=t();return{startTime:n,endTime:o,durationMs:o-n,sampleCount:r.length,precise:!1,root:Ye(r)}}function re(e){typeof setTimeout<"u"?setTimeout(e,se):e()}function Je(){return y(new Error().stack,1).filter(t=>!/profile\.(js|ts)/.test(t.url)).map(t=>({url:t.url,line:t.line,col:t.col,functionName:t.functionName})).reverse()}function Ye(e){let t=0,n=oe(t++,"(root)");for(let r of e){let o=n;o.hitCount++;for(let i of r){let s=i,c=`${s.functionName??"(anonymous)"}@${s.url}:${s.line}`,d=o.childMap.get(c);d||(d=oe(t++,s.functionName??"(anonymous)",{url:s.url,line:s.line,col:s.col}),o.childMap.set(c,d),o.children.push(d)),d.hitCount++,o=d}}return ie(n,e.length),ae(n)}function oe(e,t,n){return{id:e,functionName:t,source:n,selfTimeMs:0,totalTimeMs:0,hitCount:0,children:[],childMap:new Map}}function ie(e,t){let n=0;for(let r of e.children)n+=ie(r,t);return e.totalTimeMs=e.hitCount*se,e.selfTimeMs=Math.max(0,e.totalTimeMs-n),e.totalTimeMs}function ae(e){return{id:e.id,functionName:e.functionName,source:e.source,selfTimeMs:e.selfTimeMs,totalTimeMs:e.totalTimeMs,hitCount:e.hitCount,children:e.children.map(t=>ae(t))}}var x=200,Ke=2,Qe=10,ce=50,Ze=1e4,et=5,tt=3,ue=10,nt=1e3,N,D;function rt(){typeof requestAnimationFrame<"u"?(N=requestAnimationFrame.bind(window),D=cancelAnimationFrame.bind(window)):(N=e=>setTimeout(e,16),D=e=>clearTimeout(e))}function le(){let e=performance;return e.memory?{used:e.memory.usedJSHeapSize/(1024*1024),total:e.memory.jsHeapSizeLimit/(1024*1024)}:{used:0,total:0}}function de(){return typeof document>"u"?0:document.getElementsByTagName("*").length}var O=class{lastTick=0;blipCount=0;lagSamples=[];delayedSamples=[];timer=null;get pressure(){return this.delayedSamples.length===0?0:this.delayedSamples.reduce((n,r)=>n+(r?1:0),0)/this.delayedSamples.length}get avgLagMs(){return this.lagSamples.length===0?0:this.lagSamples.reduce((t,n)=>t+n,0)/this.lagSamples.length}tick(t){let n=this.lastTick+x,r=Math.max(0,t-n);this.lagSamples.push(r),this.lagSamples.length>ce&&this.lagSamples.shift();let o=this.pressure>.5,i=r>x*Ke;this.delayedSamples.push(i),this.delayedSamples.length>ce&&this.delayedSamples.shift();let s=r>1e3&&!o;i?this.blipCount++:this.blipCount=Math.max(0,this.blipCount-2);let c=s||!o&&this.blipCount>=Qe;return this.lastTick=t,c}start(){this.lastTick=Date.now();let t=()=>{let n=Date.now();this.tick(n),this.timer=setTimeout(t,x)};t()}stop(){this.timer!==null&&clearTimeout(this.timer),this.timer=null}},j=class{lastFrame=0;dropCount=0;rafId=0;onJank=null;tick=t=>{let n=t-this.lastFrame;this.lastFrame>0&&n>32?(this.dropCount++,this.dropCount>=tt&&(this.dropCount=0,this.onJank?.())):this.dropCount=0,this.lastFrame=t,this.rafId=N(this.tick)};start(){this.lastFrame=performance.now?.()??Date.now(),this.rafId=N(this.tick)}stop(){D(this.rafId)}},B=class{tasks=[];get count(){return this.prune(),this.tasks.length}prune(){let t=Date.now()-Ze;this.tasks=this.tasks.filter(n=>n.ts>t)}add(t,n){this.tasks.push({ts:t,dur:n}),this.prune()}},P=class{constructor(t,n){this.now=t;this.vitalsReader=n;rt();let r=typeof performance<"u"?performance.timeOrigin??Date.now():Date.now();this._startup={milestones:[],t0:r,longTasks:0}}now;vitalsReader;heartbeat=new O;frameBudget=new j;longTasks=new B;pendingAnomalies=[];snapshots=[];profiling=!1;lcpMs;fcpMs;_startup;install(){this.heartbeat.start();let t=this,n=this.heartbeat.tick.bind(this.heartbeat);this.heartbeat.tick=r=>{let o=n(r);return o&&t.captureAnomaly("cpu-pressure"),o},this.frameBudget.onJank=()=>{this.captureAnomaly("dropped-frames")},this.frameBudget.start();try{typeof PerformanceObserver<"u"&&new PerformanceObserver(o=>{let i=this.vitalsReader();for(let c of o.getEntries())this.longTasks.add(Date.now(),c.duration);for(let c of o.getEntries())c.entryType==="largest-contentful-paint"&&(this.lcpMs=c.startTime);(i.longTasks?.length??0)+this.longTasks.count>=et*2&&this.captureAnomaly("long-task")}).observe({type:"longtask",buffered:!0})}catch{}try{typeof PerformanceObserver<"u"&&new PerformanceObserver(o=>{for(let i of o.getEntries())i.name==="first-contentful-paint"&&(this.fcpMs=i.startTime)}).observe({type:"paint",buffered:!0})}catch{}this._startup.milestones.push({label:"agent:install",deltaMs:Math.round(this.now()-this._startup.t0)})}mark(t){this._startup.milestones.push({label:t,deltaMs:Math.round(this.now()-this._startup.t0)})}vitals(){return{cpuPressure:this.heartbeat.pressure,eventLoopLagMs:Math.round(this.heartbeat.avgLagMs),longTaskCount:this.longTasks.count,pendingAnomalies:this.pendingAnomalies.slice()}}takeSnapshot(){let t=this.snapshots.shift();return t?(this.pendingAnomalies.shift(),t):null}async captureAnomaly(t){if(this.pendingAnomalies.length>=ue||this.profiling&&t!=="page-unload")return;this.profiling=!0;let n=le(),r=this.vitalsReader(),o=null;if(t!=="page-unload")try{let f=function(u){u.source&&d.push({fn:u.functionName,url:u.source.url,line:u.source.line,col:u.source.col,selfMs:u.selfTimeMs});for(let p of u.children)f(p)};var s=f;let c=await R(nt,this.now),d=[];f(c.root),d.sort((u,p)=>p.selfMs-u.selfMs);let a=d.reduce((u,p)=>u+p.selfMs,0);o=d.slice(0,10).map(u=>({functionName:u.fn,url:u.url,line:u.line,col:u.col,selfPercent:a>0?Math.round(u.selfMs/a*100):0}))}catch{o=null}let i={trigger:t,cpuPressure:this.heartbeat.pressure,eventLoopLagMs:Math.round(this.heartbeat.avgLagMs),heapUsedMb:Math.round(n.used*10)/10,heapTotalMb:Math.round(n.total*10)/10,longTaskCount:this.longTasks.count,domNodeCount:de(),...this.lcpMs!=null?{lcpMs:this.lcpMs}:{},...this.fcpMs!=null?{fcpMs:this.fcpMs}:{},...r.cls!=null?{cls:r.cls}:{},callTree:o};this.snapshots.length>=ue&&(this.snapshots.shift(),this.pendingAnomalies.shift()),this.pendingAnomalies.push(t),this.snapshots.push(i),this.profiling=!1}unload(){let t=le(),n=this.vitalsReader(),r=this._startup.milestones.length>0?this._startup.milestones[this._startup.milestones.length-1].deltaMs:0;return{trigger:"page-unload",cpuPressure:this.heartbeat.pressure,eventLoopLagMs:Math.round(this.heartbeat.avgLagMs),heapUsedMb:Math.round(t.used*10)/10,heapTotalMb:Math.round(t.total*10)/10,longTaskCount:this.longTasks.count,domNodeCount:de(),...this.lcpMs!=null?{lcpMs:this.lcpMs}:{},...this.fcpMs!=null?{fcpMs:this.fcpMs}:{},...n.cls!=null?{cls:n.cls}:{},callTree:null,startup:{milestones:this._startup.milestones.slice(),totalMs:r,longTaskCount:this._startup.longTasks}}}destroy(){this.heartbeat.stop(),this.frameBudget.stop()}};function I(e){let t=e.getAttribute?.("data-id");if(t)return`[data-id=${t}]`;let n=e.getAttribute?.("role"),r=e.tagName.toLowerCase();return e.id?`${r}#${e.id}`:n?`${r}[role=${n}]`:r}var fe="__ugly_inspect_overlay__";function pe(e){if(typeof document>"u")return{setEnabled:()=>{},highlight:()=>{},destroy:()=>{}};let t=!1,n=null;function r(){if(n)return n;let a=document.createElement("div");return a.id=fe,Object.assign(a.style,{position:"fixed",pointerEvents:"none",zIndex:"2147483647",background:"rgba(64,128,255,0.28)",border:"1px solid rgba(64,128,255,0.9)",boxSizing:"border-box",top:"0",left:"0",display:"none"}),document.documentElement.appendChild(a),n=a,a}function o(a){let u=r();if(!a){u.style.display="none";return}Object.assign(u.style,{display:"block",transform:`translate(${a.x}px, ${a.y}px)`,width:`${a.w}px`,height:`${a.h}px`})}let i=a=>{let u=c(a.clientX,a.clientY);u&&o($(u))},s=a=>{let u=c(a.clientX,a.clientY);u&&(a.preventDefault(),a.stopPropagation(),e.setPickedNode(u),e.onPicked({nodeId:e.reg.idFor(u),selector:I(u),rect:$(u)}),d(!1))};function c(a,u){n&&(n.style.display="none");let p=document.elementFromPoint(a,u);return p&&p.id!==fe?p:null}function d(a){a!==t&&(t=a,a?(window.addEventListener("pointermove",i,!0),window.addEventListener("pointerdown",s,!0)):(window.removeEventListener("pointermove",i,!0),window.removeEventListener("pointerdown",s,!0),o(null)))}function f(a){if(!a){o(null);return}let u=e.reg.get(a);u?.nodeType===1&&o($(u))}return{setEnabled:d,highlight:f,destroy:()=>{d(!1),n?.remove(),n=null}}}function $(e){let t=e.getBoundingClientRect();return{x:t.x,y:t.y,w:t.width,h:t.height}}function ge(e,t,n){if(e==="cookie"){document.cookie=`${encodeURIComponent(t)}=${encodeURIComponent(n)}; path=/`;return}C(()=>e==="session"?sessionStorage:localStorage)?.setItem(t,n)}function he(e,t){if(e==="cookie"){document.cookie=`${encodeURIComponent(t)}=; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT`;return}C(()=>e==="session"?sessionStorage:localStorage)?.removeItem(t)}async function ye(){return{localStorage:me(C(()=>localStorage)),sessionStorage:me(C(()=>sessionStorage)),cookies:ot(),indexedDB:await st()}}function C(e){try{return e()}catch{return null}}function me(e){let t={};if(!e)return t;for(let n=0;n<e.length;n++){let r=e.key(n);r!=null&&(t[r]=e.getItem(r)??"")}return t}function ot(){if(typeof document>"u"||!document.cookie)return[];let e=typeof location<"u"?location.hostname:"";return document.cookie.split("; ").filter(Boolean).map(t=>{let n=t.indexOf("="),r=n>=0?t.slice(0,n):t,o=n>=0?t.slice(n+1):"";return{name:r,value:o,domain:e,path:"/"}})}async function st(){if(typeof indexedDB>"u"||typeof indexedDB.databases!="function")return[];try{let e=await indexedDB.databases(),t=[];for(let n of e)n.name&&t.push({name:n.name,stores:await it(n.name)});return t}catch{return[]}}function it(e){return new Promise(t=>{try{let n=indexedDB.open(e);n.onsuccess=()=>{let r=n.result,o=Array.from(r.objectStoreNames);r.close(),t(o)},n.onerror=()=>t([])}catch{t([])}})}var at=40;function we(e){let t={longTasks:[]},n=[];if(typeof PerformanceObserver>"u")return{read:()=>({...t,navigation:be()}),stop:()=>{}};r("largest-contentful-paint",o=>{let i=o[o.length-1];if(!i)return;let s=i.element;t.lcp={valueMs:i.startTime,element:s?{nodeId:e.nodeIdFor(s),selector:I(s),rect:ut(s)}:void 0}}),r("paint",o=>{for(let i of o)i.name==="first-contentful-paint"&&(t.fcp=i.startTime)}),r("layout-shift",o=>{let i=t.cls??0;for(let s of o)s.hadRecentInput||(i+=s.value);t.cls=i}),r("event",o=>{let i=t.inp??0;for(let s of o){let c=s.duration;c>i&&(i=c)}t.inp=i},{durationThreshold:40}),r("longtask",o=>{for(let i of o)t.longTasks.push({ts:e.now(),durationMs:i.duration});t.longTasks.length>200&&t.longTasks.splice(0,t.longTasks.length-200)});function r(o,i,s){try{let c=new PerformanceObserver(d=>i(d.getEntries()));c.observe({type:o,buffered:!0,...s??{}}),n.push(c)}catch{}}return{read:()=>{let o=be(),{resources:i,resourceSummary:s}=ct(o?.domInteractiveMs??t.fcp);return{...t,longTasks:t.longTasks.slice(),navigation:o,ttfb:t.ttfb??o?.ttfbMs,resources:i,resourceSummary:s}},stop:()=>n.forEach(o=>o.disconnect())}}function ct(e){if(typeof performance>"u"||!performance.getEntriesByType)return{};let t=performance.getEntriesByType("resource");if(!t.length)return{};let n=0,r=0;return{resources:t.map(s=>{n+=s.transferSize||0,r+=s.duration;let c=s.requestStart>0?Math.max(0,s.requestStart-s.startTime):void 0,d=e!=null&&s.responseEnd<=e&&(s.initiatorType==="link"||s.initiatorType==="css"||s.initiatorType==="script");return{name:s.name,initiatorType:s.initiatorType||"other",startMs:s.startTime,durationMs:s.duration,blockingMs:c,transferSizeBytes:s.transferSize||void 0,decodedSizeBytes:s.decodedBodySize||void 0,fromCache:s.transferSize===0&&s.decodedBodySize>0,renderBlocking:d}}).sort((s,c)=>c.durationMs-s.durationMs).slice(0,at),resourceSummary:{count:t.length,transferBytes:n,durationMs:r}}}function be(){if(typeof performance>"u"||!performance.getEntriesByType)return;let e=performance.getEntriesByType("navigation")[0];if(e)return{ttfbMs:e.responseStart,domContentLoadedMs:e.domContentLoadedEventEnd,loadEventMs:e.loadEventEnd,domInteractiveMs:e.domInteractive,transferSizeBytes:e.transferSize}}function ut(e){let t=e.getBoundingClientRect();return{x:t.x,y:t.y,w:t.width,h:t.height}}var Ee=1e3;function b(){return typeof performance<"u"&&performance.now?performance.timeOrigin+performance.now():Date.now()}function lt(e={}){let t=new S,n=new M,r=l=>n.idFor(l),o=new E(Ee),i=new E(Ee),s=null,c,d=W({buffer:o,registry:t,nodeIdFor:r,onEntry:l=>e.onConsole?.(l),now:b}),f=te({buffer:i,onEntry:l=>e.onNetwork?.(l),now:b}),a=we({nodeIdFor:r,now:b}),u=new P(b,()=>a.read());u.install();let p=pe({reg:n,onPicked:l=>e.onPicked?.(l),setPickedNode:l=>s=l});return{meta(){return{url:typeof location<"u"?location.href:"",title:typeof document<"u"?document.title:"",isUglyApp:typeof window<"u"&&"__uglyInspect"in window,viewport:{w:typeof window<"u"?window.innerWidth:0,h:typeof window<"u"?window.innerHeight:0,dpr:typeof window<"u"&&window.devicePixelRatio||1}}},consoleBuffer:l=>l==null?o.all():o.all().filter(h=>h.seq>l),networkBuffer:l=>{let w=[...i.all(),...ne()].sort((L,Se)=>L.ts-Se.ts);return l==null?w:w.filter(L=>L.ts>l)},evaluate:(l,h)=>K(l,{registry:t,nodeIdFor:r,now:b,getPicked:()=>s,getLast:()=>c,setLast:w=>c=w},h),expand:l=>({entries:V(t.get(l),{registry:t,nodeIdFor:r})}),domCapture:l=>J(n,l,b),element:l=>Y(n,l),highlight:l=>p.highlight(l),setPicker:l=>p.setEnabled(l),vitals:()=>a.read(),profile:l=>R(l,b),perfVitals:()=>u.vitals(),perfSnapshot:()=>u.takeSnapshot(),perfUnload:()=>u.unload(),storage:()=>ye(),storageSet:(l,h,w)=>ge(l,h,w),storageRemove:(l,h)=>he(l,h),reload:l=>{typeof location<"u"&&location.reload()},reset:()=>{t.clear(),n.clear(),o.clear(),i.clear(),s=null,c=void 0},stop:()=>{d(),f(),a.stop(),u.destroy(),p.destroy()}}}function ke(e){if(typeof window<"u"&&window.__uglyInspectAgent)return window.__uglyInspectAgent;let t=lt(e);return typeof window<"u"&&(window.__uglyInspectAgent=t),t}ke();})();
|
|
1
|
+
"use strict";(()=>{var w=class{constructor(t){this.cap=t}cap;items=[];push(t){this.items.push(t),this.items.length>this.cap&&this.items.splice(0,this.items.length-this.cap)}since(t,n){let r=0,o=this.items.length;for(;r<o;){let i=r+o>>>1;n(this.items[i])<t?r=i+1:o=i}return this.items.slice(r)}all(){return this.items.slice()}clear(){this.items=[]}size(){return this.items.length}};var v=class{seq=0;byId=new Map;put(t){let n=`o${++this.seq}`;return this.byId.set(n,t),n}get(t){return this.byId.get(t)}clear(){this.byId.clear()}};function Me(e){return typeof Node<"u"&&typeof e=="object"&&e!==null&&e instanceof Node}function k(e,t){return e.length>t?`${e.slice(0,t)}\u2026`:e}function X(e){return Object.getPrototypeOf(e)?.constructor?.name}function g(e,t){switch(typeof e){case"undefined":return{type:"undefined"};case"boolean":return{type:"boolean",value:e};case"bigint":return{type:"bigint",value:`${e}n`,preview:`${e}n`};case"symbol":return{type:"symbol",value:String(e),preview:String(e)};case"string":return{type:"string",value:k(e,1e3)};case"number":return Number.isFinite(e)?{type:"number",value:e}:{type:"number",value:String(e),preview:String(e)};case"function":return{type:"function",className:"Function",preview:`\u0192 ${e.name||"(anonymous)"}()`};case"object":break;default:return{type:"object",preview:String(e)}}if(e===null)return{type:"null"};let n=e;if(Me(e))return{type:"node",className:e.nodeName??"Node",preview:Ne(e),nodeId:t.nodeIdFor?.(e)};if(e instanceof Date)return{type:"date",className:"Date",preview:Ie(e)};if(e instanceof RegExp)return{type:"regexp",className:"RegExp",preview:String(e)};if(e instanceof Error)return{type:"error",className:e.name||"Error",preview:k(`${e.name}: ${e.message}`,100),objectId:t.registry.put(e)};if(Pe(e))return{type:"promise",className:"Promise",preview:"Promise",objectId:t.registry.put(e)};if(e instanceof Map)return{type:"map",className:"Map",size:e.size,objectId:t.registry.put(e),preview:`Map(${e.size})`,entries:U(e,t)};if(e instanceof Set)return{type:"set",className:"Set",size:e.size,objectId:t.registry.put(e),preview:`Set(${e.size})`,entries:G(e,t)};if(Array.isArray(e))return{type:"array",className:"Array",size:e.length,objectId:t.registry.put(e),preview:`Array(${e.length})`,entries:q(e,t)};let r=Object.keys(n);return{type:"object",className:X(n)??"Object",size:r.length,objectId:t.registry.put(n),preview:Te(n,r),entries:L(n,r,t)}}function W(e,t){if(e instanceof Map)return U(e,t,1/0).map(n=>n.value);if(e instanceof Set)return G(e,t,1/0).map(n=>n.value);if(Array.isArray(e))return q(e,t,1/0).map(n=>n.value);if(e instanceof Error)return L({name:e.name,message:e.message,stack:e.stack},["name","message","stack"],t,1/0).map(n=>n.value);if(typeof e=="object"&&e!==null){let n=Object.keys(e);return L(e,n,t,1/0).map(r=>r.value)}return[]}function q(e,t,n=5){let r=[];for(let o=0;o<e.length&&o<n;o++)r.push({key:String(o),value:g(e[o],t)});return r}function L(e,t,n,r=5){let o=[];for(let i=0;i<t.length&&i<r;i++){let s=t[i],c;try{c=e[s]}catch{c="(getter threw)"}o.push({key:s,value:g(c,n)})}return o}function U(e,t,n=5){let r=[],o=0;for(let[i,s]of e){if(o++>=n)break;r.push({key:g(i,t),value:g(s,t)})}return r}function G(e,t,n=5){let r=[],o=0;for(let i of e){if(o++>=n)break;r.push({value:g(i,t)})}return r}function Te(e,t){let n=t.slice(0,5).map(o=>{let i;try{i=e[o]}catch{i="\u2026"}return`${o}: ${Re(i)}`}),r=t.length>5?", \u2026":"";return k(`{${n.join(", ")}${r}}`,100)}function Re(e){let t=typeof e;return t==="string"?`"${k(e,20)}"`:t==="object"&&e!==null?Array.isArray(e)?`Array(${e.length})`:X(e)??"Object":String(e)}function Ne(e){let t=e;if(t.nodeType===1){let n=(t.nodeName??"").toLowerCase(),r=t.id?`#${t.id}`:"",o=typeof t.className=="string"&&t.className?`.${t.className.trim().split(/\s+/).join(".")}`:"";return k(`<${n}${r}${o}>`,100)}return t.nodeName??"Node"}function Pe(e){return typeof e?.then=="function"}function Ie(e){try{return e.toISOString()}catch{return"Invalid Date"}}var J=["log","info","warn","error","debug"];function Y(e){if(typeof console>"u")return()=>{};let t=0,n={};for(let s of J){let c=console[s];typeof c=="function"&&(n[s]=c,console[s]=(...l)=>{try{i(s,l)}catch{}c.apply(console,l)})}let r=s=>{i("error",[s.message],{stack:y(s.error?.stack),source:{url:s.filename||"",line:s.lineno||0,col:s.colno||0}})},o=s=>{let c=s.reason;i("error",[`Unhandled rejection: ${c?.message??String(s.reason)}`],{stack:y(c?.stack)})};typeof window<"u"&&(window.addEventListener("error",r),window.addEventListener("unhandledrejection",o));function i(s,c,l){let p=c.map(m=>g(m,{registry:e.registry,nodeIdFor:e.nodeIdFor})),a=l?.stack??y(new Error().stack,1),d={seq:++t,ts:e.now(),level:s,args:p,text:_e(c),stack:a.length?a:void 0,source:l?.source??a[0]?{url:a[0].url,line:a[0].line,col:a[0].col}:void 0};e.buffer.push(d),e.onEntry?.(d)}return()=>{for(let s of J){let c=n[s];c&&(console[s]=c)}typeof window<"u"&&(window.removeEventListener("error",r),window.removeEventListener("unhandledrejection",o))}}function _e(e){return e.map(t=>{if(typeof t=="string")return t;if(t instanceof Error)return`${t.name}: ${t.message}`;try{return JSON.stringify(t)}catch{return String(t)}}).join(" ").slice(0,2e3)}function y(e,t=0){if(!e)return[];let n=[],r=e.split(`
|
|
2
|
+
`);for(let o of r){let i=o.trim(),s=/^at\s+(.*?)\s+\((.*?):(\d+):(\d+)\)$/.exec(i)||/^at\s+(.*?):(\d+):(\d+)$/.exec(i);if(s){s.length===5?n.push({functionName:s[1],url:s[2],line:+s[3],col:+s[4]}):n.push({functionName:"(anonymous)",url:s[1],line:+s[2],col:+s[3]});continue}s=/^(.*?)@(.*?):(\d+):(\d+)$/.exec(i),s&&n.push({functionName:s[1]||"(anonymous)",url:s[2],line:+s[3],col:+s[4]})}return n.slice(t)}function Z(e,t,n=Date.now){let r=t!=null&&t>0?t:40,o=typeof document<"u"&&document.documentElement?x(document.documentElement,e,r,0):xe();return{documentUrl:typeof location<"u"?location.href:"",capturedAt:n(),root:o}}function x(e,t,n,r){let o={nodeId:t.idFor(e),nodeType:e.nodeType,nodeName:e.nodeName};if(e.nodeType===Node.TEXT_NODE||e.nodeType===Node.COMMENT_NODE){let a=(e.textContent??"").trim();return a&&(o.textContent=a.slice(0,200)),o}if(e.nodeType!==Node.ELEMENT_NODE)return o;let i=e;if(o.attributes=Ce(i),o.rect=Le(i),r>=n)return o;let s=i.shadowRoot;s&&(o.shadowRoots=Array.from(s.childNodes).filter(Q).map(a=>x(a,t,n,r+1)));let c=[],l=K(i,"before");l&&c.push(l);for(let a of Array.from(i.childNodes))Q(a)&&c.push(x(a,t,n,r+1));let p=K(i,"after");return p&&c.push(p),c.length&&(o.children=c),o}function K(e,t){if(typeof getComputedStyle>"u")return;let n;try{n=getComputedStyle(e,`::${t}`).content}catch{return}if(!(!n||n==="none"||n==="normal"))return{nodeId:`${Ae(e)}::${t}`,nodeType:1,nodeName:`::${t}`,pseudo:t,textContent:n}}function Ae(e){return e.__inspectPseudoBase??e.tagName}function Q(e){return e.nodeType===Node.TEXT_NODE?!!(e.textContent??"").trim():e.nodeType===Node.ELEMENT_NODE||e.nodeType===Node.COMMENT_NODE}function Ce(e){let t={};for(let n of Array.from(e.attributes))t[n.name]=n.value;return t}function Le(e){let t=e.getBoundingClientRect();return{x:t.x,y:t.y,w:t.width,h:t.height}}function xe(){return{nodeId:"n0",nodeType:9,nodeName:"#document"}}function ee(e,t){let n=De(e,t);if(!n)throw new Error(`inspect.element: node not found (${t.nodeId??t.selector??"?"})`);let r=getComputedStyle(n),o=He(n);return{nodeId:e.idFor(n),tag:n.tagName.toLowerCase(),attributes:Ve(n),computedStyles:Oe(r),matchedRules:je(n),boxModel:$e(n,r,o),eventListeners:Fe(n),accessibility:ze(n),rect:o}}function De(e,t){if(t.nodeId){let n=e.get(t.nodeId);return n?.nodeType===1?n:null}return t.selector&&typeof document<"u"?document.querySelector(t.selector):null}function Oe(e){let t={};for(let n=0;n<e.length;n++){let r=e.item(n);t[r]=e.getPropertyValue(r)}return t}function je(e){let t=[];if(typeof document>"u")return t;for(let n of Array.from(document.styleSheets)){let r;try{r=n.cssRules}catch{continue}let o=n.href??void 0;for(let i of Array.from(r)){if(!(i instanceof CSSStyleRule))continue;let s=!1;try{s=e.matches(i.selectorText)}catch{s=!1}s&&t.push({selector:i.selectorText,source:o?{url:o,line:0,col:0}:void 0,props:Be(i.style)})}}return t}function Be(e){let t={};for(let n=0;n<e.length;n++){let r=e.item(n);t[r]=e.getPropertyValue(r)}return t}function $e(e,t,n){let r=(o,i)=>({top:M(t.getPropertyValue(`${o}-top${i}`)),right:M(t.getPropertyValue(`${o}-right${i}`)),bottom:M(t.getPropertyValue(`${o}-bottom${i}`)),left:M(t.getPropertyValue(`${o}-left${i}`))});return{content:n,padding:r("padding",""),border:r("border","-width"),margin:r("margin","")}}function Fe(e){let n=(typeof window<"u"?window:{}).__inspectGetEventListeners;if(!n)return[];try{let r=n(e),o=[];for(let[i,s]of Object.entries(r))for(let c of s)o.push({type:i,useCapture:c.useCapture,passive:c.passive});return o}catch{return[]}}function ze(e){let t={};for(let o of Array.from(e.attributes))o.name.startsWith("aria-")&&(t[o.name]=o.value);let n=e.getAttribute("role")??void 0,r=e.getAttribute("aria-label")??e.title??(e.textContent??"").trim().slice(0,80)??void 0;return{role:n,name:r||void 0,properties:t}}function Ve(e){let t={};for(let n of Array.from(e.attributes))t[n.name]=n.value;return t}function He(e){let t=e.getBoundingClientRect();return{x:t.x,y:t.y,w:t.width,h:t.height}}function M(e){let t=parseFloat(e);return Number.isFinite(t)?t:0}async function te(e,t,n){let r=t.now();try{let o=Xe(e,n?.replMode?{$0:t.getPicked(),$_:t.getLast()}:{});return n?.awaitPromise&&We(o)&&(o=await o),t.setLast(o),{ok:!0,value:g(o,{registry:t.registry,nodeIdFor:t.nodeIdFor}),tookMs:t.now()-r}}catch(o){let i=o;return{ok:!1,exception:{text:`${i?.name??"Error"}: ${i?.message??String(o)}`,stack:y(i?.stack)},tookMs:t.now()-r}}}function Xe(e,t){let n=Object.keys(t);if(n.length===0)return(0,eval)(e);let r=new Function(...n,`return (${e});`);try{return r(...n.map(o=>t[o]))}catch(o){if(o instanceof SyntaxError)return new Function(...n,e)(...n.map(s=>t[s]));throw o}}function We(e){return typeof e?.then=="function"}var T=64*1024;function se(e){if(typeof window>"u")return()=>{};let t=0,n=()=>`r${++t}`,r=window.fetch?.bind(window);r&&(window.fetch=async(l,p)=>{let a=e.now(),d=(p?.method||(l instanceof Request?l.method:"GET")).toUpperCase(),m=l instanceof Request?l.url:String(l),f={id:n(),ts:a,method:d,url:m,resourceType:"fetch",requestHeaders:re(p?.headers??(l instanceof Request?l.headers:void 0)),requestBody:oe(p?.body),timing:{startMs:a,durationMs:0}};try{let u=await r(l,p);return f.status=u.status,f.responseHeaders=re(u.headers),f.timing.durationMs=e.now()-a,f.fromCache=u.fromCache,await Ge(u,f),c(f),u}catch(u){throw f.failed=!0,f.timing.durationMs=e.now()-a,f.responseBody={kind:"text",data:String(u?.message??u)},c(f),u}});let o=window.XMLHttpRequest,i=o?.prototype.open,s=o?.prototype.send;o&&i&&s&&(o.prototype.open=function(p,a,...d){return this.__inspect={method:p.toUpperCase(),url:a,start:0},i.apply(this,[p,a,...d])},o.prototype.send=function(p){let a=this.__inspect;return a&&(a.start=e.now(),this.addEventListener("loadend",()=>{let d={id:n(),ts:a.start,method:a.method,url:a.url,status:this.status,resourceType:"xhr",requestHeaders:{},responseHeaders:Ue(this.getAllResponseHeaders()),requestBody:oe(p),responseBody:Je(this),timing:{startMs:a.start,durationMs:e.now()-a.start},failed:this.status===0};c(d)})),s.apply(this,[p])});function c(l){e.buffer.push(l),e.onEntry?.(l)}return()=>{r&&(window.fetch=r),o&&i&&(o.prototype.open=i),o&&s&&(o.prototype.send=s)}}function ne(e){return e.responseStatus||void 0}function ie(){if(typeof performance>"u"||!performance.getEntriesByType)return[];let e=performance.timeOrigin??0,t=[],n=performance.getEntriesByType("navigation")[0];n&&t.push({id:"nav",ts:e+n.startTime,method:"GET",url:n.name||(typeof location<"u"?location.href:""),status:ne(n),resourceType:"document",requestHeaders:{},timing:{startMs:e+n.startTime,durationMs:n.duration,ttfbMs:n.responseStart-n.startTime},sizeBytes:n.transferSize||void 0});for(let r of performance.getEntriesByType("resource"))r.initiatorType==="fetch"||r.initiatorType==="xmlhttprequest"||t.push({id:`res:${Math.round(r.startTime)}:${r.name}`,ts:e+r.startTime,method:"GET",url:r.name,status:ne(r),resourceType:qe(r.initiatorType),requestHeaders:{},timing:{startMs:e+r.startTime,durationMs:r.duration},sizeBytes:r.transferSize||r.decodedBodySize||void 0,fromCache:r.transferSize===0&&r.decodedBodySize>0});return t}function qe(e){switch(e){case"img":case"image":return"img";case"css":case"link":return"css";case"script":return"script";case"font":return"font";default:return e||"other"}}function re(e){let t={};if(!e)return t;if(typeof Headers<"u"&&e instanceof Headers)e.forEach((n,r)=>t[r]=n);else if(Array.isArray(e))for(let[n,r]of e)t[n]=r;else Object.assign(t,e);return t}function Ue(e){let t={};for(let n of e.split(`\r
|
|
3
|
+
`)){let r=n.indexOf(":");r>0&&(t[n.slice(0,r).trim().toLowerCase()]=n.slice(r+1).trim())}return t}function oe(e){if(e!=null)return typeof e=="string"?e.slice(0,T):typeof URLSearchParams<"u"&&e instanceof URLSearchParams?e.toString().slice(0,T):"(binary)"}async function Ge(e,t){let n=e.headers.get("content-type")||"";if(!/json|text|javascript|xml|html|csv/i.test(n)){t.responseBody={kind:"omitted"};return}try{let r=await e.clone().text();t.sizeBytes=r.length;let o=/json/i.test(n)?"json":"text";t.responseBody={kind:o,data:r.slice(0,T)}}catch{t.responseBody={kind:"omitted"}}}function Je(e){try{if(e.responseType===""||e.responseType==="text"){let t=e.responseText||"",n=e.getResponseHeader("content-type")||"";return{kind:/json/i.test(n)?"json":"text",data:t.slice(0,T)}}}catch{}return{kind:"omitted"}}var R=class{seq=0;byId=new Map;idOf=new WeakMap;idFor(t){let n=this.idOf.get(t);if(n)return this.byId.set(n,t),n;let r=`n${++this.seq}`;return this.idOf.set(t,r),this.byId.set(r,t),r}get(t){return this.byId.get(t)}clear(){this.byId.clear()}};var ue=4;async function N(e,t){let n=t(),r=[];await new Promise(i=>{let s=()=>{r.push(Ke()),t()-n>=e?i():ae(s)};ae(s)});let o=t();return{startTime:n,endTime:o,durationMs:o-n,sampleCount:r.length,precise:!1,root:Qe(r)}}function ae(e){typeof setTimeout<"u"?setTimeout(e,ue):e()}function Ye(e){return/profile\.(js|ts)/.test(e)||/ugly-inspect-agent/.test(e)}function Ke(){return y(new Error().stack,1).filter(t=>!Ye(t.url)).map(t=>({url:t.url,line:t.line,col:t.col,functionName:t.functionName})).reverse()}function Qe(e){let t=0,n=ce(t++,"(root)");for(let r of e){let o=n;o.hitCount++;for(let i of r){let s=i,c=`${s.functionName??"(anonymous)"}@${s.url}:${s.line}`,l=o.childMap.get(c);l||(l=ce(t++,s.functionName??"(anonymous)",{url:s.url,line:s.line,col:s.col}),o.childMap.set(c,l),o.children.push(l)),l.hitCount++,o=l}}return le(n,e.length),de(n)}function ce(e,t,n){return{id:e,functionName:t,source:n,selfTimeMs:0,totalTimeMs:0,hitCount:0,children:[],childMap:new Map}}function le(e,t){let n=0;for(let r of e.children)n+=le(r,t);return e.totalTimeMs=e.hitCount*ue,e.selfTimeMs=Math.max(0,e.totalTimeMs-n),e.totalTimeMs}function de(e){return{id:e.id,functionName:e.functionName,source:e.source,selfTimeMs:e.selfTimeMs,totalTimeMs:e.totalTimeMs,hitCount:e.hitCount,children:e.children.map(t=>de(t))}}var D=200,Ze=2,et=10,fe=50,tt=1e4,nt=5,rt=3,O=10,ot=1e3,st=3e4,it=1e4,at=8e3;function P(){return typeof document<"u"&&document.hidden===!0}var S,$;function ct(){typeof requestAnimationFrame<"u"?(S=requestAnimationFrame.bind(window),$=cancelAnimationFrame.bind(window)):(S=e=>setTimeout(e,16),$=e=>clearTimeout(e))}function j(){let e=performance;return e.memory?{used:e.memory.usedJSHeapSize/(1024*1024),total:e.memory.jsHeapSizeLimit/(1024*1024)}:{used:0,total:0}}function B(){return typeof document>"u"?0:document.getElementsByTagName("*").length}var F=class{lastTick=0;blipCount=0;lagSamples=[];delayedSamples=[];timer=null;get pressure(){return this.delayedSamples.length===0?0:this.delayedSamples.reduce((n,r)=>n+(r?1:0),0)/this.delayedSamples.length}get avgLagMs(){return this.lagSamples.length===0?0:this.lagSamples.reduce((t,n)=>t+n,0)/this.lagSamples.length}reset(t){this.lastTick=t,this.lagSamples.length=0,this.delayedSamples.length=0,this.blipCount=0}tick(t){if(P())return this.reset(t),!1;let n=this.lastTick+D,r=Math.max(0,t-n);if(r>it)return this.reset(t),!1;this.lagSamples.push(r),this.lagSamples.length>fe&&this.lagSamples.shift();let o=this.pressure>.5,i=r>D*Ze;this.delayedSamples.push(i),this.delayedSamples.length>fe&&this.delayedSamples.shift();let s=r>1e3&&!o;i?this.blipCount++:this.blipCount=Math.max(0,this.blipCount-2);let c=s||!o&&this.blipCount>=et;return this.lastTick=t,c}start(){this.lastTick=Date.now();let t=()=>{let n=Date.now();this.tick(n),this.timer=setTimeout(t,D)};t()}stop(){this.timer!==null&&clearTimeout(this.timer),this.timer=null}},z=class{lastFrame=0;dropCount=0;rafId=0;onJank=null;reset(){this.lastFrame=0,this.dropCount=0}tick=t=>{if(P()){this.reset(),this.rafId=S(this.tick);return}let n=t-this.lastFrame;this.lastFrame>0&&n>32?(this.dropCount++,this.dropCount>=rt&&(this.dropCount=0,this.onJank?.())):this.dropCount=0,this.lastFrame=t,this.rafId=S(this.tick)};start(){this.lastFrame=performance.now?.()??Date.now(),this.rafId=S(this.tick)}stop(){$(this.rafId)}},V=class{tasks=[];get count(){return this.prune(),this.tasks.length}prune(){let t=Date.now()-tt;this.tasks=this.tasks.filter(n=>n.ts>t)}add(t,n){this.tasks.push({ts:t,dur:n}),this.prune()}},I=class{constructor(t,n){this.now=t;this.vitalsReader=n;ct();let r=typeof performance<"u"?performance.timeOrigin??Date.now():Date.now();this._startup={milestones:[],t0:r,longTasks:0}}now;vitalsReader;heartbeat=new F;frameBudget=new z;longTasks=new V;pendingAnomalies=[];snapshots=[];profiling=!1;lastProfileAt=0;startupCaptured=!1;lcpMs;fcpMs;_startup;install(){this.heartbeat.start();let t=this,n=this.heartbeat.tick.bind(this.heartbeat);this.heartbeat.tick=r=>{let o=n(r);return o&&t.captureAnomaly("cpu-pressure"),o},this.frameBudget.onJank=()=>{this.captureAnomaly("dropped-frames")},this.frameBudget.start();try{typeof PerformanceObserver<"u"&&new PerformanceObserver(o=>{let i=this.vitalsReader();for(let s of o.getEntries())this.longTasks.add(Date.now(),s.duration);for(let s of o.getEntries())s.entryType==="largest-contentful-paint"&&(this.lcpMs=s.startTime);this.longTaskAnomalyDue(i)&&this.captureAnomaly("long-task")}).observe({type:"longtask",buffered:!0})}catch{}try{typeof PerformanceObserver<"u"&&new PerformanceObserver(o=>{for(let i of o.getEntries())i.name==="first-contentful-paint"&&(this.fcpMs=i.startTime)}).observe({type:"paint",buffered:!0})}catch{}try{typeof document<"u"&&typeof document.addEventListener=="function"&&document.addEventListener("visibilitychange",()=>{this.heartbeat.reset(Date.now()),this.frameBudget.reset()})}catch{}this._startup.milestones.push({label:"agent:install",deltaMs:Math.round(this.now()-this._startup.t0)});try{let r=setTimeout(()=>this.captureStartupSnapshot(),at);r&&typeof r.unref=="function"&&r.unref()}catch{}}captureStartupSnapshot(){if(this.startupCaptured)return;this.startupCaptured=!0;let t=j(),n=this.vitalsReader(),r=this._startup.milestones.length>0?this._startup.milestones[this._startup.milestones.length-1].deltaMs:0,o={trigger:"page-load",cpuPressure:this.heartbeat.pressure,eventLoopLagMs:Math.round(this.heartbeat.avgLagMs),heapUsedMb:Math.round(t.used*10)/10,heapTotalMb:Math.round(t.total*10)/10,longTaskCount:this.longTasks.count,domNodeCount:B(),...this.lcpMs!=null?{lcpMs:this.lcpMs}:{},...this.fcpMs!=null?{fcpMs:this.fcpMs}:{},...n.cls!=null?{cls:n.cls}:{},callTree:null,startup:{milestones:this._startup.milestones.slice(),totalMs:r,longTaskCount:this._startup.longTasks}};this.snapshots.length>=O&&(this.snapshots.shift(),this.pendingAnomalies.shift()),this.pendingAnomalies.push("page-load"),this.snapshots.push(o)}longTaskAnomalyDue(t){return P()?!1:this.longTasks.count>=nt}mark(t){this._startup.milestones.push({label:t,deltaMs:Math.round(this.now()-this._startup.t0)})}vitals(){return{cpuPressure:this.heartbeat.pressure,eventLoopLagMs:Math.round(this.heartbeat.avgLagMs),longTaskCount:this.longTasks.count,pendingAnomalies:this.pendingAnomalies.slice()}}takeSnapshot(){let t=this.snapshots.shift();return t?(this.pendingAnomalies.shift(),t):null}async captureAnomaly(t){if(this.pendingAnomalies.length>=O||this.profiling&&t!=="page-unload"||t!=="page-unload"&&P())return;this.profiling=!0;let n=j(),r=this.vitalsReader(),o=Date.now(),i=t!=="page-unload"&&o-this.lastProfileAt>=st,s=null;if(i){this.lastProfileAt=o;try{let d=function(f){f.source&&a.push({fn:f.functionName,url:f.source.url,line:f.source.line,col:f.source.col,selfMs:f.selfTimeMs});for(let u of f.children)d(u)};var l=d;let p=await N(ot,this.now),a=[];d(p.root),a.sort((f,u)=>u.selfMs-f.selfMs);let m=a.reduce((f,u)=>f+u.selfMs,0);s=a.length===0?null:a.slice(0,10).map(f=>({functionName:f.fn,url:f.url,line:f.line,col:f.col,selfPercent:m>0?Math.round(f.selfMs/m*100):0}))}catch{s=null}}let c={trigger:t,cpuPressure:this.heartbeat.pressure,eventLoopLagMs:Math.round(this.heartbeat.avgLagMs),heapUsedMb:Math.round(n.used*10)/10,heapTotalMb:Math.round(n.total*10)/10,longTaskCount:this.longTasks.count,domNodeCount:B(),...this.lcpMs!=null?{lcpMs:this.lcpMs}:{},...this.fcpMs!=null?{fcpMs:this.fcpMs}:{},...r.cls!=null?{cls:r.cls}:{},callTree:s};this.snapshots.length>=O&&(this.snapshots.shift(),this.pendingAnomalies.shift()),this.pendingAnomalies.push(t),this.snapshots.push(c),this.profiling=!1}unload(){let t=j(),n=this.vitalsReader(),r=this._startup.milestones.length>0?this._startup.milestones[this._startup.milestones.length-1].deltaMs:0;return{trigger:"page-unload",cpuPressure:this.heartbeat.pressure,eventLoopLagMs:Math.round(this.heartbeat.avgLagMs),heapUsedMb:Math.round(t.used*10)/10,heapTotalMb:Math.round(t.total*10)/10,longTaskCount:this.longTasks.count,domNodeCount:B(),...this.lcpMs!=null?{lcpMs:this.lcpMs}:{},...this.fcpMs!=null?{fcpMs:this.fcpMs}:{},...n.cls!=null?{cls:n.cls}:{},callTree:null,startup:{milestones:this._startup.milestones.slice(),totalMs:r,longTaskCount:this._startup.longTasks}}}destroy(){this.heartbeat.stop(),this.frameBudget.stop()}};function _(e){let t=e.getAttribute?.("data-id");if(t)return`[data-id=${t}]`;let n=e.getAttribute?.("role"),r=e.tagName.toLowerCase();return e.id?`${r}#${e.id}`:n?`${r}[role=${n}]`:r}var pe="__ugly_inspect_overlay__";function me(e){if(typeof document>"u")return{setEnabled:()=>{},highlight:()=>{},destroy:()=>{}};let t=!1,n=null;function r(){if(n)return n;let a=document.createElement("div");return a.id=pe,Object.assign(a.style,{position:"fixed",pointerEvents:"none",zIndex:"2147483647",background:"rgba(64,128,255,0.28)",border:"1px solid rgba(64,128,255,0.9)",boxSizing:"border-box",top:"0",left:"0",display:"none"}),document.documentElement.appendChild(a),n=a,a}function o(a){let d=r();if(!a){d.style.display="none";return}Object.assign(d.style,{display:"block",transform:`translate(${a.x}px, ${a.y}px)`,width:`${a.w}px`,height:`${a.h}px`})}let i=a=>{let d=c(a.clientX,a.clientY);d&&o(H(d))},s=a=>{let d=c(a.clientX,a.clientY);d&&(a.preventDefault(),a.stopPropagation(),e.setPickedNode(d),e.onPicked({nodeId:e.reg.idFor(d),selector:_(d),rect:H(d)}),l(!1))};function c(a,d){n&&(n.style.display="none");let m=document.elementFromPoint(a,d);return m&&m.id!==pe?m:null}function l(a){a!==t&&(t=a,a?(window.addEventListener("pointermove",i,!0),window.addEventListener("pointerdown",s,!0)):(window.removeEventListener("pointermove",i,!0),window.removeEventListener("pointerdown",s,!0),o(null)))}function p(a){if(!a){o(null);return}let d=e.reg.get(a);d?.nodeType===1&&o(H(d))}return{setEnabled:l,highlight:p,destroy:()=>{l(!1),n?.remove(),n=null}}}function H(e){let t=e.getBoundingClientRect();return{x:t.x,y:t.y,w:t.width,h:t.height}}function he(e,t,n){if(e==="cookie"){document.cookie=`${encodeURIComponent(t)}=${encodeURIComponent(n)}; path=/`;return}A(()=>e==="session"?sessionStorage:localStorage)?.setItem(t,n)}function ye(e,t){if(e==="cookie"){document.cookie=`${encodeURIComponent(t)}=; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT`;return}A(()=>e==="session"?sessionStorage:localStorage)?.removeItem(t)}async function be(){return{localStorage:ge(A(()=>localStorage)),sessionStorage:ge(A(()=>sessionStorage)),cookies:ut(),indexedDB:await lt()}}function A(e){try{return e()}catch{return null}}function ge(e){let t={};if(!e)return t;for(let n=0;n<e.length;n++){let r=e.key(n);r!=null&&(t[r]=e.getItem(r)??"")}return t}function ut(){if(typeof document>"u"||!document.cookie)return[];let e=typeof location<"u"?location.hostname:"";return document.cookie.split("; ").filter(Boolean).map(t=>{let n=t.indexOf("="),r=n>=0?t.slice(0,n):t,o=n>=0?t.slice(n+1):"";return{name:r,value:o,domain:e,path:"/"}})}async function lt(){if(typeof indexedDB>"u"||typeof indexedDB.databases!="function")return[];try{let e=await indexedDB.databases(),t=[];for(let n of e)n.name&&t.push({name:n.name,stores:await dt(n.name)});return t}catch{return[]}}function dt(e){return new Promise(t=>{try{let n=indexedDB.open(e);n.onsuccess=()=>{let r=n.result,o=Array.from(r.objectStoreNames);r.close(),t(o)},n.onerror=()=>t([])}catch{t([])}})}var ft=40;function we(e){let t={longTasks:[]},n=[];if(typeof PerformanceObserver>"u")return{read:()=>({...t,navigation:Ee()}),stop:()=>{}};r("largest-contentful-paint",o=>{let i=o[o.length-1];if(!i)return;let s=i.element;t.lcp={valueMs:i.startTime,element:s?{nodeId:e.nodeIdFor(s),selector:_(s),rect:mt(s)}:void 0}}),r("paint",o=>{for(let i of o)i.name==="first-contentful-paint"&&(t.fcp=i.startTime)}),r("layout-shift",o=>{let i=t.cls??0;for(let s of o)s.hadRecentInput||(i+=s.value);t.cls=i}),r("event",o=>{let i=t.inp??0;for(let s of o){let c=s.duration;c>i&&(i=c)}t.inp=i},{durationThreshold:40}),r("longtask",o=>{for(let i of o)t.longTasks.push({ts:e.now(),durationMs:i.duration});t.longTasks.length>200&&t.longTasks.splice(0,t.longTasks.length-200)});function r(o,i,s){try{let c=new PerformanceObserver(l=>i(l.getEntries()));c.observe({type:o,buffered:!0,...s??{}}),n.push(c)}catch{}}return{read:()=>{let o=Ee(),{resources:i,resourceSummary:s}=pt(o?.domInteractiveMs??t.fcp);return{...t,longTasks:t.longTasks.slice(),navigation:o,ttfb:t.ttfb??o?.ttfbMs,resources:i,resourceSummary:s}},stop:()=>n.forEach(o=>o.disconnect())}}function pt(e){if(typeof performance>"u"||!performance.getEntriesByType)return{};let t=performance.getEntriesByType("resource");if(!t.length)return{};let n=0,r=0;return{resources:t.map(s=>{n+=s.transferSize||0,r+=s.duration;let c=s.requestStart>0?Math.max(0,s.requestStart-s.startTime):void 0,l=e!=null&&s.responseEnd<=e&&(s.initiatorType==="link"||s.initiatorType==="css"||s.initiatorType==="script");return{name:s.name,initiatorType:s.initiatorType||"other",startMs:s.startTime,durationMs:s.duration,blockingMs:c,transferSizeBytes:s.transferSize||void 0,decodedSizeBytes:s.decodedBodySize||void 0,fromCache:s.transferSize===0&&s.decodedBodySize>0,renderBlocking:l}}).sort((s,c)=>c.durationMs-s.durationMs).slice(0,ft),resourceSummary:{count:t.length,transferBytes:n,durationMs:r}}}function Ee(){if(typeof performance>"u"||!performance.getEntriesByType)return;let e=performance.getEntriesByType("navigation")[0];if(e)return{ttfbMs:e.responseStart,domContentLoadedMs:e.domContentLoadedEventEnd,loadEventMs:e.loadEventEnd,domInteractiveMs:e.domInteractive,transferSizeBytes:e.transferSize}}function mt(e){let t=e.getBoundingClientRect();return{x:t.x,y:t.y,w:t.width,h:t.height}}var ke=1e3;function b(){return typeof performance<"u"&&performance.now?performance.timeOrigin+performance.now():Date.now()}function gt(e={}){let t=new v,n=new R,r=u=>n.idFor(u),o=new w(ke),i=new w(ke),s=null,c,l=Y({buffer:o,registry:t,nodeIdFor:r,onEntry:u=>e.onConsole?.(u),now:b}),p=se({buffer:i,onEntry:u=>e.onNetwork?.(u),now:b}),a=we({nodeIdFor:r,now:b}),d=new I(b,()=>a.read());d.install();let m=me({reg:n,onPicked:u=>e.onPicked?.(u),setPickedNode:u=>s=u});return{meta(){return{url:typeof location<"u"?location.href:"",title:typeof document<"u"?document.title:"",isUglyApp:typeof window<"u"&&"__uglyInspect"in window,viewport:{w:typeof window<"u"?window.innerWidth:0,h:typeof window<"u"?window.innerHeight:0,dpr:typeof window<"u"&&window.devicePixelRatio||1}}},consoleBuffer:u=>u==null?o.all():o.all().filter(h=>h.seq>u),networkBuffer:u=>{let E=[...i.all(),...ie()].sort((C,ve)=>C.ts-ve.ts);return u==null?E:E.filter(C=>C.ts>u)},evaluate:(u,h)=>te(u,{registry:t,nodeIdFor:r,now:b,getPicked:()=>s,getLast:()=>c,setLast:E=>c=E},h),expand:u=>({entries:W(t.get(u),{registry:t,nodeIdFor:r})}),domCapture:u=>Z(n,u,b),element:u=>ee(n,u),highlight:u=>m.highlight(u),setPicker:u=>m.setEnabled(u),vitals:()=>a.read(),profile:u=>N(u,b),perfVitals:()=>d.vitals(),perfSnapshot:()=>d.takeSnapshot(),perfUnload:()=>d.unload(),storage:()=>be(),storageSet:(u,h,E)=>he(u,h,E),storageRemove:(u,h)=>ye(u,h),reload:u=>{typeof location<"u"&&location.reload()},reset:()=>{t.clear(),n.clear(),o.clear(),i.clear(),s=null,c=void 0},stop:()=>{l(),p(),a.stop(),d.destroy(),m.destroy()}}}function Se(e){if(typeof window<"u"&&window.__uglyInspectAgent)return window.__uglyInspectAgent;let t=gt(e);return typeof window<"u"&&(window.__uglyInspectAgent=t),t}Se();})();
|
|
4
|
+
//# sourceURL=ugly-inspect-agent.js
|