ugly-app 0.1.723 → 0.1.725

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 (102) hide show
  1. package/dist/cli/version.d.ts +1 -1
  2. package/dist/cli/version.js +1 -1
  3. package/dist/inspect/agent/dom.d.ts +1 -1
  4. package/dist/inspect/agent/dom.d.ts.map +1 -1
  5. package/dist/inspect/agent/dom.js +7 -2
  6. package/dist/inspect/agent/dom.js.map +1 -1
  7. package/dist/inspect/agent/install.d.ts.map +1 -1
  8. package/dist/inspect/agent/install.js +17 -3
  9. package/dist/inspect/agent/install.js.map +1 -1
  10. package/dist/inspect/agent/network.d.ts +5 -0
  11. package/dist/inspect/agent/network.d.ts.map +1 -1
  12. package/dist/inspect/agent/network.js +62 -0
  13. package/dist/inspect/agent/network.js.map +1 -1
  14. package/dist/inspect/agent/storage.d.ts +7 -1
  15. package/dist/inspect/agent/storage.d.ts.map +1 -1
  16. package/dist/inspect/agent/storage.js +20 -0
  17. package/dist/inspect/agent/storage.js.map +1 -1
  18. package/dist/inspect/agent/types.d.ts +6 -1
  19. package/dist/inspect/agent/types.d.ts.map +1 -1
  20. package/dist/inspect/agent/vitals.d.ts.map +1 -1
  21. package/dist/inspect/agent/vitals.js +46 -1
  22. package/dist/inspect/agent/vitals.js.map +1 -1
  23. package/dist/inspect/agent-bundle.js +3 -3
  24. package/dist/inspect/client.d.ts +10 -1
  25. package/dist/inspect/client.d.ts.map +1 -1
  26. package/dist/inspect/client.js +20 -0
  27. package/dist/inspect/client.js.map +1 -1
  28. package/dist/inspect/dispatch.d.ts +2 -1
  29. package/dist/inspect/dispatch.d.ts.map +1 -1
  30. package/dist/inspect/dispatch.js +21 -2
  31. package/dist/inspect/dispatch.js.map +1 -1
  32. package/dist/inspect/host-bundle-entry.js +6 -2
  33. package/dist/inspect/host-bundle-entry.js.map +1 -1
  34. package/dist/inspect/host-bundle.js +4 -4
  35. package/dist/inspect/protocol.d.ts +59 -1
  36. package/dist/inspect/protocol.d.ts.map +1 -1
  37. package/dist/inspect/protocol.js +9 -1
  38. package/dist/inspect/protocol.js.map +1 -1
  39. package/dist/inspect/ui/InspectPanel.d.ts.map +1 -1
  40. package/dist/inspect/ui/InspectPanel.js +57 -13
  41. package/dist/inspect/ui/InspectPanel.js.map +1 -1
  42. package/dist/inspect/ui/panels/NetworkPanel.d.ts +2 -1
  43. package/dist/inspect/ui/panels/NetworkPanel.d.ts.map +1 -1
  44. package/dist/inspect/ui/panels/NetworkPanel.js +15 -5
  45. package/dist/inspect/ui/panels/NetworkPanel.js.map +1 -1
  46. package/dist/inspect/ui/panels/PerformancePanel.d.ts +2 -1
  47. package/dist/inspect/ui/panels/PerformancePanel.d.ts.map +1 -1
  48. package/dist/inspect/ui/panels/PerformancePanel.js +45 -3
  49. package/dist/inspect/ui/panels/PerformancePanel.js.map +1 -1
  50. package/dist/inspect/ui/panels/StoragePanel.d.ts.map +1 -1
  51. package/dist/inspect/ui/panels/StoragePanel.js +45 -4
  52. package/dist/inspect/ui/panels/StoragePanel.js.map +1 -1
  53. package/dist/inspect/ui/styles.js +35 -0
  54. package/dist/inspect/ui/styles.js.map +1 -1
  55. package/dist/markdown/client/MdastViewer.d.ts.map +1 -1
  56. package/dist/markdown/client/MdastViewer.js +160 -38
  57. package/dist/markdown/client/MdastViewer.js.map +1 -1
  58. package/dist/native/contract-meta.d.ts.map +1 -1
  59. package/dist/native/contract-meta.js +6 -0
  60. package/dist/native/contract-meta.js.map +1 -1
  61. package/dist/native/contract.d.ts +47 -1
  62. package/dist/native/contract.d.ts.map +1 -1
  63. package/dist/native/contract.js.map +1 -1
  64. package/dist/server/DB.d.ts.map +1 -1
  65. package/dist/server/DB.js +6 -0
  66. package/dist/server/DB.js.map +1 -1
  67. package/dist/server/PostgresDocInternal.d.ts +9 -0
  68. package/dist/server/PostgresDocInternal.d.ts.map +1 -1
  69. package/dist/server/PostgresDocInternal.js +17 -7
  70. package/dist/server/PostgresDocInternal.js.map +1 -1
  71. package/dist/server/notifyBuffer.d.ts +13 -0
  72. package/dist/server/notifyBuffer.d.ts.map +1 -0
  73. package/dist/server/notifyBuffer.js +47 -0
  74. package/dist/server/notifyBuffer.js.map +1 -0
  75. package/dist/shared/DB.d.ts +10 -0
  76. package/dist/shared/DB.d.ts.map +1 -1
  77. package/dist/shared/DB.js.map +1 -1
  78. package/package.json +1 -1
  79. package/src/cli/version.ts +1 -1
  80. package/src/inspect/agent/dom.ts +7 -2
  81. package/src/inspect/agent/install.ts +16 -4
  82. package/src/inspect/agent/network.ts +65 -0
  83. package/src/inspect/agent/storage.ts +23 -1
  84. package/src/inspect/agent/types.ts +6 -0
  85. package/src/inspect/agent/vitals.ts +50 -2
  86. package/src/inspect/client.ts +28 -0
  87. package/src/inspect/dispatch.ts +22 -3
  88. package/src/inspect/host-bundle-entry.ts +6 -2
  89. package/src/inspect/protocol.ts +68 -1
  90. package/src/inspect/ui/InspectPanel.tsx +83 -20
  91. package/src/inspect/ui/panels/NetworkPanel.tsx +52 -7
  92. package/src/inspect/ui/panels/PerformancePanel.tsx +133 -3
  93. package/src/inspect/ui/panels/StoragePanel.tsx +157 -42
  94. package/src/inspect/ui/styles.ts +35 -0
  95. package/src/markdown/client/MdastViewer.tsx +225 -50
  96. package/src/native/contract-meta.ts +6 -0
  97. package/src/native/contract.ts +13 -0
  98. package/src/server/DB.ts +7 -0
  99. package/src/server/PostgresDocInternal.ts +17 -7
  100. package/src/server/notifyBuffer.test.ts +58 -0
  101. package/src/server/notifyBuffer.ts +56 -0
  102. package/src/shared/DB.ts +11 -0
@@ -1,2 +1,2 @@
1
- export declare const CLI_VERSION = "0.1.723";
1
+ export declare const CLI_VERSION = "0.1.725";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1,3 +1,3 @@
1
1
  // Auto-generated by prebuild — do not edit manually
2
- export const CLI_VERSION = "0.1.723";
2
+ export const CLI_VERSION = "0.1.725";
3
3
  //# sourceMappingURL=version.js.map
@@ -1,4 +1,4 @@
1
1
  import type { DomSnapshot } from '../protocol.js';
2
2
  import type { NodeRegistry } from './nodeRegistry.js';
3
- export declare function captureDom(reg: NodeRegistry, maxDepth?: number, now?: () => number): DomSnapshot;
3
+ export declare function captureDom(reg: NodeRegistry, maxDepth?: number | null, now?: () => number): DomSnapshot;
4
4
  //# sourceMappingURL=dom.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../../src/inspect/agent/dom.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAwB,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAKtD,wBAAgB,UAAU,CAAC,GAAG,EAAE,YAAY,EAAE,QAAQ,SAAoB,EAAE,GAAG,GAAE,MAAM,MAAiB,GAAG,WAAW,CAUrH"}
1
+ {"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../../src/inspect/agent/dom.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAwB,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAKtD,wBAAgB,UAAU,CAAC,GAAG,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,GAAE,MAAM,MAAiB,GAAG,WAAW,CAejH"}
@@ -3,9 +3,14 @@
3
3
  // roots and ::before/::after pseudo nodes.
