import fs from 'node:fs/promises'; import assert from 'node:assert/strict'; import {randomUUID,createHash} from 'node:crypto'; import vm from 'node:vm'; const hosts=[]; async function checkFormFeedback(html) { const form={dataset:{action:'payment-prepare'},querySelector:()=>null,querySelectorAll:()=>[]}; const error={textContent:'',focused:false,focus(){this.focused=true;}},status={textContent:''},reload={},location={hash:'',reloads:0,reload(){this.reloads++;}}; let fail=true;const keys=[]; const sandbox={document:{querySelector:s=>({'#error':error,'#status':status,'#reload':reload}[s]),querySelectorAll:s=>s==='[data-action]'?[form]:[]},FormData:class extends Map{constructor(){super([['obligation_id','1'],['amount','4000.00']]);}},crypto:{randomUUID},location,fetch:async(url,options)=>{keys.push(options.headers['Idempotency-Key']);return {ok:!fail,json:async()=>fail?{message:'Dados inválidos',errors:{amount:['Use um montante sustentado.']}}:{payment_id:1}};}}; vm.runInNewContext(html.match(/