const browser = require('../browser'); module.exports = async ({ data }) => { if (!data) throw new Error('Data é obrigatória'); await browser.start(); const formDataJson = JSON.stringify(data).replace(/'/g, "\\'"); const result = await browser.evaluateJS(` (function() { try { var formData = JSON.parse('${formDataJson}'); var inputs = Array.from(document.querySelectorAll('input, textarea, select')); var filled = []; inputs.forEach(function(input) { var keys = Object.keys(formData); for (var i = 0; i < keys.length; i++) { var k = keys[i]; var match = input.name && input.name.toLowerCase().indexOf(k.toLowerCase()) >= 0 || input.placeholder && input.placeholder.toLowerCase().indexOf(k.toLowerCase()) >= 0 || input.id && input.id.toLowerCase().indexOf(k.toLowerCase()) >= 0; if (match) { input.value = formData[k]; input.dispatchEvent(new Event('input', { bubbles: true })); input.dispatchEvent(new Event('change', { bubbles: true })); filled.push({ field: input.name || input.id || 'unknown', value: formData[k] }); break; } } }); return filled; } catch (e) { return { error: e.message }; } })() `); return { success: true, action: 'fill_form_auto', filled: result, count: Array.isArray(result) ? result.length : 0 }; };