4
4
  const DEFAULT_MAX_DEPTH = 40;
5
5
  const MAX_TEXT = 200;
6
- export function captureDom(reg, maxDepth = DEFAULT_MAX_DEPTH, now = Date.now) {
6
+ export function captureDom(reg, maxDepth, now = Date.now) {
7
+ // Coerce null/undefined (and non-positive) to the default. The native host
8
+ // marshals args through JSON.stringify, which turns a missing `maxDepth`
9
+ // (undefined) into `null` — a plain `maxDepth = DEFAULT` default param would
10
+ // NOT catch that, leaving `depth 0 >= 0` true and capturing only <html>.
11
+ const limit = maxDepth != null && maxDepth > 0 ? maxDepth : DEFAULT_MAX_DEPTH;
7
12
  const root = typeof document !== 'undefined' && document.documentElement
8
- ? serializeNode(document.documentElement, reg, maxDepth, 0)
13
+ ? serializeNode(document.documentElement, reg, limit, 0)
9
14
  : emptyRoot();
10
15
  return {
11
16
  documentUrl: typeof location !== 'undefined' ? location.href : '',
@@ -1 +1 @@
1
- {"version":3,"file":"dom.js","sourceRoot":"","sources":["../../../src/inspect/agent/dom.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dom.js","sourceRoot":"","sources":["../../../src/inspect/agent/dom.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/inspect/agent/install.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,WAAW,EAAa,YAAY,EAAE,MAAM,YAAY,CAAC;AAUvE,wBAAgB,kBAAkB,CAAC,MAAM,GAAE,WAAgB,GAAG,YAAY,CA0EzE;AAED,qDAAqD;AACrD,wBAAgB,mBAAmB,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,YAAY,CAKtE"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/inspect/agent/install.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,WAAW,EAAa,YAAY,EAAE,MAAM,YAAY,CAAC;AAUvE,wBAAgB,kBAAkB,CAAC,MAAM,GAAE,WAAgB,GAAG,YAAY,CAsFzE;AAED,qDAAqD;AACrD,wBAAgB,mBAAmB,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,YAAY,CAKtE"}
@@ -7,12 +7,12 @@ import { installConsoleCapture } from './console.js';
7
7
  import { captureDom } from './dom.js';
8
8
  import { elementDetail } from './element.js';
9
9
  import { evaluate } from './eval.js';
10
- import { installNetworkCapture } from './network.js';
10
+ import { installNetworkCapture, resourceTimingEntries } from './network.js';
11
11
  import { NodeRegistry } from './nodeRegistry.js';
12
12
  import { installPicker } from './picker.js';
13
13
  import { selfProfile } from './profile.js';
14
14
  import { expand as expandValue, ObjectRegistry } from './serialize.js';
15
- import { captureStorage } from './storage.js';
15
+ import { captureStorage, removeStorageValue, setStorageValue } from './storage.js';
16
16
  import { installVitals } from './vitals.js';
17
17
  const BUFFER_SIZE = 1000;
18
18
  function nowMs() {
@@ -60,7 +60,14 @@ export function createInspectAgent(events = {}) {
60
60
  };
61
61
  },
62
62
  consoleBuffer: (sinceSeq) => sinceSeq == null ? consoleBuf.all() : consoleBuf.all().filter((e) => e.seq > sinceSeq),
63
- networkBuffer: (sinceTs) => sinceTs == null ? networkBuf.all() : networkBuf.since(sinceTs, (e) => e.ts),
63
+ networkBuffer: (sinceTs) => {
64
+ // Merge live-captured fetch/XHR with passively-loaded resources (initial
65
+ // document + images/css/scripts) read from the Performance timeline. The UI
66
+ // dedupes by id, so re-reads of the static resource set are harmless.
67
+ const captured = networkBuf.all();
68
+ const merged = [...captured, ...resourceTimingEntries()].sort((a, b) => a.ts - b.ts);
69
+ return sinceTs == null ? merged : merged.filter((e) => e.ts > sinceTs);
70
+ },
64
71
  evaluate: (expression, opts) => evaluate(expression, { registry: objects, nodeIdFor, now: nowMs, getPicked: () => pickedNode, getLast: () => lastEval, setLast: (v) => (lastEval = v) }, opts),
65
72
  expand: (objectId) => ({ entries: expandValue(objects.get(objectId), { registry: objects, nodeIdFor }) }),
66
73
  domCapture: (maxDepth) => captureDom(nodes, maxDepth, nowMs),
@@ -70,6 +77,13 @@ export function createInspectAgent(events = {}) {
70
77
  vitals: () => vitals.read(),
71
78
  profile: (durationMs) => selfProfile(durationMs, nowMs),
72
79
  storage: () => captureStorage(),
80
+ storageSet: (area, key, value) => setStorageValue(area, key, value),
81
+ storageRemove: (area, key) => removeStorageValue(area, key),
82
+ reload: (ignoreCache) => {
83
+ if (typeof location !== 'undefined')
84
+ location.reload();
85
+ void ignoreCache; // in-page reload can't bypass cache; the desktop host does
86
+ },
73
87
  reset: () => {
74
88
  objects.clear();
75
89
  nodes.clear();
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/inspect/agent/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/inspect/agent/install.ts"],"names":[],"mappings":"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"}
@@ -6,4 +6,9 @@ export interface NetworkCaptureDeps {
6
6
  now: () => number;
7
7
  }
8
8
  export declare function installNetworkCapture(deps: NetworkCaptureDeps): () => void;
9
+ /** Synthesize NetworkEntries the fetch/XHR hooks DON'T see — the initial document
10
+ * navigation and passively-loaded resources (images, CSS, scripts, fonts) — from
11
+ * the Performance timeline. fetch/xmlhttprequest initiators are skipped (the hooks
12
+ * already capture those with full headers/body). Stable ids let the UI dedupe. */
13
+ export declare function resourceTimingEntries(): NetworkEntry[];
9
14
  //# sourceMappingURL=network.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../../src/inspect/agent/network.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,KAAK,EAAe,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEhE,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,YAAY,KAAK,IAAI,CAAC;IACpC,GAAG,EAAE,MAAM,MAAM,CAAC;CACnB;AAID,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,IAAI,CAoF1E"}
1
+ {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../../src/inspect/agent/network.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,KAAK,EAAe,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEhE,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,YAAY,KAAK,IAAI,CAAC;IACpC,GAAG,EAAE,MAAM,MAAM,CAAC;CACnB;AAID,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,IAAI,CAoF1E;AAYD;;;mFAGmF;AACnF,wBAAgB,qBAAqB,IAAI,YAAY,EAAE,CAoCtD"}
@@ -88,6 +88,68 @@ export function installNetworkCapture(deps) {
88
88
  XHR.prototype.send = origSend;
89
89
  };
90
90
  }
91
+ // Newer engines expose the HTTP status on resource/navigation timings; read it
92
+ // defensively (it's absent on older engines).
93
+ function responseStatusOf(e) {
94
+ return e.responseStatus || undefined;
95
+ }
96
+ /** Synthesize NetworkEntries the fetch/XHR hooks DON'T see — the initial document
97
+ * navigation and passively-loaded resources (images, CSS, scripts, fonts) — from
98
+ * the Performance timeline. fetch/xmlhttprequest initiators are skipped (the hooks
99
+ * already capture those with full headers/body). Stable ids let the UI dedupe. */
100
+ export function resourceTimingEntries() {
101
+ if (typeof performance === 'undefined' || !performance.getEntriesByType)
102
+ return [];
103
+ const origin = performance.timeOrigin ?? 0;
104
+ const out = [];
105
+ const nav = performance.getEntriesByType('navigation')[0];
106
+ if (nav) {
107
+ out.push({
108
+ id: 'nav',
109
+ ts: origin + nav.startTime,
110
+ method: 'GET',
111
+ url: nav.name || (typeof location !== 'undefined' ? location.href : ''),
112
+ status: responseStatusOf(nav),
113
+ resourceType: 'document',
114
+ requestHeaders: {},
115
+ timing: { startMs: origin + nav.startTime, durationMs: nav.duration, ttfbMs: nav.responseStart - nav.startTime },
116
+ sizeBytes: nav.transferSize || undefined,
117
+ });
118
+ }
119
+ for (const e of performance.getEntriesByType('resource')) {
120
+ if (e.initiatorType === 'fetch' || e.initiatorType === 'xmlhttprequest')
121
+ continue;
122
+ out.push({
123
+ id: `res:${Math.round(e.startTime)}:${e.name}`,
124
+ ts: origin + e.startTime,
125
+ method: 'GET',
126
+ url: e.name,
127
+ status: responseStatusOf(e),
128
+ resourceType: mapInitiator(e.initiatorType),
129
+ requestHeaders: {},
130
+ timing: { startMs: origin + e.startTime, durationMs: e.duration },
131
+ sizeBytes: e.transferSize || e.decodedBodySize || undefined,
132
+ fromCache: e.transferSize === 0 && e.decodedBodySize > 0,
133
+ });
134
+ }
135
+ return out;
136
+ }
137
+ function mapInitiator(it) {
138
+ switch (it) {
139
+ case 'img':
140
+ case 'image':
141
+ return 'img';
142
+ case 'css':
143
+ case 'link':
144
+ return 'css';
145
+ case 'script':
146
+ return 'script';
147
+ case 'font':
148
+ return 'font';
149
+ default:
150
+ return it || 'other';
151
+ }
152
+ }
91
153
  function headersToObject(h) {
92
154
  const out = {};
93
155
  if (!h)
@@ -1 +1 @@
1
- {"version":3,"file":"network.js","sourceRoot":"","sources":["../../../src/inspect/agent/network.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"network.js","sourceRoot":"","sources":["../../../src/inspect/agent/network.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,9 @@
1
- import type { StorageDump } from '../protocol.js';
1
+ import type { StorageArea, StorageDump } from '../protocol.js';
2
+ /** Write a storage value (Application-panel inline edit). `local`/`session` set
3
+ * the web-storage key; `cookie` sets a document cookie (path=/). Page JS can't
4
+ * touch httpOnly cookies — the desktop host does those via CDP when available. */
5
+ export declare function setStorageValue(area: StorageArea, key: string, value: string): void;
6
+ /** Delete a storage value. */
7
+ export declare function removeStorageValue(area: StorageArea, key: string): void;
2
8
  export declare function captureStorage(): Promise<StorageDump>;
3
9
  //# sourceMappingURL=storage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/inspect/agent/storage.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAiB,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAEjE,wBAAsB,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC,CAO3D"}
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/inspect/agent/storage.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAiB,WAAW,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE9E;;mFAEmF;AACnF,wBAAgB,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAOnF;AAED,8BAA8B;AAC9B,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAOvE;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC,CAO3D"}
@@ -1,6 +1,26 @@
1
1
  // Application-panel storage dump: localStorage, sessionStorage, document cookies,
2
2
  // and IndexedDB database/store names. Cookie httpOnly/secure flags aren't visible
3
3
  // to page JS — the desktop host fills those via CDP when available.
4
+ /** Write a storage value (Application-panel inline edit). `local`/`session` set
5
+ * the web-storage key; `cookie` sets a document cookie (path=/). Page JS can't
6
+ * touch httpOnly cookies — the desktop host does those via CDP when available. */
7
+ export function setStorageValue(area, key, value) {
8
+ if (area === 'cookie') {
9
+ document.cookie = `${encodeURIComponent(key)}=${encodeURIComponent(value)}; path=/`;
10
+ return;
11
+ }
12
+ const store = safeStorage(() => (area === 'session' ? sessionStorage : localStorage));
13
+ store?.setItem(key, value);
14
+ }
15
+ /** Delete a storage value. */
16
+ export function removeStorageValue(area, key) {
17
+ if (area === 'cookie') {
18
+ document.cookie = `${encodeURIComponent(key)}=; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT`;
19
+ return;
20
+ }
21
+ const store = safeStorage(() => (area === 'session' ? sessionStorage : localStorage));
22
+ store?.removeItem(key);
23
+ }
4
24
  export async function captureStorage() {
5
25
  return {
6
26
  localStorage: dumpWebStorage(safeStorage(() => localStorage)),
@@ -1 +1 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/inspect/agent/storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/inspect/agent/storage.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { ConsoleEntry, CpuProfile, DomSnapshot, ElementDetail, EvalResult, NetworkEntry, PickedElement, RemoteValue, StorageDump, WebVitals } from '../protocol.js';
1
+ import type { ConsoleEntry, CpuProfile, DomSnapshot, ElementDetail, EvalResult, NetworkEntry, PickedElement, RemoteValue, StorageArea, StorageDump, WebVitals } from '../protocol.js';
2
2
  /** Per-document metadata used by the host to build an InspectTarget. */
3
3
  export interface AgentMeta {
4
4
  url: string;
@@ -37,6 +37,11 @@ export interface InspectAgent {
37
37
  vitals(): WebVitals;
38
38
  profile(durationMs: number): Promise<CpuProfile>;
39
39
  storage(): Promise<StorageDump>;
40
+ /** Write/delete a storage value (Application-panel inline edit). */
41
+ storageSet(area: StorageArea, key: string, value: string): void;
42
+ storageRemove(area: StorageArea, key: string): void;
43
+ /** Reload the page (Network-panel refresh). `ignoreCache` bypasses the cache. */
44
+ reload(ignoreCache?: boolean): void;
40
45
  /** Tear down all installed hooks (console/network/vitals/picker). */
41
46
  stop(): void;
42
47
  /** Drop all per-session handles (objectIds, nodeIds). */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/inspect/agent/types.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EACV,WAAW,EACX,aAAa,EACb,UAAU,EACV,YAAY,EACZ,aAAa,EACb,WAAW,EACX,WAAW,EACX,SAAS,EACV,MAAM,gBAAgB,CAAC;AAExB,wEAAwE;AACxE,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CACjD;AAED,gFAAgF;AAChF,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAC1C,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAC1C,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC;CAC5C;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,IAAI,SAAS,CAAC;IAClB,aAAa,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,YAAY,EAAE,CAAC;IACjD,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,YAAY,EAAE,CAAC;IAChD,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACzG,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,WAAW,EAAE,CAAA;KAAE,CAAC;IACrD,UAAU,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3C,OAAO,CAAC,IAAI,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,aAAa,CAAC;IACrE,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IACvC,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAClC,MAAM,IAAI,SAAS,CAAC;IACpB,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACjD,OAAO,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;IAChC,qEAAqE;IACrE,IAAI,IAAI,IAAI,CAAC;IACb,yDAAyD;IACzD,KAAK,IAAI,IAAI,CAAC;CACf;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,kBAAkB,CAAC,EAAE,YAAY,CAAC;KACnC;CACF"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/inspect/agent/types.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EACV,WAAW,EACX,aAAa,EACb,UAAU,EACV,YAAY,EACZ,aAAa,EACb,WAAW,EACX,WAAW,EACX,WAAW,EACX,SAAS,EACV,MAAM,gBAAgB,CAAC;AAExB,wEAAwE;AACxE,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CACjD;AAED,gFAAgF;AAChF,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAC1C,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAC1C,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC;CAC5C;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,IAAI,SAAS,CAAC;IAClB,aAAa,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,YAAY,EAAE,CAAC;IACjD,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,YAAY,EAAE,CAAC;IAChD,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACzG,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,WAAW,EAAE,CAAA;KAAE,CAAC;IACrD,UAAU,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3C,OAAO,CAAC,IAAI,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,aAAa,CAAC;IACrE,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IACvC,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAClC,MAAM,IAAI,SAAS,CAAC;IACpB,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACjD,OAAO,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;IAChC,oEAAoE;IACpE,UAAU,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAChE,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACpD,iFAAiF;IACjF,MAAM,CAAC,WAAW,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACpC,qEAAqE;IACrE,IAAI,IAAI,IAAI,CAAC;IACb,yDAAyD;IACzD,KAAK,IAAI,IAAI,CAAC;CACf;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,kBAAkB,CAAC,EAAE,YAAY,CAAC;KACnC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"vitals.d.ts","sourceRoot":"","sources":["../../../src/inspect/agent/vitals.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAe,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE7D,MAAM,WAAW,YAAY;IAC3B,IAAI,IAAI,SAAS,CAAC;IAClB,IAAI,IAAI,IAAI,CAAC;CACd;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE;IAAE,SAAS,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,MAAM,CAAA;CAAE,GAAG,YAAY,CA2D1G"}
1
+ {"version":3,"file":"vitals.d.ts","sourceRoot":"","sources":["../../../src/inspect/agent/vitals.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAA+B,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAK7E,MAAM,WAAW,YAAY;IAC3B,IAAI,IAAI,SAAS,CAAC;IAClB,IAAI,IAAI,IAAI,CAAC;CACd;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE;IAAE,SAAS,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,MAAM,CAAA;CAAE,GAAG,YAAY,CAsE1G"}
@@ -1,6 +1,8 @@
1
1
  // Web vitals capture via PerformanceObserver: LCP (+ element), FCP, CLS, INP,
2
2
  // TTFB, long tasks, and navigation timing. Returns a `read()` snapshot.
3
3
  import { describeElement } from '../../client/inspect/selectors.js';
4
+ /** How many of the slowest resources to surface (sorted by duration). */
5
+ const MAX_RESOURCES = 40;
4
6
  export function installVitals(deps) {
5
7
  const v = { longTasks: [] };
6
8
  const observers = [];
@@ -58,10 +60,53 @@ export function installVitals(deps) {
58
60
  }
59
61
  }
60
62
  return {
61
- read: () => ({ ...v, longTasks: v.longTasks.slice(), navigation: readNavigation(), ttfb: v.ttfb ?? readNavigation()?.ttfbMs }),
63
+ read: () => {
64
+ const nav = readNavigation();
65
+ const { resources, resourceSummary } = readResources(nav?.domInteractiveMs ?? v.fcp);
66
+ return {
67
+ ...v,
68
+ longTasks: v.longTasks.slice(),
69
+ navigation: nav,
70
+ ttfb: v.ttfb ?? nav?.ttfbMs,
71
+ resources,
72
+ resourceSummary,
73
+ };
74
+ },
62
75
  stop: () => observers.forEach((o) => o.disconnect()),
63
76
  };
64
77
  }
78
+ /** Snapshot PerformanceResourceTiming → the slowest/biggest resources + totals.
79
+ * `firstPaintMs` (if known) lets us flag render-blocking head CSS/JS. */
80
+ function readResources(firstPaintMs) {
81
+ if (typeof performance === 'undefined' || !performance.getEntriesByType)
82
+ return {};
83
+ const all = performance.getEntriesByType('resource');
84
+ if (!all.length)
85
+ return {};
86
+ let transferBytes = 0;
87
+ let durationMs = 0;
88
+ const mapped = all.map((e) => {
89
+ transferBytes += e.transferSize || 0;
90
+ durationMs += e.duration;
91
+ const blockingMs = e.requestStart > 0 ? Math.max(0, e.requestStart - e.startTime) : undefined;
92
+ const renderBlocking = firstPaintMs != null &&
93
+ e.responseEnd <= firstPaintMs &&
94
+ (e.initiatorType === 'link' || e.initiatorType === 'css' || e.initiatorType === 'script');
95
+ return {
96
+ name: e.name,
97
+ initiatorType: e.initiatorType || 'other',
98
+ startMs: e.startTime,
99
+ durationMs: e.duration,
100
+ blockingMs,
101
+ transferSizeBytes: e.transferSize || undefined,
102
+ decodedSizeBytes: e.decodedBodySize || undefined,
103
+ fromCache: e.transferSize === 0 && e.decodedBodySize > 0,
104
+ renderBlocking,
105
+ };
106
+ });
107
+ const resources = mapped.sort((a, b) => b.durationMs - a.durationMs).slice(0, MAX_RESOURCES);
108
+ return { resources, resourceSummary: { count: all.length, transferBytes, durationMs } };
109
+ }
65
110
  function readNavigation() {
66
111
  if (typeof performance === 'undefined' || !performance.getEntriesByType)
67
112
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"vitals.js","sourceRoot":"","sources":["../../../src/inspect/agent/vitals.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vitals.js","sourceRoot":"","sources":["../../../src/inspect/agent/vitals.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
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 s=r+o>>>1;n(this.items[s])<t?r=s+1:o=s}return this.items.slice(r)}all(){return this.items.slice()}clear(){this.items=[]}size(){return this.items.length}};var b=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 ie(e){return typeof Node<"u"&&typeof e=="object"&&e!==null&&e instanceof Node}function E(e,t){return e.length>t?`${e.slice(0,t)}\u2026`:e}function x(e){return Object.getPrototypeOf(e)?.constructor?.name}function p(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:E(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(ie(e))return{type:"node",className:e.nodeName??"Node",preview:ce(e),nodeId:t.nodeIdFor?.(e)};if(e instanceof Date)return{type:"date",className:"Date",preview:le(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:E(`${e.name}: ${e.message}`,100),objectId:t.registry.put(e)};if(ue(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:C(e,t)};if(e instanceof Set)return{type:"set",className:"Set",size:e.size,objectId:t.registry.put(e),preview:`Set(${e.size})`,entries:D(e,t)};if(Array.isArray(e))return{type:"array",className:"Array",size:e.length,objectId:t.registry.put(e),preview:`Array(${e.length})`,entries:L(e,t)};let r=Object.keys(n);return{type:"object",className:x(n)??"Object",size:r.length,objectId:t.registry.put(n),preview:se(n,r),entries:v(n,r,t)}}function P(e,t){if(e instanceof Map)return C(e,t,1/0).map(n=>n.value);if(e instanceof Set)return D(e,t,1/0).map(n=>n.value);if(Array.isArray(e))return L(e,t,1/0).map(n=>n.value);if(e instanceof Error)return v({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 v(e,n,t,1/0).map(r=>r.value)}return[]}function L(e,t,n=5){let r=[];for(let o=0;o<e.length&&o<n;o++)r.push({key:String(o),value:p(e[o],t)});return r}function v(e,t,n,r=5){let o=[];for(let s=0;s<t.length&&s<r;s++){let i=t[s],c;try{c=e[i]}catch{c="(getter threw)"}o.push({key:i,value:p(c,n)})}return o}function C(e,t,n=5){let r=[],o=0;for(let[s,i]of e){if(o++>=n)break;r.push({key:p(s,t),value:p(i,t)})}return r}function D(e,t,n=5){let r=[],o=0;for(let s of e){if(o++>=n)break;r.push({value:p(s,t)})}return r}function se(e,t){let n=t.slice(0,5).map(o=>{let s;try{s=e[o]}catch{s="\u2026"}return`${o}: ${ae(s)}`}),r=t.length>5?", \u2026":"";return E(`{${n.join(", ")}${r}}`,100)}function ae(e){let t=typeof e;return t==="string"?`"${E(e,20)}"`:t==="object"&&e!==null?Array.isArray(e)?`Array(${e.length})`:x(e)??"Object":String(e)}function ce(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 E(`<${n}${r}${o}>`,100)}return t.nodeName??"Node"}function ue(e){return typeof e?.then=="function"}function le(e){try{return e.toISOString()}catch{return"Invalid Date"}}var _=["log","info","warn","error","debug"];function j(e){if(typeof console>"u")return()=>{};let t=0,n={};for(let i of _){let c=console[i];typeof c=="function"&&(n[i]=c,console[i]=(...l)=>{try{s(i,l)}catch{}c.apply(console,l)})}let r=i=>{s("error",[i.message],{stack:y(i.error?.stack),source:{url:i.filename||"",line:i.lineno||0,col:i.colno||0}})},o=i=>{let c=i.reason;s("error",[`Unhandled rejection: ${c?.message??String(i.reason)}`],{stack:y(c?.stack)})};typeof window<"u"&&(window.addEventListener("error",r),window.addEventListener("unhandledrejection",o));function s(i,c,l){let f=c.map(g=>p(g,{registry:e.registry,nodeIdFor:e.nodeIdFor})),a=l?.stack??y(new Error().stack,1),d={seq:++t,ts:e.now(),level:i,args:f,text:de(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 i of _){let c=n[i];c&&(console[i]=c)}typeof window<"u"&&(window.removeEventListener("error",r),window.removeEventListener("unhandledrejection",o))}}function de(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 s=o.trim(),i=/^at\s+(.*?)\s+\((.*?):(\d+):(\d+)\)$/.exec(s)||/^at\s+(.*?):(\d+):(\d+)$/.exec(s);if(i){i.length===5?n.push({functionName:i[1],url:i[2],line:+i[3],col:+i[4]}):n.push({functionName:"(anonymous)",url:i[1],line:+i[2],col:+i[3]});continue}i=/^(.*?)@(.*?):(\d+):(\d+)$/.exec(s),i&&n.push({functionName:i[1]||"(anonymous)",url:i[2],line:+i[3],col:+i[4]})}return n.slice(t)}function $(e,t=40,n=Date.now){let r=typeof document<"u"&&document.documentElement?M(document.documentElement,e,t,0):ge();return{documentUrl:typeof location<"u"?location.href:"",capturedAt:n(),root:r}}function M(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 s=e;if(o.attributes=me(s),o.rect=pe(s),r>=n)return o;let i=s.shadowRoot;i&&(o.shadowRoots=Array.from(i.childNodes).filter(O).map(a=>M(a,t,n,r+1)));let c=[],l=A(s,"before");l&&c.push(l);for(let a of Array.from(s.childNodes))O(a)&&c.push(M(a,t,n,r+1));let f=A(s,"after");return f&&c.push(f),c.length&&(o.children=c),o}function A(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:`${fe(e)}::${t}`,nodeType:1,nodeName:`::${t}`,pseudo:t,textContent:n}}function fe(e){return e.__inspectPseudoBase??e.tagName}function O(e){return e.nodeType===Node.TEXT_NODE?!!(e.textContent??"").trim():e.nodeType===Node.ELEMENT_NODE||e.nodeType===Node.COMMENT_NODE}function me(e){let t={};for(let n of Array.from(e.attributes))t[n.name]=n.value;return t}function pe(e){let t=e.getBoundingClientRect();return{x:t.x,y:t.y,w:t.width,h:t.height}}function ge(){return{nodeId:"n0",nodeType:9,nodeName:"#document"}}function B(e,t){let n=ye(e,t);if(!n)throw new Error(`inspect.element: node not found (${t.nodeId??t.selector??"?"})`);let r=getComputedStyle(n),o=Se(n);return{nodeId:e.idFor(n),tag:n.tagName.toLowerCase(),attributes:Re(n),computedStyles:he(r),matchedRules:we(n),boxModel:be(n,r,o),eventListeners:ke(n),accessibility:Ne(n),rect:o}}function ye(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 he(e){let t={};for(let n=0;n<e.length;n++){let r=e.item(n);t[r]=e.getPropertyValue(r)}return t}function we(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 s of Array.from(r)){if(!(s instanceof CSSStyleRule))continue;let i=!1;try{i=e.matches(s.selectorText)}catch{i=!1}i&&t.push({selector:s.selectorText,source:o?{url:o,line:0,col:0}:void 0,props:Ee(s.style)})}}return t}function Ee(e){let t={};for(let n=0;n<e.length;n++){let r=e.item(n);t[r]=e.getPropertyValue(r)}return t}function be(e,t,n){let r=(o,s)=>({top:k(t.getPropertyValue(`${o}-top${s}`)),right:k(t.getPropertyValue(`${o}-right${s}`)),bottom:k(t.getPropertyValue(`${o}-bottom${s}`)),left:k(t.getPropertyValue(`${o}-left${s}`))});return{content:n,padding:r("padding",""),border:r("border","-width"),margin:r("margin","")}}function ke(e){let n=(typeof window<"u"?window:{}).__inspectGetEventListeners;if(!n)return[];try{let r=n(e),o=[];for(let[s,i]of Object.entries(r))for(let c of i)o.push({type:s,useCapture:c.useCapture,passive:c.passive});return o}catch{return[]}}function Ne(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 Re(e){let t={};for(let n of Array.from(e.attributes))t[n.name]=n.value;return t}function Se(e){let t=e.getBoundingClientRect();return{x:t.x,y:t.y,w:t.width,h:t.height}}function k(e){let t=parseFloat(e);return Number.isFinite(t)?t:0}async function V(e,t,n){let r=t.now();try{let o=ve(e,n?.replMode?{$0:t.getPicked(),$_:t.getLast()}:{});return n?.awaitPromise&&Me(o)&&(o=await o),t.setLast(o),{ok:!0,value:p(o,{registry:t.registry,nodeIdFor:t.nodeIdFor}),tookMs:t.now()-r}}catch(o){let s=o;return{ok:!1,exception:{text:`${s?.name??"Error"}: ${s?.message??String(o)}`,stack:y(s?.stack)},tookMs:t.now()-r}}}function ve(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(i=>t[i]));throw o}}function Me(e){return typeof e?.then=="function"}var N=64*1024;function H(e){if(typeof window>"u")return()=>{};let t=0,n=()=>`r${++t}`,r=window.fetch?.bind(window);r&&(window.fetch=async(l,f)=>{let a=e.now(),d=(f?.method||(l instanceof Request?l.method:"GET")).toUpperCase(),g=l instanceof Request?l.url:String(l),u={id:n(),ts:a,method:d,url:g,resourceType:"fetch",requestHeaders:F(f?.headers??(l instanceof Request?l.headers:void 0)),requestBody:X(f?.body),timing:{startMs:a,durationMs:0}};try{let m=await r(l,f);return u.status=m.status,u.responseHeaders=F(m.headers),u.timing.durationMs=e.now()-a,u.fromCache=m.fromCache,await Te(m,u),c(u),m}catch(m){throw u.failed=!0,u.timing.durationMs=e.now()-a,u.responseBody={kind:"text",data:String(m?.message??m)},c(u),m}});let o=window.XMLHttpRequest,s=o?.prototype.open,i=o?.prototype.send;o&&s&&i&&(o.prototype.open=function(f,a,...d){return this.__inspect={method:f.toUpperCase(),url:a,start:0},s.apply(this,[f,a,...d])},o.prototype.send=function(f){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:Ie(this.getAllResponseHeaders()),requestBody:X(f),responseBody:xe(this),timing:{startMs:a.start,durationMs:e.now()-a.start},failed:this.status===0};c(d)})),i.apply(this,[f])});function c(l){e.buffer.push(l),e.onEntry?.(l)}return()=>{r&&(window.fetch=r),o&&s&&(o.prototype.open=s),o&&i&&(o.prototype.send=i)}}function F(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 Ie(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 X(e){if(e!=null)return typeof e=="string"?e.slice(0,N):typeof URLSearchParams<"u"&&e instanceof URLSearchParams?e.toString().slice(0,N):"(binary)"}async function Te(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,N)}}catch{t.responseBody={kind:"omitted"}}}function xe(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,N)}}}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()}};function S(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 z="__ugly_inspect_overlay__";function q(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=z,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 s=a=>{let d=c(a.clientX,a.clientY);d&&o(I(d))},i=a=>{let d=c(a.clientX,a.clientY);d&&(a.preventDefault(),a.stopPropagation(),e.setPickedNode(d),e.onPicked({nodeId:e.reg.idFor(d),selector:S(d),rect:I(d)}),l(!1))};function c(a,d){n&&(n.style.display="none");let g=document.elementFromPoint(a,d);return g&&g.id!==z?g:null}function l(a){a!==t&&(t=a,a?(window.addEventListener("pointermove",s,!0),window.addEventListener("pointerdown",i,!0)):(window.removeEventListener("pointermove",s,!0),window.removeEventListener("pointerdown",i,!0),o(null)))}function f(a){if(!a){o(null);return}let d=e.reg.get(a);d?.nodeType===1&&o(I(d))}return{setEnabled:l,highlight:f,destroy:()=>{l(!1),n?.remove(),n=null}}}function I(e){let t=e.getBoundingClientRect();return{x:t.x,y:t.y,w:t.width,h:t.height}}var G=4;async function Y(e,t){let n=t(),r=[];await new Promise(s=>{let i=()=>{r.push(Pe()),t()-n>=e?s():W(i)};W(i)});let o=t();return{startTime:n,endTime:o,durationMs:o-n,sampleCount:r.length,precise:!1,root:Le(r)}}function W(e){typeof setTimeout<"u"?setTimeout(e,G):e()}function Pe(){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 Le(e){let t=0,n=U(t++,"(root)");for(let r of e){let o=n;o.hitCount++;for(let s of r){let i=s,c=`${i.functionName??"(anonymous)"}@${i.url}:${i.line}`,l=o.childMap.get(c);l||(l=U(t++,i.functionName??"(anonymous)",{url:i.url,line:i.line,col:i.col}),o.childMap.set(c,l),o.children.push(l)),l.hitCount++,o=l}}return Q(n,e.length),J(n)}function U(e,t,n){return{id:e,functionName:t,source:n,selfTimeMs:0,totalTimeMs:0,hitCount:0,children:[],childMap:new Map}}function Q(e,t){let n=0;for(let r of e.children)n+=Q(r,t);return e.totalTimeMs=e.hitCount*G,e.selfTimeMs=Math.max(0,e.totalTimeMs-n),e.totalTimeMs}function J(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=>J(t))}}async function ee(){return{localStorage:K(Z(()=>localStorage)),sessionStorage:K(Z(()=>sessionStorage)),cookies:Ce(),indexedDB:await De()}}function Z(e){try{return e()}catch{return null}}function K(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 Ce(){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 De(){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 _e(n.name)});return t}catch{return[]}}function _e(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([])}})}function te(e){let t={longTasks:[]},n=[];if(typeof PerformanceObserver>"u")return{read:()=>({...t,navigation:T()}),stop:()=>{}};r("largest-contentful-paint",o=>{let s=o[o.length-1];if(!s)return;let i=s.element;t.lcp={valueMs:s.startTime,element:i?{nodeId:e.nodeIdFor(i),selector:S(i),rect:je(i)}:void 0}}),r("paint",o=>{for(let s of o)s.name==="first-contentful-paint"&&(t.fcp=s.startTime)}),r("layout-shift",o=>{let s=t.cls??0;for(let i of o)i.hadRecentInput||(s+=i.value);t.cls=s}),r("event",o=>{let s=t.inp??0;for(let i of o){let c=i.duration;c>s&&(s=c)}t.inp=s},{durationThreshold:40}),r("longtask",o=>{for(let s of o)t.longTasks.push({ts:e.now(),durationMs:s.duration});t.longTasks.length>200&&t.longTasks.splice(0,t.longTasks.length-200)});function r(o,s,i){try{let c=new PerformanceObserver(l=>s(l.getEntries()));c.observe({type:o,buffered:!0,...i??{}}),n.push(c)}catch{}}return{read:()=>({...t,longTasks:t.longTasks.slice(),navigation:T(),ttfb:t.ttfb??T()?.ttfbMs}),stop:()=>n.forEach(o=>o.disconnect())}}function T(){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 je(e){let t=e.getBoundingClientRect();return{x:t.x,y:t.y,w:t.width,h:t.height}}var ne=1e3;function h(){return typeof performance<"u"&&performance.now?performance.timeOrigin+performance.now():Date.now()}function Ae(e={}){let t=new b,n=new R,r=u=>n.idFor(u),o=new w(ne),s=new w(ne),i=null,c,l=j({buffer:o,registry:t,nodeIdFor:r,onEntry:u=>e.onConsole?.(u),now:h}),f=H({buffer:s,onEntry:u=>e.onNetwork?.(u),now:h}),a=te({nodeIdFor:r,now:h}),d=q({reg:n,onPicked:u=>e.onPicked?.(u),setPickedNode:u=>i=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(m=>m.seq>u),networkBuffer:u=>u==null?s.all():s.since(u,m=>m.ts),evaluate:(u,m)=>V(u,{registry:t,nodeIdFor:r,now:h,getPicked:()=>i,getLast:()=>c,setLast:re=>c=re},m),expand:u=>({entries:P(t.get(u),{registry:t,nodeIdFor:r})}),domCapture:u=>$(n,u,h),element:u=>B(n,u),highlight:u=>d.highlight(u),setPicker:u=>d.setEnabled(u),vitals:()=>a.read(),profile:u=>Y(u,h),storage:()=>ee(),reset:()=>{t.clear(),n.clear(),o.clear(),s.clear(),i=null,c=void 0},stop:()=>{l(),f(),a.stop(),d.destroy()}}}function oe(e){if(typeof window<"u"&&window.__uglyInspectAgent)return window.__uglyInspectAgent;let t=Ae(e);return typeof window<"u"&&(window.__uglyInspectAgent=t),t}oe();})();
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 s=r+o>>>1;n(this.items[s])<t?r=s+1:o=s}return this.items.slice(r)}all(){return this.items.slice()}clear(){this.items=[]}size(){return this.items.length}};var k=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 le(e){return typeof Node<"u"&&typeof e=="object"&&e!==null&&e instanceof Node}function b(e,t){return e.length>t?`${e.slice(0,t)}\u2026`:e}function C(e){return Object.getPrototypeOf(e)?.constructor?.name}function p(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:b(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(le(e))return{type:"node",className:e.nodeName??"Node",preview:pe(e),nodeId:t.nodeIdFor?.(e)};if(e instanceof Date)return{type:"date",className:"Date",preview:ye(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:b(`${e.name}: ${e.message}`,100),objectId:t.registry.put(e)};if(ge(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:_(e,t)};if(e instanceof Set)return{type:"set",className:"Set",size:e.size,objectId:t.registry.put(e),preview:`Set(${e.size})`,entries:A(e,t)};if(Array.isArray(e))return{type:"array",className:"Array",size:e.length,objectId:t.registry.put(e),preview:`Array(${e.length})`,entries:D(e,t)};let r=Object.keys(n);return{type:"object",className:C(n)??"Object",size:r.length,objectId:t.registry.put(n),preview:fe(n,r),entries:I(n,r,t)}}function L(e,t){if(e instanceof Map)return _(e,t,1/0).map(n=>n.value);if(e instanceof Set)return A(e,t,1/0).map(n=>n.value);if(Array.isArray(e))return D(e,t,1/0).map(n=>n.value);if(e instanceof Error)return I({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 I(e,n,t,1/0).map(r=>r.value)}return[]}function D(e,t,n=5){let r=[];for(let o=0;o<e.length&&o<n;o++)r.push({key:String(o),value:p(e[o],t)});return r}function I(e,t,n,r=5){let o=[];for(let s=0;s<t.length&&s<r;s++){let i=t[s],c;try{c=e[i]}catch{c="(getter threw)"}o.push({key:i,value:p(c,n)})}return o}function _(e,t,n=5){let r=[],o=0;for(let[s,i]of e){if(o++>=n)break;r.push({key:p(s,t),value:p(i,t)})}return r}function A(e,t,n=5){let r=[],o=0;for(let s of e){if(o++>=n)break;r.push({value:p(s,t)})}return r}function fe(e,t){let n=t.slice(0,5).map(o=>{let s;try{s=e[o]}catch{s="\u2026"}return`${o}: ${me(s)}`}),r=t.length>5?", \u2026":"";return b(`{${n.join(", ")}${r}}`,100)}function me(e){let t=typeof e;return t==="string"?`"${b(e,20)}"`:t==="object"&&e!==null?Array.isArray(e)?`Array(${e.length})`:C(e)??"Object":String(e)}function pe(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 b(`<${n}${r}${o}>`,100)}return t.nodeName??"Node"}function ge(e){return typeof e?.then=="function"}function ye(e){try{return e.toISOString()}catch{return"Invalid Date"}}var j=["log","info","warn","error","debug"];function O(e){if(typeof console>"u")return()=>{};let t=0,n={};for(let i of j){let c=console[i];typeof c=="function"&&(n[i]=c,console[i]=(...d)=>{try{s(i,d)}catch{}c.apply(console,d)})}let r=i=>{s("error",[i.message],{stack:y(i.error?.stack),source:{url:i.filename||"",line:i.lineno||0,col:i.colno||0}})},o=i=>{let c=i.reason;s("error",[`Unhandled rejection: ${c?.message??String(i.reason)}`],{stack:y(c?.stack)})};typeof window<"u"&&(window.addEventListener("error",r),window.addEventListener("unhandledrejection",o));function s(i,c,d){let f=c.map(g=>p(g,{registry:e.registry,nodeIdFor:e.nodeIdFor})),a=d?.stack??y(new Error().stack,1),l={seq:++t,ts:e.now(),level:i,args:f,text:he(c),stack:a.length?a:void 0,source:d?.source??a[0]?{url:a[0].url,line:a[0].line,col:a[0].col}:void 0};e.buffer.push(l),e.onEntry?.(l)}return()=>{for(let i of j){let c=n[i];c&&(console[i]=c)}typeof window<"u"&&(window.removeEventListener("error",r),window.removeEventListener("unhandledrejection",o))}}function he(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 s=o.trim(),i=/^at\s+(.*?)\s+\((.*?):(\d+):(\d+)\)$/.exec(s)||/^at\s+(.*?):(\d+):(\d+)$/.exec(s);if(i){i.length===5?n.push({functionName:i[1],url:i[2],line:+i[3],col:+i[4]}):n.push({functionName:"(anonymous)",url:i[1],line:+i[2],col:+i[3]});continue}i=/^(.*?)@(.*?):(\d+):(\d+)$/.exec(s),i&&n.push({functionName:i[1]||"(anonymous)",url:i[2],line:+i[3],col:+i[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):ke();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 s=e;if(o.attributes=we(s),o.rect=be(s),r>=n)return o;let i=s.shadowRoot;i&&(o.shadowRoots=Array.from(i.childNodes).filter(B).map(a=>x(a,t,n,r+1)));let c=[],d=$(s,"before");d&&c.push(d);for(let a of Array.from(s.childNodes))B(a)&&c.push(x(a,t,n,r+1));let f=$(s,"after");return f&&c.push(f),c.length&&(o.children=c),o}function $(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:`${Ee(e)}::${t}`,nodeType:1,nodeName:`::${t}`,pseudo:t,textContent:n}}function Ee(e){return e.__inspectPseudoBase??e.tagName}function B(e){return e.nodeType===Node.TEXT_NODE?!!(e.textContent??"").trim():e.nodeType===Node.ELEMENT_NODE||e.nodeType===Node.COMMENT_NODE}function we(e){let t={};for(let n of Array.from(e.attributes))t[n.name]=n.value;return t}function be(e){let t=e.getBoundingClientRect();return{x:t.x,y:t.y,w:t.width,h:t.height}}function ke(){return{nodeId:"n0",nodeType:9,nodeName:"#document"}}function V(e,t){let n=Re(e,t);if(!n)throw new Error(`inspect.element: node not found (${t.nodeId??t.selector??"?"})`);let r=getComputedStyle(n),o=Pe(n);return{nodeId:e.idFor(n),tag:n.tagName.toLowerCase(),attributes:xe(n),computedStyles:Se(r),matchedRules:Ne(n),boxModel:ve(n,r,o),eventListeners:Me(n),accessibility:Ie(n),rect:o}}function Re(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 Se(e){let t={};for(let n=0;n<e.length;n++){let r=e.item(n);t[r]=e.getPropertyValue(r)}return t}function Ne(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 s of Array.from(r)){if(!(s instanceof CSSStyleRule))continue;let i=!1;try{i=e.matches(s.selectorText)}catch{i=!1}i&&t.push({selector:s.selectorText,source:o?{url:o,line:0,col:0}:void 0,props:Te(s.style)})}}return t}function Te(e){let t={};for(let n=0;n<e.length;n++){let r=e.item(n);t[r]=e.getPropertyValue(r)}return t}function ve(e,t,n){let r=(o,s)=>({top:R(t.getPropertyValue(`${o}-top${s}`)),right:R(t.getPropertyValue(`${o}-right${s}`)),bottom:R(t.getPropertyValue(`${o}-bottom${s}`)),left:R(t.getPropertyValue(`${o}-left${s}`))});return{content:n,padding:r("padding",""),border:r("border","-width"),margin:r("margin","")}}function Me(e){let n=(typeof window<"u"?window:{}).__inspectGetEventListeners;if(!n)return[];try{let r=n(e),o=[];for(let[s,i]of Object.entries(r))for(let c of i)o.push({type:s,useCapture:c.useCapture,passive:c.passive});return o}catch{return[]}}function Ie(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 xe(e){let t={};for(let n of Array.from(e.attributes))t[n.name]=n.value;return t}function Pe(e){let t=e.getBoundingClientRect();return{x:t.x,y:t.y,w:t.width,h:t.height}}function R(e){let t=parseFloat(e);return Number.isFinite(t)?t:0}async function X(e,t,n){let r=t.now();try{let o=Ce(e,n?.replMode?{$0:t.getPicked(),$_:t.getLast()}:{});return n?.awaitPromise&&Le(o)&&(o=await o),t.setLast(o),{ok:!0,value:p(o,{registry:t.registry,nodeIdFor:t.nodeIdFor}),tookMs:t.now()-r}}catch(o){let s=o;return{ok:!1,exception:{text:`${s?.name??"Error"}: ${s?.message??String(o)}`,stack:y(s?.stack)},tookMs:t.now()-r}}}function Ce(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(i=>t[i]));throw o}}function Le(e){return typeof e?.then=="function"}var S=64*1024;function W(e){if(typeof window>"u")return()=>{};let t=0,n=()=>`r${++t}`,r=window.fetch?.bind(window);r&&(window.fetch=async(d,f)=>{let a=e.now(),l=(f?.method||(d instanceof Request?d.method:"GET")).toUpperCase(),g=d instanceof Request?d.url:String(d),u={id:n(),ts:a,method:l,url:g,resourceType:"fetch",requestHeaders:H(f?.headers??(d instanceof Request?d.headers:void 0)),requestBody:q(f?.body),timing:{startMs:a,durationMs:0}};try{let m=await r(d,f);return u.status=m.status,u.responseHeaders=H(m.headers),u.timing.durationMs=e.now()-a,u.fromCache=m.fromCache,await Ae(m,u),c(u),m}catch(m){throw u.failed=!0,u.timing.durationMs=e.now()-a,u.responseBody={kind:"text",data:String(m?.message??m)},c(u),m}});let o=window.XMLHttpRequest,s=o?.prototype.open,i=o?.prototype.send;o&&s&&i&&(o.prototype.open=function(f,a,...l){return this.__inspect={method:f.toUpperCase(),url:a,start:0},s.apply(this,[f,a,...l])},o.prototype.send=function(f){let a=this.__inspect;return a&&(a.start=e.now(),this.addEventListener("loadend",()=>{let l={id:n(),ts:a.start,method:a.method,url:a.url,status:this.status,resourceType:"xhr",requestHeaders:{},responseHeaders:_e(this.getAllResponseHeaders()),requestBody:q(f),responseBody:je(this),timing:{startMs:a.start,durationMs:e.now()-a.start},failed:this.status===0};c(l)})),i.apply(this,[f])});function c(d){e.buffer.push(d),e.onEntry?.(d)}return()=>{r&&(window.fetch=r),o&&s&&(o.prototype.open=s),o&&i&&(o.prototype.send=i)}}function F(e){return e.responseStatus||void 0}function U(){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:F(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:F(r),resourceType:De(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 De(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 H(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 _e(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 q(e){if(e!=null)return typeof e=="string"?e.slice(0,S):typeof URLSearchParams<"u"&&e instanceof URLSearchParams?e.toString().slice(0,S):"(binary)"}async function Ae(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,S)}}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,S)}}}catch{}return{kind:"omitted"}}var N=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()}};function T(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 G="__ugly_inspect_overlay__";function Y(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=G,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 l=r();if(!a){l.style.display="none";return}Object.assign(l.style,{display:"block",transform:`translate(${a.x}px, ${a.y}px)`,width:`${a.w}px`,height:`${a.h}px`})}let s=a=>{let l=c(a.clientX,a.clientY);l&&o(P(l))},i=a=>{let l=c(a.clientX,a.clientY);l&&(a.preventDefault(),a.stopPropagation(),e.setPickedNode(l),e.onPicked({nodeId:e.reg.idFor(l),selector:T(l),rect:P(l)}),d(!1))};function c(a,l){n&&(n.style.display="none");let g=document.elementFromPoint(a,l);return g&&g.id!==G?g:null}function d(a){a!==t&&(t=a,a?(window.addEventListener("pointermove",s,!0),window.addEventListener("pointerdown",i,!0)):(window.removeEventListener("pointermove",s,!0),window.removeEventListener("pointerdown",i,!0),o(null)))}function f(a){if(!a){o(null);return}let l=e.reg.get(a);l?.nodeType===1&&o(P(l))}return{setEnabled:d,highlight:f,destroy:()=>{d(!1),n?.remove(),n=null}}}function P(e){let t=e.getBoundingClientRect();return{x:t.x,y:t.y,w:t.width,h:t.height}}var Z=4;async function K(e,t){let n=t(),r=[];await new Promise(s=>{let i=()=>{r.push(Oe()),t()-n>=e?s():J(i)};J(i)});let o=t();return{startTime:n,endTime:o,durationMs:o-n,sampleCount:r.length,precise:!1,root:$e(r)}}function J(e){typeof setTimeout<"u"?setTimeout(e,Z):e()}function Oe(){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 $e(e){let t=0,n=Q(t++,"(root)");for(let r of e){let o=n;o.hitCount++;for(let s of r){let i=s,c=`${i.functionName??"(anonymous)"}@${i.url}:${i.line}`,d=o.childMap.get(c);d||(d=Q(t++,i.functionName??"(anonymous)",{url:i.url,line:i.line,col:i.col}),o.childMap.set(c,d),o.children.push(d)),d.hitCount++,o=d}}return ee(n,e.length),te(n)}function Q(e,t,n){return{id:e,functionName:t,source:n,selfTimeMs:0,totalTimeMs:0,hitCount:0,children:[],childMap:new Map}}function ee(e,t){let n=0;for(let r of e.children)n+=ee(r,t);return e.totalTimeMs=e.hitCount*Z,e.selfTimeMs=Math.max(0,e.totalTimeMs-n),e.totalTimeMs}function te(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=>te(t))}}function re(e,t,n){if(e==="cookie"){document.cookie=`${encodeURIComponent(t)}=${encodeURIComponent(n)}; path=/`;return}v(()=>e==="session"?sessionStorage:localStorage)?.setItem(t,n)}function oe(e,t){if(e==="cookie"){document.cookie=`${encodeURIComponent(t)}=; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT`;return}v(()=>e==="session"?sessionStorage:localStorage)?.removeItem(t)}async function ie(){return{localStorage:ne(v(()=>localStorage)),sessionStorage:ne(v(()=>sessionStorage)),cookies:Be(),indexedDB:await ze()}}function v(e){try{return e()}catch{return null}}function ne(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 Be(){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 ze(){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 Ve(n.name)});return t}catch{return[]}}function Ve(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 Xe=40;function ae(e){let t={longTasks:[]},n=[];if(typeof PerformanceObserver>"u")return{read:()=>({...t,navigation:se()}),stop:()=>{}};r("largest-contentful-paint",o=>{let s=o[o.length-1];if(!s)return;let i=s.element;t.lcp={valueMs:s.startTime,element:i?{nodeId:e.nodeIdFor(i),selector:T(i),rect:He(i)}:void 0}}),r("paint",o=>{for(let s of o)s.name==="first-contentful-paint"&&(t.fcp=s.startTime)}),r("layout-shift",o=>{let s=t.cls??0;for(let i of o)i.hadRecentInput||(s+=i.value);t.cls=s}),r("event",o=>{let s=t.inp??0;for(let i of o){let c=i.duration;c>s&&(s=c)}t.inp=s},{durationThreshold:40}),r("longtask",o=>{for(let s of o)t.longTasks.push({ts:e.now(),durationMs:s.duration});t.longTasks.length>200&&t.longTasks.splice(0,t.longTasks.length-200)});function r(o,s,i){try{let c=new PerformanceObserver(d=>s(d.getEntries()));c.observe({type:o,buffered:!0,...i??{}}),n.push(c)}catch{}}return{read:()=>{let o=se(),{resources:s,resourceSummary:i}=Fe(o?.domInteractiveMs??t.fcp);return{...t,longTasks:t.longTasks.slice(),navigation:o,ttfb:t.ttfb??o?.ttfbMs,resources:s,resourceSummary:i}},stop:()=>n.forEach(o=>o.disconnect())}}function Fe(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(i=>{n+=i.transferSize||0,r+=i.duration;let c=i.requestStart>0?Math.max(0,i.requestStart-i.startTime):void 0,d=e!=null&&i.responseEnd<=e&&(i.initiatorType==="link"||i.initiatorType==="css"||i.initiatorType==="script");return{name:i.name,initiatorType:i.initiatorType||"other",startMs:i.startTime,durationMs:i.duration,blockingMs:c,transferSizeBytes:i.transferSize||void 0,decodedSizeBytes:i.decodedBodySize||void 0,fromCache:i.transferSize===0&&i.decodedBodySize>0,renderBlocking:d}}).sort((i,c)=>c.durationMs-i.durationMs).slice(0,Xe),resourceSummary:{count:t.length,transferBytes:n,durationMs:r}}}function se(){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 He(e){let t=e.getBoundingClientRect();return{x:t.x,y:t.y,w:t.width,h:t.height}}var ce=1e3;function E(){return typeof performance<"u"&&performance.now?performance.timeOrigin+performance.now():Date.now()}function qe(e={}){let t=new k,n=new N,r=u=>n.idFor(u),o=new w(ce),s=new w(ce),i=null,c,d=O({buffer:o,registry:t,nodeIdFor:r,onEntry:u=>e.onConsole?.(u),now:E}),f=W({buffer:s,onEntry:u=>e.onNetwork?.(u),now:E}),a=ae({nodeIdFor:r,now:E}),l=Y({reg:n,onPicked:u=>e.onPicked?.(u),setPickedNode:u=>i=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(m=>m.seq>u),networkBuffer:u=>{let h=[...s.all(),...U()].sort((M,de)=>M.ts-de.ts);return u==null?h:h.filter(M=>M.ts>u)},evaluate:(u,m)=>X(u,{registry:t,nodeIdFor:r,now:E,getPicked:()=>i,getLast:()=>c,setLast:h=>c=h},m),expand:u=>({entries:L(t.get(u),{registry:t,nodeIdFor:r})}),domCapture:u=>z(n,u,E),element:u=>V(n,u),highlight:u=>l.highlight(u),setPicker:u=>l.setEnabled(u),vitals:()=>a.read(),profile:u=>K(u,E),storage:()=>ie(),storageSet:(u,m,h)=>re(u,m,h),storageRemove:(u,m)=>oe(u,m),reload:u=>{typeof location<"u"&&location.reload()},reset:()=>{t.clear(),n.clear(),o.clear(),s.clear(),i=null,c=void 0},stop:()=>{d(),f(),a.stop(),l.destroy()}}}function ue(e){if(typeof window<"u"&&window.__uglyInspectAgent)return window.__uglyInspectAgent;let t=qe(e);return typeof window<"u"&&(window.__uglyInspectAgent=t),t}ue();})();
@@ -1,4 +1,4 @@
1
- import type { ConsoleEntry, CpuProfile, DomSnapshot, ElementDetail, EvalRequest, EvalResult, InspectTarget, NetworkEntry, PickedElement, RemoteValue, Screenshot, ScreenshotRequest, StorageDump, WebVitals } from './protocol.js';
1
+ import type { ConsoleEntry, CpuProfile, DomSnapshot, ElementDetail, EvalRequest, EvalResult, InspectTarget, NetworkEntry, NetworkThrottleProfile, PickedElement, RemoteValue, Screenshot, ScreenshotRequest, StorageArea, StorageDump, WebVitals } from './protocol.js';
2
2
  /** Minimal transport the client needs — a subset of UglyNative. */
