diff --git a/copy-deps.js b/copy-deps.js new file mode 100644 index 0000000..ecd8429 --- /dev/null +++ b/copy-deps.js @@ -0,0 +1,46 @@ +const fs = require('fs'); +const path = require('path'); + +function copyDependencies() { + const distPath = path.join(__dirname, 'dist', 'win-unpacked'); + const resourcesPath = path.join(distPath, 'resources'); + + if (!fs.existsSync(distPath)) { + console.log('Directorio dist no encontrado. Ejecuta primero: npm run build'); + return; + } + + const sourceDllPaths = [ + 'C:/RpaClaro/AutoItX3_x64.dll', + 'C:/Windows/System32/msvcr120.dll', + 'C:/Windows/System32/msvcp120.dll' + ]; + + const targetDllPath = path.join(distPath, 'dlls'); + + if (!fs.existsSync(targetDllPath)) { + fs.mkdirSync(targetDllPath, { recursive: true }); + } + + sourceDllPaths.forEach(sourcePath => { + if (fs.existsSync(sourcePath)) { + const fileName = path.basename(sourcePath); + const targetPath = path.join(targetDllPath, fileName); + + try { + fs.copyFileSync(sourcePath, targetPath); + console.log(`✓ Copiado: ${fileName}`); + } catch (error) { + console.log(`✗ Error copiando ${fileName}: ${error.message}`); + } + } + }); + + console.log('✓ Script de copia de dependencias completado'); +} + +if (require.main === module) { + copyDependencies(); +} + +module.exports = { copyDependencies }; \ No newline at end of file diff --git a/entry.js b/entry.js index 2d08022..6581cdb 100644 --- a/entry.js +++ b/entry.js @@ -1,7 +1,7 @@ const { app, BrowserWindow, Menu, dialog, ipcMain, desktopCapturer, Notification, ipcRenderer, protocol, session } = require('electron'); const { autoUpdater } = require('electron-updater'); const os = require('os'); -const pie = require("puppeteer-in-electron") +const pie = require("puppeteer-in-electron"); const puppeteer = require("puppeteer-core"); const path = require('path'); const https = require('https'); @@ -13,6 +13,8 @@ const argv = require('yargs').argv; const { exec } = require('child_process'); const { rr } = require('./rr'); const { HttpsProxyAgent } = require('https-proxy-agent'); +const { spawn } = require('child_process'); + app.disableHardwareAcceleration(); @@ -39,8 +41,8 @@ let from_okan = false; const CONFIG = { - ENDPOINT_URL_APPS: 'https://rpa8dev.okan.tools/users/apps/byUserAdOrDocument', - ENDPOINT_URL_APP: 'https://rpa8dev.okan.tools/app', + ENDPOINT_URL_APPS: 'https://rpa.okan.tools/users/apps/byUserAdOrDocument', + ENDPOINT_URL_APP: 'https://rpa.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', @@ -88,6 +90,90 @@ const setupLogging = async () => { }); }; +// Función para manejar cookies en ASC069 +async function handleCookiesASC069(page, data_code) { + if (data_code === 'ASC069') { + console.log('>> Verificando popup de cookies para ASC069...'); + + try { + // Lista de selectores comunes para popups de cookies + const cookieSelectors = [ + // Selectores comunes para botones de aceptar cookies + 'button[id*="accept"]', + 'button[class*="accept"]', + 'button[id*="cookie"]', + 'button[class*="cookie"]', + '[data-cy*="accept"]', + '[data-testid*="accept"]', + // Selectores por texto + '//button[contains(text(), "Aceptar")]', + '//button[contains(text(), "Accept")]', + '//button[contains(text(), "Acepto")]', + '//button[contains(text(), "OK")]', + '//button[contains(text(), "Continuar")]', + '//a[contains(text(), "Aceptar")]', + '//a[contains(text(), "Accept")]', + // Selectores específicos de ASCard si los conoces + '#cookie-accept', + '.cookie-accept', + '[data-cookie="accept"]' + ]; + + let cookieHandled = false; + + // Intentar con selectores CSS primero + for (const selector of cookieSelectors.filter(s => !s.startsWith('//'))) { + try { + await page.waitForSelector(selector, { timeout: 2000 }); + const element = await page.$(selector); + if (element) { + await element.click(); + console.log(`>> Cookies aceptadas automáticamente usando selector: ${selector}`); + cookieHandled = true; + break; + } + } catch (e) { + // Continuar con el siguiente selector + } + } + + // Si no funcionó con CSS, intentar con XPath + if (!cookieHandled) { + for (const xpath of cookieSelectors.filter(s => s.startsWith('//'))) { + try { + await page.waitForXPath(xpath, { timeout: 2000 }); + const elements = await page.$x(xpath); + if (elements && elements.length > 0) { + await elements[0].click(); + console.log(`>> Cookies aceptadas automáticamente usando XPath: ${xpath}`); + cookieHandled = true; + break; + } + } catch (e) { + // Continuar con el siguiente XPath + } + } + } + + if (cookieHandled) { + // Esperar un momento para que se procese la aceptación + await page.waitForTimeout(2000); + console.log('>> Popup de cookies manejado correctamente'); + return true; + } else { + console.log('>> No se detectó popup de cookies o no se pudo manejar automáticamente'); + return false; + } + + } catch (error) { + console.log('>> Error al manejar cookies:', error.message); + return false; + } + } + return true; // Para otros códigos, continuar normalmente +} + + async function getOkanToken() { try { const agent = new HttpsProxyAgent(CONFIG.PROXY); @@ -571,6 +657,680 @@ const mainIni = async () => { }; +async function openExternalBrowserForTYD075(webApp) { + console.log('>> Iniciando TYD075 en navegador externo'); + + try { + const puppeteer = require('puppeteer'); + + const browser = await puppeteer.launch({ + headless: false, + defaultViewport: null, + args: [ + `--app=${webApp.url}`, + '--start-maximized', + '--no-sandbox', + '--disable-setuid-sandbox' + ], + executablePath: process.platform === 'win32' + ? 'C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe' + : undefined + }); + + const pages = await browser.pages(); + const page = pages[0]; + + await new Promise(resolve => setTimeout(resolve, 5000)); + + console.log('>> Rellenando credenciales para TYD075'); + + await page.waitForSelector('#username', { timeout: 10000 }); + const usernameField = await page.$('#username'); + if (usernameField) { + await usernameField.click({ clickCount: 3 }); + await usernameField.type(webApp.username, { delay: 5 }); + console.log('>> Campo usuario rellenado'); + } + + await page.waitForSelector('#password', { timeout: 5000 }); + const passwordField = await page.$('#password'); + if (passwordField) { + await passwordField.click({ clickCount: 3 }); + await passwordField.type(webApp.password, { delay: 5 }); + console.log('>> Campo contraseña rellenado'); + } + + await page.waitForSelector('#loginform fieldset button', { timeout: 5000 }); + const loginButton = await page.$('#loginform fieldset button'); + if (loginButton) { + await loginButton.click(); + console.log('>> Click en botón de login realizado'); + + try { + await page.waitForNavigation({ + waitUntil: 'networkidle0', + timeout: 1500 + }); + console.log('>> Navegación después del login completada'); + + await page.evaluate(() => { + document.addEventListener('contextmenu', event => event.preventDefault()); + + document.addEventListener('keydown', (e) => { + if ( + e.key === 'F12' || + (e.ctrlKey && e.shiftKey && e.key === 'I') || + (e.ctrlKey && e.shiftKey && e.key === 'J') || + (e.ctrlKey && e.key === 'U') + ) { + e.preventDefault(); + e.stopPropagation(); + return false; + } + }); + }); + + console.log('>> Medidas de seguridad aplicadas correctamente'); + + } catch (navError) { + console.log('>> No hubo navegación o ya estamos en la página correcta'); + + try { + await page.evaluate(() => { + document.addEventListener('contextmenu', event => event.preventDefault()); + + document.addEventListener('keydown', (e) => { + if ( + e.key === 'F12' || + (e.ctrlKey && e.shiftKey && e.key === 'I') || + (e.ctrlKey && e.shiftKey && e.key === 'J') || + (e.ctrlKey && e.key === 'U') + ) { + e.preventDefault(); + e.stopPropagation(); + return false; + } + }); + + const userField = document.querySelector('#username'); + const passField = document.querySelector('#password'); + const loginBtn = document.querySelector('#loginform fieldset button'); + + if (userField) { + userField.setAttribute('readonly', 'true'); + userField.style.pointerEvents = 'none'; + } + if (passField) { + passField.setAttribute('readonly', 'true'); + passField.style.pointerEvents = 'none'; + } + if (loginBtn) { + loginBtn.style.pointerEvents = 'none'; + } + }); + } catch (evalError) { + console.log('>> Error al aplicar medidas de seguridad:', evalError.message); + } + } + } + + await new Promise(resolve => setTimeout(resolve, 5000)); + + try { + const errorElements = await page.$x('//*[contains(text(), "incorrect") or contains(text(), "error") or contains(text(), "invalid")]'); + if (errorElements.length > 0) { + console.log('>> Error de credenciales detectado'); + dialog.showErrorBox('Error', 'Credenciales incorrectas para TYD075. Por favor, repórtalo al Coordinador'); + await browser.close(); + return false; + } + } catch (e) { + console.log('>> No se detectaron errores de login'); + } + + console.log('>> TYD075 iniciado exitosamente en navegador externo'); + + return true; + + } catch (error) { + console.error('>> Error al abrir TYD075 en navegador externo:', error); + dialog.showErrorBox('Error', `No se pudo abrir TYD075: ${error.message}`); + return false; + } +} + +async function openExternalBrowserForDIM072(webApp) { + console.log('>> Iniciando DIM072 en navegador externo'); + + try { + const puppeteer = require('puppeteer'); + + const browser = await puppeteer.launch({ + headless: false, + defaultViewport: null, + args: [ + `--app=${webApp.url}`, + '--start-maximized', + '--no-sandbox', + '--disable-setuid-sandbox' + ], + executablePath: process.platform === 'win32' + ? 'C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe' + : undefined + }); + + const pages = await browser.pages(); + const page = pages[0]; + + await new Promise(resolve => setTimeout(resolve, 1000)); + + console.log('>> Rellenando credenciales para DIM072'); + + await page.waitForSelector('#Usuario', { timeout: 5000 }); + const usernameField = await page.$('#Usuario'); + if (usernameField) { + await usernameField.click({ clickCount: 3 }); + await usernameField.type(webApp.username, { delay: 5 }); + console.log('>> Campo usuario rellenado'); + } + + await page.waitForSelector('#Contrase_a', { timeout: 5000 }); + const passwordField = await page.$('#Contrase_a'); + if (passwordField) { + await passwordField.click({ clickCount: 3 }); + await passwordField.type(webApp.password, { delay: 5 }); + console.log('>> Campo contraseña rellenado'); + } + + await new Promise(resolve => setTimeout(resolve, 250)); + + await page.waitForSelector('button[class="btn btn-lg red"]', { timeout: 5000 }); + const loginButton = await page.$('button[class="btn btn-lg red"]'); + if (loginButton) { + await loginButton.click(); + console.log('>> Click en botón de login realizado'); + + try { + await page.waitForNavigation({ + waitUntil: 'networkidle0', + timeout: 1500 + }); + console.log('>> Navegación después del login completada'); + + await page.evaluate(() => { + document.addEventListener('contextmenu', event => event.preventDefault()); + document.addEventListener('keydown', (e) => { + if ( + e.key === 'F12' || + (e.ctrlKey && e.shiftKey && e.key === 'I') || + (e.ctrlKey && e.shiftKey && e.key === 'J') || + (e.ctrlKey && e.key === 'U') + ) { + e.preventDefault(); + e.stopPropagation(); + return false; + } + }); + }); + + console.log('>> Medidas de seguridad aplicadas correctamente'); + + } catch (navError) { + console.log('>> No hubo navegación o ya estamos en la página correcta'); + + try { + await page.evaluate(() => { + document.addEventListener('contextmenu', event => event.preventDefault()); + + document.addEventListener('keydown', (e) => { + if ( + e.key === 'F12' || + (e.ctrlKey && e.shiftKey && e.key === 'I') || + (e.ctrlKey && e.shiftKey && e.key === 'J') || + (e.ctrlKey && e.key === 'U') + ) { + e.preventDefault(); + e.stopPropagation(); + return false; + } + }); + + const userField = document.querySelector('#Usuario'); + const passField = document.querySelector('#Contrase_a'); + const loginBtn = document.querySelector('button[class="btn btn-lg red"]'); + + if (userField) { + userField.setAttribute('readonly', 'true'); + userField.style.pointerEvents = 'none'; + } + if (passField) { + passField.setAttribute('readonly', 'true'); + passField.style.pointerEvents = 'none'; + } + if (loginBtn) { + loginBtn.style.pointerEvents = 'none'; + } + }); + } catch (evalError) { + console.log('>> Error al aplicar medidas de seguridad:', evalError.message); + } + } + } + + await new Promise(resolve => setTimeout(resolve, 5000)); + + try { + const errorElements = await page.$x('//*[contains(text(), "incorrect") or contains(text(), "error") or contains(text(), "invalid")]'); + if (errorElements.length > 0) { + console.log('>> Error de credenciales detectado'); + dialog.showErrorBox('Error', 'Credenciales incorrectas para DIM072. Por favor, repórtalo al Coordinador'); + await browser.close(); + return false; + } + } catch (e) { + console.log('>> No se detectaron errores de login'); + } + + console.log('>> DIM072 iniciado exitosamente en navegador externo'); + + return true; + + } catch (error) { + console.error('>> Error al abrir DIM072 en navegador externo:', error); + dialog.showErrorBox('Error', `No se pudo abrir DIM072: ${error.message}`); + return false; + } +} + +async function openExternalBrowserForTUN065(webApp) { + console.log('>> Iniciando TUN065 en navegador externo'); + + try { + const puppeteer = require('puppeteer'); + + const browser = await puppeteer.launch({ + headless: false, + defaultViewport: null, + args: [ + `--app=${webApp.url}`, + '--start-maximized', + '--no-sandbox', + '--disable-setuid-sandbox' + ], + executablePath: process.platform === 'win32' + ? 'C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe' + : undefined + }); + + const pages = await browser.pages(); + const page = pages[0]; + + await new Promise(resolve => setTimeout(resolve, 1000)); + + console.log('>> Rellenando credenciales para TUN065'); + + await page.waitForSelector('input[name="ctl00$cpC$dcLogin$txtUserId"]', { timeout: 5000 }); + const usernameField = await page.$('input[name="ctl00$cpC$dcLogin$txtUserId"]'); + if (usernameField) { + await usernameField.click({ clickCount: 3 }); + await usernameField.type(webApp.username, { delay: 5 }); + console.log('>> Campo usuario rellenado'); + } + + await page.waitForSelector('input[name="ctl00$cpC$dcLogin$txtPassword"]', { timeout: 5000 }); + const passwordField = await page.$('input[name="ctl00$cpC$dcLogin$txtPassword"]'); + if (passwordField) { + await passwordField.click({ clickCount: 3 }); + await passwordField.type(webApp.password, { delay: 5 }); + console.log('>> Campo contraseña rellenado'); + } + + await new Promise(resolve => setTimeout(resolve, 50)); + + await page.waitForSelector('div[class="button fs-bold text-center"]', { timeout: 5000 }); + const loginButton = await page.$('div[class="button fs-bold text-center"]'); + if (loginButton) { + await loginButton.click(); + console.log('>> Click en botón de login realizado'); + + try { + await page.waitForNavigation({ + waitUntil: 'networkidle0', + timeout: 1000 + }); + console.log('>> Navegación después del login completada'); + + await page.evaluate(() => { + document.addEventListener('contextmenu', event => event.preventDefault()); + document.addEventListener('keydown', (e) => { + if ( + e.key === 'F12' || + (e.ctrlKey && e.shiftKey && e.key === 'I') || + (e.ctrlKey && e.shiftKey && e.key === 'J') || + (e.ctrlKey && e.key === 'U') + ) { + e.preventDefault(); + e.stopPropagation(); + return false; + } + }); + }); + + console.log('>> Medidas de seguridad aplicadas correctamente'); + + } catch (navError) { + console.log('>> No hubo navegación o ya estamos en la página correcta'); + + try { + await page.evaluate(() => { + document.addEventListener('contextmenu', event => event.preventDefault()); + + document.addEventListener('keydown', (e) => { + if ( + e.key === 'F12' || + (e.ctrlKey && e.shiftKey && e.key === 'I') || + (e.ctrlKey && e.shiftKey && e.key === 'J') || + (e.ctrlKey && e.key === 'U') + ) { + e.preventDefault(); + e.stopPropagation(); + return false; + } + }); + + const userField = document.querySelector('input[name="ctl00$cpC$dcLogin$txtUserId"]'); + const passField = document.querySelector('input[name="ctl00$cpC$dcLogin$txtPassword"]'); + const loginBtn = document.querySelector('div[class="button fs-bold text-center"]'); + + if (userField) { + userField.setAttribute('readonly', 'true'); + userField.style.pointerEvents = 'none'; + } + if (passField) { + passField.setAttribute('readonly', 'true'); + passField.style.pointerEvents = 'none'; + } + if (loginBtn) { + loginBtn.style.pointerEvents = 'none'; + } + }); + } catch (evalError) { + console.log('>> Error al aplicar medidas de seguridad:', evalError.message); + } + } + } + + await new Promise(resolve => setTimeout(resolve, 5000)); + + try { + const errorElements = await page.$x('//*[contains(text(), "incorrect") or contains(text(), "error") or contains(text(), "invalid")]'); + if (errorElements.length > 0) { + console.log('>> Error de credenciales detectado'); + dialog.showErrorBox('Error', 'Credenciales incorrectas para TUN065. Por favor, repórtalo al Coordinador'); + await browser.close(); + return false; + } + } catch (e) { + console.log('>> No se detectaron errores de login'); + } + + console.log('>> TUN065 iniciado exitosamente en navegador externo'); + + return true; + + } catch (error) { + console.error('>> Error al abrir TUN065 en navegador externo:', error); + dialog.showErrorBox('Error', `No se pudo abrir IDV03: ${error.message}`); + return false; + } +} + +async function openExternalBrowserForPOL(webApp) { + console.log('>> Iniciando POLIEDRO en navegador externo'); + + try { + const puppeteer = require('puppeteer'); + + const browser = await puppeteer.launch({ + headless: false, + defaultViewport: null, + args: [ + `--app=${webApp.url}`, + '--start-maximized', + '--no-sandbox', + '--disable-setuid-sandbox', + '--disable-web-security', + '--disable-features=VizDisplayCompositor' + ], + executablePath: process.platform === 'win32' + ? 'C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe' + : undefined + }); + + const pages = await browser.pages(); + const page = pages[0]; + + await page.waitForLoadState?.('networkidle') || await new Promise(resolve => setTimeout(resolve, 2000)); + + console.log('>> Rellenando credenciales para POLIEDRO'); + + async function fillFieldRobustly(selector, value, fieldName, maxRetries = 3) { + for (let attempt = 1; attempt <= maxRetries; attempt++) { + try { + console.log(`>> Intento ${attempt} para llenar ${fieldName}`); + + await page.waitForSelector(selector, { timeout: 10000 }); + const field = await page.$(selector); + + if (!field) { + throw new Error(`Campo ${fieldName} no encontrado`); + } + + // Limpiar el campo completamente + await field.click({ clickCount: 3 }); + await page.keyboard.press('Delete'); + await page.keyboard.press('Backspace'); + await new Promise(resolve => setTimeout(resolve, 100)); + + // Escribir el valor caracter por caracter para mayor confiabilidad + for (const char of value) { + await page.keyboard.type(char, { delay: 20 }); + await new Promise(resolve => setTimeout(resolve, 10)); + } + + // Verificar que el valor se escribió correctamente + await new Promise(resolve => setTimeout(resolve, 500)); + const currentValue = await page.$eval(selector, el => el.value); + + if (currentValue === value) { + console.log(`>> ${fieldName} rellenado correctamente: `); + return true; + } else { + console.warn(`>> ${fieldName} no coincide. Esperado: , Actual:`); + if (attempt === maxRetries) { + throw new Error(`No se pudo llenar ${fieldName} después de ${maxRetries} intentos`); + } + } + } catch (error) { + console.error(`>> Error en intento ${attempt} para ${fieldName}:`, error.message); + if (attempt === maxRetries) { + throw error; + } + await new Promise(resolve => setTimeout(resolve, 1000)); + } + } + return false; + } + + await fillFieldRobustly('#ctl00_ContentPlaceHolder1_txtUsuario', webApp.username, 'usuario'); + + await new Promise(resolve => setTimeout(resolve, 500)); + + await fillFieldRobustly('#ctl00_ContentPlaceHolder1_txtContraseña', webApp.password, 'contraseña'); + + console.log('>> Realizando validación final de credenciales...'); + await new Promise(resolve => setTimeout(resolve, 250)); + + const finalUsernameCheck = await page.$eval('#ctl00_ContentPlaceHolder1_txtUsuario', el => el.value); + const finalPasswordCheck = await page.$eval('#ctl00_ContentPlaceHolder1_txtContraseña', el => el.value); + + if (finalUsernameCheck !== webApp.username) { + throw new Error(`Usuario final no coincide. Esperado: "${webApp.username}", Actual: "${finalUsernameCheck}"`); + } + + if (finalPasswordCheck !== webApp.password) { + throw new Error(`Contraseña final no coincide. Esperado: , Actual: "${finalPasswordCheck}"`); + } + + console.log('>> Validación final exitosa. Procediendo con el login...'); + + await page.waitForSelector('input[name="ctl00$ContentPlaceHolder1$btnIngresarUsuarioContraseña"]', { timeout: 5000 }); + const loginButton = await page.$('input[name="ctl00$ContentPlaceHolder1$btnIngresarUsuarioContraseña"]'); + + if (loginButton) { + const isDisabled = await page.$eval('input[name="ctl00$ContentPlaceHolder1$btnIngresarUsuarioContraseña"]', el => el.disabled); + if (isDisabled) { + console.warn('>> El botón de login está deshabilitado, esperando...'); + await new Promise(resolve => setTimeout(resolve, 300)); + } + + await loginButton.click(); + console.log('>> Click en botón de login realizado'); + + try { + await new Promise(resolve => setTimeout(resolve, 3000)); + + try { + const hasTokenField = await page.$('td[colspan="2"].auto-style1'); + + if (!hasTokenField) { + const errorElements = await page.evaluate(() => { + const elements = document.querySelectorAll('*'); + for (let element of elements) { + const text = element.textContent.toLowerCase(); + if (text.includes('incorrect') || text.includes('error') || text.includes('invalid') || + text.includes('incorrecto') || text.includes('inválido') || + (text.includes('usuario') && text.includes('contraseña'))) { + return true; + } + } + return false; + }); + + if (errorElements) { + console.log('>> Error de credenciales detectado'); + dialog.showErrorBox('Error', 'Credenciales incorrectas para POLIEDRO. Por favor, repórtalo al Coordinador'); + await browser.close(); + return false; + } + } else { + console.log('>> Campo de token detectado. No se verifica error de login aún.'); + } + } catch (e) { + console.log('>> Error al verificar errores de credenciales:', e.message); + } + + try { + await page.waitForSelector('td[colspan="2"].auto-style1', { + visible: true, + timeout: 2000 + }); + + const element = await page.$('td[colspan="2"].auto-style1'); + const textContent = await page.evaluate(el => el.textContent, element); + console.log(`>> Contenido encontrado: ${textContent.trim()}`); + + if (textContent.includes('token') && textContent.includes('SMS')) { + console.log('>> Campo de token detectado - Habilitando interacción completa'); + + dialog.showMessageBox({ + type: 'info', + title: 'Token SMS Requerido', + message: 'Se ha detectado que se requiere un token SMS. Por favor, ingrese el código que recibió por SMS en la página web y complete el proceso de autenticación.', + buttons: ['Entendido'] + }); + + let authCompleted = false; + let attempts = 0; + const maxAttempts = 15; + + while (!authCompleted && attempts < maxAttempts) { + await new Promise(resolve => setTimeout(resolve, 5000)); + attempts++; + + try { + const tokenFieldStillExists = await page.$('td[colspan="2"].auto-style1'); + if (!tokenFieldStillExists) { + authCompleted = true; + console.log('>> Autenticación completada - Campo de token ya no presente'); + break; + } + + const currentUrl = page.url(); + const pageTitle = await page.title(); + if (!currentUrl.includes('/login') && !pageTitle.toLowerCase().includes('login')) { + authCompleted = true; + console.log('>> Autenticación completada - Navegación detectada'); + break; + } + + console.log(`>> Esperando autenticación... Intento ${attempts}/${maxAttempts}`); + } catch (e) { + console.log('>> Error al verificar estado de autenticación:', e.message); + } + } + + if (!authCompleted && attempts >= maxAttempts) { + console.log('>> Tiempo de espera agotado para autenticación OTP'); + dialog.showWarningBox('Tiempo Agotado', + 'El tiempo de espera para la autenticación OTP ha expirado. La sesión seguirá activa, pero puede que necesite completar manualmente el proceso.'); + } + } + } catch (otpError) { + console.log('>> No se detectó campo de token OTP, continuando...'); + } + + try { + await page.evaluate(() => { + document.addEventListener('contextmenu', event => event.preventDefault()); + document.addEventListener('keydown', (e) => { + if ( + e.key === 'F12' || + (e.ctrlKey && e.shiftKey && e.key === 'I') || + (e.ctrlKey && e.shiftKey && e.key === 'J') || + (e.ctrlKey && e.key === 'U') + ) { + e.preventDefault(); + e.stopPropagation(); + return false; + } + }); + }); + + console.log('>> Medidas de seguridad aplicadas correctamente'); + } catch (securityError) { + console.log('>> Error al aplicar medidas de seguridad:', securityError.message); + } + + } catch (loginError) { + console.log('>> Error durante el proceso de login:', loginError.message); + dialog.showErrorBox('Error', `Error durante el proceso de login: ${loginError.message}`); + await browser.close(); + return false; + } + } + + await new Promise(resolve => setTimeout(resolve, 2000)); + console.log('>> POLIEDRO iniciado exitosamente en navegador externo'); + return true; + + } catch (error) { + console.error('>> Error al abrir POLIEDRO en navegador externo:', error); + dialog.showErrorBox('Error', `No se pudo abrir POLIEDRO: ${error.message}`); + return false; + } +} + async function rpa(data_code) { console.log('>> Iniciando RPA'); @@ -591,6 +1351,93 @@ async function rpa(data_code) { xpath_username = deskApp.xpath_username; xpath_password = deskApp.xpath_password; xpath_button = deskApp.btn_login; + + if (type == 'desktop') { + switch (data_code) { + case 'IRR123': + console.log('=== INICIANDO PROCESO IRR123 ==='); + console.log(`Timestamp: ${new Date().toISOString()}`); + console.log(`Usuario: ${username}`); + console.log('Ejecutando función rr() para automatización AS400...'); + + rrtest = rr(username, password); + console.log(`Resultado de rr(): ${rrtest}`); + console.log('=== PROCESO IRR123 COMPLETADO ==='); + break; + + case 'ACC098': + console.log('ACC098'); + + programa = '"C:\\Program Files (x86)\\AC Administración de Clientes\\AC Administrador de Clientes.exe"'; + exec(programa, (error, stdout, stderr) => { + if (error) { + console.error(`Error al abrir el programa: ${error.message}`); + return; + } + if (stderr) { + console.error(`Error en la salida estándar: ${stderr}`); + return; + } + console.log(`Salida del programa: ${stdout}`); + }); + + break; + + case 'AVY003': + console.log('AVY003'); + + programa = '"C:\\Program Files (x86)\\Avaya\\Avaya one-X Agent\\OneXAgentUI.exe"'; + exec(programa, (error, stdout, stderr) => { + // if (error) { + // console.error(`Error al abrir el programa: ${error.message}`); + // return; + // } + if (stderr) { + console.error(`Error en la salida estándar: ${stderr}`); + return; + } + console.log(`Salida del programa: ${stdout}`); + }); + + break; + + case 'XLT001': + console.log('XLT001'); + + programa = '"C:\\Program Files (x86)\\CounterPath\\X-Lite\\x-lite.exe"'; + exec(programa, (error, stdout, stderr) => { + if (error) { + console.error(`Error al abrir el programa: ${error.message}`); + return; + } + if (stderr) { + console.error(`Error en la salida estándar: ${stderr}`); + return; + } + console.log(`Salida del programa: ${stdout}`); + }); + + break; + + case 'CTB002': + console.log('CTB002'); + + programa = '"C:\\avaya\\CTIbar\\ctibar.exe"'; + exec(programa, (error, stdout, stderr) => { + if (error) { + console.error(`Error al abrir el programa: ${error.message}`); + return; + } + if (stderr) { + console.error(`Error en la salida estándar: ${stderr}`); + return; + } + console.log(`Salida del programa: ${stdout}`); + }); + + break; + } + } } else if (webApp) { type = 'web'; url_platform = webApp.url; @@ -600,6 +1447,42 @@ async function rpa(data_code) { xpath_password = webApp.xpath_pass; xpath_button = webApp.btn_login; + if (data_code === 'TYD075') { + console.log('>> Detectado TYD075 - Usando navegador externo'); + const success = await openExternalBrowserForTYD075(webApp); + if (!success) { + console.log('>> Error al procesar TYD075'); + } + return; + } + + if (data_code === 'DIM072') { + console.log('>> Detectado DIM072 - Usando navegador externo'); + const success = await openExternalBrowserForDIM072(webApp); + if (!success) { + console.log('>> Error al procesar DIM072'); + } + return; + } + + if (data_code === 'TUN065') { + console.log('>> Detectado TUN065 - Usando navegador externo'); + const success = await openExternalBrowserForTUN065(webApp); + if (!success) { + console.log('>> Error al procesar TUN065'); + } + return; + } + + if (data_code === 'POL911' || data_code === 'POL912' || data_code === 'POL913' || data_code === 'POL914' || data_code === 'POL915' || data_code === 'POD911') { + console.log('>> Detectado POLIEDRO - Usando navegador externo'); + const success = await openExternalBrowserForPOL(webApp); + if (!success) { + console.log('>> Error al procesar POLIEDRO'); + } + return; + } + if (!windowNew || windowNew.isDestroyed()) { windowNew = new BrowserWindow({ args: ['--no-sandbox', '--disable-setuid-sandbox', '--ignore-certificate-errors'], @@ -620,10 +1503,15 @@ async function rpa(data_code) { console.log('>> Ventana cerrada'); }); + console.log('Esta es la url act: ' + webApp.url); + + if (data_code == 'POL911' || data_code == 'POL912' || data_code == 'POL913' || data_code == 'POL914' || data_code == 'POL915' || data_code == 'POD911') { + webApp.url = 'https://poliedro.comcel.com.co/LoginPoliedro/Login.aspx'; + } windowNew.loadURL(webApp.url); windowNew.show(); windowNew.maximize(); - windowNew.setIgnoreMouseEvents(true); + windowNew.setIgnoreMouseEvents(false); if (process.env.MODE != 'prod') { windowNew.openDevTools(); @@ -657,237 +1545,449 @@ async function rpa(data_code) { console.log(`>> Tipo: ${type}`); if (type != 'desktop') { console.log(`>> URL: ${url_platform}`); - } - console.log(`>> Username: ${username}`); - console.log(`>> Password: **********`); - console.log('>> Xpath username: ' + xpath_username); - console.log('>> Xpath password: ' + xpath_password); - console.log('>> Xpath button: ' + xpath_button); - - console.log('--------------------------'); - console.log('Abriendo aplicativo'); - console.log('--------------------------'); - try { - - app.on('login', (event, webContents, request, authInfo, callback) => { - console.log('______________________login___________________'); - event.preventDefault(); - callback(username, password); - }); - - windowNew.setOpacity(1); - windowNew.maximize(); - windowNew.setMenu(null); - windowNew.setIgnoreMouseEvents(true); - - if (process.env.MODE != 'prod') { - windowNew.openDevTools(); - windowNew.setIgnoreMouseEvents(false); - } - - console.log('>> Url aplicativo: ' + url_platform); - const allowedCodes = ['SMO098', 'CTD094', 'SGC095', 'MAX096', 'CUP045']; - const specialCodes = ['MAP039']; - const loginCodes = ['ATB089', 'VTT046', 'DSC047', 'SMO098', 'CTD094', 'SGC095', 'MAX096', 'CUP045', 'BDC087']; - let url_mod; - - if (allowedCodes.includes(data_code)) { - // url_mod = `http://${username}:${password}@${data_response_service.App.replace('http://', '')}`; - url_mod = url_platform; - } else { - url_mod = url_platform; - } - + console.log(`>> Username: ${username}`); + console.log(`>> Password: **********`); + console.log('>> Xpath username: ' + xpath_username); + console.log('>> Xpath password: ' + xpath_password); + console.log('>> Xpath button: ' + xpath_button); + console.log('--------------------------'); + console.log('Abriendo aplicativo'); + console.log('--------------------------'); try { - if (data_code == 'POL911' || data_code == 'POL912' || data_code == 'POL913' || data_code == 'POL914' || data_code == 'POL915' || data_code == 'POD911') { - console.log('si poliedro'); - url_mod = 'https://poliedro.comcel.com.co/LoginPoliedro/Login.aspx'; - } - if (data_code == 'BDC087') { - url_mod = 'http://100.123.251.118:8082/componentes/ASP/consultabroadcast.aspx' - } - if (data_code == 'SRA074') { - url_mod = 'http://100.126.20.149:8080/sara/index.html' - } + app.on('login', (event, webContents, request, authInfo, callback) => { + console.log('______________________login___________________'); + event.preventDefault(); + callback(username, password); + }); - await windowNew.loadURL(url_mod); - console.log('>> Cargo la pagina'); - } catch (error) { - console.log('>> No se pudo cargar la pagina: ' + error); - dialog.showErrorBox('Error', 'No se pudo cargar la pagina. Por favor reporta al Helpdesk'); windowNew.setOpacity(1); - windowNew.close(); - } + windowNew.maximize(); + windowNew.setMenu(null); + windowNew.setIgnoreMouseEvents(true); + + if (process.env.MODE != 'prod') { + windowNew.openDevTools(); + windowNew.setIgnoreMouseEvents(false); + } + + console.log('>> Url aplicativo: ' + url_platform); + + let data_response_service = { + App: webApp.url || url_platform + }; + + const allowedCodes = ['SMO098', 'CTD094', 'SGC095', 'MAX096', 'CUP045']; + const specialCodes = ['MAP039']; + const loginCodes = ['ATB089', 'VTT046', 'DSC047', 'SMO098', 'CTD094', 'SGC095', 'MAX096', 'CUP045', 'BDC087']; + let url_mod; + + if (allowedCodes.includes(data_code)) { + url_mod = `http://${username}:${password}@${data_response_service.App.replace('http://', '')}`; + url_mod = url_platform; + } else { + url_mod = url_platform; + } - // const page = await pie.getPage(browser, windowNew); - try { - // const pages = await browser.pages().then(pages => pages).catch(err => console.error(err)); - // console.log(pages); - // var page; - var pageUrl; - // for (const pages_sel of pages) { - // const pageUrl = await pages_sel.url(); - // // console.log('la obtenida: ' + pageUrl + '_____' + 'la real: ' + url_mod); - // if (pageUrl == 'http://100.126.20.149:8080/sara/login') { - // url_mod = 'http://100.126.20.149:8080/sara/login'; - // } - // if (pageUrl == 'http://dime.claro.com.co/Portal/Produccion/Sesion/Inicio/Ingresar?ReturnUrl=%2FPortal%2FProduccion%2FFidelizacion%2FRetencion%2FRegistrarSolicitud%3Fdato%3D1007227477%26Cuenta%3D89715445%26Ticket%3D1%26Internet%3D1%26TV%3D1%26Telefonia%3D0') { - // url_mod = 'http://dime.claro.com.co/Portal/Produccion/Sesion/Inicio/Ingresar?ReturnUrl=%2FPortal%2FProduccion%2FFidelizacion%2FRetencion%2FRegistrarSolicitud%3Fdato%3D1007227477%26Cuenta%3D89715445%26Ticket%3D1%26Internet%3D1%26TV%3D1%26Telefonia%3D0'; - // } - // if (pageUrl === url_mod) { - // console.log(`Ok pagina`); - // page = pages_sel; - // break; // Detén el bucle cuando encuentras la coincidencia - // } - // } - - if (page) { - console.log(`Nombre de la pagina: ${await page.title()}`); - // await page.waitForLoad(); - if (xpath_username != 'na') { - if (data_code == 'POL911' || data_code == 'POL912' || data_code == 'POL913' || data_code == 'POL914' || data_code == 'POL915' || data_code == 'POD911') { - await page.waitForXPath('//input[@id="ctl00_ContentPlaceHolder1_BtnRegresarMensaje"]'); - const backBtn = await page.$x('//input[@id="ctl00_ContentPlaceHolder1_BtnRegresarMensaje"]'); - await backBtn[0].click(); - } - if (!loginCodes.includes(data_code)) { - - if (data_code == 'CLU100') { - const elementHandleClu = await page.$('.sign-in-uclaro'); - if (elementHandleClu) { - await elementHandleClu.click(); - } - } - - await page.waitForXPath(xpath_username); - const elementHandleUser = await page.$x(xpath_username); - await elementHandleUser[0].type('', { delay: 100 }); - await elementHandleUser[0].type(username); - console.log('>> Diligencio campo usuario'); - - if (data_code == 'ABS099') { - await page.keyboard.press("Enter"); - } else { - await page.keyboard.press("Tab"); - } - - if (data_code == 'AGE036') { - await page.waitForTimeout(4000); - } else { - await page.waitForTimeout(1000); - } - - await page.waitForXPath(xpath_password); - const elementHandlePass = await page.$x(xpath_password); - await elementHandlePass[0].type('', { delay: 100 }); - await elementHandlePass[0].type(password); - console.log('>> Diligencio campo password'); - - await page.waitForTimeout(1000); - const xpathMap = { - 'DIM072': '//button[contains(@id, "btiniciar")]', - 'CLU100': '//button[contains(@class, "ingresarBoton")]', - 'MAP039': xpath_button, - 'CMC093': xpath_button, - 'MCA030': '//input[contains(@id, "login-button")]' - }; - - const xpath = xpathMap[data_code] || null; - - if (xpath) { - const elementHandle = await page.$x(xpath); - if (elementHandle && elementHandle.length > 0) { - await elementHandle[0].click(); - console.log('>> Se dio click en boton'); - } else { - console.log('>> No encontro boton'); - } - } else { - await page.keyboard.press('Enter'); - } - } - - // await page.waitForTimeout(70000); + try { + if (data_code == 'BDC087') { + url_mod = 'http://100.123.251.118:8082/componentes/ASP/consultabroadcast.aspx' + } + if (data_code == 'SRA074') { + url_mod = 'http://100.126.20.149:8080/sara/index.html' + } - console.log('>> Envio formulario'); + await windowNew.loadURL(url_mod); + // Manejar casos especiales de tiempo de espera + if (data_code == 'POL911' || data_code == 'POL912' || data_code == 'POL913' || data_code == 'POL914' || data_code == 'POL915' || data_code == 'POD911') { + await new Promise(resolve => setTimeout(resolve, 5000)); + } - await page.waitForTimeout(7000); + // **NUEVO: Manejar cookies para ASC069** + if (data_code === 'ASC069') { + console.log('>> Procesando aplicativo ASC069 - Verificando cookies...'); + await new Promise(resolve => setTimeout(resolve, 3000)); // Esperar a que cargue completamente - if (data_code == 'POL911' || data_code == 'POL912' || data_code == 'POL913' || data_code == 'POL914' || data_code == 'POL915' || data_code == 'POD911') { - elementToken = await page.$x(`//*[contains(text(), "un nuevo token a su dispositivo")]`, { timeout: 1000 }); - if (elementToken) { - console.log('>> No se encontro mensaje de error de credenciales:'); - } else { - console.log('>> Se encontro mensaje de error de credenciales:'); - dialog.showErrorBox('Error', 'Parece que hubo un problema con el ingreso. Por favor, repórtalo al Coordinador'); - windowNew.close(); - } - } else { - const checkAndClose = async (message, text, xpath) => { - var elementHandles; - if (xpath) { - elementHandles = await page.$x(text, { timeout: 1000 }); - } else { - if (data_code != 'SRA074' && text != 'valid') { - elementHandles = await page.$x(`//*[contains(text(), "${text}")]`, { timeout: 1000 }); + const cookiesHandled = await handleCookiesASC069(page, data_code); + + if (!cookiesHandled) { + console.log('>> No se pudieron manejar las cookies automáticamente'); + console.log('>> Permitiendo interacción manual del usuario'); + + // Habilitar interacción del usuario temporalmente + windowNew.setIgnoreMouseEvents(false); + + // Mostrar notificación al usuario + const notification = new Notification({ + title: 'Acción requerida - ASC069', + body: 'Por favor, acepta las cookies manualmente y el proceso continuará automáticamente', + icon: 'logo-claro.ico' + }); + notification.show(); + + // Esperar un tiempo razonable para que el usuario acepte las cookies + await new Promise(resolve => setTimeout(resolve, 10000)); + + // Verificar si la página cambió (indicando que se aceptaron las cookies) + try { + // Intentar detectar si el popup de cookies ya no está presente + const cookiePopupGone = await page.$eval('body', () => { + // Buscar indicadores comunes de que el popup se cerró + const commonCookieIndicators = [ + '[class*="cookie"]', + '[id*="cookie"]', + '[data-cookie]', + '.modal[style*="display: block"]' + ]; + + for (const selector of commonCookieIndicators) { + if (document.querySelector(selector)) { + return false; // Aún hay popup + } } - } + return true; // Popup desapareció + }); - - if (elementHandles && elementHandles.length > 0) { - if (data_code == 'VIM059' && elementHandles.length <= 2) { - - } else if (data_code == 'DIM072' && elementHandles.length <= 1) { - - } - else { - console.log('Se encontro mensaje de error de credenciales: ${message}'); - dialog.showErrorBox('Error', 'Parece que hubo un problema con el ingreso. Por favor, repórtalo al Coordinador'); - windowNew.close(); - } + if (cookiePopupGone) { + console.log('>> Cookies aparentemente aceptadas por el usuario'); } else { - console.log('>> No se encontro mensaje de error de credenciales: ${message}'); + console.log('>> Continuando proceso - el usuario debe haber manejado las cookies'); } - }; - await checkAndClose('Incorrect', 'incorrect', false) || - await checkAndClose('Incorrectos', 'INCORRECTOS', false) || - await checkAndClose('Error', 'error', false) || - await checkAndClose('Error', 'Error', false) || - await checkAndClose('Errada', 'errad', false) || - await checkAndClose('Valid', 'valid', false) || - await checkAndClose('Could not log', 'could not log', false) || - await checkAndClose('Form', xpath_username, true); + } catch (e) { + console.log('>> Continuando con el proceso normal'); + } + // Continuar con el proceso automático + windowNew.setIgnoreMouseEvents(true); } } - windowNew.setIgnoreMouseEvents(false); - // windowNew.setOpacity(1); - // windowNew.maximize(); - // windowNew.focus(); - } else { - console.log('>> No se encontro ninguna pagina con la URL proporcionada.'); + + console.log('>> Cargo la pagina'); + } catch (error) { + console.log('>> No se pudo cargar la pagina: ' + error); + dialog.showErrorBox('Error', 'No se pudo cargar la pagina. Por favor reporta al Helpdesk'); + windowNew.setOpacity(1); + windowNew.close(); } - } catch (error) { - console.log(error); - } + // const page = await pie.getPage(browser, windowNew); + try { + // const pages = await browser.pages().then(pages => pages).catch(err => console.error(err)); + // console.log(pages); + // var page; + var pageUrl; - } catch (error) { - windowNew.setOpacity(1); - windowNew.close(); - console.error('Ha ocurrido un error ', data_code, error); - dialog.showErrorBox('Error', 'Ha ocurrido un error ' + error); + // for (const pages_sel of pages) { + // const pageUrl = await pages_sel.url(); + // // console.log('la obtenida: ' + pageUrl + '_____' + 'la real: ' + url_mod); + // if (pageUrl == 'http://100.126.20.149:8080/sara/login') { + // url_mod = 'http://100.126.20.149:8080/sara/login'; + // } + // if (pageUrl == 'http://dime.claro.com.co/Portal/Produccion/Sesion/Inicio/Ingresar?ReturnUrl=%2FPortal%2FProduccion%2FFidelizacion%2FRetencion%2FRegistrarSolicitud%3Fdato%3D1007227477%26Cuenta%3D89715445%26Ticket%3D1%26Internet%3D1%26TV%3D1%26Telefonia%3D0') { + // url_mod = 'http://dime.claro.com.co/Portal/Produccion/Sesion/Inicio/Ingresar?ReturnUrl=%2FPortal%2FProduccion%2FFidelizacion%2FRetencion%2FRegistrarSolicitud%3Fdato%3D1007227477%26Cuenta%3D89715445%26Ticket%3D1%26Internet%3D1%26TV%3D1%26Telefonia%3D0'; + // } + // if (pageUrl === url_mod) { + // console.log(`Ok pagina`); + // page = pages_sel; + // break; // Detén el bucle cuando encuentras la coincidencia + // } + // } + + if (page) { + console.log(`Nombre de la pagina: ${await page.title()}`); + + if (data_code == 'ASW049') { + console.log('avaya web'); + await new Promise(resolve => setTimeout(resolve, 5000)); + console.log('okan avaya'); + } + + // await page.waitForLoad(); + if (xpath_username != 'na') { + // if (data_code == 'POL911' || data_code == 'POL912' || data_code == 'POL913' || data_code == 'POL914' || data_code == 'POL915' || data_code == 'POD911') { + // await page.waitForXPath('//input[@id="ctl00_ContentPlaceHolder1_BtnRegresarMensaje"]'); + // const backBtn = await page.$x('//input[@id="ctl00_ContentPlaceHolder1_BtnRegresarMensaje"]'); + // await backBtn[0].click(); + // } + if (!loginCodes.includes(data_code)) { + + if (data_code == 'CLU100') { + const elementHandleClu = await page.$('.sign-in-uclaro'); + if (elementHandleClu) { + await elementHandleClu.click(); + } + } + //empieza a llenar el campo de usuario + await page.waitForXPath(xpath_username); + const elementHandleUser = await page.$x(xpath_username); + await elementHandleUser[0].type('', { delay: 100 }); + await elementHandleUser[0].type(username); + console.log('>> Diligencio campo usuario'); + + if (data_code == 'ABS099') { + await page.keyboard.press("Enter"); + } else { + await page.keyboard.press("Tab"); + } + + if (data_code == 'AGE036') { + await page.waitForTimeout(4000); + + } else { + await page.waitForTimeout(1000); + } + + await page.waitForXPath(xpath_password); + const elementHandlePass = await page.$x(xpath_password); + await elementHandlePass[0].type('', { delay: 100 }); + await elementHandlePass[0].type(password); + console.log('>> Diligencio campo password'); + + await page.waitForTimeout(1000); + + // Manejo específico para MAP039 + if (data_code === 'MAP039') { + console.log('>> Procesando botón de login para MAP039...'); + + try { + console.log('>> Intentando submit directo del formulario...'); + const formSubmitted = await page.evaluate(() => { + const form = document.querySelector('form.vc_menu-search'); + if (form) { + form.submit(); + return true; + } + return false; + }); + + if (formSubmitted) { + console.log('>> Formulario enviado con submit()'); + } else { + console.log('>> Intentando disparar evento submit...'); + await page.evaluate(() => { + const form = document.querySelector('form.vc_menu-search'); + if (form) { + const submitEvent = new Event('submit', { + bubbles: true, + cancelable: true + }); + form.dispatchEvent(submitEvent); + } + }); + console.log('>> Evento submit disparado'); + } + + } catch (error) { + console.log('>> Error con submit:', error.message); + + try { + console.log('>> Intentando click forzado en div Entrar...'); + await page.evaluate(() => { + const enterDiv = document.querySelector('.vc_menu-send'); + if (enterDiv) { + const clickEvent = new MouseEvent('click', { + bubbles: true, + cancelable: true, + view: window + }); + enterDiv.dispatchEvent(clickEvent); + } + }); + console.log('>> Click forzado realizado'); + } catch (clickError) { + console.log('>> Click forzado falló:', clickError.message); + + console.log('>> Intentando Enter en campo contraseña...'); + await page.focus('#contra'); + await page.keyboard.press('Enter'); + } + } + + await page.waitForTimeout(2000); + + } else { + const xpathMap = { + 'DIM072': '//button[contains(@id, "btiniciar")]', + 'CLU100': '//button[contains(@class, "ingresarBoton")]', + 'CMC093': xpath_button, + 'MCA030': '//input[contains(@id, "login-button")]' + }; + + const xpath = xpathMap[data_code] || null; + + if (xpath) { + try { + await page.waitForXPath(xpath, { timeout: 5000 }); + const elementHandle = await page.$x(xpath); + if (elementHandle && elementHandle.length > 0) { + await elementHandle[0].click(); + console.log('>> Se dio click en boton'); + } else { + console.log('>> No encontro boton'); + await page.keyboard.press('Enter'); + } + } catch (error) { + console.log('>> Error esperando botón, usando Enter'); + await page.keyboard.press('Enter'); + } + } else { + await page.keyboard.press('Enter'); + } + } + } + + // await page.waitForTimeout(70000); + + + console.log('>> Envio formulario'); + + await page.waitForTimeout(7000); + + if (data_code == 'POL911' || data_code == 'POL912' || data_code == 'POL913' || data_code == 'POL914' || data_code == 'POL915' || data_code == 'POD911') { + console.log('>> Procesando aplicativo Poliedro'); + try { + console.log('>> Esperando campo de token...'); + + try { + await page.waitForSelector('td[colspan="2"][class="auto-style1"]', { + visible: true, + timeout: 10000 + }); + + const element = await page.$('td[colspan="2"][class="auto-style1"]'); + const textContent = await page.evaluate(el => el.textContent, element); + console.log(`>> Contenido encontrado: ${textContent.trim()}`); + + if (textContent.includes('token') && textContent.includes('SMS')) { + console.log('>> Campo de token detectado - Habilitando interacción completa'); + + windowNew.setIgnoreMouseEvents(false); + + windowNew.show(); + windowNew.focus(); + windowNew.setAlwaysOnTop(true); + setTimeout(() => { + windowNew.setAlwaysOnTop(false); + }, 1000); + + const notification = new Notification({ + title: 'Acción requerida - Poliedro', + body: 'Ingresa el código de verificación. La ventana ya está habilitada para uso.', + icon: 'logo-claro.ico' + }); + notification.show(); + + console.log('>> Interacción habilitada permanentemente para Poliedro'); + return; + + } else { + throw new Error('Contenido no coincide con mensaje de token'); + } + + } catch (tokenError) { + console.log('>> No se encontró mensaje de token, verificando login exitoso...'); + await page.waitForTimeout(3000); + + windowNew.setIgnoreMouseEvents(false); + windowNew.show(); + windowNew.focus(); + + console.log('>> Interacción habilitada para uso normal de Poliedro'); + } + + } catch (e) { + console.log('>> Error en Poliedro, habilitando interacción manual: ' + e); + + windowNew.setIgnoreMouseEvents(false); + windowNew.show(); + windowNew.focus(); + windowNew.setAlwaysOnTop(true); + setTimeout(() => { + windowNew.setAlwaysOnTop(false); + }, 1000); + + const notification = new Notification({ + title: 'Atención - Poliedro', + body: 'Complete el proceso manualmente. La ventana está habilitada.', + icon: 'logo-claro.ico' + }); + notification.show(); + } + + return; + } else { + const checkAndClose = async (message, text, xpath) => { + var elementHandles; + if (xpath) { + elementHandles = await page.$x(text, { timeout: 1000 }); + } else { + if (data_code != 'SRA074' && text != 'valid') { + elementHandles = await page.$x(`//*[contains(text(), "${text}")]`, { timeout: 1000 }); + } + } + + if (elementHandles && elementHandles.length > 0) { + if (data_code == 'VIM059' && elementHandles.length <= 2) { + // No hace nada para VIM059 con 2 elementos o menos + } else if (data_code == 'DIM072' && elementHandles.length <= 1) { + // No hace nada para DIM072 con 1 elemento o menos + } else if (data_code == '') { + // No hacer nada para TUN065 - permitir que continúe normalmente + console.log(`>> IDV033: Se encontró texto "${text}" pero se permite continuar`); + } else if (data_code == 'ASC069') { + // No hace nada para ASC069 + console.log(`>> ASC069: Se encontró texto "${text}" pero se permite continuar`); + } else { + console.log(`Se encontró mensaje de error de credenciales: ${message}`); + dialog.showErrorBox('Error', 'Parece que hubo un problema con el ingreso. Por favor, repórtalo al Coordinador'); + windowNew.close(); + } + } else { + console.log(`>> No se encontró mensaje de error de credenciales: ${message}`); + } + }; + + await checkAndClose('Incorrect', 'incorrect', false) || + await checkAndClose('Incorrectos', 'INCORRECTOS', false) || + await checkAndClose('Error', 'error', false) || + await checkAndClose('Error', 'Error', false) || + await checkAndClose('Errada', 'errad', false) || + await checkAndClose('Valid', 'valid', false) || + await checkAndClose('no se encuentra habilitado para', 'no se encuentra habilitado para', false) || + await checkAndClose('Could not log', 'could not log', false) || + await checkAndClose('Form', xpath_username, true); + } + } + windowNew.setIgnoreMouseEvents(false); + // windowNew.setOpacity(1); + // windowNew.maximize(); + // windowNew.focus(); + } else { + console.log('>> No se encontro ninguna pagina con la URL proporcionada.'); + } + + + } catch (error) { + console.log(error); + } + + } catch (error) { + windowNew.setOpacity(1); + windowNew.close(); + console.error('Ha ocurrido un error ', data_code, error); + dialog.showErrorBox('Error', 'Ha ocurrido un error ' + error); + } } + } else { console.log(`>> Aplicativo ${data_code} no esta asociado`); await dialog.showMessageBox({ @@ -899,362 +1999,6 @@ async function rpa(data_code) { } } - - - - - - - - - - - - - // let programa = ''; - // switch (data_code) { - // case 'IRR123': - // console.log('IRR123'); - - // rrtest = rr(username, password); - // console.log(rrtest); - - // break; - // case 'ACC098': - // console.log('ACC098'); - - // programa = '"C:\\Program Files (x86)\\AC Administración de Clientes\\AC Administrador de Clientes.exe"'; - // exec(programa, (error, stdout, stderr) => { - // if (error) { - // console.error(`Error al abrir el programa: ${error.message}`); - // return; - // } - // if (stderr) { - // console.error(`Error en la salida estándar: ${stderr}`); - // return; - // } - // console.log(`Salida del programa: ${stdout}`); - // }); - - // break; - - // case 'AVY003': - // console.log('AVY003'); - - // programa = '"C:\\Program Files (x86)\\Avaya\\Avaya one-X Agent\\OneXAgentUI.exe"'; - // exec(programa, (error, stdout, stderr) => { - // if (error) { - // console.error(`Error al abrir el programa: ${error.message}`); - // return; - // } - // if (stderr) { - // console.error(`Error en la salida estándar: ${stderr}`); - // return; - // } - // console.log(`Salida del programa: ${stdout}`); - // }); - - // break; - - // case 'XLT001': - // console.log('XLT001'); - - // programa = '"C:\\Program Files (x86)\\CounterPath\\X-Lite\\x-lite.exe"'; - // exec(programa, (error, stdout, stderr) => { - // if (error) { - // console.error(`Error al abrir el programa: ${error.message}`); - // return; - // } - // if (stderr) { - // console.error(`Error en la salida estándar: ${stderr}`); - // return; - // } - // console.log(`Salida del programa: ${stdout}`); - // }); - - // break; - - // case 'CTB002': - // console.log('CTB002'); - - // programa = '"C:\\avaya\\CTIbar\\ctibar.exe"'; - // exec(programa, (error, stdout, stderr) => { - // if (error) { - // console.error(`Error al abrir el programa: ${error.message}`); - // return; - // } - // if (stderr) { - // console.error(`Error en la salida estándar: ${stderr}`); - // return; - // } - // console.log(`Salida del programa: ${stdout}`); - // }); - - // break; - - - - // default: - // const browser = await pie.connect(app, puppeteer, { - // defaultViewport: null, - // ignoreHTTPSErrors: true, - // }); - - // const pages = await browser.pages().then(pages => pages).catch(err => console.error(err)); - - - // if (data_apps) { - // const windowNew = new BrowserWindow({ - // args: ['--no-sandbox', '--disable-setuid-sandbox', '--ignore-certificate-errors'], - // ignoreHTTPSErrors: true, - // webPreferences: { - // partition: 'nopersist' - // } - // }); - - - // const page = await pie.getPage(browser, windowNew); - // console.log('page'); - // console.log(page.url()); - - // // windowNew.webContents.session.setCacheEnabled(false); - // windowNew.webContents.session.clearStorageData(); - // // windowNew.webContents.session.setStorageEnabled(false) - // windowNew.webContents.session.clearCache(); - - // console.log('--------------------------'); - // console.log('Abriendo aplicativo'); - // console.log('--------------------------'); - // try { - - // app.on('login', (event, webContents, request, authInfo, callback) => { - // console.log('______________________login___________________'); - // event.preventDefault(); - // callback(username, password); - // }); - - // windowNew.setOpacity(1); - // windowNew.maximize(); - // windowNew.setMenu(null); - // windowNew.setIgnoreMouseEvents(true); - - // if (process.env.MODE != 'prod') { - // windowNew.openDevTools(); - // windowNew.setIgnoreMouseEvents(false); - // } - - // console.log('>> Url aplicativo: ' + url_platform); - // const allowedCodes = ['SMO098', 'CTD094', 'SGC095', 'MAX096', 'CUP045']; - // const specialCodes = ['MAP039']; - // const loginCodes = ['ATB089', 'VTT046', 'DSC047', 'SMO098', 'CTD094', 'SGC095', 'MAX096', 'CUP045', 'BDC087']; - // let url_mod; - - // if (allowedCodes.includes(data_code)) { - // // url_mod = `http://${username}:${password}@${data_response_service.App.replace('http://', '')}`; - // url_mod = url_platform; - // } else { - // url_mod = url_platform; - // } - - - - // try { - // if (data_code == 'POL911' || data_code == 'POL912' || data_code == 'POL913' || data_code == 'POL914' || data_code == 'POL915' || data_code == 'POD911') { - // console.log('si poliedro'); - // url_mod = 'https://poliedro.comcel.com.co/LoginPoliedro/Login.aspx'; - // } - // if (data_code == 'BDC087') { - // url_mod = 'http://100.123.251.118:8082/componentes/ASP/consultabroadcast.aspx' - // } - // if (data_code == 'SRA074') { - // url_mod = 'http://100.126.20.149:8080/sara/index.html' - // } - - - // // console.log('url_mod: '+url_mod); - - // // const encodedUrl = querystring.escape(url_mod); - // // console.log('codificada: '+encodedUrl); - // await windowNew.loadURL(url_mod); - // console.log('>> Cargo la pagina'); - // } catch (error) { - // console.log('>> No se pudo cargar la pagina: ' + error); - // dialog.showErrorBox('Error', 'No se pudo cargar la pagina. Por favor reporta al Helpdesk'); - // windowNew.setOpacity(1); - // windowNew.close(); - // } - - - // // const page = await pie.getPage(browser, windowNew); - // try { - // // const pages = await browser.pages().then(pages => pages).catch(err => console.error(err)); - // // console.log(pages); - // // var page; - // var pageUrl; - - // for (const pages_sel of pages) { - // const pageUrl = await pages_sel.url(); - // // console.log('la obtenida: ' + pageUrl + '_____' + 'la real: ' + url_mod); - // if (pageUrl == 'http://100.126.20.149:8080/sara/login') { - // url_mod = 'http://100.126.20.149:8080/sara/login'; - // } - // if (pageUrl == 'http://dime.claro.com.co/Portal/Produccion/Sesion/Inicio/Ingresar?ReturnUrl=%2FPortal%2FProduccion%2FFidelizacion%2FRetencion%2FRegistrarSolicitud%3Fdato%3D1007227477%26Cuenta%3D89715445%26Ticket%3D1%26Internet%3D1%26TV%3D1%26Telefonia%3D0') { - // url_mod = 'http://dime.claro.com.co/Portal/Produccion/Sesion/Inicio/Ingresar?ReturnUrl=%2FPortal%2FProduccion%2FFidelizacion%2FRetencion%2FRegistrarSolicitud%3Fdato%3D1007227477%26Cuenta%3D89715445%26Ticket%3D1%26Internet%3D1%26TV%3D1%26Telefonia%3D0'; - // } - // if (pageUrl === url_mod) { - // console.log(`Ok pagina`); - // page = pages_sel; - // break; // Detén el bucle cuando encuentras la coincidencia - // } - // } - - // if (page) { - // console.log(`Nombre de la pagina: ${await page.title()}`); - // // await page.waitForLoad(); - // if (xpath_username != 'na') { - // if (data_code == 'POL911' || data_code == 'POL912' || data_code == 'POL913' || data_code == 'POL914' || data_code == 'POL915' || data_code == 'POD911') { - // await page.waitForXPath('//input[@id="ctl00_ContentPlaceHolder1_BtnRegresarMensaje"]'); - // const backBtn = await page.$x('//input[@id="ctl00_ContentPlaceHolder1_BtnRegresarMensaje"]'); - // await backBtn[0].click(); - // } - // if (!loginCodes.includes(data_code)) { - - // if (data_code == 'CLU100') { - // const elementHandleClu = await page.$('.sign-in-uclaro'); - // if (elementHandleClu) { - // await elementHandleClu.click(); - // } - // } - - // await page.waitForXPath(xpath_username); - // const elementHandleUser = await page.$x(xpath_username); - // await elementHandleUser[0].type('', { delay: 100 }); - // await elementHandleUser[0].type(username); - // console.log('>> Diligencio campo usuario'); - - // if (data_code == 'ABS099') { - // await page.keyboard.press("Enter"); - // } else { - // await page.keyboard.press("Tab"); - // } - - // if (data_code == 'AGE036') { - // await page.waitForTimeout(4000); - // } else { - // await page.waitForTimeout(1000); - // } - - // await page.waitForXPath(xpath_password); - // const elementHandlePass = await page.$x(xpath_password); - // await elementHandlePass[0].type('', { delay: 100 }); - // await elementHandlePass[0].type(password); - // console.log('>> Diligencio campo password'); - - // await page.waitForTimeout(1000); - // const xpathMap = { - // 'DIM072': '//button[contains(@id, "btiniciar")]', - // 'CLU100': '//button[contains(@class, "ingresarBoton")]', - // 'MAP039': xpath_button, - // 'CMC093': xpath_button, - // 'MCA030': '//input[contains(@id, "login-button")]' - // }; - - // const xpath = xpathMap[data_code] || null; - - // if (xpath) { - // const elementHandle = await page.$x(xpath); - // if (elementHandle && elementHandle.length > 0) { - // await elementHandle[0].click(); - // console.log('>> Se dio click en boton'); - // } else { - // console.log('>> No encontro boton'); - // } - // } else { - // await page.keyboard.press('Enter'); - // } - // } - - // // await page.waitForTimeout(70000); - - - // console.log('>> Envio formulario'); - - // await page.waitForTimeout(7000); - - // if (data_code == 'POL911' || data_code == 'POL912' || data_code == 'POL913' || data_code == 'POL914' || data_code == 'POL915' || data_code == 'POD911') { - // elementToken = await page.$x(`//*[contains(text(), "un nuevo token a su dispositivo")]`, { timeout: 1000 }); - // if (elementToken) { - // console.log('>> No se encontro mensaje de error de credenciales:'); - // } else { - // console.log('>> Se encontro mensaje de error de credenciales:'); - // dialog.showErrorBox('Error', 'Parece que hubo un problema con el ingreso. Por favor, repórtalo al Coordinador'); - // windowNew.close(); - // } - // } else { - // const checkAndClose = async (message, text, xpath) => { - // var elementHandles; - // if (xpath) { - // elementHandles = await page.$x(text, { timeout: 1000 }); - // } else { - // if (data_code != 'SRA074' && text != 'valid') { - // elementHandles = await page.$x(`//*[contains(text(), "${text}")]`, { timeout: 1000 }); - // } - // } - - - // if (elementHandles && elementHandles.length > 0) { - // if (data_code == 'VIM059' && elementHandles.length <= 2) { - - // } else if (data_code == 'DIM072' && elementHandles.length <= 1) { - - // } - // else { - // console.log('Se encontro mensaje de error de credenciales: ${message}'); - // dialog.showErrorBox('Error', 'Parece que hubo un problema con el ingreso. Por favor, repórtalo al Coordinador'); - // windowNew.close(); - // } - // } else { - // console.log('>> No se encontro mensaje de error de credenciales: ${message}'); - // } - // }; - - // await checkAndClose('Incorrect', 'incorrect', false) || - // await checkAndClose('Incorrectos', 'INCORRECTOS', false) || - // await checkAndClose('Error', 'error', false) || - // await checkAndClose('Error', 'Error', false) || - // await checkAndClose('Errada', 'errad', false) || - // await checkAndClose('Valid', 'valid', false) || - // await checkAndClose('Could not log', 'could not log', false) || - // await checkAndClose('Form', xpath_username, true); - - // } - // } - // windowNew.setIgnoreMouseEvents(false); - // // windowNew.setOpacity(1); - // // windowNew.maximize(); - // // windowNew.focus(); - // } else { - // console.log('>> No se encontro ninguna pagina con la URL proporcionada.'); - // } - - - // } catch (error) { - // console.log(error); - // } - - // } catch (error) { - // windowNew.setOpacity(1); - // windowNew.close(); - // console.error('Ha ocurrido un error ', data_code, error); - // dialog.showErrorBox('Error', 'Ha ocurrido un error ' + error); - // } - // } - - // break; - // } - - - }; // Ensure mainIni is called after app is ready diff --git a/package-lock.json b/package-lock.json index d7ad3dd..5f9ef57 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,33 +1,40 @@ { "name": "rpa-claro", - "version": "4.0.6", + "version": "4.1.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "rpa-claro", - "version": "4.0.6", + "version": "4.1.4", + "hasInstallScript": true, "license": "MIT", "dependencies": { "axios": "^1.6.2", + "debug": "^4.4.1", "electron-find": "^1.0.7", "electron-updater": "^6.0.0", "encoding": "^0.1.13", "global-agent": "^3.0.0", "https": "^1.0.0", + "iconv-lite": "^0.6.3", "jquery": "^3.7.1", - "matrix-js-sdk": "^31.1.0", + "ms": "^2.1.3", "node-autoit-koffi": "^1.0.5", "node-fetch": "^3.3.2", "node-global-proxy": "^1.0.1", + "node-gyp-build": "^4.8.4", "nodemailer": "^6.9.8", "puppeteer": "^22.15.0", "puppeteer-core": "^21.11.0", - "puppeteer-in-electron": "^3.0.5" + "puppeteer-in-electron": "^3.0.5", + "safer-buffer": "^2.1.2" }, "devDependencies": { "electron": "^20.0.0", - "electron-builder": "^24.9.1" + "electron-builder": "^24.9.1", + "electron-rebuild": "^3.2.9", + "node-gyp": "^11.2.0" } }, "node_modules/@babel/code-frame": { @@ -68,18 +75,6 @@ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, - "node_modules/@babel/runtime": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.9.tgz", - "integrity": "sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==", - "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@develar/schema-utils": { "version": "2.6.5", "resolved": "https://registry.npmjs.org/@develar/schema-utils/-/schema-utils-2.6.5.tgz", @@ -502,6 +497,13 @@ "node": ">= 10.0.0" } }, + "node_modules/@gar/promisify": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", + "dev": true, + "license": "MIT" + }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -605,6 +607,19 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/@isaacs/fs-minipass": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", + "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, "node_modules/@malept/cross-spawn-promise": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz", @@ -678,13 +693,62 @@ "node": ">= 10.0.0" } }, - "node_modules/@matrix-org/matrix-sdk-crypto-wasm": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@matrix-org/matrix-sdk-crypto-wasm/-/matrix-sdk-crypto-wasm-4.5.0.tgz", - "integrity": "sha512-QINqNfBRrkVv9vB+hR+OW4RO6cwf8nt4GEbREiS09L5eUK6xa5REpeXyh7ty1QusYk/DBiNadNcM5ROEPk9dcQ==", - "license": "Apache-2.0", + "node_modules/@npmcli/agent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-3.0.0.tgz", + "integrity": "sha512-S79NdEgDQd/NGCay6TCoVzXSj74skRZIKJcpJjC5lOq34SZzyI6MqtiiWoiVWoVrTcGjNeC4ipbh1VIHlpfF5Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.3" + }, "engines": { - "node": ">= 10" + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@npmcli/fs": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-4.0.0.tgz", + "integrity": "sha512-/xGlezI6xfGO9NwuJlnwz/K14qD1kCSAGtacBHnGzeAIuJGazcp45KP5NuyARXoKb7cwulAGWVsbeSxdG/cb0Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/@npmcli/fs/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/move-file": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", + "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", + "deprecated": "This functionality has been moved to @npmcli/fs", + "dev": true, + "license": "MIT", + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/@pkgjs/parseargs": { @@ -719,6 +783,55 @@ "node": ">=16.3.0" } }, + "node_modules/@puppeteer/browsers/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@puppeteer/browsers/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "license": "MIT" + }, + "node_modules/@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "dev": true, + "license": "MIT", + "dependencies": { + "defer-to-connect": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@tootallnate/once": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", @@ -743,6 +856,19 @@ "@types/retry": "*" } }, + "node_modules/@types/cacheable-request": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", + "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/http-cache-semantics": "*", + "@types/keyv": "^3.1.4", + "@types/node": "*", + "@types/responselike": "^1.0.0" + } + }, "node_modules/@types/debug": { "version": "4.1.12", "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", @@ -752,12 +878,6 @@ "@types/ms": "*" } }, - "node_modules/@types/events": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.3.tgz", - "integrity": "sha512-trOc4AAUThEz9hapPtSd7wf5tiQKvTtu5b371UxXdTuqzIh0ArcRspRP0i0Viu+LXstIQ1z96t1nsPxT9ol01g==", - "license": "MIT" - }, "node_modules/@types/fs-extra": { "version": "9.0.13", "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", @@ -767,6 +887,23 @@ "@types/node": "*" } }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", + "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/keyv": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", + "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/ms": { "version": "0.7.34", "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", @@ -810,6 +947,16 @@ "@types/puppeteer": "^1" } }, + "node_modules/@types/responselike": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", + "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/retry": { "version": "0.12.5", "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.5.tgz", @@ -847,6 +994,16 @@ "integrity": "sha512-ukTPVhqG4jNzMro2qA9HSCSSVJN3aN7tlb+hfqYCt3ER0yWroeA2VR38MNrOHLQ/cVj+DaIMad0kFCtWWowh/A==", "dev": true }, + "node_modules/abbrev": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-3.0.1.tgz", + "integrity": "sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, "node_modules/agent-base": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", @@ -856,6 +1013,33 @@ "node": ">= 14" } }, + "node_modules/agentkeepalive": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.6.0.tgz", + "integrity": "sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -881,12 +1065,6 @@ "ajv": "^6.9.1" } }, - "node_modules/another-json": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/another-json/-/another-json-0.2.0.tgz", - "integrity": "sha512-/Ndrl68UQLhnCdsAzEXLMFuOR546o2qbYRqCglaNHbjXrwG1ayTcdwr3zkSGOGtGXDyR5X9nCFfnyG2AFJIsqg==", - "license": "Apache-2.0" - }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -986,6 +1164,13 @@ "node": ">=10" } }, + "node_modules/aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", + "dev": true, + "license": "ISC" + }, "node_modules/archiver": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.2.tgz", @@ -1122,6 +1307,21 @@ "node": ">=6" } }, + "node_modules/are-we-there-yet": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", + "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", + "deprecated": "This package is no longer supported.", + "dev": true, + "license": "ISC", + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -1274,12 +1474,6 @@ } } }, - "node_modules/base-x": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", - "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==", - "license": "MIT" - }, "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -1313,7 +1507,6 @@ "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", "dev": true, - "peer": true, "dependencies": { "buffer": "^5.5.0", "inherits": "^2.0.4", @@ -1350,15 +1543,6 @@ "balanced-match": "^1.0.0" } }, - "node_modules/bs58": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", - "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", - "license": "MIT", - "dependencies": { - "base-x": "^4.0.0" - } - }, "node_modules/buffer": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", @@ -1538,6 +1722,139 @@ "node": ">=8" } }, + "node_modules/cacache": { + "version": "19.0.1", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-19.0.1.tgz", + "integrity": "sha512-hdsUxulXCi5STId78vRVYEtDAjq99ICAUktLTeTYsLoTE6Z8dS0c8pWNCxwdrk9YfJeobDZc2Y186hD/5ZQgFQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^4.0.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^7.0.2", + "ssri": "^12.0.0", + "tar": "^7.4.3", + "unique-filename": "^4.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/cacache/node_modules/chownr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/cacache/node_modules/fs-minipass": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", + "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/cacache/node_modules/minizlib": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.2.tgz", + "integrity": "sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.1.2" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/cacache/node_modules/mkdirp": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", + "dev": true, + "license": "MIT", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/cacache/node_modules/tar": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz", + "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==", + "dev": true, + "license": "ISC", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.0.1", + "mkdirp": "^3.0.1", + "yallist": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/cacache/node_modules/yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.6.0" + } + }, + "node_modules/cacheable-request": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", + "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -1627,6 +1944,42 @@ "node": ">=8" } }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", @@ -1640,6 +1993,16 @@ "node": ">=12" } }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, "node_modules/clone-response": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", @@ -1670,6 +2033,16 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "license": "MIT" }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "dev": true, + "license": "ISC", + "bin": { + "color-support": "bin.js" + } + }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -1742,14 +2115,12 @@ "typescript": "^5.3.3" } }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", + "dev": true, + "license": "ISC" }, "node_modules/core-js": { "version": "3.36.0", @@ -1896,12 +2267,6 @@ "node": ">=8" } }, - "node_modules/crypto-js": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz", - "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==", - "license": "MIT" - }, "node_modules/data-uri-to-buffer": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", @@ -1912,12 +2277,12 @@ } }, "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", "license": "MIT", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -1928,6 +2293,58 @@ } } }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decompress-response/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, "node_modules/define-data-property": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", @@ -1985,6 +2402,23 @@ "node": ">=0.4.0" } }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/detect-libc": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", + "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, "node_modules/detect-node": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", @@ -2240,6 +2674,499 @@ "node": ">=8" } }, + "node_modules/electron-rebuild": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-3.2.9.tgz", + "integrity": "sha512-FkEZNFViUem3P0RLYbZkUjC8LUFIK+wKq09GHoOITSJjfDAVQv964hwaNseTTWt58sITQX3/5fHNYcTefqaCWw==", + "deprecated": "Please use @electron/rebuild moving forward. There is no API change, just a package name change", + "dev": true, + "license": "MIT", + "dependencies": { + "@malept/cross-spawn-promise": "^2.0.0", + "chalk": "^4.0.0", + "debug": "^4.1.1", + "detect-libc": "^2.0.1", + "fs-extra": "^10.0.0", + "got": "^11.7.0", + "lzma-native": "^8.0.5", + "node-abi": "^3.0.0", + "node-api-version": "^0.1.4", + "node-gyp": "^9.0.0", + "ora": "^5.1.0", + "semver": "^7.3.5", + "tar": "^6.0.5", + "yargs": "^17.0.1" + }, + "bin": { + "electron-rebuild": "lib/src/cli.js" + }, + "engines": { + "node": ">=12.13.0" + } + }, + "node_modules/electron-rebuild/node_modules/@malept/cross-spawn-promise": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-2.0.0.tgz", + "integrity": "sha512-1DpKU0Z5ThltBwjNySMC14g0CkbyhCaz9FkhxqNsZI6uAPJXFS8cMXlBKo26FJ8ZuW6S9GCMcR9IO5k2X5/9Fg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/malept" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/subscription/pkg/npm-.malept-cross-spawn-promise?utm_medium=referral&utm_source=npm_fund" + } + ], + "license": "Apache-2.0", + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/electron-rebuild/node_modules/@npmcli/fs": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", + "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@gar/promisify": "^1.1.3", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/electron-rebuild/node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true, + "license": "ISC" + }, + "node_modules/electron-rebuild/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/electron-rebuild/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/electron-rebuild/node_modules/cacache": { + "version": "16.1.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", + "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^2.1.0", + "@npmcli/move-file": "^2.0.0", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "glob": "^8.0.1", + "infer-owner": "^1.0.4", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "mkdirp": "^1.0.4", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^9.0.0", + "tar": "^6.1.11", + "unique-filename": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/electron-rebuild/node_modules/cacache/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/electron-rebuild/node_modules/cacache/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/electron-rebuild/node_modules/cacache/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/electron-rebuild/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/electron-rebuild/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/electron-rebuild/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/electron-rebuild/node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/electron-rebuild/node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/electron-rebuild/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==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/electron-rebuild/node_modules/make-fetch-happen": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", + "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", + "dev": true, + "license": "ISC", + "dependencies": { + "agentkeepalive": "^4.2.1", + "cacache": "^16.1.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^2.0.3", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^7.0.0", + "ssri": "^9.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/electron-rebuild/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/electron-rebuild/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/electron-rebuild/node_modules/minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/electron-rebuild/node_modules/minipass-fetch": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", + "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^3.1.6", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/electron-rebuild/node_modules/negotiator": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/electron-rebuild/node_modules/node-gyp": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.4.1.tgz", + "integrity": "sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "glob": "^7.1.4", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^10.0.3", + "nopt": "^6.0.0", + "npmlog": "^6.0.0", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^2.0.2" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": "^12.13 || ^14.13 || >=16" + } + }, + "node_modules/electron-rebuild/node_modules/nopt": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz", + "integrity": "sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==", + "dev": true, + "license": "ISC", + "dependencies": { + "abbrev": "^1.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/electron-rebuild/node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/electron-rebuild/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/electron-rebuild/node_modules/socks-proxy-agent": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", + "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/electron-rebuild/node_modules/ssri": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", + "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/electron-rebuild/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/electron-rebuild/node_modules/unique-filename": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", + "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", + "dev": true, + "license": "ISC", + "dependencies": { + "unique-slug": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/electron-rebuild/node_modules/unique-slug": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", + "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, "node_modules/electron-updater": { "version": "6.1.8", "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-6.1.8.tgz", @@ -2451,14 +3378,12 @@ "node": ">=0.10.0" } }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "license": "MIT", - "engines": { - "node": ">=0.8.x" - } + "node_modules/exponential-backoff": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.2.tgz", + "integrity": "sha512-8QxYTVXUkuy7fIIoitQkPwGonB8F3Zj8eEO8Sqg9Zv/bkI7RJAzowee4gr81Hak/dUTpA2Z7VfQgoijjPNlUZA==", + "dev": true, + "license": "Apache-2.0" }, "node_modules/extract-zip": { "version": "2.0.1", @@ -2507,6 +3432,21 @@ "pend": "~1.2.0" } }, + "node_modules/fdir": { + "version": "6.4.5", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.5.tgz", + "integrity": "sha512-4BG7puHpVsIYxZUbiUE3RqGloLaSSwzYie5jvasC4LWuBWzZawynvYouhjbQKw2JuIGYdm0DzIxl8iVidKlUEw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, "node_modules/fetch-blob": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", @@ -2693,6 +3633,27 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/gauge": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", + "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "deprecated": "This package is no longer supported.", + "dev": true, + "license": "ISC", + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.3", + "console-control-strings": "^1.1.0", + "has-unicode": "^2.0.1", + "signal-exit": "^3.0.7", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -2925,6 +3886,32 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/got": { + "version": "11.8.6", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", + "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=10.19.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -2975,6 +3962,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", + "dev": true, + "license": "ISC" + }, "node_modules/hasown": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", @@ -3031,6 +4025,20 @@ "node": ">= 14" } }, + "node_modules/http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, "node_modules/https": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https/-/https-1.0.0.tgz", @@ -3050,6 +4058,16 @@ "node": ">= 14" } }, + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.0.0" + } + }, "node_modules/iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", @@ -3097,6 +4115,33 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true, + "license": "ISC" + }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -3158,6 +4203,36 @@ "node": ">=8" } }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -3302,6 +4377,13 @@ "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", "license": "MIT" }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "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", @@ -3340,16 +4422,20 @@ "graceful-fs": "^4.1.6" } }, - "node_modules/jwt-decode": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-3.1.2.tgz", - "integrity": "sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A==", - "license": "MIT" + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } }, "node_modules/koffi": { - "version": "2.8.11", - "resolved": "https://registry.npmjs.org/koffi/-/koffi-2.8.11.tgz", - "integrity": "sha512-wrWaW6DJVFis7Qlsh4YDwObrzE/Jynu8pWC3W+0B3d4kv5BFbpPFWEzg4QYGjF+tOA/kpzol8n5o5j4+SGMbQA==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/koffi/-/koffi-2.11.0.tgz", + "integrity": "sha512-AJ6MHz9Z8OIftKu322jrKJFvy/rZTdCD4b7F457WrK71rxYV7O5PSdWsJDN0p3rY1BZaPeLHVwyt4i2Xyk8wJg==", "hasInstallScript": true, "license": "MIT" }, @@ -3462,17 +4548,61 @@ "dev": true, "peer": true }, - "node_modules/loglevel": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.9.1.tgz", - "integrity": "sha512-hP3I3kCrDIMuRwAwHltphhDM1r8i55H33GgqjXbrisuJhF4kRhW1dNuxsRklp4bXl8DSdLaNLuiL4A/LWRfxvg==", + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, "engines": { - "node": ">= 0.6.0" + "node": ">=10" }, "funding": { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/loglevel" + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, "node_modules/lowercase-keys": { @@ -3494,6 +4624,48 @@ "node": "14 || >=16.14" } }, + "node_modules/lzma-native": { + "version": "8.0.6", + "resolved": "https://registry.npmjs.org/lzma-native/-/lzma-native-8.0.6.tgz", + "integrity": "sha512-09xfg67mkL2Lz20PrrDeNYZxzeW7ADtpYFbwSQh9U8+76RIzx5QsJBMy8qikv3hbUPfpy6hqwxt6FcGK81g9AA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "node-addon-api": "^3.1.0", + "node-gyp-build": "^4.2.1", + "readable-stream": "^3.6.0" + }, + "bin": { + "lzmajs": "bin/lzmajs" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/make-fetch-happen": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-14.0.3.tgz", + "integrity": "sha512-QMjGbFTP0blj97EeidG5hk/QhKQ3T4ICckQGLgz38QF7Vgbk6e6FTARN8KhKxyBbWn8R0HU+bnw8aSoFPD4qtQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/agent": "^3.0.0", + "cacache": "^19.0.1", + "http-cache-semantics": "^4.1.1", + "minipass": "^7.0.2", + "minipass-fetch": "^4.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^1.0.0", + "proc-log": "^5.0.0", + "promise-retry": "^2.0.1", + "ssri": "^12.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, "node_modules/matcher": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", @@ -3518,47 +4690,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/matrix-events-sdk": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/matrix-events-sdk/-/matrix-events-sdk-0.0.1.tgz", - "integrity": "sha512-1QEOsXO+bhyCroIe2/A5OwaxHvBm7EsSQ46DEDn8RBIfQwN5HWBpFvyWWR4QY0KHPPnnJdI99wgRiAl7Ad5qaA==", - "license": "Apache-2.0" - }, - "node_modules/matrix-js-sdk": { - "version": "31.3.0", - "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-31.3.0.tgz", - "integrity": "sha512-RwpHQxb8DWBaE7yzrTfSfO1N4jyk6ilcu/Zt3VFqwmeym/0ipVUy98sB2JXOf6E+MdG1w4WzOIxQu2R7GpPZ2g==", - "license": "Apache-2.0", - "dependencies": { - "@babel/runtime": "^7.12.5", - "@matrix-org/matrix-sdk-crypto-wasm": "^4.3.0", - "another-json": "^0.2.0", - "bs58": "^5.0.0", - "content-type": "^1.0.4", - "jwt-decode": "^3.1.2", - "loglevel": "^1.7.1", - "matrix-events-sdk": "0.0.1", - "matrix-widget-api": "^1.6.0", - "oidc-client-ts": "^2.2.4", - "p-retry": "4", - "sdp-transform": "^2.14.1", - "unhomoglyph": "^1.0.6", - "uuid": "9" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/matrix-widget-api": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/matrix-widget-api/-/matrix-widget-api-1.6.0.tgz", - "integrity": "sha512-VXIJyAZ/WnBmT4C7ePqevgMYGneKMCP/0JuCOqntSsaNlCRHJvwvTxmqUU+ufOpzIF5gYNyIrAjbgrEbK3iqJQ==", - "license": "Apache-2.0", - "dependencies": { - "@types/events": "^3.0.0", - "events": "^3.2.0" - } - }, "node_modules/mime": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", @@ -3592,6 +4723,16 @@ "node": ">= 0.6" } }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/mimic-response": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", @@ -3623,15 +4764,137 @@ } }, "node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } }, + "node_modules/minipass-collect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", + "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minipass-fetch": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-4.0.1.tgz", + "integrity": "sha512-j7U11C5HXigVuutxebFadoYBbd7VSdZWggSe64NVdvWNBqGAiXPL2QVCehjmw7lY1oF9gOllYbORh+hiNgfPgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^3.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/minipass-fetch/node_modules/minizlib": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.2.tgz", + "integrity": "sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.1.2" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-flush/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-pipeline/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/minizlib": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", @@ -3685,11 +4948,21 @@ "license": "MIT" }, "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "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/negotiator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/netmask": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", @@ -3699,15 +4972,65 @@ "node": ">= 0.4.0" } }, + "node_modules/node-abi": { + "version": "3.75.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.75.0.tgz", + "integrity": "sha512-OhYaY5sDsIka7H7AtijtI9jwGYLyl29eQn/W623DiN/MIv5sUqc4g7BIDThX+gb7di9f6xK02nkp8sdfFWZLTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-abi/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/node-addon-api": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==" }, + "node_modules/node-api-version": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/node-api-version/-/node-api-version-0.1.4.tgz", + "integrity": "sha512-KGXihXdUChwJAOHO53bv9/vXcLmdUsZ6jIptbvYvkpKfth+r7jw44JkVxQFA3kX5nQjzjmGu1uAu/xNNLNlI5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.3.5" + } + }, + "node_modules/node-api-version/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/node-autoit-koffi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/node-autoit-koffi/-/node-autoit-koffi-1.0.5.tgz", "integrity": "sha512-04oEUElh6TOxugwx5leLK8Z2g57mA65a3YeqINOT+zOL2IHGehM24oBmWE/ttEXVBOcGOViURCJNRO+tPnMV3Q==", + "license": "MIT", "dependencies": { "iconv-lite": "^0.6.3", "koffi": "^2.8.0", @@ -3810,10 +5133,35 @@ "node": ">=10" } }, + "node_modules/node-gyp": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-11.2.0.tgz", + "integrity": "sha512-T0S1zqskVUSxcsSTkAsLc7xCycrRYmtDHadDinzocrThjyQCn5kMlEBSj6H4qDbgsIOSLmmlRIeb0lZXj+UArA==", + "dev": true, + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^14.0.3", + "nopt": "^8.0.0", + "proc-log": "^5.0.0", + "semver": "^7.3.5", + "tar": "^7.4.3", + "tinyglobby": "^0.2.12", + "which": "^5.0.0" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, "node_modules/node-gyp-build": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz", - "integrity": "sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==", + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz", + "integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==", "license": "MIT", "bin": { "node-gyp-build": "bin.js", @@ -3821,6 +5169,112 @@ "node-gyp-build-test": "build-test.js" } }, + "node_modules/node-gyp/node_modules/chownr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/node-gyp/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16" + } + }, + "node_modules/node-gyp/node_modules/minizlib": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.2.tgz", + "integrity": "sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.1.2" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/node-gyp/node_modules/mkdirp": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", + "dev": true, + "license": "MIT", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/node-gyp/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-gyp/node_modules/tar": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz", + "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==", + "dev": true, + "license": "ISC", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.0.1", + "mkdirp": "^3.0.1", + "yallist": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/node-gyp/node_modules/which": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz", + "integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/node-gyp/node_modules/yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, "node_modules/nodemailer": { "version": "6.9.9", "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.9.9.tgz", @@ -3830,6 +5284,22 @@ "node": ">=6.0.0" } }, + "node_modules/nopt": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-8.1.0.tgz", + "integrity": "sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==", + "dev": true, + "license": "ISC", + "dependencies": { + "abbrev": "^3.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -3840,6 +5310,19 @@ "node": ">=0.10.0" } }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/npm-conf": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz", @@ -3853,6 +5336,23 @@ "node": ">=4" } }, + "node_modules/npmlog": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", + "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "deprecated": "This package is no longer supported.", + "dev": true, + "license": "ISC", + "dependencies": { + "are-we-there-yet": "^3.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^4.0.3", + "set-blocking": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, "node_modules/object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", @@ -3862,19 +5362,6 @@ "node": ">= 0.4" } }, - "node_modules/oidc-client-ts": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/oidc-client-ts/-/oidc-client-ts-2.4.0.tgz", - "integrity": "sha512-WijhkTrlXK2VvgGoakWJiBdfIsVGz6CFzgjNNqZU1hPKV2kyeEaJgLs7RwuiSp2WhLfWBQuLvr2SxVlZnk3N1w==", - "license": "Apache-2.0", - "dependencies": { - "crypto-js": "^4.2.0", - "jwt-decode": "^3.1.2" - }, - "engines": { - "node": ">=12.13.0" - } - }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -3884,24 +5371,108 @@ "wrappy": "1" } }, - "node_modules/p-retry": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", - "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, "license": "MIT", "dependencies": { - "@types/retry": "0.12.0", - "retry": "^0.13.1" + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/ora/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/p-retry/node_modules/@types/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", - "license": "MIT" + "node_modules/p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/p-map": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.3.tgz", + "integrity": "sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/pac-proxy-agent": { "version": "7.2.0", @@ -3995,6 +5566,19 @@ "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", "license": "MIT" }, + "node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", @@ -4027,6 +5611,16 @@ "node": ">=4" } }, + "node_modules/proc-log": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-5.0.0.tgz", + "integrity": "sha512-Azwzvl90HaF0aCz1JrDdXQykFakSSNPaPoiZ9fm5qJIMHioDZEi7OAdRwSm6rSoPtY3Qutnm3L7ogmg3dc+wbQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -4043,6 +5637,13 @@ "node": ">=0.4.0" } }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "dev": true, + "license": "ISC" + }, "node_modules/promise-retry": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", @@ -4161,6 +5762,29 @@ "node": ">=16.13.2" } }, + "node_modules/puppeteer-core/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/puppeteer-core/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "license": "MIT" + }, "node_modules/puppeteer-in-electron": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/puppeteer-in-electron/-/puppeteer-in-electron-3.0.5.tgz", @@ -4220,23 +5844,6 @@ "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", @@ -4252,12 +5859,6 @@ "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.5.0", "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz", @@ -4340,6 +5941,19 @@ } } }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/read-config-file": { "version": "6.3.2", "resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-6.3.2.tgz", @@ -4362,7 +5976,6 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, - "peer": true, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -4397,12 +6010,6 @@ "node": ">= 10.0" } }, - "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", - "license": "MIT" - }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -4412,6 +6019,13 @@ "node": ">=0.10.0" } }, + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", + "dev": true, + "license": "MIT" + }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -4420,6 +6034,33 @@ "node": ">=4" } }, + "node_modules/responselike": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", + "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "dev": true, + "license": "MIT", + "dependencies": { + "lowercase-keys": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/retry": { "version": "0.13.1", "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", @@ -4429,6 +6070,69 @@ "node": ">= 4" } }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/roarr": { "version": "2.15.4", "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", @@ -4464,8 +6168,7 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "peer": true + ] }, "node_modules/safer-buffer": { "version": "2.1.2", @@ -4487,15 +6190,6 @@ "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==" }, - "node_modules/sdp-transform": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/sdp-transform/-/sdp-transform-2.14.2.tgz", - "integrity": "sha512-icY6jVao7MfKCieyo1AyxFYm1baiM+fA00qW/KrNNVlkxHAd34riEKuEkUe4bBb3gJwLJZM+xT60Yj1QL8rHiA==", - "license": "MIT", - "bin": { - "sdp-verify": "checker.js" - } - }, "node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -4526,6 +6220,20 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true, + "license": "ISC" + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, "node_modules/simple-update-notifier": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", @@ -4629,6 +6337,19 @@ "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", "license": "BSD-3-Clause" }, + "node_modules/ssri": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-12.0.0.tgz", + "integrity": "sha512-S7iGNosepx9RadX82oimUkvr0Ct7IjJbEbs4mJcTxst8um95J3sDYU1RBEOvdu6oL1Wek2ODI5i4MAw+dZ6cAQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, "node_modules/stat-mode": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-1.0.0.tgz", @@ -4656,7 +6377,6 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, - "peer": true, "dependencies": { "safe-buffer": "~5.2.0" } @@ -4819,6 +6539,23 @@ "resolved": "https://registry.npmjs.org/tiny-typed-emitter/-/tiny-typed-emitter-2.1.0.tgz", "integrity": "sha512-qVtvMxeXbVej0cQWKqVSSAHmKZEHAvxdF8HEUBFWts8h+xEo5m/lEiPakuyZ3BnCBjOD8i24kzNOiOLLgsSxhA==" }, + "node_modules/tinyglobby": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", + "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.4.4", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, "node_modules/tmp": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", @@ -4916,11 +6653,31 @@ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", "license": "MIT" }, - "node_modules/unhomoglyph": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/unhomoglyph/-/unhomoglyph-1.0.6.tgz", - "integrity": "sha512-7uvcWI3hWshSADBu4JpnyYbTVc7YlhF5GDW/oPD5AxIxl34k4wXR3WDkPnzLxkN32LiTCTKMQLtKVZiwki3zGg==", - "license": "MIT" + "node_modules/unique-filename": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-4.0.0.tgz", + "integrity": "sha512-XSnEewXmQ+veP7xX2dS5Q4yZAvO40cBN2MWkJ7D/6sW4Dg6wYBNwM1Vrnz1FhH5AdeLIlUXRI9e28z1YZi71NQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "unique-slug": "^5.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/unique-slug": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-5.0.0.tgz", + "integrity": "sha512-9OdaqO5kwqR+1kVgHAhsp5vPNU0hnxRa26rBFNfNgM7M6pNtgzeBn3s/xbyCQL3dcjzOatcef6UUHpB/6MaETg==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } }, "node_modules/universalify": { "version": "0.1.2", @@ -4983,20 +6740,16 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true, - "peer": true + "dev": true }, - "node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" + "dependencies": { + "defaults": "^1.0.3" } }, "node_modules/web-streams-polyfill": { @@ -5036,6 +6789,16 @@ "node": ">= 8" } }, + "node_modules/wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", diff --git a/package.json b/package.json index 1a0f1eb..f6e3a09 100644 --- a/package.json +++ b/package.json @@ -1,19 +1,17 @@ { "name": "rpa-claro", "productName": "RpaClaro", - "version": "4.0.6", + "version": "4.1.4", "description": "RPA Claro", "author": "TARS", "license": "MIT", "main": "entry.js", "scripts": { - "start": "electron . --user='45957768' --dev --log --code=AGE036", + "start": "electron . --user='46015744' --dev --log --code=TUN065", + "postinstall": "electron-builder install-app-deps", "pack": "electron-builder --dir", - "build": "electron-builder --win", - "build-all": "electron-builder --win", - "build-dev": "electron-builder build --win --publish never", - "deploy": "electron-builder build --win --publish always", - "iniciar": "electron pip.js --trace-warnings --unhandled-rejections=strict" + "build": "electron-builder --win && node copy-deps.js", + "rebuild": "electron-rebuild" }, "nodeGypRebuild": "true", "repository": { @@ -56,10 +54,39 @@ "installerIcon": "./logo-claro.ico", "uninstallerIcon": "./logo-claro.ico" }, + "asarUnpack": [ + "dlls/**/*", + "node_modules/**/*", + "**/build/Release/*.node" + ], "files": [ "**/*", - "node_modules/koffi/**/*", - "node_modules/node-autoit-koffi/**/*" + "node_modules/**/*" + ], + "extraFiles": [ + { + "from": "dlls", + "to": "dlls", + "filter": [ + "**/*" + ] + }, + { + "from": "node_modules/node-autoit-koffi/lib", + "to": "lib/autoit", + "filter": [ + "**/*" + ] + } + ], + "extraResources": [ + { + "from": "dlls", + "to": "dlls", + "filter": [ + "**/*" + ] + } ] }, "electron-updater": { @@ -67,23 +94,29 @@ }, "dependencies": { "axios": "^1.6.2", + "debug": "^4.4.1", "electron-find": "^1.0.7", "electron-updater": "^6.0.0", "encoding": "^0.1.13", "global-agent": "^3.0.0", "https": "^1.0.0", + "iconv-lite": "^0.6.3", "jquery": "^3.7.1", - "matrix-js-sdk": "^31.1.0", + "ms": "^2.1.3", "node-autoit-koffi": "^1.0.5", "node-fetch": "^3.3.2", "node-global-proxy": "^1.0.1", + "node-gyp-build": "^4.8.4", "nodemailer": "^6.9.8", "puppeteer": "^22.15.0", "puppeteer-core": "^21.11.0", - "puppeteer-in-electron": "^3.0.5" + "puppeteer-in-electron": "^3.0.5", + "safer-buffer": "^2.1.2" }, "devDependencies": { "electron": "^20.0.0", - "electron-builder": "^24.9.1" + "electron-builder": "^24.9.1", + "electron-rebuild": "^3.2.9", + "node-gyp": "^11.2.0" } } diff --git a/rr.js b/rr.js index 7c2c99a..d1706f1 100644 --- a/rr.js +++ b/rr.js @@ -1,39 +1,180 @@ const fs = require('fs'); const path = require('path'); +const { dialog } = require('electron'); +const os = require('os'); +// Función para verificar y encontrar la DLL de AutoIt +function findAutoItDLL() { + const { app } = require('electron'); + const isPackaged = app ? app.isPackaged : false; -// Especifica el nombre del archivo que deseas generar -const nombreArchivo = path.join('C:', 'RpaClaro', 'macrologin.mac'); + console.log(`[DLL] Aplicación empaquetada: ${isPackaged}`); + let possiblePaths; -// Función para verificar y eliminar el archivo -function verificarYEliminarArchivo(nombreArchivo) { - if (fs.existsSync(nombreArchivo)) { - try { - // fs.unlinkSync(nombreArchivo); // Descomentar para eliminar el archivo - console.log(`Se ha eliminado el archivo '${nombreArchivo}'.`); - } catch (e) { - console.log(`Error al eliminar el archivo '${nombreArchivo}': ${e}`); - } + if (isPackaged) { + possiblePaths = [ + // 1. PRIMERA PRIORIDAD: Ruta fija del sistema + 'C:/RpaClaro/AutoItX3_x64.dll', + + // 2. extraResources (copiados por electron-builder) + path.join(process.resourcesPath, 'dlls', 'AutoItX3_x64.dll'), + + // 3. app.asar.unpacked (desempaquetados) + path.join(process.resourcesPath, 'app.asar.unpacked', 'dlls', 'AutoItX3_x64.dll'), + path.join(process.resourcesPath, 'app.asar.unpacked', 'node_modules', 'node-autoit-koffi', 'lib', 'AutoItX3_x64.dll'), + + // 4. extraFiles (directorio de instalación) + path.join(path.dirname(process.execPath), 'dlls', 'AutoItX3_x64.dll'), + path.join(path.dirname(process.execPath), 'lib', 'autoit', 'AutoItX3_x64.dll'), + + // 5. Fallbacks + 'C:/RpaClaro/AutoItX3.dll', + path.join(process.resourcesPath, 'dlls', 'AutoItX3.dll') + ]; } else { - console.log(`El archivo '${nombreArchivo}' no existe.`); + possiblePaths = [ + // Desarrollo + 'C:/RpaClaro/AutoItX3_x64.dll', + path.join(__dirname, 'dlls', 'AutoItX3_x64.dll'), + path.join(process.cwd(), 'dlls', 'AutoItX3_x64.dll'), + 'C:/Users/TARS/Desktop/rpa/dlls/AutoItX3_x64.dll' + ]; + } + + console.log('[DLL] Buscando AutoIt DLL en rutas posibles...'); + + for (const dllPath of possiblePaths) { + console.log(`[DLL] Verificando: ${dllPath}`); + try { + if (fs.existsSync(dllPath)) { + console.log(`[DLL] ✓ DLL encontrada en: ${dllPath}`); + + const stats = fs.statSync(dllPath); + console.log(`[DLL] ✓ Tamaño del archivo: ${stats.size} bytes`); + + if (stats.size > 100000) { + console.log(`[DLL] ✓ DLL válida encontrada: ${dllPath}`); + return dllPath; + } + } + } catch (error) { + console.log(`[DLL] ✗ Error verificando ${dllPath}: ${error.message}`); + } + } + + console.log('[DLL] ✗ No se encontró AutoIt DLL válida en ninguna ruta'); + return null; +} + + + +// Función mejorada para copiar DLLs +function ensureDLLsAvailable() { + const { app } = require('electron'); + const isPackaged = app ? app.isPackaged : false; + + if (!isPackaged) { + console.log('[DLL_COPY] Modo desarrollo, no se requiere copia de DLLs'); + return; + } + + console.log('[DLL_COPY] Verificando disponibilidad de DLLs para aplicación empaquetada...'); + + // Verificar primero en extraResources + const resourcesPath = process.resourcesPath; + const resourcesDllPath = path.join(resourcesPath, 'dlls', 'AutoItX3_x64.dll'); + + if (fs.existsSync(resourcesDllPath)) { + console.log(`[DLL_COPY] ✓ DLL encontrada en extraResources: ${resourcesDllPath}`); + return; // No necesitamos copiar, ya está disponible + } + + // Si no está en extraResources, intentar copiar desde sistema + const sourcePaths = [ + 'C:/RpaClaro/AutoItX3_x64.dll', + 'C:/RpaClaro/AutoItX3.dll' + ]; + + const targetDir = path.join(path.dirname(process.execPath), 'dlls'); + + // Crear directorio dlls si no existe + if (!fs.existsSync(targetDir)) { + try { + fs.mkdirSync(targetDir, { recursive: true }); + console.log(`[DLL_COPY] ✓ Directorio creado: ${targetDir}`); + } catch (error) { + console.log(`[DLL_COPY] ✗ Error creando directorio: ${error.message}`); + return; + } + } + + for (const sourcePath of sourcePaths) { + if (fs.existsSync(sourcePath)) { + const fileName = path.basename(sourcePath); + const targetPath = path.join(targetDir, fileName); + + if (!fs.existsSync(targetPath)) { + try { + fs.copyFileSync(sourcePath, targetPath); + console.log(`[DLL_COPY] ✓ DLL copiada: ${sourcePath} → ${targetPath}`); + } catch (error) { + console.log(`[DLL_COPY] ✗ Error copiando DLL: ${error.message}`); + } + } else { + console.log(`[DLL_COPY] ℹ DLL ya existe: ${targetPath}`); + } + } } } -// Función para generar el archivo -function generarArchivo(nombreArchivo, contenido) { - try { - // Crea el archivo y escribe el contenido - fs.writeFileSync(nombreArchivo, contenido, 'utf8'); - console.log(`Se ha generado el archivo '${nombreArchivo}' con éxito.`); - } catch (e) { - console.log(`Error al generar el archivo '${nombreArchivo}': ${e}`); - } +function debugPaths() { + const { app } = require('electron'); + console.log('\n=== DEBUGGING PATHS ==='); + console.log(`process.execPath: ${process.execPath}`); + console.log(`process.resourcesPath: ${process.resourcesPath}`); + console.log(`app.getAppPath(): ${app ? app.getAppPath() : 'N/A'}`); + console.log(`__dirname: ${__dirname}`); + console.log(`process.cwd(): ${process.cwd()}`); + console.log(`app.isPackaged: ${app ? app.isPackaged : 'N/A'}`); + + // Verificar si existen las rutas críticas + const criticalPaths = [ + path.join(process.resourcesPath, 'dlls'), + path.join(path.dirname(process.execPath), 'dlls'), + 'C:/RpaClaro' + ]; + + criticalPaths.forEach(criticalPath => { + console.log(`${criticalPath}: ${fs.existsSync(criticalPath) ? '✓ EXISTS' : '✗ NOT FOUND'}`); + if (fs.existsSync(criticalPath)) { + try { + const files = fs.readdirSync(criticalPath); + console.log(` Files: ${files.join(', ')}`); + } catch (e) { + console.log(` Error reading directory: ${e.message}`); + } + } + }); + console.log('========================\n'); } +// Función principal actualizada function rr(usuario, password) { + console.log('\n=== INICIANDO FUNCIÓN RR() ==='); - // Ahora, formateamos el texto para insertar el valor de "valor_variable" en el lugar correcto. + debugPaths(); + + console.log(`[AUTH] Usuario: ${usuario}`); + console.log(`[AUTH] Password: ${'*'.repeat(password.length)} (longitud: ${password.length})`); + + // Verificar arquitectura del sistema + const systemArch = checkSystemArchitecture(); + + // PASO CRÍTICO: Asegurar que las DLLs estén disponibles + ensureDLLsAvailable(); + + // Generar contenido del archivo de macro (código existente...) const texto = ` @@ -60,106 +201,496 @@ function rr(usuario, password) { `; - // Llamada para verificar y eliminar el archivo si existe + console.log(`[MACRO] Contenido de macro generado con ${texto.split('\n').length} líneas`); + + // Verificar y eliminar archivo existente + const nombreArchivo = path.join('C:', 'RpaClaro', 'macrologin.mac'); verificarYEliminarArchivo(nombreArchivo); - // Llamada para generar el nuevo archivo + // Generar nuevo archivo generarArchivo(nombreArchivo, texto); - async function runAS400Launcher() { - const autoit = require("node-autoit-koffi"); - const koffi = require("koffi"); - autoit.lib = koffi.load('C:/RpaClaro/AutoItX3_x64.dll'); - await autoit.run('C:/Users/Public/IBM/ClientSolutions/Start_Programs/Windows_i386-32/acslaunch_win-32.exe C:/RpaClaro/AS400.hod'); + async function loadAutoItWithDependencies(autoItDllPath) { + const { app } = require('electron'); + const path = require('path'); + const fs = require('fs'); + + console.log('[AUTOIT_LOADER] Iniciando carga de AutoIt con dependencias...'); + try { + // 1. Configurar rutas de módulos nativos + if (app.isPackaged) { + const unpackedPath = path.join(process.resourcesPath, 'app.asar.unpacked', 'node_modules'); + const nodeModulesPath = path.join(process.resourcesPath, 'node_modules'); + + // Agregar rutas a la resolución de módulos + if (fs.existsSync(unpackedPath)) { + require('module').globalPaths.unshift(unpackedPath); + console.log(`[AUTOIT_LOADER] ✓ Ruta desempaquetada agregada: ${unpackedPath}`); + } + + if (fs.existsSync(nodeModulesPath)) { + require('module').globalPaths.unshift(nodeModulesPath); + console.log(`[AUTOIT_LOADER] ✓ Ruta node_modules agregada: ${nodeModulesPath}`); + } + + // Configurar PATH para DLLs nativas + const dllDir = path.dirname(autoItDllPath); + const currentPath = process.env.PATH || ''; + if (!currentPath.includes(dllDir)) { + process.env.PATH = `${dllDir};${currentPath}`; + console.log(`[AUTOIT_LOADER] ✓ PATH actualizado con: ${dllDir}`); + } + } + + // 2. Cargar node-gyp-build manualmente si está disponible + try { + const nodeGypBuild = require('node-gyp-build'); + console.log('[AUTOIT_LOADER] ✓ node-gyp-build cargado exitosamente'); + } catch (nodeGypError) { + console.log(`[AUTOIT_LOADER] ⚠ node-gyp-build no disponible: ${nodeGypError.message}`); + + // Intentar cargar desde ruta desempaquetada + if (app.isPackaged) { + const nodeGypPath = path.join(process.resourcesPath, 'app.asar.unpacked', 'node_modules', 'node-gyp-build'); + if (fs.existsSync(nodeGypPath)) { + try { + require(nodeGypPath); + console.log('[AUTOIT_LOADER] ✓ node-gyp-build cargado desde ruta desempaquetada'); + } catch (e) { + console.log(`[AUTOIT_LOADER] ✗ Error cargando node-gyp-build: ${e.message}`); + } + } + } + } + + // 3. Cargar koffi + console.log('[AUTOIT_LOADER] Cargando koffi...'); + const koffi = require('koffi'); + console.log('[AUTOIT_LOADER] ✓ Koffi cargado exitosamente'); + + // 4. Cargar node-autoit-koffi + console.log('[AUTOIT_LOADER] Cargando node-autoit-koffi...'); + let autoit; + + if (app.isPackaged) { + // Intentar desde ruta desempaquetada primero + const autoitModulePath = path.join(process.resourcesPath, 'app.asar.unpacked', 'node_modules', 'node-autoit-koffi'); + if (fs.existsSync(autoitModulePath)) { + autoit = require(autoitModulePath); + console.log('[AUTOIT_LOADER] ✓ node-autoit-koffi cargado desde ruta desempaquetada'); + } else { + autoit = require('node-autoit-koffi'); + console.log('[AUTOIT_LOADER] ✓ node-autoit-koffi cargado normalmente'); + } + } else { + autoit = require('node-autoit-koffi'); + console.log('[AUTOIT_LOADER] ✓ node-autoit-koffi cargado (modo desarrollo)'); + } + + // 5. Configurar DLL si el módulo lo soporta + if (autoit.setDllPath && typeof autoit.setDllPath === 'function') { + autoit.setDllPath(autoItDllPath); + console.log('[AUTOIT_LOADER] ✓ Ruta DLL configurada manualmente'); + } + + console.log('[AUTOIT_LOADER] ✓ AutoIt cargado exitosamente'); + return autoit; + + } catch (error) { + console.error(`[AUTOIT_LOADER] ✗ Error crítico cargando AutoIt: ${error.message}`); + console.error(`[AUTOIT_LOADER] Stack trace: ${error.stack}`); + + // Diagnóstico específico para node-gyp-build + if (error.message.includes('Cannot find module \'node-gyp-build\'')) { + console.log('[AUTOIT_LOADER] ℹ Error específico: node-gyp-build faltante'); + + const suggestions = [ + '1. Ejecutar: npm install node-gyp-build --save', + '2. Agregar node-gyp-build a asarUnpack en package.json', + '3. Ejecutar: npm run rebuild', + '4. Verificar que todas las dependencias nativas estén instaladas' + ]; + + console.log('[AUTOIT_LOADER] Sugerencias para solucionar:'); + suggestions.forEach(suggestion => console.log(`[AUTOIT_LOADER] ${suggestion}`)); + } + + throw error; + } + } + + + async function runAS400Launcher() { + console.log('\n=== INICIANDO AS400 LAUNCHER ==='); + + try { + + // Buscar la DLL de AutoIt + const autoItDllPath = findAutoItDLL(); + + if (!autoItDllPath) { + console.log('[DLL] ✗ ERROR CRÍTICO: No se pudo encontrar AutoItX3.dll'); + return; + } + + // Usar el nuevo cargador + const autoit = await loadAutoItWithDependencies(autoItDllPath); + + // Continuar con el resto del código AS400... + console.log('[SETUP] ✓ AutoIt configurado, continuando con AS400...'); + + // Reemplaza la sección de carga de Koffi en runAS400Launcher() + try { + console.log(`[DLL] Cargando AutoIt DLL desde: ${autoItDllPath}`); + + // Cargar koffi y autoit con manejo de errores mejorado + //let autoit, koffi; + + try { + console.log(`[DLL] Cargando AutoIt DLL desde: ${autoItDllPath}`); + + // Verificar acceso a la DLL + console.log('[DLL] Verificando acceso a la DLL...'); + fs.accessSync(autoItDllPath, fs.constants.R_OK); + console.log('[DLL] ✓ DLL accesible para lectura'); + + // Configurar variables de entorno para librerías nativas + const { app } = require('electron'); + if (app.isPackaged) { + // Agregar rutas de DLLs al PATH del proceso + const dllDir = path.dirname(autoItDllPath); + const currentPath = process.env.PATH || ''; + if (!currentPath.includes(dllDir)) { + process.env.PATH = `${dllDir};${currentPath}`; + console.log(`[ENV] ✓ Agregada ruta DLL al PATH: ${dllDir}`); + } + + // Configurar ruta de librerías desempaquetadas + const unpackedPath = path.join(process.resourcesPath, 'app.asar.unpacked', 'node_modules'); + if (fs.existsSync(unpackedPath)) { + require('module').globalPaths.push(unpackedPath); + console.log(`[ENV] ✓ Agregada ruta de módulos desempaquetados: ${unpackedPath}`); + } + } + + // Cargar koffi primero + console.log('[KOFFI] Cargando koffi...'); + const koffi = require("koffi"); + console.log('[KOFFI] ✓ Koffi cargado exitosamente'); + + // Cargar node-autoit-koffi + console.log('[AUTOIT] Cargando node-autoit-koffi...'); + let autoit; + + if (app.isPackaged) { + // En aplicación empaquetada, cargar desde ruta desempaquetada + const autoitModulePath = path.join(process.resourcesPath, 'app.asar.unpacked', 'node_modules', 'node-autoit-koffi'); + if (fs.existsSync(autoitModulePath)) { + autoit = require(autoitModulePath); + console.log('[AUTOIT] ✓ node-autoit-koffi cargado desde ruta desempaquetada'); + } else { + autoit = require("node-autoit-koffi"); + console.log('[AUTOIT] ✓ node-autoit-koffi cargado normalmente'); + } + } else { + autoit = require("node-autoit-koffi"); + console.log('[AUTOIT] ✓ node-autoit-koffi cargado (modo desarrollo)'); + } + + // Configurar la DLL manualmente si es necesario + if (autoit.setDllPath && typeof autoit.setDllPath === 'function') { + autoit.setDllPath(autoItDllPath); + console.log('[AUTOIT] ✓ Ruta DLL configurada manualmente'); + } + + console.log('[SETUP] ✓ Configuración de AutoIt completada exitosamente'); + + } catch (loadError) { + console.error(`[DLL] ✗ Error cargando DLL: ${loadError.message}`); + console.error(`[DLL] Stack trace: ${loadError.stack}`); + + // Diagnóstico del error + if (loadError.message.includes('Failed to load shared library')) { + console.log('[DLL] ℹ Error de dependencias detectado'); + + // Verificar dependencias del sistema + const dependencyChecks = [ + 'C:/Windows/System32/msvcr120.dll', + 'C:/Windows/System32/msvcp120.dll', + 'C:/Windows/System32/vcruntime140.dll', + 'C:/Windows/System32/msvcp140.dll', + 'C:/Windows/System32/vcruntime140_1.dll', + 'C:/Windows/System32/api-ms-win-crt-runtime-l1-1-0.dll' + ]; + + console.log('[DLL] Verificando dependencias del sistema...'); + const missingDeps = []; + + for (const dep of dependencyChecks) { + try { + if (fs.existsSync(dep)) { + console.log(`[DLL] ✓ Dependencia encontrada: ${dep}`); + } else { + console.log(`[DLL] ✗ Dependencia faltante: ${dep}`); + missingDeps.push(path.basename(dep)); + } + } catch (e) { + console.log(`[DLL] ⚠ Error verificando ${dep}: ${e.message}`); + } + } + + let errorMessage = 'No se pudo cargar la librería AutoIt debido a dependencias faltantes.\n\n'; + + if (missingDeps.length > 0) { + errorMessage += `Dependencias faltantes: ${missingDeps.join(', ')}\n\n`; + } + + errorMessage += 'Por favor instala:\n' + + '1. Visual C++ Redistributable 2015-2022 (x64)\n' + + '2. Visual C++ Redistributable 2013 (x64)\n' + + '3. Windows Universal C Runtime\n\n' + + 'Enlaces de descarga:\n' + + '- https://aka.ms/vs/17/release/vc_redist.x64.exe\n' + + '- https://www.microsoft.com/download/details.aspx?id=40784\n\n' + + 'Reinicia la aplicación después de la instalación.'; + + dialog.showErrorBox('Error - Dependencias AutoIt', errorMessage); + } + + throw loadError; + } + + // Resto del código AS400... + console.log('[SETUP] Configuración de AutoIt completada, continuando con AS400...'); + + } catch (error) { + console.error(`[ERROR] ✗ Error crítico en AS400 Launcher: ${error.message}`); + + const { dialog } = require('electron'); + dialog.showErrorBox('Error - AutoIt', + `Error cargando AutoIt: ${error.message}\n\n` + + 'Por favor reporta este error al desarrollador.' + ); + + throw error; + } + + + + // Verificar las rutas de los ejecutables + const as400LauncherPath = 'C:/Users/Public/IBM/ClientSolutions/Start_Programs/Windows_i386-32/acslaunch_win-32.exe'; + const as400ConfigPath = 'C:/RpaClaro/AS400.hod'; + + console.log(`[EXEC] Verificando ejecutable AS400: ${as400LauncherPath}`); + if (!fs.existsSync(as400LauncherPath)) { + console.log('[EXEC] ✗ ERROR: No se encontró el ejecutable AS400'); + dialog.showErrorBox('Error - AS400', + `No se encontró el ejecutable AS400 en:\n${as400LauncherPath}\n\n` + + 'Por favor verifica que IBM Client Solutions esté instalado.' + ); + return; + } + + console.log(`[EXEC] Verificando configuración AS400: ${as400ConfigPath}`); + if (!fs.existsSync(as400ConfigPath)) { + console.log('[EXEC] ⚠ ADVERTENCIA: No se encontró el archivo de configuración AS400'); + } + + // Continuar con el resto del código AS400... + console.log('[EXEC] Ejecutando AS400 Launcher...'); + console.log(`[EXEC] Comando: ${as400LauncherPath} ${as400ConfigPath}`); + + await autoit.run(`"${as400LauncherPath}" "${as400ConfigPath}"`); + console.log('[EXEC] ✓ Comando ejecutado, esperando ventana...'); + + console.log('[WAIT] Esperando ventana "Iniciar sesión en IBM i" (timeout: 35s)...'); const result = await autoit.winWait("Iniciar sesión en IBM i", "", 35); if (result) { + console.log('[WINDOW] ✓ Ventana "Iniciar sesión en IBM i" detectada'); + let ventana_error = 0; let ventana_contrasena = 0; let ventana_mensaje1 = 0; let ventana_mensaje2 = 0; - console.log("El programa se ha abierto correctamente."); + + console.log('[INPUT] Activando ventana y enviando credenciales...'); await autoit.winActivate("Iniciar sesión en IBM i"); - await autoit.winSetState("A - ", '', 3) + await autoit.winSetState("A - ", '', 3); + + console.log(`[INPUT] Enviando usuario: ${usuario}`); await autoit.controlSend("Iniciar sesión en IBM i", '', null, usuario); + await autoit.winActivate("Iniciar sesión en IBM i"); + console.log('[INPUT] Enviando TAB'); await autoit.controlSend("Iniciar sesión en IBM i", '', null, "{TAB}"); + await autoit.winActivate("Iniciar sesión en IBM i"); + console.log('[INPUT] Enviando contraseña'); await autoit.controlSend("Iniciar sesión en IBM i", '', null, password); + + console.log('[INPUT] Enviando ENTER para login'); await autoit.controlSend("Iniciar sesión en IBM i", '', null, "{ENTER}"); + + console.log('[WAIT] Verificando mensaje de error (timeout: 8s)...'); ventana_error = await autoit.winWait("Mensaje de error", "", 8); + if (ventana_error == 1) { - console.log("Aparecio mensaje de error"); + console.log('[ERROR] ✗ Apareció mensaje de error, presionando ENTER para continuar'); + await autoit.controlSend("Mensaje de error", '', null, "{ENTER}"); } else { - console.log("No aparecio mensaje de error"); + console.log('[ERROR] ✓ No apareció mensaje de error'); } + console.log('[WAIT] Verificando error de credenciales (timeout: 35s)...'); + const ventana_login_error = await autoit.winWait("Iniciar sesión en IBM i", "", 35); + + if (ventana_login_error) { + console.log('[LOGIN] ✗ Error de credenciales detectado'); + console.log('[CLEANUP] Cerrando ventanas...'); + await autoit.winClose("Iniciar sesión en IBM i"); + await autoit.winClose("A - "); + console.log('[DIALOG] Mostrando dialog de error al usuario'); + dialog.showErrorBox('Error', 'Parece que hubo un problema con el ingreso. Por favor, repórtalo al Coordinador'); + } else { + console.log('[LOGIN] ✓ No hay error de credenciales'); + } + + console.log('[WAIT] Verificando cambio de contraseña (timeout: 1s)...'); ventana_contrasena = await autoit.winWait("Cambiar contraseña de IBM i", "", 1); + if (ventana_contrasena == 1) { - console.log("Aparecio mensaje de contrasena"); + console.log('[PASSWORD] ⚠ Apareció solicitud de cambio de contraseña'); } else { - console.log("No aparecio mensaje de contrasena"); + console.log('[PASSWORD] ✓ No hay solicitud de cambio de contraseña'); } + console.log('[WAIT] Verificando mensaje de consulta 1 (timeout: 1s)...'); ventana_mensaje1 = await autoit.winWait("Mensaje de consulta", "", 1); + if (ventana_mensaje1 == 1) { + console.log('[MSG1] ✓ Apareció mensaje de consulta 1, presionando ENTER'); await autoit.controlSend("Mensaje de consulta", '', null, "{ENTER}"); - console.log("Aparecio mensaje 1"); } else { - console.log("No aparecio mensaje 1"); + console.log('[MSG1] ✓ No apareció mensaje de consulta 1'); } + console.log('[WAIT] Verificando mensaje de consulta 2 (timeout: 1s)...'); ventana_mensaje2 = await autoit.winWait("Mensaje de consulta", "", 1); + if (ventana_mensaje2 == 1) { + console.log('[MSG2] ✓ Apareció mensaje de consulta 2, presionando ENTER'); await autoit.controlSend("Mensaje de consulta", '', null, "{ENTER}"); - console.log("Aparecio mensaje 2"); } else { - console.log("No aparecio mensaje 2"); + console.log('[MSG2] ✓ No apareció mensaje de consulta 2'); } - console.log(ventana_contrasena); - console.log(ventana_error); + console.log(`[STATUS] Estado ventana_contrasena: ${ventana_contrasena}`); + console.log(`[STATUS] Estado ventana_error: ${ventana_error}`); if (ventana_contrasena == 0 && ventana_error == 0) { - console.log('diferentes'); + console.log('[SECOND_LOGIN] Condiciones para segundo login cumplidas'); + console.log('[DELAY] Esperando 3 segundos...'); await new Promise((resolve) => setTimeout(resolve, 3000)); + + console.log('[WINDOW] Obteniendo texto de ventana "A - "'); let segundo_login = await autoit.winGetText('A - '); - console.log(segundo_login); + console.log(`[WINDOW] Texto obtenido: ${segundo_login}`); + if (segundo_login == 128) { - console.log('Se encontro segundo login'); + console.log('[SECOND_LOGIN] ✓ Se encontró segundo login'); await autoit.winActivate("A - "); + console.log('[DELAY] Esperando 2 segundos adicionales...'); await new Promise((resolve) => setTimeout(resolve, 2000)); + try { + console.log('[HOTKEY] Ejecutando hotkey Shift+Ctrl+W'); await autoit.controlSend("A - ", '', null, "+^w"); - console.log('Se ejecuto hotkey'); + console.log('[HOTKEY] ✓ Hotkey ejecutado exitosamente'); + + console.log(`[INPUT] Enviando usuario en segundo login: ${usuario}`); await autoit.controlSend("A - ", '', null, usuario); + await autoit.winActivate("A - "); + console.log('[INPUT] Enviando TAB en segundo login'); await autoit.controlSend("A - ", '', null, "{TAB}"); + await autoit.winActivate("A - "); + console.log('[INPUT] Enviando contraseña en segundo login'); await autoit.controlSend("A - ", '', null, password); + + console.log('[INPUT] Enviando ENTER para segundo login'); await autoit.controlSend("A - ", '', null, "{ENTER}"); + } catch (error) { - console.log('No se ejecuto hotkey: ' + error); + console.log(`[HOTKEY] ✗ Error ejecutando hotkey: ${error}`); } } else { - console.log('No se encontro segundo login'); + console.log('[SECOND_LOGIN] ✓ No se encontró segundo login necesario'); } - } + + console.log('[AS400] ✓ Proceso AS400 completado exitosamente'); + } else { - console.log("El programa no se ha abierto dentro del tiempo de espera."); + console.log('[TIMEOUT] ✗ El programa no se abrió dentro del tiempo de espera (35s)'); } + } catch (error) { - console.error("Error:", error); + console.error(`[ERROR] ✗ Error crítico en AS400 Launcher: ${error.message}`); + console.error(`[ERROR] Stack trace: ${error.stack}`); + throw error; } } - runAS400Launcher(); + console.log('[ASYNC] Iniciando proceso asíncrono AS400...'); + // Envolver en try-catch para manejar promesas rechazadas + runAS400Launcher().catch(error => { + console.error(`[PROMISE] ✗ Error en promesa AS400: ${error.message}`); + }); + + console.log('[RETURN] Función rr() completada, retornando "test"'); return 'test'; } -module.exports = { rr }; +// Funciones auxiliares (mantener las existentes) +function verificarYEliminarArchivo(nombreArchivo) { + console.log(`[FILE] Verificando existencia del archivo: ${nombreArchivo}`); + + if (fs.existsSync(nombreArchivo)) { + try { + // fs.unlinkSync(nombreArchivo); // Descomentar para eliminar el archivo + console.log(`[FILE] ✓ Archivo encontrado y eliminado: '${nombreArchivo}'`); + } catch (e) { + console.log(`[FILE] ✗ Error al eliminar el archivo '${nombreArchivo}': ${e}`); + } + } else { + console.log(`[FILE] ℹ El archivo '${nombreArchivo}' no existe.`); + } +} + +function generarArchivo(nombreArchivo, contenido) { + console.log(`[FILE] Generando archivo de macro: ${nombreArchivo}`); + console.log(`[FILE] Tamaño del contenido: ${contenido.length} caracteres`); + + try { + fs.writeFileSync(nombreArchivo, contenido, 'utf8'); + console.log(`[FILE] ✓ Archivo generado exitosamente: '${nombreArchivo}'`); + } catch (e) { + console.log(`[FILE] ✗ Error al generar el archivo '${nombreArchivo}': ${e}`); + } +} + +function checkSystemArchitecture() { + const arch = os.arch(); + const platform = os.platform(); + console.log(`[SYSTEM] Arquitectura: ${arch}`); + console.log(`[SYSTEM] Plataforma: ${platform}`); + return arch; +} + +module.exports = { rr }; \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index c737fbb..d96f7e1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -24,13 +24,6 @@ chalk "^2.4.2" js-tokens "^4.0.0" -"@babel/runtime@^7.12.5": - version "7.23.9" - resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.9.tgz" - integrity sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw== - dependencies: - regenerator-runtime "^0.14.0" - "@develar/schema-utils@~2.6.5": version "2.6.5" resolved "https://registry.npmjs.org/@develar/schema-utils/-/schema-utils-2.6.5.tgz" @@ -98,6 +91,11 @@ minimatch "^3.0.4" plist "^3.0.4" +"@gar/promisify@^1.1.3": + version "1.1.3" + resolved "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz" + integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== + "@isaacs/cliui@^8.0.2": version "8.0.2" resolved "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz" @@ -110,6 +108,13 @@ wrap-ansi "^8.1.0" wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" +"@isaacs/fs-minipass@^4.0.0": + version "4.0.1" + resolved "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz" + integrity sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w== + dependencies: + minipass "^7.0.4" + "@malept/cross-spawn-promise@^1.1.0": version "1.1.1" resolved "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz" @@ -117,6 +122,13 @@ dependencies: cross-spawn "^7.0.1" +"@malept/cross-spawn-promise@^2.0.0": + version "2.0.0" + resolved "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-2.0.0.tgz" + integrity sha512-1DpKU0Z5ThltBwjNySMC14g0CkbyhCaz9FkhxqNsZI6uAPJXFS8cMXlBKo26FJ8ZuW6S9GCMcR9IO5k2X5/9Fg== + dependencies: + cross-spawn "^7.0.1" + "@malept/flatpak-bundler@^0.4.0": version "0.4.0" resolved "https://registry.npmjs.org/@malept/flatpak-bundler/-/flatpak-bundler-0.4.0.tgz" @@ -127,10 +139,39 @@ lodash "^4.17.15" tmp-promise "^3.0.2" -"@matrix-org/matrix-sdk-crypto-wasm@^4.3.0": - version "4.5.0" - resolved "https://registry.npmjs.org/@matrix-org/matrix-sdk-crypto-wasm/-/matrix-sdk-crypto-wasm-4.5.0.tgz" - integrity sha512-QINqNfBRrkVv9vB+hR+OW4RO6cwf8nt4GEbREiS09L5eUK6xa5REpeXyh7ty1QusYk/DBiNadNcM5ROEPk9dcQ== +"@npmcli/agent@^3.0.0": + version "3.0.0" + resolved "https://registry.npmjs.org/@npmcli/agent/-/agent-3.0.0.tgz" + integrity sha512-S79NdEgDQd/NGCay6TCoVzXSj74skRZIKJcpJjC5lOq34SZzyI6MqtiiWoiVWoVrTcGjNeC4ipbh1VIHlpfF5Q== + dependencies: + agent-base "^7.1.0" + http-proxy-agent "^7.0.0" + https-proxy-agent "^7.0.1" + lru-cache "^10.0.1" + socks-proxy-agent "^8.0.3" + +"@npmcli/fs@^2.1.0": + version "2.1.2" + resolved "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz" + integrity sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ== + dependencies: + "@gar/promisify" "^1.1.3" + semver "^7.3.5" + +"@npmcli/fs@^4.0.0": + version "4.0.0" + resolved "https://registry.npmjs.org/@npmcli/fs/-/fs-4.0.0.tgz" + integrity sha512-/xGlezI6xfGO9NwuJlnwz/K14qD1kCSAGtacBHnGzeAIuJGazcp45KP5NuyARXoKb7cwulAGWVsbeSxdG/cb0Q== + dependencies: + semver "^7.3.5" + +"@npmcli/move-file@^2.0.0": + version "2.0.1" + resolved "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz" + integrity sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ== + dependencies: + mkdirp "^1.0.4" + rimraf "^3.0.2" "@pkgjs/parseargs@^0.11.0": version "0.11.0" @@ -169,6 +210,11 @@ resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz" integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== +"@sindresorhus/is@^4.0.0": + version "4.6.0" + resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz" + integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== + "@szmarczak/http-timer@^1.1.2": version "1.1.2" resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz" @@ -176,6 +222,13 @@ dependencies: defer-to-connect "^1.0.1" +"@szmarczak/http-timer@^4.0.5": + version "4.0.6" + resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz" + integrity sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w== + dependencies: + defer-to-connect "^2.0.0" + "@tootallnate/once@2": version "2.0.0" resolved "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz" @@ -193,6 +246,16 @@ dependencies: "@types/retry" "*" +"@types/cacheable-request@^6.0.1": + version "6.0.3" + resolved "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz" + integrity sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw== + dependencies: + "@types/http-cache-semantics" "*" + "@types/keyv" "^3.1.4" + "@types/node" "*" + "@types/responselike" "^1.0.0" + "@types/debug@^4.1.6": version "4.1.12" resolved "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz" @@ -200,11 +263,6 @@ dependencies: "@types/ms" "*" -"@types/events@^3.0.0": - version "3.0.3" - resolved "https://registry.npmjs.org/@types/events/-/events-3.0.3.tgz" - integrity sha512-trOc4AAUThEz9hapPtSd7wf5tiQKvTtu5b371UxXdTuqzIh0ArcRspRP0i0Viu+LXstIQ1z96t1nsPxT9ol01g== - "@types/fs-extra@^9.0.11", "@types/fs-extra@9.0.13": version "9.0.13" resolved "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz" @@ -212,6 +270,18 @@ dependencies: "@types/node" "*" +"@types/http-cache-semantics@*": + version "4.0.4" + resolved "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz" + integrity sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA== + +"@types/keyv@^3.1.4": + version "3.1.4" + resolved "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz" + integrity sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg== + dependencies: + "@types/node" "*" + "@types/ms@*": version "0.7.34" resolved "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz" @@ -251,16 +321,18 @@ dependencies: "@types/node" "*" +"@types/responselike@^1.0.0": + version "1.0.3" + resolved "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz" + integrity sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw== + dependencies: + "@types/node" "*" + "@types/retry@*": version "0.12.5" resolved "https://registry.npmjs.org/@types/retry/-/retry-0.12.5.tgz" integrity sha512-3xSjTp3v03X/lSQLkczaN9UIEwJMoMCA1+Nb5HfbJEQWogdeQIyVtTvxPXDQjZ5zws8rFQfVfRdz03ARihPJgw== -"@types/retry@0.12.0": - version "0.12.0" - resolved "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz" - integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== - "@types/uuid@^3.4.6": version "3.4.13" resolved "https://registry.npmjs.org/@types/uuid/-/uuid-3.4.13.tgz" @@ -283,18 +355,43 @@ 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, 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== +abbrev@^1.0.0: + version "1.1.1" + resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== -agent-base@6: +abbrev@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/abbrev/-/abbrev-3.0.1.tgz" + integrity sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg== + +agent-base@^6.0.2, agent-base@6: version "6.0.2" resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== dependencies: debug "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== + +agentkeepalive@^4.2.1: + version "4.6.0" + resolved "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.6.0.tgz" + integrity sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ== + dependencies: + humanize-ms "^1.2.1" + +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + ajv-keywords@^3.4.1: version "3.5.2" resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz" @@ -310,11 +407,6 @@ ajv@^6.12.0, ajv@^6.9.1: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -another-json@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/another-json/-/another-json-0.2.0.tgz" - integrity sha512-/Ndrl68UQLhnCdsAzEXLMFuOR546o2qbYRqCglaNHbjXrwG1ayTcdwr3zkSGOGtGXDyR5X9nCFfnyG2AFJIsqg== - ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" @@ -382,6 +474,11 @@ app-builder-lib@24.13.3: tar "^6.1.12" temp-file "^3.4.0" +"aproba@^1.0.3 || ^2.0.0": + version "2.0.0" + resolved "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz" + integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== + archiver-utils@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz" @@ -427,6 +524,14 @@ archiver@^5.3.1: tar-stream "^2.2.0" zip-stream "^4.1.0" +are-we-there-yet@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz" + integrity sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg== + dependencies: + delegates "^1.0.0" + readable-stream "^3.6.0" + argparse@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" @@ -518,11 +623,6 @@ bare-stream@^2.6.4: dependencies: streamx "^2.21.0" -base-x@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz" - integrity sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw== - base64-js@^1.3.1, base64-js@^1.5.1: version "1.5.1" resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" @@ -533,7 +633,7 @@ basic-ftp@^5.0.2: resolved "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.4.tgz" integrity sha512-8PzkB0arJFV4jJWSGOYR+OEic6aeKMu/osRhBULN6RY0ykby6LKhbmuQ5ublvaas5BOwboah5D87nrHyuh8PPA== -bl@^4.0.3: +bl@^4.0.3, bl@^4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz" integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== @@ -574,13 +674,6 @@ brace-expansion@^2.0.1: dependencies: balanced-match "^1.0.0" -bs58@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz" - integrity sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ== - dependencies: - base-x "^4.0.0" - buffer-crc32@^0.2.1, buffer-crc32@^0.2.13, buffer-crc32@~0.2.3: version "0.2.13" resolved "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz" @@ -649,6 +742,53 @@ builder-util@24.13.1: stat-mode "^1.0.0" temp-file "^3.4.0" +cacache@^16.1.0: + version "16.1.3" + resolved "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz" + integrity sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ== + dependencies: + "@npmcli/fs" "^2.1.0" + "@npmcli/move-file" "^2.0.0" + chownr "^2.0.0" + fs-minipass "^2.1.0" + glob "^8.0.1" + infer-owner "^1.0.4" + lru-cache "^7.7.1" + minipass "^3.1.6" + minipass-collect "^1.0.2" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + mkdirp "^1.0.4" + p-map "^4.0.0" + promise-inflight "^1.0.1" + rimraf "^3.0.2" + ssri "^9.0.0" + tar "^6.1.11" + unique-filename "^2.0.0" + +cacache@^19.0.1: + version "19.0.1" + resolved "https://registry.npmjs.org/cacache/-/cacache-19.0.1.tgz" + integrity sha512-hdsUxulXCi5STId78vRVYEtDAjq99ICAUktLTeTYsLoTE6Z8dS0c8pWNCxwdrk9YfJeobDZc2Y186hD/5ZQgFQ== + dependencies: + "@npmcli/fs" "^4.0.0" + fs-minipass "^3.0.0" + glob "^10.2.2" + lru-cache "^10.0.1" + minipass "^7.0.3" + minipass-collect "^2.0.1" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + p-map "^7.0.2" + ssri "^12.0.0" + tar "^7.4.3" + unique-filename "^4.0.0" + +cacheable-lookup@^5.0.3: + version "5.0.4" + resolved "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz" + integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== + cacheable-request@^6.0.0: version "6.1.0" resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz" @@ -662,6 +802,19 @@ cacheable-request@^6.0.0: normalize-url "^4.1.0" responselike "^1.0.2" +cacheable-request@^7.0.2: + version "7.0.4" + resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz" + integrity sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^4.0.0" + lowercase-keys "^2.0.0" + normalize-url "^6.0.1" + responselike "^2.0.0" + callsites@^3.0.0: version "3.1.0" resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" @@ -676,6 +829,14 @@ chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" +chalk@^4.0.0: + version "4.1.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + chalk@^4.0.2: version "4.1.2" resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" @@ -684,6 +845,14 @@ chalk@^4.0.2: ansi-styles "^4.1.0" supports-color "^7.1.0" +chalk@^4.1.0: + version "4.1.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + chalk@^4.1.2: version "4.1.2" resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" @@ -697,6 +866,11 @@ chownr@^2.0.0: resolved "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz" integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== +chownr@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz" + integrity sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g== + chromium-bidi@0.5.8: version "0.5.8" resolved "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.5.8.tgz" @@ -724,6 +898,23 @@ ci-info@^3.2.0: resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz" integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-spinners@^2.5.0: + version "2.9.2" + resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz" + integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== + cliui@^8.0.1: version "8.0.1" resolved "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz" @@ -740,6 +931,11 @@ clone-response@^1.0.2: dependencies: mimic-response "^1.0.0" +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz" + integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== + color-convert@^1.9.0: version "1.9.3" resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" @@ -764,6 +960,11 @@ color-name@1.1.3: resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== +color-support@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz" + integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== + combined-stream@^1.0.8: version "1.0.8" resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" @@ -812,10 +1013,10 @@ config-file-ts@^0.2.4: glob "^10.3.10" typescript "^5.3.3" -content-type@^1.0.4: - version "1.0.5" - resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz" - integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== +console-control-strings@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz" + integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== core-js@^3.6.5: version "3.36.0" @@ -866,11 +1067,6 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" -crypto-js@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz" - integrity sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q== - data-uri-to-buffer@^4.0.0: version "4.0.1" resolved "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz" @@ -881,20 +1077,20 @@ data-uri-to-buffer@^6.0.2: resolved "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz" integrity sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw== -debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.4, debug@4, debug@4.3.4: +debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.3, debug@^4.3.4, debug@^4.3.5, debug@^4.3.6, debug@^4.4.1, debug@4: + version "4.4.1" + resolved "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz" + integrity sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ== + dependencies: + ms "^2.1.3" + +debug@4.3.4: version "4.3.4" resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== 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" @@ -902,11 +1098,30 @@ decompress-response@^3.3.0: dependencies: mimic-response "^1.0.0" +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + dependencies: + mimic-response "^3.1.0" + +defaults@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz" + integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== + dependencies: + clone "^1.0.2" + defer-to-connect@^1.0.1: version "1.1.3" resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz" integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== +defer-to-connect@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz" + integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== + define-data-property@^1.0.1: version "1.1.4" resolved "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz" @@ -939,6 +1154,16 @@ delayed-stream@~1.0.0: resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz" + integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== + +detect-libc@^2.0.1: + version "2.0.4" + resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz" + integrity sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA== + detect-node@^2.0.4: version "2.1.0" resolved "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz" @@ -1048,6 +1273,26 @@ electron-publish@24.13.1: lazy-val "^1.0.5" mime "^2.5.2" +electron-rebuild@^3.2.9: + version "3.2.9" + resolved "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-3.2.9.tgz" + integrity sha512-FkEZNFViUem3P0RLYbZkUjC8LUFIK+wKq09GHoOITSJjfDAVQv964hwaNseTTWt58sITQX3/5fHNYcTefqaCWw== + dependencies: + "@malept/cross-spawn-promise" "^2.0.0" + chalk "^4.0.0" + debug "^4.1.1" + detect-libc "^2.0.1" + fs-extra "^10.0.0" + got "^11.7.0" + lzma-native "^8.0.5" + node-abi "^3.0.0" + node-api-version "^0.1.4" + node-gyp "^9.0.0" + ora "^5.1.0" + semver "^7.3.5" + tar "^6.0.5" + yargs "^17.0.1" + electron-updater@^6.0.0: version "6.1.8" resolved "https://registry.npmjs.org/electron-updater/-/electron-updater-6.1.8.tgz" @@ -1175,10 +1420,10 @@ esutils@^2.0.2: resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -events@^3.2.0: - version "3.3.0" - resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz" - integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== +exponential-backoff@^3.1.1: + version "3.1.2" + resolved "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.2.tgz" + integrity sha512-8QxYTVXUkuy7fIIoitQkPwGonB8F3Zj8eEO8Sqg9Zv/bkI7RJAzowee4gr81Hak/dUTpA2Z7VfQgoijjPNlUZA== extract-zip@^2.0.1, extract-zip@2.0.1: version "2.0.1" @@ -1213,6 +1458,11 @@ fd-slicer@~1.1.0: dependencies: pend "~1.2.0" +fdir@^6.4.4: + version "6.4.5" + resolved "https://registry.npmjs.org/fdir/-/fdir-6.4.5.tgz" + integrity sha512-4BG7puHpVsIYxZUbiUE3RqGloLaSSwzYie5jvasC4LWuBWzZawynvYouhjbQKw2JuIGYdm0DzIxl8iVidKlUEw== + fetch-blob@^3.1.2, fetch-blob@^3.1.4: version "3.2.0" resolved "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz" @@ -1309,13 +1559,20 @@ fs-extra@^9.0.1: jsonfile "^6.0.1" universalify "^2.0.0" -fs-minipass@^2.0.0: +fs-minipass@^2.0.0, fs-minipass@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz" integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== dependencies: minipass "^3.0.0" +fs-minipass@^3.0.0: + version "3.0.3" + resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz" + integrity sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw== + dependencies: + minipass "^7.0.3" + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" @@ -1326,6 +1583,20 @@ function-bind@^1.1.2: resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== +gauge@^4.0.3: + version "4.0.4" + resolved "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz" + integrity sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg== + dependencies: + aproba "^1.0.3 || ^2.0.0" + color-support "^1.1.3" + console-control-strings "^1.1.0" + has-unicode "^2.0.1" + signal-exit "^3.0.7" + string-width "^4.2.3" + strip-ansi "^6.0.1" + wide-align "^1.1.5" + get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" @@ -1376,7 +1647,7 @@ get-uri@^6.0.1: debug "^4.3.4" fs-extra "^11.2.0" -glob@^10.3.10: +glob@^10.2.2, glob@^10.3.10: version "10.3.10" resolved "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz" integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g== @@ -1387,6 +1658,18 @@ glob@^10.3.10: minipass "^5.0.0 || ^6.0.2 || ^7.0.0" path-scurry "^1.10.1" +glob@^7.1.3: + version "7.2.3" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + glob@^7.1.4: version "7.2.3" resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" @@ -1423,6 +1706,17 @@ glob@^7.2.3: once "^1.3.0" path-is-absolute "^1.0.0" +glob@^8.0.1: + version "8.1.0" + resolved "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + global-agent@^2.1.12: version "2.2.0" resolved "https://registry.npmjs.org/global-agent/-/global-agent-2.2.0.tgz" @@ -1472,6 +1766,23 @@ gopd@^1.0.1: dependencies: get-intrinsic "^1.1.3" +got@^11.7.0: + version "11.8.6" + resolved "https://registry.npmjs.org/got/-/got-11.8.6.tgz" + integrity sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g== + dependencies: + "@sindresorhus/is" "^4.0.0" + "@szmarczak/http-timer" "^4.0.5" + "@types/cacheable-request" "^6.0.1" + "@types/responselike" "^1.0.0" + cacheable-lookup "^5.0.3" + cacheable-request "^7.0.2" + decompress-response "^6.0.0" + http2-wrapper "^1.0.0-beta.5.2" + lowercase-keys "^2.0.0" + p-cancelable "^2.0.0" + responselike "^2.0.0" + got@^9.6.0: version "9.6.0" resolved "https://registry.npmjs.org/got/-/got-9.6.0.tgz" @@ -1489,7 +1800,7 @@ got@^9.6.0: to-readable-stream "^1.0.0" url-parse-lax "^3.0.0" -graceful-fs@^4.1.6, graceful-fs@^4.2.0: +graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.6: version "4.2.11" resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== @@ -1521,6 +1832,11 @@ has-symbols@^1.0.3: resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== +has-unicode@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz" + integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== + hasown@^2.0.0: version "2.0.1" resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz" @@ -1535,7 +1851,7 @@ hosted-git-info@^4.1.0: dependencies: lru-cache "^6.0.0" -http-cache-semantics@^4.0.0: +http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.0, http-cache-semantics@^4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz" integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== @@ -1557,6 +1873,22 @@ http-proxy-agent@^7.0.0, http-proxy-agent@^7.0.1: agent-base "^7.1.0" debug "^4.3.4" +http2-wrapper@^1.0.0-beta.5.2: + version "1.0.3" + resolved "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz" + integrity sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg== + dependencies: + quick-lru "^5.1.1" + resolve-alpn "^1.0.0" + +https-proxy-agent@^5.0.0: + version "5.0.1" + resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== + dependencies: + agent-base "6" + debug "4" + https-proxy-agent@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz" @@ -1565,7 +1897,7 @@ https-proxy-agent@^5.0.1: agent-base "6" debug "4" -https-proxy-agent@^7.0.2, https-proxy-agent@^7.0.6: +https-proxy-agent@^7.0.1, 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== @@ -1578,6 +1910,13 @@ https@^1.0.0: resolved "https://registry.npmjs.org/https/-/https-1.0.0.tgz" integrity sha512-4EC57ddXrkaF0x83Oj8sM6SLQHAWXw90Skqu2M4AEWENZ3F02dFJE/GARA8igO79tcgYqGrD7ae4f5L3um2lgg== +humanize-ms@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz" + integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== + dependencies: + ms "^2.0.0" + iconv-lite@^0.6.2, iconv-lite@^0.6.3: version "0.6.3" resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz" @@ -1598,6 +1937,21 @@ import-fresh@^3.3.0: parent-module "^1.0.0" resolve-from "^4.0.0" +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +infer-owner@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz" + integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== + inflight@^1.0.4: version "1.0.6" resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" @@ -1641,6 +1995,21 @@ is-fullwidth-code-point@^3.0.0: resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== +is-interactive@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz" + integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== + +is-lambda@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz" + integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== + +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== + isarray@~1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" @@ -1661,6 +2030,11 @@ isexe@^2.0.0: resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== +isexe@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz" + integrity sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ== + jackspeak@^2.3.5: version "2.3.6" resolved "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz" @@ -1707,6 +2081,11 @@ json-buffer@3.0.0: resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz" integrity sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ== +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + json-parse-even-better-errors@^2.3.0: version "2.3.1" resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" @@ -1743,11 +2122,6 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" -jwt-decode@^3.1.2: - version "3.1.2" - resolved "https://registry.npmjs.org/jwt-decode/-/jwt-decode-3.1.2.tgz" - integrity sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A== - keyv@^3.0.0: version "3.1.0" resolved "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz" @@ -1755,10 +2129,17 @@ keyv@^3.0.0: dependencies: json-buffer "3.0.0" +keyv@^4.0.0: + version "4.5.4" + resolved "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== + dependencies: + json-buffer "3.0.1" + koffi@^2.8.0: - version "2.8.11" - resolved "https://registry.npmjs.org/koffi/-/koffi-2.8.11.tgz" - integrity sha512-wrWaW6DJVFis7Qlsh4YDwObrzE/Jynu8pWC3W+0B3d4kv5BFbpPFWEzg4QYGjF+tOA/kpzol8n5o5j4+SGMbQA== + version "2.11.0" + resolved "https://registry.npmjs.org/koffi/-/koffi-2.11.0.tgz" + integrity sha512-AJ6MHz9Z8OIftKu322jrKJFvy/rZTdCD4b7F457WrK71rxYV7O5PSdWsJDN0p3rY1BZaPeLHVwyt4i2Xyk8wJg== lazy-val@^1.0.4, lazy-val@^1.0.5: version "1.0.5" @@ -1817,10 +2198,13 @@ lodash@^4.17.10, lodash@^4.17.15, lodash@^4.17.21: resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -loglevel@^1.7.1: - version "1.9.1" - resolved "https://registry.npmjs.org/loglevel/-/loglevel-1.9.1.tgz" - integrity sha512-hP3I3kCrDIMuRwAwHltphhDM1r8i55H33GgqjXbrisuJhF4kRhW1dNuxsRklp4bXl8DSdLaNLuiL4A/LWRfxvg== +log-symbols@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== + dependencies: + chalk "^4.1.0" + is-unicode-supported "^0.1.0" lowercase-keys@^1.0.0: version "1.0.1" @@ -1837,6 +2221,11 @@ lowercase-keys@^2.0.0: resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz" integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== +lru-cache@^10.0.1, "lru-cache@^9.1.1 || ^10.0.0": + version "10.2.0" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz" + integrity sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q== + lru-cache@^6.0.0: version "6.0.0" resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" @@ -1849,10 +2238,58 @@ lru-cache@^7.14.1: resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz" integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA== -"lru-cache@^9.1.1 || ^10.0.0": - version "10.2.0" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz" - integrity sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q== +lru-cache@^7.7.1: + version "7.18.3" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz" + integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA== + +lzma-native@^8.0.5: + version "8.0.6" + resolved "https://registry.npmjs.org/lzma-native/-/lzma-native-8.0.6.tgz" + integrity sha512-09xfg67mkL2Lz20PrrDeNYZxzeW7ADtpYFbwSQh9U8+76RIzx5QsJBMy8qikv3hbUPfpy6hqwxt6FcGK81g9AA== + dependencies: + node-addon-api "^3.1.0" + node-gyp-build "^4.2.1" + readable-stream "^3.6.0" + +make-fetch-happen@^10.0.3: + version "10.2.1" + resolved "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz" + integrity sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w== + dependencies: + agentkeepalive "^4.2.1" + cacache "^16.1.0" + http-cache-semantics "^4.1.0" + http-proxy-agent "^5.0.0" + https-proxy-agent "^5.0.0" + is-lambda "^1.0.1" + lru-cache "^7.7.1" + minipass "^3.1.6" + minipass-collect "^1.0.2" + minipass-fetch "^2.0.3" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + negotiator "^0.6.3" + promise-retry "^2.0.1" + socks-proxy-agent "^7.0.0" + ssri "^9.0.0" + +make-fetch-happen@^14.0.3: + version "14.0.3" + resolved "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-14.0.3.tgz" + integrity sha512-QMjGbFTP0blj97EeidG5hk/QhKQ3T4ICckQGLgz38QF7Vgbk6e6FTARN8KhKxyBbWn8R0HU+bnw8aSoFPD4qtQ== + dependencies: + "@npmcli/agent" "^3.0.0" + cacache "^19.0.1" + http-cache-semantics "^4.1.1" + minipass "^7.0.2" + minipass-fetch "^4.0.0" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + negotiator "^1.0.0" + proc-log "^5.0.0" + promise-retry "^2.0.1" + ssri "^12.0.0" matcher@^3.0.0: version "3.0.0" @@ -1861,39 +2298,6 @@ matcher@^3.0.0: dependencies: escape-string-regexp "^4.0.0" -matrix-events-sdk@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/matrix-events-sdk/-/matrix-events-sdk-0.0.1.tgz" - integrity sha512-1QEOsXO+bhyCroIe2/A5OwaxHvBm7EsSQ46DEDn8RBIfQwN5HWBpFvyWWR4QY0KHPPnnJdI99wgRiAl7Ad5qaA== - -matrix-js-sdk@^31.1.0: - version "31.3.0" - resolved "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-31.3.0.tgz" - integrity sha512-RwpHQxb8DWBaE7yzrTfSfO1N4jyk6ilcu/Zt3VFqwmeym/0ipVUy98sB2JXOf6E+MdG1w4WzOIxQu2R7GpPZ2g== - dependencies: - "@babel/runtime" "^7.12.5" - "@matrix-org/matrix-sdk-crypto-wasm" "^4.3.0" - another-json "^0.2.0" - bs58 "^5.0.0" - content-type "^1.0.4" - jwt-decode "^3.1.2" - loglevel "^1.7.1" - matrix-events-sdk "0.0.1" - matrix-widget-api "^1.6.0" - oidc-client-ts "^2.2.4" - p-retry "4" - sdp-transform "^2.14.1" - unhomoglyph "^1.0.6" - uuid "9" - -matrix-widget-api@^1.6.0: - version "1.6.0" - resolved "https://registry.npmjs.org/matrix-widget-api/-/matrix-widget-api-1.6.0.tgz" - integrity sha512-VXIJyAZ/WnBmT4C7ePqevgMYGneKMCP/0JuCOqntSsaNlCRHJvwvTxmqUU+ufOpzIF5gYNyIrAjbgrEbK3iqJQ== - dependencies: - "@types/events" "^3.0.0" - events "^3.2.0" - mime-db@1.52.0: version "1.52.0" resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" @@ -1911,11 +2315,21 @@ mime@^2.5.2: resolved "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz" integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + mimic-response@^1.0.0, mimic-response@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz" integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + minimatch@^3.0.4, minimatch@^3.1.1: version "3.1.2" resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" @@ -1949,24 +2363,81 @@ minimist@^1.2.6: resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== -minipass@^3.0.0: +minipass-collect@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz" + integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== + dependencies: + minipass "^3.0.0" + +minipass-collect@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz" + integrity sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw== + dependencies: + minipass "^7.0.3" + +minipass-fetch@^2.0.3: + version "2.1.2" + resolved "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz" + integrity sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA== + dependencies: + minipass "^3.1.6" + minipass-sized "^1.0.3" + minizlib "^2.1.2" + optionalDependencies: + encoding "^0.1.13" + +minipass-fetch@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-4.0.1.tgz" + integrity sha512-j7U11C5HXigVuutxebFadoYBbd7VSdZWggSe64NVdvWNBqGAiXPL2QVCehjmw7lY1oF9gOllYbORh+hiNgfPgQ== + dependencies: + minipass "^7.0.3" + minipass-sized "^1.0.3" + minizlib "^3.0.1" + optionalDependencies: + encoding "^0.1.13" + +minipass-flush@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz" + integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== + dependencies: + minipass "^3.0.0" + +minipass-pipeline@^1.2.4: + version "1.2.4" + resolved "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz" + integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== + dependencies: + minipass "^3.0.0" + +minipass-sized@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz" + integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g== + dependencies: + minipass "^3.0.0" + +minipass@^3.0.0, minipass@^3.1.1, minipass@^3.1.6: version "3.3.6" resolved "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz" integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== dependencies: yallist "^4.0.0" -"minipass@^5.0.0 || ^6.0.2 || ^7.0.0": - version "7.0.4" - resolved "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz" - integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.2, minipass@^7.0.3, minipass@^7.0.4, minipass@^7.1.2: + version "7.1.2" + resolved "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz" + integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== minipass@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz" integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== -minizlib@^2.1.1: +minizlib@^2.1.1, minizlib@^2.1.2: version "2.1.2" resolved "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz" integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== @@ -1974,6 +2445,13 @@ minizlib@^2.1.1: minipass "^3.0.0" yallist "^4.0.0" +minizlib@^3.0.1: + version "3.0.2" + resolved "https://registry.npmjs.org/minizlib/-/minizlib-3.0.2.tgz" + integrity sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA== + dependencies: + minipass "^7.1.2" + mitt@3.0.1: version "3.0.1" resolved "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz" @@ -1984,12 +2462,17 @@ mkdirp-classic@^0.5.2: resolved "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz" integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== -mkdirp@^1.0.3: +mkdirp@^1.0.3, mkdirp@^1.0.4: version "1.0.4" resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -ms@^2.1.3: +mkdirp@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz" + integrity sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg== + +ms@^2.0.0, 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== @@ -1999,16 +2482,40 @@ ms@2.1.2: resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== +negotiator@^0.6.3: + version "0.6.4" + resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz" + integrity sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w== + +negotiator@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz" + integrity sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg== + netmask@^2.0.2: version "2.0.2" resolved "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz" integrity sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg== -node-addon-api@^3.0.0: +node-abi@^3.0.0: + version "3.75.0" + resolved "https://registry.npmjs.org/node-abi/-/node-abi-3.75.0.tgz" + integrity sha512-OhYaY5sDsIka7H7AtijtI9jwGYLyl29eQn/W623DiN/MIv5sUqc4g7BIDThX+gb7di9f6xK02nkp8sdfFWZLTg== + dependencies: + semver "^7.3.5" + +node-addon-api@^3.0.0, node-addon-api@^3.1.0: version "3.2.1" resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz" integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== +node-api-version@^0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/node-api-version/-/node-api-version-0.1.4.tgz" + integrity sha512-KGXihXdUChwJAOHO53bv9/vXcLmdUsZ6jIptbvYvkpKfth+r7jw44JkVxQFA3kX5nQjzjmGu1uAu/xNNLNlI5g== + dependencies: + semver "^7.3.5" + node-autoit-koffi@^1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/node-autoit-koffi/-/node-autoit-koffi-1.0.5.tgz" @@ -2048,16 +2555,63 @@ node-global-proxy@^1.0.1: global-agent "^2.1.12" global-tunnel-ng "^2.7.1" -node-gyp-build@^4.2.1, node-gyp-build@^4.3.0: - version "4.8.0" - resolved "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz" - integrity sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og== +node-gyp-build@^4.2.1, node-gyp-build@^4.3.0, node-gyp-build@^4.8.4: + version "4.8.4" + resolved "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz" + integrity sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ== + +node-gyp@^11.2.0: + version "11.2.0" + resolved "https://registry.npmjs.org/node-gyp/-/node-gyp-11.2.0.tgz" + integrity sha512-T0S1zqskVUSxcsSTkAsLc7xCycrRYmtDHadDinzocrThjyQCn5kMlEBSj6H4qDbgsIOSLmmlRIeb0lZXj+UArA== + dependencies: + env-paths "^2.2.0" + exponential-backoff "^3.1.1" + graceful-fs "^4.2.6" + make-fetch-happen "^14.0.3" + nopt "^8.0.0" + proc-log "^5.0.0" + semver "^7.3.5" + tar "^7.4.3" + tinyglobby "^0.2.12" + which "^5.0.0" + +node-gyp@^9.0.0: + version "9.4.1" + resolved "https://registry.npmjs.org/node-gyp/-/node-gyp-9.4.1.tgz" + integrity sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ== + dependencies: + env-paths "^2.2.0" + exponential-backoff "^3.1.1" + glob "^7.1.4" + graceful-fs "^4.2.6" + make-fetch-happen "^10.0.3" + nopt "^6.0.0" + npmlog "^6.0.0" + rimraf "^3.0.2" + semver "^7.3.5" + tar "^6.1.2" + which "^2.0.2" nodemailer@^6.9.8: version "6.9.9" resolved "https://registry.npmjs.org/nodemailer/-/nodemailer-6.9.9.tgz" integrity sha512-dexTll8zqQoVJEZPwQAKzxxtFn0qTnjdQTchoU6Re9BUUGBJiOy3YMn/0ShTW6J5M0dfQ1NeDeRTTl4oIWgQMA== +nopt@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz" + integrity sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g== + dependencies: + abbrev "^1.0.0" + +nopt@^8.0.0: + version "8.1.0" + resolved "https://registry.npmjs.org/nopt/-/nopt-8.1.0.tgz" + integrity sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A== + dependencies: + abbrev "^3.0.0" + normalize-path@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" @@ -2068,6 +2622,11 @@ normalize-url@^4.1.0: resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz" integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== +normalize-url@^6.0.1: + version "6.1.0" + resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz" + integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== + npm-conf@^1.1.3: version "1.1.3" resolved "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz" @@ -2076,19 +2635,21 @@ npm-conf@^1.1.3: config-chain "^1.1.11" pify "^3.0.0" +npmlog@^6.0.0: + version "6.0.2" + resolved "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz" + integrity sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg== + dependencies: + are-we-there-yet "^3.0.0" + console-control-strings "^1.1.0" + gauge "^4.0.3" + set-blocking "^2.0.0" + object-keys@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -oidc-client-ts@^2.2.4: - version "2.4.0" - resolved "https://registry.npmjs.org/oidc-client-ts/-/oidc-client-ts-2.4.0.tgz" - integrity sha512-WijhkTrlXK2VvgGoakWJiBdfIsVGz6CFzgjNNqZU1hPKV2kyeEaJgLs7RwuiSp2WhLfWBQuLvr2SxVlZnk3N1w== - dependencies: - crypto-js "^4.2.0" - jwt-decode "^3.1.2" - once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" @@ -2096,18 +2657,49 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" +onetime@^5.1.0: + version "5.1.2" + resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +ora@^5.1.0: + version "5.4.1" + resolved "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz" + integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== + dependencies: + bl "^4.1.0" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-spinners "^2.5.0" + is-interactive "^1.0.0" + is-unicode-supported "^0.1.0" + log-symbols "^4.1.0" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + p-cancelable@^1.0.0: version "1.1.0" resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz" integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== -p-retry@4: - version "4.6.2" - resolved "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz" - integrity sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ== +p-cancelable@^2.0.0: + version "2.1.1" + resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz" + integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== + +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== dependencies: - "@types/retry" "0.12.0" - retry "^0.13.1" + aggregate-error "^3.0.0" + +p-map@^7.0.2: + version "7.0.3" + resolved "https://registry.npmjs.org/p-map/-/p-map-7.0.3.tgz" + integrity sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA== pac-proxy-agent@^7.0.1, pac-proxy-agent@^7.1.0: version "7.2.0" @@ -2171,6 +2763,11 @@ pend@~1.2.0: resolved "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz" integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== +"picomatch@^3 || ^4", picomatch@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz" + integrity sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg== + pify@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz" @@ -2190,6 +2787,11 @@ prepend-http@^2.0.0: resolved "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz" integrity sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA== +proc-log@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/proc-log/-/proc-log-5.0.0.tgz" + integrity sha512-Azwzvl90HaF0aCz1JrDdXQykFakSSNPaPoiZ9fm5qJIMHioDZEi7OAdRwSm6rSoPtY3Qutnm3L7ogmg3dc+wbQ== + process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" @@ -2200,6 +2802,11 @@ progress@^2.0.3, progress@2.0.3: resolved "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz" + integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== + promise-retry@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz" @@ -2305,6 +2912,11 @@ puppeteer@^22.15.0: devtools-protocol "0.0.1312386" puppeteer-core "22.15.0" +quick-lru@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz" + integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== + read-config-file@6.3.2: version "6.3.2" resolved "https://registry.npmjs.org/read-config-file/-/read-config-file-6.3.2.tgz" @@ -2369,16 +2981,16 @@ ref-napi@^3.0.3: node-addon-api "^3.0.0" node-gyp-build "^4.2.1" -regenerator-runtime@^0.14.0: - version "0.14.1" - resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz" - integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== - require-directory@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== +resolve-alpn@^1.0.0: + version "1.2.1" + resolved "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz" + integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== + resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" @@ -2391,16 +3003,38 @@ responselike@^1.0.2: dependencies: lowercase-keys "^1.0.0" +responselike@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz" + integrity sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw== + dependencies: + lowercase-keys "^2.0.0" + +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + retry@^0.12.0: version "0.12.0" resolved "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz" integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== -retry@^0.13.1, retry@0.13.1: +retry@0.13.1: version "0.13.1" resolved "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz" integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + roarr@^2.15.3: version "2.15.4" resolved "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz" @@ -2423,7 +3057,7 @@ safe-buffer@~5.2.0: resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -"safer-buffer@>= 2.1.2 < 3.0.0": +safer-buffer@^2.1.2, "safer-buffer@>= 2.1.2 < 3.0.0": version "2.1.2" resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== @@ -2440,11 +3074,6 @@ sax@^1.2.4: resolved "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz" integrity sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA== -sdp-transform@^2.14.1: - version "2.14.2" - resolved "https://registry.npmjs.org/sdp-transform/-/sdp-transform-2.14.2.tgz" - integrity sha512-icY6jVao7MfKCieyo1AyxFYm1baiM+fA00qW/KrNNVlkxHAd34riEKuEkUe4bBb3gJwLJZM+xT60Yj1QL8rHiA== - semver-compare@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz" @@ -2462,6 +3091,11 @@ semver@^7.3.2: dependencies: lru-cache "^6.0.0" +semver@^7.3.5: + version "7.7.2" + resolved "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz" + integrity sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA== + semver@^7.3.8: version "7.6.0" resolved "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz" @@ -2488,6 +3122,11 @@ serialize-error@^7.0.1: dependencies: type-fest "^0.13.1" +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== + shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" @@ -2500,6 +3139,11 @@ shebang-regex@^3.0.0: resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== +signal-exit@^3.0.2, signal-exit@^3.0.7: + version "3.0.7" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + signal-exit@^4.0.1: version "4.1.0" resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz" @@ -2517,7 +3161,16 @@ 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, socks-proxy-agent@^8.0.5: +socks-proxy-agent@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz" + integrity sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww== + dependencies: + agent-base "^6.0.2" + debug "^4.3.3" + socks "^2.6.2" + +socks-proxy-agent@^8.0.2, socks-proxy-agent@^8.0.3, 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== @@ -2526,7 +3179,7 @@ socks-proxy-agent@^8.0.2, socks-proxy-agent@^8.0.5: debug "^4.3.4" socks "^2.8.3" -socks@^2.8.3: +socks@^2.6.2, socks@^2.8.3: version "2.8.4" resolved "https://registry.npmjs.org/socks/-/socks-2.8.4.tgz" integrity sha512-D3YaD0aRxR3mEcqnidIs7ReYJFVzWdd6fXJYUM8ixcQcJRGTka/b3saV0KflYhyVJXKhb947GndU35SxYNResQ== @@ -2552,6 +3205,20 @@ sprintf-js@^1.1.2, sprintf-js@^1.1.3: resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz" integrity sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA== +ssri@^12.0.0: + version "12.0.0" + resolved "https://registry.npmjs.org/ssri/-/ssri-12.0.0.tgz" + integrity sha512-S7iGNosepx9RadX82oimUkvr0Ct7IjJbEbs4mJcTxst8um95J3sDYU1RBEOvdu6oL1Wek2ODI5i4MAw+dZ6cAQ== + dependencies: + minipass "^7.0.3" + +ssri@^9.0.0: + version "9.0.1" + resolved "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz" + integrity sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q== + dependencies: + minipass "^3.1.1" + stat-mode@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/stat-mode/-/stat-mode-1.0.0.tgz" @@ -2590,7 +3257,7 @@ string_decoder@~1.1.1: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -2690,7 +3357,7 @@ tar-stream@^3.1.5: fast-fifo "^1.2.0" streamx "^2.15.0" -tar@^6.1.12: +tar@^6.0.5, tar@^6.1.11, tar@^6.1.12, tar@^6.1.2: version "6.2.0" resolved "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz" integrity sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ== @@ -2702,6 +3369,18 @@ tar@^6.1.12: mkdirp "^1.0.3" yallist "^4.0.0" +tar@^7.4.3: + version "7.4.3" + resolved "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz" + integrity sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw== + dependencies: + "@isaacs/fs-minipass" "^4.0.0" + chownr "^3.0.0" + minipass "^7.1.2" + minizlib "^3.0.1" + mkdirp "^3.0.1" + yallist "^5.0.0" + temp-file@^3.4.0: version "3.4.0" resolved "https://registry.npmjs.org/temp-file/-/temp-file-3.4.0.tgz" @@ -2727,6 +3406,14 @@ tiny-typed-emitter@^2.1.0: resolved "https://registry.npmjs.org/tiny-typed-emitter/-/tiny-typed-emitter-2.1.0.tgz" integrity sha512-qVtvMxeXbVej0cQWKqVSSAHmKZEHAvxdF8HEUBFWts8h+xEo5m/lEiPakuyZ3BnCBjOD8i24kzNOiOLLgsSxhA== +tinyglobby@^0.2.12: + version "0.2.14" + resolved "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz" + integrity sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ== + dependencies: + fdir "^6.4.4" + picomatch "^4.0.2" + tmp-promise@^3.0.2: version "3.0.3" resolved "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.3.tgz" @@ -2789,10 +3476,33 @@ undici-types@~5.26.4: resolved "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz" integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== -unhomoglyph@^1.0.6: - version "1.0.6" - resolved "https://registry.npmjs.org/unhomoglyph/-/unhomoglyph-1.0.6.tgz" - integrity sha512-7uvcWI3hWshSADBu4JpnyYbTVc7YlhF5GDW/oPD5AxIxl34k4wXR3WDkPnzLxkN32LiTCTKMQLtKVZiwki3zGg== +unique-filename@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz" + integrity sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A== + dependencies: + unique-slug "^3.0.0" + +unique-filename@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/unique-filename/-/unique-filename-4.0.0.tgz" + integrity sha512-XSnEewXmQ+veP7xX2dS5Q4yZAvO40cBN2MWkJ7D/6sW4Dg6wYBNwM1Vrnz1FhH5AdeLIlUXRI9e28z1YZi71NQ== + dependencies: + unique-slug "^5.0.0" + +unique-slug@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz" + integrity sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w== + dependencies: + imurmurhash "^0.1.4" + +unique-slug@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/unique-slug/-/unique-slug-5.0.0.tgz" + integrity sha512-9OdaqO5kwqR+1kVgHAhsp5vPNU0hnxRa26rBFNfNgM7M6pNtgzeBn3s/xbyCQL3dcjzOatcef6UUHpB/6MaETg== + dependencies: + imurmurhash "^0.1.4" universalify@^0.1.0: version "0.1.2" @@ -2845,10 +3555,12 @@ uuid@^8.3.2: resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== -uuid@9: - version "9.0.1" - resolved "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz" - integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== +wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz" + integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== + dependencies: + defaults "^1.0.3" web-streams-polyfill@^3.0.3: version "3.3.3" @@ -2868,13 +3580,27 @@ whatwg-url@^5.0.0: tr46 "~0.0.3" webidl-conversions "^3.0.0" -which@^2.0.1: +which@^2.0.1, which@^2.0.2: version "2.0.2" resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" +which@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/which/-/which-5.0.0.tgz" + integrity sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ== + dependencies: + isexe "^3.1.1" + +wide-align@^1.1.5: + version "1.1.5" + resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz" + integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== + dependencies: + string-width "^1.0.2 || 2 || 3 || 4" + "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": version "7.0.0" resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" @@ -2932,12 +3658,17 @@ yallist@^4.0.0: resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== +yallist@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz" + integrity sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw== + yargs-parser@^21.1.1: version "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.7.2: +yargs@^17.0.1, 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==