browser-debugger-cli 0.6.11 → 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.
Files changed (76) hide show
  1. package/dist/commands/cdp.d.ts.map +1 -1
  2. package/dist/commands/cdp.js +71 -15
  3. package/dist/commands/cdp.js.map +1 -1
  4. package/dist/commands/dom/DomElementResolver.d.ts.map +1 -1
  5. package/dist/commands/dom/DomElementResolver.js +28 -7
  6. package/dist/commands/dom/DomElementResolver.js.map +1 -1
  7. package/dist/commands/dom/a11y.d.ts.map +1 -1
  8. package/dist/commands/dom/a11y.js +5 -1
  9. package/dist/commands/dom/a11y.js.map +1 -1
  10. package/dist/commands/dom/evalHelpers.js +1 -1
  11. package/dist/commands/dom/evalHelpers.js.map +1 -1
  12. package/dist/commands/dom/form.d.ts +14 -0
  13. package/dist/commands/dom/form.d.ts.map +1 -0
  14. package/dist/commands/dom/form.js +439 -0
  15. package/dist/commands/dom/form.js.map +1 -0
  16. package/dist/commands/dom/formDiscovery.d.ts +26 -0
  17. package/dist/commands/dom/formDiscovery.d.ts.map +1 -0
  18. package/dist/commands/dom/formDiscovery.js +476 -0
  19. package/dist/commands/dom/formDiscovery.js.map +1 -0
  20. package/dist/commands/dom/formFillHelpers.d.ts.map +1 -1
  21. package/dist/commands/dom/formFillHelpers.js +32 -4
  22. package/dist/commands/dom/formFillHelpers.js.map +1 -1
  23. package/dist/commands/dom/formInteraction.d.ts.map +1 -1
  24. package/dist/commands/dom/formInteraction.js.map +1 -1
  25. package/dist/commands/dom/formTypes.d.ts +75 -0
  26. package/dist/commands/dom/formTypes.d.ts.map +1 -0
  27. package/dist/commands/dom/formTypes.js +7 -0
  28. package/dist/commands/dom/formTypes.js.map +1 -0
  29. package/dist/commands/dom/helpers.d.ts +1 -1
  30. package/dist/commands/dom/helpers.js +1 -1
  31. package/dist/commands/dom/index.d.ts.map +1 -1
  32. package/dist/commands/dom/index.js +2 -0
  33. package/dist/commands/dom/index.js.map +1 -1
  34. package/dist/commands/dom/screenshotResize.d.ts +1 -1
  35. package/dist/commands/dom/screenshotResize.js +1 -1
  36. package/dist/commands/optionBehaviors.d.ts.map +1 -1
  37. package/dist/commands/optionBehaviors.js +11 -0
  38. package/dist/commands/optionBehaviors.js.map +1 -1
  39. package/dist/commands/shared/optionTypes.d.ts.map +1 -1
  40. package/dist/connection/cdp.js.map +1 -1
  41. package/dist/connection/launcher.d.ts.map +1 -1
  42. package/dist/connection/launcher.js.map +1 -1
  43. package/dist/ipc/protocol/messages.d.ts +2 -2
  44. package/dist/ipc/protocol/messages.d.ts.map +1 -1
  45. package/dist/types.d.ts +120 -1
  46. package/dist/types.d.ts.map +1 -1
  47. package/dist/ui/formatters/form.d.ts +15 -0
  48. package/dist/ui/formatters/form.d.ts.map +1 -0
  49. package/dist/ui/formatters/form.js +314 -0
  50. package/dist/ui/formatters/form.js.map +1 -0
  51. package/dist/ui/messages/errors.d.ts +41 -12
  52. package/dist/ui/messages/errors.d.ts.map +1 -1
  53. package/dist/ui/messages/errors.js +113 -15
  54. package/dist/ui/messages/errors.js.map +1 -1
  55. package/dist/utils/__tests__/shellDetection.unit.test.d.ts +12 -0
  56. package/dist/utils/__tests__/shellDetection.unit.test.d.ts.map +1 -0
  57. package/dist/utils/__tests__/shellDetection.unit.test.js +220 -0
  58. package/dist/utils/__tests__/shellDetection.unit.test.js.map +1 -0
  59. package/dist/utils/decisionTrees.d.ts.map +1 -1
  60. package/dist/utils/decisionTrees.js +5 -0
  61. package/dist/utils/decisionTrees.js.map +1 -1
  62. package/dist/utils/exitCodes.d.ts +2 -0
  63. package/dist/utils/exitCodes.d.ts.map +1 -1
  64. package/dist/utils/exitCodes.js +12 -0
  65. package/dist/utils/exitCodes.js.map +1 -1
  66. package/dist/utils/shellDetection.d.ts +34 -0
  67. package/dist/utils/shellDetection.d.ts.map +1 -0
  68. package/dist/utils/shellDetection.js +94 -0
  69. package/dist/utils/shellDetection.js.map +1 -0
  70. package/dist/utils/taskMappings.d.ts.map +1 -1
  71. package/dist/utils/taskMappings.js +5 -0
  72. package/dist/utils/taskMappings.js.map +1 -1
  73. package/dist/utils/url.d.ts.map +1 -1
  74. package/dist/utils/url.js +14 -0
  75. package/dist/utils/url.js.map +1 -1
  76. package/package.json +5 -5
