browser-debugger-cli 0.6.10 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -0
- package/dist/commands/cdp.d.ts.map +1 -1
- package/dist/commands/cdp.js +72 -16
- package/dist/commands/cdp.js.map +1 -1
- package/dist/commands/cleanup.js +1 -1
- package/dist/commands/cleanup.js.map +1 -1
- package/dist/commands/console.d.ts +4 -28
- package/dist/commands/console.d.ts.map +1 -1
- package/dist/commands/console.js +81 -187
- package/dist/commands/console.js.map +1 -1
- package/dist/commands/details.d.ts.map +1 -1
- package/dist/commands/details.js +8 -0
- package/dist/commands/details.js.map +1 -1
- package/dist/commands/dom/DomElementResolver.d.ts +2 -2
- package/dist/commands/dom/DomElementResolver.d.ts.map +1 -1
- package/dist/commands/dom/DomElementResolver.js +34 -13
- package/dist/commands/dom/DomElementResolver.js.map +1 -1
- package/dist/commands/dom/__tests__/screenshotResize.unit.test.d.ts +2 -0
- package/dist/commands/dom/__tests__/screenshotResize.unit.test.d.ts.map +1 -0
- package/dist/commands/dom/__tests__/screenshotResize.unit.test.js +184 -0
- package/dist/commands/dom/__tests__/screenshotResize.unit.test.js.map +1 -0
- package/dist/commands/dom/a11y.d.ts.map +1 -1
- package/dist/commands/dom/a11y.js +14 -10
- package/dist/commands/dom/a11y.js.map +1 -1
- package/dist/commands/dom/evalHelpers.d.ts.map +1 -1
- package/dist/commands/dom/evalHelpers.js +10 -7
- package/dist/commands/dom/evalHelpers.js.map +1 -1
- package/dist/commands/dom/form.d.ts +14 -0
- package/dist/commands/dom/form.d.ts.map +1 -0
- package/dist/commands/dom/form.js +439 -0
- package/dist/commands/dom/form.js.map +1 -0
- package/dist/commands/dom/formDiscovery.d.ts +26 -0
- package/dist/commands/dom/formDiscovery.d.ts.map +1 -0
- package/dist/commands/dom/formDiscovery.js +476 -0
- package/dist/commands/dom/formDiscovery.js.map +1 -0
- package/dist/commands/dom/formFillHelpers.d.ts +2 -1
- package/dist/commands/dom/formFillHelpers.d.ts.map +1 -1
- package/dist/commands/dom/formFillHelpers.js +54 -24
- package/dist/commands/dom/formFillHelpers.js.map +1 -1
- package/dist/commands/dom/formInteraction.d.ts.map +1 -1
- package/dist/commands/dom/formInteraction.js +26 -10
- package/dist/commands/dom/formInteraction.js.map +1 -1
- package/dist/commands/dom/formSubmitHelpers.d.ts +2 -1
- package/dist/commands/dom/formSubmitHelpers.d.ts.map +1 -1
- package/dist/commands/dom/formSubmitHelpers.js.map +1 -1
- package/dist/commands/dom/formTypes.d.ts +75 -0
- package/dist/commands/dom/formTypes.d.ts.map +1 -0
- package/dist/commands/dom/formTypes.js +7 -0
- package/dist/commands/dom/formTypes.js.map +1 -0
- package/dist/commands/dom/helpers.d.ts +11 -4
- package/dist/commands/dom/helpers.d.ts.map +1 -1
- package/dist/commands/dom/helpers.js +324 -40
- package/dist/commands/dom/helpers.js.map +1 -1
- package/dist/commands/dom/index.d.ts.map +1 -1
- package/dist/commands/dom/index.js +17 -5
- package/dist/commands/dom/index.js.map +1 -1
- package/dist/commands/dom/reactEventHelpers.d.ts +4 -4
- package/dist/commands/dom/reactEventHelpers.d.ts.map +1 -1
- package/dist/commands/dom/reactEventHelpers.js +11 -11
- package/dist/commands/dom/screenshotResize.d.ts +81 -0
- package/dist/commands/dom/screenshotResize.d.ts.map +1 -0
- package/dist/commands/dom/screenshotResize.js +103 -0
- package/dist/commands/dom/screenshotResize.js.map +1 -0
- package/dist/commands/helpJson.d.ts +20 -0
- package/dist/commands/helpJson.d.ts.map +1 -1
- package/dist/commands/helpJson.js +21 -29
- package/dist/commands/helpJson.js.map +1 -1
- package/dist/commands/network/har.d.ts.map +1 -1
- package/dist/commands/network/har.js +3 -2
- package/dist/commands/network/har.js.map +1 -1
- package/dist/commands/network/list.d.ts +0 -8
- package/dist/commands/network/list.d.ts.map +1 -1
- package/dist/commands/network/list.js +131 -201
- package/dist/commands/network/list.js.map +1 -1
- package/dist/commands/network/shared.d.ts.map +1 -1
- package/dist/commands/network/shared.js +6 -0
- package/dist/commands/network/shared.js.map +1 -1
- package/dist/commands/optionBehaviors.d.ts +26 -0
- package/dist/commands/optionBehaviors.d.ts.map +1 -0
- package/dist/commands/optionBehaviors.js +195 -0
- package/dist/commands/optionBehaviors.js.map +1 -0
- package/dist/commands/peek.d.ts +2 -4
- package/dist/commands/peek.d.ts.map +1 -1
- package/dist/commands/peek.js +108 -92
- package/dist/commands/peek.js.map +1 -1
- package/dist/commands/shared/CommandRunner.js +1 -1
- package/dist/commands/shared/CommandRunner.js.map +1 -1
- package/dist/commands/shared/dataFetcher.d.ts +58 -0
- package/dist/commands/shared/dataFetcher.d.ts.map +1 -0
- package/dist/commands/shared/dataFetcher.js +98 -0
- package/dist/commands/shared/dataFetcher.js.map +1 -0
- package/dist/commands/shared/optionTypes.d.ts +8 -4
- package/dist/commands/shared/optionTypes.d.ts.map +1 -1
- package/dist/commands/shared/startHelpers.d.ts.map +1 -1
- package/dist/commands/shared/startHelpers.js +6 -5
- package/dist/commands/shared/startHelpers.js.map +1 -1
- package/dist/commands/shared/validation.d.ts +0 -45
- package/dist/commands/shared/validation.d.ts.map +1 -1
- package/dist/commands/shared/validation.js +65 -107
- package/dist/commands/shared/validation.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +13 -4
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/stop.d.ts.map +1 -1
- package/dist/commands/stop.js +15 -4
- package/dist/commands/stop.js.map +1 -1
- package/dist/commands/tail.d.ts +2 -7
- package/dist/commands/tail.d.ts.map +1 -1
- package/dist/commands/tail.js +61 -64
- package/dist/commands/tail.js.map +1 -1
- package/dist/connection/cdp.d.ts.map +1 -1
- package/dist/connection/cdp.js +5 -3
- package/dist/connection/cdp.js.map +1 -1
- package/dist/connection/diagnostics.js +1 -1
- package/dist/connection/diagnostics.js.map +1 -1
- package/dist/connection/errors.d.ts +0 -7
- package/dist/connection/errors.d.ts.map +1 -1
- package/dist/connection/errors.js +0 -7
- package/dist/connection/errors.js.map +1 -1
- package/dist/connection/launcher/binaryResolver.d.ts.map +1 -1
- package/dist/connection/launcher/binaryResolver.js +2 -1
- package/dist/connection/launcher/binaryResolver.js.map +1 -1
- package/dist/connection/launcher/preferencesLoader.d.ts.map +1 -1
- package/dist/connection/launcher/preferencesLoader.js +2 -1
- package/dist/connection/launcher/preferencesLoader.js.map +1 -1
- package/dist/connection/launcher.d.ts.map +1 -1
- package/dist/connection/launcher.js +2 -1
- package/dist/connection/launcher.js.map +1 -1
- package/dist/connection/pageReadiness.d.ts.map +1 -1
- package/dist/connection/pageReadiness.js +2 -9
- package/dist/connection/pageReadiness.js.map +1 -1
- package/dist/daemon/handlers/BaseHandler.d.ts.map +1 -1
- package/dist/daemon/handlers/BaseHandler.js +1 -1
- package/dist/daemon/handlers/BaseHandler.js.map +1 -1
- package/dist/daemon/handlers/QueryHandlers.d.ts.map +1 -1
- package/dist/daemon/handlers/QueryHandlers.js +1 -1
- package/dist/daemon/handlers/QueryHandlers.js.map +1 -1
- package/dist/daemon/handlers/SessionHandlers.d.ts.map +1 -1
- package/dist/daemon/handlers/SessionHandlers.js +1 -1
- package/dist/daemon/handlers/SessionHandlers.js.map +1 -1
- package/dist/daemon/ipcServer.js +1 -1
- package/dist/daemon/ipcServer.js.map +1 -1
- package/dist/daemon/launcher.d.ts.map +1 -1
- package/dist/daemon/launcher.js +3 -2
- package/dist/daemon/launcher.js.map +1 -1
- package/dist/daemon/lifecycle/signalHandlers.d.ts.map +1 -1
- package/dist/daemon/lifecycle/signalHandlers.js +1 -1
- package/dist/daemon/lifecycle/signalHandlers.js.map +1 -1
- package/dist/daemon/lifecycle/workerCleanup.d.ts.map +1 -1
- package/dist/daemon/lifecycle/workerCleanup.js +4 -3
- package/dist/daemon/lifecycle/workerCleanup.js.map +1 -1
- package/dist/daemon/lifecycle/workerConfig.d.ts.map +1 -1
- package/dist/daemon/lifecycle/workerConfig.js +1 -1
- package/dist/daemon/lifecycle/workerConfig.js.map +1 -1
- package/dist/daemon/lifecycle/workerIpc.d.ts.map +1 -1
- package/dist/daemon/lifecycle/workerIpc.js +1 -1
- package/dist/daemon/lifecycle/workerIpc.js.map +1 -1
- package/dist/daemon/server/JsonlParser.d.ts.map +1 -1
- package/dist/daemon/server/JsonlParser.js +1 -1
- package/dist/daemon/server/JsonlParser.js.map +1 -1
- package/dist/daemon/startSession.d.ts.map +1 -1
- package/dist/daemon/startSession.js +1 -1
- package/dist/daemon/startSession.js.map +1 -1
- package/dist/daemon/worker/plugins.js +3 -3
- package/dist/daemon/worker/plugins.js.map +1 -1
- package/dist/index.js +23 -7
- package/dist/index.js.map +1 -1
- package/dist/ipc/protocol/messages.d.ts +2 -2
- package/dist/ipc/protocol/messages.d.ts.map +1 -1
- package/dist/ipc/utils/errors.js +1 -1
- package/dist/ipc/utils/errors.js.map +1 -1
- package/dist/session/QueryCacheManager.d.ts.map +1 -1
- package/dist/session/QueryCacheManager.js +1 -1
- package/dist/session/QueryCacheManager.js.map +1 -1
- package/dist/session/chrome.js +1 -1
- package/dist/session/chrome.js.map +1 -1
- package/dist/session/cleanup.js +5 -5
- package/dist/session/cleanup.js.map +1 -1
- package/dist/session/lock.js +1 -1
- package/dist/session/lock.js.map +1 -1
- package/dist/session/metadata.d.ts.map +1 -1
- package/dist/session/metadata.js +1 -1
- package/dist/session/metadata.js.map +1 -1
- package/dist/session/pid.js +1 -1
- package/dist/session/pid.js.map +1 -1
- package/dist/telemetry/dom.d.ts.map +1 -1
- package/dist/telemetry/dom.js +1 -1
- package/dist/telemetry/dom.js.map +1 -1
- package/dist/telemetry/filterPresets.d.ts.map +1 -1
- package/dist/telemetry/filterPresets.js +5 -2
- package/dist/telemetry/filterPresets.js.map +1 -1
- package/dist/telemetry/network.d.ts.map +1 -1
- package/dist/telemetry/network.js +1 -1
- package/dist/telemetry/network.js.map +1 -1
- package/dist/types.d.ts +217 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +33 -1
- package/dist/types.js.map +1 -1
- package/dist/ui/OutputBuilder.d.ts +2 -44
- package/dist/ui/OutputBuilder.d.ts.map +1 -1
- package/dist/ui/OutputBuilder.js +71 -103
- package/dist/ui/OutputBuilder.js.map +1 -1
- package/dist/ui/errors/CommandError.d.ts +0 -2
- package/dist/ui/errors/CommandError.d.ts.map +1 -1
- package/dist/ui/errors/CommandError.js.map +1 -1
- package/dist/ui/formatters/dom.d.ts +8 -19
- package/dist/ui/formatters/dom.d.ts.map +1 -1
- package/dist/ui/formatters/dom.js +12 -68
- package/dist/ui/formatters/dom.js.map +1 -1
- package/dist/ui/formatters/form.d.ts +15 -0
- package/dist/ui/formatters/form.d.ts.map +1 -0
- package/dist/ui/formatters/form.js +314 -0
- package/dist/ui/formatters/form.js.map +1 -0
- package/dist/ui/logging/logger.d.ts +1 -1
- package/dist/ui/logging/logger.d.ts.map +1 -1
- package/dist/ui/logging/logger.js +1 -1
- package/dist/ui/logging/logger.js.map +1 -1
- package/dist/ui/messages/dom.d.ts +14 -0
- package/dist/ui/messages/dom.d.ts.map +1 -0
- package/dist/ui/messages/dom.js +28 -0
- package/dist/ui/messages/dom.js.map +1 -0
- package/dist/ui/messages/errors.d.ts +122 -10
- package/dist/ui/messages/errors.d.ts.map +1 -1
- package/dist/ui/messages/errors.js +280 -11
- package/dist/ui/messages/errors.js.map +1 -1
- package/dist/utils/__tests__/shellDetection.unit.test.d.ts +12 -0
- package/dist/utils/__tests__/shellDetection.unit.test.d.ts.map +1 -0
- package/dist/utils/__tests__/shellDetection.unit.test.js +220 -0
- package/dist/utils/__tests__/shellDetection.unit.test.js.map +1 -0
- package/dist/utils/async.d.ts +10 -0
- package/dist/utils/async.d.ts.map +1 -0
- package/dist/utils/async.js +12 -0
- package/dist/utils/async.js.map +1 -0
- package/dist/utils/atomicFile.js +1 -1
- package/dist/utils/atomicFile.js.map +1 -1
- package/dist/utils/decisionTrees.d.ts.map +1 -1
- package/dist/utils/decisionTrees.js +5 -0
- package/dist/utils/decisionTrees.js.map +1 -1
- package/dist/utils/errorMapping.d.ts.map +1 -1
- package/dist/utils/errorMapping.js +4 -1
- package/dist/utils/errorMapping.js.map +1 -1
- package/dist/utils/exitCodes.d.ts +18 -17
- package/dist/utils/exitCodes.d.ts.map +1 -1
- package/dist/utils/exitCodes.js +97 -17
- package/dist/utils/exitCodes.js.map +1 -1
- package/dist/utils/shellDetection.d.ts +34 -0
- package/dist/utils/shellDetection.d.ts.map +1 -0
- package/dist/utils/shellDetection.js +94 -0
- package/dist/utils/shellDetection.js.map +1 -0
- package/dist/utils/suggestions.d.ts +19 -0
- package/dist/utils/suggestions.d.ts.map +1 -0
- package/dist/utils/suggestions.js +34 -0
- package/dist/utils/suggestions.js.map +1 -0
- package/dist/utils/taskMappings.d.ts.map +1 -1
- package/dist/utils/taskMappings.js +40 -0
- package/dist/utils/taskMappings.js.map +1 -1
- package/dist/utils/url.d.ts.map +1 -1
- package/dist/utils/url.js +14 -0
- package/dist/utils/url.js.map +1 -1
- package/package.json +5 -5
|
@@ -82,29 +82,18 @@ export declare function formatDomEval(data: {
|
|
|
82
82
|
/**
|
|
83
83
|
* Format screenshot capture result for human-readable display.
|
|
84
84
|
*
|
|
85
|
-
*
|
|
86
|
-
* the selector/index and bounding box information.
|
|
85
|
+
* Shows concise single-line output. Resize/capture metadata available in --json output.
|
|
87
86
|
*
|
|
88
|
-
* @param data - Screenshot metadata
|
|
89
|
-
* @returns Formatted string with screenshot
|
|
87
|
+
* @param data - Screenshot metadata
|
|
88
|
+
* @returns Formatted string with screenshot path and optional viewport message
|
|
90
89
|
*
|
|
91
90
|
* @example
|
|
92
91
|
* ```typescript
|
|
93
|
-
* formatDomScreenshot({
|
|
94
|
-
*
|
|
95
|
-
*
|
|
96
|
-
*
|
|
97
|
-
*
|
|
98
|
-
* size: 245632,
|
|
99
|
-
* fullPage: true
|
|
100
|
-
* });
|
|
101
|
-
* // Output:
|
|
102
|
-
* // Screenshot captured
|
|
103
|
-
* // Path: /path/to/screenshot.png
|
|
104
|
-
* // Format: png
|
|
105
|
-
* // Dimensions: 1920x1080
|
|
106
|
-
* // Size: 240.0 KB
|
|
107
|
-
* // Full page: yes
|
|
92
|
+
* formatDomScreenshot({ path: './page.png', ... });
|
|
93
|
+
* // Output: Screenshot saved to ./page.png
|
|
94
|
+
*
|
|
95
|
+
* formatDomScreenshot({ path: './page.png', fullPageSkipped: { reason: 'page_too_tall', ... } });
|
|
96
|
+
* // Output: Screenshot saved to ./page.png (viewport only - page too tall)
|
|
108
97
|
* ```
|
|
109
98
|
*/
|
|
110
99
|
export declare function formatDomScreenshot(data: ScreenshotResult): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../../src/ui/formatters/dom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAGjF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAmC3D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAcvD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAE/D;AAED
|
|
1
|
+
{"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../../src/ui/formatters/dom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAGjF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAmC3D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAcvD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAE/D;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAQlE"}
|
|
@@ -123,81 +123,25 @@ export function formatDomEval(data) {
|
|
|
123
123
|
/**
|
|
124
124
|
* Format screenshot capture result for human-readable display.
|
|
125
125
|
*
|
|
126
|
-
*
|
|
127
|
-
* the selector/index and bounding box information.
|
|
126
|
+
* Shows concise single-line output. Resize/capture metadata available in --json output.
|
|
128
127
|
*
|
|
129
|
-
* @param data - Screenshot metadata
|
|
130
|
-
* @returns Formatted string with screenshot
|
|
128
|
+
* @param data - Screenshot metadata
|
|
129
|
+
* @returns Formatted string with screenshot path and optional viewport message
|
|
131
130
|
*
|
|
132
131
|
* @example
|
|
133
132
|
* ```typescript
|
|
134
|
-
* formatDomScreenshot({
|
|
135
|
-
*
|
|
136
|
-
*
|
|
137
|
-
*
|
|
138
|
-
*
|
|
139
|
-
* size: 245632,
|
|
140
|
-
* fullPage: true
|
|
141
|
-
* });
|
|
142
|
-
* // Output:
|
|
143
|
-
* // Screenshot captured
|
|
144
|
-
* // Path: /path/to/screenshot.png
|
|
145
|
-
* // Format: png
|
|
146
|
-
* // Dimensions: 1920x1080
|
|
147
|
-
* // Size: 240.0 KB
|
|
148
|
-
* // Full page: yes
|
|
133
|
+
* formatDomScreenshot({ path: './page.png', ... });
|
|
134
|
+
* // Output: Screenshot saved to ./page.png
|
|
135
|
+
*
|
|
136
|
+
* formatDomScreenshot({ path: './page.png', fullPageSkipped: { reason: 'page_too_tall', ... } });
|
|
137
|
+
* // Output: Screenshot saved to ./page.png (viewport only - page too tall)
|
|
149
138
|
* ```
|
|
150
139
|
*/
|
|
151
140
|
export function formatDomScreenshot(data) {
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
fmt.text(title).blank();
|
|
156
|
-
const kvPairs = [
|
|
157
|
-
['Path', data.path],
|
|
158
|
-
['Format', data.format.toUpperCase()],
|
|
159
|
-
];
|
|
160
|
-
if (data.format === 'jpeg' && data.quality !== undefined) {
|
|
161
|
-
kvPairs.push(['Quality', `${data.quality}%`]);
|
|
162
|
-
}
|
|
163
|
-
kvPairs.push(['Dimensions', `${data.width}x${data.height}`]);
|
|
164
|
-
kvPairs.push(['Size', sizeStr]);
|
|
165
|
-
if (data.element) {
|
|
166
|
-
const elementTarget = formatElementTarget(data.element);
|
|
167
|
-
kvPairs.push(['Element', elementTarget]);
|
|
168
|
-
}
|
|
169
|
-
else {
|
|
170
|
-
kvPairs.push(['Full page', data.fullPage ? 'yes' : 'no']);
|
|
171
|
-
if (data.viewport) {
|
|
172
|
-
kvPairs.push(['Viewport', `${data.viewport.width}x${data.viewport.height}`]);
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
fmt.keyValueList(kvPairs);
|
|
176
|
-
return fmt.build();
|
|
177
|
-
}
|
|
178
|
-
/**
|
|
179
|
-
* Format file size in human-readable units.
|
|
180
|
-
*
|
|
181
|
-
* @param bytes - Size in bytes
|
|
182
|
-
* @returns Formatted size string (e.g., "240.0 KB" or "1.5 MB")
|
|
183
|
-
*/
|
|
184
|
-
function formatFileSize(bytes) {
|
|
185
|
-
const kb = bytes / 1024;
|
|
186
|
-
return kb < 1024 ? `${kb.toFixed(1)} KB` : `${(kb / 1024).toFixed(1)} MB`;
|
|
187
|
-
}
|
|
188
|
-
/**
|
|
189
|
-
* Format element target description.
|
|
190
|
-
*
|
|
191
|
-
* @param element - Element info with selector or index
|
|
192
|
-
* @returns Formatted element description
|
|
193
|
-
*/
|
|
194
|
-
function formatElementTarget(element) {
|
|
195
|
-
if (element.selector !== undefined) {
|
|
196
|
-
return element.selector;
|
|
197
|
-
}
|
|
198
|
-
if (element.index !== undefined) {
|
|
199
|
-
return `index ${element.index}`;
|
|
141
|
+
let output = `Screenshot saved to ${data.path}`;
|
|
142
|
+
if (data.fullPageSkipped && !data.scrolledTo) {
|
|
143
|
+
output += ' (viewport only - page too tall)';
|
|
200
144
|
}
|
|
201
|
-
return
|
|
145
|
+
return output;
|
|
202
146
|
}
|
|
203
147
|
//# sourceMappingURL=dom.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dom.js","sourceRoot":"","sources":["../../../src/ui/formatters/dom.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,cAAc,CAAC,IAAoB;IACjD,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IACxC,MAAM,GAAG,GAAG,IAAI,eAAe,EAAE,CAAC;IAElC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;QAChB,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAE1E,OAAO,GAAG;aACP,IAAI,CAAC,4BAA4B,QAAQ,GAAG,CAAC;aAC7C,KAAK,EAAE;aACP,OAAO,CAAC,cAAc,EAAE;YACvB,0DAA0D,YAAY,KAAK;YAC3E,oCAAoC;SACrC,CAAC;aACD,KAAK,EAAE,CAAC;IACb,CAAC;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACnC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACnF,OAAO,IAAI,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,GAAG,GAAG,SAAS,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,MAAM,kBAAkB,GAAG,KAAK,GAAG,CAAC,CAAC;IACrC,MAAM,YAAY,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAErE,OAAO,GAAG;SACP,IAAI,CAAC,SAAS,KAAK,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,cAAc,QAAQ,IAAI,CAAC;SAC5E,IAAI,CAAC,SAAS,CAAC;SACf,KAAK,EAAE;SACP,OAAO,CAAC,aAAa,EAAE;QACtB,gCAAgC,YAAY,EAAE;QAC9C,+FAA+F,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,mBAAmB;QACtK,oCAAoC,YAAY,EAAE;KACnD,CAAC;SACD,KAAK,EAAE,CAAC;AACb,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,UAAU,YAAY,CAAC,IAAkB;IAC7C,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IAEvB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,oEAAoE;QACpE,OAAO,KAAK,CAAC,CAAC,CAAE,CAAC,SAAS,IAAI,EAAE,CAAC;IACnC,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,eAAe,EAAE,CAAC;IAClC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QACxB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC,KAAK,EAAE,CAAC;AACrB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,aAAa,CAAC,IAAyB;IACrD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"dom.js","sourceRoot":"","sources":["../../../src/ui/formatters/dom.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Human-readable formatter for form discovery output.
|
|
3
|
+
*
|
|
4
|
+
* Formats discovered forms with semantic tables showing fields,
|
|
5
|
+
* values, validation state, and suggested commands.
|
|
6
|
+
*/
|
|
7
|
+
import type { FormDiscoveryResult } from '../../types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Format form discovery result for human-readable display.
|
|
10
|
+
*
|
|
11
|
+
* @param result - Form discovery result
|
|
12
|
+
* @returns Formatted output string
|
|
13
|
+
*/
|
|
14
|
+
export declare function formatFormDiscovery(result: FormDiscoveryResult): string;
|
|
15
|
+
//# sourceMappingURL=form.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../../src/ui/formatters/form.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,mBAAmB,EAKpB,MAAM,YAAY,CAAC;AA6SpB;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,CAqDvE"}
|
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Human-readable formatter for form discovery output.
|
|
3
|
+
*
|
|
4
|
+
* Formats discovered forms with semantic tables showing fields,
|
|
5
|
+
* values, validation state, and suggested commands.
|
|
6
|
+
*/
|
|
7
|
+
import { OutputFormatter } from '../../ui/formatting.js';
|
|
8
|
+
const COLUMN_WIDTHS = {
|
|
9
|
+
index: 4,
|
|
10
|
+
type: 12,
|
|
11
|
+
label: 24,
|
|
12
|
+
value: 20,
|
|
13
|
+
status: 10,
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Format field type for display.
|
|
17
|
+
*
|
|
18
|
+
* @param field - Form field
|
|
19
|
+
* @returns Formatted type string
|
|
20
|
+
*/
|
|
21
|
+
function formatFieldType(field) {
|
|
22
|
+
const type = field.inputType ?? field.type;
|
|
23
|
+
return type.slice(0, COLUMN_WIDTHS.type - 1);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Format field value for display.
|
|
27
|
+
*
|
|
28
|
+
* @param field - Form field
|
|
29
|
+
* @returns Formatted value string
|
|
30
|
+
*/
|
|
31
|
+
function formatFieldValue(field) {
|
|
32
|
+
if (field.state === 'checked') {
|
|
33
|
+
return 'checked';
|
|
34
|
+
}
|
|
35
|
+
if (field.state === 'unchecked') {
|
|
36
|
+
return 'unchecked';
|
|
37
|
+
}
|
|
38
|
+
if (field.maskedValue) {
|
|
39
|
+
return `"${field.maskedValue}"`;
|
|
40
|
+
}
|
|
41
|
+
if (typeof field.value === 'string' && field.value.length > 0) {
|
|
42
|
+
const truncated = field.value.slice(0, COLUMN_WIDTHS.value - 3);
|
|
43
|
+
return `"${truncated}${field.value.length > COLUMN_WIDTHS.value - 3 ? '...' : ''}"`;
|
|
44
|
+
}
|
|
45
|
+
if (Array.isArray(field.value) && field.value.length > 0) {
|
|
46
|
+
return `[${field.value.length} selected]`;
|
|
47
|
+
}
|
|
48
|
+
return 'empty';
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Format field status with icon.
|
|
52
|
+
*
|
|
53
|
+
* @param field - Form field
|
|
54
|
+
* @returns Status string with icon
|
|
55
|
+
*/
|
|
56
|
+
function formatFieldStatus(field) {
|
|
57
|
+
if (field.disabled) {
|
|
58
|
+
return 'disabled';
|
|
59
|
+
}
|
|
60
|
+
if (!field.validation.valid) {
|
|
61
|
+
return 'invalid';
|
|
62
|
+
}
|
|
63
|
+
if (field.required && (field.state === 'empty' || field.state === 'unchecked')) {
|
|
64
|
+
return 'required';
|
|
65
|
+
}
|
|
66
|
+
return 'ok';
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Format required marker.
|
|
70
|
+
*
|
|
71
|
+
* @param field - Form field
|
|
72
|
+
* @returns Asterisk if required, empty string otherwise
|
|
73
|
+
*/
|
|
74
|
+
function formatRequiredMarker(field) {
|
|
75
|
+
return field.required ? '*' : '';
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Format field row for table.
|
|
79
|
+
*
|
|
80
|
+
* @param field - Form field
|
|
81
|
+
* @returns Formatted row string
|
|
82
|
+
*/
|
|
83
|
+
function formatFieldRow(field) {
|
|
84
|
+
const idx = String(field.index).padStart(COLUMN_WIDTHS.index);
|
|
85
|
+
const type = formatFieldType(field).padEnd(COLUMN_WIDTHS.type);
|
|
86
|
+
const label = (field.label + formatRequiredMarker(field))
|
|
87
|
+
.slice(0, COLUMN_WIDTHS.label)
|
|
88
|
+
.padEnd(COLUMN_WIDTHS.label);
|
|
89
|
+
const value = formatFieldValue(field).padEnd(COLUMN_WIDTHS.value);
|
|
90
|
+
const status = formatFieldStatus(field);
|
|
91
|
+
let warning = '';
|
|
92
|
+
if (field.interactionWarning) {
|
|
93
|
+
warning = ` [custom]`;
|
|
94
|
+
}
|
|
95
|
+
return `${idx} ${type} ${label} ${value} ${status}${warning}`;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Format button row for table.
|
|
99
|
+
*
|
|
100
|
+
* @param button - Form button
|
|
101
|
+
* @returns Formatted row string
|
|
102
|
+
*/
|
|
103
|
+
function formatButtonRow(button) {
|
|
104
|
+
const idx = String(button.index).padStart(COLUMN_WIDTHS.index);
|
|
105
|
+
const type = 'button'.padEnd(COLUMN_WIDTHS.type);
|
|
106
|
+
const label = button.label.slice(0, COLUMN_WIDTHS.label).padEnd(COLUMN_WIDTHS.label);
|
|
107
|
+
const primary = button.primary ? '(primary)' : '(secondary)';
|
|
108
|
+
const enabled = button.enabled ? 'enabled' : 'disabled';
|
|
109
|
+
return `${idx} ${type} ${label} ${primary.padEnd(COLUMN_WIDTHS.value)} ${enabled}`;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Format form header with name and step indicator.
|
|
113
|
+
*
|
|
114
|
+
* @param form - Discovered form
|
|
115
|
+
* @returns Header string
|
|
116
|
+
*/
|
|
117
|
+
function formatFormHeader(form) {
|
|
118
|
+
let header = `Form: "${form.name ?? 'Unnamed'}"`;
|
|
119
|
+
if (form.step) {
|
|
120
|
+
header += ` (step ${form.step.current} of ${form.step.total})`;
|
|
121
|
+
}
|
|
122
|
+
return header;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Format table header row.
|
|
126
|
+
*
|
|
127
|
+
* @returns Header row string
|
|
128
|
+
*/
|
|
129
|
+
function formatTableHeader() {
|
|
130
|
+
const idx = '#'.padStart(COLUMN_WIDTHS.index);
|
|
131
|
+
const type = 'Type'.padEnd(COLUMN_WIDTHS.type);
|
|
132
|
+
const label = 'Label'.padEnd(COLUMN_WIDTHS.label);
|
|
133
|
+
const value = 'Value'.padEnd(COLUMN_WIDTHS.value);
|
|
134
|
+
const status = 'Status';
|
|
135
|
+
return `${idx} ${type} ${label} ${value} ${status}`;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Format summary line.
|
|
139
|
+
*
|
|
140
|
+
* @param summary - Form summary
|
|
141
|
+
* @returns Summary string
|
|
142
|
+
*/
|
|
143
|
+
function formatSummaryLine(summary) {
|
|
144
|
+
const parts = [];
|
|
145
|
+
parts.push(`${summary.filledFields}/${summary.totalFields} fields filled`);
|
|
146
|
+
if (summary.invalidFields > 0) {
|
|
147
|
+
parts.push(`${summary.invalidFields} invalid`);
|
|
148
|
+
}
|
|
149
|
+
if (summary.requiredRemaining > 0) {
|
|
150
|
+
parts.push(`${summary.requiredRemaining} required remaining`);
|
|
151
|
+
}
|
|
152
|
+
if (summary.readyToSubmit) {
|
|
153
|
+
parts.push('READY to submit');
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
parts.push('NOT ready');
|
|
157
|
+
}
|
|
158
|
+
return `Summary: ${parts.join(' | ')}`;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Format remaining actions section.
|
|
162
|
+
*
|
|
163
|
+
* @param summary - Form summary
|
|
164
|
+
* @returns Array of command strings
|
|
165
|
+
*/
|
|
166
|
+
function formatRemainingActions(summary) {
|
|
167
|
+
if (summary.blockers.length === 0) {
|
|
168
|
+
return [];
|
|
169
|
+
}
|
|
170
|
+
return summary.blockers.slice(0, 5).map((b) => ` ${b.command.padEnd(35)} # ${b.label}`);
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Format single form for display.
|
|
174
|
+
*
|
|
175
|
+
* @param form - Discovered form
|
|
176
|
+
* @param fmt - Output formatter
|
|
177
|
+
*/
|
|
178
|
+
function formatSingleForm(form, fmt, brief = false) {
|
|
179
|
+
fmt.text(formatFormHeader(form));
|
|
180
|
+
fmt.text('─'.repeat(70));
|
|
181
|
+
if (brief) {
|
|
182
|
+
formatBriefFields(form, fmt);
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
fmt.text(formatTableHeader());
|
|
186
|
+
fmt.text('─'.repeat(70));
|
|
187
|
+
for (const field of form.fields) {
|
|
188
|
+
if (!field.hidden) {
|
|
189
|
+
fmt.text(formatFieldRow(field));
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
if (form.buttons.length > 0) {
|
|
193
|
+
fmt.text('─'.repeat(70));
|
|
194
|
+
for (const button of form.buttons) {
|
|
195
|
+
fmt.text(formatButtonRow(button));
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
fmt.text('═'.repeat(70));
|
|
199
|
+
fmt.text(formatSummaryLine(form.summary));
|
|
200
|
+
const remaining = formatRemainingActions(form.summary);
|
|
201
|
+
if (remaining.length > 0) {
|
|
202
|
+
fmt.blank();
|
|
203
|
+
fmt.text('Remaining:');
|
|
204
|
+
for (const action of remaining) {
|
|
205
|
+
fmt.text(action);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Format brief field listing.
|
|
211
|
+
*
|
|
212
|
+
* @param form - Discovered form
|
|
213
|
+
* @param fmt - Output formatter
|
|
214
|
+
*/
|
|
215
|
+
function formatBriefFields(form, fmt) {
|
|
216
|
+
fmt.text('IDX TYPE LABEL REQ');
|
|
217
|
+
fmt.text('─'.repeat(50));
|
|
218
|
+
for (const field of form.fields) {
|
|
219
|
+
if (field.hidden)
|
|
220
|
+
continue;
|
|
221
|
+
const idx = `[${field.index}]`.padEnd(4);
|
|
222
|
+
const type = (field.inputType ?? field.type).slice(0, 11).padEnd(12);
|
|
223
|
+
const label = (field.label ?? field.name ?? '(no label)').slice(0, 23).padEnd(24);
|
|
224
|
+
const req = field.required ? '*' : '';
|
|
225
|
+
fmt.text(`${idx} ${type} ${label} ${req}`);
|
|
226
|
+
}
|
|
227
|
+
if (form.buttons.length > 0) {
|
|
228
|
+
fmt.text('─'.repeat(50));
|
|
229
|
+
for (const button of form.buttons) {
|
|
230
|
+
const idx = `[${button.index}]`.padEnd(4);
|
|
231
|
+
const type = 'button'.padEnd(12);
|
|
232
|
+
const label = (button.label || button.type).slice(0, 23).padEnd(24);
|
|
233
|
+
fmt.text(`${idx} ${type} ${label}`);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Format other forms summary.
|
|
239
|
+
*
|
|
240
|
+
* @param forms - All forms
|
|
241
|
+
* @param selectedIndex - Index of selected form
|
|
242
|
+
* @param fmt - Output formatter
|
|
243
|
+
*/
|
|
244
|
+
function formatOtherForms(forms, selectedIndex, fmt) {
|
|
245
|
+
const others = forms.filter((_, i) => i !== selectedIndex);
|
|
246
|
+
if (others.length === 0) {
|
|
247
|
+
return;
|
|
248
|
+
}
|
|
249
|
+
fmt.blank();
|
|
250
|
+
fmt.text('Other forms on page:');
|
|
251
|
+
for (const form of others) {
|
|
252
|
+
const fieldCount = form.fields.filter((f) => !f.hidden).length;
|
|
253
|
+
fmt.text(` Form ${form.index}: "${form.name ?? 'Unnamed'}" - ${fieldCount} field(s)`);
|
|
254
|
+
}
|
|
255
|
+
fmt.blank();
|
|
256
|
+
fmt.text('Use --all to see all forms');
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Format form discovery result for human-readable display.
|
|
260
|
+
*
|
|
261
|
+
* @param result - Form discovery result
|
|
262
|
+
* @returns Formatted output string
|
|
263
|
+
*/
|
|
264
|
+
export function formatFormDiscovery(result) {
|
|
265
|
+
const fmt = new OutputFormatter();
|
|
266
|
+
fmt.text(`FORMS DISCOVERED: ${result.formCount}`);
|
|
267
|
+
fmt.text('═'.repeat(70));
|
|
268
|
+
fmt.blank();
|
|
269
|
+
for (const form of result.forms) {
|
|
270
|
+
formatSingleForm(form, fmt, result.brief);
|
|
271
|
+
fmt.blank();
|
|
272
|
+
}
|
|
273
|
+
if (result.forms.length === 1 && result.formCount > 1) {
|
|
274
|
+
const allForms = [];
|
|
275
|
+
for (let i = 0; i < result.formCount; i++) {
|
|
276
|
+
if (i === result.selectedForm) {
|
|
277
|
+
allForms.push(result.forms[0]);
|
|
278
|
+
}
|
|
279
|
+
else {
|
|
280
|
+
allForms.push({
|
|
281
|
+
index: i,
|
|
282
|
+
name: `Form ${i}`,
|
|
283
|
+
action: null,
|
|
284
|
+
method: 'GET',
|
|
285
|
+
relevanceScore: 0,
|
|
286
|
+
fields: [],
|
|
287
|
+
buttons: [],
|
|
288
|
+
summary: {
|
|
289
|
+
totalFields: 0,
|
|
290
|
+
filledFields: 0,
|
|
291
|
+
emptyFields: 0,
|
|
292
|
+
validFields: 0,
|
|
293
|
+
invalidFields: 0,
|
|
294
|
+
requiredTotal: 0,
|
|
295
|
+
requiredFilled: 0,
|
|
296
|
+
requiredRemaining: 0,
|
|
297
|
+
readyToSubmit: true,
|
|
298
|
+
blockers: [],
|
|
299
|
+
},
|
|
300
|
+
});
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
formatOtherForms(allForms, result.selectedForm, fmt);
|
|
304
|
+
}
|
|
305
|
+
fmt.blank();
|
|
306
|
+
fmt.text('Suggested commands:');
|
|
307
|
+
fmt.text(' bdg dom fill <index> "<value>" Fill a field');
|
|
308
|
+
fmt.text(' bdg dom click <index> Click/check a field or button');
|
|
309
|
+
fmt.text(' bdg dom form Refresh to see current state');
|
|
310
|
+
fmt.blank();
|
|
311
|
+
fmt.text('Tip: Re-run "bdg dom form" after clicks that may reveal hidden fields');
|
|
312
|
+
return fmt.build();
|
|
313
|
+
}
|
|
314
|
+
//# sourceMappingURL=form.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form.js","sourceRoot":"","sources":["../../../src/ui/formatters/form.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,7 +29,7 @@ export type LogLevel = 'info' | 'debug';
|
|
|
29
29
|
* Log contexts for different components.
|
|
30
30
|
* Used to prefix log messages with component name.
|
|
31
31
|
*/
|
|
32
|
-
export type LogContext = 'bdg' | 'launcher' | 'daemon' | 'worker' | 'client' | 'cleanup' | 'session' | 'chrome' | 'cdp' | 'ipc' | 'http' | 'dialogs' | 'navigation' | 'console' | 'dom' | 'network' | 'diagnostics' | 'readiness' | 'atomic-file' | 'object-expander';
|
|
32
|
+
export type LogContext = 'bdg' | 'launcher' | 'daemon' | 'worker' | 'client' | 'cleanup' | 'session' | 'chrome' | 'cdp' | 'ipc' | 'http' | 'dialogs' | 'navigation' | 'console' | 'dom' | 'network' | 'diagnostics' | 'readiness' | 'atomic-file' | 'object-expander' | 'fetcher';
|
|
33
33
|
/**
|
|
34
34
|
* Logger instance with support for different log levels.
|
|
35
35
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/ui/logging/logger.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH;;;;;GAKG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AAED;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAED;;;;;GAKG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AAExC;;;GAGG;AACH,MAAM,MAAM,UAAU,GAClB,KAAK,GACL,UAAU,GACV,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,SAAS,GACT,QAAQ,GACR,KAAK,GACL,KAAK,GACL,MAAM,GACN,SAAS,GACT,YAAY,GACZ,SAAS,GACT,KAAK,GACL,SAAS,GACT,aAAa,GACb,WAAW,GACX,aAAa,GACb,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/ui/logging/logger.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH;;;;;GAKG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AAED;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAED;;;;;GAKG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AAExC;;;GAGG;AACH,MAAM,MAAM,UAAU,GAClB,KAAK,GACL,UAAU,GACV,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,SAAS,GACT,QAAQ,GACR,KAAK,GACL,KAAK,GACL,MAAM,GACN,SAAS,GACT,YAAY,GACZ,SAAS,GACT,KAAK,GACL,SAAS,GACT,aAAa,GACb,WAAW,GACX,aAAa,GACb,iBAAiB,GACjB,SAAS,CAAC;AAEd;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB;;;OAGG;IACH,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAEhC;;;OAGG;IACH,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAEjC;;;OAGG;IACH,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAaxD;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAEhF"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* By default, only 'info' level logs are shown. Set BDG_DEBUG=1 or use --debug
|
|
6
6
|
* flag to enable verbose 'debug' level logs.
|
|
7
7
|
*/
|
|
8
|
-
import { getErrorMessage } from '../../
|
|
8
|
+
import { getErrorMessage } from '../../utils/errors.js';
|
|
9
9
|
let debugEnabled = false;
|
|
10
10
|
/**
|
|
11
11
|
* Enable debug logging globally.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/ui/logging/logger.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/ui/logging/logger.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,IAAI,YAAY,GAAG,KAAK,CAAC;AAEzB;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB;IAChC,YAAY,GAAG,IAAI,CAAC;AACtB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC;AAC1D,CAAC;AA4DD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,YAAY,CAAC,OAAmB;IAC9C,MAAM,UAAU,GAAG,CAAC,OAAe,EAAE,QAAkB,OAAO,EAAQ,EAAE;QACtE,IAAI,KAAK,KAAK,OAAO,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;YAC3C,OAAO;QACT,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC,CAAC;IAC3C,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,CAAC,CAAC,OAAe,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAW,CAAC;IAC7E,MAAM,CAAC,IAAI,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC/D,MAAM,CAAC,KAAK,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAEjE,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,aAAa,CAAC,GAAW,EAAE,OAAe,EAAE,KAAc;IACxE,GAAG,CAAC,KAAK,CAAC,aAAa,OAAO,KAAK,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC/D,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DOM command messages (bdg dom)
|
|
3
|
+
*
|
|
4
|
+
* User-facing messages for DOM command output and formatting.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Generate resize info message for screenshot output.
|
|
8
|
+
*
|
|
9
|
+
* @param originalTokens - Token count at original size
|
|
10
|
+
* @param finalTokens - Token count after resize
|
|
11
|
+
* @returns Formatted resize info string
|
|
12
|
+
*/
|
|
13
|
+
export declare function screenshotResizeInfo(originalTokens: number, finalTokens: number): string;
|
|
14
|
+
//# sourceMappingURL=dom.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../../src/ui/messages/dom.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAeH;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAExF"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DOM command messages (bdg dom)
|
|
3
|
+
*
|
|
4
|
+
* User-facing messages for DOM command output and formatting.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Format token count for display.
|
|
8
|
+
*
|
|
9
|
+
* @param tokens - Token count
|
|
10
|
+
* @returns Formatted string (e.g., "1.6k" or "500")
|
|
11
|
+
*/
|
|
12
|
+
function formatTokenCount(tokens) {
|
|
13
|
+
if (tokens >= 1000) {
|
|
14
|
+
return `${(tokens / 1000).toFixed(1)}k`;
|
|
15
|
+
}
|
|
16
|
+
return String(tokens);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Generate resize info message for screenshot output.
|
|
20
|
+
*
|
|
21
|
+
* @param originalTokens - Token count at original size
|
|
22
|
+
* @param finalTokens - Token count after resize
|
|
23
|
+
* @returns Formatted resize info string
|
|
24
|
+
*/
|
|
25
|
+
export function screenshotResizeInfo(originalTokens, finalTokens) {
|
|
26
|
+
return `resized: ${formatTokenCount(originalTokens)} → ${formatTokenCount(finalTokens)} tokens`;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=dom.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dom.js","sourceRoot":"","sources":["../../../src/ui/messages/dom.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,MAAc;IACtC,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACnB,OAAO,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAC1C,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;AACxB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,cAAsB,EAAE,WAAmB;IAC9E,OAAO,YAAY,gBAAgB,CAAC,cAAc,CAAC,MAAM,gBAAgB,CAAC,WAAW,CAAC,SAAS,CAAC;AAClG,CAAC"}
|