diff --git a/.github/workflows/build-plugin.yml b/.github/workflows/build-plugin.yml index a69c5fd7..4cfe73dd 100644 --- a/.github/workflows/build-plugin.yml +++ b/.github/workflows/build-plugin.yml @@ -18,7 +18,7 @@ jobs: contents: write steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 with: ref: ${{ github.event.pull_request.head.ref }} repository: ${{ github.event.pull_request.head.repo.full_name }} diff --git a/.github/workflows/fix-php-code-style-issues.yml b/.github/workflows/fix-php-code-style-issues.yml index 8b457d27..cdb490fa 100644 --- a/.github/workflows/fix-php-code-style-issues.yml +++ b/.github/workflows/fix-php-code-style-issues.yml @@ -20,7 +20,7 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: ref: ${{ github.head_ref || github.sha }} fetch-depth: 0 diff --git a/.github/workflows/phpstan.yml b/.github/workflows/phpstan.yml index 26528e9d..c2817a0d 100644 --- a/.github/workflows/phpstan.yml +++ b/.github/workflows/phpstan.yml @@ -18,7 +18,7 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Setup PHP uses: shivammathur/setup-php@v2 diff --git a/.github/workflows/run-plugin-tests.yml b/.github/workflows/run-plugin-tests.yml index ba590aab..f9895dd5 100644 --- a/.github/workflows/run-plugin-tests.yml +++ b/.github/workflows/run-plugin-tests.yml @@ -10,7 +10,7 @@ jobs: test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Use Node.js uses: actions/setup-node@v6 diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index e7e29839..8e8a69fa 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -22,7 +22,7 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Setup PHP uses: shivammathur/setup-php@v2 diff --git a/.github/workflows/update-changelog.yml b/.github/workflows/update-changelog.yml index 0ae452d2..e687dada 100644 --- a/.github/workflows/update-changelog.yml +++ b/.github/workflows/update-changelog.yml @@ -13,7 +13,7 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: ref: main diff --git a/resources/electron/electron-plugin/dist/index.js b/resources/electron/electron-plugin/dist/index.js index 54fb8822..959976e1 100644 --- a/resources/electron/electron-plugin/dist/index.js +++ b/resources/electron/electron-plugin/dist/index.js @@ -7,16 +7,16 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; -import { app, session, powerMonitor } from "electron"; -import { initialize } from "@electron/remote/main/index.js"; -import state from "./server/state.js"; -import { electronApp, optimizer } from "@electron-toolkit/utils"; -import { retrieveNativePHPConfig, retrievePhpIniSettings, runScheduler, killScheduler, startAPI, startPhpApp, } from "./server/index.js"; -import { notifyLaravel } from "./server/utils.js"; -import { resolve } from "path"; -import { stopAllProcesses } from "./server/api/childProcess.js"; -import ps from "ps-node"; -import killSync from "kill-sync"; +import { electronApp, optimizer } from '@electron-toolkit/utils'; +import { initialize } from '@electron/remote/main/index.js'; +import { app, powerMonitor, session } from 'electron'; +import killSync from 'kill-sync'; +import { resolve } from 'path'; +import ps from 'ps-node'; +import { stopAllProcesses } from './server/api/childProcess.js'; +import { killScheduler, retrieveNativePHPConfig, retrievePhpIniSettings, runScheduler, startAPI, startPhpApp, } from './server/index.js'; +import state from './server/state.js'; +import { notifyLaravel } from './server/utils.js'; import electronUpdater from 'electron-updater'; const { autoUpdater } = electronUpdater; class NativePHP { @@ -35,36 +35,36 @@ class NativePHP { this.addEventListeners(app); } addEventListeners(app) { - app.on("open-url", (event, url) => { - notifyLaravel("events", { - event: "\\Native\\Desktop\\Events\\App\\OpenedFromURL", + app.on('open-url', (event, url) => { + notifyLaravel('events', { + event: '\\Native\\Desktop\\Events\\App\\OpenedFromURL', payload: [url], }); }); - app.on("open-file", (event, path) => { - notifyLaravel("events", { - event: "\\Native\\Desktop\\Events\\App\\OpenFile", + app.on('open-file', (event, path) => { + notifyLaravel('events', { + event: '\\Native\\Desktop\\Events\\App\\OpenFile', payload: [path], }); }); - app.on("window-all-closed", () => { - if (process.platform !== "darwin") { + app.on('window-all-closed', () => { + if (process.platform !== 'darwin') { app.quit(); } }); - app.on("before-quit", () => { + app.on('before-quit', () => { if (this.schedulerInterval) { clearInterval(this.schedulerInterval); } stopAllProcesses(); this.killChildProcesses(); }); - app.on("browser-window-created", (_, window) => { + app.on('browser-window-created', (_, window) => { optimizer.watchWindowShortcuts(window); }); - app.on("activate", function (event, hasVisibleWindows) { + app.on('activate', function (event, hasVisibleWindows) { if (!hasVisibleWindows) { - notifyLaravel("booted"); + notifyLaravel('booted'); } event.preventDefault(); }); @@ -81,15 +81,15 @@ class NativePHP { state.phpIni = yield this.loadPhpIni(); yield this.startPhpApp(); this.startScheduler(); - powerMonitor.on("suspend", () => { + powerMonitor.on('suspend', () => { this.stopScheduler(); }); - powerMonitor.on("resume", () => { + powerMonitor.on('resume', () => { this.stopScheduler(); this.startScheduler(); }); const filter = { - urls: [`http://127.0.0.1:${state.phpPort}/*`] + urls: [`http://127.0.0.1:${state.phpPort}/*`], }; session.defaultSession.webRequest.onBeforeSendHeaders(filter, (details, callback) => { details.requestHeaders['X-NativePHP-Secret'] = state.randomSecret; @@ -98,7 +98,7 @@ class NativePHP { if (process.env.NATIVEPHP_NO_FOCUS) { state.noFocusOnRestart = true; } - yield notifyLaravel("booted"); + yield notifyLaravel('booted'); }); } loadConfig() { @@ -115,8 +115,7 @@ class NativePHP { }); } setDockIcon() { - if (process.platform === "darwin" && - process.env.NODE_ENV === "development") { + if (process.platform === 'darwin' && process.env.NODE_ENV === 'development') { app.dock.setIcon(state.icon); } } @@ -128,29 +127,27 @@ class NativePHP { if (deepLinkProtocol) { if (process.defaultApp) { if (process.argv.length >= 2) { - app.setAsDefaultProtocolClient(deepLinkProtocol, process.execPath, [ - resolve(process.argv[1]), - ]); + app.setAsDefaultProtocolClient(deepLinkProtocol, process.execPath, [resolve(process.argv[1])]); } } else { app.setAsDefaultProtocolClient(deepLinkProtocol); } - if (process.platform !== "darwin") { + if (process.platform !== 'darwin') { const gotTheLock = app.requestSingleInstanceLock(); if (!gotTheLock) { app.quit(); return; } else { - app.on("second-instance", (event, commandLine, workingDirectory) => { + app.on('second-instance', (event, commandLine) => { if (this.mainWindow) { if (this.mainWindow.isMinimized()) this.mainWindow.restore(); this.mainWindow.focus(); } - notifyLaravel("events", { - event: "\\Native\\Desktop\\Events\\App\\OpenedFromURL", + notifyLaravel('events', { + event: '\\Native\\Desktop\\Events\\App\\OpenedFromURL', payload: { url: commandLine[commandLine.length - 1], }, @@ -168,7 +165,7 @@ class NativePHP { if (publicUrl) { autoUpdater.setFeedURL({ provider: 'generic', - url: publicUrl + url: publicUrl, }); } autoUpdater.checkForUpdatesAndNotify(); @@ -178,7 +175,7 @@ class NativePHP { return __awaiter(this, void 0, void 0, function* () { const electronApi = yield startAPI(); state.electronApiPort = electronApi.port; - console.log("Electron API server started on port", electronApi.port); + console.log('Electron API server started on port', electronApi.port); }); } loadPhpIni() { @@ -210,10 +207,10 @@ class NativePHP { const now = new Date(); const delay = (60 - now.getSeconds()) * 1000 + (1000 - now.getMilliseconds()); setTimeout(() => { - console.log("Running scheduler..."); + console.log('Running scheduler...'); runScheduler(); this.schedulerInterval = setInterval(() => { - console.log("Running scheduler..."); + console.log('Running scheduler...'); runScheduler(); }, 60 * 1000); }, delay); diff --git a/resources/electron/electron-plugin/dist/libs/menubar/Menubar.js b/resources/electron/electron-plugin/dist/libs/menubar/Menubar.js index 8d28be49..8a3364e5 100644 --- a/resources/electron/electron-plugin/dist/libs/menubar/Menubar.js +++ b/resources/electron/electron-plugin/dist/libs/menubar/Menubar.js @@ -7,10 +7,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; +import { BrowserWindow, Tray } from 'electron'; import { EventEmitter } from 'events'; import fs from 'fs'; import path from 'path'; -import { BrowserWindow, Tray } from 'electron'; import Positioner from '../positioner/index.js'; import { cleanOptions } from './util/cleanOptions.js'; import { getWindowPosition } from './util/getWindowPosition.js'; @@ -95,16 +95,11 @@ export class Menubar extends EventEmitter { if ((trayPos === undefined || trayPos.x === 0) && this._options.windowPosition && this._options.windowPosition.startsWith('tray')) { - noBoundsPosition = - process.platform === 'win32' ? 'bottomRight' : 'topRight'; + noBoundsPosition = process.platform === 'win32' ? 'bottomRight' : 'topRight'; } const position = this.positioner.calculate(this._options.windowPosition || noBoundsPosition, trayPos); - const x = this._options.browserWindow.x !== undefined - ? this._options.browserWindow.x - : position.x; - const y = this._options.browserWindow.y !== undefined - ? this._options.browserWindow.y - : position.y; + const x = this._options.browserWindow.x !== undefined ? this._options.browserWindow.x : position.x; + const y = this._options.browserWindow.y !== undefined ? this._options.browserWindow.y : position.y; this._browserWindow.setPosition(Math.round(x), Math.round(y)); this._browserWindow.show(); this._isVisible = true; @@ -128,9 +123,7 @@ export class Menubar extends EventEmitter { if (typeof trayImage === 'string' && !fs.existsSync(trayImage)) { trayImage = path.join(__dirname, '..', 'assets', 'IconTemplate.png'); } - const defaultClickEvent = this._options.showOnRightClick - ? 'right-click' - : 'click'; + const defaultClickEvent = this._options.showOnRightClick ? 'right-click' : 'click'; this._tray = this._options.tray || new Tray(trayImage); if (!this.tray) { throw new Error('Tray has been initialized above'); @@ -175,11 +168,14 @@ export class Menubar extends EventEmitter { if (!this._browserWindow) { return; } - this._browserWindow.isAlwaysOnTop() - ? this.emit('focus-lost') - : (this._blurTimeout = setTimeout(() => { + if (this._browserWindow.isAlwaysOnTop()) { + this.emit('focus-lost'); + } + else { + this._blurTimeout = setTimeout(() => { this.hideWindow(); - }, 100)); + }, 100); + } }); if (this._options.showOnAllWorkspaces !== false) { this._browserWindow.setVisibleOnAllWorkspaces(true, { diff --git a/resources/electron/electron-plugin/dist/libs/menubar/util/cleanOptions.js b/resources/electron/electron-plugin/dist/libs/menubar/util/cleanOptions.js index d6b7ac0b..1e4d44dd 100644 --- a/resources/electron/electron-plugin/dist/libs/menubar/util/cleanOptions.js +++ b/resources/electron/electron-plugin/dist/libs/menubar/util/cleanOptions.js @@ -1,6 +1,6 @@ +import { app } from 'electron'; import path from 'path'; import url from 'url'; -import { app } from 'electron'; const DEFAULT_WINDOW_HEIGHT = 400; const DEFAULT_WINDOW_WIDTH = 400; export function cleanOptions(opts) { @@ -27,12 +27,8 @@ export function cleanOptions(opts) { options.browserWindow = {}; } options.browserWindow.width = - options.browserWindow.width !== undefined - ? options.browserWindow.width - : DEFAULT_WINDOW_WIDTH; + options.browserWindow.width !== undefined ? options.browserWindow.width : DEFAULT_WINDOW_WIDTH; options.browserWindow.height = - options.browserWindow.height !== undefined - ? options.browserWindow.height - : DEFAULT_WINDOW_HEIGHT; + options.browserWindow.height !== undefined ? options.browserWindow.height : DEFAULT_WINDOW_HEIGHT; return options; } diff --git a/resources/electron/electron-plugin/dist/libs/positioner/index.js b/resources/electron/electron-plugin/dist/libs/positioner/index.js index faf310fd..e869b3ca 100644 --- a/resources/electron/electron-plugin/dist/libs/positioner/index.js +++ b/resources/electron/electron-plugin/dist/libs/positioner/index.js @@ -1,15 +1,16 @@ -"use strict"; +'use strict'; +import { screen } from 'electron'; class Positioner { constructor(browserWindow) { this.browserWindow = browserWindow; - this.electronScreen = require("electron").screen; + this.electronScreen = screen; } _getCoords(position, trayPosition) { - let screenSize = this._getScreenSize(trayPosition); - let windowSize = this._getWindowSize(); + const screenSize = this._getScreenSize(trayPosition); + const windowSize = this._getWindowSize(); if (trayPosition === undefined) trayPosition = {}; - let positions = { + const positions = { trayLeft: { x: Math.floor(trayPosition.x), y: screenSize.y, @@ -60,15 +61,11 @@ class Positioner { }, leftCenter: { x: screenSize.x, - y: screenSize.y + - Math.floor(screenSize.height / 2) - - Math.floor(windowSize[1] / 2), + y: screenSize.y + Math.floor(screenSize.height / 2) - Math.floor(windowSize[1] / 2), }, rightCenter: { x: Math.floor(screenSize.x + (screenSize.width - windowSize[0])), - y: screenSize.y + - Math.floor(screenSize.height / 2) - - Math.floor(windowSize[1] / 2), + y: screenSize.y + Math.floor(screenSize.height / 2) - Math.floor(windowSize[1] / 2), }, center: { x: Math.floor(screenSize.x + (screenSize.width / 2 - windowSize[0] / 2)), @@ -79,11 +76,10 @@ class Positioner { y: Math.floor(screenSize.y + (screenSize.height - windowSize[1]) / 3), }, }; - if (position.substr(0, 4) === "tray") { - if (positions[position].x + windowSize[0] > - screenSize.width + screenSize.x) { + if (position.substr(0, 4) === 'tray') { + if (positions[position].x + windowSize[0] > screenSize.width + screenSize.x) { return { - x: positions["topRight"].x, + x: positions['topRight'].x, y: positions[position].y, }; } @@ -95,19 +91,18 @@ class Positioner { } _getScreenSize(trayPosition) { if (trayPosition) { - return this.electronScreen.getDisplayMatching(trayPosition) - .workArea; + return this.electronScreen.getDisplayMatching(trayPosition).workArea; } else { return this.electronScreen.getDisplayNearestPoint(this.electronScreen.getCursorScreenPoint()).workArea; } } move(position, trayPos) { - var coords = this._getCoords(position, trayPos); + const coords = this._getCoords(position, trayPos); this.browserWindow.setPosition(coords.x, coords.y); } calculate(position, trayPos) { - var coords = this._getCoords(position, trayPos); + const coords = this._getCoords(position, trayPos); return { x: coords.x, y: coords.y, diff --git a/resources/electron/electron-plugin/dist/preload/index.mjs b/resources/electron/electron-plugin/dist/preload/index.mjs index df2d0a28..c645a8f5 100644 --- a/resources/electron/electron-plugin/dist/preload/index.mjs +++ b/resources/electron/electron-plugin/dist/preload/index.mjs @@ -1,5 +1,5 @@ -import remote from "@electron/remote"; -import { ipcRenderer, contextBridge } from "electron"; +import remote from '@electron/remote'; +import { contextBridge, ipcRenderer } from 'electron'; const Native = { on: (event, callback) => { ipcRenderer.on('native-event', (_, data) => { @@ -11,9 +11,9 @@ const Native = { }); }, contextMenu: (template) => { - let menu = remote.Menu.buildFromTemplate(template); + const menu = remote.Menu.buildFromTemplate(template); menu.popup({ window: remote.getCurrentWindow() }); - } + }, }; contextBridge.exposeInMainWorld('Native', Native); ipcRenderer.on('log', (event, { level, message, context }) => { @@ -32,7 +32,7 @@ ipcRenderer.on('native-event', (event, data) => { window.postMessage({ type: 'native-event', event: data.event, - payload: data.payload + payload: data.payload, }, '*'); }); contextBridge.exposeInMainWorld('native:initialized', (function () { diff --git a/resources/electron/electron-plugin/dist/server/api.js b/resources/electron/electron-plugin/dist/server/api.js index 56ab8326..21f586d3 100644 --- a/resources/electron/electron-plugin/dist/server/api.js +++ b/resources/electron/electron-plugin/dist/server/api.js @@ -7,64 +7,64 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; -import express from "express"; -import bodyParser from "body-parser"; -import getPort, { portNumbers } from "get-port"; -import middleware from "./api/middleware.js"; -import clipboardRoutes from "./api/clipboard.js"; -import alertRoutes from "./api/alert.js"; -import appRoutes from "./api/app.js"; -import autoUpdaterRoutes from "./api/autoUpdater.js"; -import screenRoutes from "./api/screen.js"; -import dialogRoutes from "./api/dialog.js"; -import debugRoutes from "./api/debug.js"; -import broadcastingRoutes from "./api/broadcasting.js"; -import systemRoutes from "./api/system.js"; -import globalShortcutRoutes from "./api/globalShortcut.js"; -import notificationRoutes from "./api/notification.js"; -import dockRoutes from "./api/dock.js"; -import menuRoutes from "./api/menu.js"; -import menuBarRoutes from "./api/menuBar.js"; -import windowRoutes from "./api/window.js"; -import processRoutes from "./api/process.js"; -import contextMenuRoutes from "./api/contextMenu.js"; -import settingsRoutes from "./api/settings.js"; -import shellRoutes from "./api/shell.js"; -import progressBarRoutes from "./api/progressBar.js"; -import powerMonitorRoutes from "./api/powerMonitor.js"; -import childProcessRoutes from "./api/childProcess.js"; +import bodyParser from 'body-parser'; +import express from 'express'; +import getPort, { portNumbers } from 'get-port'; +import middleware from './api/middleware.js'; +import alertRoutes from './api/alert.js'; +import appRoutes from './api/app.js'; +import autoUpdaterRoutes from './api/autoUpdater.js'; +import broadcastingRoutes from './api/broadcasting.js'; +import childProcessRoutes from './api/childProcess.js'; +import clipboardRoutes from './api/clipboard.js'; +import contextMenuRoutes from './api/contextMenu.js'; +import debugRoutes from './api/debug.js'; +import dialogRoutes from './api/dialog.js'; +import dockRoutes from './api/dock.js'; +import globalShortcutRoutes from './api/globalShortcut.js'; +import menuRoutes from './api/menu.js'; +import menuBarRoutes from './api/menuBar.js'; +import notificationRoutes from './api/notification.js'; +import powerMonitorRoutes from './api/powerMonitor.js'; +import processRoutes from './api/process.js'; +import progressBarRoutes from './api/progressBar.js'; +import screenRoutes from './api/screen.js'; +import settingsRoutes from './api/settings.js'; +import shellRoutes from './api/shell.js'; +import systemRoutes from './api/system.js'; +import windowRoutes from './api/window.js'; function startAPIServer(randomSecret) { return __awaiter(this, void 0, void 0, function* () { const port = yield getPort({ port: portNumbers(4000, 5000), }); - return new Promise((resolve, reject) => { + return new Promise((resolve) => { const httpServer = express(); httpServer.use(middleware(randomSecret)); httpServer.use(bodyParser.json()); - httpServer.use("/api/clipboard", clipboardRoutes); - httpServer.use("/api/alert", alertRoutes); - httpServer.use("/api/app", appRoutes); - httpServer.use("/api/auto-updater", autoUpdaterRoutes); - httpServer.use("/api/screen", screenRoutes); - httpServer.use("/api/dialog", dialogRoutes); - httpServer.use("/api/system", systemRoutes); - httpServer.use("/api/global-shortcuts", globalShortcutRoutes); - httpServer.use("/api/notification", notificationRoutes); - httpServer.use("/api/dock", dockRoutes); - httpServer.use("/api/menu", menuRoutes); - httpServer.use("/api/window", windowRoutes); - httpServer.use("/api/process", processRoutes); - httpServer.use("/api/settings", settingsRoutes); - httpServer.use("/api/shell", shellRoutes); - httpServer.use("/api/context", contextMenuRoutes); - httpServer.use("/api/menu-bar", menuBarRoutes); - httpServer.use("/api/progress-bar", progressBarRoutes); - httpServer.use("/api/power-monitor", powerMonitorRoutes); - httpServer.use("/api/child-process", childProcessRoutes); - httpServer.use("/api/broadcast", broadcastingRoutes); - if (process.env.NODE_ENV === "development") { - httpServer.use("/api/debug", debugRoutes); + httpServer.use('/api/clipboard', clipboardRoutes); + httpServer.use('/api/alert', alertRoutes); + httpServer.use('/api/app', appRoutes); + httpServer.use('/api/auto-updater', autoUpdaterRoutes); + httpServer.use('/api/screen', screenRoutes); + httpServer.use('/api/dialog', dialogRoutes); + httpServer.use('/api/system', systemRoutes); + httpServer.use('/api/global-shortcuts', globalShortcutRoutes); + httpServer.use('/api/notification', notificationRoutes); + httpServer.use('/api/dock', dockRoutes); + httpServer.use('/api/menu', menuRoutes); + httpServer.use('/api/window', windowRoutes); + httpServer.use('/api/process', processRoutes); + httpServer.use('/api/settings', settingsRoutes); + httpServer.use('/api/shell', shellRoutes); + httpServer.use('/api/context', contextMenuRoutes); + httpServer.use('/api/menu-bar', menuBarRoutes); + httpServer.use('/api/progress-bar', progressBarRoutes); + httpServer.use('/api/power-monitor', powerMonitorRoutes); + httpServer.use('/api/child-process', childProcessRoutes); + httpServer.use('/api/broadcast', broadcastingRoutes); + if (process.env.NODE_ENV === 'development') { + httpServer.use('/api/debug', debugRoutes); } const server = httpServer.listen(port, () => { resolve({ diff --git a/resources/electron/electron-plugin/dist/server/api/alert.js b/resources/electron/electron-plugin/dist/server/api/alert.js index 227b16e8..cb587197 100644 --- a/resources/electron/electron-plugin/dist/server/api/alert.js +++ b/resources/electron/electron-plugin/dist/server/api/alert.js @@ -1,5 +1,5 @@ -import express from 'express'; import { dialog } from 'electron'; +import express from 'express'; const router = express.Router(); router.post('/message', (req, res) => { const { message, type, title, detail, buttons, defaultId, cancelId } = req.body; @@ -10,17 +10,17 @@ router.post('/message', (req, res) => { detail: detail !== null && detail !== void 0 ? detail : undefined, buttons: buttons !== null && buttons !== void 0 ? buttons : undefined, defaultId: defaultId !== null && defaultId !== void 0 ? defaultId : undefined, - cancelId: cancelId !== null && cancelId !== void 0 ? cancelId : undefined + cancelId: cancelId !== null && cancelId !== void 0 ? cancelId : undefined, }); res.json({ - result + result, }); }); router.post('/error', (req, res) => { const { title, message } = req.body; dialog.showErrorBox(title, message); res.json({ - result: true + result: true, }); }); export default router; diff --git a/resources/electron/electron-plugin/dist/server/api/app.js b/resources/electron/electron-plugin/dist/server/api/app.js index 7438884b..2b491bab 100644 --- a/resources/electron/electron-plugin/dist/server/api/app.js +++ b/resources/electron/electron-plugin/dist/server/api/app.js @@ -1,11 +1,11 @@ -import express from 'express'; import { app } from 'electron'; +import express from 'express'; const router = express.Router(); router.post('/quit', (req, res) => { app.quit(); res.sendStatus(200); }); -router.post('/relaunch', (req, res) => { +router.post('/relaunch', () => { app.relaunch(); app.quit(); }); diff --git a/resources/electron/electron-plugin/dist/server/api/autoUpdater.js b/resources/electron/electron-plugin/dist/server/api/autoUpdater.js index e4536652..8af767ce 100644 --- a/resources/electron/electron-plugin/dist/server/api/autoUpdater.js +++ b/resources/electron/electron-plugin/dist/server/api/autoUpdater.js @@ -1,27 +1,27 @@ -import express from "express"; import electronUpdater from 'electron-updater'; +import express from 'express'; +import { notifyLaravel } from '../utils.js'; const { autoUpdater } = electronUpdater; -import { notifyLaravel } from "../utils.js"; const router = express.Router(); -router.post("/check-for-updates", (req, res) => { +router.post('/check-for-updates', (req, res) => { autoUpdater.checkForUpdates(); res.sendStatus(200); }); -router.post("/download-update", (req, res) => { +router.post('/download-update', (req, res) => { autoUpdater.downloadUpdate(); res.sendStatus(200); }); -router.post("/quit-and-install", (req, res) => { +router.post('/quit-and-install', (req, res) => { autoUpdater.quitAndInstall(); res.sendStatus(200); }); -autoUpdater.addListener("checking-for-update", () => { - notifyLaravel("events", { +autoUpdater.addListener('checking-for-update', () => { + notifyLaravel('events', { event: `\\Native\\Desktop\\Events\\AutoUpdater\\CheckingForUpdate`, }); }); -autoUpdater.addListener("update-available", (event) => { - notifyLaravel("events", { +autoUpdater.addListener('update-available', (event) => { + notifyLaravel('events', { event: `\\Native\\Desktop\\Events\\AutoUpdater\\UpdateAvailable`, payload: { version: event.version, @@ -34,8 +34,8 @@ autoUpdater.addListener("update-available", (event) => { }, }); }); -autoUpdater.addListener("update-not-available", (event) => { - notifyLaravel("events", { +autoUpdater.addListener('update-not-available', (event) => { + notifyLaravel('events', { event: `\\Native\\Desktop\\Events\\AutoUpdater\\UpdateNotAvailable`, payload: { version: event.version, @@ -48,8 +48,8 @@ autoUpdater.addListener("update-not-available", (event) => { }, }); }); -autoUpdater.addListener("error", (error) => { - notifyLaravel("events", { +autoUpdater.addListener('error', (error) => { + notifyLaravel('events', { event: `\\Native\\Desktop\\Events\\AutoUpdater\\Error`, payload: { name: error.name, @@ -58,8 +58,8 @@ autoUpdater.addListener("error", (error) => { }, }); }); -autoUpdater.addListener("download-progress", (progressInfo) => { - notifyLaravel("events", { +autoUpdater.addListener('download-progress', (progressInfo) => { + notifyLaravel('events', { event: `\\Native\\Desktop\\Events\\AutoUpdater\\DownloadProgress`, payload: { total: progressInfo.total, @@ -70,8 +70,8 @@ autoUpdater.addListener("download-progress", (progressInfo) => { }, }); }); -autoUpdater.addListener("update-downloaded", (event) => { - notifyLaravel("events", { +autoUpdater.addListener('update-downloaded', (event) => { + notifyLaravel('events', { event: `\\Native\\Desktop\\Events\\AutoUpdater\\UpdateDownloaded`, payload: { downloadedFile: event.downloadedFile, @@ -85,8 +85,8 @@ autoUpdater.addListener("update-downloaded", (event) => { }, }); }); -autoUpdater.addListener("update-cancelled", (event) => { - notifyLaravel("events", { +autoUpdater.addListener('update-cancelled', (event) => { + notifyLaravel('events', { event: `\\Native\\Desktop\\Events\\AutoUpdater\\UpdateCancelled`, payload: { version: event.version, diff --git a/resources/electron/electron-plugin/dist/server/api/broadcasting.js b/resources/electron/electron-plugin/dist/server/api/broadcasting.js index 41a3da36..72a9cc88 100644 --- a/resources/electron/electron-plugin/dist/server/api/broadcasting.js +++ b/resources/electron/electron-plugin/dist/server/api/broadcasting.js @@ -3,7 +3,7 @@ import { broadcastToWindows } from '../utils.js'; const router = express.Router(); router.post('/', (req, res) => { const { event, payload } = req.body; - broadcastToWindows("native-event", { event, payload }); + broadcastToWindows('native-event', { event, payload }); res.sendStatus(200); }); export default router; diff --git a/resources/electron/electron-plugin/dist/server/api/childProcess.js b/resources/electron/electron-plugin/dist/server/api/childProcess.js index 9d698f3f..8e5187c6 100644 --- a/resources/electron/electron-plugin/dist/server/api/childProcess.js +++ b/resources/electron/electron-plugin/dist/server/api/childProcess.js @@ -7,17 +7,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; -import express from 'express'; import { utilityProcess } from 'electron'; +import express from 'express'; +import killSync from 'kill-sync'; +import { join } from 'path'; +import { fileURLToPath } from 'url'; +import { getAppPath, getDefaultEnvironmentVariables, getDefaultPhpIniSettings, runningSecureBuild } from '../php.js'; import state from '../state.js'; -import { notifyLaravel } from "../utils.js"; -import { getAppPath, getDefaultEnvironmentVariables, getDefaultPhpIniSettings, runningSecureBuild } from "../php.js"; -import killSync from "kill-sync"; -import { fileURLToPath } from "url"; -import { join } from "path"; +import { notifyLaravel } from '../utils.js'; const router = express.Router(); function startProcess(settings, useNodeRuntime = false) { - const { alias, cmd, cwd, env, persistent, spawnTimeout = 30000 } = settings; + const { alias, cmd, cwd, env, spawnTimeout = 30000 } = settings; if (getProcess(alias) !== undefined) { return state.processes[alias]; } @@ -26,7 +26,7 @@ function startProcess(settings, useNodeRuntime = false) { cwd, stdio: 'pipe', serviceName: alias, - env: Object.assign(Object.assign(Object.assign({}, process.env), env), { USE_NODE_RUNTIME: useNodeRuntime ? '1' : '0' }) + env: Object.assign(Object.assign(Object.assign({}, process.env), env), { USE_NODE_RUNTIME: useNodeRuntime ? '1' : '0' }), }); const startTimeout = setTimeout(() => { if (!state.processes[alias] || !state.processes[alias].pid) { @@ -34,14 +34,14 @@ function startProcess(settings, useNodeRuntime = false) { try { proc.kill(); } - catch (e) { + catch (_a) { } notifyLaravel('events', { event: 'Native\\Desktop\\Events\\ChildProcess\\StartupError', payload: { alias, error: 'Startup timeout exceeded', - } + }, }); } }, spawnTimeout); @@ -51,7 +51,7 @@ function startProcess(settings, useNodeRuntime = false) { payload: { alias, data: data.toString(), - } + }, }); }); proc.stderr.on('data', (data) => { @@ -61,7 +61,7 @@ function startProcess(settings, useNodeRuntime = false) { payload: { alias, data: data.toString(), - } + }, }); }); proc.on('spawn', () => { @@ -70,11 +70,11 @@ function startProcess(settings, useNodeRuntime = false) { state.processes[alias] = { pid: proc.pid, proc, - settings + settings, }; notifyLaravel('events', { event: 'Native\\Desktop\\Events\\ChildProcess\\ProcessSpawned', - payload: [alias, proc.pid] + payload: [alias, proc.pid], }); }); proc.on('exit', (code) => { @@ -85,7 +85,7 @@ function startProcess(settings, useNodeRuntime = false) { payload: { alias, code, - } + }, }); const settings = Object.assign({}, getSettings(alias)); delete state.processes[alias]; @@ -97,7 +97,7 @@ function startProcess(settings, useNodeRuntime = false) { return { pid: null, proc, - settings + settings, }; } catch (error) { @@ -107,13 +107,13 @@ function startProcess(settings, useNodeRuntime = false) { payload: { alias, error: error.toString(), - } + }, }); return { pid: null, proc: null, settings, - error: error.message + error: error.message, }; } } @@ -121,9 +121,11 @@ function startPhpProcess(settings) { const defaultEnv = getDefaultEnvironmentVariables(state.randomSecret, state.electronApiPort); const customIniSettings = settings.iniSettings || {}; const iniSettings = Object.assign(Object.assign(Object.assign({}, getDefaultPhpIniSettings()), state.phpIni), customIniSettings); - const iniArgs = Object.keys(iniSettings).map(key => { + const iniArgs = Object.keys(iniSettings) + .map((key) => { return ['-d', `${key}=${iniSettings[key]}`]; - }).flat(); + }) + .flat(); if (settings.cmd[0] === 'artisan' && runningSecureBuild()) { settings.cmd.unshift(join(getAppPath(), 'build', '__nativephp_app_bundle')); } @@ -184,7 +186,7 @@ router.post('/restart', (req, res) => __awaiter(void 0, void 0, void 0, function if (Date.now() - start > timeout) { return; } - yield new Promise(resolve => setTimeout(resolve, retry)); + yield new Promise((resolve) => setTimeout(resolve, retry)); } }); yield waitForProcessDeletion(5000, 100); diff --git a/resources/electron/electron-plugin/dist/server/api/clipboard.js b/resources/electron/electron-plugin/dist/server/api/clipboard.js index 8e9a9840..ee1586fe 100644 --- a/resources/electron/electron-plugin/dist/server/api/clipboard.js +++ b/resources/electron/electron-plugin/dist/server/api/clipboard.js @@ -1,11 +1,11 @@ +import { clipboard, nativeImage } from 'electron'; import * as express from 'express'; const router = express.Router(); -import { clipboard, nativeImage } from 'electron'; const DEFAULT_TYPE = 'clipboard'; router.get('/text', (req, res) => { const { type } = req.query; res.json({ - text: clipboard.readText(type || DEFAULT_TYPE) + text: clipboard.readText(type || DEFAULT_TYPE), }); }); router.post('/text', (req, res) => { @@ -19,7 +19,7 @@ router.post('/text', (req, res) => { router.get('/html', (req, res) => { const { type } = req.query; res.json({ - html: clipboard.readHTML(type || DEFAULT_TYPE) + html: clipboard.readHTML(type || DEFAULT_TYPE), }); }); router.post('/html', (req, res) => { @@ -34,7 +34,7 @@ router.get('/image', (req, res) => { const { type } = req.query; const image = clipboard.readImage(type || DEFAULT_TYPE); res.json({ - image: image.isEmpty() ? null : image.toDataURL() + image: image.isEmpty() ? null : image.toDataURL(), }); }); router.post('/image', (req, res) => { diff --git a/resources/electron/electron-plugin/dist/server/api/contextMenu.js b/resources/electron/electron-plugin/dist/server/api/contextMenu.js index 55748788..b42408c5 100644 --- a/resources/electron/electron-plugin/dist/server/api/contextMenu.js +++ b/resources/electron/electron-plugin/dist/server/api/contextMenu.js @@ -1,6 +1,6 @@ +import contextMenu from 'electron-context-menu'; import express from 'express'; -import { compileMenu } from "./helper/index.js"; -import contextMenu from "electron-context-menu"; +import { compileMenu } from './helper/index.js'; const router = express.Router(); let contextMenuDisposable = null; router.delete('/', (req, res) => { @@ -20,7 +20,7 @@ router.post('/', (req, res) => { showLookUpSelection: false, showSearchWithGoogle: false, showInspectElement: false, - prepend: (defaultActions, parameters, browserWindow) => { + prepend: () => { return req.body.entries.map(compileMenu); }, }); diff --git a/resources/electron/electron-plugin/dist/server/api/dialog.js b/resources/electron/electron-plugin/dist/server/api/dialog.js index 3d5f0788..fabee4a1 100644 --- a/resources/electron/electron-plugin/dist/server/api/dialog.js +++ b/resources/electron/electron-plugin/dist/server/api/dialog.js @@ -1,5 +1,5 @@ -import express from 'express'; import { dialog } from 'electron'; +import express from 'express'; import state from '../state.js'; import { trimOptions } from '../utils.js'; const router = express.Router(); @@ -11,11 +11,11 @@ router.post('/open', (req, res) => { buttonLabel, filters, message, - properties + properties, }; options = trimOptions(options); let result; - let browserWindow = state.findWindow(windowReference); + const browserWindow = state.findWindow(windowReference); if (browserWindow) { result = dialog.showOpenDialogSync(browserWindow, options); } @@ -23,7 +23,7 @@ router.post('/open', (req, res) => { result = dialog.showOpenDialogSync(options); } res.json({ - result + result, }); }); router.post('/save', (req, res) => { @@ -34,11 +34,11 @@ router.post('/save', (req, res) => { buttonLabel, filters, message, - properties + properties, }; options = trimOptions(options); let result; - let browserWindow = state.findWindow(windowReference); + const browserWindow = state.findWindow(windowReference); if (browserWindow) { result = dialog.showSaveDialogSync(browserWindow, options); } @@ -46,7 +46,7 @@ router.post('/save', (req, res) => { result = dialog.showSaveDialogSync(options); } res.json({ - result + result, }); }); export default router; diff --git a/resources/electron/electron-plugin/dist/server/api/dock.js b/resources/electron/electron-plugin/dist/server/api/dock.js index 4da23742..3f7d62c8 100644 --- a/resources/electron/electron-plugin/dist/server/api/dock.js +++ b/resources/electron/electron-plugin/dist/server/api/dock.js @@ -1,7 +1,7 @@ -import express from 'express'; import { app, Menu } from 'electron'; -import { compileMenu } from './helper/index.js'; +import express from 'express'; import state from '../state.js'; +import { compileMenu } from './helper/index.js'; const router = express.Router(); router.post('/', (req, res) => { const menuEntries = req.body.items.map(compileMenu); diff --git a/resources/electron/electron-plugin/dist/server/api/globalShortcut.js b/resources/electron/electron-plugin/dist/server/api/globalShortcut.js index bf01734b..104a20b1 100644 --- a/resources/electron/electron-plugin/dist/server/api/globalShortcut.js +++ b/resources/electron/electron-plugin/dist/server/api/globalShortcut.js @@ -1,13 +1,13 @@ -import express from 'express'; import { globalShortcut } from 'electron'; -import { notifyLaravel } from "../utils.js"; +import express from 'express'; +import { notifyLaravel } from '../utils.js'; const router = express.Router(); router.post('/', (req, res) => { const { key, event } = req.body; globalShortcut.register(key, () => { notifyLaravel('events', { event, - payload: [key] + payload: [key], }); }); res.sendStatus(200); @@ -20,7 +20,7 @@ router.delete('/', (req, res) => { router.get('/:key', (req, res) => { const { key } = req.params; res.json({ - isRegistered: globalShortcut.isRegistered(key) + isRegistered: globalShortcut.isRegistered(key), }); }); export default router; diff --git a/resources/electron/electron-plugin/dist/server/api/helper/index.js b/resources/electron/electron-plugin/dist/server/api/helper/index.js index 7e1b8527..6fb3dbf1 100644 --- a/resources/electron/electron-plugin/dist/server/api/helper/index.js +++ b/resources/electron/electron-plugin/dist/server/api/helper/index.js @@ -1,6 +1,6 @@ import { shell } from 'electron'; -import { notifyLaravel, goToUrl } from '../../utils.js'; import state from '../../state.js'; +import { goToUrl, notifyLaravel } from '../../utils.js'; function triggerMenuItemEvent(menuItem, combo) { notifyLaravel('events', { event: menuItem.event || '\\Native\\Desktop\\Events\\Menu\\MenuItemClicked', @@ -35,8 +35,7 @@ export function compileMenu(item) { if (!focusedWindow) { return; } - const id = Object.keys(state.windows) - .find(key => state.windows[key] === focusedWindow); + const id = Object.keys(state.windows).find((key) => state.windows[key] === focusedWindow); goToUrl(item.url, id); }; return item; @@ -49,8 +48,8 @@ export function compileMenu(item) { return item; } if (item.type === 'role') { - let menuItem = { - role: item.role + const menuItem = { + role: item.role, }; if (item.label) { menuItem['label'] = item.label; diff --git a/resources/electron/electron-plugin/dist/server/api/menu.js b/resources/electron/electron-plugin/dist/server/api/menu.js index ca6bd2ab..b856f6a8 100644 --- a/resources/electron/electron-plugin/dist/server/api/menu.js +++ b/resources/electron/electron-plugin/dist/server/api/menu.js @@ -1,5 +1,5 @@ -import express from 'express'; import { Menu } from 'electron'; +import express from 'express'; import { compileMenu } from './helper/index.js'; const router = express.Router(); router.post('/', (req, res) => { diff --git a/resources/electron/electron-plugin/dist/server/api/menuBar.js b/resources/electron/electron-plugin/dist/server/api/menuBar.js index ab8c74eb..f8096017 100644 --- a/resources/electron/electron-plugin/dist/server/api/menuBar.js +++ b/resources/electron/electron-plugin/dist/server/api/menuBar.js @@ -1,64 +1,64 @@ -import express from "express"; -import { app, Menu, Tray } from "electron"; -import { compileMenu } from "./helper/index.js"; -import state from "../state.js"; -import { menubar } from "../../libs/menubar/index.js"; -import { notifyLaravel } from "../utils.js"; -import { enable } from "@electron/remote/main/index.js"; -import mergePreferences from "../webPreferences.js"; +import { enable } from '@electron/remote/main/index.js'; +import { app, Menu, Tray } from 'electron'; +import express from 'express'; +import { menubar } from '../../libs/menubar/index.js'; +import state from '../state.js'; +import { notifyLaravel } from '../utils.js'; +import mergePreferences from '../webPreferences.js'; +import { compileMenu } from './helper/index.js'; const router = express.Router(); -router.post("/label", (req, res) => { +router.post('/label', (req, res) => { var _a; res.sendStatus(200); const { label } = req.body; (_a = state.tray) === null || _a === void 0 ? void 0 : _a.setTitle(label); }); -router.post("/tooltip", (req, res) => { +router.post('/tooltip', (req, res) => { var _a; res.sendStatus(200); const { tooltip } = req.body; (_a = state.tray) === null || _a === void 0 ? void 0 : _a.setToolTip(tooltip); }); -router.post("/icon", (req, res) => { +router.post('/icon', (req, res) => { var _a; res.sendStatus(200); const { icon } = req.body; (_a = state.tray) === null || _a === void 0 ? void 0 : _a.setImage(icon); }); -router.post("/context-menu", (req, res) => { +router.post('/context-menu', (req, res) => { var _a; res.sendStatus(200); const { contextMenu } = req.body; (_a = state.tray) === null || _a === void 0 ? void 0 : _a.setContextMenu(buildMenu(contextMenu)); }); -router.post("/show-context-menu", (req, res) => { +router.post('/show-context-menu', (req, res) => { var _a; res.sendStatus(200); (_a = state.tray) === null || _a === void 0 ? void 0 : _a.popUpContextMenu(); }); -router.post("/show", (req, res) => { +router.post('/show', (req, res) => { res.sendStatus(200); state.activeMenuBar.showWindow(); }); -router.post("/hide", (req, res) => { +router.post('/hide', (req, res) => { res.sendStatus(200); state.activeMenuBar.hideWindow(); }); -router.post("/resize", (req, res) => { +router.post('/resize', (req, res) => { res.sendStatus(200); const { width, height } = req.body; state.activeMenuBar.window.setSize(width, height); }); -router.post("/create", (req, res) => { +router.post('/create', (req, res) => { res.sendStatus(200); let shouldSendCreatedEvent = true; if (state.activeMenuBar) { state.activeMenuBar.tray.destroy(); shouldSendCreatedEvent = false; } - const { width, height, url, label, alwaysOnTop, vibrancy, backgroundColor, transparency, icon, showDockIcon, onlyShowContextMenu, windowPosition, showOnAllWorkspaces, contextMenu, tooltip, resizable, webPreferences, event, } = req.body; + const { width, height, url, label, alwaysOnTop, vibrancy, backgroundColor, transparency, icon, showDockIcon, onlyShowContextMenu, windowPosition, showOnAllWorkspaces, contextMenu, tooltip, resizable, webPreferences, } = req.body; if (onlyShowContextMenu) { - const tray = new Tray(icon || state.icon.replace("icon.png", "IconTemplate.png")); + const tray = new Tray(icon || state.icon.replace('icon.png', 'IconTemplate.png')); tray.setContextMenu(buildMenu(contextMenu)); tray.setToolTip(tooltip); tray.setTitle(label); @@ -70,13 +70,13 @@ router.post("/create", (req, res) => { } else { state.activeMenuBar = menubar({ - icon: icon || state.icon.replace("icon.png", "IconTemplate.png"), + icon: icon || state.icon.replace('icon.png', 'IconTemplate.png'), preloadWindow: true, tooltip, index: url, showDockIcon, showOnAllWorkspaces: showOnAllWorkspaces !== null && showOnAllWorkspaces !== void 0 ? showOnAllWorkspaces : false, - windowPosition: windowPosition !== null && windowPosition !== void 0 ? windowPosition : "trayCenter", + windowPosition: windowPosition !== null && windowPosition !== void 0 ? windowPosition : 'trayCenter', activateWithApp: false, browserWindow: { width, @@ -86,24 +86,24 @@ router.post("/create", (req, res) => { vibrancy, backgroundColor, transparent: transparency, - webPreferences: mergePreferences(webPreferences) - } + webPreferences: mergePreferences(webPreferences), + }, }); - state.activeMenuBar.on("after-create-window", () => { + state.activeMenuBar.on('after-create-window', () => { enable(state.activeMenuBar.window.webContents); }); - state.activeMenuBar.on("ready", () => { + state.activeMenuBar.on('ready', () => { eventsForTray(state.activeMenuBar.tray, onlyShowContextMenu, contextMenu, shouldSendCreatedEvent); state.tray = state.activeMenuBar.tray; state.tray.setTitle(label); - state.activeMenuBar.on("hide", () => { - notifyLaravel("events", { - event: "\\Native\\Desktop\\Events\\MenuBar\\MenuBarHidden" + state.activeMenuBar.on('hide', () => { + notifyLaravel('events', { + event: '\\Native\\Desktop\\Events\\MenuBar\\MenuBarHidden', }); }); - state.activeMenuBar.on("show", () => { - notifyLaravel("events", { - event: "\\Native\\Desktop\\Events\\MenuBar\\MenuBarShown" + state.activeMenuBar.on('show', () => { + notifyLaravel('events', { + event: '\\Native\\Desktop\\Events\\MenuBar\\MenuBarShown', }); }); }); @@ -111,21 +111,19 @@ router.post("/create", (req, res) => { }); function eventsForTray(tray, onlyShowContextMenu, contextMenu, shouldSendCreatedEvent) { if (shouldSendCreatedEvent) { - notifyLaravel("events", { - event: "\\Native\\Desktop\\Events\\MenuBar\\MenuBarCreated" + notifyLaravel('events', { + event: '\\Native\\Desktop\\Events\\MenuBar\\MenuBarCreated', }); } - tray.on("drop-files", (event, files) => { - notifyLaravel("events", { - event: "\\Native\\Desktop\\Events\\MenuBar\\MenuBarDroppedFiles", - payload: [ - files - ] + tray.on('drop-files', (event, files) => { + notifyLaravel('events', { + event: '\\Native\\Desktop\\Events\\MenuBar\\MenuBarDroppedFiles', + payload: [files], }); }); tray.on('click', (combo, bounds, position) => { notifyLaravel('events', { - event: "\\Native\\Desktop\\Events\\MenuBar\\MenuBarClicked", + event: '\\Native\\Desktop\\Events\\MenuBar\\MenuBarClicked', payload: { combo, bounds, @@ -133,13 +131,13 @@ function eventsForTray(tray, onlyShowContextMenu, contextMenu, shouldSendCreated }, }); }); - tray.on("right-click", (combo, bounds) => { - notifyLaravel("events", { - event: "\\Native\\Desktop\\Events\\MenuBar\\MenuBarRightClicked", + tray.on('right-click', (combo, bounds) => { + notifyLaravel('events', { + event: '\\Native\\Desktop\\Events\\MenuBar\\MenuBarRightClicked', payload: { combo, bounds, - } + }, }); if (!onlyShowContextMenu) { state.activeMenuBar.hideWindow(); @@ -148,7 +146,7 @@ function eventsForTray(tray, onlyShowContextMenu, contextMenu, shouldSendCreated }); tray.on('double-click', (combo, bounds) => { notifyLaravel('events', { - event: "\\Native\\Desktop\\Events\\MenuBar\\MenuBarDoubleClicked", + event: '\\Native\\Desktop\\Events\\MenuBar\\MenuBarDoubleClicked', payload: { combo, bounds, @@ -157,7 +155,7 @@ function eventsForTray(tray, onlyShowContextMenu, contextMenu, shouldSendCreated }); } function buildMenu(contextMenu) { - let menu = Menu.buildFromTemplate([{ role: "quit" }]); + let menu = Menu.buildFromTemplate([{ role: 'quit' }]); if (contextMenu) { const menuEntries = contextMenu.map(compileMenu); menu = Menu.buildFromTemplate(menuEntries); diff --git a/resources/electron/electron-plugin/dist/server/api/notification.js b/resources/electron/electron-plugin/dist/server/api/notification.js index ae7459a9..44694be4 100644 --- a/resources/electron/electron-plugin/dist/server/api/notification.js +++ b/resources/electron/electron-plugin/dist/server/api/notification.js @@ -1,8 +1,8 @@ -import express from 'express'; import { Notification } from 'electron'; -import { notifyLaravel, broadcastToWindows } from "../utils.js"; -import playSoundLib from 'play-sound'; +import express from 'express'; import fs from 'fs'; +import playSoundLib from 'play-sound'; +import { broadcastToWindows, notifyLaravel } from '../utils.js'; const isLocalFile = (sound) => { if (typeof sound !== 'string') return false; @@ -14,7 +14,7 @@ const router = express.Router(); router.post('/', (req, res) => { const { title, body, subtitle, silent, icon, hasReply, timeoutType, replyPlaceholder, sound, urgency, actions, closeButtonText, toastXml, event: customEvent, reference, } = req.body; const eventName = customEvent !== null && customEvent !== void 0 ? customEvent : '\\Native\\Desktop\\Events\\Notifications\\NotificationClicked'; - const notificationReference = reference !== null && reference !== void 0 ? reference : (Date.now() + '.' + Math.random().toString(36).slice(2, 9)); + const notificationReference = reference !== null && reference !== void 0 ? reference : Date.now() + '.' + Math.random().toString(36).slice(2, 9); const usingLocalFile = isLocalFile(sound); const notification = new Notification({ title, @@ -29,7 +29,7 @@ router.post('/', (req, res) => { urgency, actions, closeButtonText, - toastXml + toastXml, }); if (usingLocalFile && !silent) { fs.access(sound, fs.constants.F_OK, (err) => { @@ -37,14 +37,14 @@ router.post('/', (req, res) => { broadcastToWindows('log', { level: 'error', message: `Sound file not found: ${sound}`, - context: { sound } + context: { sound }, }); return; } playSoundLib().play(sound, () => { }); }); } - notification.on("click", (event) => { + notification.on('click', (event) => { notifyLaravel('events', { event: eventName || '\\Native\\Desktop\\Events\\Notifications\\NotificationClicked', payload: { @@ -53,7 +53,7 @@ router.post('/', (req, res) => { }, }); }); - notification.on("action", (event, index) => { + notification.on('action', (event, index) => { notifyLaravel('events', { event: '\\Native\\Desktop\\Events\\Notifications\\NotificationActionClicked', payload: { @@ -63,7 +63,7 @@ router.post('/', (req, res) => { }, }); }); - notification.on("reply", (event, reply) => { + notification.on('reply', (event, reply) => { notifyLaravel('events', { event: '\\Native\\Desktop\\Events\\Notifications\\NotificationReply', payload: { @@ -73,7 +73,7 @@ router.post('/', (req, res) => { }, }); }); - notification.on("close", (event) => { + notification.on('close', (event) => { notifyLaravel('events', { event: '\\Native\\Desktop\\Events\\Notifications\\NotificationClosed', payload: { diff --git a/resources/electron/electron-plugin/dist/server/api/powerMonitor.js b/resources/electron/electron-plugin/dist/server/api/powerMonitor.js index 3e4ea96d..d7775a9a 100644 --- a/resources/electron/electron-plugin/dist/server/api/powerMonitor.js +++ b/resources/electron/electron-plugin/dist/server/api/powerMonitor.js @@ -1,9 +1,9 @@ -import express from 'express'; import { powerMonitor } from 'electron'; +import express from 'express'; import { notifyLaravel } from '../utils.js'; const router = express.Router(); router.get('/get-system-idle-state', (req, res) => { - let threshold = Number(req.query.threshold) || 60; + const threshold = Number(req.query.threshold) || 60; res.json({ result: powerMonitor.getSystemIdleState(threshold), }); @@ -24,23 +24,23 @@ router.get('/is-on-battery-power', (req, res) => { }); }); powerMonitor.addListener('on-ac', () => { - notifyLaravel("events", { + notifyLaravel('events', { event: `\\Native\\Desktop\\Events\\PowerMonitor\\PowerStateChanged`, payload: { - state: 'on-ac' - } + state: 'on-ac', + }, }); }); powerMonitor.addListener('on-battery', () => { - notifyLaravel("events", { + notifyLaravel('events', { event: `\\Native\\Desktop\\Events\\PowerMonitor\\PowerStateChanged`, payload: { - state: 'on-battery' - } + state: 'on-battery', + }, }); }); powerMonitor.addListener('thermal-state-change', (details) => { - notifyLaravel("events", { + notifyLaravel('events', { event: `\\Native\\Desktop\\Events\\PowerMonitor\\ThermalStateChanged`, payload: { state: details.state, @@ -48,7 +48,7 @@ powerMonitor.addListener('thermal-state-change', (details) => { }); }); powerMonitor.addListener('speed-limit-change', (details) => { - notifyLaravel("events", { + notifyLaravel('events', { event: `\\Native\\Desktop\\Events\\PowerMonitor\\SpeedLimitChanged`, payload: { limit: details.limit, @@ -56,27 +56,27 @@ powerMonitor.addListener('speed-limit-change', (details) => { }); }); powerMonitor.addListener('lock-screen', () => { - notifyLaravel("events", { + notifyLaravel('events', { event: `\\Native\\Desktop\\Events\\PowerMonitor\\ScreenLocked`, }); }); powerMonitor.addListener('unlock-screen', () => { - notifyLaravel("events", { + notifyLaravel('events', { event: `\\Native\\Desktop\\Events\\PowerMonitor\\ScreenUnlocked`, }); }); powerMonitor.addListener('shutdown', () => { - notifyLaravel("events", { + notifyLaravel('events', { event: `\\Native\\Desktop\\Events\\PowerMonitor\\Shutdown`, }); }); powerMonitor.addListener('user-did-become-active', () => { - notifyLaravel("events", { + notifyLaravel('events', { event: `\\Native\\Desktop\\Events\\PowerMonitor\\UserDidBecomeActive`, }); }); powerMonitor.addListener('user-did-resign-active', () => { - notifyLaravel("events", { + notifyLaravel('events', { event: `\\Native\\Desktop\\Events\\PowerMonitor\\UserDidResignActive`, }); }); diff --git a/resources/electron/electron-plugin/dist/server/api/process.js b/resources/electron/electron-plugin/dist/server/api/process.js index f0c04818..09b6548c 100644 --- a/resources/electron/electron-plugin/dist/server/api/process.js +++ b/resources/electron/electron-plugin/dist/server/api/process.js @@ -5,7 +5,7 @@ router.get('/', (req, res) => { pid: process.pid, platform: process.platform, arch: process.arch, - uptime: process.uptime() + uptime: process.uptime(), }); }); export default router; diff --git a/resources/electron/electron-plugin/dist/server/api/progressBar.js b/resources/electron/electron-plugin/dist/server/api/progressBar.js index ccebf2b3..9652e5e0 100644 --- a/resources/electron/electron-plugin/dist/server/api/progressBar.js +++ b/resources/electron/electron-plugin/dist/server/api/progressBar.js @@ -1,5 +1,5 @@ import express from 'express'; -import state from "../state.js"; +import state from '../state.js'; const router = express.Router(); router.post('/update', (req, res) => { const { percent } = req.body; diff --git a/resources/electron/electron-plugin/dist/server/api/screen.js b/resources/electron/electron-plugin/dist/server/api/screen.js index 0a9347a1..4d2f254c 100644 --- a/resources/electron/electron-plugin/dist/server/api/screen.js +++ b/resources/electron/electron-plugin/dist/server/api/screen.js @@ -1,14 +1,14 @@ -import express from 'express'; import { screen } from 'electron'; +import express from 'express'; const router = express.Router(); router.get('/displays', (req, res) => { res.json({ - displays: screen.getAllDisplays() + displays: screen.getAllDisplays(), }); }); router.get('/primary-display', (req, res) => { res.json({ - primaryDisplay: screen.getPrimaryDisplay() + primaryDisplay: screen.getPrimaryDisplay(), }); }); router.get('/cursor-position', (req, res) => { diff --git a/resources/electron/electron-plugin/dist/server/api/shell.js b/resources/electron/electron-plugin/dist/server/api/shell.js index ba58e03b..0cc894f6 100644 --- a/resources/electron/electron-plugin/dist/server/api/shell.js +++ b/resources/electron/electron-plugin/dist/server/api/shell.js @@ -7,22 +7,22 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; -import express from "express"; -import { shell } from "electron"; +import { shell } from 'electron'; +import express from 'express'; const router = express.Router(); -router.post("/show-item-in-folder", (req, res) => { +router.post('/show-item-in-folder', (req, res) => { const { path } = req.body; shell.showItemInFolder(path); res.sendStatus(200); }); -router.post("/open-item", (req, res) => __awaiter(void 0, void 0, void 0, function* () { +router.post('/open-item', (req, res) => __awaiter(void 0, void 0, void 0, function* () { const { path } = req.body; - let result = yield shell.openPath(path); + const result = yield shell.openPath(path); res.json({ - result + result, }); })); -router.post("/open-external", (req, res) => __awaiter(void 0, void 0, void 0, function* () { +router.post('/open-external', (req, res) => __awaiter(void 0, void 0, void 0, function* () { const { url } = req.body; try { yield shell.openExternal(url); @@ -30,17 +30,17 @@ router.post("/open-external", (req, res) => __awaiter(void 0, void 0, void 0, fu } catch (e) { res.status(500).json({ - error: e + error: e, }); } })); -router.delete("/trash-item", (req, res) => __awaiter(void 0, void 0, void 0, function* () { +router.delete('/trash-item', (req, res) => __awaiter(void 0, void 0, void 0, function* () { const { path } = req.body; try { yield shell.trashItem(path); res.sendStatus(200); } - catch (e) { + catch (_a) { res.status(400).json(); } })); diff --git a/resources/electron/electron-plugin/dist/server/api/system.js b/resources/electron/electron-plugin/dist/server/api/system.js index a1410296..5c5a589e 100644 --- a/resources/electron/electron-plugin/dist/server/api/system.js +++ b/resources/electron/electron-plugin/dist/server/api/system.js @@ -7,8 +7,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; +import { BrowserWindow, nativeTheme, safeStorage, systemPreferences } from 'electron'; import express from 'express'; -import { BrowserWindow, systemPreferences, safeStorage, nativeTheme } from 'electron'; const router = express.Router(); router.get('/can-prompt-touch-id', (req, res) => { res.json({ @@ -91,16 +91,19 @@ router.post('/print', (req, res) => __awaiter(void 0, void 0, void 0, function* })); router.post('/print-to-pdf', (req, res) => __awaiter(void 0, void 0, void 0, function* () { const { html, settings } = req.body; - let printWindow = new BrowserWindow({ + const printWindow = new BrowserWindow({ show: false, }); printWindow.webContents.on('did-finish-load', () => { - printWindow.webContents.printToPDF(settings !== null && settings !== void 0 ? settings : {}).then(data => { + printWindow.webContents + .printToPDF(settings !== null && settings !== void 0 ? settings : {}) + .then((data) => { printWindow.close(); res.json({ result: data.toString('base64'), }); - }).catch(e => { + }) + .catch((e) => { printWindow.close(); res.status(400).json({ error: e.message, diff --git a/resources/electron/electron-plugin/dist/server/api/window.js b/resources/electron/electron-plugin/dist/server/api/window.js index e34e8bca..05e21d77 100644 --- a/resources/electron/electron-plugin/dist/server/api/window.js +++ b/resources/electron/electron-plugin/dist/server/api/window.js @@ -1,10 +1,10 @@ -import express from 'express'; import { BrowserWindow } from 'electron'; -import state from '../state.js'; -import { notifyLaravel, goToUrl, appendWindowIdToUrl } from '../utils.js'; import windowStateKeeper from 'electron-window-state'; +import express from 'express'; +import state from '../state.js'; +import { appendWindowIdToUrl, goToUrl, notifyLaravel } from '../utils.js'; import mergePreferences from '../webPreferences.js'; -import { enable } from "@electron/remote/main/index.js"; +import { enable } from '@electron/remote/main/index.js'; const router = express.Router(); router.post('/maximize', (req, res) => { var _a; @@ -106,12 +106,12 @@ router.post('/always-on-top', (req, res) => { res.sendStatus(200); }); router.get('/current', (req, res) => { - const currentWindow = Object.values(state.windows).find(window => window.id === BrowserWindow.getFocusedWindow().id); - const id = Object.keys(state.windows).find(key => state.windows[key] === currentWindow); + const currentWindow = Object.values(state.windows).find((window) => window.id === BrowserWindow.getFocusedWindow().id); + const id = Object.keys(state.windows).find((key) => state.windows[key] === currentWindow); res.json(getWindowData(id)); }); router.get('/all', (req, res) => { - res.json(Object.keys(state.windows).map(id => getWindowData(id))); + res.json(Object.keys(state.windows).map((id) => getWindowData(id))); }); router.get('/get/:id', (req, res) => { const { id } = req.params; @@ -151,7 +151,7 @@ function getWindowData(id) { }; } router.post('/open', (req, res) => { - let { id, x, y, frame, width, height, minWidth, minHeight, maxWidth, maxHeight, focusable, skipTaskbar, hiddenInMissionControl, hasShadow, url, resizable, movable, minimizable, maximizable, closable, title, alwaysOnTop, titleBarStyle, trafficLightPosition, windowButtonVisibility, vibrancy, backgroundColor, transparency, showDevTools, fullscreen, fullscreenable, kiosk, autoHideMenuBar, webPreferences, zoomFactor, preventLeaveDomain, preventLeavePage, suppressNewWindows, } = req.body; + const { id, x, y, frame, width, height, minWidth, minHeight, maxWidth, maxHeight, focusable, skipTaskbar, hiddenInMissionControl, hasShadow, resizable, movable, minimizable, maximizable, closable, title, alwaysOnTop, titleBarStyle, trafficLightPosition, windowButtonVisibility, vibrancy, backgroundColor, transparency, showDevTools, fullscreen, fullscreenable, kiosk, autoHideMenuBar, webPreferences, zoomFactor, preventLeaveDomain, preventLeavePage, suppressNewWindows, } = req.body; if (state.windows[id]) { state.windows[id].show(); state.windows[id].focus(); @@ -166,11 +166,7 @@ router.post('/open', (req, res) => { defaultWidth: parseInt(width), }); } - const window = new BrowserWindow(Object.assign(Object.assign({ width: resizable - ? (windowState === null || windowState === void 0 ? void 0 : windowState.width) || parseInt(width) - : parseInt(width), height: resizable - ? (windowState === null || windowState === void 0 ? void 0 : windowState.height) || parseInt(height) - : parseInt(height), frame: frame !== undefined ? frame : true, x: (windowState === null || windowState === void 0 ? void 0 : windowState.x) || x, y: (windowState === null || windowState === void 0 ? void 0 : windowState.y) || y, minWidth: minWidth, minHeight: minHeight, maxWidth: maxWidth, maxHeight: maxHeight, show: false, title, + const window = new BrowserWindow(Object.assign(Object.assign({ width: resizable ? (windowState === null || windowState === void 0 ? void 0 : windowState.width) || parseInt(width) : parseInt(width), height: resizable ? (windowState === null || windowState === void 0 ? void 0 : windowState.height) || parseInt(height) : parseInt(height), frame: frame !== undefined ? frame : true, x: (windowState === null || windowState === void 0 ? void 0 : windowState.x) || x, y: (windowState === null || windowState === void 0 ? void 0 : windowState.y) || y, minWidth: minWidth, minHeight: minHeight, maxWidth: maxWidth, maxHeight: maxHeight, show: false, title, backgroundColor, transparent: transparency, alwaysOnTop, resizable, movable, @@ -196,7 +192,7 @@ router.post('/open', (req, res) => { } if (suppressNewWindows) { window.webContents.setWindowOpenHandler(() => { - return { action: "deny" }; + return { action: 'deny' }; }); } if (process.platform === 'darwin') { @@ -205,58 +201,58 @@ router.post('/open', (req, res) => { window.on('blur', () => { notifyLaravel('events', { event: 'Native\\Desktop\\Events\\Windows\\WindowBlurred', - payload: [id] + payload: [id], }); }); window.on('focus', () => { notifyLaravel('events', { event: 'Native\\Desktop\\Events\\Windows\\WindowFocused', - payload: [id] + payload: [id], }); }); window.on('minimize', () => { notifyLaravel('events', { event: 'Native\\Desktop\\Events\\Windows\\WindowMinimized', - payload: [id] + payload: [id], }); }); window.on('maximize', () => { notifyLaravel('events', { event: 'Native\\Desktop\\Events\\Windows\\WindowMaximized', - payload: [id] + payload: [id], }); }); window.on('show', () => { notifyLaravel('events', { event: 'Native\\Desktop\\Events\\Windows\\WindowShown', - payload: [id] + payload: [id], }); }); window.on('resized', () => { notifyLaravel('events', { event: 'Native\\Desktop\\Events\\Windows\\WindowResized', - payload: [id, window.getSize()[0], window.getSize()[1]] + payload: [id, window.getSize()[0], window.getSize()[1]], }); }); window.on('page-title-updated', (evt) => { evt.preventDefault(); }); - window.on('close', (evt) => { + window.on('close', () => { if (state.windows[id]) { delete state.windows[id]; } notifyLaravel('events', { event: 'Native\\Desktop\\Events\\Windows\\WindowClosed', - payload: [id] + payload: [id], }); }); - window.on('hide', (evt) => { + window.on('hide', () => { notifyLaravel('events', { event: 'Native\\Desktop\\Events\\Windows\\WindowHidden', - payload: [id] + payload: [id], }); }); - url = appendWindowIdToUrl(url, id); + const url = appendWindowIdToUrl(req.body.url, id); window.loadURL(url); window.webContents.on('dom-ready', () => { window.webContents.setZoomFactor(parseFloat(zoomFactor)); diff --git a/resources/electron/electron-plugin/dist/server/childProcess.js b/resources/electron/electron-plugin/dist/server/childProcess.js index 01d99dea..77639f30 100644 --- a/resources/electron/electron-plugin/dist/server/childProcess.js +++ b/resources/electron/electron-plugin/dist/server/childProcess.js @@ -1,10 +1,10 @@ -import { spawn, fork } from "child_process"; +import { fork, spawn } from 'child_process'; const useNodeRuntime = process.env.USE_NODE_RUNTIME === '1'; const [command, ...args] = process.argv.slice(2); const proc = useNodeRuntime ? fork(command, args, { stdio: ['pipe', 'pipe', 'pipe', 'ipc'], - execPath: process.execPath + execPath: process.execPath, }) : spawn(command, args); process.parentPort.on('message', (message) => { diff --git a/resources/electron/electron-plugin/dist/server/index.js b/resources/electron/electron-plugin/dist/server/index.js index 7a1f943c..3a413acc 100644 --- a/resources/electron/electron-plugin/dist/server/index.js +++ b/resources/electron/electron-plugin/dist/server/index.js @@ -7,10 +7,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; -import startAPIServer from "./api.js"; -import { retrieveNativePHPConfig, retrievePhpIniSettings, serveApp, startScheduler, } from "./php.js"; -import { appendCookie } from "./utils.js"; -import state from "./state.js"; +import startAPIServer from './api.js'; +import { retrieveNativePHPConfig, retrievePhpIniSettings, serveApp, startScheduler } from './php.js'; +import state from './state.js'; +import { appendCookie } from './utils.js'; let schedulerProcess = null; export function startPhpApp() { return __awaiter(this, void 0, void 0, function* () { diff --git a/resources/electron/electron-plugin/dist/server/php.js b/resources/electron/electron-plugin/dist/server/php.js index bd2cca9b..ce2cc7f8 100644 --- a/resources/electron/electron-plugin/dist/server/php.js +++ b/resources/electron/electron-plugin/dist/server/php.js @@ -7,17 +7,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; -import { mkdirSync, statSync, writeFileSync, existsSync, readFileSync } from 'fs'; +import { existsSync, mkdirSync, readFileSync, statSync, writeFileSync } from 'fs'; import fs_extra from 'fs-extra'; const { copySync, mkdirpSync } = fs_extra; -import Store from 'electron-store'; -import { promisify } from 'util'; -import { join } from 'path'; -import { app } from 'electron'; import { execFile, spawn, spawnSync } from 'child_process'; -import { createServer } from 'net'; -import state from "./state.js"; +import { app } from 'electron'; +import Store from 'electron-store'; import getPort, { portNumbers } from 'get-port'; +import { createServer } from 'net'; +import { join } from 'path'; +import { promisify } from 'util'; +import state from './state.js'; const storagePath = join(app.getPath('userData'), 'storage'); const databasePath = join(app.getPath('userData'), 'database'); const databaseFile = join(databasePath, 'database.sqlite'); @@ -30,14 +30,12 @@ mkdirpSync(join(storagePath, 'framework', 'sessions')); mkdirpSync(join(storagePath, 'framework', 'views')); mkdirpSync(join(storagePath, 'framework', 'testing')); function runningSecureBuild() { - return existsSync(join(getAppPath(), 'build', '__nativephp_app_bundle')) - && process.env.NODE_ENV !== 'development'; + return existsSync(join(getAppPath(), 'build', '__nativephp_app_bundle')) && process.env.NODE_ENV !== 'development'; } function shouldMigrateDatabase(store) { - return store.get('migrated_version') !== app.getVersion() - && process.env.NODE_ENV !== 'development'; + return store.get('migrated_version') !== app.getVersion() && process.env.NODE_ENV !== 'development'; } -function shouldOptimize(store) { +function shouldOptimize() { return process.env.NODE_ENV !== 'development'; } function hasNightwatchInstalled(appPath) { @@ -91,7 +89,7 @@ function getPhpPort() { return __awaiter(this, void 0, void 0, function* () { const suggestedPort = yield getPort({ host: '127.0.0.1', - port: portNumbers(8100, 9000) + port: portNumbers(8100, 9000), }); if (yield canBindToPort(suggestedPort)) { return suggestedPort; @@ -118,13 +116,13 @@ function canBindToPort(port) { } function retrievePhpIniSettings() { return __awaiter(this, void 0, void 0, function* () { - const env = getDefaultEnvironmentVariables(); + const env = Object.assign(Object.assign({}, process.env), getDefaultEnvironmentVariables()); const appPath = getAppPath(); const phpOptions = { cwd: appPath, - env + env, }; - let command = ['artisan', 'native:php-ini']; + const command = ['artisan', 'native:php-ini']; if (runningSecureBuild()) { command.unshift(join(appPath, 'build', '__nativephp_app_bundle')); } @@ -133,13 +131,13 @@ function retrievePhpIniSettings() { } function retrieveNativePHPConfig() { return __awaiter(this, void 0, void 0, function* () { - const env = getDefaultEnvironmentVariables(); + const env = Object.assign(Object.assign({}, process.env), getDefaultEnvironmentVariables()); const appPath = getAppPath(); const phpOptions = { cwd: appPath, - env + env, }; - let command = ['artisan', 'native:config']; + const command = ['artisan', 'native:config']; if (runningSecureBuild()) { command.unshift(join(appPath, 'build', '__nativephp_app_bundle')); } @@ -150,8 +148,8 @@ function callPhp(args, options, phpIniSettings = {}) { if (args[0] === 'artisan' && runningSecureBuild()) { args.unshift(join(getAppPath(), 'build', '__nativephp_app_bundle')); } - let iniSettings = Object.assign(getDefaultPhpIniSettings(), phpIniSettings); - Object.keys(iniSettings).forEach(key => { + const iniSettings = Object.assign(getDefaultPhpIniSettings(), phpIniSettings); + Object.keys(iniSettings).forEach((key) => { args.unshift('-d', `${key}=${iniSettings[key]}`); }); if (parseInt(process.env.SHELL_VERBOSITY) > 0) { @@ -166,8 +164,8 @@ function callPhpSync(args, options, phpIniSettings = {}) { if (args[0] === 'artisan' && runningSecureBuild()) { args.unshift(join(getAppPath(), 'build', '__nativephp_app_bundle')); } - let iniSettings = Object.assign(getDefaultPhpIniSettings(), phpIniSettings); - Object.keys(iniSettings).forEach(key => { + const iniSettings = Object.assign(getDefaultPhpIniSettings(), phpIniSettings); + Object.keys(iniSettings).forEach((key) => { args.unshift('-d', `${key}=${iniSettings[key]}`); }); if (parseInt(process.env.SHELL_VERBOSITY) > 0) { @@ -175,13 +173,13 @@ function callPhpSync(args, options, phpIniSettings = {}) { } return spawnSync(state.php, args, { cwd: options.cwd, - env: Object.assign(Object.assign({}, process.env), options.env) + env: Object.assign(Object.assign({}, process.env), options.env), }); } function getArgumentEnv() { - const envArgs = process.argv.filter(arg => arg.startsWith('--env.')); + const envArgs = process.argv.filter((arg) => arg.startsWith('--env.')); const env = {}; - envArgs.forEach(arg => { + envArgs.forEach((arg) => { const [key, value] = arg.slice(6).split('='); env[key] = value; }); @@ -199,14 +197,14 @@ function ensureAppFoldersAreAvailable() { console.log('Storage path:', storagePath); if (!existsSync(storagePath) || process.env.NODE_ENV === 'development') { const appPath = getAppPath(); - console.log("App path:", appPath); + console.log('App path:', appPath); copySync(join(appPath, 'storage'), storagePath); } mkdirSync(databasePath, { recursive: true }); try { statSync(databaseFile); } - catch (error) { + catch (_a) { writeFileSync(databaseFile, ''); } } @@ -215,7 +213,7 @@ function startScheduler(secret, apiPort, phpIniSettings = {}) { const appPath = getAppPath(); const phpOptions = { cwd: appPath, - env + env, }; return callPhp(['artisan', 'schedule:run'], phpOptions, phpIniSettings); } @@ -223,12 +221,12 @@ function getPath(name) { try { return app.getPath(name); } - catch (error) { + catch (_a) { return ''; } } function getDefaultEnvironmentVariables(secret, apiPort) { - let variables = { + const variables = { APP_ENV: process.env.NODE_ENV === 'development' ? 'local' : 'production', APP_DEBUG: process.env.NODE_ENV === 'development' ? 'true' : 'false', LARAVEL_STORAGE_PATH: storagePath, @@ -264,13 +262,13 @@ function getDefaultEnvironmentVariables(secret, apiPort) { } function getDefaultPhpIniSettings() { return { - 'memory_limit': '512M', + memory_limit: '512M', 'curl.cainfo': state.caCert, - 'openssl.cafile': state.caCert + 'openssl.cafile': state.caCert, }; } function serveApp(secret, apiPort, phpIniSettings) { - return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + return __awaiter(this, void 0, void 0, function* () { const appPath = getAppPath(); console.log('Starting PHP server...', `${state.php} artisan serve`, appPath, phpIniSettings); ensureAppFoldersAreAvailable(); @@ -298,9 +296,9 @@ function serveApp(secret, apiPort, phpIniSettings) { callPhp(['artisan', 'nightwatch:agent', `--listen-on=${env.NIGHTWATCH_INGEST_URI}`], phpOptions, phpIniSettings); console.log('Nightwatch server started on port:', phpNightWatchPort); } - if (shouldOptimize(store)) { + if (shouldOptimize()) { console.log('Caching view and routes...'); - let result = callPhpSync(['artisan', 'optimize'], phpOptions, phpIniSettings); + const result = callPhpSync(['artisan', 'optimize'], phpOptions, phpIniSettings); if (result.status !== 0) { console.error('Failed to cache view and routes:', result.stderr.toString()); } @@ -313,7 +311,7 @@ function serveApp(secret, apiPort, phpIniSettings) { if (parseInt(process.env.SHELL_VERBOSITY) > 0) { console.log('Database path:', databaseFile); } - let result = callPhpSync(['artisan', 'migrate', '--force'], phpOptions, phpIniSettings); + const result = callPhpSync(['artisan', 'migrate', '--force'], phpOptions, phpIniSettings); if (result.status !== 0) { console.error('Failed to migrate database:', result.stderr.toString()); } @@ -339,28 +337,28 @@ function serveApp(secret, apiPort, phpIniSettings) { const phpPort = yield getPhpPort(); const phpServer = callPhp(['-S', `127.0.0.1:${phpPort}`, serverPath], { cwd: cwd, - env + env, }, phpIniSettings); const portRegex = /Development Server \(.*:([0-9]+)\) started/gm; - phpServer.stdout.on('data', (data) => { - if (parseInt(process.env.SHELL_VERBOSITY) > 0) { - console.log(data.toString().trim()); - } - }); - phpServer.stderr.on('data', (data) => { - const error = data.toString(); - const match = portRegex.exec(data.toString()); - if (match) { - const port = parseInt(match[1]); - console.log("PHP Server started on port: ", port); - resolve({ - port, - process: phpServer, - }); - } - else { - if (error.includes('[NATIVE_EXCEPTION]:')) { - let logFile = join(storagePath, 'logs'); + return new Promise((resolve, reject) => { + phpServer.stdout.on('data', (data) => { + if (parseInt(process.env.SHELL_VERBOSITY) > 0) { + console.log(data.toString().trim()); + } + }); + phpServer.stderr.on('data', (data) => { + const error = data.toString(); + const match = portRegex.exec(data.toString()); + if (match) { + const port = parseInt(match[1]); + console.log('PHP Server started on port: ', port); + resolve({ + port, + process: phpServer, + }); + } + else if (error.includes('[NATIVE_EXCEPTION]:')) { + const logFile = join(storagePath, 'logs'); console.log(); console.error('Error in PHP:'); console.error(' ' + error.split('[NATIVE_EXCEPTION]:')[1].trim()); @@ -368,14 +366,14 @@ function serveApp(secret, apiPort, phpIniSettings) { console.log(' ' + logFile); console.log(); } - } + }); + phpServer.on('error', (error) => { + reject(error); + }); + phpServer.on('close', (code) => { + console.log(`PHP server exited with code ${code}`); + }); }); - phpServer.on('error', (error) => { - reject(error); - }); - phpServer.on('close', (code) => { - console.log(`PHP server exited with code ${code}`); - }); - })); + }); } -export { startScheduler, serveApp, getAppPath, retrieveNativePHPConfig, retrievePhpIniSettings, getDefaultEnvironmentVariables, getDefaultPhpIniSettings, runningSecureBuild }; +export { getAppPath, getDefaultEnvironmentVariables, getDefaultPhpIniSettings, retrieveNativePHPConfig, retrievePhpIniSettings, runningSecureBuild, serveApp, startScheduler, }; diff --git a/resources/electron/electron-plugin/dist/server/state.js b/resources/electron/electron-plugin/dist/server/state.js index 1bc243fd..e028d68e 100644 --- a/resources/electron/electron-plugin/dist/server/state.js +++ b/resources/electron/electron-plugin/dist/server/state.js @@ -1,11 +1,11 @@ -import Store from "electron-store"; -import { notifyLaravel } from "./utils.js"; +import Store from 'electron-store'; +import { notifyLaravel } from './utils.js'; const settingsStore = new Store(); settingsStore.onDidAnyChange((newValue, oldValue) => { const changedKeys = Object.keys(newValue).filter((key) => newValue[key] !== oldValue[key]); changedKeys.forEach((key) => { - notifyLaravel("events", { - event: "Native\\Desktop\\Events\\Settings\\SettingChanged", + notifyLaravel('events', { + event: 'Native\\Desktop\\Events\\Settings\\SettingChanged', payload: { key, value: newValue[key] || null, @@ -14,8 +14,8 @@ settingsStore.onDidAnyChange((newValue, oldValue) => { }); }); function generateRandomString(length) { - let result = ""; - const characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; + let result = ''; + const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; const charactersLength = characters.length; for (let i = 0; i < length; i += 1) { result += characters.charAt(Math.floor(Math.random() * charactersLength)); diff --git a/resources/electron/electron-plugin/dist/server/utils.js b/resources/electron/electron-plugin/dist/server/utils.js index 6f839d20..7f07395b 100644 --- a/resources/electron/electron-plugin/dist/server/utils.js +++ b/resources/electron/electron-plugin/dist/server/utils.js @@ -7,14 +7,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; +import axios from 'axios'; import { session } from 'electron'; import state from './state.js'; -import axios from 'axios'; export function appendCookie() { return __awaiter(this, void 0, void 0, function* () { const cookie = { url: `http://localhost:${state.phpPort}`, - name: "_php_native", + name: '_php_native', value: state.randomSecret, }; yield session.defaultSession.cookies.set(cookie); @@ -28,17 +28,17 @@ export function notifyLaravel(endpoint_1) { try { yield axios.post(`http://127.0.0.1:${state.phpPort}/_native/api/${endpoint}`, payload, { headers: { - "X-NativePHP-Secret": state.randomSecret, + 'X-NativePHP-Secret': state.randomSecret, }, }); } - catch (e) { + catch (_a) { } }); } export function broadcastToWindows(event, payload) { var _a; - Object.values(state.windows).forEach(window => { + Object.values(state.windows).forEach((window) => { window.webContents.send(event, payload); }); if ((_a = state.activeMenuBar) === null || _a === void 0 ? void 0 : _a.window) { @@ -46,7 +46,7 @@ export function broadcastToWindows(event, payload) { } } export function trimOptions(options) { - Object.keys(options).forEach(key => options[key] == null && delete options[key]); + Object.keys(options).forEach((key) => options[key] == null && delete options[key]); return options; } export function appendWindowIdToUrl(url, id) { diff --git a/resources/electron/electron-plugin/dist/server/webPreferences.js b/resources/electron/electron-plugin/dist/server/webPreferences.js index 4ab81a1f..0e067cd6 100644 --- a/resources/electron/electron-plugin/dist/server/webPreferences.js +++ b/resources/electron/electron-plugin/dist/server/webPreferences.js @@ -1,5 +1,5 @@ import { fileURLToPath } from 'url'; -let preloadPath = fileURLToPath(new URL('../../electron-plugin/dist/preload/index.mjs', import.meta.url)); +const preloadPath = fileURLToPath(new URL('../../electron-plugin/dist/preload/index.mjs', import.meta.url)); const defaultWebPreferences = { spellcheck: false, nodeIntegration: false, diff --git a/resources/electron/package-lock.json b/resources/electron/package-lock.json index 7e26d947..9626fde9 100644 --- a/resources/electron/package-lock.json +++ b/resources/electron/package-lock.json @@ -49,7 +49,7 @@ "@vue/eslint-config-prettier": "^10.1.0", "cross-env": "^10.0.0", "electron": "^38.0.0", - "electron-builder": "^25.1.8", + "electron-builder": "^26.0.0", "electron-chromedriver": "^38.0.0", "electron-vite": "^4.0.0", "eslint": "^9.17.0", @@ -2067,9 +2067,9 @@ } }, "node_modules/@electron/asar/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, "license": "ISC", "dependencies": { @@ -2079,6 +2079,50 @@ "node": "*" } }, + "node_modules/@electron/fuses": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@electron/fuses/-/fuses-1.8.0.tgz", + "integrity": "sha512-zx0EIq78WlY/lBb1uXlziZmDZI4ubcCXIMJ4uGjXzZW0nS19TjSPeXPAjzzTmKQlJUZm0SbmZhPKP7tuQ1SsEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.1", + "fs-extra": "^9.0.1", + "minimist": "^1.2.5" + }, + "bin": { + "electron-fuses": "dist/bin.js" + } + }, + "node_modules/@electron/fuses/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@electron/fuses/node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, "node_modules/@electron/get": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@electron/get/-/get-2.0.3.tgz", @@ -2138,9 +2182,9 @@ } }, "node_modules/@electron/osx-sign": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@electron/osx-sign/-/osx-sign-1.3.1.tgz", - "integrity": "sha512-BAfviURMHpmb1Yb50YbCxnOY0wfwaLXH5KJ4+80zS0gUkzDX3ec23naTlEqKsN+PwYn+a1cCzM7BJ4Wcd3sGzw==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@electron/osx-sign/-/osx-sign-1.3.3.tgz", + "integrity": "sha512-KZ8mhXvWv2rIEgMbWZ4y33bDHyUKMXnx4M0sTyPNK/vcB81ImdeY9Ggdqy0SWbMDgmbqyQ+phgejh6V3R2QuSg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -2201,66 +2245,37 @@ } }, "node_modules/@electron/rebuild": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/@electron/rebuild/-/rebuild-3.6.1.tgz", - "integrity": "sha512-f6596ZHpEq/YskUd8emYvOUne89ij8mQgjYFA5ru25QwbrRO+t1SImofdDv7kKOuWCmVOuU5tvfkbgGxIl3E/w==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@electron/rebuild/-/rebuild-4.0.3.tgz", + "integrity": "sha512-u9vpTHRMkOYCs/1FLiSVAFZ7FbjsXK+bQuzviJZa+lG7BHZl1nz52/IcGvwa3sk80/fc3llutBkbCq10Vh8WQA==", "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", - "node-abi": "^3.45.0", - "node-api-version": "^0.2.0", - "node-gyp": "^9.0.0", + "graceful-fs": "^4.2.11", + "node-abi": "^4.2.0", + "node-api-version": "^0.2.1", + "node-gyp": "^11.2.0", "ora": "^5.1.0", "read-binary-file-arch": "^1.0.6", "semver": "^7.3.5", - "tar": "^6.0.5", + "tar": "^7.5.6", "yargs": "^17.0.1" }, "bin": { "electron-rebuild": "lib/cli.js" }, "engines": { - "node": ">=12.13.0" - } - }, - "node_modules/@electron/rebuild/node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@electron/rebuild/node_modules/jsonfile": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", - "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", - "dev": true, - "license": "MIT", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" + "node": ">=22.12.0" } }, "node_modules/@electron/rebuild/node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", "dev": true, "license": "ISC", "bin": { @@ -2280,13 +2295,13 @@ } }, "node_modules/@electron/universal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@electron/universal/-/universal-2.0.1.tgz", - "integrity": "sha512-fKpv9kg4SPmt+hY7SVBnIYULE9QJl8L3sCfcBsnqbJwwBwAeTLokJ9TRt9y7bK0JAzIW2y78TVVjvnQEms/yyA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@electron/universal/-/universal-2.0.3.tgz", + "integrity": "sha512-Wn9sPYIVFRFl5HmwMJkARCCf7rqK/EurkfQ/rJZ14mHP3iYTjZSIOSVonEAnhWeAXwtw7zOekGRlc6yTtZ0t+g==", "dev": true, "license": "MIT", "dependencies": { - "@electron/asar": "^3.2.7", + "@electron/asar": "^3.3.1", "@malept/cross-spawn-promise": "^2.0.0", "debug": "^4.3.1", "dir-compare": "^4.2.0", @@ -2298,6 +2313,28 @@ "node": ">=16.4" } }, + "node_modules/@electron/windows-sign": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@electron/windows-sign/-/windows-sign-1.2.2.tgz", + "integrity": "sha512-dfZeox66AvdPtb2lD8OsIIQh12Tp0GNCRUDfBHIKGpbmopZto2/A8nSpYYLoedPIHpqkeblZ/k8OV0Gy7PYuyQ==", + "dev": true, + "license": "BSD-2-Clause", + "optional": true, + "peer": true, + "dependencies": { + "cross-dirname": "^0.1.0", + "debug": "^4.3.4", + "fs-extra": "^11.1.1", + "minimist": "^1.2.8", + "postject": "^1.0.0-alpha.6" + }, + "bin": { + "electron-windows-sign": "bin/electron-windows-sign.js" + }, + "engines": { + "node": ">=14.14" + } + }, "node_modules/@epic-web/invariant": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@epic-web/invariant/-/invariant-1.0.0.tgz", @@ -2949,13 +2986,6 @@ "node": "^18.18.0 || ^20.9.0 || >=21.1.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/@humanfs/core": { "version": "0.19.1", "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", @@ -3134,6 +3164,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/@jridgewell/gen-mapping": { "version": "0.3.13", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", @@ -3297,78 +3340,56 @@ "node": ">= 8" } }, - "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==", + "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": { - "@gar/promisify": "^1.1.3", - "semver": "^7.3.5" + "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": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/@npmcli/fs/node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "node_modules/@npmcli/agent/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } + "license": "ISC" }, - "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", + "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": "MIT", + "license": "ISC", "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" + "semver": "^7.3.5" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/@npmcli/move-file/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "node_modules/@npmcli/fs/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", "dev": true, - "license": "MIT", + "license": "ISC", "bin": { - "mkdirp": "bin/cmd.js" + "semver": "bin/semver.js" }, "engines": { "node": ">=10" } }, - "node_modules/@npmcli/move-file/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/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", @@ -3793,16 +3814,6 @@ "node": ">=10" } }, - "node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, "node_modules/@tsconfig/node10": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", @@ -4482,11 +4493,14 @@ "license": "MIT" }, "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==", + "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" + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } }, "node_modules/accepts": { "version": "2.0.0", @@ -4547,43 +4561,6 @@ "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/aggregate-error/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/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -4690,58 +4667,119 @@ } }, "node_modules/app-builder-bin": { - "version": "5.0.0-alpha.10", - "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-5.0.0-alpha.10.tgz", - "integrity": "sha512-Ev4jj3D7Bo+O0GPD2NMvJl+PGiBAfS7pUGawntBNpCbxtpncfUixqFj9z9Jme7V7s3LBGqsWZZP54fxBX3JKJw==", + "version": "5.0.0-alpha.12", + "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-5.0.0-alpha.12.tgz", + "integrity": "sha512-j87o0j6LqPL3QRr8yid6c+Tt5gC7xNfYo6uQIQkorAC6MpeayVMZrEDzKmJJ/Hlv7EnOQpaRm53k6ktDYZyB6w==", "dev": true, "license": "MIT" }, "node_modules/app-builder-lib": { - "version": "25.1.8", - "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-25.1.8.tgz", - "integrity": "sha512-pCqe7dfsQFBABC1jeKZXQWhGcCPF3rPCXDdfqVKjIeWBcXzyC1iOWZdfFhGl+S9MyE/k//DFmC6FzuGAUudNDg==", + "version": "26.8.1", + "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-26.8.1.tgz", + "integrity": "sha512-p0Im/Dx5C4tmz8QEE1Yn4MkuPC8PrnlRneMhWJj7BBXQfNTJUshM/bp3lusdEsDbvvfJZpXWnYesgSLvwtM2Zw==", "dev": true, "license": "MIT", "dependencies": { "@develar/schema-utils": "~2.6.5", + "@electron/asar": "3.4.1", + "@electron/fuses": "^1.8.0", + "@electron/get": "^3.0.0", "@electron/notarize": "2.5.0", - "@electron/osx-sign": "1.3.1", - "@electron/rebuild": "3.6.1", - "@electron/universal": "2.0.1", + "@electron/osx-sign": "1.3.3", + "@electron/rebuild": "^4.0.3", + "@electron/universal": "2.0.3", "@malept/flatpak-bundler": "^0.4.0", "@types/fs-extra": "9.0.13", "async-exit-hook": "^2.0.1", - "bluebird-lst": "^1.0.9", - "builder-util": "25.1.7", - "builder-util-runtime": "9.2.10", + "builder-util": "26.8.1", + "builder-util-runtime": "9.5.1", "chromium-pickle-js": "^0.2.0", - "config-file-ts": "0.2.8-rc1", + "ci-info": "4.3.1", "debug": "^4.3.4", "dotenv": "^16.4.5", "dotenv-expand": "^11.0.6", "ejs": "^3.1.8", - "electron-publish": "25.1.7", - "form-data": "^4.0.0", + "electron-publish": "26.8.1", "fs-extra": "^10.1.0", "hosted-git-info": "^4.1.0", - "is-ci": "^3.0.0", "isbinaryfile": "^5.0.0", + "jiti": "^2.4.2", "js-yaml": "^4.1.0", "json5": "^2.2.3", "lazy-val": "^1.0.5", - "minimatch": "^10.0.0", + "minimatch": "^10.0.3", + "plist": "3.1.0", + "proper-lockfile": "^4.1.2", "resedit": "^1.7.0", - "sanitize-filename": "^1.6.3", - "semver": "^7.3.8", - "tar": "^6.1.12", - "temp-file": "^3.4.0" + "semver": "~7.7.3", + "tar": "^7.5.7", + "temp-file": "^3.4.0", + "tiny-async-pool": "1.3.0", + "which": "^5.0.0" }, "engines": { "node": ">=14.0.0" }, "peerDependencies": { - "dmg-builder": "25.1.8", - "electron-builder-squirrel-windows": "25.1.8" + "dmg-builder": "26.8.1", + "electron-builder-squirrel-windows": "26.8.1" + } + }, + "node_modules/app-builder-lib/node_modules/@electron/get": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@electron/get/-/get-3.1.0.tgz", + "integrity": "sha512-F+nKc0xW+kVbBRhFzaMgPy3KwmuNTYX1fx6+FxxoSnNgwYX6LD7AKBTWkU0MQ6IBoe7dz069CNkR673sPAgkCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "got": "^11.8.5", + "progress": "^2.0.3", + "semver": "^6.2.0", + "sumchecker": "^3.0.1" + }, + "engines": { + "node": ">=14" + }, + "optionalDependencies": { + "global-agent": "^3.0.0" + } + }, + "node_modules/app-builder-lib/node_modules/@electron/get/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/app-builder-lib/node_modules/@electron/get/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/app-builder-lib/node_modules/@electron/get/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" } }, "node_modules/app-builder-lib/node_modules/@electron/notarize": { @@ -4775,22 +4813,7 @@ "node": ">=10" } }, - "node_modules/app-builder-lib/node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/app-builder-lib/node_modules/jsonfile": { + "node_modules/app-builder-lib/node_modules/@electron/notarize/node_modules/jsonfile": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", @@ -4803,134 +4826,110 @@ "graceful-fs": "^4.1.6" } }, - "node_modules/app-builder-lib/node_modules/minimatch": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.1.tgz", - "integrity": "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/brace-expansion": "^5.0.0" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/app-builder-lib/node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "node_modules/app-builder-lib/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, + "license": "MIT", "engines": { - "node": ">=10" + "node": "18 || 20 || >=22" } }, - "node_modules/aproba": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.1.0.tgz", - "integrity": "sha512-tLIEcj5GuR2RSTnxNKdkK0dJ/GrC7P38sUkiDmDuHfsHmbagTFAxDVIBltoklXEVIQ/f14IL8IMJ5pn9Hez1Ew==", - "dev": true, - "license": "ISC" - }, - "node_modules/archiver": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.2.tgz", - "integrity": "sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==", + "node_modules/app-builder-lib/node_modules/brace-expansion": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz", + "integrity": "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { - "archiver-utils": "^2.1.0", - "async": "^3.2.4", - "buffer-crc32": "^0.2.1", - "readable-stream": "^3.6.0", - "readdir-glob": "^1.1.2", - "tar-stream": "^2.2.0", - "zip-stream": "^4.1.0" + "balanced-match": "^4.0.2" }, "engines": { - "node": ">= 10" + "node": "18 || 20 || >=22" } }, - "node_modules/archiver-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", - "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", + "node_modules/app-builder-lib/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { - "glob": "^7.1.4", "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^2.0.0" + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, "engines": { - "node": ">= 6" + "node": ">=12" } }, - "node_modules/archiver-utils/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "node_modules/app-builder-lib/node_modules/fs-extra/node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/archiver-utils/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "node_modules/app-builder-lib/node_modules/isexe": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.5.tgz", + "integrity": "sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w==", "dev": true, - "license": "MIT", - "peer": true + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } }, - "node_modules/archiver-utils/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "node_modules/app-builder-lib/node_modules/minimatch": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", + "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", "dev": true, - "license": "MIT", - "peer": true, + "license": "BlueOak-1.0.0", "dependencies": { - "safe-buffer": "~5.1.0" + "brace-expansion": "^5.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "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.", + "node_modules/app-builder-lib/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/app-builder-lib/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": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/arg": { @@ -5144,23 +5143,6 @@ "readable-stream": "^3.4.0" } }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true, - "license": "MIT" - }, - "node_modules/bluebird-lst": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.9.tgz", - "integrity": "sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw==", - "dev": true, - "license": "MIT", - "dependencies": { - "bluebird": "^3.5.5" - } - }, "node_modules/body-parser": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.1.tgz", @@ -5307,34 +5289,34 @@ "license": "MIT" }, "node_modules/builder-util": { - "version": "25.1.7", - "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-25.1.7.tgz", - "integrity": "sha512-7jPjzBwEGRbwNcep0gGNpLXG9P94VA3CPAZQCzxkFXiV2GMQKlziMbY//rXPI7WKfhsvGgFXjTcXdBEwgXw9ww==", + "version": "26.8.1", + "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-26.8.1.tgz", + "integrity": "sha512-pm1lTYbGyc90DHgCDO7eo8Rl4EqKLciayNbZqGziqnH9jrlKe8ZANGdityLZU+pJh16dfzjAx2xQq9McuIPEtw==", "dev": true, "license": "MIT", "dependencies": { "@types/debug": "^4.1.6", "7zip-bin": "~5.2.0", - "app-builder-bin": "5.0.0-alpha.10", - "bluebird-lst": "^1.0.9", - "builder-util-runtime": "9.2.10", + "app-builder-bin": "5.0.0-alpha.12", + "builder-util-runtime": "9.5.1", "chalk": "^4.1.2", - "cross-spawn": "^7.0.3", + "cross-spawn": "^7.0.6", "debug": "^4.3.4", "fs-extra": "^10.1.0", "http-proxy-agent": "^7.0.0", "https-proxy-agent": "^7.0.0", - "is-ci": "^3.0.0", "js-yaml": "^4.1.0", + "sanitize-filename": "^1.6.3", "source-map-support": "^0.5.19", "stat-mode": "^1.0.0", - "temp-file": "^3.4.0" + "temp-file": "^3.4.0", + "tiny-async-pool": "1.3.0" } }, "node_modules/builder-util-runtime": { - "version": "9.2.10", - "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.2.10.tgz", - "integrity": "sha512-6p/gfG1RJSQeIbz8TK5aPNkoztgY1q5TgmGFMAXcY8itsGW6Y2ld1ALsZ5UJn8rog7hKF3zHx5iQbNQ8uLcRlw==", + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.5.1.tgz", + "integrity": "sha512-qt41tMfgHTllhResqM5DcnHyDIWNgzHvuY2jDcYP9iaGpkWxTUzV6GQjDeLnlR1/DtdlcsWQbA7sByMpmJFTLQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5406,154 +5388,57 @@ } }, "node_modules/cacache": { - "version": "16.1.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", - "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", + "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": "^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", + "@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", - "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" + "p-map": "^7.0.2", + "ssri": "^12.0.0", + "tar": "^7.4.3", + "unique-filename": "^4.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "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/cacache/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/cacache/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", "dev": true, "license": "ISC", "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/cacache/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/cacache/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" + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/cacache/node_modules/rimraf/node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/cacache/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": "*" + "glob": "dist/esm/bin.mjs" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/cacache/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==", + "node_modules/cacache/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } + "license": "ISC" }, "node_modules/cacheable": { "version": "2.1.1", @@ -5748,13 +5633,13 @@ } }, "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "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": "ISC", + "license": "BlueOak-1.0.0", "engines": { - "node": ">=10" + "node": ">=18" } }, "node_modules/chromium-pickle-js": { @@ -5803,16 +5688,6 @@ "node": ">=0.8.0" } }, - "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", @@ -5944,16 +5819,6 @@ "dev": true, "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/colord": { "version": "2.9.3", "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", @@ -5993,23 +5858,6 @@ "node": ">=0.10.0" } }, - "node_modules/compress-commons": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.2.tgz", - "integrity": "sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "buffer-crc32": "^0.2.13", - "crc32-stream": "^4.0.2", - "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">= 10" - } - }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -6085,61 +5933,12 @@ "node": ">=10" } }, - "node_modules/config-file-ts": { - "version": "0.2.8-rc1", - "resolved": "https://registry.npmjs.org/config-file-ts/-/config-file-ts-0.2.8-rc1.tgz", - "integrity": "sha512-GtNECbVI82bT4RiDIzBSVuTKoSHufnU7Ce7/42bkWZJZFLjmDF2WBpVsvRkhKCfKBnTBb3qZrBwPpFBU/Myvhg==", - "dev": true, - "license": "MIT", - "dependencies": { - "glob": "^10.3.12", - "typescript": "^5.4.3" - } - }, - "node_modules/config-file-ts/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/config-file-ts/node_modules/minipass": { - "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/connected-domain": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/connected-domain/-/connected-domain-1.0.0.tgz", "integrity": "sha512-lHlohUiJxlpunvDag2Y0pO20bnvarMjnrdciZeuJUqRwrf/5JHNhdpiPIr5GQ8IkqrFj5TDMQwcCjblGo1oeuA==", "license": "MIT" }, - "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/content-disposition": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.0.tgz", @@ -6218,7 +6017,8 @@ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", "dev": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/cosmiconfig": { "version": "9.0.0", @@ -6277,35 +6077,6 @@ "buffer": "^5.1.0" } }, - "node_modules/crc-32": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "bin": { - "crc32": "bin/crc32.njs" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/crc32-stream": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.3.tgz", - "integrity": "sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "crc-32": "^1.2.0", - "readable-stream": "^3.4.0" - }, - "engines": { - "node": ">= 10" - } - }, "node_modules/create-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", @@ -6313,6 +6084,15 @@ "dev": true, "license": "MIT" }, + "node_modules/cross-dirname": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/cross-dirname/-/cross-dirname-0.1.0.tgz", + "integrity": "sha512-+R08/oI0nl3vfPcqftZRpytksBXDzOUveBq/NBVx0sUp1axwzPQrKinNx5yd5sxPu8j1wIy8AfnVQ+5eFdha6Q==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true + }, "node_modules/cross-env": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-10.1.0.tgz", @@ -6537,13 +6317,6 @@ "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/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", @@ -6603,9 +6376,9 @@ } }, "node_modules/dir-compare/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, "license": "ISC", "dependencies": { @@ -6629,15 +6402,14 @@ } }, "node_modules/dmg-builder": { - "version": "25.1.8", - "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-25.1.8.tgz", - "integrity": "sha512-NoXo6Liy2heSklTI5OIZbCgXC1RzrDQsZkeEwXhdOro3FT1VBOvbubvscdPnjVuQ4AMwwv61oaH96AbiYg9EnQ==", + "version": "26.8.1", + "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-26.8.1.tgz", + "integrity": "sha512-glMJgnTreo8CFINujtAhCgN96QAqApDMZ8Vl1r8f0QT8QprvC1UCltV4CcWj20YoIyLZx6IUskaJZ0NV8fokcg==", "dev": true, "license": "MIT", "dependencies": { - "app-builder-lib": "25.1.8", - "builder-util": "25.1.7", - "builder-util-runtime": "9.2.10", + "app-builder-lib": "26.8.1", + "builder-util": "26.8.1", "fs-extra": "^10.1.0", "iconv-lite": "^0.6.2", "js-yaml": "^4.1.0" @@ -6807,19 +6579,19 @@ } }, "node_modules/electron-builder": { - "version": "25.1.8", - "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-25.1.8.tgz", - "integrity": "sha512-poRgAtUHHOnlzZnc9PK4nzG53xh74wj2Jy7jkTrqZ0MWPoHGh1M2+C//hGeYdA+4K8w4yiVCNYoLXF7ySj2Wig==", + "version": "26.8.1", + "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-26.8.1.tgz", + "integrity": "sha512-uWhx1r74NGpCagG0ULs/P9Nqv2nsoo+7eo4fLUOB8L8MdWltq9odW/uuLXMFCDGnPafknYLZgjNX0ZIFRzOQAw==", "dev": true, "license": "MIT", "dependencies": { - "app-builder-lib": "25.1.8", - "builder-util": "25.1.7", - "builder-util-runtime": "9.2.10", + "app-builder-lib": "26.8.1", + "builder-util": "26.8.1", + "builder-util-runtime": "9.5.1", "chalk": "^4.1.2", - "dmg-builder": "25.1.8", + "ci-info": "^4.2.0", + "dmg-builder": "26.8.1", "fs-extra": "^10.1.0", - "is-ci": "^3.0.0", "lazy-val": "^1.0.5", "simple-update-notifier": "2.0.0", "yargs": "^17.6.2" @@ -6833,47 +6605,16 @@ } }, "node_modules/electron-builder-squirrel-windows": { - "version": "25.1.8", - "resolved": "https://registry.npmjs.org/electron-builder-squirrel-windows/-/electron-builder-squirrel-windows-25.1.8.tgz", - "integrity": "sha512-2ntkJ+9+0GFP6nAISiMabKt6eqBB0kX1QqHNWFWAXgi0VULKGisM46luRFpIBiU3u/TDmhZMM8tzvo2Abn3ayg==", + "version": "26.8.1", + "resolved": "https://registry.npmjs.org/electron-builder-squirrel-windows/-/electron-builder-squirrel-windows-26.8.1.tgz", + "integrity": "sha512-o288fIdgPLHA76eDrFADHPoo7VyGkDCYbLV1GzndaMSAVBoZrGvM9m2IehdcVMzdAZJ2eV9bgyissQXHv5tGzA==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "app-builder-lib": "25.1.8", - "archiver": "^5.3.1", - "builder-util": "25.1.7", - "fs-extra": "^10.1.0" - } - }, - "node_modules/electron-builder-squirrel-windows/node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/electron-builder-squirrel-windows/node_modules/jsonfile": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", - "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" + "app-builder-lib": "26.8.1", + "builder-util": "26.8.1", + "electron-winstaller": "5.4.0" } }, "node_modules/electron-builder/node_modules/fs-extra": { @@ -6969,16 +6710,17 @@ } }, "node_modules/electron-publish": { - "version": "25.1.7", - "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-25.1.7.tgz", - "integrity": "sha512-+jbTkR9m39eDBMP4gfbqglDd6UvBC7RLh5Y0MhFSsc6UkGHj9Vj9TWobxevHYMMqmoujL11ZLjfPpMX+Pt6YEg==", + "version": "26.8.1", + "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-26.8.1.tgz", + "integrity": "sha512-q+jrSTIh/Cv4eGZa7oVR+grEJo/FoLMYBAnSL5GCtqwUpr1T+VgKB/dn1pnzxIxqD8S/jP1yilT9VrwCqINR4w==", "dev": true, "license": "MIT", "dependencies": { "@types/fs-extra": "^9.0.11", - "builder-util": "25.1.7", - "builder-util-runtime": "9.2.10", + "builder-util": "26.8.1", + "builder-util-runtime": "9.5.1", "chalk": "^4.1.2", + "form-data": "^4.0.5", "fs-extra": "^10.1.0", "lazy-val": "^1.0.5", "mime": "^2.5.2" @@ -7145,6 +6887,55 @@ "node": ">=8.0.0" } }, + "node_modules/electron-winstaller": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/electron-winstaller/-/electron-winstaller-5.4.0.tgz", + "integrity": "sha512-bO3y10YikuUwUuDUQRM4KfwNkKhnpVO7IPdbsrejwN9/AABJzzTQ4GeHwyzNSrVO+tEH3/Np255a3sVZpZDjvg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@electron/asar": "^3.2.1", + "debug": "^4.1.1", + "fs-extra": "^7.0.1", + "lodash": "^4.17.21", + "temp": "^0.9.0" + }, + "engines": { + "node": ">=8.0.0" + }, + "optionalDependencies": { + "@electron/windows-sign": "^1.1.2" + } + }, + "node_modules/electron-winstaller/node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/electron-winstaller/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 4.0.0" + } + }, "node_modules/emoji-regex": { "version": "10.6.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", @@ -7978,9 +7769,9 @@ } }, "node_modules/filelist": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", - "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.6.tgz", + "integrity": "sha512-5giy2PkLYY1cP39p17Ech+2xlpTRL9HLspOfEgm0L6CwBXBTgsK5ou0JtzYuepxkaQ/tvhCFIJ5uXo0OrM2DxA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -7988,9 +7779,9 @@ } }, "node_modules/filelist/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz", + "integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==", "dev": true, "license": "ISC", "dependencies": { @@ -8183,9 +7974,9 @@ } }, "node_modules/form-data": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", - "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", + "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", "license": "MIT", "dependencies": { "asynckit": "^0.4.0", @@ -8237,14 +8028,6 @@ "node": ">= 0.8" } }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true, - "license": "MIT", - "peer": true - }, "node_modules/fs-extra": { "version": "11.3.2", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.2.tgz", @@ -8272,16 +8055,16 @@ } }, "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "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": "^3.0.0" + "minipass": "^7.0.3" }, "engines": { - "node": ">= 8" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/fs.realpath": { @@ -8289,82 +8072,29 @@ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true, - "license": "ISC" - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "license": "MIT", - "funding": { - "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/gauge/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" + "license": "ISC" }, - "node_modules/gauge/node_modules/is-fullwidth-code-point": { - "version": "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==", - "dev": true, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=8" + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/gauge/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/gensync": { @@ -8467,7 +8197,7 @@ "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", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", "dev": true, "license": "ISC", "dependencies": { @@ -8510,9 +8240,9 @@ } }, "node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, "license": "ISC", "dependencies": { @@ -8762,13 +8492,6 @@ "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.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", @@ -8915,16 +8638,6 @@ "node": ">=10.17.0" } }, - "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-corefoundation": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/iconv-corefoundation/-/iconv-corefoundation-1.1.7.tgz", @@ -9129,13 +8842,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "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", @@ -9215,35 +8921,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-ci": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", - "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ci-info": "^3.2.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/is-ci/node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/is-core-module": { "version": "2.16.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", @@ -9303,13 +8980,6 @@ "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-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -9376,14 +9046,6 @@ "dev": true, "license": "MIT" }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true, - "license": "MIT", - "peer": true - }, "node_modules/isbinaryfile": { "version": "5.0.6", "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-5.0.6.tgz", @@ -9437,6 +9099,16 @@ "node": ">=10" } }, + "node_modules/jiti": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", + "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -9569,56 +9241,6 @@ "integrity": "sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==", "license": "MIT" }, - "node_modules/lazystream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", - "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "readable-stream": "^2.0.5" - }, - "engines": { - "node": ">= 0.6.3" - } - }, - "node_modules/lazystream/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/lazystream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/lazystream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/less": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/less/-/less-4.4.2.tgz", @@ -9698,9 +9320,9 @@ } }, "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "version": "4.17.23", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz", + "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==", "dev": true, "license": "MIT" }, @@ -9711,36 +9333,12 @@ "dev": true, "license": "MIT" }, - "node_modules/lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/lodash.difference": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", - "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==", - "dev": true, - "license": "MIT", - "peer": true - }, "node_modules/lodash.escaperegexp": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==", "license": "MIT" }, - "node_modules/lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", - "dev": true, - "license": "MIT", - "peer": true - }, "node_modules/lodash.isequal": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", @@ -9748,14 +9346,6 @@ "deprecated": "This package is deprecated. Use require('node:util').isDeepStrictEqual instead.", "license": "MIT" }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "dev": true, - "license": "MIT", - "peer": true - }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -9770,14 +9360,6 @@ "dev": true, "license": "MIT" }, - "node_modules/lodash.union": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", - "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==", - "dev": true, - "license": "MIT", - "peer": true - }, "node_modules/log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", @@ -9865,93 +9447,26 @@ "license": "ISC" }, "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==", + "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": { - "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", + "@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": "^0.6.3", + "negotiator": "^1.0.0", + "proc-log": "^5.0.0", "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/make-fetch-happen/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/make-fetch-happen/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/make-fetch-happen/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" + "ssri": "^12.0.0" }, "engines": { - "node": ">= 6" - } - }, - "node_modules/make-fetch-happen/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/make-fetch-happen/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": "^18.17.0 || >=20.5.0" } }, "node_modules/matcher": { @@ -10148,44 +9663,41 @@ } }, "node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, + "license": "BlueOak-1.0.0", "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" } }, "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==", + "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": "^3.0.0" + "minipass": "^7.0.3" }, "engines": { - "node": ">= 8" + "node": ">=16 || 14 >=14.17" } }, "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==", + "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": "^3.1.6", + "minipass": "^7.0.3", "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" + "minizlib": "^3.0.1" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^18.17.0 || >=20.5.0" }, "optionalDependencies": { "encoding": "^0.1.13" @@ -10204,6 +9716,26 @@ "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-flush/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, "node_modules/minipass-pipeline": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", @@ -10217,47 +9749,72 @@ "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==", + "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": { - "minipass": "^3.0.0" + "yallist": "^4.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/minipass/node_modules/yallist": { + "node_modules/minipass-pipeline/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true, "license": "ISC" }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "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": "MIT", + "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": { - "minipass": "^3.0.0", "yallist": "^4.0.0" }, "engines": { - "node": ">= 8" + "node": ">=8" } }, - "node_modules/minizlib/node_modules/yallist": { + "node_modules/minipass-sized/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true, "license": "ISC" }, + "node_modules/minizlib": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz", + "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.1.2" + }, + "engines": { + "node": ">= 18" + } + }, "node_modules/mkdirp": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", @@ -10330,22 +9887,22 @@ } }, "node_modules/node-abi": { - "version": "3.80.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.80.0.tgz", - "integrity": "sha512-LyPuZJcI9HVwzXK1GPxWNzrr+vr8Hp/3UqlmWxxh8p54U1ZbclOqbSog9lWHaCX+dBaiGi6n/hIX+mKu74GmPA==", + "version": "4.26.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-4.26.0.tgz", + "integrity": "sha512-8QwIZqikRvDIkXS2S93LjzhsSPJuIbfaMETWH+Bx8oOT9Sa9UsUtBFQlc3gBNd1+QINjaTloitXr1W3dQLi9Iw==", "dev": true, "license": "MIT", "dependencies": { - "semver": "^7.3.5" + "semver": "^7.6.3" }, "engines": { - "node": ">=10" + "node": ">=22.12.0" } }, "node_modules/node-abi/node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", "dev": true, "license": "ISC", "bin": { @@ -10374,9 +9931,9 @@ } }, "node_modules/node-api-version/node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", "dev": true, "license": "ISC", "bin": { @@ -10387,52 +9944,44 @@ } }, "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==", + "version": "11.5.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-11.5.0.tgz", + "integrity": "sha512-ra7Kvlhxn5V9Slyus0ygMa2h+UqExPqUIkfk7Pc8QTLT956JLSy51uWFwHtIYy0vI8cB4BDhc/S03+880My/LQ==", "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", + "make-fetch-happen": "^14.0.3", + "nopt": "^8.0.0", + "proc-log": "^5.0.0", "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" + "tar": "^7.4.3", + "tinyglobby": "^0.2.12", + "which": "^5.0.0" }, "bin": { "node-gyp": "bin/node-gyp.js" }, "engines": { - "node": "^12.13 || ^14.13 || >=16" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/node-gyp/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", + "node_modules/node-gyp/node_modules/isexe": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.5.tgz", + "integrity": "sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w==", "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" } }, "node_modules/node-gyp/node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", "dev": true, "license": "ISC", "bin": { @@ -10442,6 +9991,22 @@ "node": ">=10" } }, + "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-releases": { "version": "2.0.27", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", @@ -10533,19 +10098,19 @@ } }, "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==", + "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": "^1.0.0" + "abbrev": "^3.0.0" }, "bin": { "nopt": "bin/nopt.js" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/normalize-package-data": { @@ -10629,23 +10194,6 @@ "node": ">=8" } }, - "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-inspect": { "version": "1.13.4", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", @@ -10788,16 +10336,13 @@ } }, "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==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.4.tgz", + "integrity": "sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==", "dev": true, "license": "MIT", - "dependencies": { - "aggregate-error": "^3.0.0" - }, "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -10920,16 +10465,6 @@ "dev": true, "license": "ISC" }, - "node_modules/path-scurry/node_modules/minipass": { - "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/path-to-regexp": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.3.0.tgz", @@ -11170,6 +10705,36 @@ "dev": true, "license": "MIT" }, + "node_modules/postject": { + "version": "1.0.0-alpha.6", + "resolved": "https://registry.npmjs.org/postject/-/postject-1.0.0-alpha.6.tgz", + "integrity": "sha512-b9Eb8h2eVqNE8edvKdwqkrY6O7kAwmI8kcnBv1NScolYJbo59XUF0noFq+lxbC1yN20bmC0WBEbDC5H/7ASb0A==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "commander": "^9.4.0" + }, + "bin": { + "postject": "dist/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/postject/node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": "^12.20.0 || >=14" + } + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -11226,13 +10791,15 @@ } } }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "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": "MIT", - "peer": true + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } }, "node_modules/progress": { "version": "2.0.3", @@ -11243,13 +10810,6 @@ "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", @@ -11264,6 +10824,18 @@ "node": ">=10" } }, + "node_modules/proper-lockfile": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.2.tgz", + "integrity": "sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "retry": "^0.12.0", + "signal-exit": "^3.0.2" + } + }, "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -11508,31 +11080,6 @@ "node": ">= 6" } }, - "node_modules/readdir-glob": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", - "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "minimatch": "^5.1.0" - } - }, - "node_modules/readdir-glob/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", - "peer": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -11846,16 +11393,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/rimraf/node_modules/minipass": { - "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/rimraf/node_modules/path-scurry": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", @@ -12097,13 +11634,6 @@ "node": ">= 18" } }, - "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/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", @@ -12376,31 +11906,18 @@ } }, "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/socks-proxy-agent/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==", + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", + "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", "dev": true, "license": "MIT", "dependencies": { - "debug": "4" + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "socks": "^2.8.3" }, "engines": { - "node": ">= 6.0.0" + "node": ">= 14" } }, "node_modules/sort-keys": { @@ -12502,16 +12019,16 @@ "optional": true }, "node_modules/ssri": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", - "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", + "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": "^3.1.1" + "minipass": "^7.0.3" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/stackback": { @@ -13129,71 +12646,47 @@ } }, "node_modules/tar": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", - "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", - "dev": true, - "license": "ISC", - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^5.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.9.tgz", + "integrity": "sha512-BTLcK0xsDh2+PUe9F6c2TlRp4zOOBMTkoQHQIWSIzI0R7KG46uEwq4OPk2W7bZcprBMsuaeFsqwYr7pjh6CuHg==", "dev": true, - "license": "MIT", - "peer": true, + "license": "BlueOak-1.0.0", "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.1.0", + "yallist": "^5.0.0" }, "engines": { - "node": ">=6" + "node": ">=18" } }, - "node_modules/tar/node_modules/minipass": { + "node_modules/tar/node_modules/yallist": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "engines": { - "node": ">=8" + "node": ">=18" } }, - "node_modules/tar/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "node_modules/temp": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/temp/-/temp-0.9.4.tgz", + "integrity": "sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA==", "dev": true, "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" + "peer": true, + "dependencies": { + "mkdirp": "^0.5.1", + "rimraf": "~2.6.2" }, "engines": { - "node": ">=10" + "node": ">=6.0.0" } }, - "node_modules/tar/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "license": "ISC" - }, "node_modules/temp-file": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/temp-file/-/temp-file-3.4.0.tgz", @@ -13233,6 +12726,41 @@ "graceful-fs": "^4.1.6" } }, + "node_modules/temp/node_modules/rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "peer": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/tiny-async-pool": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/tiny-async-pool/-/tiny-async-pool-1.3.0.tgz", + "integrity": "sha512-01EAw5EDrcVrdgyCLgoSPvqznC0sVxDSVeiOz09FUpjh71G79VCqneOr+xvt7T1r76CF6ZZfPjHorN2+d+3mqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^5.5.0" + } + }, + "node_modules/tiny-async-pool/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, "node_modules/tiny-typed-emitter": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/tiny-typed-emitter/-/tiny-typed-emitter-2.1.0.tgz", @@ -13623,29 +13151,29 @@ } }, "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==", + "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": "^3.0.0" + "unique-slug": "^5.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "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==", + "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": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/universalify": { @@ -14071,48 +13599,6 @@ "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/wide-align/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/wide-align/node_modules/is-fullwidth-code-point": { - "version": "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==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/wide-align/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/word-wrap": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", @@ -14380,45 +13866,6 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } - }, - "node_modules/zip-stream": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.1.tgz", - "integrity": "sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "archiver-utils": "^3.0.4", - "compress-commons": "^4.1.2", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/zip-stream/node_modules/archiver-utils": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-3.0.4.tgz", - "integrity": "sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "glob": "^7.2.3", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">= 10" - } } } }