From 410a87404c702990b951b8785ef95fdc7ba81302 Mon Sep 17 00:00:00 2001 From: RobertGemmaJr Date: Fri, 2 Aug 2024 13:05:17 -0400 Subject: [PATCH 01/11] wip: switch to type module --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 5ee942ee..7bd471cc 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ "repository": "https://github.com/brown-ccv/honeycomb", "license": "MIT", "private": true, + "type": "module", "main": ".vite/build/main.js", "homepage": ".", "dependencies": { From 8ece254656bf829ddb1c352bb3a891fc7b886f78 Mon Sep 17 00:00:00 2001 From: RobertGemmaJr Date: Fri, 2 Aug 2024 13:06:12 -0400 Subject: [PATCH 02/11] chore: fix pre-commit --- .husky/pre-commit | 3 --- 1 file changed, 3 deletions(-) diff --git a/.husky/pre-commit b/.husky/pre-commit index 36af2198..2312dc58 100644 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,4 +1 @@ -#!/bin/sh -. "$(dirname "$0")/_/husky.sh" - npx lint-staged From 118fda17d8ca3f992239e11b10dc2d22d217f09a Mon Sep 17 00:00:00 2001 From: RobertGemmaJr Date: Fri, 2 Aug 2024 13:09:38 -0400 Subject: [PATCH 03/11] wip: Rename mjs files as js --- .eslintrc.js => .eslintrc.cjs | 1 + .prettierrc.js | 2 +- forge.config.mjs => forge.config.js | 6 +++--- package-lock.json | 16 ++++++++-------- package.json | 4 ++-- vite.base.config.mjs => vite.base.config.js | 0 vite.browser.config.js | 2 +- vite.main.config.mjs => vite.main.config.js | 2 +- ....preload.config.mjs => vite.preload.config.js | 2 +- ...enderer.config.mjs => vite.renderer.config.js | 2 +- 10 files changed, 19 insertions(+), 18 deletions(-) rename .eslintrc.js => .eslintrc.cjs (90%) rename forge.config.mjs => forge.config.js (97%) rename vite.base.config.mjs => vite.base.config.js (100%) rename vite.main.config.mjs => vite.main.config.js (97%) rename vite.preload.config.mjs => vite.preload.config.js (97%) rename vite.renderer.config.mjs => vite.renderer.config.js (94%) diff --git a/.eslintrc.js b/.eslintrc.cjs similarity index 90% rename from .eslintrc.js rename to .eslintrc.cjs index 9e04a097..2ca425fb 100644 --- a/.eslintrc.js +++ b/.eslintrc.cjs @@ -1,3 +1,4 @@ +// TODO: Can I make you a module? Think I need to upgrade eslint module.exports = { root: true, env: { diff --git a/.prettierrc.js b/.prettierrc.js index 17137862..4b5177ba 100644 --- a/.prettierrc.js +++ b/.prettierrc.js @@ -2,7 +2,7 @@ * This file defines specific rules for Prettier. It adjusts their default settings. * We recommend these settings if your lab does not have specific style standards. */ -module.exports = { +export default { printWidth: 100, // Sets the maximum line size to 100 (default is 80) quoteProps: "as-needed", // Add quotes around props as needed trailingComma: "es5", // Add a trailing comma to all es5 modules diff --git a/forge.config.mjs b/forge.config.js similarity index 97% rename from forge.config.mjs rename to forge.config.js index a5b068c5..8d897990 100644 --- a/forge.config.mjs +++ b/forge.config.js @@ -42,11 +42,11 @@ export default { config: { build: [ // Build files that use the main config - { entry: "src/Electron/main.js", config: "vite.main.config.mjs" }, + { entry: "src/Electron/main.js", config: "vite.main.config.js" }, // Build files that use the preload config - { entry: "src/Electron/preload.js", config: "vite.preload.config.mjs" }, + { entry: "src/Electron/preload.js", config: "vite.preload.config.js" }, ], - renderer: [{ name: "main_window", config: "vite.renderer.config.mjs" }], + renderer: [{ name: "main_window", config: "vite.renderer.config.js" }], }, }, { diff --git a/package-lock.json b/package-lock.json index 3b215bd6..3672779e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4782,7 +4782,7 @@ "path-scurry": "^1.11.1" }, "bin": { - "glob": "dist/esm/bin.mjs" + "glob": "dist/esm/bin.js" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -8962,7 +8962,7 @@ "path-scurry": "^1.11.1" }, "bin": { - "glob": "dist/esm/bin.mjs" + "glob": "dist/esm/bin.js" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -9693,7 +9693,7 @@ "path-scurry": "^1.11.1" }, "bin": { - "glob": "dist/esm/bin.mjs" + "glob": "dist/esm/bin.js" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -12862,7 +12862,7 @@ "dev": true, "license": "ISC", "bin": { - "yaml": "bin.mjs" + "yaml": "bin.js" }, "engines": { "node": ">= 14" @@ -15886,7 +15886,7 @@ "path-scurry": "^1.11.1" }, "bin": { - "glob": "dist/esm/bin.mjs" + "glob": "dist/esm/bin.js" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -16588,7 +16588,7 @@ "glob": "^10.3.7" }, "bin": { - "rimraf": "dist/esm/bin.mjs" + "rimraf": "dist/esm/bin.js" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -16619,7 +16619,7 @@ "path-scurry": "^1.11.1" }, "bin": { - "glob": "dist/esm/bin.mjs" + "glob": "dist/esm/bin.js" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -19251,7 +19251,7 @@ "dev": true, "license": "ISC", "bin": { - "yaml": "bin.mjs" + "yaml": "bin.js" }, "engines": { "node": ">= 14" diff --git a/package.json b/package.json index 7bd471cc..7bb62cd9 100644 --- a/package.json +++ b/package.json @@ -90,12 +90,12 @@ "make:windows": "electron-forge make --arch x64 --targets @electron-forge/maker-squirrel", "make:linux": "electron-forge make --arch x64 --targets @electron-forge/maker-deb", "make:mac": "electron-forge make --arch universal --targets @electron-forge/maker-dmg", - "cli": "node cli.mjs", + "cli": "node cli.js", "commit": "git-cz", "format": "prettier --write .", "lint": "eslint .", "prepare": "husky", - "postinstall": "node version.mjs" + "postinstall": "node version.js" }, "browserslist": { "production": [ diff --git a/vite.base.config.mjs b/vite.base.config.js similarity index 100% rename from vite.base.config.mjs rename to vite.base.config.js diff --git a/vite.browser.config.js b/vite.browser.config.js index ae8925f7..22c5a99d 100644 --- a/vite.browser.config.js +++ b/vite.browser.config.js @@ -1,7 +1,7 @@ import react from "@vitejs/plugin-react"; import { defineConfig, mergeConfig } from "vite"; -import baseConfig from "./vite.base.config.mjs"; +import baseConfig from "./vite.base.config.js"; /** Vite configuration used when running in the browser */ export default defineConfig(mergeConfig(baseConfig, defineConfig({ plugins: [react()] }))); diff --git a/vite.main.config.mjs b/vite.main.config.js similarity index 97% rename from vite.main.config.mjs rename to vite.main.config.js index d807aa45..4ca7a9f3 100644 --- a/vite.main.config.mjs +++ b/vite.main.config.js @@ -1,5 +1,5 @@ import { defineConfig, mergeConfig } from "vite"; -import { external, getBuildConfig, getDefineKeys, pluginHotRestart } from "./vite.base.config.mjs"; +import { external, getBuildConfig, getDefineKeys, pluginHotRestart } from "./vite.base.config.js"; /** Vite configuration for the main process */ export default defineConfig((env) => diff --git a/vite.preload.config.mjs b/vite.preload.config.js similarity index 97% rename from vite.preload.config.mjs rename to vite.preload.config.js index 4e1ba61e..a2a668e3 100644 --- a/vite.preload.config.mjs +++ b/vite.preload.config.js @@ -1,5 +1,5 @@ import { defineConfig, mergeConfig } from "vite"; -import { external, getBuildConfig, pluginHotRestart } from "./vite.base.config.mjs"; +import { external, getBuildConfig, pluginHotRestart } from "./vite.base.config.js"; /** Vite configuration for the preload process */ export default defineConfig((env) => diff --git a/vite.renderer.config.mjs b/vite.renderer.config.js similarity index 94% rename from vite.renderer.config.mjs rename to vite.renderer.config.js index b506dc55..e1c37e7f 100644 --- a/vite.renderer.config.mjs +++ b/vite.renderer.config.js @@ -1,7 +1,7 @@ import react from "@vitejs/plugin-react"; import { defineConfig, mergeConfig } from "vite"; -import baseConfig, { getDefineKeys } from "./vite.base.config.mjs"; +import baseConfig, { getDefineKeys } from "./vite.base.config.js"; /** Vite configuration for the render process */ export default defineConfig(({ forgeConfigSelf }) => { From a536919541b3451a4e34c0f1431fa52d857c619e Mon Sep 17 00:00:00 2001 From: RobertGemmaJr Date: Fri, 2 Aug 2024 13:11:23 -0400 Subject: [PATCH 04/11] wip: Rename version file --- src/App/App.jsx | 2 +- version.mjs => version.js | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename version.mjs => version.js (100%) diff --git a/src/App/App.jsx b/src/App/App.jsx index c9d6fb29..8983edaf 100644 --- a/src/App/App.jsx +++ b/src/App/App.jsx @@ -52,7 +52,7 @@ export default function App() { "Task Settings": SETTINGS, }); - // TEMP: Testing to ensure the config is setup correctly + // TEMP: Testing to ensure the config is setup correctly console.log( "ENVIRONMENT", import.meta.env.PACKAGE_NAME, diff --git a/version.mjs b/version.js similarity index 100% rename from version.mjs rename to version.js From be6107694269c297a0a1fd81f9d73079511dbee6 Mon Sep 17 00:00:00 2001 From: RobertGemmaJr Date: Fri, 2 Aug 2024 13:29:29 -0400 Subject: [PATCH 05/11] wip: Handle type: module in the electorn main process --- src/Electron/main.js | 17 +++++++++++++---- vite.main.config.js | 3 ++- vite.preload.config.js | 3 ++- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/Electron/main.js b/src/Electron/main.js index b7629c8d..4092df7c 100644 --- a/src/Electron/main.js +++ b/src/Electron/main.js @@ -16,6 +16,8 @@ import { getPort, sendToPort } from "./lib/serialport"; // TODO @brown-ccv #192: Handle data writing to desktop in a utility process // TODO @brown-ccv #192: Handle video data writing to desktop in a utility process +console.log("MAIN", import.meta.dirname, import.meta.filename); + /************ GLOBALS ***********/ const IS_DEV = import.meta.env.DEV && !app.isPackaged; @@ -36,7 +38,9 @@ process.env["ELECTRON_DISABLE_SECURITY_WARNINGS"] = "true"; /************ APP LIFECYCLE ***********/ // Early exit when installing on Windows: https://www.electronforge.io/config/makers/squirrel.windows#handling-startup-events -if (require("electron-squirrel-startup")) app.quit(); +// if (require("electron-squirrel-startup")) app.quit(); +// TODO: This causes the app to quit right away, even in development +// if (import("electron-squirrel-startup")) app.quit(); // Initialize the logger // TODO @brown-ccv #398: Handle logs in app.getPath('logs') @@ -165,7 +169,8 @@ async function handleGetCommit() { }; } else { // Load the Git Commit SHA and Branch that was created at build-time - return JSON.parse(fs.readFileSync(path.resolve(__dirname, "version.json"))); + // return JSON.parse(fs.readFileSync(path.resolve(__dirname, "version.json"))); + return JSON.parse(fs.readFileSync(path.resolve(import.meta.dirname, "version.json"))); } } catch (e) { log.error("Unable to determine git version"); @@ -297,7 +302,8 @@ function createWindow() { // Create the browser window const mainWindow = new BrowserWindow({ icon: "./favicon.ico", - webPreferences: { preload: path.join(__dirname, "preload.js") }, + // webPreferences: { preload: path.join(__dirname, "preload.js") }, + webPreferences: { preload: path.join(import.meta.dirname, "preload.js") }, width: 1500, height: 900, // TODO @brown-ccv: Settings for preventing the menu bar from ever showing up @@ -311,7 +317,10 @@ function createWindow() { mainWindow.loadURL(MAIN_WINDOW_VITE_DEV_SERVER_URL); } else { // TODO @brown-ccv: JsPsych protections for loading from a file:// - mainWindow.loadFile(path.join(__dirname, `../renderer/${MAIN_WINDOW_VITE_NAME}/index.html`)); + // mainWindow.loadFile(path.join(__dirname, `../renderer/${MAIN_WINDOW_VITE_NAME}/index.html`)); + mainWindow.loadFile( + path.join(import.meta.dirname, `../renderer/${MAIN_WINDOW_VITE_NAME}/index.html`) + ); } log.info("Loaded Renderer process"); } diff --git a/vite.main.config.js b/vite.main.config.js index 4ca7a9f3..c5bd195d 100644 --- a/vite.main.config.js +++ b/vite.main.config.js @@ -8,7 +8,8 @@ export default defineConfig((env) => lib: { entry: env.forgeConfigSelf.entry, fileName: () => "[name].js", - formats: ["cjs"], + // formats: ["cjs"], + formats: ["es"], }, rollupOptions: { external }, }, diff --git a/vite.preload.config.js b/vite.preload.config.js index a2a668e3..58236819 100644 --- a/vite.preload.config.js +++ b/vite.preload.config.js @@ -10,7 +10,8 @@ export default defineConfig((env) => // Preload scripts may contain Web assets, so use the `build.rollupOptions.input` instead `build.lib.entry`. input: env.forgeConfigSelf.entry, output: { - format: "cjs", // TODO: Switch to ESM modules + // format: "cjs", // TODO: Switch to ESM modules + format: "es", // It should not be split chunks. inlineDynamicImports: true, entryFileNames: "[name].js", From f84678f2d4cdfafdc32cee300483d6b08bf57c3f Mon Sep 17 00:00:00 2001 From: RobertGemmaJr Date: Mon, 5 Aug 2024 10:05:58 -0400 Subject: [PATCH 06/11] chore: format --- env/.env.home | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/env/.env.home b/env/.env.home index 8b137891..0290a58c 100644 --- a/env/.env.home +++ b/env/.env.home @@ -1 +1 @@ - +VITE_CJS_TRACE=true From d8f7bea8df20072abea425b650a56a6281096ae0 Mon Sep 17 00:00:00 2001 From: RobertGemmaJr Date: Mon, 5 Aug 2024 10:14:35 -0400 Subject: [PATCH 07/11] chore: lock --- package-lock.json | 329 ++++++++++++++++++++++------------------------ 1 file changed, 158 insertions(+), 171 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3672779e..5250680f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2795,15 +2795,15 @@ "license": "BSD-3-Clause" }, "node_modules/@inquirer/checkbox": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-2.4.5.tgz", - "integrity": "sha512-+YlCyS6JBWeZugIvReh/YL5HJcowlklz5RykQuYKQfgWQeCJh5Us0nWcRddvIVkjmYa0I/8bwWioSLu850J8sA==", + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-2.4.6.tgz", + "integrity": "sha512-PvTeflvpyZMknHBVh9g9GPaffO/zyHcLk2i2HQN7q79SN1e0Tq2orAVzLAaZR1E5YDAdOB94znJurxzY/0HbFg==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^9.0.8", + "@inquirer/core": "^9.0.9", "@inquirer/figures": "^1.0.5", - "@inquirer/type": "^1.5.1", + "@inquirer/type": "^1.5.2", "ansi-escapes": "^4.3.2", "yoctocolors-cjs": "^2.1.2" }, @@ -2812,30 +2812,30 @@ } }, "node_modules/@inquirer/confirm": { - "version": "3.1.20", - "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-3.1.20.tgz", - "integrity": "sha512-UvG5Plh0MfCqUvZB8RKzBBEWB/EeMzO59Awy/Jg4NgeSjIPqhPaQFnnmxiyWUTwZh4uENB7wCklEFUwckioXWg==", + "version": "3.1.21", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-3.1.21.tgz", + "integrity": "sha512-v4O/jX5b6nm7Kxf9Gn/pjIz8RzGp1e8paFTl2GuMGL2OIWcaR9fx1HhkB8CnHZrGo3J7scLwSsgTK1fG8olxZA==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^9.0.8", - "@inquirer/type": "^1.5.1" + "@inquirer/core": "^9.0.9", + "@inquirer/type": "^1.5.2" }, "engines": { "node": ">=18" } }, "node_modules/@inquirer/core": { - "version": "9.0.8", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-9.0.8.tgz", - "integrity": "sha512-ttnI/BGlP9SxjbQnv1nssv7dPAwiR82KmjJZx2SxSZyi2mGbaEvh4jg0I4yU/4mVQf7QvCVGGr/hGuJFEYhwnw==", + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-9.0.9.tgz", + "integrity": "sha512-mvQmOz1hf5dtvY+bpVK22YiwLxn5arEhykSt1IWT5GS7ojgqKLSE9P8WXI4fPimtC0ggmnf0bVbKtERlIZkV0g==", "dev": true, "license": "MIT", "dependencies": { "@inquirer/figures": "^1.0.5", - "@inquirer/type": "^1.5.1", + "@inquirer/type": "^1.5.2", "@types/mute-stream": "^0.0.4", - "@types/node": "^22.0.0", + "@types/node": "^22.1.0", "@types/wrap-ansi": "^3.0.0", "ansi-escapes": "^4.3.2", "cli-spinners": "^2.9.2", @@ -2851,14 +2851,14 @@ } }, "node_modules/@inquirer/editor": { - "version": "2.1.20", - "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-2.1.20.tgz", - "integrity": "sha512-vtIN9NwXldX8SWbPt5biJhnTpHJCzF5nSymcv4hcOxiCrOpXmgOvFYGpAY729KODF+5e1OLqPbJ8ApiwPu/peQ==", + "version": "2.1.21", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-2.1.21.tgz", + "integrity": "sha512-p5JYfAmEA6nqqDVCX0Cuu6EACA6/qejVBVataMew29mld3mtBWXy1g29Co86UMDQIiHA4HpOkH0hQGHlOvbGSw==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^9.0.8", - "@inquirer/type": "^1.5.1", + "@inquirer/core": "^9.0.9", + "@inquirer/type": "^1.5.2", "external-editor": "^3.1.0" }, "engines": { @@ -2866,14 +2866,14 @@ } }, "node_modules/@inquirer/expand": { - "version": "2.1.20", - "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-2.1.20.tgz", - "integrity": "sha512-ruUTCUGKhe6TvDM3/gKjX9v7D5cWbiuawFE6aF/cFmNO79R/zMjrFFVoueDM8FRw8yXqnREb0jFkYF1LUxnDNA==", + "version": "2.1.21", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-2.1.21.tgz", + "integrity": "sha512-SxoD3mM2UwS/ovRixXic9Aav84K9+zDXD54stIGxbNZ7AryJHtudQteXw73kFTlsZCH9AhHC1TmMyakpRiAhGw==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^9.0.8", - "@inquirer/type": "^1.5.1", + "@inquirer/core": "^9.0.9", + "@inquirer/type": "^1.5.2", "yoctocolors-cjs": "^2.1.2" }, "engines": { @@ -2891,42 +2891,42 @@ } }, "node_modules/@inquirer/input": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-2.2.7.tgz", - "integrity": "sha512-QFk31Gq4Wr+Ve9ilMiFGGrSjGZQBilV0cgTN1zubD98Bx65fsNrh8++Biy/9mjNKRaqHFbZBw5baAcQvOmW8OQ==", + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-2.2.8.tgz", + "integrity": "sha512-DoLuc+DIJVZiDIn01hUQrxpPHF7MuE1bGfhxVfPWQDVFIqCoFQEmiUqMLx7zv4/pFArykY9j+i3uLUIOWqk+xg==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^9.0.8", - "@inquirer/type": "^1.5.1" + "@inquirer/core": "^9.0.9", + "@inquirer/type": "^1.5.2" }, "engines": { "node": ">=18" } }, "node_modules/@inquirer/number": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-1.0.8.tgz", - "integrity": "sha512-GamytM0a3fLh8xjgWbGb/DmDA1SmW6sc6ZyfiiWL1my2NAkV6mrTEKMOA4LSK2gB43uf8vcOS7Hp/LeVjIqLwg==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-1.0.9.tgz", + "integrity": "sha512-F5JqBCPnJTlLlZavRL15jGAtCXZGQiT64IMe2iOtcVIHQYYWecs5FpyqfkIDqvuOCyd4XgWPVmjeW+FssGEwFw==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^9.0.8", - "@inquirer/type": "^1.5.1" + "@inquirer/core": "^9.0.9", + "@inquirer/type": "^1.5.2" }, "engines": { "node": ">=18" } }, "node_modules/@inquirer/password": { - "version": "2.1.20", - "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-2.1.20.tgz", - "integrity": "sha512-il2TG7xDlfiLE3cnOCxfDfrwvsiSmXjVd26hvf4tdzHvdisgLiEjbN6mi51/TnlSQ+2Qc69+9jIq3ws93nhS2w==", + "version": "2.1.21", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-2.1.21.tgz", + "integrity": "sha512-kaz2jtA4xp3Y4J+weEs/gTppEBRjY82pIAWz1ycU23f+Blrv8enK2d58H4sv2dvzHtsOAcRE+rF2OXkdseQuTQ==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^9.0.8", - "@inquirer/type": "^1.5.1", + "@inquirer/core": "^9.0.9", + "@inquirer/type": "^1.5.2", "ansi-escapes": "^4.3.2" }, "engines": { @@ -2934,36 +2934,36 @@ } }, "node_modules/@inquirer/prompts": { - "version": "5.3.6", - "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-5.3.6.tgz", - "integrity": "sha512-go5DXxasCIZvztWapYPUSFXg7GceDSQPM1ew3MahFF7degA5kfIVe5kB4KAlARXt83fApyEczvE1H4bh0HLObA==", + "version": "5.3.7", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-5.3.7.tgz", + "integrity": "sha512-rGXU6k1Vcf1Jn3tcMTKfxCNTkWhwS9moOCTGerWG1fLtjv94/ug+ZLuqp5tq5MBjSuxFIaFfNFSD8mQn24OnIw==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/checkbox": "^2.4.5", - "@inquirer/confirm": "^3.1.20", - "@inquirer/editor": "^2.1.20", - "@inquirer/expand": "^2.1.20", - "@inquirer/input": "^2.2.7", - "@inquirer/number": "^1.0.8", - "@inquirer/password": "^2.1.20", - "@inquirer/rawlist": "^2.2.2", - "@inquirer/search": "^1.0.5", - "@inquirer/select": "^2.4.5" + "@inquirer/checkbox": "^2.4.6", + "@inquirer/confirm": "^3.1.21", + "@inquirer/editor": "^2.1.21", + "@inquirer/expand": "^2.1.21", + "@inquirer/input": "^2.2.8", + "@inquirer/number": "^1.0.9", + "@inquirer/password": "^2.1.21", + "@inquirer/rawlist": "^2.2.3", + "@inquirer/search": "^1.0.6", + "@inquirer/select": "^2.4.6" }, "engines": { "node": ">=18" } }, "node_modules/@inquirer/rawlist": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-2.2.2.tgz", - "integrity": "sha512-U4OsvqjdLB6nmf5ZDshPYMq0b+qd6JWxTrvRTiMfwUY6cFxkR9YWKarLXFhndf7tawQ8f3DwU9P9wryDc2ESSA==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-2.2.3.tgz", + "integrity": "sha512-qEqDLgCJ5jIJVAo1BpJBmqJunX6HDlhbQFMsufMH2/v3T4IeNCXTGgDG0xu7qwaPfw92c1VMP64BSQJYYvKoPA==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^9.0.8", - "@inquirer/type": "^1.5.1", + "@inquirer/core": "^9.0.9", + "@inquirer/type": "^1.5.2", "yoctocolors-cjs": "^2.1.2" }, "engines": { @@ -2971,15 +2971,15 @@ } }, "node_modules/@inquirer/search": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-1.0.5.tgz", - "integrity": "sha512-25nyVAbO0NwFZTXP/cW++W1QGHlHY+hmsehMM1sPKvp4wYcxMQcm6xNCor0bU2Pv/L33IkPV/NV9SuJyFC85EQ==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-1.0.6.tgz", + "integrity": "sha512-dZ2zOsIHPo0NgUVfvYuC6aMqAq3mcGn/XPrMXjlQhoNtsN8/pR5BmavqSmlgQo9ZY25VXF3qohWX/JzBYxHypA==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^9.0.8", + "@inquirer/core": "^9.0.9", "@inquirer/figures": "^1.0.5", - "@inquirer/type": "^1.5.1", + "@inquirer/type": "^1.5.2", "yoctocolors-cjs": "^2.1.2" }, "engines": { @@ -2987,15 +2987,15 @@ } }, "node_modules/@inquirer/select": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-2.4.5.tgz", - "integrity": "sha512-DbCthH3l7vrrK+Ewll3bgzxC3dzMle8xkWYta4if31p9NOmFNhZKhSfdYMjaOtGFBCUEwo4D5LMgN6sPKgUWIw==", + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-2.4.6.tgz", + "integrity": "sha512-fjcZQGyIviUBQ0Msoyf92vCmmN7Xv99vzPoybhLGBCM4cCz+l/U3p2++F7/xDJwvH70YHcvWrk8aN7STmrHMsQ==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^9.0.8", + "@inquirer/core": "^9.0.9", "@inquirer/figures": "^1.0.5", - "@inquirer/type": "^1.5.1", + "@inquirer/type": "^1.5.2", "ansi-escapes": "^4.3.2", "yoctocolors-cjs": "^2.1.2" }, @@ -3004,9 +3004,9 @@ } }, "node_modules/@inquirer/type": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.5.1.tgz", - "integrity": "sha512-m3YgGQlKNS0BM+8AFiJkCsTqHEFCWn6s/Rqye3mYwvqY6LdfUv12eSwbsgNzrYyrLXiy7IrrjDLPysaSBwEfhw==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.5.2.tgz", + "integrity": "sha512-w9qFkumYDCNyDZmNQjf/n6qQuvQ4dMC3BJesY4oF+yr0CxR5vxujflAVeIcS6U336uzi9GM0kAfZlLrZ9UTkpA==", "dev": true, "license": "MIT", "dependencies": { @@ -3497,9 +3497,9 @@ "license": "ISC" }, "node_modules/@pnpm/npm-conf": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.2.2.tgz", - "integrity": "sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.3.0.tgz", + "integrity": "sha512-DqrO+oXGR7HCuicNy6quk6ALJSDDPKI7RZz1bP5im8mSL8J2e+9w26LdkjuAfpAjOutYUJVbnXnx4IbTQeIgfw==", "dev": true, "license": "MIT", "dependencies": { @@ -3576,9 +3576,9 @@ "license": "BSD-3-Clause" }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.19.2.tgz", - "integrity": "sha512-OHflWINKtoCFSpm/WmuQaWW4jeX+3Qt3XQDepkkiFTsoxFc5BpF3Z5aDxFZgBqRjO6ATP5+b1iilp4kGIZVWlA==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.20.0.tgz", + "integrity": "sha512-TSpWzflCc4VGAUJZlPpgAJE1+V60MePDQnBd7PPkpuEmOy8i87aL6tinFGKBFKuEDikYpig72QzdT3QPYIi+oA==", "cpu": [ "arm" ], @@ -3590,9 +3590,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.19.2.tgz", - "integrity": "sha512-k0OC/b14rNzMLDOE6QMBCjDRm3fQOHAL8Ldc9bxEWvMo4Ty9RY6rWmGetNTWhPo+/+FNd1lsQYRd0/1OSix36A==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.20.0.tgz", + "integrity": "sha512-u00Ro/nok7oGzVuh/FMYfNoGqxU5CPWz1mxV85S2w9LxHR8OoMQBuSk+3BKVIDYgkpeOET5yXkx90OYFc+ytpQ==", "cpu": [ "arm64" ], @@ -3604,9 +3604,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.19.2.tgz", - "integrity": "sha512-IIARRgWCNWMTeQH+kr/gFTHJccKzwEaI0YSvtqkEBPj7AshElFq89TyreKNFAGh5frLfDCbodnq+Ye3dqGKPBw==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.20.0.tgz", + "integrity": "sha512-uFVfvzvsdGtlSLuL0ZlvPJvl6ZmrH4CBwLGEFPe7hUmf7htGAN+aXo43R/V6LATyxlKVC/m6UsLb7jbG+LG39Q==", "cpu": [ "arm64" ], @@ -3618,9 +3618,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.19.2.tgz", - "integrity": "sha512-52udDMFDv54BTAdnw+KXNF45QCvcJOcYGl3vQkp4vARyrcdI/cXH8VXTEv/8QWfd6Fru8QQuw1b2uNersXOL0g==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.20.0.tgz", + "integrity": "sha512-xbrMDdlev53vNXexEa6l0LffojxhqDTBeL+VUxuuIXys4x6xyvbKq5XqTXBCEUA8ty8iEJblHvFaWRJTk/icAQ==", "cpu": [ "x64" ], @@ -3632,9 +3632,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.19.2.tgz", - "integrity": "sha512-r+SI2t8srMPYZeoa1w0o/AfoVt9akI1ihgazGYPQGRilVAkuzMGiTtexNZkrPkQsyFrvqq/ni8f3zOnHw4hUbA==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.20.0.tgz", + "integrity": "sha512-jMYvxZwGmoHFBTbr12Xc6wOdc2xA5tF5F2q6t7Rcfab68TT0n+r7dgawD4qhPEvasDsVpQi+MgDzj2faOLsZjA==", "cpu": [ "arm" ], @@ -3646,9 +3646,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.19.2.tgz", - "integrity": "sha512-+tYiL4QVjtI3KliKBGtUU7yhw0GMcJJuB9mLTCEauHEsqfk49gtUBXGtGP3h1LW8MbaTY6rSFIQV1XOBps1gBA==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.20.0.tgz", + "integrity": "sha512-1asSTl4HKuIHIB1GcdFHNNZhxAYEdqML/MW4QmPS4G0ivbEcBr1JKlFLKsIRqjSwOBkdItn3/ZDlyvZ/N6KPlw==", "cpu": [ "arm" ], @@ -3660,9 +3660,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.19.2.tgz", - "integrity": "sha512-OR5DcvZiYN75mXDNQQxlQPTv4D+uNCUsmSCSY2FolLf9W5I4DSoJyg7z9Ea3TjKfhPSGgMJiey1aWvlWuBzMtg==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.20.0.tgz", + "integrity": "sha512-COBb8Bkx56KldOYJfMf6wKeYJrtJ9vEgBRAOkfw6Ens0tnmzPqvlpjZiLgkhg6cA3DGzCmLmmd319pmHvKWWlQ==", "cpu": [ "arm64" ], @@ -3674,9 +3674,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.19.2.tgz", - "integrity": "sha512-Hw3jSfWdUSauEYFBSFIte6I8m6jOj+3vifLg8EU3lreWulAUpch4JBjDMtlKosrBzkr0kwKgL9iCfjA8L3geoA==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.20.0.tgz", + "integrity": "sha512-+it+mBSyMslVQa8wSPvBx53fYuZK/oLTu5RJoXogjk6x7Q7sz1GNRsXWjn6SwyJm8E/oMjNVwPhmNdIjwP135Q==", "cpu": [ "arm64" ], @@ -3688,9 +3688,9 @@ ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.19.2.tgz", - "integrity": "sha512-rhjvoPBhBwVnJRq/+hi2Q3EMiVF538/o9dBuj9TVLclo9DuONqt5xfWSaE6MYiFKpo/lFPJ/iSI72rYWw5Hc7w==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.20.0.tgz", + "integrity": "sha512-yAMvqhPfGKsAxHN8I4+jE0CpLWD8cv4z7CK7BMmhjDuz606Q2tFKkWRY8bHR9JQXYcoLfopo5TTqzxgPUjUMfw==", "cpu": [ "ppc64" ], @@ -3702,9 +3702,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.19.2.tgz", - "integrity": "sha512-EAz6vjPwHHs2qOCnpQkw4xs14XJq84I81sDRGPEjKPFVPBw7fwvtwhVjcZR6SLydCv8zNK8YGFblKWd/vRmP8g==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.20.0.tgz", + "integrity": "sha512-qmuxFpfmi/2SUkAw95TtNq/w/I7Gpjurx609OOOV7U4vhvUhBcftcmXwl3rqAek+ADBwSjIC4IVNLiszoj3dPA==", "cpu": [ "riscv64" ], @@ -3716,9 +3716,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.19.2.tgz", - "integrity": "sha512-IJSUX1xb8k/zN9j2I7B5Re6B0NNJDJ1+soezjNojhT8DEVeDNptq2jgycCOpRhyGj0+xBn7Cq+PK7Q+nd2hxLA==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.20.0.tgz", + "integrity": "sha512-I0BtGXddHSHjV1mqTNkgUZLnS3WtsqebAXv11D5BZE/gfw5KoyXSAXVqyJximQXNvNzUo4GKlCK/dIwXlz+jlg==", "cpu": [ "s390x" ], @@ -3730,9 +3730,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.19.2.tgz", - "integrity": "sha512-OgaToJ8jSxTpgGkZSkwKE+JQGihdcaqnyHEFOSAU45utQ+yLruE1dkonB2SDI8t375wOKgNn8pQvaWY9kPzxDQ==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.20.0.tgz", + "integrity": "sha512-y+eoL2I3iphUg9tN9GB6ku1FA8kOfmF4oUEWhztDJ4KXJy1agk/9+pejOuZkNFhRwHAOxMsBPLbXPd6mJiCwew==", "cpu": [ "x64" ], @@ -3744,9 +3744,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.19.2.tgz", - "integrity": "sha512-5V3mPpWkB066XZZBgSd1lwozBk7tmOkKtquyCJ6T4LN3mzKENXyBwWNQn8d0Ci81hvlBw5RoFgleVpL6aScLYg==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.20.0.tgz", + "integrity": "sha512-hM3nhW40kBNYUkZb/r9k2FKK+/MnKglX7UYd4ZUy5DJs8/sMsIbqWK2piZtVGE3kcXVNj3B2IrUYROJMMCikNg==", "cpu": [ "x64" ], @@ -3758,9 +3758,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.19.2.tgz", - "integrity": "sha512-ayVstadfLeeXI9zUPiKRVT8qF55hm7hKa+0N1V6Vj+OTNFfKSoUxyZvzVvgtBxqSb5URQ8sK6fhwxr9/MLmxdA==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.20.0.tgz", + "integrity": "sha512-psegMvP+Ik/Bg7QRJbv8w8PAytPA7Uo8fpFjXyCRHWm6Nt42L+JtoqH8eDQ5hRP7/XW2UiIriy1Z46jf0Oa1kA==", "cpu": [ "arm64" ], @@ -3772,9 +3772,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.19.2.tgz", - "integrity": "sha512-Mda7iG4fOLHNsPqjWSjANvNZYoW034yxgrndof0DwCy0D3FvTjeNo+HGE6oGWgvcLZNLlcp0hLEFcRs+UGsMLg==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.20.0.tgz", + "integrity": "sha512-GabekH3w4lgAJpVxkk7hUzUf2hICSQO0a/BLFA11/RMxQT92MabKAqyubzDZmMOC/hcJNlc+rrypzNzYl4Dx7A==", "cpu": [ "ia32" ], @@ -3786,9 +3786,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.19.2.tgz", - "integrity": "sha512-DPi0ubYhSow/00YqmG1jWm3qt1F8aXziHc/UNy8bo9cpCacqhuWu+iSq/fp2SyEQK7iYTZ60fBU9cat3MXTjIQ==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.20.0.tgz", + "integrity": "sha512-aJ1EJSuTdGnM6qbVC4B5DSmozPTqIag9fSzXRNNo+humQLG89XpPgdt16Ia56ORD7s+H8Pmyx44uczDQ0yDzpg==", "cpu": [ "x64" ], @@ -4782,7 +4782,7 @@ "path-scurry": "^1.11.1" }, "bin": { - "glob": "dist/esm/bin.js" + "glob": "dist/esm/bin.mjs" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -5821,9 +5821,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001646", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001646.tgz", - "integrity": "sha512-dRg00gudiBDDTmUhClSdv3hqRfpbOnU28IpI1T6PBTLWa+kOj0681C8uML3PifYfREuBrVjDGhL3adYpBT6spw==", + "version": "1.0.30001649", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001649.tgz", + "integrity": "sha512-fJegqZZ0ZX8HOWr6rcafGr72+xcgJKI9oWfDW5DrD7ExUtgZC7a7R7ZYmZqplh7XDocFdGeIFn7roAxhOeYrPQ==", "dev": true, "funding": [ { @@ -8962,7 +8962,7 @@ "path-scurry": "^1.11.1" }, "bin": { - "glob": "dist/esm/bin.js" + "glob": "dist/esm/bin.mjs" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -9693,7 +9693,7 @@ "path-scurry": "^1.11.1" }, "bin": { - "glob": "dist/esm/bin.js" + "glob": "dist/esm/bin.mjs" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -12459,22 +12459,22 @@ "optional": true }, "node_modules/lint-staged": { - "version": "15.2.7", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.2.7.tgz", - "integrity": "sha512-+FdVbbCZ+yoh7E/RosSdqKJyUM2OEjTciH0TFNkawKgvFp1zbGlEC39RADg+xKBG1R4mhoH2j85myBQZ5wR+lw==", + "version": "15.2.8", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.2.8.tgz", + "integrity": "sha512-PUWFf2zQzsd9EFU+kM1d7UP+AZDbKFKuj+9JNVTBkhUFhbg4MAt6WfyMMwBfM4lYqd4D2Jwac5iuTu9rVj4zCQ==", "dev": true, "license": "MIT", "dependencies": { "chalk": "~5.3.0", "commander": "~12.1.0", - "debug": "~4.3.4", + "debug": "~4.3.6", "execa": "~8.0.1", - "lilconfig": "~3.1.1", - "listr2": "~8.2.1", + "lilconfig": "~3.1.2", + "listr2": "~8.2.4", "micromatch": "~4.0.7", "pidtree": "~0.6.0", "string-argv": "~0.3.2", - "yaml": "~2.4.2" + "yaml": "~2.5.0" }, "bin": { "lint-staged": "bin/lint-staged.js" @@ -12855,19 +12855,6 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/lint-staged/node_modules/yaml": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.5.tgz", - "integrity": "sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==", - "dev": true, - "license": "ISC", - "bin": { - "yaml": "bin.js" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/listr2": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/listr2/-/listr2-7.0.2.tgz", @@ -15886,7 +15873,7 @@ "path-scurry": "^1.11.1" }, "bin": { - "glob": "dist/esm/bin.js" + "glob": "dist/esm/bin.mjs" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -16588,7 +16575,7 @@ "glob": "^10.3.7" }, "bin": { - "rimraf": "dist/esm/bin.js" + "rimraf": "dist/esm/bin.mjs" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -16619,7 +16606,7 @@ "path-scurry": "^1.11.1" }, "bin": { - "glob": "dist/esm/bin.js" + "glob": "dist/esm/bin.mjs" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -16670,9 +16657,9 @@ } }, "node_modules/rollup": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.19.2.tgz", - "integrity": "sha512-6/jgnN1svF9PjNYJ4ya3l+cqutg49vOZ4rVgsDKxdl+5gpGPnByFXWGyfH9YGx9i3nfBwSu1Iyu6vGwFFA0BdQ==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.20.0.tgz", + "integrity": "sha512-6rbWBChcnSGzIlXeIdNIZTopKYad8ZG8ajhl78lGRLsI2rX8IkaotQhVas2Ma+GPxJav19wrSzvRvuiv0YKzWw==", "dev": true, "license": "MIT", "dependencies": { @@ -16686,22 +16673,22 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.19.2", - "@rollup/rollup-android-arm64": "4.19.2", - "@rollup/rollup-darwin-arm64": "4.19.2", - "@rollup/rollup-darwin-x64": "4.19.2", - "@rollup/rollup-linux-arm-gnueabihf": "4.19.2", - "@rollup/rollup-linux-arm-musleabihf": "4.19.2", - "@rollup/rollup-linux-arm64-gnu": "4.19.2", - "@rollup/rollup-linux-arm64-musl": "4.19.2", - "@rollup/rollup-linux-powerpc64le-gnu": "4.19.2", - "@rollup/rollup-linux-riscv64-gnu": "4.19.2", - "@rollup/rollup-linux-s390x-gnu": "4.19.2", - "@rollup/rollup-linux-x64-gnu": "4.19.2", - "@rollup/rollup-linux-x64-musl": "4.19.2", - "@rollup/rollup-win32-arm64-msvc": "4.19.2", - "@rollup/rollup-win32-ia32-msvc": "4.19.2", - "@rollup/rollup-win32-x64-msvc": "4.19.2", + "@rollup/rollup-android-arm-eabi": "4.20.0", + "@rollup/rollup-android-arm64": "4.20.0", + "@rollup/rollup-darwin-arm64": "4.20.0", + "@rollup/rollup-darwin-x64": "4.20.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.20.0", + "@rollup/rollup-linux-arm-musleabihf": "4.20.0", + "@rollup/rollup-linux-arm64-gnu": "4.20.0", + "@rollup/rollup-linux-arm64-musl": "4.20.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.20.0", + "@rollup/rollup-linux-riscv64-gnu": "4.20.0", + "@rollup/rollup-linux-s390x-gnu": "4.20.0", + "@rollup/rollup-linux-x64-gnu": "4.20.0", + "@rollup/rollup-linux-x64-musl": "4.20.0", + "@rollup/rollup-win32-arm64-msvc": "4.20.0", + "@rollup/rollup-win32-ia32-msvc": "4.20.0", + "@rollup/rollup-win32-x64-msvc": "4.20.0", "fsevents": "~2.3.2" } }, @@ -19251,7 +19238,7 @@ "dev": true, "license": "ISC", "bin": { - "yaml": "bin.js" + "yaml": "bin.mjs" }, "engines": { "node": ">= 14" From 28c63bef8b0e90b4698cd3203b4baa22b30c5827 Mon Sep 17 00:00:00 2001 From: RobertGemmaJr Date: Mon, 5 Aug 2024 10:57:17 -0400 Subject: [PATCH 08/11] chore: revert change --- env/.env.home | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/env/.env.home b/env/.env.home index 0290a58c..8b137891 100644 --- a/env/.env.home +++ b/env/.env.home @@ -1 +1 @@ -VITE_CJS_TRACE=true + From 5f544576ff2badd89d9c19d116e291ec770d603e Mon Sep 17 00:00:00 2001 From: RobertGemmaJr Date: Mon, 5 Aug 2024 10:58:20 -0400 Subject: [PATCH 09/11] chore: comments --- src/App/App.jsx | 8 -------- vite.main.config.js | 1 - vite.preload.config.js | 8 +++++--- 3 files changed, 5 insertions(+), 12 deletions(-) diff --git a/src/App/App.jsx b/src/App/App.jsx index 08896b73..514ab420 100644 --- a/src/App/App.jsx +++ b/src/App/App.jsx @@ -52,14 +52,6 @@ export default function App() { "Task Settings": SETTINGS, }); - // TEMP: Testing to ensure the config is setup correctly - console.log( - "ENVIRONMENT", - import.meta.env.PACKAGE_NAME, - import.meta.env.PACKAGE_VERSION, - import.meta.env - ); - // If on desktop if (CONFIG.USE_ELECTRON) { // TODO @brown-ccv #443 : Pass NODE_ENV here as well diff --git a/vite.main.config.js b/vite.main.config.js index c5bd195d..4ee74fe2 100644 --- a/vite.main.config.js +++ b/vite.main.config.js @@ -8,7 +8,6 @@ export default defineConfig((env) => lib: { entry: env.forgeConfigSelf.entry, fileName: () => "[name].js", - // formats: ["cjs"], formats: ["es"], }, rollupOptions: { external }, diff --git a/vite.preload.config.js b/vite.preload.config.js index 58236819..773b0005 100644 --- a/vite.preload.config.js +++ b/vite.preload.config.js @@ -10,12 +10,14 @@ export default defineConfig((env) => // Preload scripts may contain Web assets, so use the `build.rollupOptions.input` instead `build.lib.entry`. input: env.forgeConfigSelf.entry, output: { - // format: "cjs", // TODO: Switch to ESM modules format: "es", // It should not be split chunks. inlineDynamicImports: true, - entryFileNames: "[name].js", - chunkFileNames: "[name].js", + // NOTE: The preload script must be built with the .mjs extensions: https://www.electronjs.org/docs/latest/tutorial/esm#esm-preload-scripts-must-have-the-mjs-extension + // entryFileNames: "[name].js", + // chunkFileNames: "[name].js", + entryFileNames: "[name].mjs", + chunkFileNames: "[name].mjs", assetFileNames: "[name].[ext]", }, }, From 1956606e6bffc2072e80eaf0c2126806919e0528 Mon Sep 17 00:00:00 2001 From: RobertGemmaJr Date: Mon, 5 Aug 2024 11:04:10 -0400 Subject: [PATCH 10/11] wip: Handle type:module building --- src/Electron/main.js | 11 ++++++++--- src/Electron/preload.js | 5 +++++ src/config/env.js | 2 ++ 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/Electron/main.js b/src/Electron/main.js index 4092df7c..faa70f49 100644 --- a/src/Electron/main.js +++ b/src/Electron/main.js @@ -16,8 +16,6 @@ import { getPort, sendToPort } from "./lib/serialport"; // TODO @brown-ccv #192: Handle data writing to desktop in a utility process // TODO @brown-ccv #192: Handle video data writing to desktop in a utility process -console.log("MAIN", import.meta.dirname, import.meta.filename); - /************ GLOBALS ***********/ const IS_DEV = import.meta.env.DEV && !app.isPackaged; @@ -303,7 +301,14 @@ function createWindow() { const mainWindow = new BrowserWindow({ icon: "./favicon.ico", // webPreferences: { preload: path.join(__dirname, "preload.js") }, - webPreferences: { preload: path.join(import.meta.dirname, "preload.js") }, + webPreferences: { + // preload: path.join(import.meta.dirname, "preload.js"), + preload: path.join(import.meta.dirname, "preload.mjs"), + // TEST + sandbox: false, + contextIsolation: true, + // enableRemoteModule: false, + }, width: 1500, height: 900, // TODO @brown-ccv: Settings for preventing the menu bar from ever showing up diff --git a/src/Electron/preload.js b/src/Electron/preload.js index c0e9c37e..c3e53284 100644 --- a/src/Electron/preload.js +++ b/src/Electron/preload.js @@ -1,7 +1,12 @@ import { contextBridge, ipcRenderer } from "electron"; +import log from "electron-log"; +log.info("PRELOAD"); /** Load bridges between the main and renderer processes when the preload process is first loaded */ process.once("loaded", () => { + // TODO: The "loaded" state is never executed for some reason + console.log("PRELOAD LOADED"); + log.info("PRELOAD LOADED"); contextBridge.exposeInMainWorld("electronAPI", { setConfig: (config) => ipcRenderer.send("setConfig", config), setTrigger: (triggerCodes) => ipcRenderer.send("setTrigger", triggerCodes), diff --git a/src/config/env.js b/src/config/env.js index 45f31a0a..2c8953c4 100644 --- a/src/config/env.js +++ b/src/config/env.js @@ -18,4 +18,6 @@ const config = { USE_EEG, USE_CAMERA, }; + +console.log("CONFIG", window.electronAPI, config); export default config; From 19e13ba254ef922ab8df03e73c938fe913f0bea0 Mon Sep 17 00:00:00 2001 From: RobertGemmaJr Date: Mon, 5 Aug 2024 12:12:20 -0400 Subject: [PATCH 11/11] chore: TODO --- src/Electron/preload.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Electron/preload.js b/src/Electron/preload.js index c3e53284..006e2e3e 100644 --- a/src/Electron/preload.js +++ b/src/Electron/preload.js @@ -4,8 +4,7 @@ import log from "electron-log"; log.info("PRELOAD"); /** Load bridges between the main and renderer processes when the preload process is first loaded */ process.once("loaded", () => { - // TODO: The "loaded" state is never executed for some reason - console.log("PRELOAD LOADED"); + // TODO: "module" stuff is working but this "loaded" state is never finished log.info("PRELOAD LOADED"); contextBridge.exposeInMainWorld("electronAPI", { setConfig: (config) => ipcRenderer.send("setConfig", config),