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
|
@@ -100,22 +100,134 @@ export declare function invalidResponseError(reason: string): string;
|
|
|
100
100
|
*/
|
|
101
101
|
export declare function sessionNotActiveError(operation: string): string;
|
|
102
102
|
/**
|
|
103
|
-
* Generate element not found error with CDP fallback.
|
|
103
|
+
* Generate element not found error with shell quote detection and CDP fallback.
|
|
104
104
|
*
|
|
105
|
-
* Provides guidance for when high-level DOM commands fail to find elements
|
|
106
|
-
*
|
|
105
|
+
* Provides guidance for when high-level DOM commands fail to find elements.
|
|
106
|
+
* Detects shell quote damage for attribute selectors and provides specific
|
|
107
|
+
* recovery suggestions including the two-step query-then-inspect pattern.
|
|
107
108
|
*
|
|
108
|
-
* @param selector - CSS selector that failed
|
|
109
|
-
* @returns Formatted error message with
|
|
109
|
+
* @param selector - CSS selector that failed (as received by the command)
|
|
110
|
+
* @returns Formatted error message with context-aware suggestions
|
|
110
111
|
*
|
|
111
112
|
* @example
|
|
112
113
|
* ```typescript
|
|
113
|
-
*
|
|
114
|
-
*
|
|
115
|
-
*
|
|
116
|
-
*
|
|
117
|
-
* )
|
|
114
|
+
* // Simple selector - standard suggestions
|
|
115
|
+
* elementNotFoundError('#missing-element')
|
|
116
|
+
*
|
|
117
|
+
* // Attribute selector with shell damage detected
|
|
118
|
+
* elementNotFoundError('[data-test-id=value]')
|
|
119
|
+
* // Shows: "Shell quote handling detected. Selector received without quotes."
|
|
118
120
|
* ```
|
|
119
121
|
*/
|
|
120
122
|
export declare function elementNotFoundError(selector: string): string;
|
|
123
|
+
/**
|
|
124
|
+
* Error with suggestion pair for CommandError usage.
|
|
125
|
+
*/
|
|
126
|
+
export interface ErrorWithSuggestion {
|
|
127
|
+
message: string;
|
|
128
|
+
suggestion: string;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Index out of range error.
|
|
132
|
+
*/
|
|
133
|
+
export declare function indexOutOfRangeError(index: number, max: number): ErrorWithSuggestion;
|
|
134
|
+
/**
|
|
135
|
+
* Element at index not found (stale cache).
|
|
136
|
+
*/
|
|
137
|
+
export declare function elementAtIndexNotFoundError(index: number, selector: string): ErrorWithSuggestion;
|
|
138
|
+
/**
|
|
139
|
+
* No nodes found for selector.
|
|
140
|
+
*/
|
|
141
|
+
export declare function noNodesFoundError(selector: string): ErrorWithSuggestion;
|
|
142
|
+
/**
|
|
143
|
+
* Element not visible/rendered.
|
|
144
|
+
*/
|
|
145
|
+
export declare function elementNotVisibleError(): ErrorWithSuggestion;
|
|
146
|
+
/**
|
|
147
|
+
* Element has zero dimensions.
|
|
148
|
+
*/
|
|
149
|
+
export declare function elementZeroDimensionsError(): ErrorWithSuggestion;
|
|
150
|
+
/**
|
|
151
|
+
* Missing required argument.
|
|
152
|
+
*/
|
|
153
|
+
export declare function missingArgumentError(usage: string): ErrorWithSuggestion;
|
|
154
|
+
/**
|
|
155
|
+
* Either/or argument required.
|
|
156
|
+
*/
|
|
157
|
+
export declare function eitherArgumentRequiredError(arg1: string, arg2: string, example: string): ErrorWithSuggestion;
|
|
158
|
+
/**
|
|
159
|
+
* Invalid query pattern.
|
|
160
|
+
*/
|
|
161
|
+
export declare function invalidQueryPatternError(pattern: string): ErrorWithSuggestion;
|
|
162
|
+
/**
|
|
163
|
+
* No a11y nodes matching pattern.
|
|
164
|
+
*/
|
|
165
|
+
export declare function noA11yNodesFoundError(pattern: string): ErrorWithSuggestion;
|
|
166
|
+
/**
|
|
167
|
+
* Element not accessible (a11y).
|
|
168
|
+
*/
|
|
169
|
+
export declare function elementNotAccessibleError(index: number): ErrorWithSuggestion;
|
|
170
|
+
/**
|
|
171
|
+
* Fillable element not found.
|
|
172
|
+
*/
|
|
173
|
+
export declare function fillableElementNotFoundError(selector: string): ErrorWithSuggestion;
|
|
174
|
+
/**
|
|
175
|
+
* Clickable element not found.
|
|
176
|
+
*/
|
|
177
|
+
export declare function clickableElementNotFoundError(selector: string): ErrorWithSuggestion;
|
|
178
|
+
/**
|
|
179
|
+
* Key press failed.
|
|
180
|
+
*/
|
|
181
|
+
export declare function keyPressFailedError(details: string): ErrorWithSuggestion;
|
|
182
|
+
/**
|
|
183
|
+
* Session target not found.
|
|
184
|
+
*/
|
|
185
|
+
export declare function sessionTargetNotFoundError(): ErrorWithSuggestion;
|
|
186
|
+
/**
|
|
187
|
+
* Session metadata missing.
|
|
188
|
+
*/
|
|
189
|
+
export declare function sessionMetadataMissingError(field: string): ErrorWithSuggestion;
|
|
190
|
+
/**
|
|
191
|
+
* Script execution error with shell quote detection.
|
|
192
|
+
*
|
|
193
|
+
* Shows the script as received to help diagnose shell quote stripping issues.
|
|
194
|
+
* Detects common patterns like `querySelector(input)` that indicate shell damage.
|
|
195
|
+
*
|
|
196
|
+
* @param errorMessage - The JavaScript error message
|
|
197
|
+
* @param receivedScript - The script as received by the command (optional for backwards compat)
|
|
198
|
+
* @returns Error with context-aware suggestions
|
|
199
|
+
*/
|
|
200
|
+
export declare function scriptExecutionError(errorMessage: string, receivedScript?: string): ErrorWithSuggestion;
|
|
201
|
+
/**
|
|
202
|
+
* Unexpected CDP response format.
|
|
203
|
+
*/
|
|
204
|
+
export declare function unexpectedResponseFormatError(context: string): ErrorWithSuggestion;
|
|
205
|
+
/**
|
|
206
|
+
* Generic operation failure with dynamic error message.
|
|
207
|
+
*/
|
|
208
|
+
export declare function operationFailedError(operation: string, errorMessage: string): ErrorWithSuggestion;
|
|
209
|
+
/**
|
|
210
|
+
* Internal error (should not happen in normal usage).
|
|
211
|
+
*/
|
|
212
|
+
export declare function internalError(context: string): ErrorWithSuggestion;
|
|
213
|
+
/**
|
|
214
|
+
* No forms found on page.
|
|
215
|
+
*/
|
|
216
|
+
export declare function noFormsFoundError(): ErrorWithSuggestion;
|
|
217
|
+
/**
|
|
218
|
+
* Form selection out of range.
|
|
219
|
+
*/
|
|
220
|
+
export declare function formSelectionOutOfRangeError(index: number, count: number): ErrorWithSuggestion;
|
|
221
|
+
/**
|
|
222
|
+
* Form selection by name not found.
|
|
223
|
+
*/
|
|
224
|
+
export declare function formSelectionByNameNotFoundError(name: string, availableNames: string[]): ErrorWithSuggestion;
|
|
225
|
+
/**
|
|
226
|
+
* Form in iframe (cross-origin or same-origin).
|
|
227
|
+
*/
|
|
228
|
+
export declare function formInIframeError(iframeUrl: string, crossOrigin: boolean): ErrorWithSuggestion;
|
|
229
|
+
/**
|
|
230
|
+
* Custom component interaction warning.
|
|
231
|
+
*/
|
|
232
|
+
export declare function customComponentWarning(elementType: string, suggestedAction: string): ErrorWithSuggestion;
|
|
121
233
|
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/ui/messages/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/ui/messages/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* Centralized location for reusable error messages with consistent formatting.
|
|
5
5
|
*/
|
|
6
6
|
import { formatDuration, joinLines } from '../../ui/formatting.js';
|
|
7
|
+
import { detectSelectorQuoteDamage, detectScriptQuoteDamage, hasAttributeSelector, } from '../../utils/shellDetection.js';
|
|
7
8
|
/**
|
|
8
9
|
* Generate "session already running" error message.
|
|
9
10
|
*
|
|
@@ -103,24 +104,292 @@ export function sessionNotActiveError(operation) {
|
|
|
103
104
|
return joinLines(`Error: Cannot ${operation} - no active session`, '', 'Start a session first:', ' bdg <url>', '', 'Example:', ' bdg https://example.com', ` bdg ${operation}`);
|
|
104
105
|
}
|
|
105
106
|
/**
|
|
106
|
-
* Generate element not found error with CDP fallback.
|
|
107
|
+
* Generate element not found error with shell quote detection and CDP fallback.
|
|
107
108
|
*
|
|
108
|
-
* Provides guidance for when high-level DOM commands fail to find elements
|
|
109
|
-
*
|
|
109
|
+
* Provides guidance for when high-level DOM commands fail to find elements.
|
|
110
|
+
* Detects shell quote damage for attribute selectors and provides specific
|
|
111
|
+
* recovery suggestions including the two-step query-then-inspect pattern.
|
|
110
112
|
*
|
|
111
|
-
* @param selector - CSS selector that failed
|
|
112
|
-
* @returns Formatted error message with
|
|
113
|
+
* @param selector - CSS selector that failed (as received by the command)
|
|
114
|
+
* @returns Formatted error message with context-aware suggestions
|
|
113
115
|
*
|
|
114
116
|
* @example
|
|
115
117
|
* ```typescript
|
|
116
|
-
*
|
|
117
|
-
*
|
|
118
|
-
*
|
|
119
|
-
*
|
|
120
|
-
* )
|
|
118
|
+
* // Simple selector - standard suggestions
|
|
119
|
+
* elementNotFoundError('#missing-element')
|
|
120
|
+
*
|
|
121
|
+
* // Attribute selector with shell damage detected
|
|
122
|
+
* elementNotFoundError('[data-test-id=value]')
|
|
123
|
+
* // Shows: "Shell quote handling detected. Selector received without quotes."
|
|
121
124
|
* ```
|
|
122
125
|
*/
|
|
123
126
|
export function elementNotFoundError(selector) {
|
|
124
|
-
|
|
127
|
+
const quoteCheck = detectSelectorQuoteDamage(selector);
|
|
128
|
+
if (quoteCheck.damaged) {
|
|
129
|
+
return joinLines(`Error: Element not found: ${selector}`, '', 'Shell quote handling detected. Selector received without quotes.', quoteCheck.details && ` ${quoteCheck.details}`, '', 'Discovery path (recommended):', ` 1. Query first: bdg dom query '${selector}'`, ' 2. Then inspect: bdg dom a11y describe 0', '', 'Or escape quotes for direct use:', ` bdg cdp Runtime.evaluate --params '{"expression":"document.querySelector(\\"${selector.replace(/=/g, '=\\\\\\"')}\\\\\\"\\")"}'`);
|
|
130
|
+
}
|
|
131
|
+
if (hasAttributeSelector(selector)) {
|
|
132
|
+
return joinLines(`Error: Element not found: ${selector}`, '', 'Attribute selector detected. If quotes were stripped by shell:', '', 'Discovery path (recommended):', ` 1. Query first: bdg dom query '${selector}'`, ' 2. Then inspect: bdg dom a11y describe 0', '', 'Or verify element exists:', ' - Use bdg peek --dom to see page structure', ' - Check if element loads asynchronously');
|
|
133
|
+
}
|
|
134
|
+
return joinLines(`Error: Element not found: ${selector}`, '', 'Suggestions:', ' - Check the selector syntax', ' - Wait for the element to load (page might still be loading)', ' - Use bdg peek to see if page loaded correctly', '', 'Advanced: Use CDP for complex queries:', ` bdg cdp Runtime.evaluate --params '{"expression":"document.querySelector(\\"${selector}\\")"}'`);
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Index out of range error.
|
|
138
|
+
*/
|
|
139
|
+
export function indexOutOfRangeError(index, max) {
|
|
140
|
+
return {
|
|
141
|
+
message: `Index ${index} out of range (found ${max + 1} nodes)`,
|
|
142
|
+
suggestion: `Use an index between 0 and ${max}`,
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Element at index not found (stale cache).
|
|
147
|
+
*/
|
|
148
|
+
export function elementAtIndexNotFoundError(index, selector) {
|
|
149
|
+
return {
|
|
150
|
+
message: `Element at index ${index} not found`,
|
|
151
|
+
suggestion: `Re-run "bdg dom query ${selector}" to refresh the cache`,
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* No nodes found for selector.
|
|
156
|
+
*/
|
|
157
|
+
export function noNodesFoundError(selector) {
|
|
158
|
+
return {
|
|
159
|
+
message: `No nodes found matching "${selector}"`,
|
|
160
|
+
suggestion: 'Verify the CSS selector is correct',
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Element not visible/rendered.
|
|
165
|
+
*/
|
|
166
|
+
export function elementNotVisibleError() {
|
|
167
|
+
return {
|
|
168
|
+
message: 'Failed to get element bounds',
|
|
169
|
+
suggestion: 'Element may not be rendered or visible',
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Element has zero dimensions.
|
|
174
|
+
*/
|
|
175
|
+
export function elementZeroDimensionsError() {
|
|
176
|
+
return {
|
|
177
|
+
message: 'Element has zero dimensions (not visible)',
|
|
178
|
+
suggestion: 'Element may be hidden or collapsed',
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Missing required argument.
|
|
183
|
+
*/
|
|
184
|
+
export function missingArgumentError(usage) {
|
|
185
|
+
return {
|
|
186
|
+
message: 'Missing required argument or flag',
|
|
187
|
+
suggestion: usage,
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Either/or argument required.
|
|
192
|
+
*/
|
|
193
|
+
export function eitherArgumentRequiredError(arg1, arg2, example) {
|
|
194
|
+
return {
|
|
195
|
+
message: `Either ${arg1} or ${arg2} must be provided`,
|
|
196
|
+
suggestion: example,
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Invalid query pattern.
|
|
201
|
+
*/
|
|
202
|
+
export function invalidQueryPatternError(pattern) {
|
|
203
|
+
return {
|
|
204
|
+
message: 'Query pattern must specify at least one field',
|
|
205
|
+
suggestion: `Received: "${pattern}". Try: bdg dom a11y query "role:button" or "name:Submit"`,
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* No a11y nodes matching pattern.
|
|
210
|
+
*/
|
|
211
|
+
export function noA11yNodesFoundError(pattern) {
|
|
212
|
+
return {
|
|
213
|
+
message: 'No nodes found matching pattern',
|
|
214
|
+
suggestion: `Pattern: ${pattern}. Try a broader query or use "bdg dom a11y tree" to see all elements`,
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Element not accessible (a11y).
|
|
219
|
+
*/
|
|
220
|
+
export function elementNotAccessibleError(index) {
|
|
221
|
+
return {
|
|
222
|
+
message: `Element at index ${index} not accessible`,
|
|
223
|
+
suggestion: 'Re-run query to refresh cache',
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Fillable element not found.
|
|
228
|
+
*/
|
|
229
|
+
export function fillableElementNotFoundError(selector) {
|
|
230
|
+
return {
|
|
231
|
+
message: `Element not found: ${selector}`,
|
|
232
|
+
suggestion: 'Verify the selector matches a fillable element (input, textarea, select)',
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Clickable element not found.
|
|
237
|
+
*/
|
|
238
|
+
export function clickableElementNotFoundError(selector) {
|
|
239
|
+
return {
|
|
240
|
+
message: `Element not found: ${selector}`,
|
|
241
|
+
suggestion: 'Verify the selector matches a clickable element',
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Key press failed.
|
|
246
|
+
*/
|
|
247
|
+
export function keyPressFailedError(details) {
|
|
248
|
+
return {
|
|
249
|
+
message: 'Failed to press key',
|
|
250
|
+
suggestion: details,
|
|
251
|
+
};
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Session target not found.
|
|
255
|
+
*/
|
|
256
|
+
export function sessionTargetNotFoundError() {
|
|
257
|
+
return {
|
|
258
|
+
message: 'Session target not found (tab may have been closed)',
|
|
259
|
+
suggestion: 'Start a new session with: bdg <url>',
|
|
260
|
+
};
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Session metadata missing.
|
|
264
|
+
*/
|
|
265
|
+
export function sessionMetadataMissingError(field) {
|
|
266
|
+
return {
|
|
267
|
+
message: `Session metadata missing ${field}`,
|
|
268
|
+
suggestion: 'Start a new session with: bdg <url>',
|
|
269
|
+
};
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Script execution error with shell quote detection.
|
|
273
|
+
*
|
|
274
|
+
* Shows the script as received to help diagnose shell quote stripping issues.
|
|
275
|
+
* Detects common patterns like `querySelector(input)` that indicate shell damage.
|
|
276
|
+
*
|
|
277
|
+
* @param errorMessage - The JavaScript error message
|
|
278
|
+
* @param receivedScript - The script as received by the command (optional for backwards compat)
|
|
279
|
+
* @returns Error with context-aware suggestions
|
|
280
|
+
*/
|
|
281
|
+
export function scriptExecutionError(errorMessage, receivedScript) {
|
|
282
|
+
if (!receivedScript) {
|
|
283
|
+
return {
|
|
284
|
+
message: errorMessage,
|
|
285
|
+
suggestion: 'Check JavaScript syntax and ensure the expression is valid',
|
|
286
|
+
};
|
|
287
|
+
}
|
|
288
|
+
const quoteCheck = detectScriptQuoteDamage(receivedScript);
|
|
289
|
+
const truncatedScript = receivedScript.length > 100 ? receivedScript.slice(0, 100) + '...' : receivedScript;
|
|
290
|
+
const lines = [];
|
|
291
|
+
lines.push(`Script received: ${truncatedScript}`);
|
|
292
|
+
if (quoteCheck.damaged) {
|
|
293
|
+
lines.push('');
|
|
294
|
+
lines.push('Shell quote damage detected:');
|
|
295
|
+
if (quoteCheck.details) {
|
|
296
|
+
lines.push(` ${quoteCheck.details}`);
|
|
297
|
+
}
|
|
298
|
+
if (quoteCheck.suggestion) {
|
|
299
|
+
lines.push('');
|
|
300
|
+
lines.push(quoteCheck.suggestion);
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
else {
|
|
304
|
+
lines.push('');
|
|
305
|
+
lines.push('Tips:');
|
|
306
|
+
lines.push(" - Use single quotes around script: bdg dom eval '...'");
|
|
307
|
+
lines.push(' - For complex scripts, use heredoc or --file option');
|
|
308
|
+
lines.push(' - Escape inner quotes: \\" or use opposite quote style');
|
|
309
|
+
}
|
|
310
|
+
return {
|
|
311
|
+
message: errorMessage,
|
|
312
|
+
suggestion: lines.join('\n'),
|
|
313
|
+
};
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
316
|
+
* Unexpected CDP response format.
|
|
317
|
+
*/
|
|
318
|
+
export function unexpectedResponseFormatError(context) {
|
|
319
|
+
return {
|
|
320
|
+
message: 'Unexpected response format',
|
|
321
|
+
suggestion: `CDP response missing result.value or invalid ${context} structure`,
|
|
322
|
+
};
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* Generic operation failure with dynamic error message.
|
|
326
|
+
*/
|
|
327
|
+
export function operationFailedError(operation, errorMessage) {
|
|
328
|
+
return {
|
|
329
|
+
message: `Failed to ${operation}`,
|
|
330
|
+
suggestion: errorMessage,
|
|
331
|
+
};
|
|
332
|
+
}
|
|
333
|
+
/**
|
|
334
|
+
* Internal error (should not happen in normal usage).
|
|
335
|
+
*/
|
|
336
|
+
export function internalError(context) {
|
|
337
|
+
return {
|
|
338
|
+
message: context,
|
|
339
|
+
suggestion: 'This is an internal error - please report this issue',
|
|
340
|
+
};
|
|
341
|
+
}
|
|
342
|
+
/**
|
|
343
|
+
* No forms found on page.
|
|
344
|
+
*/
|
|
345
|
+
export function noFormsFoundError() {
|
|
346
|
+
return {
|
|
347
|
+
message: 'No forms discovered on the page',
|
|
348
|
+
suggestion: 'Check if forms exist with: bdg dom query "form, input, [role=textbox]" or inspect the page manually',
|
|
349
|
+
};
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* Form selection out of range.
|
|
353
|
+
*/
|
|
354
|
+
export function formSelectionOutOfRangeError(index, count) {
|
|
355
|
+
return {
|
|
356
|
+
message: `Form index ${index} out of range (found ${count} form${count === 1 ? '' : 's'})`,
|
|
357
|
+
suggestion: count > 0 ? `Use an index between 0 and ${count - 1}` : 'No forms found on page',
|
|
358
|
+
};
|
|
359
|
+
}
|
|
360
|
+
/**
|
|
361
|
+
* Form selection by name not found.
|
|
362
|
+
*/
|
|
363
|
+
export function formSelectionByNameNotFoundError(name, availableNames) {
|
|
364
|
+
const nameList = availableNames.length > 0
|
|
365
|
+
? `Available forms: ${availableNames.join(', ')}`
|
|
366
|
+
: 'No named forms found';
|
|
367
|
+
return {
|
|
368
|
+
message: `No form found matching "${name}"`,
|
|
369
|
+
suggestion: `${nameList}. Use --all to see all forms.`,
|
|
370
|
+
};
|
|
371
|
+
}
|
|
372
|
+
/**
|
|
373
|
+
* Form in iframe (cross-origin or same-origin).
|
|
374
|
+
*/
|
|
375
|
+
export function formInIframeError(iframeUrl, crossOrigin) {
|
|
376
|
+
const originNote = crossOrigin
|
|
377
|
+
? 'Cross-origin iframe - cannot inspect directly'
|
|
378
|
+
: 'Same-origin iframe - use frame commands to access';
|
|
379
|
+
return {
|
|
380
|
+
message: `Form is inside an iframe: ${iframeUrl}`,
|
|
381
|
+
suggestion: crossOrigin
|
|
382
|
+
? `${originNote}. Manual interaction required for cross-origin frames.`
|
|
383
|
+
: `${originNote}. Try: bdg dom frame list, then bdg dom frame attach <id>`,
|
|
384
|
+
};
|
|
385
|
+
}
|
|
386
|
+
/**
|
|
387
|
+
* Custom component interaction warning.
|
|
388
|
+
*/
|
|
389
|
+
export function customComponentWarning(elementType, suggestedAction) {
|
|
390
|
+
return {
|
|
391
|
+
message: `Custom component detected: ${elementType}`,
|
|
392
|
+
suggestion: `Standard fill may not work. Try: ${suggestedAction}`,
|
|
393
|
+
};
|
|
125
394
|
}
|
|
126
395
|
//# sourceMappingURL=errors.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/ui/messages/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/ui/messages/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shell Detection Unit Tests
|
|
3
|
+
*
|
|
4
|
+
* Tests shell quote damage detection for selectors and scripts.
|
|
5
|
+
*
|
|
6
|
+
* Following testing philosophy:
|
|
7
|
+
* - Test the BEHAVIOR: "Detects damaged input, provides actionable suggestions"
|
|
8
|
+
* - Test the PROPERTY: "Never throws, always returns valid result"
|
|
9
|
+
* - No mocking needed - pure utility functions
|
|
10
|
+
*/
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=shellDetection.unit.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shellDetection.unit.test.d.ts","sourceRoot":"","sources":["../../../src/utils/__tests__/shellDetection.unit.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
|