3
3
  export interface InspectTransport {
4
4
  invoke(channel: string, payload?: unknown): Promise<unknown>;
@@ -9,6 +9,10 @@ export declare class InspectClient {
9
9
  private readonly transport;
10
10
  constructor(transport: InspectTransport);
11
11
  listTargets(): Promise<InspectTarget[]>;
12
+ /** Open a dock tab that isn't currently live, so a closed target can be inspected. */
13
+ openTarget(targetId: string): Promise<{
14
+ ok: boolean;
15
+ }>;
12
16
  eval(req: EvalRequest): Promise<EvalResult>;
13
17
  expand(targetId: string, objectId: string): Promise<RemoteValue[]>;
14
18
  consoleBuffer(targetId: string, sinceSeq?: number): Promise<ConsoleEntry[]>;
@@ -24,6 +28,11 @@ export declare class InspectClient {
24
28
  profile(targetId: string, durationMs: number): Promise<CpuProfile>;
25
29
  screenshot(req: ScreenshotRequest): Promise<Screenshot>;
26
30
  storage(targetId: string): Promise<StorageDump>;
31
+ storageSet(targetId: string, area: StorageArea, key: string, value: string): Promise<void>;
32
+ storageRemove(targetId: string, area: StorageArea, key: string): Promise<void>;
33
+ reload(targetId: string, ignoreCache?: boolean): Promise<void>;
34
+ setCacheDisabled(targetId: string, disabled: boolean): Promise<void>;
35
+ setThrottle(targetId: string, profile: NetworkThrottleProfile): Promise<void>;
27
36
  onConsole(targetId: string, handler: (e: ConsoleEntry) => void): () => void;
28
37
  onNetwork(targetId: string, handler: (e: NetworkEntry) => void): () => void;
29
38
  onPicked(targetId: string, handler: (p: PickedElement) => void): () => void;