Files
Investidor-V2/tools/portal-stability-browser-instrumentation.cjs
nala 287e991486
tests / ci (push) Waiting to run
oportunidades 7
2026-10-13 11:40:29 +02:00

25 lines
1.5 KiB
JavaScript

// Repair only our Node/Playwright verification helper while preserving the user's authenticated browser.
// No credentials, cookie values, request bodies or MFA values are read or exported.
const fs = require('node:fs');
const expressionFile = process.argv[2];
(async () => {
const endpoints = await (await fetch('http://127.0.0.1:9229/json/list')).json();
const endpoint = endpoints.find(e => e.title === 'tools/portal-stability-activation-browser.cjs');
if (!endpoint) throw new Error('Own verification helper not found');
const socket = new WebSocket(endpoint.webSocketDebuggerUrl);
await new Promise((resolve, reject) => { socket.onopen = resolve; socket.onerror = reject; });
let nextId = 0;
const waiting = new Map();
socket.onmessage = event => { const message = JSON.parse(event.data); if (message.id) { waiting.get(message.id)?.(message); waiting.delete(message.id); } };
const expression = fs.readFileSync(expressionFile, 'utf8');
const response = await new Promise(resolve => {
const id = ++nextId; waiting.set(id, resolve);
socket.send(JSON.stringify({id, method: 'Runtime.evaluate', params: {expression, returnByValue: true, awaitPromise: true}}));
});
if (response.result?.exceptionDetails || response.error) {
console.error('Own helper instrumentation failed; no application performed');
process.exitCode = 1;
} else console.log(JSON.stringify(response.result?.result?.value));
socket.close();
})().catch(() => { console.error('Own helper instrumentation unavailable'); process.exitCode = 1; });