@@ -0,0 +1,476 @@
1
+ /**
2
+ * Form discovery script executed in page context.
3
+ *
4
+ * Discovers forms, extracts semantic labels, detects state and validation,
5
+ * and returns structured data for agent consumption.
6
+ */
7
+ /**
8
+ * Page-context script for form discovery.
9
+ *
10
+ * This script runs in the browser via Runtime.evaluate and discovers:
11
+ * - Native form elements and inputs
12
+ * - Custom components with ARIA roles
13
+ * - Labels via priority chain (label[for], aria-label, placeholder, etc.)
14
+ * - Current values and validation state
15
+ * - Form relevance scoring for multi-form pages
16
+ */
17
+ export const FORM_DISCOVERY_SCRIPT = `
18
+ (function() {
19
+ const result = { forms: [] };
20
+
21
+ function generateSelector(element) {
22
+ if (element.id) {
23
+ return '#' + CSS.escape(element.id);
24
+ }
25
+ if (element.name) {
26
+ const tag = element.tagName.toLowerCase();
27
+ return tag + '[name="' + CSS.escape(element.name) + '"]';
28
+ }
29
+ const tag = element.tagName.toLowerCase();
30
+ const parent = element.parentElement;
31
+ if (!parent) return tag;
32
+ const siblings = Array.from(parent.children).filter(c => c.tagName === element.tagName);
33
+ if (siblings.length === 1) {
34
+ const parentSelector = generateSelector(parent);
35
+ return parentSelector + ' > ' + tag;
36
+ }
37
+ const index = siblings.indexOf(element);
38
+ const parentSelector = generateSelector(parent);
39
+ return parentSelector + ' > ' + tag + ':nth-of-type(' + (index + 1) + ')';
40
+ }
41
+
42
+ function cleanLabelText(text) {
43
+ if (!text) return text;
44
+ const patterns = [
45
+ /Previous\\s*arrow/gi,
46
+ /Next\\s*arrow/gi,
47
+ /\\barrow\\b/gi,
48
+ /\\bchevron\\b/gi,
49
+ /←|→|↑|↓|▲|▼|◀|▶/g,
50
+ /\\u25C0|\\u25B6|\\u25B2|\\u25BC/g,
51
+ /Previous|Next|Back|Forward/gi,
52
+ /^\\s*[<>]\\s*/,
53
+ /\\s*[<>]\\s*$/,
54
+ ];
55
+ let cleaned = text;
56
+ for (const pattern of patterns) {
57
+ cleaned = cleaned.replace(pattern, '');
58
+ }
59
+ cleaned = cleaned.replace(/\\s{2,}/g, ' ').trim();
60
+ return cleaned || text.trim();
61
+ }
62
+
63
+ function extractLabel(element) {
64
+ if (element.id) {
65
+ const labelFor = document.querySelector('label[for="' + CSS.escape(element.id) + '"]');
66
+ if (labelFor) return cleanLabelText(labelFor.textContent);
67
+ }
68
+ const ariaLabel = element.getAttribute('aria-label');
69
+ if (ariaLabel) return cleanLabelText(ariaLabel);
70
+ const ariaLabelledBy = element.getAttribute('aria-labelledby');
71
+ if (ariaLabelledBy) {
72
+ const labelEl = document.getElementById(ariaLabelledBy);
73
+ if (labelEl) return cleanLabelText(labelEl.textContent);
74
+ }
75
+ const wrappingLabel = element.closest('label');
76
+ if (wrappingLabel) {
77
+ const clone = wrappingLabel.cloneNode(true);
78
+ const inputs = clone.querySelectorAll('input, select, textarea, button');
79
+ inputs.forEach(i => i.remove());
80
+ const text = clone.textContent.trim();
81
+ if (text) return cleanLabelText(text);
82
+ }
83
+ if (element.placeholder) return cleanLabelText(element.placeholder);
84
+ const title = element.getAttribute('title');
85
+ if (title) return cleanLabelText(title);
86
+ if (element.name) {
87
+ return element.name
88
+ .replace(/[_-]/g, ' ')
89
+ .replace(/([a-z])([A-Z])/g, '$1 $2')
90
+ .replace(/^./, s => s.toUpperCase());
91
+ }
92
+ return 'Unlabeled field';
93
+ }
94
+
95
+ function extractButtonLabel(element) {
96
+ const ariaLabel = element.getAttribute('aria-label');
97
+ if (ariaLabel) return ariaLabel.trim();
98
+ if (element.value && element.type !== 'submit') return element.value;
99
+ const text = element.textContent.trim();
100
+ if (text) return text;
101
+ if (element.value) return element.value;
102
+ const title = element.getAttribute('title');
103
+ if (title) return title;
104
+ return 'Button';
105
+ }
106
+
107
+ function getFieldValue(element) {
108
+ const tag = element.tagName.toLowerCase();
109
+ const type = element.type?.toLowerCase() || 'text';
110
+ if (tag === 'select') {
111
+ if (element.multiple) {
112
+ return Array.from(element.selectedOptions).map(o => o.value);
113
+ }
114
+ return element.value;
115
+ }
116
+ if (type === 'checkbox' || type === 'radio') {
117
+ return element.checked;
118
+ }
119
+ if (element.getAttribute('role') === 'checkbox' || element.getAttribute('role') === 'switch') {
120
+ return element.getAttribute('aria-checked') === 'true';
121
+ }
122
+ if (element.isContentEditable) {
123
+ return element.textContent || '';
124
+ }
125
+ return element.value || '';
126
+ }
127
+
128
+ function getFieldState(element, value) {
129
+ const type = element.type?.toLowerCase() || 'text';
130
+ if (type === 'checkbox' || element.getAttribute('role') === 'checkbox' || element.getAttribute('role') === 'switch') {
131
+ return value ? 'checked' : 'unchecked';
132
+ }
133
+ if (type === 'radio') {
134
+ return value ? 'checked' : 'unchecked';
135
+ }
136
+ if (Array.isArray(value)) {
137
+ return value.length > 0 ? 'filled' : 'empty';
138
+ }
139
+ if (typeof value === 'string') {
140
+ return value.length > 0 ? 'filled' : 'empty';
141
+ }
142
+ return 'empty';
143
+ }
144
+
145
+ function getFieldType(element) {
146
+ const tag = element.tagName.toLowerCase();
147
+ const role = element.getAttribute('role');
148
+ if (role === 'textbox') return 'textbox';
149
+ if (role === 'checkbox') return 'checkbox';
150
+ if (role === 'radio') return 'radio';
151
+ if (role === 'combobox') return 'combobox';
152
+ if (role === 'listbox') return 'listbox';
153
+ if (role === 'switch') return 'switch';
154
+ if (element.isContentEditable) return 'contenteditable';
155
+ if (tag === 'textarea') return 'textarea';
156
+ if (tag === 'select') return 'select';
157
+ if (tag === 'input') {
158
+ const type = element.type?.toLowerCase() || 'text';
159
+ return type;
160
+ }
161
+ return 'unknown';
162
+ }
163
+
164
+ function isNativeInput(element) {
165
+ const tag = element.tagName.toLowerCase();
166
+ return tag === 'input' || tag === 'textarea' || tag === 'select';
167
+ }
168
+
169
+ function getSelectOptions(element) {
170
+ if (element.tagName.toLowerCase() !== 'select') return undefined;
171
+ return Array.from(element.options).map(opt => ({
172
+ value: opt.value,
173
+ label: opt.textContent.trim(),
174
+ selected: opt.selected
175
+ }));
176
+ }
177
+
178
+ function findSiblingError(element) {
179
+ const next = element.nextElementSibling;
180
+ if (next) {
181
+ const isError = next.classList.contains('error') ||
182
+ next.classList.contains('invalid') ||
183
+ next.classList.contains('field-error') ||
184
+ next.classList.contains('error-message') ||
185
+ next.getAttribute('role') === 'alert';
186
+ if (isError) return next.textContent.trim();
187
+ }
188
+ const parent = element.parentElement;
189
+ if (parent) {
190
+ const errorEl = parent.querySelector('.error-message, .field-error, [role="alert"]');
191
+ if (errorEl && errorEl !== element) return errorEl.textContent.trim();
192
+ }
193
+ return undefined;
194
+ }
195
+
196
+ function calculateRelevance(formEl, fields, buttons) {
197
+ let score = 0;
198
+ const rect = formEl.getBoundingClientRect();
199
+ const viewportHeight = window.innerHeight;
200
+ const viewportWidth = window.innerWidth;
201
+ const centerX = rect.left + rect.width / 2;
202
+ const centerY = rect.top + rect.height / 2;
203
+ if (centerX > viewportWidth * 0.2 && centerX < viewportWidth * 0.8) score += 10;
204
+ if (centerY > 0 && centerY < viewportHeight) score += 5;
205
+ const isInMain = formEl.closest('main, [role="main"], article, .main-content, #main');
206
+ if (isInMain) score += 15;
207
+ const isInHeader = formEl.closest('header, [role="banner"], nav, [role="navigation"]');
208
+ if (isInHeader) score -= 10;
209
+ const isInAside = formEl.closest('aside, [role="complementary"], footer, [role="contentinfo"]');
210
+ if (isInAside) score -= 5;
211
+ score += Math.min(fields.length * 3, 30);
212
+ const hasSubmit = buttons.some(b => b.type === 'submit' || b.isPrimary);
213
+ if (hasSubmit) score += 10;
214
+ const style = window.getComputedStyle(formEl);
215
+ if (style.display === 'none' || style.visibility === 'hidden') score -= 100;
216
+ return score;
217
+ }
218
+
219
+ function detectFormStep(formEl) {
220
+ const stepIndicators = formEl.querySelectorAll('[aria-current="step"], .step.active, .wizard-step.current');
221
+ if (stepIndicators.length === 0) {
222
+ const pageSteps = document.querySelectorAll('.step, .wizard-step, [role="tablist"] [role="tab"]');
223
+ if (pageSteps.length > 1) {
224
+ const activeIndex = Array.from(pageSteps).findIndex(s =>
225
+ s.classList.contains('active') ||
226
+ s.classList.contains('current') ||
227
+ s.getAttribute('aria-selected') === 'true'
228
+ );
229
+ if (activeIndex >= 0) {
230
+ return { current: activeIndex + 1, total: pageSteps.length };
231
+ }
232
+ }
233
+ }
234
+ const ariaStep = formEl.querySelector('[aria-current="step"]');
235
+ if (ariaStep) {
236
+ const allSteps = formEl.querySelectorAll('[role="listitem"], .step');
237
+ const currentIdx = Array.from(allSteps).indexOf(ariaStep);
238
+ if (currentIdx >= 0) {
239
+ return { current: currentIdx + 1, total: allSteps.length };
240
+ }
241
+ }
242
+ return null;
243
+ }
244
+
245
+ function findNearbyHeading(formEl) {
246
+ let sibling = formEl.previousElementSibling;
247
+ let distance = 0;
248
+ while (sibling && distance < 3) {
249
+ if (sibling.matches('h1, h2, h3, h4, h5, h6, [role="heading"]')) {
250
+ return sibling.textContent.trim();
251
+ }
252
+ const heading = sibling.querySelector('h1, h2, h3, h4, h5, h6, [role="heading"]');
253
+ if (heading) return heading.textContent.trim();
254
+ sibling = sibling.previousElementSibling;
255
+ distance++;
256
+ }
257
+ const parent = formEl.parentElement;
258
+ if (parent) {
259
+ const heading = parent.querySelector(':scope > h1, :scope > h2, :scope > h3');
260
+ if (heading && heading.compareDocumentPosition(formEl) & Node.DOCUMENT_POSITION_FOLLOWING) {
261
+ return heading.textContent.trim();
262
+ }
263
+ }
264
+ return null;
265
+ }
266
+
267
+ function matchesWord(text, word) {
268
+ const pattern = new RegExp('\\\\b' + word + '\\\\b', 'i');
269
+ return pattern.test(text);
270
+ }
271
+
272
+ function inferFormType(formEl) {
273
+ const inputs = formEl.querySelectorAll('input, textarea, select');
274
+ const types = Array.from(inputs).map(i => i.type?.toLowerCase() || i.tagName.toLowerCase());
275
+ const names = Array.from(inputs).map(i => (i.name || '').toLowerCase());
276
+ const allText = (Array.from(inputs).map(i => i.name + ' ' + i.placeholder + ' ' + i.id).join(' ')).toLowerCase();
277
+ if (types.includes('password')) {
278
+ if (types.filter(t => t === 'password').length >= 2) return 'Change Password';
279
+ if (matchesWord(allText, 'register') || matchesWord(allText, 'signup') || matchesWord(allText, 'create')) return 'Registration';
280
+ return 'Login';
281
+ }
282
+ const hasSearchRole = formEl.closest('[role="search"]') || formEl.getAttribute('role') === 'search';
283
+ const hasSearchInput = formEl.querySelector('[type="search"], [aria-label*="search" i]');
284
+ if (hasSearchRole || hasSearchInput) return 'Search';
285
+ const interactiveTypes = types.filter(t => !['hidden', 'submit', 'button', 'reset', 'image'].includes(t));
286
+ if (interactiveTypes.length <= 2 && matchesWord(allText, 'search')) return 'Search';
287
+ if (matchesWord(allText, 'address') || matchesWord(allText, 'street') || matchesWord(allText, 'postcode') ||
288
+ matchesWord(allText, 'zipcode') || matchesWord(allText, 'city') || matchesWord(allText, 'county')) {
289
+ return 'Address';
290
+ }
291
+ if (matchesWord(allText, 'email') && (matchesWord(allText, 'message') || matchesWord(allText, 'subject'))) {
292
+ return 'Contact';
293
+ }
294
+ if (matchesWord(allText, 'card') || matchesWord(allText, 'cvv') || matchesWord(allText, 'expiry')) {
295
+ return 'Payment';
296
+ }
297
+ if (names.some(n => matchesWord(n, 'subscribe') || matchesWord(n, 'newsletter'))) {
298
+ return 'Newsletter';
299
+ }
300
+ return null;
301
+ }
302
+
303
+ function extractFormName(formEl) {
304
+ const ariaLabel = formEl.getAttribute('aria-label');
305
+ if (ariaLabel) return ariaLabel;
306
+ const ariaLabelledBy = formEl.getAttribute('aria-labelledby');
307
+ if (ariaLabelledBy) {
308
+ const labelEl = document.getElementById(ariaLabelledBy);
309
+ if (labelEl) return labelEl.textContent.trim();
310
+ }
311
+ const headings = formEl.querySelectorAll('h1, h2, h3, h4, h5, h6, [role="heading"]');
312
+ for (const h of headings) {
313
+ if (!h.closest('[role="dialog"], [role="alertdialog"], [aria-modal="true"]')) {
314
+ return h.textContent.trim();
315
+ }
316
+ }
317
+ const legend = formEl.querySelector('legend');
318
+ if (legend) return legend.textContent.trim();
319
+ const title = formEl.getAttribute('title');
320
+ if (title) return title;
321
+ const name = formEl.getAttribute('name');
322
+ if (name) {
323
+ return name
324
+ .replace(/[_-]/g, ' ')
325
+ .replace(/([a-z])([A-Z])/g, '$1 $2')
326
+ .replace(/^./, s => s.toUpperCase());
327
+ }
328
+ const nearbyHeading = findNearbyHeading(formEl);
329
+ if (nearbyHeading) return nearbyHeading;
330
+ const inferredType = inferFormType(formEl);
331
+ if (inferredType) return inferredType;
332
+ return null;
333
+ }
334
+
335
+ function discoverFields(container, formIndex, startIndex) {
336
+ const fields = [];
337
+ const nativeInputs = container.querySelectorAll(
338
+ 'input:not([type="hidden"]):not([type="submit"]):not([type="button"]):not([type="reset"]):not([type="image"]), ' +
339
+ 'textarea, ' +
340
+ 'select'
341
+ );
342
+ const customInputs = container.querySelectorAll(
343
+ '[role="textbox"], ' +
344
+ '[role="checkbox"]:not(input), ' +
345
+ '[role="radio"]:not(input), ' +
346
+ '[role="combobox"], ' +
347
+ '[role="listbox"], ' +
348
+ '[role="switch"], ' +
349
+ '[contenteditable="true"]'
350
+ );
351
+ const allInputs = new Set([...nativeInputs, ...customInputs]);
352
+ let idx = startIndex;
353
+ for (const el of allInputs) {
354
+ const style = window.getComputedStyle(el);
355
+ const isHidden = style.display === 'none' || style.visibility === 'hidden' || el.type === 'hidden';
356
+ const value = getFieldValue(el);
357
+ fields.push({
358
+ index: idx,
359
+ formIndex: formIndex,
360
+ selector: generateSelector(el),
361
+ type: getFieldType(el),
362
+ inputType: el.type?.toLowerCase(),
363
+ label: extractLabel(el),
364
+ name: el.name || null,
365
+ placeholder: el.placeholder || undefined,
366
+ required: el.required || el.getAttribute('aria-required') === 'true',
367
+ disabled: el.disabled || el.getAttribute('aria-disabled') === 'true',
368
+ readOnly: el.readOnly || false,
369
+ hidden: isHidden,
370
+ native: isNativeInput(el),
371
+ value: value,
372
+ checked: el.checked,
373
+ validationMessage: el.validationMessage || undefined,
374
+ isValid: el.checkValidity ? el.checkValidity() : true,
375
+ ariaInvalid: el.getAttribute('aria-invalid') === 'true',
376
+ hasErrorClass: el.classList.contains('error') || el.classList.contains('invalid'),
377
+ siblingErrorText: findSiblingError(el),
378
+ options: getSelectOptions(el)
379
+ });
380
+ idx++;
381
+ }
382
+ return fields;
383
+ }
384
+
385
+ function discoverButtons(container, startIndex) {
386
+ const buttons = [];
387
+ const buttonEls = container.querySelectorAll(
388
+ 'button, ' +
389
+ 'input[type="submit"], ' +
390
+ 'input[type="button"], ' +
391
+ 'input[type="reset"], ' +
392
+ '[role="button"]'
393
+ );
394
+ let idx = startIndex;
395
+ for (const el of buttonEls) {
396
+ const style = window.getComputedStyle(el);
397
+ if (style.display === 'none' || style.visibility === 'hidden') continue;
398
+ const type = el.type?.toLowerCase() || 'button';
399
+ const btnType = type === 'submit' ? 'submit' : type === 'reset' ? 'reset' : 'button';
400
+ const isPrimary = btnType === 'submit' ||
401
+ el.classList.contains('primary') ||
402
+ el.classList.contains('btn-primary') ||
403
+ el.classList.contains('submit');
404
+ buttons.push({
405
+ index: idx,
406
+ selector: generateSelector(el),
407
+ label: extractButtonLabel(el),
408
+ type: btnType,
409
+ disabled: el.disabled || el.getAttribute('aria-disabled') === 'true',
410
+ isPrimary: isPrimary
411
+ });
412
+ idx++;
413
+ }
414
+ return buttons;
415
+ }
416
+
417
+ const forms = document.querySelectorAll('form');
418
+ let globalIndex = 0;
419
+
420
+ if (forms.length === 0) {
421
+ const bodyFields = discoverFields(document.body, 0, 0);
422
+ const bodyButtons = discoverButtons(document.body, bodyFields.length);
423
+ if (bodyFields.length > 0) {
424
+ result.forms.push({
425
+ index: 0,
426
+ name: document.title || 'Page',
427
+ action: null,
428
+ method: 'GET',
429
+ step: null,
430
+ relevanceScore: bodyFields.length * 3,
431
+ inIframe: false,
432
+ fields: bodyFields,
433
+ buttons: bodyButtons
434
+ });
435
+ }
436
+ } else {
437
+ for (let i = 0; i < forms.length; i++) {
438
+ const formEl = forms[i];
439
+ const fields = discoverFields(formEl, i, globalIndex);
440
+ globalIndex += fields.length;
441
+ const buttons = discoverButtons(formEl, globalIndex);
442
+ globalIndex += buttons.length;
443
+ const inIframe = formEl.ownerDocument !== document;
444
+ result.forms.push({
445
+ index: i,
446
+ name: extractFormName(formEl),
447
+ action: formEl.action || null,
448
+ method: (formEl.method || 'GET').toUpperCase(),
449
+ step: detectFormStep(formEl),
450
+ relevanceScore: calculateRelevance(formEl, fields, buttons),
451
+ inIframe: inIframe,
452
+ fields: fields,
453
+ buttons: buttons
454
+ });
455
+ }
456
+ }
457
+
458
+ result.forms.sort((a, b) => b.relevanceScore - a.relevanceScore);
459
+
460
+ return result;
461
+ })()
462
+ `;
463
+ /**
464
+ * Type guard for raw form data.
465
+ *
466
+ * @param value - Unknown value to check
467
+ * @returns True if value matches RawFormData structure
468
+ */
469
+ export function isRawFormData(value) {
470
+ if (typeof value !== 'object' || value === null) {
471
+ return false;
472
+ }
473
+ const obj = value;
474
+ return Array.isArray(obj['forms']);
475
+ }
476
+ //# sourceMappingURL=formDiscovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formDiscovery.js","sourceRoot":"","sources":["../../../src/commands/dom/formDiscovery.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6bpC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,GAAG,GAAG,KAAgC,CAAC;IAC7C,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AACrC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"formFillHelpers.d.ts","sourceRoot":"","sources":["../../../src/commands/dom/formFillHelpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAezD,OAAO,EAKL,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,WAAW,EACjB,MAAM,wBAAwB,CAAC;AA8ChC;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,WAAW,CAC/B,GAAG,EAAE,aAAa,EAClB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,UAAU,CAAC,CAgDrB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,YAAY,CAChC,GAAG,EAAE,aAAa,EAClB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/B,OAAO,CAAC,WAAW,CAAC,CA4CtB;AA8BD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA2C9E;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAqCD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,aAAa,EAClB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,cAAc,CAAC,CAsEzB"}
1
+ {"version":3,"file":"formFillHelpers.d.ts","sourceRoot":"","sources":["../../../src/commands/dom/formFillHelpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAgBzD,OAAO,EAKL,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,WAAW,EACjB,MAAM,wBAAwB,CAAC;AA8EhC;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,WAAW,CAC/B,GAAG,EAAE,aAAa,EAClB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,UAAU,CAAC,CAiDrB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,YAAY,CAChC,GAAG,EAAE,aAAa,EAClB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/B,OAAO,CAAC,WAAW,CAAC,CA6CtB;AA8BD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA2C9E;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAqCD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,aAAa,EAClB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,cAAc,CAAC,CAsEzB"}
@@ -6,6 +6,7 @@ import { createLogger } from '../../ui/logging/index.js';
6
6
  import { fillableElementNotFoundError, clickableElementNotFoundError, keyPressFailedError, unexpectedResponseFormatError, operationFailedError, } from '../../ui/messages/errors.js';
7
7
  import { delay } from '../../utils/async.js';
8
8
  import { EXIT_CODES } from '../../utils/exitCodes.js';
9
+ import { detectSelectorQuoteDamage } from '../../utils/shellDetection.js';
9
10
  import { getKeyDefinition, parseModifiers } from './keyMapping.js';
10
11
  import { REACT_FILL_SCRIPT, CLICK_ELEMENT_SCRIPT, isFillResult, isClickResult, } from './reactEventHelpers.js';
11
12
  const log = createLogger('dom');
@@ -18,16 +19,40 @@ const STABILITY_CHECK_INTERVAL_MS = 50;
18
19
  /**
19
20
  * Format exception details into a user-friendly error message with troubleshooting hints.
20
21
  *
22
+ * Shows the actual expression sent to CDP to help diagnose escaping issues.
23
+ * Detects shell quote damage patterns and provides specific recovery suggestions.
24
+ *
21
25
  * @param exceptionDetails - CDP exception details
22
26
  * @param selector - CSS selector that was used
23
27
  * @param operationType - Type of operation (fill or click) for tailored hints
28
+ * @param expression - The actual JavaScript expression sent to CDP
24
29
  * @returns Formatted error message with context
25
30
  */
26
- function formatScriptExecutionError(exceptionDetails, selector, operationType = 'fill') {
31
+ function formatScriptExecutionError(exceptionDetails, selector, operationType = 'fill', expression) {
27
32
  const errorText = exceptionDetails.text || 'Unknown error';
28
33
  const location = exceptionDetails.lineNumber !== undefined && exceptionDetails.columnNumber !== undefined
29
34
  ? ` at line ${exceptionDetails.lineNumber + 1}, column ${exceptionDetails.columnNumber + 1}`
30
35
  : '';
36
+ const lines = [];
37
+ lines.push(`Script execution failed: ${errorText}${location}`);
38
+ if (expression) {
39
+ const truncated = expression.length > 150 ? expression.slice(0, 150) + '...' : expression;
40
+ lines.push('');
41
+ lines.push(`Expression received: ${truncated}`);
42
+ const selectorCheck = detectSelectorQuoteDamage(selector);
43
+ if (selectorCheck.damaged) {
44
+ lines.push('');
45
+ lines.push('Shell quote damage detected in selector:');
46
+ if (selectorCheck.details) {
47
+ lines.push(` ${selectorCheck.details}`);
48
+ }
49
+ lines.push('');
50
+ lines.push('Try using the two-step pattern:');
51
+ lines.push(` 1. bdg dom query '${selector}'`);
52
+ lines.push(` 2. bdg dom ${operationType} 0${operationType === 'fill' ? ' "value"' : ''}`);
53
+ return lines.join('\n');
54
+ }
55
+ }
31
56
  const troubleshootingSteps = operationType === 'fill'
32
57
  ? [
33
58
  `1. Verify element exists: bdg dom query "${selector}"`,
@@ -39,7 +64,10 @@ function formatScriptExecutionError(exceptionDetails, selector, operationType =
39
64
  '2. Check element is visible and clickable',
40
65
  `3. Try direct eval: bdg dom eval "document.querySelector('${escapeSelectorForJS(selector)}').click()"`,
41
66
  ];
42
- return `Script execution failed: ${errorText}${location}\n\nTroubleshooting:\n ${troubleshootingSteps.join('\n ')}`;
67
+ lines.push('');
68
+ lines.push('Troubleshooting:');
69
+ lines.push(` ${troubleshootingSteps.join('\n ')}`);
70
+ return lines.join('\n');
43
71
  }
44
72
  /**
45
73
  * Fill a form element with a value in a React-compatible way.
@@ -74,7 +102,7 @@ export async function fillElement(cdp, selector, value, options = {}) {
74
102
  });
75
103
  const cdpResponse = response;
76
104
  if (cdpResponse.exceptionDetails) {
77
- const errorMessage = formatScriptExecutionError(cdpResponse.exceptionDetails, selector, 'fill');
105
+ const errorMessage = formatScriptExecutionError(cdpResponse.exceptionDetails, selector, 'fill', expression);
78
106
  const err = fillableElementNotFoundError(selector);
79
107
  throw new CommandError(errorMessage, { suggestion: err.suggestion }, EXIT_CODES.SOFTWARE_ERROR);
80
108
  }
@@ -122,7 +150,7 @@ export async function clickElement(cdp, selector, options = {}) {
122
150
  });
123
151
  const cdpResponse = response;
124
152
  if (cdpResponse.exceptionDetails) {
125
- const errorMessage = formatScriptExecutionError(cdpResponse.exceptionDetails, selector, 'click');
153
+ const errorMessage = formatScriptExecutionError(cdpResponse.exceptionDetails, selector, 'click', expression);
126
154
  const err = clickableElementNotFoundError(selector);
127
155
  throw new CommandError(errorMessage, { suggestion: err.suggestion }, EXIT_CODES.SOFTWARE_ERROR);
128
156
  }
@@ -1 +1 @@
1
- {"version":3,"file":"formFillHelpers.js","sourceRoot":"","sources":["../../../src/commands/dom/formFillHelpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EACL,4BAA4B,EAC5B,6BAA6B,EAC7B,mBAAmB,EACnB,6BAA6B,EAC7B,oBAAoB,GACrB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAsB,MAAM,iBAAiB,CAAC;AACvF,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,YAAY,EACZ,aAAa,GAId,MAAM,wBAAwB,CAAC;AAEhC,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;AAEhC,4DAA4D;AAC5D,MAAM,sBAAsB,GAAG,GAAG,CAAC;AACnC,0DAA0D;AAC1D,MAAM,2BAA2B,GAAG,IAAI,CAAC;AACzC,gDAAgD;AAChD,MAAM,2BAA2B,GAAG,EAAE,CAAC;AAEvC;;;;;;;GAOG;AACH,SAAS,0BAA0B,CACjC,gBAAmD,EACnD,QAAgB,EAChB,gBAAkC,MAAM;IAExC,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,IAAI,eAAe,CAAC;IAC3D,MAAM,QAAQ,GACZ,gBAAgB,CAAC,UAAU,KAAK,SAAS,IAAI,gBAAgB,CAAC,YAAY,KAAK,SAAS;QACtF,CAAC,CAAC,YAAY,gBAAgB,CAAC,UAAU,GAAG,CAAC,YAAY,gBAAgB,CAAC,YAAY,GAAG,CAAC,EAAE;QAC5F,CAAC,CAAC,EAAE,CAAC;IAET,MAAM,oBAAoB,GACxB,aAAa,KAAK,MAAM;QACtB,CAAC,CAAC;YACE,4CAA4C,QAAQ,GAAG;YACvD,8CAA8C;YAC9C,6DAA6D,mBAAmB,CAAC,QAAQ,CAAC,0BAA0B;SACrH;QACH,CAAC,CAAC;YACE,4CAA4C,QAAQ,GAAG;YACvD,2CAA2C;YAC3C,6DAA6D,mBAAmB,CAAC,QAAQ,CAAC,aAAa;SACxG,CAAC;IAER,OAAO,4BAA4B,SAAS,GAAG,QAAQ,2BAA2B,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;AACxH,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,GAAkB,EAClB,QAAgB,EAChB,KAAa,EACb,UAAuB,EAAE;IAEzB,MAAM,aAAa,GAAG;QACpB,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,IAAI;QAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC;IAEF,MAAM,UAAU,GAAG,IAAI,iBAAiB,MAAM,mBAAmB,CAAC,QAAQ,CAAC,OAAO,gBAAgB,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC;IAEhJ,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAClD,UAAU;YACV,aAAa,EAAE,IAAI;YACnB,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,QAGnB,CAAC;QAEF,IAAI,WAAW,CAAC,gBAAgB,EAAE,CAAC;YACjC,MAAM,YAAY,GAAG,0BAA0B,CAC7C,WAAW,CAAC,gBAAgB,EAC5B,QAAQ,EACR,MAAM,CACP,CAAC;YACF,MAAM,GAAG,GAAG,4BAA4B,CAAC,QAAQ,CAAC,CAAC;YACnD,MAAM,IAAI,YAAY,CACpB,YAAY,EACZ,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,EAC9B,UAAU,CAAC,cAAc,CAC1B,CAAC;QACJ,CAAC;QAED,IAAI,WAAW,CAAC,MAAM,EAAE,KAAK,IAAI,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACxE,OAAO,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC;QAClC,CAAC;QAED,MAAM,GAAG,GAAG,6BAA6B,CAAC,YAAY,CAAC,CAAC;QACxD,MAAM,IAAI,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC;IACjG,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;YAClC,MAAM,KAAK,CAAC;QACd,CAAC;QACD,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,MAAM,GAAG,GAAG,oBAAoB,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;QAC/D,MAAM,IAAI,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC;IACjG,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,GAAkB,EAClB,QAAgB,EAChB,UAA8B,EAAE;IAEhC,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC;IACzC,MAAM,UAAU,GAAG,IAAI,oBAAoB,MAAM,mBAAmB,CAAC,QAAQ,CAAC,MAAM,QAAQ,GAAG,CAAC;IAEhG,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAClD,UAAU;YACV,aAAa,EAAE,IAAI;YACnB,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,QAGnB,CAAC;QAEF,IAAI,WAAW,CAAC,gBAAgB,EAAE,CAAC;YACjC,MAAM,YAAY,GAAG,0BAA0B,CAC7C,WAAW,CAAC,gBAAgB,EAC5B,QAAQ,EACR,OAAO,CACR,CAAC;YACF,MAAM,GAAG,GAAG,6BAA6B,CAAC,QAAQ,CAAC,CAAC;YACpD,MAAM,IAAI,YAAY,CACpB,YAAY,EACZ,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,EAC9B,UAAU,CAAC,cAAc,CAC1B,CAAC;QACJ,CAAC;QAED,IAAI,WAAW,CAAC,MAAM,EAAE,KAAK,IAAI,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACzE,OAAO,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC;QAClC,CAAC;QAED,MAAM,GAAG,GAAG,6BAA6B,CAAC,aAAa,CAAC,CAAC;QACzD,MAAM,IAAI,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC;IACjG,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;YAClC,MAAM,KAAK,CAAC;QACd,CAAC;QACD,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,MAAM,GAAG,GAAG,oBAAoB,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;QAChE,MAAM,IAAI,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC;IACjG,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,mBAAmB,CAAC,QAAgB;IAC3C,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACpE,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,gBAAgB,CAAC,KAAa;IACrC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACjE,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,GAAkB;IAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,2BAA2B,CAAC;IAE1D,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE9B,MAAM,gBAAgB,GAAG,GAAS,EAAE;QAClC,cAAc,EAAE,CAAC;QACjB,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC5B,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,GAAS,EAAE;QACnC,cAAc,EAAE,CAAC;QACjB,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;YACzB,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAEjC,MAAM,cAAc,GAAG,GAAG,CAAC,EAAE,CAAC,2BAA2B,EAAE,gBAAgB,CAAC,CAAC;IAC7E,MAAM,eAAe,GAAG,GAAG,CAAC,EAAE,CAAC,yBAAyB,EAAE,iBAAiB,CAAC,CAAC;IAC7E,MAAM,aAAa,GAAG,GAAG,CAAC,EAAE,CAAC,uBAAuB,EAAE,iBAAiB,CAAC,CAAC;IAEzE,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;YAC7B,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;gBACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC;gBAC3C,IAAI,QAAQ,IAAI,sBAAsB,EAAE,CAAC;oBACvC,GAAG,CAAC,KAAK,CAAC,wBAAwB,QAAQ,SAAS,CAAC,CAAC;oBACrD,OAAO;gBACT,CAAC;YACH,CAAC;YAED,MAAM,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC3C,CAAC;QAED,GAAG,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;IACrD,CAAC;YAAS,CAAC;QACT,cAAc,EAAE,CAAC;QACjB,eAAe,EAAE,CAAC;QAClB,aAAa,EAAE,CAAC;IAClB,CAAC;AACH,CAAC;AA4BD;;;;GAIG;AACH,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4B1B,CAAC;AAEJ;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,GAAkB,EAClB,QAAgB,EAChB,OAAe,EACf,UAA2B,EAAE;IAE7B,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,iBAAiB,OAAO,yIAAyI;SACzK,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC;IACjC,MAAM,aAAa,GAAG,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC;IACzC,MAAM,eAAe,GAAG,IAAI,oBAAoB,MAAM,mBAAmB,CAAC,QAAQ,CAAC,MAAM,QAAQ,GAAG,CAAC;IAErG,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE;YACvD,UAAU,EAAE,eAAe;YAC3B,aAAa,EAAE,IAAI;SACpB,CAAC,CAAC;QAEH,MAAM,gBAAgB,GAAG,aAGxB,CAAC;QAEF,IAAI,gBAAgB,CAAC,gBAAgB,EAAE,CAAC;YACtC,MAAM,GAAG,GAAG,mBAAmB,CAAC,UAAU,gBAAgB,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC;YACpF,MAAM,IAAI,YAAY,CACpB,GAAG,CAAC,OAAO,EACX,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,EAC9B,UAAU,CAAC,cAAc,CAC1B,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG,gBAAgB,CAAC,MAAM,EAAE,KAI5C,CAAC;QAEF,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC;YAC1B,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,WAAW,EAAE,KAAK,IAAI,yBAAyB;gBACtD,QAAQ;aACT,CAAC;QACJ,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/B,MAAM,gBAAgB,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;YAC9D,MAAM,0BAA0B,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;YAC7D,MAAM,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QAC9D,CAAC;QAED,OAAO;YACL,OAAO,EAAE,IAAI;YACb,QAAQ;YACR,GAAG,EAAE,OAAO;YACZ,KAAK;YACL,SAAS,EAAE,aAAa;YACxB,WAAW,EAAE,WAAW,CAAC,WAAW;SACrC,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;YAClC,MAAM,KAAK,CAAC;QACd,CAAC;QACD,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,MAAM,GAAG,GAAG,oBAAoB,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QAC5D,MAAM,IAAI,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC;IACjG,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,gBAAgB,CAC7B,GAAkB,EAClB,IAAyB,EACzB,MAAqB,EACrB,SAAiB;IAEjB,MAAM,GAAG,CAAC,IAAI,CAAC,wBAAwB,EAAE;QACvC,IAAI;QACJ,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,qBAAqB,EAAE,MAAM,CAAC,OAAO;QACrC,oBAAoB,EAAE,MAAM,CAAC,OAAO;QACpC,SAAS;KACV,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,KAAK,UAAU,0BAA0B,CACvC,GAAkB,EAClB,MAAqB,EACrB,SAAiB;IAEjB,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,KAAK,OAAO,CAAC;IAC1C,MAAM,MAAM,GAAG;;;;;;YAML,MAAM,CAAC,GAAG;aACT,MAAM,CAAC,IAAI;eACT,MAAM,CAAC,OAAO;gBACb,MAAM,CAAC,OAAO;aACjB,MAAM,CAAC,OAAO;gBACX,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;eACvB,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;cACvB,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;eACrB,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;;;;;;;;;;;QAW7B,UAAU;;;;;;;;;;;;;;;;CAgBjB,CAAC;IACA,MAAM,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AAC7D,CAAC"}
1
+ {"version":3,"file":"formFillHelpers.js","sourceRoot":"","sources":["../../../src/commands/dom/formFillHelpers.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"formInteraction.d.ts","sourceRoot":"","sources":["../../../src/commands/dom/formInteraction.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6EzC;;;;;;;;;;GAUG;AACH,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4PtE"}
1
+ {"version":3,"file":"formInteraction.d.ts","sourceRoot":"","sources":["../../../src/commands/dom/formInteraction.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4EzC;;;;;;;;;;GAUG;AACH,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4PtE"}