From 8a5db9e11413d3c76a8dffc7e5c448e216c1fe31 Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Tue, 25 Nov 2025 21:41:13 -0800 Subject: [PATCH 01/62] chore: upgrade major versions to Node 22 --- .github/workflows/ci.yml | 7 ++----- .nvmrc | 2 +- package.json | 2 +- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7cf9bd20a2..2396c15894 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,9 +10,6 @@ on: merge_group: types: [checks_requested] -env: - NODE_VERSION: 20.17.0 - jobs: lint-and-build: runs-on: ubuntu-22.04 @@ -23,7 +20,7 @@ jobs: - name: Setup Node.js uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: - node-version: ${{ env.NODE_VERSION }} + node-version-file: .nvmrc # cache: yarn # TODO(Forge 8): remove this once we can upgrade to `@electron/rebuild` v4 @@ -158,7 +155,7 @@ jobs: - name: Setup Node.js uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: - node-version: ${{ env.NODE_VERSION }} + node-version-file: .nvmrc # cache: yarn # TODO(Forge 8): remove this once we can upgrade to `@electron/rebuild` v4 diff --git a/.nvmrc b/.nvmrc index 5bd6811705..d135defb28 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -20.19.0 +22.12.0 \ No newline at end of file diff --git a/package.json b/package.json index 7df00b1d13..e566561308 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "private": true, "license": "MIT", "engines": { - "node": ">= 16.4.0" + "node": ">= 22.12.0" }, "scripts": { "clean": "node -e \"fs.rmSync('dist', { recursive: true, force: true })\" && lerna exec -- \"node -e \\\"fs.rmSync('dist', { recursive: true, force: true })\\\" && node -e \\\"fs.rmSync('tsconfig.tsbuildinfo', { recursive: true, force: true })\\\"\"", From aefab830bf6d8ba0420844809df3332373c7f4ab Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Tue, 25 Nov 2025 22:28:19 -0800 Subject: [PATCH 02/62] checkpoint --- .eslintrc.json | 54 +- package.json | 16 +- packages/api/cli/package.json | 1 + packages/api/core/package.json | 1 + .../external/create-electron-app/package.json | 1 + packages/maker/appx/package.json | 1 + packages/maker/appx/src/MakerAppX.ts | 2 +- packages/maker/base/package.json | 1 + packages/maker/deb/package.json | 1 + packages/maker/dmg/package.json | 1 + packages/maker/flatpak/package.json | 1 + packages/maker/msix/package.json | 1 + packages/maker/pkg/package.json | 1 + packages/maker/rpm/package.json | 1 + packages/maker/snap/package.json | 1 + packages/maker/squirrel/package.json | 1 + packages/maker/wix/package.json | 1 + packages/maker/zip/package.json | 1 + .../plugin/auto-unpack-natives/package.json | 1 + packages/plugin/base/package.json | 1 + packages/plugin/fuses/package.json | 1 + packages/plugin/local-electron/package.json | 1 + packages/plugin/vite/forge-vite-env.d.ts | 2 +- packages/plugin/vite/package.json | 3 +- packages/plugin/vite/src/ViteConfig.ts | 8 +- packages/plugin/vite/src/VitePlugin.ts | 6 +- .../vite/src/config/vite.main.config.ts | 2 +- .../vite/src/config/vite.preload.config.ts | 6 +- .../vite/src/config/vite.renderer.config.ts | 2 +- packages/plugin/webpack/package.json | 3 +- packages/publisher/base-static/package.json | 1 + packages/publisher/base/package.json | 1 + packages/publisher/bitbucket/package.json | 1 + .../electron-release-server/package.json | 1 + packages/publisher/gcs/package.json | 1 + packages/publisher/gcs/src/Config.ts | 7 +- packages/publisher/gcs/src/PublisherGCS.ts | 2 +- packages/publisher/github/package.json | 1 + packages/publisher/nucleus/package.json | 1 + packages/publisher/s3/package.json | 1 + packages/publisher/snapcraft/package.json | 1 + packages/template/base/package.json | 1 + .../template/vite-typescript/package.json | 1 + .../vite-typescript/tmpl/package.json | 2 +- packages/template/vite/package.json | 1 + .../template/webpack-typescript/package.json | 5 +- .../webpack-typescript/tmpl/package.json | 2 +- packages/template/webpack/package.json | 1 + packages/utils/core-utils/package.json | 1 + packages/utils/test-utils/package.json | 1 + packages/utils/tracer/package.json | 1 + packages/utils/types/package.json | 1 + packages/utils/web-multi-logger/package.json | 1 + tools/doc-plugin/package.json | 2 +- tools/gen-ts-glue.ts | 5 +- tools/gen-tsconfigs.ts | 11 +- tools/test-dist.ts | 4 +- tools/utils.ts | 6 +- tsconfig.base.json | 6 +- tsconfig.test.json | 7 +- yarn.lock | 495 ++++++++++++------ 61 files changed, 452 insertions(+), 243 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 43d0d3ed1b..ee3d528e8a 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -11,8 +11,8 @@ }, "extends": [ "eslint:recommended", - "plugin:import/errors", - "plugin:import/warnings", + // "plugin:import/errors", + // "plugin:import/warnings", "plugin:n/recommended", "plugin:promise/recommended", "prettier" @@ -27,26 +27,26 @@ "vars": "all" } ], - "import/order": [ - "error", - { - "groups": [ - "builtin", - "external", - "internal", - "parent", - "sibling", - "index", - "object", - "type" - ], - "newlines-between": "always", - "alphabetize": { - "order": "asc", - "caseInsensitive": true - } - } - ], + // "import/order": [ + // "error", + // { + // "groups": [ + // "builtin", + // "external", + // "internal", + // "parent", + // "sibling", + // "index", + // "object", + // "type" + // ], + // "newlines-between": "always", + // "alphabetize": { + // "order": "asc", + // "caseInsensitive": true + // } + // } + // ], "sort-imports": [ "error", { @@ -55,7 +55,7 @@ "ignoreCase": true } ], - "import/no-named-as-default": "error", + // "import/no-named-as-default": "error", "n/no-process-exit": "off" }, "overrides": [ @@ -70,8 +70,8 @@ "project": ["./tsconfig.base.json"] }, "extends": [ - "plugin:@typescript-eslint/recommended", - "plugin:import/typescript" + "plugin:@typescript-eslint/recommended" + // "plugin:import/typescript" ], "rules": { // There is no "recommended" ruleset for tsdoc yet. @@ -111,7 +111,7 @@ ], "rules": { "global-require": "off", - "import/no-dynamic-require": "off", + // "import/no-dynamic-require": "off", "n/no-extraneous-import": "off", "n/no-unpublished-import": "off", "n/no-unpublished-require": "off", @@ -161,7 +161,7 @@ "rules": { "no-process-exit": "off", "no-undef": "off", - "import/no-unresolved": "off", + // "import/no-unresolved": "off", "n/no-missing-import": "off", "n/no-unpublished-import": "off", "n/no-unsupported-features/es-syntax": "off" diff --git a/package.json b/package.json index e566561308..f3ac8b02e1 100644 --- a/package.json +++ b/package.json @@ -3,12 +3,13 @@ "version": "0.0.0-development", "private": true, "license": "MIT", + "type": "module", "engines": { "node": ">= 22.12.0" }, "scripts": { "clean": "node -e \"fs.rmSync('dist', { recursive: true, force: true })\" && lerna exec -- \"node -e \\\"fs.rmSync('dist', { recursive: true, force: true })\\\" && node -e \\\"fs.rmSync('tsconfig.tsbuildinfo', { recursive: true, force: true })\\\"\"", - "build": "tsc -b packages && ts-node tools/test-dist", + "build": "tsc -b packages && tsx tools/test-dist", "build:watch": "tsc -b packages --watch", "docs": "yarn build && typedoc", "lerna:publish": "lerna publish --force-publish --conventional-commits --no-changelog --exact", @@ -22,9 +23,9 @@ "test": "xvfb-maybe vitest run --project fast --project slow", "test:fast": "xvfb-maybe vitest run --project fast", "test:slow": "xvfb-maybe vitest run --project slow", - "test:clear": "ts-node tools/test-clear", - "update:lockfile-fixtures": "ts-node tools/regenerate-lockfile-fixtures.ts", - "postinstall": "husky install && node -e \"try { fs.rmSync('node_modules/.bin/*.ps1', { recursive: true, force: true }) } catch (e) {}\" && ts-node ./tools/gen-tsconfigs.ts && ts-node ./tools/gen-ts-glue.ts" + "test:clear": "tsx tools/test-clear", + "update:lockfile-fixtures": "tsx tools/regenerate-lockfile-fixtures.ts", + "postinstall": "husky install && node -e \"try { fs.rmSync('node_modules/.bin/*.ps1', { recursive: true, force: true }) } catch (e) {}\" && tsx ./tools/gen-tsconfigs.ts && tsx ./tools/gen-ts-glue.ts" }, "dependencies": { "@aws-sdk/client-s3": "^3.654.0", @@ -70,6 +71,7 @@ "rechoir": "^0.8.0", "semver": "^7.2.1", "source-map-support": "^0.5.13", + "tsx": "^4.20.6", "username": "^5.1.0", "vite": "^5.0.12", "webpack": "^5.69.1", @@ -83,6 +85,7 @@ "devDependencies": { "@electron/fuses": "^1.0.0", "@electron/lint-roller": "1.10.1", + "@tsconfig/node22": "^22.0.5", "@types/cross-spawn": "^6.0.1", "@types/debug": "^4.1.12", "@types/express": "^4.17.9", @@ -94,7 +97,7 @@ "@types/lodash": "^4.14.166", "@types/mime-types": "^2.1.0", "@types/minimist": "^1.2.0", - "@types/node": "^18.0.3", + "@types/node": "~22.10.7", "@types/node-fetch": "^2.5.5", "@types/rechoir": "^0.6.1", "@types/semver": "^7.3.4", @@ -117,9 +120,8 @@ "minimist": "^1.2.6", "msw": "^2.7.0", "prettier": "^3.6.2", - "ts-node": "^10.0.0", "typedoc": "0.25.13", - "typescript": "~5.4.5", + "typescript": "5.9.3", "vitest": "^3.1.3", "xvfb-maybe": "^0.2.1", "yaml-hook": "^1.0.0" diff --git a/packages/api/cli/package.json b/packages/api/cli/package.json index aaac55cbd5..ecfa94dcc2 100644 --- a/packages/api/cli/package.json +++ b/packages/api/cli/package.json @@ -1,6 +1,7 @@ { "name": "@electron-forge/cli", "version": "7.10.2", + "type": "module", "description": "A complete tool for building modern Electron applications", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", diff --git a/packages/api/core/package.json b/packages/api/core/package.json index 55d27d4dfc..f5548457e5 100644 --- a/packages/api/core/package.json +++ b/packages/api/core/package.json @@ -1,6 +1,7 @@ { "name": "@electron-forge/core", "version": "7.10.2", + "type": "module", "description": "A complete tool for building modern Electron applications", "repository": "https://github.com/electron/forge", "main": "dist/api/index.js", diff --git a/packages/external/create-electron-app/package.json b/packages/external/create-electron-app/package.json index 7de739e5d4..0a33d22c1f 100644 --- a/packages/external/create-electron-app/package.json +++ b/packages/external/create-electron-app/package.json @@ -1,6 +1,7 @@ { "name": "create-electron-app", "version": "7.10.2", + "type": "module", "description": "Create Electron App", "main": "dist/index.js", "typings": "dist/index.d.ts", diff --git a/packages/maker/appx/package.json b/packages/maker/appx/package.json index 84fe0e7549..4b39c33cf6 100644 --- a/packages/maker/appx/package.json +++ b/packages/maker/appx/package.json @@ -1,6 +1,7 @@ { "name": "@electron-forge/maker-appx", "version": "7.10.2", + "type": "module", "description": "AppX maker for Electron Forge", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", diff --git a/packages/maker/appx/src/MakerAppX.ts b/packages/maker/appx/src/MakerAppX.ts index e7092a81e2..6872b6548f 100644 --- a/packages/maker/appx/src/MakerAppX.ts +++ b/packages/maker/appx/src/MakerAppX.ts @@ -11,7 +11,7 @@ import { } from 'electron-windows-store/lib/sign'; import fs from 'fs-extra'; -import { MakerAppXConfig } from './Config'; +import { MakerAppXConfig } from './Config.js'; // NB: This is not a typo, we require AppXs to be built on 64-bit // but if we're running in a 32-bit node.js process, we're going to diff --git a/packages/maker/base/package.json b/packages/maker/base/package.json index 60b1ea4149..cdefdddeba 100644 --- a/packages/maker/base/package.json +++ b/packages/maker/base/package.json @@ -1,6 +1,7 @@ { "name": "@electron-forge/maker-base", "version": "7.10.2", + "type": "module", "description": "Base maker for Electron Forge", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", diff --git a/packages/maker/deb/package.json b/packages/maker/deb/package.json index d26f91af65..1bf0d680d0 100644 --- a/packages/maker/deb/package.json +++ b/packages/maker/deb/package.json @@ -1,6 +1,7 @@ { "name": "@electron-forge/maker-deb", "version": "7.10.2", + "type": "module", "description": "Deb maker for Electron Forge", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", diff --git a/packages/maker/dmg/package.json b/packages/maker/dmg/package.json index c5da5612cb..2e693d1ed1 100644 --- a/packages/maker/dmg/package.json +++ b/packages/maker/dmg/package.json @@ -1,6 +1,7 @@ { "name": "@electron-forge/maker-dmg", "version": "7.10.2", + "type": "module", "description": "DMG maker for Electron Forge", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", diff --git a/packages/maker/flatpak/package.json b/packages/maker/flatpak/package.json index 53f7797276..3c62208c3c 100644 --- a/packages/maker/flatpak/package.json +++ b/packages/maker/flatpak/package.json @@ -1,6 +1,7 @@ { "name": "@electron-forge/maker-flatpak", "version": "7.10.2", + "type": "module", "description": "Flatpak maker for Electron Forge", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", diff --git a/packages/maker/msix/package.json b/packages/maker/msix/package.json index 2050fd5f90..599eb86f4b 100644 --- a/packages/maker/msix/package.json +++ b/packages/maker/msix/package.json @@ -1,6 +1,7 @@ { "name": "@electron-forge/maker-msix", "version": "7.10.2", + "type": "module", "description": "MSIX maker for Electron Forge", "repository": "https://github.com/electron/forge", "author": "Jan Hannemann", diff --git a/packages/maker/pkg/package.json b/packages/maker/pkg/package.json index f6c70c1eb3..a43052ec03 100644 --- a/packages/maker/pkg/package.json +++ b/packages/maker/pkg/package.json @@ -1,6 +1,7 @@ { "name": "@electron-forge/maker-pkg", "version": "7.10.2", + "type": "module", "description": "PKG maker for Electron Forge", "repository": "https://github.com/electron/forge", "license": "MIT", diff --git a/packages/maker/rpm/package.json b/packages/maker/rpm/package.json index c885ad4ea1..63d1787de9 100644 --- a/packages/maker/rpm/package.json +++ b/packages/maker/rpm/package.json @@ -1,6 +1,7 @@ { "name": "@electron-forge/maker-rpm", "version": "7.10.2", + "type": "module", "description": "Rpm maker for Electron Forge", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", diff --git a/packages/maker/snap/package.json b/packages/maker/snap/package.json index 08c9b389a2..fe3b2f3a90 100644 --- a/packages/maker/snap/package.json +++ b/packages/maker/snap/package.json @@ -1,6 +1,7 @@ { "name": "@electron-forge/maker-snap", "version": "7.10.2", + "type": "module", "description": "Snap maker for Electron Forge", "repository": "https://github.com/electron/forge", "license": "MIT", diff --git a/packages/maker/squirrel/package.json b/packages/maker/squirrel/package.json index ac1cf22f41..a9493688e6 100644 --- a/packages/maker/squirrel/package.json +++ b/packages/maker/squirrel/package.json @@ -1,6 +1,7 @@ { "name": "@electron-forge/maker-squirrel", "version": "7.10.2", + "type": "module", "description": "Squirrel maker for Electron Forge", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", diff --git a/packages/maker/wix/package.json b/packages/maker/wix/package.json index 54710328ea..34c79b5275 100644 --- a/packages/maker/wix/package.json +++ b/packages/maker/wix/package.json @@ -1,6 +1,7 @@ { "name": "@electron-forge/maker-wix", "version": "7.10.2", + "type": "module", "description": "Wix maker for Electron Forge", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", diff --git a/packages/maker/zip/package.json b/packages/maker/zip/package.json index c7e34668df..2685f14016 100644 --- a/packages/maker/zip/package.json +++ b/packages/maker/zip/package.json @@ -1,6 +1,7 @@ { "name": "@electron-forge/maker-zip", "version": "7.10.2", + "type": "module", "description": "ZIP maker for Electron Forge", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", diff --git a/packages/plugin/auto-unpack-natives/package.json b/packages/plugin/auto-unpack-natives/package.json index 029d85bab7..08ea96f7c6 100644 --- a/packages/plugin/auto-unpack-natives/package.json +++ b/packages/plugin/auto-unpack-natives/package.json @@ -1,6 +1,7 @@ { "name": "@electron-forge/plugin-auto-unpack-natives", "version": "7.10.2", + "type": "module", "description": "Auto Unpack Natives plugin for Electron Forge, automatically adds native node modules to asar.unpacked", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", diff --git a/packages/plugin/base/package.json b/packages/plugin/base/package.json index 4bec13e6f5..41b3b2ab13 100644 --- a/packages/plugin/base/package.json +++ b/packages/plugin/base/package.json @@ -1,6 +1,7 @@ { "name": "@electron-forge/plugin-base", "version": "7.10.2", + "type": "module", "description": "Base plugin for Electron Forge", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", diff --git a/packages/plugin/fuses/package.json b/packages/plugin/fuses/package.json index 00150f0850..008d18b7cb 100644 --- a/packages/plugin/fuses/package.json +++ b/packages/plugin/fuses/package.json @@ -1,6 +1,7 @@ { "name": "@electron-forge/plugin-fuses", "version": "7.10.2", + "type": "module", "description": "A plugin for flipping Electron Fuses in Electron Forge", "repository": "https://github.com/electron/forge", "author": "Erik Moura ", diff --git a/packages/plugin/local-electron/package.json b/packages/plugin/local-electron/package.json index 2252aa375e..a3340163c8 100644 --- a/packages/plugin/local-electron/package.json +++ b/packages/plugin/local-electron/package.json @@ -1,6 +1,7 @@ { "name": "@electron-forge/plugin-local-electron", "version": "7.10.2", + "type": "module", "description": "Local Electron plugin for Electron Forge, let's you use a local build of Electron", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", diff --git a/packages/plugin/vite/forge-vite-env.d.ts b/packages/plugin/vite/forge-vite-env.d.ts index 59074dc18a..95cc56d9d7 100644 --- a/packages/plugin/vite/forge-vite-env.d.ts +++ b/packages/plugin/vite/forge-vite-env.d.ts @@ -1,5 +1,5 @@ export {}; // Make this a module -import type { VitePluginConfig } from './src/Config'; +import type { VitePluginConfig } from './src/Config.js'; declare global { // This allows TypeScript to pick up the magic constants that's auto-generated by Forge's Vite diff --git a/packages/plugin/vite/package.json b/packages/plugin/vite/package.json index aaf79e5c3f..343e1b8422 100644 --- a/packages/plugin/vite/package.json +++ b/packages/plugin/vite/package.json @@ -1,6 +1,7 @@ { "name": "@electron-forge/plugin-vite", "version": "7.10.2", + "type": "module", "description": "Vite plugin for Electron Forge, lets you use Vite directly in your tooling", "repository": { "type": "git", @@ -22,7 +23,7 @@ "devDependencies": { "@electron/packager": "^18.3.5", "@malept/cross-spawn-promise": "^2.0.0", - "@types/node": "^18.0.3", + "@types/node": "~22.10.7", "vite": "^5.0.12", "vitest": "^3.1.3", "which": "^2.0.2", diff --git a/packages/plugin/vite/src/ViteConfig.ts b/packages/plugin/vite/src/ViteConfig.ts index 8673f7879a..5949deed13 100644 --- a/packages/plugin/vite/src/ViteConfig.ts +++ b/packages/plugin/vite/src/ViteConfig.ts @@ -1,15 +1,15 @@ import debug from 'debug'; import { loadConfigFromFile } from 'vite'; -import { getConfig as getMainViteConfig } from './config/vite.main.config'; -import { getConfig as getPreloadViteConfig } from './config/vite.preload.config'; -import { getConfig as getRendererViteConfig } from './config/vite.renderer.config'; +import { getConfig as getMainViteConfig } from './config/vite.main.config.js'; +import { getConfig as getPreloadViteConfig } from './config/vite.preload.config.js'; +import { getConfig as getRendererViteConfig } from './config/vite.renderer.config.js'; import type { VitePluginBuildConfig, VitePluginConfig, VitePluginRendererConfig, -} from './Config'; +} from './Config.js'; import type { ConfigEnv, UserConfig } from 'vite'; const d = debug('@electron-forge/plugin-vite:ViteConfig'); diff --git a/packages/plugin/vite/src/VitePlugin.ts b/packages/plugin/vite/src/VitePlugin.ts index 8b72f5f960..2dcdc78dc3 100644 --- a/packages/plugin/vite/src/VitePlugin.ts +++ b/packages/plugin/vite/src/VitePlugin.ts @@ -8,11 +8,11 @@ import chalk from 'chalk'; import debug from 'debug'; import fs from 'fs-extra'; import { Listr, PRESET_TIMER } from 'listr2'; -import { default as vite } from 'vite'; +import * as vite from 'vite'; -import ViteConfigGenerator from './ViteConfig'; +import ViteConfigGenerator from './ViteConfig.js'; -import type { VitePluginConfig } from './Config'; +import type { VitePluginConfig } from './Config.js'; import type { ForgeListrTask, ForgeMultiHookMap, diff --git a/packages/plugin/vite/src/config/vite.main.config.ts b/packages/plugin/vite/src/config/vite.main.config.ts index 04ad52527f..ab6d1bc2d1 100644 --- a/packages/plugin/vite/src/config/vite.main.config.ts +++ b/packages/plugin/vite/src/config/vite.main.config.ts @@ -5,7 +5,7 @@ import { getBuildConfig, getBuildDefine, pluginHotRestart, -} from './vite.base.config'; +} from './vite.base.config.js'; export function getConfig( forgeEnv: ConfigEnv<'build'>, diff --git a/packages/plugin/vite/src/config/vite.preload.config.ts b/packages/plugin/vite/src/config/vite.preload.config.ts index 6b81930e8b..e7c206d068 100644 --- a/packages/plugin/vite/src/config/vite.preload.config.ts +++ b/packages/plugin/vite/src/config/vite.preload.config.ts @@ -1,6 +1,10 @@ import { type ConfigEnv, mergeConfig, type UserConfig } from 'vite'; -import { external, getBuildConfig, pluginHotRestart } from './vite.base.config'; +import { + external, + getBuildConfig, + pluginHotRestart, +} from './vite.base.config.js'; export function getConfig( forgeEnv: ConfigEnv<'build'>, diff --git a/packages/plugin/vite/src/config/vite.renderer.config.ts b/packages/plugin/vite/src/config/vite.renderer.config.ts index 2a05cbc8a9..72f0e28154 100644 --- a/packages/plugin/vite/src/config/vite.renderer.config.ts +++ b/packages/plugin/vite/src/config/vite.renderer.config.ts @@ -1,6 +1,6 @@ import { type ConfigEnv, mergeConfig, type UserConfig } from 'vite'; -import { pluginExposeRenderer } from './vite.base.config'; +import { pluginExposeRenderer } from './vite.base.config.js'; // https://vitejs.dev/config export function getConfig( diff --git a/packages/plugin/webpack/package.json b/packages/plugin/webpack/package.json index 2009011024..00afb045fb 100644 --- a/packages/plugin/webpack/package.json +++ b/packages/plugin/webpack/package.json @@ -1,6 +1,7 @@ { "name": "@electron-forge/plugin-webpack", "version": "7.10.2", + "type": "module", "description": "Webpack plugin for Electron Forge, lets you use Webpack directly in your tooling", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", @@ -10,7 +11,7 @@ "devDependencies": { "@electron/packager": "^18.3.5", "@malept/cross-spawn-promise": "^2.0.0", - "@types/node": "^18.0.3", + "@types/node": "~22.10.7", "vitest": "^3.1.3", "which": "^2.0.2", "xvfb-maybe": "^0.2.1" diff --git a/packages/publisher/base-static/package.json b/packages/publisher/base-static/package.json index de95c54933..00bb1f1b72 100644 --- a/packages/publisher/base-static/package.json +++ b/packages/publisher/base-static/package.json @@ -1,6 +1,7 @@ { "name": "@electron-forge/publisher-static", "version": "7.10.2", + "type": "module", "description": "Base publisher for Electron Forge", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", diff --git a/packages/publisher/base/package.json b/packages/publisher/base/package.json index 8869e81bba..61ede6a780 100644 --- a/packages/publisher/base/package.json +++ b/packages/publisher/base/package.json @@ -1,6 +1,7 @@ { "name": "@electron-forge/publisher-base", "version": "7.10.2", + "type": "module", "description": "Base publisher for Electron Forge", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", diff --git a/packages/publisher/bitbucket/package.json b/packages/publisher/bitbucket/package.json index 3062909cf6..32e6bdc710 100644 --- a/packages/publisher/bitbucket/package.json +++ b/packages/publisher/bitbucket/package.json @@ -1,6 +1,7 @@ { "name": "@electron-forge/publisher-bitbucket", "version": "7.10.2", + "type": "module", "description": "Bitbucket publisher for Electron Forge", "repository": "https://github.com/electron/forge", "author": "Luke Batchelor", diff --git a/packages/publisher/electron-release-server/package.json b/packages/publisher/electron-release-server/package.json index 3d8cc286f6..e3b8b9dfad 100644 --- a/packages/publisher/electron-release-server/package.json +++ b/packages/publisher/electron-release-server/package.json @@ -1,6 +1,7 @@ { "name": "@electron-forge/publisher-electron-release-server", "version": "7.10.2", + "type": "module", "description": "Electron release server publisher for Electron Forge", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", diff --git a/packages/publisher/gcs/package.json b/packages/publisher/gcs/package.json index 95a383367f..c1f2dd617e 100644 --- a/packages/publisher/gcs/package.json +++ b/packages/publisher/gcs/package.json @@ -1,6 +1,7 @@ { "name": "@electron-forge/publisher-gcs", "version": "7.10.2", + "type": "module", "description": "Google Cloud Storage publisher for Electron Forge", "repository": "https://github.com/electron/forge", "author": "Evgeny Vlasenko", diff --git a/packages/publisher/gcs/src/Config.ts b/packages/publisher/gcs/src/Config.ts index 0576bb44fb..71e08f0c9a 100644 --- a/packages/publisher/gcs/src/Config.ts +++ b/packages/publisher/gcs/src/Config.ts @@ -1,8 +1,7 @@ import { StorageOptions, UploadOptions } from '@google-cloud/storage'; -// eslint-disable-next-line n/no-missing-import -import { ConfigMetadata } from '@google-cloud/storage/build/cjs/src/resumable-upload'; +// import { ConfigMetadata } from '@google-cloud/storage/build'; -import { GCSArtifact } from './PublisherGCS'; +import { GCSArtifact } from './PublisherGCS.js'; export interface PublisherGCSConfig { /** @@ -38,5 +37,5 @@ export interface PublisherGCSConfig { * See https://cloud.google.com/storage/docs/metadata for more info. * Expects a function that takes a GCSArtifact object and returns a `ConfigMetadata` object. */ - metadataGenerator?: (artifact: GCSArtifact) => ConfigMetadata; + metadataGenerator?: (artifact: GCSArtifact) => any; // FIXME: ADD CONFIGMETADATA TYPE BACK } diff --git a/packages/publisher/gcs/src/PublisherGCS.ts b/packages/publisher/gcs/src/PublisherGCS.ts index 1ae3686024..9e83b2dd32 100644 --- a/packages/publisher/gcs/src/PublisherGCS.ts +++ b/packages/publisher/gcs/src/PublisherGCS.ts @@ -5,7 +5,7 @@ import { import { Storage } from '@google-cloud/storage'; import debug from 'debug'; -import { PublisherGCSConfig } from './Config'; +import { PublisherGCSConfig } from './Config.js'; const d = debug('electron-forge:publish:gcs'); diff --git a/packages/publisher/github/package.json b/packages/publisher/github/package.json index b289da3994..2bfc201d70 100644 --- a/packages/publisher/github/package.json +++ b/packages/publisher/github/package.json @@ -1,6 +1,7 @@ { "name": "@electron-forge/publisher-github", "version": "7.10.2", + "type": "module", "description": "Github publisher for Electron Forge", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", diff --git a/packages/publisher/nucleus/package.json b/packages/publisher/nucleus/package.json index 37a9553a19..d8bbf19cce 100644 --- a/packages/publisher/nucleus/package.json +++ b/packages/publisher/nucleus/package.json @@ -1,6 +1,7 @@ { "name": "@electron-forge/publisher-nucleus", "version": "7.10.2", + "type": "module", "description": "Nucleus publisher for Electron Forge", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", diff --git a/packages/publisher/s3/package.json b/packages/publisher/s3/package.json index c56074a022..9de0d5aa89 100644 --- a/packages/publisher/s3/package.json +++ b/packages/publisher/s3/package.json @@ -1,6 +1,7 @@ { "name": "@electron-forge/publisher-s3", "version": "7.10.2", + "type": "module", "description": "S3 publisher for Electron Forge", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", diff --git a/packages/publisher/snapcraft/package.json b/packages/publisher/snapcraft/package.json index 3f8efafe35..0d3280a655 100644 --- a/packages/publisher/snapcraft/package.json +++ b/packages/publisher/snapcraft/package.json @@ -1,6 +1,7 @@ { "name": "@electron-forge/publisher-snapcraft", "version": "7.10.2", + "type": "module", "description": "Snapcraft publisher for Electron Forge", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", diff --git a/packages/template/base/package.json b/packages/template/base/package.json index 16d1a4d3d9..ddecc40f85 100644 --- a/packages/template/base/package.json +++ b/packages/template/base/package.json @@ -1,6 +1,7 @@ { "name": "@electron-forge/template-base", "version": "7.10.2", + "type": "module", "description": "Base template for Electron Forge", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", diff --git a/packages/template/vite-typescript/package.json b/packages/template/vite-typescript/package.json index fe49252db8..37c33b99c8 100644 --- a/packages/template/vite-typescript/package.json +++ b/packages/template/vite-typescript/package.json @@ -1,6 +1,7 @@ { "name": "@electron-forge/template-vite-typescript", "version": "7.10.2", + "type": "module", "description": "Vite-TypeScript template for Electron Forge, gets you started with Vite really quickly", "repository": { "type": "git", diff --git a/packages/template/vite-typescript/tmpl/package.json b/packages/template/vite-typescript/tmpl/package.json index e10cd33069..5b0e9640fd 100644 --- a/packages/template/vite-typescript/tmpl/package.json +++ b/packages/template/vite-typescript/tmpl/package.json @@ -6,7 +6,7 @@ "@typescript-eslint/parser": "^5.0.0", "eslint": "^8.0.1", "eslint-plugin-import": "^2.25.0", - "typescript": "~4.5.4", + "typescript": "5.9.3", "vite": "^5.0.12" } } diff --git a/packages/template/vite/package.json b/packages/template/vite/package.json index 2d17ed3c4b..9ad02370da 100644 --- a/packages/template/vite/package.json +++ b/packages/template/vite/package.json @@ -1,6 +1,7 @@ { "name": "@electron-forge/template-vite", "version": "7.10.2", + "type": "module", "description": "Vite template for Electron Forge, gets you started with Vite really quickly", "repository": { "type": "git", diff --git a/packages/template/webpack-typescript/package.json b/packages/template/webpack-typescript/package.json index 133e0b8b22..ab29f70432 100644 --- a/packages/template/webpack-typescript/package.json +++ b/packages/template/webpack-typescript/package.json @@ -1,6 +1,7 @@ { "name": "@electron-forge/template-webpack-typescript", "version": "7.10.2", + "type": "module", "description": "Webpack-TypeScript template for Electron Forge", "repository": "https://github.com/electron/forge", "author": "Shelley Vohr ", @@ -14,7 +15,7 @@ "@electron-forge/shared-types": "workspace:*", "@electron-forge/template-base": "workspace:*", "fs-extra": "^10.0.0", - "typescript": "~5.4.5", + "typescript": "5.9.3", "webpack": "^5.69.1" }, "devDependencies": { @@ -28,7 +29,7 @@ "fast-glob": "^3.2.7", "fork-ts-checker-webpack-plugin": "^7.2.13", "listr2": "^7.0.2", - "typescript": "~5.4.5", + "typescript": "5.9.3", "vitest": "^3.1.3", "webpack": "^5.69.1" }, diff --git a/packages/template/webpack-typescript/tmpl/package.json b/packages/template/webpack-typescript/tmpl/package.json index 39cdd2b692..0a350c0cbb 100644 --- a/packages/template/webpack-typescript/tmpl/package.json +++ b/packages/template/webpack-typescript/tmpl/package.json @@ -11,6 +11,6 @@ "node-loader": "^2.0.0", "style-loader": "^3.0.0", "ts-loader": "^9.2.2", - "typescript": "~4.5.4" + "typescript": "5.9.3" } } diff --git a/packages/template/webpack/package.json b/packages/template/webpack/package.json index 0b8e60c598..29d0788b6b 100644 --- a/packages/template/webpack/package.json +++ b/packages/template/webpack/package.json @@ -1,6 +1,7 @@ { "name": "@electron-forge/template-webpack", "version": "7.10.2", + "type": "module", "description": "Webpack template for Electron Forge, gets you started with Webpack really quickly", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", diff --git a/packages/utils/core-utils/package.json b/packages/utils/core-utils/package.json index c43874072b..8fa255b241 100644 --- a/packages/utils/core-utils/package.json +++ b/packages/utils/core-utils/package.json @@ -1,6 +1,7 @@ { "name": "@electron-forge/core-utils", "version": "7.10.2", + "type": "module", "description": "Core utilities for the Electron Forge packages", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", diff --git a/packages/utils/test-utils/package.json b/packages/utils/test-utils/package.json index 34bc4559d3..2ab9a535c7 100644 --- a/packages/utils/test-utils/package.json +++ b/packages/utils/test-utils/package.json @@ -1,6 +1,7 @@ { "name": "@electron-forge/test-utils", "version": "7.10.2", + "type": "module", "description": "Helper utilities for the Electron Forge testsuite", "repository": "https://github.com/electron/forge", "author": "Mark Lee", diff --git a/packages/utils/tracer/package.json b/packages/utils/tracer/package.json index 290274a2b5..7f979aca9e 100644 --- a/packages/utils/tracer/package.json +++ b/packages/utils/tracer/package.json @@ -1,6 +1,7 @@ { "name": "@electron-forge/tracer", "version": "7.10.2", + "type": "module", "description": "Tracing helpers for Electron Forge", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", diff --git a/packages/utils/types/package.json b/packages/utils/types/package.json index f821fecdb7..48d17f909d 100644 --- a/packages/utils/types/package.json +++ b/packages/utils/types/package.json @@ -1,6 +1,7 @@ { "name": "@electron-forge/shared-types", "version": "7.10.2", + "type": "module", "description": "Shared types across Electron Forge", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", diff --git a/packages/utils/web-multi-logger/package.json b/packages/utils/web-multi-logger/package.json index 3b800e7225..5aafc74b2d 100644 --- a/packages/utils/web-multi-logger/package.json +++ b/packages/utils/web-multi-logger/package.json @@ -1,6 +1,7 @@ { "name": "@electron-forge/web-multi-logger", "version": "7.10.2", + "type": "module", "description": "Display multiple streams of logs in one window", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", diff --git a/tools/doc-plugin/package.json b/tools/doc-plugin/package.json index 1520745b81..3da9411694 100644 --- a/tools/doc-plugin/package.json +++ b/tools/doc-plugin/package.json @@ -12,7 +12,7 @@ "node": ">= 16.4.0" }, "devDependencies": { - "typescript": "^4.6.3" + "typescript": "5.9.3" }, "peerDependencies": { "typedoc": "^0.22.15" diff --git a/tools/gen-ts-glue.ts b/tools/gen-ts-glue.ts index 5400018d7f..6b29dcef64 100644 --- a/tools/gen-ts-glue.ts +++ b/tools/gen-ts-glue.ts @@ -32,7 +32,10 @@ function convertMainToSrc(main: string): string { } (async () => { - const baseTypedocJson = path.resolve(__dirname, '../typedoc.base.json'); + const baseTypedocJson = path.resolve( + import.meta.dirname, + '../typedoc.base.json', + ); const pkgs = await getPackageInfo(); // Run each package in parallel diff --git a/tools/gen-tsconfigs.ts b/tools/gen-tsconfigs.ts index bd26964372..778ffafc60 100644 --- a/tools/gen-tsconfigs.ts +++ b/tools/gen-tsconfigs.ts @@ -13,7 +13,7 @@ function filterDupes(arr: readonly T[]): T[] { (async () => { const BASE_TS_CONFIG = JSON.parse( await fs.readFile( - path.resolve(__dirname, '../tsconfig.base.json'), + path.resolve(import.meta.dirname, '../tsconfig.base.json'), 'utf-8', ), ); @@ -34,7 +34,7 @@ function filterDupes(arr: readonly T[]): T[] { }; fs.writeFile( - path.resolve(__dirname, '../packages/tsconfig.json'), + path.resolve(import.meta.dirname, '../packages/tsconfig.json'), JSON.stringify(rootPackagesConfig, null, 2), ); @@ -72,10 +72,13 @@ function filterDupes(arr: readonly T[]): T[] { }); Object.assign(tsConfig.compilerOptions, { typeRoots: [ - path.relative(pkg.path, path.resolve(__dirname, '..', 'typings')), path.relative( pkg.path, - path.resolve(__dirname, '..', 'node_modules', '@types'), + path.resolve(import.meta.dirname, '..', 'typings'), + ), + path.relative( + pkg.path, + path.resolve(import.meta.dirname, '..', 'node_modules', '@types'), ), ], }); diff --git a/tools/test-dist.ts b/tools/test-dist.ts index f7f782cc02..904782cb09 100644 --- a/tools/test-dist.ts +++ b/tools/test-dist.ts @@ -1,9 +1,9 @@ import * as path from 'node:path'; import chalk from 'chalk'; -import * as fs from 'fs-extra'; +import fs from 'fs-extra'; -const BASE_DIR = path.resolve(__dirname, '..'); +const BASE_DIR = path.resolve(import.meta.dirname, '..'); const PACKAGES_DIR = path.resolve(BASE_DIR, 'packages'); (async () => { diff --git a/tools/utils.ts b/tools/utils.ts index 4bf0a0f28b..04f252bd94 100644 --- a/tools/utils.ts +++ b/tools/utils.ts @@ -1,8 +1,8 @@ -import * as path from 'node:path'; +import path from 'node:path'; -import * as fs from 'fs-extra'; +import fs from 'fs-extra'; -const BASE_DIR = path.resolve(__dirname, '..'); +const BASE_DIR = path.resolve(import.meta.dirname, '..'); const PACKAGES_DIR = path.resolve(BASE_DIR, 'packages'); export interface Package { diff --git a/tsconfig.base.json b/tsconfig.base.json index ea8cbb3cf1..b73feadff5 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -1,14 +1,10 @@ { + "extends": "@tsconfig/node22/tsconfig.json", "compilerOptions": { - "module": "commonjs", - "target": "ES2021", "outDir": "dist", - "lib": ["dom", "ES2021"], "inlineSourceMap": true, "rootDir": "src", "experimentalDecorators": true, - "strict": true, - "esModuleInterop": true, "declaration": true, "composite": true, "declarationMap": true, diff --git a/tsconfig.test.json b/tsconfig.test.json index 1d5241e119..a7f1f979fb 100644 --- a/tsconfig.test.json +++ b/tsconfig.test.json @@ -1,14 +1,9 @@ { "//": "⚠️ NOTE: this file is only used for tests, individual packages have their own tsconfig.json files generated by `tools/gen-tsconfigs.ts`", + "extends": "@tsconfig/node22/tsconfig.json", "compilerOptions": { - "module": "commonjs", - "target": "ES2021", - "outDir": "dist", - "lib": ["dom", "ES2021"], "sourceMap": true, "experimentalDecorators": true, - "strict": true, - "esModuleInterop": true, "declaration": true, "declarationMap": true, "typeRoots": ["./typings", "./node_modules/@types"] diff --git a/yarn.lock b/yarn.lock index 89699184b9..e8a4222738 100644 --- a/yarn.lock +++ b/yarn.lock @@ -766,22 +766,6 @@ __metadata: languageName: node linkType: hard -"@cspotcode/source-map-consumer@npm:0.8.0": - version: 0.8.0 - resolution: "@cspotcode/source-map-consumer@npm:0.8.0" - checksum: 10c0/44428e50f896df065c3a22d6bddeac344f3e31af57cbc2ddf753a95addcabbe685d92e534f4dcde0cabbbcfbc122d1cb957785b36344d54c422b781a8d1a2a01 - languageName: node - linkType: hard - -"@cspotcode/source-map-support@npm:0.7.0": - version: 0.7.0 - resolution: "@cspotcode/source-map-support@npm:0.7.0" - dependencies: - "@cspotcode/source-map-consumer": "npm:0.8.0" - checksum: 10c0/be290e5b9f49c1fa83997f80e02c29d5bece279fad08d8b7ee862c68aaf74be613cfcf396d19701273a5d47436f08905b36fdd286bef704767b493394a8ade39 - languageName: node - linkType: hard - "@dsanders11/vscode-markdown-languageservice@npm:^0.3.0": version: 0.3.0 resolution: "@dsanders11/vscode-markdown-languageservice@npm:0.3.0" @@ -1125,7 +1109,7 @@ __metadata: "@electron-forge/shared-types": "workspace:*" "@electron/packager": "npm:^18.3.5" "@malept/cross-spawn-promise": "npm:^2.0.0" - "@types/node": "npm:^18.0.3" + "@types/node": "npm:~22.10.7" chalk: "npm:^4.0.0" debug: "npm:^4.3.1" fs-extra: "npm:^10.0.0" @@ -1147,7 +1131,7 @@ __metadata: "@electron-forge/web-multi-logger": "workspace:*" "@electron/packager": "npm:^18.3.5" "@malept/cross-spawn-promise": "npm:^2.0.0" - "@types/node": "npm:^18.0.3" + "@types/node": "npm:~22.10.7" chalk: "npm:^4.0.0" debug: "npm:^4.3.1" fast-glob: "npm:^3.2.7" @@ -1354,7 +1338,7 @@ __metadata: fork-ts-checker-webpack-plugin: "npm:^7.2.13" fs-extra: "npm:^10.0.0" listr2: "npm:^7.0.2" - typescript: "npm:~5.4.5" + typescript: "npm:5.9.3" vitest: "npm:^3.1.3" webpack: "npm:^5.69.1" languageName: unknown @@ -1677,6 +1661,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/aix-ppc64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/aix-ppc64@npm:0.25.12" + conditions: os=aix & cpu=ppc64 + languageName: node + linkType: hard + "@esbuild/android-arm64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/android-arm64@npm:0.21.5" @@ -1691,6 +1682,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-arm64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/android-arm64@npm:0.25.12" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/android-arm@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/android-arm@npm:0.21.5" @@ -1705,6 +1703,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-arm@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/android-arm@npm:0.25.12" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + "@esbuild/android-x64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/android-x64@npm:0.21.5" @@ -1719,6 +1724,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-x64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/android-x64@npm:0.25.12" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + "@esbuild/darwin-arm64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/darwin-arm64@npm:0.21.5" @@ -1733,6 +1745,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/darwin-arm64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/darwin-arm64@npm:0.25.12" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/darwin-x64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/darwin-x64@npm:0.21.5" @@ -1747,6 +1766,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/darwin-x64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/darwin-x64@npm:0.25.12" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + "@esbuild/freebsd-arm64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/freebsd-arm64@npm:0.21.5" @@ -1761,6 +1787,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/freebsd-arm64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/freebsd-arm64@npm:0.25.12" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/freebsd-x64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/freebsd-x64@npm:0.21.5" @@ -1775,6 +1808,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/freebsd-x64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/freebsd-x64@npm:0.25.12" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/linux-arm64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-arm64@npm:0.21.5" @@ -1789,6 +1829,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-arm64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/linux-arm64@npm:0.25.12" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/linux-arm@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-arm@npm:0.21.5" @@ -1803,6 +1850,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-arm@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/linux-arm@npm:0.25.12" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + "@esbuild/linux-ia32@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-ia32@npm:0.21.5" @@ -1817,6 +1871,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-ia32@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/linux-ia32@npm:0.25.12" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + "@esbuild/linux-loong64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-loong64@npm:0.21.5" @@ -1831,6 +1892,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-loong64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/linux-loong64@npm:0.25.12" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + "@esbuild/linux-mips64el@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-mips64el@npm:0.21.5" @@ -1845,6 +1913,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-mips64el@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/linux-mips64el@npm:0.25.12" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + "@esbuild/linux-ppc64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-ppc64@npm:0.21.5" @@ -1859,6 +1934,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-ppc64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/linux-ppc64@npm:0.25.12" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + "@esbuild/linux-riscv64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-riscv64@npm:0.21.5" @@ -1873,6 +1955,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-riscv64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/linux-riscv64@npm:0.25.12" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + "@esbuild/linux-s390x@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-s390x@npm:0.21.5" @@ -1887,6 +1976,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-s390x@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/linux-s390x@npm:0.25.12" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + "@esbuild/linux-x64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-x64@npm:0.21.5" @@ -1901,6 +1997,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-x64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/linux-x64@npm:0.25.12" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + "@esbuild/netbsd-arm64@npm:0.25.10": version: 0.25.10 resolution: "@esbuild/netbsd-arm64@npm:0.25.10" @@ -1908,6 +2011,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/netbsd-arm64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/netbsd-arm64@npm:0.25.12" + conditions: os=netbsd & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/netbsd-x64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/netbsd-x64@npm:0.21.5" @@ -1922,6 +2032,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/netbsd-x64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/netbsd-x64@npm:0.25.12" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/openbsd-arm64@npm:0.25.10": version: 0.25.10 resolution: "@esbuild/openbsd-arm64@npm:0.25.10" @@ -1929,6 +2046,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/openbsd-arm64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/openbsd-arm64@npm:0.25.12" + conditions: os=openbsd & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/openbsd-x64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/openbsd-x64@npm:0.21.5" @@ -1943,6 +2067,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/openbsd-x64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/openbsd-x64@npm:0.25.12" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/openharmony-arm64@npm:0.25.10": version: 0.25.10 resolution: "@esbuild/openharmony-arm64@npm:0.25.10" @@ -1950,6 +2081,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/openharmony-arm64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/openharmony-arm64@npm:0.25.12" + conditions: os=openharmony & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/sunos-x64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/sunos-x64@npm:0.21.5" @@ -1964,6 +2102,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/sunos-x64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/sunos-x64@npm:0.25.12" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + "@esbuild/win32-arm64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/win32-arm64@npm:0.21.5" @@ -1978,6 +2123,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-arm64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/win32-arm64@npm:0.25.12" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/win32-ia32@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/win32-ia32@npm:0.21.5" @@ -1992,6 +2144,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-ia32@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/win32-ia32@npm:0.25.12" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + "@esbuild/win32-x64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/win32-x64@npm:0.21.5" @@ -2006,6 +2165,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-x64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/win32-x64@npm:0.25.12" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@eslint-community/eslint-utils@npm:^4.1.2, @eslint-community/eslint-utils@npm:^4.4.0, @eslint-community/eslint-utils@npm:^4.4.1": version: 4.4.1 resolution: "@eslint-community/eslint-utils@npm:4.4.1" @@ -4633,31 +4799,10 @@ __metadata: languageName: node linkType: hard -"@tsconfig/node10@npm:^1.0.7": - version: 1.0.8 - resolution: "@tsconfig/node10@npm:1.0.8" - checksum: 10c0/d400f7b5c02acd74620f892c0f41cea39e7c1b5f7f272ad6f127f4b1fba23346b2d8e30d272731a733675494145f6aa74f9faf050390c034c7c553123ab979b3 - languageName: node - linkType: hard - -"@tsconfig/node12@npm:^1.0.7": - version: 1.0.9 - resolution: "@tsconfig/node12@npm:1.0.9" - checksum: 10c0/fc1fb68a89d8a641953036d23d95fe68f69f74d37a499db20791b09543ad23afe7ae9ee0840eea92dd470bdcba69eef6f1ed3fe90ba64d763bcd3f738e364597 - languageName: node - linkType: hard - -"@tsconfig/node14@npm:^1.0.0": - version: 1.0.1 - resolution: "@tsconfig/node14@npm:1.0.1" - checksum: 10c0/abd4e27d9ad712e1e229716a3dbf35d5cbb580d624a82d67414e7606cefd85d502e58800a2ab930d46a428fcfcb199436283b1a88e47d738ca1a5f7fd022ee74 - languageName: node - linkType: hard - -"@tsconfig/node16@npm:^1.0.2": - version: 1.0.2 - resolution: "@tsconfig/node16@npm:1.0.2" - checksum: 10c0/d402706562444a173d48810d13fdf866c78f1b876ed8962eeac6c7cddf4e29e8aaa06dc28093219e3e9eb6316799cf4d9a7acba62c6a4e215ee0c94d83f9081f +"@tsconfig/node22@npm:^22.0.5": + version: 22.0.5 + resolution: "@tsconfig/node22@npm:22.0.5" + checksum: 10c0/c64b1d51e1556da9212463799f5096289d2cc8561eaed10cd0a0a36c25790b4c6bed30c0f846afccf8da75b5750326fa281216a908c2b67ead7b55adaf3eda22 languageName: node linkType: hard @@ -5043,15 +5188,6 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:^18.0.3": - version: 18.19.68 - resolution: "@types/node@npm:18.19.68" - dependencies: - undici-types: "npm:~5.26.4" - checksum: 10c0/8c7f01be218c6e3c1e643173662af27e9a2b568f36c0fe83e4295cf7674fe2a0abb4a1c5d7c7abd3345b9114581387dfd3f14b6d0338daebdce9273cd7ba59ab - languageName: node - linkType: hard - "@types/node@npm:^22.5.5": version: 22.17.2 resolution: "@types/node@npm:22.17.2" @@ -5061,6 +5197,15 @@ __metadata: languageName: node linkType: hard +"@types/node@npm:~22.10.7": + version: 22.10.10 + resolution: "@types/node@npm:22.10.10" + dependencies: + undici-types: "npm:~6.20.0" + checksum: 10c0/3425772d4513cd5dbdd87c00acda088113c03a97445f84f6a89744c60a66990b56c9d3a7213d09d57b6b944ae8ff45f985565e0c1846726112588e33a22dd12b + languageName: node + linkType: hard + "@types/normalize-package-data@npm:^2.4.0": version: 2.4.1 resolution: "@types/normalize-package-data@npm:2.4.1" @@ -5725,14 +5870,7 @@ __metadata: languageName: node linkType: hard -"acorn-walk@npm:^8.1.1": - version: 8.2.0 - resolution: "acorn-walk@npm:8.2.0" - checksum: 10c0/dbe92f5b2452c93e960c5594e666dd1fae141b965ff2cb4a1e1d0381e3e4db4274c5ce4ffa3d681a86ca2a8d4e29d5efc0670a08e23fd2800051ea387df56ca2 - languageName: node - linkType: hard - -"acorn@npm:^8.4.1, acorn@npm:^8.5.0, acorn@npm:^8.7.1, acorn@npm:^8.8.0, acorn@npm:^8.8.2": +"acorn@npm:^8.5.0, acorn@npm:^8.7.1, acorn@npm:^8.8.0, acorn@npm:^8.8.2": version: 8.11.2 resolution: "acorn@npm:8.11.2" bin: @@ -6026,13 +6164,6 @@ __metadata: languageName: node linkType: hard -"arg@npm:^4.1.0": - version: 4.1.3 - resolution: "arg@npm:4.1.3" - checksum: 10c0/070ff801a9d236a6caa647507bdcc7034530604844d64408149a26b9e87c2f97650055c0f049abd1efc024b334635c01f29e0b632b371ac3f26130f4cf65997a - languageName: node - linkType: hard - "argparse@npm:^1.0.7": version: 1.0.10 resolution: "argparse@npm:1.0.10" @@ -7485,13 +7616,6 @@ __metadata: languageName: unknown linkType: soft -"create-require@npm:^1.1.0": - version: 1.1.1 - resolution: "create-require@npm:1.1.1" - checksum: 10c0/157cbc59b2430ae9a90034a5f3a1b398b6738bf510f713edc4d4e45e169bc514d3d99dd34d8d01ca7ae7830b5b8b537e46ae8f3c8f932371b0875c0151d7ec91 - languageName: node - linkType: hard - "cross-dirname@npm:^0.1.0": version: 0.1.0 resolution: "cross-dirname@npm:0.1.0" @@ -7861,13 +7985,6 @@ __metadata: languageName: node linkType: hard -"diff@npm:^4.0.1": - version: 4.0.2 - resolution: "diff@npm:4.0.2" - checksum: 10c0/81b91f9d39c4eaca068eb0c1eb0e4afbdc5bb2941d197f513dd596b820b956fef43485876226d65d497bebc15666aa2aa82c679e84f65d5f2bfbf14ee46e32c1 - languageName: node - linkType: hard - "diff@npm:^5.0.0": version: 5.0.0 resolution: "diff@npm:5.0.0" @@ -8105,6 +8222,7 @@ __metadata: "@octokit/request-error": "npm:^5.1.1" "@octokit/rest": "npm:^20.1.2" "@octokit/types": "npm:^6.1.2" + "@tsconfig/node22": "npm:^22.0.5" "@types/cross-spawn": "npm:^6.0.1" "@types/debug": "npm:^4.1.12" "@types/express": "npm:^4.17.9" @@ -8116,7 +8234,7 @@ __metadata: "@types/lodash": "npm:^4.14.166" "@types/mime-types": "npm:^2.1.0" "@types/minimist": "npm:^1.2.0" - "@types/node": "npm:^18.0.3" + "@types/node": "npm:~22.10.7" "@types/node-fetch": "npm:^2.5.5" "@types/rechoir": "npm:^0.6.1" "@types/semver": "npm:^7.3.4" @@ -8174,9 +8292,9 @@ __metadata: rechoir: "npm:^0.8.0" semver: "npm:^7.2.1" source-map-support: "npm:^0.5.13" - ts-node: "npm:^10.0.0" + tsx: "npm:^4.20.6" typedoc: "npm:0.25.13" - typescript: "npm:~5.4.5" + typescript: "npm:5.9.3" username: "npm:^5.1.0" vite: "npm:^5.0.12" vitest: "npm:^3.1.3" @@ -8919,6 +9037,95 @@ __metadata: languageName: node linkType: hard +"esbuild@npm:~0.25.0": + version: 0.25.12 + resolution: "esbuild@npm:0.25.12" + dependencies: + "@esbuild/aix-ppc64": "npm:0.25.12" + "@esbuild/android-arm": "npm:0.25.12" + "@esbuild/android-arm64": "npm:0.25.12" + "@esbuild/android-x64": "npm:0.25.12" + "@esbuild/darwin-arm64": "npm:0.25.12" + "@esbuild/darwin-x64": "npm:0.25.12" + "@esbuild/freebsd-arm64": "npm:0.25.12" + "@esbuild/freebsd-x64": "npm:0.25.12" + "@esbuild/linux-arm": "npm:0.25.12" + "@esbuild/linux-arm64": "npm:0.25.12" + "@esbuild/linux-ia32": "npm:0.25.12" + "@esbuild/linux-loong64": "npm:0.25.12" + "@esbuild/linux-mips64el": "npm:0.25.12" + "@esbuild/linux-ppc64": "npm:0.25.12" + "@esbuild/linux-riscv64": "npm:0.25.12" + "@esbuild/linux-s390x": "npm:0.25.12" + "@esbuild/linux-x64": "npm:0.25.12" + "@esbuild/netbsd-arm64": "npm:0.25.12" + "@esbuild/netbsd-x64": "npm:0.25.12" + "@esbuild/openbsd-arm64": "npm:0.25.12" + "@esbuild/openbsd-x64": "npm:0.25.12" + "@esbuild/openharmony-arm64": "npm:0.25.12" + "@esbuild/sunos-x64": "npm:0.25.12" + "@esbuild/win32-arm64": "npm:0.25.12" + "@esbuild/win32-ia32": "npm:0.25.12" + "@esbuild/win32-x64": "npm:0.25.12" + dependenciesMeta: + "@esbuild/aix-ppc64": + optional: true + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-arm64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-arm64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/openharmony-arm64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: 10c0/c205357531423220a9de8e1e6c6514242bc9b1666e762cd67ccdf8fdfdc3f1d0bd76f8d9383958b97ad4c953efdb7b6e8c1f9ca5951cd2b7c5235e8755b34a6b + languageName: node + linkType: hard + "escalade@npm:^3.1.1": version: 3.1.1 resolution: "escalade@npm:3.1.1" @@ -10537,6 +10744,15 @@ __metadata: languageName: node linkType: hard +"get-tsconfig@npm:^4.7.5": + version: 4.13.0 + resolution: "get-tsconfig@npm:4.13.0" + dependencies: + resolve-pkg-maps: "npm:^1.0.0" + checksum: 10c0/2c49ef8d3907047a107f229fd610386fe3b7fe9e42dfd6b42e7406499493cdda8c62e83e57e8d7a98125610774b9f604d3a0ff308d7f9de5c7ac6d1b07cb6036 + languageName: node + linkType: hard + "get-tsconfig@npm:^4.8.1": version: 4.9.0 resolution: "get-tsconfig@npm:4.9.0" @@ -13052,13 +13268,6 @@ __metadata: languageName: node linkType: hard -"make-error@npm:^1.1.1": - version: 1.3.6 - resolution: "make-error@npm:1.3.6" - checksum: 10c0/171e458d86854c6b3fc46610cfacf0b45149ba043782558c6875d9f42f222124384ad0b468c92e996d815a8a2003817a710c0a160e49c1c394626f76fa45396f - languageName: node - linkType: hard - "make-fetch-happen@npm:15.0.2, make-fetch-happen@npm:^15.0.0": version: 15.0.2 resolution: "make-fetch-happen@npm:15.0.2" @@ -17963,43 +18172,6 @@ __metadata: languageName: node linkType: hard -"ts-node@npm:^10.0.0": - version: 10.5.0 - resolution: "ts-node@npm:10.5.0" - dependencies: - "@cspotcode/source-map-support": "npm:0.7.0" - "@tsconfig/node10": "npm:^1.0.7" - "@tsconfig/node12": "npm:^1.0.7" - "@tsconfig/node14": "npm:^1.0.0" - "@tsconfig/node16": "npm:^1.0.2" - acorn: "npm:^8.4.1" - acorn-walk: "npm:^8.1.1" - arg: "npm:^4.1.0" - create-require: "npm:^1.1.0" - diff: "npm:^4.0.1" - make-error: "npm:^1.1.1" - v8-compile-cache-lib: "npm:^3.0.0" - yn: "npm:3.1.1" - peerDependencies: - "@swc/core": ">=1.2.50" - "@swc/wasm": ">=1.2.50" - "@types/node": "*" - typescript: ">=2.7" - peerDependenciesMeta: - "@swc/core": - optional: true - "@swc/wasm": - optional: true - bin: - ts-node: dist/bin.js - ts-node-cwd: dist/bin-cwd.js - ts-node-script: dist/bin-script.js - ts-node-transpile-only: dist/bin-transpile.js - ts-script: dist/bin-script-deprecated.js - checksum: 10c0/26edbf027fa6f6745f2db14391eb63cb63581442edca07124d47e6895fe4fa882a6c9374dc5d590a9a24a3132fb0a7a74e2067a364cd7d670ff1bbc3efbf2b64 - languageName: node - linkType: hard - "tsconfig-paths@npm:^3.14.1": version: 3.14.1 resolution: "tsconfig-paths@npm:3.14.1" @@ -18063,6 +18235,22 @@ __metadata: languageName: node linkType: hard +"tsx@npm:^4.20.6": + version: 4.20.6 + resolution: "tsx@npm:4.20.6" + dependencies: + esbuild: "npm:~0.25.0" + fsevents: "npm:~2.3.3" + get-tsconfig: "npm:^4.7.5" + dependenciesMeta: + fsevents: + optional: true + bin: + tsx: dist/cli.mjs + checksum: 10c0/07757a9bf62c271e0a00869b2008c5f2d6e648766536e4faf27d9d8027b7cde1ac8e4871f4bb570c99388bcee0018e6869dad98c07df809b8052f9c549cd216f + languageName: node + linkType: hard + "tuf-js@npm:^3.0.1": version: 3.1.0 resolution: "tuf-js@npm:3.1.0" @@ -18261,6 +18449,16 @@ __metadata: languageName: node linkType: hard +"typescript@npm:5.9.3": + version: 5.9.3 + resolution: "typescript@npm:5.9.3" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 10c0/6bd7552ce39f97e711db5aa048f6f9995b53f1c52f7d8667c1abdc1700c68a76a308f579cd309ce6b53646deb4e9a1be7c813a93baaf0a28ccd536a30270e1c5 + languageName: node + linkType: hard + "typescript@npm:>=3 < 6": version: 5.9.2 resolution: "typescript@npm:5.9.2" @@ -18271,13 +18469,13 @@ __metadata: languageName: node linkType: hard -"typescript@npm:~5.4.5": - version: 5.4.5 - resolution: "typescript@npm:5.4.5" +"typescript@patch:typescript@npm%3A5.9.3#optional!builtin": + version: 5.9.3 + resolution: "typescript@patch:typescript@npm%3A5.9.3#optional!builtin::version=5.9.3&hash=5786d5" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 10c0/2954022ada340fd3d6a9e2b8e534f65d57c92d5f3989a263754a78aba549f7e6529acc1921913560a4b816c46dce7df4a4d29f9f11a3dc0d4213bb76d043251e + checksum: 10c0/ad09fdf7a756814dce65bc60c1657b40d44451346858eea230e10f2e95a289d9183b6e32e5c11e95acc0ccc214b4f36289dcad4bf1886b0adb84d711d336a430 languageName: node linkType: hard @@ -18291,16 +18489,6 @@ __metadata: languageName: node linkType: hard -"typescript@patch:typescript@npm%3A~5.4.5#optional!builtin": - version: 5.4.5 - resolution: "typescript@patch:typescript@npm%3A5.4.5#optional!builtin::version=5.4.5&hash=5adc0c" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: 10c0/db2ad2a16ca829f50427eeb1da155e7a45e598eec7b086d8b4e8ba44e5a235f758e606d681c66992230d3fc3b8995865e5fd0b22a2c95486d0b3200f83072ec9 - languageName: node - linkType: hard - "uc.micro@npm:^1.0.1, uc.micro@npm:^1.0.5": version: 1.0.6 resolution: "uc.micro@npm:1.0.6" @@ -18329,13 +18517,6 @@ __metadata: languageName: node linkType: hard -"undici-types@npm:~5.26.4": - version: 5.26.5 - resolution: "undici-types@npm:5.26.5" - checksum: 10c0/bb673d7876c2d411b6eb6c560e0c571eef4a01c1c19925175d16e3a30c4c428181fb8d7ae802a261f283e4166a0ac435e2f505743aa9e45d893f9a3df017b501 - languageName: node - linkType: hard - "undici-types@npm:~6.20.0": version: 6.20.0 resolution: "undici-types@npm:6.20.0" @@ -18579,13 +18760,6 @@ __metadata: languageName: node linkType: hard -"v8-compile-cache-lib@npm:^3.0.0": - version: 3.0.0 - resolution: "v8-compile-cache-lib@npm:3.0.0" - checksum: 10c0/1763ce218ea74837509b9efc9a59c21b0f4816bdef6b41a165ba49e8d798954819fe266d6f54e5a46f92d3c42db2a83d5faa42aad8df60a21f76364cfb6cb258 - languageName: node - linkType: hard - "validate-npm-package-license@npm:3.0.4, validate-npm-package-license@npm:^3.0.1, validate-npm-package-license@npm:^3.0.4": version: 3.0.4 resolution: "validate-npm-package-license@npm:3.0.4" @@ -19537,13 +19711,6 @@ __metadata: languageName: node linkType: hard -"yn@npm:3.1.1": - version: 3.1.1 - resolution: "yn@npm:3.1.1" - checksum: 10c0/0732468dd7622ed8a274f640f191f3eaf1f39d5349a1b72836df484998d7d9807fbea094e2f5486d6b0cd2414aad5775972df0e68f8604db89a239f0f4bf7443 - languageName: node - linkType: hard - "yocto-queue@npm:^0.1.0": version: 0.1.0 resolution: "yocto-queue@npm:0.1.0" From 5988b0ba2b17a3c99bab8fb4a8540e2394b0003b Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Tue, 25 Nov 2025 23:28:50 -0800 Subject: [PATCH 03/62] ok --- packages/api/cli/package.json | 2 +- packages/api/core/package.json | 2 +- packages/maker/appx/package.json | 2 +- packages/maker/base/package.json | 2 +- packages/maker/deb/package.json | 2 +- packages/maker/deb/src/MakerDeb.ts | 2 +- packages/maker/dmg/package.json | 2 +- packages/maker/dmg/src/MakerDMG.ts | 2 +- packages/maker/flatpak/package.json | 2 +- packages/maker/flatpak/src/MakerFlatpak.ts | 2 +- packages/maker/msix/package.json | 2 +- packages/maker/msix/src/MakerMSIX.ts | 2 +- packages/maker/pkg/package.json | 2 +- packages/maker/pkg/src/MakerPKG.ts | 2 +- packages/maker/rpm/package.json | 2 +- packages/maker/rpm/src/MakerRpm.ts | 2 +- packages/maker/snap/package.json | 2 +- packages/maker/snap/src/MakerSnap.ts | 2 +- packages/maker/squirrel/package.json | 2 +- packages/maker/wix/package.json | 2 +- packages/maker/wix/src/MakerWix.ts | 2 +- packages/maker/zip/package.json | 2 +- packages/maker/zip/src/MakerZIP.ts | 2 +- packages/plugin/auto-unpack-natives/package.json | 2 +- .../auto-unpack-natives/src/AutoUnpackNativesPlugin.ts | 2 +- packages/plugin/base/package.json | 2 +- packages/plugin/fuses/package.json | 2 +- packages/plugin/local-electron/package.json | 2 +- packages/plugin/local-electron/src/LocalElectronPlugin.ts | 2 +- packages/plugin/vite/package.json | 2 +- packages/plugin/webpack/package.json | 2 +- packages/plugin/webpack/src/WebpackConfig.ts | 2 +- packages/plugin/webpack/src/WebpackPlugin.ts | 2 +- packages/publisher/base-static/package.json | 2 +- packages/publisher/base/package.json | 2 +- packages/publisher/bitbucket/package.json | 2 +- packages/publisher/bitbucket/src/PublisherBitbucket.ts | 2 +- packages/publisher/electron-release-server/package.json | 2 +- .../publisher/electron-release-server/src/PublisherERS.ts | 2 +- packages/publisher/gcs/package.json | 2 +- packages/publisher/github/package.json | 2 +- packages/publisher/github/src/PublisherGithub.ts | 2 +- packages/publisher/nucleus/package.json | 2 +- packages/publisher/nucleus/src/PublisherNucleus.ts | 2 +- packages/publisher/s3/package.json | 2 +- packages/publisher/s3/src/PublisherS3.ts | 2 +- packages/publisher/snapcraft/package.json | 2 +- packages/publisher/snapcraft/src/PublisherSnapcraft.ts | 2 +- packages/template/base/package.json | 2 +- packages/template/base/src/BaseTemplate.ts | 2 +- packages/template/vite-typescript/package.json | 2 +- packages/template/vite/package.json | 2 +- packages/template/webpack-typescript/package.json | 2 +- packages/template/webpack/package.json | 2 +- packages/utils/core-utils/package.json | 2 +- packages/utils/core-utils/src/index.ts | 8 ++++---- packages/utils/test-utils/package.json | 2 +- packages/utils/types/package.json | 2 +- packages/utils/web-multi-logger/package.json | 2 +- tools/doc-plugin/package.json | 2 +- 60 files changed, 63 insertions(+), 63 deletions(-) diff --git a/packages/api/cli/package.json b/packages/api/cli/package.json index ecfa94dcc2..575082e305 100644 --- a/packages/api/cli/package.json +++ b/packages/api/cli/package.json @@ -31,7 +31,7 @@ "semver": "^7.2.1" }, "engines": { - "node": ">= 16.4.0" + "node": ">= 22.12.0" }, "funding": [ { diff --git a/packages/api/core/package.json b/packages/api/core/package.json index f5548457e5..047f9fcaad 100644 --- a/packages/api/core/package.json +++ b/packages/api/core/package.json @@ -65,7 +65,7 @@ "username": "^5.1.0" }, "engines": { - "node": ">= 16.4.0" + "node": ">= 22.12.0" }, "funding": [ { diff --git a/packages/maker/appx/package.json b/packages/maker/appx/package.json index 4b39c33cf6..92d96b9844 100644 --- a/packages/maker/appx/package.json +++ b/packages/maker/appx/package.json @@ -12,7 +12,7 @@ "vitest": "^3.1.3" }, "engines": { - "node": ">= 16.4.0" + "node": ">= 22.12.0" }, "dependencies": { "@electron-forge/core-utils": "workspace:*", diff --git a/packages/maker/base/package.json b/packages/maker/base/package.json index cdefdddeba..1128273748 100644 --- a/packages/maker/base/package.json +++ b/packages/maker/base/package.json @@ -12,7 +12,7 @@ "vitest": "^3.1.3" }, "engines": { - "node": ">= 16.4.0" + "node": ">= 22.12.0" }, "dependencies": { "@electron-forge/shared-types": "workspace:*", diff --git a/packages/maker/deb/package.json b/packages/maker/deb/package.json index 1bf0d680d0..48a4059125 100644 --- a/packages/maker/deb/package.json +++ b/packages/maker/deb/package.json @@ -13,7 +13,7 @@ "vitest": "^3.1.3" }, "engines": { - "node": ">= 16.4.0" + "node": ">= 22.12.0" }, "dependencies": { "@electron-forge/maker-base": "workspace:*", diff --git a/packages/maker/deb/src/MakerDeb.ts b/packages/maker/deb/src/MakerDeb.ts index f34663fa2f..bd5339f37b 100644 --- a/packages/maker/deb/src/MakerDeb.ts +++ b/packages/maker/deb/src/MakerDeb.ts @@ -3,7 +3,7 @@ import path from 'node:path'; import { MakerBase, MakerOptions } from '@electron-forge/maker-base'; import { ForgeArch, ForgePlatform } from '@electron-forge/shared-types'; -import { MakerDebConfig } from './Config'; +import { MakerDebConfig } from './Config.js'; export function debianArch(nodeArch: ForgeArch): string { switch (nodeArch) { diff --git a/packages/maker/dmg/package.json b/packages/maker/dmg/package.json index 2e693d1ed1..cf1301b6c4 100644 --- a/packages/maker/dmg/package.json +++ b/packages/maker/dmg/package.json @@ -13,7 +13,7 @@ "vitest": "^3.1.3" }, "engines": { - "node": ">= 16.4.0" + "node": ">= 22.12.0" }, "dependencies": { "@electron-forge/maker-base": "workspace:*", diff --git a/packages/maker/dmg/src/MakerDMG.ts b/packages/maker/dmg/src/MakerDMG.ts index eeb4d158ae..3b136540ed 100644 --- a/packages/maker/dmg/src/MakerDMG.ts +++ b/packages/maker/dmg/src/MakerDMG.ts @@ -4,7 +4,7 @@ import { MakerBase, MakerOptions } from '@electron-forge/maker-base'; import { ForgePlatform } from '@electron-forge/shared-types'; import fs from 'fs-extra'; -import { MakerDMGConfig } from './Config'; +import { MakerDMGConfig } from './Config.js'; import type { ElectronInstallerDMGOptions } from 'electron-installer-dmg'; diff --git a/packages/maker/flatpak/package.json b/packages/maker/flatpak/package.json index 3c62208c3c..8d93345cb4 100644 --- a/packages/maker/flatpak/package.json +++ b/packages/maker/flatpak/package.json @@ -13,7 +13,7 @@ "vitest": "^3.1.3" }, "engines": { - "node": ">= 16.4.0" + "node": ">= 22.12.0" }, "dependencies": { "@electron-forge/maker-base": "workspace:*", diff --git a/packages/maker/flatpak/src/MakerFlatpak.ts b/packages/maker/flatpak/src/MakerFlatpak.ts index 86125af50d..893791e6ae 100644 --- a/packages/maker/flatpak/src/MakerFlatpak.ts +++ b/packages/maker/flatpak/src/MakerFlatpak.ts @@ -4,7 +4,7 @@ import { MakerBase, MakerOptions } from '@electron-forge/maker-base'; import { ForgeArch, ForgePlatform } from '@electron-forge/shared-types'; import fs from 'fs-extra'; -import { MakerFlatpakConfig } from './Config'; +import { MakerFlatpakConfig } from './Config.js'; export function flatpakArch(nodeArch: ForgeArch): string { switch (nodeArch) { diff --git a/packages/maker/msix/package.json b/packages/maker/msix/package.json index 599eb86f4b..e749c1f84c 100644 --- a/packages/maker/msix/package.json +++ b/packages/maker/msix/package.json @@ -12,7 +12,7 @@ "vitest": "^3.1.3" }, "engines": { - "node": ">= 16.4.0" + "node": ">= 22.12.0" }, "dependencies": { "@electron-forge/core-utils": "workspace:*", diff --git a/packages/maker/msix/src/MakerMSIX.ts b/packages/maker/msix/src/MakerMSIX.ts index 70d2463767..43a588ef31 100644 --- a/packages/maker/msix/src/MakerMSIX.ts +++ b/packages/maker/msix/src/MakerMSIX.ts @@ -7,7 +7,7 @@ import { ForgePlatform } from '@electron-forge/shared-types'; import { packageMSIX } from 'electron-windows-msix'; import fs from 'fs-extra'; -import { MakerMSIXConfig } from './Config'; +import { MakerMSIXConfig } from './Config.js'; import { toMsixArch } from './util/arch'; /** diff --git a/packages/maker/pkg/package.json b/packages/maker/pkg/package.json index a43052ec03..c7062e87e9 100644 --- a/packages/maker/pkg/package.json +++ b/packages/maker/pkg/package.json @@ -12,7 +12,7 @@ "vitest": "^3.1.3" }, "engines": { - "node": ">= 16.4.0" + "node": ">= 22.12.0" }, "dependencies": { "@electron-forge/maker-base": "workspace:*", diff --git a/packages/maker/pkg/src/MakerPKG.ts b/packages/maker/pkg/src/MakerPKG.ts index 28615e77b9..0484c2628a 100644 --- a/packages/maker/pkg/src/MakerPKG.ts +++ b/packages/maker/pkg/src/MakerPKG.ts @@ -4,7 +4,7 @@ import { flatAsync } from '@electron/osx-sign'; import { MakerBase, MakerOptions } from '@electron-forge/maker-base'; import { ForgePlatform } from '@electron-forge/shared-types'; -import { MakerPKGConfig } from './Config'; +import { MakerPKGConfig } from './Config.js'; export default class MakerPKG extends MakerBase { name = 'pkg'; diff --git a/packages/maker/rpm/package.json b/packages/maker/rpm/package.json index 63d1787de9..e09055aaa2 100644 --- a/packages/maker/rpm/package.json +++ b/packages/maker/rpm/package.json @@ -13,7 +13,7 @@ "vitest": "^3.1.3" }, "engines": { - "node": ">= 16.4.0" + "node": ">= 22.12.0" }, "dependencies": { "@electron-forge/maker-base": "workspace:*", diff --git a/packages/maker/rpm/src/MakerRpm.ts b/packages/maker/rpm/src/MakerRpm.ts index eda59c6f78..53b1965dea 100644 --- a/packages/maker/rpm/src/MakerRpm.ts +++ b/packages/maker/rpm/src/MakerRpm.ts @@ -3,7 +3,7 @@ import path from 'node:path'; import { MakerBase, MakerOptions } from '@electron-forge/maker-base'; import { ForgeArch, ForgePlatform } from '@electron-forge/shared-types'; -import { MakerRpmConfig } from './Config'; +import { MakerRpmConfig } from './Config.js'; function renameRpm(dest: string, _src: string): string { return path.join( diff --git a/packages/maker/snap/package.json b/packages/maker/snap/package.json index fe3b2f3a90..c07aa845eb 100644 --- a/packages/maker/snap/package.json +++ b/packages/maker/snap/package.json @@ -12,7 +12,7 @@ "vitest": "^3.1.3" }, "engines": { - "node": ">= 16.4.0" + "node": ">= 22.12.0" }, "dependencies": { "@electron-forge/maker-base": "workspace:*", diff --git a/packages/maker/snap/src/MakerSnap.ts b/packages/maker/snap/src/MakerSnap.ts index 3fe33bbe0c..b10a0045cf 100644 --- a/packages/maker/snap/src/MakerSnap.ts +++ b/packages/maker/snap/src/MakerSnap.ts @@ -3,7 +3,7 @@ import path from 'node:path'; import { MakerBase, MakerOptions } from '@electron-forge/maker-base'; import { ForgePlatform } from '@electron-forge/shared-types'; -import { MakerSnapConfig } from './Config'; +import { MakerSnapConfig } from './Config.js'; export default class MakerSnap extends MakerBase { name = 'snap'; diff --git a/packages/maker/squirrel/package.json b/packages/maker/squirrel/package.json index a9493688e6..fd2fe80e4b 100644 --- a/packages/maker/squirrel/package.json +++ b/packages/maker/squirrel/package.json @@ -9,7 +9,7 @@ "main": "dist/MakerSquirrel.js", "typings": "dist/MakerSquirrel.d.ts", "engines": { - "node": ">= 16.4.0" + "node": ">= 22.12.0" }, "dependencies": { "@electron-forge/maker-base": "workspace:*", diff --git a/packages/maker/wix/package.json b/packages/maker/wix/package.json index 34c79b5275..e3430b07ee 100644 --- a/packages/maker/wix/package.json +++ b/packages/maker/wix/package.json @@ -12,7 +12,7 @@ "vitest": "^3.1.3" }, "engines": { - "node": ">= 16.4.0" + "node": ">= 22.12.0" }, "dependencies": { "@electron-forge/core-utils": "workspace:*", diff --git a/packages/maker/wix/src/MakerWix.ts b/packages/maker/wix/src/MakerWix.ts index a9f967cb7e..407068b606 100644 --- a/packages/maker/wix/src/MakerWix.ts +++ b/packages/maker/wix/src/MakerWix.ts @@ -8,7 +8,7 @@ import { MSICreator, MSICreatorOptions } from 'electron-wix-msi/lib/creator'; import logSymbols from 'log-symbols'; import semver from 'semver'; -import { MakerWixConfig } from './Config'; +import { MakerWixConfig } from './Config.js'; export default class MakerWix extends MakerBase { name = 'wix'; diff --git a/packages/maker/zip/package.json b/packages/maker/zip/package.json index 2685f14016..0728e7ed01 100644 --- a/packages/maker/zip/package.json +++ b/packages/maker/zip/package.json @@ -13,7 +13,7 @@ "vitest": "^3.1.3" }, "engines": { - "node": ">= 16.4.0" + "node": ">= 22.12.0" }, "dependencies": { "@electron-forge/maker-base": "workspace:*", diff --git a/packages/maker/zip/src/MakerZIP.ts b/packages/maker/zip/src/MakerZIP.ts index 8d5da563a6..b034ab9ff9 100644 --- a/packages/maker/zip/src/MakerZIP.ts +++ b/packages/maker/zip/src/MakerZIP.ts @@ -6,7 +6,7 @@ import { ForgePlatform } from '@electron-forge/shared-types'; import fs from 'fs-extra'; import got from 'got'; -import { MakerZIPConfig } from './Config'; +import { MakerZIPConfig } from './Config.js'; type SquirrelMacRelease = { version: string; diff --git a/packages/plugin/auto-unpack-natives/package.json b/packages/plugin/auto-unpack-natives/package.json index 08ea96f7c6..d899a541b0 100644 --- a/packages/plugin/auto-unpack-natives/package.json +++ b/packages/plugin/auto-unpack-natives/package.json @@ -9,7 +9,7 @@ "main": "dist/AutoUnpackNativesPlugin.js", "typings": "dist/AutoUnpackNativesPlugin.d.ts", "engines": { - "node": ">= 16.4.0" + "node": ">= 22.12.0" }, "dependencies": { "@electron-forge/plugin-base": "workspace:*", diff --git a/packages/plugin/auto-unpack-natives/src/AutoUnpackNativesPlugin.ts b/packages/plugin/auto-unpack-natives/src/AutoUnpackNativesPlugin.ts index aed54e54b5..acdcdbae2e 100644 --- a/packages/plugin/auto-unpack-natives/src/AutoUnpackNativesPlugin.ts +++ b/packages/plugin/auto-unpack-natives/src/AutoUnpackNativesPlugin.ts @@ -1,7 +1,7 @@ import { PluginBase } from '@electron-forge/plugin-base'; import { ForgeHookFn, ForgeHookMap } from '@electron-forge/shared-types'; -import { AutoUnpackNativesConfig } from './Config'; +import { AutoUnpackNativesConfig } from './Config.js'; export default class AutoUnpackNativesPlugin extends PluginBase { name = 'auto-unpack-natives'; diff --git a/packages/plugin/base/package.json b/packages/plugin/base/package.json index 41b3b2ab13..0c9eae0968 100644 --- a/packages/plugin/base/package.json +++ b/packages/plugin/base/package.json @@ -9,7 +9,7 @@ "main": "dist/Plugin.js", "typings": "dist/Plugin.d.ts", "engines": { - "node": ">= 16.4.0" + "node": ">= 22.12.0" }, "dependencies": { "@electron-forge/shared-types": "workspace:*" diff --git a/packages/plugin/fuses/package.json b/packages/plugin/fuses/package.json index 008d18b7cb..2bdcd14ec3 100644 --- a/packages/plugin/fuses/package.json +++ b/packages/plugin/fuses/package.json @@ -23,7 +23,7 @@ "@electron/fuses": "^1.0.0" }, "engines": { - "node": ">= 16.4.0" + "node": ">= 22.12.0" }, "dependencies": { "@electron-forge/plugin-base": "workspace:*", diff --git a/packages/plugin/local-electron/package.json b/packages/plugin/local-electron/package.json index a3340163c8..5a5e707309 100644 --- a/packages/plugin/local-electron/package.json +++ b/packages/plugin/local-electron/package.json @@ -9,7 +9,7 @@ "main": "dist/LocalElectronPlugin.js", "typings": "dist/LocalElectronPlugin.d.ts", "engines": { - "node": ">= 16.4.0" + "node": ">= 22.12.0" }, "dependencies": { "@electron-forge/plugin-base": "workspace:*", diff --git a/packages/plugin/local-electron/src/LocalElectronPlugin.ts b/packages/plugin/local-electron/src/LocalElectronPlugin.ts index 5911a5e35a..51f2df588e 100644 --- a/packages/plugin/local-electron/src/LocalElectronPlugin.ts +++ b/packages/plugin/local-electron/src/LocalElectronPlugin.ts @@ -2,7 +2,7 @@ import { PluginBase } from '@electron-forge/plugin-base'; import { ForgeHookFn, ForgeHookMap } from '@electron-forge/shared-types'; import fs from 'fs-extra'; -import { LocalElectronPluginConfig } from './Config'; +import { LocalElectronPluginConfig } from './Config.js'; export default class LocalElectronPlugin extends PluginBase { name = 'local-electron'; diff --git a/packages/plugin/vite/package.json b/packages/plugin/vite/package.json index 343e1b8422..43d06be10b 100644 --- a/packages/plugin/vite/package.json +++ b/packages/plugin/vite/package.json @@ -30,7 +30,7 @@ "xvfb-maybe": "^0.2.1" }, "engines": { - "node": ">= 16.4.0" + "node": ">= 22.12.0" }, "publishConfig": { "access": "public" diff --git a/packages/plugin/webpack/package.json b/packages/plugin/webpack/package.json index 00afb045fb..39f487629e 100644 --- a/packages/plugin/webpack/package.json +++ b/packages/plugin/webpack/package.json @@ -17,7 +17,7 @@ "xvfb-maybe": "^0.2.1" }, "engines": { - "node": ">= 16.4.0" + "node": ">= 22.12.0" }, "dependencies": { "@electron-forge/core-utils": "workspace:*", diff --git a/packages/plugin/webpack/src/WebpackConfig.ts b/packages/plugin/webpack/src/WebpackConfig.ts index 6b6c7bfd84..e2638acacc 100644 --- a/packages/plugin/webpack/src/WebpackConfig.ts +++ b/packages/plugin/webpack/src/WebpackConfig.ts @@ -11,7 +11,7 @@ import { WebpackPluginEntryPointLocalWindow, WebpackPluginEntryPointPreloadOnly, WebpackPluginRendererConfig, -} from './Config'; +} from './Config.js'; import AssetRelocatorPatch from './util/AssetRelocatorPatch'; import processConfig from './util/processConfig'; import { diff --git a/packages/plugin/webpack/src/WebpackPlugin.ts b/packages/plugin/webpack/src/WebpackPlugin.ts index 90dfc7084c..122c9248f0 100644 --- a/packages/plugin/webpack/src/WebpackPlugin.ts +++ b/packages/plugin/webpack/src/WebpackPlugin.ts @@ -23,7 +23,7 @@ import webpack, { Configuration, Watching } from 'webpack'; import WebpackDevServer from 'webpack-dev-server'; import { merge } from 'webpack-merge'; -import { WebpackPluginConfig, WebpackPluginRendererConfig } from './Config'; +import { WebpackPluginConfig, WebpackPluginRendererConfig } from './Config.js'; import ElectronForgeLoggingPlugin from './util/ElectronForgeLogging'; import EntryPointPreloadPlugin from './util/EntryPointPreloadPlugin'; import once from './util/once'; diff --git a/packages/publisher/base-static/package.json b/packages/publisher/base-static/package.json index 00bb1f1b72..5558df8bf0 100644 --- a/packages/publisher/base-static/package.json +++ b/packages/publisher/base-static/package.json @@ -16,7 +16,7 @@ "vitest": "^3.1.3" }, "engines": { - "node": ">= 16.4.0" + "node": ">= 22.12.0" }, "publishConfig": { "access": "public" diff --git a/packages/publisher/base/package.json b/packages/publisher/base/package.json index 61ede6a780..cc685d03fa 100644 --- a/packages/publisher/base/package.json +++ b/packages/publisher/base/package.json @@ -15,7 +15,7 @@ "vitest": "^3.1.3" }, "engines": { - "node": ">= 16.4.0" + "node": ">= 22.12.0" }, "publishConfig": { "access": "public" diff --git a/packages/publisher/bitbucket/package.json b/packages/publisher/bitbucket/package.json index 32e6bdc710..3c8935038d 100644 --- a/packages/publisher/bitbucket/package.json +++ b/packages/publisher/bitbucket/package.json @@ -9,7 +9,7 @@ "main": "dist/PublisherBitbucket.js", "typings": "dist/PublisherBitbucket.d.ts", "engines": { - "node": ">= 16.4.0" + "node": ">= 22.12.0" }, "dependencies": { "@electron-forge/publisher-base": "workspace:*", diff --git a/packages/publisher/bitbucket/src/PublisherBitbucket.ts b/packages/publisher/bitbucket/src/PublisherBitbucket.ts index 0565706666..82af7b540a 100644 --- a/packages/publisher/bitbucket/src/PublisherBitbucket.ts +++ b/packages/publisher/bitbucket/src/PublisherBitbucket.ts @@ -8,7 +8,7 @@ import FormData from 'form-data'; import fs from 'fs-extra'; import fetch from 'node-fetch'; -import { PublisherBitbucketConfig } from './Config'; +import { PublisherBitbucketConfig } from './Config.js'; export default class PublisherBitbucket extends PublisherBase { name = 'bitbucket'; diff --git a/packages/publisher/electron-release-server/package.json b/packages/publisher/electron-release-server/package.json index e3b8b9dfad..3e48f9a265 100644 --- a/packages/publisher/electron-release-server/package.json +++ b/packages/publisher/electron-release-server/package.json @@ -13,7 +13,7 @@ "vitest": "^3.1.3" }, "engines": { - "node": ">= 16.4.0" + "node": ">= 22.12.0" }, "dependencies": { "@electron-forge/publisher-base": "workspace:*", diff --git a/packages/publisher/electron-release-server/src/PublisherERS.ts b/packages/publisher/electron-release-server/src/PublisherERS.ts index e681b11afd..31385a21bc 100644 --- a/packages/publisher/electron-release-server/src/PublisherERS.ts +++ b/packages/publisher/electron-release-server/src/PublisherERS.ts @@ -10,7 +10,7 @@ import FormData from 'form-data'; import fs from 'fs-extra'; import fetch, { RequestInfo, RequestInit, Response } from 'node-fetch'; -import { PublisherERSConfig } from './Config'; +import { PublisherERSConfig } from './Config.js'; const d = debug('electron-forge:publish:ers'); diff --git a/packages/publisher/gcs/package.json b/packages/publisher/gcs/package.json index c1f2dd617e..93b65229a5 100644 --- a/packages/publisher/gcs/package.json +++ b/packages/publisher/gcs/package.json @@ -9,7 +9,7 @@ "main": "dist/PublisherGCS.js", "typings": "dist/PublisherGCS.d.ts", "engines": { - "node": ">= 16.4.0" + "node": ">= 22.12.0" }, "dependencies": { "@electron-forge/publisher-static": "workspace:*", diff --git a/packages/publisher/github/package.json b/packages/publisher/github/package.json index 2bfc201d70..173b8b9987 100644 --- a/packages/publisher/github/package.json +++ b/packages/publisher/github/package.json @@ -12,7 +12,7 @@ "vitest": "^3.1.3" }, "engines": { - "node": ">= 16.4.0" + "node": ">= 22.12.0" }, "dependencies": { "@electron-forge/publisher-base": "workspace:*", diff --git a/packages/publisher/github/src/PublisherGithub.ts b/packages/publisher/github/src/PublisherGithub.ts index 87984f1e54..083939a24d 100644 --- a/packages/publisher/github/src/PublisherGithub.ts +++ b/packages/publisher/github/src/PublisherGithub.ts @@ -12,7 +12,7 @@ import fs from 'fs-extra'; import logSymbols from 'log-symbols'; import mime from 'mime-types'; -import { PublisherGitHubConfig } from './Config'; +import { PublisherGitHubConfig } from './Config.js'; import GitHub from './util/github'; import NoReleaseError from './util/no-release-error'; diff --git a/packages/publisher/nucleus/package.json b/packages/publisher/nucleus/package.json index d8bbf19cce..9486f10833 100644 --- a/packages/publisher/nucleus/package.json +++ b/packages/publisher/nucleus/package.json @@ -9,7 +9,7 @@ "main": "dist/PublisherNucleus.js", "typings": "dist/PublisherNucleus.d.ts", "engines": { - "node": ">= 16.4.0" + "node": ">= 22.12.0" }, "dependencies": { "@electron-forge/publisher-base": "workspace:*", diff --git a/packages/publisher/nucleus/src/PublisherNucleus.ts b/packages/publisher/nucleus/src/PublisherNucleus.ts index 9a860ac146..80a83cb147 100644 --- a/packages/publisher/nucleus/src/PublisherNucleus.ts +++ b/packages/publisher/nucleus/src/PublisherNucleus.ts @@ -9,7 +9,7 @@ import debug from 'debug'; import FormData from 'form-data'; import fetch from 'node-fetch'; -import { PublisherNucleusConfig } from './Config'; +import { PublisherNucleusConfig } from './Config.js'; const d = debug('electron-forge:publish:nucleus'); diff --git a/packages/publisher/s3/package.json b/packages/publisher/s3/package.json index 9de0d5aa89..24ed79f68f 100644 --- a/packages/publisher/s3/package.json +++ b/packages/publisher/s3/package.json @@ -9,7 +9,7 @@ "main": "dist/PublisherS3.js", "typings": "dist/PublisherS3.d.ts", "engines": { - "node": ">= 16.4.0" + "node": ">= 22.12.0" }, "dependencies": { "@aws-sdk/client-s3": "^3.654.0", diff --git a/packages/publisher/s3/src/PublisherS3.ts b/packages/publisher/s3/src/PublisherS3.ts index ac3534ddff..3299a64488 100644 --- a/packages/publisher/s3/src/PublisherS3.ts +++ b/packages/publisher/s3/src/PublisherS3.ts @@ -10,7 +10,7 @@ import { } from '@electron-forge/publisher-static'; import debug from 'debug'; -import { PublisherS3Config } from './Config'; +import { PublisherS3Config } from './Config.js'; const d = debug('electron-forge:publish:s3'); diff --git a/packages/publisher/snapcraft/package.json b/packages/publisher/snapcraft/package.json index 0d3280a655..f4a5a2bced 100644 --- a/packages/publisher/snapcraft/package.json +++ b/packages/publisher/snapcraft/package.json @@ -9,7 +9,7 @@ "main": "dist/PublisherSnapcraft.js", "typings": "dist/PublisherSnapcraft.d.ts", "engines": { - "node": ">= 16.4.0" + "node": ">= 22.12.0" }, "dependencies": { "@electron-forge/publisher-base": "workspace:*", diff --git a/packages/publisher/snapcraft/src/PublisherSnapcraft.ts b/packages/publisher/snapcraft/src/PublisherSnapcraft.ts index 8677acd7fb..4dbebf6513 100644 --- a/packages/publisher/snapcraft/src/PublisherSnapcraft.ts +++ b/packages/publisher/snapcraft/src/PublisherSnapcraft.ts @@ -6,7 +6,7 @@ import { } from '@electron-forge/publisher-base'; import fs from 'fs-extra'; -import { PublisherSnapcraftConfig } from './Config'; +import { PublisherSnapcraftConfig } from './Config.js'; // TODO: convert to import statement once electron-installer-snap imports Snapcraft properly. // eslint-disable-next-line @typescript-eslint/no-require-imports diff --git a/packages/template/base/package.json b/packages/template/base/package.json index ddecc40f85..cd98845d77 100644 --- a/packages/template/base/package.json +++ b/packages/template/base/package.json @@ -9,7 +9,7 @@ "main": "dist/BaseTemplate.js", "typings": "dist/BaseTemplate.d.ts", "engines": { - "node": ">= 16.4.0" + "node": ">= 22.12.0" }, "dependencies": { "@electron-forge/core-utils": "workspace:*", diff --git a/packages/template/base/src/BaseTemplate.ts b/packages/template/base/src/BaseTemplate.ts index 5bc5ad32af..6ad7dc7921 100644 --- a/packages/template/base/src/BaseTemplate.ts +++ b/packages/template/base/src/BaseTemplate.ts @@ -10,7 +10,7 @@ import debug from 'debug'; import fs from 'fs-extra'; import semver from 'semver'; -import determineAuthor from './determine-author'; +import determineAuthor from './determine-author.js'; // eslint-disable-next-line @typescript-eslint/no-require-imports const currentForgeVersion = require('../package.json').version; diff --git a/packages/template/vite-typescript/package.json b/packages/template/vite-typescript/package.json index 37c33b99c8..9c4eee158f 100644 --- a/packages/template/vite-typescript/package.json +++ b/packages/template/vite-typescript/package.json @@ -13,7 +13,7 @@ "main": "dist/ViteTypeScriptTemplate.js", "typings": "dist/ViteTypeScriptTemplate.d.ts", "engines": { - "node": ">= 16.4.0" + "node": ">= 22.12.0" }, "dependencies": { "@electron-forge/shared-types": "workspace:*", diff --git a/packages/template/vite/package.json b/packages/template/vite/package.json index 9ad02370da..0cb3886179 100644 --- a/packages/template/vite/package.json +++ b/packages/template/vite/package.json @@ -13,7 +13,7 @@ "main": "dist/ViteTemplate.js", "typings": "dist/ViteTemplate.d.ts", "engines": { - "node": ">= 16.4.0" + "node": ">= 22.12.0" }, "dependencies": { "@electron-forge/shared-types": "workspace:*", diff --git a/packages/template/webpack-typescript/package.json b/packages/template/webpack-typescript/package.json index ab29f70432..60df394a3c 100644 --- a/packages/template/webpack-typescript/package.json +++ b/packages/template/webpack-typescript/package.json @@ -9,7 +9,7 @@ "main": "dist/WebpackTypeScriptTemplate.js", "typings": "dist/WebpackTypeScriptTemplate.d.ts", "engines": { - "node": ">= 16.4.0" + "node": ">= 22.12.0" }, "dependencies": { "@electron-forge/shared-types": "workspace:*", diff --git a/packages/template/webpack/package.json b/packages/template/webpack/package.json index 29d0788b6b..1618feb208 100644 --- a/packages/template/webpack/package.json +++ b/packages/template/webpack/package.json @@ -9,7 +9,7 @@ "main": "dist/WebpackTemplate.js", "typings": "dist/WebpackTemplate.d.ts", "engines": { - "node": ">= 16.4.0" + "node": ">= 22.12.0" }, "dependencies": { "@electron-forge/shared-types": "workspace:*", diff --git a/packages/utils/core-utils/package.json b/packages/utils/core-utils/package.json index 8fa255b241..855140098e 100644 --- a/packages/utils/core-utils/package.json +++ b/packages/utils/core-utils/package.json @@ -21,7 +21,7 @@ "semver": "^7.2.1" }, "engines": { - "node": ">= 16.4.0" + "node": ">= 22.12.0" }, "devDependencies": { "vitest": "^3.1.3" diff --git a/packages/utils/core-utils/src/index.ts b/packages/utils/core-utils/src/index.ts index df2fe5fcf1..ac08af9b44 100644 --- a/packages/utils/core-utils/src/index.ts +++ b/packages/utils/core-utils/src/index.ts @@ -1,4 +1,4 @@ -export * from './rebuild'; -export * from './electron-version'; -export * from './package-manager'; -export * from './author-name'; +export * from './rebuild.js'; +export * from './electron-version.js'; +export * from './package-manager.js'; +export * from './author-name.js'; diff --git a/packages/utils/test-utils/package.json b/packages/utils/test-utils/package.json index 2ab9a535c7..bce8b1698e 100644 --- a/packages/utils/test-utils/package.json +++ b/packages/utils/test-utils/package.json @@ -12,7 +12,7 @@ "@malept/cross-spawn-promise": "^2.0.0" }, "engines": { - "node": ">= 16.4.0" + "node": ">= 22.12.0" }, "publishConfig": { "access": "public" diff --git a/packages/utils/types/package.json b/packages/utils/types/package.json index 48d17f909d..b571165c64 100644 --- a/packages/utils/types/package.json +++ b/packages/utils/types/package.json @@ -15,7 +15,7 @@ "listr2": "^7.0.2" }, "engines": { - "node": ">= 16.4.0" + "node": ">= 22.12.0" }, "publishConfig": { "access": "public" diff --git a/packages/utils/web-multi-logger/package.json b/packages/utils/web-multi-logger/package.json index 5aafc74b2d..71f6811d77 100644 --- a/packages/utils/web-multi-logger/package.json +++ b/packages/utils/web-multi-logger/package.json @@ -16,7 +16,7 @@ "xterm-addon-search": "^0.8.0" }, "engines": { - "node": ">= 16.4.0" + "node": ">= 22.12.0" }, "publishConfig": { "access": "public" diff --git a/tools/doc-plugin/package.json b/tools/doc-plugin/package.json index 3da9411694..79de434704 100644 --- a/tools/doc-plugin/package.json +++ b/tools/doc-plugin/package.json @@ -9,7 +9,7 @@ "custom-sidebar" ], "engines": { - "node": ">= 16.4.0" + "node": ">= 22.12.0" }, "devDependencies": { "typescript": "5.9.3" From ed6ff670b6c67e5ae31d1604e1e1fb6e6cc03429 Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Tue, 25 Nov 2025 23:44:26 -0800 Subject: [PATCH 04/62] mechanical updates --- package.json | 4 +- packages/api/cli/src/electron-forge-import.ts | 4 +- packages/api/cli/src/electron-forge-init.ts | 4 +- packages/api/cli/src/electron-forge-make.ts | 4 +- .../api/cli/src/electron-forge-package.ts | 4 +- .../api/cli/src/electron-forge-publish.ts | 6 +- packages/api/cli/src/electron-forge-start.ts | 4 +- packages/api/cli/src/electron-forge.ts | 5 +- packages/api/core/package.json | 3 +- .../spec/fast/init-scripts/init-git.spec.ts | 2 +- .../spec/fast/init-scripts/init-npm.spec.ts | 8 +- packages/api/core/spec/fast/publish.spec.ts | 4 +- packages/api/core/spec/fast/start.spec.ts | 6 +- .../core/spec/fast/util/forge-config.spec.ts | 2 +- packages/api/core/spec/fast/util/hook.spec.ts | 2 +- .../core/spec/fast/util/import-search.spec.ts | 4 +- .../fast/util/install-dependencies.spec.ts | 2 +- .../spec/fast/util/read-package-json.spec.ts | 2 +- .../core/spec/fast/util/resolve-dir.spec.ts | 4 +- .../fast/util/upgrade-forge-config.spec.ts | 2 +- packages/api/core/spec/slow/api.slow.spec.ts | 4 +- .../slow/install-dependencies.slow.spec.ts | 2 +- packages/api/core/src/api/import.ts | 10 +- packages/api/core/src/api/index.ts | 15 +- .../src/api/init-scripts/find-template.ts | 2 +- .../core/src/api/init-scripts/init-link.ts | 2 +- .../api/core/src/api/init-scripts/init-npm.ts | 2 +- packages/api/core/src/api/init.ts | 14 +- packages/api/core/src/api/make.ts | 18 +- packages/api/core/src/api/package.ts | 14 +- packages/api/core/src/api/publish.ts | 13 +- packages/api/core/src/api/start.ts | 10 +- packages/api/core/src/util/forge-config.ts | 6 +- packages/api/core/src/util/index.ts | 2 +- .../api/core/src/util/plugin-interface.ts | 5 +- .../api/core/src/util/read-package-json.ts | 2 +- packages/api/core/src/util/resolve-dir.ts | 4 +- .../api/core/src/util/upgrade-forge-config.ts | 2 +- packages/maker/msix/src/MakerMSIX.ts | 2 +- packages/maker/zip/package.json | 2 +- packages/plugin/fuses/src/FusesPlugin.ts | 2 +- packages/plugin/webpack/src/Config.ts | 2 +- packages/plugin/webpack/src/WebpackConfig.ts | 6 +- packages/plugin/webpack/src/WebpackPlugin.ts | 8 +- .../src/util/EntryPointPreloadPlugin.ts | 2 +- .../plugin/webpack/src/util/processConfig.ts | 2 +- .../webpack/src/util/rendererTypeUtils.ts | 2 +- packages/publisher/bitbucket/package.json | 3 +- .../bitbucket/src/PublisherBitbucket.ts | 1 - .../electron-release-server/package.json | 3 +- .../publisher/github/src/PublisherGithub.ts | 4 +- packages/publisher/nucleus/package.json | 3 +- .../publisher/nucleus/src/PublisherNucleus.ts | 1 - .../core-utils/spec/electron-version.spec.ts | 2 +- packages/utils/web-multi-logger/src/Logger.ts | 2 +- packages/utils/web-multi-logger/src/Tab.ts | 2 +- tools/sync-readmes.ts | 1 - yarn.lock | 224 ++++++++++++++---- 58 files changed, 299 insertions(+), 178 deletions(-) diff --git a/package.json b/package.json index f3ac8b02e1..7cbc5d14c8 100644 --- a/package.json +++ b/package.json @@ -58,7 +58,7 @@ "form-data": "^4.0.0", "fs-extra": "^10.0.0", "global-dirs": "^3.0.0", - "got": "^11.8.5", + "got": "^14.0.0", "html-webpack-plugin": "^5.5.3", "interpret": "^3.1.1", "jiti": "^2.4.2", @@ -66,7 +66,6 @@ "lodash": "^4.17.20", "log-symbols": "^4.0.0", "mime-types": "^2.1.25", - "node-fetch": "^2.6.7", "parse-author": "^2.0.0", "rechoir": "^0.8.0", "semver": "^7.2.1", @@ -98,7 +97,6 @@ "@types/mime-types": "^2.1.0", "@types/minimist": "^1.2.0", "@types/node": "~22.10.7", - "@types/node-fetch": "^2.5.5", "@types/rechoir": "^0.6.1", "@types/semver": "^7.3.4", "@types/which": "^2.0.0", diff --git a/packages/api/cli/src/electron-forge-import.ts b/packages/api/cli/src/electron-forge-import.ts index fbde84eedf..ec8df9dfc1 100644 --- a/packages/api/cli/src/electron-forge-import.ts +++ b/packages/api/cli/src/electron-forge-import.ts @@ -2,9 +2,9 @@ import { api } from '@electron-forge/core'; import { program } from 'commander'; import './util/terminate'; -import packageJSON from '../package.json'; +import packageJSON from '../package.json' with { type: 'json' }; -import { resolveWorkingDir } from './util/resolve-working-dir'; +import { resolveWorkingDir } from './util/resolve-working-dir.js'; program .version(packageJSON.version, '-V, --version', 'Output the current version.') diff --git a/packages/api/cli/src/electron-forge-init.ts b/packages/api/cli/src/electron-forge-init.ts index f25ac25739..d9c56fc5cb 100644 --- a/packages/api/cli/src/electron-forge-init.ts +++ b/packages/api/cli/src/electron-forge-init.ts @@ -8,9 +8,9 @@ import { program } from 'commander'; import { Listr } from 'listr2'; import './util/terminate'; -import packageJSON from '../package.json'; +import packageJSON from '../package.json' with { type: 'json' }; -import { resolveWorkingDir } from './util/resolve-working-dir'; +import { resolveWorkingDir } from './util/resolve-working-dir.js'; // eslint-disable-next-line n/no-extraneous-import -- we get this from `@inquirer/prompts` import type { Prompt } from '@inquirer/type'; diff --git a/packages/api/cli/src/electron-forge-make.ts b/packages/api/cli/src/electron-forge-make.ts index 2da4ae0bc3..f5ab3063e5 100644 --- a/packages/api/cli/src/electron-forge-make.ts +++ b/packages/api/cli/src/electron-forge-make.ts @@ -4,9 +4,9 @@ import chalk from 'chalk'; import { program } from 'commander'; import './util/terminate'; -import packageJSON from '../package.json'; +import packageJSON from '../package.json' with { type: 'json' }; -import { resolveWorkingDir } from './util/resolve-working-dir'; +import { resolveWorkingDir } from './util/resolve-working-dir.js'; export async function getMakeOptions(): Promise { let workingDir: string; diff --git a/packages/api/cli/src/electron-forge-package.ts b/packages/api/cli/src/electron-forge-package.ts index 8e6e273566..6365f269cf 100644 --- a/packages/api/cli/src/electron-forge-package.ts +++ b/packages/api/cli/src/electron-forge-package.ts @@ -3,9 +3,9 @@ import { api, PackageOptions } from '@electron-forge/core'; import { program } from 'commander'; import './util/terminate'; -import packageJSON from '../package.json'; +import packageJSON from '../package.json' with { type: 'json' }; -import { resolveWorkingDir } from './util/resolve-working-dir'; +import { resolveWorkingDir } from './util/resolve-working-dir.js'; program .version(packageJSON.version, '-V, --version', 'Output the current version') diff --git a/packages/api/cli/src/electron-forge-publish.ts b/packages/api/cli/src/electron-forge-publish.ts index e331c7becd..dbd3dd6634 100644 --- a/packages/api/cli/src/electron-forge-publish.ts +++ b/packages/api/cli/src/electron-forge-publish.ts @@ -4,10 +4,10 @@ import chalk from 'chalk'; import { program } from 'commander'; import './util/terminate'; -import packageJSON from '../package.json'; +import packageJSON from '../package.json' with { type: 'json' }; -import { getMakeOptions } from './electron-forge-make'; -import { resolveWorkingDir } from './util/resolve-working-dir'; +import { getMakeOptions } from './electron-forge-make.js'; +import { resolveWorkingDir } from './util/resolve-working-dir.js'; program .version(packageJSON.version, '-V, --version', 'Output the current version.') diff --git a/packages/api/cli/src/electron-forge-start.ts b/packages/api/cli/src/electron-forge-start.ts index 1af1cb3e71..90fc1dd8d3 100644 --- a/packages/api/cli/src/electron-forge-start.ts +++ b/packages/api/cli/src/electron-forge-start.ts @@ -3,9 +3,9 @@ import { ElectronProcess } from '@electron-forge/shared-types'; import { Option, program } from 'commander'; import './util/terminate'; -import packageJSON from '../package.json'; +import packageJSON from '../package.json' with { type: 'json' }; -import { resolveWorkingDir } from './util/resolve-working-dir'; +import { resolveWorkingDir } from './util/resolve-working-dir.js'; (async () => { let commandArgs = process.argv; diff --git a/packages/api/cli/src/electron-forge.ts b/packages/api/cli/src/electron-forge.ts index 89a0f1d9e1..bafb4f5b00 100755 --- a/packages/api/cli/src/electron-forge.ts +++ b/packages/api/cli/src/electron-forge.ts @@ -6,10 +6,10 @@ import { program } from 'commander'; import logSymbols from 'log-symbols'; import semver from 'semver'; -import packageJSON from '../package.json'; +import packageJSON from '../package.json' with { type: 'json' }; import './util/terminate'; -import { checkSystem, SystemCheckContext } from './util/check-system'; +import { checkSystem, SystemCheckContext } from './util/check-system.js'; if (!semver.satisfies(process.versions.node, packageJSON.engines.node)) { console.error( @@ -19,7 +19,6 @@ if (!semver.satisfies(process.versions.node, packageJSON.engines.node)) { process.exit(1); } -/* eslint-disable-next-line import/order -- Listr2 import contains JS syntax that fails as early as Node 14 */ import { Listr } from 'listr2'; program diff --git a/packages/api/core/package.json b/packages/api/core/package.json index 047f9fcaad..84efba386b 100644 --- a/packages/api/core/package.json +++ b/packages/api/core/package.json @@ -52,13 +52,12 @@ "find-up": "^5.0.0", "fs-extra": "^10.0.0", "global-dirs": "^3.0.0", - "got": "^11.8.5", + "got": "^14.0.0", "interpret": "^3.1.1", "jiti": "^2.4.2", "listr2": "^7.0.2", "lodash": "^4.17.20", "log-symbols": "^4.0.0", - "node-fetch": "^2.6.7", "rechoir": "^0.8.0", "semver": "^7.2.1", "source-map-support": "^0.5.13", diff --git a/packages/api/core/spec/fast/init-scripts/init-git.spec.ts b/packages/api/core/spec/fast/init-scripts/init-git.spec.ts index aefae37aad..373c192833 100644 --- a/packages/api/core/spec/fast/init-scripts/init-git.spec.ts +++ b/packages/api/core/spec/fast/init-scripts/init-git.spec.ts @@ -5,7 +5,7 @@ import path from 'node:path'; import { beforeEach, describe, expect, it } from 'vitest'; -import { initGit } from '../../../src/api/init-scripts/init-git'; +import { initGit } from '../../../src/api/init-scripts/init-git.js'; let dir: string; let dirID = Date.now(); diff --git a/packages/api/core/spec/fast/init-scripts/init-npm.spec.ts b/packages/api/core/spec/fast/init-scripts/init-npm.spec.ts index 09aa5772f4..04fa5f1c8a 100644 --- a/packages/api/core/spec/fast/init-scripts/init-npm.spec.ts +++ b/packages/api/core/spec/fast/init-scripts/init-npm.spec.ts @@ -2,12 +2,16 @@ import { PACKAGE_MANAGERS } from '@electron-forge/core-utils'; import { ForgeListrTask } from '@electron-forge/shared-types'; import { beforeEach, describe, expect, it, vi } from 'vitest'; -import { deps, devDeps, initNPM } from '../../../src/api/init-scripts/init-npm'; +import { + deps, + devDeps, + initNPM, +} from '../../../src/api/init-scripts/init-npm.js'; import { DepType, DepVersionRestriction, installDependencies, -} from '../../../src/util/install-dependencies'; +} from '../../../src/util/install-dependencies.js'; vi.mock('../../../src/util/install-dependencies', async (importOriginal) => ({ ...(await importOriginal()), diff --git a/packages/api/core/spec/fast/publish.spec.ts b/packages/api/core/spec/fast/publish.spec.ts index 860cccd13d..0e50187da9 100644 --- a/packages/api/core/spec/fast/publish.spec.ts +++ b/packages/api/core/spec/fast/publish.spec.ts @@ -10,8 +10,8 @@ import { afterAll, beforeAll, describe, expect, it, vi } from 'vitest'; import { listrMake } from '../../src/api/make'; import publish from '../../src/api/publish'; -import findConfig from '../../src/util/forge-config'; -import importSearch from '../../src/util/import-search'; +import findConfig from '../../src/util/forge-config.js'; +import importSearch from '../../src/util/import-search.js'; vi.mock(import('../../src/api/make'), async (importOriginal) => { const mod = await importOriginal(); diff --git a/packages/api/core/spec/fast/start.spec.ts b/packages/api/core/spec/fast/start.spec.ts index 50286067b9..6fecfe2ca2 100644 --- a/packages/api/core/spec/fast/start.spec.ts +++ b/packages/api/core/spec/fast/start.spec.ts @@ -4,9 +4,9 @@ import { ElectronProcess } from '@electron-forge/shared-types'; import { describe, expect, it, vi } from 'vitest'; import start from '../../src/api/start'; -import findConfig from '../../src/util/forge-config'; -import { readMutatedPackageJson } from '../../src/util/read-package-json'; -import resolveDir from '../../src/util/resolve-dir'; +import findConfig from '../../src/util/forge-config.js'; +import { readMutatedPackageJson } from '../../src/util/read-package-json.js'; +import resolveDir from '../../src/util/resolve-dir.js'; vi.mock(import('node:child_process'), async (importOriginal) => { const mod = await importOriginal(); diff --git a/packages/api/core/spec/fast/util/forge-config.spec.ts b/packages/api/core/spec/fast/util/forge-config.spec.ts index 1e82889105..3e21f559d5 100644 --- a/packages/api/core/spec/fast/util/forge-config.spec.ts +++ b/packages/api/core/spec/fast/util/forge-config.spec.ts @@ -8,7 +8,7 @@ import findConfig, { registerForgeConfigForDirectory, renderConfigTemplate, unregisterForgeConfigForDirectory, -} from '../../../src/util/forge-config'; +} from '../../../src/util/forge-config.js'; const DEFAULTS = { packagerConfig: {}, diff --git a/packages/api/core/spec/fast/util/hook.spec.ts b/packages/api/core/spec/fast/util/hook.spec.ts index 8fc4248dad..eb1b4ea512 100644 --- a/packages/api/core/spec/fast/util/hook.spec.ts +++ b/packages/api/core/spec/fast/util/hook.spec.ts @@ -1,7 +1,7 @@ import { ForgeHookFn, ResolvedForgeConfig } from '@electron-forge/shared-types'; import { describe, expect, it, vi } from 'vitest'; -import { runHook, runMutatingHook } from '../../../src/util/hook'; +import { runHook, runMutatingHook } from '../../../src/util/hook.js'; const fakeConfig = { pluginInterface: { diff --git a/packages/api/core/spec/fast/util/import-search.spec.ts b/packages/api/core/spec/fast/util/import-search.spec.ts index f7fb93f094..014a00a34a 100644 --- a/packages/api/core/spec/fast/util/import-search.spec.ts +++ b/packages/api/core/spec/fast/util/import-search.spec.ts @@ -1,7 +1,7 @@ import { describe, expect, it } from 'vitest'; -import findConfig from '../../../src/util/forge-config'; -import importSearch from '../../../src/util/import-search'; +import findConfig from '../../../src/util/forge-config.js'; +import importSearch from '../../../src/util/import-search.js'; describe('import-search', () => { it('should resolve null if no file exists', async () => { diff --git a/packages/api/core/spec/fast/util/install-dependencies.spec.ts b/packages/api/core/spec/fast/util/install-dependencies.spec.ts index 27cfe8f1e0..a147a5aa78 100644 --- a/packages/api/core/spec/fast/util/install-dependencies.spec.ts +++ b/packages/api/core/spec/fast/util/install-dependencies.spec.ts @@ -8,7 +8,7 @@ import { DepType, DepVersionRestriction, installDependencies, -} from '../../../src/util/install-dependencies'; +} from '../../../src/util/install-dependencies.js'; vi.mock(import('@electron-forge/core-utils'), async (importOriginal) => { const mod = await importOriginal(); diff --git a/packages/api/core/spec/fast/util/read-package-json.spec.ts b/packages/api/core/spec/fast/util/read-package-json.spec.ts index e599c81bfa..b1362e960f 100644 --- a/packages/api/core/spec/fast/util/read-package-json.spec.ts +++ b/packages/api/core/spec/fast/util/read-package-json.spec.ts @@ -7,7 +7,7 @@ import packageJSON from '../../../package.json'; import { readMutatedPackageJson, readRawPackageJson, -} from '../../../src/util/read-package-json'; +} from '../../../src/util/read-package-json.js'; describe('readRawPackageJson', () => { it('should find a package.json file from the given directory', async () => { diff --git a/packages/api/core/spec/fast/util/resolve-dir.spec.ts b/packages/api/core/spec/fast/util/resolve-dir.spec.ts index 71911597db..17cb380f57 100644 --- a/packages/api/core/spec/fast/util/resolve-dir.spec.ts +++ b/packages/api/core/spec/fast/util/resolve-dir.spec.ts @@ -5,8 +5,8 @@ import { describe, expect, it } from 'vitest'; import { registerForgeConfigForDirectory, unregisterForgeConfigForDirectory, -} from '../../../src/util/forge-config'; -import resolveDir from '../../../src/util/resolve-dir'; +} from '../../../src/util/forge-config.js'; +import resolveDir from '../../../src/util/resolve-dir.js'; describe('resolve-dir', () => { it('should return null if a valid dir can not be found', async () => { diff --git a/packages/api/core/spec/fast/util/upgrade-forge-config.spec.ts b/packages/api/core/spec/fast/util/upgrade-forge-config.spec.ts index 12891d03ae..70ba9c19bf 100644 --- a/packages/api/core/spec/fast/util/upgrade-forge-config.spec.ts +++ b/packages/api/core/spec/fast/util/upgrade-forge-config.spec.ts @@ -10,7 +10,7 @@ import { describe, expect, it } from 'vitest'; import upgradeForgeConfig, { updateUpgradedForgeDevDeps, -} from '../../../src/util/upgrade-forge-config'; +} from '../../../src/util/upgrade-forge-config.js'; describe('upgradeForgeConfig', () => { it('converts Electron Packager config', () => { diff --git a/packages/api/core/spec/slow/api.slow.spec.ts b/packages/api/core/spec/slow/api.slow.spec.ts index 352882e436..c78ba0406e 100644 --- a/packages/api/core/spec/slow/api.slow.spec.ts +++ b/packages/api/core/spec/slow/api.slow.spec.ts @@ -21,8 +21,8 @@ import semver from 'semver'; import { afterAll, beforeAll, beforeEach, describe, expect, it } from 'vitest'; import { api, InitOptions } from '../../src/api/index'; -import { installDependencies } from '../../src/util/install-dependencies'; -import { readRawPackageJson } from '../../src/util/read-package-json'; +import { installDependencies } from '../../src/util/install-dependencies.js'; +import { readRawPackageJson } from '../../src/util/read-package-json.js'; type BeforeInitFunction = () => void; type PackageJSON = Record & { diff --git a/packages/api/core/spec/slow/install-dependencies.slow.spec.ts b/packages/api/core/spec/slow/install-dependencies.slow.spec.ts index 0c518c53c9..d8dc27671a 100644 --- a/packages/api/core/spec/slow/install-dependencies.slow.spec.ts +++ b/packages/api/core/spec/slow/install-dependencies.slow.spec.ts @@ -5,7 +5,7 @@ import path from 'node:path'; import { PACKAGE_MANAGERS } from '@electron-forge/core-utils'; import { afterAll, beforeAll, describe, expect, it } from 'vitest'; -import { installDependencies } from '../../src/util/install-dependencies'; +import { installDependencies } from '../../src/util/install-dependencies.js'; describe.runIf(!(process.platform === 'linux' && process.env.CI))( 'install-dependencies', diff --git a/packages/api/core/src/api/import.ts b/packages/api/core/src/api/import.ts index 997db79f13..3349b6da27 100644 --- a/packages/api/core/src/api/import.ts +++ b/packages/api/core/src/api/import.ts @@ -21,14 +21,14 @@ import { DepType, DepVersionRestriction, installDependencies, -} from '../util/install-dependencies'; -import { readRawPackageJson } from '../util/read-package-json'; +} from '../util/install-dependencies.js'; +import { readRawPackageJson } from '../util/read-package-json.js'; import upgradeForgeConfig, { updateUpgradedForgeDevDeps, -} from '../util/upgrade-forge-config'; +} from '../util/upgrade-forge-config.js'; -import { initGit } from './init-scripts/init-git'; -import { deps, devDeps, exactDevDeps } from './init-scripts/init-npm'; +import { initGit } from './init-scripts/init-git.js'; +import { deps, devDeps, exactDevDeps } from './init-scripts/init-npm.js'; const d = debug('electron-forge:import'); diff --git a/packages/api/core/src/api/index.ts b/packages/api/core/src/api/index.ts index 5a358595ac..68299e7525 100644 --- a/packages/api/core/src/api/index.ts +++ b/packages/api/core/src/api/index.ts @@ -1,14 +1,13 @@ import { ElectronProcess, ForgeMakeResult } from '@electron-forge/shared-types'; -// eslint-disable-next-line n/no-missing-import -import ForgeUtils from '../util'; +import ForgeUtils from '../util/index.js'; -import _import, { ImportOptions } from './import'; -import init, { InitOptions } from './init'; -import make, { MakeOptions } from './make'; -import _package, { PackageOptions } from './package'; -import publish, { PublishOptions } from './publish'; -import start, { StartOptions } from './start'; +import _import, { ImportOptions } from './import.js'; +import init, { InitOptions } from './init.js'; +import make, { MakeOptions } from './make.js'; +import _package, { PackageOptions } from './package.js'; +import publish, { PublishOptions } from './publish.js'; +import start, { StartOptions } from './start.js'; export class ForgeAPI { /** diff --git a/packages/api/core/src/api/init-scripts/find-template.ts b/packages/api/core/src/api/init-scripts/find-template.ts index a80473faf4..a58d6af136 100644 --- a/packages/api/core/src/api/init-scripts/find-template.ts +++ b/packages/api/core/src/api/init-scripts/find-template.ts @@ -2,7 +2,7 @@ import { ForgeTemplate } from '@electron-forge/shared-types'; import debug from 'debug'; import globalDirs from 'global-dirs'; -import { PossibleModule } from '../../util/import-search'; +import { PossibleModule } from '../../util/import-search.js'; const d = debug('electron-forge:init:find-template'); diff --git a/packages/api/core/src/api/init-scripts/init-link.ts b/packages/api/core/src/api/init-scripts/init-link.ts index 140685d9ce..bd4c7db5f9 100644 --- a/packages/api/core/src/api/init-scripts/init-link.ts +++ b/packages/api/core/src/api/init-scripts/init-link.ts @@ -6,7 +6,7 @@ import { PMDetails, spawnPackageManager } from '@electron-forge/core-utils'; import { ForgeListrTask } from '@electron-forge/shared-types'; import debug from 'debug'; -import { readRawPackageJson } from '../../util/read-package-json'; +import { readRawPackageJson } from '../../util/read-package-json.js'; const d = debug('electron-forge:init:link'); diff --git a/packages/api/core/src/api/init-scripts/init-npm.ts b/packages/api/core/src/api/init-scripts/init-npm.ts index 442304d97b..2968b337ad 100644 --- a/packages/api/core/src/api/init-scripts/init-npm.ts +++ b/packages/api/core/src/api/init-scripts/init-npm.ts @@ -10,7 +10,7 @@ import { DepType, DepVersionRestriction, installDependencies, -} from '../../util/install-dependencies'; +} from '../../util/install-dependencies.js'; const d = debug('electron-forge:init:npm'); const corePackage = fs.readJsonSync( diff --git a/packages/api/core/src/api/init.ts b/packages/api/core/src/api/init.ts index 736b855b91..fd68e3566c 100644 --- a/packages/api/core/src/api/init.ts +++ b/packages/api/core/src/api/init.ts @@ -11,14 +11,14 @@ import { DepType, DepVersionRestriction, installDependencies, -} from '../util/install-dependencies'; -import { readRawPackageJson } from '../util/read-package-json'; +} from '../util/install-dependencies.js'; +import { readRawPackageJson } from '../util/read-package-json.js'; -import { findTemplate } from './init-scripts/find-template'; -import { initDirectory } from './init-scripts/init-directory'; -import { initGit } from './init-scripts/init-git'; -import { initLink } from './init-scripts/init-link'; -import { initNPM } from './init-scripts/init-npm'; +import { findTemplate } from './init-scripts/find-template.js'; +import { initDirectory } from './init-scripts/init-directory.js'; +import { initGit } from './init-scripts/init-git.js'; +import { initLink } from './init-scripts/init-link.js'; +import { initNPM } from './init-scripts/init-npm.js'; const d = debug('electron-forge:init'); diff --git a/packages/api/core/src/api/make.ts b/packages/api/core/src/api/make.ts index f9f17bb623..9e20404df5 100644 --- a/packages/api/core/src/api/make.ts +++ b/packages/api/core/src/api/make.ts @@ -20,15 +20,15 @@ import fs from 'fs-extra'; import { Listr, PRESET_TIMER } from 'listr2'; import logSymbols from 'log-symbols'; -import getForgeConfig from '../util/forge-config'; -import { getHookListrTasks, runMutatingHook } from '../util/hook'; -import importSearch from '../util/import-search'; -import getCurrentOutDir from '../util/out-dir'; -import parseArchs from '../util/parse-archs'; -import { readMutatedPackageJson } from '../util/read-package-json'; -import resolveDir from '../util/resolve-dir'; - -import { listrPackage } from './package'; +import getForgeConfig from '../util/forge-config.js'; +import { getHookListrTasks, runMutatingHook } from '../util/hook.js'; +import importSearch from '../util/import-search.js'; +import getCurrentOutDir from '../util/out-dir.js'; +import parseArchs from '../util/parse-archs.js'; +import { readMutatedPackageJson } from '../util/read-package-json.js'; +import resolveDir from '../util/resolve-dir.js'; + +import { listrPackage } from './package.js'; type MakerImpl = { // eslint-disable-next-line @typescript-eslint/no-explicit-any diff --git a/packages/api/core/src/api/package.ts b/packages/api/core/src/api/package.ts index 0dd30927c1..0dddcfa160 100644 --- a/packages/api/core/src/api/package.ts +++ b/packages/api/core/src/api/package.ts @@ -28,13 +28,13 @@ import glob from 'fast-glob'; import fs from 'fs-extra'; import { Listr, PRESET_TIMER } from 'listr2'; -import getForgeConfig from '../util/forge-config'; -import { getHookListrTasks, runHook } from '../util/hook'; -import importSearch from '../util/import-search'; -import { warn } from '../util/messages'; -import getCurrentOutDir from '../util/out-dir'; -import { readMutatedPackageJson } from '../util/read-package-json'; -import resolveDir from '../util/resolve-dir'; +import getForgeConfig from '../util/forge-config.js'; +import { getHookListrTasks, runHook } from '../util/hook.js'; +import importSearch from '../util/import-search.js'; +import { warn } from '../util/messages.js'; +import getCurrentOutDir from '../util/out-dir.js'; +import { readMutatedPackageJson } from '../util/read-package-json.js'; +import resolveDir from '../util/resolve-dir.js'; const d = debug('electron-forge:packager'); diff --git a/packages/api/core/src/api/publish.ts b/packages/api/core/src/api/publish.ts index 30e621284d..31abf360e4 100644 --- a/packages/api/core/src/api/publish.ts +++ b/packages/api/core/src/api/publish.ts @@ -10,7 +10,6 @@ import { IForgePublisher, IForgeResolvablePublisher, ResolvedForgeConfig, - // ForgePlatform, } from '@electron-forge/shared-types'; import { autoTrace, delayTraceTillSignal } from '@electron-forge/tracer'; import chalk from 'chalk'; @@ -18,13 +17,13 @@ import debug from 'debug'; import fs from 'fs-extra'; import { Listr } from 'listr2'; -import getForgeConfig from '../util/forge-config'; -import importSearch from '../util/import-search'; -import getCurrentOutDir from '../util/out-dir'; -import PublishState from '../util/publish-state'; -import resolveDir from '../util/resolve-dir'; +import getForgeConfig from '../util/forge-config.js'; +import importSearch from '../util/import-search.js'; +import getCurrentOutDir from '../util/out-dir.js'; +import PublishState from '../util/publish-state.js'; +import resolveDir from '../util/resolve-dir.js'; -import { listrMake, MakeOptions } from './make'; +import { listrMake, MakeOptions } from './make.js'; const d = debug('electron-forge:publish'); diff --git a/packages/api/core/src/api/start.ts b/packages/api/core/src/api/start.ts index 11461497ed..7b0b8add40 100644 --- a/packages/api/core/src/api/start.ts +++ b/packages/api/core/src/api/start.ts @@ -19,11 +19,11 @@ import chalk from 'chalk'; import debug from 'debug'; import { Listr, PRESET_TIMER } from 'listr2'; -import locateElectronExecutable from '../util/electron-executable'; -import getForgeConfig from '../util/forge-config'; -import { getHookListrTasks, runHook } from '../util/hook'; -import { readMutatedPackageJson } from '../util/read-package-json'; -import resolveDir from '../util/resolve-dir'; +import locateElectronExecutable from '../util/electron-executable.js'; +import getForgeConfig from '../util/forge-config.js'; +import { getHookListrTasks, runHook } from '../util/hook.js'; +import { readMutatedPackageJson } from '../util/read-package-json.js'; +import resolveDir from '../util/resolve-dir.js'; const d = debug('electron-forge:start'); diff --git a/packages/api/core/src/util/forge-config.ts b/packages/api/core/src/util/forge-config.ts index 91608300fb..39325525aa 100644 --- a/packages/api/core/src/util/forge-config.ts +++ b/packages/api/core/src/util/forge-config.ts @@ -10,9 +10,9 @@ import * as rechoir from 'rechoir'; // eslint-disable-next-line n/no-missing-import import { dynamicImportMaybe } from '../../helper/dynamic-import.js'; -import { runMutatingHook } from './hook'; -import PluginInterface from './plugin-interface'; -import { readRawPackageJson } from './read-package-json'; +import { runMutatingHook } from './hook.js'; +import PluginInterface from './plugin-interface.js'; +import { readRawPackageJson } from './read-package-json.js'; const underscoreCase = (str: string) => str diff --git a/packages/api/core/src/util/index.ts b/packages/api/core/src/util/index.ts index f1d6c9e79c..fc11e9e01c 100644 --- a/packages/api/core/src/util/index.ts +++ b/packages/api/core/src/util/index.ts @@ -9,7 +9,7 @@ import { fromBuildIdentifier, registerForgeConfigForDirectory, unregisterForgeConfigForDirectory, -} from './forge-config'; +} from './forge-config.js'; import type { ForgeConfig } from '@electron-forge/shared-types'; diff --git a/packages/api/core/src/util/plugin-interface.ts b/packages/api/core/src/util/plugin-interface.ts index d56cbf647b..77fc425ef5 100644 --- a/packages/api/core/src/util/plugin-interface.ts +++ b/packages/api/core/src/util/plugin-interface.ts @@ -14,10 +14,9 @@ import { autoTrace } from '@electron-forge/tracer'; import chalk from 'chalk'; import debug from 'debug'; -// eslint-disable-next-line n/no-missing-import -import { StartOptions } from '../api'; +import { StartOptions } from '../api/start.js'; -import importSearch from './import-search'; +import importSearch from './import-search.js'; const d = debug('electron-forge:plugins'); diff --git a/packages/api/core/src/util/read-package-json.ts b/packages/api/core/src/util/read-package-json.ts index 21f646991d..ad3dbfc470 100644 --- a/packages/api/core/src/util/read-package-json.ts +++ b/packages/api/core/src/util/read-package-json.ts @@ -3,7 +3,7 @@ import path from 'node:path'; import { ResolvedForgeConfig } from '@electron-forge/shared-types'; import fs from 'fs-extra'; -import { runMutatingHook } from './hook'; +import { runMutatingHook } from './hook.js'; // eslint-disable-next-line @typescript-eslint/no-explicit-any export const readRawPackageJson = async (dir: string): Promise => diff --git a/packages/api/core/src/util/resolve-dir.ts b/packages/api/core/src/util/resolve-dir.ts index 69a8880408..7c3524a7a9 100644 --- a/packages/api/core/src/util/resolve-dir.ts +++ b/packages/api/core/src/util/resolve-dir.ts @@ -4,8 +4,8 @@ import { getElectronVersion } from '@electron-forge/core-utils'; import debug from 'debug'; import fs from 'fs-extra'; -import { registeredForgeConfigs } from './forge-config'; -import { readRawPackageJson } from './read-package-json'; +import { registeredForgeConfigs } from './forge-config.js'; +import { readRawPackageJson } from './read-package-json.js'; const d = debug('electron-forge:project-resolver'); diff --git a/packages/api/core/src/util/upgrade-forge-config.ts b/packages/api/core/src/util/upgrade-forge-config.ts index 5b1385aa18..fd6e7d1ff7 100644 --- a/packages/api/core/src/util/upgrade-forge-config.ts +++ b/packages/api/core/src/util/upgrade-forge-config.ts @@ -7,7 +7,7 @@ import { IForgeResolvablePublisher, } from '@electron-forge/shared-types'; -import { siblingDep } from '../api/init-scripts/init-npm'; +import { siblingDep } from '../api/init-scripts/init-npm.js'; type MakeTargets = { string: string[] }; diff --git a/packages/maker/msix/src/MakerMSIX.ts b/packages/maker/msix/src/MakerMSIX.ts index 43a588ef31..42eb5a8372 100644 --- a/packages/maker/msix/src/MakerMSIX.ts +++ b/packages/maker/msix/src/MakerMSIX.ts @@ -8,7 +8,7 @@ import { packageMSIX } from 'electron-windows-msix'; import fs from 'fs-extra'; import { MakerMSIXConfig } from './Config.js'; -import { toMsixArch } from './util/arch'; +import { toMsixArch } from './util/arch.js'; /** * Creates an MSIX package for your Electron app. diff --git a/packages/maker/zip/package.json b/packages/maker/zip/package.json index 0728e7ed01..4e2a6e47ee 100644 --- a/packages/maker/zip/package.json +++ b/packages/maker/zip/package.json @@ -20,7 +20,7 @@ "@electron-forge/shared-types": "workspace:*", "cross-zip": "^4.0.0", "fs-extra": "^10.0.0", - "got": "^11.8.5" + "got": "^14.0.0" }, "publishConfig": { "access": "public" diff --git a/packages/plugin/fuses/src/FusesPlugin.ts b/packages/plugin/fuses/src/FusesPlugin.ts index 9244992e1b..cd4629e3ab 100644 --- a/packages/plugin/fuses/src/FusesPlugin.ts +++ b/packages/plugin/fuses/src/FusesPlugin.ts @@ -4,7 +4,7 @@ import { flipFuses, FuseConfig } from '@electron/fuses'; import { namedHookWithTaskFn, PluginBase } from '@electron-forge/plugin-base'; import { ForgeMultiHookMap, ForgePlatform } from '@electron-forge/shared-types'; -import { getElectronExecutablePath } from './util/getElectronExecutablePath'; +import { getElectronExecutablePath } from './util/getElectronExecutablePath.js'; export default class FusesPlugin extends PluginBase { name = 'fuses'; diff --git a/packages/plugin/webpack/src/Config.ts b/packages/plugin/webpack/src/Config.ts index 154d76d139..fbf5fa4be8 100644 --- a/packages/plugin/webpack/src/Config.ts +++ b/packages/plugin/webpack/src/Config.ts @@ -1,7 +1,7 @@ import { Configuration as RawWebpackConfiguration } from 'webpack'; import WebpackDevServer from 'webpack-dev-server'; -import { ConfigurationFactory as WebpackConfigurationFactory } from './WebpackConfig'; +import { ConfigurationFactory as WebpackConfigurationFactory } from './WebpackConfig.js'; export interface WebpackPluginEntryPointBase { /** diff --git a/packages/plugin/webpack/src/WebpackConfig.ts b/packages/plugin/webpack/src/WebpackConfig.ts index e2638acacc..57e76260be 100644 --- a/packages/plugin/webpack/src/WebpackConfig.ts +++ b/packages/plugin/webpack/src/WebpackConfig.ts @@ -12,15 +12,15 @@ import { WebpackPluginEntryPointPreloadOnly, WebpackPluginRendererConfig, } from './Config.js'; -import AssetRelocatorPatch from './util/AssetRelocatorPatch'; -import processConfig from './util/processConfig'; +import AssetRelocatorPatch from './util/AssetRelocatorPatch.js'; +import processConfig from './util/processConfig.js'; import { isLocalOrNoWindowEntries, isLocalWindow, isNoWindow, isPreloadOnly, isPreloadOnlyEntries, -} from './util/rendererTypeUtils'; +} from './util/rendererTypeUtils.js'; type EntryType = string | string[] | Record; type WebpackMode = 'production' | 'development'; diff --git a/packages/plugin/webpack/src/WebpackPlugin.ts b/packages/plugin/webpack/src/WebpackPlugin.ts index 122c9248f0..746cbcf621 100644 --- a/packages/plugin/webpack/src/WebpackPlugin.ts +++ b/packages/plugin/webpack/src/WebpackPlugin.ts @@ -24,10 +24,10 @@ import WebpackDevServer from 'webpack-dev-server'; import { merge } from 'webpack-merge'; import { WebpackPluginConfig, WebpackPluginRendererConfig } from './Config.js'; -import ElectronForgeLoggingPlugin from './util/ElectronForgeLogging'; -import EntryPointPreloadPlugin from './util/EntryPointPreloadPlugin'; -import once from './util/once'; -import WebpackConfigGenerator from './WebpackConfig'; +import ElectronForgeLoggingPlugin from './util/ElectronForgeLogging.js'; +import EntryPointPreloadPlugin from './util/EntryPointPreloadPlugin.js'; +import once from './util/once.js'; +import WebpackConfigGenerator from './WebpackConfig.js'; const d = debug('electron-forge:plugin:webpack'); const DEFAULT_PORT = 3000; diff --git a/packages/plugin/webpack/src/util/EntryPointPreloadPlugin.ts b/packages/plugin/webpack/src/util/EntryPointPreloadPlugin.ts index 816c1f905c..f5e4cce02d 100644 --- a/packages/plugin/webpack/src/util/EntryPointPreloadPlugin.ts +++ b/packages/plugin/webpack/src/util/EntryPointPreloadPlugin.ts @@ -1,6 +1,6 @@ import { PluginBase } from '@electron-forge/plugin-base'; -import { EntryPointPluginConfig } from '../Config'; +import { EntryPointPluginConfig } from '../Config.js'; export default class EntryPointPreloadPlugin extends PluginBase { name = this.config.name; diff --git a/packages/plugin/webpack/src/util/processConfig.ts b/packages/plugin/webpack/src/util/processConfig.ts index 5567b660d6..19c98a4f70 100644 --- a/packages/plugin/webpack/src/util/processConfig.ts +++ b/packages/plugin/webpack/src/util/processConfig.ts @@ -1,6 +1,6 @@ import { Configuration } from 'webpack'; -import { ConfigurationFactory } from '../WebpackConfig'; +import { ConfigurationFactory } from '../WebpackConfig.js'; const trivialConfigurationFactory = (config: Configuration): ConfigurationFactory => diff --git a/packages/plugin/webpack/src/util/rendererTypeUtils.ts b/packages/plugin/webpack/src/util/rendererTypeUtils.ts index a78c3a4b4a..6cf7a31005 100644 --- a/packages/plugin/webpack/src/util/rendererTypeUtils.ts +++ b/packages/plugin/webpack/src/util/rendererTypeUtils.ts @@ -5,7 +5,7 @@ import { WebpackPluginEntryPointLocalWindow, WebpackPluginEntryPointNoWindow, WebpackPluginEntryPointPreloadOnly, -} from '../Config'; +} from '../Config.js'; /** * Reusable type predicate functions to narrow down the type of the WebpackPluginEntryPoint diff --git a/packages/publisher/bitbucket/package.json b/packages/publisher/bitbucket/package.json index 3c8935038d..721f70a754 100644 --- a/packages/publisher/bitbucket/package.json +++ b/packages/publisher/bitbucket/package.json @@ -14,8 +14,7 @@ "dependencies": { "@electron-forge/publisher-base": "workspace:*", "form-data": "^4.0.0", - "fs-extra": "^10.0.0", - "node-fetch": "^2.6.7" + "fs-extra": "^10.0.0" }, "publishConfig": { "access": "public" diff --git a/packages/publisher/bitbucket/src/PublisherBitbucket.ts b/packages/publisher/bitbucket/src/PublisherBitbucket.ts index 82af7b540a..8badbcbb6b 100644 --- a/packages/publisher/bitbucket/src/PublisherBitbucket.ts +++ b/packages/publisher/bitbucket/src/PublisherBitbucket.ts @@ -6,7 +6,6 @@ import { } from '@electron-forge/publisher-base'; import FormData from 'form-data'; import fs from 'fs-extra'; -import fetch from 'node-fetch'; import { PublisherBitbucketConfig } from './Config.js'; diff --git a/packages/publisher/electron-release-server/package.json b/packages/publisher/electron-release-server/package.json index 3e48f9a265..32f5efa7ed 100644 --- a/packages/publisher/electron-release-server/package.json +++ b/packages/publisher/electron-release-server/package.json @@ -20,8 +20,7 @@ "@electron-forge/shared-types": "workspace:*", "debug": "^4.3.1", "form-data": "^4.0.0", - "fs-extra": "^10.0.0", - "node-fetch": "^2.6.7" + "fs-extra": "^10.0.0" }, "publishConfig": { "access": "public" diff --git a/packages/publisher/github/src/PublisherGithub.ts b/packages/publisher/github/src/PublisherGithub.ts index 083939a24d..e8aabbdc0f 100644 --- a/packages/publisher/github/src/PublisherGithub.ts +++ b/packages/publisher/github/src/PublisherGithub.ts @@ -13,8 +13,8 @@ import logSymbols from 'log-symbols'; import mime from 'mime-types'; import { PublisherGitHubConfig } from './Config.js'; -import GitHub from './util/github'; -import NoReleaseError from './util/no-release-error'; +import GitHub from './util/github.js'; +import NoReleaseError from './util/no-release-error.js'; import type { Octokit } from '@octokit/rest'; diff --git a/packages/publisher/nucleus/package.json b/packages/publisher/nucleus/package.json index 9486f10833..5794ec4756 100644 --- a/packages/publisher/nucleus/package.json +++ b/packages/publisher/nucleus/package.json @@ -15,8 +15,7 @@ "@electron-forge/publisher-base": "workspace:*", "@electron-forge/shared-types": "workspace:*", "debug": "^4.3.1", - "form-data": "^4.0.0", - "node-fetch": "^2.6.7" + "form-data": "^4.0.0" }, "publishConfig": { "access": "public" diff --git a/packages/publisher/nucleus/src/PublisherNucleus.ts b/packages/publisher/nucleus/src/PublisherNucleus.ts index 80a83cb147..6e8138b096 100644 --- a/packages/publisher/nucleus/src/PublisherNucleus.ts +++ b/packages/publisher/nucleus/src/PublisherNucleus.ts @@ -7,7 +7,6 @@ import { } from '@electron-forge/publisher-base'; import debug from 'debug'; import FormData from 'form-data'; -import fetch from 'node-fetch'; import { PublisherNucleusConfig } from './Config.js'; diff --git a/packages/utils/core-utils/spec/electron-version.spec.ts b/packages/utils/core-utils/spec/electron-version.spec.ts index 0d3edc79e6..1accb0a8c6 100644 --- a/packages/utils/core-utils/spec/electron-version.spec.ts +++ b/packages/utils/core-utils/spec/electron-version.spec.ts @@ -7,7 +7,7 @@ import { afterAll, beforeAll, describe, expect, it } from 'vitest'; import { devDeps, exactDevDeps, -} from '../../../api/core/src/api/init-scripts/init-npm'; +} from '../../../api/core/src/api/init-scripts/init-npm.js'; import { getElectronModulePath, getElectronVersion, diff --git a/packages/utils/web-multi-logger/src/Logger.ts b/packages/utils/web-multi-logger/src/Logger.ts index 5547f6ae5f..2ffad31487 100644 --- a/packages/utils/web-multi-logger/src/Logger.ts +++ b/packages/utils/web-multi-logger/src/Logger.ts @@ -4,7 +4,7 @@ import path from 'node:path'; import express from 'express'; import ews from 'express-ws'; -import Tab from './Tab'; +import Tab from './Tab.js'; export { Tab }; diff --git a/packages/utils/web-multi-logger/src/Tab.ts b/packages/utils/web-multi-logger/src/Tab.ts index f10e75b2ed..74b93b7ead 100644 --- a/packages/utils/web-multi-logger/src/Tab.ts +++ b/packages/utils/web-multi-logger/src/Tab.ts @@ -1,6 +1,6 @@ import ews from 'express-ws'; -import Log from './Log'; +import Log from './Log.js'; let idCounter = 1; diff --git a/tools/sync-readmes.ts b/tools/sync-readmes.ts index a290c4bd01..ce4fd75e85 100644 --- a/tools/sync-readmes.ts +++ b/tools/sync-readmes.ts @@ -2,7 +2,6 @@ import * as path from 'node:path'; import * as fs from 'fs-extra'; import { Listr } from 'listr2'; -import fetch from 'node-fetch'; const workspaceMappings: { [space: string]: { [packageName: string]: string | undefined }; diff --git a/yarn.lock b/yarn.lock index e8a4222738..29af4fec0c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -866,13 +866,12 @@ __metadata: find-up: "npm:^5.0.0" fs-extra: "npm:^10.0.0" global-dirs: "npm:^3.0.0" - got: "npm:^11.8.5" + got: "npm:^14.0.0" interpret: "npm:^3.1.1" jiti: "npm:^2.4.2" listr2: "npm:^7.0.2" lodash: "npm:^4.17.20" log-symbols: "npm:^4.0.0" - node-fetch: "npm:^2.6.7" rechoir: "npm:^0.8.0" semver: "npm:^7.2.1" source-map-support: "npm:^0.5.13" @@ -1054,7 +1053,7 @@ __metadata: "@electron-forge/test-utils": "workspace:*" cross-zip: "npm:^4.0.0" fs-extra: "npm:^10.0.0" - got: "npm:^11.8.5" + got: "npm:^14.0.0" vitest: "npm:^3.1.3" languageName: unknown linkType: soft @@ -1163,7 +1162,6 @@ __metadata: "@electron-forge/publisher-base": "workspace:*" form-data: "npm:^4.0.0" fs-extra: "npm:^10.0.0" - node-fetch: "npm:^2.6.7" languageName: unknown linkType: soft @@ -1177,7 +1175,6 @@ __metadata: form-data: "npm:^4.0.0" fs-extra: "npm:^10.0.0" msw: "npm:^2.7.0" - node-fetch: "npm:^2.6.7" vitest: "npm:^3.1.3" languageName: unknown linkType: soft @@ -1221,7 +1218,6 @@ __metadata: "@electron-forge/shared-types": "workspace:*" debug: "npm:^4.3.1" form-data: "npm:^4.0.0" - node-fetch: "npm:^2.6.7" languageName: unknown linkType: soft @@ -2984,6 +2980,13 @@ __metadata: languageName: node linkType: hard +"@keyv/serialize@npm:^1.1.1": + version: 1.1.1 + resolution: "@keyv/serialize@npm:1.1.1" + checksum: 10c0/b0008cae4a54400c3abf587b8cc2474c6f528ee58969ce6cf9cb07a04006f80c73c85971d6be6544408318a2bc40108236a19a82aea0a6de95aae49533317374 + languageName: node + linkType: hard + "@leichtgewicht/ip-codec@npm:^2.0.1": version: 2.0.4 resolution: "@leichtgewicht/ip-codec@npm:2.0.4" @@ -4057,6 +4060,13 @@ __metadata: languageName: node linkType: hard +"@sec-ant/readable-stream@npm:^0.4.1": + version: 0.4.1 + resolution: "@sec-ant/readable-stream@npm:0.4.1" + checksum: 10c0/64e9e9cf161e848067a5bf60cdc04d18495dc28bb63a8d9f8993e4dd99b91ad34e4b563c85de17d91ffb177ec17a0664991d2e115f6543e73236a906068987af + languageName: node + linkType: hard + "@sigstore/bundle@npm:^3.1.0": version: 3.1.0 resolution: "@sigstore/bundle@npm:3.1.0" @@ -4187,6 +4197,13 @@ __metadata: languageName: node linkType: hard +"@sindresorhus/is@npm:^7.0.1": + version: 7.1.1 + resolution: "@sindresorhus/is@npm:7.1.1" + checksum: 10c0/96f021b8c5680e0687ceba5619c2e56fe6b089b190b3149280a1e418e6315c66839e3f1519cf1c89f7a888b5a0017a0ef1db17436d783ee398b7d5a515caa3ef + languageName: node + linkType: hard + "@smithy/abort-controller@npm:^3.1.4": version: 3.1.4 resolution: "@smithy/abort-controller@npm:3.1.4" @@ -5035,6 +5052,13 @@ __metadata: languageName: node linkType: hard +"@types/http-cache-semantics@npm:^4.0.4": + version: 4.0.4 + resolution: "@types/http-cache-semantics@npm:4.0.4" + checksum: 10c0/51b72568b4b2863e0fe8d6ce8aad72a784b7510d72dc866215642da51d84945a9459fa89f49ec48f1e9a1752e6a78e85a4cda0ded06b1c73e727610c925f9ce6 + languageName: node + linkType: hard + "@types/http-proxy@npm:^1.17.8": version: 1.17.9 resolution: "@types/http-proxy@npm:1.17.9" @@ -5169,16 +5193,6 @@ __metadata: languageName: node linkType: hard -"@types/node-fetch@npm:^2.5.5": - version: 2.5.12 - resolution: "@types/node-fetch@npm:2.5.12" - dependencies: - "@types/node": "npm:*" - form-data: "npm:^3.0.0" - checksum: 10c0/aaa69c354e596f9e293136ac43c9e5d91503415fb4eddfae3a9689153f0f033863bbd627e700b3f419ce14d06303e18e1d61b788d9085411f1fc12fc56afe356 - languageName: node - linkType: hard - "@types/node@npm:*": version: 22.10.2 resolution: "@types/node@npm:22.10.2" @@ -6719,6 +6733,13 @@ __metadata: languageName: node linkType: hard +"byte-counter@npm:^0.1.0": + version: 0.1.0 + resolution: "byte-counter@npm:0.1.0" + checksum: 10c0/2e7b9cf902d06a6601f8ab893964a8b6b9e2b2dfc60fcee0d340e50b95aa3dc77c4d34ddf3e63cc374b4e5b1d0d694a942de6fbe8ee95d39418f3fdff666b6a4 + languageName: node + linkType: hard + "byte-size@npm:8.1.1": version: 8.1.1 resolution: "byte-size@npm:8.1.1" @@ -6819,6 +6840,28 @@ __metadata: languageName: node linkType: hard +"cacheable-lookup@npm:^7.0.0": + version: 7.0.0 + resolution: "cacheable-lookup@npm:7.0.0" + checksum: 10c0/63a9c144c5b45cb5549251e3ea774c04d63063b29e469f7584171d059d3a88f650f47869a974e2d07de62116463d742c287a81a625e791539d987115cb081635 + languageName: node + linkType: hard + +"cacheable-request@npm:^13.0.12": + version: 13.0.15 + resolution: "cacheable-request@npm:13.0.15" + dependencies: + "@types/http-cache-semantics": "npm:^4.0.4" + get-stream: "npm:^9.0.1" + http-cache-semantics: "npm:^4.2.0" + keyv: "npm:^5.5.4" + mimic-response: "npm:^4.0.0" + normalize-url: "npm:^8.1.0" + responselike: "npm:^4.0.2" + checksum: 10c0/8cd2932ff3df591c27a9e34557743c7b5d4d843665b2a5e704a37ed5a3f7509ef24529ea81a7d51715fb21036ae7f8580398605b88c0f441524ada3201ddf2b4 + languageName: node + linkType: hard + "cacheable-request@npm:^7.0.2": version: 7.0.2 resolution: "cacheable-request@npm:7.0.2" @@ -7809,6 +7852,15 @@ __metadata: languageName: node linkType: hard +"decompress-response@npm:^10.0.0": + version: 10.0.0 + resolution: "decompress-response@npm:10.0.0" + dependencies: + mimic-response: "npm:^4.0.0" + checksum: 10c0/e8ce13b3f790fbac1e75a7be9ce4f77be62a6e5fcccfd9bd73e9d8b48b9a3b6c1b7b918ecd321095f3839b3bc9b6f6af2b1bd9c905eeddc0d1177d297b073232 + languageName: node + linkType: hard + "decompress-response@npm:^6.0.0": version: 6.0.0 resolution: "decompress-response@npm:6.0.0" @@ -8235,7 +8287,6 @@ __metadata: "@types/mime-types": "npm:^2.1.0" "@types/minimist": "npm:^1.2.0" "@types/node": "npm:~22.10.7" - "@types/node-fetch": "npm:^2.5.5" "@types/rechoir": "npm:^0.6.1" "@types/semver": "npm:^7.3.4" "@types/which": "npm:^2.0.0" @@ -8272,7 +8323,7 @@ __metadata: form-data: "npm:^4.0.0" fs-extra: "npm:^10.0.0" global-dirs: "npm:^3.0.0" - got: "npm:^11.8.5" + got: "npm:^14.0.0" html-webpack-plugin: "npm:^5.5.3" husky: "npm:^7.0.1" inquirer: "npm:^8.0.0" @@ -8286,7 +8337,6 @@ __metadata: mime-types: "npm:^2.1.25" minimist: "npm:^1.2.6" msw: "npm:^2.7.0" - node-fetch: "npm:^2.6.7" parse-author: "npm:^2.0.0" prettier: "npm:^3.6.2" rechoir: "npm:^0.8.0" @@ -10220,6 +10270,13 @@ __metadata: languageName: node linkType: hard +"form-data-encoder@npm:^4.0.2": + version: 4.1.0 + resolution: "form-data-encoder@npm:4.1.0" + checksum: 10c0/cbd655aa8ffff6f7c2733b1d8e95fa9a2fe8a88a90bde29fb54b8e02c9406e51f32a014bfe8297d67fbac9f77614d14a8b4bbc4fd0352838e67e97a881d06332 + languageName: node + linkType: hard + "form-data@npm:^2.5.0": version: 2.5.5 resolution: "form-data@npm:2.5.5" @@ -10234,19 +10291,6 @@ __metadata: languageName: node linkType: hard -"form-data@npm:^3.0.0": - version: 3.0.4 - resolution: "form-data@npm:3.0.4" - dependencies: - asynckit: "npm:^0.4.0" - combined-stream: "npm:^1.0.8" - es-set-tostringtag: "npm:^2.1.0" - hasown: "npm:^2.0.2" - mime-types: "npm:^2.1.35" - checksum: 10c0/2451043b3e931653ce9690ba051b0bf1b5855a63029279bd7bdf8d02e4b5b42f4582b23ed3637df27a0d21bac2013c37d165ec9486e1af2470c13114aee83acc - languageName: node - linkType: hard - "form-data@npm:^4.0.0, form-data@npm:^4.0.4": version: 4.0.4 resolution: "form-data@npm:4.0.4" @@ -10723,6 +10767,16 @@ __metadata: languageName: node linkType: hard +"get-stream@npm:^9.0.1": + version: 9.0.1 + resolution: "get-stream@npm:9.0.1" + dependencies: + "@sec-ant/readable-stream": "npm:^0.4.1" + is-stream: "npm:^4.0.1" + checksum: 10c0/d70e73857f2eea1826ac570c3a912757dcfbe8a718a033fa0c23e12ac8e7d633195b01710e0559af574cbb5af101009b42df7b6f6b29ceec8dbdf7291931b948 + languageName: node + linkType: hard + "get-symbol-description@npm:^1.0.0": version: 1.0.0 resolution: "get-symbol-description@npm:1.0.0" @@ -11063,6 +11117,26 @@ __metadata: languageName: node linkType: hard +"got@npm:^14.0.0": + version: 14.6.4 + resolution: "got@npm:14.6.4" + dependencies: + "@sindresorhus/is": "npm:^7.0.1" + byte-counter: "npm:^0.1.0" + cacheable-lookup: "npm:^7.0.0" + cacheable-request: "npm:^13.0.12" + decompress-response: "npm:^10.0.0" + form-data-encoder: "npm:^4.0.2" + http2-wrapper: "npm:^2.2.1" + keyv: "npm:^5.5.3" + lowercase-keys: "npm:^3.0.0" + p-cancelable: "npm:^4.0.1" + responselike: "npm:^4.0.2" + type-fest: "npm:^4.26.1" + checksum: 10c0/ee8980feb842db876cffa42fa27da6d90cc1a9cfe2a38942f4b319cbb37c000e34919a7e5dea017a0fa53b0535c02d00426abbbf528d6a4e89c6eb07b2bde977 + languageName: node + linkType: hard + "graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.15, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" @@ -11358,6 +11432,13 @@ __metadata: languageName: node linkType: hard +"http-cache-semantics@npm:^4.2.0": + version: 4.2.0 + resolution: "http-cache-semantics@npm:4.2.0" + checksum: 10c0/45b66a945cf13ec2d1f29432277201313babf4a01d9e52f44b31ca923434083afeca03f18417f599c9ab3d0e7b618ceb21257542338b57c54b710463b4a53e37 + languageName: node + linkType: hard + "http-deceiver@npm:^1.2.7": version: 1.2.7 resolution: "http-deceiver@npm:1.2.7" @@ -11457,6 +11538,16 @@ __metadata: languageName: node linkType: hard +"http2-wrapper@npm:^2.2.1": + version: 2.2.1 + resolution: "http2-wrapper@npm:2.2.1" + dependencies: + quick-lru: "npm:^5.1.1" + resolve-alpn: "npm:^1.2.0" + checksum: 10c0/7207201d3c6e53e72e510c9b8912e4f3e468d3ecc0cf3bf52682f2aac9cd99358b896d1da4467380adc151cf97c412bedc59dc13dae90c523f42053a7449eedb + languageName: node + linkType: hard + "https-proxy-agent@npm:^5.0.0": version: 5.0.1 resolution: "https-proxy-agent@npm:5.0.1" @@ -12257,6 +12348,13 @@ __metadata: languageName: node linkType: hard +"is-stream@npm:^4.0.1": + version: 4.0.1 + resolution: "is-stream@npm:4.0.1" + checksum: 10c0/2706c7f19b851327ba374687bc4a3940805e14ca496dc672b9629e744d143b1ad9c6f1b162dece81c7bfbc0f83b32b61ccc19ad2e05aad2dd7af347408f60c7f + languageName: node + linkType: hard + "is-string@npm:^1.0.5, is-string@npm:^1.0.7": version: 1.0.7 resolution: "is-string@npm:1.0.7" @@ -12731,6 +12829,15 @@ __metadata: languageName: node linkType: hard +"keyv@npm:^5.5.3, keyv@npm:^5.5.4": + version: 5.5.4 + resolution: "keyv@npm:5.5.4" + dependencies: + "@keyv/serialize": "npm:^1.1.1" + checksum: 10c0/8dad7f61022c6348c4c691a19468b7c238198252edbd3cc08277d95253c137af7ce5ffd763b6ffded4a75cbe03dc3134f1adcd3dd26c5767c2c9c254e3b39001 + languageName: node + linkType: hard + "kind-of@npm:^6.0.2, kind-of@npm:^6.0.3": version: 6.0.3 resolution: "kind-of@npm:6.0.3" @@ -13179,6 +13286,13 @@ __metadata: languageName: node linkType: hard +"lowercase-keys@npm:^3.0.0": + version: 3.0.0 + resolution: "lowercase-keys@npm:3.0.0" + checksum: 10c0/ef62b9fa5690ab0a6e4ef40c94efce68e3ed124f583cc3be38b26ff871da0178a28b9a84ce0c209653bb25ca135520ab87fea7cd411a54ac4899cb2f30501430 + languageName: node + linkType: hard + "lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.2": version: 10.4.3 resolution: "lru-cache@npm:10.4.3" @@ -13839,6 +13953,13 @@ __metadata: languageName: node linkType: hard +"mimic-response@npm:^4.0.0": + version: 4.0.0 + resolution: "mimic-response@npm:4.0.0" + checksum: 10c0/761d788d2668ae9292c489605ffd4fad220f442fbae6832adce5ebad086d691e906a6d5240c290293c7a11e99fbdbbef04abbbed498bf8699a4ee0f31315e3fb + languageName: node + linkType: hard + "min-indent@npm:^1.0.0": version: 1.0.1 resolution: "min-indent@npm:1.0.1" @@ -14348,20 +14469,6 @@ __metadata: languageName: node linkType: hard -"node-fetch@npm:^2.6.7": - version: 2.6.7 - resolution: "node-fetch@npm:2.6.7" - dependencies: - whatwg-url: "npm:^5.0.0" - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - checksum: 10c0/fcae80f5ac52fbf5012f5e19df2bd3915e67d3b3ad51cb5942943df2238d32ba15890fecabd0e166876a9f98a581ab50f3f10eb942b09405c49ef8da36b826c7 - languageName: node - linkType: hard - "node-fetch@npm:^2.6.9": version: 2.6.11 resolution: "node-fetch@npm:2.6.11" @@ -14477,6 +14584,13 @@ __metadata: languageName: node linkType: hard +"normalize-url@npm:^8.1.0": + version: 8.1.0 + resolution: "normalize-url@npm:8.1.0" + checksum: 10c0/e9b68db5f0264ce74fc083e2120b4a40fb3248e5dceec5f795bddcee0311b3613f858c9a65f258614fac2776b8e9957023bea8fe7299db1496b3cd1c75976cfe + languageName: node + linkType: hard + "npm-bundled@npm:^4.0.0": version: 4.0.0 resolution: "npm-bundled@npm:4.0.0" @@ -15002,6 +15116,13 @@ __metadata: languageName: node linkType: hard +"p-cancelable@npm:^4.0.1": + version: 4.0.1 + resolution: "p-cancelable@npm:4.0.1" + checksum: 10c0/12636623f46784ba962b6fe7a1f34d021f1d9a2cc12c43e270baa715ea872d5c8c7d9f086ed420b8b9817e91d9bbe92c14c90e5dddd4a9968c81a2a7aef7089d + languageName: node + linkType: hard + "p-defer@npm:^1.0.0": version: 1.0.0 resolution: "p-defer@npm:1.0.0" @@ -16209,7 +16330,7 @@ __metadata: languageName: node linkType: hard -"resolve-alpn@npm:^1.0.0": +"resolve-alpn@npm:^1.0.0, resolve-alpn@npm:^1.2.0": version: 1.2.1 resolution: "resolve-alpn@npm:1.2.1" checksum: 10c0/b70b29c1843bc39781ef946c8cd4482e6d425976599c0f9c138cec8209e4e0736161bf39319b01676a847000085dfdaf63583c6fb4427bf751a10635bd2aa0c4 @@ -16366,6 +16487,15 @@ __metadata: languageName: node linkType: hard +"responselike@npm:^4.0.2": + version: 4.0.2 + resolution: "responselike@npm:4.0.2" + dependencies: + lowercase-keys: "npm:^3.0.0" + checksum: 10c0/8366407fc7f12466dd52682483a31dd6ca892481365caadea9a380196d8a6238650e064531087bebd25d7e9393f491efc2dad723fadc54db7a2b442dba8ef588 + languageName: node + linkType: hard + "restore-cursor@npm:^2.0.0": version: 2.0.0 resolution: "restore-cursor@npm:2.0.0" From d1f9e209c6ec250aedde963373e7b60782043a60 Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Wed, 26 Nov 2025 10:20:56 -0800 Subject: [PATCH 05/62] build passes --- packages/maker/wix/src/Config.ts | 2 +- packages/maker/wix/src/MakerWix.ts | 4 ++-- .../src/PublisherERS.ts | 18 +++++++++--------- packages/publisher/github/src/Config.ts | 2 +- packages/publisher/github/src/util/github.ts | 2 +- 5 files changed, 14 insertions(+), 14 deletions(-) diff --git a/packages/maker/wix/src/Config.ts b/packages/maker/wix/src/Config.ts index e8b6183b4e..6e99c8e03d 100644 --- a/packages/maker/wix/src/Config.ts +++ b/packages/maker/wix/src/Config.ts @@ -1,4 +1,4 @@ -import { MSICreator, MSICreatorOptions } from 'electron-wix-msi/lib/creator'; +import { MSICreator, type MSICreatorOptions } from 'electron-wix-msi'; export type MakerWixConfig = Omit< MSICreatorOptions, diff --git a/packages/maker/wix/src/MakerWix.ts b/packages/maker/wix/src/MakerWix.ts index 407068b606..dc3a739ee3 100644 --- a/packages/maker/wix/src/MakerWix.ts +++ b/packages/maker/wix/src/MakerWix.ts @@ -1,10 +1,10 @@ import path from 'node:path'; import { getNameFromAuthor } from '@electron-forge/core-utils'; -import { MakerBase, MakerOptions } from '@electron-forge/maker-base'; +import { MakerBase, type MakerOptions } from '@electron-forge/maker-base'; import { ForgePlatform } from '@electron-forge/shared-types'; import chalk from 'chalk'; -import { MSICreator, MSICreatorOptions } from 'electron-wix-msi/lib/creator'; +import { MSICreator, type MSICreatorOptions } from 'electron-wix-msi'; import logSymbols from 'log-symbols'; import semver from 'semver'; diff --git a/packages/publisher/electron-release-server/src/PublisherERS.ts b/packages/publisher/electron-release-server/src/PublisherERS.ts index 31385a21bc..7b1ce32920 100644 --- a/packages/publisher/electron-release-server/src/PublisherERS.ts +++ b/packages/publisher/electron-release-server/src/PublisherERS.ts @@ -8,7 +8,6 @@ import { ForgeArch, ForgePlatform } from '@electron-forge/shared-types'; import debug from 'debug'; import FormData from 'form-data'; import fs from 'fs-extra'; -import fetch, { RequestInfo, RequestInit, Response } from 'node-fetch'; import { PublisherERSConfig } from './Config.js'; @@ -37,17 +36,18 @@ interface ERSVersionSorted { } const fetchAndCheckStatus = async ( - url: RequestInfo, + url: Parameters[0], init?: RequestInit, ): Promise => { const result = await fetch(url, init); if (result.ok) { // res.status >= 200 && res.status < 300 return result; + } else { + throw new Error( + `ERS publish failed with status code: ${result.status} (${result.url})`, + ); } - throw new Error( - `ERS publish failed with status code: ${result.status} (${result.url})`, - ); }; export const ersPlatform = ( @@ -85,7 +85,7 @@ export default class PublisherERS extends PublisherBase { const api = (apiPath: string) => `${config.baseUrl}/${apiPath}`; - const { token } = await ( + const { token } = (await ( await fetchAndCheckStatus(api('api/auth/login'), { method: 'POST', body: JSON.stringify({ @@ -96,7 +96,7 @@ export default class PublisherERS extends PublisherBase { 'Content-Type': 'application/json', }, }) - ).json(); + ).json()) as { token: string }; const authFetch = (apiPath: string, options?: RequestInit) => fetchAndCheckStatus(api(apiPath), { @@ -116,9 +116,9 @@ export default class PublisherERS extends PublisherBase { path.basename(artifactPath).toLowerCase() !== 'releases', ); - const versions: ERSVersionSorted = await ( + const versions = (await ( await authFetch('versions/sorted') - ).json(); + ).json()) as ERSVersionSorted; // Find the version with the same name and flavor const existingVersion = versions['items'].find( diff --git a/packages/publisher/github/src/Config.ts b/packages/publisher/github/src/Config.ts index 35f504f1a0..a25ea197b1 100644 --- a/packages/publisher/github/src/Config.ts +++ b/packages/publisher/github/src/Config.ts @@ -1,4 +1,4 @@ -import { OctokitOptions } from '@octokit/core/dist-types/types.d'; +import type { OctokitOptions } from '@octokit/core'; export interface GitHubRepository { /** diff --git a/packages/publisher/github/src/util/github.ts b/packages/publisher/github/src/util/github.ts index 3c753c9df3..5e1d3f6a4e 100644 --- a/packages/publisher/github/src/util/github.ts +++ b/packages/publisher/github/src/util/github.ts @@ -1,6 +1,6 @@ import path from 'node:path'; -import { OctokitOptions } from '@octokit/core/dist-types/types.d'; +import type { OctokitOptions } from '@octokit/core'; import { retry } from '@octokit/plugin-retry'; import { Octokit } from '@octokit/rest'; import debug from 'debug'; From d92d3947b0d234cbe8ebe976cd0d37b23c3b657b Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Wed, 26 Nov 2025 14:18:24 -0800 Subject: [PATCH 06/62] this builds --- package.json | 11 +- packages/api/cli/package.json | 2 +- packages/api/core/package.json | 6 +- packages/api/core/src/api/package.ts | 285 +-- packages/api/core/src/api/start.ts | 4 +- .../api/core/src/util/upgrade-forge-config.ts | 2 +- packages/maker/deb/src/MakerDeb.ts | 2 - packages/maker/pkg/package.json | 2 +- packages/maker/pkg/src/MakerPKG.ts | 6 +- packages/maker/rpm/src/MakerRpm.ts | 2 - packages/plugin/fuses/package.json | 4 +- .../plugin/fuses/spec/fixture/package.json | 2 +- packages/plugin/vite/package.json | 2 +- packages/plugin/webpack/package.json | 2 +- packages/plugin/webpack/src/WebpackPlugin.ts | 20 +- packages/publisher/gcs/src/PublisherGCS.ts | 5 +- packages/publisher/s3/src/PublisherS3.ts | 5 +- packages/template/vite/tmpl/package.json | 2 +- packages/utils/core-utils/package.json | 2 +- packages/utils/types/package.json | 4 +- packages/utils/types/src/index.ts | 10 +- yarn.lock | 1644 ++++++++--------- 22 files changed, 909 insertions(+), 1115 deletions(-) diff --git a/package.json b/package.json index 7cbc5d14c8..10e5a38e98 100644 --- a/package.json +++ b/package.json @@ -31,10 +31,6 @@ "@aws-sdk/client-s3": "^3.654.0", "@aws-sdk/lib-storage": "^3.654.0", "@aws-sdk/types": "^3.654.0", - "@electron/get": "^3.0.0", - "@electron/osx-sign": "^1.0.5", - "@electron/packager": "^18.3.5", - "@electron/rebuild": "^3.7.0", "@google-cloud/storage": "^7.5.0", "@inquirer/prompts": "^6.0.1", "@listr2/prompt-adapter-inquirer": "^2.0.22", @@ -82,8 +78,8 @@ "xterm-addon-search": "^0.8.0" }, "devDependencies": { - "@electron/fuses": "^1.0.0", - "@electron/lint-roller": "1.10.1", + "@electron/fuses": "^2.0.0", + "@electron/lint-roller": "3.1.3", "@tsconfig/node22": "^22.0.5", "@types/cross-spawn": "^6.0.1", "@types/debug": "^4.1.12", @@ -135,9 +131,6 @@ "electron-winstaller": "^5.3.0", "electron-wix-msi": "^5.1.3" }, - "peerDependencies": { - "@electron/fuses": "^1.0.0" - }, "lint-staged": { "*.{html,json,md,yml}": "prettier --write --experimental-cli", "*.{js,ts, cjs, mjs, cts, mts}": [ diff --git a/packages/api/cli/package.json b/packages/api/cli/package.json index 575082e305..55cf17f494 100644 --- a/packages/api/cli/package.json +++ b/packages/api/cli/package.json @@ -19,7 +19,7 @@ "@electron-forge/core": "workspace:*", "@electron-forge/core-utils": "workspace:*", "@electron-forge/shared-types": "workspace:*", - "@electron/get": "^3.0.0", + "@electron/get": "^4.0.2", "@inquirer/prompts": "^6.0.1", "@listr2/prompt-adapter-inquirer": "^2.0.22", "chalk": "^4.0.0", diff --git a/packages/api/core/package.json b/packages/api/core/package.json index 84efba386b..84654f9d13 100644 --- a/packages/api/core/package.json +++ b/packages/api/core/package.json @@ -40,9 +40,9 @@ "@electron-forge/template-webpack": "workspace:*", "@electron-forge/template-webpack-typescript": "workspace:*", "@electron-forge/tracer": "workspace:*", - "@electron/get": "^3.0.0", - "@electron/packager": "^18.3.5", - "@electron/rebuild": "^3.7.0", + "@electron/get": "^4.0.2", + "@electron/packager": "^19.0.1", + "@electron/rebuild": "^4.0.1", "@malept/cross-spawn-promise": "^2.0.0", "@vscode/sudo-prompt": "^9.3.1", "chalk": "^4.0.0", diff --git a/packages/api/core/src/api/package.ts b/packages/api/core/src/api/package.ts index 0dddcfa160..56f8973a9a 100644 --- a/packages/api/core/src/api/package.ts +++ b/packages/api/core/src/api/package.ts @@ -1,12 +1,11 @@ import path from 'node:path'; -import { promisify } from 'node:util'; import { getHostArch } from '@electron/get'; import { FinalizePackageTargetsHookFunction, - HookFunction, - Options, packager, + HookFunction as PackagerHookFunction, + Options as PackagerOptions, TargetDefinition, } from '@electron/packager'; import { @@ -41,7 +40,7 @@ const d = debug('electron-forge:packager'); /** * Resolves hooks if they are a path to a file (instead of a `Function`). */ -async function resolveHooks( +async function resolveHooks( hooks: (string | F)[] | undefined, dir: string, ) { @@ -58,74 +57,6 @@ async function resolveHooks( return []; } -type DoneFunction = (err?: Error) => void; -type PromisifiedHookFunction = ( - buildPath: string, - electronVersion: string, - platform: string, - arch: string, -) => Promise; -type PromisifiedFinalizePackageTargetsHookFunction = ( - targets: TargetDefinition[], -) => Promise; - -/** - * @deprecated Only use until \@electron/packager publishes a new major version with promise based hooks - */ -function hidePromiseFromPromisify

( - fn: (...args: P) => Promise, -): (...args: P) => void { - return (...args: P) => { - void fn(...args); - }; -} - -/** - * Runs given hooks sequentially by mapping them to promises and iterating - * through while awaiting - */ -function sequentialHooks(hooks: HookFunction[]): PromisifiedHookFunction[] { - return [ - hidePromiseFromPromisify( - async ( - buildPath: string, - electronVersion: string, - platform: string, - arch: string, - done: DoneFunction, - ) => { - for (const hook of hooks) { - try { - await promisify(hook)(buildPath, electronVersion, platform, arch); - } catch (err) { - d('hook failed:', hook.toString(), err); - return done(err as Error); - } - } - done(); - }, - ), - ] as PromisifiedHookFunction[]; -} -function sequentialFinalizePackageTargetsHooks( - hooks: FinalizePackageTargetsHookFunction[], -): PromisifiedFinalizePackageTargetsHookFunction[] { - return [ - hidePromiseFromPromisify( - async (targets: TargetDefinition[], done: DoneFunction) => { - for (const hook of hooks) { - try { - await promisify(hook)(targets); - } catch (err) { - return done(err as Error); - } - } - done(); - }, - ), - ] as PromisifiedFinalizePackageTargetsHookFunction[]; -} - type PackageContext = { dir: string; forgeConfig: ResolvedForgeConfig; @@ -324,9 +255,8 @@ export const listrPackage = ( >(); const afterFinalizePackageTargetsHooks: FinalizePackageTargetsHookFunction[] = [ - (targets, done) => { + (targets) => { provideTargets(targets); - done(); }, ...(await resolveHooks( forgeConfig.packagerConfig.afterFinalizePackageTargets, @@ -338,96 +268,78 @@ export const listrPackage = ( !('prune' in forgeConfig.packagerConfig) || forgeConfig.packagerConfig.prune; - const afterCopyHooks: HookFunction[] = [ - hidePromiseFromPromisify( - async (buildPath, electronVersion, platform, arch, done) => { - signalDone(signalCopyDone, { platform, arch }); - done(); - }, - ), - hidePromiseFromPromisify( - async (buildPath, electronVersion, pPlatform, pArch, done) => { - const bins = await glob(path.join(buildPath, '**/.bin/**/*')); - for (const bin of bins) { - await fs.remove(bin); - } - done(); - }, - ), - hidePromiseFromPromisify( - async (buildPath, electronVersion, pPlatform, pArch, done) => { - await runHook( - forgeConfig, - 'packageAfterCopy', - buildPath, - electronVersion, - pPlatform, - pArch, - ); - done(); - }, - ), - hidePromiseFromPromisify( - async (buildPath, electronVersion, pPlatform, pArch, done) => { - const targetKey = getTargetKey({ - platform: pPlatform, - arch: pArch, - }); - await listrCompatibleRebuildHook( - buildPath, - electronVersion, - pPlatform, - pArch, - forgeConfig.rebuildConfig, - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - await rebuildTasks.get(targetKey)!.pop()!, - ); - signalRebuildDone.get(targetKey)?.pop()?.(); - done(); - }, - ), - hidePromiseFromPromisify( - async (buildPath, electronVersion, pPlatform, pArch, done) => { - const copiedPackageJSON = await readMutatedPackageJson( - buildPath, - forgeConfig, - ); - if ( - copiedPackageJSON.config && - copiedPackageJSON.config.forge - ) { - delete copiedPackageJSON.config.forge; - } - await fs.writeJson( - path.resolve(buildPath, 'package.json'), - copiedPackageJSON, - { spaces: 2 }, - ); - done(); - }, - ), + const afterCopyHooks: PackagerHookFunction[] = [ + async ({ platform, arch }) => { + signalDone(signalCopyDone, { platform, arch }); + }, + async ({ buildPath }) => { + const bins = await glob(path.join(buildPath, '**/.bin/**/*')); + for (const bin of bins) { + await fs.remove(bin); + } + }, + async ({ buildPath, electronVersion, platform, arch }) => { + await runHook( + forgeConfig, + 'packageAfterCopy', + buildPath, + electronVersion, + platform, + arch, + ); + }, + async ({ buildPath, electronVersion, platform, arch }) => { + const targetKey = getTargetKey({ + platform, + arch, + }); + await listrCompatibleRebuildHook( + buildPath, + electronVersion, + platform, + arch, + forgeConfig.rebuildConfig, + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + await rebuildTasks.get(targetKey)!.pop()!, + ); + signalRebuildDone.get(targetKey)?.pop()?.(); + }, + async ({ buildPath }) => { + const copiedPackageJSON = await readMutatedPackageJson( + buildPath, + forgeConfig, + ); + if ( + copiedPackageJSON.config && + copiedPackageJSON.config.forge + ) { + delete copiedPackageJSON.config.forge; + } + await fs.writeJson( + path.resolve(buildPath, 'package.json'), + copiedPackageJSON, + { spaces: 2 }, + ); + }, ...(await resolveHooks( forgeConfig.packagerConfig.afterCopy, ctx.dir, )), ]; - const afterCompleteHooks: HookFunction[] = [ - hidePromiseFromPromisify( - async (buildPath, electronVersion, pPlatform, pArch, done) => { - signalPackageDone - .get(getTargetKey({ platform: pPlatform, arch: pArch })) - ?.pop()?.(); - done(); - }, - ), + const afterCompleteHooks: PackagerHookFunction[] = [ + async ({ platform, arch }) => { + signalPackageDone + .get(getTargetKey({ platform, arch })) + ?.pop()?.(); + }, ...(await resolveHooks( forgeConfig.packagerConfig.afterComplete, ctx.dir, )), ]; - const afterPruneHooks = []; + const afterPruneHooks: PackagerHookFunction[] = []; if (pruneEnabled) { afterPruneHooks.push( @@ -439,36 +351,31 @@ export const listrPackage = ( } afterPruneHooks.push( - hidePromiseFromPromisify( - async (buildPath, electronVersion, pPlatform, pArch, done) => { - await runHook( - forgeConfig, - 'packageAfterPrune', - buildPath, - electronVersion, - pPlatform, - pArch, - ); - done(); - }, - ) as HookFunction, + async ({ buildPath, electronVersion, platform, arch }) => { + await runHook( + forgeConfig, + 'packageAfterPrune', + buildPath, + electronVersion, + platform, + arch, + ); + }, ); - const afterExtractHooks = [ - hidePromiseFromPromisify( - async (buildPath, electronVersion, pPlatform, pArch, done) => { - await runHook( - forgeConfig, - 'packageAfterExtract', - buildPath, - electronVersion, - pPlatform, - pArch, - ); - done(); - }, - ) as HookFunction, + const afterExtractHooks: PackagerHookFunction[] = [ + async ({ buildPath, electronVersion, platform, arch }) => { + await runHook( + forgeConfig, + 'packageAfterExtract', + buildPath, + electronVersion, + platform, + arch, + ); + }, ]; + afterExtractHooks.push( ...(await resolveHooks( forgeConfig.packagerConfig.afterExtract, @@ -476,25 +383,21 @@ export const listrPackage = ( )), ); - type PackagerArch = Exclude; - - const packageOpts: Options = { + const packageOpts: PackagerOptions = { asar: false, overwrite: true, ignore: [/^\/out\//g], quiet: true, ...forgeConfig.packagerConfig, dir: ctx.dir, - arch: arch as PackagerArch, + arch: arch, platform, - afterFinalizePackageTargets: - sequentialFinalizePackageTargetsHooks( - afterFinalizePackageTargetsHooks, - ), - afterComplete: sequentialHooks(afterCompleteHooks), - afterCopy: sequentialHooks(afterCopyHooks), - afterExtract: sequentialHooks(afterExtractHooks), - afterPrune: sequentialHooks(afterPruneHooks), + // TODO: Make these hooks serial again + afterFinalizePackageTargets: afterFinalizePackageTargetsHooks, + afterComplete: afterCompleteHooks, + afterCopy: afterCopyHooks, + afterExtract: afterExtractHooks, + afterPrune: afterPruneHooks, out: calculatedOutDir, electronVersion: await getElectronVersion(ctx.dir, packageJSON), }; diff --git a/packages/api/core/src/api/start.ts b/packages/api/core/src/api/start.ts index 7b0b8add40..ca5c8fbfd5 100644 --- a/packages/api/core/src/api/start.ts +++ b/packages/api/core/src/api/start.ts @@ -141,8 +141,8 @@ export default autoTrace( childTrace, forgeConfig, 'generateAssets', - platform, - arch, + platform as ForgePlatform, + arch as ForgeArch, ), ), 'run', diff --git a/packages/api/core/src/util/upgrade-forge-config.ts b/packages/api/core/src/util/upgrade-forge-config.ts index fd6e7d1ff7..dc2c9e8107 100644 --- a/packages/api/core/src/util/upgrade-forge-config.ts +++ b/packages/api/core/src/util/upgrade-forge-config.ts @@ -51,7 +51,7 @@ function mapMakeTargets( const makeTargets = new Map(); if (forge5Config.make_targets) { for (const [platform, targets] of Object.entries( - forge5Config.make_targets as MakeTargets, + forge5Config.make_targets as unknown as MakeTargets, )) { for (const target of targets) { let platforms = makeTargets.get(target); diff --git a/packages/maker/deb/src/MakerDeb.ts b/packages/maker/deb/src/MakerDeb.ts index bd5339f37b..fc8a5a52d4 100644 --- a/packages/maker/deb/src/MakerDeb.ts +++ b/packages/maker/deb/src/MakerDeb.ts @@ -13,8 +13,6 @@ export function debianArch(nodeArch: ForgeArch): string { return 'amd64'; case 'armv7l': return 'armhf'; - case 'arm': - return 'armel'; default: return nodeArch; } diff --git a/packages/maker/pkg/package.json b/packages/maker/pkg/package.json index c7062e87e9..fb9761d8d7 100644 --- a/packages/maker/pkg/package.json +++ b/packages/maker/pkg/package.json @@ -17,7 +17,7 @@ "dependencies": { "@electron-forge/maker-base": "workspace:*", "@electron-forge/shared-types": "workspace:*", - "@electron/osx-sign": "^1.0.5" + "@electron/osx-sign": "^2.3.0" }, "publishConfig": { "access": "public" diff --git a/packages/maker/pkg/src/MakerPKG.ts b/packages/maker/pkg/src/MakerPKG.ts index 0484c2628a..01e2e651d0 100644 --- a/packages/maker/pkg/src/MakerPKG.ts +++ b/packages/maker/pkg/src/MakerPKG.ts @@ -1,6 +1,6 @@ import path from 'node:path'; -import { flatAsync } from '@electron/osx-sign'; +import { flat } from '@electron/osx-sign'; import { MakerBase, MakerOptions } from '@electron-forge/maker-base'; import { ForgePlatform } from '@electron-forge/shared-types'; @@ -41,7 +41,7 @@ export default class MakerPKG extends MakerBase { pkg: outPath, platform: targetPlatform, }; - await flatAsync(pkgConfig); + await flat(pkgConfig); return [outPath]; } @@ -49,7 +49,7 @@ export default class MakerPKG extends MakerBase { private isValidTargetPlatform( platform: string, ): platform is 'darwin' | 'mas' { - return this.defaultPlatforms.includes(platform); + return (this.defaultPlatforms as string[]).includes(platform); } } diff --git a/packages/maker/rpm/src/MakerRpm.ts b/packages/maker/rpm/src/MakerRpm.ts index 53b1965dea..7b977c629a 100644 --- a/packages/maker/rpm/src/MakerRpm.ts +++ b/packages/maker/rpm/src/MakerRpm.ts @@ -22,8 +22,6 @@ export function rpmArch(nodeArch: ForgeArch): string { return 'aarch64'; case 'armv7l': return 'armv7hl'; - case 'arm': - return 'armv6hl'; default: return nodeArch; } diff --git a/packages/plugin/fuses/package.json b/packages/plugin/fuses/package.json index 2bdcd14ec3..3f96f58670 100644 --- a/packages/plugin/fuses/package.json +++ b/packages/plugin/fuses/package.json @@ -15,12 +15,12 @@ ], "typings": "dist/FusesPlugin.d.ts", "devDependencies": { - "@electron/fuses": "^1.0.0", + "@electron/fuses": "^2.0.0", "@malept/cross-spawn-promise": "^2.0.0", "xvfb-maybe": "^0.2.1" }, "peerDependencies": { - "@electron/fuses": "^1.0.0" + "@electron/fuses": "^2.0.0" }, "engines": { "node": ">= 22.12.0" diff --git a/packages/plugin/fuses/spec/fixture/package.json b/packages/plugin/fuses/spec/fixture/package.json index 05695ccba5..3402527952 100644 --- a/packages/plugin/fuses/spec/fixture/package.json +++ b/packages/plugin/fuses/spec/fixture/package.json @@ -3,7 +3,7 @@ "version": "1.0.0", "main": "./src/main.js", "dependencies": { - "@electron/fuses": "^1.6.1", + "@electron/fuses": "^2.0.0", "fs-extra": "^10.0.0" }, "devDependencies": { diff --git a/packages/plugin/vite/package.json b/packages/plugin/vite/package.json index 43d06be10b..57de4e0e6a 100644 --- a/packages/plugin/vite/package.json +++ b/packages/plugin/vite/package.json @@ -21,7 +21,7 @@ "listr2": "^7.0.2" }, "devDependencies": { - "@electron/packager": "^18.3.5", + "@electron/packager": "^19.0.1", "@malept/cross-spawn-promise": "^2.0.0", "@types/node": "~22.10.7", "vite": "^5.0.12", diff --git a/packages/plugin/webpack/package.json b/packages/plugin/webpack/package.json index 39f487629e..8e37b6e598 100644 --- a/packages/plugin/webpack/package.json +++ b/packages/plugin/webpack/package.json @@ -9,7 +9,7 @@ "main": "dist/WebpackPlugin.js", "typings": "dist/WebpackPlugin.d.ts", "devDependencies": { - "@electron/packager": "^18.3.5", + "@electron/packager": "^19.0.1", "@malept/cross-spawn-promise": "^2.0.0", "@types/node": "~22.10.7", "vitest": "^3.1.3", diff --git a/packages/plugin/webpack/src/WebpackPlugin.ts b/packages/plugin/webpack/src/WebpackPlugin.ts index 746cbcf621..82a64b7c0a 100644 --- a/packages/plugin/webpack/src/WebpackPlugin.ts +++ b/packages/plugin/webpack/src/WebpackPlugin.ts @@ -9,6 +9,7 @@ import { } from '@electron-forge/core-utils'; import { namedHookWithTaskFn, PluginBase } from '@electron-forge/plugin-base'; import { + ForgeArch, ForgeMultiHookMap, ListrTask, ResolvedForgeConfig, @@ -241,16 +242,19 @@ export default class WebpackPlugin extends PluginBase { await fs.remove(this.baseDir); // TODO: Figure out how to get matrix from packager - const arches: string[] = Array.from( - new Set( - arch - .split(',') - .reduce< - string[] - >((all, pArch) => (pArch === 'universal' ? all.concat(['arm64', 'x64']) : all.concat([pArch])), []), - ), + const archStrings = arch.split(','); + const archSet = new Set( + archStrings.reduce((acc, val) => { + if (val === 'universal') { + return acc.concat('arm64', 'x64'); + } else { + return acc.concat(val as ForgeArch); + } + }, []), ); + const arches = Array.from(archSet); + const firstArch = arches[0]; const otherArches = arches.slice(1); diff --git a/packages/publisher/gcs/src/PublisherGCS.ts b/packages/publisher/gcs/src/PublisherGCS.ts index 9e83b2dd32..d128d80bd3 100644 --- a/packages/publisher/gcs/src/PublisherGCS.ts +++ b/packages/publisher/gcs/src/PublisherGCS.ts @@ -6,14 +6,15 @@ import { Storage } from '@google-cloud/storage'; import debug from 'debug'; import { PublisherGCSConfig } from './Config.js'; +import { ForgeArch, ForgePlatform } from '@electron-forge/shared-types'; const d = debug('electron-forge:publish:gcs'); export type GCSArtifact = { path: string; keyPrefix: string; - platform: string; - arch: string; + platform: ForgePlatform; + arch: ForgeArch; version: string; }; diff --git a/packages/publisher/s3/src/PublisherS3.ts b/packages/publisher/s3/src/PublisherS3.ts index 3299a64488..c3495c687e 100644 --- a/packages/publisher/s3/src/PublisherS3.ts +++ b/packages/publisher/s3/src/PublisherS3.ts @@ -11,14 +11,15 @@ import { import debug from 'debug'; import { PublisherS3Config } from './Config.js'; +import { ForgeArch, ForgePlatform } from '@electron-forge/shared-types'; const d = debug('electron-forge:publish:s3'); type S3Artifact = { path: string; keyPrefix: string; - platform: string; - arch: string; + platform: ForgePlatform; + arch: ForgeArch; isReleaseFile: boolean; version: string; }; diff --git a/packages/template/vite/tmpl/package.json b/packages/template/vite/tmpl/package.json index a47907d70d..72517f0d43 100644 --- a/packages/template/vite/tmpl/package.json +++ b/packages/template/vite/tmpl/package.json @@ -1,6 +1,6 @@ { "devDependencies": { - "@electron/fuses": "^1.7.0", + "@electron/fuses": "^2.0.0", "@electron-forge/plugin-vite": "ELECTRON_FORGE/VERSION", "vite": "^5.0.12" } diff --git a/packages/utils/core-utils/package.json b/packages/utils/core-utils/package.json index 855140098e..aef8a52f79 100644 --- a/packages/utils/core-utils/package.json +++ b/packages/utils/core-utils/package.json @@ -10,7 +10,7 @@ "typings": "dist/index.d.ts", "dependencies": { "@electron-forge/shared-types": "workspace:*", - "@electron/rebuild": "^3.7.0", + "@electron/rebuild": "^4.0.1", "@malept/cross-spawn-promise": "^2.0.0", "chalk": "^4.0.0", "debug": "^4.3.1", diff --git a/packages/utils/types/package.json b/packages/utils/types/package.json index b571165c64..a67b83fbc7 100644 --- a/packages/utils/types/package.json +++ b/packages/utils/types/package.json @@ -10,8 +10,8 @@ "typings": "dist/index.d.ts", "dependencies": { "@electron-forge/tracer": "workspace:*", - "@electron/packager": "^18.3.5", - "@electron/rebuild": "^3.7.0", + "@electron/packager": "^19.0.1", + "@electron/rebuild": "^4.0.1", "listr2": "^7.0.2" }, "engines": { diff --git a/packages/utils/types/src/index.ts b/packages/utils/types/src/index.ts index 52ce10fd66..fbd103cb88 100644 --- a/packages/utils/types/src/index.ts +++ b/packages/utils/types/src/index.ts @@ -1,9 +1,9 @@ import { ChildProcess } from 'node:child_process'; -import { - ArchOption, +import type { Options as ElectronPackagerOptions, - TargetPlatform, + OfficialArch, + OfficialPlatform, } from '@electron/packager'; import { RebuildOptions } from '@electron/rebuild'; import { autoTrace } from '@electron-forge/tracer'; @@ -34,8 +34,8 @@ export type ForgeListrTaskFn = ListrTask< >['task']; export type ElectronProcess = ChildProcess & { restarted: boolean }; -export type ForgePlatform = TargetPlatform; -export type ForgeArch = ArchOption; +export type ForgePlatform = OfficialPlatform; +export type ForgeArch = OfficialArch | 'all'; export type ForgeConfigPublisher = IForgeResolvablePublisher | IForgePublisher; export type ForgeConfigMaker = IForgeResolvableMaker | IForgeMaker; export type ForgeConfigPlugin = IForgeResolvablePlugin | IForgePlugin; diff --git a/yarn.lock b/yarn.lock index 29af4fec0c..ab46c566f5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -786,7 +786,7 @@ __metadata: "@electron-forge/core": "workspace:*" "@electron-forge/core-utils": "workspace:*" "@electron-forge/shared-types": "workspace:*" - "@electron/get": "npm:^3.0.0" + "@electron/get": "npm:^4.0.2" "@inquirer/prompts": "npm:^6.0.1" "@listr2/prompt-adapter-inquirer": "npm:^2.0.22" "@malept/cross-spawn-promise": "npm:^2.0.0" @@ -810,7 +810,7 @@ __metadata: resolution: "@electron-forge/core-utils@workspace:packages/utils/core-utils" dependencies: "@electron-forge/shared-types": "workspace:*" - "@electron/rebuild": "npm:^3.7.0" + "@electron/rebuild": "npm:^4.0.1" "@malept/cross-spawn-promise": "npm:^2.0.0" chalk: "npm:^4.0.0" debug: "npm:^4.3.1" @@ -849,9 +849,9 @@ __metadata: "@electron-forge/template-webpack-typescript": "workspace:*" "@electron-forge/test-utils": "workspace:*" "@electron-forge/tracer": "workspace:*" - "@electron/get": "npm:^3.0.0" - "@electron/packager": "npm:^18.3.5" - "@electron/rebuild": "npm:^3.7.0" + "@electron/get": "npm:^4.0.2" + "@electron/packager": "npm:^19.0.1" + "@electron/rebuild": "npm:^4.0.1" "@malept/cross-spawn-promise": "npm:^2.0.0" "@types/interpret": "npm:^1.1.1" "@types/progress": "npm:^2.0.5" @@ -979,7 +979,7 @@ __metadata: "@electron-forge/maker-base": "workspace:*" "@electron-forge/shared-types": "workspace:*" "@electron-forge/test-utils": "workspace:*" - "@electron/osx-sign": "npm:^1.0.5" + "@electron/osx-sign": "npm:^2.3.0" vitest: "npm:^3.1.3" languageName: unknown linkType: soft @@ -1081,11 +1081,11 @@ __metadata: dependencies: "@electron-forge/plugin-base": "workspace:*" "@electron-forge/shared-types": "workspace:*" - "@electron/fuses": "npm:^1.0.0" + "@electron/fuses": "npm:^2.0.0" "@malept/cross-spawn-promise": "npm:^2.0.0" xvfb-maybe: "npm:^0.2.1" peerDependencies: - "@electron/fuses": ^1.0.0 + "@electron/fuses": ^2.0.0 languageName: unknown linkType: soft @@ -1106,7 +1106,7 @@ __metadata: dependencies: "@electron-forge/plugin-base": "workspace:*" "@electron-forge/shared-types": "workspace:*" - "@electron/packager": "npm:^18.3.5" + "@electron/packager": "npm:^19.0.1" "@malept/cross-spawn-promise": "npm:^2.0.0" "@types/node": "npm:~22.10.7" chalk: "npm:^4.0.0" @@ -1128,7 +1128,7 @@ __metadata: "@electron-forge/plugin-base": "workspace:*" "@electron-forge/shared-types": "workspace:*" "@electron-forge/web-multi-logger": "workspace:*" - "@electron/packager": "npm:^18.3.5" + "@electron/packager": "npm:^19.0.1" "@malept/cross-spawn-promise": "npm:^2.0.0" "@types/node": "npm:~22.10.7" chalk: "npm:^4.0.0" @@ -1262,8 +1262,8 @@ __metadata: resolution: "@electron-forge/shared-types@workspace:packages/utils/types" dependencies: "@electron-forge/tracer": "workspace:*" - "@electron/packager": "npm:^18.3.5" - "@electron/rebuild": "npm:^3.7.0" + "@electron/packager": "npm:^19.0.1" + "@electron/rebuild": "npm:^4.0.1" listr2: "npm:^7.0.2" languageName: unknown linkType: soft @@ -1381,7 +1381,7 @@ __metadata: languageName: unknown linkType: soft -"@electron/asar@npm:^3.2.1, @electron/asar@npm:^3.2.13, @electron/asar@npm:^3.3.1": +"@electron/asar@npm:^3.2.1": version: 3.4.1 resolution: "@electron/asar@npm:3.4.1" dependencies: @@ -1394,158 +1394,146 @@ __metadata: languageName: node linkType: hard -"@electron/fuses@npm:^1.0.0": - version: 1.8.0 - resolution: "@electron/fuses@npm:1.8.0" +"@electron/asar@npm:^4.0.0, @electron/asar@npm:^4.0.1": + version: 4.0.1 + resolution: "@electron/asar@npm:4.0.1" dependencies: - chalk: "npm:^4.1.1" - fs-extra: "npm:^9.0.1" - minimist: "npm:^1.2.5" + commander: "npm:^13.1.0" + glob: "npm:^11.0.1" + minimatch: "npm:^10.0.1" + bin: + asar: bin/asar.mjs + checksum: 10c0/4071dfce3d3d53e17baac023b1c38dfc83b5975b68b708943692bd1525a08b02c6717c334fefaeb3aaa860c5495842047a06a044351b652455653f762d13f850 + languageName: node + linkType: hard + +"@electron/fuses@npm:^2.0.0": + version: 2.0.0 + resolution: "@electron/fuses@npm:2.0.0" bin: electron-fuses: dist/bin.js - checksum: 10c0/7a2eff2a700a0dc9997346a2cbef83a852ec4a743b047ef89ce8dddfb182377c3a71e340c0cd3dc729d843cccb524253f9a9b96f37271d431f4409f3d897a200 + checksum: 10c0/f735e589d9f785ea59bf156b8b8c579d61e145958fe67f6c555b6e1b65581fefd150a53ef355079922be7d2a19fb5f4fa4262bce067badb00a3d3f7a66aa4410 languageName: node linkType: hard -"@electron/get@npm:^3.0.0": - version: 3.0.0 - resolution: "@electron/get@npm:3.0.0" +"@electron/get@npm:^4.0.2": + version: 4.0.2 + resolution: "@electron/get@npm:4.0.2" dependencies: debug: "npm:^4.1.1" - env-paths: "npm:^2.2.0" - fs-extra: "npm:^8.1.0" + env-paths: "npm:^3.0.0" global-agent: "npm:^3.0.0" - got: "npm:^11.8.5" + got: "npm:^14.4.5" + graceful-fs: "npm:^4.2.11" progress: "npm:^2.0.3" - semver: "npm:^6.2.0" + semver: "npm:^7.6.3" sumchecker: "npm:^3.0.1" dependenciesMeta: global-agent: optional: true - checksum: 10c0/ee8dbdb395d5876a60c8c4f91c01956aede0553d502b7f6a122cd1fd99157574b5592b03eefcf54741623b1414565a63c97a1712a45c7f1d0ebcbce6d7ec08b0 + checksum: 10c0/21c6fd66f552a66c5ac2b8e06c684be2a1cfc2124c9e60f2708dfbdf32d719013946b5492d755d9830c833b421b61ba9d56a800abc3bae2fbd3fabfd80b33d14 languageName: node linkType: hard -"@electron/lint-roller@npm:1.10.1": - version: 1.10.1 - resolution: "@electron/lint-roller@npm:1.10.1" +"@electron/lint-roller@npm:3.1.3": + version: 3.1.3 + resolution: "@electron/lint-roller@npm:3.1.3" dependencies: "@dsanders11/vscode-markdown-languageservice": "npm:^0.3.0" - balanced-match: "npm:^2.0.0" - glob: "npm:^8.1.0" - markdown-it: "npm:^13.0.1" - markdownlint-cli: "npm:^0.33.0" - mdast-util-from-markdown: "npm:^1.3.0" - minimist: "npm:^1.2.8" - node-fetch: "npm:^2.6.9" - rimraf: "npm:^4.4.1" + ajv: "npm:^8.16.0" + balanced-match: "npm:^3.0.1" + glob: "npm:^10.4.5" + hast-util-from-html: "npm:^2.0.1" + markdown-it: "npm:^14.1.0" + mdast-util-from-markdown: "npm:^2.0.2" standard: "npm:^17.0.0" - unist-util-visit: "npm:^4.1.2" + unist-util-visit: "npm:^5.0.0" vscode-languageserver: "npm:^8.1.0" vscode-languageserver-textdocument: "npm:^1.0.8" - vscode-uri: "npm:^3.0.7" + vscode-uri: "npm:^3.0.8" + yaml: "npm:^2.4.5" peerDependencies: - typescript: ^4.5.5 - bin: - electron-lint-markdown-links: dist/bin/lint-markdown-links.js - electron-lint-markdown-standard: dist/bin/lint-markdown-standard.js - electron-lint-markdown-ts-check: dist/bin/lint-markdown-ts-check.js - electron-markdownlint: dist/bin/markdownlint-cli-wrapper.js - checksum: 10c0/9568dfd592228dfd5abb782f13d7c30a693b9bd73b3c16f0ee7a9d3518ee6624bcbf5105f82213a21b77e0ca36313639b8accd0023d24489e13815c2d594c8e1 - languageName: node - linkType: hard - -"@electron/node-gyp@git+https://github.com/electron/node-gyp.git#06b29aafb7708acef8b3669835c8a7857ebc92d2": - version: 10.2.0-electron.1 - resolution: "@electron/node-gyp@https://github.com/electron/node-gyp.git#commit=06b29aafb7708acef8b3669835c8a7857ebc92d2" - dependencies: - env-paths: "npm:^2.2.0" - exponential-backoff: "npm:^3.1.1" - glob: "npm:^8.1.0" - graceful-fs: "npm:^4.2.6" - make-fetch-happen: "npm:^10.2.1" - nopt: "npm:^6.0.0" - proc-log: "npm:^2.0.1" - semver: "npm:^7.3.5" - tar: "npm:^6.2.1" - which: "npm:^2.0.2" + typescript: ">= 4.7.0" + peerDependenciesMeta: + typescript: + optional: true bin: - node-gyp: ./bin/node-gyp.js - checksum: 10c0/e8c97bb5347bf0871312860010b70379069359bf05a6beb9e4d898d0831f9f8447f35b887a86d5241989e804813cf72054327928da38714a6102f791e802c8d9 + lint-roller-markdown-api-history: dist/bin/lint-markdown-api-history.js + lint-roller-markdown-links: dist/bin/lint-markdown-links.js + lint-roller-markdown-standard: dist/bin/lint-markdown-standard.js + lint-roller-markdown-ts-check: dist/bin/lint-markdown-ts-check.js + checksum: 10c0/657b17b4921a8887334287e245dde85022704c673e1bba867e2a79abb643392b4e4e3962b8745074e78811938b28c4653c37b0c07a76a298a2a00ab3276f475e languageName: node linkType: hard -"@electron/notarize@npm:^2.1.0": - version: 2.2.0 - resolution: "@electron/notarize@npm:2.2.0" +"@electron/notarize@npm:^3.1.0": + version: 3.1.1 + resolution: "@electron/notarize@npm:3.1.1" dependencies: - debug: "npm:^4.1.1" - fs-extra: "npm:^9.0.1" + debug: "npm:^4.4.0" promise-retry: "npm:^2.0.1" - checksum: 10c0/20d0207227a73d938539e3137bb89d07b16f16a139e60f497ed5172fa6545bb8a84998dc77140262fcbcc5f0d3c45059fd72c8a454825dbae377fcd671c6704d + checksum: 10c0/1e9adc0cafc1c2e79c39a41c97de912d6a899d661de506301310e17c569dc2885c9729c21840ceb70871f2e648ab983d3731149c6dc4ea354a001ad463c83e7e languageName: node linkType: hard -"@electron/osx-sign@npm:^1.0.5": - version: 1.3.1 - resolution: "@electron/osx-sign@npm:1.3.1" +"@electron/osx-sign@npm:^2.2.0, @electron/osx-sign@npm:^2.3.0": + version: 2.3.0 + resolution: "@electron/osx-sign@npm:2.3.0" dependencies: - compare-version: "npm:^0.1.2" debug: "npm:^4.3.4" - fs-extra: "npm:^10.0.0" isbinaryfile: "npm:^4.0.8" - minimist: "npm:^1.2.6" plist: "npm:^3.0.5" + semver: "npm:^7.7.1" bin: - electron-osx-flat: bin/electron-osx-flat.js - electron-osx-sign: bin/electron-osx-sign.js - checksum: 10c0/207be0df4ad4d76b0041de97d12b8d8793f3a5ddaff28e73c34a9b1939c83b3224191c7aae3c95d62eeb4a9146204c1db24577f43f91f6fab26783784856e49b + electron-osx-flat: bin/electron-osx-flat.mjs + electron-osx-sign: bin/electron-osx-sign.mjs + checksum: 10c0/33484b29be2b45493caf9efb779b232bbca243c5e090aa0331421e0348c1902a008ea67998077f3711a4ad6d0bf9c899246e4051ea1950e98fabda157306e5f5 languageName: node linkType: hard -"@electron/packager@npm:^18.3.5": - version: 18.3.5 - resolution: "@electron/packager@npm:18.3.5" - dependencies: - "@electron/asar": "npm:^3.2.13" - "@electron/get": "npm:^3.0.0" - "@electron/notarize": "npm:^2.1.0" - "@electron/osx-sign": "npm:^1.0.5" - "@electron/universal": "npm:^2.0.1" - "@electron/windows-sign": "npm:^1.0.0" - debug: "npm:^4.0.1" - extract-zip: "npm:^2.0.0" - filenamify: "npm:^4.1.0" - fs-extra: "npm:^11.1.0" - galactus: "npm:^1.0.0" +"@electron/packager@npm:^19.0.1": + version: 19.0.1 + resolution: "@electron/packager@npm:19.0.1" + dependencies: + "@electron/asar": "npm:^4.0.1" + "@electron/get": "npm:^4.0.2" + "@electron/notarize": "npm:^3.1.0" + "@electron/osx-sign": "npm:^2.2.0" + "@electron/universal": "npm:^3.0.1" + "@electron/windows-sign": "npm:^2.0.2" + "@malept/cross-spawn-promise": "npm:^2.0.0" + debug: "npm:^4.4.1" + extract-zip: "npm:^2.0.1" + filenamify: "npm:^6.0.0" + galactus: "npm:^2.0.2" get-package-info: "npm:^1.0.0" - junk: "npm:^3.1.0" + graceful-fs: "npm:^4.2.11" + junk: "npm:^4.0.1" parse-author: "npm:^2.0.0" - plist: "npm:^3.0.0" - resedit: "npm:^2.0.0" - resolve: "npm:^1.1.6" - semver: "npm:^7.1.3" - yargs-parser: "npm:^21.1.1" + plist: "npm:^3.1.0" + resedit: "npm:^2.0.3" + resolve: "npm:^1.22.10" + semver: "npm:^7.7.2" + yargs-parser: "npm:^22.0.0" bin: - electron-packager: bin/electron-packager.js - checksum: 10c0/62f98c85d6e139072018ca3b5e21436aec19763c92cbda4cb592dd87787363b6af3d10b771a05396ba50f0823650064e6b39560e586bd9d5f75c67b005a28081 + electron-packager: bin/electron-packager.mjs + checksum: 10c0/f7e44a3124640eff674b7cf6d53b15e00df0ec4fe00365ffde4453c43e789d786869d8e395c6fbbd62410cb7f5ce9913e3644272c1eed4325548ac00d3e2d77b languageName: node linkType: hard -"@electron/rebuild@npm:^3.7.0": - version: 3.7.0 - resolution: "@electron/rebuild@npm:3.7.0" +"@electron/rebuild@npm:^4.0.1": + version: 4.0.1 + resolution: "@electron/rebuild@npm:4.0.1" dependencies: - "@electron/node-gyp": "git+https://github.com/electron/node-gyp.git#06b29aafb7708acef8b3669835c8a7857ebc92d2" "@malept/cross-spawn-promise": "npm:^2.0.0" chalk: "npm:^4.0.0" debug: "npm:^4.1.1" detect-libc: "npm:^2.0.1" - fs-extra: "npm:^10.0.0" got: "npm:^11.7.0" - node-abi: "npm:^3.45.0" - node-api-version: "npm:^0.2.0" - node-gyp: "npm:latest" + graceful-fs: "npm:^4.2.11" + node-abi: "npm:^4.2.0" + node-api-version: "npm:^0.2.1" + node-gyp: "npm:^11.2.0" ora: "npm:^5.1.0" read-binary-file-arch: "npm:^1.0.6" semver: "npm:^7.3.5" @@ -1553,35 +1541,21 @@ __metadata: yargs: "npm:^17.0.1" bin: electron-rebuild: lib/cli.js - checksum: 10c0/10a4e5867254cd484cf6d8fa93c73f2abddc3eb7c9845784abd0c09380d41d538b1bcd41d145e0906459621a8602f86ae1540b2da110923b76c32a4aaf15a883 + checksum: 10c0/4863d39c34515f3fb521ce5e976e25db20e89920574ca353efd0c3272d5f4d14546ba15ce28cee4299187160b2af02e3e130100ba8dc53f313b6eb685dc54928 languageName: node linkType: hard -"@electron/universal@npm:^2.0.1": - version: 2.0.3 - resolution: "@electron/universal@npm:2.0.3" +"@electron/universal@npm:^3.0.1": + version: 3.0.2 + resolution: "@electron/universal@npm:3.0.2" dependencies: - "@electron/asar": "npm:^3.3.1" + "@electron/asar": "npm:^4.0.0" "@malept/cross-spawn-promise": "npm:^2.0.0" debug: "npm:^4.3.1" dir-compare: "npm:^4.2.0" - fs-extra: "npm:^11.1.1" minimatch: "npm:^9.0.3" plist: "npm:^3.1.0" - checksum: 10c0/346b23298d4f175dc50d9b91277d8e4c30017215e1a78c985ce917cd793fc0600084d62a84f485229d781ddfeb5829b6c1125c0bda131ddb9146522d305e92aa - languageName: node - linkType: hard - -"@electron/windows-sign@npm:^1.0.0": - version: 1.0.0 - resolution: "@electron/windows-sign@npm:1.0.0" - dependencies: - debug: "npm:^4.3.4" - fs-extra: "npm:^11.1.1" - minimist: "npm:^1.2.8" - bin: - electron-windows-sign: bin/electron-windows-sign.js - checksum: 10c0/fb5d203adfb501f3c5eb6cde4861185f6a915823ba2502485944773d05a022c5595b3ceb9ccec66df3bf05418c4aee2648f2c6a703f8dfeb3313341634b17f5c + checksum: 10c0/1a5780e08df9d46eb12c4ca33864a11296a74816de1c1c31b5c6d6f9f2c29ca0be253bf5abb6c8571849a4330f9be7676392a4a4e23c74e6ca48b6fdd9e4c494 languageName: node linkType: hard @@ -1615,6 +1589,19 @@ __metadata: languageName: node linkType: hard +"@electron/windows-sign@npm:^2.0.2": + version: 2.0.2 + resolution: "@electron/windows-sign@npm:2.0.2" + dependencies: + debug: "npm:^4.3.4" + graceful-fs: "npm:^4.2.11" + postject: "npm:^1.0.0-alpha.6" + bin: + electron-windows-sign: bin/electron-windows-sign.mjs + checksum: 10c0/3e027a664b5cbae3aa01b3eb4d8b58fa2d8e5ea1ed9b7f81a27307f3c1bb27b3a7b606580ac098cd5c58312bcd56d2570db975851d9ef5de2d2ba80a76561088 + languageName: node + linkType: hard + "@emnapi/core@npm:^1.1.0": version: 1.5.0 resolution: "@emnapi/core@npm:1.5.0" @@ -2252,13 +2239,6 @@ __metadata: languageName: node linkType: hard -"@gar/promisify@npm:^1.1.3": - version: 1.1.3 - resolution: "@gar/promisify@npm:1.1.3" - checksum: 10c0/0b3c9958d3cd17f4add3574975e3115ae05dc7f1298a60810414b16f6f558c137b5fb3cd3905df380bacfd955ec13f67c1e6710cbb5c246a7e8d65a8289b2bff - languageName: node - linkType: hard - "@google-cloud/paginator@npm:^5.0.0": version: 5.0.0 resolution: "@google-cloud/paginator@npm:5.0.0" @@ -3267,16 +3247,6 @@ __metadata: languageName: node linkType: hard -"@npmcli/fs@npm:^2.1.0": - version: 2.1.2 - resolution: "@npmcli/fs@npm:2.1.2" - dependencies: - "@gar/promisify": "npm:^1.1.3" - semver: "npm:^7.3.5" - checksum: 10c0/c50d087733d0d8df23be24f700f104b19922a28677aa66fdbe06ff6af6431cc4a5bb1e27683cbc661a5dafa9bafdc603e6a0378121506dfcd394b2b6dd76a187 - languageName: node - linkType: hard - "@npmcli/fs@npm:^4.0.0": version: 4.0.0 resolution: "@npmcli/fs@npm:4.0.0" @@ -3355,16 +3325,6 @@ __metadata: languageName: node linkType: hard -"@npmcli/move-file@npm:^2.0.0": - version: 2.0.1 - resolution: "@npmcli/move-file@npm:2.0.1" - dependencies: - mkdirp: "npm:^1.0.4" - rimraf: "npm:^3.0.2" - checksum: 10c0/11b2151e6d1de6f6eb23128de5aa8a429fd9097d839a5190cb77aa47a6b627022c42d50fa7c47a00f1c9f8f0c1560092b09b061855d293fa0741a2a94cfb174d - languageName: node - linkType: hard - "@npmcli/name-from-folder@npm:^3.0.0": version: 3.0.0 resolution: "@npmcli/name-from-folder@npm:3.0.0" @@ -5038,6 +4998,15 @@ __metadata: languageName: node linkType: hard +"@types/hast@npm:^3.0.0": + version: 3.0.4 + resolution: "@types/hast@npm:3.0.4" + dependencies: + "@types/unist": "npm:*" + checksum: 10c0/3249781a511b38f1d330fd1e3344eed3c4e7ea8eff82e835d35da78e637480d36fad37a78be5a7aed8465d237ad0446abc1150859d0fde395354ea634decf9f7 + languageName: node + linkType: hard + "@types/html-minifier-terser@npm:^6.0.0": version: 6.1.0 resolution: "@types/html-minifier-terser@npm:6.1.0" @@ -5133,12 +5102,12 @@ __metadata: languageName: node linkType: hard -"@types/mdast@npm:^3.0.0": - version: 3.0.11 - resolution: "@types/mdast@npm:3.0.11" +"@types/mdast@npm:^4.0.0": + version: 4.0.4 + resolution: "@types/mdast@npm:4.0.4" dependencies: "@types/unist": "npm:*" - checksum: 10c0/569ec32ac16deb42f2c9e7cdbfb5be0f67d2407036b49ba9cfa07ad0258b044c259922acba170eaed165ebcf5eb168032fbb4b3e35023fe8c581fe46e9bcbad0 + checksum: 10c0/84f403dbe582ee508fd9c7643ac781ad8597fcbfc9ccb8d4715a2c92e4545e5772cbd0dbdf18eda65789386d81b009967fdef01b24faf6640f817287f54d9c82 languageName: node linkType: hard @@ -5350,13 +5319,20 @@ __metadata: languageName: node linkType: hard -"@types/unist@npm:*, @types/unist@npm:^2.0.0": +"@types/unist@npm:*": version: 2.0.6 resolution: "@types/unist@npm:2.0.6" checksum: 10c0/8690789328e8e10c487334341fcf879fd49f8987c98ce49849f9871052f95d87477735171bb661e6f551bdb95235e015dfdad1867ca1d9b5b88a053f72ac40eb languageName: node linkType: hard +"@types/unist@npm:^3.0.0": + version: 3.0.3 + resolution: "@types/unist@npm:3.0.3" + checksum: 10c0/2b1e4adcab78388e088fcc3c0ae8700f76619dbcb4741d7d201f87e2cb346bfc29a89003cfea2d76c996e1061452e14fcd737e8b25aacf949c1f2d6b2bc3dd60 + languageName: node + linkType: hard + "@types/which@npm:^2.0.0": version: 2.0.1 resolution: "@types/which@npm:2.0.1" @@ -5833,13 +5809,6 @@ __metadata: languageName: node linkType: hard -"abbrev@npm:^1.0.0": - version: 1.1.1 - resolution: "abbrev@npm:1.1.1" - checksum: 10c0/3f762677702acb24f65e813070e306c61fafe25d4b2583f9dfc935131f774863f3addd5741572ed576bd69cabe473c5af18e1e108b829cb7b6b4747884f726e6 - languageName: node - linkType: hard - "abbrev@npm:^3.0.0": version: 3.0.1 resolution: "abbrev@npm:3.0.1" @@ -5909,7 +5878,7 @@ __metadata: languageName: node linkType: hard -"agent-base@npm:6, agent-base@npm:^6.0.2": +"agent-base@npm:6": version: 6.0.2 resolution: "agent-base@npm:6.0.2" dependencies: @@ -5934,17 +5903,6 @@ __metadata: languageName: node linkType: hard -"agentkeepalive@npm:^4.2.1": - version: 4.2.1 - resolution: "agentkeepalive@npm:4.2.1" - dependencies: - debug: "npm:^4.1.0" - depd: "npm:^1.1.2" - humanize-ms: "npm:^1.2.1" - checksum: 10c0/259dafa84a9e1f9e277ac8b31995a7a4f4db36a1df1710e9d413d98c6c013ab81370ad585d92038045cc8657662e578b07fd60b312b212f59ad426b10e1d6dce - languageName: node - linkType: hard - "aggregate-error@npm:^3.0.0": version: 3.1.0 resolution: "aggregate-error@npm:3.1.0" @@ -6013,6 +5971,18 @@ __metadata: languageName: node linkType: hard +"ajv@npm:^8.16.0": + version: 8.17.1 + resolution: "ajv@npm:8.17.1" + dependencies: + fast-deep-equal: "npm:^3.1.3" + fast-uri: "npm:^3.0.1" + json-schema-traverse: "npm:^1.0.0" + require-from-string: "npm:^2.0.2" + checksum: 10c0/ec3ba10a573c6b60f94639ffc53526275917a2df6810e4ab5a6b959d87459f9ef3f00d5e7865b82677cb7d21590355b34da14d1d0b9c32d75f95a187e76fff35 + languageName: node + linkType: hard + "ajv@npm:~8.12.0": version: 8.12.0 resolution: "ajv@npm:8.12.0" @@ -6490,10 +6460,10 @@ __metadata: languageName: node linkType: hard -"balanced-match@npm:^2.0.0": - version: 2.0.0 - resolution: "balanced-match@npm:2.0.0" - checksum: 10c0/60a54e0b75a61674e16a7a336b805f06c72d6f8fc457639c24efc512ba2bf9cb5744b9f6f5225afcefb99da39714440c83c737208cc65c5d9ecd1f3093331ca3 +"balanced-match@npm:^3.0.1": + version: 3.0.1 + resolution: "balanced-match@npm:3.0.1" + checksum: 10c0/ac8dd63a5b260610c2cbda982f436e964c1b9ae8764d368a523769da40a31710abd6e19f0fdf1773c4ad7b2ea7ba7b285d547375dc723f6e754369835afc8e9f languageName: node linkType: hard @@ -6768,32 +6738,6 @@ __metadata: languageName: node linkType: hard -"cacache@npm:^16.1.0": - version: 16.1.3 - resolution: "cacache@npm:16.1.3" - dependencies: - "@npmcli/fs": "npm:^2.1.0" - "@npmcli/move-file": "npm:^2.0.0" - chownr: "npm:^2.0.0" - fs-minipass: "npm:^2.1.0" - glob: "npm:^8.0.1" - infer-owner: "npm:^1.0.4" - lru-cache: "npm:^7.7.1" - minipass: "npm:^3.1.6" - minipass-collect: "npm:^1.0.2" - minipass-flush: "npm:^1.0.5" - minipass-pipeline: "npm:^1.2.4" - mkdirp: "npm:^1.0.4" - p-map: "npm:^4.0.0" - promise-inflight: "npm:^1.0.1" - rimraf: "npm:^3.0.2" - ssri: "npm:^9.0.0" - tar: "npm:^6.1.11" - unique-filename: "npm:^2.0.0" - checksum: 10c0/cdf6836e1c457d2a5616abcaf5d8240c0346b1f5bd6fdb8866b9d84b6dff0b54e973226dc11e0d099f35394213d24860d1989c8358d2a41b39eb912b3000e749 - languageName: node - linkType: hard - "cacache@npm:^19.0.1": version: 19.0.1 resolution: "cacache@npm:19.0.1" @@ -7359,6 +7303,13 @@ __metadata: languageName: node linkType: hard +"comma-separated-tokens@npm:^2.0.0": + version: 2.0.3 + resolution: "comma-separated-tokens@npm:2.0.3" + checksum: 10c0/91f90f1aae320f1755d6957ef0b864fe4f54737f3313bd95e0802686ee2ca38bff1dd381964d00ae5db42912dd1f4ae5c2709644e82706ffc6f6842a813cdd67 + languageName: node + linkType: hard + "commander@npm:^11.1.0": version: 11.1.0 resolution: "commander@npm:11.1.0" @@ -7366,6 +7317,13 @@ __metadata: languageName: node linkType: hard +"commander@npm:^13.1.0": + version: 13.1.0 + resolution: "commander@npm:13.1.0" + checksum: 10c0/7b8c5544bba704fbe84b7cab2e043df8586d5c114a4c5b607f83ae5060708940ed0b5bd5838cf8ce27539cde265c1cbd59ce3c8c6b017ed3eec8943e3a415164 + languageName: node + linkType: hard + "commander@npm:^2.19.0, commander@npm:^2.20.0": version: 2.20.3 resolution: "commander@npm:2.20.3" @@ -7387,7 +7345,7 @@ __metadata: languageName: node linkType: hard -"commander@npm:^9.3.0, commander@npm:~9.4.1": +"commander@npm:^9.3.0": version: 9.4.1 resolution: "commander@npm:9.4.1" checksum: 10c0/04ea8ccc6fe3d3d1ca7ca26b06187498af8e6341a2c98b534528d504f8cad95b0c5ac2f3b78a7f0d332da16da9332db2ab9e43cb06241d367e9c7ee75cb76202 @@ -7418,13 +7376,6 @@ __metadata: languageName: node linkType: hard -"compare-version@npm:^0.1.2": - version: 0.1.2 - resolution: "compare-version@npm:0.1.2" - checksum: 10c0/f38b853cf0d244c0af5f444409abde3d2198cd97312efa1dbc4ab41b520009327c2a63db59bbaf2d69288eff6167ef22be9788dc5476157d073ecdff1a8eeb2d - languageName: node - linkType: hard - "compressible@npm:^2.0.12, compressible@npm:~2.0.16": version: 2.0.18 resolution: "compressible@npm:2.0.18" @@ -7793,7 +7744,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.0.0, debug@npm:^4.0.1, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4, debug@npm:^4.4.0": +"debug@npm:4, debug@npm:^4.0.0, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.4.0": version: 4.4.0 resolution: "debug@npm:4.4.0" dependencies: @@ -7889,13 +7840,6 @@ __metadata: languageName: node linkType: hard -"deep-extend@npm:^0.6.0": - version: 0.6.0 - resolution: "deep-extend@npm:0.6.0" - checksum: 10c0/1c6b0abcdb901e13a44c7d699116d3d4279fdb261983122a3783e7273844d5f2537dc2e1c454a23fcf645917f93fbf8d07101c1d03c015a87faa662755212566 - languageName: node - linkType: hard - "deep-is@npm:^0.1.3": version: 0.1.4 resolution: "deep-is@npm:0.1.4" @@ -7988,7 +7932,7 @@ __metadata: languageName: node linkType: hard -"depd@npm:^1.1.2, depd@npm:~1.1.2": +"depd@npm:~1.1.2": version: 1.1.2 resolution: "depd@npm:1.1.2" checksum: 10c0/acb24aaf936ef9a227b6be6d495f0d2eb20108a9a6ad40585c5bda1a897031512fef6484e4fdbb80bd249fdaa82841fa1039f416ece03188e677ba11bcfda249 @@ -8037,10 +7981,12 @@ __metadata: languageName: node linkType: hard -"diff@npm:^5.0.0": - version: 5.0.0 - resolution: "diff@npm:5.0.0" - checksum: 10c0/08c5904779bbababcd31f1707657b1ad57f8a9b65e6f88d3fb501d09a965d5f8d73066898a7d3f35981f9e4101892c61d99175d421f3b759533213c253d91134 +"devlop@npm:^1.0.0, devlop@npm:^1.1.0": + version: 1.1.0 + resolution: "devlop@npm:1.1.0" + dependencies: + dequal: "npm:^2.0.0" + checksum: 10c0/e0928ab8f94c59417a2b8389c45c55ce0a02d9ac7fd74ef62d01ba48060129e1d594501b77de01f3eeafc7cb00773819b0df74d96251cf20b31c5b3071f45c0e languageName: node linkType: hard @@ -8258,12 +8204,8 @@ __metadata: "@aws-sdk/client-s3": "npm:^3.654.0" "@aws-sdk/lib-storage": "npm:^3.654.0" "@aws-sdk/types": "npm:^3.654.0" - "@electron/fuses": "npm:^1.0.0" - "@electron/get": "npm:^3.0.0" - "@electron/lint-roller": "npm:1.10.1" - "@electron/osx-sign": "npm:^1.0.5" - "@electron/packager": "npm:^18.3.5" - "@electron/rebuild": "npm:^3.7.0" + "@electron/fuses": "npm:^2.0.0" + "@electron/lint-roller": "npm:3.1.3" "@google-cloud/storage": "npm:^7.5.0" "@inquirer/prompts": "npm:^6.0.1" "@listr2/prompt-adapter-inquirer": "npm:^2.0.22" @@ -8357,8 +8299,6 @@ __metadata: xterm-addon-search: "npm:^0.8.0" xvfb-maybe: "npm:^0.2.1" yaml-hook: "npm:^1.0.0" - peerDependencies: - "@electron/fuses": ^1.0.0 dependenciesMeta: "@bitdisaster/exe-icon-extractor": built: true @@ -8644,10 +8584,17 @@ __metadata: languageName: node linkType: hard -"entities@npm:~3.0.1": - version: 3.0.1 - resolution: "entities@npm:3.0.1" - checksum: 10c0/2d93f48fd86de0b0ed8ee34456aa47b4e74a916a5e663cfcc7048302e2c7e932002926daf5a00ad6d5691e3c90673a15d413704d86d7e1b9532f9bc00d975590 +"entities@npm:^4.4.0": + version: 4.5.0 + resolution: "entities@npm:4.5.0" + checksum: 10c0/5b039739f7621f5d1ad996715e53d964035f75ad3b9a4d38c6b3804bb226e282ffeae2443624d8fdd9c47d8e926ae9ac009c54671243f0c3294c26af7cc85250 + languageName: node + linkType: hard + +"entities@npm:^6.0.0": + version: 6.0.1 + resolution: "entities@npm:6.0.1" + checksum: 10c0/ed836ddac5acb34341094eb495185d527bd70e8632b6c0d59548cbfa23defdbae70b96f9a405c82904efa421230b5b3fd2283752447d737beffd3f3e6ee74414 languageName: node linkType: hard @@ -8658,6 +8605,13 @@ __metadata: languageName: node linkType: hard +"env-paths@npm:^3.0.0": + version: 3.0.0 + resolution: "env-paths@npm:3.0.0" + checksum: 10c0/76dec878cee47f841103bacd7fae03283af16f0702dad65102ef0a556f310b98a377885e0f32943831eb08b5ab37842a323d02529f3dfd5d0a40ca71b01b435f + languageName: node + linkType: hard + "envinfo@npm:7.13.0": version: 7.13.0 resolution: "envinfo@npm:7.13.0" @@ -9906,7 +9860,7 @@ __metadata: languageName: node linkType: hard -"extract-zip@npm:^2.0.0": +"extract-zip@npm:^2.0.1": version: 2.0.1 resolution: "extract-zip@npm:2.0.1" dependencies: @@ -9970,6 +9924,13 @@ __metadata: languageName: node linkType: hard +"fast-uri@npm:^3.0.1": + version: 3.1.0 + resolution: "fast-uri@npm:3.1.0" + checksum: 10c0/44364adca566f70f40d1e9b772c923138d47efeac2ae9732a872baafd77061f26b097ba2f68f0892885ad177becd065520412b8ffeec34b16c99433c5b9e2de7 + languageName: node + linkType: hard + "fast-xml-parser@npm:4.4.1": version: 4.4.1 resolution: "fast-xml-parser@npm:4.4.1" @@ -10086,6 +10047,13 @@ __metadata: languageName: node linkType: hard +"filename-reserved-regex@npm:^3.0.0": + version: 3.0.0 + resolution: "filename-reserved-regex@npm:3.0.0" + checksum: 10c0/2b1df851a37f84723f9d8daf885ddfadd3dea2a124474db405295962abc1a01d6c9b6b27edec33bad32ef601e1a220f8a34d34f30ca5a911709700e2b517e268 + languageName: node + linkType: hard + "filenamify@npm:^4.1.0": version: 4.3.0 resolution: "filenamify@npm:4.3.0" @@ -10097,6 +10065,15 @@ __metadata: languageName: node linkType: hard +"filenamify@npm:^6.0.0": + version: 6.0.0 + resolution: "filenamify@npm:6.0.0" + dependencies: + filename-reserved-regex: "npm:^3.0.0" + checksum: 10c0/6798be1f7eea9eddb4517527a890a9d1b97083a6392b0ca392b79034d02d92411830d1b0e29f85ebfcb5cd4f8494388c7f9975fbada9d5f4088fc8474fdf20ae + languageName: node + linkType: hard + "fill-range@npm:^7.1.1": version: 7.1.1 resolution: "fill-range@npm:7.1.1" @@ -10185,13 +10162,12 @@ __metadata: languageName: node linkType: hard -"flora-colossus@npm:^2.0.0": - version: 2.0.0 - resolution: "flora-colossus@npm:2.0.0" +"flora-colossus@npm:^3.0.2": + version: 3.0.2 + resolution: "flora-colossus@npm:3.0.2" dependencies: - debug: "npm:^4.3.4" - fs-extra: "npm:^10.1.0" - checksum: 10c0/ea50e6ff38fd089f536cbec57da9a3a311efe5a97c21a2c0ae8cc1a85a71c9301b10168693b6389e257c7dbccc3723cc4f0d98377e29b6b65e6f45a929fe5d54 + debug: "npm:^4.4.1" + checksum: 10c0/1b56ca02d75b6eb5b0d70123b0f71ef320a8cb2bfd8def952de854121b7a8ea67fb2fa6e75e2bbef61a753b31c117a4405cd9b2597f54ca714bafa4ca3ef9504 languageName: node linkType: hard @@ -10356,17 +10332,6 @@ __metadata: languageName: node linkType: hard -"fs-extra@npm:^11.1.0": - version: 11.1.1 - resolution: "fs-extra@npm:11.1.1" - dependencies: - graceful-fs: "npm:^4.2.0" - jsonfile: "npm:^6.0.1" - universalify: "npm:^2.0.0" - checksum: 10c0/a2480243d7dcfa7d723c5f5b24cf4eba02a6ccece208f1524a2fbde1c629492cfb9a59e4b6d04faff6fbdf71db9fdc8ef7f396417a02884195a625f5d8dc9427 - languageName: node - linkType: hard - "fs-extra@npm:^11.1.1": version: 11.2.0 resolution: "fs-extra@npm:11.2.0" @@ -10400,18 +10365,7 @@ __metadata: languageName: node linkType: hard -"fs-extra@npm:^8.1.0": - version: 8.1.0 - resolution: "fs-extra@npm:8.1.0" - dependencies: - graceful-fs: "npm:^4.2.0" - jsonfile: "npm:^4.0.0" - universalify: "npm:^0.1.0" - checksum: 10c0/259f7b814d9e50d686899550c4f9ded85c46c643f7fe19be69504888e007fcbc08f306fae8ec495b8b998635e997c9e3e175ff2eeed230524ef1c1684cc96423 - languageName: node - linkType: hard - -"fs-extra@npm:^9.0.0, fs-extra@npm:^9.0.1": +"fs-extra@npm:^9.0.0": version: 9.1.0 resolution: "fs-extra@npm:9.1.0" dependencies: @@ -10423,7 +10377,7 @@ __metadata: languageName: node linkType: hard -"fs-minipass@npm:^2.0.0, fs-minipass@npm:^2.1.0": +"fs-minipass@npm:^2.0.0": version: 2.1.0 resolution: "fs-minipass@npm:2.1.0" dependencies: @@ -10557,14 +10511,13 @@ __metadata: languageName: node linkType: hard -"galactus@npm:^1.0.0": - version: 1.0.0 - resolution: "galactus@npm:1.0.0" +"galactus@npm:^2.0.2": + version: 2.0.2 + resolution: "galactus@npm:2.0.2" dependencies: - debug: "npm:^4.3.4" - flora-colossus: "npm:^2.0.0" - fs-extra: "npm:^10.1.0" - checksum: 10c0/8422109720515f71b40c60275e05f0a65957bdf15498775ac610df9a254ffe36b10e31d239d88d60c2b348b86d213170d3cfa46562e89c8d860067a80b20ad46 + debug: "npm:^4.4.1" + flora-colossus: "npm:^3.0.2" + checksum: 10c0/ee851b76250f946f97981ab4103a7121450632ab0bdc1285c80246325ca67dec7acd69c01706b6867a572cce3127b39b9d712fa1d815be4a8f8c3a1f7aeafaf1 languageName: node linkType: hard @@ -10728,13 +10681,6 @@ __metadata: languageName: node linkType: hard -"get-stdin@npm:~9.0.0": - version: 9.0.0 - resolution: "get-stdin@npm:9.0.0" - checksum: 10c0/7ef2edc0c81a0644ca9f051aad8a96ae9373d901485abafaabe59fd347a1c378689d8a3d8825fb3067415d1d09dfcaa43cb9b9516ecac6b74b3138b65a8ccc6b - languageName: node - linkType: hard - "get-stream@npm:6.0.0": version: 6.0.0 resolution: "get-stream@npm:6.0.0" @@ -10919,6 +10865,38 @@ __metadata: languageName: node linkType: hard +"glob@npm:^10.4.5": + version: 10.5.0 + resolution: "glob@npm:10.5.0" + dependencies: + foreground-child: "npm:^3.1.0" + jackspeak: "npm:^3.1.2" + minimatch: "npm:^9.0.4" + minipass: "npm:^7.1.2" + package-json-from-dist: "npm:^1.0.0" + path-scurry: "npm:^1.11.1" + bin: + glob: dist/esm/bin.mjs + checksum: 10c0/100705eddbde6323e7b35e1d1ac28bcb58322095bd8e63a7d0bef1a2cdafe0d0f7922a981b2b48369a4f8c1b077be5c171804534c3509dfe950dde15fbe6d828 + languageName: node + linkType: hard + +"glob@npm:^11.0.1": + version: 11.1.0 + resolution: "glob@npm:11.1.0" + dependencies: + foreground-child: "npm:^3.3.1" + jackspeak: "npm:^4.1.1" + minimatch: "npm:^10.1.1" + minipass: "npm:^7.1.2" + package-json-from-dist: "npm:^1.0.0" + path-scurry: "npm:^2.0.0" + bin: + glob: dist/esm/bin.mjs + checksum: 10c0/1ceae07f23e316a6fa74581d9a74be6e8c2e590d2f7205034dd5c0435c53f5f7b712c2be00c3b65bf0a49294a1c6f4b98cd84c7637e29453b5aa13b79f1763a2 + languageName: node + linkType: hard + "glob@npm:^11.0.3": version: 11.0.3 resolution: "glob@npm:11.0.3" @@ -10963,32 +10941,6 @@ __metadata: languageName: node linkType: hard -"glob@npm:^8.0.1, glob@npm:~8.0.3": - version: 8.0.3 - resolution: "glob@npm:8.0.3" - dependencies: - fs.realpath: "npm:^1.0.0" - inflight: "npm:^1.0.4" - inherits: "npm:2" - minimatch: "npm:^5.0.1" - once: "npm:^1.3.0" - checksum: 10c0/07ebaf2ed83e76b10901ec4982040ebd85458b787b4386f751a0514f6c8e416ed6c9eec5a892571eb0ef00b09d1bd451f72b5d9fb7b63770efd400532486e731 - languageName: node - linkType: hard - -"glob@npm:^8.1.0": - version: 8.1.0 - resolution: "glob@npm:8.1.0" - dependencies: - fs.realpath: "npm:^1.0.0" - inflight: "npm:^1.0.4" - inherits: "npm:2" - minimatch: "npm:^5.0.1" - once: "npm:^1.3.0" - checksum: 10c0/cb0b5cab17a59c57299376abe5646c7070f8acb89df5595b492dba3bfb43d301a46c01e5695f01154e6553168207cb60d4eaf07d3be4bc3eb9b0457c5c561d0f - languageName: node - linkType: hard - "glob@npm:^9.2.0": version: 9.3.5 resolution: "glob@npm:9.3.5" @@ -11098,7 +11050,7 @@ __metadata: languageName: node linkType: hard -"got@npm:^11.7.0, got@npm:^11.8.5": +"got@npm:^11.7.0": version: 11.8.5 resolution: "got@npm:11.8.5" dependencies: @@ -11117,7 +11069,7 @@ __metadata: languageName: node linkType: hard -"got@npm:^14.0.0": +"got@npm:^14.0.0, got@npm:^14.4.5": version: 14.6.4 resolution: "got@npm:14.6.4" dependencies: @@ -11312,20 +11264,72 @@ __metadata: languageName: node linkType: hard -"he@npm:^1.2.0": - version: 1.2.0 - resolution: "he@npm:1.2.0" - bin: - he: bin/he - checksum: 10c0/a27d478befe3c8192f006cdd0639a66798979dfa6e2125c6ac582a19a5ebfec62ad83e8382e6036170d873f46e4536a7e795bf8b95bf7c247f4cc0825ccc8c17 +"hast-util-from-html@npm:^2.0.1": + version: 2.0.3 + resolution: "hast-util-from-html@npm:2.0.3" + dependencies: + "@types/hast": "npm:^3.0.0" + devlop: "npm:^1.1.0" + hast-util-from-parse5: "npm:^8.0.0" + parse5: "npm:^7.0.0" + vfile: "npm:^6.0.0" + vfile-message: "npm:^4.0.0" + checksum: 10c0/993ef707c1a12474c8d4094fc9706a72826c660a7e308ea54c50ad893353d32e139b7cbc67510c2e82feac572b320e3b05aeb13d0f9c6302d61261f337b46764 languageName: node linkType: hard -"headers-polyfill@npm:^4.0.2": - version: 4.0.3 - resolution: "headers-polyfill@npm:4.0.3" - checksum: 10c0/53e85b2c6385f8d411945fb890c5369f1469ce8aa32a6e8d28196df38568148de640c81cf88cbc7c67767103dd9acba48f4f891982da63178fc6e34560022afe - languageName: node +"hast-util-from-parse5@npm:^8.0.0": + version: 8.0.3 + resolution: "hast-util-from-parse5@npm:8.0.3" + dependencies: + "@types/hast": "npm:^3.0.0" + "@types/unist": "npm:^3.0.0" + devlop: "npm:^1.0.0" + hastscript: "npm:^9.0.0" + property-information: "npm:^7.0.0" + vfile: "npm:^6.0.0" + vfile-location: "npm:^5.0.0" + web-namespaces: "npm:^2.0.0" + checksum: 10c0/40ace6c0ad43c26f721c7499fe408e639cde917b2350c9299635e6326559855896dae3c3ebf7440df54766b96c4276a7823e8f376a2b6a28b37b591f03412545 + languageName: node + linkType: hard + +"hast-util-parse-selector@npm:^4.0.0": + version: 4.0.0 + resolution: "hast-util-parse-selector@npm:4.0.0" + dependencies: + "@types/hast": "npm:^3.0.0" + checksum: 10c0/5e98168cb44470dc274aabf1a28317e4feb09b1eaf7a48bbaa8c1de1b43a89cd195cb1284e535698e658e3ec26ad91bc5e52c9563c36feb75abbc68aaf68fb9f + languageName: node + linkType: hard + +"hastscript@npm:^9.0.0": + version: 9.0.1 + resolution: "hastscript@npm:9.0.1" + dependencies: + "@types/hast": "npm:^3.0.0" + comma-separated-tokens: "npm:^2.0.0" + hast-util-parse-selector: "npm:^4.0.0" + property-information: "npm:^7.0.0" + space-separated-tokens: "npm:^2.0.0" + checksum: 10c0/18dc8064e5c3a7a2ae862978e626b97a254e1c8a67ee9d0c9f06d373bba155ed805fc5b5ce21b990fb7bc174624889e5e1ce1cade264f1b1d58b48f994bc85ce + languageName: node + linkType: hard + +"he@npm:^1.2.0": + version: 1.2.0 + resolution: "he@npm:1.2.0" + bin: + he: bin/he + checksum: 10c0/a27d478befe3c8192f006cdd0639a66798979dfa6e2125c6ac582a19a5ebfec62ad83e8382e6036170d873f46e4536a7e795bf8b95bf7c247f4cc0825ccc8c17 + languageName: node + linkType: hard + +"headers-polyfill@npm:^4.0.2": + version: 4.0.3 + resolution: "headers-polyfill@npm:4.0.3" + checksum: 10c0/53e85b2c6385f8d411945fb890c5369f1469ce8aa32a6e8d28196df38568148de640c81cf88cbc7c67767103dd9acba48f4f891982da63178fc6e34560022afe + languageName: node linkType: hard "hosted-git-info@npm:^2.1.4": @@ -11425,7 +11429,7 @@ __metadata: languageName: node linkType: hard -"http-cache-semantics@npm:^4.0.0, http-cache-semantics@npm:^4.1.0, http-cache-semantics@npm:^4.1.1": +"http-cache-semantics@npm:^4.0.0, http-cache-semantics@npm:^4.1.1": version: 4.1.1 resolution: "http-cache-semantics@npm:4.1.1" checksum: 10c0/ce1319b8a382eb3cbb4a37c19f6bfe14e5bb5be3d09079e885e8c513ab2d3cd9214902f8a31c9dc4e37022633ceabfc2d697405deeaf1b8f3552bb4ed996fdfc @@ -11575,15 +11579,6 @@ __metadata: languageName: node linkType: hard -"humanize-ms@npm:^1.2.1": - version: 1.2.1 - resolution: "humanize-ms@npm:1.2.1" - dependencies: - ms: "npm:^2.0.0" - checksum: 10c0/f34a2c20161d02303c2807badec2f3b49cbfbbb409abd4f95a07377ae01cfe6b59e3d15ac609cffcd8f2521f0eb37b7e1091acf65da99aa2a4f1ad63c21e7e7a - languageName: node - linkType: hard - "husky@npm:^7.0.1": version: 7.0.4 resolution: "husky@npm:7.0.4" @@ -11650,13 +11645,6 @@ __metadata: languageName: node linkType: hard -"ignore@npm:~5.2.4": - version: 5.2.4 - resolution: "ignore@npm:5.2.4" - checksum: 10c0/7c7cd90edd9fea6e037f9b9da4b01bf0a86b198ce78345f9bbd983929d68ff14830be31111edc5d70c264921f4962404d75b7262b4d9cc3bc12381eccbd03096 - languageName: node - linkType: hard - "image-size@npm:^0.7.4": version: 0.7.5 resolution: "image-size@npm:0.7.5" @@ -11709,13 +11697,6 @@ __metadata: languageName: node linkType: hard -"infer-owner@npm:^1.0.4": - version: 1.0.4 - resolution: "infer-owner@npm:1.0.4" - checksum: 10c0/a7b241e3149c26e37474e3435779487f42f36883711f198c45794703c7556bc38af224088bd4d1a221a45b8208ae2c2bcf86200383621434d0c099304481c5b9 - languageName: node - linkType: hard - "inflight@npm:^1.0.4": version: 1.0.6 resolution: "inflight@npm:1.0.6" @@ -11761,13 +11742,6 @@ __metadata: languageName: node linkType: hard -"ini@npm:~3.0.0": - version: 3.0.1 - resolution: "ini@npm:3.0.1" - checksum: 10c0/4473d8d42d4b0c4fcf8707e5d37a7eacd5a1d2ed2b99f1b6805c76efddf674c3deba6fb26811eeeb883a71d6c6917c3250d336e545b4e2c8d96081bf05e58df6 - languageName: node - linkType: hard - "init-package-json@npm:8.2.2": version: 8.2.2 resolution: "init-package-json@npm:8.2.2" @@ -11894,13 +11868,6 @@ __metadata: languageName: node linkType: hard -"ip@npm:^2.0.0": - version: 2.0.1 - resolution: "ip@npm:2.0.1" - checksum: 10c0/cab8eb3e88d0abe23e4724829621ec4c4c5cb41a7f936a2e626c947128c1be16ed543448d42af7cca95379f9892bfcacc1ccd8d09bc7e8bea0e86d492ce33616 - languageName: node - linkType: hard - "ipaddr.js@npm:1.9.1": version: 1.9.1 resolution: "ipaddr.js@npm:1.9.1" @@ -12036,6 +12003,15 @@ __metadata: languageName: node linkType: hard +"is-core-module@npm:^2.16.1": + version: 2.16.1 + resolution: "is-core-module@npm:2.16.1" + dependencies: + hasown: "npm:^2.0.2" + checksum: 10c0/898443c14780a577e807618aaae2b6f745c8538eca5c7bc11388a3f2dc6de82b9902bcc7eb74f07be672b11bbe82dd6a6edded44a00cb3d8f933d0459905eedd + languageName: node + linkType: hard + "is-core-module@npm:^2.5.0, is-core-module@npm:^2.9.0": version: 2.11.0 resolution: "is-core-module@npm:2.11.0" @@ -12146,13 +12122,6 @@ __metadata: languageName: node linkType: hard -"is-lambda@npm:^1.0.1": - version: 1.0.1 - resolution: "is-lambda@npm:1.0.1" - checksum: 10c0/85fee098ae62ba6f1e24cf22678805473c7afd0fb3978a3aa260e354cb7bcb3a5806cf0a98403188465efedec41ab4348e8e4e79305d409601323855b3839d4d - languageName: node - linkType: hard - "is-map@npm:^2.0.3": version: 2.0.3 resolution: "is-map@npm:2.0.3" @@ -12531,6 +12500,19 @@ __metadata: languageName: node linkType: hard +"jackspeak@npm:^3.1.2": + version: 3.4.3 + resolution: "jackspeak@npm:3.4.3" + dependencies: + "@isaacs/cliui": "npm:^8.0.2" + "@pkgjs/parseargs": "npm:^0.11.0" + dependenciesMeta: + "@pkgjs/parseargs": + optional: true + checksum: 10c0/6acc10d139eaefdbe04d2f679e6191b3abf073f111edf10b1de5302c97ec93fffeb2fdd8681ed17f16268aa9dd4f8c588ed9d1d3bffbbfa6e8bf897cbb3149b9 + languageName: node + linkType: hard + "jackspeak@npm:^4.1.1": version: 4.1.1 resolution: "jackspeak@npm:4.1.1" @@ -12722,7 +12704,7 @@ __metadata: languageName: node linkType: hard -"jsonc-parser@npm:^3.2.0, jsonc-parser@npm:~3.2.0": +"jsonc-parser@npm:^3.2.0": version: 3.2.1 resolution: "jsonc-parser@npm:3.2.1" checksum: 10c0/ada66dec143d7f9cb0e2d0d29c69e9ce40d20f3a4cb96b0c6efb745025ac7f9ba647d7ac0990d0adfc37a2d2ae084a12009a9c833dbdbeadf648879a99b9df89 @@ -12778,10 +12760,10 @@ __metadata: languageName: node linkType: hard -"junk@npm:^3.1.0": - version: 3.1.0 - resolution: "junk@npm:3.1.0" - checksum: 10c0/820174b9fa9a3af09aeeeeb1022df2481a2b10752ce5f65ac63924a79cb9bba83ea7c288e8d5b448951109742da5ea69a230846f4bf3c17c5c6a1d0603b63db4 +"junk@npm:^4.0.1": + version: 4.0.1 + resolution: "junk@npm:4.0.1" + checksum: 10c0/091117a5dcf65b19a3e4b8506d95d6ab152b5b5fe6f10e8998de950b0f9d689f14d9b63bb07863b8c86c18511fd1b9a21e9a16e686246436558338ed2e8a4548 languageName: node linkType: hard @@ -12852,13 +12834,6 @@ __metadata: languageName: node linkType: hard -"kleur@npm:^4.0.3": - version: 4.1.5 - resolution: "kleur@npm:4.1.5" - checksum: 10c0/e9de6cb49657b6fa70ba2d1448fd3d691a5c4370d8f7bbf1c2f64c24d461270f2117e1b0afe8cb3114f13bbd8e51de158c2a224953960331904e636a5e4c0f2a - languageName: node - linkType: hard - "launch-editor@npm:^2.6.0": version: 2.9.1 resolution: "launch-editor@npm:2.9.1" @@ -13013,12 +12988,12 @@ __metadata: languageName: node linkType: hard -"linkify-it@npm:^4.0.1": - version: 4.0.1 - resolution: "linkify-it@npm:4.0.1" +"linkify-it@npm:^5.0.0": + version: 5.0.0 + resolution: "linkify-it@npm:5.0.0" dependencies: - uc.micro: "npm:^1.0.1" - checksum: 10c0/f1949ee2c7c2979c4f80c8c08f507d813f50775ebc5adfdb7ee662f28e0ee53dbd4a329d5231be67414405fc60d4e99b37536d6949702d311fe509a6bcbcf4a6 + uc.micro: "npm:^2.0.0" + checksum: 10c0/ff4abbcdfa2003472fc3eb4b8e60905ec97718e11e33cca52059919a4c80cc0e0c2a14d23e23d8c00e5402bc5a885cdba8ca053a11483ab3cc8b3c7a52f88e2d languageName: node linkType: hard @@ -13293,7 +13268,7 @@ __metadata: languageName: node linkType: hard -"lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.2": +"lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0, lru-cache@npm:^10.2.2": version: 10.4.3 resolution: "lru-cache@npm:10.4.3" checksum: 10c0/ebd04fbca961e6c1d6c0af3799adcc966a1babe798f685bb84e6599266599cd95d94630b10262f5424539bc4640107e8a33aa28585374abf561d30d16f4b39fb @@ -13316,13 +13291,6 @@ __metadata: languageName: node linkType: hard -"lru-cache@npm:^7.7.1": - version: 7.14.1 - resolution: "lru-cache@npm:7.14.1" - checksum: 10c0/d54e01ae3bedbd7bb0562fe48e61e509c86102bcc2c8babba1ba5498a6859a796adc697fa917459a455969a45c7d8645b29d938c0142b97fa3b5fb9c234d2390 - languageName: node - linkType: hard - "lru-cache@npm:^9.1.1": version: 9.1.2 resolution: "lru-cache@npm:9.1.2" @@ -13401,30 +13369,6 @@ __metadata: languageName: node linkType: hard -"make-fetch-happen@npm:^10.2.1": - version: 10.2.1 - resolution: "make-fetch-happen@npm:10.2.1" - dependencies: - agentkeepalive: "npm:^4.2.1" - cacache: "npm:^16.1.0" - http-cache-semantics: "npm:^4.1.0" - http-proxy-agent: "npm:^5.0.0" - https-proxy-agent: "npm:^5.0.0" - is-lambda: "npm:^1.0.1" - lru-cache: "npm:^7.7.1" - minipass: "npm:^3.1.6" - minipass-collect: "npm:^1.0.2" - minipass-fetch: "npm:^2.0.3" - minipass-flush: "npm:^1.0.5" - minipass-pipeline: "npm:^1.2.4" - negotiator: "npm:^0.6.3" - promise-retry: "npm:^2.0.1" - socks-proxy-agent: "npm:^7.0.0" - ssri: "npm:^9.0.0" - checksum: 10c0/28ec392f63ab93511f400839dcee83107eeecfaad737d1e8487ea08b4332cd89a8f3319584222edd9f6f1d0833cf516691469496d46491863f9e88c658013949 - languageName: node - linkType: hard - "make-fetch-happen@npm:^14.0.0, make-fetch-happen@npm:^14.0.2, make-fetch-happen@npm:^14.0.3": version: 14.0.3 resolution: "make-fetch-happen@npm:14.0.3" @@ -13467,46 +13411,19 @@ __metadata: languageName: node linkType: hard -"markdown-it@npm:13.0.1, markdown-it@npm:^13.0.1": - version: 13.0.1 - resolution: "markdown-it@npm:13.0.1" +"markdown-it@npm:^14.1.0": + version: 14.1.0 + resolution: "markdown-it@npm:14.1.0" dependencies: argparse: "npm:^2.0.1" - entities: "npm:~3.0.1" - linkify-it: "npm:^4.0.1" - mdurl: "npm:^1.0.1" - uc.micro: "npm:^1.0.5" + entities: "npm:^4.4.0" + linkify-it: "npm:^5.0.0" + mdurl: "npm:^2.0.0" + punycode.js: "npm:^2.3.1" + uc.micro: "npm:^2.1.0" bin: - markdown-it: bin/markdown-it.js - checksum: 10c0/3e21f9782cc5c7af55d0c822b1d938fb918ad3397653dee746a33ad6a245fb31068fcc5f719e66ebc579d01dd47ea9e3e019c398650e592d7ce5e613147f4f1d - languageName: node - linkType: hard - -"markdownlint-cli@npm:^0.33.0": - version: 0.33.0 - resolution: "markdownlint-cli@npm:0.33.0" - dependencies: - commander: "npm:~9.4.1" - get-stdin: "npm:~9.0.0" - glob: "npm:~8.0.3" - ignore: "npm:~5.2.4" - js-yaml: "npm:^4.1.0" - jsonc-parser: "npm:~3.2.0" - markdownlint: "npm:~0.27.0" - minimatch: "npm:~5.1.2" - run-con: "npm:~1.2.11" - bin: - markdownlint: markdownlint.js - checksum: 10c0/780e487257fd443f191f140b98f25d271c2abf064160c6afab264c5f565ccb0fc8ae321894f02549b1032c0101cb586a19775591cdf4167fc8d94979f8ebabdf - languageName: node - linkType: hard - -"markdownlint@npm:~0.27.0": - version: 0.27.0 - resolution: "markdownlint@npm:0.27.0" - dependencies: - markdown-it: "npm:13.0.1" - checksum: 10c0/c57c12fd3d0910ec879fb47f5deb9d99c8a53084ce1072b8d51e9ec399edc0d48a885d9fa5db08c5a1866e0181263c65e509add9b20473f6fbe61a51885a1fc3 + markdown-it: bin/markdown-it.mjs + checksum: 10c0/9a6bb444181d2db7016a4173ae56a95a62c84d4cbfb6916a399b11d3e6581bf1cc2e4e1d07a2f022ae72c25f56db90fbe1e529fca16fbf9541659dc53480d4b4 languageName: node linkType: hard @@ -13535,39 +13452,39 @@ __metadata: languageName: node linkType: hard -"mdast-util-from-markdown@npm:^1.3.0": - version: 1.3.1 - resolution: "mdast-util-from-markdown@npm:1.3.1" +"mdast-util-from-markdown@npm:^2.0.2": + version: 2.0.2 + resolution: "mdast-util-from-markdown@npm:2.0.2" dependencies: - "@types/mdast": "npm:^3.0.0" - "@types/unist": "npm:^2.0.0" + "@types/mdast": "npm:^4.0.0" + "@types/unist": "npm:^3.0.0" decode-named-character-reference: "npm:^1.0.0" - mdast-util-to-string: "npm:^3.1.0" - micromark: "npm:^3.0.0" - micromark-util-decode-numeric-character-reference: "npm:^1.0.0" - micromark-util-decode-string: "npm:^1.0.0" - micromark-util-normalize-identifier: "npm:^1.0.0" - micromark-util-symbol: "npm:^1.0.0" - micromark-util-types: "npm:^1.0.0" - unist-util-stringify-position: "npm:^3.0.0" - uvu: "npm:^0.5.0" - checksum: 10c0/f4e901bf2a2e93fe35a339e0cff581efacce2f7117cd5652e9a270847bd7e2508b3e717b7b4156af54d4f896d63033e06ff9fafbf59a1d46fe17dd5e2a3f7846 + devlop: "npm:^1.0.0" + mdast-util-to-string: "npm:^4.0.0" + micromark: "npm:^4.0.0" + micromark-util-decode-numeric-character-reference: "npm:^2.0.0" + micromark-util-decode-string: "npm:^2.0.0" + micromark-util-normalize-identifier: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + unist-util-stringify-position: "npm:^4.0.0" + checksum: 10c0/76eb2bd2c6f7a0318087c73376b8af6d7561c1e16654e7667e640f391341096c56142618fd0ff62f6d39e5ab4895898b9789c84cd7cec2874359a437a0e1ff15 languageName: node linkType: hard -"mdast-util-to-string@npm:^3.1.0": - version: 3.2.0 - resolution: "mdast-util-to-string@npm:3.2.0" +"mdast-util-to-string@npm:^4.0.0": + version: 4.0.0 + resolution: "mdast-util-to-string@npm:4.0.0" dependencies: - "@types/mdast": "npm:^3.0.0" - checksum: 10c0/112f4bf0f6758dcb95deffdcf37afba7eaecdfe2ee13252de031723094d4d55220e147326690a8b91244758e2d678e7aeb1fdd0fa6ef3317c979bc42effd9a21 + "@types/mdast": "npm:^4.0.0" + checksum: 10c0/2d3c1af29bf3fe9c20f552ee9685af308002488f3b04b12fa66652c9718f66f41a32f8362aa2d770c3ff464c034860b41715902ada2306bb0a055146cef064d7 languageName: node linkType: hard -"mdurl@npm:^1.0.1": - version: 1.0.1 - resolution: "mdurl@npm:1.0.1" - checksum: 10c0/ea8534341eb002aaa532a722daef6074cd8ca66202e10a2b4cda46722c1ebdb1da92197ac300bc953d3ef1bf41cd6561ef2cc69d82d5d0237dae00d4a61a4eee +"mdurl@npm:^2.0.0": + version: 2.0.0 + resolution: "mdurl@npm:2.0.0" + checksum: 10c0/633db522272f75ce4788440669137c77540d74a83e9015666a9557a152c02e245b192edc20bc90ae953bbab727503994a53b236b4d9c99bdaee594d0e7dd2ce0 languageName: node linkType: hard @@ -13645,239 +13562,239 @@ __metadata: languageName: node linkType: hard -"micromark-core-commonmark@npm:^1.0.1": - version: 1.1.0 - resolution: "micromark-core-commonmark@npm:1.1.0" +"micromark-core-commonmark@npm:^2.0.0": + version: 2.0.3 + resolution: "micromark-core-commonmark@npm:2.0.3" dependencies: decode-named-character-reference: "npm:^1.0.0" - micromark-factory-destination: "npm:^1.0.0" - micromark-factory-label: "npm:^1.0.0" - micromark-factory-space: "npm:^1.0.0" - micromark-factory-title: "npm:^1.0.0" - micromark-factory-whitespace: "npm:^1.0.0" - micromark-util-character: "npm:^1.0.0" - micromark-util-chunked: "npm:^1.0.0" - micromark-util-classify-character: "npm:^1.0.0" - micromark-util-html-tag-name: "npm:^1.0.0" - micromark-util-normalize-identifier: "npm:^1.0.0" - micromark-util-resolve-all: "npm:^1.0.0" - micromark-util-subtokenize: "npm:^1.0.0" - micromark-util-symbol: "npm:^1.0.0" - micromark-util-types: "npm:^1.0.1" - uvu: "npm:^0.5.0" - checksum: 10c0/b3bf7b7004ce7dbb3ae151dcca4db1d12546f1b943affb2418da4b90b9ce59357373c433ee2eea4c868aee0791dafa355aeed19f5ef2b0acaf271f32f1ecbe6a - languageName: node - linkType: hard - -"micromark-factory-destination@npm:^1.0.0": - version: 1.1.0 - resolution: "micromark-factory-destination@npm:1.1.0" + devlop: "npm:^1.0.0" + micromark-factory-destination: "npm:^2.0.0" + micromark-factory-label: "npm:^2.0.0" + micromark-factory-space: "npm:^2.0.0" + micromark-factory-title: "npm:^2.0.0" + micromark-factory-whitespace: "npm:^2.0.0" + micromark-util-character: "npm:^2.0.0" + micromark-util-chunked: "npm:^2.0.0" + micromark-util-classify-character: "npm:^2.0.0" + micromark-util-html-tag-name: "npm:^2.0.0" + micromark-util-normalize-identifier: "npm:^2.0.0" + micromark-util-resolve-all: "npm:^2.0.0" + micromark-util-subtokenize: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/bd4a794fdc9e88dbdf59eaf1c507ddf26e5f7ddf4e52566c72239c0f1b66adbcd219ba2cd42350debbe24471434d5f5e50099d2b3f4e5762ca222ba8e5b549ee + languageName: node + linkType: hard + +"micromark-factory-destination@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-factory-destination@npm:2.0.1" dependencies: - micromark-util-character: "npm:^1.0.0" - micromark-util-symbol: "npm:^1.0.0" - micromark-util-types: "npm:^1.0.0" - checksum: 10c0/71ebd9089bf0c9689b98ef42215c04032ae2701ae08c3546b663628553255dca18e5310dbdacddad3acd8de4f12a789835fff30dadc4da3c4e30387a75e6b488 + micromark-util-character: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/bbafcf869cee5bf511161354cb87d61c142592fbecea051000ff116068dc85216e6d48519d147890b9ea5d7e2864a6341c0c09d9948c203bff624a80a476023c languageName: node linkType: hard -"micromark-factory-label@npm:^1.0.0": - version: 1.1.0 - resolution: "micromark-factory-label@npm:1.1.0" +"micromark-factory-label@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-factory-label@npm:2.0.1" dependencies: - micromark-util-character: "npm:^1.0.0" - micromark-util-symbol: "npm:^1.0.0" - micromark-util-types: "npm:^1.0.0" - uvu: "npm:^0.5.0" - checksum: 10c0/5e2cd2d8214bb92a34dfcedf9c7aecf565e3648650a3a6a0495ededf15f2318dd214dc069e3026402792cd5839d395313f8ef9c2e86ca34a8facaa0f75a77753 + devlop: "npm:^1.0.0" + micromark-util-character: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/0137716b4ecb428114165505e94a2f18855c8bbea21b07a8b5ce514b32a595ed789d2b967125718fc44c4197ceaa48f6609d58807a68e778138d2e6b91b824e8 languageName: node linkType: hard -"micromark-factory-space@npm:^1.0.0": - version: 1.1.0 - resolution: "micromark-factory-space@npm:1.1.0" +"micromark-factory-space@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-factory-space@npm:2.0.1" dependencies: - micromark-util-character: "npm:^1.0.0" - micromark-util-types: "npm:^1.0.0" - checksum: 10c0/3da81187ce003dd4178c7adc4674052fb8befc8f1a700ae4c8227755f38581a4ae963866dc4857488d62d1dc9837606c9f2f435fa1332f62a0f1c49b83c6a822 + micromark-util-character: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/f9ed43f1c0652d8d898de0ac2be3f77f776fffe7dd96bdbba1e02d7ce33d3853c6ff5daa52568fc4fa32cdf3a62d86b85ead9b9189f7211e1d69ff2163c450fb languageName: node linkType: hard -"micromark-factory-title@npm:^1.0.0": - version: 1.1.0 - resolution: "micromark-factory-title@npm:1.1.0" +"micromark-factory-title@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-factory-title@npm:2.0.1" dependencies: - micromark-factory-space: "npm:^1.0.0" - micromark-util-character: "npm:^1.0.0" - micromark-util-symbol: "npm:^1.0.0" - micromark-util-types: "npm:^1.0.0" - checksum: 10c0/cf8c687d1d5c3928846a4791d4a7e2f1d7bdd2397051e20d60f06b7565a48bf85198ab6f85735e997ab3f0cbb80b8b6391f4f7ebc0aae2f2f8c3a08541257bf6 + micromark-factory-space: "npm:^2.0.0" + micromark-util-character: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/e72fad8d6e88823514916890099a5af20b6a9178ccf78e7e5e05f4de99bb8797acb756257d7a3a57a53854cb0086bf8aab15b1a9e9db8982500dd2c9ff5948b6 languageName: node linkType: hard -"micromark-factory-whitespace@npm:^1.0.0": - version: 1.1.0 - resolution: "micromark-factory-whitespace@npm:1.1.0" +"micromark-factory-whitespace@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-factory-whitespace@npm:2.0.1" dependencies: - micromark-factory-space: "npm:^1.0.0" - micromark-util-character: "npm:^1.0.0" - micromark-util-symbol: "npm:^1.0.0" - micromark-util-types: "npm:^1.0.0" - checksum: 10c0/7248cc4534f9befb38c6f398b6e38efd3199f1428fc214c9cb7ed5b6e9fa7a82c0d8cdfa9bcacde62887c9a7c8c46baf5c318b2ae8f701afbccc8ad702e92dce + micromark-factory-space: "npm:^2.0.0" + micromark-util-character: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/20a1ec58698f24b766510a309b23a10175034fcf1551eaa9da3adcbed3e00cd53d1ebe5f030cf873f76a1cec3c34eb8c50cc227be3344caa9ed25d56cf611224 languageName: node linkType: hard -"micromark-util-character@npm:^1.0.0": - version: 1.2.0 - resolution: "micromark-util-character@npm:1.2.0" +"micromark-util-character@npm:^2.0.0": + version: 2.1.1 + resolution: "micromark-util-character@npm:2.1.1" dependencies: - micromark-util-symbol: "npm:^1.0.0" - micromark-util-types: "npm:^1.0.0" - checksum: 10c0/3390a675a50731b58a8e5493cd802e190427f10fa782079b455b00f6b54e406e36882df7d4a3bd32b709f7a2c3735b4912597ebc1c0a99566a8d8d0b816e2cd4 + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/d3fe7a5e2c4060fc2a076f9ce699c82a2e87190a3946e1e5eea77f563869b504961f5668d9c9c014724db28ac32fa909070ea8b30c3a39bd0483cc6c04cc76a1 languageName: node linkType: hard -"micromark-util-chunked@npm:^1.0.0": - version: 1.1.0 - resolution: "micromark-util-chunked@npm:1.1.0" +"micromark-util-chunked@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-chunked@npm:2.0.1" dependencies: - micromark-util-symbol: "npm:^1.0.0" - checksum: 10c0/59534cf4aaf481ed58d65478d00eae0080df9b5816673f79b5ddb0cea263e5a9ee9cbb6cc565daf1eb3c8c4ff86fc4e25d38a0577539655cda823a4249efd358 + micromark-util-symbol: "npm:^2.0.0" + checksum: 10c0/b68c0c16fe8106949537bdcfe1be9cf36c0ccd3bc54c4007003cb0984c3750b6cdd0fd77d03f269a3382b85b0de58bde4f6eedbe7ecdf7244759112289b1ab56 languageName: node linkType: hard -"micromark-util-classify-character@npm:^1.0.0": - version: 1.1.0 - resolution: "micromark-util-classify-character@npm:1.1.0" +"micromark-util-classify-character@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-classify-character@npm:2.0.1" dependencies: - micromark-util-character: "npm:^1.0.0" - micromark-util-symbol: "npm:^1.0.0" - micromark-util-types: "npm:^1.0.0" - checksum: 10c0/3266453dc0fdaf584e24c9b3c91d1ed180f76b5856699c51fd2549305814fcab7ec52afb4d3e83d002a9115cd2d2b2ffdc9c0b38ed85120822bf515cc00636ec + micromark-util-character: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/8a02e59304005c475c332f581697e92e8c585bcd45d5d225a66c1c1b14ab5a8062705188c2ccec33cc998d33502514121478b2091feddbc751887fc9c290ed08 languageName: node linkType: hard -"micromark-util-combine-extensions@npm:^1.0.0": - version: 1.1.0 - resolution: "micromark-util-combine-extensions@npm:1.1.0" +"micromark-util-combine-extensions@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-combine-extensions@npm:2.0.1" dependencies: - micromark-util-chunked: "npm:^1.0.0" - micromark-util-types: "npm:^1.0.0" - checksum: 10c0/0bc572fab3fe77f533c29aa1b75cb847b9fc9455f67a98623ef9740b925c0b0426ad9f09bbb56f1e844ea9ebada7873d1f06d27f7c979a917692b273c4b69e31 + micromark-util-chunked: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/f15e282af24c8372cbb10b9b0b3e2c0aa681fea0ca323a44d6bc537dc1d9382c819c3689f14eaa000118f5a163245358ce6276b2cda9a84439cdb221f5d86ae7 languageName: node linkType: hard -"micromark-util-decode-numeric-character-reference@npm:^1.0.0": - version: 1.1.0 - resolution: "micromark-util-decode-numeric-character-reference@npm:1.1.0" +"micromark-util-decode-numeric-character-reference@npm:^2.0.0": + version: 2.0.2 + resolution: "micromark-util-decode-numeric-character-reference@npm:2.0.2" dependencies: - micromark-util-symbol: "npm:^1.0.0" - checksum: 10c0/64ef2575e3fc2426976c19e16973348f20b59ddd5543f1467ac2e251f29e0a91f12089703d29ae985b0b9a408ee0d72f06d04ed3920811aa2402aabca3bdf9e4 + micromark-util-symbol: "npm:^2.0.0" + checksum: 10c0/9c8a9f2c790e5593ffe513901c3a110e9ec8882a08f466da014112a25e5059b51551ca0aeb7ff494657d86eceb2f02ee556c6558b8d66aadc61eae4a240da0df languageName: node linkType: hard -"micromark-util-decode-string@npm:^1.0.0": - version: 1.1.0 - resolution: "micromark-util-decode-string@npm:1.1.0" +"micromark-util-decode-string@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-decode-string@npm:2.0.1" dependencies: decode-named-character-reference: "npm:^1.0.0" - micromark-util-character: "npm:^1.0.0" - micromark-util-decode-numeric-character-reference: "npm:^1.0.0" - micromark-util-symbol: "npm:^1.0.0" - checksum: 10c0/757a0aaa5ad6c50c7480bd75371d407ac75f5022cd4404aba07adadf1448189502aea9bb7b2d09d25e18745e0abf72b95506b6beb184bcccabe919e48e3a5df7 + micromark-util-character: "npm:^2.0.0" + micromark-util-decode-numeric-character-reference: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + checksum: 10c0/f24d75b2e5310be6e7b6dee532e0d17d3bf46996841d6295f2a9c87a2046fff4ab603c52ab9d7a7a6430a8b787b1574ae895849c603d262d1b22eef71736b5cb languageName: node linkType: hard -"micromark-util-encode@npm:^1.0.0": - version: 1.1.0 - resolution: "micromark-util-encode@npm:1.1.0" - checksum: 10c0/9878c9bc96999d45626a7597fffac85348ea842dce75d2417345cbf070a9941c62477bd0963bef37d4f0fd29f2982be6ddf416d62806f00ccb334af9d6ee87e7 +"micromark-util-encode@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-encode@npm:2.0.1" + checksum: 10c0/b2b29f901093845da8a1bf997ea8b7f5e061ffdba85070dfe14b0197c48fda64ffcf82bfe53c90cf9dc185e69eef8c5d41cae3ba918b96bc279326921b59008a languageName: node linkType: hard -"micromark-util-html-tag-name@npm:^1.0.0": - version: 1.2.0 - resolution: "micromark-util-html-tag-name@npm:1.2.0" - checksum: 10c0/15421869678d36b4fe51df453921e8186bff514a14e9f79f32b7e1cdd67874e22a66ad34a7f048dd132cbbbfc7c382ae2f777a2bfd1f245a47705dc1c6d4f199 +"micromark-util-html-tag-name@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-html-tag-name@npm:2.0.1" + checksum: 10c0/ae80444db786fde908e9295f19a27a4aa304171852c77414516418650097b8afb401961c9edb09d677b06e97e8370cfa65638dde8438ebd41d60c0a8678b85b9 languageName: node linkType: hard -"micromark-util-normalize-identifier@npm:^1.0.0": - version: 1.1.0 - resolution: "micromark-util-normalize-identifier@npm:1.1.0" +"micromark-util-normalize-identifier@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-normalize-identifier@npm:2.0.1" dependencies: - micromark-util-symbol: "npm:^1.0.0" - checksum: 10c0/a9657321a2392584e4d978061882117a84db7d2c2c1c052c0f5d25da089d463edb9f956d5beaf7f5768984b6f72d046d59b5972951ec7bf25397687a62b8278a + micromark-util-symbol: "npm:^2.0.0" + checksum: 10c0/5299265fa360769fc499a89f40142f10a9d4a5c3dd8e6eac8a8ef3c2e4a6570e4c009cf75ea46dce5ee31c01f25587bde2f4a5cc0a935584ae86dd857f2babbd languageName: node linkType: hard -"micromark-util-resolve-all@npm:^1.0.0": - version: 1.1.0 - resolution: "micromark-util-resolve-all@npm:1.1.0" +"micromark-util-resolve-all@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-resolve-all@npm:2.0.1" dependencies: - micromark-util-types: "npm:^1.0.0" - checksum: 10c0/b5c95484c06e87bbbb60d8430eb030a458733a5270409f4c67892d1274737087ca6a7ca888987430e57cf1dcd44bb16390d3b3936a2bf07f7534ec8f52ce43c9 + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/bb6ca28764696bb479dc44a2d5b5fe003e7177aeae1d6b0d43f24cc223bab90234092d9c3ce4a4d2b8df095ccfd820537b10eb96bb7044d635f385d65a4c984a languageName: node linkType: hard -"micromark-util-sanitize-uri@npm:^1.0.0": - version: 1.2.0 - resolution: "micromark-util-sanitize-uri@npm:1.2.0" +"micromark-util-sanitize-uri@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-sanitize-uri@npm:2.0.1" dependencies: - micromark-util-character: "npm:^1.0.0" - micromark-util-encode: "npm:^1.0.0" - micromark-util-symbol: "npm:^1.0.0" - checksum: 10c0/dbdb98248e9f0408c7a00f1c1cd805775b41d213defd659533835f34b38da38e8f990bf7b3f782e96bffbc549aec9c3ecdab197d4ad5adbfe08f814a70327b6e + micromark-util-character: "npm:^2.0.0" + micromark-util-encode: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + checksum: 10c0/60e92166e1870fd4f1961468c2651013ff760617342918e0e0c3c4e872433aa2e60c1e5a672bfe5d89dc98f742d6b33897585cf86ae002cda23e905a3c02527c languageName: node linkType: hard -"micromark-util-subtokenize@npm:^1.0.0": - version: 1.1.0 - resolution: "micromark-util-subtokenize@npm:1.1.0" +"micromark-util-subtokenize@npm:^2.0.0": + version: 2.1.0 + resolution: "micromark-util-subtokenize@npm:2.1.0" dependencies: - micromark-util-chunked: "npm:^1.0.0" - micromark-util-symbol: "npm:^1.0.0" - micromark-util-types: "npm:^1.0.0" - uvu: "npm:^0.5.0" - checksum: 10c0/f292b1b162845db50d36255c9d4c4c6d47931fbca3ac98a80c7e536d2163233fd662f8ca0479ee2b80f145c66a1394c7ed17dfce801439741211015e77e3901e + devlop: "npm:^1.0.0" + micromark-util-chunked: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/bee69eece4393308e657c293ba80d92ebcb637e5f55e21dcf9c3fa732b91a8eda8ac248d76ff375e675175bfadeae4712e5158ef97eef1111789da1ce7ab5067 languageName: node linkType: hard -"micromark-util-symbol@npm:^1.0.0": - version: 1.1.0 - resolution: "micromark-util-symbol@npm:1.1.0" - checksum: 10c0/10ceaed33a90e6bfd3a5d57053dbb53f437d4809cc11430b5a09479c0ba601577059be9286df4a7eae6e350a60a2575dc9fa9d9872b5b8d058c875e075c33803 +"micromark-util-symbol@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-symbol@npm:2.0.1" + checksum: 10c0/f2d1b207771e573232436618e78c5e46cd4b5c560dd4a6d63863d58018abbf49cb96ec69f7007471e51434c60de3c9268ef2bf46852f26ff4aacd10f9da16fe9 languageName: node linkType: hard -"micromark-util-types@npm:^1.0.0, micromark-util-types@npm:^1.0.1": - version: 1.1.0 - resolution: "micromark-util-types@npm:1.1.0" - checksum: 10c0/a9749cb0a12a252ff536baabcb7012421b6fad4d91a5fdd80d7b33dc7b4c22e2d0c4637dfe5b902d00247fe6c9b01f4a24fce6b572b16ccaa4da90e6ce2a11e4 +"micromark-util-types@npm:^2.0.0": + version: 2.0.2 + resolution: "micromark-util-types@npm:2.0.2" + checksum: 10c0/c8c15b96c858db781c4393f55feec10004bf7df95487636c9a9f7209e51002a5cca6a047c5d2a5dc669ff92da20e57aaa881e81a268d9ccadb647f9dce305298 languageName: node linkType: hard -"micromark@npm:^3.0.0": - version: 3.2.0 - resolution: "micromark@npm:3.2.0" +"micromark@npm:^4.0.0": + version: 4.0.2 + resolution: "micromark@npm:4.0.2" dependencies: "@types/debug": "npm:^4.0.0" debug: "npm:^4.0.0" decode-named-character-reference: "npm:^1.0.0" - micromark-core-commonmark: "npm:^1.0.1" - micromark-factory-space: "npm:^1.0.0" - micromark-util-character: "npm:^1.0.0" - micromark-util-chunked: "npm:^1.0.0" - micromark-util-combine-extensions: "npm:^1.0.0" - micromark-util-decode-numeric-character-reference: "npm:^1.0.0" - micromark-util-encode: "npm:^1.0.0" - micromark-util-normalize-identifier: "npm:^1.0.0" - micromark-util-resolve-all: "npm:^1.0.0" - micromark-util-sanitize-uri: "npm:^1.0.0" - micromark-util-subtokenize: "npm:^1.0.0" - micromark-util-symbol: "npm:^1.0.0" - micromark-util-types: "npm:^1.0.1" - uvu: "npm:^0.5.0" - checksum: 10c0/f243e805d1b3cc699fddae2de0b1492bc82462f1a709d7ae5c82039f88b1e009c959100184717e748be057b5f88603289d5681679a4e6fbabcd037beb34bc744 + devlop: "npm:^1.0.0" + micromark-core-commonmark: "npm:^2.0.0" + micromark-factory-space: "npm:^2.0.0" + micromark-util-character: "npm:^2.0.0" + micromark-util-chunked: "npm:^2.0.0" + micromark-util-combine-extensions: "npm:^2.0.0" + micromark-util-decode-numeric-character-reference: "npm:^2.0.0" + micromark-util-encode: "npm:^2.0.0" + micromark-util-normalize-identifier: "npm:^2.0.0" + micromark-util-resolve-all: "npm:^2.0.0" + micromark-util-sanitize-uri: "npm:^2.0.0" + micromark-util-subtokenize: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/07462287254219d6eda6eac8a3cebaff2994e0575499e7088027b825105e096e4f51e466b14b2a81b71933a3b6c48ee069049d87bc2c2127eee50d9cc69e8af6 languageName: node linkType: hard @@ -13992,6 +13909,15 @@ __metadata: languageName: node linkType: hard +"minimatch@npm:^10.0.1, minimatch@npm:^10.1.1": + version: 10.1.1 + resolution: "minimatch@npm:10.1.1" + dependencies: + "@isaacs/brace-expansion": "npm:^5.0.0" + checksum: 10c0/c85d44821c71973d636091fddbfbffe62370f5ee3caf0241c5b60c18cd289e916200acb2361b7e987558cd06896d153e25d505db9fc1e43e6b4b6752e2702902 + languageName: node + linkType: hard + "minimatch@npm:^10.0.3": version: 10.0.3 resolution: "minimatch@npm:10.0.3" @@ -14037,15 +13963,6 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:~5.1.2": - version: 5.1.6 - resolution: "minimatch@npm:5.1.6" - dependencies: - brace-expansion: "npm:^2.0.1" - checksum: 10c0/3defdfd230914f22a8da203747c42ee3c405c39d4d37ffda284dac5e45b7e1f6c49aa8be606509002898e73091ff2a3bbfc59c2c6c71d4660609f63aa92f98e3 - languageName: node - linkType: hard - "minimist-options@npm:4.1.0": version: 4.1.0 resolution: "minimist-options@npm:4.1.0" @@ -14071,15 +13988,6 @@ __metadata: languageName: node linkType: hard -"minipass-collect@npm:^1.0.2": - version: 1.0.2 - resolution: "minipass-collect@npm:1.0.2" - dependencies: - minipass: "npm:^3.0.0" - checksum: 10c0/8f82bd1f3095b24f53a991b04b67f4c710c894e518b813f0864a31de5570441a509be1ca17e0bb92b047591a8fdbeb886f502764fefb00d2f144f4011791e898 - languageName: node - linkType: hard - "minipass-collect@npm:^2.0.1": version: 2.0.1 resolution: "minipass-collect@npm:2.0.1" @@ -14089,21 +13997,6 @@ __metadata: languageName: node linkType: hard -"minipass-fetch@npm:^2.0.3": - version: 2.1.2 - resolution: "minipass-fetch@npm:2.1.2" - dependencies: - encoding: "npm:^0.1.13" - minipass: "npm:^3.1.6" - minipass-sized: "npm:^1.0.3" - minizlib: "npm:^2.1.2" - dependenciesMeta: - encoding: - optional: true - checksum: 10c0/33ab2c5bdb3d91b9cb8bc6ae42d7418f4f00f7f7beae14b3bb21ea18f9224e792f560a6e17b6f1be12bbeb70dbe99a269f4204c60e5d99130a0777b153505c43 - languageName: node - linkType: hard - "minipass-fetch@npm:^4.0.0": version: 4.0.1 resolution: "minipass-fetch@npm:4.0.1" @@ -14146,7 +14039,7 @@ __metadata: languageName: node linkType: hard -"minipass@npm:^3.0.0, minipass@npm:^3.1.6": +"minipass@npm:^3.0.0": version: 3.3.4 resolution: "minipass@npm:3.3.4" dependencies: @@ -14155,15 +14048,6 @@ __metadata: languageName: node linkType: hard -"minipass@npm:^3.1.1": - version: 3.1.6 - resolution: "minipass@npm:3.1.6" - dependencies: - yallist: "npm:^4.0.0" - checksum: 10c0/65c3007875602b0ed0e1ab11a284b8aea80cd7c3757a8db75ca3850bd1cd728bec1c87bb03fe35355aecd61e08de4875d7a81c654372ec0b50c29e13f2c3b924 - languageName: node - linkType: hard - "minipass@npm:^4.2.4": version: 4.2.8 resolution: "minipass@npm:4.2.8" @@ -14199,7 +14083,7 @@ __metadata: languageName: node linkType: hard -"minizlib@npm:^2.1.1, minizlib@npm:^2.1.2": +"minizlib@npm:^2.1.1": version: 2.1.2 resolution: "minizlib@npm:2.1.2" dependencies: @@ -14229,7 +14113,7 @@ __metadata: languageName: node linkType: hard -"mkdirp@npm:^1.0.3, mkdirp@npm:^1.0.4": +"mkdirp@npm:^1.0.3": version: 1.0.4 resolution: "mkdirp@npm:1.0.4" bin: @@ -14245,13 +14129,6 @@ __metadata: languageName: node linkType: hard -"mri@npm:^1.1.0": - version: 1.2.0 - resolution: "mri@npm:1.2.0" - checksum: 10c0/a3d32379c2554cf7351db6237ddc18dc9e54e4214953f3da105b97dc3babe0deb3ffe99cf409b38ea47cc29f9430561ba6b53b24ab8f9ce97a4b50409e4a50e7 - languageName: node - linkType: hard - "ms@npm:2.0.0": version: 2.0.0 resolution: "ms@npm:2.0.0" @@ -14259,7 +14136,7 @@ __metadata: languageName: node linkType: hard -"ms@npm:2.1.3, ms@npm:^2.0.0, ms@npm:^2.1.1, ms@npm:^2.1.3": +"ms@npm:2.1.3, ms@npm:^2.1.1, ms@npm:^2.1.3": version: 2.1.3 resolution: "ms@npm:2.1.3" checksum: 10c0/d924b57e7312b3b63ad21fc5b3dc0af5e78d61a1fc7cfb5457edaf26326bf62be5307cc87ffb6862ef1c2b33b0233cdb5d4f01c4c958cc0d660948b65a287a48 @@ -14406,7 +14283,7 @@ __metadata: languageName: node linkType: hard -"negotiator@npm:0.6.3, negotiator@npm:^0.6.3": +"negotiator@npm:0.6.3": version: 0.6.3 resolution: "negotiator@npm:0.6.3" checksum: 10c0/3ec9fd413e7bf071c937ae60d572bc67155262068ed522cf4b3be5edbe6ddf67d095ec03a3a14ebf8fc8e95f8e1d61be4869db0dbb0de696f6b837358bd43fc2 @@ -14444,12 +14321,12 @@ __metadata: languageName: node linkType: hard -"node-abi@npm:^3.45.0": - version: 3.80.0 - resolution: "node-abi@npm:3.80.0" +"node-abi@npm:^4.2.0": + version: 4.24.0 + resolution: "node-abi@npm:4.24.0" dependencies: - semver: "npm:^7.3.5" - checksum: 10c0/f98534a2d063e85b6b51c5e6f2abebd1d1d313855e29138d493cf178ce5c2ead18e562c3093a758654fd941c9353b8154a79acd10540d553726c4f690c31c44e + semver: "npm:^7.6.3" + checksum: 10c0/9bf9f4e79c875b98f8026f2ad80150b2d5077f48529444232c9574cfd82e45d42a3ab2dcf6fb374cf7775becbf58e7c1b8704596ad3bef27cdeab7bc93eca7a3 languageName: node linkType: hard @@ -14460,12 +14337,12 @@ __metadata: languageName: node linkType: hard -"node-api-version@npm:^0.2.0": - version: 0.2.0 - resolution: "node-api-version@npm:0.2.0" +"node-api-version@npm:^0.2.1": + version: 0.2.1 + resolution: "node-api-version@npm:0.2.1" dependencies: semver: "npm:^7.3.5" - checksum: 10c0/a5bdc7559237d2acebadc9ac0f29dd1279726e4226a8b3256ea605f6ad4a5c48528a2b6684d09237d33f0b714a95573d7f14a2a628642d31e05c79395e2c7873 + checksum: 10c0/3fe6c273e4f9dd184bb8b959ba3d8afae7eade663611d82c8538c79ac3a7b8f1d136632ceb4bf8cdc46a851fc169407746996cf7d1096de9a186e0e70fca95fa languageName: node linkType: hard @@ -14510,6 +14387,26 @@ __metadata: languageName: node linkType: hard +"node-gyp@npm:^11.2.0": + version: 11.5.0 + resolution: "node-gyp@npm:11.5.0" + dependencies: + env-paths: "npm:^2.2.0" + exponential-backoff: "npm:^3.1.1" + graceful-fs: "npm:^4.2.6" + make-fetch-happen: "npm:^14.0.3" + nopt: "npm:^8.0.0" + proc-log: "npm:^5.0.0" + semver: "npm:^7.3.5" + tar: "npm:^7.4.3" + tinyglobby: "npm:^0.2.12" + which: "npm:^5.0.0" + bin: + node-gyp: bin/node-gyp.js + checksum: 10c0/31ff49586991b38287bb15c3d529dd689cfc32f992eed9e6997b9d712d5d21fe818a8b1bbfe3b76a7e33765c20210c5713212f4aa329306a615b87d8a786da3a + languageName: node + linkType: hard + "node-machine-id@npm:1.1.12": version: 1.1.12 resolution: "node-machine-id@npm:1.1.12" @@ -14524,17 +14421,6 @@ __metadata: languageName: node linkType: hard -"nopt@npm:^6.0.0": - version: 6.0.0 - resolution: "nopt@npm:6.0.0" - dependencies: - abbrev: "npm:^1.0.0" - bin: - nopt: bin/nopt.js - checksum: 10c0/837b52c330df16fcaad816b1f54fec6b2854ab1aa771d935c1603fbcf9b023bb073f1466b1b67f48ea4dce127ae675b85b9d9355700e9b109de39db490919786 - languageName: node - linkType: hard - "nopt@npm:^8.0.0": version: 8.1.0 resolution: "nopt@npm:8.1.0" @@ -15454,6 +15340,15 @@ __metadata: languageName: node linkType: hard +"parse5@npm:^7.0.0": + version: 7.3.0 + resolution: "parse5@npm:7.3.0" + dependencies: + entities: "npm:^6.0.0" + checksum: 10c0/7fd2e4e247e85241d6f2a464d0085eed599a26d7b0a5233790c49f53473232eb85350e8133344d9b3fd58b89339e7ad7270fe1f89d28abe50674ec97b87f80b5 + languageName: node + linkType: hard + "parseurl@npm:~1.3.2, parseurl@npm:~1.3.3": version: 1.3.3 resolution: "parseurl@npm:1.3.3" @@ -15523,6 +15418,16 @@ __metadata: languageName: node linkType: hard +"path-scurry@npm:^1.11.1": + version: 1.11.1 + resolution: "path-scurry@npm:1.11.1" + dependencies: + lru-cache: "npm:^10.2.0" + minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0" + checksum: 10c0/32a13711a2a505616ae1cc1b5076801e453e7aae6ac40ab55b388bb91b9d0547a52f5aaceff710ea400205f18691120d4431e520afbe4266b836fadede15872d + languageName: node + linkType: hard + "path-scurry@npm:^1.6.1": version: 1.9.2 resolution: "path-scurry@npm:1.9.2" @@ -15596,10 +15501,10 @@ __metadata: languageName: node linkType: hard -"pe-library@npm:^1.0.0": - version: 1.0.0 - resolution: "pe-library@npm:1.0.0" - checksum: 10c0/697a39d3dd97cb0b859f6088689b72a58969f39145faaf478d7ac4be88602cd556f08c0ab8332d018f091c05de5848accb699fc20d358127127f5bded85074f1 +"pe-library@npm:^1.0.1": + version: 1.0.1 + resolution: "pe-library@npm:1.0.1" + checksum: 10c0/1204201126db9477d1119e5312f09228ce1e0e6d6545fc5811f6166c259fe24a890297557abc5971ec8029f28777628ed71ba8c186ed6bd09ed1152c8a88b33d languageName: node linkType: hard @@ -15708,16 +15613,6 @@ __metadata: languageName: node linkType: hard -"plist@npm:^3.0.0": - version: 3.0.5 - resolution: "plist@npm:3.0.5" - dependencies: - base64-js: "npm:^1.5.1" - xmlbuilder: "npm:^9.0.7" - checksum: 10c0/f27193d6fbbaa52963e8bba9e7a854efd0b6e51f3663677343c9d1258331830936f42fdc935953169b6c22b5504bd715ca47d1260572b65b23b879f93a731ff5 - languageName: node - linkType: hard - "plist@npm:^3.0.5, plist@npm:^3.1.0": version: 3.1.0 resolution: "plist@npm:3.1.0" @@ -15816,13 +15711,6 @@ __metadata: languageName: node linkType: hard -"proc-log@npm:^2.0.1": - version: 2.0.1 - resolution: "proc-log@npm:2.0.1" - checksum: 10c0/701c501429775ce34cec28ef6a1c976537274b42917212fb8a5975ebcecb0a85612907fd7f99ff28ff4c2112bb84a0f4322fc9b9e1e52a8562fcbb1d5b3ce608 - languageName: node - linkType: hard - "proc-log@npm:^5.0.0": version: 5.0.0 resolution: "proc-log@npm:5.0.0" @@ -15865,13 +15753,6 @@ __metadata: languageName: node linkType: hard -"promise-inflight@npm:^1.0.1": - version: 1.0.1 - resolution: "promise-inflight@npm:1.0.1" - checksum: 10c0/d179d148d98fbff3d815752fa9a08a87d3190551d1420f17c4467f628214db12235ae068d98cd001f024453676d8985af8f28f002345646c4ece4600a79620bc - languageName: node - linkType: hard - "promise-retry@npm:^2.0.1": version: 2.0.1 resolution: "promise-retry@npm:2.0.1" @@ -15902,6 +15783,13 @@ __metadata: languageName: node linkType: hard +"property-information@npm:^7.0.0": + version: 7.1.0 + resolution: "property-information@npm:7.1.0" + checksum: 10c0/e0fe22cff26103260ad0e82959229106563fa115a54c4d6c183f49d88054e489cc9f23452d3ad584179dc13a8b7b37411a5df873746b5e4086c865874bfa968e + languageName: node + linkType: hard + "protocols@npm:^2.0.0, protocols@npm:^2.0.1": version: 2.0.1 resolution: "protocols@npm:2.0.1" @@ -15945,6 +15833,13 @@ __metadata: languageName: node linkType: hard +"punycode.js@npm:^2.3.1": + version: 2.3.1 + resolution: "punycode.js@npm:2.3.1" + checksum: 10c0/1d12c1c0e06127fa5db56bd7fdf698daf9a78104456a6b67326877afc21feaa821257b171539caedd2f0524027fa38e67b13dd094159c8d70b6d26d2bea4dfdb + languageName: node + linkType: hard + "punycode@npm:^2.1.0": version: 2.1.1 resolution: "punycode@npm:2.1.1" @@ -16321,12 +16216,12 @@ __metadata: languageName: node linkType: hard -"resedit@npm:^2.0.0": - version: 2.0.0 - resolution: "resedit@npm:2.0.0" +"resedit@npm:^2.0.3": + version: 2.0.3 + resolution: "resedit@npm:2.0.3" dependencies: - pe-library: "npm:^1.0.0" - checksum: 10c0/35c7dba2ad22282b1c6c351fd547709d411c4e14675edff35d4fe03b0b635dbbd55b66aa656548dfbb604220d4c6a8cc6abbd78e41ed4f89a5e1981331c9756d + pe-library: "npm:^1.0.1" + checksum: 10c0/d9ec8fc3900f3bf8fe818260149fdd6180b45d42f08d8bdf098a7a841d995363f44fd2d633948889e300a3ad8e7860b2d92fff9afcdcea21999994f5f526ffb0 languageName: node linkType: hard @@ -16374,7 +16269,7 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.1.6, resolve@npm:^1.10.0, resolve@npm:^1.20.0, resolve@npm:^1.22.1": +"resolve@npm:^1.10.0, resolve@npm:^1.20.0, resolve@npm:^1.22.1": version: 1.22.1 resolution: "resolve@npm:1.22.1" dependencies: @@ -16387,6 +16282,19 @@ __metadata: languageName: node linkType: hard +"resolve@npm:^1.22.10": + version: 1.22.11 + resolution: "resolve@npm:1.22.11" + dependencies: + is-core-module: "npm:^2.16.1" + path-parse: "npm:^1.0.7" + supports-preserve-symlinks-flag: "npm:^1.0.0" + bin: + resolve: bin/resolve + checksum: 10c0/f657191507530f2cbecb5815b1ee99b20741ea6ee02a59c57028e9ec4c2c8d7681afcc35febbd554ac0ded459db6f2d8153382c53a2f266cee2575e512674409 + languageName: node + linkType: hard + "resolve@npm:^1.22.4": version: 1.22.9 resolution: "resolve@npm:1.22.9" @@ -16426,7 +16334,7 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@npm%3A^1.1.6#optional!builtin, resolve@patch:resolve@npm%3A^1.10.0#optional!builtin, resolve@patch:resolve@npm%3A^1.20.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.1#optional!builtin": +"resolve@patch:resolve@npm%3A^1.10.0#optional!builtin, resolve@patch:resolve@npm%3A^1.20.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.1#optional!builtin": version: 1.22.1 resolution: "resolve@patch:resolve@npm%3A1.22.1#optional!builtin::version=1.22.1&hash=c3c19d" dependencies: @@ -16439,6 +16347,19 @@ __metadata: languageName: node linkType: hard +"resolve@patch:resolve@npm%3A^1.22.10#optional!builtin": + version: 1.22.11 + resolution: "resolve@patch:resolve@npm%3A1.22.11#optional!builtin::version=1.22.11&hash=c3c19d" + dependencies: + is-core-module: "npm:^2.16.1" + path-parse: "npm:^1.0.7" + supports-preserve-symlinks-flag: "npm:^1.0.0" + bin: + resolve: bin/resolve + checksum: 10c0/ee5b182f2e37cb1165465e58c6abc797fec0a80b5ba3231607beb4677db0c9291ac010c47cf092b6daa2b7f518d69a0e21888e7e2b633f68d501a874212a8c63 + languageName: node + linkType: hard + "resolve@patch:resolve@npm%3A^1.22.4#optional!builtin": version: 1.22.9 resolution: "resolve@patch:resolve@npm%3A1.22.9#optional!builtin::version=1.22.9&hash=c3c19d" @@ -16777,20 +16698,6 @@ __metadata: languageName: node linkType: hard -"run-con@npm:~1.2.11": - version: 1.2.12 - resolution: "run-con@npm:1.2.12" - dependencies: - deep-extend: "npm:^0.6.0" - ini: "npm:~3.0.0" - minimist: "npm:^1.2.8" - strip-json-comments: "npm:~3.1.1" - bin: - run-con: cli.js - checksum: 10c0/c749a463cf6160cc0745ebb901920eeaf7700488f2cecd90fb3794b08c84ffd819568324c239bffb2174bf828bf3d754dd245b85f1b2a0badad88765b0b09752 - languageName: node - linkType: hard - "run-parallel@npm:^1.1.9": version: 1.2.0 resolution: "run-parallel@npm:1.2.0" @@ -16827,15 +16734,6 @@ __metadata: languageName: node linkType: hard -"sade@npm:^1.7.3": - version: 1.8.1 - resolution: "sade@npm:1.8.1" - dependencies: - mri: "npm:^1.1.0" - checksum: 10c0/da8a3a5d667ad5ce3bf6d4f054bbb9f711103e5df21003c5a5c1a8a77ce12b640ed4017dd423b13c2307ea7e645adee7c2ae3afe8051b9db16a6f6d3da3f90b1 - languageName: node - linkType: hard - "safe-array-concat@npm:^1.1.3": version: 1.1.3 resolution: "safe-array-concat@npm:1.1.3" @@ -16956,7 +16854,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^6.2.0, semver@npm:^6.3.0, semver@npm:^6.3.1": +"semver@npm:^6.3.0, semver@npm:^6.3.1": version: 6.3.1 resolution: "semver@npm:6.3.1" bin: @@ -16965,7 +16863,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.1.3, semver@npm:^7.2.1, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0, semver@npm:^7.6.3": +"semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.2.1, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0, semver@npm:^7.6.3": version: 7.6.3 resolution: "semver@npm:7.6.3" bin: @@ -16974,6 +16872,15 @@ __metadata: languageName: node linkType: hard +"semver@npm:^7.7.1": + version: 7.7.3 + resolution: "semver@npm:7.7.3" + bin: + semver: bin/semver.js + checksum: 10c0/4afe5c986567db82f44c8c6faef8fe9df2a9b1d98098fc1721f57c696c4c21cebd572f297fc21002f81889492345b8470473bc6f4aff5fb032a6ea59ea2bc45e + languageName: node + linkType: hard + "send@npm:0.19.0": version: 0.19.0 resolution: "send@npm:0.19.0" @@ -17324,17 +17231,6 @@ __metadata: languageName: node linkType: hard -"socks-proxy-agent@npm:^7.0.0": - version: 7.0.0 - resolution: "socks-proxy-agent@npm:7.0.0" - dependencies: - agent-base: "npm:^6.0.2" - debug: "npm:^4.3.3" - socks: "npm:^2.6.2" - checksum: 10c0/b859f7eb8e96ec2c4186beea233ae59c02404094f3eb009946836af27d6e5c1627d1975a69b4d2e20611729ed543b6db3ae8481eb38603433c50d0345c987600 - languageName: node - linkType: hard - "socks-proxy-agent@npm:^8.0.3": version: 8.0.5 resolution: "socks-proxy-agent@npm:8.0.5" @@ -17346,16 +17242,6 @@ __metadata: languageName: node linkType: hard -"socks@npm:^2.6.2": - version: 2.7.1 - resolution: "socks@npm:2.7.1" - dependencies: - ip: "npm:^2.0.0" - smart-buffer: "npm:^4.2.0" - checksum: 10c0/43f69dbc9f34fc8220bc51c6eea1c39715ab3cfdb115d6e3285f6c7d1a603c5c75655668a5bbc11e3c7e2c99d60321fb8d7ab6f38cda6a215fadd0d6d0b52130 - languageName: node - linkType: hard - "socks@npm:^2.8.3": version: 2.8.7 resolution: "socks@npm:2.8.7" @@ -17399,6 +17285,13 @@ __metadata: languageName: node linkType: hard +"space-separated-tokens@npm:^2.0.0": + version: 2.0.2 + resolution: "space-separated-tokens@npm:2.0.2" + checksum: 10c0/6173e1d903dca41dcab6a2deed8b4caf61bd13b6d7af8374713500570aa929ff9414ae09a0519f4f8772df993300305a395d4871f35bc4ca72b6db57e1f30af8 + languageName: node + linkType: hard + "spdx-correct@npm:^3.0.0": version: 3.1.1 resolution: "spdx-correct@npm:3.1.1" @@ -17501,15 +17394,6 @@ __metadata: languageName: node linkType: hard -"ssri@npm:^9.0.0": - version: 9.0.1 - resolution: "ssri@npm:9.0.1" - dependencies: - minipass: "npm:^3.1.1" - checksum: 10c0/c5d153ce03b5980d683ecaa4d805f6a03d8dc545736213803e168a1907650c46c08a4e5ce6d670a0205482b35c35713d9d286d9133bdd79853a406e22ad81f04 - languageName: node - linkType: hard - "stackback@npm:0.0.2": version: 0.0.2 resolution: "stackback@npm:0.0.2" @@ -17866,7 +17750,7 @@ __metadata: languageName: node linkType: hard -"strip-json-comments@npm:^3.1.0, strip-json-comments@npm:^3.1.1, strip-json-comments@npm:~3.1.1": +"strip-json-comments@npm:^3.1.0, strip-json-comments@npm:^3.1.1": version: 3.1.1 resolution: "strip-json-comments@npm:3.1.1" checksum: 10c0/9681a6257b925a7fa0f285851c0e613cc934a50661fa7bb41ca9cbbff89686bb4a0ee366e6ecedc4daafd01e83eee0720111ab294366fe7c185e935475ebcecd @@ -17966,7 +17850,7 @@ __metadata: languageName: node linkType: hard -"tar@npm:6.2.1, tar@npm:^6.0.5, tar@npm:^6.1.11, tar@npm:^6.2.1": +"tar@npm:6.2.1, tar@npm:^6.0.5": version: 6.2.1 resolution: "tar@npm:6.2.1" dependencies: @@ -18619,10 +18503,10 @@ __metadata: languageName: node linkType: hard -"uc.micro@npm:^1.0.1, uc.micro@npm:^1.0.5": - version: 1.0.6 - resolution: "uc.micro@npm:1.0.6" - checksum: 10c0/9bde2afc6f2e24b899db6caea47dae778b88862ca76688d844ef6e6121dec0679c152893a74a6cfbd2e6fde34654e6bd8424fee8e0166cdfa6c9ae5d42b8a17b +"uc.micro@npm:^2.0.0, uc.micro@npm:^2.1.0": + version: 2.1.0 + resolution: "uc.micro@npm:2.1.0" + checksum: 10c0/8862eddb412dda76f15db8ad1c640ccc2f47cdf8252a4a30be908d535602c8d33f9855dfcccb8b8837855c1ce1eaa563f7fa7ebe3c98fd0794351aab9b9c55fa languageName: node linkType: hard @@ -18661,15 +18545,6 @@ __metadata: languageName: node linkType: hard -"unique-filename@npm:^2.0.0": - version: 2.0.1 - resolution: "unique-filename@npm:2.0.1" - dependencies: - unique-slug: "npm:^3.0.0" - checksum: 10c0/55d95cd670c4a86117ebc34d394936d712d43b56db6bc511f9ca00f666373818bf9f075fb0ab76bcbfaf134592ef26bb75aad20786c1ff1ceba4457eaba90fb8 - languageName: node - linkType: hard - "unique-filename@npm:^4.0.0": version: 4.0.0 resolution: "unique-filename@npm:4.0.0" @@ -18679,15 +18554,6 @@ __metadata: languageName: node linkType: hard -"unique-slug@npm:^3.0.0": - version: 3.0.0 - resolution: "unique-slug@npm:3.0.0" - dependencies: - imurmurhash: "npm:^0.1.4" - checksum: 10c0/617240eb921af803b47d322d75a71a363dacf2e56c29ae5d1404fad85f64f4ec81ef10ee4fd79215d0202cbe1e5a653edb0558d59c9c81d3bd538c2d58e4c026 - languageName: node - linkType: hard - "unique-slug@npm:^5.0.0": version: 5.0.0 resolution: "unique-slug@npm:5.0.0" @@ -18697,42 +18563,42 @@ __metadata: languageName: node linkType: hard -"unist-util-is@npm:^5.0.0": - version: 5.2.1 - resolution: "unist-util-is@npm:5.2.1" +"unist-util-is@npm:^6.0.0": + version: 6.0.1 + resolution: "unist-util-is@npm:6.0.1" dependencies: - "@types/unist": "npm:^2.0.0" - checksum: 10c0/a2376910b832bb10653d2167c3cd85b3610a5fd53f5169834c08b3c3a720fae9043d75ad32d727eedfc611491966c26a9501d428ec62467edc17f270feb5410b + "@types/unist": "npm:^3.0.0" + checksum: 10c0/5a487d390193811d37a68264e204dbc7c15c40b8fc29b5515a535d921d071134f571d7b5cbd59bcd58d5ce1c0ab08f20fc4a1f0df2287a249c979267fc32ce06 languageName: node linkType: hard -"unist-util-stringify-position@npm:^3.0.0": - version: 3.0.3 - resolution: "unist-util-stringify-position@npm:3.0.3" +"unist-util-stringify-position@npm:^4.0.0": + version: 4.0.0 + resolution: "unist-util-stringify-position@npm:4.0.0" dependencies: - "@types/unist": "npm:^2.0.0" - checksum: 10c0/14550027825230528f6437dad7f2579a841780318569851291be6c8a970bae6f65a7feb24dabbcfce0e5e68cacae85bf12cbda3f360f7c873b4db602bdf7bb21 + "@types/unist": "npm:^3.0.0" + checksum: 10c0/dfe1dbe79ba31f589108cb35e523f14029b6675d741a79dea7e5f3d098785045d556d5650ec6a8338af11e9e78d2a30df12b1ee86529cded1098da3f17ee999e languageName: node linkType: hard -"unist-util-visit-parents@npm:^5.1.1": - version: 5.1.3 - resolution: "unist-util-visit-parents@npm:5.1.3" +"unist-util-visit-parents@npm:^6.0.0": + version: 6.0.2 + resolution: "unist-util-visit-parents@npm:6.0.2" dependencies: - "@types/unist": "npm:^2.0.0" - unist-util-is: "npm:^5.0.0" - checksum: 10c0/f6829bfd8f2eddf63a32e2c302cd50978ef0c194b792c6fe60c2b71dfd7232415a3c5941903972543e9d34e6a8ea69dee9ccd95811f4a795495ed2ae855d28d0 + "@types/unist": "npm:^3.0.0" + unist-util-is: "npm:^6.0.0" + checksum: 10c0/f1e4019dbd930301825895e3737b1ee0cd682f7622ddd915062135cbb39f8c090aaece3a3b5eae1f2ea52ec33f0931abb8f8a8b5c48a511a4203e3d360a8cd49 languageName: node linkType: hard -"unist-util-visit@npm:^4.1.2": - version: 4.1.2 - resolution: "unist-util-visit@npm:4.1.2" +"unist-util-visit@npm:^5.0.0": + version: 5.0.0 + resolution: "unist-util-visit@npm:5.0.0" dependencies: - "@types/unist": "npm:^2.0.0" - unist-util-is: "npm:^5.0.0" - unist-util-visit-parents: "npm:^5.1.1" - checksum: 10c0/56a1f49a4d8e321e75b3c7821d540a45165a031dd06324bb0e8c75e7737bc8d73bdddbf0b0ca82000f9708a4c36861c6ebe88d01f7cf00e925f5d75f13a3a017 + "@types/unist": "npm:^3.0.0" + unist-util-is: "npm:^6.0.0" + unist-util-visit-parents: "npm:^6.0.0" + checksum: 10c0/51434a1d80252c1540cce6271a90fd1a106dbe624997c09ed8879279667fb0b2d3a685e02e92bf66598dcbe6cdffa7a5f5fb363af8fdf90dda6c855449ae39a5 languageName: node linkType: hard @@ -18876,20 +18742,6 @@ __metadata: languageName: node linkType: hard -"uvu@npm:^0.5.0": - version: 0.5.6 - resolution: "uvu@npm:0.5.6" - dependencies: - dequal: "npm:^2.0.0" - diff: "npm:^5.0.0" - kleur: "npm:^4.0.3" - sade: "npm:^1.7.3" - bin: - uvu: bin.js - checksum: 10c0/ad32eb5f7d94bdeb71f80d073003f0138e24f61ed68cecc8e15d2f30838f44c9670577bb1775c8fac894bf93d1bc1583d470a9195e49bfa6efa14cc6f4942bff - languageName: node - linkType: hard - "validate-npm-package-license@npm:3.0.4, validate-npm-package-license@npm:^3.0.1, validate-npm-package-license@npm:^3.0.4": version: 3.0.4 resolution: "validate-npm-package-license@npm:3.0.4" @@ -18921,6 +18773,36 @@ __metadata: languageName: node linkType: hard +"vfile-location@npm:^5.0.0": + version: 5.0.3 + resolution: "vfile-location@npm:5.0.3" + dependencies: + "@types/unist": "npm:^3.0.0" + vfile: "npm:^6.0.0" + checksum: 10c0/1711f67802a5bc175ea69750d59863343ed43d1b1bb25c0a9063e4c70595e673e53e2ed5cdbb6dcdc370059b31605144d95e8c061b9361bcc2b036b8f63a4966 + languageName: node + linkType: hard + +"vfile-message@npm:^4.0.0": + version: 4.0.3 + resolution: "vfile-message@npm:4.0.3" + dependencies: + "@types/unist": "npm:^3.0.0" + unist-util-stringify-position: "npm:^4.0.0" + checksum: 10c0/33d9f219610d27987689bb14fa5573d2daa146941d1a05416dd7702c4215b23f44ed81d059e70d0e4e24f9a57d5f4dc9f18d35a993f04cf9446a7abe6d72d0c0 + languageName: node + linkType: hard + +"vfile@npm:^6.0.0": + version: 6.0.3 + resolution: "vfile@npm:6.0.3" + dependencies: + "@types/unist": "npm:^3.0.0" + vfile-message: "npm:^4.0.0" + checksum: 10c0/e5d9eb4810623f23758cfc2205323e33552fb5972e5c2e6587babe08fe4d24859866277404fb9e2a20afb71013860d96ec806cb257536ae463c87d70022ab9ef + languageName: node + linkType: hard + "vite-node@npm:3.1.3": version: 3.1.3 resolution: "vite-node@npm:3.1.3" @@ -19144,13 +19026,20 @@ __metadata: languageName: node linkType: hard -"vscode-uri@npm:^3.0.3, vscode-uri@npm:^3.0.7": +"vscode-uri@npm:^3.0.3": version: 3.0.7 resolution: "vscode-uri@npm:3.0.7" checksum: 10c0/67bc15bc9c9bd2d70dae8b27f2a3164281c6ee8f6484e6c5945a44d89871da93d52f2ba339ebc12ab0c10991d4576171b5d85e49a542454329c16faf977e4c59 languageName: node linkType: hard +"vscode-uri@npm:^3.0.8": + version: 3.1.0 + resolution: "vscode-uri@npm:3.1.0" + checksum: 10c0/5f6c9c10fd9b1664d71fab4e9fbbae6be93c7f75bb3a1d9d74399a88ab8649e99691223fd7cef4644376cac6e94fa2c086d802521b9a8e31c5af3e60f0f35624 + languageName: node + linkType: hard + "walk-up-path@npm:^4.0.0": version: 4.0.0 resolution: "walk-up-path@npm:4.0.0" @@ -19186,6 +19075,13 @@ __metadata: languageName: node linkType: hard +"web-namespaces@npm:^2.0.0": + version: 2.0.1 + resolution: "web-namespaces@npm:2.0.1" + checksum: 10c0/df245f466ad83bd5cd80bfffc1674c7f64b7b84d1de0e4d2c0934fb0782e0a599164e7197a4bce310ee3342fd61817b8047ff04f076a1ce12dd470584142a4bd + languageName: node + linkType: hard + "webidl-conversions@npm:^3.0.0": version: 3.0.1 resolution: "webidl-conversions@npm:3.0.1" @@ -19652,13 +19548,6 @@ __metadata: languageName: node linkType: hard -"xmlbuilder@npm:^9.0.7": - version: 9.0.7 - resolution: "xmlbuilder@npm:9.0.7" - checksum: 10c0/aa3c644a13e561abd50e4971ab6963261de703cc0405994777db9129c40d76dba9c0a2c6fa04a7de474a8428f7b329e6f85fcf84990f9cb4ceb2c345a57a4eef - languageName: node - linkType: hard - "xtend@npm:^4.0.0, xtend@npm:~4.0.1": version: 4.0.2 resolution: "xtend@npm:4.0.2" @@ -19741,7 +19630,7 @@ __metadata: languageName: node linkType: hard -"yaml@npm:^2.6.0": +"yaml@npm:^2.4.5, yaml@npm:^2.6.0": version: 2.8.1 resolution: "yaml@npm:2.8.1" bin: @@ -19771,6 +19660,13 @@ __metadata: languageName: node linkType: hard +"yargs-parser@npm:^22.0.0": + version: 22.0.0 + resolution: "yargs-parser@npm:22.0.0" + checksum: 10c0/cb7ef81759c4271cb1d96b9351dbbc9a9ce35d3e1122d2b739bf6c432603824fa02c67cc12dcef6ea80283379d63495686e8f41cc7b06c6576e792aba4d33e1c + languageName: node + linkType: hard + "yargs@npm:17.7.2, yargs@npm:^17.7.2": version: 17.7.2 resolution: "yargs@npm:17.7.2" From 2c3fe4f432224f9e071a197584915a0bc5651ed9 Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Wed, 26 Nov 2025 16:37:25 -0800 Subject: [PATCH 07/62] ci fixups --- .github/workflows/ci.yml | 32 +++++++------------------------- 1 file changed, 7 insertions(+), 25 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2396c15894..c70e383850 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,21 +17,15 @@ jobs: - name: Configure git run: git config --global core.autocrlf input + - name: Checkout code + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + - name: Setup Node.js uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: node-version-file: .nvmrc # cache: yarn - # TODO(Forge 8): remove this once we can upgrade to `@electron/rebuild` v4 - - name: Set up Python 3.11 (with distutils) - uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0 - with: - python-version: 3.11 - - - name: Checkout code - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - name: Install dependencies run: yarn install --immutable @@ -79,15 +73,9 @@ jobs: - name: Setup Node.js uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: - node-version: ${{ env.NODE_VERSION }} + node-version-file: .nvmrc # cache: yarn - # TODO(Forge 8): remove this once we can upgrade to `@electron/rebuild` v4 - - name: Set up Python 3.11 (with distutils) - uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0 - with: - python-version: 3.11 - - name: Checkout code uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 @@ -152,21 +140,15 @@ jobs: - name: Configure git run: git config --global core.autocrlf input + - name: Checkout code + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + - name: Setup Node.js uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: node-version-file: .nvmrc # cache: yarn - # TODO(Forge 8): remove this once we can upgrade to `@electron/rebuild` v4 - - name: Set up Python 3.11 (with distutils) - uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0 - with: - python-version: 3.11 - - - name: Checkout code - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - name: Install dependencies run: yarn install --immutable From a376e1ef597e30e4d086104fbfb0d8cbafdac9d0 Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Mon, 1 Dec 2025 16:27:51 -0800 Subject: [PATCH 08/62] fix findConfig tests --- package.json | 11 +- packages/api/cli/spec/cli.slow.spec.ts | 2 +- packages/api/core/README.md | 2 +- packages/api/core/helper/dynamic-import.d.ts | 3 - packages/api/core/helper/dynamic-import.js | 23 --- packages/api/core/package.json | 8 +- .../api/core/spec/fast/find-template.spec.ts | 2 +- packages/api/core/spec/fast/make.spec.ts | 2 +- packages/api/core/spec/fast/publish.spec.ts | 12 +- packages/api/core/spec/fast/start.spec.ts | 26 +-- .../fast/util/electron-executable.spec.ts | 2 +- .../core/spec/fast/util/forge-config.spec.ts | 108 ++++++----- .../core/spec/fast/util/import-search.spec.ts | 8 +- .../api/core/spec/fast/util/out-dir.spec.ts | 2 +- .../spec/fast/util/read-package-json.spec.ts | 35 ++-- .../core/spec/fast/util/resolve-dir.spec.ts | 17 +- .../fast/util/upgrade-forge-config.spec.ts | 2 +- .../core/spec/fixture/custom_init/index.cjs | 29 +++ .../core/spec/fixture/custom_init/index.js | 29 --- .../spec/fixture/custom_init/package.json | 2 +- .../fixture/dummy_js_conf/{foo.js => foo.cjs} | 0 ...t.config.js => forge.different.config.cjs} | 0 .../spec/fixture/dummy_js_conf/package.json | 5 +- .../fixture/dummy_ts_conf/forge.config.yml | 1 - .../spec/fixture/dummy_ts_conf/package.json | 20 -- packages/api/core/spec/slow/api.slow.spec.ts | 22 ++- packages/api/core/src/api/import.ts | 2 +- .../core/src/api/init-scripts/init-link.ts | 2 +- .../api/core/src/api/init-scripts/init-npm.ts | 2 +- packages/api/core/src/api/init.ts | 2 +- .../api/core/src/util/electron-executable.ts | 23 ++- packages/api/core/src/util/forge-config.ts | 48 ++--- packages/api/core/src/util/import-search.ts | 11 +- packages/maker/appx/spec/MakerAppX.spec.ts | 2 +- packages/maker/deb/spec/MakerDeb.spec.ts | 20 +- packages/maker/deb/src/MakerDeb.ts | 4 +- packages/maker/zip/spec/MakerZip.spec.ts | 41 ++-- packages/maker/zip/src/MakerZIP.ts | 5 +- .../fuses/spec/FusesPlugin.slow.spec.ts | 2 +- packages/plugin/vite/spec/ViteConfig.spec.ts | 2 +- .../vite/spec/config/vite.base.config.spec.ts | 2 +- .../webpack/spec/AssetRelocatorPatch.spec.ts | 10 +- .../plugin/webpack/spec/WebpackConfig.spec.ts | 18 +- .../native-modules/webpack.main.config.js | 2 +- .../native-modules/webpack.renderer.config.js | 2 +- .../{mainConfig.js => mainConfig.cjs} | 0 ...Config.module.js => mainConfig.module.cjs} | 0 packages/template/base/src/BaseTemplate.ts | 9 +- .../spec/ViteTypeScriptTemplate.slow.spec.ts | 4 +- .../src/ViteTypeScriptTemplate.ts | 2 +- .../template/vite-typescript/tmpl/main.ts | 7 +- packages/template/vite/src/ViteTemplate.ts | 4 +- .../spec/WebpackTypeScript.slow.spec.ts | 4 +- .../src/WebpackTypeScriptTemplate.ts | 2 +- .../template/webpack/src/WebpackTemplate.ts | 2 +- .../core-utils/spec/electron-version.spec.ts | 2 +- packages/utils/core-utils/src/rebuild.ts | 2 +- packages/utils/web-multi-logger/src/Logger.ts | 4 +- tools/fix-deps.ts | 2 +- tools/position-docs.ts | 2 +- tools/regenerate-lockfile-fixtures.ts | 10 +- tools/silent.js | 13 -- tools/sync-readmes.ts | 2 +- tools/update-dependencies.js | 183 ------------------ yarn.lock | 96 ++++----- 65 files changed, 344 insertions(+), 579 deletions(-) delete mode 100644 packages/api/core/helper/dynamic-import.d.ts delete mode 100644 packages/api/core/helper/dynamic-import.js create mode 100644 packages/api/core/spec/fixture/custom_init/index.cjs rename packages/api/core/spec/fixture/dummy_js_conf/{foo.js => foo.cjs} (100%) rename packages/api/core/spec/fixture/dummy_js_conf/{forge.different.config.js => forge.different.config.cjs} (100%) delete mode 100644 packages/api/core/spec/fixture/dummy_ts_conf/forge.config.yml delete mode 100644 packages/api/core/spec/fixture/dummy_ts_conf/package.json rename packages/plugin/webpack/spec/fixtures/main_config_external/{mainConfig.js => mainConfig.cjs} (100%) rename packages/plugin/webpack/spec/fixtures/main_config_external/{mainConfig.module.js => mainConfig.module.cjs} (100%) delete mode 100644 tools/silent.js delete mode 100755 tools/update-dependencies.js diff --git a/package.json b/package.json index 10e5a38e98..05017ea7f4 100644 --- a/package.json +++ b/package.json @@ -56,14 +56,11 @@ "global-dirs": "^3.0.0", "got": "^14.0.0", "html-webpack-plugin": "^5.5.3", - "interpret": "^3.1.1", "jiti": "^2.4.2", "listr2": "^7.0.2", - "lodash": "^4.17.20", "log-symbols": "^4.0.0", "mime-types": "^2.1.25", "parse-author": "^2.0.0", - "rechoir": "^0.8.0", "semver": "^7.2.1", "source-map-support": "^0.5.13", "tsx": "^4.20.6", @@ -82,6 +79,7 @@ "@electron/lint-roller": "3.1.3", "@tsconfig/node22": "^22.0.5", "@types/cross-spawn": "^6.0.1", + "@types/cross-zip": "^4.0.2", "@types/debug": "^4.1.12", "@types/express": "^4.17.9", "@types/express-ws": "^3.0.0", @@ -89,11 +87,10 @@ "@types/interpret": "^1.1.1", "@types/keyv": "^3.1.4", "@types/listr": "^0.14.2", - "@types/lodash": "^4.14.166", + "@types/lodash-es": "^4.17.12", "@types/mime-types": "^2.1.0", "@types/minimist": "^1.2.0", "@types/node": "~22.10.7", - "@types/rechoir": "^0.6.1", "@types/semver": "^7.3.4", "@types/which": "^2.0.0", "@typescript-eslint/eslint-plugin": "^8.0.0", @@ -111,14 +108,14 @@ "inquirer": "^8.0.0", "lerna": "^9.0.0", "lint-staged": "^12.1.7", + "lodash-es": "^4.17.21", "minimist": "^1.2.6", "msw": "^2.7.0", "prettier": "^3.6.2", "typedoc": "0.25.13", "typescript": "5.9.3", "vitest": "^3.1.3", - "xvfb-maybe": "^0.2.1", - "yaml-hook": "^1.0.0" + "xvfb-maybe": "^0.2.1" }, "optionalDependencies": { "@malept/electron-installer-flatpak": "^0.11.4", diff --git a/packages/api/cli/spec/cli.slow.spec.ts b/packages/api/cli/spec/cli.slow.spec.ts index 335d62301a..f6de4062f3 100644 --- a/packages/api/cli/spec/cli.slow.spec.ts +++ b/packages/api/cli/spec/cli.slow.spec.ts @@ -6,7 +6,7 @@ import { describe, expect, it } from 'vitest'; function runForgeCLI(...extraArgs: string[]): Promise { const args = [ 'ts-node', - path.resolve(__dirname, '../src/electron-forge.ts'), + path.resolve(import.meta.dirname, '../src/electron-forge.ts'), ...extraArgs, ]; return spawn('npx', args); diff --git a/packages/api/core/README.md b/packages/api/core/README.md index c93e5a8c3d..8bff6ec21a 100644 --- a/packages/api/core/README.md +++ b/packages/api/core/README.md @@ -9,7 +9,7 @@ API as a number of simple JS functions. import { api } from '@electron-forge/core'; // Package the current directory as an Electron app -api.package(__dirname); +api.package(import.meta.dirname); ``` The named export `api` has it's methods documented over at [ForgeAPI](https://js.electronforge.io/classes/_electron_forge_core.ForgeAPI.html). diff --git a/packages/api/core/helper/dynamic-import.d.ts b/packages/api/core/helper/dynamic-import.d.ts deleted file mode 100644 index 4d25e1299a..0000000000 --- a/packages/api/core/helper/dynamic-import.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export declare function dynamicImport(path: string): Promise; -/** Like {@link dynamicImport()}, except it tries out {@link require()} first. */ -export declare function dynamicImportMaybe(path: string): Promise; diff --git a/packages/api/core/helper/dynamic-import.js b/packages/api/core/helper/dynamic-import.js deleted file mode 100644 index fd4fadfb1f..0000000000 --- a/packages/api/core/helper/dynamic-import.js +++ /dev/null @@ -1,23 +0,0 @@ -const url = require('url'); -const fs = require('fs'); - -exports.dynamicImport = async function dynamicImport(path) { - try { - return await import(fs.existsSync(path) ? url.pathToFileURL(path) : path); - } catch (error) { - return Promise.reject(error); - } -}; - -exports.dynamicImportMaybe = async function dynamicImportMaybe(path) { - try { - return require(path); - } catch (e1) { - try { - return await exports.dynamicImport(path); - } catch (e2) { - e1.message = '\n1. ' + e1.message + '\n2. ' + e2.message; - throw e1; - } - } -}; diff --git a/packages/api/core/package.json b/packages/api/core/package.json index 84654f9d13..7f70c71a58 100644 --- a/packages/api/core/package.json +++ b/packages/api/core/package.json @@ -22,11 +22,9 @@ "@electron-forge/test-utils": "workspace:*", "@types/interpret": "^1.1.1", "@types/progress": "^2.0.5", - "@types/rechoir": "^0.6.1", "electron-forge-template-fixture-two": "link:./spec/fixture/electron-forge-template-fixture", "electron-installer-common": "^0.10.2", - "vitest": "^3.1.3", - "yaml-hook": "^1.0.0" + "vitest": "^3.1.3" }, "dependencies": { "@electron-forge/core-utils": "workspace:*", @@ -53,12 +51,10 @@ "fs-extra": "^10.0.0", "global-dirs": "^3.0.0", "got": "^14.0.0", - "interpret": "^3.1.1", "jiti": "^2.4.2", "listr2": "^7.0.2", - "lodash": "^4.17.20", + "lodash-es": "^4.17.21", "log-symbols": "^4.0.0", - "rechoir": "^0.8.0", "semver": "^7.2.1", "source-map-support": "^0.5.13", "username": "^5.1.0" diff --git a/packages/api/core/spec/fast/find-template.spec.ts b/packages/api/core/spec/fast/find-template.spec.ts index a1d0eb8921..77784f84fb 100644 --- a/packages/api/core/spec/fast/find-template.spec.ts +++ b/packages/api/core/spec/fast/find-template.spec.ts @@ -57,7 +57,7 @@ describe('findTemplate', () => { binaries: '', prefix: '', packages: path.resolve( - __dirname, + import.meta.dirname, '..', 'fixture', 'global-stub', diff --git a/packages/api/core/spec/fast/make.spec.ts b/packages/api/core/spec/fast/make.spec.ts index a3934737b2..519f4e695b 100644 --- a/packages/api/core/spec/fast/make.spec.ts +++ b/packages/api/core/spec/fast/make.spec.ts @@ -13,7 +13,7 @@ vi.mock(import('@electron-forge/core-utils'), async (importOriginal) => { }); describe('make', () => { - const fixtureDir = path.resolve(__dirname, '../fixture'); + const fixtureDir = path.resolve(import.meta.dirname, '../fixture'); it.todo('should call "package"'); diff --git a/packages/api/core/spec/fast/publish.spec.ts b/packages/api/core/spec/fast/publish.spec.ts index 0e50187da9..d5c714efa7 100644 --- a/packages/api/core/spec/fast/publish.spec.ts +++ b/packages/api/core/spec/fast/publish.spec.ts @@ -48,7 +48,7 @@ vi.mock(import('../../src/util/import-search'), async (importOriginal) => { describe('publish', () => { it('calls "make"', async () => { await publish({ - dir: __dirname, + dir: import.meta.dirname, interactive: false, }); expect(vi.mocked(listrMake)).toHaveBeenCalledOnce(); @@ -80,7 +80,7 @@ describe('publish', () => { }); await publish({ - dir: __dirname, + dir: import.meta.dirname, interactive: false, }); @@ -110,7 +110,7 @@ describe('publish', () => { ); await publish({ - dir: __dirname, + dir: import.meta.dirname, interactive: false, publishTargets: [new MockPublisher()], }); @@ -135,7 +135,7 @@ describe('publish', () => { vi.mocked(importSearch).mockResolvedValue(MockPublisher); await publish({ - dir: __dirname, + dir: import.meta.dirname, interactive: false, }); @@ -173,7 +173,7 @@ describe('publish', () => { it('dryRun creates hash JSON files', async () => { await publish({ - dir: __dirname, + dir: import.meta.dirname, outDir: tmpDir, interactive: false, dryRun: true, @@ -204,7 +204,7 @@ describe('publish', () => { MockPublisher.prototype.__isElectronForgePublisher = true; await publish({ - dir: __dirname, + dir: import.meta.dirname, outDir: tmpDir, interactive: false, dryRunResume: true, diff --git a/packages/api/core/spec/fast/start.spec.ts b/packages/api/core/spec/fast/start.spec.ts index 6fecfe2ca2..2096eb8947 100644 --- a/packages/api/core/spec/fast/start.spec.ts +++ b/packages/api/core/spec/fast/start.spec.ts @@ -73,7 +73,7 @@ vi.mock(import('../../src/util/hook'), async (importOriginal) => { describe('start', () => { it('spawns electron in the correct dir', async () => { await start({ - dir: __dirname, + dir: import.meta.dirname, interactive: false, }); expect(vi.mocked(spawn)).toHaveBeenCalledOnce(); @@ -98,7 +98,7 @@ describe('start', () => { } as any); await start({ - dir: __dirname, + dir: import.meta.dirname, interactive: false, }); @@ -107,7 +107,7 @@ describe('start', () => { it("should pass electron '.' as the app path if not specified", async () => { await start({ - dir: __dirname, + dir: import.meta.dirname, interactive: false, }); expect(vi.mocked(spawn)).toHaveBeenCalledOnce(); @@ -118,7 +118,7 @@ describe('start', () => { it('should pass electron the app path if specified', async () => { await start({ - dir: __dirname, + dir: import.meta.dirname, interactive: false, appPath: './path/to/app.js', }); @@ -133,7 +133,7 @@ describe('start', () => { it('should enable electron logging if enableLogging=true', async () => { await start({ - dir: __dirname, + dir: import.meta.dirname, interactive: false, enableLogging: true, }); @@ -146,7 +146,7 @@ describe('start', () => { it('should enable RUN_AS_NODE if runAsNode=true', async () => { await start({ - dir: __dirname, + dir: import.meta.dirname, interactive: false, runAsNode: true, }); @@ -159,7 +159,7 @@ describe('start', () => { it('should disable RUN_AS_NODE if runAsNode=false', async () => { await start({ - dir: __dirname, + dir: import.meta.dirname, interactive: false, runAsNode: false, }); @@ -173,7 +173,7 @@ describe('start', () => { const args = ['magic_arg', 123, 'thingy']; await start({ args, - dir: __dirname, + dir: import.meta.dirname, interactive: false, }); expect(vi.mocked(spawn)).toHaveBeenCalledOnce(); @@ -184,7 +184,7 @@ describe('start', () => { const args = ['magic_arg', 123, 'thingy']; await start({ args, - dir: __dirname, + dir: import.meta.dirname, interactive: false, inspect: true, }); @@ -200,7 +200,7 @@ describe('start', () => { const args = ['magic_arg', 123, 'thingy']; await start({ args, - dir: __dirname, + dir: import.meta.dirname, interactive: false, inspectBrk: true, }); @@ -217,7 +217,7 @@ describe('start', () => { vi.mocked(spawn).mockResolvedValueOnce(child); await expect( start({ - dir: __dirname, + dir: import.meta.dirname, interactive: false, }), ).resolves.toEqual(child); @@ -227,7 +227,7 @@ describe('start', () => { vi.mocked(resolveDir).mockResolvedValueOnce(null); await expect( start({ - dir: __dirname, + dir: import.meta.dirname, interactive: false, }), ).rejects.toThrowError('Failed to locate startable Electron application'); @@ -237,7 +237,7 @@ describe('start', () => { vi.mocked(readMutatedPackageJson).mockResolvedValueOnce({}); await expect( start({ - dir: __dirname, + dir: import.meta.dirname, interactive: false, }), ).rejects.toThrowError("Please set your application's 'version' in"); diff --git a/packages/api/core/spec/fast/util/electron-executable.spec.ts b/packages/api/core/spec/fast/util/electron-executable.spec.ts index 8cc01070b1..7ad046a7a6 100644 --- a/packages/api/core/spec/fast/util/electron-executable.spec.ts +++ b/packages/api/core/spec/fast/util/electron-executable.spec.ts @@ -5,7 +5,7 @@ import { describe, expect, it } from 'vitest'; import locateElectronExecutable from '../../../src/util/electron-executable'; const fixtureDir = path.resolve( - __dirname, + import.meta.dirname, '..', '..', 'fixture', diff --git a/packages/api/core/spec/fast/util/forge-config.spec.ts b/packages/api/core/spec/fast/util/forge-config.spec.ts index 3e21f559d5..842a288c84 100644 --- a/packages/api/core/spec/fast/util/forge-config.spec.ts +++ b/packages/api/core/spec/fast/util/forge-config.spec.ts @@ -21,7 +21,7 @@ const DEFAULTS = { describe('findConfig', () => { it('falls back to default if no config exists', async () => { const fixturePath = path.resolve( - __dirname, + import.meta.dirname, '../../fixture/no_forge_config', ); const config = await findConfig(fixturePath); @@ -32,7 +32,10 @@ describe('findConfig', () => { }); it('sets a pluginInterface property', async () => { - const fixturePath = path.resolve(__dirname, '../../fixture/dummy_app'); + const fixturePath = path.resolve( + import.meta.dirname, + '../../fixture/dummy_app', + ); const config = await findConfig(fixturePath); expect(config).toEqual( expect.objectContaining({ pluginInterface: expect.objectContaining({}) }), @@ -42,7 +45,7 @@ describe('findConfig', () => { it('should resolve undefined from fromBuildIdentifier if no value is provided', async () => { type ResolveUndefConfig = ResolvedForgeConfig & { topLevelUndef?: string }; const conf = (await findConfig( - path.resolve(__dirname, '../../fixture/dummy_js_conf'), + path.resolve(import.meta.dirname, '../../fixture/dummy_js_conf'), )) as ResolveUndefConfig; expect(conf.topLevelUndef).toEqual(undefined); }); @@ -56,7 +59,7 @@ describe('findConfig', () => { }; }; const conf = (await findConfig( - path.resolve(__dirname, '../../fixture/dummy_js_conf'), + path.resolve(import.meta.dirname, '../../fixture/dummy_js_conf'), )) as NestedConfig; expect(Array.isArray(conf.sub.prop.inArray)).toEqual(true); }); @@ -64,7 +67,7 @@ describe('findConfig', () => { it('should leave regexps intact', async () => { type RegExpConfig = ResolvedForgeConfig & { regexp: RegExp }; const conf = (await findConfig( - path.resolve(__dirname, '../../fixture/dummy_js_conf'), + path.resolve(import.meta.dirname, '../../fixture/dummy_js_conf'), )) as RegExpConfig; expect(conf.regexp).toBeInstanceOf(RegExp); expect(conf.regexp.test('foo')).toEqual(true); @@ -74,11 +77,11 @@ describe('findConfig', () => { describe('from package.json', () => { it('throws if the "config.forge" property is not an object or requirable path', async () => { const fixturePath = path.resolve( - __dirname, + import.meta.dirname, '../../fixture/bad_forge_config', ); const err = - 'Expected packageJSON.config.forge to be an object or point to a requirable JS file'; + 'Expected `config.forge` in package.json to be an object or point to a Forge config file'; await expect(findConfig(fixturePath)).rejects.toThrow(err); }); @@ -87,16 +90,19 @@ describe('findConfig', () => { .spyOn(console, 'error') .mockImplementation(() => undefined); const fixturePath = path.resolve( - __dirname, + import.meta.dirname, '../../fixture/bad_external_forge_config', ); - const err = /Unexpected token/; + const err = /Failed to parse/; await expect(findConfig(fixturePath)).rejects.toThrow(err); spy.mockRestore(); }); it('should resolve the "config.forge" object', async () => { - const fixturePath = path.resolve(__dirname, '../../fixture/dummy_app'); + const fixturePath = path.resolve( + import.meta.dirname, + '../../fixture/dummy_app', + ); const config = await findConfig(fixturePath); expect(config).toEqual({ ...DEFAULTS, @@ -112,7 +118,7 @@ describe('findConfig', () => { describe('from forge.config.js', () => { it('resolves when "config.forge" points to a JS file', async () => { const fixturePath = path.resolve( - __dirname, + import.meta.dirname, '../../fixture/dummy_js_conf', ); const config = await findConfig(fixturePath); @@ -129,7 +135,7 @@ describe('findConfig', () => { it('falls back to forge.config.js if "config.forge" does not exist', async () => { const fixturePath = path.resolve( - __dirname, + import.meta.dirname, '../../fixture/dummy_default_js_conf', ); const conf = await findConfig(fixturePath); @@ -138,7 +144,7 @@ describe('findConfig', () => { it('maintains functions from the JS export', async () => { const fixturePath = path.resolve( - __dirname, + import.meta.dirname, '../../fixture/dummy_js_conf', ); const conf = await findConfig(fixturePath); @@ -150,7 +156,7 @@ describe('findConfig', () => { it('should support async configs', async () => { const fixturePath = path.resolve( - __dirname, + import.meta.dirname, '../../fixture/async_forge_config', ); const config = await findConfig(fixturePath); @@ -172,7 +178,10 @@ describe('findConfig', () => { defaultResolved: boolean; }; const conf = (await findConfig( - path.resolve(__dirname, '../../fixture/dummy_default_esm_conf'), + path.resolve( + import.meta.dirname, + '../../fixture/dummy_default_esm_conf', + ), )) as DefaultResolvedConfig; expect(conf.buildIdentifier).toEqual('esm'); expect(conf.defaultResolved).toEqual(true); @@ -182,7 +191,10 @@ describe('findConfig', () => { describe('proxied objects', () => { it('allows access to built-ins', async () => { // Why: This needs to get refactored anyway. - const fixture = path.resolve(__dirname, '../../fixture/dummy_js_conf'); + const fixture = path.resolve( + import.meta.dirname, + '../../fixture/dummy_js_conf', + ); // eslint-disable-next-line @typescript-eslint/no-explicit-any const conf: any = await findConfig(fixture); expect(conf.packagerConfig.baz.hasOwnProperty).toBeTypeOf('function'); @@ -196,7 +208,7 @@ describe('findConfig', () => { // Why: This needs to get refactored anyway. // eslint-disable-next-line @typescript-eslint/no-explicit-any const conf: any = await findConfig( - path.resolve(__dirname, '../../fixture/dummy_js_conf'), + path.resolve(import.meta.dirname, '../../fixture/dummy_js_conf'), ); expect(conf.packagerConfig.baz.hasOwnProperty).toBeTypeOf('function'); expect(() => { @@ -230,7 +242,7 @@ describe('findConfig', () => { }; }; const conf = (await findConfig( - path.resolve(__dirname, '../../fixture/dummy_js_conf'), + path.resolve(import.meta.dirname, '../../fixture/dummy_js_conf'), )) as MappedConfig; expect(conf.s3.secretAccessKey).toBe(undefined); @@ -246,7 +258,10 @@ describe('findConfig', () => { describe('virtual config', () => { it('should resolve to the virtual config if present', async () => { - const fixture = path.resolve(__dirname, '../../fixture/no_forge_config'); + const fixture = path.resolve( + import.meta.dirname, + '../../fixture/no_forge_config', + ); try { registerForgeConfigForDirectory(fixture, { outDir: 'magic' }); const config = await findConfig(fixture); @@ -261,7 +276,10 @@ describe('findConfig', () => { }); it('should prioritize virtual config over package.json', async () => { - const fixturePath = path.resolve(__dirname, '../../fixture/dummy_app'); + const fixturePath = path.resolve( + import.meta.dirname, + '../../fixture/dummy_app', + ); try { registerForgeConfigForDirectory(fixturePath, { outDir: 'magic' }); const config = await findConfig(fixturePath); @@ -277,7 +295,7 @@ describe('findConfig', () => { it('should prioritize virtual config over forge.config.js', async () => { const fixturePath = path.resolve( - __dirname, + import.meta.dirname, '../../fixture/async_forge_config', ); try { @@ -295,37 +313,28 @@ describe('findConfig', () => { }); describe('alternate config formats', () => { - it('should resolve the yml config from forge.config.yml specified in config.forge', async () => { - const fixturePath = path.resolve( - __dirname, - '../../fixture/dummy_ts_conf', - ); - const conf = await findConfig(fixturePath); - expect(conf.buildIdentifier).toEqual('yml'); - }); - describe('TypeScript', () => { - it('should resolve forge.config.ts', async () => { + it('should resolve a default forge.config.ts file', async () => { const fixturePath = path.resolve( - __dirname, + import.meta.dirname, '../../fixture/dummy_default_ts_conf', ); const conf = await findConfig(fixturePath); expect(conf.buildIdentifier).toEqual('typescript'); }); - it('should resolve forge.config.cts', async () => { + it('should resolve a default forge.config.cts file', async () => { const fixturePath = path.resolve( - __dirname, + import.meta.dirname, '../../fixture/dummy_default_cts_conf', ); const conf = await findConfig(fixturePath); expect(conf.buildIdentifier).toEqual('typescript-commonjs'); }); - it('should resolve forge.config.mts', async () => { + it('should resolve a default forge.config.mts file', async () => { const fixturePath = path.resolve( - __dirname, + import.meta.dirname, '../../fixture/dummy_default_mts_conf', ); const conf = await findConfig(fixturePath); @@ -348,7 +357,7 @@ it('should resolve values fromBuildIdentifier', async () => { }; }; const conf = (await findConfig( - path.resolve(__dirname, '../../fixture/dummy_js_conf'), + path.resolve(import.meta.dirname, '../../fixture/dummy_js_conf'), )) as ResolveBIConfig; expect(conf.topLevelProp).toEqual('foo'); expect(conf.sub).toEqual({ @@ -363,23 +372,32 @@ it('should resolve values fromBuildIdentifier', async () => { describe('forgeConfigIsValidFilePath', () => { it('succeeds for a file extension-less path', async () => { - const fixturePath = path.resolve(__dirname, '../../fixture/dummy_js_conf/'); - await expect( - forgeConfigIsValidFilePath(fixturePath, 'forge.different.config'), - ).resolves.toEqual(true); + const fixturePath = path.resolve( + import.meta.dirname, + '../../fixture/dummy_js_conf/', + ); + expect( + forgeConfigIsValidFilePath(fixturePath, 'forge.different.config.cjs'), + ).toEqual(true); }); it('fails when a file is nonexistent', async () => { - const fixturePath = path.resolve(__dirname, '../../fixture/dummy_js_conf/'); - await expect( + const fixturePath = path.resolve( + import.meta.dirname, + '../../fixture/dummy_js_conf/', + ); + expect( forgeConfigIsValidFilePath(fixturePath, 'forge.nonexistent.config'), - ).resolves.toEqual(false); + ).toEqual(false); }); }); describe('renderConfigTemplate', () => { it('should import a JS file when a string starts with "require:"', () => { - const dir = path.resolve(__dirname, '../../fixture/dummy_js_conf'); + const dir = path.resolve( + import.meta.dirname, + '../../fixture/dummy_js_conf', + ); const config = { foo: 'require:foo', }; diff --git a/packages/api/core/spec/fast/util/import-search.spec.ts b/packages/api/core/spec/fast/util/import-search.spec.ts index 014a00a34a..92c24e56ce 100644 --- a/packages/api/core/spec/fast/util/import-search.spec.ts +++ b/packages/api/core/spec/fast/util/import-search.spec.ts @@ -5,14 +5,14 @@ import importSearch from '../../../src/util/import-search.js'; describe('import-search', () => { it('should resolve null if no file exists', async () => { - const resolved = await importSearch(__dirname, [ + const resolved = await importSearch(import.meta.dirname, [ '../../../src/util/wizard-secrets', ]); expect(resolved).toEqual(null); }); it('should resolve a file if it exists', async () => { - const resolved = await importSearch(__dirname, [ + const resolved = await importSearch(import.meta.dirname, [ '../../../src/util/forge-config', ]); expect(resolved).toEqual(findConfig); @@ -20,7 +20,9 @@ describe('import-search', () => { it('should throw if file exists but fails to load', async () => { await expect( - importSearch(__dirname, ['../../fixture/require-search/throw-error']), + importSearch(import.meta.dirname, [ + '../../fixture/require-search/throw-error', + ]), ).rejects.toThrowError('test'); }); }); diff --git a/packages/api/core/spec/fast/util/out-dir.spec.ts b/packages/api/core/spec/fast/util/out-dir.spec.ts index 39cbf96bb8..eadff35d6a 100644 --- a/packages/api/core/spec/fast/util/out-dir.spec.ts +++ b/packages/api/core/spec/fast/util/out-dir.spec.ts @@ -5,7 +5,7 @@ import { describe, expect, it } from 'vitest'; import getCurrentOutDir from '../../../src/util/out-dir'; -const DIR = __dirname; +const DIR = import.meta.dirname; describe('getCurrentOutDir', () => { it('resolves to the default out directory when nothing extra is declared', () => { diff --git a/packages/api/core/spec/fast/util/read-package-json.spec.ts b/packages/api/core/spec/fast/util/read-package-json.spec.ts index b1362e960f..ad4726e217 100644 --- a/packages/api/core/spec/fast/util/read-package-json.spec.ts +++ b/packages/api/core/spec/fast/util/read-package-json.spec.ts @@ -11,8 +11,9 @@ import { describe('readRawPackageJson', () => { it('should find a package.json file from the given directory', async () => { - const raw = await readRawPackageJson(path.resolve(__dirname, '../../../')); - // eslint-disable-next-line @typescript-eslint/no-require-imports + const raw = await readRawPackageJson( + path.resolve(import.meta.dirname, '../../../'), + ); expect(raw).toEqual(packageJSON); }); }); @@ -20,23 +21,29 @@ describe('readRawPackageJson', () => { describe('readMutatedPackageJson', () => { it('should find a package.json file from the given directory', async () => { expect( - await readMutatedPackageJson(path.resolve(__dirname, '../../../'), { - pluginInterface: { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - triggerMutatingHook: (_hookName: string, pj: any) => - Promise.resolve(pj), - }, - } as unknown as ResolvedForgeConfig), + await readMutatedPackageJson( + path.resolve(import.meta.dirname, '../../../'), + { + pluginInterface: { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + triggerMutatingHook: (_hookName: string, pj: any) => + Promise.resolve(pj), + }, + } as unknown as ResolvedForgeConfig, + ), ).toEqual(packageJSON); }); it('should allow mutations from hooks', async () => { expect( - await readMutatedPackageJson(path.resolve(__dirname, '../../../'), { - pluginInterface: { - triggerMutatingHook: () => Promise.resolve('test_mutation'), - }, - } as unknown as ResolvedForgeConfig), + await readMutatedPackageJson( + path.resolve(import.meta.dirname, '../../../'), + { + pluginInterface: { + triggerMutatingHook: () => Promise.resolve('test_mutation'), + }, + } as unknown as ResolvedForgeConfig, + ), ).toEqual('test_mutation'); }); }); diff --git a/packages/api/core/spec/fast/util/resolve-dir.spec.ts b/packages/api/core/spec/fast/util/resolve-dir.spec.ts index 17cb380f57..41d9eb34eb 100644 --- a/packages/api/core/spec/fast/util/resolve-dir.spec.ts +++ b/packages/api/core/spec/fast/util/resolve-dir.spec.ts @@ -15,7 +15,7 @@ describe('resolve-dir', () => { it('should return a directory if a forge config is found, but no package.json.forge.config', async () => { const dir = path.resolve( - __dirname, + import.meta.dirname, '../../fixture/forge-config-no-package-json-config/', ); const resolved = await resolveDir(dir); @@ -24,12 +24,17 @@ describe('resolve-dir', () => { }); it('should return a directory if it finds a node module', async () => { - const dir = path.resolve(__dirname, '../../fixture/dummy_app/foo'); + const dir = path.resolve( + import.meta.dirname, + '../../fixture/dummy_app/foo', + ); const resolved = await resolveDir(dir); expect(resolved).not.toBeNull(); expect( - await resolveDir(path.resolve(__dirname, '../../fixture/dummy_app/foo')), - ).toEqual(path.resolve(__dirname, '../../fixture/dummy_app')); + await resolveDir( + path.resolve(import.meta.dirname, '../../fixture/dummy_app/foo'), + ), + ).toEqual(path.resolve(import.meta.dirname, '../../fixture/dummy_app')); }); it('should return a directory if it finds a virtual config', async () => { @@ -37,8 +42,8 @@ describe('resolve-dir', () => { registerForgeConfigForDirectory('/foo/var/virtual', {}); expect(await resolveDir('/foo/var/virtual')).not.toEqual(null); expect( - await resolveDir(path.resolve(__dirname, '/foo/var/virtual')), - ).toEqual(path.resolve(__dirname, '/foo/var/virtual')); + await resolveDir(path.resolve(import.meta.dirname, '/foo/var/virtual')), + ).toEqual(path.resolve(import.meta.dirname, '/foo/var/virtual')); } finally { unregisterForgeConfigForDirectory('/foo/var/virtual'); } diff --git a/packages/api/core/spec/fast/util/upgrade-forge-config.spec.ts b/packages/api/core/spec/fast/util/upgrade-forge-config.spec.ts index 70ba9c19bf..e035e66c45 100644 --- a/packages/api/core/spec/fast/util/upgrade-forge-config.spec.ts +++ b/packages/api/core/spec/fast/util/upgrade-forge-config.spec.ts @@ -5,7 +5,7 @@ import { IForgeResolvableMaker, IForgeResolvablePublisher, } from '@electron-forge/shared-types'; -import { merge } from 'lodash'; +import { merge } from 'lodash-es'; import { describe, expect, it } from 'vitest'; import upgradeForgeConfig, { diff --git a/packages/api/core/spec/fixture/custom_init/index.cjs b/packages/api/core/spec/fixture/custom_init/index.cjs new file mode 100644 index 0000000000..f89bf594fa --- /dev/null +++ b/packages/api/core/spec/fixture/custom_init/index.cjs @@ -0,0 +1,29 @@ +const path = require('path'); + +const baseTemplate = require('@electron-forge/template-base').default; +const fs = require('fs-extra'); + +module.exports = { + requiredForgeVersion: '>= 6.0.0-beta.1', + dependencies: [...baseTemplate.dependencies, 'debug'], + devDependencies: [...baseTemplate.devDependencies, 'lodash'], + initializeTemplate: async (directory) => { + const tasks = await baseTemplate.initializeTemplate(directory, {}); + return [ + ...tasks, + { + title: 'Adding custom template files', + task: async () => { + await fs.copy( + path.resolve(import.meta.dirname, 'tmpl', '_bar'), + path.resolve(directory, '.bar'), + ); + await fs.copy( + path.resolve(import.meta.dirname, 'tmpl', 'src'), + path.resolve(directory, 'src'), + ); + }, + }, + ]; + }, +}; diff --git a/packages/api/core/spec/fixture/custom_init/index.js b/packages/api/core/spec/fixture/custom_init/index.js index 16f847f7e0..e69de29bb2 100644 --- a/packages/api/core/spec/fixture/custom_init/index.js +++ b/packages/api/core/spec/fixture/custom_init/index.js @@ -1,29 +0,0 @@ -const path = require('path'); - -const baseTemplate = require('@electron-forge/template-base').default; -const fs = require('fs-extra'); - -module.exports = { - requiredForgeVersion: '>= 6.0.0-beta.1', - dependencies: [...baseTemplate.dependencies, 'debug'], - devDependencies: [...baseTemplate.devDependencies, 'lodash'], - initializeTemplate: async (directory) => { - const tasks = await baseTemplate.initializeTemplate(directory, {}); - return [ - ...tasks, - { - title: 'Adding custom template files', - task: async () => { - await fs.copy( - path.resolve(__dirname, 'tmpl', '_bar'), - path.resolve(directory, '.bar'), - ); - await fs.copy( - path.resolve(__dirname, 'tmpl', 'src'), - path.resolve(directory, 'src'), - ); - }, - }, - ]; - }, -}; diff --git a/packages/api/core/spec/fixture/custom_init/package.json b/packages/api/core/spec/fixture/custom_init/package.json index 6c00e3a5ac..2fd98e0d67 100644 --- a/packages/api/core/spec/fixture/custom_init/package.json +++ b/packages/api/core/spec/fixture/custom_init/package.json @@ -2,7 +2,7 @@ "name": "electron-forge-template-dummy", "version": "1.0.0", "description": "", - "main": "index.js", + "main": "index.cjs", "scripts": { "start": "electron-forge start" }, diff --git a/packages/api/core/spec/fixture/dummy_js_conf/foo.js b/packages/api/core/spec/fixture/dummy_js_conf/foo.cjs similarity index 100% rename from packages/api/core/spec/fixture/dummy_js_conf/foo.js rename to packages/api/core/spec/fixture/dummy_js_conf/foo.cjs diff --git a/packages/api/core/spec/fixture/dummy_js_conf/forge.different.config.js b/packages/api/core/spec/fixture/dummy_js_conf/forge.different.config.cjs similarity index 100% rename from packages/api/core/spec/fixture/dummy_js_conf/forge.different.config.js rename to packages/api/core/spec/fixture/dummy_js_conf/forge.different.config.cjs diff --git a/packages/api/core/spec/fixture/dummy_js_conf/package.json b/packages/api/core/spec/fixture/dummy_js_conf/package.json index 65fa32fe5e..dc65237e5e 100644 --- a/packages/api/core/spec/fixture/dummy_js_conf/package.json +++ b/packages/api/core/spec/fixture/dummy_js_conf/package.json @@ -11,9 +11,10 @@ "author": "", "license": "MIT", "config": { - "forge": "./forge.different.config.js" + "forge": "./forge.different.config.cjs" }, "devDependencies": { - "electron": "99.99.99" + "electron": "99.99.99", + "@electron-forge/core": "9.9.9" } } diff --git a/packages/api/core/spec/fixture/dummy_ts_conf/forge.config.yml b/packages/api/core/spec/fixture/dummy_ts_conf/forge.config.yml deleted file mode 100644 index ee69896efa..0000000000 --- a/packages/api/core/spec/fixture/dummy_ts_conf/forge.config.yml +++ /dev/null @@ -1 +0,0 @@ -buildIdentifier: 'yml' diff --git a/packages/api/core/spec/fixture/dummy_ts_conf/package.json b/packages/api/core/spec/fixture/dummy_ts_conf/package.json deleted file mode 100644 index fe524262eb..0000000000 --- a/packages/api/core/spec/fixture/dummy_ts_conf/package.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "", - "productName": "", - "version": "1.0.0", - "description": "", - "main": "src/index.js", - "scripts": { - "start": "electron-forge start" - }, - "keywords": [], - "author": "", - "license": "MIT", - "config": { - "forge": "./forge.config.yml" - }, - "devDependencies": { - "@electron-forge/shared-types": "*", - "electron": "99.99.99" - } -} diff --git a/packages/api/core/spec/slow/api.slow.spec.ts b/packages/api/core/spec/slow/api.slow.spec.ts index c78ba0406e..c2ab482276 100644 --- a/packages/api/core/spec/slow/api.slow.spec.ts +++ b/packages/api/core/spec/slow/api.slow.spec.ts @@ -230,7 +230,7 @@ describe.each([ describe('init (with custom templater)', () => { beforeInitTest({ - template: path.resolve(__dirname, '../fixture/custom_init'), + template: path.resolve(import.meta.dirname, '../fixture/custom_init'), }); it('should add custom dependencies', async () => { @@ -264,7 +264,7 @@ describe.each([ afterAll(async () => { await fs.promises.rm(dir, { recursive: true, force: true }); execSync('npm unlink -g', { - cwd: path.resolve(__dirname, '../fixture/custom_init'), + cwd: path.resolve(import.meta.dirname, '../fixture/custom_init'), }); }); }); @@ -283,7 +283,7 @@ describe.each([ api.init({ dir, template: path.resolve( - __dirname, + import.meta.dirname, '../fixture/template-sans-forge-version', ), }), @@ -305,7 +305,7 @@ describe.each([ api.init({ dir, template: path.resolve( - __dirname, + import.meta.dirname, '../fixture/template-nonmatching-forge-version', ), }), @@ -396,7 +396,12 @@ describe.each([ }; if (process.platform === 'win32') { await fs.promises.copyFile( - path.join(__dirname, '..', 'fixture', 'bogus-private-key.pvk'), + path.join( + import.meta.dirname, + '..', + 'fixture', + 'bogus-private-key.pvk', + ), path.join(dir, 'default.pvk'), ); devCert = await createDefaultCertificate('CN=Test Author', { @@ -605,6 +610,7 @@ describe.each([ describe('make', () => { it('throws an error when given an unrecognized platform', async () => { + // @ts-expect-error - testing invalid platform handling await expect(api.make({ dir, platform: 'dos' })).rejects.toThrow( /invalid platform/, ); @@ -612,7 +618,7 @@ describe.each([ it("throws an error when the specified maker doesn't support the current platform", async () => { const makerPath = path.resolve( - __dirname, + import.meta.dirname, '../fixture/maker-unsupported', ); await expect( @@ -630,7 +636,7 @@ describe.each([ it("throws an error when the specified maker doesn't implement isSupportedOnCurrentPlatform()", async () => { const makerPath = path.resolve( - __dirname, + import.meta.dirname, '../fixture/maker-incompatible', ); await expect( @@ -653,7 +659,7 @@ describe.each([ overrideTargets: [ { name: path.resolve( - __dirname, + import.meta.dirname, '../fixture/maker-wrong-platform', ), } as IForgeResolvableMaker, diff --git a/packages/api/core/src/api/import.ts b/packages/api/core/src/api/import.ts index 3349b6da27..fd2f2df48c 100644 --- a/packages/api/core/src/api/import.ts +++ b/packages/api/core/src/api/import.ts @@ -15,7 +15,7 @@ import chalk from 'chalk'; import debug from 'debug'; import fs from 'fs-extra'; import { Listr } from 'listr2'; -import { merge } from 'lodash'; +import { merge } from 'lodash-es'; import { DepType, diff --git a/packages/api/core/src/api/init-scripts/init-link.ts b/packages/api/core/src/api/init-scripts/init-link.ts index bd4c7db5f9..f0afbae594 100644 --- a/packages/api/core/src/api/init-scripts/init-link.ts +++ b/packages/api/core/src/api/init-scripts/init-link.ts @@ -28,7 +28,7 @@ export async function initLink( d('Linking forge dependencies'); const packageJson = await readRawPackageJson(dir); const forgeRoot = path.resolve( - __dirname, + import.meta.dirname, '..', '..', '..', diff --git a/packages/api/core/src/api/init-scripts/init-npm.ts b/packages/api/core/src/api/init-scripts/init-npm.ts index 2968b337ad..82e75d216d 100644 --- a/packages/api/core/src/api/init-scripts/init-npm.ts +++ b/packages/api/core/src/api/init-scripts/init-npm.ts @@ -14,7 +14,7 @@ import { const d = debug('electron-forge:init:npm'); const corePackage = fs.readJsonSync( - path.resolve(__dirname, '../../../package.json'), + path.resolve(import.meta.dirname, '../../../package.json'), ); export function siblingDep(name: string): string { diff --git a/packages/api/core/src/api/init.ts b/packages/api/core/src/api/init.ts index fd68e3566c..06641d86cb 100644 --- a/packages/api/core/src/api/init.ts +++ b/packages/api/core/src/api/init.ts @@ -67,7 +67,7 @@ async function validateTemplate( } const forgeVersion = ( - await readRawPackageJson(path.join(__dirname, '..', '..')) + await readRawPackageJson(path.join(import.meta.dirname, '..', '..')) ).version; if (!semver.satisfies(forgeVersion, templateModule.requiredForgeVersion)) { throw new Error( diff --git a/packages/api/core/src/util/electron-executable.ts b/packages/api/core/src/util/electron-executable.ts index 50e75e1b06..97c2669863 100644 --- a/packages/api/core/src/util/electron-executable.ts +++ b/packages/api/core/src/util/electron-executable.ts @@ -5,6 +5,12 @@ import logSymbols from 'log-symbols'; type PackageJSON = Record; +/** + * Importing `electron` from within a Node.js environment (outside of Electron) returns + * the path to the Electron executable. + * + * In Electron Forge 8, we use ESM import to do so but need to use the `default` export for interop reasons. + */ export default async function locateElectronExecutable( dir: string, packageJSON: PackageJSON, @@ -14,20 +20,17 @@ export default async function locateElectronExecutable( packageJSON, ); - // eslint-disable-next-line @typescript-eslint/no-require-imports - let electronExecPath = require( - electronModulePath || path.resolve(dir, 'node_modules/electron'), + const { default: electronExecPath } = await import( + electronModulePath || path.resolve(dir, 'node_modules/electron') ); - if (typeof electronExecPath !== 'string') { + if (typeof electronExecPath === 'string') { + return electronExecPath; + } else { console.warn( logSymbols.warning, - 'Returned Electron executable path is not a string, defaulting to a hardcoded location. Value:', - electronExecPath, + `Returned Electron executable path (${electronExecPath}) is not a string. Defaulting to node_modules/electron.`, ); - // eslint-disable-next-line @typescript-eslint/no-require-imports - electronExecPath = require(path.resolve(dir, 'node_modules/electron')); + return await import(path.resolve(dir, 'node_modules/electron')); } - - return electronExecPath; } diff --git a/packages/api/core/src/util/forge-config.ts b/packages/api/core/src/util/forge-config.ts index 39325525aa..1951c7bfdf 100644 --- a/packages/api/core/src/util/forge-config.ts +++ b/packages/api/core/src/util/forge-config.ts @@ -2,13 +2,8 @@ import path from 'node:path'; import { ForgeConfig, ResolvedForgeConfig } from '@electron-forge/shared-types'; import fs from 'fs-extra'; -import * as interpret from 'interpret'; import { createJiti } from 'jiti'; -import { template } from 'lodash'; -import * as rechoir from 'rechoir'; - -// eslint-disable-next-line n/no-missing-import -import { dynamicImportMaybe } from '../../helper/dynamic-import.js'; +import { template } from 'lodash-es'; import { runMutatingHook } from './hook.js'; import PluginInterface from './plugin-interface.js'; @@ -126,14 +121,14 @@ export function fromBuildIdentifier( }; } -export async function forgeConfigIsValidFilePath( +export function forgeConfigIsValidFilePath( dir: string, forgeConfig: string | ForgeConfig, -): Promise { +): boolean { return ( typeof forgeConfig === 'string' && - ((await fs.pathExists(path.resolve(dir, forgeConfig))) || - fs.pathExists(path.resolve(dir, `${forgeConfig}.js`))) + (fs.existsSync(path.resolve(dir, forgeConfig)) || + fs.existsSync(path.resolve(dir, `${forgeConfig}.js`))) ); } @@ -172,18 +167,9 @@ export default async (dir: string): Promise => { } if (!forgeConfig || typeof forgeConfig === 'string') { - // interpret.extensions doesn't support `.mts` files - for (const extension of [ - '.js', - '.mts', - ...Object.keys(interpret.extensions), - ]) { + for (const extension of ['.js', '.mjs', '.cjs', '.ts', '.mts', '.cts']) { const pathToConfig = path.resolve(dir, `forge.config${extension}`); - if (await fs.pathExists(pathToConfig)) { - // Use rechoir to parse alternative syntaxes (except for TypeScript where we use jiti) - if (!['.cts', '.mts', '.ts'].includes(extension)) { - rechoir.prepare(interpret.extensions, pathToConfig, dir); - } + if (fs.existsSync(pathToConfig)) { forgeConfig = `forge.config${extension}`; break; } @@ -191,20 +177,24 @@ export default async (dir: string): Promise => { } forgeConfig = forgeConfig || ({} as ForgeConfig); - if (await forgeConfigIsValidFilePath(dir, forgeConfig)) { - const forgeConfigPath = path.resolve(dir, forgeConfig as string); + if ( + typeof forgeConfig === 'string' && + forgeConfigIsValidFilePath(dir, forgeConfig) + ) { + const forgeConfigPath = path.resolve(dir, forgeConfig); try { let loadFn; if (['.cts', '.mts', '.ts'].includes(path.extname(forgeConfigPath))) { const jiti = createJiti(__filename); loadFn = jiti.import; - } else { - loadFn = dynamicImportMaybe; } // The loaded "config" could potentially be a static forge config, ESM module or async function - const loaded = (await loadFn(forgeConfigPath)) as MaybeESM< - ForgeConfig | AsyncForgeConfigGenerator - >; + let loaded: MaybeESM; + if (loadFn) { + loaded = await loadFn(forgeConfigPath); + } else { + loaded = await import(forgeConfigPath); + } const maybeForgeConfig = 'default' in loaded ? loaded.default : loaded; forgeConfig = typeof maybeForgeConfig === 'function' @@ -216,7 +206,7 @@ export default async (dir: string): Promise => { } } else if (typeof forgeConfig !== 'object') { throw new Error( - 'Expected packageJSON.config.forge to be an object or point to a requirable JS file', + 'Expected `config.forge` in package.json to be an object or point to a Forge config file', ); } const defaultForgeConfig = { diff --git a/packages/api/core/src/util/import-search.ts b/packages/api/core/src/util/import-search.ts index ee8e975b3e..7d6e8c78cd 100644 --- a/packages/api/core/src/util/import-search.ts +++ b/packages/api/core/src/util/import-search.ts @@ -2,9 +2,6 @@ import path from 'node:path'; import debug from 'debug'; -// eslint-disable-next-line n/no-missing-import -import { dynamicImportMaybe } from '../../helper/dynamic-import.js'; - const d = debug('electron-forge:import-search'); // https://github.com/nodejs/node/blob/da0ede1ad55a502a25b4139f58aab3fb1ee3bf3f/lib/internal/modules/cjs/loader.js#L353-L359 @@ -20,14 +17,14 @@ export async function importSearchRaw( ): Promise { // Attempt to locally short-circuit if we're running from a checkout of forge if ( - __dirname.includes('forge/packages/api/core/') && + import.meta.dirname.includes('forge/packages/api/core/') && paths.length === 1 && paths[0].startsWith('@electron-forge/') ) { const [moduleType, moduleName] = paths[0].split('/')[1].split('-'); try { const localPath = path.resolve( - __dirname, + import.meta.dirname, '..', '..', '..', @@ -36,7 +33,7 @@ export async function importSearchRaw( moduleName, ); d('testing local forge build', { moduleType, moduleName, localPath }); - return await dynamicImportMaybe(localPath); + return await import(localPath); } catch { // Ignore } @@ -52,7 +49,7 @@ export async function importSearchRaw( for (const testPath of testPaths) { try { d('testing', testPath); - return await dynamicImportMaybe(testPath); + return await import(testPath); } catch (err) { if (err instanceof Error) { const requireErr = err as RequireError; diff --git a/packages/maker/appx/spec/MakerAppX.spec.ts b/packages/maker/appx/spec/MakerAppX.spec.ts index 2455e7add7..d3f1c63749 100644 --- a/packages/maker/appx/spec/MakerAppX.spec.ts +++ b/packages/maker/appx/spec/MakerAppX.spec.ts @@ -25,7 +25,7 @@ describe.runIf(process.platform === 'win32')('MakerAppX', function () { def('should create a .pfx file', async () => { await fs.copyFile( path.join( - __dirname, + import.meta.dirname, '../../../api/core/spec/fixture', 'bogus-private-key.pvk', ), diff --git a/packages/maker/deb/spec/MakerDeb.spec.ts b/packages/maker/deb/spec/MakerDeb.spec.ts index 42ea232761..85eb2cede9 100644 --- a/packages/maker/deb/spec/MakerDeb.spec.ts +++ b/packages/maker/deb/spec/MakerDeb.spec.ts @@ -6,23 +6,21 @@ import { describe, expect, it, vi } from 'vitest'; import { debianArch, MakerDeb } from '../src/MakerDeb'; -// eslint-disable-next-line @typescript-eslint/no-require-imports -const installer = require('electron-installer-debian'); +// @ts-expect-error - this package has no types +import installer from 'electron-installer-debian'; type MakeFunction = (opts: Partial) => Promise; const dir = '/my/test/dir/out'; const makeDir = path.resolve('/foo/bar/make'); const appName = 'My Test App'; -const targetArch = process.arch; +const targetArch = process.arch as ForgeArch; const packageJSON = { version: '1.2.3' }; -vi.hoisted(async () => { - const { mockRequire } = await import('@electron-forge/test-utils'); - void mockRequire( - 'electron-installer-debian', - vi.fn().mockResolvedValue({ packagePaths: ['/foo/bar.deb'] }), - ); +vi.mock('electron-installer-debian', () => { + return { + default: vi.fn().mockResolvedValue({ packagePaths: ['/foo/bar.deb'] }), + }; }); describe('MakerDeb', () => { @@ -92,10 +90,6 @@ describe('debianArch', () => { expect(debianArch('x64')).toEqual('amd64'); }); - it('should convert arm to armel', () => { - expect(debianArch('arm')).toEqual('armel'); - }); - it('should convert armv7l to armhf', () => { expect(debianArch('armv7l')).toEqual('armhf'); }); diff --git a/packages/maker/deb/src/MakerDeb.ts b/packages/maker/deb/src/MakerDeb.ts index fc8a5a52d4..fd6ab0a142 100644 --- a/packages/maker/deb/src/MakerDeb.ts +++ b/packages/maker/deb/src/MakerDeb.ts @@ -30,8 +30,8 @@ export default class MakerDeb extends MakerBase { } async make({ dir, makeDir, targetArch }: MakerOptions): Promise { - // eslint-disable-next-line n/no-missing-require - const installer = require('electron-installer-debian'); + // @ts-expect-error: this package has no types + const { default: installer } = await import('electron-installer-debian'); const outDir = path.resolve(makeDir, 'deb', targetArch); diff --git a/packages/maker/zip/spec/MakerZip.spec.ts b/packages/maker/zip/spec/MakerZip.spec.ts index 2573fc8d25..4a655d36b7 100644 --- a/packages/maker/zip/spec/MakerZip.spec.ts +++ b/packages/maker/zip/spec/MakerZip.spec.ts @@ -2,21 +2,23 @@ import os from 'node:os'; import path from 'node:path'; import fs from 'fs-extra'; -import got from 'got'; +import { got } from 'got'; import { describe, expect, it, vi } from 'vitest'; +import { zip } from 'cross-zip'; import { MakerZIP } from '../src/MakerZIP'; +import { ForgeArch } from '@electron-forge/shared-types'; -// eslint-disable-next-line @typescript-eslint/no-require-imports -const { zip } = require('cross-zip'); - -vi.hoisted(async () => { - const { mockRequire } = await import('@electron-forge/test-utils'); - void mockRequire('cross-zip', { - zip: vi.fn().mockImplementation((_zipDir, _zipPath, callback) => { +vi.mock(import('cross-zip'), async (importOriginal) => { + const mod = await importOriginal(); + return { + ...mod, + // We pass the cross-zip functions through util.promisify, so we need to implement + // a dummy callback call so that the promise resolves. + zip: vi.fn().mockImplementation((_in, _out, callback) => { callback(); }), - }); + }; }); vi.mock(import('fs-extra'), async (importOriginal) => { @@ -30,26 +32,31 @@ vi.mock(import('fs-extra'), async (importOriginal) => { }; }); +// @ts-expect-error - This mock works but vi.mock isn't happy. vi.mock(import('got'), async (importOriginal) => { const mod = await importOriginal(); return { ...mod, - default: { - ...mod, + got: { + ...mod.got, get: vi.fn(), }, }; }); describe('MakerZip', () => { - const dir = path.resolve(__dirname, 'fixture', 'fake-app'); - const darwinDir = path.resolve(__dirname, 'fixture', 'fake-darwin-app'); + const dir = path.resolve(import.meta.dirname, 'fixture', 'fake-app'); + const darwinDir = path.resolve( + import.meta.dirname, + 'fixture', + 'fake-darwin-app', + ); const makeDir = path.resolve(os.tmpdir(), 'forge-zip-test'); const appName = 'My Test App'; - const targetArch = process.arch; + const targetArch = process.arch as ForgeArch; const packageJSON = { version: '1.2.3' }; - it.each([['win32', 'linux']])( + it.each([['win32', 'linux'] as const])( `should generate a zip file for a %s app`, async (platform) => { const maker = new MakerZIP({}, []); @@ -74,7 +81,7 @@ describe('MakerZip', () => { }, ); - it.each([['darwin', 'mas']])( + it.each([['darwin', 'mas'] as const])( `should generate a zip file for a %s app`, async (platform) => { const maker = new MakerZIP( @@ -112,7 +119,7 @@ describe('MakerZip', () => { ); describe('macUpdateManifestBaseUrl', () => { - it.each([['win32', 'mas', 'linux']])( + it.each([['win32', 'mas', 'linux'] as const])( 'should not make a network request on $platform', async (platform) => { const maker = new MakerZIP( diff --git a/packages/maker/zip/src/MakerZIP.ts b/packages/maker/zip/src/MakerZIP.ts index b034ab9ff9..6fc38995ad 100644 --- a/packages/maker/zip/src/MakerZIP.ts +++ b/packages/maker/zip/src/MakerZIP.ts @@ -4,7 +4,8 @@ import { promisify } from 'node:util'; import { MakerBase, MakerOptions } from '@electron-forge/maker-base'; import { ForgePlatform } from '@electron-forge/shared-types'; import fs from 'fs-extra'; -import got from 'got'; +import { got } from 'got'; +import { zip } from 'cross-zip'; import { MakerZIPConfig } from './Config.js'; @@ -41,8 +42,6 @@ export default class MakerZIP extends MakerBase { targetArch, targetPlatform, }: MakerOptions): Promise { - const { zip } = require('cross-zip'); - const zipDir = ['darwin', 'mas'].includes(targetPlatform) ? path.resolve(dir, `${appName}.app`) : dir; diff --git a/packages/plugin/fuses/spec/FusesPlugin.slow.spec.ts b/packages/plugin/fuses/spec/FusesPlugin.slow.spec.ts index 8ac310701a..83d3636d3b 100644 --- a/packages/plugin/fuses/spec/FusesPlugin.slow.spec.ts +++ b/packages/plugin/fuses/spec/FusesPlugin.slow.spec.ts @@ -8,7 +8,7 @@ import packageAPI from '../../../api/core/src/api/package'; import { getElectronExecutablePath } from '../src/util/getElectronExecutablePath'; describe('FusesPlugin', () => { - const appPath = path.join(__dirname, 'fixture'); + const appPath = path.join(import.meta.dirname, 'fixture'); const packageJSON = JSON.parse( fs.readFileSync(path.join(appPath, 'package.json'), { diff --git a/packages/plugin/vite/spec/ViteConfig.spec.ts b/packages/plugin/vite/spec/ViteConfig.spec.ts index 76069df91d..325b5b2b9c 100644 --- a/packages/plugin/vite/spec/ViteConfig.spec.ts +++ b/packages/plugin/vite/spec/ViteConfig.spec.ts @@ -8,7 +8,7 @@ import ViteConfigGenerator from '../src/ViteConfig'; import type { VitePluginConfig } from '../src/Config'; import type { Plugin } from 'vite'; -const configRoot = path.join(__dirname, 'fixtures/vite-configs'); +const configRoot = path.join(import.meta.dirname, 'fixtures/vite-configs'); describe('ViteConfigGenerator', () => { it('getBuildConfigs:main', async () => { diff --git a/packages/plugin/vite/spec/config/vite.base.config.spec.ts b/packages/plugin/vite/spec/config/vite.base.config.spec.ts index ba5d0c087c..436b9f86bd 100644 --- a/packages/plugin/vite/spec/config/vite.base.config.spec.ts +++ b/packages/plugin/vite/spec/config/vite.base.config.spec.ts @@ -11,7 +11,7 @@ import { import type { VitePluginConfig } from '../../src/Config'; -const configRoot = path.join(__dirname, 'fixtures/vite-configs'); +const configRoot = path.join(import.meta.dirname, 'fixtures/vite-configs'); const forgeConfig: VitePluginConfig = { build: [ { diff --git a/packages/plugin/webpack/spec/AssetRelocatorPatch.spec.ts b/packages/plugin/webpack/spec/AssetRelocatorPatch.spec.ts index 57ffaeb574..7484f11beb 100644 --- a/packages/plugin/webpack/spec/AssetRelocatorPatch.spec.ts +++ b/packages/plugin/webpack/spec/AssetRelocatorPatch.spec.ts @@ -22,7 +22,7 @@ let servers: Closeable[] = []; const nativePathSuffix = 'build/Release/hello_world.node'; const fixtureSource = path.join( - __dirname, + import.meta.dirname, 'fixtures', 'apps', 'native-modules', @@ -193,7 +193,7 @@ describe('AssetRelocatorPatch', () => { outDir: mainOut, jsPath: path.join(mainOut, 'index.js'), nativeModulesString: - '__webpack_require__.ab = __dirname + "/native_modules/"', + '__webpack_require__.ab = import.meta.dirname + "/native_modules/"', nativePathString: `require(__webpack_require__.ab + "${nativePathSuffix}")`, }); }); @@ -255,7 +255,7 @@ describe('AssetRelocatorPatch', () => { await expectOutputFileToHaveTheCorrectNativeModulePath({ outDir: mainOut, jsPath: path.join(mainOut, 'index.js'), - nativeModulesString: '.ab=__dirname+"/native_modules/"', + nativeModulesString: '.ab=import.meta.dirname+"/native_modules/"', nativePathString: `.ab+"${nativePathSuffix}"`, }); }); @@ -273,7 +273,7 @@ describe('AssetRelocatorPatch', () => { outDir: rendererOut, jsPath: path.join(rendererOut, 'main_window/preload.js'), nativeModulesString: - '.ab=require("path").resolve(__dirname,"..")+"/native_modules/"', + '.ab=require("path").resolve(import.meta.dirname,"..")+"/native_modules/"', nativePathString: `.ab+"${nativePathSuffix}"`, }); }); @@ -290,7 +290,7 @@ describe('AssetRelocatorPatch', () => { outDir: rendererOut, jsPath: path.join(rendererOut, 'main_window/index.js'), nativeModulesString: - '.ab=require("path").resolve(__dirname,"..")+"/native_modules/"', + '.ab=require("path").resolve(import.meta.dirname,"..")+"/native_modules/"', nativePathString: `.ab+"${nativePathSuffix}"`, }); }); diff --git a/packages/plugin/webpack/spec/WebpackConfig.spec.ts b/packages/plugin/webpack/spec/WebpackConfig.spec.ts index f15d7150d9..17b868beb6 100644 --- a/packages/plugin/webpack/spec/WebpackConfig.spec.ts +++ b/packages/plugin/webpack/spec/WebpackConfig.spec.ts @@ -159,7 +159,7 @@ describe('WebpackConfigGenerator', () => { const defines = generator.getDefines(); expect(defines.HELLO_WEBPACK_ENTRY).toEqual( - "`file://${require('path').resolve(__dirname, '..', 'renderer', 'hello', 'index.js')}`", + "`file://${require('path').resolve(import.meta.dirname, '..', 'renderer', 'hello', 'index.js')}`", ); }); @@ -230,7 +230,7 @@ describe('WebpackConfigGenerator', () => { ); const defines = generator.getDefines(); expect(defines.WINDOW_PRELOAD_WEBPACK_ENTRY).toEqual( - "require('path').resolve(__dirname, '../renderer', 'window', 'preload.js')", + "require('path').resolve(import.meta.dirname, '../renderer', 'window', 'preload.js')", ); }); }); @@ -346,12 +346,15 @@ describe('WebpackConfigGenerator', () => { it('generates a config from a requirable file', async () => { const config = { - mainConfig: 'mainConfig.js', + mainConfig: 'mainConfig.cjs', renderer: { entryPoints: [] as WebpackPluginEntryPoint[], }, } as WebpackPluginConfig; - const baseDir = path.resolve(__dirname, 'fixtures/main_config_external'); + const baseDir = path.resolve( + import.meta.dirname, + 'fixtures/main_config_external', + ); const generator = new WebpackConfigGenerator(config, baseDir, true, 3000); const webpackConfig = await generator.getMainConfig(); expect(webpackConfig.entry).toEqual(path.resolve(baseDir, 'foo/main.js')); @@ -359,12 +362,15 @@ describe('WebpackConfigGenerator', () => { it('generates a config from a requirable transpiled module file', async () => { const config = { - mainConfig: 'mainConfig.module.js', + mainConfig: 'mainConfig.module.cjs', renderer: { entryPoints: [] as WebpackPluginEntryPoint[], }, } as WebpackPluginConfig; - const baseDir = path.resolve(__dirname, 'fixtures/main_config_external'); + const baseDir = path.resolve( + import.meta.dirname, + 'fixtures/main_config_external', + ); const generator = new WebpackConfigGenerator(config, baseDir, true, 3000); const webpackConfig = await generator.getMainConfig(); expect(webpackConfig.entry).toEqual(path.resolve(baseDir, 'foo/main.js')); diff --git a/packages/plugin/webpack/spec/fixtures/apps/native-modules/webpack.main.config.js b/packages/plugin/webpack/spec/fixtures/apps/native-modules/webpack.main.config.js index dd0ed74cba..5c392a874c 100644 --- a/packages/plugin/webpack/spec/fixtures/apps/native-modules/webpack.main.config.js +++ b/packages/plugin/webpack/spec/fixtures/apps/native-modules/webpack.main.config.js @@ -1,5 +1,5 @@ module.exports = { - context: __dirname, + context: import.meta.dirname, entry: './src/index.js', performance: { hints: false, diff --git a/packages/plugin/webpack/spec/fixtures/apps/native-modules/webpack.renderer.config.js b/packages/plugin/webpack/spec/fixtures/apps/native-modules/webpack.renderer.config.js index 891dac3512..8942e56c40 100644 --- a/packages/plugin/webpack/spec/fixtures/apps/native-modules/webpack.renderer.config.js +++ b/packages/plugin/webpack/spec/fixtures/apps/native-modules/webpack.renderer.config.js @@ -1,7 +1,7 @@ const rules = require('./webpack.rules'); module.exports = { - context: __dirname, + context: import.meta.dirname, target: 'electron-renderer', performance: { hints: false, diff --git a/packages/plugin/webpack/spec/fixtures/main_config_external/mainConfig.js b/packages/plugin/webpack/spec/fixtures/main_config_external/mainConfig.cjs similarity index 100% rename from packages/plugin/webpack/spec/fixtures/main_config_external/mainConfig.js rename to packages/plugin/webpack/spec/fixtures/main_config_external/mainConfig.cjs diff --git a/packages/plugin/webpack/spec/fixtures/main_config_external/mainConfig.module.js b/packages/plugin/webpack/spec/fixtures/main_config_external/mainConfig.module.cjs similarity index 100% rename from packages/plugin/webpack/spec/fixtures/main_config_external/mainConfig.module.js rename to packages/plugin/webpack/spec/fixtures/main_config_external/mainConfig.module.cjs diff --git a/packages/template/base/src/BaseTemplate.ts b/packages/template/base/src/BaseTemplate.ts index 6ad7dc7921..535c564b17 100644 --- a/packages/template/base/src/BaseTemplate.ts +++ b/packages/template/base/src/BaseTemplate.ts @@ -12,11 +12,12 @@ import semver from 'semver'; import determineAuthor from './determine-author.js'; -// eslint-disable-next-line @typescript-eslint/no-require-imports -const currentForgeVersion = require('../package.json').version; +const currentForgeVersion = fs.readJSONSync( + path.resolve(import.meta.dirname, '../package.json'), +).version; const d = debug('electron-forge:template:base'); -const tmplDir = path.resolve(__dirname, '../tmpl'); +const tmplDir = path.resolve(import.meta.dirname, '../tmpl'); export class BaseTemplate implements ForgeTemplate { public templateDir = tmplDir; @@ -131,7 +132,7 @@ export class BaseTemplate implements ForgeTemplate { async initializePackageJSON(directory: string): Promise { const packageJSON = await fs.readJson( - path.resolve(__dirname, '../tmpl/package.json'), + path.resolve(import.meta.dirname, '../tmpl/package.json'), ); packageJSON.productName = packageJSON.name = path .basename(directory) diff --git a/packages/template/vite-typescript/spec/ViteTypeScriptTemplate.slow.spec.ts b/packages/template/vite-typescript/spec/ViteTypeScriptTemplate.slow.spec.ts index 79a3e228b5..4128fbba16 100644 --- a/packages/template/vite-typescript/spec/ViteTypeScriptTemplate.slow.spec.ts +++ b/packages/template/vite-typescript/spec/ViteTypeScriptTemplate.slow.spec.ts @@ -33,7 +33,7 @@ describe('ViteTypeScriptTemplate', () => { it('should succeed in initializing the typescript template', async () => { await api.init({ dir, - template: path.resolve(__dirname, '..'), + template: path.resolve(import.meta.dirname, '..'), interactive: false, electronVersion: '38.2.2', }); @@ -93,7 +93,7 @@ describe('ViteTypeScriptTemplate', () => { */ // Copy pre-generated lockfile and update the project name const fixtureLockfile = path.join( - __dirname, + import.meta.dirname, 'fixtures', 'test-yarn.lock', ); diff --git a/packages/template/vite-typescript/src/ViteTypeScriptTemplate.ts b/packages/template/vite-typescript/src/ViteTypeScriptTemplate.ts index 055f968a0f..5803d9193f 100644 --- a/packages/template/vite-typescript/src/ViteTypeScriptTemplate.ts +++ b/packages/template/vite-typescript/src/ViteTypeScriptTemplate.ts @@ -8,7 +8,7 @@ import { BaseTemplate } from '@electron-forge/template-base'; import fs from 'fs-extra'; class ViteTypeScriptTemplate extends BaseTemplate { - public templateDir = path.resolve(__dirname, '..', 'tmpl'); + public templateDir = path.resolve(import.meta.dirname, '..', 'tmpl'); public async initializeTemplate( directory: string, diff --git a/packages/template/vite-typescript/tmpl/main.ts b/packages/template/vite-typescript/tmpl/main.ts index f4f001e6e5..bab316bb4e 100644 --- a/packages/template/vite-typescript/tmpl/main.ts +++ b/packages/template/vite-typescript/tmpl/main.ts @@ -13,7 +13,7 @@ const createWindow = () => { width: 800, height: 600, webPreferences: { - preload: path.join(__dirname, 'preload.js'), + preload: path.join(import.meta.dirname, 'preload.js'), }, }); @@ -22,7 +22,10 @@ const createWindow = () => { mainWindow.loadURL(MAIN_WINDOW_VITE_DEV_SERVER_URL); } else { mainWindow.loadFile( - path.join(__dirname, `../renderer/${MAIN_WINDOW_VITE_NAME}/index.html`), + path.join( + import.meta.dirname, + `../renderer/${MAIN_WINDOW_VITE_NAME}/index.html`, + ), ); } diff --git a/packages/template/vite/src/ViteTemplate.ts b/packages/template/vite/src/ViteTemplate.ts index 62de050271..64642953de 100644 --- a/packages/template/vite/src/ViteTemplate.ts +++ b/packages/template/vite/src/ViteTemplate.ts @@ -8,7 +8,7 @@ import { BaseTemplate } from '@electron-forge/template-base'; import fs from 'fs-extra'; class ViteTemplate extends BaseTemplate { - public templateDir = path.resolve(__dirname, '..', 'tmpl'); + public templateDir = path.resolve(import.meta.dirname, '..', 'tmpl'); public async initializeTemplate( directory: string, @@ -46,7 +46,7 @@ class ViteTemplate extends BaseTemplate { return ` if (MAIN_WINDOW_VITE_DEV_SERVER_URL) { mainWindow.loadURL(MAIN_WINDOW_VITE_DEV_SERVER_URL); } else { - 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\`)); }`; return line; }, diff --git a/packages/template/webpack-typescript/spec/WebpackTypeScript.slow.spec.ts b/packages/template/webpack-typescript/spec/WebpackTypeScript.slow.spec.ts index 700e0ce03a..beb47e0eef 100644 --- a/packages/template/webpack-typescript/spec/WebpackTypeScript.slow.spec.ts +++ b/packages/template/webpack-typescript/spec/WebpackTypeScript.slow.spec.ts @@ -23,7 +23,7 @@ describe('WebpackTypeScriptTemplate', () => { it('should succeed in initializing the typescript template', async () => { await api.init({ dir, - template: path.join(__dirname, '..'), + template: path.join(import.meta.dirname, '..'), interactive: false, electronVersion: '38.2.2', }); @@ -83,7 +83,7 @@ describe('WebpackTypeScriptTemplate', () => { */ // Copy pre-generated lockfile, update the project name, and install with immutable lockfile const fixtureLockfile = path.join( - __dirname, + import.meta.dirname, 'fixtures', 'test-yarn.lock', ); diff --git a/packages/template/webpack-typescript/src/WebpackTypeScriptTemplate.ts b/packages/template/webpack-typescript/src/WebpackTypeScriptTemplate.ts index 433d3f1585..9c1caf6696 100644 --- a/packages/template/webpack-typescript/src/WebpackTypeScriptTemplate.ts +++ b/packages/template/webpack-typescript/src/WebpackTypeScriptTemplate.ts @@ -8,7 +8,7 @@ import { BaseTemplate } from '@electron-forge/template-base'; import fs from 'fs-extra'; class WebpackTypeScriptTemplate extends BaseTemplate { - public templateDir = path.resolve(__dirname, '..', 'tmpl'); + public templateDir = path.resolve(import.meta.dirname, '..', 'tmpl'); async initializeTemplate( directory: string, diff --git a/packages/template/webpack/src/WebpackTemplate.ts b/packages/template/webpack/src/WebpackTemplate.ts index 7d90045bf2..023e20763b 100644 --- a/packages/template/webpack/src/WebpackTemplate.ts +++ b/packages/template/webpack/src/WebpackTemplate.ts @@ -8,7 +8,7 @@ import { BaseTemplate } from '@electron-forge/template-base'; import fs from 'fs-extra'; class WebpackTemplate extends BaseTemplate { - public templateDir = path.resolve(__dirname, '..', 'tmpl'); + public templateDir = path.resolve(import.meta.dirname, '..', 'tmpl'); public async initializeTemplate( directory: string, diff --git a/packages/utils/core-utils/spec/electron-version.spec.ts b/packages/utils/core-utils/spec/electron-version.spec.ts index 1accb0a8c6..c99698c46f 100644 --- a/packages/utils/core-utils/spec/electron-version.spec.ts +++ b/packages/utils/core-utils/spec/electron-version.spec.ts @@ -14,7 +14,7 @@ import { updateElectronDependency, } from '../src/electron-version'; -const fixturePath = path.resolve(__dirname, 'fixture'); +const fixturePath = path.resolve(import.meta.dirname, 'fixture'); describe('updateElectronDependency', () => { it('adds an Electron dep if one does not already exist', () => { diff --git a/packages/utils/core-utils/src/rebuild.ts b/packages/utils/core-utils/src/rebuild.ts index dd659955a4..87b7ac1a1c 100644 --- a/packages/utils/core-utils/src/rebuild.ts +++ b/packages/utils/core-utils/src/rebuild.ts @@ -27,7 +27,7 @@ export const listrCompatibleRebuildHook = async ( }; const child = cp.fork( - path.resolve(__dirname, 'remote-rebuild.js'), + path.resolve(import.meta.dirname, 'remote-rebuild.js'), [JSON.stringify(options)], { stdio: ['pipe', 'pipe', 'pipe', 'ipc'], diff --git a/packages/utils/web-multi-logger/src/Logger.ts b/packages/utils/web-multi-logger/src/Logger.ts index 2ffad31487..90dcd00ae0 100644 --- a/packages/utils/web-multi-logger/src/Logger.ts +++ b/packages/utils/web-multi-logger/src/Logger.ts @@ -37,7 +37,9 @@ export default class Logger { '/xterm', express.static(path.resolve(require.resolve('xterm'), '../..')), ); - this.app.use(express.static(path.resolve(__dirname, '..', 'static'))); + this.app.use( + express.static(path.resolve(import.meta.dirname, '..', 'static')), + ); this.ws.app.ws('/sub', () => { // I assume this endpoint is just a no-op needed for some reason. }); diff --git a/tools/fix-deps.ts b/tools/fix-deps.ts index a1f31e3389..44c7644415 100644 --- a/tools/fix-deps.ts +++ b/tools/fix-deps.ts @@ -8,7 +8,7 @@ import { getPackageInfo } from './utils'; const packages = await getPackageInfo(); const baseJson = await fs.readJson( - path.resolve(__dirname, '..', 'package.json'), + path.resolve(import.meta.dirname, '..', 'package.json'), ); const allDeps = { diff --git a/tools/position-docs.ts b/tools/position-docs.ts index bc895244d0..d63ee00008 100644 --- a/tools/position-docs.ts +++ b/tools/position-docs.ts @@ -5,7 +5,7 @@ import * as fs from 'fs-extra'; import { getPackageInfo } from './utils'; -const DOCS_PATH = path.resolve(__dirname, '..', 'docs'); +const DOCS_PATH = path.resolve(import.meta.dirname, '..', 'docs'); async function normalizeLinks( htmlFile: string, diff --git a/tools/regenerate-lockfile-fixtures.ts b/tools/regenerate-lockfile-fixtures.ts index a8599cc9f4..756fe893a7 100755 --- a/tools/regenerate-lockfile-fixtures.ts +++ b/tools/regenerate-lockfile-fixtures.ts @@ -33,7 +33,7 @@ async function ensureTestDirIsNonexistent(): Promise { async function initForgeProject(dir: string, template: string): Promise { const cliPath = path.resolve( - __dirname, + import.meta.dirname, '..', 'packages', 'api', @@ -72,7 +72,7 @@ async function regenerateWebpackTypescriptLockfile() { try { const template = path.resolve( - __dirname, + import.meta.dirname, '..', 'packages', 'template', @@ -81,7 +81,7 @@ async function regenerateWebpackTypescriptLockfile() { await initForgeProject(dir, template); const fixtureDir = path.resolve( - __dirname, + import.meta.dirname, '..', 'packages', 'template', @@ -111,7 +111,7 @@ async function regenerateViteTypescriptLockfile() { try { const template = path.resolve( - __dirname, + import.meta.dirname, '..', 'packages', 'template', @@ -120,7 +120,7 @@ async function regenerateViteTypescriptLockfile() { await initForgeProject(dir, template); const fixtureDir = path.resolve( - __dirname, + import.meta.dirname, '..', 'packages', 'template', diff --git a/tools/silent.js b/tools/silent.js deleted file mode 100644 index 5e8b4bdb55..0000000000 --- a/tools/silent.js +++ /dev/null @@ -1,13 +0,0 @@ -/** - * Silences warnings and other stdio logs produced from commands - * - * It does not silence errors. - */ - -const { spawn } = require('@malept/cross-spawn-promise'); - -const [cmd, ...args] = process.argv.slice(2); - -spawn(cmd, args, { - stdio: 'pipe', -}); diff --git a/tools/sync-readmes.ts b/tools/sync-readmes.ts index ce4fd75e85..102b579291 100644 --- a/tools/sync-readmes.ts +++ b/tools/sync-readmes.ts @@ -18,7 +18,7 @@ const workspaceMappings: { }, }; -const BASE_DIR = path.resolve(__dirname, '..'); +const BASE_DIR = path.resolve(import.meta.dirname, '..'); const DOCS_BASE = 'https://raw.githubusercontent.com/electron-forge/electron-forge-docs/v6'; diff --git a/tools/update-dependencies.js b/tools/update-dependencies.js deleted file mode 100755 index cc0290d45d..0000000000 --- a/tools/update-dependencies.js +++ /dev/null @@ -1,183 +0,0 @@ -#!/usr/bin/env node - -const { spawn } = require('@malept/cross-spawn-promise'); -const glob = require('fast-glob'); -const { satisfies } = require('semver'); - -const DO_NOT_UPGRADE = [ - '@types/node-fetch', // No longer needed when node-fetch is upgraded to >= 3.0.0 - '@typescript-eslint/eslint-plugin', // special case - 'chalk', // Requires ESM - 'commander', // TODO: convert to yargs - 'find-up', // Requires ESM - 'log-symbols', // Requires ESM - 'node-fetch', // Requires ESM - 'ora', // Requires ESM - 'username', // Requires ESM -]; - -/** - * Spawn, but pass through stdio by default. - */ -async function spawnPassthrough(cmd, args, options) { - await spawn(cmd, args, { stdio: 'inherit', ...options }); -} - -async function git(...args) { - await spawnPassthrough('git', args); -} - -async function yarn(...args) { - await spawnPassthrough('yarn', args); -} - -const packageJSON = require(__dirname + '/../package.json'); - -class Package { - constructor(name, currentVersion, wantedVersion, latestVersion, type) { - this.name = name; - this.currentVersion = currentVersion; - this.wantedVersion = wantedVersion; - this.latestVersion = latestVersion; - this.type = type; - } - - get commitType() { - switch (this.type) { - case 'dependencies': - case 'optionalDependencies': - return 'deps'; - case 'devDependencies': - return 'deps-dev'; - default: - return 'deps-unknown'; - } - } - - get commitVersion() { - if (this.isMajorVersionBump()) { - return `^${this.latestVersion}`; - } else if (this.isMinorVersionBump()) { - return `~${this.latestVersion}`; - } else { - return this.latestVersion; - } - } - - get minorVersionLocked() { - return packageJSON[this.type][this.name].startsWith('~'); - } - - isMajorVersionBump() { - return !satisfies(this.latestVersion, `^${this.wantedVersion}`); - } - - isMinorVersionBump() { - return ( - this.minorVersionLocked && - !satisfies(this.latestVersion, `~${this.wantedVersion}`) - ); - } - - async smoketestAndCommit(packageName = null) { - const packageJSONs = await glob('packages/*/*/package.json'); - await yarn('lint'); - await yarn('build'); - await git('add', 'package.json', 'yarn.lock', ...packageJSONs); - await git( - 'commit', - '-m', - `build(${this.commitType}): upgrade ${packageName || this.name} to ${this.commitVersion}`, - ); - } - - async upgrade() { - if (this.isMajorVersionBump() || this.isMinorVersionBump()) { - await this.yarn_upgrade_and_update_packageJSON(); - } else { - await this.yarn_upgrade_in_yarn_lock(); - } - } - - async yarn_upgrade_and_update_packageJSON() { - console.log( - `Upgrading ${this.name} from ${this.wantedVersion} to ^${this.latestVersion} (and updating package.json)...`, - ); - await yarn('upgrade', `${this.name}@^${this.latestVersion}`); - } - - async yarn_upgrade_in_yarn_lock() { - console.log( - `Upgrading ${this.name} from ${this.currentVersion} to ${this.latestVersion} in yarn.lock...`, - ); - await yarn('upgrade', this.name); - } -} - -async function main() { - const onlyModules = []; - if (process.argv.length > 2) { - onlyModules.push(...process.argv.slice(2)); - } - try { - await spawn('yarn', ['outdated', '--json']); - console.log('No packages to update.'); - } catch (error) { - const table = JSON.parse(error.stdout.split('\n')[1]); - for (const [ - packageName, - currentVersion, - wantedVersion, - latestVersion, - packageType /*, _url */, - ] of table.data.body) { - if (DO_NOT_UPGRADE.includes(packageName)) { - console.log( - `Skipping "${packageName} from update as it is in the denylist`, - ); - continue; - } - if (onlyModules.length > 0 && !onlyModules.includes(packageName)) { - console.log( - `Skipping "${packageName}" from update as it was not specified on the command line`, - ); - continue; - } - let commitPackageName = null; - const nodePackage = new Package( - packageName, - currentVersion, - wantedVersion, - latestVersion, - packageType, - ); - await nodePackage.upgrade(); - - if (packageName === '@typescript-eslint/parser') { - const eslintPlugin = new Package( - '@typescript-eslint/eslint-plugin', - currentVersion, - wantedVersion, - latestVersion, - packageType, - ); - await eslintPlugin.upgrade(); - commitPackageName = '@typescript-eslint/{parser,eslint-plugin}'; - } - - await nodePackage.smoketestAndCommit(commitPackageName); - } - } - - if (onlyModules.length == 0) { - console.log(`Upgrading transitive dependencies in yarn.lock...`); - await yarn('upgrade'); - await git('add', 'yarn.lock'); - await git('commit', '-m', `build(deps): upgrade transitive dependencies`); - } -} - -main().catch((err) => { - console.error(err); - process.exit(1); -}); diff --git a/yarn.lock b/yarn.lock index ab46c566f5..dd933112ec 100644 --- a/yarn.lock +++ b/yarn.lock @@ -855,7 +855,6 @@ __metadata: "@malept/cross-spawn-promise": "npm:^2.0.0" "@types/interpret": "npm:^1.1.1" "@types/progress": "npm:^2.0.5" - "@types/rechoir": "npm:^0.6.1" "@vscode/sudo-prompt": "npm:^9.3.1" chalk: "npm:^4.0.0" debug: "npm:^4.3.1" @@ -867,17 +866,14 @@ __metadata: fs-extra: "npm:^10.0.0" global-dirs: "npm:^3.0.0" got: "npm:^14.0.0" - interpret: "npm:^3.1.1" jiti: "npm:^2.4.2" listr2: "npm:^7.0.2" - lodash: "npm:^4.17.20" + lodash-es: "npm:^4.17.21" log-symbols: "npm:^4.0.0" - rechoir: "npm:^0.8.0" semver: "npm:^7.2.1" source-map-support: "npm:^0.5.13" username: "npm:^5.1.0" vitest: "npm:^3.1.3" - yaml-hook: "npm:^1.0.0" languageName: unknown linkType: soft @@ -4901,6 +4897,13 @@ __metadata: languageName: node linkType: hard +"@types/cross-zip@npm:^4.0.2": + version: 4.0.2 + resolution: "@types/cross-zip@npm:4.0.2" + checksum: 10c0/8ffc935e6b4164d2c706c0182fd17787fb985933c671d9cced5c3edb28738c3df09c0f2487cc38fa1f1372045558b8f9814b58ab0cee6ecd16eaeb6c8810513e + languageName: node + linkType: hard + "@types/debug@npm:^4.0.0": version: 4.1.8 resolution: "@types/debug@npm:4.1.8" @@ -5037,7 +5040,7 @@ __metadata: languageName: node linkType: hard -"@types/interpret@npm:*, @types/interpret@npm:^1.1.1": +"@types/interpret@npm:^1.1.1": version: 1.1.1 resolution: "@types/interpret@npm:1.1.1" dependencies: @@ -5095,10 +5098,19 @@ __metadata: languageName: node linkType: hard -"@types/lodash@npm:^4.14.166": - version: 4.14.178 - resolution: "@types/lodash@npm:4.14.178" - checksum: 10c0/820e33578a084aba2ca66fc83728c14d82813b91f3f14f281621b36904533c3d1681992b5e2719579b8beb52e1a77cfa914283a145f66dfa71b5e02a7cec5a37 +"@types/lodash-es@npm:^4.17.12": + version: 4.17.12 + resolution: "@types/lodash-es@npm:4.17.12" + dependencies: + "@types/lodash": "npm:*" + checksum: 10c0/5d12d2cede07f07ab067541371ed1b838a33edb3c35cb81b73284e93c6fd0c4bbeaefee984e69294bffb53f62d7272c5d679fdba8e595ff71e11d00f2601dde0 + languageName: node + linkType: hard + +"@types/lodash@npm:*": + version: 4.17.21 + resolution: "@types/lodash@npm:4.17.21" + checksum: 10c0/73cb006e047d8871e9d63f3a165543bf16c44a5b6fe3f9f6299e37cb8d67a7b1d55ac730959a81f9def510fd07232ff7e30e05413e5d5a12793baad84ebe36c3 languageName: node linkType: hard @@ -5226,15 +5238,6 @@ __metadata: languageName: node linkType: hard -"@types/rechoir@npm:^0.6.1": - version: 0.6.1 - resolution: "@types/rechoir@npm:0.6.1" - dependencies: - "@types/interpret": "npm:*" - checksum: 10c0/df324ef37c93a139189e2f7d0edc1b0430e81775da6b211c6cfdb247621fabfb2e979f909bb085f3aef445b675b263af3ea5ec919656b4555b3e51d53a02beb4 - languageName: node - linkType: hard - "@types/request@npm:^2.48.8": version: 2.48.11 resolution: "@types/request@npm:2.48.11" @@ -8218,6 +8221,7 @@ __metadata: "@octokit/types": "npm:^6.1.2" "@tsconfig/node22": "npm:^22.0.5" "@types/cross-spawn": "npm:^6.0.1" + "@types/cross-zip": "npm:^4.0.2" "@types/debug": "npm:^4.1.12" "@types/express": "npm:^4.17.9" "@types/express-ws": "npm:^3.0.0" @@ -8225,11 +8229,10 @@ __metadata: "@types/interpret": "npm:^1.1.1" "@types/keyv": "npm:^3.1.4" "@types/listr": "npm:^0.14.2" - "@types/lodash": "npm:^4.14.166" + "@types/lodash-es": "npm:^4.17.12" "@types/mime-types": "npm:^2.1.0" "@types/minimist": "npm:^1.2.0" "@types/node": "npm:~22.10.7" - "@types/rechoir": "npm:^0.6.1" "@types/semver": "npm:^7.3.4" "@types/which": "npm:^2.0.0" "@typescript-eslint/eslint-plugin": "npm:^8.0.0" @@ -8269,19 +8272,17 @@ __metadata: html-webpack-plugin: "npm:^5.5.3" husky: "npm:^7.0.1" inquirer: "npm:^8.0.0" - interpret: "npm:^3.1.1" jiti: "npm:^2.4.2" lerna: "npm:^9.0.0" lint-staged: "npm:^12.1.7" listr2: "npm:^7.0.2" - lodash: "npm:^4.17.20" + lodash-es: "npm:^4.17.21" log-symbols: "npm:^4.0.0" mime-types: "npm:^2.1.25" minimist: "npm:^1.2.6" msw: "npm:^2.7.0" parse-author: "npm:^2.0.0" prettier: "npm:^3.6.2" - rechoir: "npm:^0.8.0" semver: "npm:^7.2.1" source-map-support: "npm:^0.5.13" tsx: "npm:^4.20.6" @@ -8298,7 +8299,6 @@ __metadata: xterm-addon-fit: "npm:^0.5.0" xterm-addon-search: "npm:^0.8.0" xvfb-maybe: "npm:^0.2.1" - yaml-hook: "npm:^1.0.0" dependenciesMeta: "@bitdisaster/exe-icon-extractor": built: true @@ -11854,13 +11854,6 @@ __metadata: languageName: node linkType: hard -"interpret@npm:^3.1.1": - version: 3.1.1 - resolution: "interpret@npm:3.1.1" - checksum: 10c0/6f3c4d0aa6ec1b43a8862375588a249e3c917739895cbe67fe12f0a76260ea632af51e8e2431b50fbcd0145356dc28ca147be08dbe6a523739fd55c0f91dc2a5 - languageName: node - linkType: hard - "ip-address@npm:^10.0.1": version: 10.0.1 resolution: "ip-address@npm:10.0.1" @@ -12593,7 +12586,7 @@ __metadata: languageName: node linkType: hard -"js-yaml@npm:^3.10.0, js-yaml@npm:^3.12.2, js-yaml@npm:^3.13.1": +"js-yaml@npm:^3.10.0, js-yaml@npm:^3.13.1": version: 3.14.1 resolution: "js-yaml@npm:3.14.1" dependencies: @@ -13150,6 +13143,13 @@ __metadata: languageName: node linkType: hard +"lodash-es@npm:^4.17.21": + version: 4.17.21 + resolution: "lodash-es@npm:4.17.21" + checksum: 10c0/fb407355f7e6cd523a9383e76e6b455321f0f153a6c9625e21a8827d10c54c2a2341bd2ae8d034358b60e07325e1330c14c224ff582d04612a46a4f0479ff2f2 + languageName: node + linkType: hard + "lodash.defaults@npm:^4.2.0": version: 4.2.0 resolution: "lodash.defaults@npm:4.2.0" @@ -15587,13 +15587,6 @@ __metadata: languageName: node linkType: hard -"pirates@npm:^4.0.1": - version: 4.0.5 - resolution: "pirates@npm:4.0.5" - checksum: 10c0/58b6ff0f137a3d70ff34ac4802fd19819cdc19b53e9c95adecae6c7cfc77719a11f561ad85d46e79e520ef57c31145a564c8bc3bee8cfee75d441fab2928a51d - languageName: node - linkType: hard - "pkg-conf@npm:^3.1.0": version: 3.1.0 resolution: "pkg-conf@npm:3.1.0" @@ -16103,15 +16096,6 @@ __metadata: languageName: node linkType: hard -"rechoir@npm:^0.8.0": - version: 0.8.0 - resolution: "rechoir@npm:0.8.0" - dependencies: - resolve: "npm:^1.20.0" - checksum: 10c0/1a30074124a22abbd5d44d802dac26407fa72a0a95f162aa5504ba8246bc5452f8b1a027b154d9bdbabcd8764920ff9333d934c46a8f17479c8912e92332f3ff - languageName: node - linkType: hard - "redent@npm:^3.0.0": version: 3.0.0 resolution: "redent@npm:3.0.0" @@ -16269,7 +16253,7 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.10.0, resolve@npm:^1.20.0, resolve@npm:^1.22.1": +"resolve@npm:^1.10.0, resolve@npm:^1.22.1": version: 1.22.1 resolution: "resolve@npm:1.22.1" dependencies: @@ -16334,7 +16318,7 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@npm%3A^1.10.0#optional!builtin, resolve@patch:resolve@npm%3A^1.20.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.1#optional!builtin": +"resolve@patch:resolve@npm%3A^1.10.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.1#optional!builtin": version: 1.22.1 resolution: "resolve@patch:resolve@npm%3A1.22.1#optional!builtin::version=1.22.1&hash=c3c19d" dependencies: @@ -19613,16 +19597,6 @@ __metadata: languageName: node linkType: hard -"yaml-hook@npm:^1.0.0": - version: 1.0.0 - resolution: "yaml-hook@npm:1.0.0" - dependencies: - js-yaml: "npm:^3.12.2" - pirates: "npm:^4.0.1" - checksum: 10c0/cc4e60e802c32ff961354c1c35ed04f685e1f5e80b52f138f5e82ab4efad5b868e4b9647b87c0125e5411bd0f043bfd620c55ed6ee2914d08bd76188f86e1548 - languageName: node - linkType: hard - "yaml@npm:^1.10.0, yaml@npm:^1.10.2": version: 1.10.2 resolution: "yaml@npm:1.10.2" From dd1d0573f3c800f8550701d2c49f093af60bb5be Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Mon, 1 Dec 2025 17:20:32 -0800 Subject: [PATCH 09/62] remove config templating --- .../core/spec/fast/util/forge-config.spec.ts | 19 --------------- packages/api/core/src/util/forge-config.ts | 23 ------------------- 2 files changed, 42 deletions(-) diff --git a/packages/api/core/spec/fast/util/forge-config.spec.ts b/packages/api/core/spec/fast/util/forge-config.spec.ts index 842a288c84..f803d189ac 100644 --- a/packages/api/core/spec/fast/util/forge-config.spec.ts +++ b/packages/api/core/spec/fast/util/forge-config.spec.ts @@ -6,7 +6,6 @@ import { describe, expect, it, vi } from 'vitest'; import findConfig, { forgeConfigIsValidFilePath, registerForgeConfigForDirectory, - renderConfigTemplate, unregisterForgeConfigForDirectory, } from '../../../src/util/forge-config.js'; @@ -391,21 +390,3 @@ describe('forgeConfigIsValidFilePath', () => { ).toEqual(false); }); }); - -describe('renderConfigTemplate', () => { - it('should import a JS file when a string starts with "require:"', () => { - const dir = path.resolve( - import.meta.dirname, - '../../fixture/dummy_js_conf', - ); - const config = { - foo: 'require:foo', - }; - renderConfigTemplate(dir, {}, config); - expect(config.foo).toEqual({ - bar: { - baz: 'quux', - }, - }); - }); -}); diff --git a/packages/api/core/src/util/forge-config.ts b/packages/api/core/src/util/forge-config.ts index 1951c7bfdf..3778bb09e1 100644 --- a/packages/api/core/src/util/forge-config.ts +++ b/packages/api/core/src/util/forge-config.ts @@ -3,7 +3,6 @@ import path from 'node:path'; import { ForgeConfig, ResolvedForgeConfig } from '@electron-forge/shared-types'; import fs from 'fs-extra'; import { createJiti } from 'jiti'; -import { template } from 'lodash-es'; import { runMutatingHook } from './hook.js'; import PluginInterface from './plugin-interface.js'; @@ -132,25 +131,6 @@ export function forgeConfigIsValidFilePath( ); } -// eslint-disable-next-line @typescript-eslint/no-explicit-any -export function renderConfigTemplate( - dir: string, - templateObj: any, - obj: any, -): void { - for (const [key, value] of Object.entries(obj)) { - if (typeof value === 'object' && value !== null) { - renderConfigTemplate(dir, templateObj, value); - } else if (typeof value === 'string') { - obj[key] = template(value)(templateObj); - if (obj[key].startsWith('require:')) { - // eslint-disable-next-line @typescript-eslint/no-require-imports - obj[key] = require(path.resolve(dir, obj[key].substr(8))); - } - } - } -} - type MaybeESM = T | { default: T }; type AsyncForgeConfigGenerator = () => Promise; @@ -223,9 +203,6 @@ export default async (dir: string): Promise => { pluginInterface: null as any, }; - const templateObj = { ...packageJSON, year: new Date().getFullYear() }; - renderConfigTemplate(dir, templateObj, resolvedForgeConfig); - resolvedForgeConfig.pluginInterface = await PluginInterface.create( dir, resolvedForgeConfig, From 72240960b27fba306602bbb7af405c36974d5e19 Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Tue, 2 Dec 2025 10:44:07 -0800 Subject: [PATCH 10/62] fix importsearch tests --- packages/api/core/src/util/import-search.ts | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/packages/api/core/src/util/import-search.ts b/packages/api/core/src/util/import-search.ts index 7d6e8c78cd..81ea594a36 100644 --- a/packages/api/core/src/util/import-search.ts +++ b/packages/api/core/src/util/import-search.ts @@ -4,14 +4,14 @@ import debug from 'debug'; const d = debug('electron-forge:import-search'); -// https://github.com/nodejs/node/blob/da0ede1ad55a502a25b4139f58aab3fb1ee3bf3f/lib/internal/modules/cjs/loader.js#L353-L359 -type RequireError = Error & { +/** + * @see https://github.com/nodejs/node/blob/4ea921bdbf94c11e86ef6b53aa7425c6df42876a/lib/internal/errors.js#L1611-L1617C1 + */ +type ResolutionError = Error & { code: string; - path: string; - requestPath: string | undefined; }; -export async function importSearchRaw( +async function importSearchRaw( relativeTo: string, paths: string[], ): Promise { @@ -52,12 +52,8 @@ export async function importSearchRaw( return await import(testPath); } catch (err) { if (err instanceof Error) { - const requireErr = err as RequireError; - // Ignore require-related errors - if ( - requireErr.code !== 'MODULE_NOT_FOUND' || - ![undefined, testPath].includes(requireErr.requestPath) - ) { + const resolutionError = err as ResolutionError; + if (resolutionError.code !== 'ERR_MODULE_NOT_FOUND') { throw err; } } From 5a94a86d80d1ba80122d9cc59d423195a2150567 Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Tue, 2 Dec 2025 11:28:05 -0800 Subject: [PATCH 11/62] get rid of `mockRequire` --- packages/maker/dmg/spec/MakerDMG.spec.ts | 13 ++++++------ packages/maker/dmg/src/MakerDMG.ts | 2 +- .../maker/flatpak/spec/MakerFlatpak.spec.ts | 13 ++++++------ packages/maker/flatpak/src/MakerFlatpak.ts | 6 ++++-- packages/maker/rpm/spec/MakerRpm.spec.ts | 20 +++++++----------- packages/maker/rpm/src/MakerRpm.ts | 4 ++-- packages/maker/snap/spec/MakerSnap.spec.ts | 13 ++++++------ packages/maker/snap/src/MakerSnap.ts | 2 +- .../plugin/webpack/spec/WebpackConfig.spec.ts | 14 ++++--------- .../spec/ViteTypeScriptTemplate.slow.spec.ts | 2 +- .../template/vite/spec/ViteTemplate.spec.ts | 2 +- .../spec/WebpackTypeScript.slow.spec.ts | 2 +- .../webpack/spec/WebpackTemplate.spec.ts | 2 +- packages/utils/test-utils/src/index.ts | 21 ------------------- 14 files changed, 43 insertions(+), 73 deletions(-) diff --git a/packages/maker/dmg/spec/MakerDMG.spec.ts b/packages/maker/dmg/spec/MakerDMG.spec.ts index d0c89372ea..820155a72a 100644 --- a/packages/maker/dmg/spec/MakerDMG.spec.ts +++ b/packages/maker/dmg/spec/MakerDMG.spec.ts @@ -4,16 +4,15 @@ import { describe, expect, it, vi } from 'vitest'; import { MakerDMG } from '../src/MakerDMG'; -// eslint-disable-next-line @typescript-eslint/no-require-imports -const { createDMG } = require('electron-installer-dmg'); +import { createDMG } from 'electron-installer-dmg'; +import { ForgeArch } from '@electron-forge/shared-types'; type MakeFunction = (opts: Partial) => Promise; -vi.hoisted(async () => { - const { mockRequire } = await import('@electron-forge/test-utils'); - void mockRequire('electron-installer-dmg', { +vi.mock(import('electron-installer-dmg'), () => { + return { createDMG: vi.fn(), - }); + }; }); vi.mock(import('fs-extra'), async (importOriginal) => { @@ -31,7 +30,7 @@ describe('MakerDMG', () => { const dir = '/my/test/dir/out'; const makeDir = '/my/test/dir/make'; const appName = 'My Test App'; - const targetArch = process.arch; + const targetArch = process.arch as ForgeArch; const packageJSON = { version: '1.2.3' }; it('should pass through correct defaults', async () => { diff --git a/packages/maker/dmg/src/MakerDMG.ts b/packages/maker/dmg/src/MakerDMG.ts index 3b136540ed..3c9c630fcd 100644 --- a/packages/maker/dmg/src/MakerDMG.ts +++ b/packages/maker/dmg/src/MakerDMG.ts @@ -24,7 +24,7 @@ export default class MakerDMG extends MakerBase { packageJSON, targetArch, }: MakerOptions): Promise { - const { createDMG } = require('electron-installer-dmg'); + const { createDMG } = await import('electron-installer-dmg'); const outPath = path.resolve(makeDir, `${this.config.name || appName}.dmg`); const forgeDefaultOutPath = path.resolve( diff --git a/packages/maker/flatpak/spec/MakerFlatpak.spec.ts b/packages/maker/flatpak/spec/MakerFlatpak.spec.ts index 911864cefd..e194d23724 100644 --- a/packages/maker/flatpak/spec/MakerFlatpak.spec.ts +++ b/packages/maker/flatpak/spec/MakerFlatpak.spec.ts @@ -6,14 +6,15 @@ import { describe, expect, it, vi } from 'vitest'; import { flatpakArch, MakerFlatpak } from '../src/MakerFlatpak'; -// eslint-disable-next-line @typescript-eslint/no-require-imports -const installer = require('@malept/electron-installer-flatpak'); +// @ts-expect-error - this package has no types +import installer from '@malept/electron-installer-flatpak'; type MakeFunction = (opts: Partial) => Promise; -vi.hoisted(async () => { - const { mockRequire } = await import('@electron-forge/test-utils'); - void mockRequire('@malept/electron-installer-flatpak', vi.fn()); +vi.mock('@malept/electron-installer-flatpak', () => { + return { + default: vi.fn().mockResolvedValue({ packagePaths: ['/foo/bar.flatpak'] }), + }; }); vi.mock(import('fs-extra'), async (importOriginal) => { @@ -31,7 +32,7 @@ describe('MakerFlatpak', () => { const dir = '/my/test/dir/out'; const makeDir = path.resolve('/make/dir'); const appName = 'My Test App'; - const targetArch = process.arch; + const targetArch = process.arch as ForgeArch; const packageJSON = { version: '1.2.3' }; it('should pass through correct defaults', async () => { diff --git a/packages/maker/flatpak/src/MakerFlatpak.ts b/packages/maker/flatpak/src/MakerFlatpak.ts index 893791e6ae..08ffebd407 100644 --- a/packages/maker/flatpak/src/MakerFlatpak.ts +++ b/packages/maker/flatpak/src/MakerFlatpak.ts @@ -34,8 +34,10 @@ export default class MakerFlatpak extends MakerBase { } async make({ dir, makeDir, targetArch }: MakerOptions): Promise { - // eslint-disable-next-line n/no-missing-require - const installer = require('@malept/electron-installer-flatpak'); + const { default: installer } = await import( + // @ts-expect-error - this package has no types + '@malept/electron-installer-flatpak' + ); const arch = flatpakArch(targetArch); const outDir = path.resolve(makeDir, 'flatpak', arch); diff --git a/packages/maker/rpm/spec/MakerRpm.spec.ts b/packages/maker/rpm/spec/MakerRpm.spec.ts index 7ae51d364f..3673adb597 100644 --- a/packages/maker/rpm/spec/MakerRpm.spec.ts +++ b/packages/maker/rpm/spec/MakerRpm.spec.ts @@ -6,24 +6,22 @@ import { describe, expect, it, vi } from 'vitest'; import { MakerRpm, rpmArch } from '../src/MakerRpm'; -// eslint-disable-next-line @typescript-eslint/no-require-imports -const installer = require('electron-installer-redhat'); +// @ts-expect-error - this package has no types +import installer from 'electron-installer-redhat'; type MakeFunction = (opts: Partial) => Promise; -vi.hoisted(async () => { - const { mockRequire } = await import('@electron-forge/test-utils'); - void mockRequire( - 'electron-installer-redhat', - vi.fn().mockResolvedValue({ packagePaths: ['/foo/bar.rpm'] }), - ); +vi.mock('electron-installer-redhat', () => { + return { + default: vi.fn().mockResolvedValue({ packagePaths: ['/foo/bar.rpm'] }), + }; }); describe('MakerRpm', () => { const dir = '/my/test/dir/out'; const makeDir = path.resolve('/make/dir'); const appName = 'My Test App'; - const targetArch = process.arch; + const targetArch = process.arch as ForgeArch; const packageJSON = { version: '1.2.3' }; it('should pass through correct defaults', async () => { @@ -92,10 +90,6 @@ describe('rpmArch', () => { expect(rpmArch('arm64')).toEqual('aarch64'); }); - it('should convert arm to armv6hl', () => { - expect(rpmArch('arm')).toEqual('armv6hl'); - }); - it('should convert armv7l to armv7hl', () => { expect(rpmArch('armv7l')).toEqual('armv7hl'); }); diff --git a/packages/maker/rpm/src/MakerRpm.ts b/packages/maker/rpm/src/MakerRpm.ts index 7b977c629a..7b86c727f9 100644 --- a/packages/maker/rpm/src/MakerRpm.ts +++ b/packages/maker/rpm/src/MakerRpm.ts @@ -39,8 +39,8 @@ export default class MakerRpm extends MakerBase { } async make({ dir, makeDir, targetArch }: MakerOptions): Promise { - // eslint-disable-next-line n/no-missing-require - const installer = require('electron-installer-redhat'); + // @ts-expect-error - this package has no types + const { default: installer } = await import('electron-installer-redhat'); const outDir = path.resolve(makeDir, 'rpm', targetArch); diff --git a/packages/maker/snap/spec/MakerSnap.spec.ts b/packages/maker/snap/spec/MakerSnap.spec.ts index 43b1fb2a88..5366d1374c 100644 --- a/packages/maker/snap/spec/MakerSnap.spec.ts +++ b/packages/maker/snap/spec/MakerSnap.spec.ts @@ -5,12 +5,13 @@ import { describe, expect, it, vi } from 'vitest'; import { MakerSnap } from '../src/MakerSnap'; -// eslint-disable-next-line @typescript-eslint/no-require-imports -const installer = require('electron-installer-snap'); +import installer from 'electron-installer-snap'; +import { ForgeArch } from '@electron-forge/shared-types'; -vi.hoisted(async () => { - const { mockRequire } = await import('@electron-forge/test-utils'); - void mockRequire('electron-installer-snap', vi.fn()); +vi.mock('electron-installer-snap', () => { + return { + default: vi.fn(), + }; }); type MakeFunction = (opts: Partial) => Promise; @@ -19,7 +20,7 @@ describe('MakerSnap', () => { const dir = '/my/test/dir/out/foo-linux-x64'; const makeDir = path.resolve('/make/dir'); const appName = 'My Test App'; - const targetArch = process.arch; + const targetArch = process.arch as ForgeArch; const packageJSON = { version: '1.2.3' }; it('should pass through correct defaults', async () => { diff --git a/packages/maker/snap/src/MakerSnap.ts b/packages/maker/snap/src/MakerSnap.ts index b10a0045cf..54715cf793 100644 --- a/packages/maker/snap/src/MakerSnap.ts +++ b/packages/maker/snap/src/MakerSnap.ts @@ -17,7 +17,7 @@ export default class MakerSnap extends MakerBase { } async make({ dir, makeDir, targetArch }: MakerOptions): Promise { - const installer = require('electron-installer-snap'); + const { default: installer } = await import('electron-installer-snap'); const outPath = path.resolve(makeDir, 'snap', targetArch); diff --git a/packages/plugin/webpack/spec/WebpackConfig.spec.ts b/packages/plugin/webpack/spec/WebpackConfig.spec.ts index 17b868beb6..45ccb52bbe 100644 --- a/packages/plugin/webpack/spec/WebpackConfig.spec.ts +++ b/packages/plugin/webpack/spec/WebpackConfig.spec.ts @@ -159,7 +159,7 @@ describe('WebpackConfigGenerator', () => { const defines = generator.getDefines(); expect(defines.HELLO_WEBPACK_ENTRY).toEqual( - "`file://${require('path').resolve(import.meta.dirname, '..', 'renderer', 'hello', 'index.js')}`", + "`file://${require('path').resolve(__dirname, '..', 'renderer', 'hello', 'index.js')}`", ); }); @@ -230,7 +230,7 @@ describe('WebpackConfigGenerator', () => { ); const defines = generator.getDefines(); expect(defines.WINDOW_PRELOAD_WEBPACK_ENTRY).toEqual( - "require('path').resolve(import.meta.dirname, '../renderer', 'window', 'preload.js')", + "require('path').resolve(__dirname, '../renderer', 'window', 'preload.js')", ); }); }); @@ -351,10 +351,7 @@ describe('WebpackConfigGenerator', () => { entryPoints: [] as WebpackPluginEntryPoint[], }, } as WebpackPluginConfig; - const baseDir = path.resolve( - import.meta.dirname, - 'fixtures/main_config_external', - ); + const baseDir = path.resolve(__dirname, 'fixtures/main_config_external'); const generator = new WebpackConfigGenerator(config, baseDir, true, 3000); const webpackConfig = await generator.getMainConfig(); expect(webpackConfig.entry).toEqual(path.resolve(baseDir, 'foo/main.js')); @@ -367,10 +364,7 @@ describe('WebpackConfigGenerator', () => { entryPoints: [] as WebpackPluginEntryPoint[], }, } as WebpackPluginConfig; - const baseDir = path.resolve( - import.meta.dirname, - 'fixtures/main_config_external', - ); + const baseDir = path.resolve(__dirname, 'fixtures/main_config_external'); const generator = new WebpackConfigGenerator(config, baseDir, true, 3000); const webpackConfig = await generator.getMainConfig(); expect(webpackConfig.entry).toEqual(path.resolve(baseDir, 'foo/main.js')); diff --git a/packages/template/vite-typescript/spec/ViteTypeScriptTemplate.slow.spec.ts b/packages/template/vite-typescript/spec/ViteTypeScriptTemplate.slow.spec.ts index 4128fbba16..df70803718 100644 --- a/packages/template/vite-typescript/spec/ViteTypeScriptTemplate.slow.spec.ts +++ b/packages/template/vite-typescript/spec/ViteTypeScriptTemplate.slow.spec.ts @@ -6,7 +6,7 @@ import { PACKAGE_MANAGERS, spawnPackageManager, } from '@electron-forge/core-utils'; -import testUtils from '@electron-forge/test-utils'; +import * as testUtils from '@electron-forge/test-utils'; import glob from 'fast-glob'; import { afterAll, beforeAll, describe, expect, it } from 'vitest'; diff --git a/packages/template/vite/spec/ViteTemplate.spec.ts b/packages/template/vite/spec/ViteTemplate.spec.ts index 3ad02ab0e1..8e541515f8 100644 --- a/packages/template/vite/spec/ViteTemplate.spec.ts +++ b/packages/template/vite/spec/ViteTemplate.spec.ts @@ -1,7 +1,7 @@ import fs from 'node:fs'; import path from 'node:path'; -import testUtils from '@electron-forge/test-utils'; +import * as testUtils from '@electron-forge/test-utils'; import { Listr } from 'listr2'; import { afterAll, beforeAll, describe, expect, it } from 'vitest'; diff --git a/packages/template/webpack-typescript/spec/WebpackTypeScript.slow.spec.ts b/packages/template/webpack-typescript/spec/WebpackTypeScript.slow.spec.ts index beb47e0eef..232fa7463a 100644 --- a/packages/template/webpack-typescript/spec/WebpackTypeScript.slow.spec.ts +++ b/packages/template/webpack-typescript/spec/WebpackTypeScript.slow.spec.ts @@ -5,7 +5,7 @@ import { PACKAGE_MANAGERS, spawnPackageManager, } from '@electron-forge/core-utils'; -import testUtils from '@electron-forge/test-utils'; +import * as testUtils from '@electron-forge/test-utils'; import glob from 'fast-glob'; import { afterAll, beforeAll, describe, expect, it } from 'vitest'; diff --git a/packages/template/webpack/spec/WebpackTemplate.spec.ts b/packages/template/webpack/spec/WebpackTemplate.spec.ts index 259e2933a6..95f0dad546 100644 --- a/packages/template/webpack/spec/WebpackTemplate.spec.ts +++ b/packages/template/webpack/spec/WebpackTemplate.spec.ts @@ -1,7 +1,7 @@ import fs from 'node:fs'; import path from 'node:path'; -import testUtils from '@electron-forge/test-utils'; +import * as testUtils from '@electron-forge/test-utils'; import { Listr } from 'listr2'; import { afterAll, beforeAll, describe, expect, it } from 'vitest'; diff --git a/packages/utils/test-utils/src/index.ts b/packages/utils/test-utils/src/index.ts index 85f894d0e0..315908932c 100644 --- a/packages/utils/test-utils/src/index.ts +++ b/packages/utils/test-utils/src/index.ts @@ -42,24 +42,3 @@ export async function expectLintToPass(dir: string): Promise { throw err; } } - -/** - * Helper function to mock CommonJS `require` calls with Vitest. - * - * @see https://github.com/vitest-dev/vitest/discussions/3134 - * @param mockedUri - mocked module URI - * @param stub - stub function to assign to mock - */ -// eslint-disable-next-line @typescript-eslint/no-explicit-any -export async function mockRequire(mockedUri: string, stub: any) { - const { Module } = await import('module'); - - //@ts-expect-error undocumented functions - Module._load_original = Module._load; - //@ts-expect-error undocumented functions - Module._load = (uri, parent) => { - if (uri === mockedUri) return stub; - //@ts-expect-error undocumented functions - return Module._load_original(uri, parent); - }; -} From 15ce3916c4f6d6640ca36e26d9e4c80582f9e410 Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Tue, 2 Dec 2025 11:30:03 -0800 Subject: [PATCH 12/62] `flatAsync` -> `flat` --- packages/maker/pkg/spec/MakerPKG.spec.ts | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/packages/maker/pkg/spec/MakerPKG.spec.ts b/packages/maker/pkg/spec/MakerPKG.spec.ts index 7960a9614a..732b332e4a 100644 --- a/packages/maker/pkg/spec/MakerPKG.spec.ts +++ b/packages/maker/pkg/spec/MakerPKG.spec.ts @@ -1,10 +1,11 @@ import path from 'node:path'; -import { flatAsync } from '@electron/osx-sign'; +import { flat } from '@electron/osx-sign'; import { MakerOptions } from '@electron-forge/maker-base'; import { describe, expect, it, vi } from 'vitest'; import { MakerPKG } from '../src/MakerPKG'; +import { ForgeArch } from '@electron-forge/shared-types'; type MakeFunction = (opts: Partial) => Promise; @@ -12,7 +13,7 @@ vi.mock(import('@electron/osx-sign'), async (importOriginal) => { const mod = await importOriginal(); return { ...mod, - flatAsync: vi.fn(), + flat: vi.fn(), }; }); @@ -20,7 +21,7 @@ describe('MakerPKG', () => { const dir = '/my/test/dir/out'; const makeDir = '/my/test/dir/make'; const appName = 'My Test App'; - const targetArch = process.arch; + const targetArch = process.arch as ForgeArch; const packageJSON = { version: '1.2.3' }; it('should pass through correct defaults', async () => { @@ -35,9 +36,9 @@ describe('MakerPKG', () => { targetArch, targetPlatform: 'mas', }); - expect(vi.mocked(flatAsync)).toHaveBeenCalledOnce(); + expect(vi.mocked(flat)).toHaveBeenCalledOnce(); - expect(vi.mocked(flatAsync)).toHaveBeenCalledWith({ + expect(vi.mocked(flat)).toHaveBeenCalledWith({ app: path.resolve(`${dir}/My Test App.app`), pkg: expect.stringContaining(`My Test App-1.2.3-${targetArch}.pkg`), platform: 'mas', From fd66f43370068abeb2e1348280b587b9303230d8 Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Tue, 2 Dec 2025 11:54:11 -0800 Subject: [PATCH 13/62] fix publisher --- packages/publisher/base/src/Publisher.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/publisher/base/src/Publisher.ts b/packages/publisher/base/src/Publisher.ts index 512b3fb706..0afbda1f53 100644 --- a/packages/publisher/base/src/Publisher.ts +++ b/packages/publisher/base/src/Publisher.ts @@ -35,7 +35,7 @@ export default abstract class Publisher implements IForgePublisher { public defaultPlatforms?: ForgePlatform[]; /** @internal */ - __isElectronForgePublisher!: true; + readonly __isElectronForgePublisher!: true; /** * @param config - A configuration object for this publisher @@ -48,6 +48,7 @@ export default abstract class Publisher implements IForgePublisher { this.config = config; Object.defineProperty(this, '__isElectronForgePublisher', { value: true, + writable: false, enumerable: false, configurable: false, }); From 533b8b345615c2b8b00206ec711958707317cdae Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Tue, 2 Dec 2025 12:01:16 -0800 Subject: [PATCH 14/62] Fast tests pass --- ...setRelocatorPatch.spec.ts => AssetRelocatorPatch.slow.spec.ts} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename packages/plugin/webpack/spec/{AssetRelocatorPatch.spec.ts => AssetRelocatorPatch.slow.spec.ts} (100%) diff --git a/packages/plugin/webpack/spec/AssetRelocatorPatch.spec.ts b/packages/plugin/webpack/spec/AssetRelocatorPatch.slow.spec.ts similarity index 100% rename from packages/plugin/webpack/spec/AssetRelocatorPatch.spec.ts rename to packages/plugin/webpack/spec/AssetRelocatorPatch.slow.spec.ts From c98097ce0648b353000bd604aebe9ccb728fb025 Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Tue, 2 Dec 2025 12:09:13 -0800 Subject: [PATCH 15/62] make lint pass --- .../{forge.config.js => forge.config.cjs} | 0 packages/api/core/spec/fixture/custom_init/index.cjs | 4 ++-- packages/api/core/spec/fixture/custom_init/index.js | 0 packages/api/core/spec/fixture/custom_init/package.json | 6 +++++- .../{forge.config.js => forge.config.cjs} | 0 .../spec/fixture/dummy_js_conf/forge.different.config.cjs | 1 + packages/api/core/spec/fixture/dummy_js_conf/package.json | 1 + .../electron-forge-template-fixture/{index.js => index.cjs} | 0 .../{forge.config.js => forge.config.cjs} | 0 .../{index.js => index.cjs} | 0 packages/plugin/fuses/spec/fixture/package.json | 3 ++- .../plugin/fuses/spec/fixture/src/{main.js => main.cjs} | 1 + 12 files changed, 12 insertions(+), 4 deletions(-) rename packages/api/core/spec/fixture/async_forge_config/{forge.config.js => forge.config.cjs} (100%) delete mode 100644 packages/api/core/spec/fixture/custom_init/index.js rename packages/api/core/spec/fixture/dummy_default_js_conf/{forge.config.js => forge.config.cjs} (100%) rename packages/api/core/spec/fixture/electron-forge-template-fixture/{index.js => index.cjs} (100%) rename packages/api/core/spec/fixture/forge-config-no-package-json-config/{forge.config.js => forge.config.cjs} (100%) rename packages/api/core/spec/fixture/template-nonmatching-forge-version/{index.js => index.cjs} (100%) rename packages/plugin/fuses/spec/fixture/src/{main.js => main.cjs} (77%) diff --git a/packages/api/core/spec/fixture/async_forge_config/forge.config.js b/packages/api/core/spec/fixture/async_forge_config/forge.config.cjs similarity index 100% rename from packages/api/core/spec/fixture/async_forge_config/forge.config.js rename to packages/api/core/spec/fixture/async_forge_config/forge.config.cjs diff --git a/packages/api/core/spec/fixture/custom_init/index.cjs b/packages/api/core/spec/fixture/custom_init/index.cjs index f89bf594fa..16f847f7e0 100644 --- a/packages/api/core/spec/fixture/custom_init/index.cjs +++ b/packages/api/core/spec/fixture/custom_init/index.cjs @@ -15,11 +15,11 @@ module.exports = { title: 'Adding custom template files', task: async () => { await fs.copy( - path.resolve(import.meta.dirname, 'tmpl', '_bar'), + path.resolve(__dirname, 'tmpl', '_bar'), path.resolve(directory, '.bar'), ); await fs.copy( - path.resolve(import.meta.dirname, 'tmpl', 'src'), + path.resolve(__dirname, 'tmpl', 'src'), path.resolve(directory, 'src'), ); }, diff --git a/packages/api/core/spec/fixture/custom_init/index.js b/packages/api/core/spec/fixture/custom_init/index.js deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/packages/api/core/spec/fixture/custom_init/package.json b/packages/api/core/spec/fixture/custom_init/package.json index 2fd98e0d67..93fca28d68 100644 --- a/packages/api/core/spec/fixture/custom_init/package.json +++ b/packages/api/core/spec/fixture/custom_init/package.json @@ -8,5 +8,9 @@ }, "keywords": [], "author": "", - "license": "MIT" + "license": "MIT", + "dependencies": { + "@electron-forge/template-base": "100.0.0", + "fs-extra": "11.3.2" + } } diff --git a/packages/api/core/spec/fixture/dummy_default_js_conf/forge.config.js b/packages/api/core/spec/fixture/dummy_default_js_conf/forge.config.cjs similarity index 100% rename from packages/api/core/spec/fixture/dummy_default_js_conf/forge.config.js rename to packages/api/core/spec/fixture/dummy_default_js_conf/forge.config.cjs diff --git a/packages/api/core/spec/fixture/dummy_js_conf/forge.different.config.cjs b/packages/api/core/spec/fixture/dummy_js_conf/forge.different.config.cjs index 1f07ef7998..766b6889ed 100644 --- a/packages/api/core/spec/fixture/dummy_js_conf/forge.different.config.cjs +++ b/packages/api/core/spec/fixture/dummy_js_conf/forge.different.config.cjs @@ -1,5 +1,6 @@ const { utils: { fromBuildIdentifier }, + // eslint-disable-next-line n/no-unpublished-require } = require('@electron-forge/core'); module.exports = { diff --git a/packages/api/core/spec/fixture/dummy_js_conf/package.json b/packages/api/core/spec/fixture/dummy_js_conf/package.json index dc65237e5e..6b3bb44f81 100644 --- a/packages/api/core/spec/fixture/dummy_js_conf/package.json +++ b/packages/api/core/spec/fixture/dummy_js_conf/package.json @@ -3,6 +3,7 @@ "productName": "", "version": "1.0.0", "description": "", + "private": true, "main": "src/index.js", "scripts": { "start": "electron-forge start" diff --git a/packages/api/core/spec/fixture/electron-forge-template-fixture/index.js b/packages/api/core/spec/fixture/electron-forge-template-fixture/index.cjs similarity index 100% rename from packages/api/core/spec/fixture/electron-forge-template-fixture/index.js rename to packages/api/core/spec/fixture/electron-forge-template-fixture/index.cjs diff --git a/packages/api/core/spec/fixture/forge-config-no-package-json-config/forge.config.js b/packages/api/core/spec/fixture/forge-config-no-package-json-config/forge.config.cjs similarity index 100% rename from packages/api/core/spec/fixture/forge-config-no-package-json-config/forge.config.js rename to packages/api/core/spec/fixture/forge-config-no-package-json-config/forge.config.cjs diff --git a/packages/api/core/spec/fixture/template-nonmatching-forge-version/index.js b/packages/api/core/spec/fixture/template-nonmatching-forge-version/index.cjs similarity index 100% rename from packages/api/core/spec/fixture/template-nonmatching-forge-version/index.js rename to packages/api/core/spec/fixture/template-nonmatching-forge-version/index.cjs diff --git a/packages/plugin/fuses/spec/fixture/package.json b/packages/plugin/fuses/spec/fixture/package.json index 3402527952..5696d06f1c 100644 --- a/packages/plugin/fuses/spec/fixture/package.json +++ b/packages/plugin/fuses/spec/fixture/package.json @@ -1,7 +1,8 @@ { "name": "fuses-test-app", "version": "1.0.0", - "main": "./src/main.js", + "main": "./src/main.cjs", + "type": "commonjs", "dependencies": { "@electron/fuses": "^2.0.0", "fs-extra": "^10.0.0" diff --git a/packages/plugin/fuses/spec/fixture/src/main.js b/packages/plugin/fuses/spec/fixture/src/main.cjs similarity index 77% rename from packages/plugin/fuses/spec/fixture/src/main.js rename to packages/plugin/fuses/spec/fixture/src/main.cjs index 3ef07df595..8dc0dac15e 100644 --- a/packages/plugin/fuses/spec/fixture/src/main.js +++ b/packages/plugin/fuses/spec/fixture/src/main.cjs @@ -1,3 +1,4 @@ +// eslint-disable-next-line const { app } = require('electron'); console.log('The Fuses plugin is working'); From 4a7751996e4629399c27a953cef9eb8eded52d9f Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Tue, 2 Dec 2025 12:22:10 -0800 Subject: [PATCH 16/62] fix markdownlint --- .markdownlint-cli2.jsonc | 14 ++ .markdownlint.json | 3 - .markdownlintignore | 2 - package.json | 3 +- packages/publisher/s3/README.md | 2 + yarn.lock | 289 +++++++++++++++++++++++++++++++- 6 files changed, 302 insertions(+), 11 deletions(-) create mode 100644 .markdownlint-cli2.jsonc delete mode 100644 .markdownlint.json delete mode 100644 .markdownlintignore diff --git a/.markdownlint-cli2.jsonc b/.markdownlint-cli2.jsonc new file mode 100644 index 0000000000..23c0616c70 --- /dev/null +++ b/.markdownlint-cli2.jsonc @@ -0,0 +1,14 @@ +{ + "config": { + "extends": "@electron/lint-roller/configs/markdownlint.json", + "link-image-style": { + "autolink": false, + "shortcut": false, + }, + "no-angle-brackets": true, + "no-curly-braces": true, + }, + "gitignore": true, + "ignores": ["CHANGELOG.md"], + "customRules": ["@electron/lint-roller/markdownlint-rules/index.mjs"], +} diff --git a/.markdownlint.json b/.markdownlint.json deleted file mode 100644 index 5336389f14..0000000000 --- a/.markdownlint.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "@electron/lint-roller/configs/markdownlint.json" -} diff --git a/.markdownlintignore b/.markdownlintignore deleted file mode 100644 index c6639bd9f5..0000000000 --- a/.markdownlintignore +++ /dev/null @@ -1,2 +0,0 @@ -**/node_modules/** -CHANGELOG.md diff --git a/package.json b/package.json index 05017ea7f4..75c710be88 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "docs": "yarn build && typedoc", "lerna:publish": "lerna publish --force-publish --conventional-commits --no-changelog --exact", "lint:js": "prettier --check . --experimental-cli && eslint . --cache", - "lint:markdown": "electron-markdownlint \"**/*.md\"", + "lint:markdown": "markdownlint-cli2 \"**/*.md\"", "lint:markdown-js": "electron-lint-markdown-standard --root . --ignore-path .markdownlintignore --semi \"**/*.md\"", "lint:markdown-links": "electron-lint-markdown-links --root . --ignore-path .markdownlintignore \"**/*.md\"", "lint": "npm run lint:js && npm run lint:markdown && npm run lint:markdown-js && npm run lint:markdown-links", @@ -109,6 +109,7 @@ "lerna": "^9.0.0", "lint-staged": "^12.1.7", "lodash-es": "^4.17.21", + "markdownlint-cli2": "^0.19.1", "minimist": "^1.2.6", "msw": "^2.7.0", "prettier": "^3.6.2", diff --git a/packages/publisher/s3/README.md b/packages/publisher/s3/README.md index 2354822b7f..85b237673f 100644 --- a/packages/publisher/s3/README.md +++ b/packages/publisher/s3/README.md @@ -4,7 +4,9 @@ By default, all files are positioned at the following key: +```text ${config.folder || appVersion}/${artifactName} +``` Configuration options are documented in [PublisherS3Config](https://js.electronforge.io/interfaces/_electron_forge_publisher_s3.PublisherS3Config.html). diff --git a/yarn.lock b/yarn.lock index dd933112ec..876316ed0c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4160,6 +4160,13 @@ __metadata: languageName: node linkType: hard +"@sindresorhus/merge-streams@npm:^4.0.0": + version: 4.0.0 + resolution: "@sindresorhus/merge-streams@npm:4.0.0" + checksum: 10c0/482ee543629aa1933b332f811a1ae805a213681ecdd98c042b1c1b89387df63e7812248bb4df3910b02b3cc5589d3d73e4393f30e197c9dde18046ccd471fc6b + languageName: node + linkType: hard + "@smithy/abort-controller@npm:^3.1.4": version: 3.1.4 resolution: "@smithy/abort-controller@npm:3.1.4" @@ -5070,6 +5077,13 @@ __metadata: languageName: node linkType: hard +"@types/katex@npm:^0.16.0": + version: 0.16.7 + resolution: "@types/katex@npm:0.16.7" + checksum: 10c0/68dcb9f68a90513ec78ca0196a142e15c2a2c270b1520d752bafd47a99207115085a64087b50140359017d7e9c870b3c68e7e4d36668c9e348a9ef0c48919b5a + languageName: node + linkType: hard + "@types/keyv@npm:*": version: 4.2.0 resolution: "@types/keyv@npm:4.2.0" @@ -5329,6 +5343,13 @@ __metadata: languageName: node linkType: hard +"@types/unist@npm:^2.0.0": + version: 2.0.11 + resolution: "@types/unist@npm:2.0.11" + checksum: 10c0/24dcdf25a168f453bb70298145eb043cfdbb82472db0bc0b56d6d51cd2e484b9ed8271d4ac93000a80da568f2402e9339723db262d0869e2bf13bc58e081768d + languageName: node + linkType: hard + "@types/unist@npm:^3.0.0": version: 3.0.3 resolution: "@types/unist@npm:3.0.3" @@ -6975,6 +6996,13 @@ __metadata: languageName: node linkType: hard +"character-entities-legacy@npm:^3.0.0": + version: 3.0.0 + resolution: "character-entities-legacy@npm:3.0.0" + checksum: 10c0/ec4b430af873661aa754a896a2b55af089b4e938d3d010fad5219299a6b6d32ab175142699ee250640678cd64bdecd6db3c9af0b8759ab7b155d970d84c4c7d1 + languageName: node + linkType: hard + "character-entities@npm:^2.0.0": version: 2.0.2 resolution: "character-entities@npm:2.0.2" @@ -6982,6 +7010,13 @@ __metadata: languageName: node linkType: hard +"character-reference-invalid@npm:^2.0.0": + version: 2.0.1 + resolution: "character-reference-invalid@npm:2.0.1" + checksum: 10c0/2ae0dec770cd8659d7e8b0ce24392d83b4c2f0eb4a3395c955dce5528edd4cc030a794cfa06600fcdd700b3f2de2f9b8e40e309c0011c4180e3be64a0b42e6a1 + languageName: node + linkType: hard + "chardet@npm:^0.7.0": version: 0.7.0 resolution: "chardet@npm:0.7.0" @@ -8278,6 +8313,7 @@ __metadata: listr2: "npm:^7.0.2" lodash-es: "npm:^4.17.21" log-symbols: "npm:^4.0.0" + markdownlint-cli2: "npm:^0.19.1" mime-types: "npm:^2.1.25" minimist: "npm:^1.2.6" msw: "npm:^2.7.0" @@ -9910,6 +9946,19 @@ __metadata: languageName: node linkType: hard +"fast-glob@npm:^3.3.3": + version: 3.3.3 + resolution: "fast-glob@npm:3.3.3" + dependencies: + "@nodelib/fs.stat": "npm:^2.0.2" + "@nodelib/fs.walk": "npm:^1.2.3" + glob-parent: "npm:^5.1.2" + merge2: "npm:^1.3.0" + micromatch: "npm:^4.0.8" + checksum: 10c0/f6aaa141d0d3384cf73cbcdfc52f475ed293f6d5b65bfc5def368b09163a9f7e5ec2b3014d80f733c405f58e470ee0cc451c2937685045cddcdeaa24199c43fe + languageName: node + linkType: hard + "fast-json-stable-stringify@npm:^2.0.0": version: 2.1.0 resolution: "fast-json-stable-stringify@npm:2.1.0" @@ -11020,6 +11069,20 @@ __metadata: languageName: node linkType: hard +"globby@npm:15.0.0": + version: 15.0.0 + resolution: "globby@npm:15.0.0" + dependencies: + "@sindresorhus/merge-streams": "npm:^4.0.0" + fast-glob: "npm:^3.3.3" + ignore: "npm:^7.0.5" + path-type: "npm:^6.0.0" + slash: "npm:^5.1.0" + unicorn-magic: "npm:^0.3.0" + checksum: 10c0/e4107be0579bcdd9642b8dff86aeafeaf62b2b9dd116669ab6e02e0e0c07ada0d972c2db182dee7588b460fe8c8919ddcc6b1cc4db405ca3a2adc9d35fa6eb21 + languageName: node + linkType: hard + "google-auth-library@npm:^9.0.0": version: 9.2.0 resolution: "google-auth-library@npm:9.2.0" @@ -11645,6 +11708,13 @@ __metadata: languageName: node linkType: hard +"ignore@npm:^7.0.5": + version: 7.0.5 + resolution: "ignore@npm:7.0.5" + checksum: 10c0/ae00db89fe873064a093b8999fe4cc284b13ef2a178636211842cceb650b9c3e390d3339191acb145d81ed5379d2074840cf0c33a20bdbd6f32821f79eb4ad5d + languageName: node + linkType: hard + "image-size@npm:^0.7.4": version: 0.7.5 resolution: "image-size@npm:0.7.5" @@ -11875,6 +11945,23 @@ __metadata: languageName: node linkType: hard +"is-alphabetical@npm:^2.0.0": + version: 2.0.1 + resolution: "is-alphabetical@npm:2.0.1" + checksum: 10c0/932367456f17237533fd1fc9fe179df77957271020b83ea31da50e5cc472d35ef6b5fb8147453274ffd251134472ce24eb6f8d8398d96dee98237cdb81a6c9a7 + languageName: node + linkType: hard + +"is-alphanumerical@npm:^2.0.0": + version: 2.0.1 + resolution: "is-alphanumerical@npm:2.0.1" + dependencies: + is-alphabetical: "npm:^2.0.0" + is-decimal: "npm:^2.0.0" + checksum: 10c0/4b35c42b18e40d41378293f82a3ecd9de77049b476f748db5697c297f686e1e05b072a6aaae2d16f54d2a57f85b00cbbe755c75f6d583d1c77d6657bd0feb5a2 + languageName: node + linkType: hard + "is-array-buffer@npm:^3.0.1, is-array-buffer@npm:^3.0.2": version: 3.0.2 resolution: "is-array-buffer@npm:3.0.2" @@ -12044,6 +12131,13 @@ __metadata: languageName: node linkType: hard +"is-decimal@npm:^2.0.0": + version: 2.0.1 + resolution: "is-decimal@npm:2.0.1" + checksum: 10c0/8085dd66f7d82f9de818fba48b9e9c0429cb4291824e6c5f2622e96b9680b54a07a624cfc663b24148b8e853c62a1c987cfe8b0b5a13f5156991afaf6736e334 + languageName: node + linkType: hard + "is-docker@npm:^2.0.0, is-docker@npm:^2.1.1": version: 2.2.1 resolution: "is-docker@npm:2.2.1" @@ -12108,6 +12202,13 @@ __metadata: languageName: node linkType: hard +"is-hexadecimal@npm:^2.0.0": + version: 2.0.1 + resolution: "is-hexadecimal@npm:2.0.1" + checksum: 10c0/3eb60fe2f1e2bbc760b927dcad4d51eaa0c60138cf7fc671803f66353ad90c301605b502c7ea4c6bb0548e1c7e79dfd37b73b632652e3b76030bba603a7e9626 + languageName: node + linkType: hard + "is-interactive@npm:^1.0.0": version: 1.0.0 resolution: "is-interactive@npm:1.0.0" @@ -12586,6 +12687,17 @@ __metadata: languageName: node linkType: hard +"js-yaml@npm:4.1.1": + version: 4.1.1 + resolution: "js-yaml@npm:4.1.1" + dependencies: + argparse: "npm:^2.0.1" + bin: + js-yaml: bin/js-yaml.js + checksum: 10c0/561c7d7088c40a9bb53cc75becbfb1df6ae49b34b5e6e5a81744b14ae8667ec564ad2527709d1a6e7d5e5fa6d483aa0f373a50ad98d42fde368ec4a190d4fae7 + languageName: node + linkType: hard + "js-yaml@npm:^3.10.0, js-yaml@npm:^3.13.1": version: 3.14.1 resolution: "js-yaml@npm:3.14.1" @@ -12697,6 +12809,13 @@ __metadata: languageName: node linkType: hard +"jsonc-parser@npm:3.3.1": + version: 3.3.1 + resolution: "jsonc-parser@npm:3.3.1" + checksum: 10c0/269c3ae0a0e4f907a914bf334306c384aabb9929bd8c99f909275ebd5c2d3bc70b9bcd119ad794f339dec9f24b6a4ee9cd5a8ab2e6435e730ad4075388fc2ab6 + languageName: node + linkType: hard + "jsonc-parser@npm:^3.2.0": version: 3.2.1 resolution: "jsonc-parser@npm:3.2.1" @@ -12795,6 +12914,17 @@ __metadata: languageName: node linkType: hard +"katex@npm:^0.16.0": + version: 0.16.25 + resolution: "katex@npm:0.16.25" + dependencies: + commander: "npm:^8.3.0" + bin: + katex: cli.js + checksum: 10c0/5bb4b1cd914b76d5efb01ee054c1a221ac723be1e38fb260264c6e253036943d301c1741cbf64f840689c6b3942bce21a6da6637de846a428e4c661dc8ee46ab + languageName: node + linkType: hard + "keyv@npm:*, keyv@npm:^4.0.0": version: 4.5.4 resolution: "keyv@npm:4.5.4" @@ -13411,7 +13541,7 @@ __metadata: languageName: node linkType: hard -"markdown-it@npm:^14.1.0": +"markdown-it@npm:14.1.0, markdown-it@npm:^14.1.0": version: 14.1.0 resolution: "markdown-it@npm:14.1.0" dependencies: @@ -13427,6 +13557,48 @@ __metadata: languageName: node linkType: hard +"markdownlint-cli2-formatter-default@npm:0.0.6": + version: 0.0.6 + resolution: "markdownlint-cli2-formatter-default@npm:0.0.6" + peerDependencies: + markdownlint-cli2: ">=0.0.4" + checksum: 10c0/58aeec03bd3624e1db7ac456d84a19cb155956e4d74ca6d13c9405c555ef9e6347308599a2c245cfbdf8f3b09b0bcc52f21bde5e9af4231655a051d9ddefabd9 + languageName: node + linkType: hard + +"markdownlint-cli2@npm:^0.19.1": + version: 0.19.1 + resolution: "markdownlint-cli2@npm:0.19.1" + dependencies: + globby: "npm:15.0.0" + js-yaml: "npm:4.1.1" + jsonc-parser: "npm:3.3.1" + markdown-it: "npm:14.1.0" + markdownlint: "npm:0.39.0" + markdownlint-cli2-formatter-default: "npm:0.0.6" + micromatch: "npm:4.0.8" + bin: + markdownlint-cli2: markdownlint-cli2-bin.mjs + checksum: 10c0/fdac00f87a0a4ad155a332f5926d6ce4be153f4fac0362722d9620821bb638f2def29991ede102d245975a62084323f1a3032dfc4f39f17899b38f11f79619e5 + languageName: node + linkType: hard + +"markdownlint@npm:0.39.0": + version: 0.39.0 + resolution: "markdownlint@npm:0.39.0" + dependencies: + micromark: "npm:4.0.2" + micromark-core-commonmark: "npm:2.0.3" + micromark-extension-directive: "npm:4.0.0" + micromark-extension-gfm-autolink-literal: "npm:2.1.0" + micromark-extension-gfm-footnote: "npm:2.1.0" + micromark-extension-gfm-table: "npm:2.1.1" + micromark-extension-math: "npm:3.1.0" + micromark-util-types: "npm:2.0.2" + checksum: 10c0/aaa079902fa1585e3769a0f699478cdcca0e2bf205916e5cc90a362746548b5530aa8e0a762e255b5e05dc481d86f9e8859780d4e5943e3ace8a5fb48023b6af + languageName: node + linkType: hard + "marked@npm:^4.3.0": version: 4.3.0 resolution: "marked@npm:4.3.0" @@ -13562,7 +13734,7 @@ __metadata: languageName: node linkType: hard -"micromark-core-commonmark@npm:^2.0.0": +"micromark-core-commonmark@npm:2.0.3, micromark-core-commonmark@npm:^2.0.0": version: 2.0.3 resolution: "micromark-core-commonmark@npm:2.0.3" dependencies: @@ -13586,6 +13758,77 @@ __metadata: languageName: node linkType: hard +"micromark-extension-directive@npm:4.0.0": + version: 4.0.0 + resolution: "micromark-extension-directive@npm:4.0.0" + dependencies: + devlop: "npm:^1.0.0" + micromark-factory-space: "npm:^2.0.0" + micromark-factory-whitespace: "npm:^2.0.0" + micromark-util-character: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + parse-entities: "npm:^4.0.0" + checksum: 10c0/b4aef0f44339543466ae186130a4514985837b6b12d0c155bd1162e740f631e58f0883a39d0c723206fa0ff53a9b579965c79116f902236f6f123c3340b5fefb + languageName: node + linkType: hard + +"micromark-extension-gfm-autolink-literal@npm:2.1.0": + version: 2.1.0 + resolution: "micromark-extension-gfm-autolink-literal@npm:2.1.0" + dependencies: + micromark-util-character: "npm:^2.0.0" + micromark-util-sanitize-uri: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/84e6fbb84ea7c161dfa179665dc90d51116de4c28f3e958260c0423e5a745372b7dcbc87d3cde98213b532e6812f847eef5ae561c9397d7f7da1e59872ef3efe + languageName: node + linkType: hard + +"micromark-extension-gfm-footnote@npm:2.1.0": + version: 2.1.0 + resolution: "micromark-extension-gfm-footnote@npm:2.1.0" + dependencies: + devlop: "npm:^1.0.0" + micromark-core-commonmark: "npm:^2.0.0" + micromark-factory-space: "npm:^2.0.0" + micromark-util-character: "npm:^2.0.0" + micromark-util-normalize-identifier: "npm:^2.0.0" + micromark-util-sanitize-uri: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/d172e4218968b7371b9321af5cde8c77423f73b233b2b0fcf3ff6fd6f61d2e0d52c49123a9b7910612478bf1f0d5e88c75a3990dd68f70f3933fe812b9f77edc + languageName: node + linkType: hard + +"micromark-extension-gfm-table@npm:2.1.1": + version: 2.1.1 + resolution: "micromark-extension-gfm-table@npm:2.1.1" + dependencies: + devlop: "npm:^1.0.0" + micromark-factory-space: "npm:^2.0.0" + micromark-util-character: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/04bc00e19b435fa0add62cd029d8b7eb6137522f77832186b1d5ef34544a9bd030c9cf85e92ddfcc5c31f6f0a58a43d4b96dba4fc21316037c734630ee12c912 + languageName: node + linkType: hard + +"micromark-extension-math@npm:3.1.0": + version: 3.1.0 + resolution: "micromark-extension-math@npm:3.1.0" + dependencies: + "@types/katex": "npm:^0.16.0" + devlop: "npm:^1.0.0" + katex: "npm:^0.16.0" + micromark-factory-space: "npm:^2.0.0" + micromark-util-character: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/56e6f2185a4613f9d47e7e98cf8605851c990957d9229c942b005e286c8087b61dc9149448d38b2f8be6d42cc6a64aad7e1f2778ddd86fbbb1a2f48a3ca1872f + languageName: node + linkType: hard + "micromark-factory-destination@npm:^2.0.0": version: 2.0.1 resolution: "micromark-factory-destination@npm:2.0.1" @@ -13766,14 +14009,14 @@ __metadata: languageName: node linkType: hard -"micromark-util-types@npm:^2.0.0": +"micromark-util-types@npm:2.0.2, micromark-util-types@npm:^2.0.0": version: 2.0.2 resolution: "micromark-util-types@npm:2.0.2" checksum: 10c0/c8c15b96c858db781c4393f55feec10004bf7df95487636c9a9f7209e51002a5cca6a047c5d2a5dc669ff92da20e57aaa881e81a268d9ccadb647f9dce305298 languageName: node linkType: hard -"micromark@npm:^4.0.0": +"micromark@npm:4.0.2, micromark@npm:^4.0.0": version: 4.0.2 resolution: "micromark@npm:4.0.2" dependencies: @@ -13798,7 +14041,7 @@ __metadata: languageName: node linkType: hard -"micromatch@npm:^4.0.2, micromatch@npm:^4.0.4, micromatch@npm:^4.0.5": +"micromatch@npm:4.0.8, micromatch@npm:^4.0.2, micromatch@npm:^4.0.4, micromatch@npm:^4.0.5, micromatch@npm:^4.0.8": version: 4.0.8 resolution: "micromatch@npm:4.0.8" dependencies: @@ -15291,6 +15534,21 @@ __metadata: languageName: node linkType: hard +"parse-entities@npm:^4.0.0": + version: 4.0.2 + resolution: "parse-entities@npm:4.0.2" + dependencies: + "@types/unist": "npm:^2.0.0" + character-entities-legacy: "npm:^3.0.0" + character-reference-invalid: "npm:^2.0.0" + decode-named-character-reference: "npm:^1.0.0" + is-alphanumerical: "npm:^2.0.0" + is-decimal: "npm:^2.0.0" + is-hexadecimal: "npm:^2.0.0" + checksum: 10c0/a13906b1151750b78ed83d386294066daf5fb559e08c5af9591b2d98cc209123103016a01df776f65f8219ad26652d6d6b210d0974d452049cddfc53a8916c34 + languageName: node + linkType: hard + "parse-json@npm:^2.2.0": version: 2.2.0 resolution: "parse-json@npm:2.2.0" @@ -15487,6 +15745,13 @@ __metadata: languageName: node linkType: hard +"path-type@npm:^6.0.0": + version: 6.0.0 + resolution: "path-type@npm:6.0.0" + checksum: 10c0/55baa8b1187d6dc683d5a9cfcc866168d6adff58e5db91126795376d818eee46391e00b2a4d53e44d844c7524a7d96aa68cc68f4f3e500d3d069a39e6535481c + languageName: node + linkType: hard + "pathe@npm:^2.0.3": version: 2.0.3 resolution: "pathe@npm:2.0.3" @@ -17165,6 +17430,13 @@ __metadata: languageName: node linkType: hard +"slash@npm:^5.1.0": + version: 5.1.0 + resolution: "slash@npm:5.1.0" + checksum: 10c0/eb48b815caf0bdc390d0519d41b9e0556a14380f6799c72ba35caf03544d501d18befdeeef074bc9c052acf69654bc9e0d79d7f1de0866284137a40805299eb3 + languageName: node + linkType: hard + "slice-ansi@npm:^3.0.0": version: 3.0.0 resolution: "slice-ansi@npm:3.0.0" @@ -18529,6 +18801,13 @@ __metadata: languageName: node linkType: hard +"unicorn-magic@npm:^0.3.0": + version: 0.3.0 + resolution: "unicorn-magic@npm:0.3.0" + checksum: 10c0/0a32a997d6c15f1c2a077a15b1c4ca6f268d574cf5b8975e778bb98e6f8db4ef4e86dfcae4e158cd4c7e38fb4dd383b93b13eefddc7f178dea13d3ac8a603271 + languageName: node + linkType: hard + "unique-filename@npm:^4.0.0": version: 4.0.0 resolution: "unique-filename@npm:4.0.0" From 1c8f681f0ea67ffaf9485f2ecb693e37b2b88100 Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Tue, 2 Dec 2025 12:32:00 -0800 Subject: [PATCH 17/62] fix other markdown linting commands --- .markdownlintignore | 2 ++ package.json | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 .markdownlintignore diff --git a/.markdownlintignore b/.markdownlintignore new file mode 100644 index 0000000000..bf9e768489 --- /dev/null +++ b/.markdownlintignore @@ -0,0 +1,2 @@ +**/node_modules/** +CHANGELOG.md \ No newline at end of file diff --git a/package.json b/package.json index 75c710be88..ebc702a944 100644 --- a/package.json +++ b/package.json @@ -15,8 +15,8 @@ "lerna:publish": "lerna publish --force-publish --conventional-commits --no-changelog --exact", "lint:js": "prettier --check . --experimental-cli && eslint . --cache", "lint:markdown": "markdownlint-cli2 \"**/*.md\"", - "lint:markdown-js": "electron-lint-markdown-standard --root . --ignore-path .markdownlintignore --semi \"**/*.md\"", - "lint:markdown-links": "electron-lint-markdown-links --root . --ignore-path .markdownlintignore \"**/*.md\"", + "lint:markdown-js": "lint-roller-markdown-standard --root . --ignore-path .markdownlintignore --semi \"**/*.md\"", + "lint:markdown-links": "lint-roller-markdown-links --root . --ignore-path .markdownlintignore \"**/*.md\"", "lint": "npm run lint:js && npm run lint:markdown && npm run lint:markdown-js && npm run lint:markdown-links", "lint:fix": "prettier --write . --experimental-cli && eslint --fix . --cache", "prepack": "yarn build", From bb8e9d97421752549804ad0d97e8fe7e984f258c Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Tue, 2 Dec 2025 12:59:00 -0800 Subject: [PATCH 18/62] re-order checkout code steps --- .github/workflows/ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c70e383850..b0670fda0d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -70,15 +70,15 @@ jobs: - name: Configure git run: git config --global core.autocrlf input + - name: Checkout code + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + - name: Setup Node.js uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: node-version-file: .nvmrc # cache: yarn - - name: Checkout code - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - name: Install dependencies run: yarn install --immutable From 01062f4479cbac9ffce83a410b4499d3c6b2194f Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Wed, 3 Dec 2025 12:42:45 -0800 Subject: [PATCH 19/62] Fix tests --- package.json | 4 +- packages/api/cli/package.json | 2 +- packages/api/core/package.json | 6 +- .../package.json | 2 +- .../src/api/init-scripts/find-template.ts | 2 +- packages/maker/appx/package.json | 2 +- packages/maker/base/package.json | 2 +- packages/maker/deb/package.json | 2 +- packages/maker/dmg/package.json | 2 +- packages/maker/flatpak/package.json | 2 +- packages/maker/msix/package.json | 2 +- packages/maker/pkg/package.json | 2 +- packages/maker/rpm/package.json | 2 +- packages/maker/snap/package.json | 2 +- packages/maker/wix/package.json | 2 +- packages/maker/zip/package.json | 2 +- packages/plugin/local-electron/package.json | 2 +- packages/plugin/vite/package.json | 2 +- packages/plugin/webpack/package.json | 2 +- packages/publisher/base-static/package.json | 2 +- packages/publisher/base/package.json | 2 +- .../electron-release-server/package.json | 2 +- packages/publisher/github/package.json | 2 +- packages/template/base/package.json | 2 +- .../template/vite-typescript/package.json | 2 +- packages/template/vite/package.json | 2 +- .../template/webpack-typescript/package.json | 2 +- packages/template/webpack/package.json | 2 +- packages/utils/core-utils/package.json | 2 +- vitest.config.mts | 19 + vitest.workspace.mts | 21 - yarn.config.cjs | 3 + yarn.lock | 656 ++++++++---------- 33 files changed, 350 insertions(+), 413 deletions(-) delete mode 100644 vitest.workspace.mts diff --git a/package.json b/package.json index 27ad7918c4..8307b71b45 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,7 @@ "source-map-support": "^0.5.13", "tsx": "^4.20.6", "username": "^5.1.0", - "vite": "^5.0.12", + "vite": "^7.2.0", "webpack": "^5.69.1", "webpack-dev-server": "^4.0.0", "webpack-merge": "^5.7.3", @@ -114,7 +114,7 @@ "prettier": "^3.6.2", "typedoc": "0.25.13", "typescript": "5.9.3", - "vitest": "^3.1.3", + "vitest": "^4.0.0", "xvfb-maybe": "^0.2.1" }, "optionalDependencies": { diff --git a/packages/api/cli/package.json b/packages/api/cli/package.json index 55cf17f494..d590d07be0 100644 --- a/packages/api/cli/package.json +++ b/packages/api/cli/package.json @@ -13,7 +13,7 @@ }, "devDependencies": { "@malept/cross-spawn-promise": "^2.0.0", - "vitest": "^3.1.3" + "vitest": "^4.0.0" }, "dependencies": { "@electron-forge/core": "workspace:*", diff --git a/packages/api/core/package.json b/packages/api/core/package.json index ca3ad0faf8..4ca0748b30 100644 --- a/packages/api/core/package.json +++ b/packages/api/core/package.json @@ -18,13 +18,13 @@ "@electron-forge/maker-squirrel": "workspace:*", "@electron-forge/maker-wix": "workspace:*", "@electron-forge/maker-zip": "workspace:*", - "@electron-forge/template-fixture": "link:./spec/fixture/electron-forge-template-fixture", + "@electron-forge/template-fixture": "portal:./spec/fixture/electron-forge-template-fixture", "@electron-forge/test-utils": "workspace:*", "@types/interpret": "^1.1.1", "@types/progress": "^2.0.5", - "electron-forge-template-fixture-two": "link:./spec/fixture/electron-forge-template-fixture", + "electron-forge-template-fixture-two": "portal:./spec/fixture/electron-forge-template-fixture", "electron-installer-common": "^0.10.2", - "vitest": "^3.1.3" + "vitest": "^4.0.0" }, "dependencies": { "@electron-forge/core-utils": "workspace:*", diff --git a/packages/api/core/spec/fixture/electron-forge-template-fixture/package.json b/packages/api/core/spec/fixture/electron-forge-template-fixture/package.json index fcc3dc7f88..18a947b1d9 100644 --- a/packages/api/core/spec/fixture/electron-forge-template-fixture/package.json +++ b/packages/api/core/spec/fixture/electron-forge-template-fixture/package.json @@ -1,5 +1,5 @@ { - "main": "index.js", + "main": "index.cjs", "type": "commonjs", "version": "13.3.7" } diff --git a/packages/api/core/src/api/init-scripts/find-template.ts b/packages/api/core/src/api/init-scripts/find-template.ts index 6a7ff52227..4fdab76017 100644 --- a/packages/api/core/src/api/init-scripts/find-template.ts +++ b/packages/api/core/src/api/init-scripts/find-template.ts @@ -25,7 +25,7 @@ export const findTemplate = async ( try { d(`Trying template: ${moduleName}`); foundTemplate = { - path: require.resolve(moduleName), + path: import.meta.resolve(moduleName), name: moduleName, }; break; diff --git a/packages/maker/appx/package.json b/packages/maker/appx/package.json index 92d96b9844..43765bedd7 100644 --- a/packages/maker/appx/package.json +++ b/packages/maker/appx/package.json @@ -9,7 +9,7 @@ "main": "dist/MakerAppX.js", "typings": "dist/MakerAppX.d.ts", "devDependencies": { - "vitest": "^3.1.3" + "vitest": "^4.0.0" }, "engines": { "node": ">= 22.12.0" diff --git a/packages/maker/base/package.json b/packages/maker/base/package.json index 1128273748..dc1a1390ec 100644 --- a/packages/maker/base/package.json +++ b/packages/maker/base/package.json @@ -9,7 +9,7 @@ "main": "dist/Maker.js", "typings": "dist/Maker.d.ts", "devDependencies": { - "vitest": "^3.1.3" + "vitest": "^4.0.0" }, "engines": { "node": ">= 22.12.0" diff --git a/packages/maker/deb/package.json b/packages/maker/deb/package.json index 48a4059125..ff5ef47c41 100644 --- a/packages/maker/deb/package.json +++ b/packages/maker/deb/package.json @@ -10,7 +10,7 @@ "typings": "dist/MakerDeb.d.ts", "devDependencies": { "@electron-forge/test-utils": "workspace:*", - "vitest": "^3.1.3" + "vitest": "^4.0.0" }, "engines": { "node": ">= 22.12.0" diff --git a/packages/maker/dmg/package.json b/packages/maker/dmg/package.json index cf1301b6c4..c4214d58de 100644 --- a/packages/maker/dmg/package.json +++ b/packages/maker/dmg/package.json @@ -10,7 +10,7 @@ "typings": "dist/MakerDMG.d.ts", "devDependencies": { "@electron-forge/test-utils": "workspace:*", - "vitest": "^3.1.3" + "vitest": "^4.0.0" }, "engines": { "node": ">= 22.12.0" diff --git a/packages/maker/flatpak/package.json b/packages/maker/flatpak/package.json index 8d93345cb4..d44b3f0e0e 100644 --- a/packages/maker/flatpak/package.json +++ b/packages/maker/flatpak/package.json @@ -10,7 +10,7 @@ "typings": "dist/MakerFlatpak.d.ts", "devDependencies": { "@electron-forge/test-utils": "workspace:*", - "vitest": "^3.1.3" + "vitest": "^4.0.0" }, "engines": { "node": ">= 22.12.0" diff --git a/packages/maker/msix/package.json b/packages/maker/msix/package.json index e749c1f84c..4d64ea7289 100644 --- a/packages/maker/msix/package.json +++ b/packages/maker/msix/package.json @@ -9,7 +9,7 @@ "main": "dist/MakerMSIX.js", "typings": "dist/MakerMSIX.d.ts", "devDependencies": { - "vitest": "^3.1.3" + "vitest": "^4.0.0" }, "engines": { "node": ">= 22.12.0" diff --git a/packages/maker/pkg/package.json b/packages/maker/pkg/package.json index fb9761d8d7..0c951bed89 100644 --- a/packages/maker/pkg/package.json +++ b/packages/maker/pkg/package.json @@ -9,7 +9,7 @@ "typings": "dist/MakerPKG.d.ts", "devDependencies": { "@electron-forge/test-utils": "workspace:*", - "vitest": "^3.1.3" + "vitest": "^4.0.0" }, "engines": { "node": ">= 22.12.0" diff --git a/packages/maker/rpm/package.json b/packages/maker/rpm/package.json index e09055aaa2..d52d130ff7 100644 --- a/packages/maker/rpm/package.json +++ b/packages/maker/rpm/package.json @@ -10,7 +10,7 @@ "typings": "dist/MakerRpm.d.ts", "devDependencies": { "@electron-forge/test-utils": "workspace:*", - "vitest": "^3.1.3" + "vitest": "^4.0.0" }, "engines": { "node": ">= 22.12.0" diff --git a/packages/maker/snap/package.json b/packages/maker/snap/package.json index c07aa845eb..0130c042ff 100644 --- a/packages/maker/snap/package.json +++ b/packages/maker/snap/package.json @@ -9,7 +9,7 @@ "typings": "dist/MakerSnap.d.ts", "devDependencies": { "@electron-forge/test-utils": "workspace:*", - "vitest": "^3.1.3" + "vitest": "^4.0.0" }, "engines": { "node": ">= 22.12.0" diff --git a/packages/maker/wix/package.json b/packages/maker/wix/package.json index e3430b07ee..5195b55ee2 100644 --- a/packages/maker/wix/package.json +++ b/packages/maker/wix/package.json @@ -9,7 +9,7 @@ "main": "dist/MakerWix.js", "typings": "dist/MakerWix.d.ts", "devDependencies": { - "vitest": "^3.1.3" + "vitest": "^4.0.0" }, "engines": { "node": ">= 22.12.0" diff --git a/packages/maker/zip/package.json b/packages/maker/zip/package.json index 4e2a6e47ee..36a7b06b3e 100644 --- a/packages/maker/zip/package.json +++ b/packages/maker/zip/package.json @@ -10,7 +10,7 @@ "typings": "dist/MakerZIP.d.ts", "devDependencies": { "@electron-forge/test-utils": "workspace:*", - "vitest": "^3.1.3" + "vitest": "^4.0.0" }, "engines": { "node": ">= 22.12.0" diff --git a/packages/plugin/local-electron/package.json b/packages/plugin/local-electron/package.json index 5a5e707309..4c18c80467 100644 --- a/packages/plugin/local-electron/package.json +++ b/packages/plugin/local-electron/package.json @@ -17,7 +17,7 @@ "fs-extra": "^10.0.0" }, "devDependencies": { - "vitest": "^3.1.3" + "vitest": "^4.0.0" }, "publishConfig": { "access": "public" diff --git a/packages/plugin/vite/package.json b/packages/plugin/vite/package.json index 57de4e0e6a..c589c109d9 100644 --- a/packages/plugin/vite/package.json +++ b/packages/plugin/vite/package.json @@ -25,7 +25,7 @@ "@malept/cross-spawn-promise": "^2.0.0", "@types/node": "~22.10.7", "vite": "^5.0.12", - "vitest": "^3.1.3", + "vitest": "^4.0.0", "which": "^2.0.2", "xvfb-maybe": "^0.2.1" }, diff --git a/packages/plugin/webpack/package.json b/packages/plugin/webpack/package.json index 8e37b6e598..a9897fded4 100644 --- a/packages/plugin/webpack/package.json +++ b/packages/plugin/webpack/package.json @@ -12,7 +12,7 @@ "@electron/packager": "^19.0.1", "@malept/cross-spawn-promise": "^2.0.0", "@types/node": "~22.10.7", - "vitest": "^3.1.3", + "vitest": "^4.0.0", "which": "^2.0.2", "xvfb-maybe": "^0.2.1" }, diff --git a/packages/publisher/base-static/package.json b/packages/publisher/base-static/package.json index 5558df8bf0..893cccbb18 100644 --- a/packages/publisher/base-static/package.json +++ b/packages/publisher/base-static/package.json @@ -13,7 +13,7 @@ "@electron-forge/shared-types": "workspace:*" }, "devDependencies": { - "vitest": "^3.1.3" + "vitest": "^4.0.0" }, "engines": { "node": ">= 22.12.0" diff --git a/packages/publisher/base/package.json b/packages/publisher/base/package.json index cc685d03fa..35495b3763 100644 --- a/packages/publisher/base/package.json +++ b/packages/publisher/base/package.json @@ -12,7 +12,7 @@ "@electron-forge/shared-types": "workspace:*" }, "devDependencies": { - "vitest": "^3.1.3" + "vitest": "^4.0.0" }, "engines": { "node": ">= 22.12.0" diff --git a/packages/publisher/electron-release-server/package.json b/packages/publisher/electron-release-server/package.json index 32f5efa7ed..5c33149f0b 100644 --- a/packages/publisher/electron-release-server/package.json +++ b/packages/publisher/electron-release-server/package.json @@ -10,7 +10,7 @@ "typings": "dist/PublisherERS.d.ts", "devDependencies": { "msw": "^2.7.0", - "vitest": "^3.1.3" + "vitest": "^4.0.0" }, "engines": { "node": ">= 22.12.0" diff --git a/packages/publisher/github/package.json b/packages/publisher/github/package.json index 173b8b9987..d7e4ef70c0 100644 --- a/packages/publisher/github/package.json +++ b/packages/publisher/github/package.json @@ -9,7 +9,7 @@ "main": "dist/PublisherGithub.js", "typings": "dist/PublisherGithub.d.ts", "devDependencies": { - "vitest": "^3.1.3" + "vitest": "^4.0.0" }, "engines": { "node": ">= 22.12.0" diff --git a/packages/template/base/package.json b/packages/template/base/package.json index cd98845d77..eaa7f96798 100644 --- a/packages/template/base/package.json +++ b/packages/template/base/package.json @@ -22,7 +22,7 @@ }, "devDependencies": { "@electron-forge/test-utils": "workspace:*", - "vitest": "^3.1.3" + "vitest": "^4.0.0" }, "publishConfig": { "access": "public" diff --git a/packages/template/vite-typescript/package.json b/packages/template/vite-typescript/package.json index 9c4eee158f..b8250e0f79 100644 --- a/packages/template/vite-typescript/package.json +++ b/packages/template/vite-typescript/package.json @@ -24,7 +24,7 @@ "@electron-forge/core-utils": "workspace:*", "@electron-forge/test-utils": "workspace:*", "fast-glob": "^3.2.7", - "vitest": "^3.1.3" + "vitest": "^4.0.0" }, "files": [ "dist", diff --git a/packages/template/vite/package.json b/packages/template/vite/package.json index 0cb3886179..d8f82e105c 100644 --- a/packages/template/vite/package.json +++ b/packages/template/vite/package.json @@ -23,7 +23,7 @@ "devDependencies": { "@electron-forge/test-utils": "workspace:*", "listr2": "^7.0.2", - "vitest": "^3.1.3" + "vitest": "^4.0.0" }, "publishConfig": { "access": "public" diff --git a/packages/template/webpack-typescript/package.json b/packages/template/webpack-typescript/package.json index 60df394a3c..6c58497a6c 100644 --- a/packages/template/webpack-typescript/package.json +++ b/packages/template/webpack-typescript/package.json @@ -30,7 +30,7 @@ "fork-ts-checker-webpack-plugin": "^7.2.13", "listr2": "^7.0.2", "typescript": "5.9.3", - "vitest": "^3.1.3", + "vitest": "^4.0.0", "webpack": "^5.69.1" }, "files": [ diff --git a/packages/template/webpack/package.json b/packages/template/webpack/package.json index 1618feb208..081778efe6 100644 --- a/packages/template/webpack/package.json +++ b/packages/template/webpack/package.json @@ -19,7 +19,7 @@ "devDependencies": { "@electron-forge/test-utils": "workspace:*", "listr2": "^7.0.2", - "vitest": "^3.1.3" + "vitest": "^4.0.0" }, "publishConfig": { "access": "public" diff --git a/packages/utils/core-utils/package.json b/packages/utils/core-utils/package.json index aef8a52f79..82a2f1deb8 100644 --- a/packages/utils/core-utils/package.json +++ b/packages/utils/core-utils/package.json @@ -24,7 +24,7 @@ "node": ">= 22.12.0" }, "devDependencies": { - "vitest": "^3.1.3" + "vitest": "^4.0.0" }, "files": [ "dist", diff --git a/vitest.config.mts b/vitest.config.mts index 23fc70f4ae..9e1fa0116f 100644 --- a/vitest.config.mts +++ b/vitest.config.mts @@ -6,5 +6,24 @@ export default defineConfig({ clearMocks: true, exclude: ['**/.links/**', '**/node_modules/**'], fileParallelism: false, + projects: [ + { + extends: './vitest.config.mts', + test: { + include: ['**/spec/**/*.spec.ts'], + exclude: ['**/spec/**/*.slow.spec.ts'], + name: 'fast', + }, + }, + { + extends: './vitest.config.mts', + test: { + include: ['**/spec/**/*.slow.spec.ts'], + name: 'slow', + hookTimeout: 160000, + testTimeout: 160000, + }, + }, + ], }, }); diff --git a/vitest.workspace.mts b/vitest.workspace.mts deleted file mode 100644 index 83454678c2..0000000000 --- a/vitest.workspace.mts +++ /dev/null @@ -1,21 +0,0 @@ -import { defineWorkspace } from 'vitest/config'; - -export default defineWorkspace([ - { - extends: './vitest.config.mts', - test: { - include: ['**/spec/**/*.spec.ts'], - exclude: ['**/spec/**/*.slow.spec.ts'], - name: 'fast', - }, - }, - { - extends: './vitest.config.mts', - test: { - include: ['**/spec/**/*.slow.spec.ts'], - name: 'slow', - hookTimeout: 160000, - testTimeout: 160000, - }, - }, -]); diff --git a/yarn.config.cjs b/yarn.config.cjs index 1974ae130e..208cdee43b 100644 --- a/yarn.config.cjs +++ b/yarn.config.cjs @@ -32,6 +32,9 @@ function enforceConsistentDependenciesAcrossTheProject({ Yarn }) { // so skip them for now if (OPTIONAL_DEPS.includes(dependency.ident)) continue; + // HACK: For now, we're using a different major version of Vite specifically for Vitest + if (dependency.ident === 'vite') continue; + for (const otherDependency of Yarn.dependencies({ ident: dependency.ident, })) { diff --git a/yarn.lock b/yarn.lock index 1f7cde3629..24d3bd5c6c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -797,7 +797,7 @@ __metadata: listr2: "npm:^7.0.2" log-symbols: "npm:^4.0.0" semver: "npm:^7.2.1" - vitest: "npm:^3.1.3" + vitest: "npm:^4.0.0" bin: electron-forge: dist/electron-forge.js electron-forge-vscode-nix: script/vscode.sh @@ -819,7 +819,7 @@ __metadata: log-symbols: "npm:^4.0.0" parse-author: "npm:^2.0.0" semver: "npm:^7.2.1" - vitest: "npm:^3.1.3" + vitest: "npm:^4.0.0" languageName: unknown linkType: soft @@ -842,7 +842,7 @@ __metadata: "@electron-forge/publisher-base": "workspace:*" "@electron-forge/shared-types": "workspace:*" "@electron-forge/template-base": "workspace:*" - "@electron-forge/template-fixture": "link:./spec/fixture/electron-forge-template-fixture" + "@electron-forge/template-fixture": "portal:./spec/fixture/electron-forge-template-fixture" "@electron-forge/template-vite": "workspace:*" "@electron-forge/template-vite-typescript": "workspace:*" "@electron-forge/template-webpack": "workspace:*" @@ -858,7 +858,7 @@ __metadata: "@vscode/sudo-prompt": "npm:^9.3.1" chalk: "npm:^4.0.0" debug: "npm:^4.3.1" - electron-forge-template-fixture-two: "link:./spec/fixture/electron-forge-template-fixture" + electron-forge-template-fixture-two: "portal:./spec/fixture/electron-forge-template-fixture" electron-installer-common: "npm:^0.10.2" fast-glob: "npm:^3.2.7" filenamify: "npm:^4.1.0" @@ -872,7 +872,7 @@ __metadata: semver: "npm:^7.2.1" source-map-support: "npm:^0.5.13" username: "npm:^5.1.0" - vitest: "npm:^3.1.3" + vitest: "npm:^4.0.0" languageName: unknown linkType: soft @@ -887,7 +887,7 @@ __metadata: electron-windows-store: "npm:^2.1.0" fs-extra: "npm:^10.0.0" parse-author: "npm:^2.0.0" - vitest: "npm:^3.1.3" + vitest: "npm:^4.0.0" dependenciesMeta: electron-windows-store: optional: true @@ -900,7 +900,7 @@ __metadata: dependencies: "@electron-forge/shared-types": "workspace:*" fs-extra: "npm:^10.0.0" - vitest: "npm:^3.1.3" + vitest: "npm:^4.0.0" which: "npm:^2.0.2" languageName: unknown linkType: soft @@ -913,7 +913,7 @@ __metadata: "@electron-forge/shared-types": "workspace:*" "@electron-forge/test-utils": "workspace:*" electron-installer-debian: "npm:^3.2.0" - vitest: "npm:^3.1.3" + vitest: "npm:^4.0.0" dependenciesMeta: electron-installer-debian: optional: true @@ -929,7 +929,7 @@ __metadata: "@electron-forge/test-utils": "workspace:*" electron-installer-dmg: "npm:^5.0.1" fs-extra: "npm:^10.0.0" - vitest: "npm:^3.1.3" + vitest: "npm:^4.0.0" dependenciesMeta: electron-installer-dmg: optional: true @@ -945,7 +945,7 @@ __metadata: "@electron-forge/test-utils": "workspace:*" "@malept/electron-installer-flatpak": "npm:^0.11.4" fs-extra: "npm:^10.0.0" - vitest: "npm:^3.1.3" + vitest: "npm:^4.0.0" dependenciesMeta: "@malept/electron-installer-flatpak": optional: true @@ -963,7 +963,7 @@ __metadata: electron-windows-msix: "npm:^2.0.4" fs-extra: "npm:^10.0.0" parse-author: "npm:^2.0.0" - vitest: "npm:^3.1.3" + vitest: "npm:^4.0.0" languageName: unknown linkType: soft @@ -975,7 +975,7 @@ __metadata: "@electron-forge/shared-types": "workspace:*" "@electron-forge/test-utils": "workspace:*" "@electron/osx-sign": "npm:^2.3.0" - vitest: "npm:^3.1.3" + vitest: "npm:^4.0.0" languageName: unknown linkType: soft @@ -987,7 +987,7 @@ __metadata: "@electron-forge/shared-types": "workspace:*" "@electron-forge/test-utils": "workspace:*" electron-installer-redhat: "npm:^3.2.0" - vitest: "npm:^3.1.3" + vitest: "npm:^4.0.0" dependenciesMeta: electron-installer-redhat: optional: true @@ -1002,7 +1002,7 @@ __metadata: "@electron-forge/shared-types": "workspace:*" "@electron-forge/test-utils": "workspace:*" electron-installer-snap: "npm:^5.2.0" - vitest: "npm:^3.1.3" + vitest: "npm:^4.0.0" dependenciesMeta: electron-installer-snap: optional: true @@ -1035,7 +1035,7 @@ __metadata: log-symbols: "npm:^4.0.0" parse-author: "npm:^2.0.0" semver: "npm:^7.2.1" - vitest: "npm:^3.1.3" + vitest: "npm:^4.0.0" languageName: unknown linkType: soft @@ -1049,7 +1049,7 @@ __metadata: cross-zip: "npm:^4.0.0" fs-extra: "npm:^10.0.0" got: "npm:^14.0.0" - vitest: "npm:^3.1.3" + vitest: "npm:^4.0.0" languageName: unknown linkType: soft @@ -1091,7 +1091,7 @@ __metadata: "@electron-forge/plugin-base": "workspace:*" "@electron-forge/shared-types": "workspace:*" fs-extra: "npm:^10.0.0" - vitest: "npm:^3.1.3" + vitest: "npm:^4.0.0" languageName: unknown linkType: soft @@ -1109,7 +1109,7 @@ __metadata: fs-extra: "npm:^10.0.0" listr2: "npm:^7.0.2" vite: "npm:^5.0.12" - vitest: "npm:^3.1.3" + vitest: "npm:^4.0.0" which: "npm:^2.0.2" xvfb-maybe: "npm:^0.2.1" languageName: unknown @@ -1132,7 +1132,7 @@ __metadata: fs-extra: "npm:^10.0.0" html-webpack-plugin: "npm:^5.5.3" listr2: "npm:^7.0.2" - vitest: "npm:^3.1.3" + vitest: "npm:^4.0.0" webpack: "npm:^5.69.1" webpack-dev-server: "npm:^4.0.0" webpack-merge: "npm:^5.7.3" @@ -1146,7 +1146,7 @@ __metadata: resolution: "@electron-forge/publisher-base@workspace:packages/publisher/base" dependencies: "@electron-forge/shared-types": "workspace:*" - vitest: "npm:^3.1.3" + vitest: "npm:^4.0.0" languageName: unknown linkType: soft @@ -1170,7 +1170,7 @@ __metadata: form-data: "npm:^4.0.0" fs-extra: "npm:^10.0.0" msw: "npm:^2.7.0" - vitest: "npm:^3.1.3" + vitest: "npm:^4.0.0" languageName: unknown linkType: soft @@ -1201,7 +1201,7 @@ __metadata: fs-extra: "npm:^10.0.0" log-symbols: "npm:^4.0.0" mime-types: "npm:^2.1.25" - vitest: "npm:^3.1.3" + vitest: "npm:^4.0.0" languageName: unknown linkType: soft @@ -1248,7 +1248,7 @@ __metadata: dependencies: "@electron-forge/publisher-base": "workspace:*" "@electron-forge/shared-types": "workspace:*" - vitest: "npm:^3.1.3" + vitest: "npm:^4.0.0" languageName: unknown linkType: soft @@ -1275,13 +1275,13 @@ __metadata: fs-extra: "npm:^10.0.0" semver: "npm:^7.2.1" username: "npm:^5.1.0" - vitest: "npm:^3.1.3" + vitest: "npm:^4.0.0" languageName: unknown linkType: soft -"@electron-forge/template-fixture@link:./spec/fixture/electron-forge-template-fixture::locator=%40electron-forge%2Fcore%40workspace%3Apackages%2Fapi%2Fcore": +"@electron-forge/template-fixture@portal:./spec/fixture/electron-forge-template-fixture::locator=%40electron-forge%2Fcore%40workspace%3Apackages%2Fapi%2Fcore": version: 0.0.0-use.local - resolution: "@electron-forge/template-fixture@link:./spec/fixture/electron-forge-template-fixture::locator=%40electron-forge%2Fcore%40workspace%3Apackages%2Fapi%2Fcore" + resolution: "@electron-forge/template-fixture@portal:./spec/fixture/electron-forge-template-fixture::locator=%40electron-forge%2Fcore%40workspace%3Apackages%2Fapi%2Fcore" languageName: node linkType: soft @@ -1295,7 +1295,7 @@ __metadata: "@electron-forge/test-utils": "workspace:*" fast-glob: "npm:^3.2.7" fs-extra: "npm:^10.0.0" - vitest: "npm:^3.1.3" + vitest: "npm:^4.0.0" languageName: unknown linkType: soft @@ -1308,7 +1308,7 @@ __metadata: "@electron-forge/test-utils": "workspace:*" fs-extra: "npm:^10.0.0" listr2: "npm:^7.0.2" - vitest: "npm:^3.1.3" + vitest: "npm:^4.0.0" languageName: unknown linkType: soft @@ -1330,7 +1330,7 @@ __metadata: fs-extra: "npm:^10.0.0" listr2: "npm:^7.0.2" typescript: "npm:5.9.3" - vitest: "npm:^3.1.3" + vitest: "npm:^4.0.0" webpack: "npm:^5.69.1" languageName: unknown linkType: soft @@ -1344,7 +1344,7 @@ __metadata: "@electron-forge/test-utils": "workspace:*" fs-extra: "npm:^10.0.0" listr2: "npm:^7.0.2" - vitest: "npm:^3.1.3" + vitest: "npm:^4.0.0" languageName: unknown linkType: soft @@ -2928,10 +2928,10 @@ __metadata: languageName: node linkType: hard -"@jridgewell/sourcemap-codec@npm:^1.5.0": - version: 1.5.0 - resolution: "@jridgewell/sourcemap-codec@npm:1.5.0" - checksum: 10c0/2eb864f276eb1096c3c11da3e9bb518f6d9fc0023c78344cdc037abadc725172c70314bdb360f2d4b7bffec7f5d657ce006816bc5d4ecb35e61b66132db00c18 +"@jridgewell/sourcemap-codec@npm:^1.5.5": + version: 1.5.5 + resolution: "@jridgewell/sourcemap-codec@npm:1.5.5" + checksum: 10c0/f9e538f302b63c0ebc06eecb1dd9918dd4289ed36147a0ddce35d6ea4d7ebbda243cda7b2213b6a5e1d8087a298d5cf630fb2bd39329cdecb82017023f6081a0 languageName: node linkType: hard @@ -3735,9 +3735,9 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-android-arm-eabi@npm:4.52.4": - version: 4.52.4 - resolution: "@rollup/rollup-android-arm-eabi@npm:4.52.4" +"@rollup/rollup-android-arm-eabi@npm:4.53.3": + version: 4.53.3 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.53.3" conditions: os=android & cpu=arm languageName: node linkType: hard @@ -3749,9 +3749,9 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-android-arm64@npm:4.52.4": - version: 4.52.4 - resolution: "@rollup/rollup-android-arm64@npm:4.52.4" +"@rollup/rollup-android-arm64@npm:4.53.3": + version: 4.53.3 + resolution: "@rollup/rollup-android-arm64@npm:4.53.3" conditions: os=android & cpu=arm64 languageName: node linkType: hard @@ -3763,9 +3763,9 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-darwin-arm64@npm:4.52.4": - version: 4.52.4 - resolution: "@rollup/rollup-darwin-arm64@npm:4.52.4" +"@rollup/rollup-darwin-arm64@npm:4.53.3": + version: 4.53.3 + resolution: "@rollup/rollup-darwin-arm64@npm:4.53.3" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard @@ -3777,9 +3777,9 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-darwin-x64@npm:4.52.4": - version: 4.52.4 - resolution: "@rollup/rollup-darwin-x64@npm:4.52.4" +"@rollup/rollup-darwin-x64@npm:4.53.3": + version: 4.53.3 + resolution: "@rollup/rollup-darwin-x64@npm:4.53.3" conditions: os=darwin & cpu=x64 languageName: node linkType: hard @@ -3791,9 +3791,9 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-freebsd-arm64@npm:4.52.4": - version: 4.52.4 - resolution: "@rollup/rollup-freebsd-arm64@npm:4.52.4" +"@rollup/rollup-freebsd-arm64@npm:4.53.3": + version: 4.53.3 + resolution: "@rollup/rollup-freebsd-arm64@npm:4.53.3" conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard @@ -3805,9 +3805,9 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-freebsd-x64@npm:4.52.4": - version: 4.52.4 - resolution: "@rollup/rollup-freebsd-x64@npm:4.52.4" +"@rollup/rollup-freebsd-x64@npm:4.53.3": + version: 4.53.3 + resolution: "@rollup/rollup-freebsd-x64@npm:4.53.3" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard @@ -3819,9 +3819,9 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-arm-gnueabihf@npm:4.52.4": - version: 4.52.4 - resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.52.4" +"@rollup/rollup-linux-arm-gnueabihf@npm:4.53.3": + version: 4.53.3 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.53.3" conditions: os=linux & cpu=arm & libc=glibc languageName: node linkType: hard @@ -3833,9 +3833,9 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-arm-musleabihf@npm:4.52.4": - version: 4.52.4 - resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.52.4" +"@rollup/rollup-linux-arm-musleabihf@npm:4.53.3": + version: 4.53.3 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.53.3" conditions: os=linux & cpu=arm & libc=musl languageName: node linkType: hard @@ -3847,9 +3847,9 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-arm64-gnu@npm:4.52.4": - version: 4.52.4 - resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.52.4" +"@rollup/rollup-linux-arm64-gnu@npm:4.53.3": + version: 4.53.3 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.53.3" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard @@ -3861,16 +3861,16 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-arm64-musl@npm:4.52.4": - version: 4.52.4 - resolution: "@rollup/rollup-linux-arm64-musl@npm:4.52.4" +"@rollup/rollup-linux-arm64-musl@npm:4.53.3": + version: 4.53.3 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.53.3" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-loong64-gnu@npm:4.52.4": - version: 4.52.4 - resolution: "@rollup/rollup-linux-loong64-gnu@npm:4.52.4" +"@rollup/rollup-linux-loong64-gnu@npm:4.53.3": + version: 4.53.3 + resolution: "@rollup/rollup-linux-loong64-gnu@npm:4.53.3" conditions: os=linux & cpu=loong64 & libc=glibc languageName: node linkType: hard @@ -3882,9 +3882,9 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-ppc64-gnu@npm:4.52.4": - version: 4.52.4 - resolution: "@rollup/rollup-linux-ppc64-gnu@npm:4.52.4" +"@rollup/rollup-linux-ppc64-gnu@npm:4.53.3": + version: 4.53.3 + resolution: "@rollup/rollup-linux-ppc64-gnu@npm:4.53.3" conditions: os=linux & cpu=ppc64 & libc=glibc languageName: node linkType: hard @@ -3896,16 +3896,16 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-riscv64-gnu@npm:4.52.4": - version: 4.52.4 - resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.52.4" +"@rollup/rollup-linux-riscv64-gnu@npm:4.53.3": + version: 4.53.3 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.53.3" conditions: os=linux & cpu=riscv64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-riscv64-musl@npm:4.52.4": - version: 4.52.4 - resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.52.4" +"@rollup/rollup-linux-riscv64-musl@npm:4.53.3": + version: 4.53.3 + resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.53.3" conditions: os=linux & cpu=riscv64 & libc=musl languageName: node linkType: hard @@ -3917,9 +3917,9 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-s390x-gnu@npm:4.52.4": - version: 4.52.4 - resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.52.4" +"@rollup/rollup-linux-s390x-gnu@npm:4.53.3": + version: 4.53.3 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.53.3" conditions: os=linux & cpu=s390x & libc=glibc languageName: node linkType: hard @@ -3931,9 +3931,9 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-x64-gnu@npm:4.52.4": - version: 4.52.4 - resolution: "@rollup/rollup-linux-x64-gnu@npm:4.52.4" +"@rollup/rollup-linux-x64-gnu@npm:4.53.3": + version: 4.53.3 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.53.3" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard @@ -3945,16 +3945,16 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-x64-musl@npm:4.52.4": - version: 4.52.4 - resolution: "@rollup/rollup-linux-x64-musl@npm:4.52.4" +"@rollup/rollup-linux-x64-musl@npm:4.53.3": + version: 4.53.3 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.53.3" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-openharmony-arm64@npm:4.52.4": - version: 4.52.4 - resolution: "@rollup/rollup-openharmony-arm64@npm:4.52.4" +"@rollup/rollup-openharmony-arm64@npm:4.53.3": + version: 4.53.3 + resolution: "@rollup/rollup-openharmony-arm64@npm:4.53.3" conditions: os=openharmony & cpu=arm64 languageName: node linkType: hard @@ -3966,9 +3966,9 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-win32-arm64-msvc@npm:4.52.4": - version: 4.52.4 - resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.52.4" +"@rollup/rollup-win32-arm64-msvc@npm:4.53.3": + version: 4.53.3 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.53.3" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard @@ -3980,16 +3980,16 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-win32-ia32-msvc@npm:4.52.4": - version: 4.52.4 - resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.52.4" +"@rollup/rollup-win32-ia32-msvc@npm:4.53.3": + version: 4.53.3 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.53.3" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@rollup/rollup-win32-x64-gnu@npm:4.52.4": - version: 4.52.4 - resolution: "@rollup/rollup-win32-x64-gnu@npm:4.52.4" +"@rollup/rollup-win32-x64-gnu@npm:4.53.3": + version: 4.53.3 + resolution: "@rollup/rollup-win32-x64-gnu@npm:4.53.3" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -4001,9 +4001,9 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-win32-x64-msvc@npm:4.52.4": - version: 4.52.4 - resolution: "@rollup/rollup-win32-x64-msvc@npm:4.52.4" +"@rollup/rollup-win32-x64-msvc@npm:4.53.3": + version: 4.53.3 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.53.3" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -4762,6 +4762,13 @@ __metadata: languageName: node linkType: hard +"@standard-schema/spec@npm:^1.0.0": + version: 1.0.0 + resolution: "@standard-schema/spec@npm:1.0.0" + checksum: 10c0/a1ab9a8bdc09b5b47aa8365d0e0ec40cc2df6437be02853696a0e377321653b0d3ac6f079a8c67d5ddbe9821025584b1fb71d9cc041a6666a96f1fadf2ece15f + languageName: node + linkType: hard + "@szmarczak/http-timer@npm:^4.0.5": version: 4.0.6 resolution: "@szmarczak/http-timer@npm:4.0.6" @@ -4868,6 +4875,16 @@ __metadata: languageName: node linkType: hard +"@types/chai@npm:^5.2.2": + version: 5.2.3 + resolution: "@types/chai@npm:5.2.3" + dependencies: + "@types/deep-eql": "npm:*" + assertion-error: "npm:^2.0.1" + checksum: 10c0/e0ef1de3b6f8045a5e473e867c8565788c444271409d155588504840ad1a53611011f85072188c2833941189400228c1745d78323dac13fcede9c2b28bacfb2f + languageName: node + linkType: hard + "@types/connect-history-api-fallback@npm:^1.3.5": version: 1.3.5 resolution: "@types/connect-history-api-fallback@npm:1.3.5" @@ -4928,6 +4945,13 @@ __metadata: languageName: node linkType: hard +"@types/deep-eql@npm:*": + version: 4.0.2 + resolution: "@types/deep-eql@npm:4.0.2" + checksum: 10c0/bf3f811843117900d7084b9d0c852da9a044d12eb40e6de73b552598a6843c21291a8a381b0532644574beecd5e3491c5ff3a0365ab86b15d59862c025384844 + languageName: node + linkType: hard + "@types/estree@npm:1.0.6, @types/estree@npm:^1.0.0, @types/estree@npm:^1.0.5": version: 1.0.6 resolution: "@types/estree@npm:1.0.6" @@ -5516,84 +5540,83 @@ __metadata: languageName: node linkType: hard -"@vitest/expect@npm:3.1.3": - version: 3.1.3 - resolution: "@vitest/expect@npm:3.1.3" +"@vitest/expect@npm:4.0.14": + version: 4.0.14 + resolution: "@vitest/expect@npm:4.0.14" dependencies: - "@vitest/spy": "npm:3.1.3" - "@vitest/utils": "npm:3.1.3" - chai: "npm:^5.2.0" - tinyrainbow: "npm:^2.0.0" - checksum: 10c0/3a61e5526ed57491c9c230cb592849a2c15e6b4376bfaec4f623ac75fdcf5c24c322949cfb5362136fc8be5eb19be88d094917ea5f700bd3da0ea0c68ee4a8d9 + "@standard-schema/spec": "npm:^1.0.0" + "@types/chai": "npm:^5.2.2" + "@vitest/spy": "npm:4.0.14" + "@vitest/utils": "npm:4.0.14" + chai: "npm:^6.2.1" + tinyrainbow: "npm:^3.0.3" + checksum: 10c0/cb82f16c0e7bd82743d91bc99a0c2a0906a2d5760d0bd80d68964e4d4d5fd99097b154de2315014a857ce86d66ecb7bda81c6ba4b9b3a3a5dc5c16fcc4187bde languageName: node linkType: hard -"@vitest/mocker@npm:3.1.3": - version: 3.1.3 - resolution: "@vitest/mocker@npm:3.1.3" +"@vitest/mocker@npm:4.0.14": + version: 4.0.14 + resolution: "@vitest/mocker@npm:4.0.14" dependencies: - "@vitest/spy": "npm:3.1.3" + "@vitest/spy": "npm:4.0.14" estree-walker: "npm:^3.0.3" - magic-string: "npm:^0.30.17" + magic-string: "npm:^0.30.21" peerDependencies: msw: ^2.4.9 - vite: ^5.0.0 || ^6.0.0 + vite: ^6.0.0 || ^7.0.0-0 peerDependenciesMeta: msw: optional: true vite: optional: true - checksum: 10c0/6e6a62e27aa6cd146d14ae64eb9acfc0f49e7479ca426af1fb4df362456aa3456abf29731247659032e4bfb7ac9482fca1d1c7e1501e1a186eb211221e1f613a + checksum: 10c0/fba7366b26a7fe1222bb576ec807297270a2ad55d9db0d4849b4011364b182545326a8e9522a386e89d52afefa3bafbf456c57792ba9fa2fab4d84772e8c02ae languageName: node linkType: hard -"@vitest/pretty-format@npm:3.1.3, @vitest/pretty-format@npm:^3.1.3": - version: 3.1.3 - resolution: "@vitest/pretty-format@npm:3.1.3" +"@vitest/pretty-format@npm:4.0.14": + version: 4.0.14 + resolution: "@vitest/pretty-format@npm:4.0.14" dependencies: - tinyrainbow: "npm:^2.0.0" - checksum: 10c0/eba164d2c0b2babbcf6bb054da3b326d08cc3a0289ade3c64309bfe5e7c3124cd4d45a60b2f673cf4f5b3a97381fb7af7009780a5d9665afdf7f8263fa34c068 + tinyrainbow: "npm:^3.0.3" + checksum: 10c0/ca03cbad86053a05eb3164b1794ada25767215e94f76fe069c0a0431629500a53b221610b186917bfbdebf6a28ac7d3945f78e1e18875230ea6dda685c6a18f3 languageName: node linkType: hard -"@vitest/runner@npm:3.1.3": - version: 3.1.3 - resolution: "@vitest/runner@npm:3.1.3" +"@vitest/runner@npm:4.0.14": + version: 4.0.14 + resolution: "@vitest/runner@npm:4.0.14" dependencies: - "@vitest/utils": "npm:3.1.3" + "@vitest/utils": "npm:4.0.14" pathe: "npm:^2.0.3" - checksum: 10c0/f03c26e72657242ce68a93b46ee8a4e6fa1a290850be608988622a3efef744ffadc0436123acafe61977608b287b1637f4f781d27107ee0c33937c54f547159d + checksum: 10c0/97e49a99772fdc0b798d1ba5e8eabc76fa8846a7b5e41c7ac8a43cb0455d333fa37987b88bcbe344d7af51c967f06016c54fef70ded3a212479c71cd4d892d78 languageName: node linkType: hard -"@vitest/snapshot@npm:3.1.3": - version: 3.1.3 - resolution: "@vitest/snapshot@npm:3.1.3" +"@vitest/snapshot@npm:4.0.14": + version: 4.0.14 + resolution: "@vitest/snapshot@npm:4.0.14" dependencies: - "@vitest/pretty-format": "npm:3.1.3" - magic-string: "npm:^0.30.17" + "@vitest/pretty-format": "npm:4.0.14" + magic-string: "npm:^0.30.21" pathe: "npm:^2.0.3" - checksum: 10c0/60b70c1d878c3d9a4fe3464d14be2318a7a3be24131beb801712735d5dcbc7db7b798f21c98c6fbad4998554992038b29655e1b6e2503242627f203fd89c97c3 + checksum: 10c0/6b187b08751fbacb32baa2e970d6f2fa90e9de1bc76c97f64bb5370c2341ff18af63af571dd11fa94cbd5ddba00de6b5280cbab948bca738d80f57d8f662035a languageName: node linkType: hard -"@vitest/spy@npm:3.1.3": - version: 3.1.3 - resolution: "@vitest/spy@npm:3.1.3" - dependencies: - tinyspy: "npm:^3.0.2" - checksum: 10c0/6a8c187069827c56f3492f212ccf76c797fe52392849948af736a0f579e4533fa91041d829e2574b252af4aaadec066ca0714450d6457b31526153978bc55192 +"@vitest/spy@npm:4.0.14": + version: 4.0.14 + resolution: "@vitest/spy@npm:4.0.14" + checksum: 10c0/46917fab9c9aaa3c4f815300ec8e21631a7f9cd4d74aac06bad29bb750d9e7a726cd26149c29ea16b1dc5197995faceff3efdcc41c49f402e9da8916dd410be3 languageName: node linkType: hard -"@vitest/utils@npm:3.1.3": - version: 3.1.3 - resolution: "@vitest/utils@npm:3.1.3" +"@vitest/utils@npm:4.0.14": + version: 4.0.14 + resolution: "@vitest/utils@npm:4.0.14" dependencies: - "@vitest/pretty-format": "npm:3.1.3" - loupe: "npm:^3.1.3" - tinyrainbow: "npm:^2.0.0" - checksum: 10c0/1c4ea711b87a8b2c7dc2da91f20427dccc34c0d1d0e81b8142780d24b6caa3c724e8287f7e01e9e875262b6bb912d55711fb99e66f718ba30cc21706a335829d + "@vitest/pretty-format": "npm:4.0.14" + tinyrainbow: "npm:^3.0.3" + checksum: 10c0/be5432b4445bdb1b41d1ad1bffe9e2a297b7d1d9addef3cbf3782d66da4e80ec8a14e2396638172572e5a6e3527f34bae7f1b98cee00cbe1175b099a28073ecd languageName: node linkType: hard @@ -6754,13 +6777,6 @@ __metadata: languageName: node linkType: hard -"cac@npm:^6.7.14": - version: 6.7.14 - resolution: "cac@npm:6.7.14" - checksum: 10c0/4ee06aaa7bab8981f0d54e5f5f9d4adcd64058e9697563ce336d8a3878ed018ee18ebe5359b2430eceae87e0758e62ea2019c3f52ae6e211b1bd2e133856cd10 - languageName: node - linkType: hard - "cacache@npm:^19.0.1": version: 19.0.1 resolution: "cacache@npm:19.0.1" @@ -6941,16 +6957,10 @@ __metadata: languageName: node linkType: hard -"chai@npm:^5.2.0": - version: 5.2.0 - resolution: "chai@npm:5.2.0" - dependencies: - assertion-error: "npm:^2.0.1" - check-error: "npm:^2.1.1" - deep-eql: "npm:^5.0.1" - loupe: "npm:^3.1.0" - pathval: "npm:^2.0.0" - checksum: 10c0/dfd1cb719c7cebb051b727672d382a35338af1470065cb12adb01f4ee451bbf528e0e0f9ab2016af5fc1eea4df6e7f4504dc8443f8f00bd8fb87ad32dc516f7d +"chai@npm:^6.2.1": + version: 6.2.1 + resolution: "chai@npm:6.2.1" + checksum: 10c0/0c2d84392d7c6d44ca5d14d94204f1760e22af68b83d1f4278b5c4d301dabfc0242da70954dd86b1eda01e438f42950de6cf9d569df2103678538e4014abe50b languageName: node linkType: hard @@ -7030,13 +7040,6 @@ __metadata: languageName: node linkType: hard -"check-error@npm:^2.1.1": - version: 2.1.1 - resolution: "check-error@npm:2.1.1" - checksum: 10c0/979f13eccab306cf1785fa10941a590b4e7ea9916ea2a4f8c87f0316fc3eab07eabefb6e587424ef0f88cbcd3805791f172ea739863ca3d7ce2afc54641c7f0e - languageName: node - linkType: hard - "chokidar@npm:^3.5.3": version: 3.6.0 resolution: "chokidar@npm:3.6.0" @@ -7870,13 +7873,6 @@ __metadata: languageName: node linkType: hard -"deep-eql@npm:^5.0.1": - version: 5.0.2 - resolution: "deep-eql@npm:5.0.2" - checksum: 10c0/7102cf3b7bb719c6b9c0db2e19bf0aa9318d141581befe8c7ce8ccd39af9eaa4346e5e05adef7f9bd7015da0f13a3a25dcfe306ef79dc8668aedbecb658dd247 - languageName: node - linkType: hard - "deep-is@npm:^0.1.3": version: 0.1.4 resolution: "deep-is@npm:0.1.4" @@ -8228,9 +8224,9 @@ __metadata: languageName: node linkType: hard -"electron-forge-template-fixture-two@link:./spec/fixture/electron-forge-template-fixture::locator=%40electron-forge%2Fcore%40workspace%3Apackages%2Fapi%2Fcore": +"electron-forge-template-fixture-two@portal:./spec/fixture/electron-forge-template-fixture::locator=%40electron-forge%2Fcore%40workspace%3Apackages%2Fapi%2Fcore": version: 0.0.0-use.local - resolution: "electron-forge-template-fixture-two@link:./spec/fixture/electron-forge-template-fixture::locator=%40electron-forge%2Fcore%40workspace%3Apackages%2Fapi%2Fcore" + resolution: "electron-forge-template-fixture-two@portal:./spec/fixture/electron-forge-template-fixture::locator=%40electron-forge%2Fcore%40workspace%3Apackages%2Fapi%2Fcore" languageName: node linkType: soft @@ -8323,8 +8319,8 @@ __metadata: typedoc: "npm:0.25.13" typescript: "npm:5.9.3" username: "npm:^5.1.0" - vite: "npm:^5.0.12" - vitest: "npm:^3.1.3" + vite: "npm:^7.2.0" + vitest: "npm:^4.0.0" webpack: "npm:^5.69.1" webpack-dev-server: "npm:^4.0.0" webpack-merge: "npm:^5.7.3" @@ -9812,10 +9808,10 @@ __metadata: languageName: node linkType: hard -"expect-type@npm:^1.2.1": - version: 1.2.1 - resolution: "expect-type@npm:1.2.1" - checksum: 10c0/b775c9adab3c190dd0d398c722531726cdd6022849b4adba19dceab58dda7e000a7c6c872408cd73d665baa20d381eca36af4f7b393a4ba60dd10232d1fb8898 +"expect-type@npm:^1.2.2": + version: 1.2.2 + resolution: "expect-type@npm:1.2.2" + checksum: 10c0/6019019566063bbc7a690d9281d920b1a91284a4a093c2d55d71ffade5ac890cf37a51e1da4602546c4b56569d2ad2fc175a2ccee77d1ae06cb3af91ef84f44b languageName: node linkType: hard @@ -10039,18 +10035,6 @@ __metadata: languageName: node linkType: hard -"fdir@npm:^6.4.4": - version: 6.4.4 - resolution: "fdir@npm:6.4.4" - peerDependencies: - picomatch: ^3 || ^4 - peerDependenciesMeta: - picomatch: - optional: true - checksum: 10c0/6ccc33be16945ee7bc841e1b4178c0b4cf18d3804894cb482aa514651c962a162f96da7ffc6ebfaf0df311689fb70091b04dd6caffe28d56b9ebdc0e7ccadfdd - languageName: node - linkType: hard - "figures@npm:3.2.0, figures@npm:^3.0.0": version: 3.2.0 resolution: "figures@npm:3.2.0" @@ -13343,20 +13327,6 @@ __metadata: languageName: node linkType: hard -"loupe@npm:^3.1.0": - version: 3.1.2 - resolution: "loupe@npm:3.1.2" - checksum: 10c0/b13c02e3ddd6a9d5f8bf84133b3242de556512d824dddeea71cce2dbd6579c8f4d672381c4e742d45cf4423d0701765b4a6e5fbc24701def16bc2b40f8daa96a - languageName: node - linkType: hard - -"loupe@npm:^3.1.3": - version: 3.1.3 - resolution: "loupe@npm:3.1.3" - checksum: 10c0/f5dab4144254677de83a35285be1b8aba58b3861439ce4ba65875d0d5f3445a4a496daef63100ccf02b2dbc25bf58c6db84c9cb0b96d6435331e9d0a33b48541 - languageName: node - linkType: hard - "lower-case@npm:^2.0.2": version: 2.0.2 resolution: "lower-case@npm:2.0.2" @@ -13434,12 +13404,12 @@ __metadata: languageName: node linkType: hard -"magic-string@npm:^0.30.17": - version: 0.30.17 - resolution: "magic-string@npm:0.30.17" +"magic-string@npm:^0.30.21": + version: 0.30.21 + resolution: "magic-string@npm:0.30.21" dependencies: - "@jridgewell/sourcemap-codec": "npm:^1.5.0" - checksum: 10c0/16826e415d04b88378f200fe022b53e638e3838b9e496edda6c0e086d7753a44a6ed187adc72d19f3623810589bf139af1a315541cd6a26ae0771a0193eaf7b8 + "@jridgewell/sourcemap-codec": "npm:^1.5.5" + checksum: 10c0/299378e38f9a270069fc62358522ddfb44e94244baa0d6a8980ab2a9b2490a1d03b236b447eee309e17eb3bddfa482c61259d47960eb018a904f0ded52780c4a languageName: node linkType: hard @@ -15091,6 +15061,13 @@ __metadata: languageName: node linkType: hard +"obug@npm:^2.1.1": + version: 2.1.1 + resolution: "obug@npm:2.1.1" + checksum: 10c0/59dccd7de72a047e08f8649e94c1015ec72f94eefb6ddb57fb4812c4b425a813bc7e7cd30c9aca20db3c59abc3c85cc7a62bb656a968741d770f4e8e02bc2e78 + languageName: node + linkType: hard + "on-finished@npm:2.4.1": version: 2.4.1 resolution: "on-finished@npm:2.4.1" @@ -15741,13 +15718,6 @@ __metadata: languageName: node linkType: hard -"pathval@npm:^2.0.0": - version: 2.0.0 - resolution: "pathval@npm:2.0.0" - checksum: 10c0/602e4ee347fba8a599115af2ccd8179836a63c925c23e04bd056d0674a64b39e3a081b643cc7bc0b84390517df2d800a46fcc5598d42c155fe4977095c2f77c5 - languageName: node - linkType: hard - "pe-library@npm:^1.0.1": version: 1.0.1 resolution: "pe-library@npm:1.0.1" @@ -15892,7 +15862,7 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.5.3": +"postcss@npm:^8.5.6": version: 8.5.6 resolution: "postcss@npm:8.5.6" dependencies: @@ -16834,32 +16804,32 @@ __metadata: languageName: node linkType: hard -"rollup@npm:^4.34.9": - version: 4.52.4 - resolution: "rollup@npm:4.52.4" - dependencies: - "@rollup/rollup-android-arm-eabi": "npm:4.52.4" - "@rollup/rollup-android-arm64": "npm:4.52.4" - "@rollup/rollup-darwin-arm64": "npm:4.52.4" - "@rollup/rollup-darwin-x64": "npm:4.52.4" - "@rollup/rollup-freebsd-arm64": "npm:4.52.4" - "@rollup/rollup-freebsd-x64": "npm:4.52.4" - "@rollup/rollup-linux-arm-gnueabihf": "npm:4.52.4" - "@rollup/rollup-linux-arm-musleabihf": "npm:4.52.4" - "@rollup/rollup-linux-arm64-gnu": "npm:4.52.4" - "@rollup/rollup-linux-arm64-musl": "npm:4.52.4" - "@rollup/rollup-linux-loong64-gnu": "npm:4.52.4" - "@rollup/rollup-linux-ppc64-gnu": "npm:4.52.4" - "@rollup/rollup-linux-riscv64-gnu": "npm:4.52.4" - "@rollup/rollup-linux-riscv64-musl": "npm:4.52.4" - "@rollup/rollup-linux-s390x-gnu": "npm:4.52.4" - "@rollup/rollup-linux-x64-gnu": "npm:4.52.4" - "@rollup/rollup-linux-x64-musl": "npm:4.52.4" - "@rollup/rollup-openharmony-arm64": "npm:4.52.4" - "@rollup/rollup-win32-arm64-msvc": "npm:4.52.4" - "@rollup/rollup-win32-ia32-msvc": "npm:4.52.4" - "@rollup/rollup-win32-x64-gnu": "npm:4.52.4" - "@rollup/rollup-win32-x64-msvc": "npm:4.52.4" +"rollup@npm:^4.43.0": + version: 4.53.3 + resolution: "rollup@npm:4.53.3" + dependencies: + "@rollup/rollup-android-arm-eabi": "npm:4.53.3" + "@rollup/rollup-android-arm64": "npm:4.53.3" + "@rollup/rollup-darwin-arm64": "npm:4.53.3" + "@rollup/rollup-darwin-x64": "npm:4.53.3" + "@rollup/rollup-freebsd-arm64": "npm:4.53.3" + "@rollup/rollup-freebsd-x64": "npm:4.53.3" + "@rollup/rollup-linux-arm-gnueabihf": "npm:4.53.3" + "@rollup/rollup-linux-arm-musleabihf": "npm:4.53.3" + "@rollup/rollup-linux-arm64-gnu": "npm:4.53.3" + "@rollup/rollup-linux-arm64-musl": "npm:4.53.3" + "@rollup/rollup-linux-loong64-gnu": "npm:4.53.3" + "@rollup/rollup-linux-ppc64-gnu": "npm:4.53.3" + "@rollup/rollup-linux-riscv64-gnu": "npm:4.53.3" + "@rollup/rollup-linux-riscv64-musl": "npm:4.53.3" + "@rollup/rollup-linux-s390x-gnu": "npm:4.53.3" + "@rollup/rollup-linux-x64-gnu": "npm:4.53.3" + "@rollup/rollup-linux-x64-musl": "npm:4.53.3" + "@rollup/rollup-openharmony-arm64": "npm:4.53.3" + "@rollup/rollup-win32-arm64-msvc": "npm:4.53.3" + "@rollup/rollup-win32-ia32-msvc": "npm:4.53.3" + "@rollup/rollup-win32-x64-gnu": "npm:4.53.3" + "@rollup/rollup-win32-x64-msvc": "npm:4.53.3" "@types/estree": "npm:1.0.8" fsevents: "npm:~2.3.2" dependenciesMeta: @@ -16911,7 +16881,7 @@ __metadata: optional: true bin: rollup: dist/bin/rollup - checksum: 10c0/aaec0f57e887d4fb37d152f93cf7133954eec79d11643e95de768ec9a377f08793b1745c648ca65a0dcc6c795c4d9ca398724d013e5745de270e88a543782aea + checksum: 10c0/a21305aac72013083bd0dec92162b0f7f24cacf57c876ca601ec76e892895952c9ea592c1c07f23b8c125f7979c2b17f7fb565e386d03ee4c1f0952ac4ab0d75 languageName: node linkType: hard @@ -17684,10 +17654,10 @@ __metadata: languageName: node linkType: hard -"std-env@npm:^3.9.0": - version: 3.9.0 - resolution: "std-env@npm:3.9.0" - checksum: 10c0/4a6f9218aef3f41046c3c7ecf1f98df00b30a07f4f35c6d47b28329bc2531eef820828951c7d7b39a1c5eb19ad8a46e3ddfc7deb28f0a2f3ceebee11bab7ba50 +"std-env@npm:^3.10.0": + version: 3.10.0 + resolution: "std-env@npm:3.10.0" + checksum: 10c0/1814927a45004d36dde6707eaf17552a546769bc79a6421be2c16ce77d238158dfe5de30910b78ec30d95135cc1c59ea73ee22d2ca170f8b9753f84da34c427f languageName: node linkType: hard @@ -18264,7 +18234,7 @@ __metadata: languageName: node linkType: hard -"tinyglobby@npm:^0.2.12": +"tinyglobby@npm:^0.2.12, tinyglobby@npm:^0.2.15": version: 0.2.15 resolution: "tinyglobby@npm:0.2.15" dependencies: @@ -18274,34 +18244,10 @@ __metadata: languageName: node linkType: hard -"tinyglobby@npm:^0.2.13": - version: 0.2.13 - resolution: "tinyglobby@npm:0.2.13" - dependencies: - fdir: "npm:^6.4.4" - picomatch: "npm:^4.0.2" - checksum: 10c0/ef07dfaa7b26936601d3f6d999f7928a4d1c6234c5eb36896bb88681947c0d459b7ebe797022400e555fe4b894db06e922b95d0ce60cb05fd827a0a66326b18c - languageName: node - linkType: hard - -"tinypool@npm:^1.0.2": - version: 1.0.2 - resolution: "tinypool@npm:1.0.2" - checksum: 10c0/31ac184c0ff1cf9a074741254fe9ea6de95026749eb2b8ec6fd2b9d8ca94abdccda731f8e102e7f32e72ed3b36d32c6975fd5f5523df3f1b6de6c3d8dfd95e63 - languageName: node - linkType: hard - -"tinyrainbow@npm:^2.0.0": - version: 2.0.0 - resolution: "tinyrainbow@npm:2.0.0" - checksum: 10c0/c83c52bef4e0ae7fb8ec6a722f70b5b6fa8d8be1c85792e829f56c0e1be94ab70b293c032dc5048d4d37cfe678f1f5babb04bdc65fd123098800148ca989184f - languageName: node - linkType: hard - -"tinyspy@npm:^3.0.2": - version: 3.0.2 - resolution: "tinyspy@npm:3.0.2" - checksum: 10c0/55ffad24e346622b59292e097c2ee30a63919d5acb7ceca87fc0d1c223090089890587b426e20054733f97a58f20af2c349fb7cc193697203868ab7ba00bcea0 +"tinyrainbow@npm:^3.0.3": + version: 3.0.3 + resolution: "tinyrainbow@npm:3.0.3" + checksum: 10c0/1e799d35cd23cabe02e22550985a3051dc88814a979be02dc632a159c393a998628eacfc558e4c746b3006606d54b00bcdea0c39301133956d10a27aa27e988c languageName: node linkType: hard @@ -19048,52 +18994,29 @@ __metadata: languageName: node linkType: hard -"vite-node@npm:3.1.3": - version: 3.1.3 - resolution: "vite-node@npm:3.1.3" - dependencies: - cac: "npm:^6.7.14" - debug: "npm:^4.4.0" - es-module-lexer: "npm:^1.7.0" - pathe: "npm:^2.0.3" - vite: "npm:^5.0.0 || ^6.0.0" - bin: - vite-node: vite-node.mjs - checksum: 10c0/d69a1e52361bc0af22d1178db61674ef768cfd3c5610733794bb1e7a36af113da287dd89662a1ad57fd4f6c3360ca99678f5428ba837f239df4091d7891f2e4c - languageName: node - linkType: hard - -"vite@npm:^5.0.0 || ^6.0.0": - version: 6.4.1 - resolution: "vite@npm:6.4.1" +"vite@npm:^5.0.12": + version: 5.4.21 + resolution: "vite@npm:5.4.21" dependencies: - esbuild: "npm:^0.25.0" - fdir: "npm:^6.4.4" + esbuild: "npm:^0.21.3" fsevents: "npm:~2.3.3" - picomatch: "npm:^4.0.2" - postcss: "npm:^8.5.3" - rollup: "npm:^4.34.9" - tinyglobby: "npm:^0.2.13" + postcss: "npm:^8.4.43" + rollup: "npm:^4.20.0" peerDependencies: - "@types/node": ^18.0.0 || ^20.0.0 || >=22.0.0 - jiti: ">=1.21.0" + "@types/node": ^18.0.0 || >=20.0.0 less: "*" lightningcss: ^1.21.0 sass: "*" sass-embedded: "*" stylus: "*" sugarss: "*" - terser: ^5.16.0 - tsx: ^4.8.1 - yaml: ^2.4.2 + terser: ^5.4.0 dependenciesMeta: fsevents: optional: true peerDependenciesMeta: "@types/node": optional: true - jiti: - optional: true less: optional: true lightningcss: @@ -19108,39 +19031,43 @@ __metadata: optional: true terser: optional: true - tsx: - optional: true - yaml: - optional: true bin: vite: bin/vite.js - checksum: 10c0/77bb4c5b10f2a185e7859cc9a81c789021bc18009b02900347d1583b453b58e4b19ff07a5e5a5b522b68fc88728460bb45a63b104d969e8c6a6152aea3b849f7 + checksum: 10c0/468336a1409f728b464160cbf02672e72271fb688d0e605e776b74a89d27e1029509eef3a3a6c755928d8011e474dbf234824d054d07960be5f23cd176bc72de languageName: node linkType: hard -"vite@npm:^5.0.12": - version: 5.4.21 - resolution: "vite@npm:5.4.21" +"vite@npm:^6.0.0 || ^7.0.0, vite@npm:^7.2.0": + version: 7.2.4 + resolution: "vite@npm:7.2.4" dependencies: - esbuild: "npm:^0.21.3" + esbuild: "npm:^0.25.0" + fdir: "npm:^6.5.0" fsevents: "npm:~2.3.3" - postcss: "npm:^8.4.43" - rollup: "npm:^4.20.0" + picomatch: "npm:^4.0.3" + postcss: "npm:^8.5.6" + rollup: "npm:^4.43.0" + tinyglobby: "npm:^0.2.15" peerDependencies: - "@types/node": ^18.0.0 || >=20.0.0 - less: "*" + "@types/node": ^20.19.0 || >=22.12.0 + jiti: ">=1.21.0" + less: ^4.0.0 lightningcss: ^1.21.0 - sass: "*" - sass-embedded: "*" - stylus: "*" - sugarss: "*" - terser: ^5.4.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: ">=0.54.8" + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 dependenciesMeta: fsevents: optional: true peerDependenciesMeta: "@types/node": optional: true + jiti: + optional: true less: optional: true lightningcss: @@ -19155,53 +19082,62 @@ __metadata: optional: true terser: optional: true + tsx: + optional: true + yaml: + optional: true bin: vite: bin/vite.js - checksum: 10c0/468336a1409f728b464160cbf02672e72271fb688d0e605e776b74a89d27e1029509eef3a3a6c755928d8011e474dbf234824d054d07960be5f23cd176bc72de + checksum: 10c0/26aa0cad01d6e00f17c837b2a0587ab52f6bd0d0e64606b4220cfc58fa5fa76a4095ef3ea27c886bea542a346363912c4fad9f9462ef1e6757262fedfd5196b2 languageName: node linkType: hard -"vitest@npm:^3.1.3": - version: 3.1.3 - resolution: "vitest@npm:3.1.3" - dependencies: - "@vitest/expect": "npm:3.1.3" - "@vitest/mocker": "npm:3.1.3" - "@vitest/pretty-format": "npm:^3.1.3" - "@vitest/runner": "npm:3.1.3" - "@vitest/snapshot": "npm:3.1.3" - "@vitest/spy": "npm:3.1.3" - "@vitest/utils": "npm:3.1.3" - chai: "npm:^5.2.0" - debug: "npm:^4.4.0" - expect-type: "npm:^1.2.1" - magic-string: "npm:^0.30.17" +"vitest@npm:^4.0.0": + version: 4.0.14 + resolution: "vitest@npm:4.0.14" + dependencies: + "@vitest/expect": "npm:4.0.14" + "@vitest/mocker": "npm:4.0.14" + "@vitest/pretty-format": "npm:4.0.14" + "@vitest/runner": "npm:4.0.14" + "@vitest/snapshot": "npm:4.0.14" + "@vitest/spy": "npm:4.0.14" + "@vitest/utils": "npm:4.0.14" + es-module-lexer: "npm:^1.7.0" + expect-type: "npm:^1.2.2" + magic-string: "npm:^0.30.21" + obug: "npm:^2.1.1" pathe: "npm:^2.0.3" - std-env: "npm:^3.9.0" + picomatch: "npm:^4.0.3" + std-env: "npm:^3.10.0" tinybench: "npm:^2.9.0" tinyexec: "npm:^0.3.2" - tinyglobby: "npm:^0.2.13" - tinypool: "npm:^1.0.2" - tinyrainbow: "npm:^2.0.0" - vite: "npm:^5.0.0 || ^6.0.0" - vite-node: "npm:3.1.3" + tinyglobby: "npm:^0.2.15" + tinyrainbow: "npm:^3.0.3" + vite: "npm:^6.0.0 || ^7.0.0" why-is-node-running: "npm:^2.3.0" peerDependencies: "@edge-runtime/vm": "*" - "@types/debug": ^4.1.12 - "@types/node": ^18.0.0 || ^20.0.0 || >=22.0.0 - "@vitest/browser": 3.1.3 - "@vitest/ui": 3.1.3 + "@opentelemetry/api": ^1.9.0 + "@types/node": ^20.0.0 || ^22.0.0 || >=24.0.0 + "@vitest/browser-playwright": 4.0.14 + "@vitest/browser-preview": 4.0.14 + "@vitest/browser-webdriverio": 4.0.14 + "@vitest/ui": 4.0.14 happy-dom: "*" jsdom: "*" peerDependenciesMeta: "@edge-runtime/vm": optional: true - "@types/debug": + "@opentelemetry/api": optional: true "@types/node": optional: true - "@vitest/browser": + "@vitest/browser-playwright": + optional: true + "@vitest/browser-preview": + optional: true + "@vitest/browser-webdriverio": optional: true "@vitest/ui": optional: true @@ -19211,7 +19147,7 @@ __metadata: optional: true bin: vitest: vitest.mjs - checksum: 10c0/954b3579a2d925606df7f78e367ae64eab52c8c5ba2bb2fed94d335a06c910202a4ce080bb02d8148c8b4782488c6d229e963617be8d0c7da96a1c944dd291d7 + checksum: 10c0/97e05dabe5be18ecc72e4fa2f45be7353f828c35ad2d8957772027be52aa1f60d5f2609d166c85369d5888b9f664968dce2b918a7fffbcc91fbac29f1fdddabe languageName: node linkType: hard From b8c1b4c9d5ab9e23c7d9a8616849c39a7c228730 Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Wed, 3 Dec 2025 22:58:36 -0800 Subject: [PATCH 20/62] fix publishers3 tests --- .../publisher/s3/spec/PublisherS3.spec.ts | 80 +++++++++++-------- 1 file changed, 46 insertions(+), 34 deletions(-) diff --git a/packages/publisher/s3/spec/PublisherS3.spec.ts b/packages/publisher/s3/spec/PublisherS3.spec.ts index ca0622348e..d23d153115 100644 --- a/packages/publisher/s3/spec/PublisherS3.spec.ts +++ b/packages/publisher/s3/spec/PublisherS3.spec.ts @@ -8,65 +8,81 @@ import { ForgeMakeResult, ResolvedForgeConfig, } from '@electron-forge/shared-types'; -import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; +import { + afterEach, + beforeEach, + describe, + expect, + it, + type Mock, + vi, +} from 'vitest'; import { PublisherS3, PublisherS3Config } from '../src/PublisherS3'; -// Mock AWS SDK modules +// Get the actual fs module for test fixtures (before mocking) +const actualFs = await vi.importActual('node:fs'); + vi.mock('@aws-sdk/client-s3'); vi.mock('@aws-sdk/lib-storage'); vi.mock('node:fs'); describe('PublisherS3', () => { let publisher: PublisherS3; - let mockS3Client: vi.Mocked; - let mockUpload: vi.Mocked; + let mockS3Client: S3Client; + let mockUploadOn: Mock; + let mockUploadDone: Mock; let tmpDir: string; beforeEach(async () => { - // Create temporary directory for test artifacts const tmp = os.tmpdir(); const tmpdir = path.join(tmp, 'electron-forge-test-'); - tmpDir = await fs.promises.mkdtemp(tmpdir); + tmpDir = await actualFs.promises.mkdtemp(tmpdir); - // Create test artifact files - await fs.promises.writeFile( + await actualFs.promises.writeFile( path.join(tmpDir, 'test-app-1.0.0.dmg'), 'fake-dmg-content', ); - await fs.promises.writeFile( + await actualFs.promises.writeFile( path.join(tmpDir, 'test-app-1.0.0.exe'), 'fake-exe-content', ); - await fs.promises.writeFile( + await actualFs.promises.writeFile( path.join(tmpDir, 'RELEASES'), 'fake-releases-content', ); - await fs.promises.writeFile( + await actualFs.promises.writeFile( path.join(tmpDir, 'RELEASES.json'), 'fake-releases-json-content', ); - // Mock S3Client constructor mockS3Client = { send: vi.fn(), } as any; - vi.mocked(S3Client).mockImplementation(() => mockS3Client); - // Mock Upload class - mockUpload = { - on: vi.fn().mockReturnThis(), - done: vi.fn().mockResolvedValue(undefined), - } as any; - vi.mocked(Upload).mockImplementation(() => mockUpload); + vi.mocked(S3Client).mockImplementation(function (this: S3Client) { + return mockS3Client; + } as unknown as typeof S3Client); + + mockUploadDone = vi.fn().mockImplementation(() => Promise.resolve()); + mockUploadOn = vi.fn().mockImplementation(function (this: unknown) { + return this; + }); + + vi.mocked(Upload).mockImplementation(function (this: Upload) { + const instance = { + on: mockUploadOn, + done: mockUploadDone, + }; + mockUploadOn.mockReturnValue(instance); + return instance as unknown as Upload; + } as unknown as typeof Upload); - // Mock fs.createReadStream vi.mocked(fs.createReadStream).mockReturnValue('fake-stream' as any); }); afterEach(async () => { - // Clean up temporary directory - await fs.promises.rm(tmpDir, { recursive: true, force: true }); + await actualFs.promises.rm(tmpDir, { recursive: true, force: true }); vi.clearAllMocks(); }); @@ -167,7 +183,6 @@ describe('PublisherS3', () => { setStatusLine: mockSetStatusLine, }); - // Verify S3Client was created with correct options expect(S3Client).toHaveBeenCalledWith({ credentials: undefined, region: 'us-east-1', @@ -177,7 +192,7 @@ describe('PublisherS3', () => { // Verify Upload was called for each artifact expect(Upload).toHaveBeenCalledTimes(2); - expect(mockUpload.done).toHaveBeenCalledTimes(2); + expect(mockUploadDone).toHaveBeenCalledTimes(2); // Verify status line updates expect(mockSetStatusLine).toHaveBeenCalledWith( @@ -208,7 +223,6 @@ describe('PublisherS3', () => { setStatusLine: mockSetStatusLine, }); - // Verify S3Client was created with credentials expect(S3Client).toHaveBeenCalledWith({ credentials: { accessKeyId: 'test-key', @@ -220,7 +234,6 @@ describe('PublisherS3', () => { forcePathStyle: false, }); - // Verify Upload parameters expect(Upload).toHaveBeenCalledWith({ client: mockS3Client, leavePartsOnError: true, @@ -283,7 +296,6 @@ describe('PublisherS3', () => { Body: 'fake-stream', Bucket: 'test-bucket', Key: expect.any(String), - // ACL should not be present }, }); }); @@ -397,9 +409,12 @@ describe('PublisherS3', () => { setStatusLine: mockSetStatusLine, }); - // Verify Upload was called twice (once for each RELEASES file) - expect(Upload).toHaveBeenCalledTimes(2); - expect(mockUpload.done).toHaveBeenCalledTimes(2); + expect(Upload).toHaveBeenCalledTimes( + makeResultsWithBothReleases[0].artifacts.length, + ); + expect(mockUploadDone).toHaveBeenCalledTimes( + makeResultsWithBothReleases[0].artifacts.length, + ); // Verify both uploads include Cache-Control header const uploadCalls = vi.mocked(Upload).mock.calls; @@ -421,7 +436,6 @@ describe('PublisherS3', () => { setStatusLine: mockSetStatusLine, }); - // Verify Upload parameters don't include Cache-Control metadata for non-RELEASES files expect(Upload).toHaveBeenCalledWith({ client: mockS3Client, leavePartsOnError: true, @@ -448,8 +462,7 @@ describe('PublisherS3', () => { setStatusLine: mockSetStatusLine, }); - // Verify progress event handler was set up - expect(mockUpload.on).toHaveBeenCalledWith( + expect(mockUploadOn).toHaveBeenCalledWith( 'httpUploadProgress', expect.any(Function), ); @@ -470,7 +483,6 @@ describe('PublisherS3', () => { setStatusLine: mockSetStatusLine, }); - // Verify S3Client was created with custom endpoint and forcePathStyle expect(S3Client).toHaveBeenCalledWith({ credentials: undefined, region: undefined, From 5175375aec089a9bb6a79ba34cc0a061832417cb Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Thu, 4 Dec 2025 09:14:48 -0800 Subject: [PATCH 21/62] fix package.json files --- packages/template/base/package.json | 1 + packages/utils/web-multi-logger/package.json | 1 + 2 files changed, 2 insertions(+) diff --git a/packages/template/base/package.json b/packages/template/base/package.json index 5249f76ac7..ffcbf217f4 100644 --- a/packages/template/base/package.json +++ b/packages/template/base/package.json @@ -1,6 +1,7 @@ { "name": "@electron-forge/template-base", "version": "8.0.0-alpha.3", + "type": "module", "description": "Base template for Electron Forge", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", diff --git a/packages/utils/web-multi-logger/package.json b/packages/utils/web-multi-logger/package.json index 9ddbffe872..89e22fb68e 100644 --- a/packages/utils/web-multi-logger/package.json +++ b/packages/utils/web-multi-logger/package.json @@ -1,6 +1,7 @@ { "name": "@electron-forge/web-multi-logger", "version": "8.0.0-alpha.3", + "type": "module", "description": "Display multiple streams of logs in one window", "repository": "https://github.com/electron/forge", "author": "Samuel Attard", From f7a8de9a0249b16c6ec81f131d2dffd0416a7d2f Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Thu, 18 Dec 2025 09:40:26 -0800 Subject: [PATCH 22/62] expect error --- packages/api/core/spec/slow/make.slow.spec.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/api/core/spec/slow/make.slow.spec.ts b/packages/api/core/spec/slow/make.slow.spec.ts index 6dea41d549..23c9ad91f2 100644 --- a/packages/api/core/spec/slow/make.slow.spec.ts +++ b/packages/api/core/spec/slow/make.slow.spec.ts @@ -67,6 +67,7 @@ describe('Make', () => { }); it('throws an error when given an unrecognized platform', async () => { + // @ts-expect-error - we're testing an unrecognized platform await expect(api.make({ dir, platform: 'dos' })).rejects.toThrow( /invalid platform/, ); From 214db0115b8305d283d13ec59e5c34ee9d022bc9 Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Thu, 18 Dec 2025 12:28:18 -0800 Subject: [PATCH 23/62] vite 7 --- .nvmrc | 2 +- package.json | 2 +- packages/api/cli/src/electron-forge-import.ts | 2 +- packages/api/cli/src/electron-forge-init.ts | 2 +- packages/api/cli/src/electron-forge-make.ts | 2 +- .../api/cli/src/electron-forge-package.ts | 2 +- .../api/cli/src/electron-forge-publish.ts | 2 +- packages/api/cli/src/electron-forge-start.ts | 2 +- packages/api/cli/src/electron-forge.ts | 2 +- packages/plugin/vite/package.json | 4 +- packages/plugin/vite/src/VitePlugin.ts | 3 - packages/plugin/webpack/package.json | 2 +- .../spec/fixtures/test-yarn.lock | 294 ++++++++--------- .../spec/fixtures/test-yarn.lock | 190 +++++------ tools/regenerate-lockfile-fixtures.ts | 6 +- yarn.config.cjs | 3 - yarn.lock | 301 +----------------- 17 files changed, 248 insertions(+), 573 deletions(-) diff --git a/.nvmrc b/.nvmrc index 2bd5a0a98a..f1c8f6b0d0 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -22 +22.18 diff --git a/package.json b/package.json index a9a76c928e..fca5835e69 100644 --- a/package.json +++ b/package.json @@ -90,7 +90,7 @@ "@types/lodash-es": "^4.17.12", "@types/mime-types": "^2.1.0", "@types/minimist": "^1.2.0", - "@types/node": "~22.10.7", + "@types/node": "^22.10.7", "@types/semver": "^7.3.4", "@types/which": "^2.0.0", "@typescript-eslint/eslint-plugin": "^8.0.0", diff --git a/packages/api/cli/src/electron-forge-import.ts b/packages/api/cli/src/electron-forge-import.ts index ec8df9dfc1..0380167518 100644 --- a/packages/api/cli/src/electron-forge-import.ts +++ b/packages/api/cli/src/electron-forge-import.ts @@ -1,7 +1,7 @@ import { api } from '@electron-forge/core'; import { program } from 'commander'; -import './util/terminate'; +import './util/terminate.js'; import packageJSON from '../package.json' with { type: 'json' }; import { resolveWorkingDir } from './util/resolve-working-dir.js'; diff --git a/packages/api/cli/src/electron-forge-init.ts b/packages/api/cli/src/electron-forge-init.ts index d9c56fc5cb..3c27b83536 100644 --- a/packages/api/cli/src/electron-forge-init.ts +++ b/packages/api/cli/src/electron-forge-init.ts @@ -7,7 +7,7 @@ import chalk from 'chalk'; import { program } from 'commander'; import { Listr } from 'listr2'; -import './util/terminate'; +import './util/terminate.js'; import packageJSON from '../package.json' with { type: 'json' }; import { resolveWorkingDir } from './util/resolve-working-dir.js'; diff --git a/packages/api/cli/src/electron-forge-make.ts b/packages/api/cli/src/electron-forge-make.ts index f5ab3063e5..41449ffe55 100644 --- a/packages/api/cli/src/electron-forge-make.ts +++ b/packages/api/cli/src/electron-forge-make.ts @@ -3,7 +3,7 @@ import { api, MakeOptions } from '@electron-forge/core'; import chalk from 'chalk'; import { program } from 'commander'; -import './util/terminate'; +import './util/terminate.js'; import packageJSON from '../package.json' with { type: 'json' }; import { resolveWorkingDir } from './util/resolve-working-dir.js'; diff --git a/packages/api/cli/src/electron-forge-package.ts b/packages/api/cli/src/electron-forge-package.ts index 6365f269cf..5e28d8b0f2 100644 --- a/packages/api/cli/src/electron-forge-package.ts +++ b/packages/api/cli/src/electron-forge-package.ts @@ -2,7 +2,7 @@ import { initializeProxy } from '@electron/get'; import { api, PackageOptions } from '@electron-forge/core'; import { program } from 'commander'; -import './util/terminate'; +import './util/terminate.js'; import packageJSON from '../package.json' with { type: 'json' }; import { resolveWorkingDir } from './util/resolve-working-dir.js'; diff --git a/packages/api/cli/src/electron-forge-publish.ts b/packages/api/cli/src/electron-forge-publish.ts index dbd3dd6634..d5018ecfe1 100644 --- a/packages/api/cli/src/electron-forge-publish.ts +++ b/packages/api/cli/src/electron-forge-publish.ts @@ -3,7 +3,7 @@ import { api, PublishOptions } from '@electron-forge/core'; import chalk from 'chalk'; import { program } from 'commander'; -import './util/terminate'; +import './util/terminate.js'; import packageJSON from '../package.json' with { type: 'json' }; import { getMakeOptions } from './electron-forge-make.js'; diff --git a/packages/api/cli/src/electron-forge-start.ts b/packages/api/cli/src/electron-forge-start.ts index 90fc1dd8d3..fbecc1b4c8 100644 --- a/packages/api/cli/src/electron-forge-start.ts +++ b/packages/api/cli/src/electron-forge-start.ts @@ -2,7 +2,7 @@ import { api, StartOptions } from '@electron-forge/core'; import { ElectronProcess } from '@electron-forge/shared-types'; import { Option, program } from 'commander'; -import './util/terminate'; +import './util/terminate.js'; import packageJSON from '../package.json' with { type: 'json' }; import { resolveWorkingDir } from './util/resolve-working-dir.js'; diff --git a/packages/api/cli/src/electron-forge.ts b/packages/api/cli/src/electron-forge.ts index bafb4f5b00..b95ccbf722 100755 --- a/packages/api/cli/src/electron-forge.ts +++ b/packages/api/cli/src/electron-forge.ts @@ -7,7 +7,7 @@ import logSymbols from 'log-symbols'; import semver from 'semver'; import packageJSON from '../package.json' with { type: 'json' }; -import './util/terminate'; +import './util/terminate.js'; import { checkSystem, SystemCheckContext } from './util/check-system.js'; diff --git a/packages/plugin/vite/package.json b/packages/plugin/vite/package.json index 654b7e108d..8cf05dfc05 100644 --- a/packages/plugin/vite/package.json +++ b/packages/plugin/vite/package.json @@ -23,8 +23,8 @@ "devDependencies": { "@electron/packager": "^19.0.1", "@malept/cross-spawn-promise": "^2.0.0", - "@types/node": "~22.10.7", - "vite": "^5.0.12", + "@types/node": "^22.10.7", + "vite": "^7.2.4", "vitest": "^4.0.14", "which": "^2.0.2", "xvfb-maybe": "^0.2.1" diff --git a/packages/plugin/vite/src/VitePlugin.ts b/packages/plugin/vite/src/VitePlugin.ts index 2dcdc78dc3..3c353a023b 100644 --- a/packages/plugin/vite/src/VitePlugin.ts +++ b/packages/plugin/vite/src/VitePlugin.ts @@ -1,6 +1,3 @@ -// TODO(erickzhao): Remove this when upgrading to Vite 6 and converting to ESM -process.env.VITE_CJS_IGNORE_WARNING = 'true'; - import path from 'node:path'; import { namedHookWithTaskFn, PluginBase } from '@electron-forge/plugin-base'; diff --git a/packages/plugin/webpack/package.json b/packages/plugin/webpack/package.json index baddfa6df0..a7ea7fba31 100644 --- a/packages/plugin/webpack/package.json +++ b/packages/plugin/webpack/package.json @@ -11,7 +11,7 @@ "devDependencies": { "@electron/packager": "^19.0.1", "@malept/cross-spawn-promise": "^2.0.0", - "@types/node": "~22.10.7", + "@types/node": "^22.10.7", "vitest": "^4.0.14", "which": "^2.0.2", "xvfb-maybe": "^0.2.1" diff --git a/packages/template/vite-typescript/spec/fixtures/test-yarn.lock b/packages/template/vite-typescript/spec/fixtures/test-yarn.lock index 2776b09909..c03cd4b6b5 100644 --- a/packages/template/vite-typescript/spec/fixtures/test-yarn.lock +++ b/packages/template/vite-typescript/spec/fixtures/test-yarn.lock @@ -1067,156 +1067,156 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-android-arm-eabi@npm:4.53.3": - version: 4.53.3 - resolution: "@rollup/rollup-android-arm-eabi@npm:4.53.3" +"@rollup/rollup-android-arm-eabi@npm:4.53.5": + version: 4.53.5 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.53.5" conditions: os=android & cpu=arm languageName: node linkType: hard -"@rollup/rollup-android-arm64@npm:4.53.3": - version: 4.53.3 - resolution: "@rollup/rollup-android-arm64@npm:4.53.3" +"@rollup/rollup-android-arm64@npm:4.53.5": + version: 4.53.5 + resolution: "@rollup/rollup-android-arm64@npm:4.53.5" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-arm64@npm:4.53.3": - version: 4.53.3 - resolution: "@rollup/rollup-darwin-arm64@npm:4.53.3" +"@rollup/rollup-darwin-arm64@npm:4.53.5": + version: 4.53.5 + resolution: "@rollup/rollup-darwin-arm64@npm:4.53.5" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-x64@npm:4.53.3": - version: 4.53.3 - resolution: "@rollup/rollup-darwin-x64@npm:4.53.3" +"@rollup/rollup-darwin-x64@npm:4.53.5": + version: 4.53.5 + resolution: "@rollup/rollup-darwin-x64@npm:4.53.5" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-freebsd-arm64@npm:4.53.3": - version: 4.53.3 - resolution: "@rollup/rollup-freebsd-arm64@npm:4.53.3" +"@rollup/rollup-freebsd-arm64@npm:4.53.5": + version: 4.53.5 + resolution: "@rollup/rollup-freebsd-arm64@npm:4.53.5" conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-freebsd-x64@npm:4.53.3": - version: 4.53.3 - resolution: "@rollup/rollup-freebsd-x64@npm:4.53.3" +"@rollup/rollup-freebsd-x64@npm:4.53.5": + version: 4.53.5 + resolution: "@rollup/rollup-freebsd-x64@npm:4.53.5" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-linux-arm-gnueabihf@npm:4.53.3": - version: 4.53.3 - resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.53.3" +"@rollup/rollup-linux-arm-gnueabihf@npm:4.53.5": + version: 4.53.5 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.53.5" conditions: os=linux & cpu=arm & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-arm-musleabihf@npm:4.53.3": - version: 4.53.3 - resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.53.3" +"@rollup/rollup-linux-arm-musleabihf@npm:4.53.5": + version: 4.53.5 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.53.5" conditions: os=linux & cpu=arm & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-arm64-gnu@npm:4.53.3": - version: 4.53.3 - resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.53.3" +"@rollup/rollup-linux-arm64-gnu@npm:4.53.5": + version: 4.53.5 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.53.5" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-arm64-musl@npm:4.53.3": - version: 4.53.3 - resolution: "@rollup/rollup-linux-arm64-musl@npm:4.53.3" +"@rollup/rollup-linux-arm64-musl@npm:4.53.5": + version: 4.53.5 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.53.5" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-loong64-gnu@npm:4.53.3": - version: 4.53.3 - resolution: "@rollup/rollup-linux-loong64-gnu@npm:4.53.3" +"@rollup/rollup-linux-loong64-gnu@npm:4.53.5": + version: 4.53.5 + resolution: "@rollup/rollup-linux-loong64-gnu@npm:4.53.5" conditions: os=linux & cpu=loong64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-ppc64-gnu@npm:4.53.3": - version: 4.53.3 - resolution: "@rollup/rollup-linux-ppc64-gnu@npm:4.53.3" +"@rollup/rollup-linux-ppc64-gnu@npm:4.53.5": + version: 4.53.5 + resolution: "@rollup/rollup-linux-ppc64-gnu@npm:4.53.5" conditions: os=linux & cpu=ppc64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-riscv64-gnu@npm:4.53.3": - version: 4.53.3 - resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.53.3" +"@rollup/rollup-linux-riscv64-gnu@npm:4.53.5": + version: 4.53.5 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.53.5" conditions: os=linux & cpu=riscv64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-riscv64-musl@npm:4.53.3": - version: 4.53.3 - resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.53.3" +"@rollup/rollup-linux-riscv64-musl@npm:4.53.5": + version: 4.53.5 + resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.53.5" conditions: os=linux & cpu=riscv64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-s390x-gnu@npm:4.53.3": - version: 4.53.3 - resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.53.3" +"@rollup/rollup-linux-s390x-gnu@npm:4.53.5": + version: 4.53.5 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.53.5" conditions: os=linux & cpu=s390x & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-gnu@npm:4.53.3": - version: 4.53.3 - resolution: "@rollup/rollup-linux-x64-gnu@npm:4.53.3" +"@rollup/rollup-linux-x64-gnu@npm:4.53.5": + version: 4.53.5 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.53.5" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-musl@npm:4.53.3": - version: 4.53.3 - resolution: "@rollup/rollup-linux-x64-musl@npm:4.53.3" +"@rollup/rollup-linux-x64-musl@npm:4.53.5": + version: 4.53.5 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.53.5" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-openharmony-arm64@npm:4.53.3": - version: 4.53.3 - resolution: "@rollup/rollup-openharmony-arm64@npm:4.53.3" +"@rollup/rollup-openharmony-arm64@npm:4.53.5": + version: 4.53.5 + resolution: "@rollup/rollup-openharmony-arm64@npm:4.53.5" conditions: os=openharmony & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-win32-arm64-msvc@npm:4.53.3": - version: 4.53.3 - resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.53.3" +"@rollup/rollup-win32-arm64-msvc@npm:4.53.5": + version: 4.53.5 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.53.5" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-win32-ia32-msvc@npm:4.53.3": - version: 4.53.3 - resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.53.3" +"@rollup/rollup-win32-ia32-msvc@npm:4.53.5": + version: 4.53.5 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.53.5" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@rollup/rollup-win32-x64-gnu@npm:4.53.3": - version: 4.53.3 - resolution: "@rollup/rollup-win32-x64-gnu@npm:4.53.3" +"@rollup/rollup-win32-x64-gnu@npm:4.53.5": + version: 4.53.5 + resolution: "@rollup/rollup-win32-x64-gnu@npm:4.53.5" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-win32-x64-msvc@npm:4.53.3": - version: 4.53.3 - resolution: "@rollup/rollup-win32-x64-msvc@npm:4.53.3" +"@rollup/rollup-win32-x64-msvc@npm:4.53.5": + version: 4.53.5 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.53.5" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -1346,20 +1346,20 @@ __metadata: linkType: hard "@types/node@npm:*": - version: 24.10.1 - resolution: "@types/node@npm:24.10.1" + version: 25.0.3 + resolution: "@types/node@npm:25.0.3" dependencies: undici-types: "npm:~7.16.0" - checksum: 10c0/d6bca7a78f550fbb376f236f92b405d676003a8a09a1b411f55920ef34286ee3ee51f566203920e835478784df52662b5b2af89159d9d319352e9ea21801c002 + checksum: 10c0/b7568f0d765d9469621615e2bb257c7fd1953d95e9acbdb58dffb6627a2c4150d405a4600aa1ad8a40182a94fe5f903cafd3c0a2f5132814debd0e3bfd61f835 languageName: node linkType: hard "@types/node@npm:^22.5.5, @types/node@npm:^22.7.7": - version: 22.19.1 - resolution: "@types/node@npm:22.19.1" + version: 22.19.3 + resolution: "@types/node@npm:22.19.3" dependencies: undici-types: "npm:~6.21.0" - checksum: 10c0/6edd93aea86da740cb7872626839cd6f4a67a049d3a3a6639cb592c620ec591408a30989ab7410008d1a0b2d4985ce50f1e488e79c033e4476d3bec6833b0a2f + checksum: 10c0/a30a75d503da795ddbd5f8851014f3e91925c2a63fa3f14128d54c998f25d682dfba96dc9589c73cf478b87a16d88beb790b11697bb8cd5bee913079237a58f2 languageName: node linkType: hard @@ -2021,11 +2021,11 @@ __metadata: linkType: hard "baseline-browser-mapping@npm:^2.9.0": - version: 2.9.0 - resolution: "baseline-browser-mapping@npm:2.9.0" + version: 2.9.10 + resolution: "baseline-browser-mapping@npm:2.9.10" bin: baseline-browser-mapping: dist/cli.js - checksum: 10c0/cc2c4beaaa6310e57d55c0b38767b7d833cad17779a51bd2f1db7c8fb50d86629fa065cf65b9333bbe1d909270a084bd2177f0fbc832633b273504a8c805ab9c + checksum: 10c0/e8021a03d7ec00583c83054993a7192dae5065b25de2b2763420116553aeff8297e5ad643c94549f2310f436df0511ade80c7a889251c03af11e68eecbff1fae languageName: node linkType: hard @@ -2082,7 +2082,7 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.26.3": +"browserslist@npm:^4.28.1": version: 4.28.1 resolution: "browserslist@npm:4.28.1" dependencies: @@ -2228,9 +2228,9 @@ __metadata: linkType: hard "caniuse-lite@npm:^1.0.30001759": - version: 1.0.30001759 - resolution: "caniuse-lite@npm:1.0.30001759" - checksum: 10c0/b0f415960ba34995cda18e0d25c4e602f6917b9179290a76bdd0311423505b78cc93e558a90c98a22a1cc6b1781ab720ef6beea24ec7e29a1c1164ca72eac3a2 + version: 1.0.30001760 + resolution: "caniuse-lite@npm:1.0.30001760" + checksum: 10c0/cee26dff5c5b15ba073ab230200e43c0d4e88dc3bac0afe0c9ab963df70aaa876c3e513dde42a027f317136bf6e274818d77b073708b74c5807dfad33c029d3c languageName: node linkType: hard @@ -2648,9 +2648,9 @@ __metadata: languageName: node linkType: hard -"electron-forge-test-1764816509855@workspace:.": +"electron-forge-test-1766088668496@workspace:.": version: 0.0.0-use.local - resolution: "electron-forge-test-1764816509855@workspace:." + resolution: "electron-forge-test-1766088668496@workspace:." dependencies: "@electron-forge/cli": "npm:^8.0.0-alpha.3" "@electron-forge/maker-deb": "npm:^8.0.0-alpha.3" @@ -2668,7 +2668,7 @@ __metadata: electron-squirrel-startup: "npm:^1.0.1" eslint: "npm:^8.0.1" eslint-plugin-import: "npm:^2.25.0" - typescript: "npm:~4.5.4" + typescript: "npm:5.9.3" vite: "npm:^5.0.12" languageName: unknown linkType: soft @@ -2739,9 +2739,9 @@ __metadata: linkType: hard "electron-to-chromium@npm:^1.5.263": - version: 1.5.264 - resolution: "electron-to-chromium@npm:1.5.264" - checksum: 10c0/d62cfc6ed02856de59b0e7baf5bb7995b611ba4df14355a0943301a56628bd0fad98287c0becdcf55509ff5ed38d7f01a33b9f962820c8aa8cbc90292035275c + version: 1.5.267 + resolution: "electron-to-chromium@npm:1.5.267" + checksum: 10c0/0732bdb891b657f2e43266a3db8cf86fff6cecdcc8d693a92beff214e136cb5c2ee7dc5945ed75fa1db16e16bad0c38695527a020d15f39e79084e0b2e447621 languageName: node linkType: hard @@ -2807,13 +2807,13 @@ __metadata: languageName: node linkType: hard -"enhanced-resolve@npm:^5.17.3": - version: 5.18.3 - resolution: "enhanced-resolve@npm:5.18.3" +"enhanced-resolve@npm:^5.17.4": + version: 5.18.4 + resolution: "enhanced-resolve@npm:5.18.4" dependencies: graceful-fs: "npm:^4.2.4" tapable: "npm:^2.2.0" - checksum: 10c0/d413c23c2d494e4c1c9c9ac7d60b812083dc6d446699ed495e69c920988af0a3c66bf3f8d0e7a45cb1686c2d4c1df9f4e7352d973f5b56fe63d8d711dd0ccc54 + checksum: 10c0/8f6d42c8a0787a746c493e724c9de5d091cfe8e3f871f2464e2f78a6c55fa1a3aaba495334f923c8ea3ac23e1472491f79feef6fc0fb46a75169cb447ffbe2dc languageName: node linkType: hard @@ -2841,8 +2841,8 @@ __metadata: linkType: hard "es-abstract@npm:^1.23.2, es-abstract@npm:^1.23.5, es-abstract@npm:^1.23.9, es-abstract@npm:^1.24.0": - version: 1.24.0 - resolution: "es-abstract@npm:1.24.0" + version: 1.24.1 + resolution: "es-abstract@npm:1.24.1" dependencies: array-buffer-byte-length: "npm:^1.0.2" arraybuffer.prototype.slice: "npm:^1.0.4" @@ -2898,7 +2898,7 @@ __metadata: typed-array-length: "npm:^1.0.7" unbox-primitive: "npm:^1.1.0" which-typed-array: "npm:^1.1.19" - checksum: 10c0/b256e897be32df5d382786ce8cce29a1dd8c97efbab77a26609bd70f2ed29fbcfc7a31758cb07488d532e7ccccdfca76c1118f2afe5a424cdc05ca007867c318 + checksum: 10c0/fca062ef8b5daacf743732167d319a212d45cb655b0bb540821d38d715416ae15b04b84fc86da9e2c89135aa7b337337b6c867f84dcde698d75d55688d5d765c languageName: node linkType: hard @@ -2916,10 +2916,10 @@ __metadata: languageName: node linkType: hard -"es-module-lexer@npm:^1.2.1": - version: 1.7.0 - resolution: "es-module-lexer@npm:1.7.0" - checksum: 10c0/4c935affcbfeba7fb4533e1da10fa8568043df1e3574b869385980de9e2d475ddc36769891936dbb07036edb3c3786a8b78ccf44964cd130dedc1f2c984b6c7b +"es-module-lexer@npm:^2.0.0": + version: 2.0.0 + resolution: "es-module-lexer@npm:2.0.0" + checksum: 10c0/ae78dbbd43035a4b972c46cfb6877e374ea290adfc62bc2f5a083fea242c0b2baaab25c5886af86be55f092f4a326741cb94334cd3c478c383fdc8a9ec5ff817 languageName: node linkType: hard @@ -3488,13 +3488,13 @@ __metadata: linkType: hard "fs-extra@npm:^11.1.0, fs-extra@npm:^11.1.1": - version: 11.3.2 - resolution: "fs-extra@npm:11.3.2" + version: 11.3.3 + resolution: "fs-extra@npm:11.3.3" dependencies: graceful-fs: "npm:^4.2.0" jsonfile: "npm:^6.0.1" universalify: "npm:^2.0.0" - checksum: 10c0/f5d629e1bb646d5dedb4d8b24c5aad3deb8cc1d5438979d6f237146cd10e113b49a949ae1b54212c2fbc98e2d0995f38009a9a1d0520f0287943335e65fe919b + checksum: 10c0/984924ff4104e3e9f351b658a864bf3b354b2c90429f57aec0acd12d92c4e6b762cbacacdffb4e745b280adce882e1f980c485d9f02c453f769ab4e7fc646ce3 languageName: node linkType: hard @@ -5896,31 +5896,31 @@ __metadata: linkType: hard "rollup@npm:^4.20.0": - version: 4.53.3 - resolution: "rollup@npm:4.53.3" - dependencies: - "@rollup/rollup-android-arm-eabi": "npm:4.53.3" - "@rollup/rollup-android-arm64": "npm:4.53.3" - "@rollup/rollup-darwin-arm64": "npm:4.53.3" - "@rollup/rollup-darwin-x64": "npm:4.53.3" - "@rollup/rollup-freebsd-arm64": "npm:4.53.3" - "@rollup/rollup-freebsd-x64": "npm:4.53.3" - "@rollup/rollup-linux-arm-gnueabihf": "npm:4.53.3" - "@rollup/rollup-linux-arm-musleabihf": "npm:4.53.3" - "@rollup/rollup-linux-arm64-gnu": "npm:4.53.3" - "@rollup/rollup-linux-arm64-musl": "npm:4.53.3" - "@rollup/rollup-linux-loong64-gnu": "npm:4.53.3" - "@rollup/rollup-linux-ppc64-gnu": "npm:4.53.3" - "@rollup/rollup-linux-riscv64-gnu": "npm:4.53.3" - "@rollup/rollup-linux-riscv64-musl": "npm:4.53.3" - "@rollup/rollup-linux-s390x-gnu": "npm:4.53.3" - "@rollup/rollup-linux-x64-gnu": "npm:4.53.3" - "@rollup/rollup-linux-x64-musl": "npm:4.53.3" - "@rollup/rollup-openharmony-arm64": "npm:4.53.3" - "@rollup/rollup-win32-arm64-msvc": "npm:4.53.3" - "@rollup/rollup-win32-ia32-msvc": "npm:4.53.3" - "@rollup/rollup-win32-x64-gnu": "npm:4.53.3" - "@rollup/rollup-win32-x64-msvc": "npm:4.53.3" + version: 4.53.5 + resolution: "rollup@npm:4.53.5" + dependencies: + "@rollup/rollup-android-arm-eabi": "npm:4.53.5" + "@rollup/rollup-android-arm64": "npm:4.53.5" + "@rollup/rollup-darwin-arm64": "npm:4.53.5" + "@rollup/rollup-darwin-x64": "npm:4.53.5" + "@rollup/rollup-freebsd-arm64": "npm:4.53.5" + "@rollup/rollup-freebsd-x64": "npm:4.53.5" + "@rollup/rollup-linux-arm-gnueabihf": "npm:4.53.5" + "@rollup/rollup-linux-arm-musleabihf": "npm:4.53.5" + "@rollup/rollup-linux-arm64-gnu": "npm:4.53.5" + "@rollup/rollup-linux-arm64-musl": "npm:4.53.5" + "@rollup/rollup-linux-loong64-gnu": "npm:4.53.5" + "@rollup/rollup-linux-ppc64-gnu": "npm:4.53.5" + "@rollup/rollup-linux-riscv64-gnu": "npm:4.53.5" + "@rollup/rollup-linux-riscv64-musl": "npm:4.53.5" + "@rollup/rollup-linux-s390x-gnu": "npm:4.53.5" + "@rollup/rollup-linux-x64-gnu": "npm:4.53.5" + "@rollup/rollup-linux-x64-musl": "npm:4.53.5" + "@rollup/rollup-openharmony-arm64": "npm:4.53.5" + "@rollup/rollup-win32-arm64-msvc": "npm:4.53.5" + "@rollup/rollup-win32-ia32-msvc": "npm:4.53.5" + "@rollup/rollup-win32-x64-gnu": "npm:4.53.5" + "@rollup/rollup-win32-x64-msvc": "npm:4.53.5" "@types/estree": "npm:1.0.8" fsevents: "npm:~2.3.2" dependenciesMeta: @@ -5972,7 +5972,7 @@ __metadata: optional: true bin: rollup: dist/bin/rollup - checksum: 10c0/a21305aac72013083bd0dec92162b0f7f24cacf57c876ca601ec76e892895952c9ea592c1c07f23b8c125f7979c2b17f7fb565e386d03ee4c1f0952ac4ab0d75 + checksum: 10c0/c79a9ecf5ff5f3757eef959977a1124d5ebc5108a61c03c55394b2f3f503bf56670b407ff771c25106f7a488ec468240a6b57b194eab8de59b6cf118fd7286b0 languageName: node linkType: hard @@ -6572,9 +6572,9 @@ __metadata: languageName: node linkType: hard -"terser-webpack-plugin@npm:^5.3.11": - version: 5.3.14 - resolution: "terser-webpack-plugin@npm:5.3.14" +"terser-webpack-plugin@npm:^5.3.16": + version: 5.3.16 + resolution: "terser-webpack-plugin@npm:5.3.16" dependencies: "@jridgewell/trace-mapping": "npm:^0.3.25" jest-worker: "npm:^27.4.5" @@ -6590,7 +6590,7 @@ __metadata: optional: true uglify-js: optional: true - checksum: 10c0/9b060947241af43bd6fd728456f60e646186aef492163672a35ad49be6fbc7f63b54a7356c3f6ff40a8f83f00a977edc26f044b8e106cc611c053c8c0eaf8569 + checksum: 10c0/39e37c5b3015c1a5354a3633f77235677bfa06eac2608ce26d258b1d1a74070a99910319a6f2f2c437eb61dc321f66434febe01d78e73fa96b4d4393b813f4cf languageName: node linkType: hard @@ -6802,13 +6802,13 @@ __metadata: languageName: node linkType: hard -"typescript@npm:~4.5.4": - version: 4.5.5 - resolution: "typescript@npm:4.5.5" +"typescript@npm:5.9.3": + version: 5.9.3 + resolution: "typescript@npm:5.9.3" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 10c0/ac15b92f3dcd9a4233cab288a913ccbd96729fc488181396fa93c0297ccef3cd3c2f9a7a63340efb0d07bff3d5026028fc81b9c1ef08076029e057081eb5884b + checksum: 10c0/6bd7552ce39f97e711db5aa048f6f9995b53f1c52f7d8667c1abdc1700c68a76a308f579cd309ce6b53646deb4e9a1be7c813a93baaf0a28ccd536a30270e1c5 languageName: node linkType: hard @@ -6822,13 +6822,13 @@ __metadata: languageName: node linkType: hard -"typescript@patch:typescript@npm%3A~4.5.4#optional!builtin": - version: 4.5.5 - resolution: "typescript@patch:typescript@npm%3A4.5.5#optional!builtin::version=4.5.5&hash=f1b8ea" +"typescript@patch:typescript@npm%3A5.9.3#optional!builtin": + version: 5.9.3 + resolution: "typescript@patch:typescript@npm%3A5.9.3#optional!builtin::version=5.9.3&hash=5786d5" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 10c0/c699912602518eca36f101f61492608733da8305ba93a82291fbb29508da56e360b10f35f56fd9a53406db9ea2c261d30efd4ec1d9253ff45fdb5541b9d0381c + checksum: 10c0/ad09fdf7a756814dce65bc60c1657b40d44451346858eea230e10f2e95a289d9183b6e32e5c11e95acc0ccc214b4f36289dcad4bf1886b0adb84d711d336a430 languageName: node linkType: hard @@ -6919,8 +6919,8 @@ __metadata: linkType: hard "update-browserslist-db@npm:^1.2.0": - version: 1.2.1 - resolution: "update-browserslist-db@npm:1.2.1" + version: 1.2.3 + resolution: "update-browserslist-db@npm:1.2.3" dependencies: escalade: "npm:^3.2.0" picocolors: "npm:^1.1.1" @@ -6928,7 +6928,7 @@ __metadata: browserslist: ">= 4.21.0" bin: update-browserslist-db: cli.js - checksum: 10c0/cbf7547651dfefd2924a61338ccf99cad15ab10bc52ada3fdc3fb1eade14e3cb27a247e6715c3bd2e8941f2bdd322348edfbee8536fff3828188445960b8e490 + checksum: 10c0/13a00355ea822388f68af57410ce3255941d5fb9b7c49342c4709a07c9f230bbef7f7499ae0ca7e0de532e79a82cc0c4edbd125f1a323a1845bf914efddf8bec languageName: node linkType: hard @@ -7045,8 +7045,8 @@ __metadata: linkType: hard "webpack@npm:^5.69.1": - version: 5.103.0 - resolution: "webpack@npm:5.103.0" + version: 5.104.1 + resolution: "webpack@npm:5.104.1" dependencies: "@types/eslint-scope": "npm:^3.7.7" "@types/estree": "npm:^1.0.8" @@ -7056,10 +7056,10 @@ __metadata: "@webassemblyjs/wasm-parser": "npm:^1.14.1" acorn: "npm:^8.15.0" acorn-import-phases: "npm:^1.0.3" - browserslist: "npm:^4.26.3" + browserslist: "npm:^4.28.1" chrome-trace-event: "npm:^1.0.2" - enhanced-resolve: "npm:^5.17.3" - es-module-lexer: "npm:^1.2.1" + enhanced-resolve: "npm:^5.17.4" + es-module-lexer: "npm:^2.0.0" eslint-scope: "npm:5.1.1" events: "npm:^3.2.0" glob-to-regexp: "npm:^0.4.1" @@ -7070,7 +7070,7 @@ __metadata: neo-async: "npm:^2.6.2" schema-utils: "npm:^4.3.3" tapable: "npm:^2.3.0" - terser-webpack-plugin: "npm:^5.3.11" + terser-webpack-plugin: "npm:^5.3.16" watchpack: "npm:^2.4.4" webpack-sources: "npm:^3.3.3" peerDependenciesMeta: @@ -7078,7 +7078,7 @@ __metadata: optional: true bin: webpack: bin/webpack.js - checksum: 10c0/d0cf86f8cac249874d6f36292e25011413ebb5bae82c48fa78a165a217e63db00b1a1f563f5195070eb17a055c6da4b6ab89fbdd37f781abdda862aa8c0bd623 + checksum: 10c0/ea78c57f80bbd7684f4f1bb38a18408ab0ef4c5b962e25ad382c595d10b9e9701e077f5248a8cef5f127a55902698664c18837e64243bb972fbecf4e5d9aaab0 languageName: node linkType: hard diff --git a/packages/template/webpack-typescript/spec/fixtures/test-yarn.lock b/packages/template/webpack-typescript/spec/fixtures/test-yarn.lock index 3abcceea1d..49bce3cc42 100644 --- a/packages/template/webpack-typescript/spec/fixtures/test-yarn.lock +++ b/packages/template/webpack-typescript/spec/fixtures/test-yarn.lock @@ -1200,20 +1200,20 @@ __metadata: linkType: hard "@types/node@npm:*": - version: 24.10.1 - resolution: "@types/node@npm:24.10.1" + version: 25.0.3 + resolution: "@types/node@npm:25.0.3" dependencies: undici-types: "npm:~7.16.0" - checksum: 10c0/d6bca7a78f550fbb376f236f92b405d676003a8a09a1b411f55920ef34286ee3ee51f566203920e835478784df52662b5b2af89159d9d319352e9ea21801c002 + checksum: 10c0/b7568f0d765d9469621615e2bb257c7fd1953d95e9acbdb58dffb6627a2c4150d405a4600aa1ad8a40182a94fe5f903cafd3c0a2f5132814debd0e3bfd61f835 languageName: node linkType: hard "@types/node@npm:^22.5.5, @types/node@npm:^22.7.7": - version: 22.19.1 - resolution: "@types/node@npm:22.19.1" + version: 22.19.3 + resolution: "@types/node@npm:22.19.3" dependencies: undici-types: "npm:~6.21.0" - checksum: 10c0/6edd93aea86da740cb7872626839cd6f4a67a049d3a3a6639cb592c620ec591408a30989ab7410008d1a0b2d4985ce50f1e488e79c033e4476d3bec6833b0a2f + checksum: 10c0/a30a75d503da795ddbd5f8851014f3e91925c2a63fa3f14128d54c998f25d682dfba96dc9589c73cf478b87a16d88beb790b11697bb8cd5bee913079237a58f2 languageName: node linkType: hard @@ -2024,11 +2024,11 @@ __metadata: linkType: hard "baseline-browser-mapping@npm:^2.9.0": - version: 2.9.0 - resolution: "baseline-browser-mapping@npm:2.9.0" + version: 2.9.10 + resolution: "baseline-browser-mapping@npm:2.9.10" bin: baseline-browser-mapping: dist/cli.js - checksum: 10c0/cc2c4beaaa6310e57d55c0b38767b7d833cad17779a51bd2f1db7c8fb50d86629fa065cf65b9333bbe1d909270a084bd2177f0fbc832633b273504a8c805ab9c + checksum: 10c0/e8021a03d7ec00583c83054993a7192dae5065b25de2b2763420116553aeff8297e5ad643c94549f2310f436df0511ade80c7a889251c03af11e68eecbff1fae languageName: node linkType: hard @@ -2143,7 +2143,7 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.26.3": +"browserslist@npm:^4.28.1": version: 4.28.1 resolution: "browserslist@npm:4.28.1" dependencies: @@ -2306,9 +2306,9 @@ __metadata: linkType: hard "caniuse-lite@npm:^1.0.30001759": - version: 1.0.30001759 - resolution: "caniuse-lite@npm:1.0.30001759" - checksum: 10c0/b0f415960ba34995cda18e0d25c4e602f6917b9179290a76bdd0311423505b78cc93e558a90c98a22a1cc6b1781ab720ef6beea24ec7e29a1c1164ca72eac3a2 + version: 1.0.30001760 + resolution: "caniuse-lite@npm:1.0.30001760" + checksum: 10c0/cee26dff5c5b15ba073ab230200e43c0d4e88dc3bac0afe0c9ab963df70aaa876c3e513dde42a027f317136bf6e274818d77b073708b74c5807dfad33c029d3c languageName: node linkType: hard @@ -3023,9 +3023,9 @@ __metadata: languageName: node linkType: hard -"electron-forge-test-1764816494613@workspace:.": +"electron-forge-test-1766088655017@workspace:.": version: 0.0.0-use.local - resolution: "electron-forge-test-1764816494613@workspace:." + resolution: "electron-forge-test-1766088655017@workspace:." dependencies: "@electron-forge/cli": "npm:^8.0.0-alpha.3" "@electron-forge/maker-deb": "npm:^8.0.0-alpha.3" @@ -3049,7 +3049,7 @@ __metadata: node-loader: "npm:^2.0.0" style-loader: "npm:^3.0.0" ts-loader: "npm:^9.2.2" - typescript: "npm:~4.5.4" + typescript: "npm:5.9.3" languageName: unknown linkType: soft @@ -3119,9 +3119,9 @@ __metadata: linkType: hard "electron-to-chromium@npm:^1.5.263": - version: 1.5.264 - resolution: "electron-to-chromium@npm:1.5.264" - checksum: 10c0/d62cfc6ed02856de59b0e7baf5bb7995b611ba4df14355a0943301a56628bd0fad98287c0becdcf55509ff5ed38d7f01a33b9f962820c8aa8cbc90292035275c + version: 1.5.267 + resolution: "electron-to-chromium@npm:1.5.267" + checksum: 10c0/0732bdb891b657f2e43266a3db8cf86fff6cecdcc8d693a92beff214e136cb5c2ee7dc5945ed75fa1db16e16bad0c38695527a020d15f39e79084e0b2e447621 languageName: node linkType: hard @@ -3176,13 +3176,6 @@ __metadata: languageName: node linkType: hard -"encodeurl@npm:~1.0.2": - version: 1.0.2 - resolution: "encodeurl@npm:1.0.2" - checksum: 10c0/f6c2387379a9e7c1156c1c3d4f9cb7bb11cf16dd4c1682e1f6746512564b053df5781029b6061296832b59fb22f459dbe250386d217c2f6e203601abb2ee0bec - languageName: node - linkType: hard - "encodeurl@npm:~2.0.0": version: 2.0.0 resolution: "encodeurl@npm:2.0.0" @@ -3208,13 +3201,13 @@ __metadata: languageName: node linkType: hard -"enhanced-resolve@npm:^5.0.0, enhanced-resolve@npm:^5.17.3": - version: 5.18.3 - resolution: "enhanced-resolve@npm:5.18.3" +"enhanced-resolve@npm:^5.0.0, enhanced-resolve@npm:^5.17.4": + version: 5.18.4 + resolution: "enhanced-resolve@npm:5.18.4" dependencies: graceful-fs: "npm:^4.2.4" tapable: "npm:^2.2.0" - checksum: 10c0/d413c23c2d494e4c1c9c9ac7d60b812083dc6d446699ed495e69c920988af0a3c66bf3f8d0e7a45cb1686c2d4c1df9f4e7352d973f5b56fe63d8d711dd0ccc54 + checksum: 10c0/8f6d42c8a0787a746c493e724c9de5d091cfe8e3f871f2464e2f78a6c55fa1a3aaba495334f923c8ea3ac23e1472491f79feef6fc0fb46a75169cb447ffbe2dc languageName: node linkType: hard @@ -3249,8 +3242,8 @@ __metadata: linkType: hard "es-abstract@npm:^1.23.2, es-abstract@npm:^1.23.5, es-abstract@npm:^1.23.9, es-abstract@npm:^1.24.0": - version: 1.24.0 - resolution: "es-abstract@npm:1.24.0" + version: 1.24.1 + resolution: "es-abstract@npm:1.24.1" dependencies: array-buffer-byte-length: "npm:^1.0.2" arraybuffer.prototype.slice: "npm:^1.0.4" @@ -3306,7 +3299,7 @@ __metadata: typed-array-length: "npm:^1.0.7" unbox-primitive: "npm:^1.1.0" which-typed-array: "npm:^1.1.19" - checksum: 10c0/b256e897be32df5d382786ce8cce29a1dd8c97efbab77a26609bd70f2ed29fbcfc7a31758cb07488d532e7ccccdfca76c1118f2afe5a424cdc05ca007867c318 + checksum: 10c0/fca062ef8b5daacf743732167d319a212d45cb655b0bb540821d38d715416ae15b04b84fc86da9e2c89135aa7b337337b6c867f84dcde698d75d55688d5d765c languageName: node linkType: hard @@ -3324,10 +3317,10 @@ __metadata: languageName: node linkType: hard -"es-module-lexer@npm:^1.2.1": - version: 1.7.0 - resolution: "es-module-lexer@npm:1.7.0" - checksum: 10c0/4c935affcbfeba7fb4533e1da10fa8568043df1e3574b869385980de9e2d475ddc36769891936dbb07036edb3c3786a8b78ccf44964cd130dedc1f2c984b6c7b +"es-module-lexer@npm:^2.0.0": + version: 2.0.0 + resolution: "es-module-lexer@npm:2.0.0" + checksum: 10c0/ae78dbbd43035a4b972c46cfb6877e374ea290adfc62bc2f5a083fea242c0b2baaab25c5886af86be55f092f4a326741cb94334cd3c478c383fdc8a9ec5ff817 languageName: node linkType: hard @@ -3969,7 +3962,7 @@ __metadata: languageName: node linkType: hard -"fresh@npm:0.5.2, fresh@npm:~0.5.2": +"fresh@npm:~0.5.2": version: 0.5.2 resolution: "fresh@npm:0.5.2" checksum: 10c0/c6d27f3ed86cc5b601404822f31c900dd165ba63fff8152a3ef714e2012e7535027063bc67ded4cb5b3a49fa596495d46cacd9f47d6328459cf570f08b7d9e5a @@ -3988,13 +3981,13 @@ __metadata: linkType: hard "fs-extra@npm:^11.1.0, fs-extra@npm:^11.1.1": - version: 11.3.2 - resolution: "fs-extra@npm:11.3.2" + version: 11.3.3 + resolution: "fs-extra@npm:11.3.3" dependencies: graceful-fs: "npm:^4.2.0" jsonfile: "npm:^6.0.1" universalify: "npm:^2.0.0" - checksum: 10c0/f5d629e1bb646d5dedb4d8b24c5aad3deb8cc1d5438979d6f237146cd10e113b49a949ae1b54212c2fbc98e2d0995f38009a9a1d0520f0287943335e65fe919b + checksum: 10c0/984924ff4104e3e9f351b658a864bf3b354b2c90429f57aec0acd12d92c4e6b762cbacacdffb4e745b280adce882e1f980c485d9f02c453f769ab4e7fc646ce3 languageName: node linkType: hard @@ -4547,19 +4540,6 @@ __metadata: languageName: node linkType: hard -"http-errors@npm:2.0.0": - version: 2.0.0 - resolution: "http-errors@npm:2.0.0" - dependencies: - depd: "npm:2.0.0" - inherits: "npm:2.0.4" - setprototypeof: "npm:1.2.0" - statuses: "npm:2.0.1" - toidentifier: "npm:1.0.1" - checksum: 10c0/fc6f2715fe188d091274b5ffc8b3657bd85c63e969daa68ccb77afb05b071a4b62841acb7a21e417b5539014dff2ebf9550f0b14a9ff126f2734a7c1387f8e19 - languageName: node - linkType: hard - "http-errors@npm:~1.6.2": version: 1.6.3 resolution: "http-errors@npm:1.6.3" @@ -4770,7 +4750,7 @@ __metadata: languageName: node linkType: hard -"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.3, inherits@npm:~2.0.4": +"inherits@npm:2, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.3, inherits@npm:~2.0.4": version: 2.0.4 resolution: "inherits@npm:2.0.4" checksum: 10c0/4e531f648b29039fb7426fb94075e6545faa1eb9fe83c29f0b6d9e7263aceb4289d2d4557db0d428188eeb449cc7c5e77b0a0b2c4e248ff2a65933a0dee49ef2 @@ -6219,7 +6199,7 @@ __metadata: languageName: node linkType: hard -"on-finished@npm:2.4.1, on-finished@npm:~2.4.1": +"on-finished@npm:~2.4.1": version: 2.4.1 resolution: "on-finished@npm:2.4.1" dependencies: @@ -7270,30 +7250,9 @@ __metadata: languageName: node linkType: hard -"send@npm:0.19.0": - version: 0.19.0 - resolution: "send@npm:0.19.0" - dependencies: - debug: "npm:2.6.9" - depd: "npm:2.0.0" - destroy: "npm:1.2.0" - encodeurl: "npm:~1.0.2" - escape-html: "npm:~1.0.3" - etag: "npm:~1.8.1" - fresh: "npm:0.5.2" - http-errors: "npm:2.0.0" - mime: "npm:1.6.0" - ms: "npm:2.1.3" - on-finished: "npm:2.4.1" - range-parser: "npm:~1.2.1" - statuses: "npm:2.0.1" - checksum: 10c0/ea3f8a67a8f0be3d6bf9080f0baed6d2c51d11d4f7b4470de96a5029c598a7011c497511ccc28968b70ef05508675cebff27da9151dd2ceadd60be4e6cf845e3 - languageName: node - linkType: hard - -"send@npm:~0.19.0": - version: 0.19.1 - resolution: "send@npm:0.19.1" +"send@npm:~0.19.0, send@npm:~0.19.1": + version: 0.19.2 + resolution: "send@npm:0.19.2" dependencies: debug: "npm:2.6.9" depd: "npm:2.0.0" @@ -7301,14 +7260,14 @@ __metadata: encodeurl: "npm:~2.0.0" escape-html: "npm:~1.0.3" etag: "npm:~1.8.1" - fresh: "npm:0.5.2" - http-errors: "npm:2.0.0" + fresh: "npm:~0.5.2" + http-errors: "npm:~2.0.1" mime: "npm:1.6.0" ms: "npm:2.1.3" - on-finished: "npm:2.4.1" + on-finished: "npm:~2.4.1" range-parser: "npm:~1.2.1" - statuses: "npm:2.0.1" - checksum: 10c0/ceb859859822bf55e705b96db9a909870626d1a6bfcf62a88648b9681048a7840c0ff1f4afd7babea4ccfabff7d64a7dda68a6f6c63c255cc83f40a412a1db8e + statuses: "npm:~2.0.2" + checksum: 10c0/20c2389fe0fdf3fc499938cac598bc32272287e993c4960717381a10de8550028feadfb9076f959a3a3ebdea42e1f690e116f0d16468fa56b9fd41866d3dc267 languageName: node linkType: hard @@ -7346,14 +7305,14 @@ __metadata: linkType: hard "serve-static@npm:~1.16.2": - version: 1.16.2 - resolution: "serve-static@npm:1.16.2" + version: 1.16.3 + resolution: "serve-static@npm:1.16.3" dependencies: encodeurl: "npm:~2.0.0" escape-html: "npm:~1.0.3" parseurl: "npm:~1.3.3" - send: "npm:0.19.0" - checksum: 10c0/528fff6f5e12d0c5a391229ad893910709bc51b5705962b09404a1d813857578149b8815f35d3ee5752f44cd378d0f31669d4b1d7e2d11f41e08283d5134bd1f + send: "npm:~0.19.1" + checksum: 10c0/36320397a073c71bedf58af48a4a100fe6d93f07459af4d6f08b9a7217c04ce2a4939e0effd842dc7bece93ffcd59eb52f58c4fff2a8e002dc29ae6b219cd42b languageName: node linkType: hard @@ -7702,13 +7661,6 @@ __metadata: languageName: node linkType: hard -"statuses@npm:2.0.1": - version: 2.0.1 - resolution: "statuses@npm:2.0.1" - checksum: 10c0/34378b207a1620a24804ce8b5d230fea0c279f00b18a7209646d5d47e419d1cc23e7cbf33a25a1e51ac38973dc2ac2e1e9c647a8e481ef365f77668d72becfd0 - languageName: node - linkType: hard - "statuses@npm:>= 1.4.0 < 2": version: 1.5.0 resolution: "statuses@npm:1.5.0" @@ -7953,9 +7905,9 @@ __metadata: languageName: node linkType: hard -"terser-webpack-plugin@npm:^5.3.11": - version: 5.3.14 - resolution: "terser-webpack-plugin@npm:5.3.14" +"terser-webpack-plugin@npm:^5.3.16": + version: 5.3.16 + resolution: "terser-webpack-plugin@npm:5.3.16" dependencies: "@jridgewell/trace-mapping": "npm:^0.3.25" jest-worker: "npm:^27.4.5" @@ -7971,7 +7923,7 @@ __metadata: optional: true uglify-js: optional: true - checksum: 10c0/9b060947241af43bd6fd728456f60e646186aef492163672a35ad49be6fbc7f63b54a7356c3f6ff40a8f83f00a977edc26f044b8e106cc611c053c8c0eaf8569 + checksum: 10c0/39e37c5b3015c1a5354a3633f77235677bfa06eac2608ce26d258b1d1a74070a99910319a6f2f2c437eb61dc321f66434febe01d78e73fa96b4d4393b813f4cf languageName: node linkType: hard @@ -8054,7 +8006,7 @@ __metadata: languageName: node linkType: hard -"toidentifier@npm:1.0.1, toidentifier@npm:~1.0.1": +"toidentifier@npm:~1.0.1": version: 1.0.1 resolution: "toidentifier@npm:1.0.1" checksum: 10c0/93937279934bd66cc3270016dd8d0afec14fb7c94a05c72dc57321f8bd1fa97e5bea6d1f7c89e728d077ca31ea125b78320a616a6c6cd0e6b9cb94cb864381c1 @@ -8230,13 +8182,13 @@ __metadata: languageName: node linkType: hard -"typescript@npm:~4.5.4": - version: 4.5.5 - resolution: "typescript@npm:4.5.5" +"typescript@npm:5.9.3": + version: 5.9.3 + resolution: "typescript@npm:5.9.3" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 10c0/ac15b92f3dcd9a4233cab288a913ccbd96729fc488181396fa93c0297ccef3cd3c2f9a7a63340efb0d07bff3d5026028fc81b9c1ef08076029e057081eb5884b + checksum: 10c0/6bd7552ce39f97e711db5aa048f6f9995b53f1c52f7d8667c1abdc1700c68a76a308f579cd309ce6b53646deb4e9a1be7c813a93baaf0a28ccd536a30270e1c5 languageName: node linkType: hard @@ -8250,13 +8202,13 @@ __metadata: languageName: node linkType: hard -"typescript@patch:typescript@npm%3A~4.5.4#optional!builtin": - version: 4.5.5 - resolution: "typescript@patch:typescript@npm%3A4.5.5#optional!builtin::version=4.5.5&hash=f1b8ea" +"typescript@patch:typescript@npm%3A5.9.3#optional!builtin": + version: 5.9.3 + resolution: "typescript@patch:typescript@npm%3A5.9.3#optional!builtin::version=5.9.3&hash=5786d5" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 10c0/c699912602518eca36f101f61492608733da8305ba93a82291fbb29508da56e360b10f35f56fd9a53406db9ea2c261d30efd4ec1d9253ff45fdb5541b9d0381c + checksum: 10c0/ad09fdf7a756814dce65bc60c1657b40d44451346858eea230e10f2e95a289d9183b6e32e5c11e95acc0ccc214b4f36289dcad4bf1886b0adb84d711d336a430 languageName: node linkType: hard @@ -8354,8 +8306,8 @@ __metadata: linkType: hard "update-browserslist-db@npm:^1.2.0": - version: 1.2.1 - resolution: "update-browserslist-db@npm:1.2.1" + version: 1.2.3 + resolution: "update-browserslist-db@npm:1.2.3" dependencies: escalade: "npm:^3.2.0" picocolors: "npm:^1.1.1" @@ -8363,7 +8315,7 @@ __metadata: browserslist: ">= 4.21.0" bin: update-browserslist-db: cli.js - checksum: 10c0/cbf7547651dfefd2924a61338ccf99cad15ab10bc52ada3fdc3fb1eade14e3cb27a247e6715c3bd2e8941f2bdd322348edfbee8536fff3828188445960b8e490 + checksum: 10c0/13a00355ea822388f68af57410ce3255941d5fb9b7c49342c4709a07c9f230bbef7f7499ae0ca7e0de532e79a82cc0c4edbd125f1a323a1845bf914efddf8bec languageName: node linkType: hard @@ -8549,8 +8501,8 @@ __metadata: linkType: hard "webpack@npm:^5.69.1": - version: 5.103.0 - resolution: "webpack@npm:5.103.0" + version: 5.104.1 + resolution: "webpack@npm:5.104.1" dependencies: "@types/eslint-scope": "npm:^3.7.7" "@types/estree": "npm:^1.0.8" @@ -8560,10 +8512,10 @@ __metadata: "@webassemblyjs/wasm-parser": "npm:^1.14.1" acorn: "npm:^8.15.0" acorn-import-phases: "npm:^1.0.3" - browserslist: "npm:^4.26.3" + browserslist: "npm:^4.28.1" chrome-trace-event: "npm:^1.0.2" - enhanced-resolve: "npm:^5.17.3" - es-module-lexer: "npm:^1.2.1" + enhanced-resolve: "npm:^5.17.4" + es-module-lexer: "npm:^2.0.0" eslint-scope: "npm:5.1.1" events: "npm:^3.2.0" glob-to-regexp: "npm:^0.4.1" @@ -8574,7 +8526,7 @@ __metadata: neo-async: "npm:^2.6.2" schema-utils: "npm:^4.3.3" tapable: "npm:^2.3.0" - terser-webpack-plugin: "npm:^5.3.11" + terser-webpack-plugin: "npm:^5.3.16" watchpack: "npm:^2.4.4" webpack-sources: "npm:^3.3.3" peerDependenciesMeta: @@ -8582,7 +8534,7 @@ __metadata: optional: true bin: webpack: bin/webpack.js - checksum: 10c0/d0cf86f8cac249874d6f36292e25011413ebb5bae82c48fa78a165a217e63db00b1a1f563f5195070eb17a055c6da4b6ab89fbdd37f781abdda862aa8c0bd623 + checksum: 10c0/ea78c57f80bbd7684f4f1bb38a18408ab0ef4c5b962e25ad382c595d10b9e9701e077f5248a8cef5f127a55902698664c18837e64243bb972fbecf4e5d9aaab0 languageName: node linkType: hard diff --git a/tools/regenerate-lockfile-fixtures.ts b/tools/regenerate-lockfile-fixtures.ts index 48eedbaf80..78802e2933 100755 --- a/tools/regenerate-lockfile-fixtures.ts +++ b/tools/regenerate-lockfile-fixtures.ts @@ -88,6 +88,8 @@ async function regenerateWebpackTypescriptLockfile() { 'packages', 'template', 'webpack-typescript', + 'dist', + 'WebpackTypeScriptTemplate.js', ); await initForgeProject(dir, template); @@ -127,6 +129,8 @@ async function regenerateViteTypescriptLockfile() { 'packages', 'template', 'vite-typescript', + 'dist', + 'ViteTypeScriptTemplate.js', ); await initForgeProject(dir, template); @@ -172,7 +176,7 @@ async function main() { } } -if (require.main === module) { +if (import.meta.main) { main().catch(() => { process.exit(1); }); diff --git a/yarn.config.cjs b/yarn.config.cjs index 208cdee43b..1974ae130e 100644 --- a/yarn.config.cjs +++ b/yarn.config.cjs @@ -32,9 +32,6 @@ function enforceConsistentDependenciesAcrossTheProject({ Yarn }) { // so skip them for now if (OPTIONAL_DEPS.includes(dependency.ident)) continue; - // HACK: For now, we're using a different major version of Vite specifically for Vitest - if (dependency.ident === 'vite') continue; - for (const otherDependency of Yarn.dependencies({ ident: dependency.ident, })) { diff --git a/yarn.lock b/yarn.lock index a5c0accb53..3219377b93 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1135,7 +1135,7 @@ __metadata: debug: "npm:^4.3.1" fs-extra: "npm:^10.0.0" listr2: "npm:^7.0.2" - vite: "npm:^5.0.12" + vite: "npm:^7.2.4" vitest: "npm:^4.0.14" which: "npm:^2.0.2" xvfb-maybe: "npm:^0.2.1" @@ -1673,13 +1673,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/aix-ppc64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/aix-ppc64@npm:0.21.5" - conditions: os=aix & cpu=ppc64 - languageName: node - linkType: hard - "@esbuild/aix-ppc64@npm:0.25.10": version: 0.25.10 resolution: "@esbuild/aix-ppc64@npm:0.25.10" @@ -1694,13 +1687,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/android-arm64@npm:0.21.5" - conditions: os=android & cpu=arm64 - languageName: node - linkType: hard - "@esbuild/android-arm64@npm:0.25.10": version: 0.25.10 resolution: "@esbuild/android-arm64@npm:0.25.10" @@ -1715,13 +1701,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/android-arm@npm:0.21.5" - conditions: os=android & cpu=arm - languageName: node - linkType: hard - "@esbuild/android-arm@npm:0.25.10": version: 0.25.10 resolution: "@esbuild/android-arm@npm:0.25.10" @@ -1736,13 +1715,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/android-x64@npm:0.21.5" - conditions: os=android & cpu=x64 - languageName: node - linkType: hard - "@esbuild/android-x64@npm:0.25.10": version: 0.25.10 resolution: "@esbuild/android-x64@npm:0.25.10" @@ -1757,13 +1729,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/darwin-arm64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/darwin-arm64@npm:0.21.5" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - "@esbuild/darwin-arm64@npm:0.25.10": version: 0.25.10 resolution: "@esbuild/darwin-arm64@npm:0.25.10" @@ -1778,13 +1743,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/darwin-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/darwin-x64@npm:0.21.5" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - "@esbuild/darwin-x64@npm:0.25.10": version: 0.25.10 resolution: "@esbuild/darwin-x64@npm:0.25.10" @@ -1799,13 +1757,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/freebsd-arm64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/freebsd-arm64@npm:0.21.5" - conditions: os=freebsd & cpu=arm64 - languageName: node - linkType: hard - "@esbuild/freebsd-arm64@npm:0.25.10": version: 0.25.10 resolution: "@esbuild/freebsd-arm64@npm:0.25.10" @@ -1820,13 +1771,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/freebsd-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/freebsd-x64@npm:0.21.5" - conditions: os=freebsd & cpu=x64 - languageName: node - linkType: hard - "@esbuild/freebsd-x64@npm:0.25.10": version: 0.25.10 resolution: "@esbuild/freebsd-x64@npm:0.25.10" @@ -1841,13 +1785,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-arm64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-arm64@npm:0.21.5" - conditions: os=linux & cpu=arm64 - languageName: node - linkType: hard - "@esbuild/linux-arm64@npm:0.25.10": version: 0.25.10 resolution: "@esbuild/linux-arm64@npm:0.25.10" @@ -1862,13 +1799,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-arm@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-arm@npm:0.21.5" - conditions: os=linux & cpu=arm - languageName: node - linkType: hard - "@esbuild/linux-arm@npm:0.25.10": version: 0.25.10 resolution: "@esbuild/linux-arm@npm:0.25.10" @@ -1883,13 +1813,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-ia32@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-ia32@npm:0.21.5" - conditions: os=linux & cpu=ia32 - languageName: node - linkType: hard - "@esbuild/linux-ia32@npm:0.25.10": version: 0.25.10 resolution: "@esbuild/linux-ia32@npm:0.25.10" @@ -1904,13 +1827,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-loong64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-loong64@npm:0.21.5" - conditions: os=linux & cpu=loong64 - languageName: node - linkType: hard - "@esbuild/linux-loong64@npm:0.25.10": version: 0.25.10 resolution: "@esbuild/linux-loong64@npm:0.25.10" @@ -1925,13 +1841,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-mips64el@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-mips64el@npm:0.21.5" - conditions: os=linux & cpu=mips64el - languageName: node - linkType: hard - "@esbuild/linux-mips64el@npm:0.25.10": version: 0.25.10 resolution: "@esbuild/linux-mips64el@npm:0.25.10" @@ -1946,13 +1855,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-ppc64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-ppc64@npm:0.21.5" - conditions: os=linux & cpu=ppc64 - languageName: node - linkType: hard - "@esbuild/linux-ppc64@npm:0.25.10": version: 0.25.10 resolution: "@esbuild/linux-ppc64@npm:0.25.10" @@ -1967,13 +1869,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-riscv64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-riscv64@npm:0.21.5" - conditions: os=linux & cpu=riscv64 - languageName: node - linkType: hard - "@esbuild/linux-riscv64@npm:0.25.10": version: 0.25.10 resolution: "@esbuild/linux-riscv64@npm:0.25.10" @@ -1988,13 +1883,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-s390x@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-s390x@npm:0.21.5" - conditions: os=linux & cpu=s390x - languageName: node - linkType: hard - "@esbuild/linux-s390x@npm:0.25.10": version: 0.25.10 resolution: "@esbuild/linux-s390x@npm:0.25.10" @@ -2009,13 +1897,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-x64@npm:0.21.5" - conditions: os=linux & cpu=x64 - languageName: node - linkType: hard - "@esbuild/linux-x64@npm:0.25.10": version: 0.25.10 resolution: "@esbuild/linux-x64@npm:0.25.10" @@ -2044,13 +1925,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/netbsd-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/netbsd-x64@npm:0.21.5" - conditions: os=netbsd & cpu=x64 - languageName: node - linkType: hard - "@esbuild/netbsd-x64@npm:0.25.10": version: 0.25.10 resolution: "@esbuild/netbsd-x64@npm:0.25.10" @@ -2079,13 +1953,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/openbsd-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/openbsd-x64@npm:0.21.5" - conditions: os=openbsd & cpu=x64 - languageName: node - linkType: hard - "@esbuild/openbsd-x64@npm:0.25.10": version: 0.25.10 resolution: "@esbuild/openbsd-x64@npm:0.25.10" @@ -2114,13 +1981,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/sunos-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/sunos-x64@npm:0.21.5" - conditions: os=sunos & cpu=x64 - languageName: node - linkType: hard - "@esbuild/sunos-x64@npm:0.25.10": version: 0.25.10 resolution: "@esbuild/sunos-x64@npm:0.25.10" @@ -2135,13 +1995,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-arm64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/win32-arm64@npm:0.21.5" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - "@esbuild/win32-arm64@npm:0.25.10": version: 0.25.10 resolution: "@esbuild/win32-arm64@npm:0.25.10" @@ -2156,13 +2009,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-ia32@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/win32-ia32@npm:0.21.5" - conditions: os=win32 & cpu=ia32 - languageName: node - linkType: hard - "@esbuild/win32-ia32@npm:0.25.10": version: 0.25.10 resolution: "@esbuild/win32-ia32@npm:0.25.10" @@ -2177,13 +2023,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/win32-x64@npm:0.21.5" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - "@esbuild/win32-x64@npm:0.25.10": version: 0.25.10 resolution: "@esbuild/win32-x64@npm:0.25.10" @@ -5149,6 +4988,15 @@ __metadata: languageName: node linkType: hard +"@types/node@npm:^22.10.7": + version: 22.19.2 + resolution: "@types/node@npm:22.19.2" + dependencies: + undici-types: "npm:~6.21.0" + checksum: 10c0/fd56fc727bdc2cd9582e05db5daab6c8eb7bc5e5640a54cbc64ccc160a61cf50940742be5536f83796bffc83ce7709d5580a9ca85806f57501958821d230ab78 + languageName: node + linkType: hard + "@types/node@npm:^22.5.5": version: 22.17.2 resolution: "@types/node@npm:22.17.2" @@ -8650,7 +8498,7 @@ __metadata: "@types/lodash-es": "npm:^4.17.12" "@types/mime-types": "npm:^2.1.0" "@types/minimist": "npm:^1.2.0" - "@types/node": "npm:~22.10.7" + "@types/node": "npm:^22.10.7" "@types/semver": "npm:^7.3.4" "@types/which": "npm:^2.0.0" "@typescript-eslint/eslint-plugin": "npm:^8.0.0" @@ -9326,86 +9174,6 @@ __metadata: languageName: node linkType: hard -"esbuild@npm:^0.21.3": - version: 0.21.5 - resolution: "esbuild@npm:0.21.5" - dependencies: - "@esbuild/aix-ppc64": "npm:0.21.5" - "@esbuild/android-arm": "npm:0.21.5" - "@esbuild/android-arm64": "npm:0.21.5" - "@esbuild/android-x64": "npm:0.21.5" - "@esbuild/darwin-arm64": "npm:0.21.5" - "@esbuild/darwin-x64": "npm:0.21.5" - "@esbuild/freebsd-arm64": "npm:0.21.5" - "@esbuild/freebsd-x64": "npm:0.21.5" - "@esbuild/linux-arm": "npm:0.21.5" - "@esbuild/linux-arm64": "npm:0.21.5" - "@esbuild/linux-ia32": "npm:0.21.5" - "@esbuild/linux-loong64": "npm:0.21.5" - "@esbuild/linux-mips64el": "npm:0.21.5" - "@esbuild/linux-ppc64": "npm:0.21.5" - "@esbuild/linux-riscv64": "npm:0.21.5" - "@esbuild/linux-s390x": "npm:0.21.5" - "@esbuild/linux-x64": "npm:0.21.5" - "@esbuild/netbsd-x64": "npm:0.21.5" - "@esbuild/openbsd-x64": "npm:0.21.5" - "@esbuild/sunos-x64": "npm:0.21.5" - "@esbuild/win32-arm64": "npm:0.21.5" - "@esbuild/win32-ia32": "npm:0.21.5" - "@esbuild/win32-x64": "npm:0.21.5" - dependenciesMeta: - "@esbuild/aix-ppc64": - optional: true - "@esbuild/android-arm": - optional: true - "@esbuild/android-arm64": - optional: true - "@esbuild/android-x64": - optional: true - "@esbuild/darwin-arm64": - optional: true - "@esbuild/darwin-x64": - optional: true - "@esbuild/freebsd-arm64": - optional: true - "@esbuild/freebsd-x64": - optional: true - "@esbuild/linux-arm": - optional: true - "@esbuild/linux-arm64": - optional: true - "@esbuild/linux-ia32": - optional: true - "@esbuild/linux-loong64": - optional: true - "@esbuild/linux-mips64el": - optional: true - "@esbuild/linux-ppc64": - optional: true - "@esbuild/linux-riscv64": - optional: true - "@esbuild/linux-s390x": - optional: true - "@esbuild/linux-x64": - optional: true - "@esbuild/netbsd-x64": - optional: true - "@esbuild/openbsd-x64": - optional: true - "@esbuild/sunos-x64": - optional: true - "@esbuild/win32-arm64": - optional: true - "@esbuild/win32-ia32": - optional: true - "@esbuild/win32-x64": - optional: true - bin: - esbuild: bin/esbuild - checksum: 10c0/fa08508adf683c3f399e8a014a6382a6b65542213431e26206c0720e536b31c09b50798747c2a105a4bbba1d9767b8d3615a74c2f7bf1ddf6d836cd11eb672de - languageName: node - linkType: hard - "esbuild@npm:^0.25.0": version: 0.25.10 resolution: "esbuild@npm:0.25.10" @@ -16750,7 +16518,7 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.4.43, postcss@npm:^8.5.6": +"postcss@npm:^8.5.6": version: 8.5.6 resolution: "postcss@npm:8.5.6" dependencies: @@ -17729,7 +17497,7 @@ __metadata: languageName: node linkType: hard -"rollup@npm:^4.20.0, rollup@npm:^4.43.0": +"rollup@npm:^4.43.0": version: 4.53.3 resolution: "rollup@npm:4.53.3" dependencies: @@ -20164,49 +19932,6 @@ __metadata: languageName: node linkType: hard -"vite@npm:^5.0.12": - version: 5.4.21 - resolution: "vite@npm:5.4.21" - dependencies: - esbuild: "npm:^0.21.3" - fsevents: "npm:~2.3.3" - postcss: "npm:^8.4.43" - rollup: "npm:^4.20.0" - peerDependencies: - "@types/node": ^18.0.0 || >=20.0.0 - less: "*" - lightningcss: ^1.21.0 - sass: "*" - sass-embedded: "*" - stylus: "*" - sugarss: "*" - terser: ^5.4.0 - dependenciesMeta: - fsevents: - optional: true - peerDependenciesMeta: - "@types/node": - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - bin: - vite: bin/vite.js - checksum: 10c0/468336a1409f728b464160cbf02672e72271fb688d0e605e776b74a89d27e1029509eef3a3a6c755928d8011e474dbf234824d054d07960be5f23cd176bc72de - languageName: node - linkType: hard - "vite@npm:^6.0.0 || ^7.0.0, vite@npm:^7.2.4": version: 7.2.4 resolution: "vite@npm:7.2.4" From 643412e37c3a1c6df7b7f243cba60733a54430a1 Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Thu, 18 Dec 2025 13:34:52 -0800 Subject: [PATCH 24/62] update lockfile --- yarn.lock | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/yarn.lock b/yarn.lock index 3219377b93..a495b2c6b7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1130,7 +1130,7 @@ __metadata: "@electron-forge/shared-types": "workspace:*" "@electron/packager": "npm:^19.0.1" "@malept/cross-spawn-promise": "npm:^2.0.0" - "@types/node": "npm:~22.10.7" + "@types/node": "npm:^22.10.7" chalk: "npm:^4.0.0" debug: "npm:^4.3.1" fs-extra: "npm:^10.0.0" @@ -1152,7 +1152,7 @@ __metadata: "@electron-forge/web-multi-logger": "workspace:*" "@electron/packager": "npm:^19.0.1" "@malept/cross-spawn-promise": "npm:^2.0.0" - "@types/node": "npm:~22.10.7" + "@types/node": "npm:^22.10.7" chalk: "npm:^4.0.0" debug: "npm:^4.3.1" fast-glob: "npm:^3.2.7" @@ -5015,15 +5015,6 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:~22.10.7": - version: 22.10.10 - resolution: "@types/node@npm:22.10.10" - dependencies: - undici-types: "npm:~6.20.0" - checksum: 10c0/3425772d4513cd5dbdd87c00acda088113c03a97445f84f6a89744c60a66990b56c9d3a7213d09d57b6b944ae8ff45f985565e0c1846726112588e33a22dd12b - languageName: node - linkType: hard - "@types/normalize-package-data@npm:^2.4.0": version: 2.4.1 resolution: "@types/normalize-package-data@npm:2.4.1" From 4b9e5188b4908c120a26428d11e537482def306f Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Wed, 7 Jan 2026 15:31:12 -0800 Subject: [PATCH 25/62] import.meta.dirname in verdaccio --- tools/verdaccio/spawn-verdaccio.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/verdaccio/spawn-verdaccio.ts b/tools/verdaccio/spawn-verdaccio.ts index 9612b0b276..27b15d8c51 100644 --- a/tools/verdaccio/spawn-verdaccio.ts +++ b/tools/verdaccio/spawn-verdaccio.ts @@ -21,17 +21,17 @@ import path from 'node:path'; import { spawn as spawnPromise } from '@malept/cross-spawn-promise'; import debug from 'debug'; -const FORGE_ROOT_DIR = path.resolve(__dirname, '../..'); +const FORGE_ROOT_DIR = path.resolve(import.meta.dirname, '../..'); /** * Path to the Verdaccio configuration file. * The below constants are derived from settings in the YAML. */ -const CONFIG_PATH = path.resolve(__dirname, 'config.yaml'); +const CONFIG_PATH = path.resolve(import.meta.dirname, 'config.yaml'); const LOCALHOST = '127.0.0.1'; const VERDACCIO_PORT = 4873; const VERDACCIO_URL = `http://${LOCALHOST}:${VERDACCIO_PORT}`; -const STORAGE_PATH = path.resolve(__dirname, 'storage'); +const STORAGE_PATH = path.resolve(import.meta.dirname, 'storage'); const d = debug('electron-forge:verdaccio'); From 9ab7dc848ba503bcd6101d9477d837b9b2c6db64 Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Wed, 14 Jan 2026 10:50:08 -0800 Subject: [PATCH 26/62] temporarily disable assetrelocatorpatch tests --- packages/plugin/webpack/spec/AssetRelocatorPatch.slow.spec.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/plugin/webpack/spec/AssetRelocatorPatch.slow.spec.ts b/packages/plugin/webpack/spec/AssetRelocatorPatch.slow.spec.ts index 7484f11beb..9238a71d38 100644 --- a/packages/plugin/webpack/spec/AssetRelocatorPatch.slow.spec.ts +++ b/packages/plugin/webpack/spec/AssetRelocatorPatch.slow.spec.ts @@ -123,7 +123,8 @@ const safeFirstRendererConfig = (renderer: WebpackPluginConfig['renderer']) => { return renderer; }; -describe('AssetRelocatorPatch', () => { +// FIXME +describe.skip('AssetRelocatorPatch', () => { const rendererOut = path.join(appPath, '.webpack/renderer'); const mainOut = path.join(appPath, '.webpack/main'); From d90d57d4e9027533479f67fc423cf20616cf3ffb Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Wed, 14 Jan 2026 10:54:43 -0800 Subject: [PATCH 27/62] disable strict corepack --- tools/verdaccio/spawn-verdaccio.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/verdaccio/spawn-verdaccio.ts b/tools/verdaccio/spawn-verdaccio.ts index 17b7b03865..50b15842d1 100644 --- a/tools/verdaccio/spawn-verdaccio.ts +++ b/tools/verdaccio/spawn-verdaccio.ts @@ -133,6 +133,7 @@ async function publishPackages(): Promise { } async function runCommand(args: string[]) { + process.env.COREPACK_ENABLE_STRICT = '0'; console.log('🗑️ Pruning pnpm store before running command'); await spawnPromise('pnpm', ['store', 'prune']); From 6d7011f546025e96de7208ecae0ba5a56b124a10 Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Wed, 14 Jan 2026 12:08:42 -0800 Subject: [PATCH 28/62] fix a test --- .../template-nonmatching-forge-version/index.cjs | 1 - .../template-stale-forge-version/index.cjs | 3 +++ .../package-lock.json | 5 +++++ .../template-stale-forge-version/package.json | 16 ++++++++++++++++ .../core/spec/slow/init.slow.verdaccio.spec.ts | 2 +- 5 files changed, 25 insertions(+), 2 deletions(-) delete mode 100644 packages/api/core/spec/fixture/template-nonmatching-forge-version/index.cjs create mode 100644 packages/api/core/spec/fixture/template-stale-forge-version/index.cjs create mode 100644 packages/api/core/spec/fixture/template-stale-forge-version/package-lock.json create mode 100644 packages/api/core/spec/fixture/template-stale-forge-version/package.json diff --git a/packages/api/core/spec/fixture/template-nonmatching-forge-version/index.cjs b/packages/api/core/spec/fixture/template-nonmatching-forge-version/index.cjs deleted file mode 100644 index 59c9e24240..0000000000 --- a/packages/api/core/spec/fixture/template-nonmatching-forge-version/index.cjs +++ /dev/null @@ -1 +0,0 @@ -module.exports = { requiredForgeVersion: '6.0.0-beta.0' }; diff --git a/packages/api/core/spec/fixture/template-stale-forge-version/index.cjs b/packages/api/core/spec/fixture/template-stale-forge-version/index.cjs new file mode 100644 index 0000000000..a604edb6f4 --- /dev/null +++ b/packages/api/core/spec/fixture/template-stale-forge-version/index.cjs @@ -0,0 +1,3 @@ +module.exports = { + requiredForgeVersion: '^6.0.0', +}; diff --git a/packages/api/core/spec/fixture/template-stale-forge-version/package-lock.json b/packages/api/core/spec/fixture/template-stale-forge-version/package-lock.json new file mode 100644 index 0000000000..c401a3837a --- /dev/null +++ b/packages/api/core/spec/fixture/template-stale-forge-version/package-lock.json @@ -0,0 +1,5 @@ +{ + "name": "electron-forge-template-dummy", + "version": "1.0.0", + "lockfileVersion": 1 +} diff --git a/packages/api/core/spec/fixture/template-stale-forge-version/package.json b/packages/api/core/spec/fixture/template-stale-forge-version/package.json new file mode 100644 index 0000000000..93fca28d68 --- /dev/null +++ b/packages/api/core/spec/fixture/template-stale-forge-version/package.json @@ -0,0 +1,16 @@ +{ + "name": "electron-forge-template-dummy", + "version": "1.0.0", + "description": "", + "main": "index.cjs", + "scripts": { + "start": "electron-forge start" + }, + "keywords": [], + "author": "", + "license": "MIT", + "dependencies": { + "@electron-forge/template-base": "100.0.0", + "fs-extra": "11.3.2" + } +} diff --git a/packages/api/core/spec/slow/init.slow.verdaccio.spec.ts b/packages/api/core/spec/slow/init.slow.verdaccio.spec.ts index 8ce2d0ec06..10be5f1b75 100644 --- a/packages/api/core/spec/slow/init.slow.verdaccio.spec.ts +++ b/packages/api/core/spec/slow/init.slow.verdaccio.spec.ts @@ -163,7 +163,7 @@ describe('init', () => { dir, template: path.resolve( import.meta.dirname, - '../fixture/template-nonmatching-forge-version', + '../fixture/template-stale-forge-version', ), }), ).rejects.toThrow( From 209b5baa42f6f9a01e44f756b96bbdee0a8ba45b Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Wed, 14 Jan 2026 13:14:18 -0800 Subject: [PATCH 29/62] __filename -> import.meta.filename --- packages/api/core/src/util/forge-config.ts | 2 +- packages/publisher/base-static/spec/StaticPublisher.spec.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/api/core/src/util/forge-config.ts b/packages/api/core/src/util/forge-config.ts index 3778bb09e1..b4af3d245e 100644 --- a/packages/api/core/src/util/forge-config.ts +++ b/packages/api/core/src/util/forge-config.ts @@ -165,7 +165,7 @@ export default async (dir: string): Promise => { try { let loadFn; if (['.cts', '.mts', '.ts'].includes(path.extname(forgeConfigPath))) { - const jiti = createJiti(__filename); + const jiti = createJiti(import.meta.filename); loadFn = jiti.import; } // The loaded "config" could potentially be a static forge config, ESM module or async function diff --git a/packages/publisher/base-static/spec/StaticPublisher.spec.ts b/packages/publisher/base-static/spec/StaticPublisher.spec.ts index 576a19fda5..154b3248ee 100644 --- a/packages/publisher/base-static/spec/StaticPublisher.spec.ts +++ b/packages/publisher/base-static/spec/StaticPublisher.spec.ts @@ -19,7 +19,7 @@ describe('PublisherStatic', () => { platform: 'plat', arch: 'arch', keyPrefix: 'stuff', - path: __filename, + path: import.meta.filename, }), ).toEqual('stuff/plat/arch/StaticPublisher.spec.ts'); }); @@ -33,7 +33,7 @@ describe('PublisherStatic', () => { platform: 'plat', arch: 'arch', keyPrefix: 'stuff', - path: __filename, + path: import.meta.filename, }), ).toEqual('lololol'); }); From 903b7fddc24a0e4be8c027bf76e2af6896b916f2 Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Wed, 14 Jan 2026 13:33:50 -0800 Subject: [PATCH 30/62] fix fuses version --- packages/api/core/src/api/init-scripts/init-npm.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/api/core/src/api/init-scripts/init-npm.ts b/packages/api/core/src/api/init-scripts/init-npm.ts index 82e75d216d..595d2e3f0c 100644 --- a/packages/api/core/src/api/init-scripts/init-npm.ts +++ b/packages/api/core/src/api/init-scripts/init-npm.ts @@ -23,7 +23,7 @@ export function siblingDep(name: string): string { export const deps = ['electron-squirrel-startup']; export const devDeps = [ - '@electron/fuses@^1.0.0', + '@electron/fuses@^2.0.0', siblingDep('cli'), siblingDep('maker-squirrel'), siblingDep('maker-zip'), From 91429a12d07826e27924e08963052a3750cb25ea Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Wed, 14 Jan 2026 13:52:44 -0800 Subject: [PATCH 31/62] append index.js to electron executable --- packages/api/core/src/util/electron-executable.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/api/core/src/util/electron-executable.ts b/packages/api/core/src/util/electron-executable.ts index 97c2669863..fff5f640d0 100644 --- a/packages/api/core/src/util/electron-executable.ts +++ b/packages/api/core/src/util/electron-executable.ts @@ -20,9 +20,10 @@ export default async function locateElectronExecutable( packageJSON, ); - const { default: electronExecPath } = await import( - electronModulePath || path.resolve(dir, 'node_modules/electron') - ); + const electronModuleEntryPoint = electronModulePath + ? path.join(electronModulePath, 'index.js') + : path.resolve(dir, 'node_modules/electron/index.js'); + const { default: electronExecPath } = await import(electronModuleEntryPoint); if (typeof electronExecPath === 'string') { return electronExecPath; @@ -31,6 +32,6 @@ export default async function locateElectronExecutable( logSymbols.warning, `Returned Electron executable path (${electronExecPath}) is not a string. Defaulting to node_modules/electron.`, ); - return await import(path.resolve(dir, 'node_modules/electron')); + return await import(path.resolve(dir, 'node_modules/electron/index.js')); } } From 509c497e411c529d62857e9e6186043c8cef0073 Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Wed, 14 Jan 2026 15:05:15 -0800 Subject: [PATCH 32/62] preload script use `__dirname` still --- packages/template/vite-typescript/tmpl/main.ts | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/packages/template/vite-typescript/tmpl/main.ts b/packages/template/vite-typescript/tmpl/main.ts index bab316bb4e..f4f001e6e5 100644 --- a/packages/template/vite-typescript/tmpl/main.ts +++ b/packages/template/vite-typescript/tmpl/main.ts @@ -13,7 +13,7 @@ const createWindow = () => { width: 800, height: 600, webPreferences: { - preload: path.join(import.meta.dirname, 'preload.js'), + preload: path.join(__dirname, 'preload.js'), }, }); @@ -22,10 +22,7 @@ const createWindow = () => { mainWindow.loadURL(MAIN_WINDOW_VITE_DEV_SERVER_URL); } else { mainWindow.loadFile( - path.join( - import.meta.dirname, - `../renderer/${MAIN_WINDOW_VITE_NAME}/index.html`, - ), + path.join(__dirname, `../renderer/${MAIN_WINDOW_VITE_NAME}/index.html`), ); } From 2eaa7f157b4b16db4ce3abcdc89ade6344c7261c Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Wed, 14 Jan 2026 15:18:29 -0800 Subject: [PATCH 33/62] require.resolve -> import.meta.resolve --- packages/utils/web-multi-logger/src/Logger.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/utils/web-multi-logger/src/Logger.ts b/packages/utils/web-multi-logger/src/Logger.ts index 90dcd00ae0..61ed145f5d 100644 --- a/packages/utils/web-multi-logger/src/Logger.ts +++ b/packages/utils/web-multi-logger/src/Logger.ts @@ -27,15 +27,15 @@ export default class Logger { this.app.use( '/xterm/addons/fit', - express.static(path.dirname(require.resolve('xterm-addon-fit'))), + express.static(path.dirname(import.meta.resolve('xterm-addon-fit'))), ); this.app.use( '/xterm/addons/search', - express.static(path.dirname(require.resolve('xterm-addon-search'))), + express.static(path.dirname(import.meta.resolve('xterm-addon-search'))), ); this.app.use( '/xterm', - express.static(path.resolve(require.resolve('xterm'), '../..')), + express.static(path.resolve(import.meta.resolve('xterm'), '../..')), ); this.app.use( express.static(path.resolve(import.meta.dirname, '..', 'static')), From 69dc4ed486bf364e78e684db5e1f48df95a5acb8 Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Wed, 14 Jan 2026 15:20:42 -0800 Subject: [PATCH 34/62] gg --- packages/plugin/webpack/src/WebpackConfig.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/plugin/webpack/src/WebpackConfig.ts b/packages/plugin/webpack/src/WebpackConfig.ts index 57e76260be..d4ac7d5a6c 100644 --- a/packages/plugin/webpack/src/WebpackConfig.ts +++ b/packages/plugin/webpack/src/WebpackConfig.ts @@ -94,8 +94,7 @@ export default class WebpackConfigGenerator { let rawConfig = typeof config === 'string' - ? // eslint-disable-next-line @typescript-eslint/no-require-imports - (require(path.resolve(this.projectDir, config)) as MaybeESM< + ? ((await import(path.resolve(this.projectDir, config))) as MaybeESM< Configuration | ConfigurationFactory >) : config; From 4d56b55aa6658cccf482b879d61e4840e20bd2d0 Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Wed, 14 Jan 2026 22:41:11 -0800 Subject: [PATCH 35/62] serial hooks --- packages/api/core/src/api/package.ts | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/packages/api/core/src/api/package.ts b/packages/api/core/src/api/package.ts index 56f8973a9a..5f2db0bc06 100644 --- a/packages/api/core/src/api/package.ts +++ b/packages/api/core/src/api/package.ts @@ -37,6 +37,18 @@ import resolveDir from '../util/resolve-dir.js'; const d = debug('electron-forge:packager'); +export function serialHooks any>( + hooks: T[] = [], +): [T] { + return [ + async function (opts: Parameters[0]): Promise { + for (const hook of hooks) { + await hook(opts); + } + } as T, + ]; +} + /** * Resolves hooks if they are a path to a file (instead of a `Function`). */ @@ -393,11 +405,13 @@ export const listrPackage = ( arch: arch, platform, // TODO: Make these hooks serial again - afterFinalizePackageTargets: afterFinalizePackageTargetsHooks, - afterComplete: afterCompleteHooks, - afterCopy: afterCopyHooks, - afterExtract: afterExtractHooks, - afterPrune: afterPruneHooks, + afterFinalizePackageTargets: serialHooks( + afterFinalizePackageTargetsHooks, + ), + afterComplete: serialHooks(afterCompleteHooks), + afterCopy: serialHooks(afterCopyHooks), + afterExtract: serialHooks(afterExtractHooks), + afterPrune: serialHooks(afterPruneHooks), out: calculatedOutDir, electronVersion: await getElectronVersion(ctx.dir, packageJSON), }; From 189556308e0d5ca67c551c7f45550aac7a850a50 Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Thu, 15 Jan 2026 13:24:08 -0800 Subject: [PATCH 36/62] fix manual typings for esm imports --- package.json | 2 +- packages/maker/appx/src/MakerAppX.ts | 6 ++++-- typings/cross-spawn/index.d.ts | 2 +- typings/electron-windows-store/index.d.ts | 2 +- yarn.lock | 10 +++++----- 5 files changed, 12 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 96ba764ffe..b95348b489 100644 --- a/package.json +++ b/package.json @@ -78,7 +78,7 @@ "@electron/fuses": "^2.0.0", "@electron/lint-roller": "^3.1.3", "@tsconfig/node22": "^22.0.5", - "@types/cross-spawn": "^6.0.1", + "@types/cross-spawn": "^6.0.6", "@types/cross-zip": "^4.0.2", "@types/debug": "^4.1.12", "@types/express": "^4.17.9", diff --git a/packages/maker/appx/src/MakerAppX.ts b/packages/maker/appx/src/MakerAppX.ts index 6872b6548f..a2af12562a 100644 --- a/packages/maker/appx/src/MakerAppX.ts +++ b/packages/maker/appx/src/MakerAppX.ts @@ -3,12 +3,14 @@ import path from 'node:path'; import { getNameFromAuthor } from '@electron-forge/core-utils'; import { MakerBase, MakerOptions } from '@electron-forge/maker-base'; import { ForgePlatform } from '@electron-forge/shared-types'; -import resolveCommand from 'cross-spawn/lib/util/resolveCommand'; +// eslint-disable-next-line n/no-missing-import +import resolveCommand from 'cross-spawn/lib/util/resolveCommand.js'; import windowsStore from 'electron-windows-store'; import { isValidPublisherName, makeCert, -} from 'electron-windows-store/lib/sign'; + // eslint-disable-next-line n/no-missing-import +} from 'electron-windows-store/lib/sign.js'; import fs from 'fs-extra'; import { MakerAppXConfig } from './Config.js'; diff --git a/typings/cross-spawn/index.d.ts b/typings/cross-spawn/index.d.ts index fdef0ed527..093a80c161 100644 --- a/typings/cross-spawn/index.d.ts +++ b/typings/cross-spawn/index.d.ts @@ -1 +1 @@ -declare module 'cross-spawn/lib/util/resolveCommand'; +declare module 'cross-spawn/lib/util/resolveCommand.js'; diff --git a/typings/electron-windows-store/index.d.ts b/typings/electron-windows-store/index.d.ts index f0502513ab..1df47b4dfe 100644 --- a/typings/electron-windows-store/index.d.ts +++ b/typings/electron-windows-store/index.d.ts @@ -3,7 +3,7 @@ declare module 'electron-windows-store' { export default run; } -declare module 'electron-windows-store/lib/sign' { +declare module 'electron-windows-store/lib/sign.js' { export const isValidPublisherName: (name: string) => boolean; export const makeCert: (opts: MakerCertOptions) => Promise; diff --git a/yarn.lock b/yarn.lock index 1582807d9d..48246abbc5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4679,12 +4679,12 @@ __metadata: languageName: node linkType: hard -"@types/cross-spawn@npm:^6.0.1": - version: 6.0.2 - resolution: "@types/cross-spawn@npm:6.0.2" +"@types/cross-spawn@npm:^6.0.6": + version: 6.0.6 + resolution: "@types/cross-spawn@npm:6.0.6" dependencies: "@types/node": "npm:*" - checksum: 10c0/658bd49267a7200e87e67c48ef1e58ee7418bbd4417fb191393b7051d47f590023090cad7b69eb3821d1907b82392b764e1114b1ec6000b01e98126926c8b06f + checksum: 10c0/e3d476bb6b3a54a8934a97fe6ee4bd13e2e5eb29073929a4be76a52466602ffaea420b20774ffe8503f9fa24f3ae34817e95e7f625689fb0d1c10404f5b2889c languageName: node linkType: hard @@ -8470,7 +8470,7 @@ __metadata: "@octokit/rest": "npm:^20.1.2" "@octokit/types": "npm:^6.1.2" "@tsconfig/node22": "npm:^22.0.5" - "@types/cross-spawn": "npm:^6.0.1" + "@types/cross-spawn": "npm:^6.0.6" "@types/cross-zip": "npm:^4.0.2" "@types/debug": "npm:^4.1.12" "@types/express": "npm:^4.17.9" From 222349c7de7776c32a18cfa8cedc1db57a9b9f1f Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Thu, 15 Jan 2026 14:07:47 -0800 Subject: [PATCH 37/62] fix hook in fuses --- .../plugin/fuses/spec/fixture/forge.config.ts | 22 +++++-------------- 1 file changed, 5 insertions(+), 17 deletions(-) diff --git a/packages/plugin/fuses/spec/fixture/forge.config.ts b/packages/plugin/fuses/spec/fixture/forge.config.ts index 32861a9463..7bce7bc974 100644 --- a/packages/plugin/fuses/spec/fixture/forge.config.ts +++ b/packages/plugin/fuses/spec/fixture/forge.config.ts @@ -10,23 +10,11 @@ const forgeConfig: ForgeConfig = { packagerConfig: { afterComplete: [ // makes tests a bit simpler by having a single output directory in every platform/arch - async ( - packagedAppLocation, - _electronVersion, - _targetPlatform, - _targetArch, - done, - ) => { - const parentDir = path.resolve(packagedAppLocation, '..'); - await fsExtra.move( - packagedAppLocation, - path.join(parentDir, 'fuses-test-app'), - { - overwrite: true, - }, - ); - - done(); + async ({ buildPath }) => { + const parentDir = path.resolve(buildPath, '..'); + await fsExtra.move(buildPath, path.join(parentDir, 'fuses-test-app'), { + overwrite: true, + }); }, ], }, From 393a514b93d672942bcf644304df07710bcfd013 Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Thu, 15 Jan 2026 15:44:34 -0800 Subject: [PATCH 38/62] attempt to fix windows ci failures --- .../src/api/init-scripts/find-template.ts | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/packages/api/core/src/api/init-scripts/find-template.ts b/packages/api/core/src/api/init-scripts/find-template.ts index 4fdab76017..7fae645bc1 100644 --- a/packages/api/core/src/api/init-scripts/find-template.ts +++ b/packages/api/core/src/api/init-scripts/find-template.ts @@ -1,3 +1,6 @@ +import path from 'node:path'; +import { pathToFileURL } from 'node:url'; + import { ForgeTemplate } from '@electron-forge/shared-types'; import debug from 'debug'; @@ -16,11 +19,20 @@ export const findTemplate = async ( ): Promise => { let foundTemplate: Omit | null = null; - const resolveTemplateTypes = [ - `electron-forge-template-${template}`, - `@electron-forge/template-${template}`, - template, - ] as const; + // Convert absolute paths to file URLs for cross-platform compatibility. + // import.meta.resolve() doesn't recognize Windows-style paths like "D:\..." + // and needs them as file URLs (e.g., "file:///D:/..."). + // When a path is absolute, we skip the prefixed package name lookups. + const isAbsolutePath = path.isAbsolute(template); + const templatePath = isAbsolutePath ? pathToFileURL(template).href : template; + + const resolveTemplateTypes = isAbsolutePath + ? [templatePath] + : ([ + `electron-forge-template-${template}`, + `@electron-forge/template-${template}`, + template, + ] as const); for (const moduleName of resolveTemplateTypes) { try { d(`Trying template: ${moduleName}`); From 96aaab4cc410bb4fe5f6d478ae9b8b20a5574f12 Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Thu, 15 Jan 2026 16:11:33 -0800 Subject: [PATCH 39/62] assetrelocatorpatch tests --- .../webpack/spec/AssetRelocatorPatch.slow.spec.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/plugin/webpack/spec/AssetRelocatorPatch.slow.spec.ts b/packages/plugin/webpack/spec/AssetRelocatorPatch.slow.spec.ts index 9238a71d38..e9854c9562 100644 --- a/packages/plugin/webpack/spec/AssetRelocatorPatch.slow.spec.ts +++ b/packages/plugin/webpack/spec/AssetRelocatorPatch.slow.spec.ts @@ -124,7 +124,7 @@ const safeFirstRendererConfig = (renderer: WebpackPluginConfig['renderer']) => { }; // FIXME -describe.skip('AssetRelocatorPatch', () => { +describe('AssetRelocatorPatch', () => { const rendererOut = path.join(appPath, '.webpack/renderer'); const mainOut = path.join(appPath, '.webpack/main'); @@ -194,7 +194,7 @@ describe.skip('AssetRelocatorPatch', () => { outDir: mainOut, jsPath: path.join(mainOut, 'index.js'), nativeModulesString: - '__webpack_require__.ab = import.meta.dirname + "/native_modules/"', + '__webpack_require__.ab = __dirname + "/native_modules/"', nativePathString: `require(__webpack_require__.ab + "${nativePathSuffix}")`, }); }); @@ -256,7 +256,7 @@ describe.skip('AssetRelocatorPatch', () => { await expectOutputFileToHaveTheCorrectNativeModulePath({ outDir: mainOut, jsPath: path.join(mainOut, 'index.js'), - nativeModulesString: '.ab=import.meta.dirname+"/native_modules/"', + nativeModulesString: '.ab=__dirname+"/native_modules/"', nativePathString: `.ab+"${nativePathSuffix}"`, }); }); @@ -274,7 +274,7 @@ describe.skip('AssetRelocatorPatch', () => { outDir: rendererOut, jsPath: path.join(rendererOut, 'main_window/preload.js'), nativeModulesString: - '.ab=require("path").resolve(import.meta.dirname,"..")+"/native_modules/"', + '.ab=require("path").resolve(__dirname,"..")+"/native_modules/"', nativePathString: `.ab+"${nativePathSuffix}"`, }); }); @@ -291,7 +291,7 @@ describe.skip('AssetRelocatorPatch', () => { outDir: rendererOut, jsPath: path.join(rendererOut, 'main_window/index.js'), nativeModulesString: - '.ab=require("path").resolve(import.meta.dirname,"..")+"/native_modules/"', + '.ab=require("path").resolve(__dirname,"..")+"/native_modules/"', nativePathString: `.ab+"${nativePathSuffix}"`, }); }); From 6bb7151d7323b86434fd16b5f14fccef9104b926 Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Fri, 16 Jan 2026 11:25:07 -0800 Subject: [PATCH 40/62] fix linting stackl --- .eslintrc.json | 59 ++-- package.json | 1 + packages/api/cli/src/electron-forge.ts | 2 + packages/api/core/src/api/import.ts | 1 + packages/maker/deb/spec/MakerDeb.spec.ts | 5 +- packages/maker/dmg/spec/MakerDMG.spec.ts | 5 +- .../maker/flatpak/spec/MakerFlatpak.spec.ts | 5 +- packages/maker/pkg/spec/MakerPKG.spec.ts | 2 +- packages/maker/rpm/spec/MakerRpm.spec.ts | 5 +- packages/maker/snap/spec/MakerSnap.spec.ts | 5 +- packages/maker/zip/spec/MakerZip.spec.ts | 4 +- packages/maker/zip/src/MakerZIP.ts | 2 +- packages/publisher/gcs/src/PublisherGCS.ts | 2 +- packages/publisher/github/src/util/github.ts | 3 +- packages/publisher/s3/src/PublisherS3.ts | 2 +- packages/utils/types/src/index.ts | 11 +- yarn.lock | 310 +++++++++++++++++- 17 files changed, 369 insertions(+), 55 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index ee3d528e8a..1babeb3118 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -11,8 +11,8 @@ }, "extends": [ "eslint:recommended", - // "plugin:import/errors", - // "plugin:import/warnings", + "plugin:import/errors", + "plugin:import/warnings", "plugin:n/recommended", "plugin:promise/recommended", "prettier" @@ -27,26 +27,26 @@ "vars": "all" } ], - // "import/order": [ - // "error", - // { - // "groups": [ - // "builtin", - // "external", - // "internal", - // "parent", - // "sibling", - // "index", - // "object", - // "type" - // ], - // "newlines-between": "always", - // "alphabetize": { - // "order": "asc", - // "caseInsensitive": true - // } - // } - // ], + "import/order": [ + "error", + { + "groups": [ + "builtin", + "external", + "internal", + "parent", + "sibling", + "index", + "object", + "type" + ], + "newlines-between": "always", + "alphabetize": { + "order": "asc", + "caseInsensitive": true + } + } + ], "sort-imports": [ "error", { @@ -70,9 +70,14 @@ "project": ["./tsconfig.base.json"] }, "extends": [ - "plugin:@typescript-eslint/recommended" - // "plugin:import/typescript" + "plugin:@typescript-eslint/recommended", + "plugin:import/typescript" ], + "settings": { + "import/resolver": { + "typescript": true + } + }, "rules": { // There is no "recommended" ruleset for tsdoc yet. "tsdoc/syntax": "warn", @@ -95,7 +100,9 @@ "vars": "all" } ], - "@typescript-eslint/only-throw-error": "error" + "@typescript-eslint/only-throw-error": "error", + "import/default": "off", + "import/no-named-as-default-member": "off" } }, { @@ -161,7 +168,7 @@ "rules": { "no-process-exit": "off", "no-undef": "off", - // "import/no-unresolved": "off", + "import/no-unresolved": "off", "n/no-missing-import": "off", "n/no-unpublished-import": "off", "n/no-unsupported-features/es-syntax": "off" diff --git a/package.json b/package.json index b95348b489..a2fdf6f721 100644 --- a/package.json +++ b/package.json @@ -100,6 +100,7 @@ "electron-installer-common": "^0.10.2", "eslint": "^8.56.0", "eslint-config-prettier": "^10.0.1", + "eslint-import-resolver-typescript": "^4.4.4", "eslint-plugin-import": "^2.31.0", "eslint-plugin-n": "^17.15.1", "eslint-plugin-promise": "^7.2.1", diff --git a/packages/api/cli/src/electron-forge.ts b/packages/api/cli/src/electron-forge.ts index b95ccbf722..792788d49f 100755 --- a/packages/api/cli/src/electron-forge.ts +++ b/packages/api/cli/src/electron-forge.ts @@ -19,6 +19,8 @@ if (!semver.satisfies(process.versions.node, packageJSON.engines.node)) { process.exit(1); } +// Listr2 might be unsupported in certain versions, so import it after the Node version check. +// eslint-disable-next-line import/order import { Listr } from 'listr2'; program diff --git a/packages/api/core/src/api/import.ts b/packages/api/core/src/api/import.ts index 00adaa7c67..58f9960706 100644 --- a/packages/api/core/src/api/import.ts +++ b/packages/api/core/src/api/import.ts @@ -23,6 +23,7 @@ import { installDependencies, } from '../util/install-dependencies.js'; import { readRawPackageJson } from '../util/read-package-json.js'; + import { initGit } from './init-scripts/init-git.js'; import { deps, devDeps, exactDevDeps } from './init-scripts/init-npm.js'; diff --git a/packages/maker/deb/spec/MakerDeb.spec.ts b/packages/maker/deb/spec/MakerDeb.spec.ts index 85eb2cede9..2fa0594a59 100644 --- a/packages/maker/deb/spec/MakerDeb.spec.ts +++ b/packages/maker/deb/spec/MakerDeb.spec.ts @@ -2,13 +2,12 @@ import path from 'node:path'; import { MakerOptions } from '@electron-forge/maker-base'; import { ForgeArch } from '@electron-forge/shared-types'; +// @ts-expect-error - this package has no types +import installer from 'electron-installer-debian'; import { describe, expect, it, vi } from 'vitest'; import { debianArch, MakerDeb } from '../src/MakerDeb'; -// @ts-expect-error - this package has no types -import installer from 'electron-installer-debian'; - type MakeFunction = (opts: Partial) => Promise; const dir = '/my/test/dir/out'; diff --git a/packages/maker/dmg/spec/MakerDMG.spec.ts b/packages/maker/dmg/spec/MakerDMG.spec.ts index 820155a72a..5c4bcec728 100644 --- a/packages/maker/dmg/spec/MakerDMG.spec.ts +++ b/packages/maker/dmg/spec/MakerDMG.spec.ts @@ -1,12 +1,11 @@ import { MakerOptions } from '@electron-forge/maker-base'; +import { ForgeArch } from '@electron-forge/shared-types'; +import { createDMG } from 'electron-installer-dmg'; import fs from 'fs-extra'; import { describe, expect, it, vi } from 'vitest'; import { MakerDMG } from '../src/MakerDMG'; -import { createDMG } from 'electron-installer-dmg'; -import { ForgeArch } from '@electron-forge/shared-types'; - type MakeFunction = (opts: Partial) => Promise; vi.mock(import('electron-installer-dmg'), () => { diff --git a/packages/maker/flatpak/spec/MakerFlatpak.spec.ts b/packages/maker/flatpak/spec/MakerFlatpak.spec.ts index e194d23724..d1774b9b98 100644 --- a/packages/maker/flatpak/spec/MakerFlatpak.spec.ts +++ b/packages/maker/flatpak/spec/MakerFlatpak.spec.ts @@ -2,13 +2,12 @@ import path from 'node:path'; import { MakerOptions } from '@electron-forge/maker-base'; import { ForgeArch } from '@electron-forge/shared-types'; +// @ts-expect-error - this package has no types +import installer from '@malept/electron-installer-flatpak'; import { describe, expect, it, vi } from 'vitest'; import { flatpakArch, MakerFlatpak } from '../src/MakerFlatpak'; -// @ts-expect-error - this package has no types -import installer from '@malept/electron-installer-flatpak'; - type MakeFunction = (opts: Partial) => Promise; vi.mock('@malept/electron-installer-flatpak', () => { diff --git a/packages/maker/pkg/spec/MakerPKG.spec.ts b/packages/maker/pkg/spec/MakerPKG.spec.ts index 732b332e4a..942f0df17c 100644 --- a/packages/maker/pkg/spec/MakerPKG.spec.ts +++ b/packages/maker/pkg/spec/MakerPKG.spec.ts @@ -2,10 +2,10 @@ import path from 'node:path'; import { flat } from '@electron/osx-sign'; import { MakerOptions } from '@electron-forge/maker-base'; +import { ForgeArch } from '@electron-forge/shared-types'; import { describe, expect, it, vi } from 'vitest'; import { MakerPKG } from '../src/MakerPKG'; -import { ForgeArch } from '@electron-forge/shared-types'; type MakeFunction = (opts: Partial) => Promise; diff --git a/packages/maker/rpm/spec/MakerRpm.spec.ts b/packages/maker/rpm/spec/MakerRpm.spec.ts index 3673adb597..0a9c9e51b2 100644 --- a/packages/maker/rpm/spec/MakerRpm.spec.ts +++ b/packages/maker/rpm/spec/MakerRpm.spec.ts @@ -2,13 +2,12 @@ import path from 'node:path'; import { MakerOptions } from '@electron-forge/maker-base'; import { ForgeArch } from '@electron-forge/shared-types'; +// @ts-expect-error - this package has no types +import installer from 'electron-installer-redhat'; import { describe, expect, it, vi } from 'vitest'; import { MakerRpm, rpmArch } from '../src/MakerRpm'; -// @ts-expect-error - this package has no types -import installer from 'electron-installer-redhat'; - type MakeFunction = (opts: Partial) => Promise; vi.mock('electron-installer-redhat', () => { diff --git a/packages/maker/snap/spec/MakerSnap.spec.ts b/packages/maker/snap/spec/MakerSnap.spec.ts index 5366d1374c..ba46794bbe 100644 --- a/packages/maker/snap/spec/MakerSnap.spec.ts +++ b/packages/maker/snap/spec/MakerSnap.spec.ts @@ -1,13 +1,12 @@ import path from 'node:path'; import { MakerOptions } from '@electron-forge/maker-base'; +import { ForgeArch } from '@electron-forge/shared-types'; +import installer from 'electron-installer-snap'; import { describe, expect, it, vi } from 'vitest'; import { MakerSnap } from '../src/MakerSnap'; -import installer from 'electron-installer-snap'; -import { ForgeArch } from '@electron-forge/shared-types'; - vi.mock('electron-installer-snap', () => { return { default: vi.fn(), diff --git a/packages/maker/zip/spec/MakerZip.spec.ts b/packages/maker/zip/spec/MakerZip.spec.ts index 4a655d36b7..e340c59313 100644 --- a/packages/maker/zip/spec/MakerZip.spec.ts +++ b/packages/maker/zip/spec/MakerZip.spec.ts @@ -1,13 +1,13 @@ import os from 'node:os'; import path from 'node:path'; +import { ForgeArch } from '@electron-forge/shared-types'; +import { zip } from 'cross-zip'; import fs from 'fs-extra'; import { got } from 'got'; import { describe, expect, it, vi } from 'vitest'; -import { zip } from 'cross-zip'; import { MakerZIP } from '../src/MakerZIP'; -import { ForgeArch } from '@electron-forge/shared-types'; vi.mock(import('cross-zip'), async (importOriginal) => { const mod = await importOriginal(); diff --git a/packages/maker/zip/src/MakerZIP.ts b/packages/maker/zip/src/MakerZIP.ts index 6fc38995ad..cbd3dc6003 100644 --- a/packages/maker/zip/src/MakerZIP.ts +++ b/packages/maker/zip/src/MakerZIP.ts @@ -3,9 +3,9 @@ import { promisify } from 'node:util'; import { MakerBase, MakerOptions } from '@electron-forge/maker-base'; import { ForgePlatform } from '@electron-forge/shared-types'; +import { zip } from 'cross-zip'; import fs from 'fs-extra'; import { got } from 'got'; -import { zip } from 'cross-zip'; import { MakerZIPConfig } from './Config.js'; diff --git a/packages/publisher/gcs/src/PublisherGCS.ts b/packages/publisher/gcs/src/PublisherGCS.ts index d128d80bd3..fbec084e2b 100644 --- a/packages/publisher/gcs/src/PublisherGCS.ts +++ b/packages/publisher/gcs/src/PublisherGCS.ts @@ -2,11 +2,11 @@ import { PublisherOptions, PublisherStatic, } from '@electron-forge/publisher-static'; +import { ForgeArch, ForgePlatform } from '@electron-forge/shared-types'; import { Storage } from '@google-cloud/storage'; import debug from 'debug'; import { PublisherGCSConfig } from './Config.js'; -import { ForgeArch, ForgePlatform } from '@electron-forge/shared-types'; const d = debug('electron-forge:publish:gcs'); diff --git a/packages/publisher/github/src/util/github.ts b/packages/publisher/github/src/util/github.ts index 5e1d3f6a4e..913d98704f 100644 --- a/packages/publisher/github/src/util/github.ts +++ b/packages/publisher/github/src/util/github.ts @@ -1,10 +1,11 @@ import path from 'node:path'; -import type { OctokitOptions } from '@octokit/core'; import { retry } from '@octokit/plugin-retry'; import { Octokit } from '@octokit/rest'; import debug from 'debug'; +import type { OctokitOptions } from '@octokit/core'; + const logInfo = debug('electron-forge:publisher:github:info'); const logDebug = debug('electron-forge:publisher:github:debug'); diff --git a/packages/publisher/s3/src/PublisherS3.ts b/packages/publisher/s3/src/PublisherS3.ts index c3495c687e..152d0710f9 100644 --- a/packages/publisher/s3/src/PublisherS3.ts +++ b/packages/publisher/s3/src/PublisherS3.ts @@ -8,10 +8,10 @@ import { PublisherOptions, PublisherStatic, } from '@electron-forge/publisher-static'; +import { ForgeArch, ForgePlatform } from '@electron-forge/shared-types'; import debug from 'debug'; import { PublisherS3Config } from './Config.js'; -import { ForgeArch, ForgePlatform } from '@electron-forge/shared-types'; const d = debug('electron-forge:publish:s3'); diff --git a/packages/utils/types/src/index.ts b/packages/utils/types/src/index.ts index fbd103cb88..047d6dcf28 100644 --- a/packages/utils/types/src/index.ts +++ b/packages/utils/types/src/index.ts @@ -1,10 +1,5 @@ import { ChildProcess } from 'node:child_process'; -import type { - Options as ElectronPackagerOptions, - OfficialArch, - OfficialPlatform, -} from '@electron/packager'; import { RebuildOptions } from '@electron/rebuild'; import { autoTrace } from '@electron-forge/tracer'; import { @@ -18,6 +13,12 @@ import { ListrTaskWrapper, } from 'listr2'; +import type { + Options as ElectronPackagerOptions, + OfficialArch, + OfficialPlatform, +} from '@electron/packager'; + export type ForgeListrOptions = ListrBaseClassOptions< T, ListrDefaultRendererValue, diff --git a/yarn.lock b/yarn.lock index 48246abbc5..0a96db647f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1655,6 +1655,16 @@ __metadata: languageName: node linkType: hard +"@emnapi/core@npm:^1.4.3": + version: 1.8.1 + resolution: "@emnapi/core@npm:1.8.1" + dependencies: + "@emnapi/wasi-threads": "npm:1.1.0" + tslib: "npm:^2.4.0" + checksum: 10c0/2c242f4b49779bac403e1cbcc98edacdb1c8ad36562408ba9a20663824669e930bc8493be46a2522d9dc946b8d96cd7073970bae914928c7671b5221c85b432e + languageName: node + linkType: hard + "@emnapi/runtime@npm:^1.1.0": version: 1.5.0 resolution: "@emnapi/runtime@npm:1.5.0" @@ -1664,6 +1674,15 @@ __metadata: languageName: node linkType: hard +"@emnapi/runtime@npm:^1.4.3": + version: 1.8.1 + resolution: "@emnapi/runtime@npm:1.8.1" + dependencies: + tslib: "npm:^2.4.0" + checksum: 10c0/f4929d75e37aafb24da77d2f58816761fe3f826aad2e37fa6d4421dac9060cbd5098eea1ac3c9ecc4526b89deb58153852fa432f87021dc57863f2ff726d713f + languageName: node + linkType: hard + "@emnapi/wasi-threads@npm:1.1.0": version: 1.1.0 resolution: "@emnapi/wasi-threads@npm:1.1.0" @@ -3032,6 +3051,17 @@ __metadata: languageName: node linkType: hard +"@napi-rs/wasm-runtime@npm:^0.2.11": + version: 0.2.12 + resolution: "@napi-rs/wasm-runtime@npm:0.2.12" + dependencies: + "@emnapi/core": "npm:^1.4.3" + "@emnapi/runtime": "npm:^1.4.3" + "@tybys/wasm-util": "npm:^0.10.0" + checksum: 10c0/6d07922c0613aab30c6a497f4df297ca7c54e5b480e00035e0209b872d5c6aab7162fc49477267556109c2c7ed1eb9c65a174e27e9b87568106a87b0a6e3ca7d + languageName: node + linkType: hard + "@nodelib/fs.scandir@npm:2.1.5": version: 2.1.5 resolution: "@nodelib/fs.scandir@npm:2.1.5" @@ -4587,6 +4617,15 @@ __metadata: languageName: node linkType: hard +"@tybys/wasm-util@npm:^0.10.0": + version: 0.10.1 + resolution: "@tybys/wasm-util@npm:0.10.1" + dependencies: + tslib: "npm:^2.4.0" + checksum: 10c0/b255094f293794c6d2289300c5fbcafbb5532a3aed3a5ffd2f8dc1828e639b88d75f6a376dd8f94347a44813fd7a7149d8463477a9a49525c8b2dcaa38c2d1e8 + languageName: node + linkType: hard + "@tybys/wasm-util@npm:^0.9.0": version: 0.9.0 resolution: "@tybys/wasm-util@npm:0.9.0" @@ -5317,6 +5356,141 @@ __metadata: languageName: node linkType: hard +"@unrs/resolver-binding-android-arm-eabi@npm:1.11.1": + version: 1.11.1 + resolution: "@unrs/resolver-binding-android-arm-eabi@npm:1.11.1" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@unrs/resolver-binding-android-arm64@npm:1.11.1": + version: 1.11.1 + resolution: "@unrs/resolver-binding-android-arm64@npm:1.11.1" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@unrs/resolver-binding-darwin-arm64@npm:1.11.1": + version: 1.11.1 + resolution: "@unrs/resolver-binding-darwin-arm64@npm:1.11.1" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@unrs/resolver-binding-darwin-x64@npm:1.11.1": + version: 1.11.1 + resolution: "@unrs/resolver-binding-darwin-x64@npm:1.11.1" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@unrs/resolver-binding-freebsd-x64@npm:1.11.1": + version: 1.11.1 + resolution: "@unrs/resolver-binding-freebsd-x64@npm:1.11.1" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@unrs/resolver-binding-linux-arm-gnueabihf@npm:1.11.1": + version: 1.11.1 + resolution: "@unrs/resolver-binding-linux-arm-gnueabihf@npm:1.11.1" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@unrs/resolver-binding-linux-arm-musleabihf@npm:1.11.1": + version: 1.11.1 + resolution: "@unrs/resolver-binding-linux-arm-musleabihf@npm:1.11.1" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@unrs/resolver-binding-linux-arm64-gnu@npm:1.11.1": + version: 1.11.1 + resolution: "@unrs/resolver-binding-linux-arm64-gnu@npm:1.11.1" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@unrs/resolver-binding-linux-arm64-musl@npm:1.11.1": + version: 1.11.1 + resolution: "@unrs/resolver-binding-linux-arm64-musl@npm:1.11.1" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@unrs/resolver-binding-linux-ppc64-gnu@npm:1.11.1": + version: 1.11.1 + resolution: "@unrs/resolver-binding-linux-ppc64-gnu@npm:1.11.1" + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + +"@unrs/resolver-binding-linux-riscv64-gnu@npm:1.11.1": + version: 1.11.1 + resolution: "@unrs/resolver-binding-linux-riscv64-gnu@npm:1.11.1" + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + +"@unrs/resolver-binding-linux-riscv64-musl@npm:1.11.1": + version: 1.11.1 + resolution: "@unrs/resolver-binding-linux-riscv64-musl@npm:1.11.1" + conditions: os=linux & cpu=riscv64 & libc=musl + languageName: node + linkType: hard + +"@unrs/resolver-binding-linux-s390x-gnu@npm:1.11.1": + version: 1.11.1 + resolution: "@unrs/resolver-binding-linux-s390x-gnu@npm:1.11.1" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + +"@unrs/resolver-binding-linux-x64-gnu@npm:1.11.1": + version: 1.11.1 + resolution: "@unrs/resolver-binding-linux-x64-gnu@npm:1.11.1" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@unrs/resolver-binding-linux-x64-musl@npm:1.11.1": + version: 1.11.1 + resolution: "@unrs/resolver-binding-linux-x64-musl@npm:1.11.1" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@unrs/resolver-binding-wasm32-wasi@npm:1.11.1": + version: 1.11.1 + resolution: "@unrs/resolver-binding-wasm32-wasi@npm:1.11.1" + dependencies: + "@napi-rs/wasm-runtime": "npm:^0.2.11" + conditions: cpu=wasm32 + languageName: node + linkType: hard + +"@unrs/resolver-binding-win32-arm64-msvc@npm:1.11.1": + version: 1.11.1 + resolution: "@unrs/resolver-binding-win32-arm64-msvc@npm:1.11.1" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@unrs/resolver-binding-win32-ia32-msvc@npm:1.11.1": + version: 1.11.1 + resolution: "@unrs/resolver-binding-win32-ia32-msvc@npm:1.11.1" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@unrs/resolver-binding-win32-x64-msvc@npm:1.11.1": + version: 1.11.1 + resolution: "@unrs/resolver-binding-win32-x64-msvc@npm:1.11.1" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@verdaccio/auth@npm:8.0.0-next-8.28": version: 8.0.0-next-8.28 resolution: "@verdaccio/auth@npm:8.0.0-next-8.28" @@ -8506,6 +8680,7 @@ __metadata: electron-wix-msi: "npm:^5.1.3" eslint: "npm:^8.56.0" eslint-config-prettier: "npm:^10.0.1" + eslint-import-resolver-typescript: "npm:^4.4.4" eslint-plugin-import: "npm:^2.31.0" eslint-plugin-n: "npm:^17.15.1" eslint-plugin-promise: "npm:^7.2.1" @@ -9414,6 +9589,21 @@ __metadata: languageName: node linkType: hard +"eslint-import-context@npm:^0.1.8": + version: 0.1.9 + resolution: "eslint-import-context@npm:0.1.9" + dependencies: + get-tsconfig: "npm:^4.10.1" + stable-hash-x: "npm:^0.2.0" + peerDependencies: + unrs-resolver: ^1.0.0 + peerDependenciesMeta: + unrs-resolver: + optional: true + checksum: 10c0/07851103443b70af681c5988e2702e681ff9b956e055e11d4bd9b2322847fa0d9e8da50c18fc7cb1165106b043f34fbd0384d7011c239465c4645c52132e56f3 + languageName: node + linkType: hard + "eslint-import-resolver-node@npm:^0.3.7": version: 0.3.7 resolution: "eslint-import-resolver-node@npm:0.3.7" @@ -9436,6 +9626,30 @@ __metadata: languageName: node linkType: hard +"eslint-import-resolver-typescript@npm:^4.4.4": + version: 4.4.4 + resolution: "eslint-import-resolver-typescript@npm:4.4.4" + dependencies: + debug: "npm:^4.4.1" + eslint-import-context: "npm:^0.1.8" + get-tsconfig: "npm:^4.10.1" + is-bun-module: "npm:^2.0.0" + stable-hash-x: "npm:^0.2.0" + tinyglobby: "npm:^0.2.14" + unrs-resolver: "npm:^1.7.11" + peerDependencies: + eslint: "*" + eslint-plugin-import: "*" + eslint-plugin-import-x: "*" + peerDependenciesMeta: + eslint-plugin-import: + optional: true + eslint-plugin-import-x: + optional: true + checksum: 10c0/3bf8ad77c21660f77a0e455555ab179420f68ae7a132906c85a217ccce51cb6680cf70027cab32a358d193e5b9e476f6ba2e595585242aa97d4f6435ca22104e + languageName: node + linkType: hard + "eslint-module-utils@npm:^2.12.0": version: 2.12.0 resolution: "eslint-module-utils@npm:2.12.0" @@ -11032,7 +11246,7 @@ __metadata: languageName: node linkType: hard -"get-tsconfig@npm:^4.7.5": +"get-tsconfig@npm:^4.10.1, get-tsconfig@npm:^4.7.5": version: 4.13.0 resolution: "get-tsconfig@npm:4.13.0" dependencies: @@ -12328,6 +12542,15 @@ __metadata: languageName: node linkType: hard +"is-bun-module@npm:^2.0.0": + version: 2.0.0 + resolution: "is-bun-module@npm:2.0.0" + dependencies: + semver: "npm:^7.7.1" + checksum: 10c0/7d27a0679cfa5be1f5052650391f9b11040cd70c48d45112e312c56bc6b6ca9c9aea70dcce6cc40b1e8947bfff8567a5c5715d3b066fb478522dab46ea379240 + languageName: node + linkType: hard + "is-callable@npm:^1.1.3, is-callable@npm:^1.1.4, is-callable@npm:^1.2.7": version: 1.2.7 resolution: "is-callable@npm:1.2.7" @@ -14957,6 +15180,15 @@ __metadata: languageName: node linkType: hard +"napi-postinstall@npm:^0.3.0": + version: 0.3.4 + resolution: "napi-postinstall@npm:0.3.4" + bin: + napi-postinstall: lib/cli.js + checksum: 10c0/b33d64150828bdade3a5d07368a8b30da22ee393f8dd8432f1b9e5486867be21c84ec443dd875dd3ef3c7401a079a7ab7e2aa9d3538a889abbcd96495d5104fe + languageName: node + linkType: hard + "natural-compare@npm:^1.4.0": version: 1.4.0 resolution: "natural-compare@npm:1.4.0" @@ -18301,6 +18533,13 @@ __metadata: languageName: node linkType: hard +"stable-hash-x@npm:^0.2.0": + version: 0.2.0 + resolution: "stable-hash-x@npm:0.2.0" + checksum: 10c0/c757df58366ee4bb266a9486b8932eab7c1ba730469eaf4b68d2dee404814e9f84089c44c9b5205f8c7d99a0ab036cce2af69139ce5ed44b635923c011a8aea8 + languageName: node + linkType: hard + "stackback@npm:0.0.2": version: 0.0.2 resolution: "stackback@npm:0.0.2" @@ -18982,7 +19221,7 @@ __metadata: languageName: node linkType: hard -"tinyglobby@npm:^0.2.12, tinyglobby@npm:^0.2.15": +"tinyglobby@npm:^0.2.12, tinyglobby@npm:^0.2.14, tinyglobby@npm:^0.2.15": version: 0.2.15 resolution: "tinyglobby@npm:0.2.15" dependencies: @@ -19640,6 +19879,73 @@ __metadata: languageName: node linkType: hard +"unrs-resolver@npm:^1.7.11": + version: 1.11.1 + resolution: "unrs-resolver@npm:1.11.1" + dependencies: + "@unrs/resolver-binding-android-arm-eabi": "npm:1.11.1" + "@unrs/resolver-binding-android-arm64": "npm:1.11.1" + "@unrs/resolver-binding-darwin-arm64": "npm:1.11.1" + "@unrs/resolver-binding-darwin-x64": "npm:1.11.1" + "@unrs/resolver-binding-freebsd-x64": "npm:1.11.1" + "@unrs/resolver-binding-linux-arm-gnueabihf": "npm:1.11.1" + "@unrs/resolver-binding-linux-arm-musleabihf": "npm:1.11.1" + "@unrs/resolver-binding-linux-arm64-gnu": "npm:1.11.1" + "@unrs/resolver-binding-linux-arm64-musl": "npm:1.11.1" + "@unrs/resolver-binding-linux-ppc64-gnu": "npm:1.11.1" + "@unrs/resolver-binding-linux-riscv64-gnu": "npm:1.11.1" + "@unrs/resolver-binding-linux-riscv64-musl": "npm:1.11.1" + "@unrs/resolver-binding-linux-s390x-gnu": "npm:1.11.1" + "@unrs/resolver-binding-linux-x64-gnu": "npm:1.11.1" + "@unrs/resolver-binding-linux-x64-musl": "npm:1.11.1" + "@unrs/resolver-binding-wasm32-wasi": "npm:1.11.1" + "@unrs/resolver-binding-win32-arm64-msvc": "npm:1.11.1" + "@unrs/resolver-binding-win32-ia32-msvc": "npm:1.11.1" + "@unrs/resolver-binding-win32-x64-msvc": "npm:1.11.1" + napi-postinstall: "npm:^0.3.0" + dependenciesMeta: + "@unrs/resolver-binding-android-arm-eabi": + optional: true + "@unrs/resolver-binding-android-arm64": + optional: true + "@unrs/resolver-binding-darwin-arm64": + optional: true + "@unrs/resolver-binding-darwin-x64": + optional: true + "@unrs/resolver-binding-freebsd-x64": + optional: true + "@unrs/resolver-binding-linux-arm-gnueabihf": + optional: true + "@unrs/resolver-binding-linux-arm-musleabihf": + optional: true + "@unrs/resolver-binding-linux-arm64-gnu": + optional: true + "@unrs/resolver-binding-linux-arm64-musl": + optional: true + "@unrs/resolver-binding-linux-ppc64-gnu": + optional: true + "@unrs/resolver-binding-linux-riscv64-gnu": + optional: true + "@unrs/resolver-binding-linux-riscv64-musl": + optional: true + "@unrs/resolver-binding-linux-s390x-gnu": + optional: true + "@unrs/resolver-binding-linux-x64-gnu": + optional: true + "@unrs/resolver-binding-linux-x64-musl": + optional: true + "@unrs/resolver-binding-wasm32-wasi": + optional: true + "@unrs/resolver-binding-win32-arm64-msvc": + optional: true + "@unrs/resolver-binding-win32-ia32-msvc": + optional: true + "@unrs/resolver-binding-win32-x64-msvc": + optional: true + checksum: 10c0/c91b112c71a33d6b24e5c708dab43ab80911f2df8ee65b87cd7a18fb5af446708e98c4b415ca262026ad8df326debcc7ca6a801b2935504d87fd6f0b9d70dce1 + languageName: node + linkType: hard + "upath@npm:2.0.1": version: 2.0.1 resolution: "upath@npm:2.0.1" From eaa87633fb187ab56c02efe98ad5c4029a909028 Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Fri, 16 Jan 2026 14:12:51 -0800 Subject: [PATCH 41/62] add tests --- .../core/spec/fast/util/forge-config.spec.ts | 46 +++++++++++++++++++ .../async_esm_forge_config/forge.config.mjs | 13 ++++++ .../async_esm_forge_config/package.json | 7 +++ .../async_mts_forge_config/forge.config.mts | 17 +++++++ .../async_mts_forge_config/package.json | 8 ++++ .../dummy_cjs_in_esm_conf/forge.config.cjs | 4 ++ .../dummy_cjs_in_esm_conf/package.json | 17 +++++++ .../dummy_default_mjs_conf/forge.config.mjs | 4 ++ .../dummy_default_mjs_conf/package.json | 16 +++++++ 9 files changed, 132 insertions(+) create mode 100644 packages/api/core/spec/fixture/async_esm_forge_config/forge.config.mjs create mode 100644 packages/api/core/spec/fixture/async_esm_forge_config/package.json create mode 100644 packages/api/core/spec/fixture/async_mts_forge_config/forge.config.mts create mode 100644 packages/api/core/spec/fixture/async_mts_forge_config/package.json create mode 100644 packages/api/core/spec/fixture/dummy_cjs_in_esm_conf/forge.config.cjs create mode 100644 packages/api/core/spec/fixture/dummy_cjs_in_esm_conf/package.json create mode 100644 packages/api/core/spec/fixture/dummy_default_mjs_conf/forge.config.mjs create mode 100644 packages/api/core/spec/fixture/dummy_default_mjs_conf/package.json diff --git a/packages/api/core/spec/fast/util/forge-config.spec.ts b/packages/api/core/spec/fast/util/forge-config.spec.ts index ffcfc27a44..d0d06a8ebd 100644 --- a/packages/api/core/spec/fast/util/forge-config.spec.ts +++ b/packages/api/core/spec/fast/util/forge-config.spec.ts @@ -338,6 +338,52 @@ describe('findConfig', () => { const conf = await findConfig(fixturePath); expect(conf.buildIdentifier).toEqual('typescript-esm'); }); + + it('should resolve forge.config.mts (async)', async () => { + const fixturePath = path.resolve( + import.meta.dirname, + '../../fixture/async_mts_forge_config', + ); + const conf = await findConfig(fixturePath); + expect(conf.buildIdentifier).toEqual('async-typescript-esm'); + }); + }); + + describe('ESM and CJS module formats', () => { + it('should resolve explicit .mjs config files', async () => { + type MjsConfig = ResolvedForgeConfig & { explicitMjs: boolean }; + const fixturePath = path.resolve( + import.meta.dirname, + '../../fixture/dummy_default_mjs_conf', + ); + const conf = (await findConfig(fixturePath)) as MjsConfig; + expect(conf.buildIdentifier).toEqual('explicit-esm'); + expect(conf.explicitMjs).toEqual(true); + }); + + it('should resolve .cjs config in ESM package (type: module)', async () => { + type CjsInEsmConfig = ResolvedForgeConfig & { cjsInEsmPackage: boolean }; + const fixturePath = path.resolve( + import.meta.dirname, + '../../fixture/dummy_cjs_in_esm_conf', + ); + const conf = (await findConfig(fixturePath)) as CjsInEsmConfig; + expect(conf.buildIdentifier).toEqual('cjs-in-esm-package'); + expect(conf.cjsInEsmPackage).toEqual(true); + }); + + it('should support async ESM configs (.mjs)', async () => { + type AsyncEsmConfig = ResolvedForgeConfig & { + packagerConfig: { asyncEsm: boolean }; + }; + const fixturePath = path.resolve( + import.meta.dirname, + '../../fixture/async_esm_forge_config', + ); + const conf = (await findConfig(fixturePath)) as AsyncEsmConfig; + expect(conf.buildIdentifier).toEqual('async-esm'); + expect(conf.packagerConfig.asyncEsm).toEqual(true); + }); }); }); diff --git a/packages/api/core/spec/fixture/async_esm_forge_config/forge.config.mjs b/packages/api/core/spec/fixture/async_esm_forge_config/forge.config.mjs new file mode 100644 index 0000000000..cdbbbc5663 --- /dev/null +++ b/packages/api/core/spec/fixture/async_esm_forge_config/forge.config.mjs @@ -0,0 +1,13 @@ +export default async function () { + return { + buildIdentifier: 'async-esm', + packagerConfig: { asyncEsm: true }, + rebuildConfig: {}, + makers: [ + { + name: '@electron-forge/maker-zip', + platforms: ['darwin'], + }, + ], + }; +} diff --git a/packages/api/core/spec/fixture/async_esm_forge_config/package.json b/packages/api/core/spec/fixture/async_esm_forge_config/package.json new file mode 100644 index 0000000000..43099fecc4 --- /dev/null +++ b/packages/api/core/spec/fixture/async_esm_forge_config/package.json @@ -0,0 +1,7 @@ +{ + "name": "async-esm-test", + "version": "1.0.0", + "devDependencies": { + "electron": "99.99.99" + } +} diff --git a/packages/api/core/spec/fixture/async_mts_forge_config/forge.config.mts b/packages/api/core/spec/fixture/async_mts_forge_config/forge.config.mts new file mode 100644 index 0000000000..6b14811ad4 --- /dev/null +++ b/packages/api/core/spec/fixture/async_mts_forge_config/forge.config.mts @@ -0,0 +1,17 @@ + + +import type { ForgeConfig } from '@electron-forge/shared-types'; + +export default async function (): Promise { + return { + buildIdentifier: 'async-typescript-esm', + rebuildConfig: {}, + makers: [ + { + name: '@electron-forge/maker-zip', + platforms: ['darwin'], + config: {} + }, + ], + }; +} diff --git a/packages/api/core/spec/fixture/async_mts_forge_config/package.json b/packages/api/core/spec/fixture/async_mts_forge_config/package.json new file mode 100644 index 0000000000..057e6b390a --- /dev/null +++ b/packages/api/core/spec/fixture/async_mts_forge_config/package.json @@ -0,0 +1,8 @@ +{ + "name": "async-mts-test", + "version": "1.0.0", + "type": "module", + "devDependencies": { + "electron": "99.99.99" + } +} diff --git a/packages/api/core/spec/fixture/dummy_cjs_in_esm_conf/forge.config.cjs b/packages/api/core/spec/fixture/dummy_cjs_in_esm_conf/forge.config.cjs new file mode 100644 index 0000000000..a84330fd2d --- /dev/null +++ b/packages/api/core/spec/fixture/dummy_cjs_in_esm_conf/forge.config.cjs @@ -0,0 +1,4 @@ +module.exports = { + buildIdentifier: 'cjs-in-esm-package', + cjsInEsmPackage: true, +}; diff --git a/packages/api/core/spec/fixture/dummy_cjs_in_esm_conf/package.json b/packages/api/core/spec/fixture/dummy_cjs_in_esm_conf/package.json new file mode 100644 index 0000000000..316463eeff --- /dev/null +++ b/packages/api/core/spec/fixture/dummy_cjs_in_esm_conf/package.json @@ -0,0 +1,17 @@ +{ + "name": "dummy-cjs-in-esm-conf", + "productName": "", + "version": "1.0.0", + "description": "", + "main": "src/index.js", + "type": "module", + "scripts": { + "start": "electron-forge start" + }, + "keywords": [], + "author": "", + "license": "MIT", + "devDependencies": { + "electron": "99.99.99" + } +} diff --git a/packages/api/core/spec/fixture/dummy_default_mjs_conf/forge.config.mjs b/packages/api/core/spec/fixture/dummy_default_mjs_conf/forge.config.mjs new file mode 100644 index 0000000000..01cc38ad69 --- /dev/null +++ b/packages/api/core/spec/fixture/dummy_default_mjs_conf/forge.config.mjs @@ -0,0 +1,4 @@ +export default { + buildIdentifier: 'explicit-esm', + explicitMjs: true, +}; diff --git a/packages/api/core/spec/fixture/dummy_default_mjs_conf/package.json b/packages/api/core/spec/fixture/dummy_default_mjs_conf/package.json new file mode 100644 index 0000000000..bdb7228ab3 --- /dev/null +++ b/packages/api/core/spec/fixture/dummy_default_mjs_conf/package.json @@ -0,0 +1,16 @@ +{ + "name": "dummy-mjs-conf", + "productName": "", + "version": "1.0.0", + "description": "", + "main": "src/index.js", + "scripts": { + "start": "electron-forge start" + }, + "keywords": [], + "author": "", + "license": "MIT", + "devDependencies": { + "electron": "99.99.99" + } +} From 583a070d863ac501ab1390889fc003b55d94e674 Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Fri, 16 Jan 2026 14:18:55 -0800 Subject: [PATCH 42/62] zzz --- .../core/spec/fixture/async_mts_forge_config/forge.config.mts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/api/core/spec/fixture/async_mts_forge_config/forge.config.mts b/packages/api/core/spec/fixture/async_mts_forge_config/forge.config.mts index 6b14811ad4..f7183b5cd6 100644 --- a/packages/api/core/spec/fixture/async_mts_forge_config/forge.config.mts +++ b/packages/api/core/spec/fixture/async_mts_forge_config/forge.config.mts @@ -1,5 +1,3 @@ - - import type { ForgeConfig } from '@electron-forge/shared-types'; export default async function (): Promise { @@ -10,7 +8,7 @@ export default async function (): Promise { { name: '@electron-forge/maker-zip', platforms: ['darwin'], - config: {} + config: {}, }, ], }; From a162470dbbf23ab000afe0241190a18b40ec7de1 Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Fri, 27 Feb 2026 10:19:07 -0800 Subject: [PATCH 43/62] Update packages/utils/web-multi-logger/src/Logger.ts Co-authored-by: George Xu <33054982+georgexu99@users.noreply.github.com> --- packages/utils/web-multi-logger/src/Logger.ts | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/packages/utils/web-multi-logger/src/Logger.ts b/packages/utils/web-multi-logger/src/Logger.ts index 61ed145f5d..51b72eb14d 100644 --- a/packages/utils/web-multi-logger/src/Logger.ts +++ b/packages/utils/web-multi-logger/src/Logger.ts @@ -1,5 +1,6 @@ import http from 'node:http'; import path from 'node:path'; +import url from 'node:url'; import express from 'express'; import ews from 'express-ws'; @@ -27,15 +28,23 @@ export default class Logger { this.app.use( '/xterm/addons/fit', - express.static(path.dirname(import.meta.resolve('xterm-addon-fit'))), + express.static( + path.dirname(url.fileURLToPath(import.meta.resolve('xterm-addon-fit'))), + ), ); this.app.use( '/xterm/addons/search', - express.static(path.dirname(import.meta.resolve('xterm-addon-search'))), + express.static( + path.dirname( + url.fileURLToPath(import.meta.resolve('xterm-addon-search')), + ), + ), ); this.app.use( '/xterm', - express.static(path.resolve(import.meta.resolve('xterm'), '../..')), + express.static( + path.resolve(url.fileURLToPath(import.meta.resolve('xterm')), '../..'), + ), ); this.app.use( express.static(path.resolve(import.meta.dirname, '..', 'static')), From 9ccd6c0a59f42cbd5dc4d286b4993231f78ee549 Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Fri, 27 Feb 2026 11:00:56 -0800 Subject: [PATCH 44/62] chore: remove stale TODO comments --- packages/api/core/src/api/package.ts | 1 - packages/plugin/webpack/spec/AssetRelocatorPatch.slow.spec.ts | 1 - 2 files changed, 2 deletions(-) diff --git a/packages/api/core/src/api/package.ts b/packages/api/core/src/api/package.ts index 5f2db0bc06..489bfc08e5 100644 --- a/packages/api/core/src/api/package.ts +++ b/packages/api/core/src/api/package.ts @@ -404,7 +404,6 @@ export const listrPackage = ( dir: ctx.dir, arch: arch, platform, - // TODO: Make these hooks serial again afterFinalizePackageTargets: serialHooks( afterFinalizePackageTargetsHooks, ), diff --git a/packages/plugin/webpack/spec/AssetRelocatorPatch.slow.spec.ts b/packages/plugin/webpack/spec/AssetRelocatorPatch.slow.spec.ts index e9854c9562..f678028737 100644 --- a/packages/plugin/webpack/spec/AssetRelocatorPatch.slow.spec.ts +++ b/packages/plugin/webpack/spec/AssetRelocatorPatch.slow.spec.ts @@ -123,7 +123,6 @@ const safeFirstRendererConfig = (renderer: WebpackPluginConfig['renderer']) => { return renderer; }; -// FIXME describe('AssetRelocatorPatch', () => { const rendererOut = path.join(appPath, '.webpack/renderer'); const mainOut = path.join(appPath, '.webpack/main'); From bba0bb73e6e4335200f9ff861c71e6d1d59db4b7 Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Fri, 27 Feb 2026 12:17:38 -0800 Subject: [PATCH 45/62] chore: improve lint rule Co-authored-by: Erik Moura --- .eslintrc.json | 3 +-- .../core/spec/fixture/dummy_js_conf/forge.different.config.cjs | 1 - packages/plugin/fuses/spec/fixture/src/main.cjs | 1 - 3 files changed, 1 insertion(+), 4 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 1babeb3118..e7199bd71b 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -114,11 +114,10 @@ { "files": [ "packages/*/*/spec/**/*.spec.ts", - "packages/*/*/spec/fixture/**/*.ts" + "packages/*/*/spec/fixture/**/*.{ts,js,cjs}" ], "rules": { "global-require": "off", - // "import/no-dynamic-require": "off", "n/no-extraneous-import": "off", "n/no-unpublished-import": "off", "n/no-unpublished-require": "off", diff --git a/packages/api/core/spec/fixture/dummy_js_conf/forge.different.config.cjs b/packages/api/core/spec/fixture/dummy_js_conf/forge.different.config.cjs index 766b6889ed..1f07ef7998 100644 --- a/packages/api/core/spec/fixture/dummy_js_conf/forge.different.config.cjs +++ b/packages/api/core/spec/fixture/dummy_js_conf/forge.different.config.cjs @@ -1,6 +1,5 @@ const { utils: { fromBuildIdentifier }, - // eslint-disable-next-line n/no-unpublished-require } = require('@electron-forge/core'); module.exports = { diff --git a/packages/plugin/fuses/spec/fixture/src/main.cjs b/packages/plugin/fuses/spec/fixture/src/main.cjs index 8dc0dac15e..3ef07df595 100644 --- a/packages/plugin/fuses/spec/fixture/src/main.cjs +++ b/packages/plugin/fuses/spec/fixture/src/main.cjs @@ -1,4 +1,3 @@ -// eslint-disable-next-line const { app } = require('electron'); console.log('The Fuses plugin is working'); From eb13c2dd88dae37260088bb7736c9920f3b34f4f Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Mon, 2 Mar 2026 11:28:28 -0800 Subject: [PATCH 46/62] fix(core): correct fallback exec path for `electron-executable` --- packages/api/core/src/util/electron-executable.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/api/core/src/util/electron-executable.ts b/packages/api/core/src/util/electron-executable.ts index fff5f640d0..e673d14db6 100644 --- a/packages/api/core/src/util/electron-executable.ts +++ b/packages/api/core/src/util/electron-executable.ts @@ -32,6 +32,9 @@ export default async function locateElectronExecutable( logSymbols.warning, `Returned Electron executable path (${electronExecPath}) is not a string. Defaulting to node_modules/electron.`, ); - return await import(path.resolve(dir, 'node_modules/electron/index.js')); + const { default: fallbackExecPath } = await import( + path.resolve(dir, 'node_modules/electron/index.js') + ); + return fallbackExecPath; } } From 42389326e51067be717fcdadcd7b7d22d9c6ef97 Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Mon, 2 Mar 2026 11:59:52 -0800 Subject: [PATCH 47/62] fix(publisher-snapcraft): use improt instead of require --- packages/publisher/snapcraft/src/PublisherSnapcraft.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/publisher/snapcraft/src/PublisherSnapcraft.ts b/packages/publisher/snapcraft/src/PublisherSnapcraft.ts index 4dbebf6513..9a33ee671b 100644 --- a/packages/publisher/snapcraft/src/PublisherSnapcraft.ts +++ b/packages/publisher/snapcraft/src/PublisherSnapcraft.ts @@ -8,10 +8,6 @@ import fs from 'fs-extra'; import { PublisherSnapcraftConfig } from './Config.js'; -// TODO: convert to import statement once electron-installer-snap imports Snapcraft properly. -// eslint-disable-next-line @typescript-eslint/no-require-imports -const Snapcraft = require('electron-installer-snap/src/snapcraft'); - export default class PublisherSnapcraft extends PublisherBase { name = 'snapcraft'; @@ -45,6 +41,12 @@ export default class PublisherSnapcraft extends PublisherBase Date: Mon, 2 Mar 2026 12:15:31 -0800 Subject: [PATCH 48/62] fix(import): get rid of require --- packages/api/core/src/api/import.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/api/core/src/api/import.ts b/packages/api/core/src/api/import.ts index 58f9960706..2b12daa077 100644 --- a/packages/api/core/src/api/import.ts +++ b/packages/api/core/src/api/import.ts @@ -333,12 +333,11 @@ export default autoTrace( d( 'detected existing Forge config in package.json, merging with base template Forge config', ); - // eslint-disable-next-line @typescript-eslint/no-require-imports - const templateConfig = require( + const templateConfig = await import( path.resolve( baseTemplate.templateDir, 'forge.config.js', - ), + ) ); packageJSON = await readRawPackageJson(dir); merge(templateConfig, packageJSON.config.forge); // mutates the templateConfig object From a63be4e5de7b7d0b49bec8f4d45452c5577fd67a Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Mon, 2 Mar 2026 12:17:28 -0800 Subject: [PATCH 49/62] chore: delete unused `is-installed` --- packages/api/core/src/util/is-installed.ts | 10 ---------- 1 file changed, 10 deletions(-) delete mode 100644 packages/api/core/src/util/is-installed.ts diff --git a/packages/api/core/src/util/is-installed.ts b/packages/api/core/src/util/is-installed.ts deleted file mode 100644 index ae8be63653..0000000000 --- a/packages/api/core/src/util/is-installed.ts +++ /dev/null @@ -1,10 +0,0 @@ -export default function isInstalled(pkg: string): boolean { - try { - // eslint-disable-next-line @typescript-eslint/no-require-imports - require(pkg); - return true; - } catch { - // Package doesn't exist -- must not be installable on this platform - return false; - } -} From 22dbe0c5ae899457e0f18491575f6a8f25d9193b Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Mon, 2 Mar 2026 12:47:07 -0800 Subject: [PATCH 50/62] fix __dirname for native module test --- .../webpack/spec/fixtures/apps/native-modules/package.json | 1 + .../spec/fixtures/apps/native-modules/webpack.main.config.js | 2 +- .../fixtures/apps/native-modules/webpack.renderer.config.js | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/plugin/webpack/spec/fixtures/apps/native-modules/package.json b/packages/plugin/webpack/spec/fixtures/apps/native-modules/package.json index 462678a86d..d15d0783bb 100644 --- a/packages/plugin/webpack/spec/fixtures/apps/native-modules/package.json +++ b/packages/plugin/webpack/spec/fixtures/apps/native-modules/package.json @@ -1,5 +1,6 @@ { "name": "native-app", + "type": "commonjs", "version": "1.0.0", "main": "./.webpack/main/index.js", "license": "MIT", diff --git a/packages/plugin/webpack/spec/fixtures/apps/native-modules/webpack.main.config.js b/packages/plugin/webpack/spec/fixtures/apps/native-modules/webpack.main.config.js index 5c392a874c..dd0ed74cba 100644 --- a/packages/plugin/webpack/spec/fixtures/apps/native-modules/webpack.main.config.js +++ b/packages/plugin/webpack/spec/fixtures/apps/native-modules/webpack.main.config.js @@ -1,5 +1,5 @@ module.exports = { - context: import.meta.dirname, + context: __dirname, entry: './src/index.js', performance: { hints: false, diff --git a/packages/plugin/webpack/spec/fixtures/apps/native-modules/webpack.renderer.config.js b/packages/plugin/webpack/spec/fixtures/apps/native-modules/webpack.renderer.config.js index 8942e56c40..891dac3512 100644 --- a/packages/plugin/webpack/spec/fixtures/apps/native-modules/webpack.renderer.config.js +++ b/packages/plugin/webpack/spec/fixtures/apps/native-modules/webpack.renderer.config.js @@ -1,7 +1,7 @@ const rules = require('./webpack.rules'); module.exports = { - context: import.meta.dirname, + context: __dirname, target: 'electron-renderer', performance: { hints: false, From 8d2fe7cc8e1aafcd6ced1c35d39de16fdda41873 Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Mon, 2 Mar 2026 12:48:17 -0800 Subject: [PATCH 51/62] fix(plugin-vite): use vite 7 --- packages/template/vite-typescript/tmpl/package.json | 2 +- packages/template/vite/tmpl/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/template/vite-typescript/tmpl/package.json b/packages/template/vite-typescript/tmpl/package.json index 8a38e2ac97..33b85d5ae2 100644 --- a/packages/template/vite-typescript/tmpl/package.json +++ b/packages/template/vite-typescript/tmpl/package.json @@ -8,6 +8,6 @@ "eslint-plugin-import": "^2.25.0", "eslint-import-resolver-typescript": "^4.4.4", "typescript": "^5.9.2", - "vite": "^5.0.12" + "vite": "^7.2.4" } } diff --git a/packages/template/vite/tmpl/package.json b/packages/template/vite/tmpl/package.json index 72517f0d43..c477dc4e4d 100644 --- a/packages/template/vite/tmpl/package.json +++ b/packages/template/vite/tmpl/package.json @@ -2,6 +2,6 @@ "devDependencies": { "@electron/fuses": "^2.0.0", "@electron-forge/plugin-vite": "ELECTRON_FORGE/VERSION", - "vite": "^5.0.12" + "vite": "^7.2.4" } } From 17e89562db2d64ab37dd6350223f05815ac4541a Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Mon, 2 Mar 2026 13:17:52 -0800 Subject: [PATCH 52/62] fix assetrelocator tests --- .../webpack/spec/fixtures/apps/native-modules/src/index.js | 4 ++-- .../webpack/spec/fixtures/apps/native-modules/src/preload.js | 3 +-- .../webpack/spec/fixtures/apps/native-modules/src/renderer.js | 3 +-- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/packages/plugin/webpack/spec/fixtures/apps/native-modules/src/index.js b/packages/plugin/webpack/spec/fixtures/apps/native-modules/src/index.js index 910a3c13be..92b609bb8b 100644 --- a/packages/plugin/webpack/spec/fixtures/apps/native-modules/src/index.js +++ b/packages/plugin/webpack/spec/fixtures/apps/native-modules/src/index.js @@ -1,4 +1,5 @@ -import { app, BrowserWindow, ipcMain } from 'electron'; +const { app, BrowserWindow, ipcMain } = require('electron'); +const helloWorld = require('native-hello-world'); let count = 0; ipcMain.on('stdout', (_, line) => { @@ -25,7 +26,6 @@ app.on('ready', () => { mainWindow.loadURL(MAIN_WINDOW_WEBPACK_ENTRY); }); -const helloWorld = require('native-hello-world'); console.log(`${helloWorld()} from the main`); setTimeout(() => { diff --git a/packages/plugin/webpack/spec/fixtures/apps/native-modules/src/preload.js b/packages/plugin/webpack/spec/fixtures/apps/native-modules/src/preload.js index e8fda1badb..595f67e35a 100644 --- a/packages/plugin/webpack/spec/fixtures/apps/native-modules/src/preload.js +++ b/packages/plugin/webpack/spec/fixtures/apps/native-modules/src/preload.js @@ -1,4 +1,3 @@ -import { ipcRenderer } from 'electron'; - +const { ipcRenderer } = require('electron'); const helloWorld = require('native-hello-world'); ipcRenderer.send('stdout', `${helloWorld()} from the preload`); diff --git a/packages/plugin/webpack/spec/fixtures/apps/native-modules/src/renderer.js b/packages/plugin/webpack/spec/fixtures/apps/native-modules/src/renderer.js index 7ed63bca11..e08ca3b5de 100644 --- a/packages/plugin/webpack/spec/fixtures/apps/native-modules/src/renderer.js +++ b/packages/plugin/webpack/spec/fixtures/apps/native-modules/src/renderer.js @@ -1,4 +1,3 @@ -import { ipcRenderer } from 'electron'; - +const { ipcRenderer } = require('electron'); const helloWorld = require('native-hello-world'); ipcRenderer.send('stdout', `${helloWorld()} from the renderer`); From d773ef22a65121ed64f57687f76461cd4866bf5a Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Tue, 3 Mar 2026 15:37:56 -0800 Subject: [PATCH 53/62] update @electron deps --- .nvmrc | 2 +- yarn.lock | 62 +++++++++++++++++++++++++++---------------------------- 2 files changed, 32 insertions(+), 32 deletions(-) diff --git a/.nvmrc b/.nvmrc index f1c8f6b0d0..35d2d08ea1 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -22.18 +22.12 diff --git a/yarn.lock b/yarn.lock index 0a96db647f..13f4878766 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1432,11 +1432,11 @@ __metadata: linkType: hard "@electron/fuses@npm:^2.0.0": - version: 2.0.0 - resolution: "@electron/fuses@npm:2.0.0" + version: 2.1.0 + resolution: "@electron/fuses@npm:2.1.0" bin: electron-fuses: dist/bin.js - checksum: 10c0/f735e589d9f785ea59bf156b8b8c579d61e145958fe67f6c555b6e1b65581fefd150a53ef355079922be7d2a19fb5f4fa4262bce067badb00a3d3f7a66aa4410 + checksum: 10c0/a88f3ada0e93678589107d5782219dee2a6543b5889ce890fe5b33f443952f58670a679f337a65826553e9d937f430f751b9396240d1d0a6189e744816ad0ac9 languageName: node linkType: hard @@ -1479,8 +1479,8 @@ __metadata: linkType: hard "@electron/lint-roller@npm:^3.1.3": - version: 3.1.3 - resolution: "@electron/lint-roller@npm:3.1.3" + version: 3.2.0 + resolution: "@electron/lint-roller@npm:3.2.0" dependencies: "@dsanders11/vscode-markdown-languageservice": "npm:^0.3.0" ajv: "npm:^8.16.0" @@ -1505,7 +1505,7 @@ __metadata: lint-roller-markdown-links: dist/bin/lint-markdown-links.js lint-roller-markdown-standard: dist/bin/lint-markdown-standard.js lint-roller-markdown-ts-check: dist/bin/lint-markdown-ts-check.js - checksum: 10c0/657b17b4921a8887334287e245dde85022704c673e1bba867e2a79abb643392b4e4e3962b8745074e78811938b28c4653c37b0c07a76a298a2a00ab3276f475e + checksum: 10c0/5331163518f41c1ea8ac302891d808891b5570f657587194717e3a8214c0d99e04949cf500ff138b02b77a373e317c3e77042b19c7fbda186d5c970b6b81df80 languageName: node linkType: hard @@ -1535,8 +1535,8 @@ __metadata: linkType: hard "@electron/packager@npm:^19.0.1": - version: 19.0.1 - resolution: "@electron/packager@npm:19.0.1" + version: 19.0.5 + resolution: "@electron/packager@npm:19.0.5" dependencies: "@electron/asar": "npm:^4.0.1" "@electron/get": "npm:^4.0.2" @@ -1560,16 +1560,15 @@ __metadata: yargs-parser: "npm:^22.0.0" bin: electron-packager: bin/electron-packager.mjs - checksum: 10c0/f7e44a3124640eff674b7cf6d53b15e00df0ec4fe00365ffde4453c43e789d786869d8e395c6fbbd62410cb7f5ce9913e3644272c1eed4325548ac00d3e2d77b + checksum: 10c0/065749f34ffcc33a265221ee14c712fad25d2cffd85c65931809123fcd70fd6cd2afb0de9ce7a88384e0db44751c632fc772c18d1dfe4094dd2779153b7fd85c languageName: node linkType: hard "@electron/rebuild@npm:^4.0.1": - version: 4.0.1 - resolution: "@electron/rebuild@npm:4.0.1" + version: 4.0.3 + resolution: "@electron/rebuild@npm:4.0.3" dependencies: "@malept/cross-spawn-promise": "npm:^2.0.0" - chalk: "npm:^4.0.0" debug: "npm:^4.1.1" detect-libc: "npm:^2.0.1" got: "npm:^11.7.0" @@ -1580,11 +1579,14 @@ __metadata: ora: "npm:^5.1.0" read-binary-file-arch: "npm:^1.0.6" semver: "npm:^7.3.5" - tar: "npm:^6.0.5" + tar: "npm:^7.5.6" yargs: "npm:^17.0.1" + dependenciesMeta: + electron: + built: true bin: electron-rebuild: lib/cli.js - checksum: 10c0/4863d39c34515f3fb521ce5e976e25db20e89920574ca353efd0c3272d5f4d14546ba15ce28cee4299187160b2af02e3e130100ba8dc53f313b6eb685dc54928 + checksum: 10c0/43bdbf85cde13874a2185c161d1943c3c4f12323f25cc3534890b1b0ec451b5bb940aa80e2c42476fe0d8c854d2e62b0e56f0d98c482c03b0715305bf9688171 languageName: node linkType: hard @@ -1602,22 +1604,7 @@ __metadata: languageName: node linkType: hard -"@electron/windows-sign@npm:^1.1.2": - version: 1.1.2 - resolution: "@electron/windows-sign@npm:1.1.2" - dependencies: - cross-dirname: "npm:^0.1.0" - debug: "npm:^4.3.4" - fs-extra: "npm:^11.1.1" - minimist: "npm:^1.2.8" - postject: "npm:^1.0.0-alpha.6" - bin: - electron-windows-sign: bin/electron-windows-sign.js - checksum: 10c0/eb8dd7e4908b67b5893e53a70a079fd8717feb1895682cad0c1aabe174bb4f1a1441f75945452e8c7622552e18623e2f468114a2bc06c225c5a08bd599169e60 - languageName: node - linkType: hard - -"@electron/windows-sign@npm:^1.2.2": +"@electron/windows-sign@npm:^1.1.2, @electron/windows-sign@npm:^1.2.2": version: 1.2.2 resolution: "@electron/windows-sign@npm:1.2.2" dependencies: @@ -19027,7 +19014,7 @@ __metadata: languageName: node linkType: hard -"tar@npm:6.2.1, tar@npm:^6.0.5": +"tar@npm:6.2.1": version: 6.2.1 resolution: "tar@npm:6.2.1" dependencies: @@ -19054,6 +19041,19 @@ __metadata: languageName: node linkType: hard +"tar@npm:^7.5.6": + version: 7.5.9 + resolution: "tar@npm:7.5.9" + dependencies: + "@isaacs/fs-minipass": "npm:^4.0.0" + chownr: "npm:^3.0.0" + minipass: "npm:^7.1.2" + minizlib: "npm:^3.1.0" + yallist: "npm:^5.0.0" + checksum: 10c0/e870beb1b2477135ca2abe86b2d18f7b35d0a4e3a37bbc523d3b8f7adca268dfab543f26528a431d569897f8c53a7cac745cdfbc4411c2f89aeeacc652b81b0a + languageName: node + linkType: hard + "teeny-request@npm:^9.0.0": version: 9.0.0 resolution: "teeny-request@npm:9.0.0" From d5710c915000637fd23e6422f23d8eb835f414d3 Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Tue, 3 Mar 2026 15:43:28 -0800 Subject: [PATCH 54/62] refactor: `main` -> `exports` in package.json --- packages/api/core/package.json | 2 +- packages/external/create-electron-app/package.json | 2 +- packages/maker/appx/package.json | 2 +- packages/maker/base/package.json | 2 +- packages/maker/deb/package.json | 2 +- packages/maker/dmg/package.json | 2 +- packages/maker/flatpak/package.json | 2 +- packages/maker/msix/package.json | 2 +- packages/maker/pkg/package.json | 2 +- packages/maker/rpm/package.json | 2 +- packages/maker/snap/package.json | 2 +- packages/maker/squirrel/package.json | 2 +- packages/maker/wix/package.json | 2 +- packages/maker/zip/package.json | 2 +- packages/plugin/auto-unpack-natives/package.json | 2 +- packages/plugin/base/package.json | 2 +- packages/plugin/fuses/package.json | 2 +- packages/plugin/local-electron/package.json | 2 +- packages/plugin/vite/package.json | 2 +- packages/plugin/webpack/package.json | 2 +- packages/publisher/base-static/package.json | 2 +- packages/publisher/base/package.json | 2 +- packages/publisher/bitbucket/package.json | 2 +- packages/publisher/electron-release-server/package.json | 2 +- packages/publisher/gcs/package.json | 2 +- packages/publisher/github/package.json | 2 +- packages/publisher/nucleus/package.json | 2 +- packages/publisher/s3/package.json | 2 +- packages/publisher/snapcraft/package.json | 2 +- packages/template/base/package.json | 2 +- packages/template/base/tmpl/package.json | 2 +- packages/template/vite-typescript/package.json | 2 +- packages/template/vite/package.json | 2 +- packages/template/webpack-typescript/package.json | 2 +- packages/template/webpack/package.json | 2 +- packages/utils/core-utils/package.json | 2 +- packages/utils/test-utils/package.json | 2 +- packages/utils/tracer/package.json | 2 +- packages/utils/types/package.json | 2 +- packages/utils/web-multi-logger/package.json | 2 +- tools/doc-plugin/package.json | 2 +- 41 files changed, 41 insertions(+), 41 deletions(-) diff --git a/packages/api/core/package.json b/packages/api/core/package.json index 162fd40ee2..7995edeb1d 100644 --- a/packages/api/core/package.json +++ b/packages/api/core/package.json @@ -4,7 +4,7 @@ "type": "module", "description": "A complete tool for building modern Electron applications", "repository": "https://github.com/electron/forge", - "main": "dist/api/index.js", + "exports": "./dist/api/index.js", "typings": "dist/api/index.d.ts", "author": "Samuel Attard", "license": "MIT", diff --git a/packages/external/create-electron-app/package.json b/packages/external/create-electron-app/package.json index cc743ae0b1..fd3723da5d 100644 --- a/packages/external/create-electron-app/package.json +++ b/packages/external/create-electron-app/package.json @@ -4,7 +4,7 @@ "type": "module", "description": "Create Electron App", "repository": "https://github.com/electron/forge", - "main": "dist/index.js", + "exports": "./dist/index.js", "typings": "dist/index.d.ts", "author": "Samuel Attard", "license": "MIT", diff --git a/packages/maker/appx/package.json b/packages/maker/appx/package.json index 1f4324e779..011517125e 100644 --- a/packages/maker/appx/package.json +++ b/packages/maker/appx/package.json @@ -6,7 +6,7 @@ "repository": "https://github.com/electron/forge", "author": "Samuel Attard", "license": "MIT", - "main": "dist/MakerAppX.js", + "exports": "./dist/MakerAppX.js", "typings": "dist/MakerAppX.d.ts", "devDependencies": { "vitest": "^4.0.14" diff --git a/packages/maker/base/package.json b/packages/maker/base/package.json index 3ab4398b99..f4973cd42d 100644 --- a/packages/maker/base/package.json +++ b/packages/maker/base/package.json @@ -6,7 +6,7 @@ "repository": "https://github.com/electron/forge", "author": "Samuel Attard", "license": "MIT", - "main": "dist/Maker.js", + "exports": "./dist/Maker.js", "typings": "dist/Maker.d.ts", "devDependencies": { "vitest": "^4.0.14" diff --git a/packages/maker/deb/package.json b/packages/maker/deb/package.json index 970b1022a1..a3b99c891f 100644 --- a/packages/maker/deb/package.json +++ b/packages/maker/deb/package.json @@ -6,7 +6,7 @@ "repository": "https://github.com/electron/forge", "author": "Samuel Attard", "license": "MIT", - "main": "dist/MakerDeb.js", + "exports": "./dist/MakerDeb.js", "typings": "dist/MakerDeb.d.ts", "devDependencies": { "@electron-forge/test-utils": "workspace:*", diff --git a/packages/maker/dmg/package.json b/packages/maker/dmg/package.json index 440de3b547..cdca001323 100644 --- a/packages/maker/dmg/package.json +++ b/packages/maker/dmg/package.json @@ -6,7 +6,7 @@ "repository": "https://github.com/electron/forge", "author": "Samuel Attard", "license": "MIT", - "main": "dist/MakerDMG.js", + "exports": "./dist/MakerDMG.js", "typings": "dist/MakerDMG.d.ts", "devDependencies": { "@electron-forge/test-utils": "workspace:*", diff --git a/packages/maker/flatpak/package.json b/packages/maker/flatpak/package.json index 0f98f86f59..f6de7dd248 100644 --- a/packages/maker/flatpak/package.json +++ b/packages/maker/flatpak/package.json @@ -6,7 +6,7 @@ "repository": "https://github.com/electron/forge", "author": "Samuel Attard", "license": "MIT", - "main": "dist/MakerFlatpak.js", + "exports": "./dist/MakerFlatpak.js", "typings": "dist/MakerFlatpak.d.ts", "devDependencies": { "@electron-forge/test-utils": "workspace:*", diff --git a/packages/maker/msix/package.json b/packages/maker/msix/package.json index 8c1ef86795..9680dc94f3 100644 --- a/packages/maker/msix/package.json +++ b/packages/maker/msix/package.json @@ -6,7 +6,7 @@ "repository": "https://github.com/electron/forge", "author": "Jan Hannemann", "license": "MIT", - "main": "dist/MakerMSIX.js", + "exports": "./dist/MakerMSIX.js", "typings": "dist/MakerMSIX.d.ts", "devDependencies": { "vitest": "^4.0.14" diff --git a/packages/maker/pkg/package.json b/packages/maker/pkg/package.json index 75ab662179..78cd07420c 100644 --- a/packages/maker/pkg/package.json +++ b/packages/maker/pkg/package.json @@ -5,7 +5,7 @@ "description": "PKG maker for Electron Forge", "repository": "https://github.com/electron/forge", "license": "MIT", - "main": "dist/MakerPKG.js", + "exports": "./dist/MakerPKG.js", "typings": "dist/MakerPKG.d.ts", "devDependencies": { "@electron-forge/test-utils": "workspace:*", diff --git a/packages/maker/rpm/package.json b/packages/maker/rpm/package.json index 4567018f8f..5adce4465c 100644 --- a/packages/maker/rpm/package.json +++ b/packages/maker/rpm/package.json @@ -6,7 +6,7 @@ "repository": "https://github.com/electron/forge", "author": "Samuel Attard", "license": "MIT", - "main": "dist/MakerRpm.js", + "exports": "./dist/MakerRpm.js", "typings": "dist/MakerRpm.d.ts", "devDependencies": { "@electron-forge/test-utils": "workspace:*", diff --git a/packages/maker/snap/package.json b/packages/maker/snap/package.json index 320a5c75d1..8a5d3f4f35 100644 --- a/packages/maker/snap/package.json +++ b/packages/maker/snap/package.json @@ -5,7 +5,7 @@ "description": "Snap maker for Electron Forge", "repository": "https://github.com/electron/forge", "license": "MIT", - "main": "dist/MakerSnap.js", + "exports": "./dist/MakerSnap.js", "typings": "dist/MakerSnap.d.ts", "devDependencies": { "@electron-forge/test-utils": "workspace:*", diff --git a/packages/maker/squirrel/package.json b/packages/maker/squirrel/package.json index 658cfff8ae..b7fdbc7b3c 100644 --- a/packages/maker/squirrel/package.json +++ b/packages/maker/squirrel/package.json @@ -6,7 +6,7 @@ "repository": "https://github.com/electron/forge", "author": "Samuel Attard", "license": "MIT", - "main": "dist/MakerSquirrel.js", + "exports": "./dist/MakerSquirrel.js", "typings": "dist/MakerSquirrel.d.ts", "engines": { "node": ">= 22.12.0" diff --git a/packages/maker/wix/package.json b/packages/maker/wix/package.json index c822abd5c2..05673cc7e4 100644 --- a/packages/maker/wix/package.json +++ b/packages/maker/wix/package.json @@ -6,7 +6,7 @@ "repository": "https://github.com/electron/forge", "author": "Samuel Attard", "license": "MIT", - "main": "dist/MakerWix.js", + "exports": "./dist/MakerWix.js", "typings": "dist/MakerWix.d.ts", "devDependencies": { "vitest": "^4.0.14" diff --git a/packages/maker/zip/package.json b/packages/maker/zip/package.json index 17c757facd..203486b333 100644 --- a/packages/maker/zip/package.json +++ b/packages/maker/zip/package.json @@ -6,7 +6,7 @@ "repository": "https://github.com/electron/forge", "author": "Samuel Attard", "license": "MIT", - "main": "dist/MakerZIP.js", + "exports": "./dist/MakerZIP.js", "typings": "dist/MakerZIP.d.ts", "devDependencies": { "@electron-forge/test-utils": "workspace:*", diff --git a/packages/plugin/auto-unpack-natives/package.json b/packages/plugin/auto-unpack-natives/package.json index c851c20a55..4898bade37 100644 --- a/packages/plugin/auto-unpack-natives/package.json +++ b/packages/plugin/auto-unpack-natives/package.json @@ -6,7 +6,7 @@ "repository": "https://github.com/electron/forge", "author": "Samuel Attard", "license": "MIT", - "main": "dist/AutoUnpackNativesPlugin.js", + "exports": "./dist/AutoUnpackNativesPlugin.js", "typings": "dist/AutoUnpackNativesPlugin.d.ts", "engines": { "node": ">= 22.12.0" diff --git a/packages/plugin/base/package.json b/packages/plugin/base/package.json index 787c4c95e6..f06454d674 100644 --- a/packages/plugin/base/package.json +++ b/packages/plugin/base/package.json @@ -6,7 +6,7 @@ "repository": "https://github.com/electron/forge", "author": "Samuel Attard", "license": "MIT", - "main": "dist/Plugin.js", + "exports": "./dist/Plugin.js", "typings": "dist/Plugin.d.ts", "engines": { "node": ">= 22.12.0" diff --git a/packages/plugin/fuses/package.json b/packages/plugin/fuses/package.json index adac8a2a92..2099e41ac5 100644 --- a/packages/plugin/fuses/package.json +++ b/packages/plugin/fuses/package.json @@ -6,7 +6,7 @@ "repository": "https://github.com/electron/forge", "author": "Erik Moura ", "license": "MIT", - "main": "dist/FusesPlugin.js", + "exports": "./dist/FusesPlugin.js", "files": [ "dist", "src", diff --git a/packages/plugin/local-electron/package.json b/packages/plugin/local-electron/package.json index 88a543706f..4ff074656b 100644 --- a/packages/plugin/local-electron/package.json +++ b/packages/plugin/local-electron/package.json @@ -6,7 +6,7 @@ "repository": "https://github.com/electron/forge", "author": "Samuel Attard", "license": "MIT", - "main": "dist/LocalElectronPlugin.js", + "exports": "./dist/LocalElectronPlugin.js", "typings": "dist/LocalElectronPlugin.d.ts", "engines": { "node": ">= 22.12.0" diff --git a/packages/plugin/vite/package.json b/packages/plugin/vite/package.json index 7bc9deb1ca..4eebb78857 100644 --- a/packages/plugin/vite/package.json +++ b/packages/plugin/vite/package.json @@ -10,7 +10,7 @@ }, "author": "caoxiemeihao", "license": "MIT", - "main": "dist/VitePlugin.js", + "exports": "./dist/VitePlugin.js", "typings": "dist/VitePlugin.d.ts", "dependencies": { "@electron-forge/plugin-base": "workspace:*", diff --git a/packages/plugin/webpack/package.json b/packages/plugin/webpack/package.json index 7700a5efc2..b6df3d9382 100644 --- a/packages/plugin/webpack/package.json +++ b/packages/plugin/webpack/package.json @@ -6,7 +6,7 @@ "repository": "https://github.com/electron/forge", "author": "Samuel Attard", "license": "MIT", - "main": "dist/WebpackPlugin.js", + "exports": "./dist/WebpackPlugin.js", "typings": "dist/WebpackPlugin.d.ts", "devDependencies": { "@electron/packager": "^19.0.1", diff --git a/packages/publisher/base-static/package.json b/packages/publisher/base-static/package.json index 612b992808..ea6abb387e 100644 --- a/packages/publisher/base-static/package.json +++ b/packages/publisher/base-static/package.json @@ -6,7 +6,7 @@ "repository": "https://github.com/electron/forge", "author": "Samuel Attard", "license": "MIT", - "main": "dist/PublisherStatic.js", + "exports": "./dist/PublisherStatic.js", "typings": "dist/PublisherStatic.d.ts", "dependencies": { "@electron-forge/publisher-base": "workspace:*", diff --git a/packages/publisher/base/package.json b/packages/publisher/base/package.json index 8cdd39721e..ba0867d7b9 100644 --- a/packages/publisher/base/package.json +++ b/packages/publisher/base/package.json @@ -6,7 +6,7 @@ "repository": "https://github.com/electron/forge", "author": "Samuel Attard", "license": "MIT", - "main": "dist/Publisher.js", + "exports": "./dist/Publisher.js", "typings": "dist/Publisher.d.ts", "dependencies": { "@electron-forge/shared-types": "workspace:*" diff --git a/packages/publisher/bitbucket/package.json b/packages/publisher/bitbucket/package.json index a91b35e6cb..1e4dd6c96c 100644 --- a/packages/publisher/bitbucket/package.json +++ b/packages/publisher/bitbucket/package.json @@ -6,7 +6,7 @@ "repository": "https://github.com/electron/forge", "author": "Luke Batchelor", "license": "MIT", - "main": "dist/PublisherBitbucket.js", + "exports": "./dist/PublisherBitbucket.js", "typings": "dist/PublisherBitbucket.d.ts", "engines": { "node": ">= 22.12.0" diff --git a/packages/publisher/electron-release-server/package.json b/packages/publisher/electron-release-server/package.json index 8367a95db7..7b1f4f93af 100644 --- a/packages/publisher/electron-release-server/package.json +++ b/packages/publisher/electron-release-server/package.json @@ -6,7 +6,7 @@ "repository": "https://github.com/electron/forge", "author": "Samuel Attard", "license": "MIT", - "main": "dist/PublisherERS.js", + "exports": "./dist/PublisherERS.js", "typings": "dist/PublisherERS.d.ts", "devDependencies": { "msw": "^2.7.0", diff --git a/packages/publisher/gcs/package.json b/packages/publisher/gcs/package.json index 9a3d172bd3..ee27133feb 100644 --- a/packages/publisher/gcs/package.json +++ b/packages/publisher/gcs/package.json @@ -6,7 +6,7 @@ "repository": "https://github.com/electron/forge", "author": "Evgeny Vlasenko", "license": "MIT", - "main": "dist/PublisherGCS.js", + "exports": "./dist/PublisherGCS.js", "typings": "dist/PublisherGCS.d.ts", "engines": { "node": ">= 22.12.0" diff --git a/packages/publisher/github/package.json b/packages/publisher/github/package.json index 96dab9079d..4ae4348498 100644 --- a/packages/publisher/github/package.json +++ b/packages/publisher/github/package.json @@ -6,7 +6,7 @@ "repository": "https://github.com/electron/forge", "author": "Samuel Attard", "license": "MIT", - "main": "dist/PublisherGithub.js", + "exports": "./dist/PublisherGithub.js", "typings": "dist/PublisherGithub.d.ts", "devDependencies": { "vitest": "^4.0.14" diff --git a/packages/publisher/nucleus/package.json b/packages/publisher/nucleus/package.json index 54fe5f606d..2363c3f39b 100644 --- a/packages/publisher/nucleus/package.json +++ b/packages/publisher/nucleus/package.json @@ -6,7 +6,7 @@ "repository": "https://github.com/electron/forge", "author": "Samuel Attard", "license": "MIT", - "main": "dist/PublisherNucleus.js", + "exports": "./dist/PublisherNucleus.js", "typings": "dist/PublisherNucleus.d.ts", "engines": { "node": ">= 22.12.0" diff --git a/packages/publisher/s3/package.json b/packages/publisher/s3/package.json index 26241adb26..30a4aab0a4 100644 --- a/packages/publisher/s3/package.json +++ b/packages/publisher/s3/package.json @@ -6,7 +6,7 @@ "repository": "https://github.com/electron/forge", "author": "Samuel Attard", "license": "MIT", - "main": "dist/PublisherS3.js", + "exports": "./dist/PublisherS3.js", "typings": "dist/PublisherS3.d.ts", "engines": { "node": ">= 22.12.0" diff --git a/packages/publisher/snapcraft/package.json b/packages/publisher/snapcraft/package.json index cb2231b20a..30b1942d9c 100644 --- a/packages/publisher/snapcraft/package.json +++ b/packages/publisher/snapcraft/package.json @@ -6,7 +6,7 @@ "repository": "https://github.com/electron/forge", "author": "Samuel Attard", "license": "MIT", - "main": "dist/PublisherSnapcraft.js", + "exports": "./dist/PublisherSnapcraft.js", "typings": "dist/PublisherSnapcraft.d.ts", "engines": { "node": ">= 22.12.0" diff --git a/packages/template/base/package.json b/packages/template/base/package.json index 1089944991..348cadb11a 100644 --- a/packages/template/base/package.json +++ b/packages/template/base/package.json @@ -6,7 +6,7 @@ "repository": "https://github.com/electron/forge", "author": "Samuel Attard", "license": "MIT", - "main": "dist/BaseTemplate.js", + "exports": "./dist/BaseTemplate.js", "typings": "dist/BaseTemplate.d.ts", "engines": { "node": ">= 22.12.0" diff --git a/packages/template/base/tmpl/package.json b/packages/template/base/tmpl/package.json index 25b32b1ff2..5599f224f5 100644 --- a/packages/template/base/tmpl/package.json +++ b/packages/template/base/tmpl/package.json @@ -3,7 +3,7 @@ "productName": "", "version": "1.0.0", "description": "My Electron application description", - "main": "src/index.js", + "exports": "./src/index.js", "private": true, "scripts": { "start": "electron-forge start", diff --git a/packages/template/vite-typescript/package.json b/packages/template/vite-typescript/package.json index 6c3e125669..30694b3c33 100644 --- a/packages/template/vite-typescript/package.json +++ b/packages/template/vite-typescript/package.json @@ -10,7 +10,7 @@ }, "author": "caoxiemeihao", "license": "MIT", - "main": "dist/ViteTypeScriptTemplate.js", + "exports": "./dist/ViteTypeScriptTemplate.js", "typings": "dist/ViteTypeScriptTemplate.d.ts", "engines": { "node": ">= 22.12.0" diff --git a/packages/template/vite/package.json b/packages/template/vite/package.json index 4c01d6cb84..d90e94cf89 100644 --- a/packages/template/vite/package.json +++ b/packages/template/vite/package.json @@ -10,7 +10,7 @@ }, "author": "caoxiemeihao", "license": "MIT", - "main": "dist/ViteTemplate.js", + "exports": "./dist/ViteTemplate.js", "typings": "dist/ViteTemplate.d.ts", "engines": { "node": ">= 22.12.0" diff --git a/packages/template/webpack-typescript/package.json b/packages/template/webpack-typescript/package.json index f54f5ab374..5b523882ab 100644 --- a/packages/template/webpack-typescript/package.json +++ b/packages/template/webpack-typescript/package.json @@ -6,7 +6,7 @@ "repository": "https://github.com/electron/forge", "author": "Shelley Vohr ", "license": "MIT", - "main": "dist/WebpackTypeScriptTemplate.js", + "exports": "./dist/WebpackTypeScriptTemplate.js", "typings": "dist/WebpackTypeScriptTemplate.d.ts", "engines": { "node": ">= 22.12.0" diff --git a/packages/template/webpack/package.json b/packages/template/webpack/package.json index 8694b4313a..5df731af4e 100644 --- a/packages/template/webpack/package.json +++ b/packages/template/webpack/package.json @@ -6,7 +6,7 @@ "repository": "https://github.com/electron/forge", "author": "Samuel Attard", "license": "MIT", - "main": "dist/WebpackTemplate.js", + "exports": "./dist/WebpackTemplate.js", "typings": "dist/WebpackTemplate.d.ts", "engines": { "node": ">= 22.12.0" diff --git a/packages/utils/core-utils/package.json b/packages/utils/core-utils/package.json index dc044fd47a..5a154f24e0 100644 --- a/packages/utils/core-utils/package.json +++ b/packages/utils/core-utils/package.json @@ -6,7 +6,7 @@ "repository": "https://github.com/electron/forge", "author": "Samuel Attard", "license": "MIT", - "main": "dist/index.js", + "exports": "./dist/index.js", "typings": "dist/index.d.ts", "dependencies": { "@electron-forge/shared-types": "workspace:*", diff --git a/packages/utils/test-utils/package.json b/packages/utils/test-utils/package.json index 92752dfcae..31b3d868bd 100644 --- a/packages/utils/test-utils/package.json +++ b/packages/utils/test-utils/package.json @@ -6,7 +6,7 @@ "repository": "https://github.com/electron/forge", "author": "Mark Lee", "license": "MIT", - "main": "dist/index.js", + "exports": "./dist/index.js", "typings": "dist/index.d.ts", "dependencies": { "@malept/cross-spawn-promise": "^2.0.0", diff --git a/packages/utils/tracer/package.json b/packages/utils/tracer/package.json index e97ecb5a7f..737c2ceab0 100644 --- a/packages/utils/tracer/package.json +++ b/packages/utils/tracer/package.json @@ -6,7 +6,7 @@ "repository": "https://github.com/electron/forge", "author": "Samuel Attard", "license": "MIT", - "main": "dist/index.js", + "exports": "./dist/index.js", "typings": "dist/index.d.ts", "dependencies": { "chrome-trace-event": "^1.0.3" diff --git a/packages/utils/types/package.json b/packages/utils/types/package.json index abc57290c8..761494a558 100644 --- a/packages/utils/types/package.json +++ b/packages/utils/types/package.json @@ -6,7 +6,7 @@ "repository": "https://github.com/electron/forge", "author": "Samuel Attard", "license": "MIT", - "main": "dist/index.js", + "exports": "./dist/index.js", "typings": "dist/index.d.ts", "dependencies": { "@electron-forge/tracer": "workspace:*", diff --git a/packages/utils/web-multi-logger/package.json b/packages/utils/web-multi-logger/package.json index bc8762681c..ee9fa4ce9c 100644 --- a/packages/utils/web-multi-logger/package.json +++ b/packages/utils/web-multi-logger/package.json @@ -6,7 +6,7 @@ "repository": "https://github.com/electron/forge", "author": "Samuel Attard", "license": "MIT", - "main": "dist/Logger.js", + "exports": "./dist/Logger.js", "typings": "dist/Logger.d.ts", "dependencies": { "express": "^4.17.1", diff --git a/tools/doc-plugin/package.json b/tools/doc-plugin/package.json index 79de434704..79adb54aa9 100644 --- a/tools/doc-plugin/package.json +++ b/tools/doc-plugin/package.json @@ -1,7 +1,7 @@ { "name": "typedoc-forge-custom-sidebar-theme", "version": "1.0.0", - "main": "dist/index.js", + "exports": "./dist/index.js", "repository": "", "license": "MIT", "keywords": [ From dcf7e1ae196dabd015a835cf4468f72ae88e7252 Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Tue, 3 Mar 2026 15:44:28 -0800 Subject: [PATCH 55/62] update stale engines.node --- packages/utils/tracer/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/utils/tracer/package.json b/packages/utils/tracer/package.json index 737c2ceab0..1a8742f920 100644 --- a/packages/utils/tracer/package.json +++ b/packages/utils/tracer/package.json @@ -12,7 +12,7 @@ "chrome-trace-event": "^1.0.3" }, "engines": { - "node": ">= 14.17.5" + "node": ">= 22.12.0" }, "publishConfig": { "access": "public" From 187dae6712f994e16ddb635a529acff665a006ea Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Tue, 3 Mar 2026 15:49:41 -0800 Subject: [PATCH 56/62] fix(publisher-gcs): restore ConfigMetadata type --- packages/publisher/gcs/src/Config.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/packages/publisher/gcs/src/Config.ts b/packages/publisher/gcs/src/Config.ts index 71e08f0c9a..591d1a43e6 100644 --- a/packages/publisher/gcs/src/Config.ts +++ b/packages/publisher/gcs/src/Config.ts @@ -1,8 +1,13 @@ -import { StorageOptions, UploadOptions } from '@google-cloud/storage'; -// import { ConfigMetadata } from '@google-cloud/storage/build'; +import { + CreateResumableUploadOptions, + StorageOptions, + UploadOptions, +} from '@google-cloud/storage'; import { GCSArtifact } from './PublisherGCS.js'; +type ConfigMetadata = NonNullable; + export interface PublisherGCSConfig { /** * Options passed into the `Storage` client constructor. @@ -37,5 +42,5 @@ export interface PublisherGCSConfig { * See https://cloud.google.com/storage/docs/metadata for more info. * Expects a function that takes a GCSArtifact object and returns a `ConfigMetadata` object. */ - metadataGenerator?: (artifact: GCSArtifact) => any; // FIXME: ADD CONFIGMETADATA TYPE BACK + metadataGenerator?: (artifact: GCSArtifact) => ConfigMetadata; } From 6f84a84c1e9d424aa2b28e297fce3f0ce2971306 Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Tue, 3 Mar 2026 16:03:37 -0800 Subject: [PATCH 57/62] re-enable lint rule --- .eslintrc.json | 2 +- packages/plugin/webpack/src/WebpackConfig.ts | 27 ++++++++++---------- packages/plugin/webpack/src/WebpackPlugin.ts | 14 +++++----- 3 files changed, 22 insertions(+), 21 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index e7199bd71b..31fcd2633d 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -55,7 +55,7 @@ "ignoreCase": true } ], - // "import/no-named-as-default": "error", + "import/no-named-as-default": "error", "n/no-process-exit": "off" }, "overrides": [ diff --git a/packages/plugin/webpack/src/WebpackConfig.ts b/packages/plugin/webpack/src/WebpackConfig.ts index d4ac7d5a6c..3235d8c08e 100644 --- a/packages/plugin/webpack/src/WebpackConfig.ts +++ b/packages/plugin/webpack/src/WebpackConfig.ts @@ -2,7 +2,8 @@ import path from 'node:path'; import debug from 'debug'; import HtmlWebpackPlugin from 'html-webpack-plugin'; -import webpack, { Configuration, WebpackPluginInstance } from 'webpack'; +import * as webpack from 'webpack'; +import { DefinePlugin, ExternalsPlugin, WebpackPluginInstance } from 'webpack'; import { merge as webpackMerge } from 'webpack-merge'; import { @@ -30,7 +31,7 @@ const d = debug('electron-forge:plugin:webpack:webpackconfig'); export type ConfigurationFactory = ( env: string | Record | unknown, args: Record, -) => Configuration | Promise; +) => webpack.Configuration | Promise; enum RendererTarget { Web, @@ -88,14 +89,14 @@ export default class WebpackConfigGenerator { } async resolveConfig( - config: Configuration | ConfigurationFactory | string, - ): Promise { + config: webpack.Configuration | ConfigurationFactory | string, + ): Promise { type MaybeESM = T | { default: T }; let rawConfig = typeof config === 'string' ? ((await import(path.resolve(this.projectDir, config))) as MaybeESM< - Configuration | ConfigurationFactory + webpack.Configuration | ConfigurationFactory >) : config; @@ -110,7 +111,7 @@ export default class WebpackConfigGenerator { // configuration parameters. preprocessConfig = async ( config: ConfigurationFactory, - ): Promise => + ): Promise => config( {}, { @@ -196,7 +197,7 @@ export default class WebpackConfigGenerator { return defines; } - async getMainConfig(): Promise { + async getMainConfig(): Promise { const mainConfig = await this.resolveConfig(this.pluginConfig.mainConfig); if (!mainConfig.entry) { @@ -229,7 +230,7 @@ export default class WebpackConfigGenerator { filename: 'index.js', libraryTarget: 'commonjs2', }, - plugins: [new webpack.DefinePlugin(this.getDefines())], + plugins: [new DefinePlugin(this.getDefines())], node: { __dirname: false, __filename: false, @@ -241,7 +242,7 @@ export default class WebpackConfigGenerator { async getRendererConfig( rendererOptions: WebpackPluginRendererConfig, - ): Promise { + ): Promise { const entryPointsForTarget = { web: [] as ( | WebpackPluginEntryPointLocalWindow @@ -335,7 +336,7 @@ export default class WebpackConfigGenerator { rendererOptions: WebpackPluginRendererConfig, entryPoints: WebpackPluginEntryPoint[], target: RendererTarget.Web | RendererTarget.ElectronRenderer, - ): Promise { + ): Promise { if (!isLocalOrNoWindowEntries(entryPoints)) { throw new Error('Invalid renderer entry point detected.'); } @@ -380,7 +381,7 @@ export default class WebpackConfigGenerator { rendererOptions: WebpackPluginRendererConfig, entryPoints: WebpackPluginEntryPointPreloadOnly[], target: RendererTarget.ElectronPreload | RendererTarget.SandboxedPreload, - ): Promise { + ): Promise { if (entryPoints.length === 0) { return null; } @@ -406,7 +407,7 @@ export default class WebpackConfigGenerator { entryPoint.preload.js, ]); } - const config: Configuration = { + const config: webpack.Configuration = { target: rendererTargetToWebpackTarget(target), entry, output: { @@ -418,7 +419,7 @@ export default class WebpackConfigGenerator { plugins: target === RendererTarget.ElectronPreload ? [] - : [new webpack.ExternalsPlugin('commonjs2', externals)], + : [new ExternalsPlugin('commonjs2', externals)], }; return webpackMerge(baseConfig, rendererConfig || {}, config); } diff --git a/packages/plugin/webpack/src/WebpackPlugin.ts b/packages/plugin/webpack/src/WebpackPlugin.ts index 82a64b7c0a..e846cce00a 100644 --- a/packages/plugin/webpack/src/WebpackPlugin.ts +++ b/packages/plugin/webpack/src/WebpackPlugin.ts @@ -20,7 +20,7 @@ import debug from 'debug'; import glob from 'fast-glob'; import fs from 'fs-extra'; import { PRESET_TIMER } from 'listr2'; -import webpack, { Configuration, Watching } from 'webpack'; +import * as webpack from 'webpack'; import WebpackDevServer from 'webpack-dev-server'; import { merge } from 'webpack-merge'; @@ -54,7 +54,7 @@ export default class WebpackPlugin extends PluginBase { private _configGenerator!: WebpackConfigGenerator; - private watchers: Watching[] = []; + private watchers: webpack.Watching[] = []; private servers: http.Server[] = []; @@ -141,11 +141,11 @@ export default class WebpackPlugin extends PluginBase { } private runWebpack = async ( - options: Configuration[], + options: webpack.Configuration[], rendererOptions: WebpackPluginRendererConfig | null, ): Promise => new Promise((resolve, reject) => { - webpack(options).run(async (err, stats) => { + webpack.webpack(options).run(async (err, stats) => { if (rendererOptions && rendererOptions.jsonStats) { for (const [index, entryStats] of (stats?.stats ?? []).entries()) { const name = rendererOptions.entryPoints[index].name; @@ -639,7 +639,7 @@ the generated files). Instead, it is ${JSON.stringify(pj.main)}`); const mainConfig = await this.configGenerator.getMainConfig(); await new Promise((resolve, reject) => { - const compiler = webpack(mainConfig); + const compiler = webpack.webpack(mainConfig); const [onceResolve, onceReject] = once(resolve, reject); const cb: WebpackWatchHandler = async (err, stats) => { if (tab && stats) { @@ -692,7 +692,7 @@ the generated files). Instead, it is ${JSON.stringify(pj.main)}`); }; launchRendererDevServers = async (logger: Logger): Promise => { - const configs: Configuration[] = []; + const configs: webpack.Configuration[] = []; const rollingDependencies: string[] = []; for (const [i, rendererOptions] of this.allRendererOptions.entries()) { const groupName = `group_${i}`; @@ -738,7 +738,7 @@ the generated files). Instead, it is ${JSON.stringify(pj.main)}`); entryConfig.stats = 'none'; } - const compiler = webpack(configs); + const compiler = webpack.webpack(configs); const promises = preloadPlugins.map((preloadPlugin) => { return new Promise((resolve, reject) => { From c3564519d44c428ef60f32ab24d652d523ece6ad Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Wed, 4 Mar 2026 10:47:44 -0800 Subject: [PATCH 58/62] chore: update `test-dist` to support `exports` --- tools/test-dist.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tools/test-dist.ts b/tools/test-dist.ts index 904782cb09..4adc415d19 100644 --- a/tools/test-dist.ts +++ b/tools/test-dist.ts @@ -27,10 +27,12 @@ const PACKAGES_DIR = path.resolve(BASE_DIR, 'packages'); for (const dir of dirsToCheck) { const pj = await fs.readJson(path.resolve(dir, 'package.json')); if (pj.name === '@electron-forge/cli') continue; - if (!(await fs.pathExists(path.resolve(dir, pj.main)))) { + // The entrypoint can be defined under `exports` or `main` in package.json now! + const main = pj.exports ?? pj.main; + if (!main || !(await fs.pathExists(path.resolve(dir, main)))) { console.error( `${chalk.cyan(`[${pj.name}]`)}:`, - chalk.red(`Main entry not found (${pj.main})`), + chalk.red(`Main entry not found (${main})`), ); bad = true; } From 7885f58dc489e601c36bb5c2e11b7968b07fc2a0 Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Wed, 4 Mar 2026 11:27:00 -0800 Subject: [PATCH 59/62] fix: ForgeArch <> Arch --- packages/maker/deb/spec/MakerDeb.spec.ts | 10 ++++++++-- packages/maker/deb/src/MakerDeb.ts | 13 ++++++++++++- packages/maker/rpm/spec/MakerRpm.spec.ts | 6 ++++-- packages/maker/rpm/src/MakerRpm.ts | 9 ++++++++- 4 files changed, 32 insertions(+), 6 deletions(-) diff --git a/packages/maker/deb/spec/MakerDeb.spec.ts b/packages/maker/deb/spec/MakerDeb.spec.ts index 2fa0594a59..cab2a23514 100644 --- a/packages/maker/deb/spec/MakerDeb.spec.ts +++ b/packages/maker/deb/spec/MakerDeb.spec.ts @@ -89,11 +89,17 @@ describe('debianArch', () => { expect(debianArch('x64')).toEqual('amd64'); }); + it('should convert arm64 to arm64', () => { + expect(debianArch('arm64')).toEqual('arm64'); + }); + it('should convert armv7l to armhf', () => { expect(debianArch('armv7l')).toEqual('armhf'); }); - it('should leave unknown values alone', () => { - expect(debianArch('foo' as ForgeArch)).toEqual('foo'); + it('throws for unknown values', () => { + expect(() => debianArch('foo' as ForgeArch)).toThrow( + 'Unsupported architecture foo', + ); }); }); diff --git a/packages/maker/deb/src/MakerDeb.ts b/packages/maker/deb/src/MakerDeb.ts index fd6ab0a142..b024cae802 100644 --- a/packages/maker/deb/src/MakerDeb.ts +++ b/packages/maker/deb/src/MakerDeb.ts @@ -5,16 +5,27 @@ import { ForgeArch, ForgePlatform } from '@electron-forge/shared-types'; import { MakerDebConfig } from './Config.js'; +/** + * Converts the Node.js architecture value of the processor architecture + * into a string accepted by `electron-installer-debian`. + * + * @param nodeArch - Node.js architecture string + * @returns - electron-installer-debian architecture string + */ export function debianArch(nodeArch: ForgeArch): string { switch (nodeArch) { case 'ia32': return 'i386'; case 'x64': return 'amd64'; + case 'arm64': + return 'arm64'; case 'armv7l': return 'armhf'; + case 'mips64el': + return 'mips64el'; default: - return nodeArch; + throw new Error(`Unsupported architecture ${nodeArch}`); } } diff --git a/packages/maker/rpm/spec/MakerRpm.spec.ts b/packages/maker/rpm/spec/MakerRpm.spec.ts index 0a9c9e51b2..7b633bcc1e 100644 --- a/packages/maker/rpm/spec/MakerRpm.spec.ts +++ b/packages/maker/rpm/spec/MakerRpm.spec.ts @@ -93,7 +93,9 @@ describe('rpmArch', () => { expect(rpmArch('armv7l')).toEqual('armv7hl'); }); - it('should leave unknown values alone', () => { - expect(rpmArch('foo' as ForgeArch)).toEqual('foo'); + it('throws for unknown values', () => { + expect(() => rpmArch('foo' as ForgeArch)).toThrowError( + 'Unsupported architecture foo', + ); }); }); diff --git a/packages/maker/rpm/src/MakerRpm.ts b/packages/maker/rpm/src/MakerRpm.ts index 7b86c727f9..52349b577e 100644 --- a/packages/maker/rpm/src/MakerRpm.ts +++ b/packages/maker/rpm/src/MakerRpm.ts @@ -12,6 +12,13 @@ function renameRpm(dest: string, _src: string): string { ); } +/** + * Converts the Node.js architecture value of the processor architecture + * into a string accepted by `electron-installer-redhat`. + * + * @param nodeArch - Node.js architecture string + * @returns - electron-installer-redhat architecture string + */ export function rpmArch(nodeArch: ForgeArch): string { switch (nodeArch) { case 'ia32': @@ -23,7 +30,7 @@ export function rpmArch(nodeArch: ForgeArch): string { case 'armv7l': return 'armv7hl'; default: - return nodeArch; + throw new Error(`Unsupported architecture ${nodeArch}`); } } From c6a65dbdb500528f7e67338d3fe2141a010bee86 Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Thu, 5 Mar 2026 12:36:45 -0800 Subject: [PATCH 60/62] use upstream serialHooks package --- packages/api/core/src/api/package.ts | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/packages/api/core/src/api/package.ts b/packages/api/core/src/api/package.ts index 489bfc08e5..acd04fdbb8 100644 --- a/packages/api/core/src/api/package.ts +++ b/packages/api/core/src/api/package.ts @@ -6,6 +6,7 @@ import { packager, HookFunction as PackagerHookFunction, Options as PackagerOptions, + serialHooks, TargetDefinition, } from '@electron/packager'; import { @@ -37,18 +38,6 @@ import resolveDir from '../util/resolve-dir.js'; const d = debug('electron-forge:packager'); -export function serialHooks any>( - hooks: T[] = [], -): [T] { - return [ - async function (opts: Parameters[0]): Promise { - for (const hook of hooks) { - await hook(opts); - } - } as T, - ]; -} - /** * Resolves hooks if they are a path to a file (instead of a `Function`). */ From 0c807444a31519c66a951b35afb65dc136ef6706 Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Thu, 5 Mar 2026 13:48:21 -0800 Subject: [PATCH 61/62] fix(core): handle no-default-export case in import search --- .../core/spec/fast/util/import-search.spec.ts | 8 +++++- .../import-search/no-default-export.js | 3 ++ .../throw-error.js | 0 packages/api/core/src/util/import-search.ts | 28 ++++++++++++++++++- 4 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 packages/api/core/spec/fixture/import-search/no-default-export.js rename packages/api/core/spec/fixture/{require-search => import-search}/throw-error.js (100%) diff --git a/packages/api/core/spec/fast/util/import-search.spec.ts b/packages/api/core/spec/fast/util/import-search.spec.ts index 92c24e56ce..d033a54d62 100644 --- a/packages/api/core/spec/fast/util/import-search.spec.ts +++ b/packages/api/core/spec/fast/util/import-search.spec.ts @@ -18,10 +18,16 @@ describe('import-search', () => { expect(resolved).toEqual(findConfig); }); + it('should return null if no default export', async () => { + await expect( + importSearch(import.meta.dirname, ['../../fixture/import-search/erick']), + ).resolves.toBeNull(); + }); + it('should throw if file exists but fails to load', async () => { await expect( importSearch(import.meta.dirname, [ - '../../fixture/require-search/throw-error', + '../../fixture/import-search/throw-error', ]), ).rejects.toThrowError('test'); }); diff --git a/packages/api/core/spec/fixture/import-search/no-default-export.js b/packages/api/core/spec/fixture/import-search/no-default-export.js new file mode 100644 index 0000000000..c6c6de4232 --- /dev/null +++ b/packages/api/core/spec/fixture/import-search/no-default-export.js @@ -0,0 +1,3 @@ +export const foo = { + bar: 'baz', +}; diff --git a/packages/api/core/spec/fixture/require-search/throw-error.js b/packages/api/core/spec/fixture/import-search/throw-error.js similarity index 100% rename from packages/api/core/spec/fixture/require-search/throw-error.js rename to packages/api/core/spec/fixture/import-search/throw-error.js diff --git a/packages/api/core/src/util/import-search.ts b/packages/api/core/src/util/import-search.ts index 81ea594a36..a548c1e29e 100644 --- a/packages/api/core/src/util/import-search.ts +++ b/packages/api/core/src/util/import-search.ts @@ -11,6 +11,22 @@ type ResolutionError = Error & { code: string; }; +/** + * Dynamically `import()` the first resolvable module from a list of candidate paths. + * + * Resolution order for each entry in {@link paths}: + * + * 1. Local monorepo short-circuit: when running from a Forge checkout and the + * path is a single `@electron-forge/*` specifier, derives the package location + * within the monorepo and attempts a direct import (skips node_modules). + * 2. The raw path as-is (relies on Node's own resolution). + * 3. `path.resolve(relativeTo, path)` — resolved against the given directory. + * 4. `path.resolve(relativeTo, 'node_modules', path)` — explicit node_modules lookup. + * + * Only `ERR_MODULE_NOT_FOUND` errors are swallowed; any other error is re-thrown. + * + * @returns The raw module namespace object of the first successful import, or `null` if no module is found. + */ async function importSearchRaw( relativeTo: string, paths: string[], @@ -63,10 +79,20 @@ async function importSearchRaw( return null; } +/** A module namespace that may or may not have a default export. */ export type PossibleModule = { default?: T; } & T; +/** + * Used throughout `@electron-forge` to dynamically load makers, publishers, + * plugins, and lifecycle hooks by package name. Only accepts default exports. + * + * @param relativeTo - Directory to resolve relative paths against (typically the project root). + * @param paths - Module specifiers to attempt (e.g. `['@electron-forge/maker-zip']`). + * @returns The module's default export, or `null` if the module was not found + * or has no default export. + */ export default async ( relativeTo: string, paths: string[], @@ -74,5 +100,5 @@ export default async ( const result = await importSearchRaw>(relativeTo, paths); return typeof result === 'object' && result && result.default ? result.default - : (result as T | null); + : null; }; From 896db28969c64db601fbc96c9f3dd90d4267034c Mon Sep 17 00:00:00 2001 From: Erick Zhao Date: Thu, 5 Mar 2026 13:58:04 -0800 Subject: [PATCH 62/62] fix(package): filter out nullish hook fns --- packages/api/core/src/api/package.ts | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/packages/api/core/src/api/package.ts b/packages/api/core/src/api/package.ts index acd04fdbb8..44dfe0ca86 100644 --- a/packages/api/core/src/api/package.ts +++ b/packages/api/core/src/api/package.ts @@ -44,15 +44,14 @@ const d = debug('electron-forge:packager'); async function resolveHooks( hooks: (string | F)[] | undefined, dir: string, -) { +): Promise[]> { if (hooks) { - return await Promise.all( + const hooksOrNull = await Promise.all( hooks.map(async (hook) => - typeof hook === 'string' - ? ((await importSearch(dir, [hook])) as F) - : hook, + typeof hook === 'string' ? await importSearch(dir, [hook]) : hook, ), ); + return hooksOrNull.filter((hook): hook is Awaited => hook !== null); } return [];