diff --git a/entry.js b/entry.js index 1cf7298..2d08022 100644 --- a/entry.js +++ b/entry.js @@ -5,6 +5,7 @@ const pie = require("puppeteer-in-electron") const puppeteer = require("puppeteer-core"); const path = require('path'); const https = require('https'); +process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0'; const axios = require('axios'); const $ = require('jquery'); const fs = require('fs'); @@ -51,8 +52,6 @@ app.disableHardwareAcceleration(); pie.initialize(app); -const agent = new HttpsProxyAgent(CONFIG.PROXY); - const setupLogging = async () => { console.log(">> Iniciando configuracion de logs.."); if (!fs.existsSync(logsDir)) { @@ -91,6 +90,7 @@ const setupLogging = async () => { async function getOkanToken() { try { + const agent = new HttpsProxyAgent(CONFIG.PROXY); const responseOkan = await axios.post(CONFIG.ENDPOINT_OKAN_TOKEN, { user: process.env.USUARIO }, { headers: { 'Authorization': CONFIG.TOKEN_OKAN_USER }, httpsAgent: agent @@ -121,15 +121,28 @@ const processArguments = async () => { let url_okan = argv['_']; let code_okan_str = url_okan.toString(); - // Handle OKAN code from URL or direct argument - if (argv['_'] && !argv.dev) { + console.log(code_okan_str); + // Handle OKAN code from URL or direct argument + if (code_okan_str != '' && !argv.dev) { + console.log('sika desde okan'); let code_okan = code_okan_str.split('&')[0].replace('rpaclaro:///?code=', ''); let user_okan = code_okan_str.split('&')[1].replace('user=', ''); process.env.OKAN = code_okan; process.env.USUARIO = user_okan; from_okan = true; + } else if (code_okan_str == '' && argv['$0'] && argv['$0'].includes('RpaClaro.exe')) { + console.log('sika desde exe'); + await dialog.showMessageBox({ + type: 'error', + defaultId: 0, + title: 'Error de acceso', + message: 'Debes abrir RpaClaro desde Okan', + }); + app.quit(); + return null; } else { + console.log('sika desde cli'); process.env.OKAN = argv.code; process.env.USUARIO = argv.user; } @@ -151,14 +164,35 @@ const processArguments = async () => { }; const setupProtocolClient = async () => { - if (process.defaultApp) { - if (process.argv.length >= 2) { - app.setAsDefaultProtocolClient('RpaClaro', process.execPath, [path.resolve(process.argv[1])]) + // Get the path to the packaged executable + const exePath = process.env.PORTABLE_EXECUTABLE_FILE || app.getPath('exe'); + + try { + // For development environment + if (process.defaultApp) { + if (process.argv.length >= 2) { + app.setAsDefaultProtocolClient('RpaClaro', process.execPath, [path.resolve(process.argv[1])]); + } + } else { + // For packaged executable + // Remove any existing protocol registration first + app.removeAsDefaultProtocolClient('RpaClaro'); + + // Register the protocol with the packaged exe path + const success = app.setAsDefaultProtocolClient('RpaClaro', exePath); + + if (!success) { + throw new Error('Failed to register protocol handler'); + } } - } else { - app.setAsDefaultProtocolClient('RpaClaro') + + console.log('>> Protocol configuration established successfully'); + console.log('>> Executable path:', exePath); + } catch (error) { + console.error('>> Error setting up protocol client:', error); + // Attempt to register without arguments as fallback + app.setAsDefaultProtocolClient('RpaClaro'); } - console.log('>> Configuracion de protocolos establecida.'); } const copyFilesFromRR = () => { @@ -187,7 +221,12 @@ const copyFilesFromRR = () => { async function getOkanToken() { try { - const responseOkan = await axios.post(CONFIG.ENDPOINT_OKAN_TOKEN, { user: process.env.USUARIO }, { headers: { 'Authorization': CONFIG.TOKEN_OKAN_USER } }); + const agent = new HttpsProxyAgent(CONFIG.PROXY); + + const responseOkan = await axios.post(CONFIG.ENDPOINT_OKAN_TOKEN, { user: '45957768' }, { + headers: { 'Authorization': CONFIG.TOKEN_OKAN_USER }, + httpsAgent: agent + }); if (responseOkan.data.cod == '0') { console.log('>> Token de Okan obtenido.'); return responseOkan.data.data; @@ -212,7 +251,12 @@ async function getProfile(token) { const token_okan = 'Bearer ' + token; try { - const responseGetProfile = await axios.get(CONFIG.ENDPOINT_GET_PROFILE, { headers: { 'Authorization': token_okan } }); + const agent_two = new HttpsProxyAgent(CONFIG.PROXY); + + const responseGetProfile = await axios.get(CONFIG.ENDPOINT_GET_PROFILE, { + headers: { 'Authorization': token_okan }, + httpsAgent: agent_two + }); if (responseGetProfile.data.cod == '0') { documento = responseGetProfile.data.data.document_number; profile = responseGetProfile.data.data.profile.id; @@ -226,59 +270,87 @@ async function getProfile(token) { async function getApps(data_apps_user) { try { + const agent_three = new HttpsProxyAgent(CONFIG.PROXY); - const urlAplicativos = CONFIG.ENDPOINT_GET_APPS + `${documento}/${profile}`; - const responseAplicativos = await axios.get(urlAplicativos, { headers: { "Accept": "*/*", "Content-Type": "application/json" } }); + // First attempt with proxy + try { + const urlAplicativos = CONFIG.ENDPOINT_GET_APPS + `${documento}/${profile}`; + const responseAplicativos = await axios.get(urlAplicativos, { + headers: { + "Accept": "*/*", + "Content-Type": "application/json" + }, + httpsAgent: agent_three, + timeout: 30000 + }); - var apps_okan = []; - if (responseAplicativos.data['cod'] == '0') { - - const new_apps = responseAplicativos.data['data'] - .filter(element => element['nombre_app'].startsWith('RPA')) - .sort((a, b) => a.nombre_app.localeCompare(b.nombre_app)); - - console.log('>> Aplicativos Okan: ' + new_apps.length); - - // Process each app from new_apps - for (const app of new_apps) { - let code = app.url.replace('rpaclaro://?code=', ''); - code = code.replace('RpaClaro://?code=', ''); - code = code.replace('&user={user}', ''); - let appExists = data_apps_user.desk?.some(deskApp => deskApp.code === code) || data_apps_user.web?.some(webApp => webApp.code === code); - - const appInfo = { - nombre_app: app.nombre_app, - code_app: code, - logo: app.logo, - status: appExists, - status_integrado: appExists ? 'integrado' : 'no_integrado', - }; - - apps_okan.push(appInfo); - - // Generate HTML for all apps at once using map and join - appHtml = apps_okan.map(app => ` -
-
-
- -
${app.nombre_app}
-
-
-
- `).join(''); + if (responseAplicativos.data['cod'] == '0') { + return processAppsResponse(responseAplicativos.data, data_apps_user); } + } catch (proxyError) { + console.log('>> Attempting without proxy after proxy error:', proxyError.message); - return appHtml; + // Second attempt without proxy + const urlAplicativos = CONFIG.ENDPOINT_GET_APPS + `${documento}/${profile}`; + const responseAplicativos = await axios.get(urlAplicativos, { + headers: { + "Accept": "*/*", + "Content-Type": "application/json" + }, + timeout: 30000 + }); + + if (responseAplicativos.data['cod'] == '0') { + return processAppsResponse(responseAplicativos.data, data_apps_user); + } } } catch (e) { - console.log('>> Error al obtener aplicaciones:' + e); + console.log('>> Error al obtener aplicaciones: ' + e); } } +// Helper function to process the apps response +function processAppsResponse(responseData, data_apps_user) { + var apps_okan = []; + const new_apps = responseData['data'] + .filter(element => element['nombre_app'].startsWith('RPA')) + .sort((a, b) => a.nombre_app.localeCompare(b.nombre_app)); + + console.log('>> Aplicativos Okan: ' + new_apps.length); + + // Process each app from new_apps + for (const app of new_apps) { + let code = app.url.replace('rpaclaro://?code=', ''); + code = code.replace('RpaClaro://?code=', ''); + code = code.replace('&user={user}', ''); + let appExists = data_apps_user.desk?.some(deskApp => deskApp.code === code) || + data_apps_user.web?.some(webApp => webApp.code === code); + + apps_okan.push({ + nombre_app: app.nombre_app, + code_app: code, + logo: app.logo, + status: appExists, + status_integrado: appExists ? 'integrado' : 'no_integrado', + }); + } + + // Generate HTML for all apps + return apps_okan.map(app => ` +
+
+
+ +
${app.nombre_app}
+
+
+
+ `).join(''); +} + async function getNetworkInfo() { const interfaces = os.networkInterfaces(); let ipAddress = ''; @@ -302,6 +374,7 @@ async function getNetworkInfo() { async function getUserData(token) { try { + const agent_four = new HttpsProxyAgent(CONFIG.PROXY); const networkInfo = await getNetworkInfo(); console.log('>> Usuario: ' + process.env.USUARIO); console.log('>> IP: ' + networkInfo.ip); @@ -323,7 +396,8 @@ async function getUserData(token) { }); const response = await axios.post(CONFIG.ENDPOINT_URL_APPS, bodyContent, { - headers: headersList + headers: headersList, + httpsAgent: agent_four }); return response.data.apps; } catch (error) { @@ -335,98 +409,110 @@ async function createMainWindow(appsOkan) { mainWindow = new BrowserWindow({ width: 1200, height: 650, - show: false, + show: true, + // frame: false, // Remove window frame/menu webPreferences: { nodeIntegration: true, contextIsolation: false }, }); - mainWindow.loadFile('./views/main/index.html'); - const webContents = mainWindow.webContents; - webContents.setMaxListeners(50); + await mainWindow.loadFile('./views/main/index.html'); + const menuTemplate = [ + { + label: 'Archivo', + submenu: [ + { + label: 'Recargar', + accelerator: 'Ctrl+Shift+R', + icon: __dirname + '/views/assets/icons/reload.png', // Ruta al icono + click: () => { + mainWindow.webContents.reloadIgnoringCache(); + } + }, + { type: 'separator' }, // Separador en el menú + { + label: 'Salir', + accelerator: 'Ctrl+Q', + icon: __dirname + '/views/assets/icons/exit.png', // Ruta al icono + click: () => { + app.quit(); + } + } + ] + }, + { + label: 'Ayuda', + submenu: [ + // { + // label: 'Mostrar DevTools', + // accelerator: 'Ctrl+Shift+L', + // icon: __dirname + '/views/assets/icons/screenshot.png', // Ruta al icono + // click: () => { - webContents.on('did-stop-loading', () => { - console.log('>> Vista main cargada'); - }); + // mainWindow.openDevTools(); + // } + // }, + // { type: 'separator' }, + { + label: 'Acerca de', + accelerator: 'Ctrl+Shift+A', + icon: __dirname + '/views/assets/icons/reload.png', // Ruta al icono + click: () => { + const { version } = require('./package.json'); // Obtener la versión desde package.json + dialog.showMessageBox({ + type: 'info', + title: 'Acerca de Mi Aplicación', + message: `Versión ${version}`, + }); + } + } + ] + } + ]; + const menu = Menu.buildFromTemplate(menuTemplate); + mainWindow.setMenu(menu); + mainWindow.maximize(); if (process.env.MODE == 'dev') { mainWindow.show(); mainWindow.openDevTools(); // mainWindow.setKiosk(true); } + // const webContents = mainWindow.webContents; + // webContents.setMaxListeners(50); + + mainWindow.webContents.send('set-version', app_version); + mainWindow.webContents.send('set-userpc', process.env.USUARIO); + try { + mainWindow.webContents.send('data-apps', appsOkan); + } catch (e) { + console.log('>> Error al enviar datos:' + e); + } + + + // webContents.on('did-stop-loading', () => { + // console.log('>> Vista main cargada'); + // }); + + mainWindow.on('ready-to-show', () => { - mainWindow.webContents.send('set-version', app_version); - mainWindow.webContents.send('set-userpc', process.env.USUARIO); - try { - mainWindow.webContents.send('data-apps', appsOkan); - } catch (e) { - console.log('>> Error al enviar datos:' + e); - } - const menuTemplate = [ - { - label: 'Archivo', - submenu: [ - { - label: 'Recargar', - accelerator: 'Ctrl+Shift+R', - icon: __dirname + '/views/assets/icons/reload.png', // Ruta al icono - click: () => { - mainWindow.webContents.reloadIgnoringCache(); - } - }, - { type: 'separator' }, // Separador en el menú - { - label: 'Salir', - accelerator: 'Ctrl+Q', - icon: __dirname + '/views/assets/icons/exit.png', // Ruta al icono - click: () => { - app.quit(); - } - } - ] - }, - { - label: 'Ayuda', - submenu: [ - // { - // label: 'Mostrar DevTools', - // accelerator: 'Ctrl+Shift+L', - // icon: __dirname + '/views/assets/icons/screenshot.png', // Ruta al icono - // click: () => { - // mainWindow.openDevTools(); - // } - // }, - // { type: 'separator' }, - { - label: 'Acerca de', - accelerator: 'Ctrl+Shift+A', - icon: __dirname + '/views/assets/icons/reload.png', // Ruta al icono - click: () => { - const { version } = require('./package.json'); // Obtener la versión desde package.json - dialog.showMessageBox({ - type: 'info', - title: 'Acerca de Mi Aplicación', - message: `Versión ${version}`, - }); - } - } - ] - } - ]; - const menu = Menu.buildFromTemplate(menuTemplate); - mainWindow.show(); - mainWindow.setMenu(menu); - mainWindow.maximize(); + // mainWindow.show(); + // mainWindow.setMenu(menu); + // mainWindow.maximize(); }); mainWindow.on('closed', function () { mainWindow = null; app.quit(); }); + + mainWindow.show(); + + return mainWindow; } async function createNewWindow() { @@ -451,30 +537,38 @@ async function createNewWindow() { windowNew.setMenu(null); - windowNew.loadURL('https://google.com'); + windowNew.loadURL('https://apps.okan.tools'); + + return 'test'; } const mainIni = async () => { + await setupProtocolClient(); await setupLogging(); await processArguments(); - await setupProtocolClient(); copyFilesFromRR(); let getOkanTokenVal = await getOkanToken(); + console.log('Okan token: ' + getOkanTokenVal); await getProfile(getOkanTokenVal); userDataApps = await getUserData(getOkanTokenVal); console.log('>> Aplicaciones:' + userDataApps); appsOkan = await getApps(userDataApps); console.log('>> Html generado'); - await createMainWindow(appsOkan); + let mainWindowInstance = await createMainWindow(appsOkan); + console.log(mainWindowInstance); await createNewWindow(); + // mainWindow.webContents.on('did-finish-load', async () => { + console.log('termino de cargar'); + // try { await rpa(process.env.OKAN); - // if(from_okan){ - // console.log('>> Iniciando RPA desde Okan'); - // console.log('>> Codigo:'+ process.env.OKAN); - // await rpa(process.env.OKAN); + // } catch(e) { + // console.log('oka error: '+e); // } + // }); + + }; async function rpa(data_code) { @@ -536,12 +630,28 @@ async function rpa(data_code) { windowNew.setIgnoreMouseEvents(false); } - await new Promise(resolve => { - windowNew.webContents.on('did-finish-load', resolve); - }); + try { + await Promise.race([ + new Promise(resolve => { + windowNew.webContents.on('did-finish-load', resolve); + }), + new Promise((_, reject) => + setTimeout(() => reject(new Error('Timeout loading page')), 30000) + ) + ]); - page = await pie.getPage(browser, windowNew); - console.log('>> URL cargada: ' + page.url()); + page = await pie.getPage(browser, windowNew); + if (!page) { + throw new Error('Failed to get page'); + } + console.log('>> URL cargada: ' + page.url()); + } catch (error) { + console.log('>> Error al cargar la página:', error.message); + if (windowNew && !windowNew.isDestroyed()) { + windowNew.close(); + } + throw error; + } } console.log(`>> Tipo: ${type}`); @@ -1167,28 +1277,28 @@ if (!gotTheLock) { process.env.MODE = 'prod'; let url_okan = argv[3]; let code_okan_str = url_okan.toString(); - + // Handle OKAN code from URL or direct argument if (argv[3] && !argv.dev) { - + let code_okan = code_okan_str.split('&')[0].replace('rpaclaro:///?code=', ''); let user_okan = code_okan_str.split('&')[1].replace('user=', ''); process.env.OKAN = code_okan; process.env.USUARIO = user_okan; - console.log('>> Sgundos instancia code: '+process.env.OKAN); + console.log('>> Sgundos instancia code: ' + process.env.OKAN); await rpa(process.env.OKAN); } else { process.env.OKAN = argv.code; process.env.USUARIO = argv.user; } - + // Set environment mode if (argv.dev) { process.env.MODE = 'dev'; } else { process.env.MODE = 'prod'; } - + console.log('>> Iniciando RpaClaro..'); console.log('_____________________________'); console.log('RPA CLARO'); @@ -1234,7 +1344,7 @@ ipcMain.on('show-help', () => { dialog.showMessageBox({ type: 'info', title: 'Acerca de Mi Aplicación', - message: `Versión `+app.getVersion(), + message: `Versión ` + app.getVersion(), }); }); diff --git a/package-lock.json b/package-lock.json index 42b631d..d7ad3dd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "rpa-claro", - "version": "3.0.8", + "version": "4.0.6", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "rpa-claro", - "version": "3.0.8", + "version": "4.0.6", "license": "MIT", "dependencies": { "axios": "^1.6.2", @@ -21,7 +21,7 @@ "node-fetch": "^3.3.2", "node-global-proxy": "^1.0.1", "nodemailer": "^6.9.8", - "puppeteer": "^22.1.0", + "puppeteer": "^22.15.0", "puppeteer-core": "^21.11.0", "puppeteer-in-electron": "^3.0.5" }, @@ -848,13 +848,10 @@ "dev": true }, "node_modules/agent-base": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", - "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", + "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", "license": "MIT", - "dependencies": { - "debug": "^4.3.4" - }, "engines": { "node": ">= 14" } @@ -1206,37 +1203,75 @@ "license": "MIT" }, "node_modules/bare-events": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.2.0.tgz", - "integrity": "sha512-Yyyqff4PIFfSuthCZqLlPISTWHmnQxoPuAvkmgzsJEmG3CesdIv6Xweayl0JkCZJSB2yYIdJyEz97tpxNhgjbg==", + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.5.4.tgz", + "integrity": "sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==", "license": "Apache-2.0", "optional": true }, "node_modules/bare-fs": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.1.5.tgz", - "integrity": "sha512-5t0nlecX+N2uJqdxe9d18A98cp2u9BETelbjKpiVgQqzzmVNFYWEAjQHqS+2Khgto1vcwhik9cXucaj5ve2WWA==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.1.2.tgz", + "integrity": "sha512-8wSeOia5B7LwD4+h465y73KOdj5QHsbbuoUfPBi+pXgFJIPuG7SsiOdJuijWMyfid49eD+WivpfY7KT8gbAzBA==", + "license": "Apache-2.0", "optional": true, "dependencies": { - "bare-events": "^2.0.0", - "bare-os": "^2.0.0", - "bare-path": "^2.0.0", - "streamx": "^2.13.0" + "bare-events": "^2.5.4", + "bare-path": "^3.0.0", + "bare-stream": "^2.6.4" + }, + "engines": { + "bare": ">=1.16.0" + }, + "peerDependencies": { + "bare-buffer": "*" + }, + "peerDependenciesMeta": { + "bare-buffer": { + "optional": true + } } }, "node_modules/bare-os": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-2.2.0.tgz", - "integrity": "sha512-hD0rOPfYWOMpVirTACt4/nK8mC55La12K5fY1ij8HAdfQakD62M+H4o4tpfKzVGLgRDTuk3vjA4GqGXXCeFbag==", - "optional": true + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.6.1.tgz", + "integrity": "sha512-uaIjxokhFidJP+bmmvKSgiMzj2sV5GPHaZVAIktcxcpCyBFFWO+YlikVAdhmUo2vYFvFhOXIAlldqV29L8126g==", + "license": "Apache-2.0", + "optional": true, + "engines": { + "bare": ">=1.14.0" + } }, "node_modules/bare-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-2.1.0.tgz", - "integrity": "sha512-DIIg7ts8bdRKwJRJrUMy/PICEaQZaPGZ26lsSx9MJSwIhSrcdHn7/C8W+XmnG/rKi6BaRcz+JO00CjZteybDtw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz", + "integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==", + "license": "Apache-2.0", "optional": true, "dependencies": { - "bare-os": "^2.1.0" + "bare-os": "^3.0.1" + } + }, + "node_modules/bare-stream": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.6.5.tgz", + "integrity": "sha512-jSmxKJNJmHySi6hC42zlZnq00rga4jjxcgNZjY9N5WlOe/iOoGRtdwGsHzQv2RlH2KOYMwGUXhf2zXd32BA9RA==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "streamx": "^2.21.0" + }, + "peerDependencies": { + "bare-buffer": "*", + "bare-events": "*" + }, + "peerDependenciesMeta": { + "bare-buffer": { + "optional": true + }, + "bare-events": { + "optional": true + } } }, "node_modules/base-x": { @@ -3003,11 +3038,12 @@ "license": "ISC" }, "node_modules/https-proxy-agent": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", - "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "license": "MIT", "dependencies": { - "agent-base": "^7.0.2", + "agent-base": "^7.1.2", "debug": "4" }, "engines": { @@ -3096,12 +3132,6 @@ "node": ">= 12" } }, - "node_modules/ip-address/node_modules/jsbn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", - "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", - "license": "MIT" - }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -3266,6 +3296,12 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", + "license": "MIT" + }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -3868,19 +3904,19 @@ "license": "MIT" }, "node_modules/pac-proxy-agent": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.0.1.tgz", - "integrity": "sha512-ASV8yU4LLKBAjqIPMbrgtaKIvxQri/yh2OpI+S6hVa9JRkUI3Y3NPFbfngDtY7oFtSMD3w31Xns89mDa3Feo5A==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz", + "integrity": "sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==", "license": "MIT", "dependencies": { "@tootallnate/quickjs-emscripten": "^0.23.0", - "agent-base": "^7.0.2", + "agent-base": "^7.1.2", "debug": "^4.3.4", "get-uri": "^6.0.1", "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.2", - "pac-resolver": "^7.0.0", - "socks-proxy-agent": "^8.0.2" + "https-proxy-agent": "^7.0.6", + "pac-resolver": "^7.0.1", + "socks-proxy-agent": "^8.0.5" }, "engines": { "node": ">= 14" @@ -4091,14 +4127,16 @@ } }, "node_modules/puppeteer": { - "version": "22.1.0", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-22.1.0.tgz", - "integrity": "sha512-suatHy6A48YkoykjrJNkJaixWVrvnPtzIgngK17V/P0MvgSyJzuu21PyR+0lWIK0cfZqKqmR8CHZvHzOCd4MIg==", + "version": "22.15.0", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-22.15.0.tgz", + "integrity": "sha512-XjCY1SiSEi1T7iSYuxS82ft85kwDJUS7wj1Z0eGVXKdtr5g4xnVcbjwxhq5xBnpK/E7x1VZZoJDxpjAOasHT4Q==", "hasInstallScript": true, + "license": "Apache-2.0", "dependencies": { - "@puppeteer/browsers": "2.0.1", - "cosmiconfig": "9.0.0", - "puppeteer-core": "22.1.0" + "@puppeteer/browsers": "2.3.0", + "cosmiconfig": "^9.0.0", + "devtools-protocol": "0.0.1312386", + "puppeteer-core": "22.15.0" }, "bin": { "puppeteer": "lib/esm/puppeteer/node/cli.js" @@ -4147,17 +4185,19 @@ } }, "node_modules/puppeteer/node_modules/@puppeteer/browsers": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.0.1.tgz", - "integrity": "sha512-IQj/rJY1MNfZ6Z2ERu+6S0LkIPBSXRGddgmvODqjm1afHy04aJIiWmoohuFtL78SPSlbjpIMuFVfhyqsR5Ng4A==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.3.0.tgz", + "integrity": "sha512-ioXoq9gPxkss4MYhD+SFaU9p1IHFUX0ILAWFPyjGaBdjLsYAlZw6j1iLA0N/m12uVHLFDfSYNF7EQccjinIMDA==", + "license": "Apache-2.0", "dependencies": { - "debug": "4.3.4", - "extract-zip": "2.0.1", - "progress": "2.0.3", - "proxy-agent": "6.4.0", - "tar-fs": "3.0.5", - "unbzip2-stream": "1.4.3", - "yargs": "17.7.2" + "debug": "^4.3.5", + "extract-zip": "^2.0.1", + "progress": "^2.0.3", + "proxy-agent": "^6.4.0", + "semver": "^7.6.3", + "tar-fs": "^3.0.6", + "unbzip2-stream": "^1.4.3", + "yargs": "^17.7.2" }, "bin": { "browsers": "lib/cjs/main-cli.js" @@ -4167,77 +4207,138 @@ } }, "node_modules/puppeteer/node_modules/chromium-bidi": { - "version": "0.5.9", - "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.5.9.tgz", - "integrity": "sha512-wOTX3m2zuHX0zRX4h7Ol1DAGz0cqHzo2IrAPvOqBxdd4ZR32vxg4FKNjmBihi1oP9b1QGSBBG5VNUUXUCsxDfg==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.6.3.tgz", + "integrity": "sha512-qXlsCmpCZJAnoTYI83Iu6EdYQpMYdVkCfq08KDh2pmlVqK5t5IA9mGs4/LwCwp4fqisSOMXZxP3HIh8w8aRn0A==", + "license": "Apache-2.0", "dependencies": { "mitt": "3.0.1", - "urlpattern-polyfill": "10.0.0" + "urlpattern-polyfill": "10.0.0", + "zod": "3.23.8" }, "peerDependencies": { "devtools-protocol": "*" } }, + "node_modules/puppeteer/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/puppeteer/node_modules/devtools-protocol": { + "version": "0.0.1312386", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1312386.tgz", + "integrity": "sha512-DPnhUXvmvKT2dFA/j7B+riVLUt9Q6RKJlcppojL5CoRywJJKLDYnRlw0gTFKfgDPHP5E04UoB71SxoJlVZy8FA==", + "license": "BSD-3-Clause" + }, "node_modules/puppeteer/node_modules/lru-cache": { "version": "7.18.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "license": "ISC", "engines": { "node": ">=12" } }, + "node_modules/puppeteer/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, "node_modules/puppeteer/node_modules/proxy-agent": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.4.0.tgz", - "integrity": "sha512-u0piLU+nCOHMgGjRbimiXmA9kM/L9EHh3zL81xCdp7m+Y2pHIsnmbdDoEDoAz5geaonNR6q6+yOPQs6n4T6sBQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz", + "integrity": "sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==", + "license": "MIT", "dependencies": { - "agent-base": "^7.0.2", + "agent-base": "^7.1.2", "debug": "^4.3.4", "http-proxy-agent": "^7.0.1", - "https-proxy-agent": "^7.0.3", + "https-proxy-agent": "^7.0.6", "lru-cache": "^7.14.1", - "pac-proxy-agent": "^7.0.1", + "pac-proxy-agent": "^7.1.0", "proxy-from-env": "^1.1.0", - "socks-proxy-agent": "^8.0.2" + "socks-proxy-agent": "^8.0.5" }, "engines": { "node": ">= 14" } }, "node_modules/puppeteer/node_modules/puppeteer-core": { - "version": "22.1.0", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-22.1.0.tgz", - "integrity": "sha512-LdsQxslPf0Rpk6gLvkyyrraad2S4PUjGCT2CAKS2EnrRPpzIb6fsrFnoPNZxLlMkU7apU1g4Nf5wYePdSjxLkQ==", + "version": "22.15.0", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-22.15.0.tgz", + "integrity": "sha512-cHArnywCiAAVXa3t4GGL2vttNxh7GqXtIYGym99egkNJ3oG//wL9LkvO4WE8W1TJe95t1F1ocu9X4xWaGsOKOA==", + "license": "Apache-2.0", "dependencies": { - "@puppeteer/browsers": "2.0.1", - "chromium-bidi": "0.5.9", - "cross-fetch": "4.0.0", - "debug": "4.3.4", - "devtools-protocol": "0.0.1232444", - "ws": "8.16.0" + "@puppeteer/browsers": "2.3.0", + "chromium-bidi": "0.6.3", + "debug": "^4.3.6", + "devtools-protocol": "0.0.1312386", + "ws": "^8.18.0" }, "engines": { "node": ">=18" } }, + "node_modules/puppeteer/node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/puppeteer/node_modules/tar-fs": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.5.tgz", - "integrity": "sha512-JOgGAmZyMgbqpLwct7ZV8VzkEB6pxXFBVErLtb+XCOqzc6w1xiWKI9GVd6bwk68EX7eJ4DWmfXVmq8K2ziZTGg==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.8.tgz", + "integrity": "sha512-ZoROL70jptorGAlgAYiLoBLItEKw/fUxg9BSYK/dF/GAGYFJOJJJMvjPAKDJraCXFwadD456FCuvLWgfhMsPwg==", + "license": "MIT", "dependencies": { "pump": "^3.0.0", "tar-stream": "^3.1.5" }, "optionalDependencies": { - "bare-fs": "^2.1.1", - "bare-path": "^2.1.0" + "bare-fs": "^4.0.1", + "bare-path": "^3.0.0" } }, - "node_modules/queue-tick": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", - "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", - "license": "MIT" + "node_modules/puppeteer/node_modules/ws": { + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } }, "node_modules/read-config-file": { "version": "6.3.2", @@ -4475,9 +4576,9 @@ } }, "node_modules/socks": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.3.tgz", - "integrity": "sha512-vfuYK48HXCTFD03G/1/zkIls3Ebr2YNa4qU9gHDZdblHLiqhJrJGkY3+0Nx0JpN9qBhJbVObc1CNciT1bIZJxw==", + "version": "2.8.4", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.4.tgz", + "integrity": "sha512-D3YaD0aRxR3mEcqnidIs7ReYJFVzWdd6fXJYUM8ixcQcJRGTka/b3saV0KflYhyVJXKhb947GndU35SxYNResQ==", "license": "MIT", "dependencies": { "ip-address": "^9.0.5", @@ -4489,14 +4590,14 @@ } }, "node_modules/socks-proxy-agent": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz", - "integrity": "sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==", + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", + "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", "license": "MIT", "dependencies": { - "agent-base": "^7.0.2", + "agent-base": "^7.1.2", "debug": "^4.3.4", - "socks": "^2.7.1" + "socks": "^2.8.3" }, "engines": { "node": ">= 14" @@ -4538,13 +4639,13 @@ } }, "node_modules/streamx": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.16.1.tgz", - "integrity": "sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ==", + "version": "2.22.0", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.22.0.tgz", + "integrity": "sha512-sLh1evHOzBy/iWRiR6d1zRcLao4gGZr3C1kzNz4fopCOKJb6xD9ub8Mpi9Mr1R6id5o43S+d93fI48UC5uM9aw==", "license": "MIT", "dependencies": { - "fast-fifo": "^1.1.0", - "queue-tick": "^1.0.1" + "fast-fifo": "^1.3.2", + "text-decoder": "^1.1.0" }, "optionalDependencies": { "bare-events": "^2.2.0" @@ -4698,6 +4799,15 @@ "fs-extra": "^10.0.0" } }, + "node_modules/text-decoder": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz", + "integrity": "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==", + "license": "Apache-2.0", + "dependencies": { + "b4a": "^1.6.4" + } + }, "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", @@ -5127,6 +5237,15 @@ "engines": { "node": "*" } + }, + "node_modules/zod": { + "version": "3.23.8", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", + "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } } } } diff --git a/package.json b/package.json index f6806d6..1a0f1eb 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "rpa-claro", "productName": "RpaClaro", - "version": "3.2.0", + "version": "4.0.6", "description": "RPA Claro", "author": "TARS", "license": "MIT", @@ -45,7 +45,7 @@ "verifyUpdateCodeSignature": false }, "nsis": { - "runAfterFinish": false, + "runAfterFinish": true, "deleteAppDataOnUninstall": true, "oneClick": true, "perMachine": true, diff --git a/proxy.js b/proxy.js new file mode 100644 index 0000000..878c25b --- /dev/null +++ b/proxy.js @@ -0,0 +1,83 @@ +const { HttpsProxyAgent } = require('https-proxy-agent'); +const axios = require('axios'); + +const CONFIG = { + ENDPOINT_URL_APPS: 'https://rpa8dev.okan.tools/users/apps/byUserAdOrDocument', + ENDPOINT_URL_APP: 'https://rpa8dev.okan.tools/app', + ENDPOINT_OKAN_TOKEN: 'https://io.okan.tools/api/auth/electron', + TOKEN_OKAN_USER: 'HrZTvmBNyQaM6jPI7sHo5ywN35ht/cplIBFeE+4Ufx8=', + PROXY: 'http://proxyop.bop.local:8080', + ENDPOINT_GET_PROFILE: 'https://io.okan.tools/api/auth/users/electron', + ENDPOINT_GET_APPS: 'https://adm.okan.tools/wp-json/okanapiwp/v1/aplicativos/' +}; + +async function test() { +// try { +// const agent = new HttpsProxyAgent(CONFIG.PROXY); +// const responseOkan = await axios.post(CONFIG.ENDPOINT_OKAN_TOKEN, +// { user: '45957768' }, { +// headers: { 'Authorization': CONFIG.TOKEN_OKAN_USER }, +// httpsAgent: agent +// }); +// if (responseOkan.data.cod == '0') { +// console.log('>> Token de Okan obtenido.'); +// console.log(responseOkan.data.data); +// return responseOkan.data.data; +// } else { +// console.log('>> Error al obtener el token de Okan.'); +// return null; +// } +// } catch (error) { +// console.log('>> Error en la petición del token de Okan:', error); +// } + +// const token_okan = 'Bearer ZXlKaGJHY2lPaUpJVXpJMU5pSXNJblI1Y0NJNklrcFhWQ0o5LmV5SmxiV0ZwYkVOdmNuQnZjbUYwYVhabElqb2lZbkpoYW1GdUxtRnNaR0Z1WVVCMFlYSnpMbVJsZGlJc0ltVnRZV2xzVUdWeWMyOXVZV3dpT2lKa2NtRmphM2gxYzBCbmJXRnBiQzVqYjIwaUxDSmtiMk4xYldWdWRDSTZJakV3TWpJNU5qazFPVFlpTENKdWFXTnJibUZ0WlNJNklqUTFPVFUzTnpZNElpd2lablZzYkU1aGJXVWlPaUppY21GcVlXNGdhbTloYm5rZ1lXeGtZVzVoSUNCeVpYbGxjeUlzSW1WNGNHbHlaVVJoZEdVaU9pSXlNREkxTFRBMExUQXpJREUxT2pNek9qQTRJbjA9Lmg0UERaMEFmcDJsYXk1YzNEektHYldSRkpDUUNIemhTN2phRXJrYnlIb2M9'; + +// try { +// const agent = new HttpsProxyAgent(CONFIG.PROXY); + +// const responseGetProfile = await axios.get(CONFIG.ENDPOINT_GET_PROFILE, { headers: { 'Authorization': token_okan }, +// httpsAgent: agent }); +// if (responseGetProfile.data.cod == '0') { +// documento = responseGetProfile.data.data.document_number; +// profile = responseGetProfile.data.data.profile.id; +// console.log('>> Perfil: ' + profile); +// return profile; +// } +// } catch (e) { +// console.log('>> No se pudo obtener el perfil: ' + e); +// } + + + +try { + const agent_three = new HttpsProxyAgent(CONFIG.PROXY); + + let documento = '1022969596'; + let profile = '8475'; + + const urlAplicativos = CONFIG.ENDPOINT_GET_APPS + `${documento}/${profile}`; + const responseAplicativos = await axios.get(urlAplicativos, { + headers: { + "Accept": "*/*", + "Content-Type": "application/json" + }, + httpsAgent: agent_three, // Changed from httpAgent to httpsAgent + proxy: false // Disable default proxy to ensure our custom agent is used + }); + + var apps_okan = []; + if (responseAplicativos.data['cod'] == '0') { + + const new_apps = responseAplicativos.data['data'] + .filter(element => element['nombre_app'].startsWith('RPA')) + .sort((a, b) => a.nombre_app.localeCompare(b.nombre_app)); + + console.log('>> Aplicativos Okan: ' + new_apps.length); + + } +} catch (e) { + console.log('>> Error al obtener aplicaciones:', e.message); // Enhanced error logging +} +} +test(); \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 6a91547..c737fbb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -150,18 +150,19 @@ unbzip2-stream "1.4.3" yargs "17.7.2" -"@puppeteer/browsers@2.0.1": - version "2.0.1" - resolved "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.0.1.tgz" - integrity sha512-IQj/rJY1MNfZ6Z2ERu+6S0LkIPBSXRGddgmvODqjm1afHy04aJIiWmoohuFtL78SPSlbjpIMuFVfhyqsR5Ng4A== +"@puppeteer/browsers@2.3.0": + version "2.3.0" + resolved "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.3.0.tgz" + integrity sha512-ioXoq9gPxkss4MYhD+SFaU9p1IHFUX0ILAWFPyjGaBdjLsYAlZw6j1iLA0N/m12uVHLFDfSYNF7EQccjinIMDA== dependencies: - debug "4.3.4" - extract-zip "2.0.1" - progress "2.0.3" - proxy-agent "6.4.0" - tar-fs "3.0.5" - unbzip2-stream "1.4.3" - yargs "17.7.2" + debug "^4.3.5" + extract-zip "^2.0.1" + progress "^2.0.3" + proxy-agent "^6.4.0" + semver "^7.6.3" + tar-fs "^3.0.6" + unbzip2-stream "^1.4.3" + yargs "^17.7.2" "@sindresorhus/is@^0.14.0": version "0.14.0" @@ -282,12 +283,10 @@ resolved "https://registry.npmjs.org/7zip-bin/-/7zip-bin-5.2.0.tgz" integrity sha512-ukTPVhqG4jNzMro2qA9HSCSSVJN3aN7tlb+hfqYCt3ER0yWroeA2VR38MNrOHLQ/cVj+DaIMad0kFCtWWowh/A== -agent-base@^7.0.2, agent-base@^7.1.0: - version "7.1.0" - resolved "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz" - integrity sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg== - dependencies: - debug "^4.3.4" +agent-base@^7.0.2, agent-base@^7.1.0, agent-base@^7.1.2: + version "7.1.3" + resolved "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz" + integrity sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw== agent-base@6: version "6.0.2" @@ -486,32 +485,38 @@ balanced-match@^1.0.0: resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -bare-events@^2.0.0, bare-events@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/bare-events/-/bare-events-2.2.0.tgz" - integrity sha512-Yyyqff4PIFfSuthCZqLlPISTWHmnQxoPuAvkmgzsJEmG3CesdIv6Xweayl0JkCZJSB2yYIdJyEz97tpxNhgjbg== +bare-events@*, bare-events@^2.2.0, bare-events@^2.5.4: + version "2.5.4" + resolved "https://registry.npmjs.org/bare-events/-/bare-events-2.5.4.tgz" + integrity sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA== -bare-fs@^2.1.1: - version "2.1.5" - resolved "https://registry.npmjs.org/bare-fs/-/bare-fs-2.1.5.tgz" - integrity sha512-5t0nlecX+N2uJqdxe9d18A98cp2u9BETelbjKpiVgQqzzmVNFYWEAjQHqS+2Khgto1vcwhik9cXucaj5ve2WWA== +bare-fs@^4.0.1: + version "4.1.2" + resolved "https://registry.npmjs.org/bare-fs/-/bare-fs-4.1.2.tgz" + integrity sha512-8wSeOia5B7LwD4+h465y73KOdj5QHsbbuoUfPBi+pXgFJIPuG7SsiOdJuijWMyfid49eD+WivpfY7KT8gbAzBA== dependencies: - bare-events "^2.0.0" - bare-os "^2.0.0" - bare-path "^2.0.0" - streamx "^2.13.0" + bare-events "^2.5.4" + bare-path "^3.0.0" + bare-stream "^2.6.4" -bare-os@^2.0.0, bare-os@^2.1.0: - version "2.2.0" - resolved "https://registry.npmjs.org/bare-os/-/bare-os-2.2.0.tgz" - integrity sha512-hD0rOPfYWOMpVirTACt4/nK8mC55La12K5fY1ij8HAdfQakD62M+H4o4tpfKzVGLgRDTuk3vjA4GqGXXCeFbag== +bare-os@^3.0.1: + version "3.6.1" + resolved "https://registry.npmjs.org/bare-os/-/bare-os-3.6.1.tgz" + integrity sha512-uaIjxokhFidJP+bmmvKSgiMzj2sV5GPHaZVAIktcxcpCyBFFWO+YlikVAdhmUo2vYFvFhOXIAlldqV29L8126g== -bare-path@^2.0.0, bare-path@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/bare-path/-/bare-path-2.1.0.tgz" - integrity sha512-DIIg7ts8bdRKwJRJrUMy/PICEaQZaPGZ26lsSx9MJSwIhSrcdHn7/C8W+XmnG/rKi6BaRcz+JO00CjZteybDtw== +bare-path@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz" + integrity sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw== dependencies: - bare-os "^2.1.0" + bare-os "^3.0.1" + +bare-stream@^2.6.4: + version "2.6.5" + resolved "https://registry.npmjs.org/bare-stream/-/bare-stream-2.6.5.tgz" + integrity sha512-jSmxKJNJmHySi6hC42zlZnq00rga4jjxcgNZjY9N5WlOe/iOoGRtdwGsHzQv2RlH2KOYMwGUXhf2zXd32BA9RA== + dependencies: + streamx "^2.21.0" base-x@^4.0.0: version "4.0.0" @@ -700,13 +705,14 @@ chromium-bidi@0.5.8: mitt "3.0.1" urlpattern-polyfill "10.0.0" -chromium-bidi@0.5.9: - version "0.5.9" - resolved "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.5.9.tgz" - integrity sha512-wOTX3m2zuHX0zRX4h7Ol1DAGz0cqHzo2IrAPvOqBxdd4ZR32vxg4FKNjmBihi1oP9b1QGSBBG5VNUUXUCsxDfg== +chromium-bidi@0.6.3: + version "0.6.3" + resolved "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.6.3.tgz" + integrity sha512-qXlsCmpCZJAnoTYI83Iu6EdYQpMYdVkCfq08KDh2pmlVqK5t5IA9mGs4/LwCwp4fqisSOMXZxP3HIh8w8aRn0A== dependencies: mitt "3.0.1" urlpattern-polyfill "10.0.0" + zod "3.23.8" chromium-pickle-js@^0.2.0: version "0.2.0" @@ -821,7 +827,7 @@ core-util-is@~1.0.0: resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== -cosmiconfig@9.0.0: +cosmiconfig@^9.0.0: version "9.0.0" resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz" integrity sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg== @@ -882,6 +888,13 @@ debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.4, debug@4, debug@4.3.4: dependencies: ms "2.1.2" +debug@^4.3.5, debug@^4.3.6: + version "4.4.0" + resolved "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz" + integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA== + dependencies: + ms "^2.1.3" + decompress-response@^3.3.0: version "3.3.0" resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz" @@ -936,6 +949,11 @@ devtools-protocol@*, devtools-protocol@0.0.1232444: resolved "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1232444.tgz" integrity sha512-pM27vqEfxSxRkTMnF+XCmxSEb6duO5R+t8A9DEEJgy4Wz2RVanje2mmj99B6A3zv2r/qGfYlOvYznUhuokizmg== +devtools-protocol@0.0.1312386: + version "0.0.1312386" + resolved "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1312386.tgz" + integrity sha512-DPnhUXvmvKT2dFA/j7B+riVLUt9Q6RKJlcppojL5CoRywJJKLDYnRlw0gTFKfgDPHP5E04UoB71SxoJlVZy8FA== + dir-compare@^3.0.0: version "3.3.0" resolved "https://registry.npmjs.org/dir-compare/-/dir-compare-3.3.0.tgz" @@ -1178,7 +1196,7 @@ fast-deep-equal@^3.1.1: resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-fifo@^1.1.0, fast-fifo@^1.2.0: +fast-fifo@^1.2.0, fast-fifo@^1.3.2: version "1.3.2" resolved "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz" integrity sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ== @@ -1547,12 +1565,12 @@ https-proxy-agent@^5.0.1: agent-base "6" debug "4" -https-proxy-agent@^7.0.2, https-proxy-agent@^7.0.3: - version "7.0.4" - resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz" - integrity sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg== +https-proxy-agent@^7.0.2, https-proxy-agent@^7.0.6: + version "7.0.6" + resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz" + integrity sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw== dependencies: - agent-base "^7.0.2" + agent-base "^7.1.2" debug "4" https@^1.0.0: @@ -1971,6 +1989,11 @@ mkdirp@^1.0.3: resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== +ms@^2.1.3: + version "2.1.3" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + ms@2.1.2: version "2.1.2" resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" @@ -2086,21 +2109,21 @@ p-retry@4: "@types/retry" "0.12.0" retry "^0.13.1" -pac-proxy-agent@^7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.0.1.tgz" - integrity sha512-ASV8yU4LLKBAjqIPMbrgtaKIvxQri/yh2OpI+S6hVa9JRkUI3Y3NPFbfngDtY7oFtSMD3w31Xns89mDa3Feo5A== +pac-proxy-agent@^7.0.1, pac-proxy-agent@^7.1.0: + version "7.2.0" + resolved "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz" + integrity sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA== dependencies: "@tootallnate/quickjs-emscripten" "^0.23.0" - agent-base "^7.0.2" + agent-base "^7.1.2" debug "^4.3.4" get-uri "^6.0.1" http-proxy-agent "^7.0.0" - https-proxy-agent "^7.0.2" - pac-resolver "^7.0.0" - socks-proxy-agent "^8.0.2" + https-proxy-agent "^7.0.6" + pac-resolver "^7.0.1" + socks-proxy-agent "^8.0.5" -pac-resolver@^7.0.0: +pac-resolver@^7.0.1: version "7.0.1" resolved "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz" integrity sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg== @@ -2190,6 +2213,20 @@ proto-list@~1.2.1: resolved "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz" integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== +proxy-agent@^6.4.0: + version "6.5.0" + resolved "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz" + integrity sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A== + dependencies: + agent-base "^7.1.2" + debug "^4.3.4" + http-proxy-agent "^7.0.1" + https-proxy-agent "^7.0.6" + lru-cache "^7.14.1" + pac-proxy-agent "^7.1.0" + proxy-from-env "^1.1.0" + socks-proxy-agent "^8.0.5" + proxy-agent@6.3.1: version "6.3.1" resolved "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.3.1.tgz" @@ -2204,20 +2241,6 @@ proxy-agent@6.3.1: proxy-from-env "^1.1.0" socks-proxy-agent "^8.0.2" -proxy-agent@6.4.0: - version "6.4.0" - resolved "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.4.0.tgz" - integrity sha512-u0piLU+nCOHMgGjRbimiXmA9kM/L9EHh3zL81xCdp7m+Y2pHIsnmbdDoEDoAz5geaonNR6q6+yOPQs6n4T6sBQ== - dependencies: - agent-base "^7.0.2" - debug "^4.3.4" - http-proxy-agent "^7.0.1" - https-proxy-agent "^7.0.3" - lru-cache "^7.14.1" - pac-proxy-agent "^7.0.1" - proxy-from-env "^1.1.0" - socks-proxy-agent "^8.0.2" - proxy-from-env@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz" @@ -2248,17 +2271,16 @@ puppeteer-core@^21.11.0: devtools-protocol "0.0.1232444" ws "8.16.0" -puppeteer-core@22.1.0: - version "22.1.0" - resolved "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-22.1.0.tgz" - integrity sha512-LdsQxslPf0Rpk6gLvkyyrraad2S4PUjGCT2CAKS2EnrRPpzIb6fsrFnoPNZxLlMkU7apU1g4Nf5wYePdSjxLkQ== +puppeteer-core@22.15.0: + version "22.15.0" + resolved "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-22.15.0.tgz" + integrity sha512-cHArnywCiAAVXa3t4GGL2vttNxh7GqXtIYGym99egkNJ3oG//wL9LkvO4WE8W1TJe95t1F1ocu9X4xWaGsOKOA== dependencies: - "@puppeteer/browsers" "2.0.1" - chromium-bidi "0.5.9" - cross-fetch "4.0.0" - debug "4.3.4" - devtools-protocol "0.0.1232444" - ws "8.16.0" + "@puppeteer/browsers" "2.3.0" + chromium-bidi "0.6.3" + debug "^4.3.6" + devtools-protocol "0.0.1312386" + ws "^8.18.0" puppeteer-in-electron@^3.0.5: version "3.0.5" @@ -2273,19 +2295,15 @@ puppeteer-in-electron@^3.0.5: get-port "^5.1.1" uuid "^8.3.2" -puppeteer@^22.1.0: - version "22.1.0" - resolved "https://registry.npmjs.org/puppeteer/-/puppeteer-22.1.0.tgz" - integrity sha512-suatHy6A48YkoykjrJNkJaixWVrvnPtzIgngK17V/P0MvgSyJzuu21PyR+0lWIK0cfZqKqmR8CHZvHzOCd4MIg== +puppeteer@^22.15.0: + version "22.15.0" + resolved "https://registry.npmjs.org/puppeteer/-/puppeteer-22.15.0.tgz" + integrity sha512-XjCY1SiSEi1T7iSYuxS82ft85kwDJUS7wj1Z0eGVXKdtr5g4xnVcbjwxhq5xBnpK/E7x1VZZoJDxpjAOasHT4Q== dependencies: - "@puppeteer/browsers" "2.0.1" - cosmiconfig "9.0.0" - puppeteer-core "22.1.0" - -queue-tick@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz" - integrity sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag== + "@puppeteer/browsers" "2.3.0" + cosmiconfig "^9.0.0" + devtools-protocol "0.0.1312386" + puppeteer-core "22.15.0" read-config-file@6.3.2: version "6.3.2" @@ -2458,6 +2476,11 @@ semver@^7.5.3: dependencies: lru-cache "^6.0.0" +semver@^7.6.3: + version "7.7.1" + resolved "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz" + integrity sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA== + serialize-error@^7.0.1: version "7.0.1" resolved "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz" @@ -2494,19 +2517,19 @@ smart-buffer@^4.2.0: resolved "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz" integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== -socks-proxy-agent@^8.0.2: - version "8.0.2" - resolved "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz" - integrity sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g== +socks-proxy-agent@^8.0.2, socks-proxy-agent@^8.0.5: + version "8.0.5" + resolved "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz" + integrity sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw== dependencies: - agent-base "^7.0.2" + agent-base "^7.1.2" debug "^4.3.4" - socks "^2.7.1" + socks "^2.8.3" -socks@^2.7.1: - version "2.7.3" - resolved "https://registry.npmjs.org/socks/-/socks-2.7.3.tgz" - integrity sha512-vfuYK48HXCTFD03G/1/zkIls3Ebr2YNa4qU9gHDZdblHLiqhJrJGkY3+0Nx0JpN9qBhJbVObc1CNciT1bIZJxw== +socks@^2.8.3: + version "2.8.4" + resolved "https://registry.npmjs.org/socks/-/socks-2.8.4.tgz" + integrity sha512-D3YaD0aRxR3mEcqnidIs7ReYJFVzWdd6fXJYUM8ixcQcJRGTka/b3saV0KflYhyVJXKhb947GndU35SxYNResQ== dependencies: ip-address "^9.0.5" smart-buffer "^4.2.0" @@ -2534,13 +2557,13 @@ stat-mode@^1.0.0: resolved "https://registry.npmjs.org/stat-mode/-/stat-mode-1.0.0.tgz" integrity sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg== -streamx@^2.13.0, streamx@^2.15.0: - version "2.16.1" - resolved "https://registry.npmjs.org/streamx/-/streamx-2.16.1.tgz" - integrity sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ== +streamx@^2.15.0, streamx@^2.21.0: + version "2.22.0" + resolved "https://registry.npmjs.org/streamx/-/streamx-2.22.0.tgz" + integrity sha512-sLh1evHOzBy/iWRiR6d1zRcLao4gGZr3C1kzNz4fopCOKJb6xD9ub8Mpi9Mr1R6id5o43S+d93fI48UC5uM9aw== dependencies: - fast-fifo "^1.1.0" - queue-tick "^1.0.1" + fast-fifo "^1.3.2" + text-decoder "^1.1.0" optionalDependencies: bare-events "^2.2.0" @@ -2627,6 +2650,17 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" +tar-fs@^3.0.6: + version "3.0.8" + resolved "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.8.tgz" + integrity sha512-ZoROL70jptorGAlgAYiLoBLItEKw/fUxg9BSYK/dF/GAGYFJOJJJMvjPAKDJraCXFwadD456FCuvLWgfhMsPwg== + dependencies: + pump "^3.0.0" + tar-stream "^3.1.5" + optionalDependencies: + bare-fs "^4.0.1" + bare-path "^3.0.0" + tar-fs@3.0.4: version "3.0.4" resolved "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.4.tgz" @@ -2636,17 +2670,6 @@ tar-fs@3.0.4: pump "^3.0.0" tar-stream "^3.1.5" -tar-fs@3.0.5: - version "3.0.5" - resolved "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.5.tgz" - integrity sha512-JOgGAmZyMgbqpLwct7ZV8VzkEB6pxXFBVErLtb+XCOqzc6w1xiWKI9GVd6bwk68EX7eJ4DWmfXVmq8K2ziZTGg== - dependencies: - pump "^3.0.0" - tar-stream "^3.1.5" - optionalDependencies: - bare-fs "^2.1.1" - bare-path "^2.1.0" - tar-stream@^2.2.0: version "2.2.0" resolved "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz" @@ -2687,6 +2710,13 @@ temp-file@^3.4.0: async-exit-hook "^2.0.1" fs-extra "^10.0.0" +text-decoder@^1.1.0: + version "1.2.3" + resolved "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz" + integrity sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA== + dependencies: + b4a "^1.6.4" + through@^2.3.8: version "2.3.8" resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" @@ -2746,7 +2776,7 @@ typescript@^5.3.3, typescript@>=4.9.5: resolved "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz" integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== -unbzip2-stream@1.4.3: +unbzip2-stream@^1.4.3, unbzip2-stream@1.4.3: version "1.4.3" resolved "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz" integrity sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg== @@ -2877,6 +2907,11 @@ wrappy@1: resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== +ws@^8.18.0: + version "8.18.1" + resolved "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz" + integrity sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w== + ws@8.16.0: version "8.16.0" resolved "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz" @@ -2902,7 +2937,7 @@ yargs-parser@^21.1.1: resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz" integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== -yargs@^17.6.2, yargs@17.7.2: +yargs@^17.6.2, yargs@^17.7.2, yargs@17.7.2: version "17.7.2" resolved "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz" integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== @@ -2931,3 +2966,8 @@ zip-stream@^4.1.0: archiver-utils "^3.0.4" compress-commons "^4.1.2" readable-stream "^3.6.0" + +zod@3.23.8: + version "3.23.8" + resolved "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz" + integrity sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==